@kris701/ez-ui 1.0.2 → 1.0.3

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.
@@ -2532,5 +2532,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
2532
2532
  * Generated bundle index. Do not edit.
2533
2533
  */
2534
2534
 
2535
- export { BaseCRUDInterface, BaseListService, EzUIDateInput, EzUIFileInput, EzUIFilterHelpers, EzUIMarkdownEditor, EzUIMultiSelect, EzUINumberInput, EzUIPasswordInput, EzUITTableSortableColumn, EzUITable, EzUITableDateFilter, EzUITableFilterService, EzUITableSelectFilter, EzUITableTextFilter, EzUITextInput, compressImage };
2535
+ export { BaseCRUDInterface, BaseListService, EzUIDateInput, EzUIFileInput, EzUIFilterHelpers, EzUIMarkdownEditor, EzUIMenuBar, EzUIMenuBarSubDataList, EzUIMultiSelect, EzUINumberInput, EzUIPasswordInput, EzUITTableSortableColumn, EzUITable, EzUITableDateFilter, EzUITableFilterService, EzUITableSelectFilter, EzUITableTextFilter, EzUITextInput, compressImage };
2536
2536
  //# sourceMappingURL=kris701-ez-ui.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"kris701-ez-ui.mjs","sources":["../../../projects/ez-ui/src/components/dateinput.ts","../../../projects/ez-ui/src/components/fileinput.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/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.datefilter.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/components/textinput.ts","../../../projects/ez-ui/src/interfaces/baseCRUDInterface.ts","../../../projects/ez-ui/src/interfaces/baseListService.ts","../../../projects/ez-ui/public-api.ts","../../../projects/ez-ui/kris701-ez-ui.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\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],\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 tuiInputDate [(ngModel)]=\"internalValue\" (ngModelChange)=\"updateValue()\" [disabled]=\"disabled\" [min]=\"min ? TuiDay.fromLocalNativeDate(min) : null\" [max]=\"max ? TuiDay.fromLocalNativeDate(max) : null\"/>\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 | null = null;\n\t@Input() max : Date | null = null;\n\n\tTuiDay = TuiDay;\n\n @Input() value: Date | string = new Date;\n @Output() valueChange = new EventEmitter<Date | string>();\n\n\tinternalValue : 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.value = new Date(this.value);\n\t\t\tthis.internalValue = TuiDay.fromUtcNativeDate(this.value);\n }\n }\n\n\tupdateValue(){\n\t\tif (this.internalValue){\n\t\t\tthis.value = this.internalValue?.toUtcNativeDate();\n\t\t\tthis.valueChange.emit(this.value);\n\t\t}\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\tvar files = this.files();\n\t\tvar 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","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}\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\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>\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\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>\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\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>\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>\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} 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 } as MenuBarItem,\n ])\n\n async onFileSelected(event: any) {\n var files: File[] = Array.from(event.target.files);\n if (files && files.length > 0) {\n var 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 var 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 var compressed = await compressImage(file, 0.5, 300, 300);\n var asBase64 = await this.toBase65(compressed as File);\n if (asBase64 && this.editor){\n var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var 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, 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],\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 *tuiItem />\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<button tuiOption [value]=\"getOptionValue(item)\">\n\t\t\t\t\t\t{{ getOptionLabel(item) }}\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 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, 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;padding:5px;padding-top:0px;'\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\tvar item = localStorage.getItem(this.storageKey)\n\t\t\t\tif (item){\n\t\t\t\t\tvar 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\tvar 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\tvar 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\tvar 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\tvar presets = this.presets();\n\t\t\tvar 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\tvar presets = this.presets();\n\t\tvar target = presets.findIndex(x => x.id == id);\n\t\tif (target != -1)\n\t\t{\n\t\t\tvar 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\tvar 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\tvar 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\tvar presets = this.presets();\n\t\tvar 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\tvar 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\tvar 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 textFilter(values: any[], fn : (i : string) => boolean, column : string) : any[]{\n\t\tvar filtered = []\n\t\tfor(let value of values)\n\t\t{\n\t\t\tvar asStr : string = value[column];\n\t\t\tif (fn(asStr))\n\t\t\t\tfiltered.push(value);\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\tvar filtered = []\n\t\tfor(let value of values)\n\t\t{\n\t\t\tvar asDate : Date = new Date(value[column]);\n\t\t\tif (fn(asDate))\n\t\t\t\tfiltered.push(value);\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.textFilter(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.textFilter(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.textFilter(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.textFilter(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.textFilter(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.textFilter(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\t]\n\n\tpublic sort(values : any[], sort : EzUITableSort) : any[]{\n\t\tvar 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\tvar split = filter.expression.split(';');\n\t\tvar 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<tui-block-status>\n\t\t\t\t\t\t<tui-icon tuiSlot=\"top\" icon=\"grid-2x2-x\" />\n\n\t\t\t\t\t\t<h3>No Data</h3>\n\n\t\t\t\t\t\tNo data to display.\n\t\t\t\t\t</tui-block-status>\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\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t@if(allowPresets){\n\t\t\t\t\t\t<ezui-table-presets #presetHeader [storageKey]=\"storageKey\" (onPresetChange)=\"onPresetChange.emit($event)\">\n\t\t\t\t\t\t</ezui-table-presets>\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@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>\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\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>\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\tdisplay:flex;\n\t\t\t\theight:100%;\n\t\t\t\twidth:100%;\n\t\t\t\tflex-direction: column;\n\n\t\t\t\t> .t-content {\n\t\t\t\t\tdisplay:flex;\n\t\t\t\t\theight:100%;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\tgap:0.5rem;\n\t\t\t\t\toverflow-x:auto;\n\t\t\t\t}\n\n\t\t\t\t> .t-loader {\n\t\t\t\t\tposition:absolute;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\theight:100%;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t::ng-deep tui-scrollbar {\n\t\t\t\t> .t-content {\n\t\t\t\t\tdisplay:flex;\n\t\t\t\t\tgap:10px;\n\t\t\t\t\twidth:0px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.ezui-table-header {\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-direction: row;\n\t\t\t\tgap:10px;\n\t\t\t\tpadding-top:5px;\n\t\t\t\tpadding-left:5px;\n\t\t\t\tpadding-right:5px;\n\t\t\t\tpadding-bottom:0px;\n\t\t\t}\n\n\t\t\t.ezui-table-footer {\n\t\t\t\tdisplay:flex;\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\n\t\t\t\tbutton {\n\t\t\t\t\twidth:100%;\n\t\t\t\t\theight:100%;\n\t\t\t\t\tborder-radius: 0px;\n\t\t\t\t}\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\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\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\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\tvar fromIndex = this.pageSize() * this.page();\n\t\tvar toIndex = fromIndex + this.pageSize();\n\t\tthis.displayValues.set(this.internalValues.slice(fromIndex, toIndex));\n\t}\n\n\tapplySorts(){\n\t\tvar sorted = [...this.internalValues]\n\t\tfor(var 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\tvar filtered = [...this.values]\n\t\tfor(var 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\tvar sorts = this.sorts();\n\t\tvar 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\tvar sorts = this.sorts();\n\t\tvar 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\tvar filters = this.filters();\n\t\tvar 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\tvar filters = this.filters();\n\t\tvar 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 { 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<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 (keydown.enter)=\"applyFilter(filterType.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(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\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 : 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 = 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 = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar 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 = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar 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 = [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 = 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]=\"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<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 ? 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 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]=\"option\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{{ 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\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() options : string[] = [];\n\tselected : 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: '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\tvar 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\tvar 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\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\tvar 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\tvar 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\tvar 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 { 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 { 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 var 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 var 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 BaseListService<T,TList extends IIdentifiable> {\n public items = signal<TList[]>([]);\n\n public getAllEndpoint: string = '';\n public getEndpoint: string = '';\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){\n this.isLoaded = false;\n this.isLoading = true;\n\t\t\tvar 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 }\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 var 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 var 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","// Components\nexport * from './src/components/dateinput';\nexport * from './src/components/fileinput';\nexport * from './src/components/markdowneditor';\nexport * from './src/components/multiselect';\nexport * from './src/components/numberinput';\nexport * from './src/components/passwordinput';\nexport * from './src/components/table/filters/table.datefilter';\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/baseListService';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5","i2","i1","i3","i4","i6","uuidv4","i1.EzUITable","i1.EzUITableFilterService","i7"],"mappings":"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"}
