{"version":3,"sources":["webpack:///./src/assets/images/common-icon/search.svg","webpack:///./src/commoncomponents/ExpandableSelectList/ExpandableSelectList.vue?5c60","webpack:///./src/commoncomponents/ExpandableSelectList/ExpandableSelectList.vue?aa66","webpack:///./src/commoncomponents/ExpandableSelectList/types.ts","webpack:///./src/commoncomponents/ExpandableSelectList/ExpandableSelectList.vue?fb4a","webpack:///./src/commoncomponents/ExpandableSelectList/ExpandableSelectList.vue?4ec5","webpack:///./src/commoncomponents/ExpandableSelectList/ExpandableSelectList.vue"],"names":["module","exports","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","model","value","callback","$$v","panel","expression","scopedSlots","_u","key","fn","_v","_s","title","subtitle","_e","on","onSelectedItemClick","_t","selectedItemSync","removeSelection","proxy","ref","search","clearSearch","itemsToShow","length","style","maxHeight","listMaxHeight","keyField","item","index","active","directives","name","rawName","titleHtmlAttribute","domProps","_q","$event","noItemsText","staticRenderFns","PANEL_OPEN","PANEL_CLOSED","screenText","ScreenText","ExpandableSelectList","searchText","isPanelOpenSync","onClose","$nextTick","then","searchBarRef","focus","event","stopPropagation","clearSearchOnClose","clearSearchText","Array","isArray","arrStr","forEach","val","getItemStringValue","entries","Object","valuesToSearch","entry","excludedSearchFields","includes","push","toLocaleLowerCase","replace","items","filter","stringified","Vue","tslib_1","Prop","type","String","required","default","Number","getScreenText","Boolean","PropSync","Ref","Watch","Component","components","SearchBar","component"],"mappings":"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","file":"js/chunk-530f05b4.db8efbe72edfa1ce656b.1732066582532.min.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/search.83aca4f4.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpandableSelectList.vue?vue&type=style&index=0&id=55f61e17&lang=less&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"expandable-select-list\"},[_c('v-expansion-panel',{attrs:{\"focusable\":\"\"},model:{value:(_vm.panel),callback:function ($$v) {_vm.panel=$$v},expression:\"panel\"}},[_c('v-expansion-panel-content',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"expandable-select-list-header-content uk-flex uk-flex-column\"},[_c('div',{staticClass:\"expandable-select-list-title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),(_vm.subtitle)?_c('div',{staticClass:\"expandable-select-list-subtitle\"},[_vm._v(\" \"+_vm._s(_vm.subtitle)+\" \")]):_vm._e(),(_vm.selectedItemSync)?_c('div',{staticClass:\"uk-flex uk-flex-middle uk-flex-between expandable-select-list-selected-item\",on:{\"click\":_vm.onSelectedItemClick}},[_c('div',[_vm._t(\"selectedItem\",null,{\"item\":_vm.selectedItemSync})],2),_c('img',{staticClass:\"uk-flex-none uk-margin-small-left expandable-select-list-selected-item-close-button\",attrs:{\"src\":require(\"@/assets/images/closeIconBlack.svg\"),\"alt\":\"Remove Selection\"},on:{\"click\":_vm.removeSelection}})]):_vm._e()])]},proxy:true}],null,true)},[_c('div',{staticClass:\"body-content-wrapper\"},[_c('div',[_c('div',{staticClass:\"search-wrapper\"},[_c('SearchBar',{ref:\"searchBarRef\",attrs:{\"searchOnType\":true,\"searchOnTypeMinLength\":3,\"placeholder\":\"Search Sites\"},on:{\"search\":_vm.search,\"clearSearch\":_vm.clearSearch}})],1),_c('div',{staticClass:\"expandable-select-list-items-container\"},[(!_vm.itemsToShow.length)?_c('div',{staticClass:\"expandable-select-list-items-container-no-items-message\"},[_vm._v(\" \"+_vm._s(_vm.noItemsText)+\" \")]):[_c('DynamicScroller',{staticClass:\"scroller\",style:({ maxHeight: (_vm.listMaxHeight + \"px\") }),attrs:{\"items\":_vm.itemsToShow,\"min-item-size\":54,\"keyField\":_vm.keyField},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nvar active = ref.active;\nreturn [_c('DynamicScrollerItem',{staticClass:\"uk-flex uk-flex-middle expandable-select-list-item-wrapper\",attrs:{\"item\":item,\"active\":active,\"data-index\":index}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedItemSync),expression:\"selectedItemSync\"}],staticClass:\"uk-margin-remove\",attrs:{\"id\":(\"expandable-select-list-\" + _vm.titleHtmlAttribute + \"-\" + (item[_vm.keyField])),\"name\":(\"expandable-select-list-\" + _vm.titleHtmlAttribute),\"type\":\"radio\"},domProps:{\"value\":item,\"checked\":_vm._q(_vm.selectedItemSync,item)},on:{\"change\":function($event){_vm.selectedItemSync=item}}}),_c('label',{staticClass:\"uk-margin-remove-bottom uk-margin-small-left\",attrs:{\"for\":(\"expandable-select-list-\" + _vm.titleHtmlAttribute + \"-\" + (item[_vm.keyField]))}},[_vm._t(\"itemLabel\",null,{\"item\":item})],2)])]}}],null,true)})]],2)])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// VExpansionPanel can v-model a prop to programatically control which panels are open/closed.\n// This is either an Array of the panel indices or a single index value for one panel.\n// Since we only have one panel (index 0), we can use `0` to open and `null` to close.\nexport const PANEL_OPEN = 0;\nexport const PANEL_CLOSED = null;\nexport type PanelState = typeof PANEL_OPEN | typeof PANEL_CLOSED;","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, PropSync, Ref, Vue, Watch } from 'vue-property-decorator';\nimport SearchBar from '@/commoncomponents/SearchBar.vue';\nimport { ScreenText } from '@/lang/ScreenText';\nimport { PanelState, PANEL_CLOSED, PANEL_OPEN } from './types';\n\nconst screenText = new ScreenText();\n\n@Component({\n components: {\n SearchBar\n }\n})\nexport default class ExpandableSelectList extends Vue {\n @Prop({ type: String, required: true }) readonly title!: string;\n @Prop({ type: Array, required: true }) readonly items!: Array;\n @Prop({ type: String, default: 'id' }) readonly keyField!: string;\n @Prop({ type: String, default: '' }) readonly subtitle!: string;\n @Prop({ type: Number, default: 300 }) readonly listMaxHeight!: number;\n @Prop({ type: String, default: screenText.getScreenText('NO_ITEMS_RESULTS') }) readonly noItemsText!: string;\n @Prop({ type: Array, default: () => [] }) readonly excludedSearchFields!: Array;\n @Prop({ type: Boolean, default: false }) readonly clearSearchOnClose!: boolean;\n @PropSync('selectedItem', { required: true }) selectedItemSync!: unknown | null;\n @PropSync('isPanelOpen', { required: true }) isPanelOpenSync!: boolean;\n @Ref('searchBarRef') readonly searchBarRef!: SearchBar;\n\n panel: PanelState = null;\n searchText = '';\n\n get titleHtmlAttribute(): string {\n return this.title.toLocaleLowerCase().replace(/\\s+/g, '-').replace(/[^\\w-]/g, '');\n }\n\n get itemsToShow(): Array {\n let itemsToShow = this.items;\n if (this.searchText) {\n itemsToShow = this.items.filter(item => {\n const stringified = this.getItemStringValue(item);\n return stringified.toLocaleLowerCase().includes(this.searchText.toLocaleLowerCase());\n });\n }\n return itemsToShow;\n }\n\n created() {\n if (this.isPanelOpenSync) {\n this.panel = PANEL_OPEN;\n }\n }\n\n @Watch('isPanelOpenSync')\n onIsPanelOpenSyncChange(value: boolean) {\n if (value) {\n this.panel = PANEL_OPEN;\n }\n else {\n this.panel = PANEL_CLOSED;\n this.onClose();\n }\n }\n\n @Watch('panel')\n onPanelChange(value: 0 | null) {\n if (value === null) {\n this.isPanelOpenSync = false;\n }\n else {\n this.isPanelOpenSync = true;\n this.$nextTick().then(\n () => this.searchBarRef.focus()\n );\n }\n }\n\n // Auto-close the panel when selecting.\n @Watch('selectedItemSync')\n onSelectedItemSyncChange(value: unknown | null) {\n if (value !== null) {\n this.isPanelOpenSync = false;\n }\n }\n\n onSelectedItemClick(event: MouseEvent) {\n event.stopPropagation(); // Prevent event from bubbling to expansion panel\n }\n\n removeSelection() {\n this.selectedItemSync = null;\n }\n\n search(searchText: string) {\n this.searchText = searchText;\n }\n\n clearSearch() {\n this.searchText = '';\n }\n\n onClose() {\n if (this.searchText && this.clearSearchOnClose) {\n this.searchBarRef.clearSearchText();\n }\n }\n\n getItemStringValue(item: unknown): string {\n if (typeof item === 'string') {\n return item;\n }\n else if (typeof item === 'number' || typeof item === 'boolean') {\n return `${item}`;\n }\n else if (Array.isArray(item)) {\n let arrStr = '';\n item.forEach((val) => {\n arrStr += this.getItemStringValue(val);\n });\n return arrStr;\n }\n else if (item && typeof item === 'object') {\n const entries = Object.entries(item as {});\n const valuesToSearch: Array = [];\n entries.forEach(entry => {\n const [key, value] = entry;\n if (!this.excludedSearchFields.includes(key)) {\n valuesToSearch.push(value);\n }\n });\n return this.getItemStringValue(valuesToSearch);\n }\n return '';\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpandableSelectList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpandableSelectList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExpandableSelectList.vue?vue&type=template&id=55f61e17&scoped=true&\"\nimport script from \"./ExpandableSelectList.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExpandableSelectList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ExpandableSelectList.vue?vue&type=style&index=0&id=55f61e17&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55f61e17\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}