UNPKG

@obliczeniowo/elementary

Version:
1 lines 45.5 kB
{"version":3,"file":"obliczeniowo-elementary-filters.mjs","sources":["../../../../projects/components/filters/services/filters.service.ts","../../../../projects/components/filters/components/filter/filter.component.ts","../../../../projects/components/filters/components/filter/filter.component.html","../../../../projects/components/filters/components/filters/filters.component.ts","../../../../projects/components/filters/components/filters/filters.component.html","../../../../projects/components/filters/filters.module.ts","../../../../projects/components/filters/obliczeniowo-elementary-filters.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-argument */\r\nimport { Injectable } from '@angular/core';\r\nimport { Filter } from '../interfaces/filter';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FiltersService {\r\n checkItemCondition(item: { [key: string]: any }, filters: Filter): boolean {\r\n let condition: any;\r\n\r\n if (filters?.filters?.length) {\r\n filters.filters.forEach((filter) => {\r\n const checked = filter.filters?.length\r\n ? this.checkItemCondition(item, filter)\r\n : this.operation(filter, item);\r\n\r\n if (filters?.filterType === 'or') {\r\n condition = condition !== undefined ? condition || checked : checked;\r\n } else if (filters?.filterType === 'and') {\r\n condition = condition !== undefined ? condition && checked : checked;\r\n } else {\r\n condition = checked;\r\n }\r\n });\r\n return condition;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n operation(filter: Filter, item: { [key: string]: any }): boolean {\r\n const value = item[filter.valueName];\r\n const filterValue = filter.filterValue;\r\n switch (filter.filterType) {\r\n case 'less':\r\n return value < +filterValue;\r\n case 'more':\r\n return value > +filterValue;\r\n case 'more-eq':\r\n return value >= +filterValue;\r\n case 'less-eq':\r\n return value <= +filterValue;\r\n case 'eq':\r\n return value.toString() === filterValue.toString();\r\n case 'not-eq':\r\n return value.toString() !== filterValue.toString();\r\n case 'like':\r\n return value?.includes(filterValue) || false;\r\n case 'regex':\r\n {\r\n const reg = new RegExp(filterValue.toString(), 'g');\r\n return !!value?.toString().match(reg);\r\n }\r\n case 'not-regex':\r\n {\r\n const reg = new RegExp(filterValue.toString(), 'g');\r\n return !value?.toString().match(reg);\r\n }\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n filter(input: { [key: string]: any }, filters: Filter) {\r\n return input.filter((item: any) => this.checkItemCondition(item, filters));\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/consistent-type-assertions */\r\nimport {\r\n Component,\r\n computed,\r\n EventEmitter,\r\n input,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { DropdownSelectItem } from '@obliczeniowo/elementary/dropdown-select';\r\nimport { Filter } from '../../interfaces/filter';\r\nimport { FilterNameItem } from '../../interfaces/filter-name-item';\r\n\r\n@Component({\r\n selector: 'obl-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrl: './filter.component.scss',\r\n standalone: false\r\n})\r\nexport class FilterComponent {\r\n filter = input<Partial<Filter>>({});\r\n\r\n names = input<FilterNameItem[]>([]);\r\n\r\n haveParent = input<boolean>(true);\r\n\r\n mode = input<'adding' | 'removing'>('removing');\r\n\r\n translations = input<{ [en: string]: string }>({});\r\n\r\n suffix = input<TemplateRef<any>>();\r\n\r\n labelAnimation = input<boolean>(false);\r\n\r\n filtersType = input<'full' | 'no-regex'>('full');\r\n\r\n /** filters changed */\r\n @Output() changed = new EventEmitter<Filter>();\r\n /** filter added */\r\n @Output() add = new EventEmitter<Filter>();\r\n /** filter remove */\r\n @Output() remove = new EventEmitter<Filter>();\r\n\r\n expanded = true;\r\n\r\n protected nameItems: DropdownSelectItem<FilterNameItem>[] = [];\r\n protected filtersItems: DropdownSelectItem<any>[] = [];\r\n protected group = ['and', 'or'];\r\n protected numeric = ['less', 'less-eq', 'eq', 'not-eq', 'more-eq', 'more'];\r\n protected text = computed(() => {\r\n switch (this.filtersType()) {\r\n case 'no-regex': {\r\n return ['like', 'eq', 'not-eq'];\r\n }\r\n default: {\r\n return ['like', 'eq', 'not-eq', 'regex', 'not-regex']\r\n }\r\n }\r\n });\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.names && this.names()) {\r\n this.nameItems = this.names().map((name) => ({\r\n id: name.name,\r\n text: name.text,\r\n templateData: name,\r\n }));\r\n\r\n if (this.nameItems.length) {\r\n const selected = this.nameItems.find(\r\n (name) => name.id === this.filter().valueName\r\n );\r\n if (selected) {\r\n const map = {\r\n number: this.numeric,\r\n text: this.text(),\r\n group: this.group,\r\n };\r\n this.filtersItems = map[selected.templateData?.type || 'group'].map(\r\n (type: string) => ({\r\n id: type,\r\n text: this.translations()[type] || type,\r\n })\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n setName(name: DropdownSelectItem<FilterNameItem>) {\r\n this.filter().valueName = name.id as string;\r\n const map = {\r\n number: this.numeric,\r\n text: this.text(),\r\n group: this.group,\r\n };\r\n const nameItem = this.nameItems.find(\r\n (item) => item.id === this.filter().valueName\r\n );\r\n\r\n if (name.templateData?.type === 'number') {\r\n this.filter().filterValue = 0;\r\n }\r\n\r\n this.filtersItems = map[nameItem?.templateData?.type || 'group'].map(\r\n (type: string) => ({\r\n id: type,\r\n text: this.translations()[type] || type,\r\n })\r\n );\r\n if (\r\n this.filter().valueName &&\r\n this.filter().filterType &&\r\n this.filter().filterValue\r\n ) {\r\n this.changed.emit(this.filter() as Filter);\r\n }\r\n }\r\n\r\n setFilter(filter: DropdownSelectItem<any>) {\r\n this.filter().filterType = filter.id as any;\r\n if (\r\n this.filter().valueName &&\r\n this.filter().filterType &&\r\n this.filter().filterValue\r\n ) {\r\n this.changed.emit(this.filter() as Filter);\r\n }\r\n }\r\n\r\n setValue = (value: string | number) => {\r\n const nameItem = this.nameItems.find(\r\n (item) => item.id === this.filter().valueName\r\n );\r\n if (\r\n nameItem?.templateData?.type === 'number' &&\r\n typeof value === 'string'\r\n ) {\r\n value = parseFloat(value);\r\n }\r\n this.filter().filterValue = value;\r\n this.changed.emit();\r\n };\r\n\r\n action() {\r\n if (\r\n this.filter().valueName &&\r\n this.filter()?.filterType &&\r\n this.filter().filterValue !== null\r\n ) {\r\n if (this.mode() === 'adding') {\r\n this.add.emit({ ...this.filter() } as Filter);\r\n } else {\r\n this.remove.emit({ ...this.filter() } as Filter);\r\n }\r\n }\r\n }\r\n\r\n onRemove(filter: Filter) {\r\n this.filter().filters = (this.filter().filters || []).filter(\r\n (f) => f.id !== filter.id\r\n );\r\n this.filter().filters?.forEach((filter, index) => (filter.id = index));\r\n this.changed.emit(this.filter() as Filter);\r\n }\r\n\r\n onAdd(filter: Filter) {\r\n if (filter.id === undefined) {\r\n filter.id = new Date().getTime();\r\n }\r\n this.filter().filters = [...(this.filter().filters || []), filter];\r\n this.changed.emit(this.filter() as Filter);\r\n }\r\n\r\n addGroup() {\r\n this.filter().filters?.unshift({\r\n id: this.filter().filters?.length || 0,\r\n valueName: `group ${this.filter().filters?.length}`,\r\n filterValue: 0,\r\n filterType: 'and',\r\n filters: [],\r\n });\r\n this.filter().filters?.forEach((f, i) => (f.id = i));\r\n this.changed.emit();\r\n }\r\n\r\n setGroupType(orAnd: boolean) {\r\n this.filter().filterType = orAnd ? 'and' : 'or';\r\n this.changed.emit();\r\n }\r\n\r\n removeGroup() {\r\n this.remove.emit(this.filter() as Filter);\r\n }\r\n}\r\n","@if (!filter().filters) {\r\n <div class=\"row record\">\r\n <div class=\"row\">\r\n <obl-dropdown-select\r\n [label]=\"'Filter by' | oblTranslation : translations()\"\r\n [labelAnimation]=\"labelAnimation()\"\r\n [items]=\"nameItems\"\r\n [select]=\"filter().valueName || ''\"\r\n (changed)=\"setName($event)\"\r\n #name\r\n ></obl-dropdown-select>\r\n\r\n <obl-dropdown-select\r\n [label]=\"'Filter type' | oblTranslation : translations()\"\r\n [labelAnimation]=\"labelAnimation()\"\r\n [items]=\"filtersItems\"\r\n [select]=\"filter().filterType || ''\"\r\n (changed)=\"setFilter($event)\"\r\n ></obl-dropdown-select>\r\n\r\n @if (name.selected) {\r\n <obl-input-wrapper\r\n [label]=\"'Value' | oblTranslation : translations()\"\r\n [labelAnimation]=\"labelAnimation()\"\r\n [step]=\"name.selected.templateData.options?.step\"\r\n >\r\n <input\r\n oblInput\r\n [type]=\"name.selected.templateData.type\"\r\n [min]=\"name.selected.templateData.options?.min\"\r\n [max]=\"name.selected.templateData.options?.max\"\r\n [value]=\"\r\n filter().filterValue ??\r\n (name.selected.templateData.type === 'text' ? '' : 0)\r\n \"\r\n (change)=\"setValue(value.value)\"\r\n #value\r\n />\r\n @if(suffix()) {\r\n <ng-container\r\n suffix\r\n *ngTemplateOutlet=\"\r\n suffix()!;\r\n context: {\r\n value:\r\n filter().filterValue ??\r\n name.selected.templateData.options?.default ||\r\n (name.selected.templateData.type === 'text' ? '' : 0),\r\n type: name.selected.templateData.type,\r\n valueName: filter().valueName,\r\n setValue\r\n }\r\n \"\r\n ></ng-container>\r\n }\r\n </obl-input-wrapper>\r\n }\r\n </div>\r\n\r\n <button\r\n oblButton\r\n [icon]=\"mode() === 'adding' ? 'add' : 'subtract'\"\r\n (click)=\"action()\"\r\n ></button>\r\n </div>\r\n} @else {\r\n <div>\r\n <div class=\"head\">\r\n <span\r\n >{{ 'Start of group name:' | oblTranslation : translations() }}\r\n {{ filter().valueName }}</span\r\n >\r\n <div class=\"row\">\r\n <obl-switcher\r\n on=\"And\"\r\n off=\"Or\"\r\n [value]=\"filter().filterType === 'and'\"\r\n (valueChanged)=\"setGroupType($event)\"\r\n ></obl-switcher>\r\n <button\r\n oblButton\r\n icon=\"add\"\r\n [title]=\"'Add group' | oblTranslation : translations()\"\r\n (click)=\"addGroup()\"\r\n ></button>\r\n @if (haveParent()) {\r\n <button\r\n oblButton\r\n icon=\"subtract\"\r\n [title]=\"'Remove group' | oblTranslation : translations()\"\r\n title=\"Remove group\"\r\n (click)=\"removeGroup()\"\r\n ></button>\r\n }\r\n <obl-expand-button\r\n [isOpen]=\"expanded\"\r\n (click)=\"expanded = !expanded\"\r\n ></obl-expand-button>\r\n </div>\r\n </div>\r\n\r\n @if (filter().filters) {\r\n <div class=\"filters\" [class.expanded]=\"expanded\">\r\n @for (filter of filter().filters; track filter.id) {\r\n <obl-filter\r\n [filter]=\"filter\"\r\n [names]=\"names()\"\r\n [translations]=\"translations()\"\r\n [suffix]=\"suffix()\"\r\n [labelAnimation]=\"labelAnimation()\"\r\n [filtersType]=\"filtersType()\"\r\n (remove)=\"onRemove($event)\"\r\n (changed)=\"changed.emit(filter)\"\r\n ></obl-filter>\r\n }\r\n\r\n <obl-filter\r\n class=\"adding\"\r\n [names]=\"names()\"\r\n [translations]=\"translations()\"\r\n [suffix]=\"suffix()\"\r\n [labelAnimation]=\"labelAnimation()\"\r\n [filtersType]=\"filtersType()\"\r\n mode=\"adding\"\r\n (add)=\"onAdd($event)\"\r\n ></obl-filter>\r\n\r\n <div class=\"head\">\r\n {{ 'End of group name:' | oblTranslation : translations() }}\r\n {{ filter().valueName }}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n}\r\n","import {\r\n Component,\r\n effect,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n input,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { cloneDeep } from 'lodash';\r\n\r\nimport { Filter } from '../../interfaces/filter';\r\nimport { FilterNameItem } from '../../interfaces/filter-name-item';\r\n\r\nimport {\r\n DropdownSelectComponent,\r\n DropdownSelectItem,\r\n} from '@obliczeniowo/elementary/dropdown-select';\r\nimport { keys, keysValues } from '@obliczeniowo/elementary/objects';\r\nimport { FiltersService } from '../../services/filters.service';\r\nimport { InputWrappersDefaultSettingsService } from '@obliczeniowo/elementary/input';\r\n\r\n@Component({\r\n selector: 'obl-filters',\r\n templateUrl: './filters.component.html',\r\n styleUrl: './filters.component.scss',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n multi: true,\r\n useExisting: FiltersComponent,\r\n },\r\n ],\r\n standalone: false\r\n})\r\nexport class FiltersComponent implements ControlValueAccessor {\r\n protected touchedDragBar = false;\r\n\r\n protected settingsItems: DropdownSelectItem<Filter>[] = [];\r\n\r\n protected errors: { [key: string]: { [key: string]: boolean } | null } = {};\r\n\r\n /** define if list is opened */\r\n isOpen = false;\r\n /** define if element is touched */\r\n touched = false;\r\n\r\n @Input() filters?: Filter;\r\n\r\n @Input() settings?: { [name: string]: Filter };\r\n\r\n translations = input<{ [en: string]: string }>({});\r\n\r\n names = input<FilterNameItem[]>([]);\r\n\r\n input = input<{ [key: string]: any }[]>();\r\n\r\n suffix = input<TemplateRef<any>>();\r\n\r\n /**\r\n * Enable type text animation for label\r\n */\r\n @Input() labelAnimation = false;\r\n\r\n @Input()\r\n @HostBinding('class.disabled')\r\n disabled = false;\r\n\r\n filtersType = input<'full' | 'no-regex'>('full');\r\n\r\n @Output() settingsChanged = new EventEmitter<{ [name: string]: Filter }>();\r\n\r\n @Output() changed = new EventEmitter<Filter>();\r\n\r\n @Output() output = new EventEmitter<{ [key: string]: any }[]>();\r\n\r\n @ViewChild('selectedSetting') selected?: DropdownSelectComponent;\r\n @ViewChild('settingsName') settingsName?: ElementRef<HTMLInputElement>;\r\n\r\n constructor(\r\n protected filtersService: FiltersService,\r\n protected readonly globalSettings: InputWrappersDefaultSettingsService\r\n ) {\r\n effect(() => {\r\n this.filterInput();\r\n })\r\n this.labelAnimation = this.globalSettings.labelAnimation.filters;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.settings) {\r\n if (this.settings) {\r\n this.updateSettingsItems();\r\n } else {\r\n this.settingsItems = [];\r\n }\r\n }\r\n }\r\n\r\n toggle(event: any, touched = this.touchedDragBar): void {\r\n if (touched) {\r\n return;\r\n }\r\n event.stopPropagation();\r\n this.touchedDragBar = false;\r\n if (this.isOpen) {\r\n this.isOpen = false;\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n close(touched = this.touchedDragBar): void {\r\n if (!touched) {\r\n this.isOpen = false;\r\n this.touchedDragBar = false;\r\n } else {\r\n this.touchedDragBar = touched;\r\n }\r\n }\r\n\r\n open(): void {\r\n if (!this.isOpen) {\r\n this.isOpen = true;\r\n this.touchedDragBar = false;\r\n\r\n setTimeout(() => {\r\n this.checkSettingSelection();\r\n });\r\n }\r\n }\r\n\r\n onChange = (value: Filter) => {};\r\n\r\n onTouched = () => {};\r\n\r\n onTouchedDragBar(touched: boolean, element: any): void {\r\n this.touchedDragBar = touched;\r\n element.parentElement.style.width = 0;\r\n }\r\n\r\n checkSettingSelection() {\r\n if (\r\n this.selected?.selected &&\r\n JSON.stringify(this.selected.selected.templateData) !==\r\n JSON.stringify(this.filters)\r\n ) {\r\n this.selected.selected = undefined;\r\n }\r\n }\r\n\r\n writeValue(value: Filter): void {\r\n this.filters = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouched: any): void {\r\n this.onTouched = onTouched;\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n this.disabled = disabled;\r\n }\r\n\r\n saveSettings(input: HTMLInputElement) {\r\n const name = input.value;\r\n if (name && name !== '' && this.filters) {\r\n if (!keys(this.settings || {}).find((key) => key === name)) {\r\n this.settings = {\r\n ...(this.settings || {}),\r\n [name]: cloneDeep(this.filters),\r\n };\r\n } else {\r\n if (this.settings) {\r\n this.settings[name] = cloneDeep(this.filters);\r\n }\r\n }\r\n this.updateSettingsItems();\r\n this.settingsChanged.emit(this.settings);\r\n setTimeout(() => {\r\n if (this.selected) {\r\n this.selected.selected = this.selected.items.find(\r\n (item) => item.id === name\r\n );\r\n }\r\n });\r\n } else {\r\n this.errors.settingsName = {\r\n settingsNameError: !name || name === '',\r\n };\r\n input.classList.add('ng-touched');\r\n }\r\n }\r\n\r\n check() {\r\n const value = this.settingsName?.nativeElement.value;\r\n const err = !value || value === '';\r\n this.errors.settingsName =\r\n (err && {\r\n settingsNameError: !value || value === '',\r\n }) ||\r\n null;\r\n }\r\n\r\n onChanged() {\r\n this.checkSettingSelection();\r\n this.changed.emit(this.filters);\r\n\r\n this.filterInput();\r\n }\r\n\r\n protected setSettings(item: DropdownSelectItem<Filter>) {\r\n if (item.templateData) {\r\n this.filters = cloneDeep(item.templateData);\r\n if (this.settingsName) {\r\n this.settingsName.nativeElement.value = item.id.toString();\r\n }\r\n\r\n this.changed.emit(this.filters);\r\n }\r\n }\r\n\r\n protected removeSettings(name?: string | number) {\r\n if (name && this.settings?.[name]) {\r\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\r\n delete this.settings[name];\r\n this.updateSettingsItems();\r\n this.settingsChanged.emit(this.settings);\r\n }\r\n }\r\n\r\n protected filterInput() {\r\n const input = this.input();\r\n if (input) {\r\n const filtered = this.filters\r\n ? this.filtersService.filter(input, this.filters)\r\n : input;\r\n this.output.emit(filtered);\r\n }\r\n }\r\n\r\n protected updateSettingsItems() {\r\n this.settingsItems = keysValues(this.settings || {}).map(\r\n ([key, value]) => ({\r\n id: key,\r\n text: key,\r\n templateData: value,\r\n })\r\n );\r\n this.filterInput();\r\n }\r\n}\r\n","<button\r\n oblButton\r\n icon=\"filter\"\r\n cdkOverlayOrigin\r\n [disabled]=\"disabled\"\r\n oblBadge\r\n [show]=\"!!filters?.filters?.length\"\r\n #dropDown=\"cdkOverlayOrigin\"\r\n (click)=\"toggle($event, false)\"\r\n #parent\r\n></button>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"dropDown\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n [cdkConnectedOverlayOffsetX]=\"2\"\r\n (overlayOutsideClick)=\"toggle($event)\"\r\n>\r\n <div\r\n class=\"dropdown-list\"\r\n [style.min-width.px]=\"647\"\r\n [style.max-width]=\"'100vw'\"\r\n #list\r\n cdkDrag\r\n >\r\n <obl-drag-bar\r\n (onTouched)=\"onTouchedDragBar($event, list)\"\r\n (onClose)=\"close(false)\"\r\n cdkDragHandle\r\n #dragbar\r\n ></obl-drag-bar>\r\n @if (filters) {\r\n <div class=\"list\">\r\n @if (settings) {\r\n <div class=\"row\">\r\n @if (settingsItems.length) {\r\n <obl-dropdown-select\r\n [label]=\"'Saved filters:' | oblTranslation : translations()\"\r\n [labelAnimation]=\"labelAnimation\"\r\n [items]=\"settingsItems\"\r\n (changed)=\"setSettings($event)\"\r\n #selectedSetting\r\n >\r\n @if (selectedSetting.selected) {\r\n <ng-container suffix>\r\n <button\r\n oblButton\r\n icon=\"subtract\"\r\n (click)=\"removeSettings(selectedSetting?.selected?.id)\"\r\n ></button>\r\n </ng-container>\r\n }\r\n </obl-dropdown-select>\r\n }\r\n <obl-input-wrapper\r\n [label]=\"'Setting name:' | oblTranslation : translations()\"\r\n [labelAnimation]=\"labelAnimation\"\r\n [errors]=\"errors['settingsName']\"\r\n [translations]=\"translations()\"\r\n >\r\n <input\r\n oblInput\r\n type=\"text\"\r\n [required]=\"errors['settingsName']\"\r\n (change)=\"check()\"\r\n #settingsName\r\n />\r\n <button\r\n suffix\r\n oblButton\r\n icon=\"save\"\r\n (click)=\"saveSettings(settingsName)\"\r\n ></button>\r\n </obl-input-wrapper>\r\n </div>\r\n }\r\n <obl-filter\r\n [filter]=\"filters\"\r\n [labelAnimation]=\"labelAnimation\"\r\n [names]=\"names()\"\r\n [haveParent]=\"false\"\r\n [translations]=\"translations()\"\r\n [suffix]=\"suffix()\"\r\n [filtersType]=\"filtersType()\"\r\n (changed)=\"onChanged()\"\r\n ></obl-filter>\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DropdownSelectModule } from '@obliczeniowo/elementary/dropdown-select';\r\nimport { InputModule } from '@obliczeniowo/elementary/input';\r\n\r\nimport { FiltersComponent } from './components/filters/filters.component';\r\nimport { FilterComponent } from './components/filter/filter.component';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { ButtonsModule } from '@obliczeniowo/elementary/buttons';\r\nimport { SwitcherModule } from '@obliczeniowo/elementary/switcher';\r\nimport { TextPipesModule } from '@obliczeniowo/elementary/text-pipes';\r\nimport { BadgeDirective } from '@obliczeniowo/elementary/badge';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n FiltersComponent,\r\n FilterComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n DropdownSelectModule,\r\n InputModule,\r\n ButtonsModule,\r\n SwitcherModule,\r\n OverlayModule,\r\n DragDropModule,\r\n TextPipesModule,\r\n BadgeDirective\r\n ],\r\n exports: [\r\n FiltersComponent\r\n ]\r\n})\r\nexport class FiltersModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1.FiltersService","i5","i6","i8.FilterComponent","i9"],"mappings":"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"}