{"version":3,"sources":["../../ts/src/in-page/SidebarView.ts"],"names":["SidebarView","props","setBuckets","indexes","indexIdentifier","buckets","each","idx","identifier","bucket","bucketItems","map","item","isActive","filterList","has","code","get","key","select","selectItem","push","delete","set","observableArray","result","activeIndex","subscribe","index"],"mappings":";;;;;MAqBaA,W,GAKT,qBAAYC,KAAZ,EAA0B;AAAA;;AAAA;;AAAA,SAW1BC,UAX0B,GAWb,UAACC,OAAD,EAAyBC,eAAzB,EAAqD;AAC9D,UAAIC,OAA2B,GAAG,EAAlC;;AAEA,kBAAEC,IAAF,CAAOH,OAAP,EAAgB,UAAAI,GAAG,EAAI;AACnB,YAAIA,GAAG,CAACC,UAAJ,IAAkBJ,eAAtB,EAAuC;AACnC;AACH;;AAED,oBAAEE,IAAF,CAAOC,GAAG,CAACF,OAAX,EAAoB,UAAAI,MAAM,EAAI;AAC1B,cAAMC,WAAW,GAAG,YAAEC,GAAF,CAAMF,MAAM,CAACJ,OAAb,EAAsB,UAAAO,IAAI,EAAI;AAC9C,gCACOA,IADP;AAEIC,cAAAA,QAAQ,EAAE,KAAI,CAACZ,KAAL,CAAWa,UAAX,GAAwBC,GAAxB,CAA4BN,MAAM,CAACO,IAAnC,KAA4C,KAAI,CAACf,KAAL,CAAWa,UAAX,GAAwBG,GAAxB,CAA4BR,MAAM,CAACO,IAAnC,MAA6CJ,IAAI,CAACM,GAF5G;AAGIC,cAAAA,MAAM,EAAI;AAAA,uBAAM,KAAI,CAACC,UAAL,CAAgBX,MAAhB,EAAwBG,IAAxB,CAAN;AAAA;AAHd;AAKH,WANmB,CAApB;;AAQAP,UAAAA,OAAO,CAACgB,IAAR,cACOZ,MADP;AAEIJ,YAAAA,OAAO,EAAEK;AAFb;AAIH,SAbD;AAcH,OAnBD;;AAqBA,MAAA,KAAI,CAACL,OAAL,CAAaA,OAAb;AACH,KApCyB;;AAAA,SAsC1Be,UAtC0B,GAsCb,UAACX,MAAD,EAAiBG,IAAjB,EAAsC;AAC/C,UAAMD,GAAG,GAAG,KAAI,CAACV,KAAL,CAAWa,UAAX,EAAZ;;AAEA,UAAIH,GAAG,CAACI,GAAJ,CAAQN,MAAM,CAACO,IAAf,KAAwBL,GAAG,CAACM,GAAJ,CAAQR,MAAM,CAACO,IAAf,MAAyBJ,IAAI,CAACM,GAA1D,EAA+D;AAC3DP,QAAAA,GAAG,CAACW,MAAJ,CAAWb,MAAM,CAACO,IAAlB;AACH,OAFD,MAEO;AACHL,QAAAA,GAAG,CAACY,GAAJ,CAAQd,MAAM,CAACO,IAAf,EAAqBJ,IAAI,CAACM,GAA1B;AACH;;AAED,MAAA,KAAI,CAACjB,KAAL,CAAWa,UAAX,CAAsBH,GAAtB;AACH,KAhDyB;;AACtB,SAAKV,KAAL,GAAaA,KAAb;AACA,SAAKI,OAAL,GAAe,UAAGmB,eAAH,CAAmB,EAAnB,CAAf;AAEA,SAAKtB,UAAL,CAAgBD,KAAK,CAACwB,MAAN,GAAetB,OAA/B,EAAwCF,KAAK,CAACyB,WAAN,EAAxC;AAEAzB,IAAAA,KAAK,CAACwB,MAAN,CAAaE,SAAb,CAAuB,UAAAF,MAAM;AAAA,aAAI,KAAI,CAACvB,UAAL,CAAgBuB,MAAM,CAACtB,OAAvB,EAAgCF,KAAK,CAACyB,WAAN,EAAhC,CAAJ;AAAA,KAA7B;AACAzB,IAAAA,KAAK,CAACyB,WAAN,CAAkBC,SAAlB,CAA4B,UAAAC,KAAK;AAAA,aAAI,KAAI,CAAC1B,UAAL,CAAgBD,KAAK,CAACwB,MAAN,GAAetB,OAA/B,EAAwCyB,KAAxC,CAAJ;AAAA,KAAjC;AACA3B,IAAAA,KAAK,CAACa,UAAN,CAAiBa,SAAjB,CAA2B;AAAA,aAAM,KAAI,CAACzB,UAAL,CAAgBD,KAAK,CAACwB,MAAN,GAAetB,OAA/B,EAAwCF,KAAK,CAACyB,WAAN,EAAxC,CAAN;AAAA,KAA3B;AACH,G","sourcesContent":["import { Bucket, BucketItem, IndexResult, Result } from \"../types\"\nimport _ from \"underscore\"\nimport ko from \"knockout\"\n\ninterface Props {\n result: KnockoutObservable\n activeIndex: KnockoutObservable\n filterList: KnockoutObservable>\n}\n\ninterface SelectableBucketItem extends BucketItem {\n select: () => void\n isActive: boolean\n}\n\ninterface SelectableBucket {\n code: string\n label: string\n buckets: SelectableBucketItem[]\n}\n\nexport class SidebarView {\n props: Props\n\n buckets: KnockoutObservableArray\n\n constructor(props: Props) {\n this.props = props\n this.buckets = ko.observableArray([])\n\n this.setBuckets(props.result().indexes, props.activeIndex())\n\n props.result.subscribe(result => this.setBuckets(result.indexes, props.activeIndex()))\n props.activeIndex.subscribe(index => this.setBuckets(props.result().indexes, index))\n props.filterList.subscribe(() => this.setBuckets(props.result().indexes, props.activeIndex()))\n }\n\n setBuckets = (indexes: IndexResult[], indexIdentifier: string) => {\n let buckets: SelectableBucket[] = []\n\n _.each(indexes, idx => {\n if (idx.identifier != indexIdentifier) {\n return\n }\n\n _.each(idx.buckets, bucket => {\n const bucketItems = _.map(bucket.buckets, item => {\n return {\n ...item,\n isActive: this.props.filterList().has(bucket.code) && this.props.filterList().get(bucket.code) === item.key,\n select: () => this.selectItem(bucket, item),\n }\n })\n\n buckets.push({\n ...bucket,\n buckets: bucketItems,\n })\n })\n })\n\n this.buckets(buckets)\n }\n\n selectItem = (bucket: Bucket, item: BucketItem) => {\n const map = this.props.filterList()\n\n if (map.has(bucket.code) && map.get(bucket.code) === item.key) {\n map.delete(bucket.code)\n } else {\n map.set(bucket.code, item.key)\n }\n\n this.props.filterList(map)\n }\n}\n"],"file":"SidebarView.js"}