@piying-lib/angular-daisyui 1.3.27 → 1.3.29

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.
@@ -222,14 +222,19 @@ class RadioFCC extends BaseControl {
222
222
  wrapperClass$ = computed(() => {
223
223
  return this.#theme.setClass(this.#theme.setColor('radio', this.color()), this.#theme.setSize('radio', this.size()));
224
224
  }, ...(ngDevMode ? [{ debugName: "wrapperClass$" }] : []));
225
+ optionChange = output();
226
+ itemSelectedChange(item) {
227
+ this.valueAndTouchedChange(item.value);
228
+ this.optionChange.emit(item);
229
+ }
225
230
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RadioFCC, deps: null, target: i0.ɵɵFactoryTarget.Component });
226
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: RadioFCC, isStandalone: true, selector: "app-radio", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, optionConvert: { classPropertyName: "optionConvert", publicName: "optionConvert", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
231
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: RadioFCC, isStandalone: true, selector: "app-radio", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionTemplate: { classPropertyName: "optionTemplate", publicName: "optionTemplate", isSignal: true, isRequired: false, transformFunction: null }, optionConvert: { classPropertyName: "optionConvert", publicName: "optionConvert", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { optionChange: "optionChange" }, providers: [
227
232
  {
228
233
  provide: NG_VALUE_ACCESSOR,
229
234
  useExisting: forwardRef(() => RadioFCC),
230
235
  multi: true,
231
236
  },
232
- ], viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateRef let-attr=\"attributes\">\n @for (item of resolvedOptions$$(); track $index) {\n <span>\n @let id = name + '-' + $index;\n <input\n type=\"radio\"\n [name]=\"name\"\n [disabled]=\"item.disabled || disabled$()\"\n [checked]=\"item.value === value$()\"\n (change)=\"valueAndTouchedChange(item.value)\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('radio' | cssPrefix) : wrapperClass$()\"\n [id]=\"id\"\n />\n @if (optionTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate(); context: { $implicit: item, id: id }\"\n ></ng-container>\n } @else if (item.label) {\n <label\n [for]=\"id\"\n [class]=\"!!item.description ? ('tooltip' | cssPrefix) : undefined\"\n [attr.data-tip]=\"item.description!\"\n >{{ item.label }}\n </label>\n }\n </span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: AttributesDirective, selector: "[attributes]", inputs: ["attributes", "excludes"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: CssPrefixPipe, name: "cssPrefix" }, { kind: "pipe", type: MergeClassPipe, name: "mergeClass" }] });
237
+ ], viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #templateRef let-attr=\"attributes\">\n @for (item of resolvedOptions$$(); track $index) {\n <span>\n @let id = name + '-' + $index;\n <input\n type=\"radio\"\n [name]=\"name\"\n [disabled]=\"item.disabled || disabled$()\"\n [checked]=\"item.value === value$()\"\n (change)=\"itemSelectedChange(item)\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('radio' | cssPrefix) : wrapperClass$()\"\n [id]=\"id\"\n />\n @if (optionTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate(); context: { $implicit: item, id: id }\"\n ></ng-container>\n } @else if (item.label) {\n <label\n [for]=\"id\"\n [class]=\"!!item.description ? ('tooltip' | cssPrefix) : undefined\"\n [attr.data-tip]=\"item.description!\"\n >{{ item.label }}\n </label>\n }\n </span>\n }\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: AttributesDirective, selector: "[attributes]", inputs: ["attributes", "excludes"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: CssPrefixPipe, name: "cssPrefix" }, { kind: "pipe", type: MergeClassPipe, name: "mergeClass" }] });
233
238
  }
