{"version":3,"sources":["../ts/sections/activities/microsites/listing.ts"],"names":["$","getQuery","url","history","getState","indexOf","deparam","querystring","getIds","ids","split","filter","i","map","id_1","toShorterId","each","listing","$listing","$ajax","previousQuery","ajaxContext","ajax_1","AjaxContext","loadAjax","deferred","Deferred","resolve","query","$selects","newIds","c","select","$options","children","$selectedOption","option","val","eq","length","prop","then","load","sc_ajax","removeClass","addClass","expandModules","expandModuleIds","m","$tbodies","$expandTBodies","tbody","some","expandedModuleId","equals","data","not","onStateChange","extend","pushState","currentState","location","href","reject","title","document","onCategoryChange","e","stopPropagation","$select","currentTarget","selectIds","Array","from","o","allIds","categories","id","concat","join","on","preventDefault","$t","legacyId","closest","activityId","toShortId","Dialogs","Init","dialogData","Open","optional","aID","stopImmediatePropagation","$moduleRow","expandedModuleIds","moduleId","found","push","window"],"mappings":"0LAWAA,EAAG,KACF,SAASC,SAAUC,IAAcC,QAAQC,SAAQ,EAAGF,KACnD,OAAIA,KAA6B,GAAtBA,IAAIG,QAAS,GAAG,EAAiBL,EAAEM,QAAQC,YAAaL,GAAG,EAC1D,EACb,CAEA,SAASM,OAAQC,KAChB,OAASA,KAAO,IAAKC,MAAO,GAAG,EAAGC,OAAQC,GAAK,CAAC,CAACA,CAAC,EAAGC,IAAKC,KAAAC,WAAW,CACtE,CAEAf,EAAG,uCAAuC,EAAGgB,KAAM,CAAEJ,EAAGK,WACvD,IAAIC,SAAWlB,EAAGiB,OAAO,EACxBE,MAAQnB,EAAG,mCAAoCkB,QAAQ,EACvDE,cAAwBnB,SAAUE,QAAQC,SAAQ,EAAGF,GAAG,EACxDmB,YAAc,IAAIC,OAAAC,YAEnB,SAASC,WACR,IAAIC,SAA4BzB,EAAE0B,SAAQ,EAAGC,QAAO,EACnDzB,IAAMC,QAAQC,SAAQ,EAAGF,IACzB0B,MAAQ3B,SAAUC,GAAG,EACrB2B,SAAW7B,EAAG,oBAAqBkB,QAAQ,EAC3CY,OAAStB,OAAQoB,MAAMG,CAAC,EAqBzB,OAnBAF,SAASb,KAAM,CAAEJ,EAAGoB,UACnB,IACCC,OADajC,EAAGgC,MAAM,EACHE,SAAU,QAAQ,EACrCC,gBAAkBF,OAAStB,OAAQ,CAAEC,EAAGwB,SAAmD,GAAvCN,OAAOzB,QAASL,EAAGoC,MAAM,EAAGC,IAAG,CAAE,CAAO,EAAGC,GAAI,CAAC,GAEjGH,gBAAgBI,OACnBJ,gBAEAF,OAASK,GAAI,CAAC,GAFEE,KAAM,WAAY,UAAU,CAI9C,CAAC,EAEDf,SAAWA,SAASgB,KAAM,IACzBpB,YAAYqB,KAAMvB,MAAcnB,EAAO,MAAGO,YAAaL,IAAK,CAAEyC,QAAS,CAAC,CAAE,EAAI,cAAc,EAC3FF,KAAM,KAAQtB,MAAMyB,YAAa,cAAc,CAAI,CAAC,CAAE,EAGxDzB,MAAM0B,SAAU,cAAc,EAEvBpB,QACR,CAEA,SAASqB,gBACR,IAECC,gBAAkBvC,OADVP,SADCE,QAAQC,SAAQ,EAAGF,GACP,EACW8C,CAAC,EACjCC,SAAWjD,EAAG,4GAA6GkB,QAAQ,EACnIgC,eAAiBD,SAAStC,OAAQ,CAAEC,EAAGuC,QAAWJ,gBAAgBK,KAAMC,mBAAoB,EAAAvC,KAAAwC,QAAUtD,EAAEmD,KAAK,EAAEI,KAAM,UAAU,EAAIF,gBAAgB,CAAE,CAAE,EASxJ,OAPIJ,SAASV,QAAU,IACtBW,eAAiBD,UAGlBA,SAASO,IAAKN,cAAc,EAAGN,YAAa,UAAU,EAAGC,SAAU,WAAW,EAC9EK,eAAeN,YAAa,WAAW,EAAGC,SAAU,UAAU,EAEvD7C,EAAE0B,SAAQ,EAAGC,QAAO,CAC5B,CAEA,SAAS8B,gBACR,IAAIhC,SAA4BzB,EAAE0B,SAAQ,EAAGC,QAAO,EAEnDC,MAAQ3B,SADFE,QAAQC,SAAQ,EAAGF,GACJ,EAMtBuB,UAHCA,SADGG,MAAMG,IAAMX,cAAcW,EAClBN,SAASgB,KAAMjB,QAAQ,EAGxBC,UAASgB,KAAMK,aAAa,EAIvC,OAFA1B,cAAgBpB,EAAE0D,OAAQ,GAAI9B,KAAK,EAE5BH,QACR,CAEA,SAASkC,UAAW/B,OACnB,IAAMgC,aAAezD,QAAQC,SAAQ,EACpCF,MAAaF,EAAO,MAAGO,YAAaqD,aAAa1D,IAAK0B,MAAO,CAAC,EAC/D,GAAIiC,SAASC,OAAS5D,MAAM,OAAOF,EAAE0B,SAAQ,EAAGqC,OAAM,EAEtD5D,QAAQwD,UAAW,KAAMC,aAAaI,OAASC,SAASD,MAAO9D,KAAG,EAC3DuD,cAAa,CACrB,CAEA,SAASS,iBAAkBC,GAC1BA,EAAEC,gBAAe,EAEjB,IAAIC,EAAUrE,EAAGmE,EAAEG,aAAa,EAC/BC,UAAYC,MAAMC,KAAMJ,EAAQnC,SAAU,iBAAiB,EAAIwC,GAAK1E,EAAE0E,CAAC,EAAErC,IAAG,CAAE,EAC9EsC,OAASH,MAAMC,KAAMJ,EAAQnC,SAAU,QAAQ,EAAIwC,GAAK1E,EAAE0E,CAAC,EAAErC,IAAG,CAAE,EAElET,EAAQ3B,SADFE,QAAQC,SAAQ,EAAGF,GACJ,EACrB0E,UAAapE,OAAQoB,EAAMG,CAAC,EAAGpB,OAAQkE,IAAMF,OAAOtE,QAASwE,EAAE,EAAK,CAAC,EAAGC,OAAQP,SAAS,EAE1F3C,EAAMG,EAAI6C,UAAWG,KAAM,GAAG,EAEzBnD,EAAMG,GAAI,OAAOH,EAAMG,EAE5B4B,UAAW/B,CAAK,CACjB,CAEAV,SAAS8D,GAAI,SAAU,oBAAqBd,gBAAgB,EAC5DhD,SAAS8D,GAAI,QAAS,oBAAqBd,gBAAgB,EAE3DhD,SAAS8D,GAAI,QAAS,eAAgBb,IACrCA,EAAEc,eAAc,EAEhB,IAAIC,EAAKlF,EAAGmE,EAAEG,aAAa,EAC1Ba,SAAWD,EAAGE,QAAS,yBAAyB,EAAG7B,KAAM,kBAAkB,EAC3E8B,YAAa,EAAAvE,KAAAwE,WAAWJ,EAAGE,QAAS,mBAAmB,EAAG7B,KAAM,YAAY,CAAE,EAE/EgC,QAAQC,KAAM,YAAaC,aAC1BA,WAAWC,KAAM,CAAEC,SAAU,CAAA,EAAMC,IAAKT,UAAYE,UAAU,CAAE,CACjE,CAAC,CACF,CAAC,EAEDnE,SAAS8D,GAAI,QAAS,cAAeb,IACpCA,EAAEc,eAAc,EAEhB,IAAIC,EAAKlF,EAAGmE,EAAEG,aAAa,EAC1Ba,SAAWD,EAAGE,QAAS,yBAAyB,EAAG7B,KAAM,kBAAkB,EAC3E8B,YAAa,EAAAvE,KAAAwE,WAAWJ,EAAGE,QAAS,mBAAmB,EAAG7B,KAAM,YAAY,CAAE,EAE/EgC,QAAQC,KAAM,iBAAkBC,aAC/BA,WAAWC,KAAM,CAAEC,SAAU,CAAA,EAAMC,IAAKT,UAAYE,UAAU,CAAE,CACjE,CAAC,CACF,CAAC,EAEDnE,SAAS8D,GAAI,QAAS,mDAAoDb,IACzEA,EAAEc,eAAc,EAChBd,EAAE0B,yBAAwB,EAE1B,IAAI5C,SAAWjD,EAAG,4GAA6GkB,QAAQ,EACtI4E,EAAa9F,EAAGmE,EAAEG,aAAa,EAE/B1C,MAAQ3B,SADFE,QAAQC,SAAQ,EAAGF,GACJ,EACrB6F,kBAAoBvF,OAAQoB,MAAMoB,CAAC,EACnCgD,SAAWF,EAAWV,QAAS,iBAAiB,EAAG7B,KAAM,UAAU,EACnE0C,MAAQ,CAAA,EAELhD,SAASV,QAAU,IAEvBwD,kBAAoBA,kBAAkBpF,OAAQ0C,kBACzC,EAAA,EAAAvC,KAAAwC,QAAU0C,SAAU3C,gBAAgB,GAEhC,EADP4C,MAAQ,CAAA,EAKT,EAEIA,OAAQF,kBAAkBG,MAAM,EAAApF,KAAAC,aAAaiF,QAAQ,CAAE,EAExDD,kBAAkBxD,OAASX,MAAMoB,EAAI+C,kBAAkBhB,KAAM,GAAG,EAC/D,OAAOnD,MAAMoB,EAElBW,UAAW/B,KAAK,EACjB,CAAC,EAED5B,EAAGmG,MAAM,EAAGnB,GAAI,WAAYvB,aAAa,CAC1C,CAAC,CACF,CAAC","file":"listing.js","sourcesContent":["import * as history from 'history';\r\nimport { AjaxContext } from 'ajax';\r\nimport { toShortId, toShorterId, equals as idEquals } from 'utilities/id';\r\nimport * as $ from 'jquery';\r\n\r\ninterface IQuery extends IDictionary<string> {\r\n\tc?: string;\r\n\tm?: string;\r\n\tsc_ajax?: string;\r\n}\r\n\r\n$( () => {\r\n\tfunction getQuery( url: string = history.getState().url ): IQuery {\r\n\t\tif( url && url.indexOf( '?' ) >= 0 ) return $.deparam.querystring( url );\r\n\t\telse return {};\r\n\t}\r\n\r\n\tfunction getIds( ids: string ): string[] {\r\n\t\treturn ( ids || '' ).split( '.' ).filter( i => !!i ).map( toShorterId );\r\n\t}\r\n\r\n\t$( '.sublayout-activity-microsite-listing' ).each( ( i, listing ) => {\r\n\t\tvar $listing = $( listing ),\r\n\t\t\t$ajax = $( '.activity-microsite-listing-ajax', $listing ),\r\n\t\t\tpreviousQuery: IQuery = getQuery( history.getState().url ),\r\n\t\t\tajaxContext = new AjaxContext;\r\n\r\n\t\tfunction loadAjax() {\r\n\t\t\tvar deferred: PromiseLike<{}> = $.Deferred().resolve(),\r\n\t\t\t\turl = history.getState().url,\r\n\t\t\t\tquery = getQuery( url ),\r\n\t\t\t\t$selects = $( '.etcategoryselect', $listing ),\r\n\t\t\t\tnewIds = getIds( query.c );\r\n\r\n\t\t\t$selects.each( ( i, select ) => {\r\n\t\t\t\tvar $select = $( select ),\r\n\t\t\t\t\t$options = $select.children( 'option' ),\r\n\t\t\t\t\t$selectedOption = $options.filter( ( i, option ) => newIds.indexOf( $( option ).val() ) >= 0 ).eq( 0 );\r\n\r\n\t\t\t\tif( $selectedOption.length ) {\r\n\t\t\t\t\t$selectedOption.prop( 'selected', 'selected' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$options.eq( 0 ).prop( 'selected', 'selected' );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\r\n\t\t\tdeferred = deferred.then( () =>\r\n\t\t\t\tajaxContext.load( $ajax, (<any>($.param)).querystring( url, { sc_ajax: 1 } ), '#ajax-result' )\r\n\t\t\t\t.then( () => { $ajax.removeClass( 'ajax-loading' ); } )\r\n\t\t\t);\r\n\r\n\t\t\t$ajax.addClass( 'ajax-loading' );\r\n\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\tfunction expandModules(): PromiseLike<{}> {\r\n\t\t\tvar url = history.getState().url,\r\n\t\t\t\tquery = getQuery( url ),\r\n\t\t\t\texpandModuleIds = getIds( query.m ),\r\n\t\t\t\t$tbodies = $( '.sublayout-activity-microsite-listing-table > tbody:has(.sublayout-activity-microsite-listing-module-row)', $listing ),\r\n\t\t\t\t$expandTBodies = $tbodies.filter( ( i, tbody ) => expandModuleIds.some( expandedModuleId => idEquals( $(tbody).data( 'moduleid' ), expandedModuleId ) ) );\r\n\r\n\t\t\tif( $tbodies.length <= 1 ) {\r\n\t\t\t\t$expandTBodies = $tbodies;\r\n\t\t\t}\r\n\r\n\t\t\t$tbodies.not( $expandTBodies ).removeClass( 'expanded' ).addClass( 'collapsed' );\r\n\t\t\t$expandTBodies.removeClass( 'collapsed' ).addClass( 'expanded' );\r\n\r\n\t\t\treturn $.Deferred().resolve();\r\n\t\t}\r\n\r\n\t\tfunction onStateChange() {\r\n\t\t\tvar deferred: PromiseLike<{}> = $.Deferred().resolve(),\r\n\t\t\t\turl = history.getState().url,\r\n\t\t\t\tquery = getQuery( url );\r\n\r\n\t\t\tif( query.c !== previousQuery.c ) {\r\n\t\t\t\tdeferred = deferred.then( loadAjax );\r\n\t\t\t}\r\n\r\n\t\t\tdeferred = deferred.then( expandModules );\r\n\r\n\t\t\tpreviousQuery = $.extend( {}, query );\r\n\t\t\t\r\n\t\t\treturn deferred;\r\n\t\t}\r\n\r\n\t\tfunction pushState( query: IQuery ) {\r\n\t\t\tconst currentState = history.getState(),\r\n\t\t\t\turl = (<any>($.param)).querystring( currentState.url, query, 2 );\r\n\t\t\tif( location.href === url ) return $.Deferred().reject();\r\n\r\n\t\t\thistory.pushState( null, currentState.title || document.title, url );\r\n\t\t\treturn onStateChange();\r\n\t\t}\r\n\r\n\t\tfunction onCategoryChange( e: Event ) {\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t\tvar $select = $( e.currentTarget ),\r\n\t\t\t\tselectIds = Array.from( $select.children( 'option:selected' ), o => $(o).val() ),\r\n\t\t\t\tallIds = Array.from( $select.children( 'option' ), o => $(o).val() ),\r\n\t\t\t\turl = history.getState().url,\r\n\t\t\t\tquery = getQuery( url ),\r\n\t\t\t\tcategories = getIds( query.c ).filter( id => allIds.indexOf( id ) < 0 ).concat( selectIds );\r\n\r\n\t\t\tquery.c = categories.join( '.' );\r\n\r\n\t\t\tif( !query.c ) delete query.c;\r\n\r\n\t\t\tpushState( query );\r\n\t\t}\r\n\r\n\t\t$listing.on( 'change', '.etcategoryselect', onCategoryChange );\r\n\t\t$listing.on( 'click', '.etcategoryselect', onCategoryChange );\r\n\r\n\t\t$listing.on( 'click', '.etstandards', e => {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar $t = $( e.currentTarget ),\r\n\t\t\t\tlegacyId = $t.closest( '[data-activitylegacyid]' ).data( 'activitylegacyid' ),\r\n\t\t\t\tactivityId = toShortId( $t.closest( '[data-activityid]' ).data( 'activityid' ) );\r\n\r\n\t\t\tDialogs.Init( 'Standards', dialogData => {\r\n\t\t\t\tdialogData.Open( { optional: true, aID: legacyId || activityId } );\r\n\t\t\t} );\r\n\t\t} );\r\n\r\n\t\t$listing.on( 'click', '.ettextbook', e => {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar $t = $( e.currentTarget ),\r\n\t\t\t\tlegacyId = $t.closest( '[data-activitylegacyid]' ).data( 'activitylegacyid' ),\r\n\t\t\t\tactivityId = toShortId( $t.closest( '[data-activityid]' ).data( 'activityid' ) );\r\n\r\n\t\t\tDialogs.Init( 'AlignTextbooks', dialogData => {\r\n\t\t\t\tdialogData.Open( { optional: true, aID: legacyId || activityId } );\r\n\t\t\t} );\r\n\t\t} );\r\n\r\n\t\t$listing.on( 'click', '.sublayout-activity-microsite-listing-module-row', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopImmediatePropagation();\r\n\r\n\t\t\tvar $tbodies = $( '.sublayout-activity-microsite-listing-table > tbody:has(.sublayout-activity-microsite-listing-module-row)', $listing ),\r\n\t\t\t\t$moduleRow = $( e.currentTarget ),\r\n\t\t\t\turl = history.getState().url,\r\n\t\t\t\tquery = getQuery( url ),\r\n\t\t\t\texpandedModuleIds = getIds( query.m ),\r\n\t\t\t\tmoduleId = $moduleRow.closest( '[data-moduleid]' ).data( 'moduleid' ),\r\n\t\t\t\tfound = false;\r\n\r\n\t\t\tif( $tbodies.length <= 1 ) return;\r\n\r\n\t\t\texpandedModuleIds = expandedModuleIds.filter( expandedModuleId => {\r\n\t\t\t\tif( idEquals( moduleId, expandedModuleId ) ) {\r\n\t\t\t\t\tfound = true;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t} );\r\n\r\n\t\t\tif( !found ) expandedModuleIds.push( toShorterId( moduleId ) );\r\n\r\n\t\t\tif( expandedModuleIds.length ) query.m = expandedModuleIds.join( '.' );\r\n\t\t\telse delete query.m;\r\n\r\n\t\t\tpushState( query );\r\n\t\t} );\r\n\r\n\t\t$( window ).on( 'popstate', onStateChange );\r\n\t} );\r\n} );"]}