{"version":3,"file":"../../js/llms-favorites.min.js","sources":["llms-favorites.js"],"sourcesContent":["/* global LLMS, $ */\n/* jshint strict: true */\n\n/**\n * Front End Favorite Class.\n *\n * @type {Object}\n *\n * @since 7.5.0\n * @version 7.5.0\n */\n( function( $ ) {\n\n\tvar favorite = {\n\n\t\t/**\n\t\t * Bind DOM events.\n\t\t *\n\t\t * @since 7.5.0\n\t\t *\n\t\t * @return {Void}\n\t\t */\n\t\tbind: function() {\n\n\t\t\tvar self = this;\n\n\t\t\t// Favorite clicked.\n\t\t\t$( '.llms-favorite-wrapper' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tvar $btn = $( this ).find( '.llms-heart-btn' );\n\t\t\t\t$btn && self.favorite( $btn );\n\t\t\t} );\n\n\t\t\t// Adding class in Favorite's parent.\n\t\t\t$( '.llms-favorite-wrapper' ).parent().addClass( 'llms-has-favorite' );\n\n\t\t},\n\n\t\t/**\n\t\t * Favorite / Unfavorite an object.\n\t\t *\n\t\t * @since 7.5.0\n\t\t *\n\t\t * @param {Object} $btn jQuery object for the \"Favorite / Unfavorite\" button.\n\t\t * @return {Void}\n\t\t */\n\t\tfavorite: function( $btn ) {\n\n\t\t\tvar object_id \t= $btn.attr( 'data-id' ),\n\t\t\t\tobject_type = $btn.attr( 'data-type' ),\n\t\t\t\tuser_action\t= $btn.attr( 'data-action' );\n\n\t\t\tLLMS.Ajax.call( {\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'favorite_object',\n\t\t\t\t\tobject_id: object_id,\n\t\t\t\t\tobject_type: object_type,\n\t\t\t\t\tuser_action: user_action\n\t\t\t\t},\n\t\t\t\tbeforeSend: function() {},\n\t\t\t\tsuccess: function( r ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Get all the favorite buttons on the page related to the same lesson, e.g. when the syllabus\n\t\t\t\t\t * is shown on the sidebar of a lesson or a course, in that case you will have the same favorite\n\t\t\t\t\t * button twice. The code below makes sure both the buttons are updated.\n\t\t\t\t\t */\n\t\t\t\t\tvar $fav_btns = $( '[data-id='+object_id+'][data-type='+object_type+'][data-action='+user_action+']' );\n\t\t\t\t\tif( r.success ) {\n\t\t\t\t\t\t$fav_btns.each(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tif( 'favorite' === user_action ) {\n\t\t\t\t\t\t\t\t\t$(this).removeClass( 'fa-heart-o' ).addClass( 'fa-heart' );\n\t\t\t\t\t\t\t\t\t$(this).attr( 'data-action', 'unfavorite' );\n\t\t\t\t\t\t\t\t} else if ( 'unfavorite' === user_action ) {\n\t\t\t\t\t\t\t\t\t$(this).removeClass( 'fa-heart' ).addClass( 'fa-heart-o' );\n\t\t\t\t\t\t\t\t\t$(this).attr( 'data-action', 'favorite' );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Updating count.\n\t\t\t\t\t\t\t\t$(this).closest( '.llms-favorite-wrapper' ).find( '.llms-favorites-count' ).text( r.total_favorites );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t};\n\n\tfavorite.bind();\n\n\twindow.llms = window.llms || {};\n\twindow.llms.favorites = favorite;\n\n} )( jQuery );\n"],"names":["$","favorite","bind","self","this","on","e","preventDefault","$btn","find","parent","addClass","object_id","attr","object_type","user_action","LLMS","Ajax","call","data","action","beforeSend","success","r","$fav_btns","each","removeClass","closest","text","total_favorites","window","llms","favorites","jQuery"],"mappings":"AAWA,CAAA,SAAYA,GAEX,IAAIC,EAAW,CASdC,KAAM,WAEL,IAAIC,EAAOC,KAGXJ,EAAG,wBAAyB,EAAEK,GAAI,QAAS,SAAUC,GACpDA,EAAEC,eAAe,EACbC,EAAOR,EAAGI,IAAK,EAAEK,KAAM,iBAAkB,EAC7CD,GAAQL,EAAKF,SAAUO,CAAK,CAC7B,CAAE,EAGFR,EAAG,wBAAyB,EAAEU,OAAO,EAAEC,SAAU,mBAAoB,CAEtE,EAUAV,SAAU,SAAUO,GAEnB,IAAII,EAAaJ,EAAKK,KAAM,SAAU,EACrCC,EAAcN,EAAKK,KAAM,WAAY,EACrCE,EAAcP,EAAKK,KAAM,aAAc,EAExCG,KAAKC,KAAKC,KAAM,CACfC,KAAM,CACLC,OAAQ,kBACRR,UAAWA,EACXE,YAAaA,EACbC,YAAaA,CACd,EACAM,WAAY,aACZC,QAAS,SAAUC,GAMlB,IAAIC,EAAYxB,EAAG,YAAYY,EAAU,eAAeE,EAAY,iBAAiBC,EAAY,GAAI,EACjGQ,EAAED,SACLE,EAAUC,KACT,WACK,aAAeV,GAClBf,EAAEI,IAAI,EAAEsB,YAAa,YAAa,EAAEf,SAAU,UAAW,EACzDX,EAAEI,IAAI,EAAES,KAAM,cAAe,YAAa,GAC/B,eAAiBE,IAC5Bf,EAAEI,IAAI,EAAEsB,YAAa,UAAW,EAAEf,SAAU,YAAa,EACzDX,EAAEI,IAAI,EAAES,KAAM,cAAe,UAAW,GAGzCb,EAAEI,IAAI,EAAEuB,QAAS,wBAAyB,EAAElB,KAAM,uBAAwB,EAAEmB,KAAML,EAAEM,eAAgB,CACrG,CACD,CAEF,CACD,CAAE,CACH,CACD,EAEA5B,EAASC,KAAK,EAEd4B,OAAOC,KAAmBD,OAAOC,MAAQ,GACzCD,OAAOC,KAAKC,UAAc/B,CAEzB,EAAGgC,MAAO","sourceRoot":"../../js"}