1
+ {"version":3,"file":"kris701-ez-ui.mjs","sources":["../../../projects/ez-ui/src/components/dateinput.ts","../../../projects/ez-ui/src/components/fileinput.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/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.datefilter.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/components/textinput.ts","../../../projects/ez-ui/src/interfaces/baseCRUDInterface.ts","../../../projects/ez-ui/src/interfaces/baseListService.ts","../../../projects/ez-ui/public-api.ts","../../../projects/ez-ui/kris701-ez-ui.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\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],\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 tuiInputDate [(ngModel)]=\"internalValue\" (ngModelChange)=\"updateValue()\" [disabled]=\"disabled\" [min]=\"min ? TuiDay.fromLocalNativeDate(min) : null\" [max]=\"max ? TuiDay.fromLocalNativeDate(max) : null\"/>\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 | null = null;\n\t@Input() max : Date | null = null;\n\n\tTuiDay = TuiDay;\n\n @Input() value: Date | string = new Date;\n @Output() valueChange = new EventEmitter<Date | string>();\n\n\tinternalValue : 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.value = new Date(this.value);\n\t\t\tthis.internalValue = TuiDay.fromUtcNativeDate(this.value);\n }\n }\n\n\tupdateValue(){\n\t\tif (this.internalValue){\n\t\t\tthis.value = this.internalValue?.toUtcNativeDate();\n\t\t\tthis.valueChange.emit(this.value);\n\t\t}\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\tvar files = this.files();\n\t\tvar 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","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}\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\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>\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\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>\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\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>\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>\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} 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 } as MenuBarItem,\n ])\n\n async onFileSelected(event: any) {\n var files: File[] = Array.from(event.target.files);\n if (files && files.length > 0) {\n var 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 var 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 var compressed = await compressImage(file, 0.5, 300, 300);\n var asBase64 = await this.toBase65(compressed as File);\n if (asBase64 && this.editor){\n var editor = this.editor.nativeElement;\n var start = editor.selectionStart;\n var finish = editor.selectionEnd;\n var sel = editor.value.substring(start, finish);\n var 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 var 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, 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],\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 *tuiItem />\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<button tuiOption [value]=\"getOptionValue(item)\">\n\t\t\t\t\t\t{{ getOptionLabel(item) }}\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 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, 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;padding:5px;padding-top:0px;'\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\tvar item = localStorage.getItem(this.storageKey)\n\t\t\t\tif (item){\n\t\t\t\t\tvar 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\tvar 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\tvar 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\tvar 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\tvar presets = this.presets();\n\t\t\tvar 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\tvar presets = this.presets();\n\t\tvar target = presets.findIndex(x => x.id == id);\n\t\tif (target != -1)\n\t\t{\n\t\t\tvar 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\tvar 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\tvar 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\tvar presets = this.presets();\n\t\tvar 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\tvar 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\tvar 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 textFilter(values: any[], fn : (i : string) => boolean, column : string) : any[]{\n\t\tvar filtered = []\n\t\tfor(let value of values)\n\t\t{\n\t\t\tvar asStr : string = value[column];\n\t\t\tif (fn(asStr))\n\t\t\t\tfiltered.push(value);\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\tvar filtered = []\n\t\tfor(let value of values)\n\t\t{\n\t\t\tvar asDate : Date = new Date(value[column]);\n\t\t\tif (fn(asDate))\n\t\t\t\tfiltered.push(value);\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.textFilter(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.textFilter(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.textFilter(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.textFilter(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.textFilter(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.textFilter(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\t]\n\n\tpublic sort(values : any[], sort : EzUITableSort) : any[]{\n\t\tvar 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\tvar split = filter.expression.split(';');\n\t\tvar 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<tui-block-status>\n\t\t\t\t\t\t<tui-icon tuiSlot=\"top\" icon=\"grid-2x2-x\" />\n\n\t\t\t\t\t\t<h3>No Data</h3>\n\n\t\t\t\t\t\tNo data to display.\n\t\t\t\t\t</tui-block-status>\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\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t@if(allowPresets){\n\t\t\t\t\t\t<ezui-table-presets #presetHeader [storageKey]=\"storageKey\" (onPresetChange)=\"onPresetChange.emit($event)\">\n\t\t\t\t\t\t</ezui-table-presets>\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@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>\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\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>\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\tdisplay:flex;\n\t\t\t\theight:100%;\n\t\t\t\twidth:100%;\n\t\t\t\tflex-direction: column;\n\n\t\t\t\t> .t-content {\n\t\t\t\t\tdisplay:flex;\n\t\t\t\t\theight:100%;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\tgap:0.5rem;\n\t\t\t\t\toverflow-x:auto;\n\t\t\t\t}\n\n\t\t\t\t> .t-loader {\n\t\t\t\t\tposition:absolute;\n\t\t\t\t\twidth:100%;\n\t\t\t\t\theight:100%;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t::ng-deep tui-scrollbar {\n\t\t\t\t> .t-content {\n\t\t\t\t\tdisplay:flex;\n\t\t\t\t\tgap:10px;\n\t\t\t\t\twidth:0px;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.ezui-table-header {\n\t\t\t\tdisplay:flex;\n\t\t\t\tflex-direction: row;\n\t\t\t\tgap:10px;\n\t\t\t\tpadding-top:5px;\n\t\t\t\tpadding-left:5px;\n\t\t\t\tpadding-right:5px;\n\t\t\t\tpadding-bottom:0px;\n\t\t\t}\n\n\t\t\t.ezui-table-footer {\n\t\t\t\tdisplay:flex;\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\n\t\t\t\tbutton {\n\t\t\t\t\twidth:100%;\n\t\t\t\t\theight:100%;\n\t\t\t\t\tborder-radius: 0px;\n\t\t\t\t}\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\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\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\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\tvar fromIndex = this.pageSize() * this.page();\n\t\tvar toIndex = fromIndex + this.pageSize();\n\t\tthis.displayValues.set(this.internalValues.slice(fromIndex, toIndex));\n\t}\n\n\tapplySorts(){\n\t\tvar sorted = [...this.internalValues]\n\t\tfor(var 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\tvar filtered = [...this.values]\n\t\tfor(var 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\tvar sorts = this.sorts();\n\t\tvar 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\tvar sorts = this.sorts();\n\t\tvar 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\tvar filters = this.filters();\n\t\tvar 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\tvar filters = this.filters();\n\t\tvar 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 { 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<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 (keydown.enter)=\"applyFilter(filterType.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(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\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 : 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 = 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 = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar 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 = [TuiDay.currentLocal(), TuiTime.currentLocal()];\n\t\t\t\tthis.filterApplied.set(false);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar 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 = [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 = 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]=\"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<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 ? 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 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]=\"option\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{{ 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\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() options : string[] = [];\n\tselected : 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: '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\tvar 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\tvar 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\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\tvar 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\tvar 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\tvar 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 { 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 { 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 var 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 var 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 BaseListService<T,TList extends IIdentifiable> {\n public items = signal<TList[]>([]);\n\n public getAllEndpoint: string = '';\n public getEndpoint: string = '';\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){\n this.isLoaded = false;\n this.isLoading = true;\n\t\t\tvar 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 }\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 var 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 var 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","// Components\nexport * from './src/components/dateinput';\nexport * from './src/components/fileinput';\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/table/filters/table.datefilter';\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/baseListService';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i5","i2","i1","i3","i4","i6","uuidv4","i1.EzUITable","i1.EzUITableFilterService","i7"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kris701/ez-ui",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.0.0",
6
6
  "@angular/core": "^22.0.0"
@@ -39,6 +39,17 @@ interface MenuBarItem {
39
39
  expanded: boolean;
40
40
  command(): Promise<any>;
41
41
  }
42
+ declare class EzUIMenuBarSubDataList {
43
+ subdatalist: MenuBarItem[];
44
+ static ɵfac: i0.ɵɵFactoryDeclaration<EzUIMenuBarSubDataList, never>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<EzUIMenuBarSubDataList, "tui-data-list[subdatalist]", never, { "subdatalist": { "alias": "subdatalist"; "required": false; }; }, {}, never, never, true, never>;
46
+ }
47
+ declare class EzUIMenuBar implements OnChanges {
48
+ items: MenuBarItem[];
49
+ ngOnChanges(changes: SimpleChanges): void;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<EzUIMenuBar, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<EzUIMenuBar, "ezui-menubar", never, { "items": { "alias": "items"; "required": false; }; }, {}, never, never, true, never>;
52
+ }
42
53
 
43
54
  declare class EzUIMarkdownEditor implements OnChanges {
44
55
  preview: ElementRef<HTMLDivElement> | undefined;
@@ -344,5 +355,5 @@ interface IIdentifiable {
344
355
  id: string;
345
356
  }
346
357
 
347
- export { BaseCRUDInterface, BaseListService, EzUIDateInput, EzUIFileInput, EzUIFilterHelpers, EzUIMarkdownEditor, EzUIMultiSelect, EzUINumberInput, EzUIPasswordInput, EzUITTableSortableColumn, EzUITable, EzUITableDateFilter, EzUITableFilterService, EzUITableSelectFilter, EzUITableTextFilter, EzUITextInput, compressImage };
348
- export type { EzUITableFilter, EzUITableFilterMethod, EzUITableSort, EzUITableSortFilterPreset, EzUITableSortFilterPresetSave, EzUITableSortMethod, IIdentifiable };
358
+ export { BaseCRUDInterface, BaseListService, EzUIDateInput, EzUIFileInput, EzUIFilterHelpers, EzUIMarkdownEditor, EzUIMenuBar, EzUIMenuBarSubDataList, EzUIMultiSelect, EzUINumberInput, EzUIPasswordInput, EzUITTableSortableColumn, EzUITable, EzUITableDateFilter, EzUITableFilterService, EzUITableSelectFilter, EzUITableTextFilter, EzUITextInput, compressImage };
359
+ export type { EzUITableFilter, EzUITableFilterMethod, EzUITableSort, EzUITableSortFilterPreset, EzUITableSortFilterPresetSave, EzUITableSortMethod, IIdentifiable, MenuBarItem };