234
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: RadioFCC, decorators: [{
235
240
  type: Component,
@@ -239,8 +244,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
239
244
  useExisting: forwardRef(() => RadioFCC),
240
245
  multi: true,
241
246
  },
242
- ], template: "<ng-template #templateRef let-attr=\"attributes\">\n @for (item of resolvedOptions$$(); track $index) {\n <span>\n @let id = name + '-' + $index;\n <input\n type=\"radio\"\n [name]=\"name\"\n [disabled]=\"item.disabled || disabled$()\"\n [checked]=\"item.value === value$()\"\n (change)=\"valueAndTouchedChange(item.value)\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('radio' | cssPrefix) : wrapperClass$()\"\n [id]=\"id\"\n />\n @if (optionTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate(); context: { $implicit: item, id: id }\"\n ></ng-container>\n } @else if (item.label) {\n <label\n [for]=\"id\"\n [class]=\"!!item.description ? ('tooltip' | cssPrefix) : undefined\"\n [attr.data-tip]=\"item.description!\"\n >{{ item.label }}\n </label>\n }\n </span>\n }\n</ng-template>\n" }]
243
- }], propDecorators: { templateRef: [{ type: i0.ViewChild, args: ['templateRef', { isSignal: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], optionTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionTemplate", required: false }] }], optionConvert: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionConvert", required: false }] }] } });
247
+ ], template: "<ng-template #templateRef let-attr=\"attributes\">\n @for (item of resolvedOptions$$(); track $index) {\n <span>\n @let id = name + '-' + $index;\n <input\n type=\"radio\"\n [name]=\"name\"\n [disabled]=\"item.disabled || disabled$()\"\n [checked]=\"item.value === value$()\"\n (change)=\"itemSelectedChange(item)\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('radio' | cssPrefix) : wrapperClass$()\"\n [id]=\"id\"\n />\n @if (optionTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate(); context: { $implicit: item, id: id }\"\n ></ng-container>\n } @else if (item.label) {\n <label\n [for]=\"id\"\n [class]=\"!!item.description ? ('tooltip' | cssPrefix) : undefined\"\n [attr.data-tip]=\"item.description!\"\n >{{ item.label }}\n </label>\n }\n </span>\n }\n</ng-template>\n" }]
248
+ }], propDecorators: { templateRef: [{ type: i0.ViewChild, args: ['templateRef', { isSignal: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], optionTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionTemplate", required: false }] }], optionConvert: [{ type: i0.Input, args: [{ isSignal: true, alias: "optionConvert", required: false }] }], optionChange: [{ type: i0.Output, args: ["optionChange"] }] } });
244
249
 
245
250
  /**
246
251
  * 范围选择控件
@@ -1 +1 @@
1
- {"version":3,"file":"piying-lib-angular-daisyui-field-control.mjs","sources":["../../../projects/daisyui/field-control/checkbox/component.ts","../../../projects/daisyui/field-control/checkbox/component.html","../../../projects/daisyui/field-control/file-input/component.ts","../../../projects/daisyui/field-control/file-input/component.html","../../../projects/daisyui/field-control/calendar/date.util.ts","../../../projects/daisyui/field-control/input/component.ts","../../../projects/daisyui/field-control/input/component.html","../../../projects/daisyui/field-control/radio/component.ts","../../../projects/daisyui/field-control/radio/component.html","../../../projects/daisyui/field-control/range/component.ts","../../../projects/daisyui/field-control/range/component.html","../../../projects/daisyui/field-control/rating/component.ts","../../../projects/daisyui/field-control/rating/component.html","../../../projects/daisyui/field-control/select/component.ts","../../../projects/daisyui/field-control/select/component.html","../../../projects/daisyui/field-control/textarea/component.ts","../../../projects/daisyui/field-control/textarea/component.html","../../../projects/daisyui/field-control/toggle/component.ts","../../../projects/daisyui/field-control/toggle/component.html","../../../projects/daisyui/field-control/swap/component.ts","../../../projects/daisyui/field-control/swap/component.html","../../../projects/daisyui/field-control/calendar/type.ts","../../../projects/daisyui/field-control/calendar/component.ts","../../../projects/daisyui/field-control/calendar/component.html","../../../projects/daisyui/field-control/password/component.ts","../../../projects/daisyui/field-control/password/component.html","../../../projects/daisyui/field-control/editable-badge/component.ts","../../../projects/daisyui/field-control/editable-badge/component.html","../../../projects/daisyui/field-control/piying-lib-angular-daisyui-field-control.ts"],"sourcesContent":["import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 复选框控件\n *\n * 提供单个复选框的勾选功能,支持确定、不确定两种状态。\n * 常用于需要选择多个选项的场景。\n */\n@Component({\n selector: 'app-checkbox',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxFCC),\n multi: true,\n },\n ],\n})\nexport class CheckboxFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 是否为不确定状态 */\n indeterminate = input<boolean>();\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('checkbox', this.color()),\n this.#theme.setSize('checkbox', this.size()),\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n type=\"checkbox\"\n [class]=\"attr()?.class | mergeClass: ('checkbox' | cssPrefix) : wrapperClass$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n [indeterminate]=\"indeterminate()\"\n />\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, output, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 文件上传控件\n *\n * 提供文件选择和上传功能,支持单文件和多文件选择。\n * 适用于需要上传文件的表单场景。\n */\n@Component({\n selector: 'app-file-input',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileInputFCC),\n multi: true,\n },\n ],\n})\nexport class FileInputFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 是否支持多文件选择 */\n multiple = input<boolean>();\n /** 是否使用幽灵样式 */\n ghost = input<boolean>();\n fileChange = output<File | File[]>();\n fileChanged(input: HTMLInputElement) {\n if (!input.files) {\n return;\n }\n if (this.multiple()) {\n this.valueAndTouchedChange([...input.files]);\n this.fileChange.emit([...input.files]);\n } else {\n this.valueAndTouchedChange(input.files[0]);\n this.fileChange.emit(input.files[0]);\n }\n }\n clicked(input: HTMLInputElement) {\n input.value = '';\n }\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('file-input', this.color()),\n this.#theme.setSize('file-input', this.size()),\n this.ghost() ? this.#theme.addPrefix(`file-input-ghost`) : undefined,\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n type=\"file\"\n [class]=\"attr()?.class | mergeClass: ('file-input' | cssPrefix) : wrapperClass$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [multiple]=\"multiple()\"\n #el\n (change)=\"fileChanged(el)\"\n (click)=\"clicked(el)\"\n [disabled]=\"disabled$()\"\n />\n</ng-template>\n","export function toDateStr(date: Date) {\n const month = `${date.getMonth() + 1}`.padStart(2, '0');\n const day = `${date.getDate()}`.padStart(2, '0');\n return `${date.getFullYear()}-${month}-${day}`;\n}\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { toDateStr } from '../calendar/date.util';\nimport { PurePipe } from '@cyia/ngx-common/pipe';\n/**\n * 文本输入控件\n *\n * 提供多种类型的文本输入功能,支持文本、密码、数字、日期等常见输入场景。\n * 适合作为表单中的基础输入组件使用。\n */\n@Component({\n selector: 'app-input',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe, PurePipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputFCC),\n multi: true,\n },\n ],\n})\nexport class InputFCC extends BaseControl {\n static __version = 2;\n /** 输入框类型 */\n type = input<\n | 'text'\n | 'password'\n | 'email'\n | 'number'\n | 'date'\n | 'datetime-local'\n | 'week'\n | 'month'\n | 'tel'\n | 'url'\n | 'search'\n | 'time'\n >('text');\n /** 是否使用幽灵样式 */\n ghost = input<boolean>();\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n #theme = inject(ThemeService);\n\n wrapperClass$$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('input', this.color()),\n this.#theme.setSize('input', this.size()),\n this.ghost() ? this.#theme.addPrefix(`input-ghost`) : undefined,\n );\n });\n\n valueChange2(value: any, el: HTMLInputElement) {\n switch (this.type()) {\n case 'number': {\n this.valueChange(el.valueAsNumber);\n break;\n }\n case 'date': {\n this.valueChange(el.valueAsDate);\n break;\n }\n\n default: {\n this.valueChange(value);\n break;\n }\n }\n }\n inputFormat(value: any, type: string) {\n if (type === 'date' && value instanceof Date) {\n return toDateStr(value);\n }\n return value;\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n [class]=\"attr()?.class | mergeClass: ('input' | cssPrefix) : wrapperClass$$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [type]=\"type()\"\n [ngModel]=\"inputFormat | pure: value$() : type()\"\n #el\n (ngModelChange)=\"valueChange2($event, el)\"\n [disabled]=\"disabled$()\"\n (blur)=\"touchedChange()\"\n />\n</ng-template>\n","import {\n Component,\n computed,\n forwardRef,\n inject,\n input,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport {\n Color,\n CommonSelectOptions,\n DefaultOptionConvert,\n OptionConvert,\n ResolvedOption,\n Size,\n} from '@piying-lib/angular-core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 单选框控件\n *\n * 提供一组选项中的单选功能,支持通过配置项数组动态生成选项列表。\n * 适用于需要在多个互斥选项中选择一个的场景。\n */\n@Component({\n selector: 'app-radio',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, NgTemplateOutlet, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioFCC),\n multi: true,\n },\n ],\n})\nexport class RadioFCC extends BaseControl {\n static __version = 2;\n static index = 0;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n name = `radio-${RadioFCC.index++}`;\n /** 选项列表 */\n options = input<CommonSelectOptions, CommonSelectOptions | undefined>([], {\n transform: (input) => input ?? [],\n });\n /** 选项模板 */\n optionTemplate = input<TemplateRef<any>>();\n /** 选项转换器 */\n optionConvert = input<OptionConvert, Partial<OptionConvert>>(DefaultOptionConvert, {\n transform: (input) => ({ ...DefaultOptionConvert, ...input }),\n });\n\n resolvedOptions$$ = computed(() => this.transformOptions(this.options()));\n transformOptions(options: any[]): ResolvedOption[] {\n return options.map((option) => {\n const resolvedItem: ResolvedOption = {\n label: this.optionConvert().label(option),\n value: this.optionConvert().value(option),\n disabled: this.optionConvert().disabled?.(option) ?? false,\n description: this.optionConvert().description?.(option),\n type: 'option',\n origin: option,\n };\n return resolvedItem;\n });\n }\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('radio', this.color()),\n this.#theme.setSize('radio', this.size()),\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n @for (item of resolvedOptions$$(); track $index) {\n <span>\n @let id = name + '-' + $index;\n <input\n type=\"radio\"\n [name]=\"name\"\n [disabled]=\"item.disabled || disabled$()\"\n [checked]=\"item.value === value$()\"\n (change)=\"valueAndTouchedChange(item.value)\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('radio' | cssPrefix) : wrapperClass$()\"\n [id]=\"id\"\n />\n @if (optionTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate(); context: { $implicit: item, id: id }\"\n ></ng-container>\n } @else if (item.label) {\n <label\n [for]=\"id\"\n [class]=\"!!item.description ? ('tooltip' | cssPrefix) : undefined\"\n [attr.data-tip]=\"item.description!\"\n >{{ item.label }}\n </label>\n }\n </span>\n }\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 范围选择控件\n *\n * 提供滑动条形式的数值输入,支持设置最小值、最大值和步长。\n * 适用于需要选择数值范围或评分等场景。\n */\n@Component({\n selector: 'app-range',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeFCC),\n multi: true,\n },\n ],\n})\nexport class RangeFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 最小值 */\n min = input<number>();\n /** 最大值 */\n max = input<number>();\n /** 步长 */\n step = input<number>();\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('range', this.color()),\n this.#theme.setSize('range', this.size()),\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n type=\"range\"\n [min]=\"min()\"\n [max]=\"max()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('range' | cssPrefix) : wrapperClass$()\"\n [step]=\"step()\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n />\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Size } from '@piying-lib/angular-core';\nimport { range } from 'es-toolkit';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 评分控件\n *\n * 提供星级或爱心形式的评分选择功能,支持半星选择。\n * 适用于评价、评级、评分等场景。\n */\n@Component({\n selector: 'app-rating',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RatingFCC),\n multi: true,\n },\n ],\n})\nexport class RatingFCC extends BaseControl {\n static index = 0;\n name = `rating-${RatingFCC.index++}`;\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 尺寸大小 */\n size = input<Size>('md');\n\n /** 最小值 */\n min = input<number>(1);\n /** 最大值 */\n max = input<number>(5);\n /** 是否支持半星选择 */\n half = input<boolean>();\n /** 类型,支持星形或爱心形状 */\n type = input<'star' | 'star-2' | 'heart'>('star');\n list = computed(() => {\n return range(0, this.max());\n });\n itemClass$$ = computed(() => {\n return this.#theme.addPrefix2('mask', this.type());\n });\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(this.#theme.setSize('rating', this.size()));\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <div\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"\n attr()?.class\n | mergeClass\n : ('rating' | cssPrefix)\n : wrapperClass$()\n : (half() ? ('rating-half' | cssPrefix) : undefined)\n \"\n >\n <input\n type=\"radio\"\n [name]=\"name\"\n aria-label=\"{{ 0 }} rating\"\n [checked]=\"value$() === 0\"\n (change)=\"valueAndTouchedChange(0)\"\n [class]=\"'rating-hidden' | cssPrefix\"\n [disabled]=\"min() > 0\"\n />\n @for (item of list(); track $index) {\n @let value2 = item + 1;\n @if (half()) {\n @let halfValue = item + 0.5;\n <input\n type=\"radio\"\n [name]=\"name\"\n aria-label=\"{{ halfValue }} rating\"\n [checked]=\"value$() === halfValue\"\n (change)=\"valueAndTouchedChange(halfValue)\"\n [class]=\"itemClass$$() | mergeClass: 'mask mask-half-1' | cssPrefix\"\n [disabled]=\"min() > halfValue\"\n />\n <input\n type=\"radio\"\n [name]=\"name\"\n aria-label=\"{{ value2 }} rating\"\n [checked]=\"value$() === value2\"\n (change)=\"valueAndTouchedChange(value2)\"\n [class]=\"itemClass$$() | mergeClass: 'mask mask-half-2' | cssPrefix\"\n [disabled]=\"min() > value2\"\n />\n } @else {\n <input\n type=\"radio\"\n [name]=\"name\"\n aria-label=\"{{ item + 1 }} rating\"\n [checked]=\"value$() === item + 1\"\n (change)=\"valueAndTouchedChange(item + 1)\"\n [class]=\"itemClass$$() | mergeClass: 'mask mask-star' | cssPrefix\"\n [disabled]=\"min() > value2\"\n />\n }\n }\n </div>\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport {\n Color,\n CommonSelectOptions,\n DefaultOptionConvert,\n OptionConvert,\n Size,\n transformOptions,\n} from '@piying-lib/angular-core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 选择器控件\n *\n * 提供下拉选择功能,支持单选、多选以及原生 select 样式。\n * 适用于需要在多个选项中选择一个或多个的场景。\n */\n@Component({\n selector: 'app-select',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, NgTemplateOutlet, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectFCC),\n multi: true,\n },\n ],\n})\nexport class SelectFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 是否多选 */\n multiple = input(false);\n /** 是否使用幽灵样式 */\n ghost = input<boolean>();\n /** 是否使用原生 select 样式 */\n native = input<boolean>();\n /** 选项列表 */\n options = input<CommonSelectOptions, CommonSelectOptions | undefined>([], {\n transform: (input) => input ?? [],\n });\n /** 选项转换器 */\n optionConvert = input<OptionConvert, Partial<OptionConvert>>(DefaultOptionConvert, {\n transform: (input) => ({ ...DefaultOptionConvert, ...input }),\n });\n /** 空选项时显示的内容 */\n emptyOptionContent = input<string>('------');\n\n resolvedOptions$$ = computed(() => transformOptions(this.options(), this.optionConvert()));\n\n #theme = inject(ThemeService);\n\n wrapperClass$$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('select', this.color()),\n this.#theme.setSize('select', this.size()),\n this.ghost() ? this.#theme.addPrefix('select-ghost') : undefined,\n this.native() ? this.#theme.addTwPrefix('appearance-none') : undefined,\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n @let multi = multiple();\n @if (multi) {\n <select\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('select' | cssPrefix) : wrapperClass$$()\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n multiple\n >\n <ng-template #optionTemp let-config=\"config\">\n @if (config.type === 'group') {\n <optgroup [label]=\"config.label\">\n @for (item of config.children; track $index) {\n <ng-container\n *ngTemplateOutlet=\"optionTemp; context: { config: item }\"\n ></ng-container>\n }\n </optgroup>\n } @else {\n <option\n [disabled]=\"config.disabled\"\n [ngValue]=\"config.value\"\n [attr.data-tip]=\"config.description!\"\n [class]=\"!!config.description ? ('tooltip' | cssPrefix) : undefined\"\n >\n {{ config.label }}\n </option>\n }\n </ng-template>\n <option disabled selected>{{ emptyOptionContent() }}</option>\n\n @for (item of resolvedOptions$$(); track $index) {\n <ng-container *ngTemplateOutlet=\"optionTemp; context: { config: item }\"></ng-container>\n }\n </select>\n } @else {\n <select\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('select' | cssPrefix) : wrapperClass$$()\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n >\n <ng-template #optionTemp let-config=\"config\">\n @if (config.type === 'group') {\n <optgroup [label]=\"config.label\">\n @for (item of config.children; track $index) {\n <ng-container\n *ngTemplateOutlet=\"optionTemp; context: { config: item }\"\n ></ng-container>\n }\n </optgroup>\n } @else {\n <option\n [disabled]=\"config.disabled\"\n [ngValue]=\"config.value\"\n [attr.data-tip]=\"config.description!\"\n [class]=\"!!config.description ? ('tooltip' | cssPrefix) : undefined\"\n >\n {{ config.label }}\n </option>\n }\n </ng-template>\n <option disabled selected>{{ emptyOptionContent() }}</option>\n\n @for (item of resolvedOptions$$(); track $index) {\n <ng-container *ngTemplateOutlet=\"optionTemp; context: { config: item }\"></ng-container>\n }\n </select>\n }\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 多行文本输入控件\n *\n * 提供多行文本的输入功能,支持大段文本的编辑场景。\n * 适用于评论、描述、备注等需要大量文本输入的表单字段。\n */\n@Component({\n selector: 'app-textarea',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaFCC),\n multi: true,\n },\n ],\n})\nexport class TextareaFCC extends BaseControl {\n static __version = 2;\n\n /** 是否使用幽灵样式 */\n ghost = input<boolean>();\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n #theme = inject(ThemeService);\n\n wrapperClass$$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('textarea', this.color()),\n this.#theme.setSize('textarea', this.size()),\n this.ghost() ? this.#theme.addPrefix('textarea-ghost') : undefined,\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <textarea\n [class]=\"attr()?.class | mergeClass: ('textarea' | cssPrefix) : wrapperClass$$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueChange($event)\"\n [disabled]=\"disabled$()\"\n (blur)=\"touchedChange()\"\n ></textarea>\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 开关控件\n *\n * 提供开/关状态切换功能,支持确定和不确定两种状态。\n * 适用于功能开关、选项启用/禁用等场景。\n */\n@Component({\n selector: 'app-toggle',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleFCC),\n multi: true,\n },\n ],\n})\nexport class ToggleFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 是否为不确定状态 */\n indeterminate = input<boolean>();\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('toggle', this.color()),\n this.#theme.setSize('toggle', this.size()),\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n type=\"checkbox\"\n [class]=\"attr()?.class | mergeClass: ('toggle' | cssPrefix) : wrapperClass$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n [indeterminate]=\"indeterminate()\"\n />\n</ng-template>\n","import {\n Component,\n computed,\n forwardRef,\n inject,\n input,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectorlessOutlet } from '@cyia/ngx-common/directive';\nimport { StrOrTemplateComponent } from '@piying-lib/angular-core';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport clsx from 'clsx';\n/**\n * 交换控件(状态切换控件)\n *\n * 提供两种或三种状态之间的切换功能,支持旋转、翻转等动画效果。\n * 可自定义不同状态下的显示内容,适用于需要状态切换的场景。\n */\n@Component({\n selector: 'app-swap',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, SelectorlessOutlet, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwapFCC),\n multi: true,\n },\n ],\n})\nexport class SwapFCC extends BaseControl {\n static __version = 2;\n readonly StrOrTemplateComponent = StrOrTemplateComponent;\n templateRef = viewChild.required('templateRef');\n /** 开启状态时显示的内容 */\n onContent = input<string | TemplateRef<any>>('✔️');\n /** 关闭状态时显示的内容 */\n offContent = input<string | TemplateRef<any>>('❌');\n /** 不确定状态时显示的内容 */\n indeterminateContent = input<string | TemplateRef<any>>();\n /** 是否为不确定状态 */\n indeterminate = input<boolean>();\n /** 是否启用旋转动画 */\n rotate = input<boolean>();\n /** 是否启用翻转动画 */\n flip = input<boolean>();\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return clsx(\n this.rotate() ? this.#theme.addPrefix('swap-rotate') : undefined,\n this.flip() ? this.#theme.addPrefix('swap-flip') : undefined,\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <label\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('swap' | cssPrefix) : wrapperClass$()\"\n >\n <input\n type=\"checkbox\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n [indeterminate]=\"indeterminate()\"\n />\n <div [class]=\"'swap-on' | cssPrefix\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{ content: onContent }\"\n ></ng-template>\n </div>\n <div [class]=\"'swap-off' | cssPrefix\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{ content: offContent }\"\n ></ng-template>\n </div>\n <div [class]=\"'swap-indeterminate' | cssPrefix\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{ content: indeterminateContent }\"\n ></ng-template>\n </div>\n </label>\n</ng-template>\n","import type { CalendarDateProps, CalendarMultiProps, CalendarRangeProps } from 'cally';\nexport const DateKey = ['min', 'max', 'today', 'focusedDate'] as const;\nexport const RangeDateKey = [...DateKey, 'tentative'] as const;\nexport type KeyType = (typeof DateKey)[number];\nexport type RangeKeyType = (typeof RangeDateKey)[number];\nexport type DatedCalendarDateProps = Omit<CalendarDateProps, 'value' | KeyType> &\n Partial<Record<KeyType, Date>>;\nexport type DatedCalendarMultiProps = Omit<CalendarMultiProps, 'value' | KeyType> &\n Partial<Record<KeyType, Date>>;\nexport type DatedCalendarRangeProps = Omit<CalendarRangeProps, 'value' | RangeKeyType> &\n Partial<Record<RangeKeyType, Date>>;\n","import {\n afterNextRender,\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n forwardRef,\n inject,\n input,\n PendingTasks,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseControl } from '@piying/view-angular';\n\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { CalendarPropsDirective } from './props.directive';\nimport type { CalendarDateProps } from 'cally';\nimport {\n DatedCalendarDateProps,\n DatedCalendarMultiProps,\n DatedCalendarRangeProps,\n DateKey,\n RangeDateKey,\n} from './type';\nimport { range } from 'es-toolkit';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { toDateStr } from './date.util';\n/**\n * 日期选择控件\n *\n * 提供日期、多选日期、范围选择三种模式的日期选择功能。\n * 支持自定义日期属性配置,适用于需要进行日期选择的表单场景。\n */\nfunction DateEqual(a: Date, b: Date) {\n return a.getTime() === b.getTime();\n}\nfunction DateAsc(a: Date, b: Date) {\n return a.getTime() - b.getTime();\n}\n@Component({\n selector: 'app-calendar',\n templateUrl: './component.html',\n imports: [FormsModule, CssPrefixPipe, MergeClassPipe, CalendarPropsDirective],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CalendarFCC),\n multi: true,\n },\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CalendarFCC extends BaseControl<Date | Date[]> {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 日期选择模式,支持单选、多选、范围选择 */\n type = input<'date' | 'multi' | 'range'>('date');\n /** 日期属性配置 */\n dateProps = input<DatedCalendarDateProps | DatedCalendarMultiProps | DatedCalendarRangeProps>();\n /** 显示的月份数量 */\n monthProps = input<number | number[]>(1);\n monthProps$$ = computed(() => {\n const value = this.monthProps();\n return typeof value === 'number'\n ? range(value).map((value) => {\n return value;\n })\n : value;\n });\n\n #multiList$$ = computed(() => {\n return new SelectionModel<Date>(true, this.value$() as Date[], undefined, DateEqual);\n });\n\n dateProps$$ = computed(() => {\n const props = this.dateProps();\n const converted: Record<string, any> = {};\n if (props) {\n (this.type() === 'range' ? RangeDateKey : DateKey).forEach((item) => {\n if ((props as any)[item]) {\n converted[item] = toDateStr((props as any)[item]);\n }\n });\n }\n let value;\n switch (this.type()) {\n case 'date': {\n if (this.value$()) {\n value = toDateStr(this.value$() as Date);\n }\n break;\n }\n case 'range': {\n value = ((this.value$() ?? []) as Date[])\n .map((item) => {\n return toDateStr(item);\n })\n .join('/');\n\n break;\n }\n case 'multi': {\n value = ((this.value$() ?? []) as Date[])\n .map((item) => {\n return toDateStr(item);\n })\n .join(' ');\n break;\n }\n }\n return {\n ...props,\n value,\n ...converted,\n } as CalendarDateProps;\n });\n #theme = inject(ThemeService);\n #callyInstance$$ = signal<typeof import('cally') | undefined>(undefined);\n\n callyInited$$ = computed(() => {\n return !!this.#callyInstance$$();\n });\n #pt = inject(PendingTasks);\n constructor() {\n super();\n afterNextRender(() => {\n this.#pt.run(() => {\n return import('cally').then((a) => this.#callyInstance$$.set(a));\n });\n });\n }\n focusdayChanged($event: CustomEvent<Date>) {\n switch (this.type()) {\n case 'multi':\n this.#multiList$$().toggle($event.detail);\n this.value$.set(this.#multiList$$().selected);\n this.valueAndTouchedChange(this.value$());\n break;\n case 'date': {\n this.value$.set($event.detail);\n this.valueAndTouchedChange(this.value$());\n break;\n }\n }\n }\n\n #rangeList: Date[] = [];\n rangestartChanged(event: CustomEvent<Date>) {\n this.#rangeList[0] = event.detail;\n }\n rangeendChanged(event: CustomEvent<Date>) {\n this.#rangeList[1] = event.detail;\n this.value$.set(this.#rangeList.sort(DateAsc));\n this.valueAndTouchedChange(this.value$());\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n @defer (when callyInited$$()) {\n @let ClassStr = 'cally' | cssPrefix | mergeClass: attr()?.class;\n @switch (type()) {\n @case ('date') {\n <calendar-date\n [class]=\"ClassStr\"\n (focusday)=\"focusdayChanged($any($event))\"\n [calendarProps]=\"dateProps$$()\"\n >\n <span class=\"material-icons text-base! leading-none!\" slot=\"previous\"> arrow_back </span>\n <span class=\"material-icons text-base! leading-none!\" slot=\"next\"> arrow_forward </span>\n\n <calendar-month></calendar-month>\n </calendar-date>\n }\n @case ('multi') {\n <calendar-multi\n [class]=\"ClassStr\"\n [calendarProps]=\"dateProps$$()\"\n (focusday)=\"focusdayChanged($any($event))\"\n >\n <span class=\"material-icons text-base! leading-none!\" slot=\"previous\"> arrow_back </span>\n <span class=\"material-icons text-base! leading-none!\" slot=\"next\"> arrow_forward </span>\n\n <calendar-month></calendar-month>\n </calendar-multi>\n }\n @case ('range') {\n <calendar-range\n [class]=\"ClassStr\"\n [calendarProps]=\"dateProps$$()\"\n (focusday)=\"focusdayChanged($any($event))\"\n (rangestart)=\"rangestartChanged($any($event))\"\n (rangeend)=\"rangeendChanged($any($event))\"\n >\n <span class=\"material-icons text-base! leading-none!\" slot=\"previous\"> arrow_back </span>\n <span class=\"material-icons text-base! leading-none!\" slot=\"next\"> arrow_forward </span>\n\n @for (item of monthProps$$(); track $index) {\n <calendar-month [attr.offset]=\"item\"></calendar-month>\n }\n </calendar-range>\n }\n }\n } @loading {\n <span class=\"loading loading-spinner loading-xs\"></span>\n }\n</ng-template>\n","import { Component, computed, forwardRef, signal, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseControl } from '@piying/view-angular';\n\nimport { MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 密码输入控件\n *\n * 提供带有密码可见性切换功能的输入框。\n * 适用于需要输入密码等敏感信息的场景。\n */\n@Component({\n selector: 'app-password',\n templateUrl: './component.html',\n imports: [FormsModule, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordInputFCC),\n multi: true,\n },\n ],\n})\nexport class PasswordInputFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n pendingValue$ = signal('');\n see$ = signal(false);\n type$$ = computed(() => {\n return this.see$() ? 'text' : 'password';\n });\n toggleSee() {\n this.see$.update((a) => !a);\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <label [class]=\"'input' | mergeClass: attr().class\">\n <input\n [type]=\"type$$()\"\n [placeholder]=\"attr()?.placeholder ?? ''\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueChange($event)\"\n (blur)=\"touchedChange()\"\n class=\"w-full\"\n />\n <button class=\"btn btn-circle btn-ghost btn-sm\" type=\"button\" (click)=\"toggleSee()\">\n @if (see$()) {\n <span class=\"material-icons\">remove_red_eye</span>\n <span class=\"absolute material-icons\">not_interested</span>\n } @else {\n <span class=\"material-icons\">remove_red_eye</span>\n }\n </button>\n </label>\n</ng-template>\n","import {\n Component,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseControl } from '@piying/view-angular';\n\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 可编辑标签控件\n *\n * 提供可直接点击编辑的标签显示功能,支持在显示和编辑状态之间切换。\n * 适用于需要Inline编辑的场景,如自定义标签、备注等。\n */\n@Component({\n selector: 'app-editable-badge',\n templateUrl: './component.html',\n imports: [FormsModule, MergeClassPipe, CssPrefixPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditableBadgeFCC),\n multi: true,\n },\n ],\n})\nexport class EditableBadgeFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n isEdit$ = signal(false);\n editContent$ = linkedSignal(this.value$);\n /** 尺寸大小 */\n size = input<Size>('md');\n /** 颜色主题 */\n color = input<Color>();\n #theme = inject(ThemeService);\n\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.addPrefix('badge'),\n this.#theme.setColor('badge', this.color()),\n this.#theme.setSize('badge', this.size()),\n // this.#theme.setSize('badge', this.style()),\n );\n });\n size$$ = computed(() => {\n const size = this.size();\n return {\n input: this.#theme.setSize('input', size),\n btn: this.#theme.setSize('btn', size === 'xl' ? 'sm' : 'xs'),\n text: this.#theme.setSize('text', size === 'md' ? 'base' : size) + '!',\n };\n });\n valueChange2() {\n this.isEdit$.set(false);\n this.valueChange(this.editContent$());\n this.editContent$.set('');\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n @let size = size$$();\n <span [class]=\"wrapperClass$() | mergeClass: size.text\">\n @if (isEdit$()) {\n <input\n type=\"text\"\n [class]=\"\n 'input'\n | cssPrefix\n | mergeClass\n : 'outline-none! border-none! shadow-none! bg-transparent! px-0'\n : size.input\n \"\n [(ngModel)]=\"editContent$\"\n />\n <button\n [class]=\"'btn btn-circle btn-success btn-ghost' | cssPrefix | mergeClass: size.btn\"\n (click)=\"valueChange2()\"\n >\n <span [class]=\"'material-icons' | mergeClass: size.text\">check</span>\n </button>\n <button\n [class]=\"'btn btn-circle btn-error btn-ghost' | cssPrefix | mergeClass: size.btn\"\n (click)=\"editContent$.set(''); isEdit$.set(false)\"\n >\n <span [class]=\"'material-icons' | mergeClass: size.text\">close</span>\n </button>\n } @else {\n @if (value$()) {\n {{ value$() }}\n }\n <button\n [class]=\"'btn btn-circle btn-accent btn-ghost' | cssPrefix | mergeClass: size.btn\"\n (click)=\"editContent$.set(value$()); isEdit$.set(true)\"\n >\n <span [class]=\"'material-icons' | mergeClass: size.text\">edit</span>\n </button>\n }\n </span>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"piying-lib-angular-daisyui-field-control.mjs","sources":["../../../projects/daisyui/field-control/checkbox/component.ts","../../../projects/daisyui/field-control/checkbox/component.html","../../../projects/daisyui/field-control/file-input/component.ts","../../../projects/daisyui/field-control/file-input/component.html","../../../projects/daisyui/field-control/calendar/date.util.ts","../../../projects/daisyui/field-control/input/component.ts","../../../projects/daisyui/field-control/input/component.html","../../../projects/daisyui/field-control/radio/component.ts","../../../projects/daisyui/field-control/radio/component.html","../../../projects/daisyui/field-control/range/component.ts","../../../projects/daisyui/field-control/range/component.html","../../../projects/daisyui/field-control/rating/component.ts","../../../projects/daisyui/field-control/rating/component.html","../../../projects/daisyui/field-control/select/component.ts","../../../projects/daisyui/field-control/select/component.html","../../../projects/daisyui/field-control/textarea/component.ts","../../../projects/daisyui/field-control/textarea/component.html","../../../projects/daisyui/field-control/toggle/component.ts","../../../projects/daisyui/field-control/toggle/component.html","../../../projects/daisyui/field-control/swap/component.ts","../../../projects/daisyui/field-control/swap/component.html","../../../projects/daisyui/field-control/calendar/type.ts","../../../projects/daisyui/field-control/calendar/component.ts","../../../projects/daisyui/field-control/calendar/component.html","../../../projects/daisyui/field-control/password/component.ts","../../../projects/daisyui/field-control/password/component.html","../../../projects/daisyui/field-control/editable-badge/component.ts","../../../projects/daisyui/field-control/editable-badge/component.html","../../../projects/daisyui/field-control/piying-lib-angular-daisyui-field-control.ts"],"sourcesContent":["import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 复选框控件\n *\n * 提供单个复选框的勾选功能,支持确定、不确定两种状态。\n * 常用于需要选择多个选项的场景。\n */\n@Component({\n selector: 'app-checkbox',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxFCC),\n multi: true,\n },\n ],\n})\nexport class CheckboxFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 是否为不确定状态 */\n indeterminate = input<boolean>();\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('checkbox', this.color()),\n this.#theme.setSize('checkbox', this.size()),\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n type=\"checkbox\"\n [class]=\"attr()?.class | mergeClass: ('checkbox' | cssPrefix) : wrapperClass$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n [indeterminate]=\"indeterminate()\"\n />\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, output, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 文件上传控件\n *\n * 提供文件选择和上传功能,支持单文件和多文件选择。\n * 适用于需要上传文件的表单场景。\n */\n@Component({\n selector: 'app-file-input',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileInputFCC),\n multi: true,\n },\n ],\n})\nexport class FileInputFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 是否支持多文件选择 */\n multiple = input<boolean>();\n /** 是否使用幽灵样式 */\n ghost = input<boolean>();\n fileChange = output<File | File[]>();\n fileChanged(input: HTMLInputElement) {\n if (!input.files) {\n return;\n }\n if (this.multiple()) {\n this.valueAndTouchedChange([...input.files]);\n this.fileChange.emit([...input.files]);\n } else {\n this.valueAndTouchedChange(input.files[0]);\n this.fileChange.emit(input.files[0]);\n }\n }\n clicked(input: HTMLInputElement) {\n input.value = '';\n }\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('file-input', this.color()),\n this.#theme.setSize('file-input', this.size()),\n this.ghost() ? this.#theme.addPrefix(`file-input-ghost`) : undefined,\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n type=\"file\"\n [class]=\"attr()?.class | mergeClass: ('file-input' | cssPrefix) : wrapperClass$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [multiple]=\"multiple()\"\n #el\n (change)=\"fileChanged(el)\"\n (click)=\"clicked(el)\"\n [disabled]=\"disabled$()\"\n />\n</ng-template>\n","export function toDateStr(date: Date) {\n const month = `${date.getMonth() + 1}`.padStart(2, '0');\n const day = `${date.getDate()}`.padStart(2, '0');\n return `${date.getFullYear()}-${month}-${day}`;\n}\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { toDateStr } from '../calendar/date.util';\nimport { PurePipe } from '@cyia/ngx-common/pipe';\n/**\n * 文本输入控件\n *\n * 提供多种类型的文本输入功能,支持文本、密码、数字、日期等常见输入场景。\n * 适合作为表单中的基础输入组件使用。\n */\n@Component({\n selector: 'app-input',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe, PurePipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputFCC),\n multi: true,\n },\n ],\n})\nexport class InputFCC extends BaseControl {\n static __version = 2;\n /** 输入框类型 */\n type = input<\n | 'text'\n | 'password'\n | 'email'\n | 'number'\n | 'date'\n | 'datetime-local'\n | 'week'\n | 'month'\n | 'tel'\n | 'url'\n | 'search'\n | 'time'\n >('text');\n /** 是否使用幽灵样式 */\n ghost = input<boolean>();\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n #theme = inject(ThemeService);\n\n wrapperClass$$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('input', this.color()),\n this.#theme.setSize('input', this.size()),\n this.ghost() ? this.#theme.addPrefix(`input-ghost`) : undefined,\n );\n });\n\n valueChange2(value: any, el: HTMLInputElement) {\n switch (this.type()) {\n case 'number': {\n this.valueChange(el.valueAsNumber);\n break;\n }\n case 'date': {\n this.valueChange(el.valueAsDate);\n break;\n }\n\n default: {\n this.valueChange(value);\n break;\n }\n }\n }\n inputFormat(value: any, type: string) {\n if (type === 'date' && value instanceof Date) {\n return toDateStr(value);\n }\n return value;\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n [class]=\"attr()?.class | mergeClass: ('input' | cssPrefix) : wrapperClass$$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [type]=\"type()\"\n [ngModel]=\"inputFormat | pure: value$() : type()\"\n #el\n (ngModelChange)=\"valueChange2($event, el)\"\n [disabled]=\"disabled$()\"\n (blur)=\"touchedChange()\"\n />\n</ng-template>\n","import {\n Component,\n computed,\n forwardRef,\n inject,\n input,\n output,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport {\n Color,\n CommonSelectOptions,\n DefaultOptionConvert,\n OptionConvert,\n ResolvedOption,\n Size,\n} from '@piying-lib/angular-core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 单选框控件\n *\n * 提供一组选项中的单选功能,支持通过配置项数组动态生成选项列表。\n * 适用于需要在多个互斥选项中选择一个的场景。\n */\n@Component({\n selector: 'app-radio',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, NgTemplateOutlet, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioFCC),\n multi: true,\n },\n ],\n})\nexport class RadioFCC extends BaseControl {\n static __version = 2;\n static index = 0;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n name = `radio-${RadioFCC.index++}`;\n /** 选项列表 */\n options = input<CommonSelectOptions, CommonSelectOptions | undefined>([], {\n transform: (input) => input ?? [],\n });\n /** 选项模板 */\n optionTemplate = input<TemplateRef<any>>();\n /** 选项转换器 */\n optionConvert = input<OptionConvert, Partial<OptionConvert>>(DefaultOptionConvert, {\n transform: (input) => ({ ...DefaultOptionConvert, ...input }),\n });\n\n resolvedOptions$$ = computed(() => this.transformOptions(this.options()));\n transformOptions(options: any[]): ResolvedOption[] {\n return options.map((option) => {\n const resolvedItem: ResolvedOption = {\n label: this.optionConvert().label(option),\n value: this.optionConvert().value(option),\n disabled: this.optionConvert().disabled?.(option) ?? false,\n description: this.optionConvert().description?.(option),\n type: 'option',\n origin: option,\n };\n return resolvedItem;\n });\n }\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('radio', this.color()),\n this.#theme.setSize('radio', this.size()),\n );\n });\n optionChange = output<ResolvedOption>();\n itemSelectedChange(item: ResolvedOption) {\n this.valueAndTouchedChange(item.value);\n this.optionChange.emit(item);\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n @for (item of resolvedOptions$$(); track $index) {\n <span>\n @let id = name + '-' + $index;\n <input\n type=\"radio\"\n [name]=\"name\"\n [disabled]=\"item.disabled || disabled$()\"\n [checked]=\"item.value === value$()\"\n (change)=\"itemSelectedChange(item)\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('radio' | cssPrefix) : wrapperClass$()\"\n [id]=\"id\"\n />\n @if (optionTemplate()) {\n <ng-container\n *ngTemplateOutlet=\"optionTemplate(); context: { $implicit: item, id: id }\"\n ></ng-container>\n } @else if (item.label) {\n <label\n [for]=\"id\"\n [class]=\"!!item.description ? ('tooltip' | cssPrefix) : undefined\"\n [attr.data-tip]=\"item.description!\"\n >{{ item.label }}\n </label>\n }\n </span>\n }\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 范围选择控件\n *\n * 提供滑动条形式的数值输入,支持设置最小值、最大值和步长。\n * 适用于需要选择数值范围或评分等场景。\n */\n@Component({\n selector: 'app-range',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeFCC),\n multi: true,\n },\n ],\n})\nexport class RangeFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 最小值 */\n min = input<number>();\n /** 最大值 */\n max = input<number>();\n /** 步长 */\n step = input<number>();\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('range', this.color()),\n this.#theme.setSize('range', this.size()),\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n type=\"range\"\n [min]=\"min()\"\n [max]=\"max()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('range' | cssPrefix) : wrapperClass$()\"\n [step]=\"step()\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n />\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Size } from '@piying-lib/angular-core';\nimport { range } from 'es-toolkit';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 评分控件\n *\n * 提供星级或爱心形式的评分选择功能,支持半星选择。\n * 适用于评价、评级、评分等场景。\n */\n@Component({\n selector: 'app-rating',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RatingFCC),\n multi: true,\n },\n ],\n})\nexport class RatingFCC extends BaseControl {\n static index = 0;\n name = `rating-${RatingFCC.index++}`;\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 尺寸大小 */\n size = input<Size>('md');\n\n /** 最小值 */\n min = input<number>(1);\n /** 最大值 */\n max = input<number>(5);\n /** 是否支持半星选择 */\n half = input<boolean>();\n /** 类型,支持星形或爱心形状 */\n type = input<'star' | 'star-2' | 'heart'>('star');\n list = computed(() => {\n return range(0, this.max());\n });\n itemClass$$ = computed(() => {\n return this.#theme.addPrefix2('mask', this.type());\n });\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(this.#theme.setSize('rating', this.size()));\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <div\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"\n attr()?.class\n | mergeClass\n : ('rating' | cssPrefix)\n : wrapperClass$()\n : (half() ? ('rating-half' | cssPrefix) : undefined)\n \"\n >\n <input\n type=\"radio\"\n [name]=\"name\"\n aria-label=\"{{ 0 }} rating\"\n [checked]=\"value$() === 0\"\n (change)=\"valueAndTouchedChange(0)\"\n [class]=\"'rating-hidden' | cssPrefix\"\n [disabled]=\"min() > 0\"\n />\n @for (item of list(); track $index) {\n @let value2 = item + 1;\n @if (half()) {\n @let halfValue = item + 0.5;\n <input\n type=\"radio\"\n [name]=\"name\"\n aria-label=\"{{ halfValue }} rating\"\n [checked]=\"value$() === halfValue\"\n (change)=\"valueAndTouchedChange(halfValue)\"\n [class]=\"itemClass$$() | mergeClass: 'mask mask-half-1' | cssPrefix\"\n [disabled]=\"min() > halfValue\"\n />\n <input\n type=\"radio\"\n [name]=\"name\"\n aria-label=\"{{ value2 }} rating\"\n [checked]=\"value$() === value2\"\n (change)=\"valueAndTouchedChange(value2)\"\n [class]=\"itemClass$$() | mergeClass: 'mask mask-half-2' | cssPrefix\"\n [disabled]=\"min() > value2\"\n />\n } @else {\n <input\n type=\"radio\"\n [name]=\"name\"\n aria-label=\"{{ item + 1 }} rating\"\n [checked]=\"value$() === item + 1\"\n (change)=\"valueAndTouchedChange(item + 1)\"\n [class]=\"itemClass$$() | mergeClass: 'mask mask-star' | cssPrefix\"\n [disabled]=\"min() > value2\"\n />\n }\n }\n </div>\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport {\n Color,\n CommonSelectOptions,\n DefaultOptionConvert,\n OptionConvert,\n Size,\n transformOptions,\n} from '@piying-lib/angular-core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 选择器控件\n *\n * 提供下拉选择功能,支持单选、多选以及原生 select 样式。\n * 适用于需要在多个选项中选择一个或多个的场景。\n */\n@Component({\n selector: 'app-select',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, NgTemplateOutlet, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectFCC),\n multi: true,\n },\n ],\n})\nexport class SelectFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 是否多选 */\n multiple = input(false);\n /** 是否使用幽灵样式 */\n ghost = input<boolean>();\n /** 是否使用原生 select 样式 */\n native = input<boolean>();\n /** 选项列表 */\n options = input<CommonSelectOptions, CommonSelectOptions | undefined>([], {\n transform: (input) => input ?? [],\n });\n /** 选项转换器 */\n optionConvert = input<OptionConvert, Partial<OptionConvert>>(DefaultOptionConvert, {\n transform: (input) => ({ ...DefaultOptionConvert, ...input }),\n });\n /** 空选项时显示的内容 */\n emptyOptionContent = input<string>('------');\n\n resolvedOptions$$ = computed(() => transformOptions(this.options(), this.optionConvert()));\n\n #theme = inject(ThemeService);\n\n wrapperClass$$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('select', this.color()),\n this.#theme.setSize('select', this.size()),\n this.ghost() ? this.#theme.addPrefix('select-ghost') : undefined,\n this.native() ? this.#theme.addTwPrefix('appearance-none') : undefined,\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n @let multi = multiple();\n @if (multi) {\n <select\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('select' | cssPrefix) : wrapperClass$$()\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n multiple\n >\n <ng-template #optionTemp let-config=\"config\">\n @if (config.type === 'group') {\n <optgroup [label]=\"config.label\">\n @for (item of config.children; track $index) {\n <ng-container\n *ngTemplateOutlet=\"optionTemp; context: { config: item }\"\n ></ng-container>\n }\n </optgroup>\n } @else {\n <option\n [disabled]=\"config.disabled\"\n [ngValue]=\"config.value\"\n [attr.data-tip]=\"config.description!\"\n [class]=\"!!config.description ? ('tooltip' | cssPrefix) : undefined\"\n >\n {{ config.label }}\n </option>\n }\n </ng-template>\n <option disabled selected>{{ emptyOptionContent() }}</option>\n\n @for (item of resolvedOptions$$(); track $index) {\n <ng-container *ngTemplateOutlet=\"optionTemp; context: { config: item }\"></ng-container>\n }\n </select>\n } @else {\n <select\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('select' | cssPrefix) : wrapperClass$$()\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n >\n <ng-template #optionTemp let-config=\"config\">\n @if (config.type === 'group') {\n <optgroup [label]=\"config.label\">\n @for (item of config.children; track $index) {\n <ng-container\n *ngTemplateOutlet=\"optionTemp; context: { config: item }\"\n ></ng-container>\n }\n </optgroup>\n } @else {\n <option\n [disabled]=\"config.disabled\"\n [ngValue]=\"config.value\"\n [attr.data-tip]=\"config.description!\"\n [class]=\"!!config.description ? ('tooltip' | cssPrefix) : undefined\"\n >\n {{ config.label }}\n </option>\n }\n </ng-template>\n <option disabled selected>{{ emptyOptionContent() }}</option>\n\n @for (item of resolvedOptions$$(); track $index) {\n <ng-container *ngTemplateOutlet=\"optionTemp; context: { config: item }\"></ng-container>\n }\n </select>\n }\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 多行文本输入控件\n *\n * 提供多行文本的输入功能,支持大段文本的编辑场景。\n * 适用于评论、描述、备注等需要大量文本输入的表单字段。\n */\n@Component({\n selector: 'app-textarea',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaFCC),\n multi: true,\n },\n ],\n})\nexport class TextareaFCC extends BaseControl {\n static __version = 2;\n\n /** 是否使用幽灵样式 */\n ghost = input<boolean>();\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n #theme = inject(ThemeService);\n\n wrapperClass$$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('textarea', this.color()),\n this.#theme.setSize('textarea', this.size()),\n this.ghost() ? this.#theme.addPrefix('textarea-ghost') : undefined,\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <textarea\n [class]=\"attr()?.class | mergeClass: ('textarea' | cssPrefix) : wrapperClass$$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueChange($event)\"\n [disabled]=\"disabled$()\"\n (blur)=\"touchedChange()\"\n ></textarea>\n</ng-template>\n","import { Component, computed, forwardRef, inject, input, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 开关控件\n *\n * 提供开/关状态切换功能,支持确定和不确定两种状态。\n * 适用于功能开关、选项启用/禁用等场景。\n */\n@Component({\n selector: 'app-toggle',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleFCC),\n multi: true,\n },\n ],\n})\nexport class ToggleFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 颜色主题 */\n color = input<Color>();\n /** 尺寸大小 */\n size = input<Size>();\n /** 是否为不确定状态 */\n indeterminate = input<boolean>();\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.setColor('toggle', this.color()),\n this.#theme.setSize('toggle', this.size()),\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <input\n type=\"checkbox\"\n [class]=\"attr()?.class | mergeClass: ('toggle' | cssPrefix) : wrapperClass$()\"\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n [indeterminate]=\"indeterminate()\"\n />\n</ng-template>\n","import {\n Component,\n computed,\n forwardRef,\n inject,\n input,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectorlessOutlet } from '@cyia/ngx-common/directive';\nimport { StrOrTemplateComponent } from '@piying-lib/angular-core';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { AttributesDirective, BaseControl } from '@piying/view-angular';\nimport clsx from 'clsx';\n/**\n * 交换控件(状态切换控件)\n *\n * 提供两种或三种状态之间的切换功能,支持旋转、翻转等动画效果。\n * 可自定义不同状态下的显示内容,适用于需要状态切换的场景。\n */\n@Component({\n selector: 'app-swap',\n templateUrl: './component.html',\n imports: [FormsModule, AttributesDirective, CssPrefixPipe, SelectorlessOutlet, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwapFCC),\n multi: true,\n },\n ],\n})\nexport class SwapFCC extends BaseControl {\n static __version = 2;\n readonly StrOrTemplateComponent = StrOrTemplateComponent;\n templateRef = viewChild.required('templateRef');\n /** 开启状态时显示的内容 */\n onContent = input<string | TemplateRef<any>>('✔️');\n /** 关闭状态时显示的内容 */\n offContent = input<string | TemplateRef<any>>('❌');\n /** 不确定状态时显示的内容 */\n indeterminateContent = input<string | TemplateRef<any>>();\n /** 是否为不确定状态 */\n indeterminate = input<boolean>();\n /** 是否启用旋转动画 */\n rotate = input<boolean>();\n /** 是否启用翻转动画 */\n flip = input<boolean>();\n #theme = inject(ThemeService);\n wrapperClass$ = computed(() => {\n return clsx(\n this.rotate() ? this.#theme.addPrefix('swap-rotate') : undefined,\n this.flip() ? this.#theme.addPrefix('swap-flip') : undefined,\n );\n });\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <label\n [attributes]=\"attr()\"\n [excludes]=\"['class']\"\n [class]=\"attr()?.class | mergeClass: ('swap' | cssPrefix) : wrapperClass$()\"\n >\n <input\n type=\"checkbox\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueAndTouchedChange($event)\"\n [disabled]=\"disabled$()\"\n [indeterminate]=\"indeterminate()\"\n />\n <div [class]=\"'swap-on' | cssPrefix\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{ content: onContent }\"\n ></ng-template>\n </div>\n <div [class]=\"'swap-off' | cssPrefix\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{ content: offContent }\"\n ></ng-template>\n </div>\n <div [class]=\"'swap-indeterminate' | cssPrefix\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{ content: indeterminateContent }\"\n ></ng-template>\n </div>\n </label>\n</ng-template>\n","import type { CalendarDateProps, CalendarMultiProps, CalendarRangeProps } from 'cally';\nexport const DateKey = ['min', 'max', 'today', 'focusedDate'] as const;\nexport const RangeDateKey = [...DateKey, 'tentative'] as const;\nexport type KeyType = (typeof DateKey)[number];\nexport type RangeKeyType = (typeof RangeDateKey)[number];\nexport type DatedCalendarDateProps = Omit<CalendarDateProps, 'value' | KeyType> &\n Partial<Record<KeyType, Date>>;\nexport type DatedCalendarMultiProps = Omit<CalendarMultiProps, 'value' | KeyType> &\n Partial<Record<KeyType, Date>>;\nexport type DatedCalendarRangeProps = Omit<CalendarRangeProps, 'value' | RangeKeyType> &\n Partial<Record<RangeKeyType, Date>>;\n","import {\n afterNextRender,\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n forwardRef,\n inject,\n input,\n PendingTasks,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseControl } from '@piying/view-angular';\n\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { CalendarPropsDirective } from './props.directive';\nimport type { CalendarDateProps } from 'cally';\nimport {\n DatedCalendarDateProps,\n DatedCalendarMultiProps,\n DatedCalendarRangeProps,\n DateKey,\n RangeDateKey,\n} from './type';\nimport { range } from 'es-toolkit';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { toDateStr } from './date.util';\n/**\n * 日期选择控件\n *\n * 提供日期、多选日期、范围选择三种模式的日期选择功能。\n * 支持自定义日期属性配置,适用于需要进行日期选择的表单场景。\n */\nfunction DateEqual(a: Date, b: Date) {\n return a.getTime() === b.getTime();\n}\nfunction DateAsc(a: Date, b: Date) {\n return a.getTime() - b.getTime();\n}\n@Component({\n selector: 'app-calendar',\n templateUrl: './component.html',\n imports: [FormsModule, CssPrefixPipe, MergeClassPipe, CalendarPropsDirective],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CalendarFCC),\n multi: true,\n },\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CalendarFCC extends BaseControl<Date | Date[]> {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n /** 日期选择模式,支持单选、多选、范围选择 */\n type = input<'date' | 'multi' | 'range'>('date');\n /** 日期属性配置 */\n dateProps = input<DatedCalendarDateProps | DatedCalendarMultiProps | DatedCalendarRangeProps>();\n /** 显示的月份数量 */\n monthProps = input<number | number[]>(1);\n monthProps$$ = computed(() => {\n const value = this.monthProps();\n return typeof value === 'number'\n ? range(value).map((value) => {\n return value;\n })\n : value;\n });\n\n #multiList$$ = computed(() => {\n return new SelectionModel<Date>(true, this.value$() as Date[], undefined, DateEqual);\n });\n\n dateProps$$ = computed(() => {\n const props = this.dateProps();\n const converted: Record<string, any> = {};\n if (props) {\n (this.type() === 'range' ? RangeDateKey : DateKey).forEach((item) => {\n if ((props as any)[item]) {\n converted[item] = toDateStr((props as any)[item]);\n }\n });\n }\n let value;\n switch (this.type()) {\n case 'date': {\n if (this.value$()) {\n value = toDateStr(this.value$() as Date);\n }\n break;\n }\n case 'range': {\n value = ((this.value$() ?? []) as Date[])\n .map((item) => {\n return toDateStr(item);\n })\n .join('/');\n\n break;\n }\n case 'multi': {\n value = ((this.value$() ?? []) as Date[])\n .map((item) => {\n return toDateStr(item);\n })\n .join(' ');\n break;\n }\n }\n return {\n ...props,\n value,\n ...converted,\n } as CalendarDateProps;\n });\n #theme = inject(ThemeService);\n #callyInstance$$ = signal<typeof import('cally') | undefined>(undefined);\n\n callyInited$$ = computed(() => {\n return !!this.#callyInstance$$();\n });\n #pt = inject(PendingTasks);\n constructor() {\n super();\n afterNextRender(() => {\n this.#pt.run(() => {\n return import('cally').then((a) => this.#callyInstance$$.set(a));\n });\n });\n }\n focusdayChanged($event: CustomEvent<Date>) {\n switch (this.type()) {\n case 'multi':\n this.#multiList$$().toggle($event.detail);\n this.value$.set(this.#multiList$$().selected);\n this.valueAndTouchedChange(this.value$());\n break;\n case 'date': {\n this.value$.set($event.detail);\n this.valueAndTouchedChange(this.value$());\n break;\n }\n }\n }\n\n #rangeList: Date[] = [];\n rangestartChanged(event: CustomEvent<Date>) {\n this.#rangeList[0] = event.detail;\n }\n rangeendChanged(event: CustomEvent<Date>) {\n this.#rangeList[1] = event.detail;\n this.value$.set(this.#rangeList.sort(DateAsc));\n this.valueAndTouchedChange(this.value$());\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n @defer (when callyInited$$()) {\n @let ClassStr = 'cally' | cssPrefix | mergeClass: attr()?.class;\n @switch (type()) {\n @case ('date') {\n <calendar-date\n [class]=\"ClassStr\"\n (focusday)=\"focusdayChanged($any($event))\"\n [calendarProps]=\"dateProps$$()\"\n >\n <span class=\"material-icons text-base! leading-none!\" slot=\"previous\"> arrow_back </span>\n <span class=\"material-icons text-base! leading-none!\" slot=\"next\"> arrow_forward </span>\n\n <calendar-month></calendar-month>\n </calendar-date>\n }\n @case ('multi') {\n <calendar-multi\n [class]=\"ClassStr\"\n [calendarProps]=\"dateProps$$()\"\n (focusday)=\"focusdayChanged($any($event))\"\n >\n <span class=\"material-icons text-base! leading-none!\" slot=\"previous\"> arrow_back </span>\n <span class=\"material-icons text-base! leading-none!\" slot=\"next\"> arrow_forward </span>\n\n <calendar-month></calendar-month>\n </calendar-multi>\n }\n @case ('range') {\n <calendar-range\n [class]=\"ClassStr\"\n [calendarProps]=\"dateProps$$()\"\n (focusday)=\"focusdayChanged($any($event))\"\n (rangestart)=\"rangestartChanged($any($event))\"\n (rangeend)=\"rangeendChanged($any($event))\"\n >\n <span class=\"material-icons text-base! leading-none!\" slot=\"previous\"> arrow_back </span>\n <span class=\"material-icons text-base! leading-none!\" slot=\"next\"> arrow_forward </span>\n\n @for (item of monthProps$$(); track $index) {\n <calendar-month [attr.offset]=\"item\"></calendar-month>\n }\n </calendar-range>\n }\n }\n } @loading {\n <span class=\"loading loading-spinner loading-xs\"></span>\n }\n</ng-template>\n","import { Component, computed, forwardRef, signal, viewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseControl } from '@piying/view-angular';\n\nimport { MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 密码输入控件\n *\n * 提供带有密码可见性切换功能的输入框。\n * 适用于需要输入密码等敏感信息的场景。\n */\n@Component({\n selector: 'app-password',\n templateUrl: './component.html',\n imports: [FormsModule, MergeClassPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordInputFCC),\n multi: true,\n },\n ],\n})\nexport class PasswordInputFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n pendingValue$ = signal('');\n see$ = signal(false);\n type$$ = computed(() => {\n return this.see$() ? 'text' : 'password';\n });\n toggleSee() {\n this.see$.update((a) => !a);\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n <label [class]=\"'input' | mergeClass: attr().class\">\n <input\n [type]=\"type$$()\"\n [placeholder]=\"attr()?.placeholder ?? ''\"\n [ngModel]=\"value$()\"\n (ngModelChange)=\"valueChange($event)\"\n (blur)=\"touchedChange()\"\n class=\"w-full\"\n />\n <button class=\"btn btn-circle btn-ghost btn-sm\" type=\"button\" (click)=\"toggleSee()\">\n @if (see$()) {\n <span class=\"material-icons\">remove_red_eye</span>\n <span class=\"absolute material-icons\">not_interested</span>\n } @else {\n <span class=\"material-icons\">remove_red_eye</span>\n }\n </button>\n </label>\n</ng-template>\n","import {\n Component,\n computed,\n forwardRef,\n inject,\n input,\n linkedSignal,\n signal,\n viewChild,\n} from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseControl } from '@piying/view-angular';\n\nimport { Color, Size } from '@piying-lib/angular-core';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport { CssPrefixPipe, MergeClassPipe } from '@piying-lib/angular-daisyui/pipe';\n/**\n * 可编辑标签控件\n *\n * 提供可直接点击编辑的标签显示功能,支持在显示和编辑状态之间切换。\n * 适用于需要Inline编辑的场景,如自定义标签、备注等。\n */\n@Component({\n selector: 'app-editable-badge',\n templateUrl: './component.html',\n imports: [FormsModule, MergeClassPipe, CssPrefixPipe],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditableBadgeFCC),\n multi: true,\n },\n ],\n})\nexport class EditableBadgeFCC extends BaseControl {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n isEdit$ = signal(false);\n editContent$ = linkedSignal(this.value$);\n /** 尺寸大小 */\n size = input<Size>('md');\n /** 颜色主题 */\n color = input<Color>();\n #theme = inject(ThemeService);\n\n wrapperClass$ = computed(() => {\n return this.#theme.setClass(\n this.#theme.addPrefix('badge'),\n this.#theme.setColor('badge', this.color()),\n this.#theme.setSize('badge', this.size()),\n // this.#theme.setSize('badge', this.style()),\n );\n });\n size$$ = computed(() => {\n const size = this.size();\n return {\n input: this.#theme.setSize('input', size),\n btn: this.#theme.setSize('btn', size === 'xl' ? 'sm' : 'xs'),\n text: this.#theme.setSize('text', size === 'md' ? 'base' : size) + '!',\n };\n });\n valueChange2() {\n this.isEdit$.set(false);\n this.valueChange(this.editContent$());\n this.editContent$.set('');\n }\n}\n","<ng-template #templateRef let-attr=\"attributes\">\n @let size = size$$();\n <span [class]=\"wrapperClass$() | mergeClass: size.text\">\n @if (isEdit$()) {\n <input\n type=\"text\"\n [class]=\"\n 'input'\n | cssPrefix\n | mergeClass\n : 'outline-none! border-none! shadow-none! bg-transparent! px-0'\n : size.input\n \"\n [(ngModel)]=\"editContent$\"\n />\n <button\n [class]=\"'btn btn-circle btn-success btn-ghost' | cssPrefix | mergeClass: size.btn\"\n (click)=\"valueChange2()\"\n >\n <span [class]=\"'material-icons' | mergeClass: size.text\">check</span>\n </button>\n <button\n [class]=\"'btn btn-circle btn-error btn-ghost' | cssPrefix | mergeClass: size.btn\"\n (click)=\"editContent$.set(''); isEdit$.set(false)\"\n >\n <span [class]=\"'material-icons' | mergeClass: size.text\">close</span>\n </button>\n } @else {\n @if (value$()) {\n {{ value$() }}\n }\n <button\n [class]=\"'btn btn-circle btn-accent btn-ghost' | cssPrefix | mergeClass: size.btn\"\n (click)=\"editContent$.set(value$()); isEdit$.set(true)\"\n >\n <span [class]=\"'material-icons' | mergeClass: size.text\">edit</span>\n </button>\n }\n </span>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { MergeClassPipe, CssPrefixPipe, TwPrefixPipe } from '@piying-lib/angular
4
4
  import { CdkCopyToClipboard } from '@angular/cdk/clipboard';
5
5
  import { ThemeService } from '@piying-lib/angular-daisyui/service';
6
6
  import clsx from 'clsx';
7
- import { StrOrTemplateComponent } from '@piying-lib/angular-core';
7
+ import { StrOrTemplateComponent, MergeClassPipe as MergeClassPipe$1 } from '@piying-lib/angular-core';
8
8
  import { SelectorlessOutlet } from '@cyia/ngx-common/directive';
9
9
  import { PurePipe } from '@cyia/ngx-common/pipe';
10
10
  import { PI_INPUT_OPTIONS_TOKEN, PiyingView } from '@piying/view-angular';
@@ -224,11 +224,11 @@ class FormDialogItemComponent {
224
224
  };
225
225
  }, ...(ngDevMode ? [{ debugName: "options2$$" }] : []));
