{"version":3,"file":"wishlist.js","mappings":"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","sources":["webpack://learnpress-wishlist/./assets/src/js/wishlist.js"],"sourcesContent":["( function( $ ) {\n\t'use strict';\n\tfunction parseJSON( data ) {\n\t\tif ( typeof data !== 'string' ) {\n\t\t\treturn data;\n\t\t}\n\n\t\tconst m = String.raw( { raw: data } ).match(\n\t\t\t/<-- LP_AJAX_START -->(.*)<-- LP_AJAX_END -->/s\n\t\t);\n\n\t\ttry {\n\t\t\tif ( m ) {\n\t\t\t\tdata = JSON.parse( m[ 1 ].replace( /(?:\\r\\n|\\r|\\n)/g, '' ) );\n\t\t\t} else {\n\t\t\t\tdata = JSON.parse( data );\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tdata = {};\n\t\t}\n\t\treturn data;\n\t}\n\tlet timer = null,\n\t\tsubmit = function() {\n\t\t\tconst $button = $( this ),\n\t\t\t\tcourse_id = $button.attr( 'data-id' ),\n\t\t\t\tnonce = $button.attr( 'data-nonce' ),\n\t\t\t\ttext = $button.data( 'text' );\n\t\t\tif ( $button.hasClass( 'ajaxload_wishlist' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t$button.addClass( 'ajaxload_wishlist' ).prop( 'disabled', true );\n\t\t\tif ( text ) {\n\t\t\t\t$button.html( text );\n\t\t\t}\n\t\t\t$.ajax( {\n\t\t\t\turl: window.location.href,\n\t\t\t\ttype: 'post',\n\t\t\t\tdataType: 'html',\n\t\t\t\tdata: {\n\t\t\t\t\t//action : 'learn_press_toggle_course_wishlist',\n\t\t\t\t\t'lp-ajax': 'toggle_course_wishlist',\n\t\t\t\t\tcourse_id,\n\t\t\t\t\tnonce,\n\t\t\t\t},\n\t\t\t\tsuccess( response ) {\n\t\t\t\t\tvar response = parseJSON( response );\n\t\t\t\t\tconst $b = $(\n\t\t\t\t\t\t\t'.learn-press-course-wishlist-button-' +\n\t\t\t\t\t\t\t\tresponse.course_id\n\t\t\t\t\t\t),\n\t\t\t\t\t\t$p = $b.closest( '[data-context=\"tab-wishlist\"]' );\n\t\t\t\t\tif ( $p.length ) {\n\t\t\t\t\t\t$p.fadeOut( function() {\n\t\t\t\t\t\t\tconst $siblings = $p.siblings(),\n\t\t\t\t\t\t\t\t$parent = $p.closest(\n\t\t\t\t\t\t\t\t\t'#learn-press-profile-tab-course-wishlist'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t$p.remove();\n\t\t\t\t\t\t\tif ( $siblings.length == 0 ) {\n\t\t\t\t\t\t\t\t$parent.removeClass( 'has-courses' );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$b.removeClass( 'ajaxload_wishlist' )\n\t\t\t\t\t\t\t.toggleClass( 'on', response.state == 'on' )\n\t\t\t\t\t\t\t.prop( 'title', response.title )\n\t\t\t\t\t\t\t.html( response.button_text );\n\t\t\t\t\t}\n\t\t\t\t\t$b.prop( 'disabled', false );\n\t\t\t\t},\n\t\t\t} );\n\t\t};\n\t$( document ).on( 'click', '.course-wishlist', function() {\n\t\ttimer && clearTimeout( timer );\n\t\ttimer = setTimeout( $.proxy( submit, this ), 50 );\n\t} );\n}( jQuery ) );\n\n//*********************** code new\nconst wishlistHandle = new Set();\n\nconst toggleWishlist = async ( elWishlist ) => {\n\tconst itemId = elWishlist.dataset.itemId;\n\tif ( ! itemId || wishlistHandle.has( itemId ) ) {\n\t\treturn;\n\t}\n\n\twishlistHandle.add( itemId );\n\telWishlist.style.opacity = '0.5';\n\n\ttry {\n\t\tconst response = await fetch( `${ lpData.lp_rest_url }learnpress/v1/wishlist/add_or_remove`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'X-WP-Nonce': lpData.nonce,\n\t\t\t},\n\t\t\tbody: JSON.stringify( { id: itemId } ),\n\t\t} );\n\n\t\tconst { status, message, data } = await response.json();\n\n\t\tif ( status !== 'success' ) {\n\t\t\tthrow new Error( message );\n\t\t}\n\n\t\telWishlist.classList.toggle( 'active' );\n\t} catch ( err ) {\n\t\talert( err.message );\n\t} finally {\n\t\twishlistHandle.delete( itemId );\n\t\telWishlist.style.opacity = '1';\n\t}\n};\n\ndocument.addEventListener( 'click', ( e ) => {\n\tif ( e.target.classList.contains( 'lp-item-wishlist' ) ) {\n\t\ttoggleWishlist( e.target );\n\t}\n} );\n"],"names":["$","parseJSON","data","m","String","raw","match","JSON","parse","replace","e","timer","submit","$button","course_id","attr","nonce","text","hasClass","addClass","prop","html","ajax","url","window","location","href","type","dataType","success","response","$b","$p","closest","length","fadeOut","$siblings","siblings","$parent","remove","removeClass","toggleClass","state","title","button_text","document","on","clearTimeout","setTimeout","proxy","jQuery","wishlistHandle","Set","toggleWishlist","elWishlist","itemId","dataset","has","add","style","opacity","fetch","lpData","lp_rest_url","method","headers","body","stringify","id","status","message","json","Error","classList","toggle","err","alert","delete","addEventListener","target","contains"],"sourceRoot":""}