@kris701/ez-ui 0.0.8 → 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.
- package/fesm2022/kris701-ez-ui.mjs +1074 -0
- package/fesm2022/kris701-ez-ui.mjs.map +1 -0
- package/package.json +19 -7
- package/types/kris701-ez-ui.d.ts +171 -0
- package/index.ts +0 -2
- package/ng-package.json +0 -15
- package/public-api.ts +0 -15
- package/src/components/dateinput.ts +0 -58
- package/src/components/floatfileupload.ts +0 -52
- package/src/components/floattable/filters/tuiThDateFilter.ts +0 -159
- package/src/components/floattable/filters/tuiThSelectFilter.ts +0 -178
- package/src/components/floattable/filters/tuiThTextFilter.ts +0 -161
- package/src/components/floattable/floattable.presets.ts +0 -197
- package/src/components/floattable/floattable.ts +0 -309
- package/src/components/floattable/helpers/floattable.filterhelpers.ts +0 -23
- package/src/components/floattable/models/FloatTableFilter.ts +0 -5
- package/src/components/floattable/models/FloatTableFilterMethod.ts +0 -5
- package/src/components/floattable/models/FloatTableSort.ts +0 -4
- package/src/components/floattable/models/FloatTableSortFilterPreset.ts +0 -10
- package/src/components/floattable/models/FloatTableSortFilterPresetSave.ts +0 -6
- package/src/components/floattable/models/FloatTableSortMethod.ts +0 -4
- package/src/components/floattable/services/floattable.filterservice.ts +0 -110
- package/src/components/floattable/sorts/tuiThSortable.ts +0 -75
- package/src/components/markdowneditor.ts +0 -340
- package/src/components/menubar.ts +0 -144
- package/src/components/multiselect.ts +0 -77
- package/src/components/numberinput.ts +0 -45
- package/src/components/passwordinput.ts +0 -44
- package/src/components/textinput.ts +0 -40
- package/src/helpers/compressImage.ts +0 -20
- package/src/interfaces/baseCRUDInterface.ts +0 -181
- package/src/interfaces/baseListService.ts +0 -62
- package/tsconfig.lib.json +0 -12
- 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 = \"\"\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.
|
|
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
|
-
|
|
10
|
-
|
|
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
|
-
|
|
16
|
+
"@taiga-ui/icons": "^5.15.0",
|
|
17
17
|
"compressorjs": "^1.3.0",
|
|
18
|
-
|
|
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
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/dateinputput';
|
|
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
|
-
}
|