@kris701/ez-ui 0.0.9 → 0.0.10

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.
Files changed (34) hide show
  1. package/fesm2022/kris701-ez-ui.mjs +1074 -0
  2. package/fesm2022/kris701-ez-ui.mjs.map +1 -0
  3. package/package.json +19 -7
  4. package/types/kris701-ez-ui.d.ts +171 -0
  5. package/index.ts +0 -2
  6. package/ng-package.json +0 -15
  7. package/public-api.ts +0 -15
  8. package/src/components/dateinput.ts +0 -58
  9. package/src/components/floatfileupload.ts +0 -52
  10. package/src/components/floattable/filters/tuiThDateFilter.ts +0 -159
  11. package/src/components/floattable/filters/tuiThSelectFilter.ts +0 -178
  12. package/src/components/floattable/filters/tuiThTextFilter.ts +0 -161
  13. package/src/components/floattable/floattable.presets.ts +0 -197
  14. package/src/components/floattable/floattable.ts +0 -309
  15. package/src/components/floattable/helpers/floattable.filterhelpers.ts +0 -23
  16. package/src/components/floattable/models/FloatTableFilter.ts +0 -5
  17. package/src/components/floattable/models/FloatTableFilterMethod.ts +0 -5
  18. package/src/components/floattable/models/FloatTableSort.ts +0 -4
  19. package/src/components/floattable/models/FloatTableSortFilterPreset.ts +0 -10
  20. package/src/components/floattable/models/FloatTableSortFilterPresetSave.ts +0 -6
  21. package/src/components/floattable/models/FloatTableSortMethod.ts +0 -4
  22. package/src/components/floattable/services/floattable.filterservice.ts +0 -110
  23. package/src/components/floattable/sorts/tuiThSortable.ts +0 -75
  24. package/src/components/markdowneditor.ts +0 -340
  25. package/src/components/menubar.ts +0 -144
  26. package/src/components/multiselect.ts +0 -77
  27. package/src/components/numberinput.ts +0 -45
  28. package/src/components/passwordinput.ts +0 -44
  29. package/src/components/textinput.ts +0 -40
  30. package/src/helpers/compressImage.ts +0 -20
  31. package/src/interfaces/baseCRUDInterface.ts +0 -181
  32. package/src/interfaces/baseListService.ts +0 -62
  33. package/tsconfig.lib.json +0 -12
  34. package/tsconfig.lib.prod.json +0 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kris701-ez-ui.mjs","sources":["../../../projects/ez-ui/src/components/dateinput.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/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 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, 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/markdowneditor';\nexport * from './src/components/multiselect';\nexport * from './src/components/numberinput';\nexport * from './src/components/passwordinput';\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","i1","i2","i3","i4","i6"],"mappings":"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"}
package/package.json CHANGED
@@ -1,22 +1,34 @@
1
1
  {
2
2
  "name": "@kris701/ez-ui",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.0.0",
6
6
  "@angular/core": "^22.0.0"
7
7
  },
8
8
  "repository": {
9
- "type": "git",
10
- "url": "git://github.com/kris701/EzUI.git"
9
+ "type": "git",
10
+ "url": "git://github.com/kris701/EzUI.git"
11
11
  },
12
12
  "dependencies": {
13
13
  "@taiga-ui/addon-mobile": "^5.15.0",
14
14
  "@taiga-ui/core": "^5.15.0",
15
15
  "@taiga-ui/kit": "^5.15.0",
16
- "@taiga-ui/icons": "^5.15.0",
16
+ "@taiga-ui/icons": "^5.15.0",
17
17
  "compressorjs": "^1.3.0",
18
- "marked": "^18.0.6",
18
+ "marked": "^18.0.6",
19
19
  "tslib": "^2.3.0"
20
20
  },