226
226
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: FormDialogItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
227
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: FormDialogItemComponent, isStandalone: true, selector: "pi-form-dialog-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n <dialog [class]=\"'modal' | cssPrefix\" open>\n <div class=\"modal-box\">\n <h2 [class]=\"'text-lg font-bold' | twPrefix\">{{ item().title }}</h2>\n\n <piying-view\n [schema]=\"item().schema\"\n [options]=\"options2$$()\"\n [model]=\"item().value\"\n (modelChange)=\"modelChange($event)\"\n class=\"flex-1 overflow-auto py-4\"\n #ref\n ></piying-view>\n <div class=\"card-actions justify-end\">\n <button class=\"btn btn-error\" (click)=\"close()\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{\n content: item().cancelButton ?? 'Cancel',\n }\"\n ></ng-template>\n </button>\n\n <input\n type=\"submit\"\n class=\"btn btn-primary\"\n (click)=\"apply()\"\n [disabled]=\"!ref.form$$()?.valid\"\n />\n </div>\n @if (loading$()) {\n <div\n class=\"absolute top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-base-200/70\"\n >\n <span class=\"loading text-primary\"></span>\n </div>\n }\n </div>\n @if (!item().modal) {\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button (click)=\"close()\">close</button>\n </form>\n }\n </dialog>\n</ng-template>\n", dependencies: [{ kind: "directive", type: SelectorlessOutlet, selector: "[selectlessOutlet]", inputs: ["selectlessOutlet", "selectlessOutletInputs", "selectlessOutletOutputs", "selectlessOutletDirectives", "selectlessOutletInjector", "selectlessOutletEnvironmentInjector"], exportAs: ["selectlessOutlet"] }, { kind: "component", type: PiyingView, selector: "piying-view", inputs: ["selectorless", "schema", "model", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: CssPrefixPipe, name: "cssPrefix" }, { kind: "pipe", type: TwPrefixPipe, name: "twPrefix" }] });
227
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.14", type: FormDialogItemComponent, isStandalone: true, selector: "pi-form-dialog-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-template #templateRef>\n <dialog [class]=\"'modal' | cssPrefix | mergeClass: item().class\" open>\n <div class=\"modal-box\">\n <h2 [class]=\"'text-lg font-bold' | twPrefix\">{{ item().title }}</h2>\n\n <piying-view\n [schema]=\"item().schema\"\n [options]=\"options2$$()\"\n [model]=\"item().value\"\n (modelChange)=\"modelChange($event)\"\n class=\"flex-1 overflow-auto py-4\"\n #ref\n ></piying-view>\n <div class=\"card-actions justify-end\">\n <button class=\"btn btn-error\" (click)=\"close()\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{\n content: item().cancelButton ?? 'Cancel',\n }\"\n ></ng-template>\n </button>\n\n <input\n type=\"submit\"\n class=\"btn btn-primary\"\n (click)=\"apply()\"\n [disabled]=\"!ref.form$$()?.valid\"\n />\n </div>\n @if (loading$()) {\n <div\n class=\"absolute top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-base-200/70\"\n >\n <span class=\"loading text-primary\"></span>\n </div>\n }\n </div>\n @if (!item().modal) {\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button (click)=\"close()\">close</button>\n </form>\n }\n </dialog>\n</ng-template>\n", dependencies: [{ kind: "directive", type: SelectorlessOutlet, selector: "[selectlessOutlet]", inputs: ["selectlessOutlet", "selectlessOutletInputs", "selectlessOutletOutputs", "selectlessOutletDirectives", "selectlessOutletInjector", "selectlessOutletEnvironmentInjector"], exportAs: ["selectlessOutlet"] }, { kind: "component", type: PiyingView, selector: "piying-view", inputs: ["selectorless", "schema", "model", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: CssPrefixPipe, name: "cssPrefix" }, { kind: "pipe", type: TwPrefixPipe, name: "twPrefix" }, { kind: "pipe", type: MergeClassPipe$1, name: "mergeClass" }] });
228
228
  }
