{"version":3,"sources":["src/app/shared/components/filtering-search-component-base/filtering-search-types.ts"],"sourcesContent":["import { IconName } from 'ngx-bootstrap-icons'\nexport interface Dictionary {\n [key: string]: T\n}\n\nexport enum SearchOptionType {\n daterange,\n checkboxes,\n numberrange,\n stringinput,\n multiautocomplete,\n searchnumbers,\n select,\n showoptiongroup,\n switchoptiongroup,\n}\n\nexport interface TableColumnDefiniton {\n locked?: boolean\n sortable?: boolean\n visible?: boolean\n name?: string\n runningOrder?: number\n visibleIfPresent?: boolean\n visibleIfOptionGroupFilterEngaged?: boolean\n alwaysHidden?: boolean\n showInDownloads?: boolean\n classes?: string[]\n}\n\nexport interface SearchOption {\n icon: IconName\n id: string\n type: SearchOptionType\n name: string\n display?: string\n active?: boolean\n selected?: boolean\n visible?: boolean\n depends?: Dictionary\n dependsMust?: Dictionary\n lastResort?: boolean\n lookupOnPaste?: boolean\n tableColumn?: TableColumnDefiniton\n colour?: string,\n}\n\nexport interface ShowSearchOptionGroup extends SearchOption {\n value?: string\n}\nexport interface SwitchSearchOptionGroup extends SearchOption {\n value?: string\n}\n\nexport interface CheckboxOption {\n name: string\n value?: string\n checkedDefault?: boolean\n checked?: boolean\n onlyAll?: string\n depends?: Dictionary\n conditionalOptions?: SearchCheckboxOption\n}\n\nexport interface SearchCheckboxOption extends SearchOption {\n alwaysSend?: boolean\n checkboxes: CheckboxOption[]\n numberChecked?: number\n}\n\nexport interface SearchNumberRangeOption extends SearchOption {\n minValue: number\n maxValue: number\n options: {\n floor: number,\n ceil: number,\n hideLimitLabels?: boolean,\n hidePointerLabels?: boolean\n }\n prefix: string\n suffix: string\n orPercent?: boolean\n orPercentOptions?: {\n showPercent: boolean\n minValue: number,\n maxValue: number\n },\n checkboxes?: CheckboxOption[]\n numberChecked?: number\n}\nexport interface SearchDateRangeOption extends SearchOption {\n minDate: Date\n maxDate: Date\n relativeRange?: string\n}\nexport interface SearchStringOption extends SearchOption {\n searchString: string\n matchingOption?: string\n matchingOptionTypes?: {\n exactPhrase: boolean\n allWords: boolean\n someWords: boolean\n booleanMode: boolean\n },\n checkboxes?: CheckboxOption[]\n numberChecked?: number\n}\nexport interface SearchNumbersOption extends SearchOption {\n numberRange: string\n}\n\nexport interface SearchMultiAutoCompleteOption extends SearchOption {\n required: any\n filterby: string\n filter?: string[]\n items: {\n id: string | number\n title: string\n filterby: string\n }[]\n itemfilters?: Dictionary\n searchServiceParameter?: Dictionary\n searchTimer?: any\n searching?: boolean\n}\n\nexport interface SearchSelectOption extends SearchOption {\n selectOptions: {\n label: string\n optionValue: string\n }[],\n selectedValue: string\n}\n\nexport interface SearchOptionGroup {\n groupName: string\n visible?: boolean\n colour: string,\n depends?: Dictionary\n dependsMust?: Dictionary\n showInDownloads?: boolean\n options: SearchOption[]\n}\n\nexport interface NamedSearchParameters {\n area?: string,\n name?: string\n id?: number\n parameters?: Dictionary\n order?: {\n column: string\n direction: string\n }\n columns?: string[],\n window? : {\n start: number,\n size: number\n }\n}\nexport interface ExportColumn {\n id: string\n name: string\n type: SearchOptionType\n selected: boolean\n}\n\nexport interface ExportColumnGroup {\n groupName: string\n options: ExportColumn[]\n}\n\nexport function isSearchCheckboxOption(option: SearchOption): option is SearchCheckboxOption {\n return (option as SearchCheckboxOption).type === SearchOptionType.checkboxes\n}\n\nexport function isSearchDateRangeOption(option: SearchOption): option is SearchDateRangeOption {\n return (option as SearchDateRangeOption).minDate !== undefined\n}\n\nexport function isSearchNumberRangeOption(option: SearchOption): option is SearchNumberRangeOption {\n return (option as SearchNumberRangeOption).minValue !== undefined\n}\nexport function isSearchNumbersOption(option: SearchOption): option is SearchNumbersOption {\n return (option as SearchNumbersOption).numberRange !== undefined\n}\n\nexport function isSearchStringOption(option: SearchOption): option is SearchStringOption {\n return (option as SearchStringOption).searchString !== undefined\n}\nexport function isSearchMultiAutoCompleteOption(option: SearchOption): option is SearchMultiAutoCompleteOption {\n return (option as SearchMultiAutoCompleteOption).required !== undefined\n}\n\nexport function isSearchSelectOption(option: SearchOption): option is SearchSelectOption {\n return (option as SearchSelectOption).selectOptions !== undefined\n}\n\nexport function isSearchShowSearchOptionGroup(option: SearchOption): option is ShowSearchOptionGroup {\n return (option as ShowSearchOptionGroup).type === SearchOptionType.showoptiongroup\n}\n\nexport function isSwitchSearchOptionGroup(option: SearchOption): option is SwitchSearchOptionGroup {\n return (option as SwitchSearchOptionGroup).type === SearchOptionType.switchoptiongroup\n}\n\nexport function initSearchOptionGroup(groups: SearchOptionGroup[]): SearchOptionGroup[] {\n for (let group of groups) {\n group.options.forEach(option => {\n option.colour = option.colour || group.colour\n option.tableColumn = {\n locked: false,\n sortable: true,\n visible: false,\n visibleIfPresent: false,\n visibleIfOptionGroupFilterEngaged: false,\n alwaysHidden: false,\n showInDownloads: true,\n classes: [],\n ...option.tableColumn\n }\n option.active = option.active ?? false\n option.selected = option.selected ?? false\n option.visible = option.visible ?? true\n option.lastResort = option.lastResort ?? false\n option.lookupOnPaste = option.lookupOnPaste ?? false\n option.display = option.display ?? ''\n\n if (isSearchStringOption(option)) {\n if (option.matchingOption) {\n option.matchingOptionTypes = option.matchingOptionTypes ?? {\n exactPhrase: true,\n allWords: true,\n someWords: true,\n booleanMode: false,\n }\n } else {\n option.matchingOption = 'phrase'\n }\n }\n\n if (isSearchNumberRangeOption(option)) {\n option.minValue = option.options?.floor ?? 1\n option.maxValue = option.options?.ceil ?? 100\n option.options = {\n hideLimitLabels: true,\n hidePointerLabels: true,\n ...option.options\n }\n\n option.checkboxes = option.checkboxes ?? []\n option.checkboxes.forEach((checkbox => {\n checkbox.checked = checkbox.checked ?? true\n return checkbox\n }))\n } else if (isSearchCheckboxOption(option)) {\n option.checkboxes.forEach((checkbox => {\n checkbox.checkedDefault = checkbox.checkedDefault ?? true\n checkbox.checked = checkbox.checked ?? checkbox.checkedDefault\n checkbox.onlyAll = 'only'\n return checkbox\n }))\n option.numberChecked = option.numberChecked ?? 0\n option.alwaysSend = option.alwaysSend ?? false\n option.checkboxes.forEach( (checkbox) => checkbox.value = checkbox.value ?? checkbox.name)\n } else if (isSearchDateRangeOption(option)) {\n option.minDate = new Date()\n option.maxDate = new Date()\n } else if (isSearchStringOption(option)) {\n option.searchString = ''\n } else if (isSearchNumbersOption(option)) {\n option.numberRange = ''\n option.active = false\n } else if (isSearchMultiAutoCompleteOption(option)) {\n option.required = []\n option.filterby = ''\n option.items = []\n option.searching = false\n option.itemfilters = {}\n }\n })\n if (! group.hasOwnProperty('visible')) {\n group.visible = true\n }\n if (! group.hasOwnProperty('showInDownloads')) {\n group.showInDownloads = true\n }\n }\n return groups\n}\n"],"names":["filtering_search_types_exports","__export","SearchOptionType","initSearchOptionGroup","isSearchCheckboxOption","isSearchDateRangeOption","isSearchMultiAutoCompleteOption","isSearchNumberRangeOption","isSearchNumbersOption","isSearchSelectOption","isSearchShowSearchOptionGroup","isSearchStringOption","isSwitchSearchOptionGroup","SearchOptionType","isSearchCheckboxOption","option","type","checkboxes","isSearchDateRangeOption","minDate","undefined","isSearchNumberRangeOption","minValue","isSearchNumbersOption","numberRange","isSearchStringOption","searchString","isSearchMultiAutoCompleteOption","required","isSearchSelectOption","selectOptions","isSearchShowSearchOptionGroup","showoptiongroup","isSwitchSearchOptionGroup","switchoptiongroup","initSearchOptionGroup","groups","group","options","forEach","colour","tableColumn","__spreadValues","locked","sortable","visible","visibleIfPresent","visibleIfOptionGroupFilterEngaged","alwaysHidden","showInDownloads","classes","active","selected","lastResort","lookupOnPaste","display","matchingOption","matchingOptionTypes","exactPhrase","allWords","someWords","booleanMode","floor","maxValue","ceil","hideLimitLabels","hidePointerLabels","checkbox","checked","checkedDefault","onlyAll","numberChecked","alwaysSend","value","name","Date","maxDate","filterby","items","searching","itemfilters","hasOwnProperty"],"mappings":"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","debug_id":"97d3b8c5-386e-510e-94e6-ed5b0b6d5f76"}