{"version":3,"sources":["../ts/sections/activities/activities-search.ts"],"names":["$","$window","window","$html","resultsContext","ajax_1","AjaxContext","categoriesService","activities_1","Categories","site","data","lang","attr","each","i","activitiesSearch","$activitiesSearch","$results","resultsWidth","width","$activitiesSearchControl","sidebarWidth","outerWidth","$resultsWrapper","$subjectNavigation","$criteriaBucket","$inputKeywords","$searchHeading","$subjectText","$subjectAreaText","$searchTermsText","updateMoreFewer","$a","$parent","parent","localization_1","translate","then","itemResults","moreResult","fewerResult","hasClass","text","catch","error","ex","updateCriteriaBucket","checkbox","e","$checkbox","$li","closest","$label","find","let","$criteria","is","addClass","create","on","prop","checked","currentTarget","detach","trigger","length","html","appendTo","removeClass","bindSearchCriteriaOptions","element","$criterion","$ul","$aMoreFewer","hide","children","filter","show","buildPageTitle","searchTerms","trim","val","this","deserializeQuery","query","undefined","k","$subjectNavLis","selectOption","$select","opt","$opt","isMatch","selected","pgs","gs","sa","s","parents","subjectAreaId","$topicsListContainer","deferred","Deferred","promise","Promise","resolve","$topicsList","$this","removeAttr","remove","$criteriaItem","empty","topicsCache","caching_1","SessionStorageCache","get","onSuccess","results","result","append","prepend","type","name","value","itemId","setTimeout","getTopics","set","reject","$checks","argument","ids","split","v","check","$check","inArray","doSearch","newState","push","join","pg","parseInt","hasOwnProperty","isFinite","oldState","deparam","fragment","key","bbq","pushState","clear","args","insertAfter","bind","duration","collapsed","animate","marginLeft","fadeIn","fadeOut","preventDefault","removeState","toggleClass","$input","target","visitorSignedIn","lastQuery","lastRequest","state","sameQuery","toJSON","execQuery","extend","sc_ajax","ref","location","pathname","search","load","querystring","href","which","stopPropagation","siblings"],"mappings":"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","file":"activities-search.js","sourcesContent":["/// <reference path=\"../../def/global.d.ts\"/>\r\nimport { translate } from 'localization';\r\nimport { AjaxContext, AjaxResult } from 'ajax';\r\nimport { Categories as CategoriesService } from 'services/activities';\r\nimport { SessionStorageCache } from 'caching';\r\nimport * as $ from 'jquery';\r\n\r\ninterface QueryParameters {\r\n\tsa?: string;\r\n\ts?: string;\r\n\tk?: string;\r\n\tpg?: number;\r\n\tgs?: string;\r\n\tpgs?: string;\r\n\tsc_ajax?: string;\r\n\tref?: string;\r\n}\r\n\r\ninterface CategoryData {\r\n\tresults: Array<{\r\n\t\ttext: string;\r\n\t\titemId: string;\r\n\t}>;\r\n}\r\n\r\n$( () => {\r\n\tconst $window = $( window ),\r\n\t\t$html = $( 'html' ),\r\n\t\tresultsContext = new AjaxContext,\r\n\t\tcategoriesService = new CategoriesService,\r\n\t\tsite = $html.data( 'site' ),\r\n\t\tlang = $html.attr( 'lang' );\r\n\r\n\t$( '.sublayout-etactivities-search-v2' ).each( ( i, activitiesSearch ) => {\r\n\t\tconst $activitiesSearch = $( activitiesSearch ),\r\n\t\t\t$results = $( '.sublayout-etactivities-search-results', $activitiesSearch ),\r\n\t\t\tresultsWidth = $results.width(),\r\n\t\t\t$activitiesSearchControl = $( '.sublayout-etactivities-search-controls', $activitiesSearch ),\r\n\t\t\tsidebarWidth = $activitiesSearchControl.outerWidth(),\r\n\t\t\t$resultsWrapper = $( '.etactivities-search-results-content-wrapper', $activitiesSearch ),\r\n\t\t\t$subjectNavigation = $( '.etactivities-subject-navigation', $activitiesSearch ),\r\n\t\t\t$criteriaBucket = $( '.criteria-bucket', $results ),\r\n\t\t\t$inputKeywords = $( '.input-keywords', $activitiesSearch ),\r\n\t\t\t$searchHeading = $( '.etsearchheading', $activitiesSearch ),\r\n\t\t\t$subjectText = $( '.subject-text', $searchHeading ),\r\n\t\t\t$subjectAreaText = $( '.subject-area-text', $searchHeading ),\r\n\t\t\t$searchTermsText = $( '.search-terms-text', $searchHeading );\r\n\r\n\t\t$( '<a href=\"#\" class=\"expand\"/><a href=\"#\" class=\"collapse\"/>' )\r\n\t\t.insertAfter( $( 'h1:eq(0)', $activitiesSearchControl ) );\r\n\r\n\t\tfunction expand( duration = 0 ) {\r\n\t\t\t$( 'a.expand', $activitiesSearch ).fadeOut( duration );\r\n\r\n\t\t\t$activitiesSearchControl.animate( { marginLeft: 0 }, duration );\r\n\t\t\t$results.animate( { width: resultsWidth }, duration );\r\n\t\t}\r\n\r\n\t\tfunction collapse( duration = 0 ) {\r\n\t\t\tconst fudgeFactor = 20;\r\n\t\t\t$activitiesSearchControl.animate( { marginLeft: -sidebarWidth }, duration );\r\n\t\t\t$results.animate( { width: sidebarWidth + resultsWidth - fudgeFactor }, duration );\r\n\r\n\t\t\t$( 'a.expand', $activitiesSearch ).fadeIn( duration );\r\n\t\t}\r\n\r\n\t\t$window.bind( 'hashchange.axexpandcollapse', () => {\r\n\t\t\tconst state = $.deparam.fragment().collapsed;\r\n\t\t\tif( !state ) expand( 1000 );\r\n\t\t\telse collapse( 1000 );\r\n\t\t} );\r\n\t\t$window.trigger( 'hashchange.axexpandcollapse' );\r\n\r\n\t\t$activitiesSearchControl.on( 'click.expand', 'a.expand', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\t$.bbq.removeState( 'collapsed' );\r\n\t\t} );\r\n\r\n\t\t$activitiesSearchControl.on( 'click.collapse', 'a.collapse', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\t$.bbq.pushState( { collapsed: 1 } );\r\n\t\t} );\r\n\r\n\t\tfunction serializeQuery(): QueryParameters {\r\n\t\t\tconst query: any = {};\r\n\t\t\t//grab subject and subject area\r\n\t\t\tquery.sa = $( '.etactivities-subject-navigation li.selected > a[data-subject-area]', $activitiesSearchControl ).data( 'subject-area' );\r\n\t\t\tif( !query.sa ) {\r\n\t\t\t\tquery.s = $( '.etactivities-subject-navigation li.selected > a[data-subject]', $activitiesSearchControl ).data( 'subject' );\r\n\t\t\t}\r\n\r\n\t\t\tquery.k = $.trim( $inputKeywords.val() );\r\n\t\t\t\r\n\t\t\t//grab search criteria\r\n\t\t\t$( '[data-search-criteria-argument]', $activitiesSearchControl ).each( function() {\r\n\t\t\t\tconst value = [];\r\n\t\t\t\tconst $this = $( this );\r\n\t\t\t\tconst argument = $this.data( 'search-criteria-argument' );\r\n\t\t\t\t$this.find( ':checked' ).each( function() {\r\n\t\t\t\t\tvalue.push( $( this ).val() );\r\n\t\t\t\t} );\r\n\r\n\t\t\t\tquery[ argument ] = value.join( '.' );\r\n\t\t\t} );\r\n\r\n\t\t\tquery.pg = parseInt( $( '.etpaging a.active', $activitiesSearch ).text(), 10 );\r\n\r\n\t\t\t//grab sorting type\r\n\t\t\tquery.gs = $( '.etsortgroup option:selected', $activitiesSearch ).val();\r\n\t\t\t//grab page size\r\n\t\t\tquery.pgs = $( '.etpagesize option:selected', $activitiesSearch ).val();\r\n\r\n\t\t\tfor( let i in query ) if( query.hasOwnProperty( i ) ) {\r\n\t\t\t\tswitch( typeof query[ i ] ) {\r\n\t\t\t\tcase 'undefined':\r\n\t\t\t\t\tdelete query[ i ];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'number':\r\n\t\t\t\t\tif( !isFinite( query[ i ] ) ) delete query[ i ];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'string':\r\n\t\t\t\t\tif( !query[ i ] ) delete query[ i ];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'object':\r\n\t\t\t\t\tif( query[ i ] === null ) delete query[ i ];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn query;\r\n\t\t}\r\n\r\n\t\tfunction updateMoreFewer( $a: JQuery ) {\r\n\t\t\tconst $parent = $a.parent();\r\n\t\t\ttry\r\n\t\t\t{\r\n\t\t\t\ttranslate( [ 'Activities/See More', 'Activities/See Fewer' ] )\r\n\t\t\t\t.then( itemResults => {\r\n\t\t\t\t\tconst [ moreResult, fewerResult ] = itemResults;\r\n\t\t\t\t\tif( $parent.hasClass( 'fewer' ) ) {\r\n\t\t\t\t\t\t$a.text( moreResult.text );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$a.text( fewerResult.text );\r\n\t\t\t\t\t}\r\n\t\t\t\t} )\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tif( $parent.hasClass( 'fewer' ) ) {\r\n\t\t\t\t\t\t$a.text( 'See More' );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$a.text( 'See Fewer' );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tcatch(ex)\r\n\t\t\t{\r\n\t\t\t\tif( $parent.hasClass( 'fewer' ) ) {\r\n\t\t\t\t\t$a.text( 'See More' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$a.text( 'See Fewer' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\r\n\t\tfunction updateCriteriaBucket( checkbox: Element|JQuery ) {\r\n\t\t\t$( checkbox ).each( ( i, e ) => {\r\n\t\t\t\tconst $checkbox = $( e ),\r\n\t\t\t\t\t$li = $checkbox.closest( 'li' ),\r\n\t\t\t\t\t$label = $li.find( 'label' );\r\n\t\t\t\tlet $criteria = $li.data( 'criteria-item' );\r\n\r\n\t\t\t\tif( $checkbox.is( ':checked' ) ) {\r\n\t\t\t\t\t$li.addClass( 'checked' );\r\n\r\n\t\t\t\t\tif( !$criteria ) {\r\n\t\t\t\t\t\t$criteria = \r\n\t\t\t\t\t\t\t$.create( 'span' )\r\n\t\t\t\t\t\t\t.addClass( 'criteria-item' )\r\n\t\t\t\t\t\t\t.text( $label.text() )\r\n\t\t\t\t\t\t\t.on( 'click', e => {\r\n\t\t\t\t\t\t\t\t$checkbox.prop( { checked: false } );\r\n\t\t\t\t\t\t\t\t$( e.currentTarget ).detach();\r\n\t\t\t\t\t\t\t\t$checkbox.trigger( 'change' );\r\n\t\t\t\t\t\t\t} );\r\n\t\t\t\t\t\t\tif($label.attr(\"class\") == \"radiobutton\")\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t$criteria = \r\n\t\t\t\t\t\t\t$.create( 'span' )\r\n\t\t\t\t\t\t\t.addClass( 'criteria-item' )\r\n\t\t\t\t\t\t\t.addClass( 'criteria-radiobutton' )\r\n\t\t\t\t\t\t\t.text( $label.text() )\r\n\t\t\t\t\t\t\t.on( 'click', e => {\r\n\t\t\t\t\t\t\t\t$checkbox.prop( { checked: false } );\r\n\t\t\t\t\t\t\t\t$( e.currentTarget ).detach();\r\n\t\t\t\t\t\t\t\t$checkbox.trigger( 'change' );\r\n\t\t\t\t\t\t\t} );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$li.data( 'criteria-item', $criteria );\r\n\t\t\t\t\t}\r\n\t\t\t\t\t if($(\".criteria-radiobutton\").length >0 && $(\".criteria-radiobutton\").html() != \"\")\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t$(\".criteria-radiobutton\").html($label.text());\r\n\t\t\t\t\t }\r\n else\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\tif( $criteria.parent().length <= 0 ) $criteria.appendTo( $criteriaBucket );\r\n\t\t\t\t\t }\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$li.removeClass( 'checked' );\r\n\t\t\t\t\tif( $criteria ) $criteria.detach();\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\tfunction bindSearchCriteriaOptions( element: Element|JQuery ) {\r\n\t\t\tconst criteriaListMinCount = 4,\r\n\t\t\t\t$criterion = $( element ),\r\n\t\t\t\t$ul = $criterion.find( 'ul' ),\r\n\t\t\t\t$parent = $ul.parent();\r\n\t\t\tupdateCriteriaBucket( $criterion.find( ':checkbox' ) );\r\n\t\t\tlet $aMoreFewer = $( 'a.criteria-toggle', $criterion );\r\n\t\t\tif( $aMoreFewer.length <= 0 ) $aMoreFewer = $.create( 'a' ).addClass( 'criteria-toggle' );\r\n\t\t\t$aMoreFewer.hide().appendTo( $criterion );\r\n\r\n\t\t\tif( $ul.children( 'li' ).length > criteriaListMinCount ) {\r\n\t\t\t\t$parent.addClass( 'fewer' );\r\n\r\n\t\t\t\t//if there are no featured items, then we pick the top 4 in the list to be \"featured\"\r\n\t\t\t\tif( !$ul.children( 'li.featured' ).length ) {\r\n\t\t\t\t\t$ul.children( 'li' ).filter( i => i < criteriaListMinCount ).addClass( 'featured' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tupdateMoreFewer( $aMoreFewer );\r\n\t\t\t\t$aMoreFewer.show();\r\n\t\t\t\t//criteriaList.height( showFewerCriteriaItems( criteriaList, criteriaListMinCount ) );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction buildSubjectAreaTopics( subjectAreaId: string ): PromiseLike<{}> {\r\n\t\t\tconst $topicsListContainer = $( '.etactivities-search-criteria-topics', $activitiesSearchControl ),\r\n\t\t\t\tdeferred = $.Deferred(),\r\n\t\t\t\tpromise: PromiseLike<{}> = Promise.resolve<{}>( deferred.promise() );\r\n\t\t\tlet $topicsList = $topicsListContainer.children( 'ul' );\r\n\t\t\tif( $topicsList.length <= 0 ) $topicsList = $.create( 'ul' ).appendTo( $topicsListContainer );\r\n\r\n\t\t\t//check criteria and see if topics exist already in refine criteria section\r\n\t\t\t$topicsList.find( ':checked' ).each( ( i, e ) => {\r\n\t\t\t\tconst $this = $( e ),\r\n\t\t\t\t\t$criteria = $this.parent( 'li' ).data( 'criteria-item' );\r\n\r\n\t\t\t\t$this.removeAttr( 'checked' );\r\n\t\t\t\tif( $criteria ) $criteria.remove();\r\n\t\t\t} );\r\n\r\n\t\t\tif( subjectAreaId ) {\r\n\t\t\t\t$topicsList.children( 'li' ).each( ( i, e ) => {\r\n\t\t\t\t\tconst $criteriaItem = $( e ).data( 'criteria-item' );\r\n\t\t\t\t\tif( $criteriaItem ) $criteriaItem.remove();\r\n\t\t\t\t} );\r\n\r\n\t\t\t\t$topicsList.empty();\r\n\t\t\t\tconst topicsCache = new SessionStorageCache<string, CategoryData>( `ax-topics$${site}$${lang}` ),\r\n\t\t\t\t\tdata = topicsCache.get( subjectAreaId ),\r\n\t\t\t\t\tonSuccess = ( data: CategoryData ) => {\r\n\t\t\t\t\t\t$.each( data.results, ( i, result ) => {\r\n\t\t\t\t\t\t\t$topicsList.append(\r\n\t\t\t\t\t\t\t\t$.create( 'li' ).append(\r\n\t\t\t\t\t\t\t\t\t$.create( 'label' )\r\n\t\t\t\t\t\t\t\t\t.text( result.text )\r\n\t\t\t\t\t\t\t\t\t.prepend(\r\n\t\t\t\t\t\t\t\t\t\t$.create( 'input' ).attr( { type: 'checkbox', name: 't', value: result.itemId } )\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} );\r\n\r\n\t\t\t\t\t\tbindSearchCriteriaOptions( $topicsListContainer );\r\n\r\n\t\t\t\t\t\tif( $topicsList.children().length > 0 ) {\r\n\t\t\t\t\t\t\t$topicsListContainer.show();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$topicsListContainer.hide();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdeferred.resolve();\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\tif( data ) {\r\n\t\t\t\t\tsetTimeout( () => { onSuccess( data ); }, 0 );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcategoriesService.getTopics( [ subjectAreaId ], site, lang )\r\n\t\t\t\t\t.then(\r\n\t\t\t\t\t\t( data ) => {\r\n\t\t\t\t\t\t\ttopicsCache.set( subjectAreaId, data );\r\n\t\t\t\t\t\t\tonSuccess( data );\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t() => { deferred.reject(); }\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t} else{\r\n\t\t\t\t$topicsListContainer.hide();\r\n\t\t\t\tdeferred.resolve();\r\n\t\t\t}\r\n\t\t\treturn promise;\r\n\t\t}\r\n\r\n\t\tfunction buildPageTitle() {\r\n\t\t\tconst searchTerms = $.trim( $inputKeywords.val() );\r\n\t\t\t$searchHeading.find( '.breadcrumb' ).hide();\r\n\r\n\t\t\t$subjectAreaText.text( '' );\r\n\t\t\t$subjectText.text( '' );\r\n\r\n\t\t\t$( '.etactivities-subject-navigation li.selected > a', $activitiesSearchControl ).each( function() {\r\n\t\t\t\tconst $a = $( this );\r\n\t\t\t\tif( $a.data( 'subject' ) ) {\r\n\t\t\t\t\t$subjectText.text( $a.text() ).closest( '.breadcrumb' ).show();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( $a.data( 'subject-area' ) ) {\r\n\t\t\t\t\t$subjectAreaText.text( $a.text() ).closest( '.breadcrumb' ).show();\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\r\n\t\t\tif( searchTerms ) {\r\n\t\t\t\t$searchTermsText.text( searchTerms ).closest( '.breadcrumb' ).show();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction deserializeQuery( query: QueryParameters ) {\r\n\t\t\t// We must be careful not to trigger unnecessary change events,\r\n\t\t\t// otherwise a circular event loop could be triggered.\r\n\t\t\t// Only set a value if it is actually different from the current value.\r\n\t\t\tlet $checkbox = undefined;\r\n\t\t\tconst k = $.trim( query.k || '' );\r\n\t\t\tconst $subjectNavLis = $( '.etactivities-subject-navigation li', $activitiesSearchControl );\r\n\r\n\t\t\tfunction selectOption( $select: JQuery, val = '' ) {\r\n\t\t\t\t$select.children( 'option' )\r\n\t\t\t\t.each( ( i, opt ) => {\r\n\t\t\t\t\tconst $opt = $( opt ),\r\n\t\t\t\t\t\tisMatch = $opt.val() === val;\r\n\t\t\t\t\tif( $opt.is( ':selected' ) !== isMatch ) {\r\n\t\t\t\t\t\t$opt.prop( { selected: isMatch } );\r\n\t\t\t\t\t}\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\r\n\t\t\tselectOption( $( '.etpagesize', $activitiesSearch ), query.pgs );\r\n\t\t\tselectOption( $( '.etsortgroup', $activitiesSearch ), query.gs );\r\n\r\n\t\t\tif( $inputKeywords.val() !== k ) $inputKeywords.val( k );\r\n\r\n\t\t\tif( query.sa ) {\r\n\t\t\t\t$checkbox =\r\n\t\t\t\t\t$subjectNavLis.find( 'a[data-subject-area]' )\r\n\t\t\t\t\t.filter( ( i, e ) => $(e).data( 'subject-area' ) === query.sa );\r\n\t\t\t} else if( query.s ) {\r\n\t\t\t\t$checkbox =\r\n\t\t\t\t\t$subjectNavLis.find( 'a[data-subject]' )\r\n\t\t\t\t\t.filter( ( i, e ) => $(e).data( 'subject' ) === query.s );\r\n\t\t\t}\r\n\r\n\t\t\t$subjectNavLis.removeClass( 'selected' );\r\n\t\t\tif( $checkbox && $checkbox.length ) {\r\n\t\t\t\t$checkbox.parents( 'li' ).addClass( 'selected' );\r\n\t\t\t} else {\r\n\t\t\t\t$subjectNavLis.filter( '.subjects-all' ).addClass( 'selected' );\r\n\t\t\t}\r\n\r\n\t\t\tbuildPageTitle();\r\n\r\n\t\t\tbuildSubjectAreaTopics( query.sa )\r\n\t\t\t.then( () => {\r\n\t\t\t\t$( '[data-search-criteria-argument]', $activitiesSearchControl ).each( ( i, e ) => {\r\n\t\t\t\t\tconst $this = $( e ),\r\n\t\t\t\t\t\t$checks = $this.find( ':checkbox' ),\r\n\t\t\t\t\t\targument = $this.data( 'search-criteria-argument' ),\r\n\t\t\t\t\t\tids = ( query[ argument ] || '' ).split( '.' ).filter( v => !!v );\r\n\r\n\t\t\t\t\t$checks.each( ( i, check ) => {\r\n\t\t\t\t\t\tconst $check = $( check ), isMatch = $.inArray( $check.val(), ids ) >= 0;\r\n\t\t\t\t\t\tif( $check.is( ':checked' ) !== isMatch ) {\r\n\t\t\t\t\t\t\t$check.prop( { checked: isMatch } );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} );\r\n\r\n\t\t\t\t\tupdateCriteriaBucket( $checks );\r\n\t\t\t\t} );\r\n\t\t\t} );\r\n\t\t};\r\n\r\n\t\tfunction doSearch() {\r\n\t\t\tconst newState = serializeQuery(),\r\n\t\t\t\toldState = $.deparam.fragment();\r\n\t\t\t\t\r\n\t\t\t$.each( [ 'collapsed' ], ( i, key ) => {\r\n\t\t\t\tif( key in oldState && !( key in newState ) ) newState[ key ] = oldState[ key ];\r\n\t\t\t} );\r\n\t\t\t\t\r\n\t\t\t$.bbq.pushState( newState, 2 );\r\n\t\t}\r\n\r\n\t\tfunction readQuery(): QueryParameters {\r\n\t\t\tconst query: any = {},\r\n\t\t\t\tstate = $.deparam.fragment();\r\n\t\t\t$.each( [ 'rt','frm','acs', 'aligned', 'app', 'cs', 'd', 'fa', 'gs', 'k', 'l', 'my', 'pg', 'pgs', 's', 'sa', 'se', 't' ], ( i, key ) => {\r\n\t\t\t\tif( key in state ) query[ key ] = state[ key ];\r\n\t\t\t} );\r\n\t\t\treturn query;\r\n\t\t}\r\n\r\n\t\t( () => {\r\n\t\t\tfunction clear( ...args: Array<string> ) {\r\n\t\t\t\tif( args.length === 0 || $.inArray( 'subject', args ) >= 0 ) {\r\n\t\t\t\t\t$( '.etactivities-subject-navigation li.selected:has( > a[data-subject] )', $activitiesSearchControl ).removeClass( 'selected' );\r\n\t\t\t\t\t$( '.subjects-all', $activitiesSearchControl ).addClass( 'selected' );\r\n\t\t\t\t}\r\n\t\t\t\tif( args.length === 0 || $.inArray( 'subjectArea', args ) >= 0 ) {\r\n\t\t\t\t\t$( '.etactivities-subject-navigation li.selected:has( > a[data-subject-area] )', $activitiesSearchControl ).removeClass( 'selected' );\r\n\t\t\t\t}\r\n\t\t\t\tif( args.length === 0 || $.inArray( 'keywords', args ) >= 0 ) {\r\n\t\t\t\t\t$inputKeywords.val( '' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbuildPageTitle();\r\n\t\t\t\tdoSearch();\r\n\t\t\t}\r\n\r\n\t\t\t$activitiesSearch.on( 'click', '.page-title-text', e => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tclear();\r\n\t\t\t} );\r\n\r\n\t\t\t$activitiesSearch.on( 'click', '.subject-text', e => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tclear( 'subject', 'subjectArea' );\r\n\t\t\t} );\r\n\r\n\t\t\t$activitiesSearch.on( 'click', '.subject-area-text', e => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tclear( 'subjectArea' );\r\n\t\t\t} );\r\n\r\n\t\t\t$activitiesSearch.on( 'click', '.search-terms-text', e => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tclear( 'keywords' );\r\n\t\t\t} );\r\n\t\t} )();;\r\n\r\n\t\t$activitiesSearchControl.on( 'click', 'a.criteria-toggle', function( e ) {\r\n\t\t\te.preventDefault();\r\n\t\t\tconst $a = $( this );\r\n\t\t\t$a.parent().toggleClass( 'fewer' );\r\n\t\t\tupdateMoreFewer( $a );\r\n\t\t} );\r\n\r\n\t\t$activitiesSearchControl.on( 'change', ':checkbox', e => {\r\n\t\t\tconst $input = $( e.target ),\r\n\t\t\t\tvisitorSignedIn = $html.hasClass( 'visitor-signed-in' );\r\n\r\n\t\t\tif( $input.attr( 'name' ) === 'my' && !visitorSignedIn ) {\r\n\t\t\t\t$input.prop( { checked: false } );\r\n\t\t\t} else {\r\n\t\t\t\tdoSearch();\r\n\t\t\t}\r\n\r\n\t\t\tupdateCriteriaBucket( <Element>e.currentTarget );\r\n\t\t} );\r\n\r\n\t\t$activitiesSearchControl.on( 'change', ':radio', e => {\r\n\t\t\tconst $input = $( e.target ),\r\n\t\t\t\tvisitorSignedIn = $html.hasClass( 'visitor-signed-in' );\r\n\r\n\t\t\tif( $input.attr( 'name' ) === 'my' && !visitorSignedIn ) {\r\n\t\t\t\t$input.prop( { checked: false } );\r\n\t\t\t} else {\r\n\t\t\t\tdoSearch();\r\n\t\t\t}\r\n\r\n\t\t\tupdateCriteriaBucket( <Element>e.currentTarget );\r\n\t\t} );\r\n\r\n\t\tlet lastQuery: QueryParameters = null,\r\n\t\t\tlastRequest: AjaxResult<void> = null;\r\n\t\t$window.bind( 'hashchange.axsearch', () => {\r\n\t\t\tconst query = readQuery(),\r\n\t\t\t\tsameQuery = $.toJSON( query ) === $.toJSON( lastQuery );\r\n\r\n\t\t\tfunction execQuery() {\r\n\t\t\t\tdeserializeQuery( query );\r\n\r\n\t\t\t\tlastQuery = $.extend( {}, query );\r\n\r\n\t\t\t\tquery.sc_ajax = '1';\r\n\t\t\t\tquery.ref = (<any>($.param)).fragment( location.pathname + location.search, {}, 2 );\r\n\r\n\t\t\t\tlastRequest = resultsContext.load( $resultsWrapper, (<any>($.param)).querystring( location.href, query, 2 ), '.etactivities-search-results-content' );\r\n\r\n\t\t\t\tlastRequest\r\n\t\t\t\t.then( () => {}, () => {} ) // catch errors\r\n\t\t\t\t.then( () => { $html.removeClass( 'submitting' ); } );\r\n\r\n\t\t\t\t$html.addClass( 'submitting' );\r\n\t\t\t}\r\n\r\n\t\t\tif( sameQuery && lastRequest ) { // if query has not changed, then only repeat request if the previous one fails\r\n\t\t\t\tlastRequest.then( () => {}, execQuery );\r\n\t\t\t} else { // otherwise query has changed, so cancel current request and issue a new one\r\n\t\t\t\texecQuery();\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\t$activitiesSearch.on( 'click', ':button, :submit', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\tdoSearch();\r\n\t\t} );\r\n\r\n\t\t$activitiesSearch.on( 'keypress', e => {\r\n\t\t\tif( e.which === 13 ) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tdoSearch();\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t\t$subjectNavigation.on( 'click', 'a', e => {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tconst $a = $( e.target );\r\n\t\t\t$subjectNavigation.find( 'li' ).removeClass( 'selected' );\r\n\t\t\t$a.parents( 'li' ).addClass( 'selected' );\r\n\r\n\t\t\tdoSearch();\r\n\t\t} );\r\n\r\n\t\t$( '.etactivities-search-criterion', $activitiesSearch ).each( ( i, e ) => {\r\n\t\t\tbindSearchCriteriaOptions( e );\r\n\t\t} );\r\n\r\n\t\t$resultsWrapper.on( 'click', '.etpaging a', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\t$( e.target ).addClass( 'active' ).siblings().removeClass( 'active' );\r\n\t\t\tdoSearch();\r\n\t\t} );\r\n\r\n\t\t$resultsWrapper.on( 'change', '.etsortgroup, .etpagesize', () => {\r\n\t\t\tdoSearch();\r\n\t\t} );\r\n\t\t\t\r\n\t\t$resultsWrapper.on( 'click', '.pagingStyle', e => {\r\n\t\t\tconst $this = $( e.target );\r\n\t\t\te.preventDefault();\r\n\t\t\t$this.addClass( 'selected' );\r\n\t\t\tdoSearch();\r\n\t\t} );\r\n\r\n\t\t$resultsWrapper.on( 'change', '.groupSelect', e => {\r\n\t\t\tconst $this = $( e.target );\r\n\t\t\t$( '.groupSelect' ).val( $this.val() );\r\n\t\t\tdoSearch();\r\n\t\t} );\r\n\r\n\t\t$resultsWrapper.on( 'change', '.pageSizeSelect', e => {\r\n\t\t\tconst $this = $( e.target );\r\n\t\t\t$( '.pageSizeSelect' ).val( $this.val() );\r\n\t\t\tdoSearch();\r\n\t\t} );\r\n\r\n\t\t$window.trigger( 'hashchange.axsearch' );\r\n\t} );\r\n} );\r\n"]}