{"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 button' ).on( 'click', function( e ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tself.favorite( $( this ) );\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).find( '.llms-heart-btn' ).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\t$(this).attr( 'aria-pressed', true );\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).find( '.llms-heart-btn' ).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\t$(this).attr( 'aria-pressed', false );\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","parent","addClass","$btn","object_id","attr","object_type","user_action","LLMS","Ajax","call","data","action","beforeSend","success","r","$fav_btns","each","find","removeClass","closest","text","total_favorites","window","llms","favorites","jQuery"],"mappings":"AAWA,CAAA,SAAYA,GAEX,IAAIC,EAAW,CASdC,KAAM,WAEL,IAAIC,EAAOC,KAGXJ,EAAG,+BAAgC,EAAEK,GAAI,QAAS,SAAUC,GAC3DA,EAAEC,eAAe,EACjBJ,EAAKF,SAAUD,EAAGI,IAAK,CAAE,CAC1B,CAAE,EAGFJ,EAAG,wBAAyB,EAAEQ,OAAO,EAAEC,SAAU,mBAAoB,CAEtE,EAUAR,SAAU,SAAUS,GAEnB,IAAIC,EAAaD,EAAKE,KAAM,SAAU,EACrCC,EAAcH,EAAKE,KAAM,WAAY,EACrCE,EAAcJ,EAAKE,KAAM,aAAc,EAExCG,KAAKC,KAAKC,KAAM,CACfC,KAAM,CACLC,OAAQ,kBACRR,UAAWA,EACXE,YAAaA,EACbC,YAAaA,CACd,EACAM,WAAY,aACZC,QAAS,SAAUC,GAMlB,IAAIC,EAAYvB,EAAG,YAAYW,EAAU,eAAeE,EAAY,iBAAiBC,EAAY,GAAI,EACjGQ,EAAED,SACLE,EAAUC,KACT,WACK,aAAeV,GAClBd,EAAEI,IAAI,EAAEqB,KAAM,iBAAkB,EAAEC,YAAa,YAAa,EAAEjB,SAAU,UAAW,EACnFT,EAAEI,IAAI,EAAEQ,KAAM,cAAe,YAAa,EAC1CZ,EAAEI,IAAI,EAAEQ,KAAM,eAAgB,CAAA,CAAK,GACxB,eAAiBE,IAC5Bd,EAAEI,IAAI,EAAEqB,KAAM,iBAAkB,EAAEC,YAAa,UAAW,EAAEjB,SAAU,YAAa,EACnFT,EAAEI,IAAI,EAAEQ,KAAM,cAAe,UAAW,EACxCZ,EAAEI,IAAI,EAAEQ,KAAM,eAAgB,CAAA,CAAM,GAGrCZ,EAAEI,IAAI,EAAEuB,QAAS,wBAAyB,EAAEF,KAAM,uBAAwB,EAAEG,KAAMN,EAAEO,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"}