@piying-lib/angular-daisyui 1.3.26 → 1.3.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/extension/index.d.ts +1 -0
- package/fesm2022/piying-lib-angular-daisyui-extension.mjs +1 -0
- package/fesm2022/piying-lib-angular-daisyui-extension.mjs.map +1 -1
- package/fesm2022/piying-lib-angular-daisyui-field-control.mjs +9 -4
- package/fesm2022/piying-lib-angular-daisyui-field-control.mjs.map +1 -1
- package/fesm2022/piying-lib-angular-daisyui-overlay.mjs +3 -3
- package/fesm2022/piying-lib-angular-daisyui-overlay.mjs.map +1 -1
- package/field-control/index.d.ts +3 -1
- package/overlay/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -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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"}
|
package/field-control/index.d.ts
CHANGED
|
@@ -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
|
/**
|
package/overlay/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@piying-lib/angular-daisyui",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.28",
|
|
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.
|
|
15
|
+
"@piying-lib/angular-core": "^1.3.28",
|
|
16
16
|
"cally": "^0.9.2",
|
|
17
17
|
"type-fest": "5.5.0"
|
|
18
18
|
},
|