{"version":3,"sources":["listing-labels.js"],"names":["window","undefined","wp","document","$","jQuery","saveState","target","page","location","href","split","$supports_html5_history","history","pushState","form","find","data","serialize","index","replaceState","id","getParameter","string","param","i","sPageURL","decodeURIComponent","sURLVariables","sParameterName","output","length","push","ready","each","this","val","addClass","state","hash","listing_labels","value","append","trigger","on","label","$link","text","$selectedLabels","console","log","remove","removeClass","closest","event","results","labels","listing_labels_filter","$target","html","show","hide"],"mappings":"CAKA,SAAAA,EAAAC,GAEAD,EAAAE,GAAAF,EAAAE,MAEA,IAAAC,GAAAH,EAAAG,SACAC,EAAAJ,EAAAK,OAYAC,EAAA,SAAAC,EAAAC,GACA,GAAAC,GAAAN,EAAAM,SAAAC,KAAAC,MAAA,KAAA,GACAC,GAAA,CAMA,IAJAZ,EAAAa,SAAAb,EAAAa,QAAAC,YACAF,GAAA,GAGAA,EAAA,CACA,GAAAG,GAAAR,EAAAS,KAAA,gBACAC,EAAAb,EAAAW,GAAAG,YACAC,EAAAf,EAAA,oBAAAe,MAAAZ,EAEAP,GAAAa,QAAAO,cACAC,GAAA,oBACAb,KAAAA,EACAS,KAAAA,EACAE,MAAAA,GACA,GAAAV,EAAA,UAaAa,EAAA,SAAAC,EAAAC,GACA,GAIAC,GAJAC,EAAAC,mBAAAJ,GACAK,EAAAF,EAAAf,MAAA,KACAkB,KACAC,IAGA,KAAAL,EAAA,EAAAA,EAAAG,EAAAG,OAAAN,IACAI,EAAAD,EAAAH,GAAAd,MAAA,KAEAkB,EAAA,KAAAL,OA1DA,KA0DAK,EAAA,IACAC,EAAAE,KAAAH,EAAA,GAIA,OAAAC,GArDA1B,GAAAD,GA6DA8B,MAAA,WAOA,GALA7B,EAAA,4DAAA8B,KAAA,WACA9B,EAAA,8BAAAY,KAAA,cAAAZ,EAAA+B,MAAAC,MAAA,KAAAC,SAAA,YAIArC,EAAAa,QAAAyB,OAAAtC,EAAAS,SAAA8B,KAAA,CACA,GAAAD,GAAAtC,EAAAa,QAAAyB,KAEA,QAjFA,KAiFAA,EAAAjB,QAjFA,KAiFAiB,EAAArB,MAAA,sBAAAqB,EAAAjB,GAAA,CACA,GAAAmB,GAAAlB,EAAAgB,EAAArB,KAAA,kBAEAb,GAAA8B,KAAAM,EAAA,SAAArB,EAAAsB,GACA,IAAArC,EAAA,sCAAAqC,EAAA,MAAAV,OAAA,GACA3B,EAAA,8BAAAsC,OAAA,sDAAAD,EAAA,UAIArC,EAAA,oBAAAuC,QAAA,kBAAA,GAAA,KAIAvC,EAAA,iBAEAwC,GAAA,OAAA,+BAAA,WACAxC,EAAA,8BAAAY,KAAA,gBAAA6B,MAAA,QAIAD,GAAA,QAAA,+BAAA,WACA,GAAAE,GAAA1C,EAAA+B,MACAU,EAAAzC,EAAA+B,MAAAY,OACAC,EAAA5C,EAAA,8BAAAY,KAAA,gBAAA6B,EAAA,KAmBA,OAjBAI,SAAAC,IAAAF,GAEAA,EAAAjB,OAAA,GACAiB,EAAAG,SACAL,EAAAM,YAAA,YAEAhD,EAAA,8BAAAsC,OAAA,sDAAAG,EAAA,QACAC,EAAAT,SAAA,WAGAjC,EAAA+B,MAAAkB,QAAA,oBAEAV,QAAA,kBAAA,GAAA,IAGArC,EAAAF,EAAA,iBAAA,IAEA,IAIAwC,GAAA,QAAA,WACAxC,EAAA,sCAAA+B,MAAAiB,YAAA,UACAhD,EAAA,mCAAA+B,MAAAgB,WAIAP,GAAA,kBAAA,SAAAU,EAAAC,GACA,GAAAC,GAAAD,EAAAE,qBAEA,IAAAD,EAAA,CACA,GAAAE,GAAAtD,EAAA+B,KAEAuB,GAAA1C,KAAA,oCAAA2C,KAAAH,GACAE,EAAA1C,KAAA,8BAAA4C,OAEAF,EAAA1C,KAAA,oCAAAkB,KAAA,WACA,GAAAE,GAAAhC,EAAA+B,MAAAC,KAEAsB,GAAA1C,KAAA,yCAAAoB,EAAA,KAAAC,SAAA,gBAGAjC,GAAA+B,MAAAnB,KAAA,8BAAA6C,SAKAjB,GAAA,SAAA,qBAAA,WACA,GAAArC,GAAAH,EAAA+B,MAAAkB,QAAA,mBAEA9C,GAAAS,KAAA,oCAAAmC,SACA5C,EAAAoC,QAAA,kBAAA,GAAA,SAIA3C","file":"listing-labels.min.js","sourcesContent":["/**\n * Filter by labels.\n *\n * @since 2.0.0\n */\n(function( window, undefined ) {\n\n\twindow.wp = window.wp || {};\n\n\tvar document = window.document;\n\tvar $ = window.jQuery;\n\n\t/**\n\t * @since 2.0.0\n\t */\n\tvar $document = $(document);\n\n\t/**\n\t * Store selected labels in browser state.\n\t *\n\t * @since 2.0.0\n\t */\n\tvar saveState = function( target, page ) {\n\t\tvar location = document.location.href.split('#')[0];\n\t\tvar $supports_html5_history = false;\n\n\t\tif ( window.history && window.history.pushState ) {\n\t\t\t$supports_html5_history = true;\n\t\t}\n\n\t\tif ( $supports_html5_history ) {\n\t\t\tvar form = target.find( '.job_filters' );\n\t\t\tvar data = $( form ).serialize();\n\t\t\tvar index = $( 'div.job_listings' ).index( target );\n\n\t\t\twindow.history.replaceState({ \n\t\t\t\tid: 'job_manager_state', \n\t\t\t\tpage: page, \n\t\t\t\tdata: data, \n\t\t\t\tindex: index \n\t\t\t}, '', location + '#s=1' );\n\t\t}\n\t};\n\n\t/**\n\t * Get a parameter from the saved browser state.\n\t *\n\t * @since 2.0.0\n\t *\n\t * @param {string} string Full state string.\n\t * @param {string} string Param to find.\n\t * @return {string}\n\t */\n\tvar getParameter = function( string, param ){\n\t\tvar sPageURL = decodeURIComponent( string ),\n\t\t\tsURLVariables = sPageURL.split('&'),\n\t\t\tsParameterName = [],\n\t\t\toutput = [],\n\t\t\ti;\n\n\t\tfor ( i = 0; i < sURLVariables.length; i++ ) {\n\t\t\tsParameterName = sURLVariables[i].split('=');\n\n\t\t\tif ( sParameterName[0] === param && sParameterName[1] !== undefined ) {\n\t\t\t\toutput.push( sParameterName[1] );\n\t\t\t}\n\t\t}\n\n\t\treturn output;\n\t};\n\n\t/**\n\t * Wait for DOM ready.\n\t *\n\t * @since 2.0.0\n\t */\n\t$document.ready(function() {\n\t\t// Set all auto-selected label cloud to active.\n\t\t$( '.astoundify-listing-labels input[name=\"listing_label[]\"]' ).each( function() {\n\t\t\t$( '.astoundify-listing-labels' ).find( 'a:contains(' + $( this ).val() + ')' ).addClass( 'active' );\n\t\t});\n\n\t\t// Check current state and update hidden fields.\n\t\tif ( window.history.state && window.location.hash ) {\n\t\t\tvar state = window.history.state;\n\n\t\t\tif ( undefined !== state.id && undefined !== state.data && 'job_manager_state' === state.id ) {\n\t\t\t\tvar listing_labels = getParameter( state.data, 'listing_label[]' );\n\n\t\t\t\t$.each( listing_labels, function( index, value ) {\n\t\t\t\t\tif ( 0 === $( 'input[name=\"listing_label\"][value=\"' + value + '\"]' ).length > 0 ) {\n\t\t\t\t\t\t$( '.astoundify-listing-labels' ).append( '' );\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$( 'div.job_listings' ).trigger( 'update_results', [ 1, false ] );\n\t\t\t}\n\t\t}\n\n\t\t$( '.job_listings' )\n\n\t\t\t.on( 'load', '.astoundify-listing-labels a', function() {\n\t\t\t\tvar $selectedLabels = $( '.astoundify-listing-labels' ).find('input[value=\"' + label + '\"]');\n\t\t\t})\n\n\t\t\t// Monitor clicking of a label.\n\t\t\t.on( 'click', '.astoundify-listing-labels a', function() {\n\t\t\t\tvar $link = $(this);\n\t\t\t\tvar label = $(this).text();\n\t\t\t\tvar $selectedLabels = $( '.astoundify-listing-labels' ).find('input[value=\"' + label + '\"]');\n\n\t\t\t\tconsole.log($selectedLabels);\n\n\t\t\t\tif ( $selectedLabels.length > 0 ) {\n\t\t\t\t\t$selectedLabels.remove();\n\t\t\t\t\t$link.removeClass( 'active' );\n\t\t\t\t} else {\n\t\t\t\t\t$( '.astoundify-listing-labels' ).append( '' );\n\t\t\t\t\t$link.addClass( 'active' );\n\t\t\t\t}\n\n\t\t\t\tvar target = $(this).closest( 'div.job_listings' );\n\n\t\t\t\ttarget.trigger( 'update_results', [ 1, false ] );\n\n\t\t\t\t// Update state.\n\t\t\t\tsaveState( $( '.job_listings' ), 1 );\n\n\t\t\t\treturn false;\n\t\t\t})\n\n\t\t\t// Monitor reset link.\n\t\t\t.on( 'reset', function() {\n\t\t\t\t$( '.astoundify-listing-labels a.active', this ).removeClass( 'active' );\n\t\t\t\t$( '.astoundify-listing-labels input', this ).remove();\n\t\t\t})\n\n\t\t\t// Once results are sent back update tag cloud.\n\t\t\t.on( 'updated_results', function( event, results ) {\n\t\t\t\tvar labels = results.listing_labels_filter;\n\n\t\t\t\tif ( labels ) {\n\t\t\t\t\tvar $target = $(this);\n\n\t\t\t\t\t$target.find( '.astoundify-listing-labels-cloud' ).html( labels );\n\t\t\t\t\t$target.find( '.astoundify-listing-labels' ).show();\n\n\t\t\t\t\t$target.find( '.astoundify-listing-labels input' ).each(function(){\n\t\t\t\t\t\tvar val = $(this).val();\n\n\t\t\t\t\t\t$target.find( '.astoundify-listing-labels a:contains(' + val + ')' ).addClass( 'active' );\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\t$(this).find( '.astoundify-listing-labels' ).hide();\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// Update labels when categories change.\n\t\t\t.on( 'change', '#search_categories', function() {\n\t\t\t\tvar target = $( this ).closest( 'div.job_listings' );\n\n\t\t\t\ttarget.find( '.astoundify-listing-labels input' ).remove();\n\t\t\t\ttarget.trigger( 'update_results', [ 1, false ] );\n\t\t\t});\n\t});\n\n}( window ));"]}