21
- "sideEffects": false
22
- }
21
+ "sideEffects": false,
22
+ "module": "fesm2022/kris701-ez-ui.mjs",
23
+ "typings": "types/kris701-ez-ui.d.ts",
24
+ "exports": {
25
+ "./package.json": {
26
+ "default": "./package.json"
27
+ },
28
+ ".": {
29
+ "types": "./types/kris701-ez-ui.d.ts",
30
+ "default": "./fesm2022/kris701-ez-ui.mjs"
31
+ }
32
+ },
33
+ "type": "module"
34
+ }
@@ -0,0 +1,171 @@
1
+ import * as i0 from '@angular/core';
2
+ import { OnChanges, EventEmitter, SimpleChanges, ElementRef } from '@angular/core';
3
+ import { TuiDay } from '@taiga-ui/cdk/date-time';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { TuiResponsiveDialogService } from '@taiga-ui/addon-mobile';
6
+ import { TuiNotificationService } from '@taiga-ui/core';
7
+
8
+ declare class EzUIDateInput implements OnChanges {
9
+ icon: string;
10
+ label: string;
11
+ size: "l" | "m" | "s";
12
+ disabled: boolean;
13
+ min: Date | null;
14
+ max: Date | null;
15
+ TuiDay: typeof TuiDay;
16
+ value: Date | string;
17
+ valueChange: EventEmitter<string | Date>;
18
+ internalValue: TuiDay | null;
19
+ ngOnChanges(changes: SimpleChanges): void;
20
+ updateValue(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<EzUIDateInput, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<EzUIDateInput, "ezui-dateinput", never, { "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
23
+ }
24
+
25
+ interface MenuBarItem {
26
+ label: string | null;
27
+ icon: string | null;
28
+ items: MenuBarItem[];
29
+ disabled: boolean;
30
+ expanded: boolean;
31
+ command(): Promise<any>;
32
+ }
33
+
34
+ declare class EzUIMarkdownEditor implements OnChanges {
35
+ preview: ElementRef<HTMLDivElement> | undefined;
36
+ editor: ElementRef<HTMLTextAreaElement> | undefined;
37
+ fileUpload: ElementRef<HTMLInputElement> | undefined;
38
+ disabled: boolean;
39
+ value: string | null;
40
+ valueChange: EventEmitter<string | null>;
41
+ unsavedValue: i0.WritableSignal<string>;
42
+ isFirst: boolean;
43
+ isEditing: i0.WritableSignal<boolean>;
44
+ items: i0.WritableSignal<MenuBarItem[]>;
45
+ onFileSelected(event: any): Promise<void>;
46
+ toBase65(file: File): Promise<unknown>;
47
+ onPaste(event: any): Promise<void>;
48
+ insertImageInEditor(file: File): Promise<void>;
49
+ replaceSection(newStr: string, finalStart: number, finalFinish: number): Promise<void>;
50
+ ngOnChanges(changes: SimpleChanges): Promise<void>;
51
+ formatPreview(): Promise<void>;
52
+ toggleEdit(save: boolean): Promise<void>;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<EzUIMarkdownEditor, never>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<EzUIMarkdownEditor, "ezui-markdowneditor", never, { "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
55
+ }
56
+
57
+ declare class EzUIMultiSelect implements OnChanges {
58
+ icon: string;
59
+ label: string;
60
+ size: "l" | "m" | "s";
61
+ optionLabel: string | undefined;
62
+ optionValue: string | undefined;
63
+ options: any[];
64
+ disabled: boolean;
65
+ selected: any[] | null | undefined;
66
+ selectedChange: EventEmitter<any[] | null | undefined>;
67
+ ngOnChanges(changes: SimpleChanges): void;
68
+ stringify: (value: string) => string;
69
+ getOptionLabel(item: any): any;
70
+ getOptionValue(item: any): any;
71
+ static ɵfac: i0.ɵɵFactoryDeclaration<EzUIMultiSelect, never>;
72
+ static ɵcmp: i0.ɵɵComponentDeclaration<EzUIMultiSelect, "ezui-multiselect", never, { "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "optionLabel": { "alias": "optionLabel"; "required": false; }; "optionValue": { "alias": "optionValue"; "required": false; }; "options": { "alias": "options"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, { "selectedChange": "selectedChange"; }, never, never, true, never>;
73
+ }
74
+
75
+ declare class EzUINumberInput implements OnChanges {
76
+ icon: string;
77
+ label: string;
78
+ size: "l" | "m" | "s";
79
+ disabled: boolean;
80
+ min: number | null;
81
+ max: number | null;
82
+ value: number | string;
83
+ valueChange: EventEmitter<string | number>;
84
+ ngOnChanges(changes: SimpleChanges): void;
85
+ static ɵfac: i0.ɵɵFactoryDeclaration<EzUINumberInput, never>;
86
+ static ɵcmp: i0.ɵɵComponentDeclaration<EzUINumberInput, "ezui-numberinput", never, { "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
87
+ }
88
+
89
+ declare class EzUIPasswordInput implements OnChanges {
90
+ icon: string;
91
+ label: string;
92
+ size: "l" | "m" | "s";
93
+ disabled: boolean;
94
+ value: string;
95
+ valueChange: EventEmitter<string>;
96
+ ngOnChanges(changes: SimpleChanges): void;
97
+ static ɵfac: i0.ɵɵFactoryDeclaration<EzUIPasswordInput, never>;
98
+ static ɵcmp: i0.ɵɵComponentDeclaration<EzUIPasswordInput, "ezui-passwordinput", never, { "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
99
+ }
100
+
101
+ declare class EzUITextInput implements OnChanges {
102
+ icon: string;
103
+ label: string;
104
+ size: "l" | "m" | "s";
105
+ disabled: boolean;
106
+ value: string;
107
+ valueChange: EventEmitter<string>;
108
+ ngOnChanges(changes: SimpleChanges): void;
109
+ static ɵfac: i0.ɵɵFactoryDeclaration<EzUITextInput, never>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<EzUITextInput, "ezui-textinput", never, { "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
111
+ }
112
+
113
+ declare const compressImage: (file: File, quality: number, maxHeight: number, maxWidth: number, convertSize?: number) => Promise<File | Blob>;
114
+
115
+ declare abstract class BaseCRUDInterface {
116
+ http: HttpClient;
117
+ messageService: TuiNotificationService;
118
+ confirmationService: TuiResponsiveDialogService;
119
+ isLoading: i0.WritableSignal<boolean>;
120
+ allItems: i0.WritableSignal<any[]>;
121
+ currentItem: i0.WritableSignal<any>;
122
+ newItemTemplate(): any;
123
+ getAllEndpoint: string;
124
+ getEndpoint: string;
125
+ patchEndpoint: string;
126
+ postEndpoint: string;
127
+ deleteEndpoint: string;
128
+ canRead: boolean;
129
+ canWrite: boolean;
130
+ showDialog: i0.WritableSignal<boolean>;
131
+ loadOnInit: boolean;
132
+ showDeleteDialog: boolean;
133
+ deleteDialogMessage: string;
134
+ showSaveDialog: boolean;
135
+ savewDialogMessage: string;
136
+ constructor(http: HttpClient, messageService: TuiNotificationService, confirmationService: TuiResponsiveDialogService);
137
+ ngOnInit(): Promise<void>;
138
+ loadItems(): Promise<void>;
139
+ saveItem(): Promise<void>;
140
+ saveItemInner(): Promise<void>;
141
+ deleteItem(): Promise<void>;
142
+ deleteItemInner(): Promise<void>;
143
+ showEditItem(id: string): Promise<void>;
144
+ showAddItem(): Promise<void>;
145
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseCRUDInterface, never>;
146
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseCRUDInterface, never, never, {}, {}, never, never, true, never>;
147
+ }
148
+
149
+ declare class BaseListService<T, TList extends IIdentifiable> {
150
+ http: HttpClient;
151
+ items: i0.WritableSignal<TList[]>;
152
+ getAllEndpoint: string;
153
+ getEndpoint: string;
154
+ isLoaded: boolean;
155
+ isLoading: boolean;
156
+ onUpdated: EventEmitter<any>;
157
+ constructor(http: HttpClient);
158
+ Load(): Promise<void>;
159
+ List(): Promise<TList[]>;
160
+ ListGet(id: string): Promise<TList | null>;
161
+ Get(id: string): Promise<T>;
162
+ waitForValue(test: any): Promise<void>;
163
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseListService<any, any>, never>;
164
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseListService<any, any>, never, never, {}, {}, never, never, true, never>;
165
+ }
166
+ interface IIdentifiable {
167
+ id: string;
168
+ }
169
+
170
+ export { BaseCRUDInterface, BaseListService, EzUIDateInput, EzUIMarkdownEditor, EzUIMultiSelect, EzUINumberInput, EzUIPasswordInput, EzUITextInput, compressImage };
171
+ export type { IIdentifiable };
package/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './public-api';
2
-
package/ng-package.json DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
- "dest": "../../dist/ez-ui",
4
- "lib": {
5
- "entryFile": "public-api.ts"
6
- },
7
- "allowedNonPeerDependencies":[
8
- "@taiga-ui/addon-mobile",
9
- "@taiga-ui/core",
10
- "@taiga-ui/kit",
11
- "@taiga-ui/icons",
12
- "compressorjs",
13
- "marked"
14
- ]
15
- }
package/public-api.ts DELETED
@@ -1,15 +0,0 @@
1
- // Components
2
- export * from './src/components/dateinput';
3
- export * from './src/components/markdowneditor';
4
- export * from './src/components/multiselect';
5
- export * from './src/components/numberinput';
6
- export * from './src/components/passwordinput';
7
- export * from './src/components/textinput';
8
-
9
- // Helpers
10
- export * from './src/helpers/compressImage';
11
-
12
- // Interfaces
13
- export * from './src/interfaces/baseCRUDInterface';
14
- export * from './src/interfaces/baseListService';
15
-
@@ -1,58 +0,0 @@
1
- import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { TuiDay } from '@taiga-ui/cdk/date-time';
4
- import { TuiInput } from '@taiga-ui/core';
5
- import { TuiInputDate } from '@taiga-ui/kit';
6
-
7
- @Component({
8
- selector: 'ezui-dateinput',
9
- imports: [
10
- FormsModule,
11
- TuiInput,
12
- TuiInputDate
13
- ],
14
- template: `
15
- <tui-textfield [tuiTextfieldSize]="size" [iconStart]="icon">
16
- @if(label){
17
- <label tuiLabel>{{label}}</label>
18
- }
19
- <input tuiInputDate [(ngModel)]="internalValue" (ngModelChange)="updateValue()" [disabled]="disabled" [min]="min ? TuiDay.fromLocalNativeDate(min) : null" [max]="max ? TuiDay.fromLocalNativeDate(max) : null"/>
20
- <tui-calendar *tuiDropdown />
21
- </tui-textfield>
22
- `,
23
- styles: `
24
- `
25
- })
26
- export class EzUIDateInput implements OnChanges {
27
- @Input() icon: string = '';
28
- @Input() label: string = '';
29
-
30
- @Input() size: "l" | "m" | "s" = 'm';
31
-
32
- @Input() disabled: boolean = false;
33
-
34
- @Input() min : Date | null = null;
35
- @Input() max : Date | null = null;
36
-
37
- TuiDay = TuiDay;
38
-
39
- @Input() value: Date | string = new Date;
40
- @Output() valueChange = new EventEmitter<Date | string>();
41
-
42
- internalValue : TuiDay | null = null;
43
-
44
- ngOnChanges(changes: SimpleChanges) {
45
- if (changes['value'] && changes['value'].currentValue != changes['value'].previousValue) {
46
- this.value = changes['value'].currentValue;
47
- this.value = new Date(this.value);
48
- this.internalValue = TuiDay.fromUtcNativeDate(this.value);
49
- }
50
- }
51
-
52
- updateValue(){
53
- if (this.internalValue){
54
- this.value = this.internalValue?.toUtcNativeDate();
55
- this.valueChange.emit(this.value);
56
- }
57
- }
58
- }
@@ -1,52 +0,0 @@
1
- import { Component, signal } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { TuiFiles } from '@taiga-ui/kit';
4
-
5
- @Component({
6
- selector: 'app-floatfileupload',
7
- imports: [FormsModule, TuiFiles],
8
- template:`
9
- <label tuiInputFiles>
10
- <input
11
- #validator="tuiInputFilesValidator"
12
- accept="*/*"
13
- tuiInputFiles
14
- [ngModel]="files()"
15
- (ngModelChange)="onChange($event)"
16
- />
17
- </label>
18
-
19
- <tui-files>
20
- @for(file of files(); track file){
21
- <tui-file
22
- state="normal"
23
- [file]="file"
24
- (remove)="removeFile(file)"
25
- />
26
- }
27
- </tui-files>
28
- `
29
- })
30
- export default class FloatFileUpload {
31
- public files = signal<File[]>([]);
32
-
33
- public clear(){
34
- this.files.set([]);
35
- }
36
-
37
- protected onChange(files: File[] | File): void {
38
- if (files instanceof File)
39
- this.files.set([files]);
40
- else
41
- this.files.set(files);
42
- }
43
-
44
- removeFile(file : File){
45
- var files = this.files();
46
- var index = files.indexOf(file);
47
- if (index != -1){
48
- files.splice(index, 1);
49
- this.files.set(files);
50
- }
51
- }
52
- }