229
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImport: i0, type: FormDialogItemComponent, decorators: [{
230
230
  type: Component,
231
- args: [{ selector: 'pi-form-dialog-item', imports: [CssPrefixPipe, TwPrefixPipe, SelectorlessOutlet, PiyingView], template: "<ng-template #templateRef>\n <dialog [class]=\"'modal' | cssPrefix\" open>\n <div class=\"modal-box\">\n <h2 [class]=\"'text-lg font-bold' | twPrefix\">{{ item().title }}</h2>\n\n <piying-view\n [schema]=\"item().schema\"\n [options]=\"options2$$()\"\n [model]=\"item().value\"\n (modelChange)=\"modelChange($event)\"\n class=\"flex-1 overflow-auto py-4\"\n #ref\n ></piying-view>\n <div class=\"card-actions justify-end\">\n <button class=\"btn btn-error\" (click)=\"close()\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{\n content: item().cancelButton ?? 'Cancel',\n }\"\n ></ng-template>\n </button>\n\n <input\n type=\"submit\"\n class=\"btn btn-primary\"\n (click)=\"apply()\"\n [disabled]=\"!ref.form$$()?.valid\"\n />\n </div>\n @if (loading$()) {\n <div\n class=\"absolute top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-base-200/70\"\n >\n <span class=\"loading text-primary\"></span>\n </div>\n }\n </div>\n @if (!item().modal) {\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button (click)=\"close()\">close</button>\n </form>\n }\n </dialog>\n</ng-template>\n" }]
231
+ args: [{ selector: 'pi-form-dialog-item', imports: [CssPrefixPipe, TwPrefixPipe, SelectorlessOutlet, PiyingView, MergeClassPipe$1], template: "<ng-template #templateRef>\n <dialog [class]=\"'modal' | cssPrefix | mergeClass: item().class\" open>\n <div class=\"modal-box\">\n <h2 [class]=\"'text-lg font-bold' | twPrefix\">{{ item().title }}</h2>\n\n <piying-view\n [schema]=\"item().schema\"\n [options]=\"options2$$()\"\n [model]=\"item().value\"\n (modelChange)=\"modelChange($event)\"\n class=\"flex-1 overflow-auto py-4\"\n #ref\n ></piying-view>\n <div class=\"card-actions justify-end\">\n <button class=\"btn btn-error\" (click)=\"close()\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{\n content: item().cancelButton ?? 'Cancel',\n }\"\n ></ng-template>\n </button>\n\n <input\n type=\"submit\"\n class=\"btn btn-primary\"\n (click)=\"apply()\"\n [disabled]=\"!ref.form$$()?.valid\"\n />\n </div>\n @if (loading$()) {\n <div\n class=\"absolute top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-base-200/70\"\n >\n <span class=\"loading text-primary\"></span>\n </div>\n }\n </div>\n @if (!item().modal) {\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button (click)=\"close()\">close</button>\n </form>\n }\n </dialog>\n</ng-template>\n" }]
232
232
  }], propDecorators: { templateRef: [{ type: i0.ViewChild, args: ['templateRef', { isSignal: true }] }], item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: true }] }] } });
