@kris701/ez-ui 1.2.13 → 1.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"kris701-ez-ui.mjs","sources":["../../../projects/ez-ui/src/components/booleaninput.ts","../../../projects/ez-ui/src/components/dateinput.ts","../../../projects/ez-ui/src/components/datetimeinput.ts","../../../projects/ez-ui/src/components/dialog.ts","../../../projects/ez-ui/src/components/fileinput.ts","../../../projects/ez-ui/src/constants/lucideicons.ts","../../../projects/ez-ui/src/components/textinput.ts","../../../projects/ez-ui/src/components/iconselector.ts","../../../projects/ez-ui/src/helpers/compressImage.ts","../../../projects/ez-ui/src/components/menubar.ts","../../../projects/ez-ui/src/components/markdowneditor.ts","../../../projects/ez-ui/src/components/multiselect.ts","../../../projects/ez-ui/src/components/numberinput.ts","../../../projects/ez-ui/src/components/passwordinput.ts","../../../projects/ez-ui/src/components/select.ts","../../../projects/ez-ui/src/components/showmoretext.ts","../../../projects/ez-ui/src/components/table/table.presets.ts","../../../projects/ez-ui/src/components/table/helpers/table.filterhelpers.ts","../../../projects/ez-ui/src/components/table/services/table.filterservice.ts","../../../projects/ez-ui/src/components/table/table.ts","../../../projects/ez-ui/src/components/table/filters/table.booleanfilter.ts","../../../projects/ez-ui/src/components/table/filters/table.datefilter.ts","../../../projects/ez-ui/src/components/table/filters/table.numberfilter.ts","../../../projects/ez-ui/src/components/table/filters/table.selectfilter.ts","../../../projects/ez-ui/src/components/table/filters/table.textfilter.ts","../../../projects/ez-ui/src/components/table/sorts/table.sortable.ts","../../../projects/ez-ui/src/interfaces/baseCRUDInterface.ts","../../../projects/ez-ui/src/interfaces/baseListInterface.ts","../../../projects/ez-ui/src/layout/ezui.sidebar.item.ts","../../../projects/ez-ui/src/layout/services/ezui.layout.service.ts","../../../projects/ez-ui/src/layout/ezui.sidebar.ts","../../../projects/ez-ui/src/layout/ezui.topbar.ts","../../../projects/ez-ui/src/layout/ezui.layout.ts","../../../projects/ez-ui/public-api.ts","../../../projects/ez-ui/kris701-ez-ui.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiIcon } from '@taiga-ui/core';\nimport { TuiBlock, TuiSwitch } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-booleaninput',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiBlock,\n\t\tTuiSwitch,\n\t\tTuiIcon\n\t],\n template: `\n\t <label class=\"boolean-container\" [tuiBlock]=\"size\">\n\t\t\t@if(icon && icon != ''){\n\t\t\t\t<tui-icon [icon]=\"icon\" />\n\t\t\t}\n\t {{label}}\n\t\t\t<div style=\"flex-grow:1\"></div>\n\t <input\n\t size=\"s\"\n\t tuiSwitch\n\t type=\"checkbox\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[(ngModel)]=\"value\"\n\t\t\t\t(ngModelChange)=\"valueChange.emit(value)\"\n\t />\n\t </label>\n `,\n styles: `\n\t\t.boolean-container {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: row;\n\t\t\tgap:10px;\n\t\t\twidth:100%;\n\t\t\tbackground-color: var(--tui-background-neutral-1);\n\t\t}\n `\n})\nexport class EzUIBooleanInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n @Input() value: boolean | null = false;\n @Output() valueChange = new EventEmitter<boolean | null>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n }\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiDropdownSheet } from '@taiga-ui/addon-mobile';\nimport { TuiDay } from '@taiga-ui/cdk/date-time';\nimport { TuiInput } from '@taiga-ui/core';\nimport { TuiInputDate } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-dateinput',\n imports: [\n\t\tFormsModule,\n\t\tTuiInput,\n\t\tTuiInputDate,\n\t\tTuiDropdownSheet\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\" tuiDropdownSheet>\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInputDate [(ngModel)]=\"internalValue\" (ngModelChange)=\"updateValue()\" [disabled]=\"disabled\" [min]=\"toTuiDate(toDateOrNull(min))\" [max]=\"toTuiDate(toDateOrNull(max))\"/>\n\t\t\t<tui-calendar *tuiDropdown />\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUIDateInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n\t@Input() min : Date | string | null = null;\n\t@Input() max : Date | string | null = null;\n\n\tTuiDay = TuiDay;\n\n @Input() value: Date | string | null = new Date;\n @Output() valueChange = new EventEmitter<Date | string | null>();\n\n\tinternalValue = signal<TuiDay | null>(null);\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n\t\t\tthis.internalValue.set(this.toTuiDate(this.toDateOrNull(this.value)));\n }\n }\n\n\tupdateValue(){\n\t\tif (this.internalValue){\n\t\t\tthis.value = this.fromTuiDate(this.internalValue());\n\t\t\tthis.valueChange.emit(this.value);\n\t\t}\n\t}\n\n\ttoTuiDate(date : Date | null) : TuiDay | null {\n\t\tif (date)\n\t\t\treturn TuiDay.fromUtcNativeDate(date);\n\t\treturn null;\n\t}\n\n\tfromTuiDate(date : TuiDay | null) : Date | null{\n\t\tif(date){\n\t\t\treturn date.toUtcNativeDate();\n\t\t}\n\t\treturn null;\n\t}\n\n\ttoDateOrNull(value : Date | string | null) : Date | null {\n\t\tif (value) return new Date(value);\n\t\treturn null;\n\t}\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiDropdownSheet } from '@taiga-ui/addon-mobile';\nimport { TuiDay, TuiTime } from '@taiga-ui/cdk/date-time';\nimport { TuiButton, TuiInput } from '@taiga-ui/core';\nimport { TuiInputDateTime } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-datetimeinput',\n imports: [\n\t\tFormsModule,\n\t\tTuiInput,\n\t\tTuiInputDateTime,\n\t\tTuiButton,\n\t\tTuiDropdownSheet\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\" tuiDropdownSheet>>\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInputDateTime [(ngModel)]=\"internalValue\" (ngModelChange)=\"updateValue()\" [disabled]=\"disabled\" [min]=\"toTuiDateTime(toDateOrNull(min))\" [max]=\"toTuiDateTime(toDateOrNull(max))\"/>\n\t\t\t<section *tuiDropdown class=\"datetime-dropdown\">\n\t\t\t\t@let internal = internalValue();\n\t\t\t\t@if(showDate()){\n\t\t\t\t\t@if(internal && internal[1]){\n\t\t\t\t\t\t<button tuiButton iconStart=\"clock\" (click)=\"showDate.set(false)\" size=\"s\">Set Time</button>\n\t\t\t\t\t}\n\n\t\t\t\t\t<tui-calendar/>\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t<button tuiButton iconStart=\"calendar\" (click)=\"showDate.set(true)\" size=\"s\">Set Date</button>\n\n\t\t\t\t\t@if(internal && internal[1]){\n\t\t\t\t\t\t@let time = internal[1];\n\t\t\t\t\t\t<div class=\"timeselector\">\n\t\t\t\t\t\t\t<div class=\"selector\">\n\t\t\t\t\t\t\t\t<button tuiButton (click)=\"setHours(time.hours + 1)\" iconStart=\"plus\" size=\"l\"></button>\n\t\t\t\t\t\t\t\t<span>{{time.hours}}</span>\n\t\t\t\t\t\t\t\t<button tuiButton (click)=\"setHours(time.hours - 1)\" iconStart=\"minus\" size=\"l\"></button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"selector\">\n\t\t\t\t\t\t\t\t<button tuiButton (click)=\"setMinutes(time.minutes + 1)\" iconStart=\"plus\" size=\"l\"></button>\n\t\t\t\t\t\t\t\t<span>{{time.minutes}}</span>\n\t\t\t\t\t\t\t\t<button tuiButton (click)=\"setMinutes(time.minutes - 1)\" iconStart=\"minus\" size=\"l\"></button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</section>\n\t\t</tui-textfield>\n `,\n styles: `\n\t\t.datetime-dropdown {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: column;\n\n\t\t\t.timeselector {\n\t\t\t\tinline-size: 12rem;\n\t\t\t\tdisplay:flex;\n\t\t\t\tgap:10px;\n\t\t\t\tmargin-top:10px;\n\t\t\t\talign-self:center;\n\n\t\t\t\t.selector {\n\t\t\t\t\tdisplay:flex;\n\t\t\t\t\tflex-direction:column;\n\t\t\t\t\talign-self:center;\n\t\t\t\t\twidth: 100%;\n\n\t\t\t\t\tspan {\n\t\t\t\t\t\ttext-align:center;\n\t\t\t\t\t\tfont-size:40px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUIDateTimeInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n\t@Input() min : Date | string | null = null;\n\t@Input() max : Date | string | null = null;\n\n\tTuiDay = TuiDay;\n\tTuiTime = TuiTime;\n\n\tshowDate = signal<boolean>(true);\n\n @Input() value: Date | string | null = new Date();\n @Output() valueChange = new EventEmitter<Date | string | null>();\n\n\tinternalValue = signal<[TuiDay, TuiTime] | null>(null);\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n\t\t\tthis.internalValue.set(this.toTuiDateTime(this.toDateOrNull(this.value)));\n\t\t\tconst internal = this.internalValue();\n\t\t\tif (!internal || !internal[1])\n\t\t\t\tthis.showDate.set(true);\n }\n }\n\n\tupdateValue(){\n\t\tif (this.internalValue){\n\t\t\tlet internal : [TuiDay, TuiTime] | null = this.internalValue()\n\t\t\tif (internal){\n\t\t\t\tif (!internal[1])\n\t\t\t\t{\n\t\t\t\t\tinternal[1] = new TuiTime(0,0);\n\t\t\t\t\tthis.internalValue.set(internal);\n\t\t\t\t}\n\t\t\t\tthis.value = this.fromTuiDateTime(this.internalValue());\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.value = null;\n\t\t\t}\n\t\t\tthis.valueChange.emit(this.value);\n\t\t}\n\t}\n\n\ttoTuiDateTime(date : Date | null) : [TuiDay, TuiTime] | null {\n\t\tif (date)\n\t\t\treturn [TuiDay.fromUtcNativeDate(date), TuiTime.fromLocalNativeDate(date)];\n\t\treturn null;\n\t}\n\n\tfromTuiDateTime(date : [TuiDay, TuiTime] | null) : Date | null{\n\t\tif(date){\n\t\t\tlet value = date[0].toUtcNativeDate();\n\t\t\tconst {hours = 0, minutes = 0} = date?.[1] ?? {};\n\t\t\tvalue.setHours(hours, minutes);\n\t\t\treturn value;\n\t\t}\n\t\treturn null;\n\t}\n\n\tsetHours(value : number){\n\t\tlet internal = this.internalValue();\n\t\tif(internal && internal[1]){\n\t\t\tif (value > 23)\n\t\t\t\tvalue = 0;\n\t\t\tif (value < 0)\n\t\t\t\tvalue = 23;\n\t\t\tinternal[1] = new TuiTime(value, internal[1].minutes)\n\t\t\tthis.internalValue.set(internal)\n\t\t\tthis.updateValue();\n\t\t}\n\t}\n\n\tsetMinutes(value : number){\n\t\tlet internal = this.internalValue();\n\t\tif(internal && internal[1]){\n\t\t\tif (value > 59)\n\t\t\t\tvalue = 0;\n\t\t\tif (value < 0)\n\t\t\t\tvalue = 59;\n\t\t\tinternal[1] = new TuiTime(internal[1].hours, value)\n\t\t\tthis.internalValue.set(internal)\n\t\t\tthis.updateValue();\n\t\t}\n\t}\n\n\ttoDateOrNull(value : Date | string | null) : Date | null {\n\t\tif (value) return new Date(value);\n\t\treturn null;\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, signal, TemplateRef } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiDialog, TuiLoader, TuiTitle } from '@taiga-ui/core';\nimport { TuiHeader } from '@taiga-ui/layout';\nimport { EzUILayoutService } from '../../public-api';\n\n@Component({\n selector: 'ezui-dialog',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiHeader,\n\t\tTuiTitle,\n\t\tTuiLoader,\n\t\tTuiDialog,\n\t\tTuiButton\n\t],\n template: `\n\t\t<ng-template let-id=\"id\" [tuiDialogOptions]=\"{size: size, appearance: layoutService.isDesktop() ? 'taiga compact' : 'fullscreen'}\" [(tuiDialog)]=\"showDialog\">\n\t\t\t<header tuiHeader>\n\t\t\t\t<hgroup tuiTitle>\n\t\t\t\t\t<h2 [id]=\"id\">{{title}}</h2>\n\t\t\t\t</hgroup>\n\t\t\t</header>\n\n\t\t\t<tui-loader [overlay]=\"true\" [loading]=\"isLoading()\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n\t\t\t</tui-loader>\n\n\t\t\t@if(!isLoading() && (showSave || showDelete)){\n\t\t\t\t<footer class=\"dialog-footer\">\n\t\t\t\t\t@if(showSave){\n\t\t\t\t\t\t<button tuiButton iconStart=\"save\" size=\"s\" (click)=\"onSaveItem.emit()\">Save</button>\n\t\t\t\t\t}\n\t\t\t\t\t@if(showDelete){\n\t\t\t\t\t\t<button tuiButton iconStart=\"x\" size=\"s\" appearance=\"negative\" (click)=\"onDeleteItem.emit()\">Delete</button>\n\t\t\t\t\t}\n\t\t\t\t</footer>\n\t\t\t}\n\t\t</ng-template>\n `,\n styles: `\n\t\t.dialog-footer {\n\t\t\tdisplay:flex !important;\n\t\t\tflex-direction: row !important;\n\t\t\tgap: 5px !important;\n\t\t\tmargin-top:auto !important;\n\t\t\tmargin-block-start: auto !important;\n\t\t}\n `\n})\nexport class EzUIDialog {\n\t@ContentChild('content', { static: false }) public content: TemplateRef<any> | undefined;\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n\t@Input() title: string = '';\n\n\t@Input() isLoading = signal<boolean>(false);\n\t@Input() showDialog = signal<boolean>(false);\n\n\t@Input() showSave : boolean = false;\n\t@Input() showDelete : boolean = false;\n\n\t@Output() onSaveItem: EventEmitter<any> = new EventEmitter();\n\t@Output() onDeleteItem: EventEmitter<any> = new EventEmitter();\n\n\tconstructor(public layoutService : EzUILayoutService,){\n\n\t}\n}\n","import { Component, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiFiles } from '@taiga-ui/kit';\n\n@Component({\n\tselector: 'ezui-fileinput',\n imports: [FormsModule, TuiFiles],\n\ttemplate:`\n\t\t<label tuiInputFiles>\n\t\t\t<input\n\t\t\t\t#validator=\"tuiInputFilesValidator\"\n\t\t\t\taccept=\"*/*\"\n\t\t\t\ttuiInputFiles\n\t\t\t\t[ngModel]=\"files()\"\n\t\t\t\t(ngModelChange)=\"onChange($event)\"\n\t\t\t/>\n\t\t</label>\n\n\t\t<tui-files>\n\t\t\t@for(file of files(); track file){\n\t\t\t\t<tui-file\n\t\t\t\t\tstate=\"normal\"\n\t\t\t\t\t[file]=\"file\"\n\t\t\t\t\t(remove)=\"removeFile(file)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</tui-files>\n\t`\n})\nexport class EzUIFileInput {\n\tpublic files = signal<File[]>([]);\n\n\tpublic clear(){\n\t\tthis.files.set([]);\n\t}\n\n\tprotected onChange(files: File[] | File): void {\n\t\tif (files instanceof File)\n\t\t\tthis.files.set([files]);\n\t\telse\n\t\t\tthis.files.set(files);\n\t}\n\n\tremoveFile(file : File){\n\t\tconst files = this.files();\n\t\tconst index = files.indexOf(file);\n\t\tif (index != -1){\n\t\t\tfiles.splice(index, 1);\n\t\t\tthis.files.set(files);\n\t\t}\n\t}\n}\n","export const lucideicons : string[] = [\n\t'a-arrow-down',\n\t'a-arrow-up',\n\t'a-large-small',\n\t'accessibility',\n\t'activity',\n\t'ad',\n\t'air-vent',\n\t'airplay',\n\t'alarm-clock-check',\n\t'alarm-clock-minus',\n\t'alarm-clock-off',\n\t'alarm-clock-plus',\n\t'alarm-clock',\n\t'alarm-smoke',\n\t'album',\n\t'align-center-horizontal',\n\t'align-center-vertical',\n\t'align-end-horizontal',\n\t'align-end-vertical',\n\t'align-horizontal-distribute-center',\n\t'align-horizontal-distribute-end',\n\t'align-horizontal-distribute-start',\n\t'align-horizontal-justify-center',\n\t'align-horizontal-justify-end',\n\t'align-horizontal-justify-start',\n\t'align-horizontal-space-around',\n\t'align-horizontal-space-between',\n\t'align-start-horizontal',\n\t'align-start-vertical',\n\t'align-vertical-distribute-center',\n\t'align-vertical-distribute-end',\n\t'align-vertical-distribute-start',\n\t'align-vertical-justify-center',\n\t'align-vertical-justify-end',\n\t'align-vertical-justify-start',\n\t'align-vertical-space-around',\n\t'align-vertical-space-between',\n\t'ambulance',\n\t'ampersand',\n\t'ampersands',\n\t'amphora',\n\t'anchor',\n\t'angry',\n\t'annoyed',\n\t'antenna',\n\t'anvil',\n\t'aperture',\n\t'app-window-mac',\n\t'app-window',\n\t'apple',\n\t'archive-restore',\n\t'archive-x',\n\t'archive',\n\t'armchair',\n\t'arrow-big-down-dash',\n\t'arrow-big-down',\n\t'arrow-big-left-dash',\n\t'arrow-big-left',\n\t'arrow-big-right-dash',\n\t'arrow-big-right',\n\t'arrow-big-up-dash',\n\t'arrow-big-up',\n\t'arrow-down-0-1',\n\t'arrow-down-1-0',\n\t'arrow-down-a-z',\n\t'arrow-down-from-line',\n\t'arrow-down-left',\n\t'arrow-down-narrow-wide',\n\t'arrow-down-right',\n\t'arrow-down-to-dot',\n\t'arrow-down-to-line',\n\t'arrow-down-up',\n\t'arrow-down-wide-narrow',\n\t'arrow-down-z-a',\n\t'arrow-down',\n\t'arrow-left-from-line',\n\t'arrow-left-right',\n\t'arrow-left-to-line',\n\t'arrow-left',\n\t'arrow-right-from-line',\n\t'arrow-right-left',\n\t'arrow-right-to-line',\n\t'arrow-right',\n\t'arrow-up-0-1',\n\t'arrow-up-1-0',\n\t'arrow-up-a-z',\n\t'arrow-up-down',\n\t'arrow-up-from-dot',\n\t'arrow-up-from-line',\n\t'arrow-up-left',\n\t'arrow-up-narrow-wide',\n\t'arrow-up-right',\n\t'arrow-up-to-line',\n\t'arrow-up-wide-narrow',\n\t'arrow-up-z-a',\n\t'arrow-up',\n\t'arrows-up-from-line',\n\t'asterisk',\n\t'astroid',\n\t'at-sign',\n\t'atom',\n\t'audio-lines',\n\t'audio-waveform',\n\t'award',\n\t'axe',\n\t'axis-3d',\n\t'baby',\n\t'backpack',\n\t'badge-alert',\n\t'badge-cent',\n\t'badge-check',\n\t'badge-dollar-sign',\n\t'badge-euro',\n\t'badge-indian-rupee',\n\t'badge-info',\n\t'badge-japanese-yen',\n\t'badge-minus',\n\t'badge-percent',\n\t'badge-plus',\n\t'badge-pound-sterling',\n\t'badge-question-mark',\n\t'badge-russian-ruble',\n\t'badge-swiss-franc',\n\t'badge-turkish-lira',\n\t'badge-x',\n\t'badge',\n\t'baggage-claim',\n\t'balloon',\n\t'ban',\n\t'banana',\n\t'bandage',\n\t'banknote-arrow-down',\n\t'banknote-arrow-up',\n\t'banknote-check',\n\t'banknote-x',\n\t'banknote',\n\t'barcode',\n\t'barrel',\n\t'baseline',\n\t'bath',\n\t'battery-charging',\n\t'battery-full',\n\t'battery-low',\n\t'battery-medium',\n\t'battery-plus',\n\t'battery-warning',\n\t'battery',\n\t'beaker',\n\t'bean-off',\n\t'bean',\n\t'bed-double',\n\t'bed-single',\n\t'bed',\n\t'beef-off',\n\t'beef',\n\t'beer-off',\n\t'beer',\n\t'bell-check',\n\t'bell-dot',\n\t'bell-electric',\n\t'bell-minus',\n\t'bell-off',\n\t'bell-plus',\n\t'bell-ring',\n\t'bell',\n\t'between-horizontal-end',\n\t'between-horizontal-start',\n\t'between-vertical-end',\n\t'between-vertical-start',\n\t'biceps-flexed',\n\t'bike',\n\t'binary',\n\t'binoculars',\n\t'biohazard',\n\t'bird',\n\t'birdhouse',\n\t'bitcoin',\n\t'blend',\n\t'blender',\n\t'blinds',\n\t'blocks',\n\t'bluetooth-connected',\n\t'bluetooth-off',\n\t'bluetooth-searching',\n\t'bluetooth',\n\t'bold',\n\t'bolt',\n\t'bomb',\n\t'bone-fracture',\n\t'bone',\n\t'book-a',\n\t'book-alert',\n\t'book-audio',\n\t'book-check',\n\t'book-copy',\n\t'book-dashed',\n\t'book-down',\n\t'book-headphones',\n\t'book-heart',\n\t'book-image',\n\t'book-key',\n\t'book-lock',\n\t'book-marked',\n\t'book-minus',\n\t'book-open-check',\n\t'book-open-text',\n\t'book-open',\n\t'book-plus',\n\t'book-search',\n\t'book-text',\n\t'book-type',\n\t'book-up-2',\n\t'book-up',\n\t'book-user',\n\t'book-x',\n\t'book',\n\t'bookmark-check',\n\t'bookmark-minus',\n\t'bookmark-off',\n\t'bookmark-plus',\n\t'bookmark-x',\n\t'bookmark',\n\t'boom-box',\n\t'bot-message-square',\n\t'bot-off',\n\t'bot',\n\t'bottle-wine',\n\t'bow-arrow',\n\t'box',\n\t'boxes',\n\t'braces',\n\t'brackets',\n\t'brain-circuit',\n\t'brain-cog',\n\t'brain',\n\t'brick-wall-fire',\n\t'brick-wall-shield',\n\t'brick-wall',\n\t'briefcase-business',\n\t'briefcase-conveyor-belt',\n\t'briefcase-medical',\n\t'briefcase',\n\t'bring-to-front',\n\t'broccoli',\n\t'brush-cleaning',\n\t'brush',\n\t'bubbles',\n\t'bug-off',\n\t'bug-play',\n\t'bug',\n\t'building-2',\n\t'building',\n\t'bus-front',\n\t'bus',\n\t'cable-car',\n\t'cable',\n\t'cake-slice',\n\t'cake',\n\t'calculator',\n\t'calendar-1',\n\t'calendar-arrow-down',\n\t'calendar-arrow-up',\n\t'calendar-check-2',\n\t'calendar-check',\n\t'calendar-clock',\n\t'calendar-cog',\n\t'calendar-days',\n\t'calendar-fold',\n\t'calendar-heart',\n\t'calendar-minus-2',\n\t'calendar-minus',\n\t'calendar-off',\n\t'calendar-plus-2',\n\t'calendar-plus',\n\t'calendar-range',\n\t'calendar-search',\n\t'calendar-sync',\n\t'calendar-x-2',\n\t'calendar-x',\n\t'calendar',\n\t'calendars',\n\t'camera-off',\n\t'camera',\n\t'candy-cane',\n\t'candy-off',\n\t'candy',\n\t'cannabis-off',\n\t'cannabis',\n\t'captions-off',\n\t'captions',\n\t'car-front',\n\t'car-taxi-front',\n\t'car',\n\t'caravan',\n\t'card-sim',\n\t'carrot',\n\t'case-lower',\n\t'case-sensitive',\n\t'case-upper',\n\t'cassette-tape',\n\t'cast',\n\t'castle',\n\t'cat',\n\t'cctv-off',\n\t'cctv',\n\t'chart-area',\n\t'chart-bar-big',\n\t'chart-bar-decreasing',\n\t'chart-bar-increasing',\n\t'chart-bar-stacked',\n\t'chart-bar',\n\t'chart-candlestick',\n\t'chart-column-big',\n\t'chart-column-decreasing',\n\t'chart-column-increasing',\n\t'chart-column-stacked',\n\t'chart-column',\n\t'chart-gantt',\n\t'chart-line',\n\t'chart-network',\n\t'chart-no-axes-column-decreasing',\n\t'chart-no-axes-column-increasing',\n\t'chart-no-axes-column',\n\t'chart-no-axes-combined',\n\t'chart-no-axes-gantt',\n\t'chart-pie',\n\t'chart-scatter',\n\t'chart-spline',\n\t'check-check',\n\t'check-line',\n\t'check',\n\t'chef-hat',\n\t'cherry',\n\t'chess-bishop',\n\t'chess-king',\n\t'chess-knight',\n\t'chess-pawn',\n\t'chess-queen',\n\t'chess-rook',\n\t'chevron-down',\n\t'chevron-first',\n\t'chevron-last',\n\t'chevron-left',\n\t'chevron-right',\n\t'chevron-up',\n\t'chevrons-down-up',\n\t'chevrons-down',\n\t'chevrons-left-right-ellipsis',\n\t'chevrons-left-right',\n\t'chevrons-left',\n\t'chevrons-right-left',\n\t'chevrons-right',\n\t'chevrons-up-down',\n\t'chevrons-up',\n\t'church',\n\t'cigarette-off',\n\t'cigarette',\n\t'circle-alert',\n\t'circle-arrow-down',\n\t'circle-arrow-left',\n\t'circle-arrow-out-down-left',\n\t'circle-arrow-out-down-right',\n\t'circle-arrow-out-up-left',\n\t'circle-arrow-out-up-right',\n\t'circle-arrow-right',\n\t'circle-arrow-up',\n\t'circle-check-big',\n\t'circle-check',\n\t'circle-chevron-down',\n\t'circle-chevron-left',\n\t'circle-chevron-right',\n\t'circle-chevron-up',\n\t'circle-dashed',\n\t'circle-divide',\n\t'circle-dollar-sign',\n\t'circle-dot-dashed',\n\t'circle-dot',\n\t'circle-ellipsis',\n\t'circle-equal',\n\t'circle-euro',\n\t'circle-fading-arrow-up',\n\t'circle-fading-plus',\n\t'circle-gauge',\n\t'circle-minus',\n\t'circle-off',\n\t'circle-parking-off',\n\t'circle-parking',\n\t'circle-pause',\n\t'circle-percent',\n\t'circle-pile',\n\t'circle-play',\n\t'circle-plus',\n\t'circle-pound-sterling',\n\t'circle-power',\n\t'circle-question-mark',\n\t'circle-slash-2',\n\t'circle-slash',\n\t'circle-small',\n\t'circle-star',\n\t'circle-stop',\n\t'circle-user-round',\n\t'circle-user',\n\t'circle-x',\n\t'circle',\n\t'circuit-board',\n\t'citrus',\n\t'clapperboard',\n\t'clipboard-check',\n\t'clipboard-clock',\n\t'clipboard-copy',\n\t'clipboard-list',\n\t'clipboard-minus',\n\t'clipboard-paste',\n\t'clipboard-pen-line',\n\t'clipboard-pen',\n\t'clipboard-plus',\n\t'clipboard-type',\n\t'clipboard-x',\n\t'clipboard',\n\t'clock-1',\n\t'clock-10',\n\t'clock-11',\n\t'clock-12',\n\t'clock-2',\n\t'clock-3',\n\t'clock-4',\n\t'clock-5',\n\t'clock-6',\n\t'clock-7',\n\t'clock-8',\n\t'clock-9',\n\t'clock-alert',\n\t'clock-arrow-down',\n\t'clock-arrow-left',\n\t'clock-arrow-right',\n\t'clock-arrow-up',\n\t'clock-check',\n\t'clock-fading',\n\t'clock-plus',\n\t'clock',\n\t'closed-caption',\n\t'cloud-alert',\n\t'cloud-backup',\n\t'cloud-check',\n\t'cloud-cog',\n\t'cloud-download',\n\t'cloud-drizzle',\n\t'cloud-fog',\n\t'cloud-hail',\n\t'cloud-lightning',\n\t'cloud-moon-rain',\n\t'cloud-moon',\n\t'cloud-off',\n\t'cloud-rain-wind',\n\t'cloud-rain',\n\t'cloud-snow',\n\t'cloud-sun-rain',\n\t'cloud-sun',\n\t'cloud-sync',\n\t'cloud-upload',\n\t'cloud',\n\t'cloudy',\n\t'clover',\n\t'club',\n\t'code-xml',\n\t'code',\n\t'coffee',\n\t'cog',\n\t'coins',\n\t'columns-2',\n\t'columns-3-cog',\n\t'columns-3',\n\t'columns-4',\n\t'combine',\n\t'command',\n\t'compass',\n\t'component',\n\t'computer',\n\t'concierge-bell',\n\t'cone',\n\t'construction',\n\t'contact-round',\n\t'contact',\n\t'container',\n\t'contrast',\n\t'cookie',\n\t'cooking-pot',\n\t'copy-check',\n\t'copy-minus',\n\t'copy-plus',\n\t'copy-slash',\n\t'copy-x',\n\t'copy',\n\t'copyleft',\n\t'copyright',\n\t'corner-down-left',\n\t'corner-down-right',\n\t'corner-left-down',\n\t'corner-left-up',\n\t'corner-right-down',\n\t'corner-right-up',\n\t'corner-up-left',\n\t'corner-up-right',\n\t'cpu',\n\t'creative-commons',\n\t'credit-card',\n\t'croissant',\n\t'crop',\n\t'cross',\n\t'crosshair',\n\t'crown',\n\t'cuboid',\n\t'cup-soda',\n\t'currency',\n\t'cylinder',\n\t'dam',\n\t'database-arrow-down',\n\t'database-arrow-up',\n\t'database-backup',\n\t'database-check',\n\t'database-minus',\n\t'database-plus',\n\t'database-search',\n\t'database-x',\n\t'database-zap',\n\t'database',\n\t'decimals-arrow-left',\n\t'decimals-arrow-right',\n\t'delete',\n\t'dessert',\n\t'diameter',\n\t'diamond-minus',\n\t'diamond-percent',\n\t'diamond-plus',\n\t'diamond',\n\t'dice-1',\n\t'dice-2',\n\t'dice-3',\n\t'dice-4',\n\t'dice-5',\n\t'dice-6',\n\t'dices',\n\t'diff',\n\t'disc-2',\n\t'disc-3',\n\t'disc-album',\n\t'disc',\n\t'divide',\n\t'dna-off',\n\t'dna',\n\t'dock',\n\t'dog',\n\t'dollar-sign',\n\t'donut',\n\t'door-closed-locked',\n\t'door-closed',\n\t'door-open',\n\t'dot',\n\t'download',\n\t'drafting-compass',\n\t'drama',\n\t'drill',\n\t'drone',\n\t'droplet-off',\n\t'droplet',\n\t'droplets',\n\t'drum',\n\t'drumstick',\n\t'dumbbell',\n\t'ear-off',\n\t'ear',\n\t'earth-lock',\n\t'earth',\n\t'eclipse',\n\t'egg-fried',\n\t'egg-off',\n\t'egg',\n\t'ellipse',\n\t'ellipsis-vertical',\n\t'ellipsis',\n\t'equal-approximately',\n\t'equal-not',\n\t'equal',\n\t'eraser',\n\t'ethernet-port',\n\t'euro',\n\t'ev-charger',\n\t'expand',\n\t'external-link',\n\t'eye-closed',\n\t'eye-dashed',\n\t'eye-off',\n\t'eye',\n\t'factory',\n\t'fan',\n\t'fast-forward',\n\t'feather',\n\t'fence',\n\t'ferris-wheel',\n\t'file-archive',\n\t'file-axis-3d',\n\t'file-badge',\n\t'file-box',\n\t'file-braces-corner',\n\t'file-braces',\n\t'file-chart-column-increasing',\n\t'file-chart-column',\n\t'file-chart-line',\n\t'file-chart-pie',\n\t'file-check-corner',\n\t'file-check',\n\t'file-clock',\n\t'file-code-corner',\n\t'file-code',\n\t'file-cog',\n\t'file-diff',\n\t'file-digit',\n\t'file-down',\n\t'file-exclamation-point',\n\t'file-headphone',\n\t'file-heart',\n\t'file-image',\n\t'file-input',\n\t'file-key',\n\t'file-lock',\n\t'file-minus-corner',\n\t'file-minus',\n\t'file-music',\n\t'file-output',\n\t'file-pen-line',\n\t'file-pen',\n\t'file-play',\n\t'file-plus-corner',\n\t'file-plus',\n\t'file-question-mark',\n\t'file-scan',\n\t'file-search-corner',\n\t'file-search',\n\t'file-signal',\n\t'file-sliders',\n\t'file-spreadsheet',\n\t'file-stack',\n\t'file-symlink',\n\t'file-terminal',\n\t'file-text',\n\t'file-type-corner',\n\t'file-type',\n\t'file-up',\n\t'file-user',\n\t'file-video-camera',\n\t'file-volume',\n\t'file-x-corner',\n\t'file-x',\n\t'file',\n\t'files',\n\t'film',\n\t'fingerprint-pattern',\n\t'fire-extinguisher',\n\t'fish-off',\n\t'fish-symbol',\n\t'fish',\n\t'fishing-hook',\n\t'fishing-rod',\n\t'flag-off',\n\t'flag-triangle-left',\n\t'flag-triangle-right',\n\t'flag',\n\t'flame-kindling',\n\t'flame',\n\t'flashlight-off',\n\t'flashlight',\n\t'flask-conical-off',\n\t'flask-conical',\n\t'flask-round',\n\t'flip-horizontal-2',\n\t'flip-vertical-2',\n\t'flower-2',\n\t'flower',\n\t'focus',\n\t'fold-horizontal',\n\t'fold-vertical',\n\t'folder-archive',\n\t'folder-bookmark',\n\t'folder-check',\n\t'folder-clock',\n\t'folder-closed',\n\t'folder-code',\n\t'folder-cog',\n\t'folder-dot',\n\t'folder-down',\n\t'folder-git-2',\n\t'folder-git',\n\t'folder-heart',\n\t'folder-input',\n\t'folder-kanban',\n\t'folder-key',\n\t'folder-lock',\n\t'folder-minus',\n\t'folder-open-dot',\n\t'folder-open',\n\t'folder-output',\n\t'folder-pen',\n\t'folder-plus',\n\t'folder-root',\n\t'folder-search-2',\n\t'folder-search',\n\t'folder-symlink',\n\t'folder-sync',\n\t'folder-tree',\n\t'folder-up',\n\t'folder-x',\n\t'folder',\n\t'folders',\n\t'footprints',\n\t'forklift',\n\t'form',\n\t'forward',\n\t'frame',\n\t'frown',\n\t'fuel',\n\t'fullscreen',\n\t'funnel-plus',\n\t'funnel-x',\n\t'funnel',\n\t'gallery-horizontal-end',\n\t'gallery-horizontal',\n\t'gallery-thumbnails',\n\t'gallery-vertical-end',\n\t'gallery-vertical',\n\t'gamepad-2',\n\t'gamepad-directional',\n\t'gamepad',\n\t'gauge',\n\t'gavel',\n\t'gem',\n\t'georgian-lari',\n\t'ghost',\n\t'gift',\n\t'git-branch-minus',\n\t'git-branch-plus',\n\t'git-branch',\n\t'git-commit-horizontal',\n\t'git-commit-vertical',\n\t'git-compare-arrows',\n\t'git-compare',\n\t'git-fork',\n\t'git-graph',\n\t'git-merge-conflict',\n\t'git-merge',\n\t'git-pull-request-arrow',\n\t'git-pull-request-closed',\n\t'git-pull-request-create-arrow',\n\t'git-pull-request-create',\n\t'git-pull-request-draft',\n\t'git-pull-request',\n\t'glass-water',\n\t'glasses',\n\t'globe-check',\n\t'globe-lock',\n\t'globe-off',\n\t'globe-x',\n\t'globe',\n\t'goal',\n\t'gpu',\n\t'graduation-cap',\n\t'grape',\n\t'grid-2x2-check',\n\t'grid-2x2-plus',\n\t'grid-2x2-x',\n\t'grid-2x2',\n\t'grid-3x2',\n\t'grid-3x3',\n\t'grip-horizontal',\n\t'grip-vertical',\n\t'grip',\n\t'group',\n\t'guitar',\n\t'ham',\n\t'hamburger',\n\t'hammer',\n\t'hand-coins',\n\t'hand-fist',\n\t'hand-grab',\n\t'hand-heart',\n\t'hand-helping',\n\t'hand-metal',\n\t'hand-platter',\n\t'hand',\n\t'handbag',\n\t'handshake',\n\t'hard-drive-download',\n\t'hard-drive-upload',\n\t'hard-drive',\n\t'hard-hat',\n\t'hash',\n\t'hat-glasses',\n\t'haze',\n\t'hd',\n\t'hdmi-port',\n\t'heading-1',\n\t'heading-2',\n\t'heading-3',\n\t'heading-4',\n\t'heading-5',\n\t'heading-6',\n\t'heading',\n\t'headphone-off',\n\t'headphones',\n\t'headset',\n\t'heart-crack',\n\t'heart-handshake',\n\t'heart-minus',\n\t'heart-off',\n\t'heart-plus',\n\t'heart-pulse',\n\t'heart-x',\n\t'heart',\n\t'heater',\n\t'helicopter',\n\t'hexagon',\n\t'highlighter',\n\t'history',\n\t'hop-off',\n\t'hop',\n\t'hospital',\n\t'hotel',\n\t'hourglass',\n\t'house-heart',\n\t'house-plug',\n\t'house-plus',\n\t'house-wifi',\n\t'house',\n\t'ice-cream-bowl',\n\t'ice-cream-cone',\n\t'id-card-lanyard',\n\t'id-card',\n\t'image-down',\n\t'image-minus',\n\t'image-off',\n\t'image-play',\n\t'image-plus',\n\t'image-up',\n\t'image-upscale',\n\t'image',\n\t'images',\n\t'import',\n\t'inbox',\n\t'indian-rupee',\n\t'infinity',\n\t'info',\n\t'inspection-panel',\n\t'italic',\n\t'iteration-ccw',\n\t'iteration-cw',\n\t'japanese-yen',\n\t'joystick',\n\t'kanban',\n\t'kayak',\n\t'key-round',\n\t'key-square',\n\t'key',\n\t'keyboard-music',\n\t'keyboard-off',\n\t'keyboard',\n\t'lamp-ceiling',\n\t'lamp-desk',\n\t'lamp-floor',\n\t'lamp-wall-down',\n\t'lamp-wall-up',\n\t'lamp',\n\t'land-plot',\n\t'landmark',\n\t'languages',\n\t'laptop-minimal-check',\n\t'laptop-minimal',\n\t'laptop',\n\t'lasso-select',\n\t'lasso',\n\t'laugh',\n\t'layers-2',\n\t'layers-minus',\n\t'layers-plus',\n\t'layers',\n\t'layout-dashboard',\n\t'layout-grid',\n\t'layout-list',\n\t'layout-panel-left',\n\t'layout-panel-top',\n\t'layout-template',\n\t'leaf',\n\t'leafy-green',\n\t'lectern',\n\t'lens-concave',\n\t'lens-convex',\n\t'library-big',\n\t'library',\n\t'life-buoy',\n\t'ligature',\n\t'lightbulb-off',\n\t'lightbulb',\n\t'line-dot-right-horizontal',\n\t'line-squiggle',\n\t'line-style',\n\t'link-2-off',\n\t'link-2',\n\t'link',\n\t'list-check',\n\t'list-checks',\n\t'list-chevrons-down-up',\n\t'list-chevrons-up-down',\n\t'list-collapse',\n\t'list-end',\n\t'list-filter-plus',\n\t'list-filter',\n\t'list-indent-decrease',\n\t'list-indent-increase',\n\t'list-minus',\n\t'list-music',\n\t'list-ordered',\n\t'list-plus',\n\t'list-restart',\n\t'list-sort-ascending',\n\t'list-sort-descending',\n\t'list-start',\n\t'list-todo',\n\t'list-tree',\n\t'list-video',\n\t'list-x',\n\t'list',\n\t'loader-circle',\n\t'loader-pinwheel',\n\t'loader',\n\t'locate-fixed',\n\t'locate-off',\n\t'locate',\n\t'lock-keyhole-open',\n\t'lock-keyhole',\n\t'lock-open',\n\t'lock',\n\t'log-in',\n\t'log-out',\n\t'logs',\n\t'lollipop',\n\t'luggage',\n\t'magnet',\n\t'mail-check',\n\t'mail-minus',\n\t'mail-open',\n\t'mail-plus',\n\t'mail-question-mark',\n\t'mail-search',\n\t'mail-warning',\n\t'mail-x',\n\t'mail',\n\t'mailbox',\n\t'mails',\n\t'map-minus',\n\t'map-pin-check-inside',\n\t'map-pin-check',\n\t'map-pin-house',\n\t'map-pin-minus-inside',\n\t'map-pin-minus',\n\t'map-pin-off',\n\t'map-pin-pen',\n\t'map-pin-plus-inside',\n\t'map-pin-plus',\n\t'map-pin-search',\n\t'map-pin-x-inside',\n\t'map-pin-x',\n\t'map-pin',\n\t'map-pinned',\n\t'map-plus',\n\t'map',\n\t'mars-stroke',\n\t'mars',\n\t'martini',\n\t'maximize-2',\n\t'maximize',\n\t'medal',\n\t'megaphone-off',\n\t'megaphone',\n\t'meh',\n\t'memory-stick',\n\t'menu',\n\t'merge',\n\t'message-circle-check',\n\t'message-circle-code',\n\t'message-circle-dashed',\n\t'message-circle-heart',\n\t'message-circle-more',\n\t'message-circle-off',\n\t'message-circle-plus',\n\t'message-circle-question-mark',\n\t'message-circle-reply',\n\t'message-circle-warning',\n\t'message-circle-x',\n\t'message-circle',\n\t'message-square-check',\n\t'message-square-code',\n\t'message-square-dashed',\n\t'message-square-diff',\n\t'message-square-dot',\n\t'message-square-heart',\n\t'message-square-lock',\n\t'message-square-more',\n\t'message-square-off',\n\t'message-square-plus',\n\t'message-square-quote',\n\t'message-square-reply',\n\t'message-square-share',\n\t'message-square-text',\n\t'message-square-warning',\n\t'message-square-x',\n\t'message-square',\n\t'messages-square',\n\t'metronome',\n\t'mic-off',\n\t'mic-vocal',\n\t'mic',\n\t'microchip',\n\t'microscope',\n\t'microwave',\n\t'milestone',\n\t'milk-off',\n\t'milk',\n\t'minimize-2',\n\t'minimize',\n\t'minus',\n\t'mirror-rectangular',\n\t'mirror-round',\n\t'monitor-check',\n\t'monitor-cloud',\n\t'monitor-cog',\n\t'monitor-dot',\n\t'monitor-down',\n\t'monitor-off',\n\t'monitor-pause',\n\t'monitor-play',\n\t'monitor-smartphone',\n\t'monitor-speaker',\n\t'monitor-stop',\n\t'monitor-up',\n\t'monitor-x',\n\t'monitor',\n\t'moon-star',\n\t'moon',\n\t'motorbike',\n\t'mountain-snow',\n\t'mountain',\n\t'mouse-left',\n\t'mouse-off',\n\t'mouse-pointer-2-off',\n\t'mouse-pointer-2',\n\t'mouse-pointer-ban',\n\t'mouse-pointer-click',\n\t'mouse-pointer',\n\t'mouse-right',\n\t'mouse',\n\t'move-3d',\n\t'move-diagonal-2',\n\t'move-diagonal',\n\t'move-down-left',\n\t'move-down-right',\n\t'move-down',\n\t'move-horizontal',\n\t'move-left',\n\t'move-right',\n\t'move-up-left',\n\t'move-up-right',\n\t'move-up',\n\t'move-vertical',\n\t'move',\n\t'music-2',\n\t'music-3',\n\t'music-4',\n\t'music',\n\t'navigation-2-off',\n\t'navigation-2',\n\t'navigation-off',\n\t'navigation',\n\t'network',\n\t'newspaper',\n\t'nfc',\n\t'non-binary',\n\t'notebook-pen',\n\t'notebook-tabs',\n\t'notebook-text',\n\t'notebook',\n\t'notepad-text-dashed',\n\t'notepad-text',\n\t'nut-off',\n\t'nut',\n\t'octagon-alert',\n\t'octagon-minus',\n\t'octagon-pause',\n\t'octagon-x',\n\t'octagon',\n\t'omega',\n\t'option',\n\t'orbit',\n\t'origami',\n\t'package-2',\n\t'package-check',\n\t'package-minus',\n\t'package-open',\n\t'package-plus',\n\t'package-search',\n\t'package-x',\n\t'package',\n\t'paint-bucket',\n\t'paint-roller',\n\t'paintbrush-vertical',\n\t'paintbrush',\n\t'palette',\n\t'panda',\n\t'panel-bottom-close',\n\t'panel-bottom-dashed',\n\t'panel-bottom-open',\n\t'panel-bottom',\n\t'panel-left-close',\n\t'panel-left-dashed',\n\t'panel-left-open',\n\t'panel-left-right-dashed',\n\t'panel-left',\n\t'panel-right-close',\n\t'panel-right-dashed',\n\t'panel-right-open',\n\t'panel-right',\n\t'panel-top-bottom-dashed',\n\t'panel-top-close',\n\t'panel-top-dashed',\n\t'panel-top-open',\n\t'panel-top',\n\t'panels-left-bottom',\n\t'panels-right-bottom',\n\t'panels-top-left',\n\t'paper-bag',\n\t'paperclip',\n\t'parasol',\n\t'parentheses',\n\t'parking-meter',\n\t'party-popper',\n\t'pause',\n\t'paw-print',\n\t'pc-case',\n\t'pen-line',\n\t'pen-off',\n\t'pen-tool',\n\t'pen',\n\t'pencil-line',\n\t'pencil-off',\n\t'pencil-ruler',\n\t'pencil-sparkles',\n\t'pencil',\n\t'pentagon',\n\t'percent',\n\t'person-standing',\n\t'phi',\n\t'philippine-peso',\n\t'phone-call',\n\t'phone-forwarded',\n\t'phone-incoming',\n\t'phone-missed',\n\t'phone-off',\n\t'phone-outgoing',\n\t'phone',\n\t'pi',\n\t'piano',\n\t'pickaxe',\n\t'picture-in-picture-2',\n\t'picture-in-picture',\n\t'piggy-bank',\n\t'pilcrow-left',\n\t'pilcrow-right',\n\t'pilcrow',\n\t'pill-bottle',\n\t'pill',\n\t'pin-off',\n\t'pin',\n\t'pipette',\n\t'pizza',\n\t'plane-landing',\n\t'plane-takeoff',\n\t'plane',\n\t'play-off',\n\t'play',\n\t'plug-2',\n\t'plug-zap',\n\t'plug',\n\t'plus',\n\t'pocket-knife',\n\t'podcast',\n\t'podium',\n\t'pointer-off',\n\t'pointer',\n\t'popcorn',\n\t'popsicle',\n\t'pound-sterling',\n\t'power-off',\n\t'power',\n\t'presentation',\n\t'printer-check',\n\t'printer-x',\n\t'printer',\n\t'projector',\n\t'proportions',\n\t'puzzle',\n\t'pyramid',\n\t'qr-code',\n\t'quote',\n\t'rabbit',\n\t'radar',\n\t'radiation',\n\t'radical',\n\t'radio-off',\n\t'radio-receiver',\n\t'radio-tower',\n\t'radio',\n\t'radius',\n\t'rainbow',\n\t'rat',\n\t'ratio',\n\t'receipt-cent',\n\t'receipt-euro',\n\t'receipt-indian-rupee',\n\t'receipt-japanese-yen',\n\t'receipt-pound-sterling',\n\t'receipt-russian-ruble',\n\t'receipt-swiss-franc',\n\t'receipt-text',\n\t'receipt-turkish-lira',\n\t'receipt',\n\t'rectangle-circle',\n\t'rectangle-ellipsis',\n\t'rectangle-goggles',\n\t'rectangle-horizontal',\n\t'rectangle-vertical',\n\t'recycle',\n\t'redo-2',\n\t'redo-dot',\n\t'redo',\n\t'refresh-ccw-dot',\n\t'refresh-ccw',\n\t'refresh-cw-off',\n\t'refresh-cw',\n\t'refrigerator',\n\t'regex',\n\t'remove-formatting',\n\t'repeat-1',\n\t'repeat-2',\n\t'repeat-off',\n\t'repeat',\n\t'replace-all',\n\t'replace',\n\t'reply-all',\n\t'reply',\n\t'rewind',\n\t'ribbon',\n\t'road',\n\t'rocket',\n\t'rocking-chair',\n\t'roller-coaster',\n\t'rose',\n\t'rotate-3d',\n\t'rotate-ccw-key',\n\t'rotate-ccw-square',\n\t'rotate-ccw',\n\t'rotate-cw-square',\n\t'rotate-cw',\n\t'route-off',\n\t'route',\n\t'router',\n\t'rows-2',\n\t'rows-3',\n\t'rows-4',\n\t'rss',\n\t'ruler-dimension-line',\n\t'ruler',\n\t'russian-ruble',\n\t'sailboat',\n\t'salad',\n\t'sandwich',\n\t'satellite-dish',\n\t'satellite',\n\t'saudi-riyal',\n\t'save-all',\n\t'save-check',\n\t'save-off',\n\t'save-pen',\n\t'save-plus',\n\t'save',\n\t'scale-3d',\n\t'scale',\n\t'scaling',\n\t'scan-barcode',\n\t'scan-box',\n\t'scan-eye',\n\t'scan-face',\n\t'scan-heart',\n\t'scan-line',\n\t'scan-qr-code',\n\t'scan-search',\n\t'scan-text',\n\t'scan',\n\t'school',\n\t'scissors-line-dashed',\n\t'scissors',\n\t'scooter',\n\t'screen-share-off',\n\t'screen-share',\n\t'scroll-text',\n\t'scroll',\n\t'search-alert',\n\t'search-check',\n\t'search-code',\n\t'search-slash',\n\t'search-x',\n\t'search',\n\t'section',\n\t'send-horizontal',\n\t'send-to-back',\n\t'send',\n\t'separator-horizontal',\n\t'separator-vertical',\n\t'server-cog',\n\t'server-crash',\n\t'server-off',\n\t'server',\n\t'settings-2',\n\t'settings',\n\t'shapes',\n\t'share-2',\n\t'share',\n\t'sheet',\n\t'shell',\n\t'shelving-unit',\n\t'shield-alert',\n\t'shield-ban',\n\t'shield-check',\n\t'shield-cog-corner',\n\t'shield-cog',\n\t'shield-ellipsis',\n\t'shield-half',\n\t'shield-minus',\n\t'shield-off',\n\t'shield-plus',\n\t'shield-question-mark',\n\t'shield-user',\n\t'shield-x',\n\t'shield',\n\t'ship-wheel',\n\t'ship',\n\t'shirt',\n\t'shopping-bag',\n\t'shopping-basket',\n\t'shopping-cart',\n\t'shovel',\n\t'shower-head',\n\t'shredder',\n\t'shrimp',\n\t'shrink',\n\t'shrub',\n\t'shuffle',\n\t'sigma',\n\t'signal-high',\n\t'signal-low',\n\t'signal-medium',\n\t'signal-zero',\n\t'signal',\n\t'signature',\n\t'signpost-big',\n\t'signpost',\n\t'siren',\n\t'skip-back',\n\t'skip-forward',\n\t'skull',\n\t'slash',\n\t'slice',\n\t'sliders-horizontal',\n\t'sliders-vertical',\n\t'smartphone-charging',\n\t'smartphone-nfc',\n\t'smartphone',\n\t'smile-plus',\n\t'smile',\n\t'snail',\n\t'snowflake',\n\t'soap-dispenser-droplet',\n\t'sofa',\n\t'solar-panel',\n\t'soup',\n\t'space',\n\t'spade',\n\t'sparkle',\n\t'sparkles',\n\t'speaker',\n\t'speech',\n\t'spell-check-2',\n\t'spell-check',\n\t'spline-pointer',\n\t'spline',\n\t'split',\n\t'spool',\n\t'sport-shoe',\n\t'spotlight',\n\t'spray-can',\n\t'sprout',\n\t'square-activity',\n\t'square-arrow-down-left',\n\t'square-arrow-down-right',\n\t'square-arrow-down',\n\t'square-arrow-left',\n\t'square-arrow-out-down-left',\n\t'square-arrow-out-down-right',\n\t'square-arrow-out-up-left',\n\t'square-arrow-out-up-right',\n\t'square-arrow-right-enter',\n\t'square-arrow-right-exit',\n\t'square-arrow-right',\n\t'square-arrow-up-left',\n\t'square-arrow-up-right',\n\t'square-arrow-up',\n\t'square-asterisk',\n\t'square-bottom-dashed-scissors',\n\t'square-centerline-dashed-horizontal',\n\t'square-centerline-dashed-vertical',\n\t'square-chart-gantt',\n\t'square-check-big',\n\t'square-check',\n\t'square-chevron-down',\n\t'square-chevron-left',\n\t'square-chevron-right',\n\t'square-chevron-up',\n\t'square-code',\n\t'square-dashed-bottom-code',\n\t'square-dashed-bottom',\n\t'square-dashed-kanban',\n\t'square-dashed-mouse-pointer',\n\t'square-dashed-text',\n\t'square-dashed-top-solid',\n\t'square-dashed',\n\t'square-divide',\n\t'square-dot',\n\t'square-equal',\n\t'square-function',\n\t'square-kanban',\n\t'square-library',\n\t'square-m',\n\t'square-menu',\n\t'square-minus',\n\t'square-mouse-pointer',\n\t'square-parking-off',\n\t'square-parking',\n\t'square-pause',\n\t'square-pen',\n\t'square-percent',\n\t'square-pi',\n\t'square-pilcrow',\n\t'square-play',\n\t'square-plus',\n\t'square-power',\n\t'square-radical',\n\t'square-round-corner',\n\t'square-scissors',\n\t'square-sigma',\n\t'square-slash',\n\t'square-split-horizontal',\n\t'square-split-vertical',\n\t'square-square',\n\t'square-stack',\n\t'square-star',\n\t'square-stop',\n\t'square-terminal',\n\t'square-user-round',\n\t'square-user',\n\t'square-x',\n\t'square',\n\t'squares-exclude',\n\t'squares-intersect',\n\t'squares-subtract',\n\t'squares-unite',\n\t'squircle-dashed',\n\t'squircle',\n\t'squirrel',\n\t'stamp',\n\t'star-check',\n\t'star-half',\n\t'star-minus',\n\t'star-off',\n\t'star-plus',\n\t'star-x',\n\t'star',\n\t'step-back',\n\t'step-forward',\n\t'stethoscope',\n\t'sticker',\n\t'sticky-note-check',\n\t'sticky-note-minus',\n\t'sticky-note-off',\n\t'sticky-note-plus',\n\t'sticky-note-x',\n\t'sticky-note',\n\t'sticky-notes',\n\t'stone',\n\t'store',\n\t'stretch-horizontal',\n\t'stretch-vertical',\n\t'strikethrough',\n\t'subscript',\n\t'summary',\n\t'sun-dim',\n\t'sun-medium',\n\t'sun-moon',\n\t'sun-snow',\n\t'sun',\n\t'sunrise',\n\t'sunset',\n\t'superscript',\n\t'swatch-book',\n\t'swiss-franc',\n\t'switch-camera',\n\t'sword',\n\t'swords',\n\t'syringe',\n\t'table-2',\n\t'table-cells-merge',\n\t'table-cells-split',\n\t'table-columns-split',\n\t'table-of-contents',\n\t'table-properties',\n\t'table-rows-split',\n\t'table',\n\t'tablet-smartphone',\n\t'tablet',\n\t'tablets',\n\t'tag-plus',\n\t'tag-x',\n\t'tag',\n\t'tags',\n\t'tally-1',\n\t'tally-2',\n\t'tally-3',\n\t'tally-4',\n\t'tally-5',\n\t'tangent',\n\t'target',\n\t'telescope',\n\t'tent-tree',\n\t'tent',\n\t'terminal',\n\t'test-tube-diagonal',\n\t'test-tube',\n\t'test-tubes',\n\t'text-align-center',\n\t'text-align-end',\n\t'text-align-justify',\n\t'text-align-start',\n\t'text-cursor-input',\n\t'text-cursor',\n\t'text-initial',\n\t'text-quote',\n\t'text-search',\n\t'text-wrap',\n\t'theater',\n\t'thermometer-snowflake',\n\t'thermometer-sun',\n\t'thermometer',\n\t'thumbs-down',\n\t'thumbs-up',\n\t'ticket-check',\n\t'ticket-minus',\n\t'ticket-percent',\n\t'ticket-plus',\n\t'ticket-slash',\n\t'ticket-x',\n\t'ticket',\n\t'tickets-plane',\n\t'tickets',\n\t'timeline',\n\t'timer-off',\n\t'timer-reset',\n\t'timer',\n\t'toggle-left',\n\t'toggle-right',\n\t'toilet',\n\t'tool-case',\n\t'toolbox',\n\t'tornado',\n\t'torus',\n\t'touchpad-off',\n\t'touchpad',\n\t'towel-rack',\n\t'tower-control',\n\t'toy-brick',\n\t'tractor',\n\t'traffic-cone',\n\t'train-front-tunnel',\n\t'train-front',\n\t'train-track',\n\t'tram-front',\n\t'transgender',\n\t'trash-2',\n\t'trash',\n\t'tree-deciduous',\n\t'tree-palm',\n\t'tree-pine',\n\t'trees',\n\t'trending-down',\n\t'trending-up-down',\n\t'trending-up',\n\t'triangle-alert',\n\t'triangle-dashed',\n\t'triangle-right',\n\t'triangle',\n\t'trophy',\n\t'truck-electric',\n\t'truck',\n\t'turkish-lira',\n\t'turntable',\n\t'turtle',\n\t'tv-minimal-play',\n\t'tv-minimal',\n\t'tv',\n\t'type-outline',\n\t'type',\n\t'umbrella-off',\n\t'umbrella',\n\t'underline',\n\t'undo-2',\n\t'undo-dot',\n\t'undo',\n\t'unfold-horizontal',\n\t'unfold-vertical',\n\t'ungroup',\n\t'university',\n\t'unlink-2',\n\t'unlink',\n\t'unplug',\n\t'upload',\n\t'usb',\n\t'user-check',\n\t'user-cog',\n\t'user-key',\n\t'user-lock',\n\t'user-minus',\n\t'user-pen',\n\t'user-plus',\n\t'user-round-arrow-left',\n\t'user-round-check',\n\t'user-round-cog',\n\t'user-round-key',\n\t'user-round-minus',\n\t'user-round-pen',\n\t'user-round-plus',\n\t'user-round-search',\n\t'user-round-x',\n\t'user-round',\n\t'user-search',\n\t'user-star',\n\t'user-x',\n\t'user',\n\t'users-round',\n\t'users',\n\t'utensils-crossed',\n\t'utensils',\n\t'utility-pole',\n\t'van',\n\t'variable',\n\t'vault',\n\t'vector-square',\n\t'vegan',\n\t'venetian-mask',\n\t'venus-and-mars',\n\t'venus',\n\t'vibrate-off',\n\t'vibrate',\n\t'video-off',\n\t'video',\n\t'videotape',\n\t'view',\n\t'voicemail',\n\t'volleyball',\n\t'volume-1',\n\t'volume-2',\n\t'volume-off',\n\t'volume-x',\n\t'volume',\n\t'vote',\n\t'wallet-cards',\n\t'wallet-minimal',\n\t'wallet',\n\t'wallpaper',\n\t'wand-sparkles',\n\t'wand',\n\t'warehouse',\n\t'washing-machine',\n\t'watch',\n\t'waves-arrow-down',\n\t'waves-arrow-up',\n\t'waves-horizontal',\n\t'waves-ladder',\n\t'waves-vertical',\n\t'waypoints',\n\t'webcam-off',\n\t'webcam',\n\t'webhook-off',\n\t'webhook',\n\t'weight-tilde',\n\t'weight',\n\t'wheat-off',\n\t'wheat',\n\t'whole-word',\n\t'wifi-cog',\n\t'wifi-high',\n\t'wifi-low',\n\t'wifi-off',\n\t'wifi-pen',\n\t'wifi-sync',\n\t'wifi-zero',\n\t'wifi',\n\t'wind-arrow-down',\n\t'wind',\n\t'wine-off',\n\t'wine',\n\t'workflow',\n\t'worm',\n\t'wrench-off',\n\t'wrench',\n\t'x-line-top',\n\t'x',\n\t'zap-off',\n\t'zap',\n\t'zodiac-aquarius',\n\t'zodiac-aries',\n\t'zodiac-cancer',\n\t'zodiac-capricorn',\n\t'zodiac-gemini',\n\t'zodiac-leo',\n\t'zodiac-libra',\n\t'zodiac-ophiuchus',\n\t'zodiac-pisces',\n\t'zodiac-sagittarius',\n\t'zodiac-scorpio',\n\t'zodiac-taurus',\n\t'zodiac-virgo',\n\t'zoom-in',\n\t'zoom-out',\n]\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiInput } from '@taiga-ui/core';\n\n@Component({\n selector: 'ezui-textinput',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiInput\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInput [(ngModel)]=\"value\" (ngModelChange)=\"valueChange.emit(value)\" [disabled]=\"disabled\"/>\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUITextInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n @Input() value: string = \"\";\n @Output() valueChange = new EventEmitter<string>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiDropdown } from '@taiga-ui/core';\nimport { lucideicons } from '../constants/lucideicons';\nimport { EzUITextInput } from \"./textinput\";\n\n@Component({\n selector: 'ezui-iconselector',\n imports: [\n FormsModule,\n CommonModule,\n TuiButton,\n TuiDropdown,\n EzUITextInput\n],\n template: `\n\t\t<button\n\t\t\ttuiButton\n\t\t\t[iconStart]=\"selected\"\n\t\t\t[size]=\"size\"\n\t\t\t[tuiAppearanceState]=\"open() ? 'active' : null\"\n\t\t\t[tuiDropdown]=\"dropdown\"\n\t\t\t[(tuiDropdownOpen)]=\"open\"\n\t\t\t[disabled]=\"disabled\"\n\t\t></button>\n\n\t\t<ng-template #dropdown let-close>\n\t\t\t<div class=\"dropdown-container\">\n\t\t\t\t<ezui-textinput #sch icon=\"search\" label=\"Search\" size=\"s\" (valueChange)=\"doSearch(sch.value)\"/>\n\t\t\t\t@if (currentOptions.length > 0) {\n\t\t\t\t\t<div class=\"icon-container\">\n\t\t\t\t\t\t@for (icon of currentOptions.slice(0,100); track icon) {\n\t\t\t\t\t\t\t<button tuiButton [iconStart]=\"icon\" size=\"s\" appearance=\"flat\" [tuiAppearanceFocus]='selected == icon ? true : null' (click)=\"setIcon(icon); close();currentOptions = [...lucideicons]\"></button>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t@if(currentOptions.length > 100){\n\t\t\t\t\t\t\t<p style=\"opacity:0.5;margin:0px;text-align:center;align-self:center\">{{currentOptions.length - 100}} more icons...</p>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t} @else {\n\t\t\t\t\t<p>No icons match your search!</p>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ng-template>\n `,\n styles: `\n\t\t.dropdown-container {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tpadding: 10px;\n\t\t\tmin-width: 10rem;\n\t\t\tgap:5px;\n\n\t\t\t.icon-container {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-wrap: wrap;\n\t\t\t\tgap:5px;\n\t\t\t\tmax-width:80vw;\n\t\t\t\tmax-height:30vh;\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUIIconSelector implements OnChanges {\n\tcurrentOptions : string[] = []\n @Input() disabled: boolean = false;\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n\topen = signal<boolean>(false);\n\n @Input() selected: string = 'circle';\n @Output() selectedChange = new EventEmitter<string>();\n\n\tlucideicons = lucideicons;\n\n\tconstructor() {\n this.currentOptions = [...lucideicons];\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected'] && changes['selected'].currentValue != changes['selected'].previousValue) {\n this.selected = changes['selected'].currentValue;\n }\n }\n\n\tdoSearch(text: string | null | undefined){\n if (text) this.currentOptions = [...lucideicons.filter((x) => x.indexOf(text) != -1)];\n else this.currentOptions = [...lucideicons];\n\t}\n\n\tsetIcon(value: string) {\n this.selected = value;\n this.selectedChange.emit(this.selected);\n }\n}\n","import Compressor from \"compressorjs\";\n\nexport const compressImage = async (\n file: File,\n quality: number,\n maxHeight: number,\n maxWidth: number,\n convertSize?: number\n): Promise<File | Blob> => {\n return await new Promise((resolve, reject) => {\n new Compressor(file, {\n quality,\n maxHeight,\n maxWidth,\n convertSize,\n success: resolve,\n error: reject,\n });\n });\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiDropdown, TuiGroup, TuiOption } from '@taiga-ui/core';\nimport { TuiChevron } from '@taiga-ui/kit';\n\nexport interface MenuBarItem {\n\tlabel: string | null;\n\ticon: string | null;\n\titems : MenuBarItem[];\n\tdisabled: boolean;\n\texpanded: boolean;\n\tcommand() : Promise<any>;\n\tstyle : string;\n}\n\n@Component({\n selector: 'tui-data-list[subdatalist]',\n standalone: true,\n imports: [\n TuiDropdown,\n\t\tTuiOption,\n TuiChevron\n ],\n template: `\n\t\t@for(item of subdatalist; track $index){\n\t\t\t@if(item.items){\n\t\t\t\t<button\n\t\t\t\t\tclass=\"subdatalistitem\"\n\t\t\t\t\ttuiOption\n\t\t\t\t\ttuiChevron\n\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t[disabled]=\"item.disabled\"\n\t\t\t\t\t[tuiDropdown]=\"dropdownContent\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"item.expanded\"\n\t\t\t\t\ttuiDropdownLimitWidth=\"fixed\"\n\t\t\t\t\ttuiDropdownSided=\"true\"\n\t\t\t\t\t[style]=\"item.style\"\n\t\t\t\t>\n\t\t\t\t{{item.label}}\n\t\t\t\t</button>\n\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<tui-data-list\n\t\t\t\t\t\tclass=\"subdatalist\"\n\t\t\t\t\t\t[subdatalist]=\"item.items\">\n\t\t\t\t\t</tui-data-list>\n\t\t\t\t</ng-template>\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t<button\n\t\t\t\t\tclass=\"subdatalistitem\"\n\t\t\t\t\ttuiOption\n\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t[disabled]=\"item.disabled\"\n\t\t\t\t\t(click)=\"item.command()\"\n\t\t\t\t\t[style]=\"item.style\"\n\t\t\t\t>\n\t\t\t\t\t{{item.label}}\n\t\t\t\t</button>\n\t\t\t}\n\t\t}\n `,\n\tstyles: `\n\t\t.subdatalist {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t.subdatalistitem {\n\t\t\tpadding: 0px 10px 0px 10px !important;\n\t\t}\n\t`\n})\nexport class EzUIMenuBarSubDataList {\n @Input() subdatalist: MenuBarItem[] = [];\n}\n\n@Component({\n selector: 'ezui-menubar',\n\tstandalone: true,\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiGroup,\n\t\tTuiButton,\n\t\tTuiDropdown,\n\t\tTuiChevron,\n\t\tEzUIMenuBarSubDataList\n\t],\n template: `\n\t\t<div tuiGroup class=\"group\" [collapsed]=\"true\">\n\t\t\t@for(item of items; track $index){\n\t\t\t\t@if(item.items){\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiChevron\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\tappearance=\"outline\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t\t[disabled]=\"item.disabled\"\n\t\t\t\t\t\t[tuiDropdown]=\"dropdownContent\"\n\t\t\t\t\t\t[(tuiDropdownOpen)]=\"item.expanded\"\n\t\t\t\t\t\ttuiDropdownLimitWidth=\"fixed\"\n\t\t\t\t\t\t[style]=\"item.style\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{item.label}}\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t\t<tui-data-list\n\t\t\t\t\t\t\tclass=\"subdatalist\"\n\t\t\t\t\t\t\t[subdatalist]=\"item.items\">\n\t\t\t\t\t\t</tui-data-list>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t\t[disabled]=\"item.disabled\"\n\t\t\t\t\t\t(click)=\"item.command()\"\n\t\t\t\t\t\t[style]=\"item.style\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{item.label}}\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n `,\n styles: `\n\t\t.group {\n\t\t\twidth:100%;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.subdatalist {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: column;\n\t\t}\n `\n})\nexport class EzUIMenuBar implements OnChanges {\n @Input() items: MenuBarItem[] = [];\n\n\tngOnChanges(changes: SimpleChanges) {\n if (changes['items'] && changes['items'].currentValue != changes['items'].previousValue) {\n this.items = changes['items'].currentValue;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiScrollbar } from '@taiga-ui/core';\nimport { TuiTextarea } from '@taiga-ui/kit';\nimport { marked } from 'marked';\nimport { compressImage } from '../helpers/compressImage';\nimport { EzUIMenuBar, MenuBarItem } from \"./menubar\";\n\n@Component({\n selector: 'ezui-markdowneditor',\n imports: [FormsModule, CommonModule, TuiTextarea, TuiButton, TuiScrollbar, EzUIMenuBar],\n template: `\n\t\t@if(isEditing() && !disabled){\n\t\t\t<div class=\"editor-container\">\n\t\t\t\t<div class=\"editor\">\n\t\t\t\t\t<ezui-menubar [items]=\"items()\"/>\n\n\t\t\t\t\t<tui-textfield class=\"editor-field\">\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\t#editor\n\t\t\t\t\t\t\tplaceholder=\"Markdown Content\"\n\t\t\t\t\t\t\ttuiTextarea\n\t\t\t\t\t\t\t[(ngModel)]=\"unsavedValue\"\n\t\t\t\t\t\t\t(input)=\"formatPreview()\"\n\t\t\t\t\t\t></textarea>\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"preview-container\">\n\t\t\t\t\t<tui-scrollbar>\n\t\t\t\t\t\t<div class=\"preview\" #preview>Rendering...</div>\n\t\t\t\t\t</tui-scrollbar>\n\t\t\t\t</div>\n\n\t\t\t\t<input type=\"file\" (change)=\"onFileSelected($event)\" #fileUpload [style]=\"{ display: 'none' }\" accept=\"image/png, image/jpeg\" />\n\t\t\t</div>\n\t\t}\n\t\t@else {\n\t\t\t<div class=\"preview-readonly-container\">\n\t\t\t\t@if(!disabled){\n\t\t\t\t\t<button tuiButton class=\"edit-button\" iconStart=\"edit\" appearance=\"flat\" size=\"s\"(click)=\"toggleEdit(false)\"></button>\n\t\t\t\t}\n\t\t\t\t<tui-scrollbar>\n\t\t\t\t\t<div class=\"preview\" #preview>Rendering...</div>\n\t\t\t\t</tui-scrollbar>\n\t\t\t</div>\n\t\t}\n `,\n host: {\n class: 'flex h-full w-full'\n },\n styles: `\n\t\t.editor-container {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: row;\n\t\t\twidth: 100%;\n\t\t\toutline: 0.125rem solid var(--tui-background-accent-1);\n\t\t\tborder-radius: var(--tui-radius-l);\n\n\t\t\t.editor {\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\twidth: 100%;\n\n\t\t\t\t.editor-field {\n\t\t\t\t\tblock-size:100%;\n\t\t\t\t\tborder-radius: 0px 0px 0px var(--tui-radius-l);\n\t\t\t\t}\n\t\t\t}\n }\n\n\t\t.preview-container {\n\t\t\twidth:100%;\n\t\t\tborder-radius: 0px var(--tui-radius-l) var(--tui-radius-l) 0px;\n\t\t\ttransition-property: box-shadow, background-color, outline-color, border-color, color;\n\t\t\ttransition-duration: calc(var(--tui-duration) / 2);\n\t\t\ttransition-timing-function: var(--tui-curve-productive-standard);\n\t\t\t--t-shadow: 0 0.125rem 0.1875rem rgba(0, 0, 0, 0.1);\n\t\t\tbackground-color: var(--tui-background-base);\n\t\t\tcolor: var(--tui-text-tertiary);\n\t\t\tbox-shadow: var(--t-shadow);\n\t\t\toutline: 1px solid var(--tui-border-normal);\n\t\t\toutline-offset: -1px;\n\t\t\tborder-width: 0;\n\t\t\tblock-size:100%;\n\n\t\t\t::ng-deep tui-scrollbar {\n\t\t\t\theight:100%;\n\t\t\t}\n\n\t\t\t::ng-deep .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tblock-size:auto !important;\n\t\t\t}\n\n\t\t\t.preview {\n\t\t\t\tpadding:10px;\n\t\t\t}\n\t\t}\n\n\t\t.preview-readonly-container {\n\t\t\twidth:100%;\n\t\t\tborder-radius: var(--tui-radius-l);\n\t\t\ttransition-property: box-shadow, background-color, outline-color, border-color, color;\n\t\t\ttransition-duration: calc(var(--tui-duration) / 2);\n\t\t\ttransition-timing-function: var(--tui-curve-productive-standard);\n\t\t\t--t-shadow: 0 0.125rem 0.1875rem rgba(0, 0, 0, 0.1);\n\t\t\tbackground-color: var(--tui-background-base);\n\t\t\tcolor: var(--tui-text-tertiary);\n\t\t\tbox-shadow: var(--t-shadow);\n\t\t\toutline: 1px solid var(--tui-border-normal);\n\t\t\toutline-offset: -1px;\n\t\t\tborder-width: 0;\n\t\t\tblock-size:100%;\n\n\t\t\t.edit-button {\n\t\t\t\tposition:absolute;\n\t\t\t\tz-index: 999;\n\t\t\t}\n\n\t\t\t::ng-deep tui-scrollbar {\n\t\t\t\theight:100%;\n\t\t\t}\n\n\t\t\t::ng-deep .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tblock-size:auto !important;\n\t\t\t}\n\n\t\t\t.preview {\n\t\t\t\tpadding:10px;\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUIMarkdownEditor implements OnChanges {\n @ViewChild('preview') preview: ElementRef<HTMLDivElement> | undefined;\n @ViewChild('editor') editor: ElementRef<HTMLTextAreaElement> | undefined;\n @ViewChild('fileUpload') fileUpload: ElementRef<HTMLInputElement> | undefined;\n\n @Input() disabled: boolean = false;\n\n @Input() value: string | null = null;\n @Output() valueChange = new EventEmitter<string | null>();\n\n\tunsavedValue = signal<string>(\"\");\n\n isFirst : boolean = true;\n isEditing = signal<boolean>(false);\n\n items = signal<MenuBarItem[]>([\n\t\t{\n\t\t\ticon: 'save',\n\t\t\tcommand: async () => await this.toggleEdit(true),\n\t\t\tstyle: 'border-bottom-left-radius: 0px !important;'\n\t\t} as MenuBarItem,\n\t\t{\n\t\t\ticon: 'x',\n\t\t\tcommand: async () => await this.toggleEdit(false)\n\t\t} as MenuBarItem,\n {\n label: 'B',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"**\" + sel + \"**\"\n await this.replaceSection(newStr, start + 2, finish + 2);\n }\n }\n } as MenuBarItem,\n {\n label: 'I',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"*\" + sel + \"*\"\n await this.replaceSection(newStr, start + 1, finish + 1);\n }\n }\n } as MenuBarItem,\n {\n label: 'H',\n items: [\n {\n label: 'H1',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"# \" + sel\n await this.replaceSection(newStr, start + 2, finish + 2);\n }\n }\n } as MenuBarItem,\n {\n label: 'H2',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"## \" + sel\n await this.replaceSection(newStr, start + 3, finish + 3);\n }\n }\n } as MenuBarItem,\n {\n label: 'H3',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"### \" + sel\n await this.replaceSection(newStr, start + 4, finish + 4);\n }\n }\n } as MenuBarItem,\n ]\n } as MenuBarItem,\n\n {\n icon: 'link',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"[\" + sel + \"](link)\"\n await this.replaceSection(newStr, start + 1, finish + 1);\n }\n }\n } as MenuBarItem,\n\n {\n icon: 'image',\n command: async () => {\n if (this.editor){\n this.fileUpload?.nativeElement.click();\n }\n },\n\t\t\tstyle: 'border-bottom-right-radius: 0px !important;border-top-right-radius: 0px !important;'\n } as MenuBarItem,\n ])\n\n async onFileSelected(event: any) {\n const files: File[] = Array.from(event.target.files);\n if (files && files.length > 0) {\n const file = files[0];\n await this.insertImageInEditor(file);\n this.fileUpload!.nativeElement.value = '';\n }\n }\n\n toBase65(file : File){\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = reject;\n })\n }\n\n async onPaste(event : any){\n const items = (event.clipboardData || event.originalEvent.clipboardData).items;\n let blob = null;\n for (const item of items) {\n if (item.type.indexOf('image') === 0) {\n blob = item.getAsFile();\n await this.insertImageInEditor(blob);\n }\n }\n }\n\n async insertImageInEditor(file : File){\n const compressed = await compressImage(file, 0.5, 300, 300);\n const asBase64 = await this.toBase65(compressed as File);\n if (asBase64 && this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"![\" + sel + \"](\" + asBase64 + \")\"\n await this.replaceSection(newStr, start + newStr.length, finish + newStr.length);\n }\n }\n\n async replaceSection(newStr : string, finalStart : number, finalFinish : number){\n const editor = this.editor!.nativeElement;\n editor.focus();\n document.execCommand(\"insertText\", false, newStr);\n await this.formatPreview();\n editor.focus();\n editor.setSelectionRange(finalStart, finalFinish);\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes['value']) {\n if (changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n await this.formatPreview();\n if (this.isFirst){\n setTimeout(async () => await this.formatPreview(), 500);\n this.isFirst = false;\n }\n }\n }\n }\n\n async formatPreview(){\n\t\tif(this.preview){\n\t\t\tif(this.isEditing())\n\t\t\t\tthis.preview.nativeElement.innerHTML = await marked(this.unsavedValue());\n\t\t\telse if (this.value)\n\t\t\t\tthis.preview.nativeElement.innerHTML = await marked(this.value);\n\t\t}\n }\n\n\tasync toggleEdit(save : boolean){\n\t\tif (!this.isEditing() && this.value){\n\t\t\tthis.unsavedValue.set(this.value)\n\t\t}\n\t\tif (save && this.isEditing()){\n\t\t\tthis.value = this.unsavedValue();\n\t\t\tthis.valueChange.emit(this.value);\n\t\t}\n\t\tthis.isEditing.set(!this.isEditing());\n\t\tsetTimeout(async () => await this.formatPreview(), 500);\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiDataList, TuiDropdown, TuiSelectLike, TuiTextfield } from '@taiga-ui/core';\nimport { TuiChevron, TuiChip, TuiInputChip, TuiInputNumber, TuiMultiSelect } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-multiselect',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiMultiSelect,\n\t\tTuiInputNumber,\n\t\tTuiDataList,\n\t\tTuiTextfield,\n\t\tTuiInputChip,\n\t\tTuiSelectLike,\n\t\tTuiMultiSelect,\n\t\tTuiDropdown,\n\t\tTuiChevron,\n\t\tTuiChip\n\t],\n template: `\n\t\t<tui-textfield multi tuiChevron [stringify]=\"stringify\" [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label != ''){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInputChip tuiSelectLike [(ngModel)]=\"selected\" (ngModelChange)=\"selectedChange.emit(this.selected)\" [disabled]=\"disabled\"/>\n\t\t\t<tui-input-chip\n\t\t\t\t*tuiItem=\"let context\"\n\t\t\t\t[appearance]=\"appearanceMap[context.item] ? appearanceMap[context.item] : 'neutral'\"/>\n\t\t\t<tui-data-list *tuiDropdown tuiMultiSelectGroup >\n\t\t\t\t@for (item of options; track getOptionValue(item)) {\n\t\t\t\t\t@let value = getOptionValue(item);\n\t\t\t\t\t@let label = getOptionLabel(item);\n\t\t\t\t\t<button tuiOption [value]=\"value\" >\n\t\t\t\t\t\t<span tuiChip size=\"xs\" [appearance]=\"appearanceMap[value] ? appearanceMap[value] : 'neutral'\">{{label}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</tui-data-list>\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUIMultiSelect implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() optionLabel: string | undefined = undefined;\n @Input() optionValue: string | undefined = undefined;\n\n @Input() options: any[] = [];\n @Input() disabled: boolean = false;\n\n @Input() selected: any[] | null | undefined = undefined;\n @Output() selectedChange = new EventEmitter<any[] | null | undefined>();\n\n\t@Input() appearanceMap : {[value:string | number]:string} = {\n\t\t\"b\":\"negative\"\n\t}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected'] && changes['selected'].currentValue != changes['selected'].previousValue) {\n this.selected = changes['selected'].currentValue;\n }\n }\n\n\tstringify = (value: string): string => this.getOptionLabel(this.options.find((item) => this.getOptionValue(item) === value));\n\n getOptionLabel(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionLabel == undefined || this.optionLabel == '') return item;\n return item[this.optionLabel];\n }\n\n getOptionValue(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionValue == undefined || this.optionValue == '') return item;\n return item[this.optionValue];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiInput } from '@taiga-ui/core';\nimport { TuiInputNumber } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-numberinput',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiInput,\n\t\tTuiInputNumber\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInputNumber [(ngModel)]=\"value\" (ngModelChange)=\"valueChange.emit(value)\" [disabled]=\"disabled\" [min]=\"min\" [max]=\"max\"/>\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUINumberInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n\t@Input() min : number | null = null;\n\t@Input() max : number | null = null;\n\n @Input() value: number | string = \"\";\n @Output() valueChange = new EventEmitter<number | string>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiIcon, TuiInput } from '@taiga-ui/core';\nimport { TuiPassword } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-passwordinput',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiInput,\n\t\tTuiIcon,\n\t\tTuiPassword\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInput type=\"password\" [(ngModel)]=\"value\" (ngModelChange)=\"valueChange.emit(value)\" [disabled]=\"disabled\"/>\n\t\t\t<tui-icon tuiPassword />\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUIPasswordInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n @Input() value: string = \"\";\n @Output() valueChange = new EventEmitter<string>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiDataList, TuiDropdown, TuiInput, TuiTextfield } from '@taiga-ui/core';\nimport { TuiChevron, TuiChip, TuiSelect } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-select',\n imports: [\n FormsModule,\n CommonModule,\n TuiSelect,\n TuiDataList,\n TuiTextfield,\n TuiDropdown,\n TuiChevron,\n TuiInput,\n TuiChip\n],\n template: `\n\t\t<tui-textfield tuiChevron [content]=\"content\" [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label != ''){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiSelect [(ngModel)]=\"selected\" (ngModelChange)=\"selectedChange.emit(this.selected)\" [disabled]=\"disabled\"/>\n\t\t\t<tui-data-list *tuiDropdown >\n\t\t\t\t@for (item of options; track getOptionValue(item)) {\n\t\t\t\t\t@let value = getOptionValue(item);\n\t\t\t\t\t@let label = getOptionLabel(item);\n\t\t\t\t\t<button tuiOption [value]=\"value\" >\n\t\t\t\t\t\t<span tuiChip size=\"xs\" [appearance]=\"appearanceMap[value]\">{{label}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</tui-data-list>\n\t\t</tui-textfield>\n\n\t\t<ng-template #content>\n\t\t\t<span tuiChip [size]=\"label != '' ? 'xxs' : 'xs'\" [appearance]=\"appearanceMap[selected]\">{{stringify(selected)}}</span>\n\t\t</ng-template>\n `,\n styles: `\n `\n})\nexport class EzUISelect implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() optionLabel: string | undefined = undefined;\n @Input() optionValue: string | undefined = undefined;\n\n @Input() options: any[] = [];\n @Input() disabled: boolean = false;\n\n @Input() selected: any | null | undefined = undefined;\n @Output() selectedChange = new EventEmitter<any | null | undefined>();\n\n\t@Input() appearanceMap : {[value:string | number]:string} = {\n\t}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected'] && changes['selected'].currentValue != changes['selected'].previousValue) {\n this.selected = changes['selected'].currentValue;\n }\n }\n\n\tstringify = (value: string): string => this.getOptionLabel(this.options.find((item) => this.getOptionValue(item) === value));\n\n getOptionLabel(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionLabel == undefined || this.optionLabel == '') return item;\n return item[this.optionLabel];\n }\n\n getOptionValue(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionValue == undefined || this.optionValue == '') return item;\n return item[this.optionValue];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiLink } from '@taiga-ui/core';\nimport { TuiElasticContainer } from '@taiga-ui/layout';\n\n@Component({\n selector: 'ezui-showmoretext',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiElasticContainer,\n\t\tTuiLink\n\t],\n template: `\n\t\t<tui-elastic-container>\n\t\t\t<div [innerHTML]=\"current()\"></div>\n\t\t\t<button\n\t\t\t\ttuiLink\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"toggle()\"\n\t\t\t>\n\t\t\t\tShow {{ current() === value ? 'less' : 'more' }}\n\t\t\t</button>\n\t\t</tui-elastic-container>\n `,\n styles: `\n `\n})\nexport class EzUIShowMoreText implements OnChanges {\n @Input() value: string = \"\";\n valueSmall: string = \"\";\n\n\t@Input() maxCharacters: number = 256;\n\n\tcurrent = signal<string>(this.valueSmall);\n\n\tprotected toggle(): void {\n\t\tthis.current.set(this.current() === this.valueSmall ? this.value : this.valueSmall);\n\t}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n\t\t\tthis.valueSmall = this.value.substring(0,this.maxCharacters) + \"...\";\n\t\t\tthis.current.set(this.valueSmall);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiGroup, TuiHint, TuiInput, TuiScrollbar } from \"@taiga-ui/core\";\nimport { TuiBadge, TuiStatus } from '@taiga-ui/kit';\nimport { v4 as uuidv4 } from 'uuid';\nimport { EzUITableSortFilterPreset } from './models/table.sortFilterPreset';\nimport { EzUITableSortFilterPresetSave } from './models/table.sortFilterPresetSave';\nimport { EzUITable } from './table';\n\n@Component({\n selector: 'ezui-table-presets',\n imports: [FormsModule, CommonModule, TuiScrollbar, TuiButton, TuiGroup, TuiBadge, TuiStatus, TuiInput, TuiHint],\n template: `\n\t\t<button tuiButton iconStart=\"plus\" size=\"s\" appearance=\"secondary\" (click)=\"createPreset()\" tuiHint=\"Create new preset from current filters\"></button>\n\n\t\t<tui-scrollbar>\n\t\t\t@let current = currentPreset();\n\t\t\t@for(preset of presets(); track preset.id){\n\t\t\t\t<div tuiGroup [collapsed]=\"true\" [rounded]=\"true\">\n\t\t\t\t\t@let isActive = current?.id == preset.id;\n\t\t\t\t\t@if(isActive){\n\t\t\t\t\t\t@if(preset.edit){\n\t\t\t\t\t\t\t<tui-textfield style=\"width:10rem\" tuiTextfieldSize=\"s\" (keydown.enter)=\"preset.edit = false;saveCurrentPreset()\">\n\t\t\t\t\t\t\t\t<input tuiInput [(ngModel)]=\"preset.name\"/>\n\t\t\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t\t\t<button style=\"flex: 0 0 auto;\" tuiButton iconStart=\"save\" size=\"s\" appearance=\"info\" (click)=\"preset.edit = false;saveCurrentPreset()\" tuiHint=\"Save\"></button>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t@else {\n\t\t\t\t\t\t\t<div style=\"height:100%\" appearance=\"positive\" tuiBadge tuiStatus>\n\t\t\t\t\t\t\t\t{{preset.name}}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<button style=\"flex: 0 0 auto;\" tuiButton iconStart=\"square-pen\" size=\"s\" appearance=\"info\" (click)=\"preset.edit = true\" tuiHint=\"Edit\"></button>\n\t\t\t\t\t\t}\n\t\t\t\t\t<button style=\"flex: 0 0 auto;\" tuiButton iconStart=\"x\" size=\"s\" appearance=\"negative\" (click)=\"removePreset(preset.id)\" tuiHint=\"Delete\"></button>\n\t\t\t\t\t}\n\t\t\t\t\t@else {\n\t\t\t\t\t\t<button style=\"flex: 0 0 auto;\" tuiButton appearance=\"secondary\" size=\"s\" (click)=\"selectPreset(preset.id)\">{{preset.name}}</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</tui-scrollbar>\n `,\n\thost:{\n\t\tstyle:'display:flex;flex-direction: row;gap:10px;width:100%'\n\t},\n styles: `\n\t\ttui-scrollbar {\n\t\t\twidth:100% !important;\n\t\t\t::ng-deep > .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tgap:10px;\n\t\t\t\twidth:0px;\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUITablePresets implements OnChanges {\n\t@Input() storageKey: string | null = null;\n\tcurrentPreset = signal<EzUITableSortFilterPreset | null>(null);\n\tpresets = signal<EzUITableSortFilterPreset[]>([])\n\n\tconstructor(private table : EzUITable){\n\n\t}\n\n\tasync ngOnChanges(changes: SimpleChanges) {\n\t\tif (changes['storageKey'] && changes['storageKey'].previousValue != changes['storageKey'].currentValue) {\n\t\t\tthis.storageKey = changes['storageKey'].currentValue;\n\t\t\tif (this.storageKey){\n\t\t\t\tconst item = localStorage.getItem(this.storageKey)\n\t\t\t\tif (item){\n\t\t\t\t\tconst parsed : EzUITableSortFilterPresetSave = JSON.parse(item)\n\t\t\t\t\tif (parsed){\n\t\t\t\t\t\tthis.presets.set(parsed.presets);\n\t\t\t\t\t\tif (parsed.current){\n\t\t\t\t\t\t\tconst target = (parsed.presets).find(x => x.id == parsed.current);\n\t\t\t\t\t\t\tif (target)\n\t\t\t\t\t\t\t\tthis.selectPreset(target.id)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnInit(){\n\t\tsetTimeout(\n\t\t\t() => {\n\t\t\t\tconst current = this.currentPreset();\n\t\t\t\tif (current)\n\t\t\t\t\tthis.onPresetChange.emit(current);\n\t\t\t},\n\t\t\t500\n\t\t)\n\t}\n\n\t@Output() onPresetChange: EventEmitter<EzUITableSortFilterPreset | null> = new EventEmitter<EzUITableSortFilterPreset | null>();\n\n\tsaveCurrentPreset(){\n\t\tconst currentPreset = this.currentPreset();\n\t\tif (currentPreset){\n\t\t\tcurrentPreset.sorts = [...this.table.sorts()];\n\t\t\tcurrentPreset.filters = [...this.table.filters()];\n\t\t\tthis.currentPreset.set(currentPreset);\n\n\t\t\tconst presets = this.presets();\n\t\t\tconst target = this.presets().findIndex(x => x.id == currentPreset?.id)\n\t\t\tif (target != -1)\n\t\t\t\tpresets[target] = currentPreset;\n\t\t\tthis.presets.set(presets);\n\n\t\t\tthis.savePresets();\n\t\t}\n\t}\n\n\tselectPreset(id : string){\n\t\tconst presets = this.presets();\n\t\tconst target = presets.findIndex(x => x.id == id);\n\t\tif (target != -1)\n\t\t{\n\t\t\tconst preset = presets[target];\n\t\t\tthis.currentPreset.set(preset);\n\t\t\tthis.table.sorts.set(preset.sorts);\n\t\t\tthis.table.filters.set(preset.filters);\n\t\t\tthis.onPresetChange.emit(preset);\n\t\t\tthis.table.applyFilter();\n\t\t}\n\n\t\tthis.savePresets();\n\t}\n\n\tcreatePreset(){\n\t\tthis.saveCurrentPreset();\n\n\t\tconst preset = {\n\t\t\tid: uuidv4(),\n\t\t\tname: 'New Preset',\n\t\t\tsorts : [...this.table.sorts()],\n\t\t\tfilters: [...this.table.filters()]\n\t\t} as EzUITableSortFilterPreset\n\t\tthis.currentPreset.set(preset);\n\n\t\tconst presets = this.presets();\n\t\tpresets.push(preset);\n\t\tthis.presets.set(presets);\n\n\t\tthis.savePresets();\n\t}\n\n\tremovePreset(id : string){\n\t\tconst presets = this.presets();\n\t\tconst target = presets.findIndex(x => x.id == id);\n\t\tif (target != -1)\n\t\t\tpresets.splice(target, 1);\n\t\tthis.presets.set(presets);\n\n\t\tconst current = this.currentPreset();\n\t\tif (current?.id == id){\n\t\t\tif (presets.length > 0)\n\t\t\t{\n\t\t\t\tthis.currentPreset.set(presets[0]);\n\t\t\t\tthis.onPresetChange.emit(presets[0]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.currentPreset.set(null);\n\t\t\t\tthis.onPresetChange.emit(null);\n\t\t\t}\n\n\t\t}\n\n\t\tthis.savePresets();\n\t}\n\n\tsavePresets(){\n\t\tif(this.storageKey){\n\t\t\tconst saveBody = {\n\t\t\t\tcurrent: this.currentPreset()?.id,\n\t\t\t\tpresets: [...this.presets()]\n\t\t\t} as EzUITableSortFilterPresetSave\n\t\t\tlocalStorage.setItem(\n\t\t\t\tthis.storageKey,\n\t\t\t\tJSON.stringify(saveBody));\n\t\t}\n\t}\n\n\tclearFilters(){\n\t\tthis.currentPreset.set(null);\n\t\tthis.onPresetChange.emit(null);\n\t\tthis.table.sorts.set([])\n\t\tthis.table.filters.set([])\n\t\tthis.savePresets();\n\t\tthis.table.applyFilter();\n\t}\n}\n\n","export class EzUIFilterHelpers {\n\tpublic static genericFilter<T>(values: any[], fn : (i : T) => boolean, column : string) : any[]{\n\t\tconst filtered = []\n\t\tfor(const value of values)\n\t\t{\n\t\t\tconst base = value[column];\n\t\t\tif (Array.isArray(base)){\n\t\t\t\tfor(let item of base){\n\t\t\t\t\tconst asGeneric : T = item;\n\t\t\t\t\tif (fn(asGeneric))\n\t\t\t\t\t{\n\t\t\t\t\t\tfiltered.push(value);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst asGeneric : T = base;\n\t\t\t\tif (fn(asGeneric))\n\t\t\t\t\tfiltered.push(value);\n\t\t\t}\n\t\t}\n\t\treturn filtered;\n\t}\n\n\tpublic static dateFilter(values: any[], fn : (i : Date) => boolean, column : string) : any[]{\n\t\tconst filtered = []\n\t\tfor(const value of values)\n\t\t{\n\t\t\tconst base = value[column];\n\t\t\tif (Array.isArray(base)){\n\t\t\t\tfor(let item of base){\n\t\t\t\t\tconst asDate : Date = new Date(item);\n\t\t\t\t\tif (fn(asDate))\n\t\t\t\t\t{\n\t\t\t\t\t\tfiltered.push(value);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst asDate : Date = new Date(base);\n\t\t\t\tif (fn(asDate))\n\t\t\t\t\tfiltered.push(value);\n\t\t\t}\n\t\t}\n\t\treturn filtered;\n\t}\n}\n","import { EzUIFilterHelpers } from \"../helpers/table.filterhelpers\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITableFilterMethod } from \"../models/table.filterMethod\";\nimport { EzUITableSort } from \"../models/table.sort\";\nimport { EzUITableSortMethod } from \"../models/table.sortMethod\";\n\nexport class EzUITableFilterService {\n\tpublic sortMethods : EzUITableSortMethod[] = [\n\t\t{\n\t\t\tstate: 'asc',\n\t\t\tsort: (a: any, b: any, column : string) => {\n\t\t\t\tif (a[column] < b[column])\n\t\t\t\t\treturn 1;\n\t\t\t\tif (a[column] > b[column])\n\t\t\t\t\treturn -1;\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t} as EzUITableSortMethod,\n\t\t{\n\t\t\tstate: 'desc',\n\t\t\tsort: (a: any, b: any, column : string) => {\n\t\t\t\tif (a[column] < b[column])\n\t\t\t\t\treturn -1;\n\t\t\t\tif (a[column] > b[column])\n\t\t\t\t\treturn 1;\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t} as EzUITableSortMethod\n\t]\n\n\tpublic filterMethods : EzUITableFilterMethod[] = [\n\t\t// Text filters\n\t\t{\n\t\t\tkey: 'str',\n\t\t\taction: 'con',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => i.includes(value), column)\n\t\t},\n\t\t{\n\t\t\tkey: 'str',\n\t\t\taction: 'ncon',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => !i.includes(value), column)\n\t\t},\n\t\t{\n\t\t\tkey: 'str',\n\t\t\taction: 'sta',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => i.startsWith(value), column)\n\t\t},\n\t\t{\n\t\t\tkey: 'str',\n\t\t\taction: 'end',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => i.endsWith(value), column)\n\t\t},\n\n\t\t// Select filters\n\t\t{\n\t\t\tkey: 'sel',\n\t\t\taction: 'con',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => value.includes(i), column)\n\t\t},\n\t\t{\n\t\t\tkey: 'sel',\n\t\t\taction: 'ncon',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => !value.includes(i), column)\n\t\t},\n\n\t\t// Date filters\n\t\t{\n\t\t\tkey: 'dat',\n\t\t\taction: 'bef',\n\t\t\tfilter: (values : any[], column : string, value : any) =>\n\t\t\t\tEzUIFilterHelpers.dateFilter(\n\t\t\t\t\tvalues,\n\t\t\t\t\t(i : Date) => {\n\t\t\t\t\t\tvar normal = value[0].toLocalNativeDate()\n\t\t\t\t\t\tnormal.setMilliseconds(value[1].toAbsoluteMilliseconds());\n\t\t\t\t\t\treturn i.getTime() < normal.getTime()\n\t\t\t\t\t},\n\t\t\t\t\tcolumn)\n\t\t},\n\t\t{\n\t\t\tkey: 'dat',\n\t\t\taction: 'aft',\n\t\t\tfilter: (values : any[], column : string, value : any) =>\n\t\t\t\tEzUIFilterHelpers.dateFilter(\n\t\t\t\t\tvalues,\n\t\t\t\t\t(i : Date) => {\n\t\t\t\t\t\tvar normal = value[0].toLocalNativeDate()\n\t\t\t\t\t\tnormal.setMilliseconds(value[1].toAbsoluteMilliseconds());\n\t\t\t\t\t\treturn i.getTime() > normal.getTime()\n\t\t\t\t\t},\n\t\t\t\t\tcolumn)\n\t\t},\n\n\t\t// Boolean filters\n\t\t{\n\t\t\tkey: 'bol',\n\t\t\taction: 'true',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<boolean>(values, (i : boolean) => i === value, column)\n\t\t},\n\n\t\t// Number filters\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'gr',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i > value, column)\n\t\t},\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'greq',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i >= value, column)\n\t\t},\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'eq',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i == value, column)\n\t\t},\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'ls',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i < value, column)\n\t\t},\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'lseq',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i <= value, column)\n\t\t},\n\t]\n\n\tpublic sort(values : any[], sort : EzUITableSort) : any[]{\n\t\tconst target = this.sortMethods.find(x => x.state == sort.state);\n\t\tif (target)\n\t\t\treturn values.sort((a : any, b: any) => target!.sort(a,b,sort.column));\n\t\treturn values;\n\t}\n\n\tpublic filter(values : any[], filter : EzUITableFilter) : any[]{\n\t\tconst split = filter.expression.split(';');\n\t\tconst target = this.filterMethods.find(x => split[0] == x.key && split[1] == x.action);\n\t\tif (target)\n\t\t\treturn target!.filter(values, filter.column, filter.value);\n\t\treturn values;\n\t}\n}\n\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiTable, TuiTablePagination } from '@taiga-ui/addon-table';\nimport { TuiButton, TuiDropdown, TuiHint, TuiIcon, TuiInput, TuiLoader, TuiScrollbar } from \"@taiga-ui/core\";\nimport { TuiChevron, TuiDataListWrapper } from '@taiga-ui/kit';\nimport { TuiBlockStatus } from '@taiga-ui/layout';\nimport { EzUITableFilter } from './models/table.filter';\nimport { EzUITableSort } from './models/table.sort';\nimport { EzUITableSortFilterPreset } from './models/table.sortFilterPreset';\nimport { EzUITableFilterService } from './services/table.filterservice';\nimport { EzUITablePresets } from './table.presets';\n\n@Component({\n selector: 'ezui-table',\n imports: [FormsModule, CommonModule, TuiTable, TuiScrollbar, TuiButton, TuiChevron, TuiDropdown, TuiDataListWrapper, TuiTablePagination, TuiLoader, TuiBlockStatus, TuiIcon, TuiInput, EzUITablePresets, TuiHint],\n template: `\n\t\t<div class=\"ezui-table\">\n\t\t\t<tui-loader [inheritColor]=\"true\" [overlay]=\"true\" size=\"xxl\" [loading]=\"isLoading()\">\n\t\t\t\t@if(values.length == 0){\n\t\t\t\t\t@if(showAdd || showRefresh){\n\t\t\t\t\t\t<div class=\"ezui-table-header\">\n\t\t\t\t\t\t\t@if(showRefresh){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"rotate-cw\" size=\"s\" appearance=\"info\" (click)=\"onLoadItems.emit()\" tuiHint=\"Refresh the table\"></button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showAdd){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"plus\" size=\"s\" appearance=\"info\" (click)=\"onAddItem.emit()\" tuiHint=\"Add new item\"></button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t@if(!isLoading()){\n\t\t\t\t\t\t<tui-block-status>\n\t\t\t\t\t\t\t<tui-icon tuiSlot=\"top\" icon=\"grid-2x2-x\" />\n\n\t\t\t\t\t\t\t<h3>No Data</h3>\n\n\t\t\t\t\t\t\tNo data to display.\n\t\t\t\t\t\t</tui-block-status>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t@if(showAdd || showRefresh || showClearFilters){\n\t\t\t\t\t\t<div class=\"ezui-table-header\">\n\t\t\t\t\t\t\t@if(showRefresh){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"rotate-cw\" size=\"s\" appearance=\"info\" (click)=\"onLoadItems.emit()\" tuiHint=\"Refresh the table\"></button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showAdd){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"plus\" size=\"s\" appearance=\"info\" (click)=\"onAddItem.emit()\" tuiHint=\"Add new item\"></button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showClearFilters){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"funnel-x\" size=\"s\" appearance=\"info\" (click)=\"clearFilters()\" tuiHint=\"Clear filters\"></button>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@if(allowPresets){\n\t\t\t\t\t\t\t\t<div class=\"seperator\"></div>\n\t\t\t\t\t\t\t\t<ezui-table-presets #presetHeader [storageKey]=\"storageKey\" (onPresetChange)=\"onPresetChange.emit($event)\">\n\t\t\t\t\t\t\t\t</ezui-table-presets>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t<tui-scrollbar class=\"forcefullsize\">\n\t\t\t\t\t\t<table tuiTable class=\"forcefullsize\">\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t@if(expandable){\n\t\t\t\t\t\t\t\t\t\t<th tuiTh></th>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tableHeader\"></ng-container>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t@if(displayValues().length == 0){\n\t\t\t\t\t\t\t\t<td colSpan=\"9999\">\n\t\t\t\t\t\t\t\t\t<tui-block-status>\n\t\t\t\t\t\t\t\t\t\t<tui-icon tuiSlot=\"top\" icon=\"grid-2x2-x\" />\n\n\t\t\t\t\t\t\t\t\t\t<h3>No Data</h3>\n\n\t\t\t\t\t\t\t\t\t\tNo data matches your filters\n\t\t\t\t\t\t\t\t\t</tui-block-status>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@for (item of displayValues(); track page() * pageSize() + i; let i = $index){\n\t\t\t\t\t\t\t\t@let fullIndex = page() * pageSize() + i;\n\t\t\t\t\t\t\t\t<tbody tuiTbody>\n\t\t\t\t\t\t\t\t\t<tr [class]=\"{'rowrlickable':clickable}\" (click)=\"onRowClick.emit(item)\">\n\t\t\t\t\t\t\t\t\t\t@if(expandable){\n\t\t\t\t\t\t\t\t\t\t\t<td tuiTd class=\"ezui-table-expander\">\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"ezui-table-expander-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttuiIconButton\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[tuiChevron]=\"state[fullIndex] ?? false\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"state[fullIndex] = !state[fullIndex];onRowExpanded.emit(item)\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tToggle\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tableRows\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</tbody>\n\n\t\t\t\t\t\t\t\t<tbody tuiTableExpand [expanded]=\"state[fullIndex] ?? false\">\n\t\t\t\t\t\t\t\t\t@if(state[fullIndex] ?? false){\n\t\t\t\t\t\t\t\t\t\t<tr [class]=\"{'rowrlickable':clickable}\" (click)=\"onRowClick.emit(item)\">\n\t\t\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tableExpandedrow\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</tui-scrollbar>\n\t\t\t\t\t@if(internalValues.length > pageSize() || pageSize() != 25){\n\t\t\t\t\t\t<div class=\"ezui-table-footer\">\n\t\t\t\t\t\t\t<tui-table-pagination\n\t\t\t\t\t\t\t\t[(size)]=\"pageSize\"\n\t\t\t\t\t\t\t\t[(page)]=\"page\"\n\t\t\t\t\t\t\t\t[total]=\"internalValues.length\"\n\t\t\t\t\t\t\t\t[items]=\"pageSizes\"\n\t\t\t\t\t\t\t\t(pageChange)=\"processPage()\"\n\t\t\t\t\t\t\t\t(sizeChange)=\"processPage()\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</tui-loader>\n\t\t</div>\n `,\n host: {\n\t\tclass:'w-full h-full'\n },\n styles: `\n\t\t.ezui-table {\n\t\t\tborder: 2px solid var(--tui-border-normal);\n\t\t\tborder-radius: var(--tui-radius-l);\n\t\t\tdisplay:flex;\n\t\t\theight:100%;\n\t\t\twidth:100%;\n\t\t\toverflow:hidden;\n\n\t\t\t::ng-deep tui-loader {\n\t\t\t\theight:100%;\n\t\t\t\twidth:100%;\n\t\t\t}\n\n\t\t\t::ng-deep tui-loader > .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-direction: column;\n\t\t\t}\n\n\t\t\t::ng-deep tui-scrollbar {\n\t\t\t\tflex-grow:1;\n\t\t\t}\n\n\t\t\t::ng-deep tui-scrollbar > .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tgap:10px;\n\t\t\t\twidth:0px;\n\t\t\t}\n\n\t\t\t.ezui-table-header {\n\t\t\t\tbackground-color: var(--tui-background-base-alt);\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-direction: row;\n\t\t\t\tgap:10px;\n\t\t\t\tpadding:5px;\n\n\t\t\t\t.seperator {\n\t\t\t\t\twidth:2px;\n\t\t\t\t\tbackground-color: var(--tui-border-normal);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.ezui-table-footer {\n\t\t\t\tdisplay:flex;\n\t\t\t\tmargin-top:0.5rem;\n\t\t\t\tmargin-bottom:0.5rem;\n\t\t\t\tpadding-left:2rem;\n\t\t\t\tpadding-right:2rem;\n\n\t\t\t\ttui-table-pagination {\n\t\t\t\t\tflex: 1\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t::ng-deep table {\n\t\t\t\tborder-radius: var(--tui-radius-l);\n\t\t\t}\n\n\t\t\t::ng-deep th {\n\t\t\t\tbackground-color: var(--tui-background-base-alt) !important;\n\t\t\t}\n\n\t\t\t::ng-deep .ezui-table-expander {\n\t\t\t\tpadding:0px;\n\t\t\t}\n\n\t\t\t::ng-deep .ezui-table-expander-button {\n\t\t\t\twidth:100% !important;\n\t\t\t\theight:100%;\n\t\t\t\tborder-radius: 0px;\n\t\t\t}\n\n\t\t\tth[tuiTh] {\n\t\t\t\talign-items:center;\n\t\t\t}\n\n\t\t\t.forcefullsize {\n\t\t\t\twidth: 100% !important;\n\t\t\t}\n\n\t\t\ttui-block-status {\n\t\t\t\tpadding-top:20px;\n\t\t\t\tpadding-bottom:20px;\n\t\t\t}\n\n\t\t\t.rowrlickable {\n\t\t\t\tcursor:pointer;\n\n\t\t\t\tbackground-color: var(--tui-background-base);\n\n\t\t\t\t::ng-deep td[tuitd] {\n\t\t\t\t\tbackground-color: transparent !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.rowrlickable:hover {\n\t\t\t\tbackground-color: var(--tui-background-neutral-1-hover) !important;\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUITable implements OnChanges {\n @ContentChild('tableHeader', { static: false }) tableHeader: TemplateRef<any> | undefined;\n @ContentChild('tableRows', { static: false }) tableRows: TemplateRef<any> | undefined;\n @ContentChild('tableExpandedrow', { static: false }) tableExpandedrow: TemplateRef<any> | undefined;\n\n @ViewChild('presetHeader', { static: false }) presetHeader: EzUITablePresets | undefined;\n\n @Input() disabled: boolean = false;\n @Input() isLoading = signal<boolean>(false);\n\n @Input() showAdd: boolean = false;\n @Input() showRefresh: boolean = false;\n @Input() showClearFilters: boolean = false;\n\n\t@Input() expandable: boolean = false;\n\t@Input() clickable: boolean = false;\n\n @Input() values: any[] = [];\n\tinternalValues: any[] = [];\n displayValues = signal<any[]>([]);\n\n\tsorts = signal<EzUITableSort[]>([]);\n\tfilters = signal<EzUITableFilter[]>([]);\n\n\t@Input() storageKey: string | null = null;\n\t@Input() allowPresets: boolean = false;\n\n\tconstructor(private filterService : EzUITableFilterService){\n\n\t}\n\n\tasync ngOnChanges(changes: SimpleChanges) {\n\t\tif (changes['values'] && changes['values'].previousValue != changes['values'].currentValue) {\n\t\t\tthis.values = changes['values'].currentValue;\n\t\t\tthis.applyFilter();\n\t\t}\n\t}\n\n @Output() onAddItem: EventEmitter<any> = new EventEmitter();\n @Output() onLoadItems: EventEmitter<any> = new EventEmitter();\n @Output() onRowExpanded: EventEmitter<any> = new EventEmitter();\n @Output() onRowClick: EventEmitter<any> = new EventEmitter();\n\t@Output() onPresetChange: EventEmitter<EzUITableSortFilterPreset | null> = new EventEmitter<EzUITableSortFilterPreset | null>();\n\n @Input() pageSize = signal<number>(25);\n\tpage = signal<number>(0);\n\tpages = signal<number>(0);\n\treadonly pageSizes = [10, 25, 50, 100, 1000];\n\tprocessPage(){\n\t\tconst fromIndex = this.pageSize() * this.page();\n\t\tconst toIndex = fromIndex + this.pageSize();\n\t\tthis.displayValues.set(this.internalValues.slice(fromIndex, toIndex));\n\t}\n\n\tapplySorts(){\n\t\tlet sorted = [...this.internalValues]\n\t\tfor(const sort of this.sorts())\n\t\t\tsorted = this.filterService.sort(sorted, sort);\n\t\tthis.internalValues = sorted;\n\t}\n\n\tapplyFilter(){\n\t\tlet filtered = [...this.values]\n\t\tfor(const filter of this.filters())\n\t\t\tfiltered = this.filterService.filter(filtered, filter);\n\t\tthis.internalValues = filtered;\n\t\tthis.applySorts();\n\t\tthis.state = [];\n\t\tthis.page.set(0);\n\t\tthis.pages.set(Math.floor(this.internalValues.length / this.pageSize()) + 1)\n\t\tthis.processPage();\n\n\t\tthis.presetHeader?.saveCurrentPreset();\n\t}\n\n\tstate: Record<number, boolean> = {};\n\n\tsetSort(sort : EzUITableSort){\n\t\tconst sorts = this.sorts();\n\t\tconst target = sorts.findIndex(x => x.column == sort.column);\n\t\tif (target != -1)\n\t\t\tsorts[target] = sort;\n\t\telse\n\t\t\tsorts.push(sort);\n\t\tthis.sorts.set(sorts);\n\n\t\tthis.applyFilter();\n\t}\n\n\tclearSort(column : string){\n\t\tconst sorts = this.sorts();\n\t\tconst target = sorts.findIndex(x => x.column == column);\n\t\tif (target != -1)\n\t\t\tsorts.splice(target, 1)\n\t\tthis.sorts.set(sorts);\n\n\t\tthis.applyFilter();\n\t}\n\n\tsetFilter(filter : EzUITableFilter){\n\t\tconst filters = this.filters();\n\t\tconst target = filters.findIndex(x => x.column == filter.column);\n\t\tif (target != -1){\n\t\t\tfilters[target] = filter;\n\t\t}\n\t\telse\n\t\t\tfilters.push(filter);\n\t\tthis.filters.set(filters);\n\n\t\tthis.applyFilter();\n\t}\n\n\tclearFilter(column : string){\n\t\tconst filters = this.filters();\n\t\tconst target = filters.findIndex(x => x.column == column);\n\t\tif (target != -1)\n\t\t\tfilters.splice(target, 1)\n\t\tthis.filters.set(filters);\n\n\t\tthis.applyFilter();\n\t}\n\n\tclearFilters(){\n\t\tthis.presetHeader?.currentPreset.set(null);\n\t\tthis.onPresetChange.emit(null);\n\t\tthis.sorts.set([])\n\t\tthis.filters.set([])\n\t\tthis.presetHeader?.savePresets();\n\t\tthis.applyFilter();\n\t}\n}\n\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiButton, TuiCheckbox, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiBlock, TuiDataListWrapper } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-booleanfilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiBadgeNotification, TuiBadgedContent, TuiInput, TuiCheckbox, TuiBlock],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t<label tuiBlock=\"s\" style=\"justify-content:center\">\n\t\t\t\t\t\tTrue\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\t\ttuiCheckbox\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t[(ngModel)]=\"value\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</label>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter()\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableBooleanFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : boolean = false;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.value = false;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column)\n\t\t\tif (!filter || filter!.expression != \"bol;true\")\n\t\t\t{\n\t\t\t\tthis.value = false;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = filter.value;\n\t\t\tthis.filterApplied.set(true);\n\t\t})\n\t}\n\n\tapplyFilter(){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: \"bol;true\",\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiDay, TuiTime } from \"@taiga-ui/cdk/date-time\";\nimport { TuiButton, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiInputDateTime, TuiStringifyContentPipe } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-datefilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInput, TuiInputDateTime],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t@let filter = filterType();\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filter.label }}\n\t\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringify | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<tui-textfield (keydown.enter)=\"applyFilter(filter.expression)\">\n\t\t\t\t\t\t<label tuiLabel>Choose a date</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttuiInputDateTime\n\t\t\t\t\t\t\t[(ngModel)]=\"value\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<tui-calendar *tuiDropdown />\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filter.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableDateFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : [TuiDay, TuiTime] = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\tfilterType = signal<any>({});\n\tfilterTypes : any[];\n\n\tprotected readonly stringify = (item: any): string => `${item.label}`;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'After',\n\t\t\t\texpression: 'dat;aft'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Before',\n\t\t\t\texpression: 'dat;bef'\n\t\t\t}\n\t\t];\n\t\tthis.filterType.set(this.filterTypes[0]);\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType.set(type);\n\t\t\tlet forceReapply = false;\n\t\t\tif (typeof filter.value[0] == 'string'){\n\t\t\t\tthis.value = [TuiDay.jsonParse(filter.value[0]), new TuiTime(filter.value[1].hours, filter.value[1].minutes, filter.value[1].seconds, 0)];\n\t\t\t\tforceReapply = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.value = filter.value;\n\t\t\t}\n\t\t\tthis.filterApplied.set(true);\n\n\t\t\tif (forceReapply){\n\t\t\t\t// Force reapply filter, to fix local storage parsing issue\n\t\t\t\tthis.applyFilter(type.expression);\n\t\t\t}\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiButton, TuiDropdown } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiInputNumber, TuiStringifyContentPipe } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-numberfilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInputNumber],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filterType.label }}\n\t\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringify | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<tui-textfield tuiTextfieldSize=\"s\" (keydown.enter)=\"applyFilter(filterType.expression)\">\n\t\t\t\t\t\t<input tuiInputNumber [(ngModel)]=\"value\"/>\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filterType.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableNumberFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : number = 0;\n\tfilterType : any;\n\tfilterTypes : any[];\n\n\tprotected readonly stringify = (item: any): string => `${item.label}`;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'Less Than',\n\t\t\t\texpression: 'num;ls'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Less Than or Equal',\n\t\t\t\texpression: 'num;lseq'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Equal',\n\t\t\t\texpression: 'num;eq'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Greater Than',\n\t\t\t\texpression: 'num;gr'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Greater Than or Equal',\n\t\t\t\texpression: 'num;greq'\n\t\t\t}\n\t\t];\n\t\tthis.filterType = this.filterTypes[0];\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = 0;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = 0;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = 0;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType = type;\n\t\t\tthis.value = filter.value;\n\t\t\tthis.filterApplied.set(true);\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiButton, TuiDataList, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiMultiSelect, TuiStringifyContentPipe } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-selectfilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInput, TuiMultiSelect, TuiDataList],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filterType.label }}\n\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringifyOption | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"secondary-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"selected\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{selected.length === 1 ? stringifyValue(selected[0]) : 'Selected ' + selected.length}}\n\n\t\t\t\t\t\t<tui-data-list *tuiDropdown>\n\t\t\t\t\t\t\t<tui-opt-group\n\t\t\t\t\t\t\t\tlabel=\"Options\"\n\t\t\t\t\t\t\t\ttuiMultiSelectGroup\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t@for (option of options; track getOptionValue(option)) {\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttuiOption\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t[value]=\"getOptionValue(option)\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{{ getOptionLabel(option) }}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</tui-opt-group>\n\t\t\t\t\t\t</tui-data-list>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filterType.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableSelectFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\t@Input() optionLabel: string | undefined = undefined;\n @Input() optionValue: string | undefined = undefined;\n\n\t@Input() options : any[] = [];\n\tselected : string[] = [];\n\tfilterType : any;\n\tfilterTypes : any[];\n\n\tprotected readonly stringifyOption = (item: any): string => `${item.label}`;\n\tstringifyValue = (value: string): string => this.getOptionLabel(this.options.find((item) => this.getOptionValue(item) === value));\n\n getOptionLabel(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionLabel == undefined || this.optionLabel == '') return item;\n return item[this.optionLabel];\n }\n\n getOptionValue(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionValue == undefined || this.optionValue == '') return item;\n return item[this.optionValue];\n }\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'Contains',\n\t\t\t\texpression: 'sel;con'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Not Contains',\n\t\t\t\texpression: 'sel;ncon'\n\t\t\t}\n\t\t];\n\t\tthis.filterType = this.filterTypes[0];\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.selected = [];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.selected = [];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.selected = [];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType = type;\n\t\t\tthis.selected = filter.value;\n\t\t\tthis.filterApplied.set(true);\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.selected,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiButton, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiStringifyContentPipe } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-textfilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInput],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filterType.label }}\n\t\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringify | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<tui-textfield tuiTextfieldSize=\"s\" (keydown.enter)=\"applyFilter(filterType.expression)\">\n\t\t\t\t\t\t<input tuiInput [(ngModel)]=\"value\"/>\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filterType.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableTextFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : string = '';\n\tfilterType : any;\n\tfilterTypes : any[];\n\n\tprotected readonly stringify = (item: any): string => `${item.label}`;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'Contains',\n\t\t\t\texpression: 'str;con'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Not Contains',\n\t\t\t\texpression: 'str;ncon'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Starts With',\n\t\t\t\texpression: 'str;sta'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Ends With',\n\t\t\t\texpression: 'str;end'\n\t\t\t}\n\t\t];\n\t\tthis.filterType = this.filterTypes[0];\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType = type;\n\t\t\tthis.value = filter.value;\n\t\t\tthis.filterApplied.set(true);\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { TuiButton } from \"@taiga-ui/core\";\nimport { EzUITableSort } from \"../models/table.sort\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-sortable',\n imports: [CommonModule, TuiButton],\n template: `\n\t\t@if(column){\n\t\t\t<button tuiButton style=\"opacity:0.72\" [iconStart]=\"icon()\" size=\"s\" appearance=\"flat-grayscale\" (click)=\"sort()\"></button>\n\t\t}\n `\n})\nexport class EzUITTableSortableColumn {\n @Input() column!: string;\n\n\ttable : EzUITable;\n\tstate : 'asc' | 'desc' | 'none' = 'none';\n\ticon = signal<string | null | undefined>(\"text-align-justify\");\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.state = 'none'\n\t\t\t\tthis.icon.set('text-align-justify');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst sort = x.sorts.find(x => x.column == this.column);\n\t\t\tif (!sort)\n\t\t\t{\n\t\t\t\tthis.state = 'none'\n\t\t\t\tthis.icon.set('text-align-justify');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.state = sort.state;\n\n\t\t\tswitch(sort.state){\n\t\t\t\tcase 'none':\n\t\t\t\t\tthis.icon.set('text-align-justify');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'asc':\n\t\t\t\t\tthis.icon.set('arrow-up-wide-narrow');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'desc':\n\t\t\t\t\tthis.icon.set('arrow-down-wide-narrow');\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t})\n\t}\n\n\tsort(){\n\t\tswitch(this.state){\n\t\t\tcase 'none':\n\t\t\t\tthis.state = 'asc';\n\t\t\t\tthis.table.setSort({ column: this.column, state: this.state } as EzUITableSort)\n\t\t\t\tthis.icon.set('arrow-up-wide-narrow');\n\t\t\t\tbreak;\n\t\t\tcase 'asc':\n\t\t\t\tthis.state = 'desc';\n\t\t\t\tthis.table.setSort({ column: this.column, state: this.state } as EzUITableSort)\n\t\t\t\tthis.icon.set('arrow-down-wide-narrow');\n\t\t\t\tbreak;\n\t\t\tcase 'desc':\n\t\t\t\tthis.state = 'none';\n\t\t\t\tthis.table.clearSort(this.column);\n\t\t\t\tthis.icon.set('text-align-justify');\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, signal } from '@angular/core';\nimport { TuiResponsiveDialogService } from '@taiga-ui/addon-mobile';\nimport { TuiNotificationService } from '@taiga-ui/core';\nimport { TUI_CONFIRM } from '@taiga-ui/kit';\nimport { firstValueFrom, switchMap } from 'rxjs';\n\n@Directive()\nexport abstract class BaseCRUDInterface {\n public isLoading = signal<boolean>(false);\n\n public allItems = signal<any[]>([]);\n public currentItem = signal<any>({} as any);\n public newItemTemplate(): any {\n return {} as any;\n }\n\n public getAllEndpoint: string = '';\n public getEndpoint: string = '';\n public patchEndpoint: string = '';\n public postEndpoint: string = '';\n public deleteEndpoint: string = '';\n\n public canRead: boolean = true;\n public canWrite: boolean = true;\n\n public showDialog = signal<boolean>(false);\n\n public loadOnInit: boolean = true;\n\n public showDeleteDialog: boolean = true;\n public deleteDialogMessage : string = \"Are you sure you want to delete this item?\";\n public showSaveDialog: boolean = false;\n public savewDialogMessage : string = \"Are you sure you want to save this item?\";\n\n constructor(\n public http: HttpClient,\n public messageService: TuiNotificationService,\n public confirmationService: TuiResponsiveDialogService\n ) {}\n\n async ngOnInit() {\n if (this.canRead && this.loadOnInit) await this.loadItems();\n }\n\n public async loadItems() {\n if (!this.canRead) throw new Error('You do not have read permissions!');\n this.isLoading.set(true);\n try {\n this.allItems.set(await firstValueFrom(this.http.get<any[]>(this.getAllEndpoint)));\n } catch {\n\t\t\tthis.messageService.open(\"Failed to load all items!\", {\n\t\t\t\tlabel: \"Load Error\",\n\t\t\t\tappearance: 'negative',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 10000\n\t\t\t}).subscribe();\n }\n this.isLoading.set(false);\n }\n\n async saveItem() {\n if (!this.canWrite) throw new Error('You do not have write permissions!');\n\n if (this.showSaveDialog){\n\t\t\tthis.confirmationService.open<boolean>(\n\t\t\t\tTUI_CONFIRM,\n\t\t\t\t{\n\t\t\t\t\tlabel: this.savewDialogMessage,\n\t\t\t\t\tsize: 's'\n\t\t\t\t})\n\t\t\t\t.pipe(switchMap(async (response) => {\n\t\t\t\t\tif (response === true)\n\t\t\t\t\t\tawait this.saveItemInner();\n\t\t\t\t}))\n\t .subscribe();\n }\n else\n await this.saveItemInner();\n }\n\n async saveItemInner(){\n this.isLoading.set(true);\n try {\n const current = this.currentItem();\n if (current.id != '') {\n await firstValueFrom(this.http.patch(this.patchEndpoint, current));\n\t\t\t\tthis.messageService.open(\"The item was updated with the new values\", {\n\t\t\t\t\tlabel: \"Item Updated\",\n\t\t\t\t\tappearance: 'positive',\n\t\t\t\t\ticon:'circle-x',\n\t\t\t\t\tautoClose: 1000\n\t\t\t\t}).subscribe();\n } else {\n await firstValueFrom(this.http.post(this.postEndpoint, current));\n\t\t\t\tthis.messageService.open(\"A new items was created\", {\n\t\t\t\t\tlabel: \"Item Created\",\n\t\t\t\t\tappearance: 'positive',\n\t\t\t\t\ticon:'circle-x',\n\t\t\t\t\tautoClose: 1000\n\t\t\t\t}).subscribe();\n }\n this.showDialog.set(false);\n await this.loadItems();\n } catch {\n\t\t\tthis.messageService.open(\"Save failed!\", {\n\t\t\t\tlabel: \"Save Error\",\n\t\t\t\tappearance: 'negative',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 10000\n\t\t\t}).subscribe();\n }\n this.isLoading.set(false);\n }\n\n async deleteItem() {\n if (!this.canWrite) throw new Error('You do not have write permissions!');\n\n if (this.showDeleteDialog){\n\t\t\tthis.confirmationService.open<boolean>(\n\t\t\t\tTUI_CONFIRM,\n\t\t\t\t{\n\t\t\t\t\tlabel: this.deleteDialogMessage,\n\t\t\t\t\tsize: 's'\n\t\t\t\t})\n\t\t\t\t.pipe(switchMap(async (response) => {\n\t\t\t\t\tif (response === true)\n\t\t\t\t\t\tawait this.deleteItemInner();\n\t\t\t\t}))\n\t .subscribe();\n }\n else\n await this.deleteItemInner();\n }\n\n async deleteItemInner() {\n this.isLoading.set(true);\n try {\n await firstValueFrom(this.http.delete(this.deleteEndpoint + '?ID=' + this.currentItem().id));\n\t\t\tthis.messageService.open(\"The item was successfully deleted\", {\n\t\t\t\tlabel: \"Item Deleted\",\n\t\t\t\tappearance: 'positive',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 1000\n\t\t\t}).subscribe();\n this.showDialog.set(false);\n await this.loadItems();\n } catch {\n\t\t\tthis.messageService.open(\"Delete failed!\", {\n\t\t\t\tlabel: \"Delete Error\",\n\t\t\t\tappearance: 'negative',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 10000\n\t\t\t}).subscribe();\n }\n this.isLoading.set(false);\n }\n\n public async showEditItem(id: string) {\n if (!this.canRead) throw new Error('You do not have read permissions!');\n this.isLoading.set(true);\n try {\n const fetched = await firstValueFrom(this.http.get<any>(this.getEndpoint + '?ID=' + id));\n this.currentItem.set(fetched);\n this.showDialog.set(true);\n } catch {\n\t\t\tthis.messageService.open(\"Loading failed!\", {\n\t\t\t\tlabel: \"Load Error\",\n\t\t\t\tappearance: 'negative',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 10000\n\t\t\t}).subscribe();\n }\n this.isLoading.set(false);\n }\n\n public async showAddItem() {\n this.currentItem.set(this.newItemTemplate());\n this.showDialog.set(true);\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Directive, EventEmitter, signal } from \"@angular/core\";\nimport { firstValueFrom } from \"rxjs\";\n\n@Directive()\nexport class BaseListInterface<T,TList extends IIdentifiable> {\n public items = signal<TList[]>([]);\n\n public getAllEndpoint: string = '';\n public getEndpoint: string = '';\n\n\tpublic canGetAll : boolean = true;\n\tpublic canGet : boolean = true;\n\n isLoaded : boolean = false;\n isLoading : boolean = false;\n\n\tpublic onUpdated : EventEmitter<any> = new EventEmitter();\n\n constructor(\n public http: HttpClient\n ) {\n }\n\n public async Load(){\n if (!this.isLoading && this.canGetAll){\n this.isLoaded = false;\n this.isLoading = true;\n\t\t\tconst value = await firstValueFrom(this.http.get<TList[]>(this.getAllEndpoint));\n this.items.set(value);\n this.isLoading = false;\n this.isLoaded = true;\n\t\t\tthis.onUpdated.emit();\n }\n\t\telse {\n\t\t\tthis.isLoaded = true;\n\t\t}\n }\n\n public async List() : Promise<TList[]>{\n if (!this.isLoaded)\n await this.waitForValue(() => this.isLoaded === true);\n return this.items();\n }\n\n public async ListGet(id : string) : Promise<TList | null>{\n if (!this.isLoaded)\n await this.waitForValue(() => this.isLoaded === true);\n const target = this.items().find(x => x.id == id);\n if (target)\n return target;\n return null;\n }\n\n public async Get(id : string) : Promise<T> {\n\t\tif (!this.canGet)\n\t\t\treturn null as any;\n const item = await firstValueFrom(this.http.get<T>(this.getEndpoint + \"?ID=\" + id));\n return item;\n }\n\n async waitForValue(test : any) {\n const delayMs = 500;\n while(!test()) await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n}\n\nexport interface IIdentifiable {\n id : string;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { TuiChevron } from '@taiga-ui/kit';\nimport { TuiAsideGroupComponent, TuiNavigation } from \"@taiga-ui/layout\";\nimport { MenuItem } from './models/MenuItem';\n\n@Component({\n selector: 'ezui-sidebar-item',\n standalone: true,\n imports: [CommonModule, RouterLink, TuiNavigation, TuiAsideGroupComponent, TuiChevron],\n template: `\n\t\t@if(item && item.visible){\n\t\t\t@if(item.items && item.items.length > 0){\n\t\t\t\t<tui-aside-group [(open)]=\"item.expanded\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t\ttuiAsideItem\n\t\t\t\t\t\ttuiChevron\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{item.label}}\n\n\t\t\t\t\t\t<ng-template>\n\t\t\t\t\t\t\t@for(subitem of item.items; track subitem){\n\t\t\t\t\t\t\t\t<ezui-sidebar-item [item]=\"subitem\" (onItemClick)=\"onItemClick.emit()\"/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t</button>\n\t\t\t\t</tui-aside-group>\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t<button\n\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\ttuiAsideItem\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t[routerLinkActiveOptions]=\"{ exact:true }\"\n\t\t\t\t\t[routerLink]=\"item.routerLink\"\n\t\t\t\t\t[queryParams]=\"item.queryParams\"\n\t\t\t\t\t(click)=\"item.command && item.command();onItemClick.emit()\"\n\t\t\t\t>\n\t\t\t\t\t{{item.label}}\n\t\t\t\t</button>\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUISideBarItem {\n @Input() item: MenuItem | undefined;\n\n\t@Output() onItemClick = new EventEmitter();\n}\n","import { inject, signal } from \"@angular/core\";\nimport { TUI_DARK_MODE } from \"@taiga-ui/core\";\n\ninterface LayoutState {\n isDesktop : boolean,\n isDarkMode : boolean,\n isMenuExpanded : boolean,\n}\n\nexport class EzUILayoutService {\n protected readonly darkMode = inject(TUI_DARK_MODE);\n\n isDarkMode = signal<boolean>(true);\n isDesktop = signal<boolean>(true);\n isMenuExpanded = signal<boolean>(false);\n\n constructor(){\n const existing = localStorage.getItem(\"state\");\n if (existing)\n {\n var state = JSON.parse(existing) as LayoutState\n\t\t this.isDarkMode.set(state.isDarkMode);\n\t\t this.isDesktop.set(state.isDesktop);\n\t\t this.isMenuExpanded.set(state.isMenuExpanded);\n }\n\n\t\tlet isDesktop = this.isDesktop();\n\t\tlet isMenuExpanded = this.isMenuExpanded();\n\n isDesktop = window.innerWidth > 991\n\t\tif (isMenuExpanded){\n\t\t\tif (!isDesktop)\n\t\t\t\tisMenuExpanded = false;\n\t\t}\n\n\t\tthis.isDesktop.set(isDesktop)\n\t\tthis.isMenuExpanded.set(isMenuExpanded)\n\n\t\tthis.darkMode.update((dark) => this.isDarkMode());\n }\n\n public ToggleDarkMode(){\n let isDarkMode = this.isDarkMode();\n this.darkMode.update((dark) => !isDarkMode);\n isDarkMode = !isDarkMode;\n this.isDarkMode.set(isDarkMode);\n this.saveState();\n }\n\n public ToggleMenu(){\n\t\tlet isMenuExpanded = this.isMenuExpanded();\n\t\tisMenuExpanded = !isMenuExpanded;\n\t\tthis.isMenuExpanded.set(isMenuExpanded);\n\t\tthis.saveState();\n }\n\n public SetMenu(to : boolean){\n let isMenuExpanded = this.isMenuExpanded();\n isMenuExpanded = to;\n this.isMenuExpanded.set(isMenuExpanded);\n\t\tthis.saveState();\n }\n\n saveState(){\n localStorage.setItem(\"state\", JSON.stringify({\n\t\t\tisDarkMode: this.isDarkMode(),\n\t\t\tisDesktop: this.isDesktop(),\n\t\t\tisMenuExpanded: this.isMenuExpanded(),\n\t\t} as LayoutState))\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, signal } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { TuiNavigation } from \"@taiga-ui/layout\";\nimport { EzUISideBarItem } from \"./ezui.sidebar.item\";\nimport { MenuItem } from './models/MenuItem';\nimport { EzUILayoutService } from './services/ezui.layout.service';\n\n@Component({\n selector: 'ezui-sidebar',\n standalone: true,\n imports: [CommonModule, TuiNavigation, EzUISideBarItem],\n template: `\n\t\t@if(layoutService.isDesktop()){\n\t\t\t<aside style=\"height:100%\" tuitheme=\"\" [tuiNavigationAside]=\"layoutService.isMenuExpanded()\">\n\t\t\t\t@for(item of sidebarItems(); track item){\n\t\t\t\t\t<ezui-sidebar-item [item]=\"item\"/>\n\t\t\t\t}\n\n\t\t\t\t<footer>\n\t\t\t\t\t@for(item of sidebarFooterItems(); track item){\n\t\t\t\t\t\t<ezui-sidebar-item [item]=\"item\"/>\n\t\t\t\t\t}\n\t\t\t\t</footer>\n\t\t\t</aside>\n\t\t}\n\t\t@else {\n\t\t\t<aside style=\"height:100%\" tuitheme=\"\" [tuiNavigationAside]=\"true\" [style.display]=\"layoutService.isMenuExpanded() ? '' : 'none'\">\n\t\t\t\t@for(item of sidebarItems(); track item){\n\t\t\t\t\t<ezui-sidebar-item [item]=\"item\" (onItemClick)=\"layoutService.isMenuExpanded.set(false)\"/>\n\t\t\t\t}\n\n\t\t\t\t<footer>\n\t\t\t\t\t@for(item of sidebarFooterItems(); track item){\n\t\t\t\t\t\t<ezui-sidebar-item [item]=\"item\" (onItemClick)=\"layoutService.isMenuExpanded.set(false)\"/>\n\t\t\t\t\t}\n\t\t\t\t</footer>\n\t\t\t</aside>\n\t\t}\n `\n})\nexport class EzUISideBar {\n\t@Input() sidebarItems = signal<MenuItem[]>([]);\n\t@Input() sidebarFooterItems = signal<MenuItem[]>([]);\n\thaveMoved = signal<boolean>(false);\n\n\t@Input() baseRoute = signal<string>(\"/\");\n\n constructor(\n \tpublic layoutService: EzUILayoutService,\n\t\t\tprivate router: Router\n\t){\n router.events.subscribe((val) => {\n if (val instanceof NavigationEnd)\n this.initialize()\n });\n\t}\n\n\tngOnInit(){\n\t\tthis.initialize();\n\t}\n\n\tpublic initialize(){\n\t\tvar sidebarItems = [...this.sidebarItems()]\n\t\tvar sidebarFooterItems = [...this.sidebarFooterItems()]\n this.hideEmptySections(sidebarItems);\n this.hideEmptySections(sidebarFooterItems);\n\n if (!this.haveMoved() && this.router.routerState.snapshot.url == this.baseRoute()) this.gotoFirstPage(sidebarItems);\n\n this.setActiveRoute(sidebarItems);\n this.setActiveRoute(sidebarFooterItems);\n\n\t\tthis.sidebarItems.set(sidebarItems)\n\t\tthis.sidebarFooterItems.set(sidebarFooterItems)\n\t}\n\n hideEmptySections(menu: MenuItem[]) {\n\t\tfor(let item of menu) {\n\t\t\tif (item.items) {\n this.hideEmptySections(item.items);\n if (item.items.every((x) => x.visible == false)) {\n item.visible = false;\n }\n }\n\t\t}\n }\n\n setActiveRoute(menu: MenuItem[], parent: MenuItem | null = null) {\n for(let item of menu) {\n if (item.routerLink) {\n if (item.routerLink == this.router.routerState.snapshot.url) {\n item.expanded = true;\n if (parent) parent.expanded = true;\n }\n }\n if (item.items) this.setActiveRoute(item.items, item);\n }\n }\n\n gotoFirstPage(menu: MenuItem[]) {\n var first = menu.find((x) => x.visible == true);\n if (first) {\n if (first.items) {\n this.gotoFirstPage(first.items);\n } else {\n this.haveMoved.set(true);\n this.router.navigate([first.routerLink]);\n }\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { TuiButton } from '@taiga-ui/core';\nimport { TuiNavigation } from '@taiga-ui/layout';\nimport { EzUILayout } from './ezui.layout';\nimport { EzUILayoutService } from './services/ezui.layout.service';\n\n@Component({\n selector: 'ezui-topbar',\n standalone: true,\n imports: [CommonModule, TuiNavigation, TuiButton],\n template: `\n\t<header tuiNavigationHeader tuitheme=\"\">\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\ttuiIconButton\n\t\t\t[iconStart]=\"layoutService.isDesktop() ? (layoutService.isMenuExpanded() ? '@tui.chevron-left' : '@tui.chevron-right') : (layoutService.isMenuExpanded() ? '@tui.chevron-up' : '@tui.chevron-down')\"\n\t\t\t(click)=\"layoutService.ToggleMenu()\"\n\t\t>\n\t\t</button>\n\t\t<span tuiNavigationLogo>\n\t\t\t<ng-container [ngTemplateOutlet]=\"layout.topbarlogo\"></ng-container>\n\t\t</span>\n\t\t<hr style=\"min-inline-size:0px\"/>\n\t\t<button\n\t\t\t[iconStart]=\"layoutService.isDarkMode() ? 'moon' : 'sun'\"\n\t\t\ttuiIconButton\n\t\t\ttype=\"button\"\n\t\t\t(click)=\"layoutService.ToggleDarkMode()\"\n\t\t>\n\t\t</button>\n\n\t\t<ng-container [ngTemplateOutlet]=\"layout.topbarright\"></ng-container>\n\t</header>\n `\n})\nexport class EzUITopBar {\n\tconstructor(\n\t\tpublic layoutService: EzUILayoutService,\n\t\tpublic layout : EzUILayout\n\t){}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, Input, signal, TemplateRef, viewChild } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TuiRoot, TuiScrollbar } from \"@taiga-ui/core\";\nimport { TuiNavigation } from '@taiga-ui/layout';\nimport { EzUISideBar } from \"./ezui.sidebar\";\nimport { EzUITopBar } from \"./ezui.topbar\";\nimport { MenuItem } from './models/MenuItem';\nimport { EzUILayoutService } from './services/ezui.layout.service';\n\n@Component({\n selector: 'ezui-layout',\n standalone: true,\n imports: [CommonModule, RouterModule, EzUITopBar, EzUISideBar, TuiNavigation, TuiScrollbar, TuiRoot],\n template: `\n\t<tui-root class=\"rootContainer\">\n\t\t<div class=\"layout-wrapper\">\n\t\t\t<ezui-topbar #topbar></ezui-topbar>\n\t\t\t<div class=\"layout-wrapper-split\">\n\t\t\t\t<ezui-sidebar\n\t\t\t\t\t#sidebar\n\t\t\t\t\t[sidebarItems]=\"sidebarItems\"\n\t\t\t\t\t[sidebarFooterItems]=\"sidebarFooterItems\"\n\t\t\t\t\t[baseRoute]=\"baseRoute\"\n\t\t\t\t\t[style.width]=\"layoutService.isDesktop() ? '' : '0px'\"></ezui-sidebar>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"layout-main-container\"\n\t\t\t\t\t[style.opacity]=\"layoutService.isDesktop() ? 1 : (layoutService.isMenuExpanded() ? 0.5 : 1)\">\n\t\t\t\t\t<tui-scrollbar class=\"layout-main\">\n\t\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t\t</tui-scrollbar>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</tui-root>\n `,\n\tstyles: `\n\t\t::ng-deep .rootContainer .t-root-content {\n\t\t\tdisplay:flex;\n\t\t\theight:100vh;\n\t\t\twidth:100vw;\n\t\t}\n\n\t\t.layout-wrapper {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\theight:100vh;\n\t\t\tmin-height: 100vh;\n\t\t\tmax-height: 100vh;\n\t\t}\n\n\t\t.layout-wrapper-split {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\twidth: 100%;\n\t\t\theight:100%;\n\t\t\toverflow:hidden;\n\t\t\tmax-width:100vw;\n\t\t}\n\n\t\t.layout-main-container {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tmin-height: inherit;\n\t\t\tmax-height: inherit;\n\t\t\twidth:100%;\n\t\t\tjustify-content: space-between;\n\t\t\toverflow:hidden;\n\t\t}\n\n\t\t.layout-main {\n\t\t\tflex: 1 1 auto;\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t::ng-deep .layout-main > .t-content {\n\t\t\tpadding:1rem;\n\t\t\tdisplay:flex;\n\t\t\tblock-size:auto !important;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t`\n})\nexport class EzUILayout {\n\t@Input() sidebarItems = signal<MenuItem[]>([]);\n\t@Input() sidebarFooterItems = signal<MenuItem[]>([]);\n\t@Input() baseRoute = signal<string>(\"/\");\n\n\t@ContentChild('topbarright', { static: false }) public topbarright: TemplateRef<any> | undefined;\n\t@ContentChild('topbarlogo', { static: false }) public topbarlogo: TemplateRef<any> | undefined;\n\n\tsidebar = viewChild<EzUISideBar>(\"sidebar\");\n\ttopbar = viewChild<EzUITopBar>(\"topbar\");\n\n constructor(\n \tpublic layoutService: EzUILayoutService,\n\t){\n\t}\n}\n\n\n","// Components\nexport * from './src/components/booleaninput';\nexport * from './src/components/dateinput';\nexport * from './src/components/datetimeinput';\nexport * from './src/components/dialog';\nexport * from './src/components/fileinput';\nexport * from './src/components/iconselector';\nexport * from './src/components/markdowneditor';\nexport * from './src/components/menubar';\nexport * from './src/components/multiselect';\nexport * from './src/components/numberinput';\nexport * from './src/components/passwordinput';\nexport * from './src/components/select';\nexport * from './src/components/showmoretext';\nexport * from './src/components/table/filters/table.booleanfilter';\nexport * from './src/components/table/filters/table.datefilter';\nexport * from './src/components/table/filters/table.numberfilter';\nexport * from './src/components/table/filters/table.selectfilter';\nexport * from './src/components/table/filters/table.textfilter';\nexport * from './src/components/table/helpers/table.filterhelpers';\nexport * from './src/components/table/models/table.filter';\nexport * from './src/components/table/models/table.filterMethod';\nexport * from './src/components/table/models/table.sort';\nexport * from './src/components/table/models/table.sortFilterPreset';\nexport * from './src/components/table/models/table.sortFilterPresetSave';\nexport * from './src/components/table/models/table.sortMethod';\nexport * from './src/components/table/services/table.filterservice';\nexport * from './src/components/table/sorts/table.sortable';\nexport * from './src/components/table/table';\nexport * from './src/components/textinput';\n\n// Helpers\nexport * from './src/helpers/compressImage';\n\n// Interfaces\nexport * from './src/interfaces/baseCRUDInterface';\nexport * from './src/interfaces/baseListInterface';\n\n// Layout\nexport * from './src/layout/ezui.layout';\nexport * from './src/layout/models/MenuItem';\nexport * from './src/layout/services/ezui.layout.service';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5","i1.EzUILayoutService","i2","i4","i1","i3","i6","uuidv4","i1.EzUITable","i1.EzUITableFilterService","i7","i2.EzUILayout"],"mappings":"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"}
1
+ {"version":3,"file":"kris701-ez-ui.mjs","sources":["../../../projects/ez-ui/src/components/booleaninput.ts","../../../projects/ez-ui/src/components/dateinput.ts","../../../projects/ez-ui/src/components/datetimeinput.ts","../../../projects/ez-ui/src/components/dialog.ts","../../../projects/ez-ui/src/components/fileinput.ts","../../../projects/ez-ui/src/constants/lucideicons.ts","../../../projects/ez-ui/src/components/textinput.ts","../../../projects/ez-ui/src/components/iconselector.ts","../../../projects/ez-ui/src/helpers/compressImage.ts","../../../projects/ez-ui/src/components/menubar.ts","../../../projects/ez-ui/src/components/markdowneditor.ts","../../../projects/ez-ui/src/components/multiselect.ts","../../../projects/ez-ui/src/components/numberinput.ts","../../../projects/ez-ui/src/components/passwordinput.ts","../../../projects/ez-ui/src/components/select.ts","../../../projects/ez-ui/src/components/showmoretext.ts","../../../projects/ez-ui/src/components/table/table.presets.ts","../../../projects/ez-ui/src/components/table/helpers/table.filterhelpers.ts","../../../projects/ez-ui/src/components/table/services/table.filterservice.ts","../../../projects/ez-ui/src/components/table/table.ts","../../../projects/ez-ui/src/components/table/filters/table.booleanfilter.ts","../../../projects/ez-ui/src/components/table/filters/table.datefilter.ts","../../../projects/ez-ui/src/components/table/filters/table.datetimefilter.ts","../../../projects/ez-ui/src/components/table/filters/table.numberfilter.ts","../../../projects/ez-ui/src/components/table/filters/table.selectfilter.ts","../../../projects/ez-ui/src/components/table/filters/table.textfilter.ts","../../../projects/ez-ui/src/components/table/sorts/table.sortable.ts","../../../projects/ez-ui/src/interfaces/baseCRUDInterface.ts","../../../projects/ez-ui/src/interfaces/baseListInterface.ts","../../../projects/ez-ui/src/layout/ezui.sidebar.item.ts","../../../projects/ez-ui/src/layout/services/ezui.layout.service.ts","../../../projects/ez-ui/src/layout/ezui.sidebar.ts","../../../projects/ez-ui/src/layout/ezui.topbar.ts","../../../projects/ez-ui/src/layout/ezui.layout.ts","../../../projects/ez-ui/public-api.ts","../../../projects/ez-ui/kris701-ez-ui.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiIcon } from '@taiga-ui/core';\nimport { TuiBlock, TuiSwitch } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-booleaninput',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiBlock,\n\t\tTuiSwitch,\n\t\tTuiIcon\n\t],\n template: `\n\t <label class=\"boolean-container\" [tuiBlock]=\"size\">\n\t\t\t@if(icon && icon != ''){\n\t\t\t\t<tui-icon [icon]=\"icon\" />\n\t\t\t}\n\t {{label}}\n\t\t\t<div style=\"flex-grow:1\"></div>\n\t <input\n\t size=\"s\"\n\t tuiSwitch\n\t type=\"checkbox\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[(ngModel)]=\"value\"\n\t\t\t\t(ngModelChange)=\"valueChange.emit(value)\"\n\t />\n\t </label>\n `,\n styles: `\n\t\t.boolean-container {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: row;\n\t\t\tgap:10px;\n\t\t\twidth:100%;\n\t\t\tbackground-color: var(--tui-background-neutral-1);\n\t\t}\n `\n})\nexport class EzUIBooleanInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n @Input() value: boolean | null = false;\n @Output() valueChange = new EventEmitter<boolean | null>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n }\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiDropdownSheet } from '@taiga-ui/addon-mobile';\nimport { TuiDay } from '@taiga-ui/cdk/date-time';\nimport { TuiInput } from '@taiga-ui/core';\nimport { TuiInputDate } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-dateinput',\n imports: [\n\t\tFormsModule,\n\t\tTuiInput,\n\t\tTuiInputDate,\n\t\tTuiDropdownSheet\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\" tuiDropdownSheet>\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInputDate [(ngModel)]=\"internalValue\" (ngModelChange)=\"updateValue()\" [disabled]=\"disabled\" [min]=\"toTuiDate(toDateOrNull(min))\" [max]=\"toTuiDate(toDateOrNull(max))\"/>\n\t\t\t<tui-calendar *tuiDropdown />\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUIDateInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n\t@Input() min : Date | string | null = null;\n\t@Input() max : Date | string | null = null;\n\n\tTuiDay = TuiDay;\n\n @Input() value: Date | string | null = new Date;\n @Output() valueChange = new EventEmitter<Date | string | null>();\n\n\tinternalValue = signal<TuiDay | null>(null);\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n\t\t\tthis.internalValue.set(this.toTuiDate(this.toDateOrNull(this.value)));\n }\n }\n\n\tupdateValue(){\n\t\tif (this.internalValue){\n\t\t\tthis.value = this.fromTuiDate(this.internalValue());\n\t\t\tthis.valueChange.emit(this.value);\n\t\t}\n\t}\n\n\ttoTuiDate(date : Date | null) : TuiDay | null {\n\t\tif (date)\n\t\t\treturn TuiDay.fromUtcNativeDate(date);\n\t\treturn null;\n\t}\n\n\tfromTuiDate(date : TuiDay | null) : Date | null{\n\t\tif(date){\n\t\t\treturn date.toUtcNativeDate();\n\t\t}\n\t\treturn null;\n\t}\n\n\ttoDateOrNull(value : Date | string | null) : Date | null {\n\t\tif (value) return new Date(value);\n\t\treturn null;\n\t}\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiDropdownSheet } from '@taiga-ui/addon-mobile';\nimport { TuiDay, TuiTime } from '@taiga-ui/cdk/date-time';\nimport { TuiButton, TuiInput } from '@taiga-ui/core';\nimport { TuiInputDateTime } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-datetimeinput',\n imports: [\n\t\tFormsModule,\n\t\tTuiInput,\n\t\tTuiInputDateTime,\n\t\tTuiButton,\n\t\tTuiDropdownSheet\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\" tuiDropdownSheet>>\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInputDateTime [(ngModel)]=\"internalValue\" (ngModelChange)=\"updateValue()\" [disabled]=\"disabled\" [min]=\"toTuiDateTime(toDateOrNull(min))\" [max]=\"toTuiDateTime(toDateOrNull(max))\"/>\n\t\t\t<section *tuiDropdown class=\"datetime-dropdown\">\n\t\t\t\t@let internal = internalValue();\n\t\t\t\t@if(showDate()){\n\t\t\t\t\t@if(internal && internal[1]){\n\t\t\t\t\t\t<button tuiButton iconStart=\"clock\" (click)=\"showDate.set(false)\" size=\"s\">Set Time</button>\n\t\t\t\t\t}\n\n\t\t\t\t\t<tui-calendar/>\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t<button tuiButton iconStart=\"calendar\" (click)=\"showDate.set(true)\" size=\"s\">Set Date</button>\n\n\t\t\t\t\t@if(internal && internal[1]){\n\t\t\t\t\t\t@let time = internal[1];\n\t\t\t\t\t\t<div class=\"timeselector\">\n\t\t\t\t\t\t\t<div class=\"selector\">\n\t\t\t\t\t\t\t\t<button tuiButton (click)=\"setHours(time.hours + 1)\" iconStart=\"plus\" size=\"l\"></button>\n\t\t\t\t\t\t\t\t<span>{{time.hours}}</span>\n\t\t\t\t\t\t\t\t<button tuiButton (click)=\"setHours(time.hours - 1)\" iconStart=\"minus\" size=\"l\"></button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"selector\">\n\t\t\t\t\t\t\t\t<button tuiButton (click)=\"setMinutes(time.minutes + 1)\" iconStart=\"plus\" size=\"l\"></button>\n\t\t\t\t\t\t\t\t<span>{{time.minutes}}</span>\n\t\t\t\t\t\t\t\t<button tuiButton (click)=\"setMinutes(time.minutes - 1)\" iconStart=\"minus\" size=\"l\"></button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</section>\n\t\t</tui-textfield>\n `,\n styles: `\n\t\t.datetime-dropdown {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: column;\n\n\t\t\t.timeselector {\n\t\t\t\tinline-size: 12rem;\n\t\t\t\tdisplay:flex;\n\t\t\t\tgap:10px;\n\t\t\t\tmargin-top:10px;\n\t\t\t\talign-self:center;\n\n\t\t\t\t.selector {\n\t\t\t\t\tdisplay:flex;\n\t\t\t\t\tflex-direction:column;\n\t\t\t\t\talign-self:center;\n\t\t\t\t\twidth: 100%;\n\n\t\t\t\t\tspan {\n\t\t\t\t\t\ttext-align:center;\n\t\t\t\t\t\tfont-size:40px;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUIDateTimeInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n\t@Input() min : Date | string | null = null;\n\t@Input() max : Date | string | null = null;\n\n\tTuiDay = TuiDay;\n\tTuiTime = TuiTime;\n\n\tshowDate = signal<boolean>(true);\n\n @Input() value: Date | string | null = new Date();\n @Output() valueChange = new EventEmitter<Date | string | null>();\n\n\tinternalValue = signal<[TuiDay, TuiTime] | null>(null);\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n\t\t\tthis.internalValue.set(this.toTuiDateTime(this.toDateOrNull(this.value)));\n\t\t\tconst internal = this.internalValue();\n\t\t\tif (!internal || !internal[1])\n\t\t\t\tthis.showDate.set(true);\n }\n }\n\n\tupdateValue(){\n\t\tif (this.internalValue){\n\t\t\tlet internal : [TuiDay, TuiTime] | null = this.internalValue()\n\t\t\tif (internal){\n\t\t\t\tif (!internal[1])\n\t\t\t\t{\n\t\t\t\t\tinternal[1] = new TuiTime(0,0);\n\t\t\t\t\tthis.internalValue.set(internal);\n\t\t\t\t}\n\t\t\t\tthis.value = this.fromTuiDateTime(this.internalValue());\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.value = null;\n\t\t\t}\n\t\t\tthis.valueChange.emit(this.value);\n\t\t}\n\t}\n\n\ttoTuiDateTime(date : Date | null) : [TuiDay, TuiTime] | null {\n\t\tif (date)\n\t\t\treturn [TuiDay.fromUtcNativeDate(date), TuiTime.fromLocalNativeDate(date)];\n\t\treturn null;\n\t}\n\n\tfromTuiDateTime(date : [TuiDay, TuiTime] | null) : Date | null{\n\t\tif(date){\n\t\t\tlet value = date[0].toUtcNativeDate();\n\t\t\tconst {hours = 0, minutes = 0} = date?.[1] ?? {};\n\t\t\tvalue.setHours(hours, minutes);\n\t\t\treturn value;\n\t\t}\n\t\treturn null;\n\t}\n\n\tsetHours(value : number){\n\t\tlet internal = this.internalValue();\n\t\tif(internal && internal[1]){\n\t\t\tif (value > 23)\n\t\t\t\tvalue = 0;\n\t\t\tif (value < 0)\n\t\t\t\tvalue = 23;\n\t\t\tinternal[1] = new TuiTime(value, internal[1].minutes)\n\t\t\tthis.internalValue.set(internal)\n\t\t\tthis.updateValue();\n\t\t}\n\t}\n\n\tsetMinutes(value : number){\n\t\tlet internal = this.internalValue();\n\t\tif(internal && internal[1]){\n\t\t\tif (value > 59)\n\t\t\t\tvalue = 0;\n\t\t\tif (value < 0)\n\t\t\t\tvalue = 59;\n\t\t\tinternal[1] = new TuiTime(internal[1].hours, value)\n\t\t\tthis.internalValue.set(internal)\n\t\t\tthis.updateValue();\n\t\t}\n\t}\n\n\ttoDateOrNull(value : Date | string | null) : Date | null {\n\t\tif (value) return new Date(value);\n\t\treturn null;\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, Output, signal, TemplateRef } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiDialog, TuiLoader, TuiTitle } from '@taiga-ui/core';\nimport { TuiHeader } from '@taiga-ui/layout';\nimport { EzUILayoutService } from '../../public-api';\n\n@Component({\n selector: 'ezui-dialog',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiHeader,\n\t\tTuiTitle,\n\t\tTuiLoader,\n\t\tTuiDialog,\n\t\tTuiButton\n\t],\n template: `\n\t\t<ng-template let-id=\"id\" [tuiDialogOptions]=\"{size: size, appearance: layoutService.isDesktop() ? 'taiga compact' : 'fullscreen'}\" [(tuiDialog)]=\"showDialog\">\n\t\t\t<header tuiHeader>\n\t\t\t\t<hgroup tuiTitle>\n\t\t\t\t\t<h2 [id]=\"id\">{{title}}</h2>\n\t\t\t\t</hgroup>\n\t\t\t</header>\n\n\t\t\t<tui-loader [overlay]=\"true\" [loading]=\"isLoading()\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n\t\t\t</tui-loader>\n\n\t\t\t@if(!isLoading() && (showSave || showDelete)){\n\t\t\t\t<footer class=\"dialog-footer\">\n\t\t\t\t\t@if(showSave){\n\t\t\t\t\t\t<button tuiButton iconStart=\"save\" size=\"s\" (click)=\"onSaveItem.emit()\">Save</button>\n\t\t\t\t\t}\n\t\t\t\t\t@if(showDelete){\n\t\t\t\t\t\t<button tuiButton iconStart=\"x\" size=\"s\" appearance=\"negative\" (click)=\"onDeleteItem.emit()\">Delete</button>\n\t\t\t\t\t}\n\t\t\t\t</footer>\n\t\t\t}\n\t\t</ng-template>\n `,\n styles: `\n\t\t.dialog-footer {\n\t\t\tdisplay:flex !important;\n\t\t\tflex-direction: row !important;\n\t\t\tgap: 5px !important;\n\t\t\tmargin-top:auto !important;\n\t\t\tmargin-block-start: auto !important;\n\t\t}\n `\n})\nexport class EzUIDialog {\n\t@ContentChild('content', { static: false }) public content: TemplateRef<any> | undefined;\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n\t@Input() title: string = '';\n\n\t@Input() isLoading = signal<boolean>(false);\n\t@Input() showDialog = signal<boolean>(false);\n\n\t@Input() showSave : boolean = false;\n\t@Input() showDelete : boolean = false;\n\n\t@Output() onSaveItem: EventEmitter<any> = new EventEmitter();\n\t@Output() onDeleteItem: EventEmitter<any> = new EventEmitter();\n\n\tconstructor(public layoutService : EzUILayoutService,){\n\n\t}\n}\n","import { Component, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiFiles } from '@taiga-ui/kit';\n\n@Component({\n\tselector: 'ezui-fileinput',\n imports: [FormsModule, TuiFiles],\n\ttemplate:`\n\t\t<label tuiInputFiles>\n\t\t\t<input\n\t\t\t\t#validator=\"tuiInputFilesValidator\"\n\t\t\t\taccept=\"*/*\"\n\t\t\t\ttuiInputFiles\n\t\t\t\t[ngModel]=\"files()\"\n\t\t\t\t(ngModelChange)=\"onChange($event)\"\n\t\t\t/>\n\t\t</label>\n\n\t\t<tui-files>\n\t\t\t@for(file of files(); track file){\n\t\t\t\t<tui-file\n\t\t\t\t\tstate=\"normal\"\n\t\t\t\t\t[file]=\"file\"\n\t\t\t\t\t(remove)=\"removeFile(file)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</tui-files>\n\t`\n})\nexport class EzUIFileInput {\n\tpublic files = signal<File[]>([]);\n\n\tpublic clear(){\n\t\tthis.files.set([]);\n\t}\n\n\tprotected onChange(files: File[] | File): void {\n\t\tif (files instanceof File)\n\t\t\tthis.files.set([files]);\n\t\telse\n\t\t\tthis.files.set(files);\n\t}\n\n\tremoveFile(file : File){\n\t\tconst files = this.files();\n\t\tconst index = files.indexOf(file);\n\t\tif (index != -1){\n\t\t\tfiles.splice(index, 1);\n\t\t\tthis.files.set(files);\n\t\t}\n\t}\n}\n","export const lucideicons : string[] = [\n\t'a-arrow-down',\n\t'a-arrow-up',\n\t'a-large-small',\n\t'accessibility',\n\t'activity',\n\t'ad',\n\t'air-vent',\n\t'airplay',\n\t'alarm-clock-check',\n\t'alarm-clock-minus',\n\t'alarm-clock-off',\n\t'alarm-clock-plus',\n\t'alarm-clock',\n\t'alarm-smoke',\n\t'album',\n\t'align-center-horizontal',\n\t'align-center-vertical',\n\t'align-end-horizontal',\n\t'align-end-vertical',\n\t'align-horizontal-distribute-center',\n\t'align-horizontal-distribute-end',\n\t'align-horizontal-distribute-start',\n\t'align-horizontal-justify-center',\n\t'align-horizontal-justify-end',\n\t'align-horizontal-justify-start',\n\t'align-horizontal-space-around',\n\t'align-horizontal-space-between',\n\t'align-start-horizontal',\n\t'align-start-vertical',\n\t'align-vertical-distribute-center',\n\t'align-vertical-distribute-end',\n\t'align-vertical-distribute-start',\n\t'align-vertical-justify-center',\n\t'align-vertical-justify-end',\n\t'align-vertical-justify-start',\n\t'align-vertical-space-around',\n\t'align-vertical-space-between',\n\t'ambulance',\n\t'ampersand',\n\t'ampersands',\n\t'amphora',\n\t'anchor',\n\t'angry',\n\t'annoyed',\n\t'antenna',\n\t'anvil',\n\t'aperture',\n\t'app-window-mac',\n\t'app-window',\n\t'apple',\n\t'archive-restore',\n\t'archive-x',\n\t'archive',\n\t'armchair',\n\t'arrow-big-down-dash',\n\t'arrow-big-down',\n\t'arrow-big-left-dash',\n\t'arrow-big-left',\n\t'arrow-big-right-dash',\n\t'arrow-big-right',\n\t'arrow-big-up-dash',\n\t'arrow-big-up',\n\t'arrow-down-0-1',\n\t'arrow-down-1-0',\n\t'arrow-down-a-z',\n\t'arrow-down-from-line',\n\t'arrow-down-left',\n\t'arrow-down-narrow-wide',\n\t'arrow-down-right',\n\t'arrow-down-to-dot',\n\t'arrow-down-to-line',\n\t'arrow-down-up',\n\t'arrow-down-wide-narrow',\n\t'arrow-down-z-a',\n\t'arrow-down',\n\t'arrow-left-from-line',\n\t'arrow-left-right',\n\t'arrow-left-to-line',\n\t'arrow-left',\n\t'arrow-right-from-line',\n\t'arrow-right-left',\n\t'arrow-right-to-line',\n\t'arrow-right',\n\t'arrow-up-0-1',\n\t'arrow-up-1-0',\n\t'arrow-up-a-z',\n\t'arrow-up-down',\n\t'arrow-up-from-dot',\n\t'arrow-up-from-line',\n\t'arrow-up-left',\n\t'arrow-up-narrow-wide',\n\t'arrow-up-right',\n\t'arrow-up-to-line',\n\t'arrow-up-wide-narrow',\n\t'arrow-up-z-a',\n\t'arrow-up',\n\t'arrows-up-from-line',\n\t'asterisk',\n\t'astroid',\n\t'at-sign',\n\t'atom',\n\t'audio-lines',\n\t'audio-waveform',\n\t'award',\n\t'axe',\n\t'axis-3d',\n\t'baby',\n\t'backpack',\n\t'badge-alert',\n\t'badge-cent',\n\t'badge-check',\n\t'badge-dollar-sign',\n\t'badge-euro',\n\t'badge-indian-rupee',\n\t'badge-info',\n\t'badge-japanese-yen',\n\t'badge-minus',\n\t'badge-percent',\n\t'badge-plus',\n\t'badge-pound-sterling',\n\t'badge-question-mark',\n\t'badge-russian-ruble',\n\t'badge-swiss-franc',\n\t'badge-turkish-lira',\n\t'badge-x',\n\t'badge',\n\t'baggage-claim',\n\t'balloon',\n\t'ban',\n\t'banana',\n\t'bandage',\n\t'banknote-arrow-down',\n\t'banknote-arrow-up',\n\t'banknote-check',\n\t'banknote-x',\n\t'banknote',\n\t'barcode',\n\t'barrel',\n\t'baseline',\n\t'bath',\n\t'battery-charging',\n\t'battery-full',\n\t'battery-low',\n\t'battery-medium',\n\t'battery-plus',\n\t'battery-warning',\n\t'battery',\n\t'beaker',\n\t'bean-off',\n\t'bean',\n\t'bed-double',\n\t'bed-single',\n\t'bed',\n\t'beef-off',\n\t'beef',\n\t'beer-off',\n\t'beer',\n\t'bell-check',\n\t'bell-dot',\n\t'bell-electric',\n\t'bell-minus',\n\t'bell-off',\n\t'bell-plus',\n\t'bell-ring',\n\t'bell',\n\t'between-horizontal-end',\n\t'between-horizontal-start',\n\t'between-vertical-end',\n\t'between-vertical-start',\n\t'biceps-flexed',\n\t'bike',\n\t'binary',\n\t'binoculars',\n\t'biohazard',\n\t'bird',\n\t'birdhouse',\n\t'bitcoin',\n\t'blend',\n\t'blender',\n\t'blinds',\n\t'blocks',\n\t'bluetooth-connected',\n\t'bluetooth-off',\n\t'bluetooth-searching',\n\t'bluetooth',\n\t'bold',\n\t'bolt',\n\t'bomb',\n\t'bone-fracture',\n\t'bone',\n\t'book-a',\n\t'book-alert',\n\t'book-audio',\n\t'book-check',\n\t'book-copy',\n\t'book-dashed',\n\t'book-down',\n\t'book-headphones',\n\t'book-heart',\n\t'book-image',\n\t'book-key',\n\t'book-lock',\n\t'book-marked',\n\t'book-minus',\n\t'book-open-check',\n\t'book-open-text',\n\t'book-open',\n\t'book-plus',\n\t'book-search',\n\t'book-text',\n\t'book-type',\n\t'book-up-2',\n\t'book-up',\n\t'book-user',\n\t'book-x',\n\t'book',\n\t'bookmark-check',\n\t'bookmark-minus',\n\t'bookmark-off',\n\t'bookmark-plus',\n\t'bookmark-x',\n\t'bookmark',\n\t'boom-box',\n\t'bot-message-square',\n\t'bot-off',\n\t'bot',\n\t'bottle-wine',\n\t'bow-arrow',\n\t'box',\n\t'boxes',\n\t'braces',\n\t'brackets',\n\t'brain-circuit',\n\t'brain-cog',\n\t'brain',\n\t'brick-wall-fire',\n\t'brick-wall-shield',\n\t'brick-wall',\n\t'briefcase-business',\n\t'briefcase-conveyor-belt',\n\t'briefcase-medical',\n\t'briefcase',\n\t'bring-to-front',\n\t'broccoli',\n\t'brush-cleaning',\n\t'brush',\n\t'bubbles',\n\t'bug-off',\n\t'bug-play',\n\t'bug',\n\t'building-2',\n\t'building',\n\t'bus-front',\n\t'bus',\n\t'cable-car',\n\t'cable',\n\t'cake-slice',\n\t'cake',\n\t'calculator',\n\t'calendar-1',\n\t'calendar-arrow-down',\n\t'calendar-arrow-up',\n\t'calendar-check-2',\n\t'calendar-check',\n\t'calendar-clock',\n\t'calendar-cog',\n\t'calendar-days',\n\t'calendar-fold',\n\t'calendar-heart',\n\t'calendar-minus-2',\n\t'calendar-minus',\n\t'calendar-off',\n\t'calendar-plus-2',\n\t'calendar-plus',\n\t'calendar-range',\n\t'calendar-search',\n\t'calendar-sync',\n\t'calendar-x-2',\n\t'calendar-x',\n\t'calendar',\n\t'calendars',\n\t'camera-off',\n\t'camera',\n\t'candy-cane',\n\t'candy-off',\n\t'candy',\n\t'cannabis-off',\n\t'cannabis',\n\t'captions-off',\n\t'captions',\n\t'car-front',\n\t'car-taxi-front',\n\t'car',\n\t'caravan',\n\t'card-sim',\n\t'carrot',\n\t'case-lower',\n\t'case-sensitive',\n\t'case-upper',\n\t'cassette-tape',\n\t'cast',\n\t'castle',\n\t'cat',\n\t'cctv-off',\n\t'cctv',\n\t'chart-area',\n\t'chart-bar-big',\n\t'chart-bar-decreasing',\n\t'chart-bar-increasing',\n\t'chart-bar-stacked',\n\t'chart-bar',\n\t'chart-candlestick',\n\t'chart-column-big',\n\t'chart-column-decreasing',\n\t'chart-column-increasing',\n\t'chart-column-stacked',\n\t'chart-column',\n\t'chart-gantt',\n\t'chart-line',\n\t'chart-network',\n\t'chart-no-axes-column-decreasing',\n\t'chart-no-axes-column-increasing',\n\t'chart-no-axes-column',\n\t'chart-no-axes-combined',\n\t'chart-no-axes-gantt',\n\t'chart-pie',\n\t'chart-scatter',\n\t'chart-spline',\n\t'check-check',\n\t'check-line',\n\t'check',\n\t'chef-hat',\n\t'cherry',\n\t'chess-bishop',\n\t'chess-king',\n\t'chess-knight',\n\t'chess-pawn',\n\t'chess-queen',\n\t'chess-rook',\n\t'chevron-down',\n\t'chevron-first',\n\t'chevron-last',\n\t'chevron-left',\n\t'chevron-right',\n\t'chevron-up',\n\t'chevrons-down-up',\n\t'chevrons-down',\n\t'chevrons-left-right-ellipsis',\n\t'chevrons-left-right',\n\t'chevrons-left',\n\t'chevrons-right-left',\n\t'chevrons-right',\n\t'chevrons-up-down',\n\t'chevrons-up',\n\t'church',\n\t'cigarette-off',\n\t'cigarette',\n\t'circle-alert',\n\t'circle-arrow-down',\n\t'circle-arrow-left',\n\t'circle-arrow-out-down-left',\n\t'circle-arrow-out-down-right',\n\t'circle-arrow-out-up-left',\n\t'circle-arrow-out-up-right',\n\t'circle-arrow-right',\n\t'circle-arrow-up',\n\t'circle-check-big',\n\t'circle-check',\n\t'circle-chevron-down',\n\t'circle-chevron-left',\n\t'circle-chevron-right',\n\t'circle-chevron-up',\n\t'circle-dashed',\n\t'circle-divide',\n\t'circle-dollar-sign',\n\t'circle-dot-dashed',\n\t'circle-dot',\n\t'circle-ellipsis',\n\t'circle-equal',\n\t'circle-euro',\n\t'circle-fading-arrow-up',\n\t'circle-fading-plus',\n\t'circle-gauge',\n\t'circle-minus',\n\t'circle-off',\n\t'circle-parking-off',\n\t'circle-parking',\n\t'circle-pause',\n\t'circle-percent',\n\t'circle-pile',\n\t'circle-play',\n\t'circle-plus',\n\t'circle-pound-sterling',\n\t'circle-power',\n\t'circle-question-mark',\n\t'circle-slash-2',\n\t'circle-slash',\n\t'circle-small',\n\t'circle-star',\n\t'circle-stop',\n\t'circle-user-round',\n\t'circle-user',\n\t'circle-x',\n\t'circle',\n\t'circuit-board',\n\t'citrus',\n\t'clapperboard',\n\t'clipboard-check',\n\t'clipboard-clock',\n\t'clipboard-copy',\n\t'clipboard-list',\n\t'clipboard-minus',\n\t'clipboard-paste',\n\t'clipboard-pen-line',\n\t'clipboard-pen',\n\t'clipboard-plus',\n\t'clipboard-type',\n\t'clipboard-x',\n\t'clipboard',\n\t'clock-1',\n\t'clock-10',\n\t'clock-11',\n\t'clock-12',\n\t'clock-2',\n\t'clock-3',\n\t'clock-4',\n\t'clock-5',\n\t'clock-6',\n\t'clock-7',\n\t'clock-8',\n\t'clock-9',\n\t'clock-alert',\n\t'clock-arrow-down',\n\t'clock-arrow-left',\n\t'clock-arrow-right',\n\t'clock-arrow-up',\n\t'clock-check',\n\t'clock-fading',\n\t'clock-plus',\n\t'clock',\n\t'closed-caption',\n\t'cloud-alert',\n\t'cloud-backup',\n\t'cloud-check',\n\t'cloud-cog',\n\t'cloud-download',\n\t'cloud-drizzle',\n\t'cloud-fog',\n\t'cloud-hail',\n\t'cloud-lightning',\n\t'cloud-moon-rain',\n\t'cloud-moon',\n\t'cloud-off',\n\t'cloud-rain-wind',\n\t'cloud-rain',\n\t'cloud-snow',\n\t'cloud-sun-rain',\n\t'cloud-sun',\n\t'cloud-sync',\n\t'cloud-upload',\n\t'cloud',\n\t'cloudy',\n\t'clover',\n\t'club',\n\t'code-xml',\n\t'code',\n\t'coffee',\n\t'cog',\n\t'coins',\n\t'columns-2',\n\t'columns-3-cog',\n\t'columns-3',\n\t'columns-4',\n\t'combine',\n\t'command',\n\t'compass',\n\t'component',\n\t'computer',\n\t'concierge-bell',\n\t'cone',\n\t'construction',\n\t'contact-round',\n\t'contact',\n\t'container',\n\t'contrast',\n\t'cookie',\n\t'cooking-pot',\n\t'copy-check',\n\t'copy-minus',\n\t'copy-plus',\n\t'copy-slash',\n\t'copy-x',\n\t'copy',\n\t'copyleft',\n\t'copyright',\n\t'corner-down-left',\n\t'corner-down-right',\n\t'corner-left-down',\n\t'corner-left-up',\n\t'corner-right-down',\n\t'corner-right-up',\n\t'corner-up-left',\n\t'corner-up-right',\n\t'cpu',\n\t'creative-commons',\n\t'credit-card',\n\t'croissant',\n\t'crop',\n\t'cross',\n\t'crosshair',\n\t'crown',\n\t'cuboid',\n\t'cup-soda',\n\t'currency',\n\t'cylinder',\n\t'dam',\n\t'database-arrow-down',\n\t'database-arrow-up',\n\t'database-backup',\n\t'database-check',\n\t'database-minus',\n\t'database-plus',\n\t'database-search',\n\t'database-x',\n\t'database-zap',\n\t'database',\n\t'decimals-arrow-left',\n\t'decimals-arrow-right',\n\t'delete',\n\t'dessert',\n\t'diameter',\n\t'diamond-minus',\n\t'diamond-percent',\n\t'diamond-plus',\n\t'diamond',\n\t'dice-1',\n\t'dice-2',\n\t'dice-3',\n\t'dice-4',\n\t'dice-5',\n\t'dice-6',\n\t'dices',\n\t'diff',\n\t'disc-2',\n\t'disc-3',\n\t'disc-album',\n\t'disc',\n\t'divide',\n\t'dna-off',\n\t'dna',\n\t'dock',\n\t'dog',\n\t'dollar-sign',\n\t'donut',\n\t'door-closed-locked',\n\t'door-closed',\n\t'door-open',\n\t'dot',\n\t'download',\n\t'drafting-compass',\n\t'drama',\n\t'drill',\n\t'drone',\n\t'droplet-off',\n\t'droplet',\n\t'droplets',\n\t'drum',\n\t'drumstick',\n\t'dumbbell',\n\t'ear-off',\n\t'ear',\n\t'earth-lock',\n\t'earth',\n\t'eclipse',\n\t'egg-fried',\n\t'egg-off',\n\t'egg',\n\t'ellipse',\n\t'ellipsis-vertical',\n\t'ellipsis',\n\t'equal-approximately',\n\t'equal-not',\n\t'equal',\n\t'eraser',\n\t'ethernet-port',\n\t'euro',\n\t'ev-charger',\n\t'expand',\n\t'external-link',\n\t'eye-closed',\n\t'eye-dashed',\n\t'eye-off',\n\t'eye',\n\t'factory',\n\t'fan',\n\t'fast-forward',\n\t'feather',\n\t'fence',\n\t'ferris-wheel',\n\t'file-archive',\n\t'file-axis-3d',\n\t'file-badge',\n\t'file-box',\n\t'file-braces-corner',\n\t'file-braces',\n\t'file-chart-column-increasing',\n\t'file-chart-column',\n\t'file-chart-line',\n\t'file-chart-pie',\n\t'file-check-corner',\n\t'file-check',\n\t'file-clock',\n\t'file-code-corner',\n\t'file-code',\n\t'file-cog',\n\t'file-diff',\n\t'file-digit',\n\t'file-down',\n\t'file-exclamation-point',\n\t'file-headphone',\n\t'file-heart',\n\t'file-image',\n\t'file-input',\n\t'file-key',\n\t'file-lock',\n\t'file-minus-corner',\n\t'file-minus',\n\t'file-music',\n\t'file-output',\n\t'file-pen-line',\n\t'file-pen',\n\t'file-play',\n\t'file-plus-corner',\n\t'file-plus',\n\t'file-question-mark',\n\t'file-scan',\n\t'file-search-corner',\n\t'file-search',\n\t'file-signal',\n\t'file-sliders',\n\t'file-spreadsheet',\n\t'file-stack',\n\t'file-symlink',\n\t'file-terminal',\n\t'file-text',\n\t'file-type-corner',\n\t'file-type',\n\t'file-up',\n\t'file-user',\n\t'file-video-camera',\n\t'file-volume',\n\t'file-x-corner',\n\t'file-x',\n\t'file',\n\t'files',\n\t'film',\n\t'fingerprint-pattern',\n\t'fire-extinguisher',\n\t'fish-off',\n\t'fish-symbol',\n\t'fish',\n\t'fishing-hook',\n\t'fishing-rod',\n\t'flag-off',\n\t'flag-triangle-left',\n\t'flag-triangle-right',\n\t'flag',\n\t'flame-kindling',\n\t'flame',\n\t'flashlight-off',\n\t'flashlight',\n\t'flask-conical-off',\n\t'flask-conical',\n\t'flask-round',\n\t'flip-horizontal-2',\n\t'flip-vertical-2',\n\t'flower-2',\n\t'flower',\n\t'focus',\n\t'fold-horizontal',\n\t'fold-vertical',\n\t'folder-archive',\n\t'folder-bookmark',\n\t'folder-check',\n\t'folder-clock',\n\t'folder-closed',\n\t'folder-code',\n\t'folder-cog',\n\t'folder-dot',\n\t'folder-down',\n\t'folder-git-2',\n\t'folder-git',\n\t'folder-heart',\n\t'folder-input',\n\t'folder-kanban',\n\t'folder-key',\n\t'folder-lock',\n\t'folder-minus',\n\t'folder-open-dot',\n\t'folder-open',\n\t'folder-output',\n\t'folder-pen',\n\t'folder-plus',\n\t'folder-root',\n\t'folder-search-2',\n\t'folder-search',\n\t'folder-symlink',\n\t'folder-sync',\n\t'folder-tree',\n\t'folder-up',\n\t'folder-x',\n\t'folder',\n\t'folders',\n\t'footprints',\n\t'forklift',\n\t'form',\n\t'forward',\n\t'frame',\n\t'frown',\n\t'fuel',\n\t'fullscreen',\n\t'funnel-plus',\n\t'funnel-x',\n\t'funnel',\n\t'gallery-horizontal-end',\n\t'gallery-horizontal',\n\t'gallery-thumbnails',\n\t'gallery-vertical-end',\n\t'gallery-vertical',\n\t'gamepad-2',\n\t'gamepad-directional',\n\t'gamepad',\n\t'gauge',\n\t'gavel',\n\t'gem',\n\t'georgian-lari',\n\t'ghost',\n\t'gift',\n\t'git-branch-minus',\n\t'git-branch-plus',\n\t'git-branch',\n\t'git-commit-horizontal',\n\t'git-commit-vertical',\n\t'git-compare-arrows',\n\t'git-compare',\n\t'git-fork',\n\t'git-graph',\n\t'git-merge-conflict',\n\t'git-merge',\n\t'git-pull-request-arrow',\n\t'git-pull-request-closed',\n\t'git-pull-request-create-arrow',\n\t'git-pull-request-create',\n\t'git-pull-request-draft',\n\t'git-pull-request',\n\t'glass-water',\n\t'glasses',\n\t'globe-check',\n\t'globe-lock',\n\t'globe-off',\n\t'globe-x',\n\t'globe',\n\t'goal',\n\t'gpu',\n\t'graduation-cap',\n\t'grape',\n\t'grid-2x2-check',\n\t'grid-2x2-plus',\n\t'grid-2x2-x',\n\t'grid-2x2',\n\t'grid-3x2',\n\t'grid-3x3',\n\t'grip-horizontal',\n\t'grip-vertical',\n\t'grip',\n\t'group',\n\t'guitar',\n\t'ham',\n\t'hamburger',\n\t'hammer',\n\t'hand-coins',\n\t'hand-fist',\n\t'hand-grab',\n\t'hand-heart',\n\t'hand-helping',\n\t'hand-metal',\n\t'hand-platter',\n\t'hand',\n\t'handbag',\n\t'handshake',\n\t'hard-drive-download',\n\t'hard-drive-upload',\n\t'hard-drive',\n\t'hard-hat',\n\t'hash',\n\t'hat-glasses',\n\t'haze',\n\t'hd',\n\t'hdmi-port',\n\t'heading-1',\n\t'heading-2',\n\t'heading-3',\n\t'heading-4',\n\t'heading-5',\n\t'heading-6',\n\t'heading',\n\t'headphone-off',\n\t'headphones',\n\t'headset',\n\t'heart-crack',\n\t'heart-handshake',\n\t'heart-minus',\n\t'heart-off',\n\t'heart-plus',\n\t'heart-pulse',\n\t'heart-x',\n\t'heart',\n\t'heater',\n\t'helicopter',\n\t'hexagon',\n\t'highlighter',\n\t'history',\n\t'hop-off',\n\t'hop',\n\t'hospital',\n\t'hotel',\n\t'hourglass',\n\t'house-heart',\n\t'house-plug',\n\t'house-plus',\n\t'house-wifi',\n\t'house',\n\t'ice-cream-bowl',\n\t'ice-cream-cone',\n\t'id-card-lanyard',\n\t'id-card',\n\t'image-down',\n\t'image-minus',\n\t'image-off',\n\t'image-play',\n\t'image-plus',\n\t'image-up',\n\t'image-upscale',\n\t'image',\n\t'images',\n\t'import',\n\t'inbox',\n\t'indian-rupee',\n\t'infinity',\n\t'info',\n\t'inspection-panel',\n\t'italic',\n\t'iteration-ccw',\n\t'iteration-cw',\n\t'japanese-yen',\n\t'joystick',\n\t'kanban',\n\t'kayak',\n\t'key-round',\n\t'key-square',\n\t'key',\n\t'keyboard-music',\n\t'keyboard-off',\n\t'keyboard',\n\t'lamp-ceiling',\n\t'lamp-desk',\n\t'lamp-floor',\n\t'lamp-wall-down',\n\t'lamp-wall-up',\n\t'lamp',\n\t'land-plot',\n\t'landmark',\n\t'languages',\n\t'laptop-minimal-check',\n\t'laptop-minimal',\n\t'laptop',\n\t'lasso-select',\n\t'lasso',\n\t'laugh',\n\t'layers-2',\n\t'layers-minus',\n\t'layers-plus',\n\t'layers',\n\t'layout-dashboard',\n\t'layout-grid',\n\t'layout-list',\n\t'layout-panel-left',\n\t'layout-panel-top',\n\t'layout-template',\n\t'leaf',\n\t'leafy-green',\n\t'lectern',\n\t'lens-concave',\n\t'lens-convex',\n\t'library-big',\n\t'library',\n\t'life-buoy',\n\t'ligature',\n\t'lightbulb-off',\n\t'lightbulb',\n\t'line-dot-right-horizontal',\n\t'line-squiggle',\n\t'line-style',\n\t'link-2-off',\n\t'link-2',\n\t'link',\n\t'list-check',\n\t'list-checks',\n\t'list-chevrons-down-up',\n\t'list-chevrons-up-down',\n\t'list-collapse',\n\t'list-end',\n\t'list-filter-plus',\n\t'list-filter',\n\t'list-indent-decrease',\n\t'list-indent-increase',\n\t'list-minus',\n\t'list-music',\n\t'list-ordered',\n\t'list-plus',\n\t'list-restart',\n\t'list-sort-ascending',\n\t'list-sort-descending',\n\t'list-start',\n\t'list-todo',\n\t'list-tree',\n\t'list-video',\n\t'list-x',\n\t'list',\n\t'loader-circle',\n\t'loader-pinwheel',\n\t'loader',\n\t'locate-fixed',\n\t'locate-off',\n\t'locate',\n\t'lock-keyhole-open',\n\t'lock-keyhole',\n\t'lock-open',\n\t'lock',\n\t'log-in',\n\t'log-out',\n\t'logs',\n\t'lollipop',\n\t'luggage',\n\t'magnet',\n\t'mail-check',\n\t'mail-minus',\n\t'mail-open',\n\t'mail-plus',\n\t'mail-question-mark',\n\t'mail-search',\n\t'mail-warning',\n\t'mail-x',\n\t'mail',\n\t'mailbox',\n\t'mails',\n\t'map-minus',\n\t'map-pin-check-inside',\n\t'map-pin-check',\n\t'map-pin-house',\n\t'map-pin-minus-inside',\n\t'map-pin-minus',\n\t'map-pin-off',\n\t'map-pin-pen',\n\t'map-pin-plus-inside',\n\t'map-pin-plus',\n\t'map-pin-search',\n\t'map-pin-x-inside',\n\t'map-pin-x',\n\t'map-pin',\n\t'map-pinned',\n\t'map-plus',\n\t'map',\n\t'mars-stroke',\n\t'mars',\n\t'martini',\n\t'maximize-2',\n\t'maximize',\n\t'medal',\n\t'megaphone-off',\n\t'megaphone',\n\t'meh',\n\t'memory-stick',\n\t'menu',\n\t'merge',\n\t'message-circle-check',\n\t'message-circle-code',\n\t'message-circle-dashed',\n\t'message-circle-heart',\n\t'message-circle-more',\n\t'message-circle-off',\n\t'message-circle-plus',\n\t'message-circle-question-mark',\n\t'message-circle-reply',\n\t'message-circle-warning',\n\t'message-circle-x',\n\t'message-circle',\n\t'message-square-check',\n\t'message-square-code',\n\t'message-square-dashed',\n\t'message-square-diff',\n\t'message-square-dot',\n\t'message-square-heart',\n\t'message-square-lock',\n\t'message-square-more',\n\t'message-square-off',\n\t'message-square-plus',\n\t'message-square-quote',\n\t'message-square-reply',\n\t'message-square-share',\n\t'message-square-text',\n\t'message-square-warning',\n\t'message-square-x',\n\t'message-square',\n\t'messages-square',\n\t'metronome',\n\t'mic-off',\n\t'mic-vocal',\n\t'mic',\n\t'microchip',\n\t'microscope',\n\t'microwave',\n\t'milestone',\n\t'milk-off',\n\t'milk',\n\t'minimize-2',\n\t'minimize',\n\t'minus',\n\t'mirror-rectangular',\n\t'mirror-round',\n\t'monitor-check',\n\t'monitor-cloud',\n\t'monitor-cog',\n\t'monitor-dot',\n\t'monitor-down',\n\t'monitor-off',\n\t'monitor-pause',\n\t'monitor-play',\n\t'monitor-smartphone',\n\t'monitor-speaker',\n\t'monitor-stop',\n\t'monitor-up',\n\t'monitor-x',\n\t'monitor',\n\t'moon-star',\n\t'moon',\n\t'motorbike',\n\t'mountain-snow',\n\t'mountain',\n\t'mouse-left',\n\t'mouse-off',\n\t'mouse-pointer-2-off',\n\t'mouse-pointer-2',\n\t'mouse-pointer-ban',\n\t'mouse-pointer-click',\n\t'mouse-pointer',\n\t'mouse-right',\n\t'mouse',\n\t'move-3d',\n\t'move-diagonal-2',\n\t'move-diagonal',\n\t'move-down-left',\n\t'move-down-right',\n\t'move-down',\n\t'move-horizontal',\n\t'move-left',\n\t'move-right',\n\t'move-up-left',\n\t'move-up-right',\n\t'move-up',\n\t'move-vertical',\n\t'move',\n\t'music-2',\n\t'music-3',\n\t'music-4',\n\t'music',\n\t'navigation-2-off',\n\t'navigation-2',\n\t'navigation-off',\n\t'navigation',\n\t'network',\n\t'newspaper',\n\t'nfc',\n\t'non-binary',\n\t'notebook-pen',\n\t'notebook-tabs',\n\t'notebook-text',\n\t'notebook',\n\t'notepad-text-dashed',\n\t'notepad-text',\n\t'nut-off',\n\t'nut',\n\t'octagon-alert',\n\t'octagon-minus',\n\t'octagon-pause',\n\t'octagon-x',\n\t'octagon',\n\t'omega',\n\t'option',\n\t'orbit',\n\t'origami',\n\t'package-2',\n\t'package-check',\n\t'package-minus',\n\t'package-open',\n\t'package-plus',\n\t'package-search',\n\t'package-x',\n\t'package',\n\t'paint-bucket',\n\t'paint-roller',\n\t'paintbrush-vertical',\n\t'paintbrush',\n\t'palette',\n\t'panda',\n\t'panel-bottom-close',\n\t'panel-bottom-dashed',\n\t'panel-bottom-open',\n\t'panel-bottom',\n\t'panel-left-close',\n\t'panel-left-dashed',\n\t'panel-left-open',\n\t'panel-left-right-dashed',\n\t'panel-left',\n\t'panel-right-close',\n\t'panel-right-dashed',\n\t'panel-right-open',\n\t'panel-right',\n\t'panel-top-bottom-dashed',\n\t'panel-top-close',\n\t'panel-top-dashed',\n\t'panel-top-open',\n\t'panel-top',\n\t'panels-left-bottom',\n\t'panels-right-bottom',\n\t'panels-top-left',\n\t'paper-bag',\n\t'paperclip',\n\t'parasol',\n\t'parentheses',\n\t'parking-meter',\n\t'party-popper',\n\t'pause',\n\t'paw-print',\n\t'pc-case',\n\t'pen-line',\n\t'pen-off',\n\t'pen-tool',\n\t'pen',\n\t'pencil-line',\n\t'pencil-off',\n\t'pencil-ruler',\n\t'pencil-sparkles',\n\t'pencil',\n\t'pentagon',\n\t'percent',\n\t'person-standing',\n\t'phi',\n\t'philippine-peso',\n\t'phone-call',\n\t'phone-forwarded',\n\t'phone-incoming',\n\t'phone-missed',\n\t'phone-off',\n\t'phone-outgoing',\n\t'phone',\n\t'pi',\n\t'piano',\n\t'pickaxe',\n\t'picture-in-picture-2',\n\t'picture-in-picture',\n\t'piggy-bank',\n\t'pilcrow-left',\n\t'pilcrow-right',\n\t'pilcrow',\n\t'pill-bottle',\n\t'pill',\n\t'pin-off',\n\t'pin',\n\t'pipette',\n\t'pizza',\n\t'plane-landing',\n\t'plane-takeoff',\n\t'plane',\n\t'play-off',\n\t'play',\n\t'plug-2',\n\t'plug-zap',\n\t'plug',\n\t'plus',\n\t'pocket-knife',\n\t'podcast',\n\t'podium',\n\t'pointer-off',\n\t'pointer',\n\t'popcorn',\n\t'popsicle',\n\t'pound-sterling',\n\t'power-off',\n\t'power',\n\t'presentation',\n\t'printer-check',\n\t'printer-x',\n\t'printer',\n\t'projector',\n\t'proportions',\n\t'puzzle',\n\t'pyramid',\n\t'qr-code',\n\t'quote',\n\t'rabbit',\n\t'radar',\n\t'radiation',\n\t'radical',\n\t'radio-off',\n\t'radio-receiver',\n\t'radio-tower',\n\t'radio',\n\t'radius',\n\t'rainbow',\n\t'rat',\n\t'ratio',\n\t'receipt-cent',\n\t'receipt-euro',\n\t'receipt-indian-rupee',\n\t'receipt-japanese-yen',\n\t'receipt-pound-sterling',\n\t'receipt-russian-ruble',\n\t'receipt-swiss-franc',\n\t'receipt-text',\n\t'receipt-turkish-lira',\n\t'receipt',\n\t'rectangle-circle',\n\t'rectangle-ellipsis',\n\t'rectangle-goggles',\n\t'rectangle-horizontal',\n\t'rectangle-vertical',\n\t'recycle',\n\t'redo-2',\n\t'redo-dot',\n\t'redo',\n\t'refresh-ccw-dot',\n\t'refresh-ccw',\n\t'refresh-cw-off',\n\t'refresh-cw',\n\t'refrigerator',\n\t'regex',\n\t'remove-formatting',\n\t'repeat-1',\n\t'repeat-2',\n\t'repeat-off',\n\t'repeat',\n\t'replace-all',\n\t'replace',\n\t'reply-all',\n\t'reply',\n\t'rewind',\n\t'ribbon',\n\t'road',\n\t'rocket',\n\t'rocking-chair',\n\t'roller-coaster',\n\t'rose',\n\t'rotate-3d',\n\t'rotate-ccw-key',\n\t'rotate-ccw-square',\n\t'rotate-ccw',\n\t'rotate-cw-square',\n\t'rotate-cw',\n\t'route-off',\n\t'route',\n\t'router',\n\t'rows-2',\n\t'rows-3',\n\t'rows-4',\n\t'rss',\n\t'ruler-dimension-line',\n\t'ruler',\n\t'russian-ruble',\n\t'sailboat',\n\t'salad',\n\t'sandwich',\n\t'satellite-dish',\n\t'satellite',\n\t'saudi-riyal',\n\t'save-all',\n\t'save-check',\n\t'save-off',\n\t'save-pen',\n\t'save-plus',\n\t'save',\n\t'scale-3d',\n\t'scale',\n\t'scaling',\n\t'scan-barcode',\n\t'scan-box',\n\t'scan-eye',\n\t'scan-face',\n\t'scan-heart',\n\t'scan-line',\n\t'scan-qr-code',\n\t'scan-search',\n\t'scan-text',\n\t'scan',\n\t'school',\n\t'scissors-line-dashed',\n\t'scissors',\n\t'scooter',\n\t'screen-share-off',\n\t'screen-share',\n\t'scroll-text',\n\t'scroll',\n\t'search-alert',\n\t'search-check',\n\t'search-code',\n\t'search-slash',\n\t'search-x',\n\t'search',\n\t'section',\n\t'send-horizontal',\n\t'send-to-back',\n\t'send',\n\t'separator-horizontal',\n\t'separator-vertical',\n\t'server-cog',\n\t'server-crash',\n\t'server-off',\n\t'server',\n\t'settings-2',\n\t'settings',\n\t'shapes',\n\t'share-2',\n\t'share',\n\t'sheet',\n\t'shell',\n\t'shelving-unit',\n\t'shield-alert',\n\t'shield-ban',\n\t'shield-check',\n\t'shield-cog-corner',\n\t'shield-cog',\n\t'shield-ellipsis',\n\t'shield-half',\n\t'shield-minus',\n\t'shield-off',\n\t'shield-plus',\n\t'shield-question-mark',\n\t'shield-user',\n\t'shield-x',\n\t'shield',\n\t'ship-wheel',\n\t'ship',\n\t'shirt',\n\t'shopping-bag',\n\t'shopping-basket',\n\t'shopping-cart',\n\t'shovel',\n\t'shower-head',\n\t'shredder',\n\t'shrimp',\n\t'shrink',\n\t'shrub',\n\t'shuffle',\n\t'sigma',\n\t'signal-high',\n\t'signal-low',\n\t'signal-medium',\n\t'signal-zero',\n\t'signal',\n\t'signature',\n\t'signpost-big',\n\t'signpost',\n\t'siren',\n\t'skip-back',\n\t'skip-forward',\n\t'skull',\n\t'slash',\n\t'slice',\n\t'sliders-horizontal',\n\t'sliders-vertical',\n\t'smartphone-charging',\n\t'smartphone-nfc',\n\t'smartphone',\n\t'smile-plus',\n\t'smile',\n\t'snail',\n\t'snowflake',\n\t'soap-dispenser-droplet',\n\t'sofa',\n\t'solar-panel',\n\t'soup',\n\t'space',\n\t'spade',\n\t'sparkle',\n\t'sparkles',\n\t'speaker',\n\t'speech',\n\t'spell-check-2',\n\t'spell-check',\n\t'spline-pointer',\n\t'spline',\n\t'split',\n\t'spool',\n\t'sport-shoe',\n\t'spotlight',\n\t'spray-can',\n\t'sprout',\n\t'square-activity',\n\t'square-arrow-down-left',\n\t'square-arrow-down-right',\n\t'square-arrow-down',\n\t'square-arrow-left',\n\t'square-arrow-out-down-left',\n\t'square-arrow-out-down-right',\n\t'square-arrow-out-up-left',\n\t'square-arrow-out-up-right',\n\t'square-arrow-right-enter',\n\t'square-arrow-right-exit',\n\t'square-arrow-right',\n\t'square-arrow-up-left',\n\t'square-arrow-up-right',\n\t'square-arrow-up',\n\t'square-asterisk',\n\t'square-bottom-dashed-scissors',\n\t'square-centerline-dashed-horizontal',\n\t'square-centerline-dashed-vertical',\n\t'square-chart-gantt',\n\t'square-check-big',\n\t'square-check',\n\t'square-chevron-down',\n\t'square-chevron-left',\n\t'square-chevron-right',\n\t'square-chevron-up',\n\t'square-code',\n\t'square-dashed-bottom-code',\n\t'square-dashed-bottom',\n\t'square-dashed-kanban',\n\t'square-dashed-mouse-pointer',\n\t'square-dashed-text',\n\t'square-dashed-top-solid',\n\t'square-dashed',\n\t'square-divide',\n\t'square-dot',\n\t'square-equal',\n\t'square-function',\n\t'square-kanban',\n\t'square-library',\n\t'square-m',\n\t'square-menu',\n\t'square-minus',\n\t'square-mouse-pointer',\n\t'square-parking-off',\n\t'square-parking',\n\t'square-pause',\n\t'square-pen',\n\t'square-percent',\n\t'square-pi',\n\t'square-pilcrow',\n\t'square-play',\n\t'square-plus',\n\t'square-power',\n\t'square-radical',\n\t'square-round-corner',\n\t'square-scissors',\n\t'square-sigma',\n\t'square-slash',\n\t'square-split-horizontal',\n\t'square-split-vertical',\n\t'square-square',\n\t'square-stack',\n\t'square-star',\n\t'square-stop',\n\t'square-terminal',\n\t'square-user-round',\n\t'square-user',\n\t'square-x',\n\t'square',\n\t'squares-exclude',\n\t'squares-intersect',\n\t'squares-subtract',\n\t'squares-unite',\n\t'squircle-dashed',\n\t'squircle',\n\t'squirrel',\n\t'stamp',\n\t'star-check',\n\t'star-half',\n\t'star-minus',\n\t'star-off',\n\t'star-plus',\n\t'star-x',\n\t'star',\n\t'step-back',\n\t'step-forward',\n\t'stethoscope',\n\t'sticker',\n\t'sticky-note-check',\n\t'sticky-note-minus',\n\t'sticky-note-off',\n\t'sticky-note-plus',\n\t'sticky-note-x',\n\t'sticky-note',\n\t'sticky-notes',\n\t'stone',\n\t'store',\n\t'stretch-horizontal',\n\t'stretch-vertical',\n\t'strikethrough',\n\t'subscript',\n\t'summary',\n\t'sun-dim',\n\t'sun-medium',\n\t'sun-moon',\n\t'sun-snow',\n\t'sun',\n\t'sunrise',\n\t'sunset',\n\t'superscript',\n\t'swatch-book',\n\t'swiss-franc',\n\t'switch-camera',\n\t'sword',\n\t'swords',\n\t'syringe',\n\t'table-2',\n\t'table-cells-merge',\n\t'table-cells-split',\n\t'table-columns-split',\n\t'table-of-contents',\n\t'table-properties',\n\t'table-rows-split',\n\t'table',\n\t'tablet-smartphone',\n\t'tablet',\n\t'tablets',\n\t'tag-plus',\n\t'tag-x',\n\t'tag',\n\t'tags',\n\t'tally-1',\n\t'tally-2',\n\t'tally-3',\n\t'tally-4',\n\t'tally-5',\n\t'tangent',\n\t'target',\n\t'telescope',\n\t'tent-tree',\n\t'tent',\n\t'terminal',\n\t'test-tube-diagonal',\n\t'test-tube',\n\t'test-tubes',\n\t'text-align-center',\n\t'text-align-end',\n\t'text-align-justify',\n\t'text-align-start',\n\t'text-cursor-input',\n\t'text-cursor',\n\t'text-initial',\n\t'text-quote',\n\t'text-search',\n\t'text-wrap',\n\t'theater',\n\t'thermometer-snowflake',\n\t'thermometer-sun',\n\t'thermometer',\n\t'thumbs-down',\n\t'thumbs-up',\n\t'ticket-check',\n\t'ticket-minus',\n\t'ticket-percent',\n\t'ticket-plus',\n\t'ticket-slash',\n\t'ticket-x',\n\t'ticket',\n\t'tickets-plane',\n\t'tickets',\n\t'timeline',\n\t'timer-off',\n\t'timer-reset',\n\t'timer',\n\t'toggle-left',\n\t'toggle-right',\n\t'toilet',\n\t'tool-case',\n\t'toolbox',\n\t'tornado',\n\t'torus',\n\t'touchpad-off',\n\t'touchpad',\n\t'towel-rack',\n\t'tower-control',\n\t'toy-brick',\n\t'tractor',\n\t'traffic-cone',\n\t'train-front-tunnel',\n\t'train-front',\n\t'train-track',\n\t'tram-front',\n\t'transgender',\n\t'trash-2',\n\t'trash',\n\t'tree-deciduous',\n\t'tree-palm',\n\t'tree-pine',\n\t'trees',\n\t'trending-down',\n\t'trending-up-down',\n\t'trending-up',\n\t'triangle-alert',\n\t'triangle-dashed',\n\t'triangle-right',\n\t'triangle',\n\t'trophy',\n\t'truck-electric',\n\t'truck',\n\t'turkish-lira',\n\t'turntable',\n\t'turtle',\n\t'tv-minimal-play',\n\t'tv-minimal',\n\t'tv',\n\t'type-outline',\n\t'type',\n\t'umbrella-off',\n\t'umbrella',\n\t'underline',\n\t'undo-2',\n\t'undo-dot',\n\t'undo',\n\t'unfold-horizontal',\n\t'unfold-vertical',\n\t'ungroup',\n\t'university',\n\t'unlink-2',\n\t'unlink',\n\t'unplug',\n\t'upload',\n\t'usb',\n\t'user-check',\n\t'user-cog',\n\t'user-key',\n\t'user-lock',\n\t'user-minus',\n\t'user-pen',\n\t'user-plus',\n\t'user-round-arrow-left',\n\t'user-round-check',\n\t'user-round-cog',\n\t'user-round-key',\n\t'user-round-minus',\n\t'user-round-pen',\n\t'user-round-plus',\n\t'user-round-search',\n\t'user-round-x',\n\t'user-round',\n\t'user-search',\n\t'user-star',\n\t'user-x',\n\t'user',\n\t'users-round',\n\t'users',\n\t'utensils-crossed',\n\t'utensils',\n\t'utility-pole',\n\t'van',\n\t'variable',\n\t'vault',\n\t'vector-square',\n\t'vegan',\n\t'venetian-mask',\n\t'venus-and-mars',\n\t'venus',\n\t'vibrate-off',\n\t'vibrate',\n\t'video-off',\n\t'video',\n\t'videotape',\n\t'view',\n\t'voicemail',\n\t'volleyball',\n\t'volume-1',\n\t'volume-2',\n\t'volume-off',\n\t'volume-x',\n\t'volume',\n\t'vote',\n\t'wallet-cards',\n\t'wallet-minimal',\n\t'wallet',\n\t'wallpaper',\n\t'wand-sparkles',\n\t'wand',\n\t'warehouse',\n\t'washing-machine',\n\t'watch',\n\t'waves-arrow-down',\n\t'waves-arrow-up',\n\t'waves-horizontal',\n\t'waves-ladder',\n\t'waves-vertical',\n\t'waypoints',\n\t'webcam-off',\n\t'webcam',\n\t'webhook-off',\n\t'webhook',\n\t'weight-tilde',\n\t'weight',\n\t'wheat-off',\n\t'wheat',\n\t'whole-word',\n\t'wifi-cog',\n\t'wifi-high',\n\t'wifi-low',\n\t'wifi-off',\n\t'wifi-pen',\n\t'wifi-sync',\n\t'wifi-zero',\n\t'wifi',\n\t'wind-arrow-down',\n\t'wind',\n\t'wine-off',\n\t'wine',\n\t'workflow',\n\t'worm',\n\t'wrench-off',\n\t'wrench',\n\t'x-line-top',\n\t'x',\n\t'zap-off',\n\t'zap',\n\t'zodiac-aquarius',\n\t'zodiac-aries',\n\t'zodiac-cancer',\n\t'zodiac-capricorn',\n\t'zodiac-gemini',\n\t'zodiac-leo',\n\t'zodiac-libra',\n\t'zodiac-ophiuchus',\n\t'zodiac-pisces',\n\t'zodiac-sagittarius',\n\t'zodiac-scorpio',\n\t'zodiac-taurus',\n\t'zodiac-virgo',\n\t'zoom-in',\n\t'zoom-out',\n]\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiInput } from '@taiga-ui/core';\n\n@Component({\n selector: 'ezui-textinput',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiInput\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInput [(ngModel)]=\"value\" (ngModelChange)=\"valueChange.emit(value)\" [disabled]=\"disabled\"/>\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUITextInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n @Input() value: string = \"\";\n @Output() valueChange = new EventEmitter<string>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiDropdown } from '@taiga-ui/core';\nimport { lucideicons } from '../constants/lucideicons';\nimport { EzUITextInput } from \"./textinput\";\n\n@Component({\n selector: 'ezui-iconselector',\n imports: [\n FormsModule,\n CommonModule,\n TuiButton,\n TuiDropdown,\n EzUITextInput\n],\n template: `\n\t\t<button\n\t\t\ttuiButton\n\t\t\t[iconStart]=\"selected\"\n\t\t\t[size]=\"size\"\n\t\t\t[tuiAppearanceState]=\"open() ? 'active' : null\"\n\t\t\t[tuiDropdown]=\"dropdown\"\n\t\t\t[(tuiDropdownOpen)]=\"open\"\n\t\t\t[disabled]=\"disabled\"\n\t\t></button>\n\n\t\t<ng-template #dropdown let-close>\n\t\t\t<div class=\"dropdown-container\">\n\t\t\t\t<ezui-textinput #sch icon=\"search\" label=\"Search\" size=\"s\" (valueChange)=\"doSearch(sch.value)\"/>\n\t\t\t\t@if (currentOptions.length > 0) {\n\t\t\t\t\t<div class=\"icon-container\">\n\t\t\t\t\t\t@for (icon of currentOptions.slice(0,100); track icon) {\n\t\t\t\t\t\t\t<button tuiButton [iconStart]=\"icon\" size=\"s\" appearance=\"flat\" [tuiAppearanceFocus]='selected == icon ? true : null' (click)=\"setIcon(icon); close();currentOptions = [...lucideicons]\"></button>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t@if(currentOptions.length > 100){\n\t\t\t\t\t\t\t<p style=\"opacity:0.5;margin:0px;text-align:center;align-self:center\">{{currentOptions.length - 100}} more icons...</p>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t} @else {\n\t\t\t\t\t<p>No icons match your search!</p>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</ng-template>\n `,\n styles: `\n\t\t.dropdown-container {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tpadding: 10px;\n\t\t\tmin-width: 10rem;\n\t\t\tgap:5px;\n\n\t\t\t.icon-container {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-wrap: wrap;\n\t\t\t\tgap:5px;\n\t\t\t\tmax-width:80vw;\n\t\t\t\tmax-height:30vh;\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUIIconSelector implements OnChanges {\n\tcurrentOptions : string[] = []\n @Input() disabled: boolean = false;\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n\topen = signal<boolean>(false);\n\n @Input() selected: string = 'circle';\n @Output() selectedChange = new EventEmitter<string>();\n\n\tlucideicons = lucideicons;\n\n\tconstructor() {\n this.currentOptions = [...lucideicons];\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected'] && changes['selected'].currentValue != changes['selected'].previousValue) {\n this.selected = changes['selected'].currentValue;\n }\n }\n\n\tdoSearch(text: string | null | undefined){\n if (text) this.currentOptions = [...lucideicons.filter((x) => x.indexOf(text) != -1)];\n else this.currentOptions = [...lucideicons];\n\t}\n\n\tsetIcon(value: string) {\n this.selected = value;\n this.selectedChange.emit(this.selected);\n }\n}\n","import Compressor from \"compressorjs\";\n\nexport const compressImage = async (\n file: File,\n quality: number,\n maxHeight: number,\n maxWidth: number,\n convertSize?: number\n): Promise<File | Blob> => {\n return await new Promise((resolve, reject) => {\n new Compressor(file, {\n quality,\n maxHeight,\n maxWidth,\n convertSize,\n success: resolve,\n error: reject,\n });\n });\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiDropdown, TuiGroup, TuiOption } from '@taiga-ui/core';\nimport { TuiChevron } from '@taiga-ui/kit';\n\nexport interface MenuBarItem {\n\tlabel: string | null;\n\ticon: string | null;\n\titems : MenuBarItem[];\n\tdisabled: boolean;\n\texpanded: boolean;\n\tcommand() : Promise<any>;\n\tstyle : string;\n}\n\n@Component({\n selector: 'tui-data-list[subdatalist]',\n standalone: true,\n imports: [\n TuiDropdown,\n\t\tTuiOption,\n TuiChevron\n ],\n template: `\n\t\t@for(item of subdatalist; track $index){\n\t\t\t@if(item.items){\n\t\t\t\t<button\n\t\t\t\t\tclass=\"subdatalistitem\"\n\t\t\t\t\ttuiOption\n\t\t\t\t\ttuiChevron\n\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t[disabled]=\"item.disabled\"\n\t\t\t\t\t[tuiDropdown]=\"dropdownContent\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"item.expanded\"\n\t\t\t\t\ttuiDropdownLimitWidth=\"fixed\"\n\t\t\t\t\ttuiDropdownSided=\"true\"\n\t\t\t\t\t[style]=\"item.style\"\n\t\t\t\t>\n\t\t\t\t{{item.label}}\n\t\t\t\t</button>\n\n\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t<tui-data-list\n\t\t\t\t\t\tclass=\"subdatalist\"\n\t\t\t\t\t\t[subdatalist]=\"item.items\">\n\t\t\t\t\t</tui-data-list>\n\t\t\t\t</ng-template>\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t<button\n\t\t\t\t\tclass=\"subdatalistitem\"\n\t\t\t\t\ttuiOption\n\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t[disabled]=\"item.disabled\"\n\t\t\t\t\t(click)=\"item.command()\"\n\t\t\t\t\t[style]=\"item.style\"\n\t\t\t\t>\n\t\t\t\t\t{{item.label}}\n\t\t\t\t</button>\n\t\t\t}\n\t\t}\n `,\n\tstyles: `\n\t\t.subdatalist {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: column;\n\t\t}\n\n\t\t.subdatalistitem {\n\t\t\tpadding: 0px 10px 0px 10px !important;\n\t\t}\n\t`\n})\nexport class EzUIMenuBarSubDataList {\n @Input() subdatalist: MenuBarItem[] = [];\n}\n\n@Component({\n selector: 'ezui-menubar',\n\tstandalone: true,\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiGroup,\n\t\tTuiButton,\n\t\tTuiDropdown,\n\t\tTuiChevron,\n\t\tEzUIMenuBarSubDataList\n\t],\n template: `\n\t\t<div tuiGroup class=\"group\" [collapsed]=\"true\">\n\t\t\t@for(item of items; track $index){\n\t\t\t\t@if(item.items){\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiChevron\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\tappearance=\"outline\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t\t[disabled]=\"item.disabled\"\n\t\t\t\t\t\t[tuiDropdown]=\"dropdownContent\"\n\t\t\t\t\t\t[(tuiDropdownOpen)]=\"item.expanded\"\n\t\t\t\t\t\ttuiDropdownLimitWidth=\"fixed\"\n\t\t\t\t\t\t[style]=\"item.style\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{item.label}}\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<ng-template #dropdownContent>\n\t\t\t\t\t\t<tui-data-list\n\t\t\t\t\t\t\tclass=\"subdatalist\"\n\t\t\t\t\t\t\t[subdatalist]=\"item.items\">\n\t\t\t\t\t\t</tui-data-list>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t\t[disabled]=\"item.disabled\"\n\t\t\t\t\t\t(click)=\"item.command()\"\n\t\t\t\t\t\t[style]=\"item.style\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{item.label}}\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t}\n\t\t</div>\n `,\n styles: `\n\t\t.group {\n\t\t\twidth:100%;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.subdatalist {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: column;\n\t\t}\n `\n})\nexport class EzUIMenuBar implements OnChanges {\n @Input() items: MenuBarItem[] = [];\n\n\tngOnChanges(changes: SimpleChanges) {\n if (changes['items'] && changes['items'].currentValue != changes['items'].previousValue) {\n this.items = changes['items'].currentValue;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiScrollbar } from '@taiga-ui/core';\nimport { TuiTextarea } from '@taiga-ui/kit';\nimport { marked } from 'marked';\nimport { compressImage } from '../helpers/compressImage';\nimport { EzUIMenuBar, MenuBarItem } from \"./menubar\";\n\n@Component({\n selector: 'ezui-markdowneditor',\n imports: [FormsModule, CommonModule, TuiTextarea, TuiButton, TuiScrollbar, EzUIMenuBar],\n template: `\n\t\t@if(isEditing() && !disabled){\n\t\t\t<div class=\"editor-container\">\n\t\t\t\t<div class=\"editor\">\n\t\t\t\t\t<ezui-menubar [items]=\"items()\"/>\n\n\t\t\t\t\t<tui-textfield class=\"editor-field\">\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\t#editor\n\t\t\t\t\t\t\tplaceholder=\"Markdown Content\"\n\t\t\t\t\t\t\ttuiTextarea\n\t\t\t\t\t\t\t[(ngModel)]=\"unsavedValue\"\n\t\t\t\t\t\t\t(input)=\"formatPreview()\"\n\t\t\t\t\t\t></textarea>\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t</div>\n\n\t\t\t\t<div class=\"preview-container\">\n\t\t\t\t\t<tui-scrollbar>\n\t\t\t\t\t\t<div class=\"preview\" #preview>Rendering...</div>\n\t\t\t\t\t</tui-scrollbar>\n\t\t\t\t</div>\n\n\t\t\t\t<input type=\"file\" (change)=\"onFileSelected($event)\" #fileUpload [style]=\"{ display: 'none' }\" accept=\"image/png, image/jpeg\" />\n\t\t\t</div>\n\t\t}\n\t\t@else {\n\t\t\t<div class=\"preview-readonly-container\">\n\t\t\t\t@if(!disabled){\n\t\t\t\t\t<button tuiButton class=\"edit-button\" iconStart=\"edit\" appearance=\"flat\" size=\"s\"(click)=\"toggleEdit(false)\"></button>\n\t\t\t\t}\n\t\t\t\t<tui-scrollbar>\n\t\t\t\t\t<div class=\"preview\" #preview>Rendering...</div>\n\t\t\t\t</tui-scrollbar>\n\t\t\t</div>\n\t\t}\n `,\n host: {\n class: 'flex h-full w-full'\n },\n styles: `\n\t\t.editor-container {\n\t\t\tdisplay:flex;\n\t\t\tflex-direction: row;\n\t\t\twidth: 100%;\n\t\t\toutline: 0.125rem solid var(--tui-background-accent-1);\n\t\t\tborder-radius: var(--tui-radius-l);\n\n\t\t\t.editor {\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\twidth: 100%;\n\n\t\t\t\t.editor-field {\n\t\t\t\t\tblock-size:100%;\n\t\t\t\t\tborder-radius: 0px 0px 0px var(--tui-radius-l);\n\t\t\t\t}\n\t\t\t}\n }\n\n\t\t.preview-container {\n\t\t\twidth:100%;\n\t\t\tborder-radius: 0px var(--tui-radius-l) var(--tui-radius-l) 0px;\n\t\t\ttransition-property: box-shadow, background-color, outline-color, border-color, color;\n\t\t\ttransition-duration: calc(var(--tui-duration) / 2);\n\t\t\ttransition-timing-function: var(--tui-curve-productive-standard);\n\t\t\t--t-shadow: 0 0.125rem 0.1875rem rgba(0, 0, 0, 0.1);\n\t\t\tbackground-color: var(--tui-background-base);\n\t\t\tcolor: var(--tui-text-tertiary);\n\t\t\tbox-shadow: var(--t-shadow);\n\t\t\toutline: 1px solid var(--tui-border-normal);\n\t\t\toutline-offset: -1px;\n\t\t\tborder-width: 0;\n\t\t\tblock-size:100%;\n\n\t\t\t::ng-deep tui-scrollbar {\n\t\t\t\theight:100%;\n\t\t\t}\n\n\t\t\t::ng-deep .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tblock-size:auto !important;\n\t\t\t}\n\n\t\t\t.preview {\n\t\t\t\tpadding:10px;\n\t\t\t}\n\t\t}\n\n\t\t.preview-readonly-container {\n\t\t\twidth:100%;\n\t\t\tborder-radius: var(--tui-radius-l);\n\t\t\ttransition-property: box-shadow, background-color, outline-color, border-color, color;\n\t\t\ttransition-duration: calc(var(--tui-duration) / 2);\n\t\t\ttransition-timing-function: var(--tui-curve-productive-standard);\n\t\t\t--t-shadow: 0 0.125rem 0.1875rem rgba(0, 0, 0, 0.1);\n\t\t\tbackground-color: var(--tui-background-base);\n\t\t\tcolor: var(--tui-text-tertiary);\n\t\t\tbox-shadow: var(--t-shadow);\n\t\t\toutline: 1px solid var(--tui-border-normal);\n\t\t\toutline-offset: -1px;\n\t\t\tborder-width: 0;\n\t\t\tblock-size:100%;\n\n\t\t\t.edit-button {\n\t\t\t\tposition:absolute;\n\t\t\t\tz-index: 999;\n\t\t\t}\n\n\t\t\t::ng-deep tui-scrollbar {\n\t\t\t\theight:100%;\n\t\t\t}\n\n\t\t\t::ng-deep .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tblock-size:auto !important;\n\t\t\t}\n\n\t\t\t.preview {\n\t\t\t\tpadding:10px;\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUIMarkdownEditor implements OnChanges {\n @ViewChild('preview') preview: ElementRef<HTMLDivElement> | undefined;\n @ViewChild('editor') editor: ElementRef<HTMLTextAreaElement> | undefined;\n @ViewChild('fileUpload') fileUpload: ElementRef<HTMLInputElement> | undefined;\n\n @Input() disabled: boolean = false;\n\n @Input() value: string | null = null;\n @Output() valueChange = new EventEmitter<string | null>();\n\n\tunsavedValue = signal<string>(\"\");\n\n isFirst : boolean = true;\n isEditing = signal<boolean>(false);\n\n items = signal<MenuBarItem[]>([\n\t\t{\n\t\t\ticon: 'save',\n\t\t\tcommand: async () => await this.toggleEdit(true),\n\t\t\tstyle: 'border-bottom-left-radius: 0px !important;'\n\t\t} as MenuBarItem,\n\t\t{\n\t\t\ticon: 'x',\n\t\t\tcommand: async () => await this.toggleEdit(false)\n\t\t} as MenuBarItem,\n {\n label: 'B',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"**\" + sel + \"**\"\n await this.replaceSection(newStr, start + 2, finish + 2);\n }\n }\n } as MenuBarItem,\n {\n label: 'I',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"*\" + sel + \"*\"\n await this.replaceSection(newStr, start + 1, finish + 1);\n }\n }\n } as MenuBarItem,\n {\n label: 'H',\n items: [\n {\n label: 'H1',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"# \" + sel\n await this.replaceSection(newStr, start + 2, finish + 2);\n }\n }\n } as MenuBarItem,\n {\n label: 'H2',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"## \" + sel\n await this.replaceSection(newStr, start + 3, finish + 3);\n }\n }\n } as MenuBarItem,\n {\n label: 'H3',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"### \" + sel\n await this.replaceSection(newStr, start + 4, finish + 4);\n }\n }\n } as MenuBarItem,\n ]\n } as MenuBarItem,\n\n {\n icon: 'link',\n command: async () => {\n if (this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"[\" + sel + \"](link)\"\n await this.replaceSection(newStr, start + 1, finish + 1);\n }\n }\n } as MenuBarItem,\n\n {\n icon: 'image',\n command: async () => {\n if (this.editor){\n this.fileUpload?.nativeElement.click();\n }\n },\n\t\t\tstyle: 'border-bottom-right-radius: 0px !important;border-top-right-radius: 0px !important;'\n } as MenuBarItem,\n ])\n\n async onFileSelected(event: any) {\n const files: File[] = Array.from(event.target.files);\n if (files && files.length > 0) {\n const file = files[0];\n await this.insertImageInEditor(file);\n this.fileUpload!.nativeElement.value = '';\n }\n }\n\n toBase65(file : File){\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = reject;\n })\n }\n\n async onPaste(event : any){\n const items = (event.clipboardData || event.originalEvent.clipboardData).items;\n let blob = null;\n for (const item of items) {\n if (item.type.indexOf('image') === 0) {\n blob = item.getAsFile();\n await this.insertImageInEditor(blob);\n }\n }\n }\n\n async insertImageInEditor(file : File){\n const compressed = await compressImage(file, 0.5, 300, 300);\n const asBase64 = await this.toBase65(compressed as File);\n if (asBase64 && this.editor){\n const editor = this.editor.nativeElement;\n const start = editor.selectionStart;\n const finish = editor.selectionEnd;\n const sel = editor.value.substring(start, finish);\n const newStr = \"![\" + sel + \"](\" + asBase64 + \")\"\n await this.replaceSection(newStr, start + newStr.length, finish + newStr.length);\n }\n }\n\n async replaceSection(newStr : string, finalStart : number, finalFinish : number){\n const editor = this.editor!.nativeElement;\n editor.focus();\n document.execCommand(\"insertText\", false, newStr);\n await this.formatPreview();\n editor.focus();\n editor.setSelectionRange(finalStart, finalFinish);\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes['value']) {\n if (changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n await this.formatPreview();\n if (this.isFirst){\n setTimeout(async () => await this.formatPreview(), 500);\n this.isFirst = false;\n }\n }\n }\n }\n\n async formatPreview(){\n\t\tif(this.preview){\n\t\t\tif(this.isEditing())\n\t\t\t\tthis.preview.nativeElement.innerHTML = await marked(this.unsavedValue());\n\t\t\telse if (this.value)\n\t\t\t\tthis.preview.nativeElement.innerHTML = await marked(this.value);\n\t\t}\n }\n\n\tasync toggleEdit(save : boolean){\n\t\tif (!this.isEditing() && this.value){\n\t\t\tthis.unsavedValue.set(this.value)\n\t\t}\n\t\tif (save && this.isEditing()){\n\t\t\tthis.value = this.unsavedValue();\n\t\t\tthis.valueChange.emit(this.value);\n\t\t}\n\t\tthis.isEditing.set(!this.isEditing());\n\t\tsetTimeout(async () => await this.formatPreview(), 500);\n\t}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiDataList, TuiDropdown, TuiSelectLike, TuiTextfield } from '@taiga-ui/core';\nimport { TuiChevron, TuiChip, TuiInputChip, TuiInputNumber, TuiMultiSelect } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-multiselect',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiMultiSelect,\n\t\tTuiInputNumber,\n\t\tTuiDataList,\n\t\tTuiTextfield,\n\t\tTuiInputChip,\n\t\tTuiSelectLike,\n\t\tTuiMultiSelect,\n\t\tTuiDropdown,\n\t\tTuiChevron,\n\t\tTuiChip\n\t],\n template: `\n\t\t<tui-textfield multi tuiChevron [stringify]=\"stringify\" [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label != ''){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInputChip tuiSelectLike [(ngModel)]=\"selected\" (ngModelChange)=\"selectedChange.emit(this.selected)\" [disabled]=\"disabled\"/>\n\t\t\t<tui-input-chip\n\t\t\t\t*tuiItem=\"let context\"\n\t\t\t\t[appearance]=\"appearanceMap[context.item] ? appearanceMap[context.item] : 'neutral'\"/>\n\t\t\t<tui-data-list *tuiDropdown tuiMultiSelectGroup >\n\t\t\t\t@for (item of options; track getOptionValue(item)) {\n\t\t\t\t\t@let value = getOptionValue(item);\n\t\t\t\t\t@let label = getOptionLabel(item);\n\t\t\t\t\t<button tuiOption [value]=\"value\" >\n\t\t\t\t\t\t<span tuiChip size=\"xs\" [appearance]=\"appearanceMap[value] ? appearanceMap[value] : 'neutral'\">{{label}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</tui-data-list>\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUIMultiSelect implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() optionLabel: string | undefined = undefined;\n @Input() optionValue: string | undefined = undefined;\n\n @Input() options: any[] = [];\n @Input() disabled: boolean = false;\n\n @Input() selected: any[] | null | undefined = undefined;\n @Output() selectedChange = new EventEmitter<any[] | null | undefined>();\n\n\t@Input() appearanceMap : {[value:string | number]:string} = {\n\t\t\"b\":\"negative\"\n\t}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected'] && changes['selected'].currentValue != changes['selected'].previousValue) {\n this.selected = changes['selected'].currentValue;\n }\n }\n\n\tstringify = (value: string): string => this.getOptionLabel(this.options.find((item) => this.getOptionValue(item) === value));\n\n getOptionLabel(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionLabel == undefined || this.optionLabel == '') return item;\n return item[this.optionLabel];\n }\n\n getOptionValue(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionValue == undefined || this.optionValue == '') return item;\n return item[this.optionValue];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiInput } from '@taiga-ui/core';\nimport { TuiInputNumber } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-numberinput',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiInput,\n\t\tTuiInputNumber\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInputNumber [(ngModel)]=\"value\" (ngModelChange)=\"valueChange.emit(value)\" [disabled]=\"disabled\" [min]=\"min\" [max]=\"max\"/>\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUINumberInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n\t@Input() min : number | null = null;\n\t@Input() max : number | null = null;\n\n @Input() value: number | string = \"\";\n @Output() valueChange = new EventEmitter<number | string>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiIcon, TuiInput } from '@taiga-ui/core';\nimport { TuiPassword } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-passwordinput',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiInput,\n\t\tTuiIcon,\n\t\tTuiPassword\n\t],\n template: `\n\t\t<tui-textfield [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiInput type=\"password\" [(ngModel)]=\"value\" (ngModelChange)=\"valueChange.emit(value)\" [disabled]=\"disabled\"/>\n\t\t\t<tui-icon tuiPassword />\n\t\t</tui-textfield>\n `,\n styles: `\n `\n})\nexport class EzUIPasswordInput implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() disabled: boolean = false;\n\n @Input() value: string = \"\";\n @Output() valueChange = new EventEmitter<string>();\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiDataList, TuiDropdown, TuiInput, TuiTextfield } from '@taiga-ui/core';\nimport { TuiChevron, TuiChip, TuiSelect } from '@taiga-ui/kit';\n\n@Component({\n selector: 'ezui-select',\n imports: [\n FormsModule,\n CommonModule,\n TuiSelect,\n TuiDataList,\n TuiTextfield,\n TuiDropdown,\n TuiChevron,\n TuiInput,\n TuiChip\n],\n template: `\n\t\t<tui-textfield tuiChevron [content]=\"content\" [tuiTextfieldSize]=\"size\" [iconStart]=\"icon\">\n\t\t\t@if(label != ''){\n\t\t\t\t<label tuiLabel>{{label}}</label>\n\t\t\t}\n\t\t\t<input tuiSelect [(ngModel)]=\"selected\" (ngModelChange)=\"selectedChange.emit(this.selected)\" [disabled]=\"disabled\"/>\n\t\t\t<tui-data-list *tuiDropdown >\n\t\t\t\t@for (item of options; track getOptionValue(item)) {\n\t\t\t\t\t@let value = getOptionValue(item);\n\t\t\t\t\t@let label = getOptionLabel(item);\n\t\t\t\t\t<button tuiOption [value]=\"value\" >\n\t\t\t\t\t\t<span tuiChip size=\"xs\" [appearance]=\"appearanceMap[value]\">{{label}}</span>\n\t\t\t\t\t</button>\n\t\t\t\t}\n\t\t\t</tui-data-list>\n\t\t</tui-textfield>\n\n\t\t<ng-template #content>\n\t\t\t<span tuiChip [size]=\"label != '' ? 'xxs' : 'xs'\" [appearance]=\"appearanceMap[selected]\">{{stringify(selected)}}</span>\n\t\t</ng-template>\n `,\n styles: `\n `\n})\nexport class EzUISelect implements OnChanges {\n @Input() icon: string = '';\n @Input() label: string = '';\n\n\t@Input() size: \"l\" | \"m\" | \"s\" = 'm';\n\n @Input() optionLabel: string | undefined = undefined;\n @Input() optionValue: string | undefined = undefined;\n\n @Input() options: any[] = [];\n @Input() disabled: boolean = false;\n\n @Input() selected: any | null | undefined = undefined;\n @Output() selectedChange = new EventEmitter<any | null | undefined>();\n\n\t@Input() appearanceMap : {[value:string | number]:string} = {\n\t}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selected'] && changes['selected'].currentValue != changes['selected'].previousValue) {\n this.selected = changes['selected'].currentValue;\n }\n }\n\n\tstringify = (value: string): string => this.getOptionLabel(this.options.find((item) => this.getOptionValue(item) === value));\n\n getOptionLabel(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionLabel == undefined || this.optionLabel == '') return item;\n return item[this.optionLabel];\n }\n\n getOptionValue(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionValue == undefined || this.optionValue == '') return item;\n return item[this.optionValue];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiLink } from '@taiga-ui/core';\nimport { TuiElasticContainer } from '@taiga-ui/layout';\n\n@Component({\n selector: 'ezui-showmoretext',\n imports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tTuiElasticContainer,\n\t\tTuiLink\n\t],\n template: `\n\t\t<tui-elastic-container>\n\t\t\t<div [innerHTML]=\"current()\"></div>\n\t\t\t<button\n\t\t\t\ttuiLink\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"toggle()\"\n\t\t\t>\n\t\t\t\tShow {{ current() === value ? 'less' : 'more' }}\n\t\t\t</button>\n\t\t</tui-elastic-container>\n `,\n styles: `\n `\n})\nexport class EzUIShowMoreText implements OnChanges {\n @Input() value: string = \"\";\n valueSmall: string = \"\";\n\n\t@Input() maxCharacters: number = 256;\n\n\tcurrent = signal<string>(this.valueSmall);\n\n\tprotected toggle(): void {\n\t\tthis.current.set(this.current() === this.valueSmall ? this.value : this.valueSmall);\n\t}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {\n this.value = changes['value'].currentValue;\n\t\t\tthis.valueSmall = this.value.substring(0,this.maxCharacters) + \"...\";\n\t\t\tthis.current.set(this.valueSmall);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiButton, TuiGroup, TuiHint, TuiInput, TuiScrollbar } from \"@taiga-ui/core\";\nimport { TuiBadge, TuiStatus } from '@taiga-ui/kit';\nimport { v4 as uuidv4 } from 'uuid';\nimport { EzUITableSortFilterPreset } from './models/table.sortFilterPreset';\nimport { EzUITableSortFilterPresetSave } from './models/table.sortFilterPresetSave';\nimport { EzUITable } from './table';\n\n@Component({\n selector: 'ezui-table-presets',\n imports: [FormsModule, CommonModule, TuiScrollbar, TuiButton, TuiGroup, TuiBadge, TuiStatus, TuiInput, TuiHint],\n template: `\n\t\t<button tuiButton iconStart=\"plus\" size=\"s\" appearance=\"secondary\" (click)=\"createPreset()\" tuiHint=\"Create new preset from current filters\"></button>\n\n\t\t<tui-scrollbar>\n\t\t\t@let current = currentPreset();\n\t\t\t@for(preset of presets(); track preset.id){\n\t\t\t\t<div tuiGroup [collapsed]=\"true\" [rounded]=\"true\">\n\t\t\t\t\t@let isActive = current?.id == preset.id;\n\t\t\t\t\t@if(isActive){\n\t\t\t\t\t\t@if(preset.edit){\n\t\t\t\t\t\t\t<tui-textfield style=\"width:10rem\" tuiTextfieldSize=\"s\" (keydown.enter)=\"preset.edit = false;saveCurrentPreset()\">\n\t\t\t\t\t\t\t\t<input tuiInput [(ngModel)]=\"preset.name\"/>\n\t\t\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t\t\t<button style=\"flex: 0 0 auto;\" tuiButton iconStart=\"save\" size=\"s\" appearance=\"info\" (click)=\"preset.edit = false;saveCurrentPreset()\" tuiHint=\"Save\"></button>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t@else {\n\t\t\t\t\t\t\t<div style=\"height:100%\" appearance=\"positive\" tuiBadge tuiStatus>\n\t\t\t\t\t\t\t\t{{preset.name}}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<button style=\"flex: 0 0 auto;\" tuiButton iconStart=\"square-pen\" size=\"s\" appearance=\"info\" (click)=\"preset.edit = true\" tuiHint=\"Edit\"></button>\n\t\t\t\t\t\t}\n\t\t\t\t\t<button style=\"flex: 0 0 auto;\" tuiButton iconStart=\"x\" size=\"s\" appearance=\"negative\" (click)=\"removePreset(preset.id)\" tuiHint=\"Delete\"></button>\n\t\t\t\t\t}\n\t\t\t\t\t@else {\n\t\t\t\t\t\t<button style=\"flex: 0 0 auto;\" tuiButton appearance=\"secondary\" size=\"s\" (click)=\"selectPreset(preset.id)\">{{preset.name}}</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</tui-scrollbar>\n `,\n\thost:{\n\t\tstyle:'display:flex;flex-direction: row;gap:10px;width:100%'\n\t},\n styles: `\n\t\ttui-scrollbar {\n\t\t\twidth:100% !important;\n\t\t\t::ng-deep > .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tgap:10px;\n\t\t\t\twidth:0px;\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUITablePresets implements OnChanges {\n\t@Input() storageKey: string | null = null;\n\tcurrentPreset = signal<EzUITableSortFilterPreset | null>(null);\n\tpresets = signal<EzUITableSortFilterPreset[]>([])\n\n\tconstructor(private table : EzUITable){\n\n\t}\n\n\tasync ngOnChanges(changes: SimpleChanges) {\n\t\tif (changes['storageKey'] && changes['storageKey'].previousValue != changes['storageKey'].currentValue) {\n\t\t\tthis.storageKey = changes['storageKey'].currentValue;\n\t\t\tif (this.storageKey){\n\t\t\t\tconst item = localStorage.getItem(this.storageKey)\n\t\t\t\tif (item){\n\t\t\t\t\tconst parsed : EzUITableSortFilterPresetSave = JSON.parse(item)\n\t\t\t\t\tif (parsed){\n\t\t\t\t\t\tthis.presets.set(parsed.presets);\n\t\t\t\t\t\tif (parsed.current){\n\t\t\t\t\t\t\tconst target = (parsed.presets).find(x => x.id == parsed.current);\n\t\t\t\t\t\t\tif (target)\n\t\t\t\t\t\t\t\tthis.selectPreset(target.id)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnInit(){\n\t\tsetTimeout(\n\t\t\t() => {\n\t\t\t\tconst current = this.currentPreset();\n\t\t\t\tif (current)\n\t\t\t\t\tthis.onPresetChange.emit(current);\n\t\t\t},\n\t\t\t500\n\t\t)\n\t}\n\n\t@Output() onPresetChange: EventEmitter<EzUITableSortFilterPreset | null> = new EventEmitter<EzUITableSortFilterPreset | null>();\n\n\tsaveCurrentPreset(){\n\t\tconst currentPreset = this.currentPreset();\n\t\tif (currentPreset){\n\t\t\tcurrentPreset.sorts = [...this.table.sorts()];\n\t\t\tcurrentPreset.filters = [...this.table.filters()];\n\t\t\tthis.currentPreset.set(currentPreset);\n\n\t\t\tconst presets = this.presets();\n\t\t\tconst target = this.presets().findIndex(x => x.id == currentPreset?.id)\n\t\t\tif (target != -1)\n\t\t\t\tpresets[target] = currentPreset;\n\t\t\tthis.presets.set(presets);\n\n\t\t\tthis.savePresets();\n\t\t}\n\t}\n\n\tselectPreset(id : string){\n\t\tconst presets = this.presets();\n\t\tconst target = presets.findIndex(x => x.id == id);\n\t\tif (target != -1)\n\t\t{\n\t\t\tconst preset = presets[target];\n\t\t\tthis.currentPreset.set(preset);\n\t\t\tthis.table.sorts.set(preset.sorts);\n\t\t\tthis.table.filters.set(preset.filters);\n\t\t\tthis.onPresetChange.emit(preset);\n\t\t\tthis.table.applyFilter();\n\t\t}\n\n\t\tthis.savePresets();\n\t}\n\n\tcreatePreset(){\n\t\tthis.saveCurrentPreset();\n\n\t\tconst preset = {\n\t\t\tid: uuidv4(),\n\t\t\tname: 'New Preset',\n\t\t\tsorts : [...this.table.sorts()],\n\t\t\tfilters: [...this.table.filters()]\n\t\t} as EzUITableSortFilterPreset\n\t\tthis.currentPreset.set(preset);\n\n\t\tconst presets = this.presets();\n\t\tpresets.push(preset);\n\t\tthis.presets.set(presets);\n\n\t\tthis.savePresets();\n\t}\n\n\tremovePreset(id : string){\n\t\tconst presets = this.presets();\n\t\tconst target = presets.findIndex(x => x.id == id);\n\t\tif (target != -1)\n\t\t\tpresets.splice(target, 1);\n\t\tthis.presets.set(presets);\n\n\t\tconst current = this.currentPreset();\n\t\tif (current?.id == id){\n\t\t\tif (presets.length > 0)\n\t\t\t{\n\t\t\t\tthis.currentPreset.set(presets[0]);\n\t\t\t\tthis.onPresetChange.emit(presets[0]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.currentPreset.set(null);\n\t\t\t\tthis.onPresetChange.emit(null);\n\t\t\t}\n\n\t\t}\n\n\t\tthis.savePresets();\n\t}\n\n\tsavePresets(){\n\t\tif(this.storageKey){\n\t\t\tconst saveBody = {\n\t\t\t\tcurrent: this.currentPreset()?.id,\n\t\t\t\tpresets: [...this.presets()]\n\t\t\t} as EzUITableSortFilterPresetSave\n\t\t\tlocalStorage.setItem(\n\t\t\t\tthis.storageKey,\n\t\t\t\tJSON.stringify(saveBody));\n\t\t}\n\t}\n\n\tclearFilters(){\n\t\tthis.currentPreset.set(null);\n\t\tthis.onPresetChange.emit(null);\n\t\tthis.table.sorts.set([])\n\t\tthis.table.filters.set([])\n\t\tthis.savePresets();\n\t\tthis.table.applyFilter();\n\t}\n}\n\n","export class EzUIFilterHelpers {\n\tpublic static genericFilter<T>(values: any[], fn : (i : T) => boolean, column : string) : any[]{\n\t\tconst filtered = []\n\t\tfor(const value of values)\n\t\t{\n\t\t\tconst base = value[column];\n\t\t\tif (Array.isArray(base)){\n\t\t\t\tfor(let item of base){\n\t\t\t\t\tconst asGeneric : T = item;\n\t\t\t\t\tif (fn(asGeneric))\n\t\t\t\t\t{\n\t\t\t\t\t\tfiltered.push(value);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst asGeneric : T = base;\n\t\t\t\tif (fn(asGeneric))\n\t\t\t\t\tfiltered.push(value);\n\t\t\t}\n\t\t}\n\t\treturn filtered;\n\t}\n\n\tpublic static dateFilter(values: any[], fn : (i : Date) => boolean, column : string) : any[]{\n\t\tconst filtered = []\n\t\tfor(const value of values)\n\t\t{\n\t\t\tconst base = value[column];\n\t\t\tif (Array.isArray(base)){\n\t\t\t\tfor(let item of base){\n\t\t\t\t\tconst asDate : Date = new Date(item);\n\t\t\t\t\tif (fn(asDate))\n\t\t\t\t\t{\n\t\t\t\t\t\tfiltered.push(value);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst asDate : Date = new Date(base);\n\t\t\t\tif (fn(asDate))\n\t\t\t\t\tfiltered.push(value);\n\t\t\t}\n\t\t}\n\t\treturn filtered;\n\t}\n}\n","import { EzUIFilterHelpers } from \"../helpers/table.filterhelpers\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITableFilterMethod } from \"../models/table.filterMethod\";\nimport { EzUITableSort } from \"../models/table.sort\";\nimport { EzUITableSortMethod } from \"../models/table.sortMethod\";\n\nexport class EzUITableFilterService {\n\tpublic sortMethods : EzUITableSortMethod[] = [\n\t\t{\n\t\t\tstate: 'asc',\n\t\t\tsort: (a: any, b: any, column : string) => {\n\t\t\t\tif (a[column] < b[column])\n\t\t\t\t\treturn 1;\n\t\t\t\tif (a[column] > b[column])\n\t\t\t\t\treturn -1;\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t} as EzUITableSortMethod,\n\t\t{\n\t\t\tstate: 'desc',\n\t\t\tsort: (a: any, b: any, column : string) => {\n\t\t\t\tif (a[column] < b[column])\n\t\t\t\t\treturn -1;\n\t\t\t\tif (a[column] > b[column])\n\t\t\t\t\treturn 1;\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t} as EzUITableSortMethod\n\t]\n\n\tpublic filterMethods : EzUITableFilterMethod[] = [\n\t\t// Text filters\n\t\t{\n\t\t\tkey: 'str',\n\t\t\taction: 'con',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => i.includes(value), column)\n\t\t},\n\t\t{\n\t\t\tkey: 'str',\n\t\t\taction: 'ncon',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => !i.includes(value), column)\n\t\t},\n\t\t{\n\t\t\tkey: 'str',\n\t\t\taction: 'sta',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => i.startsWith(value), column)\n\t\t},\n\t\t{\n\t\t\tkey: 'str',\n\t\t\taction: 'end',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => i.endsWith(value), column)\n\t\t},\n\n\t\t// Select filters\n\t\t{\n\t\t\tkey: 'sel',\n\t\t\taction: 'con',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => value.includes(i), column)\n\t\t},\n\t\t{\n\t\t\tkey: 'sel',\n\t\t\taction: 'ncon',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<string>(values, (i : string) => !value.includes(i), column)\n\t\t},\n\n\t\t// Date Time filters\n\t\t{\n\t\t\tkey: 'datt',\n\t\t\taction: 'bef',\n\t\t\tfilter: (values : any[], column : string, value : any) =>\n\t\t\t\tEzUIFilterHelpers.dateFilter(\n\t\t\t\t\tvalues,\n\t\t\t\t\t(i : Date) => {\n\t\t\t\t\t\tvar normal = value[0].toLocalNativeDate()\n\t\t\t\t\t\tnormal.setMilliseconds(value[1].toAbsoluteMilliseconds());\n\t\t\t\t\t\treturn i.getTime() < normal.getTime()\n\t\t\t\t\t},\n\t\t\t\t\tcolumn)\n\t\t},\n\t\t{\n\t\t\tkey: 'datt',\n\t\t\taction: 'aft',\n\t\t\tfilter: (values : any[], column : string, value : any) =>\n\t\t\t\tEzUIFilterHelpers.dateFilter(\n\t\t\t\t\tvalues,\n\t\t\t\t\t(i : Date) => {\n\t\t\t\t\t\tvar normal = value[0].toLocalNativeDate()\n\t\t\t\t\t\tnormal.setMilliseconds(value[1].toAbsoluteMilliseconds());\n\t\t\t\t\t\treturn i.getTime() > normal.getTime()\n\t\t\t\t\t},\n\t\t\t\t\tcolumn)\n\t\t},\n\n\t\t// Date filters\n\t\t{\n\t\t\tkey: 'dat',\n\t\t\taction: 'bef',\n\t\t\tfilter: (values : any[], column : string, value : any) =>\n\t\t\t\tEzUIFilterHelpers.dateFilter(\n\t\t\t\t\tvalues,\n\t\t\t\t\t(i : Date) => {\n\t\t\t\t\t\tvar normal = value.toLocalNativeDate()\n\t\t\t\t\t\treturn i.getTime() < normal.getTime()\n\t\t\t\t\t},\n\t\t\t\t\tcolumn)\n\t\t},\n\t\t{\n\t\t\tkey: 'dat',\n\t\t\taction: 'aft',\n\t\t\tfilter: (values : any[], column : string, value : any) =>\n\t\t\t\tEzUIFilterHelpers.dateFilter(\n\t\t\t\t\tvalues,\n\t\t\t\t\t(i : Date) => {\n\t\t\t\t\t\tvar normal = value.toLocalNativeDate()\n\t\t\t\t\t\treturn i.getTime() > normal.getTime()\n\t\t\t\t\t},\n\t\t\t\t\tcolumn)\n\t\t},\n\n\t\t// Boolean filters\n\t\t{\n\t\t\tkey: 'bol',\n\t\t\taction: 'true',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<boolean>(values, (i : boolean) => i === value, column)\n\t\t},\n\n\t\t// Number filters\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'gr',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i > value, column)\n\t\t},\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'greq',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i >= value, column)\n\t\t},\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'eq',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i == value, column)\n\t\t},\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'ls',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i < value, column)\n\t\t},\n\t\t{\n\t\t\tkey: 'num',\n\t\t\taction: 'lseq',\n\t\t\tfilter: (values : any[], column : string, value : any) => EzUIFilterHelpers.genericFilter<number>(values, (i : number) => i <= value, column)\n\t\t},\n\t]\n\n\tpublic sort(values : any[], sort : EzUITableSort) : any[]{\n\t\tconst target = this.sortMethods.find(x => x.state == sort.state);\n\t\tif (target)\n\t\t\treturn values.sort((a : any, b: any) => target!.sort(a,b,sort.column));\n\t\treturn values;\n\t}\n\n\tpublic filter(values : any[], filter : EzUITableFilter) : any[]{\n\t\tconst split = filter.expression.split(';');\n\t\tconst target = this.filterMethods.find(x => split[0] == x.key && split[1] == x.action);\n\t\tif (target)\n\t\t\treturn target!.filter(values, filter.column, filter.value);\n\t\treturn values;\n\t}\n}\n\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, EventEmitter, Input, OnChanges, Output, signal, SimpleChanges, TemplateRef, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TuiTable, TuiTablePagination } from '@taiga-ui/addon-table';\nimport { TuiButton, TuiDropdown, TuiHint, TuiIcon, TuiInput, TuiLoader, TuiScrollbar } from \"@taiga-ui/core\";\nimport { TuiChevron, TuiDataListWrapper } from '@taiga-ui/kit';\nimport { TuiBlockStatus } from '@taiga-ui/layout';\nimport { EzUITableFilter } from './models/table.filter';\nimport { EzUITableSort } from './models/table.sort';\nimport { EzUITableSortFilterPreset } from './models/table.sortFilterPreset';\nimport { EzUITableFilterService } from './services/table.filterservice';\nimport { EzUITablePresets } from './table.presets';\n\n@Component({\n selector: 'ezui-table',\n imports: [FormsModule, CommonModule, TuiTable, TuiScrollbar, TuiButton, TuiChevron, TuiDropdown, TuiDataListWrapper, TuiTablePagination, TuiLoader, TuiBlockStatus, TuiIcon, TuiInput, EzUITablePresets, TuiHint],\n template: `\n\t\t<div class=\"ezui-table\">\n\t\t\t<tui-loader [inheritColor]=\"true\" [overlay]=\"true\" size=\"xxl\" [loading]=\"isLoading()\">\n\t\t\t\t@if(values.length == 0){\n\t\t\t\t\t@if(showAdd || showRefresh){\n\t\t\t\t\t\t<div class=\"ezui-table-header\">\n\t\t\t\t\t\t\t@if(showRefresh){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"rotate-cw\" size=\"s\" appearance=\"info\" (click)=\"onLoadItems.emit()\" tuiHint=\"Refresh the table\"></button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showAdd){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"plus\" size=\"s\" appearance=\"info\" (click)=\"onAddItem.emit()\" tuiHint=\"Add new item\"></button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t@if(!isLoading()){\n\t\t\t\t\t\t<tui-block-status>\n\t\t\t\t\t\t\t<tui-icon tuiSlot=\"top\" icon=\"grid-2x2-x\" />\n\n\t\t\t\t\t\t\t<h3>No Data</h3>\n\n\t\t\t\t\t\t\tNo data to display.\n\t\t\t\t\t\t</tui-block-status>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t@else {\n\t\t\t\t\t@if(showAdd || showRefresh || showClearFilters){\n\t\t\t\t\t\t<div class=\"ezui-table-header\">\n\t\t\t\t\t\t\t@if(showRefresh){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"rotate-cw\" size=\"s\" appearance=\"info\" (click)=\"onLoadItems.emit()\" tuiHint=\"Refresh the table\"></button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showAdd){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"plus\" size=\"s\" appearance=\"info\" (click)=\"onAddItem.emit()\" tuiHint=\"Add new item\"></button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t@if(showClearFilters){\n\t\t\t\t\t\t\t\t<button tuiButton iconStart=\"funnel-x\" size=\"s\" appearance=\"info\" (click)=\"clearFilters()\" tuiHint=\"Clear filters\"></button>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@if(allowPresets){\n\t\t\t\t\t\t\t\t<div class=\"seperator\"></div>\n\t\t\t\t\t\t\t\t<ezui-table-presets #presetHeader [storageKey]=\"storageKey\" (onPresetChange)=\"onPresetChange.emit($event)\">\n\t\t\t\t\t\t\t\t</ezui-table-presets>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t<tui-scrollbar class=\"forcefullsize\">\n\t\t\t\t\t\t<table tuiTable class=\"forcefullsize\">\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t@if(expandable){\n\t\t\t\t\t\t\t\t\t\t<th tuiTh></th>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tableHeader\"></ng-container>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t@if(displayValues().length == 0){\n\t\t\t\t\t\t\t\t<td colSpan=\"9999\">\n\t\t\t\t\t\t\t\t\t<tui-block-status>\n\t\t\t\t\t\t\t\t\t\t<tui-icon tuiSlot=\"top\" icon=\"grid-2x2-x\" />\n\n\t\t\t\t\t\t\t\t\t\t<h3>No Data</h3>\n\n\t\t\t\t\t\t\t\t\t\tNo data matches your filters\n\t\t\t\t\t\t\t\t\t</tui-block-status>\n\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t@for (item of displayValues(); track page() * pageSize() + i; let i = $index){\n\t\t\t\t\t\t\t\t@let fullIndex = page() * pageSize() + i;\n\t\t\t\t\t\t\t\t<tbody tuiTbody>\n\t\t\t\t\t\t\t\t\t<tr [class]=\"{'rowrlickable':clickable}\" (click)=\"onRowClick.emit(item)\">\n\t\t\t\t\t\t\t\t\t\t@if(expandable){\n\t\t\t\t\t\t\t\t\t\t\t<td tuiTd class=\"ezui-table-expander\">\n\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"ezui-table-expander-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttuiIconButton\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[tuiChevron]=\"state[fullIndex] ?? false\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"state[fullIndex] = !state[fullIndex];onRowExpanded.emit(item)\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tToggle\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tableRows\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t</tbody>\n\n\t\t\t\t\t\t\t\t<tbody tuiTableExpand [expanded]=\"state[fullIndex] ?? false\">\n\t\t\t\t\t\t\t\t\t@if(state[fullIndex] ?? false){\n\t\t\t\t\t\t\t\t\t\t<tr [class]=\"{'rowrlickable':clickable}\" (click)=\"onRowClick.emit(item)\">\n\t\t\t\t\t\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"tableExpandedrow\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</tui-scrollbar>\n\t\t\t\t\t@if(internalValues.length > pageSize() || pageSize() != 25){\n\t\t\t\t\t\t<div class=\"ezui-table-footer\">\n\t\t\t\t\t\t\t<tui-table-pagination\n\t\t\t\t\t\t\t\t[(size)]=\"pageSize\"\n\t\t\t\t\t\t\t\t[(page)]=\"page\"\n\t\t\t\t\t\t\t\t[total]=\"internalValues.length\"\n\t\t\t\t\t\t\t\t[items]=\"pageSizes\"\n\t\t\t\t\t\t\t\t(pageChange)=\"processPage()\"\n\t\t\t\t\t\t\t\t(sizeChange)=\"processPage()\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</tui-loader>\n\t\t</div>\n `,\n host: {\n\t\tclass:'w-full h-full'\n },\n styles: `\n\t\t.ezui-table {\n\t\t\tborder: 2px solid var(--tui-border-normal);\n\t\t\tborder-radius: var(--tui-radius-l);\n\t\t\tdisplay:flex;\n\t\t\theight:100%;\n\t\t\twidth:100%;\n\t\t\toverflow:hidden;\n\n\t\t\t::ng-deep tui-loader {\n\t\t\t\theight:100%;\n\t\t\t\twidth:100%;\n\t\t\t}\n\n\t\t\t::ng-deep tui-loader > .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-direction: column;\n\t\t\t}\n\n\t\t\t::ng-deep tui-scrollbar {\n\t\t\t\tflex-grow:1;\n\t\t\t}\n\n\t\t\t::ng-deep tui-scrollbar > .t-content {\n\t\t\t\tdisplay:flex;\n\t\t\t\tgap:10px;\n\t\t\t\twidth:0px;\n\t\t\t}\n\n\t\t\t.ezui-table-header {\n\t\t\t\tbackground-color: var(--tui-background-base-alt);\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-direction: row;\n\t\t\t\tgap:10px;\n\t\t\t\tpadding:5px;\n\n\t\t\t\t.seperator {\n\t\t\t\t\twidth:2px;\n\t\t\t\t\tbackground-color: var(--tui-border-normal);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.ezui-table-footer {\n\t\t\t\tdisplay:flex;\n\t\t\t\tmargin-top:0.5rem;\n\t\t\t\tmargin-bottom:0.5rem;\n\t\t\t\tpadding-left:2rem;\n\t\t\t\tpadding-right:2rem;\n\n\t\t\t\ttui-table-pagination {\n\t\t\t\t\tflex: 1\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t::ng-deep table {\n\t\t\t\tborder-radius: var(--tui-radius-l);\n\t\t\t}\n\n\t\t\t::ng-deep th {\n\t\t\t\tbackground-color: var(--tui-background-base-alt) !important;\n\t\t\t}\n\n\t\t\t::ng-deep .ezui-table-expander {\n\t\t\t\tpadding:0px;\n\t\t\t}\n\n\t\t\t::ng-deep .ezui-table-expander-button {\n\t\t\t\twidth:100% !important;\n\t\t\t\theight:100%;\n\t\t\t\tborder-radius: 0px;\n\t\t\t}\n\n\t\t\tth[tuiTh] {\n\t\t\t\talign-items:center;\n\t\t\t}\n\n\t\t\t.forcefullsize {\n\t\t\t\twidth: 100% !important;\n\t\t\t}\n\n\t\t\ttui-block-status {\n\t\t\t\tpadding-top:20px;\n\t\t\t\tpadding-bottom:20px;\n\t\t\t}\n\n\t\t\t.rowrlickable {\n\t\t\t\tcursor:pointer;\n\n\t\t\t\tbackground-color: var(--tui-background-base);\n\n\t\t\t\t::ng-deep td[tuitd] {\n\t\t\t\t\tbackground-color: transparent !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.rowrlickable:hover {\n\t\t\t\tbackground-color: var(--tui-background-neutral-1-hover) !important;\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUITable implements OnChanges {\n @ContentChild('tableHeader', { static: false }) tableHeader: TemplateRef<any> | undefined;\n @ContentChild('tableRows', { static: false }) tableRows: TemplateRef<any> | undefined;\n @ContentChild('tableExpandedrow', { static: false }) tableExpandedrow: TemplateRef<any> | undefined;\n\n @ViewChild('presetHeader', { static: false }) presetHeader: EzUITablePresets | undefined;\n\n @Input() disabled: boolean = false;\n @Input() isLoading = signal<boolean>(false);\n\n @Input() showAdd: boolean = false;\n @Input() showRefresh: boolean = false;\n @Input() showClearFilters: boolean = false;\n\n\t@Input() expandable: boolean = false;\n\t@Input() clickable: boolean = false;\n\n @Input() values: any[] = [];\n\tinternalValues: any[] = [];\n displayValues = signal<any[]>([]);\n\n\tsorts = signal<EzUITableSort[]>([]);\n\tfilters = signal<EzUITableFilter[]>([]);\n\n\t@Input() storageKey: string | null = null;\n\t@Input() allowPresets: boolean = false;\n\n\tconstructor(private filterService : EzUITableFilterService){\n\n\t}\n\n\tasync ngOnChanges(changes: SimpleChanges) {\n\t\tif (changes['values'] && changes['values'].previousValue != changes['values'].currentValue) {\n\t\t\tthis.values = changes['values'].currentValue;\n\t\t\tthis.applyFilter();\n\t\t}\n\t}\n\n @Output() onAddItem: EventEmitter<any> = new EventEmitter();\n @Output() onLoadItems: EventEmitter<any> = new EventEmitter();\n @Output() onRowExpanded: EventEmitter<any> = new EventEmitter();\n @Output() onRowClick: EventEmitter<any> = new EventEmitter();\n\t@Output() onPresetChange: EventEmitter<EzUITableSortFilterPreset | null> = new EventEmitter<EzUITableSortFilterPreset | null>();\n\n @Input() pageSize = signal<number>(25);\n\tpage = signal<number>(0);\n\tpages = signal<number>(0);\n\treadonly pageSizes = [10, 25, 50, 100, 1000];\n\tprocessPage(){\n\t\tconst fromIndex = this.pageSize() * this.page();\n\t\tconst toIndex = fromIndex + this.pageSize();\n\t\tthis.displayValues.set(this.internalValues.slice(fromIndex, toIndex));\n\t}\n\n\tapplySorts(){\n\t\tlet sorted = [...this.internalValues]\n\t\tfor(const sort of this.sorts())\n\t\t\tsorted = this.filterService.sort(sorted, sort);\n\t\tthis.internalValues = sorted;\n\t}\n\n\tapplyFilter(){\n\t\tlet filtered = [...this.values]\n\t\tfor(const filter of this.filters())\n\t\t\tfiltered = this.filterService.filter(filtered, filter);\n\t\tthis.internalValues = filtered;\n\t\tthis.applySorts();\n\t\tthis.state = [];\n\t\tthis.page.set(0);\n\t\tthis.pages.set(Math.floor(this.internalValues.length / this.pageSize()) + 1)\n\t\tthis.processPage();\n\n\t\tthis.presetHeader?.saveCurrentPreset();\n\t}\n\n\tstate: Record<number, boolean> = {};\n\n\tsetSort(sort : EzUITableSort){\n\t\tconst sorts = this.sorts();\n\t\tconst target = sorts.findIndex(x => x.column == sort.column);\n\t\tif (target != -1)\n\t\t\tsorts[target] = sort;\n\t\telse\n\t\t\tsorts.push(sort);\n\t\tthis.sorts.set(sorts);\n\n\t\tthis.applyFilter();\n\t}\n\n\tclearSort(column : string){\n\t\tconst sorts = this.sorts();\n\t\tconst target = sorts.findIndex(x => x.column == column);\n\t\tif (target != -1)\n\t\t\tsorts.splice(target, 1)\n\t\tthis.sorts.set(sorts);\n\n\t\tthis.applyFilter();\n\t}\n\n\tsetFilter(filter : EzUITableFilter){\n\t\tconst filters = this.filters();\n\t\tconst target = filters.findIndex(x => x.column == filter.column);\n\t\tif (target != -1){\n\t\t\tfilters[target] = filter;\n\t\t}\n\t\telse\n\t\t\tfilters.push(filter);\n\t\tthis.filters.set(filters);\n\n\t\tthis.applyFilter();\n\t}\n\n\tclearFilter(column : string){\n\t\tconst filters = this.filters();\n\t\tconst target = filters.findIndex(x => x.column == column);\n\t\tif (target != -1)\n\t\t\tfilters.splice(target, 1)\n\t\tthis.filters.set(filters);\n\n\t\tthis.applyFilter();\n\t}\n\n\tclearFilters(){\n\t\tthis.presetHeader?.currentPreset.set(null);\n\t\tthis.onPresetChange.emit(null);\n\t\tthis.sorts.set([])\n\t\tthis.filters.set([])\n\t\tthis.presetHeader?.savePresets();\n\t\tthis.applyFilter();\n\t}\n}\n\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiButton, TuiCheckbox, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiBlock, TuiDataListWrapper } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-booleanfilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiBadgeNotification, TuiBadgedContent, TuiInput, TuiCheckbox, TuiBlock],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t<label tuiBlock=\"s\" style=\"justify-content:center\">\n\t\t\t\t\t\tTrue\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\t\ttuiCheckbox\n\t\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\t\t[(ngModel)]=\"value\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</label>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter()\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableBooleanFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : boolean = false;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.value = false;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column)\n\t\t\tif (!filter || filter!.expression != \"bol;true\")\n\t\t\t{\n\t\t\t\tthis.value = false;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.value = filter.value;\n\t\t\tthis.filterApplied.set(true);\n\t\t})\n\t}\n\n\tapplyFilter(){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: \"bol;true\",\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiDay, TuiTime } from \"@taiga-ui/cdk/date-time\";\nimport { TuiButton, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiInputDateTime, TuiStringifyContentPipe, TuiInputDateDirective } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-datefilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInput, TuiInputDateTime, TuiInputDateDirective],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t@let filter = filterType();\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filter.label }}\n\t\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringify | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<tui-textfield (keydown.enter)=\"applyFilter(filter.expression)\">\n\t\t\t\t\t\t<label tuiLabel>Choose a date</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttuiInputDate\n\t\t\t\t\t\t\t[(ngModel)]=\"value\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<tui-calendar *tuiDropdown />\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filter.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableDateFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : TuiDay = TuiDay.currentLocal();\n\tfilterType = signal<any>({});\n\tfilterTypes : any[];\n\n\tprotected readonly stringify = (item: any): string => `${item.label}`;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'After',\n\t\t\t\texpression: 'dat;aft'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Before',\n\t\t\t\texpression: 'dat;bef'\n\t\t\t}\n\t\t];\n\t\tthis.filterType.set(this.filterTypes[0]);\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = TuiDay.currentLocal();\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = TuiDay.currentLocal();\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = TuiDay.currentLocal();\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType.set(type);\n\t\t\tlet forceReapply = false;\n\t\t\tif (typeof filter.value[0] == 'string'){\n\t\t\t\tthis.value = TuiDay.jsonParse(filter.value[0]);\n\t\t\t\tforceReapply = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.value = filter.value;\n\t\t\t}\n\t\t\tthis.filterApplied.set(true);\n\n\t\t\tif (forceReapply){\n\t\t\t\t// Force reapply filter, to fix local storage parsing issue\n\t\t\t\tthis.applyFilter(type.expression);\n\t\t\t}\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiDay, TuiTime } from \"@taiga-ui/cdk/date-time\";\nimport { TuiButton, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiInputDateTime, TuiStringifyContentPipe } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-datetimefilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInput, TuiInputDateTime],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t@let filter = filterType();\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filter.label }}\n\t\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringify | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<tui-textfield (keydown.enter)=\"applyFilter(filter.expression)\">\n\t\t\t\t\t\t<label tuiLabel>Choose a date and time</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttuiInputDateTime\n\t\t\t\t\t\t\t[(ngModel)]=\"value\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<tui-calendar *tuiDropdown />\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filter.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableDateTimeFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : [TuiDay, TuiTime] = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\tfilterType = signal<any>({});\n\tfilterTypes : any[];\n\n\tprotected readonly stringify = (item: any): string => `${item.label}`;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'After',\n\t\t\t\texpression: 'datt;aft'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Before',\n\t\t\t\texpression: 'datt;bef'\n\t\t\t}\n\t\t];\n\t\tthis.filterType.set(this.filterTypes[0]);\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType.set(this.filterTypes[0]);\n\t\t\t\tthis.value = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType.set(type);\n\t\t\tlet forceReapply = false;\n\t\t\tif (typeof filter.value[0] == 'string'){\n\t\t\t\tthis.value = [TuiDay.jsonParse(filter.value[0]), new TuiTime(filter.value[1].hours, filter.value[1].minutes, filter.value[1].seconds, 0)];\n\t\t\t\tforceReapply = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.value = filter.value;\n\t\t\t}\n\t\t\tthis.filterApplied.set(true);\n\n\t\t\tif (forceReapply){\n\t\t\t\t// Force reapply filter, to fix local storage parsing issue\n\t\t\t\tthis.applyFilter(type.expression);\n\t\t\t}\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiButton, TuiDropdown } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiInputNumber, TuiStringifyContentPipe } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-numberfilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInputNumber],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filterType.label }}\n\t\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringify | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<tui-textfield tuiTextfieldSize=\"s\" (keydown.enter)=\"applyFilter(filterType.expression)\">\n\t\t\t\t\t\t<input tuiInputNumber [(ngModel)]=\"value\"/>\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filterType.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableNumberFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : number = 0;\n\tfilterType : any;\n\tfilterTypes : any[];\n\n\tprotected readonly stringify = (item: any): string => `${item.label}`;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'Less Than',\n\t\t\t\texpression: 'num;ls'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Less Than or Equal',\n\t\t\t\texpression: 'num;lseq'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Equal',\n\t\t\t\texpression: 'num;eq'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Greater Than',\n\t\t\t\texpression: 'num;gr'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Greater Than or Equal',\n\t\t\t\texpression: 'num;greq'\n\t\t\t}\n\t\t];\n\t\tthis.filterType = this.filterTypes[0];\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = 0;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = 0;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = 0;\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType = type;\n\t\t\tthis.value = filter.value;\n\t\t\tthis.filterApplied.set(true);\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiButton, TuiDataList, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiMultiSelect, TuiStringifyContentPipe } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-selectfilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInput, TuiMultiSelect, TuiDataList],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filterType.label }}\n\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringifyOption | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"secondary-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"selected\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{selected.length === 1 ? stringifyValue(selected[0]) : 'Selected ' + selected.length}}\n\n\t\t\t\t\t\t<tui-data-list *tuiDropdown>\n\t\t\t\t\t\t\t<tui-opt-group\n\t\t\t\t\t\t\t\tlabel=\"Options\"\n\t\t\t\t\t\t\t\ttuiMultiSelectGroup\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t@for (option of options; track getOptionValue(option)) {\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttuiOption\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t[value]=\"getOptionValue(option)\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{{ getOptionLabel(option) }}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</tui-opt-group>\n\t\t\t\t\t\t</tui-data-list>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filterType.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableSelectFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\t@Input() optionLabel: string | undefined = undefined;\n @Input() optionValue: string | undefined = undefined;\n\n\t@Input() options : any[] = [];\n\tselected : string[] = [];\n\tfilterType : any;\n\tfilterTypes : any[];\n\n\tprotected readonly stringifyOption = (item: any): string => `${item.label}`;\n\tstringifyValue = (value: string): string => this.getOptionLabel(this.options.find((item) => this.getOptionValue(item) === value));\n\n getOptionLabel(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionLabel == undefined || this.optionLabel == '') return item;\n return item[this.optionLabel];\n }\n\n getOptionValue(item: any) {\n\t\tif (!item)\n\t\t\treturn \"\";\n if (this.optionValue == undefined || this.optionValue == '') return item;\n return item[this.optionValue];\n }\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'Contains',\n\t\t\t\texpression: 'sel;con'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Not Contains',\n\t\t\t\texpression: 'sel;ncon'\n\t\t\t}\n\t\t];\n\t\tthis.filterType = this.filterTypes[0];\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.selected = [];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.selected = [];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.selected = [];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType = type;\n\t\t\tthis.selected = filter.value;\n\t\t\tthis.filterApplied.set(true);\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.selected,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { TuiButton, TuiDropdown, TuiInput } from \"@taiga-ui/core\";\nimport { TuiBadgeNotification, TuiBadgedContent, TuiButtonSelect, TuiDataListWrapper, TuiStringifyContentPipe } from \"@taiga-ui/kit\";\nimport { EzUITableFilter } from \"../models/table.filter\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-textfilter',\n imports: [CommonModule, FormsModule, TuiDropdown, TuiDataListWrapper, TuiButton, TuiButtonSelect, TuiStringifyContentPipe, TuiBadgeNotification, TuiBadgedContent, TuiInput],\n template: `\n\t\t@if(column){\n\t\t\t<tui-badged-content>\n\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t<tui-badge-notification\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiSlot=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t1\n\t\t\t\t\t</tui-badge-notification>\n\t\t\t\t}\n\t\t\t\t<button\n\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\tappearance=\"flat-grayscale\"\n\t\t\t\t\tstyle=\"opacity:0.72\"\n\t\t\t\t\t[tuiDropdown]=\"filterPop\"\n\t\t\t\t\t[(tuiDropdownOpen)]=\"filterVisible\"\n\t\t\t\t\t(click)=\"filterVisible.set(true)\"\n\t\t\t\t></button>\n\t\t\t</tui-badged-content>\n\n\t\t\t<ng-template #filterPop>\n\t\t\t\t<div class=\"filterPopContainer\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tappearance=\"outline-grayscale\"\n\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\ttuiButtonSelect\n\t\t\t\t\t\t[(ngModel)]=\"filterType\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ filterType.label }}\n\t\t\t\t\t\t<tui-data-list-wrapper\n\t\t\t\t\t\t\t*tuiDropdown\n\t\t\t\t\t\t\t[itemContent]=\"stringify | tuiStringifyContent\"\n\t\t\t\t\t\t\t[items]=\"filterTypes\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\n\t\t\t\t\t<tui-textfield tuiTextfieldSize=\"s\" (keydown.enter)=\"applyFilter(filterType.expression)\">\n\t\t\t\t\t\t<input tuiInput [(ngModel)]=\"value\"/>\n\t\t\t\t\t</tui-textfield>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\ticonStart=\"funnel\"\n\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t(click)=\"applyFilter(filterType.expression)\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</button>\n\n\t\t\t\t\t@if(filterApplied()){\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttuiButton size=\"s\"\n\t\t\t\t\t\t\ticonStart=\"circle-x\"\n\t\t\t\t\t\t\tappearance=\"secondary\"\n\t\t\t\t\t\t\ttuiButton\n\t\t\t\t\t\t\t(click)=\"clearFilter()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tClear\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t}\n `,\n\tstyles: `\n\t\t.filterPopContainer {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 10px;\n\t\t\tpadding: 10px;\n\t\t\tmin-width:20rem;\n\t\t}\n\t`\n})\nexport class EzUITableTextFilter {\n @Input() column!: string;\n\n\tfilterApplied = signal<boolean>(false);\n\tfilterVisible = signal<boolean>(false);\n\n\ttable : EzUITable;\n\n\tvalue : string = '';\n\tfilterType : any;\n\tfilterTypes : any[];\n\n\tprotected readonly stringify = (item: any): string => `${item.label}`;\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.filterTypes = [\n\t\t\t{\n\t\t\t\tlabel: 'Contains',\n\t\t\t\texpression: 'str;con'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Not Contains',\n\t\t\t\texpression: 'str;ncon'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Starts With',\n\t\t\t\texpression: 'str;sta'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Ends With',\n\t\t\t\texpression: 'str;end'\n\t\t\t}\n\t\t];\n\t\tthis.filterType = this.filterTypes[0];\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst filter = x.filters.find(x => x.column == this.column);\n\t\t\tif (!filter)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst type = this.filterTypes.find(x => x.expression == filter!.expression);\n\t\t\tif (!type)\n\t\t\t{\n\t\t\t\tthis.filterType = this.filterTypes[0];\n\t\t\t\tthis.value = \"\";\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.filterType = type;\n\t\t\tthis.value = filter.value;\n\t\t\tthis.filterApplied.set(true);\n\t\t})\n\t}\n\n\tapplyFilter(expression : string){\n\t\tthis.table.setFilter({\n\t\t\tcolumn: this.column,\n\t\t\tvalue: this.value,\n\t\t\texpression: expression,\n\t\t} as EzUITableFilter);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(true);\n\t}\n\n\tclearFilter(){\n\t\tthis.table.clearFilter(this.column);\n\t\tthis.filterVisible.set(false);\n\t\tthis.filterApplied.set(false);\n\t}\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input, signal } from \"@angular/core\";\nimport { TuiButton } from \"@taiga-ui/core\";\nimport { EzUITableSort } from \"../models/table.sort\";\nimport { EzUITable } from \"../table\";\n\n@Component({\n selector: 'ezui-table-sortable',\n imports: [CommonModule, TuiButton],\n template: `\n\t\t@if(column){\n\t\t\t<button tuiButton style=\"opacity:0.72\" [iconStart]=\"icon()\" size=\"s\" appearance=\"flat-grayscale\" (click)=\"sort()\"></button>\n\t\t}\n `\n})\nexport class EzUITTableSortableColumn {\n @Input() column!: string;\n\n\ttable : EzUITable;\n\tstate : 'asc' | 'desc' | 'none' = 'none';\n\ticon = signal<string | null | undefined>(\"text-align-justify\");\n\n\tconstructor(table : EzUITable){\n\t\tthis.table = table;\n\n\t\tthis.table.onPresetChange.subscribe(x => {\n\t\t\tif (!x)\n\t\t\t{\n\t\t\t\tthis.state = 'none'\n\t\t\t\tthis.icon.set('text-align-justify');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst sort = x.sorts.find(x => x.column == this.column);\n\t\t\tif (!sort)\n\t\t\t{\n\t\t\t\tthis.state = 'none'\n\t\t\t\tthis.icon.set('text-align-justify');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.state = sort.state;\n\n\t\t\tswitch(sort.state){\n\t\t\t\tcase 'none':\n\t\t\t\t\tthis.icon.set('text-align-justify');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'asc':\n\t\t\t\t\tthis.icon.set('arrow-up-wide-narrow');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'desc':\n\t\t\t\t\tthis.icon.set('arrow-down-wide-narrow');\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t})\n\t}\n\n\tsort(){\n\t\tswitch(this.state){\n\t\t\tcase 'none':\n\t\t\t\tthis.state = 'asc';\n\t\t\t\tthis.table.setSort({ column: this.column, state: this.state } as EzUITableSort)\n\t\t\t\tthis.icon.set('arrow-up-wide-narrow');\n\t\t\t\tbreak;\n\t\t\tcase 'asc':\n\t\t\t\tthis.state = 'desc';\n\t\t\t\tthis.table.setSort({ column: this.column, state: this.state } as EzUITableSort)\n\t\t\t\tthis.icon.set('arrow-down-wide-narrow');\n\t\t\t\tbreak;\n\t\t\tcase 'desc':\n\t\t\t\tthis.state = 'none';\n\t\t\t\tthis.table.clearSort(this.column);\n\t\t\t\tthis.icon.set('text-align-justify');\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, signal } from '@angular/core';\nimport { TuiResponsiveDialogService } from '@taiga-ui/addon-mobile';\nimport { TuiNotificationService } from '@taiga-ui/core';\nimport { TUI_CONFIRM } from '@taiga-ui/kit';\nimport { firstValueFrom, switchMap } from 'rxjs';\n\n@Directive()\nexport abstract class BaseCRUDInterface {\n public isLoading = signal<boolean>(false);\n\n public allItems = signal<any[]>([]);\n public currentItem = signal<any>({} as any);\n public newItemTemplate(): any {\n return {} as any;\n }\n\n public getAllEndpoint: string = '';\n public getEndpoint: string = '';\n public patchEndpoint: string = '';\n public postEndpoint: string = '';\n public deleteEndpoint: string = '';\n\n public canRead: boolean = true;\n public canWrite: boolean = true;\n\n public showDialog = signal<boolean>(false);\n\n public loadOnInit: boolean = true;\n\n public showDeleteDialog: boolean = true;\n public deleteDialogMessage : string = \"Are you sure you want to delete this item?\";\n public showSaveDialog: boolean = false;\n public savewDialogMessage : string = \"Are you sure you want to save this item?\";\n\n constructor(\n public http: HttpClient,\n public messageService: TuiNotificationService,\n public confirmationService: TuiResponsiveDialogService\n ) {}\n\n async ngOnInit() {\n if (this.canRead && this.loadOnInit) await this.loadItems();\n }\n\n public async loadItems() {\n if (!this.canRead) throw new Error('You do not have read permissions!');\n this.isLoading.set(true);\n try {\n this.allItems.set(await firstValueFrom(this.http.get<any[]>(this.getAllEndpoint)));\n } catch {\n\t\t\tthis.messageService.open(\"Failed to load all items!\", {\n\t\t\t\tlabel: \"Load Error\",\n\t\t\t\tappearance: 'negative',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 10000\n\t\t\t}).subscribe();\n }\n this.isLoading.set(false);\n }\n\n async saveItem() {\n if (!this.canWrite) throw new Error('You do not have write permissions!');\n\n if (this.showSaveDialog){\n\t\t\tthis.confirmationService.open<boolean>(\n\t\t\t\tTUI_CONFIRM,\n\t\t\t\t{\n\t\t\t\t\tlabel: this.savewDialogMessage,\n\t\t\t\t\tsize: 's'\n\t\t\t\t})\n\t\t\t\t.pipe(switchMap(async (response) => {\n\t\t\t\t\tif (response === true)\n\t\t\t\t\t\tawait this.saveItemInner();\n\t\t\t\t}))\n\t .subscribe();\n }\n else\n await this.saveItemInner();\n }\n\n async saveItemInner(){\n this.isLoading.set(true);\n try {\n const current = this.currentItem();\n if (current.id != '') {\n await firstValueFrom(this.http.patch(this.patchEndpoint, current));\n\t\t\t\tthis.messageService.open(\"The item was updated with the new values\", {\n\t\t\t\t\tlabel: \"Item Updated\",\n\t\t\t\t\tappearance: 'positive',\n\t\t\t\t\ticon:'circle-x',\n\t\t\t\t\tautoClose: 1000\n\t\t\t\t}).subscribe();\n } else {\n await firstValueFrom(this.http.post(this.postEndpoint, current));\n\t\t\t\tthis.messageService.open(\"A new items was created\", {\n\t\t\t\t\tlabel: \"Item Created\",\n\t\t\t\t\tappearance: 'positive',\n\t\t\t\t\ticon:'circle-x',\n\t\t\t\t\tautoClose: 1000\n\t\t\t\t}).subscribe();\n }\n this.showDialog.set(false);\n await this.loadItems();\n } catch {\n\t\t\tthis.messageService.open(\"Save failed!\", {\n\t\t\t\tlabel: \"Save Error\",\n\t\t\t\tappearance: 'negative',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 10000\n\t\t\t}).subscribe();\n }\n this.isLoading.set(false);\n }\n\n async deleteItem() {\n if (!this.canWrite) throw new Error('You do not have write permissions!');\n\n if (this.showDeleteDialog){\n\t\t\tthis.confirmationService.open<boolean>(\n\t\t\t\tTUI_CONFIRM,\n\t\t\t\t{\n\t\t\t\t\tlabel: this.deleteDialogMessage,\n\t\t\t\t\tsize: 's'\n\t\t\t\t})\n\t\t\t\t.pipe(switchMap(async (response) => {\n\t\t\t\t\tif (response === true)\n\t\t\t\t\t\tawait this.deleteItemInner();\n\t\t\t\t}))\n\t .subscribe();\n }\n else\n await this.deleteItemInner();\n }\n\n async deleteItemInner() {\n this.isLoading.set(true);\n try {\n await firstValueFrom(this.http.delete(this.deleteEndpoint + '?ID=' + this.currentItem().id));\n\t\t\tthis.messageService.open(\"The item was successfully deleted\", {\n\t\t\t\tlabel: \"Item Deleted\",\n\t\t\t\tappearance: 'positive',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 1000\n\t\t\t}).subscribe();\n this.showDialog.set(false);\n await this.loadItems();\n } catch {\n\t\t\tthis.messageService.open(\"Delete failed!\", {\n\t\t\t\tlabel: \"Delete Error\",\n\t\t\t\tappearance: 'negative',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 10000\n\t\t\t}).subscribe();\n }\n this.isLoading.set(false);\n }\n\n public async showEditItem(id: string) {\n if (!this.canRead) throw new Error('You do not have read permissions!');\n this.isLoading.set(true);\n try {\n const fetched = await firstValueFrom(this.http.get<any>(this.getEndpoint + '?ID=' + id));\n this.currentItem.set(fetched);\n this.showDialog.set(true);\n } catch {\n\t\t\tthis.messageService.open(\"Loading failed!\", {\n\t\t\t\tlabel: \"Load Error\",\n\t\t\t\tappearance: 'negative',\n\t\t\t\ticon:'circle-x',\n\t\t\t\tautoClose: 10000\n\t\t\t}).subscribe();\n }\n this.isLoading.set(false);\n }\n\n public async showAddItem() {\n this.currentItem.set(this.newItemTemplate());\n this.showDialog.set(true);\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Directive, EventEmitter, signal } from \"@angular/core\";\nimport { firstValueFrom } from \"rxjs\";\n\n@Directive()\nexport class BaseListInterface<T,TList extends IIdentifiable> {\n public items = signal<TList[]>([]);\n\n public getAllEndpoint: string = '';\n public getEndpoint: string = '';\n\n\tpublic canGetAll : boolean = true;\n\tpublic canGet : boolean = true;\n\n isLoaded : boolean = false;\n isLoading : boolean = false;\n\n\tpublic onUpdated : EventEmitter<any> = new EventEmitter();\n\n constructor(\n public http: HttpClient\n ) {\n }\n\n public async Load(){\n if (!this.isLoading && this.canGetAll){\n this.isLoaded = false;\n this.isLoading = true;\n\t\t\tconst value = await firstValueFrom(this.http.get<TList[]>(this.getAllEndpoint));\n this.items.set(value);\n this.isLoading = false;\n this.isLoaded = true;\n\t\t\tthis.onUpdated.emit();\n }\n\t\telse {\n\t\t\tthis.isLoaded = true;\n\t\t}\n }\n\n public async List() : Promise<TList[]>{\n if (!this.isLoaded)\n await this.waitForValue(() => this.isLoaded === true);\n return this.items();\n }\n\n public async ListGet(id : string) : Promise<TList | null>{\n if (!this.isLoaded)\n await this.waitForValue(() => this.isLoaded === true);\n const target = this.items().find(x => x.id == id);\n if (target)\n return target;\n return null;\n }\n\n public async Get(id : string) : Promise<T> {\n\t\tif (!this.canGet)\n\t\t\treturn null as any;\n const item = await firstValueFrom(this.http.get<T>(this.getEndpoint + \"?ID=\" + id));\n return item;\n }\n\n async waitForValue(test : any) {\n const delayMs = 500;\n while(!test()) await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n}\n\nexport interface IIdentifiable {\n id : string;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { TuiChevron } from '@taiga-ui/kit';\nimport { TuiAsideGroupComponent, TuiNavigation } from \"@taiga-ui/layout\";\nimport { MenuItem } from './models/MenuItem';\n\n@Component({\n selector: 'ezui-sidebar-item',\n standalone: true,\n imports: [CommonModule, RouterLink, TuiNavigation, TuiAsideGroupComponent, TuiChevron],\n template: `\n\t\t@if(item && item.visible){\n\t\t\t@if(item.items && item.items.length > 0){\n\t\t\t\t<tui-aside-group [(open)]=\"item.expanded\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\t\ttuiAsideItem\n\t\t\t\t\t\ttuiChevron\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{item.label}}\n\n\t\t\t\t\t\t<ng-template>\n\t\t\t\t\t\t\t@for(subitem of item.items; track subitem){\n\t\t\t\t\t\t\t\t<ezui-sidebar-item [item]=\"subitem\" (onItemClick)=\"onItemClick.emit()\"/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t</button>\n\t\t\t\t</tui-aside-group>\n\t\t\t}\n\t\t\t@else {\n\t\t\t\t<button\n\t\t\t\t\t[iconStart]=\"item.icon\"\n\t\t\t\t\ttuiAsideItem\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t[routerLinkActiveOptions]=\"{ exact:true }\"\n\t\t\t\t\t[routerLink]=\"item.routerLink\"\n\t\t\t\t\t[queryParams]=\"item.queryParams\"\n\t\t\t\t\t(click)=\"item.command && item.command();onItemClick.emit()\"\n\t\t\t\t>\n\t\t\t\t\t{{item.label}}\n\t\t\t\t</button>\n\t\t\t}\n\t\t}\n `\n})\nexport class EzUISideBarItem {\n @Input() item: MenuItem | undefined;\n\n\t@Output() onItemClick = new EventEmitter();\n}\n","import { inject, signal } from \"@angular/core\";\nimport { TUI_DARK_MODE } from \"@taiga-ui/core\";\n\ninterface LayoutState {\n isDesktop : boolean,\n isDarkMode : boolean,\n isMenuExpanded : boolean,\n}\n\nexport class EzUILayoutService {\n protected readonly darkMode = inject(TUI_DARK_MODE);\n\n isDarkMode = signal<boolean>(true);\n isDesktop = signal<boolean>(true);\n isMenuExpanded = signal<boolean>(false);\n\n constructor(){\n const existing = localStorage.getItem(\"state\");\n if (existing)\n {\n var state = JSON.parse(existing) as LayoutState\n\t\t this.isDarkMode.set(state.isDarkMode);\n\t\t this.isDesktop.set(state.isDesktop);\n\t\t this.isMenuExpanded.set(state.isMenuExpanded);\n }\n\n\t\tlet isDesktop = this.isDesktop();\n\t\tlet isMenuExpanded = this.isMenuExpanded();\n\n isDesktop = window.innerWidth > 991\n\t\tif (isMenuExpanded){\n\t\t\tif (!isDesktop)\n\t\t\t\tisMenuExpanded = false;\n\t\t}\n\n\t\tthis.isDesktop.set(isDesktop)\n\t\tthis.isMenuExpanded.set(isMenuExpanded)\n\n\t\tthis.darkMode.update((dark) => this.isDarkMode());\n }\n\n public ToggleDarkMode(){\n let isDarkMode = this.isDarkMode();\n this.darkMode.update((dark) => !isDarkMode);\n isDarkMode = !isDarkMode;\n this.isDarkMode.set(isDarkMode);\n this.saveState();\n }\n\n public ToggleMenu(){\n\t\tlet isMenuExpanded = this.isMenuExpanded();\n\t\tisMenuExpanded = !isMenuExpanded;\n\t\tthis.isMenuExpanded.set(isMenuExpanded);\n\t\tthis.saveState();\n }\n\n public SetMenu(to : boolean){\n let isMenuExpanded = this.isMenuExpanded();\n isMenuExpanded = to;\n this.isMenuExpanded.set(isMenuExpanded);\n\t\tthis.saveState();\n }\n\n saveState(){\n localStorage.setItem(\"state\", JSON.stringify({\n\t\t\tisDarkMode: this.isDarkMode(),\n\t\t\tisDesktop: this.isDesktop(),\n\t\t\tisMenuExpanded: this.isMenuExpanded(),\n\t\t} as LayoutState))\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, signal } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { TuiNavigation } from \"@taiga-ui/layout\";\nimport { EzUISideBarItem } from \"./ezui.sidebar.item\";\nimport { MenuItem } from './models/MenuItem';\nimport { EzUILayoutService } from './services/ezui.layout.service';\n\n@Component({\n selector: 'ezui-sidebar',\n standalone: true,\n imports: [CommonModule, TuiNavigation, EzUISideBarItem],\n template: `\n\t\t@if(layoutService.isDesktop()){\n\t\t\t<aside style=\"height:100%\" tuitheme=\"\" [tuiNavigationAside]=\"layoutService.isMenuExpanded()\">\n\t\t\t\t@for(item of sidebarItems(); track item){\n\t\t\t\t\t<ezui-sidebar-item [item]=\"item\"/>\n\t\t\t\t}\n\n\t\t\t\t<footer>\n\t\t\t\t\t@for(item of sidebarFooterItems(); track item){\n\t\t\t\t\t\t<ezui-sidebar-item [item]=\"item\"/>\n\t\t\t\t\t}\n\t\t\t\t</footer>\n\t\t\t</aside>\n\t\t}\n\t\t@else {\n\t\t\t<aside style=\"height:100%\" tuitheme=\"\" [tuiNavigationAside]=\"true\" [style.display]=\"layoutService.isMenuExpanded() ? '' : 'none'\">\n\t\t\t\t@for(item of sidebarItems(); track item){\n\t\t\t\t\t<ezui-sidebar-item [item]=\"item\" (onItemClick)=\"layoutService.isMenuExpanded.set(false)\"/>\n\t\t\t\t}\n\n\t\t\t\t<footer>\n\t\t\t\t\t@for(item of sidebarFooterItems(); track item){\n\t\t\t\t\t\t<ezui-sidebar-item [item]=\"item\" (onItemClick)=\"layoutService.isMenuExpanded.set(false)\"/>\n\t\t\t\t\t}\n\t\t\t\t</footer>\n\t\t\t</aside>\n\t\t}\n `\n})\nexport class EzUISideBar {\n\t@Input() sidebarItems = signal<MenuItem[]>([]);\n\t@Input() sidebarFooterItems = signal<MenuItem[]>([]);\n\thaveMoved = signal<boolean>(false);\n\n\t@Input() baseRoute = signal<string>(\"/\");\n\n constructor(\n \tpublic layoutService: EzUILayoutService,\n\t\t\tprivate router: Router\n\t){\n router.events.subscribe((val) => {\n if (val instanceof NavigationEnd)\n this.initialize()\n });\n\t}\n\n\tngOnInit(){\n\t\tthis.initialize();\n\t}\n\n\tpublic initialize(){\n\t\tvar sidebarItems = [...this.sidebarItems()]\n\t\tvar sidebarFooterItems = [...this.sidebarFooterItems()]\n this.hideEmptySections(sidebarItems);\n this.hideEmptySections(sidebarFooterItems);\n\n if (!this.haveMoved() && this.router.routerState.snapshot.url == this.baseRoute()) this.gotoFirstPage(sidebarItems);\n\n this.setActiveRoute(sidebarItems);\n this.setActiveRoute(sidebarFooterItems);\n\n\t\tthis.sidebarItems.set(sidebarItems)\n\t\tthis.sidebarFooterItems.set(sidebarFooterItems)\n\t}\n\n hideEmptySections(menu: MenuItem[]) {\n\t\tfor(let item of menu) {\n\t\t\tif (item.items) {\n this.hideEmptySections(item.items);\n if (item.items.every((x) => x.visible == false)) {\n item.visible = false;\n }\n }\n\t\t}\n }\n\n setActiveRoute(menu: MenuItem[], parent: MenuItem | null = null) {\n for(let item of menu) {\n if (item.routerLink) {\n if (item.routerLink == this.router.routerState.snapshot.url) {\n item.expanded = true;\n if (parent) parent.expanded = true;\n }\n }\n if (item.items) this.setActiveRoute(item.items, item);\n }\n }\n\n gotoFirstPage(menu: MenuItem[]) {\n var first = menu.find((x) => x.visible == true);\n if (first) {\n if (first.items) {\n this.gotoFirstPage(first.items);\n } else {\n this.haveMoved.set(true);\n this.router.navigate([first.routerLink]);\n }\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { TuiButton } from '@taiga-ui/core';\nimport { TuiNavigation } from '@taiga-ui/layout';\nimport { EzUILayout } from './ezui.layout';\nimport { EzUILayoutService } from './services/ezui.layout.service';\n\n@Component({\n selector: 'ezui-topbar',\n standalone: true,\n imports: [CommonModule, TuiNavigation, TuiButton],\n template: `\n\t<header tuiNavigationHeader tuitheme=\"\">\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\ttuiIconButton\n\t\t\t[iconStart]=\"layoutService.isDesktop() ? (layoutService.isMenuExpanded() ? '@tui.chevron-left' : '@tui.chevron-right') : (layoutService.isMenuExpanded() ? '@tui.chevron-up' : '@tui.chevron-down')\"\n\t\t\t(click)=\"layoutService.ToggleMenu()\"\n\t\t>\n\t\t</button>\n\t\t<span tuiNavigationLogo>\n\t\t\t<ng-container [ngTemplateOutlet]=\"layout.topbarlogo\"></ng-container>\n\t\t</span>\n\t\t<hr style=\"min-inline-size:0px\"/>\n\t\t<button\n\t\t\t[iconStart]=\"layoutService.isDarkMode() ? 'moon' : 'sun'\"\n\t\t\ttuiIconButton\n\t\t\ttype=\"button\"\n\t\t\t(click)=\"layoutService.ToggleDarkMode()\"\n\t\t>\n\t\t</button>\n\n\t\t<ng-container [ngTemplateOutlet]=\"layout.topbarright\"></ng-container>\n\t</header>\n `\n})\nexport class EzUITopBar {\n\tconstructor(\n\t\tpublic layoutService: EzUILayoutService,\n\t\tpublic layout : EzUILayout\n\t){}\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild, Input, signal, TemplateRef, viewChild } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TuiRoot, TuiScrollbar } from \"@taiga-ui/core\";\nimport { TuiNavigation } from '@taiga-ui/layout';\nimport { EzUISideBar } from \"./ezui.sidebar\";\nimport { EzUITopBar } from \"./ezui.topbar\";\nimport { MenuItem } from './models/MenuItem';\nimport { EzUILayoutService } from './services/ezui.layout.service';\n\n@Component({\n selector: 'ezui-layout',\n standalone: true,\n imports: [CommonModule, RouterModule, EzUITopBar, EzUISideBar, TuiNavigation, TuiScrollbar, TuiRoot],\n template: `\n\t<tui-root class=\"rootContainer\">\n\t\t<div class=\"layout-wrapper\">\n\t\t\t<ezui-topbar #topbar></ezui-topbar>\n\t\t\t<div class=\"layout-wrapper-split\">\n\t\t\t\t<ezui-sidebar\n\t\t\t\t\t#sidebar\n\t\t\t\t\t[sidebarItems]=\"sidebarItems\"\n\t\t\t\t\t[sidebarFooterItems]=\"sidebarFooterItems\"\n\t\t\t\t\t[baseRoute]=\"baseRoute\"\n\t\t\t\t\t[style.width]=\"layoutService.isDesktop() ? '' : '0px'\"></ezui-sidebar>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"layout-main-container\"\n\t\t\t\t\t[style.opacity]=\"layoutService.isDesktop() ? 1 : (layoutService.isMenuExpanded() ? 0.5 : 1)\">\n\t\t\t\t\t<tui-scrollbar class=\"layout-main\">\n\t\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t\t</tui-scrollbar>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</tui-root>\n `,\n\tstyles: `\n\t\t::ng-deep .rootContainer .t-root-content {\n\t\t\tdisplay:flex;\n\t\t\theight:100vh;\n\t\t\twidth:100vw;\n\t\t}\n\n\t\t.layout-wrapper {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\theight:100vh;\n\t\t\tmin-height: 100vh;\n\t\t\tmax-height: 100vh;\n\t\t}\n\n\t\t.layout-wrapper-split {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\twidth: 100%;\n\t\t\theight:100%;\n\t\t\toverflow:hidden;\n\t\t\tmax-width:100vw;\n\t\t}\n\n\t\t.layout-main-container {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tmin-height: inherit;\n\t\t\tmax-height: inherit;\n\t\t\twidth:100%;\n\t\t\tjustify-content: space-between;\n\t\t\toverflow:hidden;\n\t\t}\n\n\t\t.layout-main {\n\t\t\tflex: 1 1 auto;\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t::ng-deep .layout-main > .t-content {\n\t\t\tpadding:1rem;\n\t\t\tdisplay:flex;\n\t\t\tblock-size:auto !important;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t`\n})\nexport class EzUILayout {\n\t@Input() sidebarItems = signal<MenuItem[]>([]);\n\t@Input() sidebarFooterItems = signal<MenuItem[]>([]);\n\t@Input() baseRoute = signal<string>(\"/\");\n\n\t@ContentChild('topbarright', { static: false }) public topbarright: TemplateRef<any> | undefined;\n\t@ContentChild('topbarlogo', { static: false }) public topbarlogo: TemplateRef<any> | undefined;\n\n\tsidebar = viewChild<EzUISideBar>(\"sidebar\");\n\ttopbar = viewChild<EzUITopBar>(\"topbar\");\n\n constructor(\n \tpublic layoutService: EzUILayoutService,\n\t){\n\t}\n}\n\n\n","// Components\nexport * from './src/components/booleaninput';\nexport * from './src/components/dateinput';\nexport * from './src/components/datetimeinput';\nexport * from './src/components/dialog';\nexport * from './src/components/fileinput';\nexport * from './src/components/iconselector';\nexport * from './src/components/markdowneditor';\nexport * from './src/components/menubar';\nexport * from './src/components/multiselect';\nexport * from './src/components/numberinput';\nexport * from './src/components/passwordinput';\nexport * from './src/components/select';\nexport * from './src/components/showmoretext';\nexport * from './src/components/table/filters/table.booleanfilter';\nexport * from './src/components/table/filters/table.datefilter';\nexport * from './src/components/table/filters/table.datetimefilter';\nexport * from './src/components/table/filters/table.numberfilter';\nexport * from './src/components/table/filters/table.selectfilter';\nexport * from './src/components/table/filters/table.textfilter';\nexport * from './src/components/table/helpers/table.filterhelpers';\nexport * from './src/components/table/models/table.filter';\nexport * from './src/components/table/models/table.filterMethod';\nexport * from './src/components/table/models/table.sort';\nexport * from './src/components/table/models/table.sortFilterPreset';\nexport * from './src/components/table/models/table.sortFilterPresetSave';\nexport * from './src/components/table/models/table.sortMethod';\nexport * from './src/components/table/services/table.filterservice';\nexport * from './src/components/table/sorts/table.sortable';\nexport * from './src/components/table/table';\nexport * from './src/components/textinput';\n\n// Helpers\nexport * from './src/helpers/compressImage';\n\n// Interfaces\nexport * from './src/interfaces/baseCRUDInterface';\nexport * from './src/interfaces/baseListInterface';\n\n// Layout\nexport * from './src/layout/ezui.layout';\nexport * from './src/layout/models/MenuItem';\nexport * from './src/layout/services/ezui.layout.service';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5","i1.EzUILayoutService","i2","i4","i1","i3","i6","uuidv4","i1.EzUITable","i1.EzUITableFilterService","i7","i2.EzUILayout"],"mappings":"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"}