233
233
 
234
234
  class FormDialogPortal {
@@ -1 +1 @@
1
- {"version":3,"file":"piying-lib-angular-daisyui-overlay.mjs","sources":["../../../projects/daisyui/overlay/toast/toast.service.ts","../../../projects/daisyui/overlay/toast/component.ts","../../../projects/daisyui/overlay/toast/component.html","../../../projects/daisyui/overlay/confirm/confirm.service.ts","../../../projects/daisyui/overlay/confirm/component.ts","../../../projects/daisyui/overlay/confirm/component.html","../../../projects/daisyui/overlay/form-dialog/form-dialog.service.ts","../../../projects/daisyui/overlay/form-dialog/dialog-item/component.ts","../../../projects/daisyui/overlay/form-dialog/dialog-item/component.html","../../../projects/daisyui/overlay/form-dialog/component.ts","../../../projects/daisyui/overlay/form-dialog/component.html","../../../projects/daisyui/overlay/piying-lib-angular-daisyui-overlay.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\nexport interface ToastItem {\n id: number;\n message: string;\n type?: 'success' | 'error' | 'warning' | 'info';\n duration?: number;\n enableCopy?: boolean;\n}\n\ntype XPosition = 'start' | 'center' | 'end';\ntype YPosition = 'top' | 'middle' | 'bottom';\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n readonly #list$ = signal<ToastItem[]>([]);\n private readonly timeoutDelayIds = new Map<number, any>();\n private readonly timeoutDurationIds = new Map<number, any>();\n private nextId = 0;\n #position$ = signal<[XPosition, YPosition]>(['end', 'top']);\n position$$ = this.#position$.asReadonly();\n list$$ = this.#list$.asReadonly();\n\n add(options: Omit<ToastItem, 'id'> & { delay?: number }): number {\n const id = this.nextId++;\n const delay = options.delay;\n const item: ToastItem = {\n id,\n ...options,\n type: options.type || 'info',\n duration: options.duration ?? 5000,\n };\n if (!delay) {\n this.#addToList(item);\n } else {\n const timeoutId = setTimeout(() => {\n this.#addToList(item);\n }, delay);\n this.timeoutDelayIds.set(id, timeoutId);\n }\n\n return id;\n }\n #addToList(item: ToastItem) {\n this.#list$.update((current) => [...current, item]);\n const timeoutId = setTimeout(() => {\n this.remove(item.id);\n }, item.duration);\n\n this.timeoutDurationIds.set(item.id, timeoutId);\n }\n\n remove(id: number): void {\n if (this.timeoutDurationIds.has(id)) {\n clearTimeout(this.timeoutDurationIds.get(id)!);\n this.timeoutDurationIds.delete(id);\n this.#list$.update((current) => current.filter((item) => item.id !== id));\n }\n if (this.timeoutDelayIds.has(id)) {\n clearTimeout(this.timeoutDelayIds.get(id)!);\n this.timeoutDelayIds.delete(id);\n }\n }\n\n clear(): void {\n this.timeoutDurationIds.forEach((timeoutId) => clearTimeout(timeoutId));\n this.timeoutDurationIds.clear();\n this.timeoutDelayIds.forEach((timeoutId) => clearTimeout(timeoutId));\n this.timeoutDelayIds.clear();\n this.#list$.set([]);\n }\n setPosition(item: [XPosition, YPosition]) {\n this.#position$.set(item);\n }\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { CssPrefixPipe, MergeClassPipe, TwPrefixPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { ToastService } from './toast.service';\nimport { CdkCopyToClipboard } from '@angular/cdk/clipboard';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport clsx from 'clsx';\n\n@Component({\n selector: 'pi-toast-portal',\n templateUrl: './component.html',\n imports: [MergeClassPipe, CssPrefixPipe, TwPrefixPipe, CdkCopyToClipboard],\n})\nexport class ToastPortal {\n toast = inject(ToastService);\n #theme = inject(ThemeService);\n containerClass$$ = computed(() => {\n return clsx(this.toast.position$$().map((item) => this.#theme.addPrefix(`toast-${item}`)));\n });\n}\n","<div [class]=\"'toast' | cssPrefix | mergeClass: ('z-100' | twPrefix) : containerClass$$()\">\n @for (item of toast.list$$(); track $index) {\n <div\n [class]=\"\n 'alert alert-' + item.type | cssPrefix | mergeClass: 'w-fit break-all gap-1' | twPrefix\n \"\n >\n <span>{{ item.message }}</span>\n @if (item.enableCopy) {\n <button\n class=\"btn btn-circle btn-ghost btn-xs tooltip\"\n [cdkCopyToClipboard]=\"item.message\"\n data-tip=\"copy\"\n >\n <span class=\"material-icons\">content_copy</span>\n </button>\n }\n </div>\n }\n</div>\n","import { Injectable, signal } from '@angular/core';\n\nexport type Button<T> = {\n close?: () => Promise<T>;\n class?: string;\n label: any;\n};\n\ntype UnionCloseReturns<T extends readonly any[]> = T extends readonly []\n ? never\n : {\n [K in keyof T]: T[K] extends { close?: (...args: any[]) => infer R } ? R : never;\n }[number];\n\nexport interface ConfirmItem<BList extends Button<any>[] = any[]> {\n id: number;\n title: string;\n message: string;\n buttons?: BList;\n close: (value: any) => Promise<any>;\n /** 是否为模态框 */\n modal?: boolean;\n}\nconst Undefined$$ = Promise.resolve(undefined);\ntype Position = 'top' | 'middle' | 'bottom' | 'start' | 'end';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfirmService {\n readonly #list$ = signal<ConfirmItem[]>([]);\n private nextId = 0;\n\n list$$ = this.#list$.asReadonly();\n #position$ = signal<Position>('middle');\n position$$ = this.#position$.asReadonly();\n open<TB extends Button<any>[]>(options: Omit<ConfirmItem<TB>, 'id' | 'close'>) {\n const id = this.nextId++;\n const p = Promise.withResolvers<UnionCloseReturns<TB>>();\n this.#addToList({\n ...options,\n id,\n close: async (index: number | undefined) => {\n (index === undefined\n ? Undefined$$\n : options.buttons![index].close\n ? options.buttons![index].close()\n : Undefined$$\n ).then((value) => {\n p.resolve(value);\n this.remove(id);\n });\n },\n });\n\n return p.promise;\n }\n #addToList(item: ConfirmItem) {\n this.#list$.update((current) => [...current, item]);\n }\n\n remove(id: number): void {\n this.#list$.update((current) => current.filter((item) => item.id !== id));\n }\n setPosition(position: Position) {\n this.#position$.set(position);\n }\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { CssPrefixPipe, MergeClassPipe, TwPrefixPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport clsx from 'clsx';\nimport { ConfirmService } from './confirm.service';\nimport { StrOrTemplateComponent } from '@piying-lib/angular-core';\nimport { SelectorlessOutlet } from '@cyia/ngx-common/directive';\nimport { PurePipe } from '@cyia/ngx-common/pipe';\n\n@Component({\n selector: 'pi-confirm-portal',\n templateUrl: './component.html',\n imports: [MergeClassPipe, CssPrefixPipe, TwPrefixPipe, SelectorlessOutlet, PurePipe],\n})\nexport class ConfirmPortal {\n readonly StrOrTemplateComponent = StrOrTemplateComponent;\n service = inject(ConfirmService);\n #theme = inject(ThemeService);\n containerClass$$ = computed(() => {\n return clsx(this.#theme.addPrefix(`modal-${this.service.position$$()}`));\n });\n buttonContent = (content: any) => {\n return { content };\n };\n}\n","@for (item of service.list$$(); track $index) {\n <dialog [class]=\"'modal' | cssPrefix | mergeClass: containerClass$$()\" open>\n <div [class]=\"'modal-box' | cssPrefix\">\n <h3 [class]=\"'text-lg font-bold' | twPrefix\">{{ item.title }}</h3>\n <p [class]=\"'py-4 break-all' | twPrefix\">{{ item.message }}</p>\n <form method=\"dialog\" [class]=\"'flex justify-end gap-2' | twPrefix\">\n @for (button of item.buttons; track $index) {\n <button\n [class]=\"'btn' | cssPrefix | mergeClass: button.class\"\n (click)=\"item.close($index)\"\n type=\"button\"\n >\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"buttonContent | pure: button.label\"\n ></ng-template>\n </button>\n }\n </form>\n </div>\n @if (!item.modal) {\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button (click)=\"item.close(undefined)\">close</button>\n </form>\n }\n </dialog>\n}\n","import { Injectable, Injector, signal } from '@angular/core';\nimport * as v from 'valibot';\nimport { PartialDeep } from 'type-fest';\n\nexport interface FormDialogOptions<\n Schema extends v.BaseSchema<any, any, any> = v.BaseSchema<any, any, any>,\n ReturnValue = any,\n> {\n id: number;\n\n title: string;\n schema: Schema;\n value?: PartialDeep<v.InferInput<Schema>>;\n cancelButton?: any;\n /** 是否为模态框 */\n modal?: boolean;\n applyValue?: (value: v.InferOutput<Schema>) => Promise<ReturnValue | undefined>;\n injector: Injector;\n close: (value: any) => Promise<any>;\n context?: Record<string, any>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormDialogService {\n readonly #list$ = signal<FormDialogOptions[]>([]);\n private nextId = 0;\n\n list$$ = this.#list$.asReadonly();\n\n open<Schema extends v.BaseSchema<any, any, any>, ReturnValue>(\n options: Omit<FormDialogOptions<Schema, ReturnValue>, 'id' | 'close'>,\n ) {\n const id = this.nextId++;\n const p = Promise.withResolvers<ReturnValue | undefined>();\n this.#addToList({\n ...options,\n id,\n close: async (result?: ReturnValue) => {\n p.resolve(result);\n this.#remove(id);\n },\n });\n\n return p.promise;\n }\n\n #addToList(item: FormDialogOptions) {\n this.#list$.update((current) => [...current, item]);\n }\n\n #remove(id: number): void {\n this.#list$.update((current) => current.filter((item) => item.id !== id));\n }\n\n // closeAll() {\n // this.#list$.set([]);\n // }\n}\n","import { Component, computed, inject, input, linkedSignal, signal, viewChild } from '@angular/core';\nimport { FormDialogOptions, FormDialogService } from '../form-dialog.service';\nimport { CssPrefixPipe, TwPrefixPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { SelectorlessOutlet } from '@cyia/ngx-common/directive';\nimport { StrOrTemplateComponent } from '@piying-lib/angular-core';\nimport { PI_INPUT_OPTIONS_TOKEN, PiyingView } from '@piying/view-angular';\n\n@Component({\n selector: 'pi-form-dialog-item',\n templateUrl: './component.html',\n imports: [CssPrefixPipe, TwPrefixPipe, SelectorlessOutlet, PiyingView],\n})\nexport class FormDialogItemComponent {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n readonly StrOrTemplateComponent = StrOrTemplateComponent;\n readonly service = inject(FormDialogService);\n options$$ = inject(PI_INPUT_OPTIONS_TOKEN);\n\n item = input.required<FormDialogOptions>();\n changedValue = linkedSignal(computed(() => this.item()?.value));\n\n loading$ = signal(false);\n\n async apply() {\n this.loading$.set(true);\n const item = this.item();\n\n try {\n const result = (await item.applyValue?.(this.changedValue())) ?? this.changedValue();\n this.item().close(result);\n } catch (error) {\n console.error(error);\n } finally {\n this.loading$.set(false);\n }\n }\n close() {\n this.item().close(undefined);\n }\n modelChange(value: any) {\n this.changedValue.set(value);\n }\n options2$$ = computed(() => {\n return {\n ...this.options$$(),\n context: {\n ...this.options$$().context,\n ...this.item().context,\n },\n };\n });\n}\n","<ng-template #templateRef>\n <dialog [class]=\"'modal' | cssPrefix\" open>\n <div class=\"modal-box\">\n <h2 [class]=\"'text-lg font-bold' | twPrefix\">{{ item().title }}</h2>\n\n <piying-view\n [schema]=\"item().schema\"\n [options]=\"options2$$()\"\n [model]=\"item().value\"\n (modelChange)=\"modelChange($event)\"\n class=\"flex-1 overflow-auto py-4\"\n #ref\n ></piying-view>\n <div class=\"card-actions justify-end\">\n <button class=\"btn btn-error\" (click)=\"close()\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{\n content: item().cancelButton ?? 'Cancel',\n }\"\n ></ng-template>\n </button>\n\n <input\n type=\"submit\"\n class=\"btn btn-primary\"\n (click)=\"apply()\"\n [disabled]=\"!ref.form$$()?.valid\"\n />\n </div>\n @if (loading$()) {\n <div\n class=\"absolute top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-base-200/70\"\n >\n <span class=\"loading text-primary\"></span>\n </div>\n }\n </div>\n @if (!item().modal) {\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button (click)=\"close()\">close</button>\n </form>\n }\n </dialog>\n</ng-template>\n","import { Component, inject } from '@angular/core';\nimport { FormDialogService } from './form-dialog.service';\nimport { FormDialogItemComponent } from './dialog-item/component';\nimport { SelectorlessOutlet } from '@cyia/ngx-common/directive';\n\n@Component({\n selector: 'pi-form-dialog-portal',\n templateUrl: './component.html',\n imports: [SelectorlessOutlet],\n})\nexport class FormDialogPortal {\n readonly service = inject(FormDialogService);\n readonly FormDialogItemComponent = FormDialogItemComponent;\n}\n","@for (item of service.list$$(); track item.id) {\n <ng-template\n [selectlessOutlet]=\"FormDialogItemComponent\"\n [selectlessOutletInjector]=\"item.injector\"\n [selectlessOutletInputs]=\"{ item: item }\"\n ></ng-template>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"piying-lib-angular-daisyui-overlay.mjs","sources":["../../../projects/daisyui/overlay/toast/toast.service.ts","../../../projects/daisyui/overlay/toast/component.ts","../../../projects/daisyui/overlay/toast/component.html","../../../projects/daisyui/overlay/confirm/confirm.service.ts","../../../projects/daisyui/overlay/confirm/component.ts","../../../projects/daisyui/overlay/confirm/component.html","../../../projects/daisyui/overlay/form-dialog/form-dialog.service.ts","../../../projects/daisyui/overlay/form-dialog/dialog-item/component.ts","../../../projects/daisyui/overlay/form-dialog/dialog-item/component.html","../../../projects/daisyui/overlay/form-dialog/component.ts","../../../projects/daisyui/overlay/form-dialog/component.html","../../../projects/daisyui/overlay/piying-lib-angular-daisyui-overlay.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\n\nexport interface ToastItem {\n id: number;\n message: string;\n type?: 'success' | 'error' | 'warning' | 'info';\n duration?: number;\n enableCopy?: boolean;\n}\n\ntype XPosition = 'start' | 'center' | 'end';\ntype YPosition = 'top' | 'middle' | 'bottom';\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastService {\n readonly #list$ = signal<ToastItem[]>([]);\n private readonly timeoutDelayIds = new Map<number, any>();\n private readonly timeoutDurationIds = new Map<number, any>();\n private nextId = 0;\n #position$ = signal<[XPosition, YPosition]>(['end', 'top']);\n position$$ = this.#position$.asReadonly();\n list$$ = this.#list$.asReadonly();\n\n add(options: Omit<ToastItem, 'id'> & { delay?: number }): number {\n const id = this.nextId++;\n const delay = options.delay;\n const item: ToastItem = {\n id,\n ...options,\n type: options.type || 'info',\n duration: options.duration ?? 5000,\n };\n if (!delay) {\n this.#addToList(item);\n } else {\n const timeoutId = setTimeout(() => {\n this.#addToList(item);\n }, delay);\n this.timeoutDelayIds.set(id, timeoutId);\n }\n\n return id;\n }\n #addToList(item: ToastItem) {\n this.#list$.update((current) => [...current, item]);\n const timeoutId = setTimeout(() => {\n this.remove(item.id);\n }, item.duration);\n\n this.timeoutDurationIds.set(item.id, timeoutId);\n }\n\n remove(id: number): void {\n if (this.timeoutDurationIds.has(id)) {\n clearTimeout(this.timeoutDurationIds.get(id)!);\n this.timeoutDurationIds.delete(id);\n this.#list$.update((current) => current.filter((item) => item.id !== id));\n }\n if (this.timeoutDelayIds.has(id)) {\n clearTimeout(this.timeoutDelayIds.get(id)!);\n this.timeoutDelayIds.delete(id);\n }\n }\n\n clear(): void {\n this.timeoutDurationIds.forEach((timeoutId) => clearTimeout(timeoutId));\n this.timeoutDurationIds.clear();\n this.timeoutDelayIds.forEach((timeoutId) => clearTimeout(timeoutId));\n this.timeoutDelayIds.clear();\n this.#list$.set([]);\n }\n setPosition(item: [XPosition, YPosition]) {\n this.#position$.set(item);\n }\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { CssPrefixPipe, MergeClassPipe, TwPrefixPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { ToastService } from './toast.service';\nimport { CdkCopyToClipboard } from '@angular/cdk/clipboard';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport clsx from 'clsx';\n\n@Component({\n selector: 'pi-toast-portal',\n templateUrl: './component.html',\n imports: [MergeClassPipe, CssPrefixPipe, TwPrefixPipe, CdkCopyToClipboard],\n})\nexport class ToastPortal {\n toast = inject(ToastService);\n #theme = inject(ThemeService);\n containerClass$$ = computed(() => {\n return clsx(this.toast.position$$().map((item) => this.#theme.addPrefix(`toast-${item}`)));\n });\n}\n","<div [class]=\"'toast' | cssPrefix | mergeClass: ('z-100' | twPrefix) : containerClass$$()\">\n @for (item of toast.list$$(); track $index) {\n <div\n [class]=\"\n 'alert alert-' + item.type | cssPrefix | mergeClass: 'w-fit break-all gap-1' | twPrefix\n \"\n >\n <span>{{ item.message }}</span>\n @if (item.enableCopy) {\n <button\n class=\"btn btn-circle btn-ghost btn-xs tooltip\"\n [cdkCopyToClipboard]=\"item.message\"\n data-tip=\"copy\"\n >\n <span class=\"material-icons\">content_copy</span>\n </button>\n }\n </div>\n }\n</div>\n","import { Injectable, signal } from '@angular/core';\n\nexport type Button<T> = {\n close?: () => Promise<T>;\n class?: string;\n label: any;\n};\n\ntype UnionCloseReturns<T extends readonly any[]> = T extends readonly []\n ? never\n : {\n [K in keyof T]: T[K] extends { close?: (...args: any[]) => infer R } ? R : never;\n }[number];\n\nexport interface ConfirmItem<BList extends Button<any>[] = any[]> {\n id: number;\n title: string;\n message: string;\n buttons?: BList;\n close: (value: any) => Promise<any>;\n /** 是否为模态框 */\n modal?: boolean;\n}\nconst Undefined$$ = Promise.resolve(undefined);\ntype Position = 'top' | 'middle' | 'bottom' | 'start' | 'end';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfirmService {\n readonly #list$ = signal<ConfirmItem[]>([]);\n private nextId = 0;\n\n list$$ = this.#list$.asReadonly();\n #position$ = signal<Position>('middle');\n position$$ = this.#position$.asReadonly();\n open<TB extends Button<any>[]>(options: Omit<ConfirmItem<TB>, 'id' | 'close'>) {\n const id = this.nextId++;\n const p = Promise.withResolvers<UnionCloseReturns<TB>>();\n this.#addToList({\n ...options,\n id,\n close: async (index: number | undefined) => {\n (index === undefined\n ? Undefined$$\n : options.buttons![index].close\n ? options.buttons![index].close()\n : Undefined$$\n ).then((value) => {\n p.resolve(value);\n this.remove(id);\n });\n },\n });\n\n return p.promise;\n }\n #addToList(item: ConfirmItem) {\n this.#list$.update((current) => [...current, item]);\n }\n\n remove(id: number): void {\n this.#list$.update((current) => current.filter((item) => item.id !== id));\n }\n setPosition(position: Position) {\n this.#position$.set(position);\n }\n}\n","import { Component, computed, inject } from '@angular/core';\nimport { CssPrefixPipe, MergeClassPipe, TwPrefixPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { ThemeService } from '@piying-lib/angular-daisyui/service';\nimport clsx from 'clsx';\nimport { ConfirmService } from './confirm.service';\nimport { StrOrTemplateComponent } from '@piying-lib/angular-core';\nimport { SelectorlessOutlet } from '@cyia/ngx-common/directive';\nimport { PurePipe } from '@cyia/ngx-common/pipe';\n\n@Component({\n selector: 'pi-confirm-portal',\n templateUrl: './component.html',\n imports: [MergeClassPipe, CssPrefixPipe, TwPrefixPipe, SelectorlessOutlet, PurePipe],\n})\nexport class ConfirmPortal {\n readonly StrOrTemplateComponent = StrOrTemplateComponent;\n service = inject(ConfirmService);\n #theme = inject(ThemeService);\n containerClass$$ = computed(() => {\n return clsx(this.#theme.addPrefix(`modal-${this.service.position$$()}`));\n });\n buttonContent = (content: any) => {\n return { content };\n };\n}\n","@for (item of service.list$$(); track $index) {\n <dialog [class]=\"'modal' | cssPrefix | mergeClass: containerClass$$()\" open>\n <div [class]=\"'modal-box' | cssPrefix\">\n <h3 [class]=\"'text-lg font-bold' | twPrefix\">{{ item.title }}</h3>\n <p [class]=\"'py-4 break-all' | twPrefix\">{{ item.message }}</p>\n <form method=\"dialog\" [class]=\"'flex justify-end gap-2' | twPrefix\">\n @for (button of item.buttons; track $index) {\n <button\n [class]=\"'btn' | cssPrefix | mergeClass: button.class\"\n (click)=\"item.close($index)\"\n type=\"button\"\n >\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"buttonContent | pure: button.label\"\n ></ng-template>\n </button>\n }\n </form>\n </div>\n @if (!item.modal) {\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button (click)=\"item.close(undefined)\">close</button>\n </form>\n }\n </dialog>\n}\n","import { Injectable, Injector, signal } from '@angular/core';\nimport * as v from 'valibot';\nimport { PartialDeep } from 'type-fest';\n\nexport interface FormDialogOptions<\n Schema extends v.BaseSchema<any, any, any> = v.BaseSchema<any, any, any>,\n ReturnValue = any,\n> {\n id: number;\n\n title: string;\n schema: Schema;\n value?: PartialDeep<v.InferInput<Schema>>;\n cancelButton?: any;\n /** 是否为模态框 */\n modal?: boolean;\n applyValue?: (value: v.InferOutput<Schema>) => Promise<ReturnValue | undefined>;\n injector: Injector;\n close: (value: any) => Promise<any>;\n context?: Record<string, any>;\n class?: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormDialogService {\n readonly #list$ = signal<FormDialogOptions[]>([]);\n private nextId = 0;\n\n list$$ = this.#list$.asReadonly();\n\n open<Schema extends v.BaseSchema<any, any, any>, ReturnValue>(\n options: Omit<FormDialogOptions<Schema, ReturnValue>, 'id' | 'close'>,\n ) {\n const id = this.nextId++;\n const p = Promise.withResolvers<ReturnValue | undefined>();\n this.#addToList({\n ...options,\n id,\n close: async (result?: ReturnValue) => {\n p.resolve(result);\n this.#remove(id);\n },\n });\n\n return p.promise;\n }\n\n #addToList(item: FormDialogOptions) {\n this.#list$.update((current) => [...current, item]);\n }\n\n #remove(id: number): void {\n this.#list$.update((current) => current.filter((item) => item.id !== id));\n }\n\n // closeAll() {\n // this.#list$.set([]);\n // }\n}\n","import { Component, computed, inject, input, linkedSignal, signal, viewChild } from '@angular/core';\nimport { FormDialogOptions, FormDialogService } from '../form-dialog.service';\nimport { CssPrefixPipe, TwPrefixPipe } from '@piying-lib/angular-daisyui/pipe';\nimport { SelectorlessOutlet } from '@cyia/ngx-common/directive';\nimport { MergeClassPipe, StrOrTemplateComponent } from '@piying-lib/angular-core';\nimport { PI_INPUT_OPTIONS_TOKEN, PiyingView } from '@piying/view-angular';\n\n@Component({\n selector: 'pi-form-dialog-item',\n templateUrl: './component.html',\n imports: [CssPrefixPipe, TwPrefixPipe, SelectorlessOutlet, PiyingView, MergeClassPipe],\n})\nexport class FormDialogItemComponent {\n static __version = 2;\n templateRef = viewChild.required('templateRef');\n readonly StrOrTemplateComponent = StrOrTemplateComponent;\n readonly service = inject(FormDialogService);\n options$$ = inject(PI_INPUT_OPTIONS_TOKEN);\n\n item = input.required<FormDialogOptions>();\n changedValue = linkedSignal(computed(() => this.item()?.value));\n\n loading$ = signal(false);\n\n async apply() {\n this.loading$.set(true);\n const item = this.item();\n\n try {\n const result = (await item.applyValue?.(this.changedValue())) ?? this.changedValue();\n this.item().close(result);\n } catch (error) {\n console.error(error);\n } finally {\n this.loading$.set(false);\n }\n }\n close() {\n this.item().close(undefined);\n }\n modelChange(value: any) {\n this.changedValue.set(value);\n }\n options2$$ = computed(() => {\n return {\n ...this.options$$(),\n context: {\n ...this.options$$().context,\n ...this.item().context,\n },\n };\n });\n}\n","<ng-template #templateRef>\n <dialog [class]=\"'modal' | cssPrefix | mergeClass: item().class\" open>\n <div class=\"modal-box\">\n <h2 [class]=\"'text-lg font-bold' | twPrefix\">{{ item().title }}</h2>\n\n <piying-view\n [schema]=\"item().schema\"\n [options]=\"options2$$()\"\n [model]=\"item().value\"\n (modelChange)=\"modelChange($event)\"\n class=\"flex-1 overflow-auto py-4\"\n #ref\n ></piying-view>\n <div class=\"card-actions justify-end\">\n <button class=\"btn btn-error\" (click)=\"close()\">\n <ng-template\n [selectlessOutlet]=\"StrOrTemplateComponent\"\n [selectlessOutletInputs]=\"{\n content: item().cancelButton ?? 'Cancel',\n }\"\n ></ng-template>\n </button>\n\n <input\n type=\"submit\"\n class=\"btn btn-primary\"\n (click)=\"apply()\"\n [disabled]=\"!ref.form$$()?.valid\"\n />\n </div>\n @if (loading$()) {\n <div\n class=\"absolute top-0 bottom-0 left-0 right-0 flex items-center justify-center bg-base-200/70\"\n >\n <span class=\"loading text-primary\"></span>\n </div>\n }\n </div>\n @if (!item().modal) {\n <form method=\"dialog\" class=\"modal-backdrop\">\n <button (click)=\"close()\">close</button>\n </form>\n }\n </dialog>\n</ng-template>\n","import { Component, inject } from '@angular/core';\nimport { FormDialogService } from './form-dialog.service';\nimport { FormDialogItemComponent } from './dialog-item/component';\nimport { SelectorlessOutlet } from '@cyia/ngx-common/directive';\n\n@Component({\n selector: 'pi-form-dialog-portal',\n templateUrl: './component.html',\n imports: [SelectorlessOutlet],\n})\nexport class FormDialogPortal {\n readonly service = inject(FormDialogService);\n readonly FormDialogItemComponent = FormDialogItemComponent;\n}\n","@for (item of service.list$$(); track item.id) {\n <ng-template\n [selectlessOutlet]=\"FormDialogItemComponent\"\n [selectlessOutletInjector]=\"item.injector\"\n [selectlessOutletInputs]=\"{ item: item }\"\n ></ng-template>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["MergeClassPipe"],"mappings":"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"}
@@ -102,8 +102,10 @@ declare class RadioFCC extends BaseControl {
102
102
  resolvedOptions$$: _angular_core.Signal<ResolvedOption[]>;
103
103
  transformOptions(options: any[]): ResolvedOption[];
104
104
  wrapperClass$: _angular_core.Signal<string>;
105
+ optionChange: _angular_core.OutputEmitterRef<ResolvedOption>;
106
+ itemSelectedChange(item: ResolvedOption): void;
105
107
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioFCC, never>;
106
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioFCC, "app-radio", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; "isSignal": true; }; "optionConvert": { "alias": "optionConvert"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
108
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioFCC, "app-radio", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "optionTemplate": { "alias": "optionTemplate"; "required": false; "isSignal": true; }; "optionConvert": { "alias": "optionConvert"; "required": false; "isSignal": true; }; }, { "optionChange": "optionChange"; }, never, never, true, never>;
107
109
  }
108
110
 
109
111
  /**
@@ -97,6 +97,7 @@ interface FormDialogOptions<Schema extends v.BaseSchema<any, any, any> = v.BaseS
97
97
  injector: Injector;
98
98
  close: (value: any) => Promise<any>;
99
99
  context?: Record<string, any>;
100
+ class?: string;
100
101
  }
101
102
  declare class FormDialogService {
102
103
  #private;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piying-lib/angular-daisyui",
3
- "version": "1.3.27",
3
+ "version": "1.3.29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.3.0",
6
6
  "@angular/core": ">=20.3.0",
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "tslib": "^2.3.0",
15
- "@piying-lib/angular-core": "^1.3.27",
15
+ "@piying-lib/angular-core": "^1.3.29",
16
16
  "cally": "^0.9.2",
17
17
  "type-fest": "5.5.0"
18
18
  },