@solar-angular/ui-zorro 18.3.1 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/crud/editor.d.ts +1 -1
  2. package/crud/searcher.d.ts +1 -1
  3. package/fesm2022/solar-angular-ui-zorro-crud.mjs +6 -6
  4. package/fesm2022/solar-angular-ui-zorro-crud.mjs.map +1 -1
  5. package/fesm2022/solar-angular-ui-zorro-fan-popover.mjs +5 -5
  6. package/fesm2022/solar-angular-ui-zorro-fan-popover.mjs.map +1 -1
  7. package/fesm2022/solar-angular-ui-zorro-fluent-form.mjs +4 -5
  8. package/fesm2022/solar-angular-ui-zorro-fluent-form.mjs.map +1 -1
  9. package/fesm2022/solar-angular-ui-zorro-media-uploader.mjs +5 -5
  10. package/fesm2022/solar-angular-ui-zorro-media-uploader.mjs.map +1 -1
  11. package/fesm2022/solar-angular-ui-zorro-message.mjs +3 -3
  12. package/fesm2022/solar-angular-ui-zorro-message.mjs.map +1 -1
  13. package/fesm2022/solar-angular-ui-zorro-page-forbidden.mjs +4 -4
  14. package/fesm2022/solar-angular-ui-zorro-page-forbidden.mjs.map +1 -1
  15. package/fesm2022/solar-angular-ui-zorro-page-logout.mjs +4 -4
  16. package/fesm2022/solar-angular-ui-zorro-page-logout.mjs.map +1 -1
  17. package/fesm2022/solar-angular-ui-zorro-page-not-found.mjs +4 -4
  18. package/fesm2022/solar-angular-ui-zorro-page-not-found.mjs.map +1 -1
  19. package/fesm2022/solar-angular-ui-zorro-updater.mjs +21 -27
  20. package/fesm2022/solar-angular-ui-zorro-updater.mjs.map +1 -1
  21. package/fluent-form/form.d.ts +3 -2
  22. package/package.json +19 -39
  23. package/esm2022/crud/editor-drawer/editor-drawer.component.mjs +0 -39
  24. package/esm2022/crud/editor-drawer/index.mjs +0 -2
  25. package/esm2022/crud/editor.mjs +0 -65
  26. package/esm2022/crud/index.mjs +0 -5
  27. package/esm2022/crud/page.mjs +0 -88
  28. package/esm2022/crud/searcher.mjs +0 -15
  29. package/esm2022/crud/solar-angular-ui-zorro-crud.mjs +0 -5
  30. package/esm2022/fan-popover/fan-popover.component.mjs +0 -50
  31. package/esm2022/fan-popover/index.mjs +0 -2
  32. package/esm2022/fan-popover/solar-angular-ui-zorro-fan-popover.mjs +0 -5
  33. package/esm2022/fluent-form/components.mjs +0 -22
  34. package/esm2022/fluent-form/controls.mjs +0 -70
  35. package/esm2022/fluent-form/form.mjs +0 -14
  36. package/esm2022/fluent-form/helper.mjs +0 -7
  37. package/esm2022/fluent-form/index.mjs +0 -6
  38. package/esm2022/fluent-form/patchers.mjs +0 -57
  39. package/esm2022/fluent-form/solar-angular-ui-zorro-fluent-form.mjs +0 -5
  40. package/esm2022/fluent-form/typing.mjs +0 -2
  41. package/esm2022/index.mjs +0 -2
  42. package/esm2022/media-uploader/index.mjs +0 -2
  43. package/esm2022/media-uploader/media-uploader.component.mjs +0 -175
  44. package/esm2022/media-uploader/solar-angular-ui-zorro-media-uploader.mjs +0 -5
  45. package/esm2022/message/index.mjs +0 -2
  46. package/esm2022/message/message.service.mjs +0 -36
  47. package/esm2022/message/solar-angular-ui-zorro-message.mjs +0 -5
  48. package/esm2022/page-forbidden/forbidden.page.mjs +0 -25
  49. package/esm2022/page-forbidden/index.mjs +0 -4
  50. package/esm2022/page-forbidden/solar-angular-ui-zorro-page-forbidden.mjs +0 -5
  51. package/esm2022/page-logout/index.mjs +0 -4
  52. package/esm2022/page-logout/logout.page.mjs +0 -36
  53. package/esm2022/page-logout/solar-angular-ui-zorro-page-logout.mjs +0 -5
  54. package/esm2022/page-not-found/index.mjs +0 -4
  55. package/esm2022/page-not-found/not-found.page.mjs +0 -25
  56. package/esm2022/page-not-found/solar-angular-ui-zorro-page-not-found.mjs +0 -5
  57. package/esm2022/solar-angular-ui-zorro.mjs +0 -5
  58. package/esm2022/updater/app-updater.mjs +0 -27
  59. package/esm2022/updater/index.mjs +0 -3
  60. package/esm2022/updater/solar-angular-ui-zorro-updater.mjs +0 -5
  61. package/esm2022/updater/updater.component.mjs +0 -71
package/crud/editor.d.ts CHANGED
@@ -6,7 +6,7 @@ export declare class Editor<T> {
6
6
  originalModel: T;
7
7
  model: T;
8
8
  loading: boolean;
9
- schema: import("@angular/core").Signal<import("@fluent-form/core").AbstractFormGroupSchema>;
9
+ schema: import("@angular/core").Signal<import("@fluent-form/ui-zorro").FormGroupSchema<import("@fluent-form/core").SingleSchemaKey>>;
10
10
  /** 是否在保存完之后固定抽屉 */
11
11
  pin: boolean;
12
12
  form?: FormGroup;
@@ -2,7 +2,7 @@ import { FormGroup } from '@angular/forms';
2
2
  export declare class Searcher<T> {
3
3
  form?: FormGroup;
4
4
  model: Partial<T>;
5
- schema: import("@angular/core").Signal<import("@fluent-form/core").AbstractFormGroupSchema>;
5
+ schema: import("@angular/core").Signal<import("@fluent-form/ui-zorro").FormGroupSchema<import("@fluent-form/core").SingleSchemaKey>>;
6
6
  pageSize: number;
7
7
  pageNo: number;
8
8
  reset(): void;
@@ -1,7 +1,7 @@
1
- import { form } from '@fluent-form/core';
1
+ import { form } from '@fluent-form/ui-zorro';
2
2
  import { finalize, tap } from 'rxjs';
3
3
  import * as i0 from '@angular/core';
4
- import { EventEmitter, Component, Input, Output, inject } from '@angular/core';
4
+ import { EventEmitter, Output, Input, Component, inject } from '@angular/core';
5
5
  import * as i1 from 'ng-zorro-antd/drawer';
6
6
  import { NzDrawerModule } from 'ng-zorro-antd/drawer';
7
7
  import * as i3 from 'ng-zorro-antd/icon';
@@ -83,12 +83,12 @@ class SunEditorDrawer {
83
83
  this.primaryKey = 'id';
84
84
  this.visibleChange = new EventEmitter();
85
85
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunEditorDrawer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SunEditorDrawer, isStandalone: true, selector: "sun-editor-drawer", inputs: { editor: "editor", width: "width", primaryKey: "primaryKey" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<nz-drawer\n nzWrapClassName=\"sun-editor-drawer-wrapper\"\n [nzWidth]=\"width\"\n [nzClosable]=\"false\"\n [nzTitle]=\"editorTitle\"\n [nzFooter]=\"editorFooter\"\n [(nzVisible)]=\"editor.visible\"\n (nzVisibleChange)=\"visibleChange.emit($event)\"\n (nzOnClose)=\"editor.visible = false\"\n>\n <nz-spin *nzDrawerContent [nzSpinning]=\"editor.loading\">\n <ng-content />\n </nz-spin>\n</nz-drawer>\n\n<ng-template #editorTitle>\n <div>{{ editor.model[primaryKey] ? '\u7F16\u8F91\u6761\u76EE' : '\u65B0\u589E\u6761\u76EE' }}</div>\n\n <span\n nz-icon\n nzType=\"pushpin\"\n [nzTheme]=\"editor.pin ? 'twotone' : 'outline'\"\n (click)=\"editor.togglePin()\"\n ></span>\n</ng-template>\n\n<ng-template #editorFooter>\n <small nz-typography nzType=\"secondary\">\n \u6CE8\u610F\uFF1A\u6807\u7B7E\u4E0A\u5E26\u6709\n <span nz-typography nzType=\"danger\" style=\"font-family: SimSun, sans-serif\"\n >*</span\n >\n \u7B26\u53F7\u7684\u9879\u76EE\u4E3A\u5FC5\u586B\u9879\n </small>\n</ng-template>\n", styles: ["::ng-deep .sun-editor-drawer-wrapper .ant-drawer-title{display:flex;justify-content:space-between;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: NzDrawerModule }, { kind: "component", type: i1.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i1.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "ngmodule", type: NzSpinModule }, { kind: "component", type: i2.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzTypographyModule }, { kind: "component", type: i4.NzTypographyComponent, selector: " nz-typography, [nz-typography], p[nz-paragraph], span[nz-text], h1[nz-title], h2[nz-title], h3[nz-title], h4[nz-title] ", inputs: ["nzCopyable", "nzEditable", "nzDisabled", "nzExpandable", "nzEllipsis", "nzCopyTooltips", "nzCopyIcons", "nzEditTooltip", "nzEditIcon", "nzContent", "nzEllipsisRows", "nzType", "nzCopyText", "nzSuffix"], outputs: ["nzContentChange", "nzCopy", "nzExpandChange", "nzOnEllipsis"], exportAs: ["nzTypography"] }] }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunEditorDrawer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SunEditorDrawer, isStandalone: true, selector: "sun-editor-drawer", inputs: { editor: "editor", width: "width", primaryKey: "primaryKey" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<nz-drawer\n nzWrapClassName=\"sun-editor-drawer-wrapper\"\n [nzWidth]=\"width\"\n [nzClosable]=\"false\"\n [nzTitle]=\"editorTitle\"\n [nzFooter]=\"editorFooter\"\n [(nzVisible)]=\"editor.visible\"\n (nzVisibleChange)=\"visibleChange.emit($event)\"\n (nzOnClose)=\"editor.visible = false\"\n>\n <nz-spin *nzDrawerContent [nzSpinning]=\"editor.loading\">\n <ng-content />\n </nz-spin>\n</nz-drawer>\n\n<ng-template #editorTitle>\n <div>{{ editor.model[primaryKey] ? '\u7F16\u8F91\u6761\u76EE' : '\u65B0\u589E\u6761\u76EE' }}</div>\n\n <span\n nz-icon\n nzType=\"pushpin\"\n [nzTheme]=\"editor.pin ? 'twotone' : 'outline'\"\n (click)=\"editor.togglePin()\"\n ></span>\n</ng-template>\n\n<ng-template #editorFooter>\n <small nz-typography nzType=\"secondary\">\n \u6CE8\u610F\uFF1A\u6807\u7B7E\u4E0A\u5E26\u6709\n <span nz-typography nzType=\"danger\" style=\"font-family: SimSun, sans-serif\"\n >*</span\n >\n \u7B26\u53F7\u7684\u9879\u76EE\u4E3A\u5FC5\u586B\u9879\n </small>\n</ng-template>\n", styles: ["::ng-deep .sun-editor-drawer-wrapper .ant-drawer-title{display:flex;justify-content:space-between;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: NzDrawerModule }, { kind: "component", type: i1.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i1.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "ngmodule", type: NzSpinModule }, { kind: "component", type: i2.NzSpinComponent, selector: "nz-spin", inputs: ["nzIndicator", "nzSize", "nzTip", "nzDelay", "nzSimple", "nzSpinning"], exportAs: ["nzSpin"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzTypographyModule }, { kind: "component", type: i4.NzTypographyComponent, selector: " nz-typography, [nz-typography], p[nz-paragraph], span[nz-text], h1[nz-title], h2[nz-title], h3[nz-title], h4[nz-title] ", inputs: ["nzCopyable", "nzEditable", "nzDisabled", "nzExpandable", "nzEllipsis", "nzCopyTooltips", "nzCopyIcons", "nzEditTooltip", "nzEditIcon", "nzContent", "nzEllipsisRows", "nzType", "nzCopyText", "nzSuffix"], outputs: ["nzContentChange", "nzCopy", "nzExpandChange", "nzOnEllipsis"], exportAs: ["nzTypography"] }] }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunEditorDrawer, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunEditorDrawer, decorators: [{
90
90
  type: Component,
91
- args: [{ selector: 'sun-editor-drawer', standalone: true, imports: [
91
+ args: [{ selector: 'sun-editor-drawer', imports: [
92
92
  NzDrawerModule,
93
93
  NzSpinModule,
94
94
  NzIconModule,
@@ -1 +1 @@
1
- {"version":3,"file":"solar-angular-ui-zorro-crud.mjs","sources":["../../../packages/ui-zorro/crud/editor.ts","../../../packages/ui-zorro/crud/editor-drawer/editor-drawer.component.ts","../../../packages/ui-zorro/crud/editor-drawer/editor-drawer.component.html","../../../packages/ui-zorro/crud/searcher.ts","../../../packages/ui-zorro/crud/page.ts","../../../packages/ui-zorro/crud/solar-angular-ui-zorro-crud.ts"],"sourcesContent":["import { FormGroup } from '@angular/forms';\nimport { form } from '@fluent-form/core';\nimport { Observable, finalize, tap } from 'rxjs';\n\nexport class Editor<T> {\n private _visible = false;\n /** 模型初始值 */\n originalModel: T = {} as T;\n model: T = {} as T;\n loading = false;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n schema = form(() => { });\n /** 是否在保存完之后固定抽屉 */\n pin = false;\n form?: FormGroup;\n\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n // 手动判断一下,因为双向绑定的原因,这里会被设置两次\n if (this._visible !== value) {\n if (!value) {\n this.reset(); // 关闭的时候自动重置\n }\n }\n this._visible = value;\n }\n\n /**\n * 自动控制 loading 状态\n */\n withLoading<X>() {\n this.loading = true;\n return (observable: Observable<X>) => {\n return observable.pipe(\n finalize(() => this.loading = false)\n );\n };\n }\n\n /**\n * next 时自动重置表单 或 收起编辑器\n */\n withAttach<X>() {\n return (observable: Observable<X>) => observable.pipe(\n tap(() => this.pin ? this.reset() : this.dismiss())\n );\n }\n\n /**\n * 呈现编辑器\n */\n present() {\n this.visible = true;\n }\n\n /**\n * 关闭编辑器\n */\n dismiss() {\n this.visible = false;\n }\n\n togglePin() {\n this.pin = !this.pin;\n }\n\n reset() {\n this.fill({} as T);\n }\n\n fill(model: T) {\n this.originalModel = model;\n this.model = model;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NzDrawerModule } from 'ng-zorro-antd/drawer';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\nimport { Editor } from '../editor';\n\n@Component({\n selector: 'sun-editor-drawer',\n standalone: true,\n imports: [\n NzDrawerModule,\n NzSpinModule,\n NzIconModule,\n NzTypographyModule\n ],\n templateUrl: './editor-drawer.component.html',\n styleUrl: './editor-drawer.component.scss'\n})\nexport class SunEditorDrawer<T extends Record<string, any>> {\n @Input() editor!: Editor<T>;\n @Input() width: string | number = 600;\n // TODO: 有些 model 不一定有 primaryKey,可能是两个 foreignKeys,所以要考虑将 operation 变为一个函数\n // 考虑直接做到 signal 版本里,这里就变成一个 computed fn\n @Input() primaryKey = 'id';\n\n @Output() visibleChange = new EventEmitter<boolean>();\n}\n","<nz-drawer\n nzWrapClassName=\"sun-editor-drawer-wrapper\"\n [nzWidth]=\"width\"\n [nzClosable]=\"false\"\n [nzTitle]=\"editorTitle\"\n [nzFooter]=\"editorFooter\"\n [(nzVisible)]=\"editor.visible\"\n (nzVisibleChange)=\"visibleChange.emit($event)\"\n (nzOnClose)=\"editor.visible = false\"\n>\n <nz-spin *nzDrawerContent [nzSpinning]=\"editor.loading\">\n <ng-content />\n </nz-spin>\n</nz-drawer>\n\n<ng-template #editorTitle>\n <div>{{ editor.model[primaryKey] ? '编辑条目' : '新增条目' }}</div>\n\n <span\n nz-icon\n nzType=\"pushpin\"\n [nzTheme]=\"editor.pin ? 'twotone' : 'outline'\"\n (click)=\"editor.togglePin()\"\n ></span>\n</ng-template>\n\n<ng-template #editorFooter>\n <small nz-typography nzType=\"secondary\">\n 注意:标签上带有\n <span nz-typography nzType=\"danger\" style=\"font-family: SimSun, sans-serif\"\n >*</span\n >\n 符号的项目为必填项\n </small>\n</ng-template>\n","import { FormGroup } from '@angular/forms';\nimport { form } from '@fluent-form/core';\n\nexport class Searcher<T> {\n form?: FormGroup;\n model: Partial<T> = {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n schema = form(() => { });\n\n pageSize = 10;\n pageNo = 1;\n\n reset() {\n this.pageNo = 1;\n this.form?.reset({});\n }\n}\n","import { inject } from '@angular/core';\nimport { MessageService } from '@solar-angular/ui-zorro/message';\nimport { finalize, Observable } from 'rxjs';\nimport { Editor } from './editor';\nimport { Searcher } from './searcher';\n\n/**\n * 增删改查页面\n * @template T Searcher 的模型类型\n * @template U Editor 的模型类型,默认为 T\n * @template V Data 的模型类型,默认为 U\n */\nexport abstract class CrudPage<T, U = T, V = U> {\n protected data: V[] = [];\n\n protected loading = false;\n\n protected searcher = new Searcher<T>();\n protected editor = new Editor<U>();\n\n /**\n * @deprecated 请使用 {@link Searcher.pageSize}\n */\n protected get pageSize() {\n return this.searcher.pageSize;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageSize}\n */\n protected set pageSize(value) {\n this.searcher.pageSize = value;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageNo}\n */\n protected get pageNo() {\n return this.searcher.pageNo;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageNo}\n */\n protected set pageNo(value) {\n this.searcher.pageNo = value;\n }\n\n readonly message = inject(MessageService);\n\n protected withTableLoading<X>() {\n return (observable: Observable<X>) => {\n this.loading = true;\n return observable.pipe(\n finalize(() => this.loading = false)\n );\n };\n }\n\n /**\n * {@link MessageService.withLoading()} 的快捷方式\n * @param content\n */\n protected withLoading<X>(content?: string) {\n return this.message.withLoading<X>(content);\n }\n\n /**\n * {@link MessageService.withDeleteLoading()} 的快捷方式\n * @param content\n */\n protected withDeleteLoading<X>() {\n return this.message.withDeleteLoading<X>();\n }\n\n /**\n * {@link MessageService.withSaveLoading()} 的快捷方式\n * @param content\n */\n protected withSaveLoading<X>() {\n return this.message.withSaveLoading<X>();\n }\n\n /**\n * 编辑\n * @param entity\n */\n protected edit(entity: U) {\n this.editor.fill(entity);\n this.editor.present();\n }\n}\n\n/**\n * 带分页的增删改查页面\n * @template T Searcher 的模型类型\n * @template U Editor 的模型类型,默认为 T\n * @template V Data 的模型类型,默认为 U\n */\nexport abstract class PagingCrudPage<T, U = T, V = U> extends CrudPage<T, U, V> {\n protected totalSize!: number;\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":"solar-angular-ui-zorro-crud.mjs","sources":["../../../packages/ui-zorro/crud/editor.ts","../../../packages/ui-zorro/crud/editor-drawer/editor-drawer.component.ts","../../../packages/ui-zorro/crud/editor-drawer/editor-drawer.component.html","../../../packages/ui-zorro/crud/searcher.ts","../../../packages/ui-zorro/crud/page.ts","../../../packages/ui-zorro/crud/solar-angular-ui-zorro-crud.ts"],"sourcesContent":["import { FormGroup } from '@angular/forms';\nimport { form } from '@fluent-form/ui-zorro';\nimport { Observable, finalize, tap } from 'rxjs';\n\nexport class Editor<T> {\n private _visible = false;\n /** 模型初始值 */\n originalModel: T = {} as T;\n model: T = {} as T;\n loading = false;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n schema = form(() => { });\n /** 是否在保存完之后固定抽屉 */\n pin = false;\n form?: FormGroup;\n\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n // 手动判断一下,因为双向绑定的原因,这里会被设置两次\n if (this._visible !== value) {\n if (!value) {\n this.reset(); // 关闭的时候自动重置\n }\n }\n this._visible = value;\n }\n\n /**\n * 自动控制 loading 状态\n */\n withLoading<X>() {\n this.loading = true;\n return (observable: Observable<X>) => {\n return observable.pipe(\n finalize(() => this.loading = false)\n );\n };\n }\n\n /**\n * next 时自动重置表单 或 收起编辑器\n */\n withAttach<X>() {\n return (observable: Observable<X>) => observable.pipe(\n tap(() => this.pin ? this.reset() : this.dismiss())\n );\n }\n\n /**\n * 呈现编辑器\n */\n present() {\n this.visible = true;\n }\n\n /**\n * 关闭编辑器\n */\n dismiss() {\n this.visible = false;\n }\n\n togglePin() {\n this.pin = !this.pin;\n }\n\n reset() {\n this.fill({} as T);\n }\n\n fill(model: T) {\n this.originalModel = model;\n this.model = model;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NzDrawerModule } from 'ng-zorro-antd/drawer';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\nimport { Editor } from '../editor';\n\n@Component({\n selector: 'sun-editor-drawer',\n imports: [\n NzDrawerModule,\n NzSpinModule,\n NzIconModule,\n NzTypographyModule\n ],\n templateUrl: './editor-drawer.component.html',\n styleUrl: './editor-drawer.component.scss'\n})\nexport class SunEditorDrawer<T extends Record<string, any>> {\n @Input() editor!: Editor<T>;\n @Input() width: string | number = 600;\n // TODO: 有些 model 不一定有 primaryKey,可能是两个 foreignKeys,所以要考虑将 operation 变为一个函数\n // 考虑直接做到 signal 版本里,这里就变成一个 computed fn\n @Input() primaryKey = 'id';\n\n @Output() visibleChange = new EventEmitter<boolean>();\n}\n","<nz-drawer\n nzWrapClassName=\"sun-editor-drawer-wrapper\"\n [nzWidth]=\"width\"\n [nzClosable]=\"false\"\n [nzTitle]=\"editorTitle\"\n [nzFooter]=\"editorFooter\"\n [(nzVisible)]=\"editor.visible\"\n (nzVisibleChange)=\"visibleChange.emit($event)\"\n (nzOnClose)=\"editor.visible = false\"\n>\n <nz-spin *nzDrawerContent [nzSpinning]=\"editor.loading\">\n <ng-content />\n </nz-spin>\n</nz-drawer>\n\n<ng-template #editorTitle>\n <div>{{ editor.model[primaryKey] ? '编辑条目' : '新增条目' }}</div>\n\n <span\n nz-icon\n nzType=\"pushpin\"\n [nzTheme]=\"editor.pin ? 'twotone' : 'outline'\"\n (click)=\"editor.togglePin()\"\n ></span>\n</ng-template>\n\n<ng-template #editorFooter>\n <small nz-typography nzType=\"secondary\">\n 注意:标签上带有\n <span nz-typography nzType=\"danger\" style=\"font-family: SimSun, sans-serif\"\n >*</span\n >\n 符号的项目为必填项\n </small>\n</ng-template>\n","import { FormGroup } from '@angular/forms';\nimport { form } from '@fluent-form/ui-zorro';\n\nexport class Searcher<T> {\n form?: FormGroup;\n model: Partial<T> = {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n schema = form(() => { });\n\n pageSize = 10;\n pageNo = 1;\n\n reset() {\n this.pageNo = 1;\n this.form?.reset({});\n }\n}\n","import { inject } from '@angular/core';\nimport { MessageService } from '@solar-angular/ui-zorro/message';\nimport { finalize, Observable } from 'rxjs';\nimport { Editor } from './editor';\nimport { Searcher } from './searcher';\n\n/**\n * 增删改查页面\n * @template T Searcher 的模型类型\n * @template U Editor 的模型类型,默认为 T\n * @template V Data 的模型类型,默认为 U\n */\nexport abstract class CrudPage<T, U = T, V = U> {\n protected data: V[] = [];\n\n protected loading = false;\n\n protected searcher = new Searcher<T>();\n protected editor = new Editor<U>();\n\n /**\n * @deprecated 请使用 {@link Searcher.pageSize}\n */\n protected get pageSize() {\n return this.searcher.pageSize;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageSize}\n */\n protected set pageSize(value) {\n this.searcher.pageSize = value;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageNo}\n */\n protected get pageNo() {\n return this.searcher.pageNo;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageNo}\n */\n protected set pageNo(value) {\n this.searcher.pageNo = value;\n }\n\n readonly message = inject(MessageService);\n\n protected withTableLoading<X>() {\n return (observable: Observable<X>) => {\n this.loading = true;\n return observable.pipe(\n finalize(() => this.loading = false)\n );\n };\n }\n\n /**\n * {@link MessageService.withLoading()} 的快捷方式\n * @param content\n */\n protected withLoading<X>(content?: string) {\n return this.message.withLoading<X>(content);\n }\n\n /**\n * {@link MessageService.withDeleteLoading()} 的快捷方式\n * @param content\n */\n protected withDeleteLoading<X>() {\n return this.message.withDeleteLoading<X>();\n }\n\n /**\n * {@link MessageService.withSaveLoading()} 的快捷方式\n * @param content\n */\n protected withSaveLoading<X>() {\n return this.message.withSaveLoading<X>();\n }\n\n /**\n * 编辑\n * @param entity\n */\n protected edit(entity: U) {\n this.editor.fill(entity);\n this.editor.present();\n }\n}\n\n/**\n * 带分页的增删改查页面\n * @template T Searcher 的模型类型\n * @template U Editor 的模型类型,默认为 T\n * @template V Data 的模型类型,默认为 U\n */\nexport abstract class PagingCrudPage<T, U = T, V = U> extends CrudPage<T, U, V> {\n protected totalSize!: number;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output } from '@angular/core';
2
+ import { EventEmitter, Output, Input, Component } from '@angular/core';
3
3
  import * as i5 from 'ng-zorro-antd/avatar';
4
4
  import { NzAvatarModule } from 'ng-zorro-antd/avatar';
5
5
  import * as i6 from 'ng-zorro-antd/button';
@@ -22,12 +22,12 @@ class SunFanPopover {
22
22
  this.visibleChange = new EventEmitter();
23
23
  this.unbind = new EventEmitter();
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunFanPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SunFanPopover, isStandalone: true, selector: "sun-fan-popover", inputs: { fan: "fan", disabled: "disabled", trigger: "trigger", placement: "placement" }, outputs: { visibleChange: "visibleChange", unbind: "unbind" }, ngImport: i0, template: "<a\n nz-typography\n nz-popover\n [nzPopoverPlacement]=\"placement\"\n [nzPopoverTrigger]=\"trigger\"\n [nzDisabled]=\"disabled\"\n [nzPopoverContent]=\"fanTemplate\"\n (nzPopoverVisibleChange)=\"visibleChange.emit($event)\"\n>\n <ng-content>\n <span nz-icon nzType=\"wechat\"></span>\n </ng-content>\n</a>\n\n<ng-template #fanTemplate>\n <nz-space nzAlign=\"center\" nzDirection=\"vertical\" [nzSize]=\"6\">\n <nz-avatar\n *nzSpaceItem\n nzIcon=\"user\"\n [nzSize]=\"48\"\n [nzSrc]=\"fan?.avatar?.thumbnailUrl || fan?.avatarUrl\"\n [style.margin-top.px]=\"2\"\n />\n <div *nzSpaceItem>{{ fan?.fullName || fan?.nickName || '\u5FAE\u4FE1\u7528\u6237' }}</div>\n <button\n *nzSpaceItem\n nz-button\n nzSize=\"small\"\n nzDanger\n nzBlock\n nzType=\"primary\"\n (click)=\"unbind.emit()\"\n >\n \u89E3\u7ED1\n </button>\n </nz-space>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: NzPopoverModule }, { kind: "directive", type: i1.NzPopoverDirective, selector: "[nz-popover]", inputs: ["nzPopoverArrowPointAtCenter", "nzPopoverTitle", "nzPopoverContent", "nz-popover", "nzPopoverTrigger", "nzPopoverPlacement", "nzPopoverOrigin", "nzPopoverVisible", "nzPopoverMouseEnterDelay", "nzPopoverMouseLeaveDelay", "nzPopoverOverlayClassName", "nzPopoverOverlayStyle", "nzPopoverBackdrop"], outputs: ["nzPopoverVisibleChange"], exportAs: ["nzPopover"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzTypographyModule }, { kind: "component", type: i3.NzTypographyComponent, selector: " nz-typography, [nz-typography], p[nz-paragraph], span[nz-text], h1[nz-title], h2[nz-title], h3[nz-title], h4[nz-title] ", inputs: ["nzCopyable", "nzEditable", "nzDisabled", "nzExpandable", "nzEllipsis", "nzCopyTooltips", "nzCopyIcons", "nzEditTooltip", "nzEditIcon", "nzContent", "nzEllipsisRows", "nzType", "nzCopyText", "nzSuffix"], outputs: ["nzContentChange", "nzCopy", "nzExpandChange", "nzOnEllipsis"], exportAs: ["nzTypography"] }, { kind: "ngmodule", type: NzSpaceModule }, { kind: "component", type: i4.NzSpaceComponent, selector: "nz-space, [nz-space]", inputs: ["nzDirection", "nzAlign", "nzSplit", "nzWrap", "nzSize"], exportAs: ["NzSpace"] }, { kind: "directive", type: i4.NzSpaceItemDirective, selector: "[nzSpaceItem]" }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "component", type: i5.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }] }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunFanPopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SunFanPopover, isStandalone: true, selector: "sun-fan-popover", inputs: { fan: "fan", disabled: "disabled", trigger: "trigger", placement: "placement" }, outputs: { visibleChange: "visibleChange", unbind: "unbind" }, ngImport: i0, template: "<a\n nz-typography\n nz-popover\n [nzPopoverPlacement]=\"placement\"\n [nzPopoverTrigger]=\"trigger\"\n [nzDisabled]=\"disabled\"\n [nzPopoverContent]=\"fanTemplate\"\n (nzPopoverVisibleChange)=\"visibleChange.emit($event)\"\n>\n <ng-content>\n <span nz-icon nzType=\"wechat\"></span>\n </ng-content>\n</a>\n\n<ng-template #fanTemplate>\n <nz-space nzAlign=\"center\" nzDirection=\"vertical\" [nzSize]=\"6\">\n <nz-avatar\n *nzSpaceItem\n nzIcon=\"user\"\n [nzSize]=\"48\"\n [nzSrc]=\"fan?.avatar?.thumbnailUrl || fan?.avatarUrl\"\n [style.margin-top.px]=\"2\"\n />\n <div *nzSpaceItem>{{ fan?.fullName || fan?.nickName || '\u5FAE\u4FE1\u7528\u6237' }}</div>\n <button\n *nzSpaceItem\n nz-button\n nzSize=\"small\"\n nzDanger\n nzBlock\n nzType=\"primary\"\n (click)=\"unbind.emit()\"\n >\n \u89E3\u7ED1\n </button>\n </nz-space>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: NzPopoverModule }, { kind: "directive", type: i1.NzPopoverDirective, selector: "[nz-popover]", inputs: ["nzPopoverArrowPointAtCenter", "nzPopoverTitle", "nzPopoverContent", "nz-popover", "nzPopoverTrigger", "nzPopoverPlacement", "nzPopoverOrigin", "nzPopoverVisible", "nzPopoverMouseEnterDelay", "nzPopoverMouseLeaveDelay", "nzPopoverOverlayClassName", "nzPopoverOverlayStyle", "nzPopoverOverlayClickable", "nzPopoverBackdrop"], outputs: ["nzPopoverVisibleChange"], exportAs: ["nzPopover"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzTypographyModule }, { kind: "component", type: i3.NzTypographyComponent, selector: " nz-typography, [nz-typography], p[nz-paragraph], span[nz-text], h1[nz-title], h2[nz-title], h3[nz-title], h4[nz-title] ", inputs: ["nzCopyable", "nzEditable", "nzDisabled", "nzExpandable", "nzEllipsis", "nzCopyTooltips", "nzCopyIcons", "nzEditTooltip", "nzEditIcon", "nzContent", "nzEllipsisRows", "nzType", "nzCopyText", "nzSuffix"], outputs: ["nzContentChange", "nzCopy", "nzExpandChange", "nzOnEllipsis"], exportAs: ["nzTypography"] }, { kind: "ngmodule", type: NzSpaceModule }, { kind: "component", type: i4.NzSpaceComponent, selector: "nz-space, [nz-space]", inputs: ["nzDirection", "nzAlign", "nzSplit", "nzWrap", "nzSize"], exportAs: ["nzSpace"] }, { kind: "directive", type: i4.NzSpaceItemDirective, selector: "[nzSpaceItem]" }, { kind: "ngmodule", type: NzAvatarModule }, { kind: "component", type: i5.NzAvatarComponent, selector: "nz-avatar", inputs: ["nzShape", "nzSize", "nzGap", "nzText", "nzSrc", "nzSrcSet", "nzAlt", "nzIcon"], outputs: ["nzError"], exportAs: ["nzAvatar"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunFanPopover, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunFanPopover, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'sun-fan-popover', standalone: true, imports: [
30
+ args: [{ selector: 'sun-fan-popover', imports: [
31
31
  NzPopoverModule,
32
32
  NzIconModule,
33
33
  NzTypographyModule,
@@ -1 +1 @@
1
- {"version":3,"file":"solar-angular-ui-zorro-fan-popover.mjs","sources":["../../../packages/ui-zorro/fan-popover/fan-popover.component.ts","../../../packages/ui-zorro/fan-popover/fan-popover.component.html","../../../packages/ui-zorro/fan-popover/solar-angular-ui-zorro-fan-popover.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Fan } from '@solar-kit/planets/earth';\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\nimport { NzSpaceModule } from 'ng-zorro-antd/space';\nimport { NzTooltipTrigger } from 'ng-zorro-antd/tooltip';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\n\n@Component({\n selector: 'sun-fan-popover',\n standalone: true,\n imports: [\n NzPopoverModule,\n NzIconModule,\n NzTypographyModule,\n NzSpaceModule,\n NzAvatarModule,\n NzButtonModule\n ],\n templateUrl: './fan-popover.component.html',\n})\nexport class SunFanPopover {\n @Input() fan?: Fan | null;\n @Input() disabled?: boolean;\n @Input() trigger: NzTooltipTrigger = 'click';\n @Input() placement: string | string[] = 'top';\n\n @Output() visibleChange = new EventEmitter<boolean>();\n @Output() unbind = new EventEmitter();\n}\n","<a\n nz-typography\n nz-popover\n [nzPopoverPlacement]=\"placement\"\n [nzPopoverTrigger]=\"trigger\"\n [nzDisabled]=\"disabled\"\n [nzPopoverContent]=\"fanTemplate\"\n (nzPopoverVisibleChange)=\"visibleChange.emit($event)\"\n>\n <ng-content>\n <span nz-icon nzType=\"wechat\"></span>\n </ng-content>\n</a>\n\n<ng-template #fanTemplate>\n <nz-space nzAlign=\"center\" nzDirection=\"vertical\" [nzSize]=\"6\">\n <nz-avatar\n *nzSpaceItem\n nzIcon=\"user\"\n [nzSize]=\"48\"\n [nzSrc]=\"fan?.avatar?.thumbnailUrl || fan?.avatarUrl\"\n [style.margin-top.px]=\"2\"\n />\n <div *nzSpaceItem>{{ fan?.fullName || fan?.nickName || '微信用户' }}</div>\n <button\n *nzSpaceItem\n nz-button\n nzSize=\"small\"\n nzDanger\n nzBlock\n nzType=\"primary\"\n (click)=\"unbind.emit()\"\n >\n 解绑\n </button>\n </nz-space>\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":"solar-angular-ui-zorro-fan-popover.mjs","sources":["../../../packages/ui-zorro/fan-popover/fan-popover.component.ts","../../../packages/ui-zorro/fan-popover/fan-popover.component.html","../../../packages/ui-zorro/fan-popover/solar-angular-ui-zorro-fan-popover.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Fan } from '@solar-kit/planets/earth';\nimport { NzAvatarModule } from 'ng-zorro-antd/avatar';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\nimport { NzSpaceModule } from 'ng-zorro-antd/space';\nimport { NzTooltipTrigger } from 'ng-zorro-antd/tooltip';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\n\n@Component({\n selector: 'sun-fan-popover',\n imports: [\n NzPopoverModule,\n NzIconModule,\n NzTypographyModule,\n NzSpaceModule,\n NzAvatarModule,\n NzButtonModule\n ],\n templateUrl: './fan-popover.component.html'\n})\nexport class SunFanPopover {\n @Input() fan?: Fan | null;\n @Input() disabled?: boolean;\n @Input() trigger: NzTooltipTrigger = 'click';\n @Input() placement: string | string[] = 'top';\n\n @Output() visibleChange = new EventEmitter<boolean>();\n @Output() unbind = new EventEmitter();\n}\n","<a\n nz-typography\n nz-popover\n [nzPopoverPlacement]=\"placement\"\n [nzPopoverTrigger]=\"trigger\"\n [nzDisabled]=\"disabled\"\n [nzPopoverContent]=\"fanTemplate\"\n (nzPopoverVisibleChange)=\"visibleChange.emit($event)\"\n>\n <ng-content>\n <span nz-icon nzType=\"wechat\"></span>\n </ng-content>\n</a>\n\n<ng-template #fanTemplate>\n <nz-space nzAlign=\"center\" nzDirection=\"vertical\" [nzSize]=\"6\">\n <nz-avatar\n *nzSpaceItem\n nzIcon=\"user\"\n [nzSize]=\"48\"\n [nzSrc]=\"fan?.avatar?.thumbnailUrl || fan?.avatarUrl\"\n [style.margin-top.px]=\"2\"\n />\n <div *nzSpaceItem>{{ fan?.fullName || fan?.nickName || '微信用户' }}</div>\n <button\n *nzSpaceItem\n nz-button\n nzSize=\"small\"\n nzDanger\n nzBlock\n nzType=\"primary\"\n (click)=\"unbind.emit()\"\n >\n 解绑\n </button>\n </nz-space>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { button, textField, numberField, toggle, radioGroup, cascader, datePicker, dateRangePicker } from '@fluent-form/ui-zorro';
1
+ import { button, textField, numberField, toggle, radioGroup, cascader, datePicker, dateRangePicker, form } from '@fluent-form/ui-zorro';
2
2
  import { levels2tree, tree2list } from '@solar-kit/core';
3
- import { form, headless } from '@fluent-form/core';
3
+ import { headless } from '@fluent-form/core';
4
4
 
5
5
  function searchButton() {
6
6
  return button().icon('search').content('查询').type('primary');
@@ -101,12 +101,11 @@ function datetimeRangePicker(key, format = 'yyyy-MM-dd HH:mm') {
101
101
  * 实体表单
102
102
  *
103
103
  * 内置了一个 Headless ID 控件图示:`headless('id')`
104
- * @param schemas
105
104
  */
106
105
  function entityForm(composeFn) {
107
- return form(() => {
106
+ return form(it => {
108
107
  headless('id');
109
- composeFn();
108
+ composeFn(it);
110
109
  });
111
110
  }
112
111
 
@@ -1 +1 @@
1
- {"version":3,"file":"solar-angular-ui-zorro-fluent-form.mjs","sources":["../../../packages/ui-zorro/fluent-form/components.ts","../../../packages/ui-zorro/fluent-form/helper.ts","../../../packages/ui-zorro/fluent-form/controls.ts","../../../packages/ui-zorro/fluent-form/form.ts","../../../packages/ui-zorro/fluent-form/patchers.ts","../../../packages/ui-zorro/fluent-form/solar-angular-ui-zorro-fluent-form.ts"],"sourcesContent":["import { UnstableBuilder } from '@fluent-form/core';\nimport { button, ButtonComponentSchema } from '@fluent-form/ui-zorro';\nimport { KindOrKey } from './typing';\n\nexport function searchButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type'> {\n return button().icon('search').content('查询').type('primary');\n}\n\nexport function addButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type' | 'mode'> {\n return button().icon('plus').content('新增').type('primary').mode('button');\n}\n\nexport function saveButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'> {\n return button()\n .content('保存')\n .type('primary')\n .variants({ block: true })\n .disabled(({ control }) => control.invalid) as UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;\n}\n\nexport function submitButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'> {\n return button()\n .content('提交')\n .type('primary')\n .variants({ block: true })\n .disabled(({ control }) => control.invalid) as UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;\n}\n","\nexport function entityToOption<T extends { id: string | number, fullName: string }>(entity: T) {\n return { label: entity.fullName, value: entity.id, ...entity };\n}\n\nexport function entitiesToOptions<T extends { id: string | number, fullName: string }>(entities: T[]) {\n return entities.map(entity => entityToOption(entity));\n}\n","import { SchemaKey, SingleSchemaKey, UnstableBuilder } from '@fluent-form/core';\nimport { CascaderControlSchema, DatePickerControlSchema, DateRangePickerControlSchema, NumberFieldControlSchema, RadioGroupControlSchema, TextFieldControlSchema, ToggleControlSchema, cascader, datePicker, dateRangePicker, numberField, radioGroup, textField, toggle } from '@fluent-form/ui-zorro';\nimport { TreeNode, levels2tree, tree2list } from '@solar-kit/core';\nimport { Category, Channel } from '@solar-kit/planets/earth';\nimport { Gender } from '@solar-kit/planets/sun';\nimport { NzCascaderOption } from 'ng-zorro-antd/cascader';\nimport { entitiesToOptions } from './helper';\nimport { KindOrKey } from './typing';\n\nexport function cellphoneField(key = 'cellphone', length = 11): UnstableBuilder<TextFieldControlSchema, KindOrKey | 'type' | 'length'> {\n return textField(key).type('tel').length(length);\n}\n\nexport function integerField(key: SingleSchemaKey): UnstableBuilder<NumberFieldControlSchema, KindOrKey | 'precision'> {\n return numberField(key).precision(0);\n}\n\nexport function enabledToggle(key: SingleSchemaKey = 'enabled', defaultValue = true): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'> {\n return toggle(key).placeholder(['有效', '无效']).defaultValue(defaultValue);\n}\n\nexport function finishedToggle(key: SingleSchemaKey = 'finished', defaultValue = false): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'> {\n return toggle(key).placeholder(['已完成', '未完成']).defaultValue(defaultValue);\n}\n\nexport function genderRadioGroup(key = 'gender'): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'options'> {\n return radioGroup(key).options([\n { label: '女', value: Gender.Woman },\n { label: '男', value: Gender.Man }\n ]);\n}\n\nexport function categoryCascader(key: SingleSchemaKey, channels: Channel[], categories: Category[]): UnstableBuilder<CascaderControlSchema<SingleSchemaKey>, KindOrKey | 'options' | 'trigger' | 'mapper'> {\n return leafCascader(key).options(\n levels2tree(\n [\n entitiesToOptions(channels as { id: number, fullName: string, channel?: number }[]),\n entitiesToOptions(categories)\n ],\n { id: 'value', pid: 'channel' }\n )\n );\n}\n\n/**\n * 叶子节点级联选择器\n *\n * options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造\n *\n * @param key\n */\nexport function leafCascader(key: SingleSchemaKey): UnstableBuilder<CascaderControlSchema<SingleSchemaKey>, KindOrKey | 'trigger' | 'mapper'> {\n let list: NzCascaderOption[];\n\n return cascader(key)\n .trigger('hover')\n .mapper({\n parser: (value: NzCascaderOption['value'] | null, schema) => {\n if (!value) return null;\n\n // 如果输入的是叶子节点,我们需要转为 [父节点, ..., 叶子节点]\n list ??= tree2list((schema as CascaderControlSchema).options as TreeNode<NzCascaderOption>[]);\n // 找到选中的叶子节点\n let node = list.find(node => node.value === value && (!node.children || node.children.length === 0));\n\n const levels = [];\n\n while (node) {\n levels.unshift(node.value);\n node = node.parent;\n }\n\n return levels;\n },\n formatter: value => {\n // 输出的是节点数组,我们只要叶子节点\n return value?.[value.length - 1];\n }\n })\n}\n\nexport function datetimePicker(key: string, format = 'yyyy-MM-dd HH:mm'): UnstableBuilder<DatePickerControlSchema, KindOrKey | 'time' | 'format'> {\n return datePicker(key)\n .time({ nzFormat: 'HH:mm' })\n .format(format);\n}\n\nexport function datetimeRangePicker(key: SchemaKey, format = 'yyyy-MM-dd HH:mm'): UnstableBuilder<DateRangePickerControlSchema, KindOrKey | 'time' | 'format'> {\n return dateRangePicker(key)\n .time({ nzFormat: 'HH:mm' })\n .format(format);\n}\n","import { form, headless } from '@fluent-form/core';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n/**\n * 实体表单\n *\n * 内置了一个 Headless ID 控件图示:`headless('id')`\n * @param schemas\n */\nexport function entityForm(composeFn: () => NzSafeAny) {\n return form(() => {\n headless('id');\n composeFn();\n });\n}\n","import { SchemaPatcher } from '@fluent-form/core';\nimport { AbstractZorroControlSchema, Label } from '@fluent-form/ui-zorro';\n\nfunction parseLabel(label: string | Label): string {\n if (typeof label === 'string') {\n return label;\n }\n\n return label.content ?? '';\n}\n\nfunction autoPlaceholder(schema: AbstractZorroControlSchema, action: string) {\n const label = schema['label'];\n\n if (label && typeof label !== 'function') {\n (schema as any)['placeholder'] ??= action + parseLabel(label);\n }\n\n return schema;\n}\n\n/**\n * 为文本框字段自动添加 placeholder\n */\nexport function useAutoPlaceholderPatchers(): SchemaPatcher[] {\n return [\n {\n selector: ['text-field', 'number-field'],\n patch: schema => autoPlaceholder(schema, '请输入')\n },\n {\n selector: 'text-area',\n patch: schema => autoPlaceholder(schema, '请填写')\n },\n {\n selector: ['date-picker', 'time-picker', 'select', 'cascader', 'tree-select'],\n patch: schema => autoPlaceholder(schema, '请选择')\n }\n ];\n}\n\n/**\n * 1. 自动为非必填字段添加清除按钮\n * 2. 为选择器添加搜索功能\n */\nexport function useImprovedPickerPatchers(): SchemaPatcher[] {\n return [\n {\n selector: ['date-picker', 'date-range-picker', 'time-picker', 'select', 'cascader', 'tree-select'],\n patch: schema => {\n if (!schema['required']) {\n schema['clearable'] ??= true;\n }\n\n return schema;\n }\n },\n {\n selector: ['select', 'cascader', 'tree-select'],\n patch: schema => {\n schema['searchable'] ??= true;\n\n return schema;\n }\n }\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;SAIgB,YAAY,GAAA;AAC1B,IAAA,OAAO,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/D,CAAC;SAEe,SAAS,GAAA;IACvB,OAAO,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5E,CAAC;SAEe,UAAU,GAAA;AACxB,IAAA,OAAO,MAAM,EAAE;SACZ,OAAO,CAAC,IAAI,CAAC;SACb,IAAI,CAAC,SAAS,CAAC;AACf,SAAA,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,SAAA,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAwF,CAAC;AACvI,CAAC;SAEe,YAAY,GAAA;AAC1B,IAAA,OAAO,MAAM,EAAE;SACZ,OAAO,CAAC,IAAI,CAAC;SACb,IAAI,CAAC,SAAS,CAAC;AACf,SAAA,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,SAAA,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAwF,CAAC;AACvI;;ACzBM,SAAU,cAAc,CAAsD,MAAS,EAAA;AAC3F,IAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;AACjE,CAAC;AAEK,SAAU,iBAAiB,CAAsD,QAAa,EAAA;AAClG,IAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD;;ACEM,SAAU,cAAc,CAAC,GAAG,GAAG,WAAW,EAAE,MAAM,GAAG,EAAE,EAAA;AAC3D,IAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAEK,SAAU,YAAY,CAAC,GAAoB,EAAA;IAC/C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAEK,SAAU,aAAa,CAAC,GAAA,GAAuB,SAAS,EAAE,YAAY,GAAG,IAAI,EAAA;AACjF,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAC1E,CAAC;AAEK,SAAU,cAAc,CAAC,GAAA,GAAuB,UAAU,EAAE,YAAY,GAAG,KAAK,EAAA;AACpF,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAC5E,CAAC;AAEe,SAAA,gBAAgB,CAAC,GAAG,GAAG,QAAQ,EAAA;AAC7C,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAC7B,QAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,wBAAgB;AACnC,QAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,sBAAc;AAClC,KAAA,CAAC,CAAC;AACL,CAAC;SAEe,gBAAgB,CAAC,GAAoB,EAAE,QAAmB,EAAE,UAAsB,EAAA;IAChG,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAC9B,WAAW,CACT;QACE,iBAAiB,CAAC,QAAgE,CAAC;QACnF,iBAAiB,CAAC,UAAU,CAAC;KAC9B,EACD,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAChC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;AAMG;AACG,SAAU,YAAY,CAAC,GAAoB,EAAA;AAC/C,IAAA,IAAI,IAAwB,CAAC;IAE7B,OAAO,QAAQ,CAAC,GAAG,CAAC;SACjB,OAAO,CAAC,OAAO,CAAC;AAChB,SAAA,MAAM,CAAC;AACN,QAAA,MAAM,EAAE,CAAC,KAAuC,EAAE,MAAM,KAAI;AAC1D,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,OAAO,IAAI,CAAC;;AAGxB,YAAA,IAAI,KAAK,SAAS,CAAE,MAAgC,CAAC,OAAuC,CAAC,CAAC;;AAE9F,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;YAErG,MAAM,MAAM,GAAG,EAAE,CAAC;YAElB,OAAO,IAAI,EAAE;AACX,gBAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,gBAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;aACpB;AAED,YAAA,OAAO,MAAM,CAAC;SACf;QACD,SAAS,EAAE,KAAK,IAAG;;YAEjB,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAClC;AACF,KAAA,CAAC,CAAA;AACN,CAAC;SAEe,cAAc,CAAC,GAAW,EAAE,MAAM,GAAG,kBAAkB,EAAA;IACrE,OAAO,UAAU,CAAC,GAAG,CAAC;AACnB,SAAA,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAC3B,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;SAEe,mBAAmB,CAAC,GAAc,EAAE,MAAM,GAAG,kBAAkB,EAAA;IAC7E,OAAO,eAAe,CAAC,GAAG,CAAC;AACxB,SAAA,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAC3B,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB;;ACxFA;;;;;AAKG;AACG,SAAU,UAAU,CAAC,SAA0B,EAAA;IACnD,OAAO,IAAI,CAAC,MAAK;QACf,QAAQ,CAAC,IAAI,CAAC,CAAC;AACf,QAAA,SAAS,EAAE,CAAC;AACd,KAAC,CAAC,CAAC;AACL;;ACXA,SAAS,UAAU,CAAC,KAAqB,EAAA;AACvC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,OAAO,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,MAAkC,EAAE,MAAc,EAAA;AACzE,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAE9B,IAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QACvC,MAAc,CAAC,aAAa,CAAC,KAAK,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;KAC/D;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;AAEG;SACa,0BAA0B,GAAA;IACxC,OAAO;AACL,QAAA;AACE,YAAA,QAAQ,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;YACxC,KAAK,EAAE,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAA;AACD,QAAA;AACE,YAAA,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAA;AACD,QAAA;YACE,QAAQ,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;YAC7E,KAAK,EAAE,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAA;KACF,CAAC;AACJ,CAAC;AAED;;;AAGG;SACa,yBAAyB,GAAA;IACvC,OAAO;AACL,QAAA;AACE,YAAA,QAAQ,EAAE,CAAC,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;YAClG,KAAK,EAAE,MAAM,IAAG;AACd,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AACvB,oBAAA,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;iBAC9B;AAED,gBAAA,OAAO,MAAM,CAAC;aACf;AACF,SAAA;AACD,QAAA;AACE,YAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;YAC/C,KAAK,EAAE,MAAM,IAAG;AACd,gBAAA,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;AAE9B,gBAAA,OAAO,MAAM,CAAC;aACf;AACF,SAAA;KACF,CAAC;AACJ;;AClEA;;AAEG;;;;"}
1
+ {"version":3,"file":"solar-angular-ui-zorro-fluent-form.mjs","sources":["../../../packages/ui-zorro/fluent-form/components.ts","../../../packages/ui-zorro/fluent-form/helper.ts","../../../packages/ui-zorro/fluent-form/controls.ts","../../../packages/ui-zorro/fluent-form/form.ts","../../../packages/ui-zorro/fluent-form/patchers.ts","../../../packages/ui-zorro/fluent-form/solar-angular-ui-zorro-fluent-form.ts"],"sourcesContent":["import { UnstableBuilder } from '@fluent-form/core';\nimport { button, ButtonComponentSchema } from '@fluent-form/ui-zorro';\nimport { KindOrKey } from './typing';\n\nexport function searchButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type'> {\n return button().icon('search').content('查询').type('primary');\n}\n\nexport function addButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type' | 'mode'> {\n return button().icon('plus').content('新增').type('primary').mode('button');\n}\n\nexport function saveButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'> {\n return button()\n .content('保存')\n .type('primary')\n .variants({ block: true })\n .disabled(({ control }) => control.invalid) as UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;\n}\n\nexport function submitButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'> {\n return button()\n .content('提交')\n .type('primary')\n .variants({ block: true })\n .disabled(({ control }) => control.invalid) as UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;\n}\n","\nexport function entityToOption<T extends { id: string | number, fullName: string }>(entity: T) {\n return { label: entity.fullName, value: entity.id, ...entity };\n}\n\nexport function entitiesToOptions<T extends { id: string | number, fullName: string }>(entities: T[]) {\n return entities.map(entity => entityToOption(entity));\n}\n","import { SchemaKey, SingleSchemaKey, UnstableBuilder } from '@fluent-form/core';\nimport { CascaderControlSchema, DatePickerControlSchema, DateRangePickerControlSchema, NumberFieldControlSchema, RadioGroupControlSchema, TextFieldControlSchema, ToggleControlSchema, cascader, datePicker, dateRangePicker, numberField, radioGroup, textField, toggle } from '@fluent-form/ui-zorro';\nimport { TreeNode, levels2tree, tree2list } from '@solar-kit/core';\nimport { Category, Channel } from '@solar-kit/planets/earth';\nimport { Gender } from '@solar-kit/planets/sun';\nimport { NzCascaderOption } from 'ng-zorro-antd/cascader';\nimport { entitiesToOptions } from './helper';\nimport { KindOrKey } from './typing';\n\nexport function cellphoneField(key = 'cellphone', length = 11): UnstableBuilder<TextFieldControlSchema, KindOrKey | 'type' | 'length'> {\n return textField(key).type('tel').length(length);\n}\n\nexport function integerField(key: SingleSchemaKey): UnstableBuilder<NumberFieldControlSchema, KindOrKey | 'precision'> {\n return numberField(key).precision(0);\n}\n\nexport function enabledToggle(key: SingleSchemaKey = 'enabled', defaultValue = true): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'> {\n return toggle(key).placeholder(['有效', '无效']).defaultValue(defaultValue);\n}\n\nexport function finishedToggle(key: SingleSchemaKey = 'finished', defaultValue = false): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'> {\n return toggle(key).placeholder(['已完成', '未完成']).defaultValue(defaultValue);\n}\n\nexport function genderRadioGroup(key = 'gender'): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'options'> {\n return radioGroup(key).options([\n { label: '女', value: Gender.Woman },\n { label: '男', value: Gender.Man }\n ]);\n}\n\nexport function categoryCascader(key: SingleSchemaKey, channels: Channel[], categories: Category[]): UnstableBuilder<CascaderControlSchema<SingleSchemaKey>, KindOrKey | 'options' | 'trigger' | 'mapper'> {\n return leafCascader(key).options(\n levels2tree(\n [\n entitiesToOptions(channels as { id: number, fullName: string, channel?: number }[]),\n entitiesToOptions(categories)\n ],\n { id: 'value', pid: 'channel' }\n )\n );\n}\n\n/**\n * 叶子节点级联选择器\n *\n * options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造\n *\n * @param key\n */\nexport function leafCascader(key: SingleSchemaKey): UnstableBuilder<CascaderControlSchema<SingleSchemaKey>, KindOrKey | 'trigger' | 'mapper'> {\n let list: TreeNode<NzCascaderOption>[];\n\n return cascader(key)\n .trigger('hover')\n .mapper({\n parser: (value: NzCascaderOption['value'] | null, schema) => {\n if (!value) return null;\n\n // 如果输入的是叶子节点,我们需要转为 [父节点, ..., 叶子节点]\n list ??= tree2list((schema as CascaderControlSchema).options as TreeNode<NzCascaderOption>[]);\n // 找到选中的叶子节点\n let node = list.find(node => node.value === value && (!node.children || node.children.length === 0));\n\n const levels = [];\n\n while (node) {\n levels.unshift(node.value);\n node = node.parent;\n }\n\n return levels;\n },\n formatter: value => {\n // 输出的是节点数组,我们只要叶子节点\n return value?.[value.length - 1];\n }\n })\n}\n\nexport function datetimePicker(key: string, format = 'yyyy-MM-dd HH:mm'): UnstableBuilder<DatePickerControlSchema, KindOrKey | 'time' | 'format'> {\n return datePicker(key)\n .time({ nzFormat: 'HH:mm' })\n .format(format);\n}\n\nexport function datetimeRangePicker(key: SchemaKey, format = 'yyyy-MM-dd HH:mm'): UnstableBuilder<DateRangePickerControlSchema, KindOrKey | 'time' | 'format'> {\n return dateRangePicker(key)\n .time({ nzFormat: 'HH:mm' })\n .format(format);\n}\n","import { Builder, headless, SingleSchemaKey } from '@fluent-form/core';\nimport { form, FormGroupSchema } from '@fluent-form/ui-zorro';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n/**\n * 实体表单\n *\n * 内置了一个 Headless ID 控件图示:`headless('id')`\n */\nexport function entityForm(composeFn: (it: Builder<FormGroupSchema<SingleSchemaKey>>) => NzSafeAny) {\n return form(it => {\n headless('id');\n composeFn(it);\n });\n}\n","import { SchemaPatcher } from '@fluent-form/core';\nimport { AbstractZorroControlSchema, Label } from '@fluent-form/ui-zorro';\n\nfunction parseLabel(label: string | Label): string {\n if (typeof label === 'string') {\n return label;\n }\n\n return label.content ?? '';\n}\n\nfunction autoPlaceholder(schema: AbstractZorroControlSchema, action: string) {\n const label = schema['label'];\n\n if (label && typeof label !== 'function') {\n (schema as any)['placeholder'] ??= action + parseLabel(label);\n }\n\n return schema;\n}\n\n/**\n * 为文本框字段自动添加 placeholder\n */\nexport function useAutoPlaceholderPatchers(): SchemaPatcher[] {\n return [\n {\n selector: ['text-field', 'number-field'],\n patch: schema => autoPlaceholder(schema, '请输入')\n },\n {\n selector: 'text-area',\n patch: schema => autoPlaceholder(schema, '请填写')\n },\n {\n selector: ['date-picker', 'time-picker', 'select', 'cascader', 'tree-select'],\n patch: schema => autoPlaceholder(schema, '请选择')\n }\n ];\n}\n\n/**\n * 1. 自动为非必填字段添加清除按钮\n * 2. 为选择器添加搜索功能\n */\nexport function useImprovedPickerPatchers(): SchemaPatcher[] {\n return [\n {\n selector: ['date-picker', 'date-range-picker', 'time-picker', 'select', 'cascader', 'tree-select'],\n patch: schema => {\n if (!schema['required']) {\n schema['clearable'] ??= true;\n }\n\n return schema;\n }\n },\n {\n selector: ['select', 'cascader', 'tree-select'],\n patch: schema => {\n schema['searchable'] ??= true;\n\n return schema;\n }\n }\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { HttpEventType } from '@angular/common/http';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, EventEmitter, numberAttribute, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output } from '@angular/core';
3
+ import { inject, EventEmitter, booleanAttribute, numberAttribute, Output, Input, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
4
4
  import { EarthService, ObjectStorageService } from '@solar-angular/planets/earth';
5
5
  import { ImageCompressor, FileManager } from '@solar-angular/platform-browser';
6
6
  import { MessageService } from '@solar-angular/ui-zorro/message';
@@ -126,12 +126,12 @@ class SunMediaUploader {
126
126
  }
127
127
  });
128
128
  }
129
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunMediaUploader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
130
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SunMediaUploader, isStandalone: true, selector: "sun-media-uploader", inputs: { data: "data", limit: ["limit", "limit", numberAttribute], deletable: ["deletable", "deletable", booleanAttribute], uploadable: ["uploadable", "uploadable", booleanAttribute], previewable: ["previewable", "previewable", booleanAttribute], downloadable: ["downloadable", "downloadable", booleanAttribute], shape: "shape", uploadKeys: "uploadKeys", compress: ["compress", "compress", booleanAttribute] }, outputs: { uploaded: "uploaded", delete: "delete", error: "error", dataChange: "dataChange" }, host: { properties: { "class.sun-media-uploader-circle": "shape === 'circle'" }, classAttribute: "sun-media-uploader" }, ngImport: i0, template: "@for (item of data; track item) {\n <div class=\"sun-media-uploader-item\">\n <img class=\"sun-media-uploader-img\" [src]=\"item.thumbnailUrl || item.url\" />\n\n @if (item.progress) {\n <div class=\"sun-media-uploader-progress-bar\">\n <div\n class=\"sun-media-uploader-progress-inner\"\n [style]=\"{ transform: 'translateY(-' + item.progress + 'px)' }\"></div>\n <div class=\"sun-media-uploader-progress-text\">\n <div>{{ item.progress }}%</div>\n <div>\u4E0A\u4F20\u4E2D...</div>\n </div>\n </div>\n } @else {\n <div class=\"sun-media-uploader-mask\">\n @if (previewable) {\n <div class=\"sun-media-uploader-action\" (click)=\"onPreview(item)\">\n <span nz-icon nzType=\"eye\" nzTheme=\"outline\"></span>\u9884\u89C8\n </div>\n }\n @if (downloadable) {\n <div class=\"sun-media-uploader-action\" (click)=\"onDownload(item)\">\n <span nz-icon nzType=\"download\" nzTheme=\"outline\"></span>\u4E0B\u8F7D\n </div>\n }\n @if (deletable) {\n <div\n class=\"sun-media-uploader-action\"\n nz-popconfirm\n nzType=\"danger\"\n nzPopconfirmTitle=\"\u60A8\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u9879\u76EE\u5417\uFF1F\"\n nzOkDanger\n (nzOnConfirm)=\"delete.next(item)\">\n <span nz-icon nzType=\"delete\" nzTheme=\"outline\"></span>\u5220\u9664\n </div>\n }\n </div>\n }\n </div>\n}\n\n<nz-upload\n nzAccept=\"image/*\"\n nzListType=\"picture-card\"\n [hidden]=\"data?.length! >= limit || !uploadable\"\n [nzShowUploadList]=\"false\"\n [nzCustomRequest]=\"upload\"\n [nzTransformFile]=\"compress ? transform : undefined\"\n (nzChange)=\"onChange($event)\">\n <div class=\"sun-media-uploader-btn\">\n <span nz-icon nzType=\"plus\"></span>\n <div class=\"sun-media-uploader-btn-text\">\u70B9\u51FB\u4E0A\u4F20</div>\n </div>\n</nz-upload>\n", styles: [".sun-media-uploader{--item-size: 100px;--item-width: var(--item-size);--item-height: var(--item-size);display:flex;flex-wrap:wrap;gap:6px}.sun-media-uploader .ant-upload-picture-card-wrapper{width:auto}.sun-media-uploader .ant-upload.ant-upload-select-picture-card{height:var(--item-height);width:var(--item-width)}.sun-media-uploader-item{position:relative;height:var(--item-height);width:var(--item-width);border:.5px solid #d9d9d9;border-radius:var(--border-radius-base);overflow:hidden}.sun-media-uploader-item:hover{border-color:var(--color-primary)}.sun-media-uploader-progress-bar,.sun-media-uploader-mask{position:absolute;top:0;left:0;height:100%;width:100%;color:#fff;filter:drop-shadow(0 0 1px rgba(0,0,0,.5))}.sun-media-uploader-progress-inner,.sun-media-uploader-mask{background-color:#0000004d}.sun-media-uploader-progress-bar{display:flex;justify-content:center;align-items:center;text-align:center}.sun-media-uploader-progress-inner{position:absolute;top:0;left:0;width:100%;height:100%;transition:transform ease-out .3s}.sun-media-uploader-progress-text{position:relative;z-index:1}.sun-media-uploader-mask{display:flex;flex-direction:column;justify-content:center;gap:2px;opacity:0;transition:all ease-out .3s}.sun-media-uploader-mask:hover{opacity:1}.sun-media-uploader-action{display:flex;justify-content:center;gap:6px;padding-right:4px;cursor:pointer}.sun-media-uploader-btn-text{margin-top:6px}.sun-media-uploader-img,.sun-media-uploader-video{width:100%;height:100%;object-fit:cover}.sun-media-uploader-circle .sun-media-uploader-item,.sun-media-uploader-circle .ant-upload.ant-upload-select-picture-card{border-radius:50%}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzUploadModule }, { kind: "component", type: i2.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }, { kind: "ngmodule", type: NzImageModule }, { kind: "ngmodule", type: NzPopconfirmModule }, { kind: "directive", type: i3.NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nzPopconfirmTitleContext", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzOkText", "nzOkType", "nzOkDisabled", "nzOkDanger", "nzCancelText", "nzBeforeConfirm", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunMediaUploader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: SunMediaUploader, isStandalone: true, selector: "sun-media-uploader", inputs: { data: "data", limit: ["limit", "limit", numberAttribute], deletable: ["deletable", "deletable", booleanAttribute], uploadable: ["uploadable", "uploadable", booleanAttribute], previewable: ["previewable", "previewable", booleanAttribute], downloadable: ["downloadable", "downloadable", booleanAttribute], shape: "shape", uploadKeys: "uploadKeys", compress: ["compress", "compress", booleanAttribute] }, outputs: { uploaded: "uploaded", delete: "delete", error: "error", dataChange: "dataChange" }, host: { properties: { "class.sun-media-uploader-circle": "shape === 'circle'" }, classAttribute: "sun-media-uploader" }, ngImport: i0, template: "@for (item of data; track item) {\n <div class=\"sun-media-uploader-item\">\n <img class=\"sun-media-uploader-img\" [src]=\"item.thumbnailUrl || item.url\" />\n\n @if (item.progress) {\n <div class=\"sun-media-uploader-progress-bar\">\n <div\n class=\"sun-media-uploader-progress-inner\"\n [style]=\"{ transform: 'translateY(-' + item.progress + 'px)' }\"></div>\n <div class=\"sun-media-uploader-progress-text\">\n <div>{{ item.progress }}%</div>\n <div>\u4E0A\u4F20\u4E2D...</div>\n </div>\n </div>\n } @else {\n <div class=\"sun-media-uploader-mask\">\n @if (previewable) {\n <div class=\"sun-media-uploader-action\" (click)=\"onPreview(item)\">\n <span nz-icon nzType=\"eye\" nzTheme=\"outline\"></span>\u9884\u89C8\n </div>\n }\n @if (downloadable) {\n <div class=\"sun-media-uploader-action\" (click)=\"onDownload(item)\">\n <span nz-icon nzType=\"download\" nzTheme=\"outline\"></span>\u4E0B\u8F7D\n </div>\n }\n @if (deletable) {\n <div\n class=\"sun-media-uploader-action\"\n nz-popconfirm\n nzType=\"danger\"\n nzPopconfirmTitle=\"\u60A8\u786E\u5B9A\u8981\u5220\u9664\u8BE5\u9879\u76EE\u5417\uFF1F\"\n nzOkDanger\n (nzOnConfirm)=\"delete.next(item)\">\n <span nz-icon nzType=\"delete\" nzTheme=\"outline\"></span>\u5220\u9664\n </div>\n }\n </div>\n }\n </div>\n}\n\n<nz-upload\n nzAccept=\"image/*\"\n nzListType=\"picture-card\"\n [hidden]=\"data?.length! >= limit || !uploadable\"\n [nzShowUploadList]=\"false\"\n [nzCustomRequest]=\"upload\"\n [nzTransformFile]=\"compress ? transform : undefined\"\n (nzChange)=\"onChange($event)\">\n <div class=\"sun-media-uploader-btn\">\n <span nz-icon nzType=\"plus\"></span>\n <div class=\"sun-media-uploader-btn-text\">\u70B9\u51FB\u4E0A\u4F20</div>\n </div>\n</nz-upload>\n", styles: [".sun-media-uploader{--item-size: 100px;--item-width: var(--item-size);--item-height: var(--item-size);display:flex;flex-wrap:wrap;gap:6px}.sun-media-uploader .ant-upload-picture-card-wrapper{width:auto}.sun-media-uploader .ant-upload.ant-upload-select-picture-card{height:var(--item-height);width:var(--item-width)}.sun-media-uploader-item{position:relative;height:var(--item-height);width:var(--item-width);border:.5px solid #d9d9d9;border-radius:var(--border-radius-base);overflow:hidden}.sun-media-uploader-item:hover{border-color:var(--color-primary)}.sun-media-uploader-progress-bar,.sun-media-uploader-mask{position:absolute;top:0;left:0;height:100%;width:100%;color:#fff;filter:drop-shadow(0 0 1px rgba(0,0,0,.5))}.sun-media-uploader-progress-inner,.sun-media-uploader-mask{background-color:#0000004d}.sun-media-uploader-progress-bar{display:flex;justify-content:center;align-items:center;text-align:center}.sun-media-uploader-progress-inner{position:absolute;top:0;left:0;width:100%;height:100%;transition:transform ease-out .3s}.sun-media-uploader-progress-text{position:relative;z-index:1}.sun-media-uploader-mask{display:flex;flex-direction:column;justify-content:center;gap:2px;opacity:0;transition:all ease-out .3s}.sun-media-uploader-mask:hover{opacity:1}.sun-media-uploader-action{display:flex;justify-content:center;gap:6px;padding-right:4px;cursor:pointer}.sun-media-uploader-btn-text{margin-top:6px}.sun-media-uploader-img,.sun-media-uploader-video{width:100%;height:100%;object-fit:cover}.sun-media-uploader-circle .sun-media-uploader-item,.sun-media-uploader-circle .ant-upload.ant-upload-select-picture-card{border-radius:50%}\n"], dependencies: [{ kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzUploadModule }, { kind: "component", type: i2.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }, { kind: "ngmodule", type: NzImageModule }, { kind: "ngmodule", type: NzPopconfirmModule }, { kind: "directive", type: i3.NzPopconfirmDirective, selector: "[nz-popconfirm]", inputs: ["nzPopconfirmArrowPointAtCenter", "nzPopconfirmTitle", "nzPopconfirmTitleContext", "nz-popconfirm", "nzPopconfirmTrigger", "nzPopconfirmPlacement", "nzPopconfirmOrigin", "nzPopconfirmMouseEnterDelay", "nzPopconfirmMouseLeaveDelay", "nzPopconfirmOverlayClassName", "nzPopconfirmOverlayStyle", "nzPopconfirmVisible", "nzOkText", "nzOkType", "nzOkDisabled", "nzOkDanger", "nzCancelText", "nzBeforeConfirm", "nzIcon", "nzCondition", "nzPopconfirmShowArrow", "nzPopconfirmBackdrop", "nzAutofocus"], outputs: ["nzPopconfirmVisibleChange", "nzOnCancel", "nzOnConfirm"], exportAs: ["nzPopconfirm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
131
131
  }
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunMediaUploader, decorators: [{
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunMediaUploader, decorators: [{
133
133
  type: Component,
134
- args: [{ selector: 'sun-media-uploader', standalone: true, imports: [
134
+ args: [{ selector: 'sun-media-uploader', imports: [
135
135
  NzIconModule,
136
136
  NzUploadModule,
137
137
  NzImageModule,
@@ -1 +1 @@
1
- {"version":3,"file":"solar-angular-ui-zorro-media-uploader.mjs","sources":["../../../packages/ui-zorro/media-uploader/media-uploader.component.ts","../../../packages/ui-zorro/media-uploader/media-uploader.component.html","../../../packages/ui-zorro/media-uploader/solar-angular-ui-zorro-media-uploader.ts"],"sourcesContent":["import { HttpEventType } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, booleanAttribute, inject, numberAttribute } from '@angular/core';\nimport { EarthService, ObjectStorageService } from '@solar-angular/planets/earth';\nimport { FileManager, ImageCompressor } from '@solar-angular/platform-browser';\nimport { MessageService } from '@solar-angular/ui-zorro/message';\nimport { fileExtensionOf } from '@solar-kit/core';\nimport { filterResult, unpackResult } from '@solar-kit/planets/sun';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzImageModule, NzImageService } from 'ng-zorro-antd/image';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { NzUploadChangeParam, NzUploadFile, NzUploadModule, NzUploadXHRArgs } from 'ng-zorro-antd/upload';\nimport { Observable, from, fromEvent, of, switchMap, take, tap } from 'rxjs';\n\nexport interface SunMedia {\n uid: string;\n type: 'image' | 'video';\n progress?: number;\n active?: boolean;\n file?: Blob;\n url: string\n thumbnailUrl?: string;\n [key: string]: any;\n}\n\n@Component({\n selector: 'sun-media-uploader',\n standalone: true,\n imports: [\n NzIconModule,\n NzUploadModule,\n NzImageModule,\n NzPopconfirmModule\n ],\n templateUrl: './media-uploader.component.html',\n styleUrl: './media-uploader.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'sun-media-uploader',\n '[class.sun-media-uploader-circle]': `shape === 'circle'`,\n }\n})\nexport class SunMediaUploader {\n private readonly imageService = inject(NzImageService);\n private readonly earthService = inject(EarthService);\n private readonly oss = inject(ObjectStorageService);\n private readonly imageCompressor = inject(ImageCompressor);\n private readonly message = inject(MessageService);\n private readonly fileManager = inject(FileManager);\n\n @Input() data: SunMedia[] = [\n // {\n // uid: '1',\n // type: 'image',\n // url: '',\n // progress: 50\n // },\n // {\n // uid: '2',\n // type: 'image',\n // url: '',\n // }\n ];\n @Input({ transform: numberAttribute }) limit = 9;\n @Input({ transform: booleanAttribute }) deletable = true;\n @Input({ transform: booleanAttribute }) uploadable = true;\n @Input({ transform: booleanAttribute }) previewable = true;\n @Input({ transform: booleanAttribute }) downloadable = false;\n @Input() shape: 'circle' | 'square' = 'square';\n @Input() uploadKeys = this.earthService.mediaUploadKeys().pipe(\n filterResult(),\n unpackResult(),\n );\n /** 启用图片压缩 */\n @Input({ transform: booleanAttribute }) compress = false;\n\n @Output() uploaded = new EventEmitter<{ key: string, hash: string, url: string }>();\n @Output() delete = new EventEmitter<SunMedia>();\n @Output() error = new EventEmitter<SunMedia>();\n @Output() dataChange = new EventEmitter<SunMedia[]>();\n\n get transform() {\n return (file: NzUploadFile): Observable<Blob> => {\n if (!file.type?.startsWith('image/')) {\n return of(file as any);\n }\n\n const { messageId } = this.message.loading('正在压缩图像');\n const reader = new FileReader();\n\n const source = fromEvent(reader, 'load').pipe(\n take(1),\n switchMap(() => this.imageCompressor.compress(reader.result as string)),\n tap(() => this.message.remove(messageId))\n );\n reader.readAsDataURL(file as any);\n\n return source;\n };\n }\n\n upload = (args: NzUploadXHRArgs) => {\n const file = args.postFile as File;\n const ext = fileExtensionOf(args.file.name);\n\n return this.uploadKeys.pipe(\n switchMap(uploadKey => this.oss.uploadWithEvents(file, `${uploadKey.keys[0]}.${ext}`, uploadKey)),\n ).subscribe({\n next: event => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n args.onProgress!({ percent: (event.loaded / event.total!) * 100 }, args.file);\n break;\n\n case HttpEventType.Response:\n this.uploaded.next({\n url: URL.createObjectURL(file),\n ...event.body!\n });\n args.onSuccess!(event.body, args.file, event);\n break;\n }\n },\n error: error => {\n args.onError!(error, args.file);\n }\n });\n };\n\n onChange({ type, file, event }: NzUploadChangeParam): void {\n const media = this.data.find(o => o.uid === file.uid)!;\n\n switch (type) {\n case 'start': {\n const url = URL.createObjectURL(file.originFileObj!);\n this.data = this.data.concat({\n uid: file.uid,\n url: url,\n thumbnailUrl: url,\n progress: 0.01,\n type: 'image',\n file: file.originFileObj\n });\n this.dataChange.emit(this.data);\n break;\n }\n\n case 'progress':\n media.progress = +event!.percent.toFixed(2);\n break;\n\n case 'success':\n delete media.progress;\n break;\n\n case 'error':\n this.data = this.data.filter(o => o.uid !== file.uid);\n this.dataChange.emit(this.data);\n this.error.emit(media);\n break;\n }\n }\n\n onPreview(media: SunMedia) {\n const images = this.data.map(o => ({ src: o.url || o.thumbnailUrl! }));\n const ref = this.imageService.preview(images);\n ref.switchTo(this.data.findIndex(o => o === media));\n }\n\n onDownload(media: SunMedia) {\n from(this.fileManager.download(media.url)).pipe(\n this.message.withLoading('正在下载')\n ).subscribe({\n error: () => {\n this.message.error('下载失败');\n }\n });\n }\n}\n","@for (item of data; track item) {\n <div class=\"sun-media-uploader-item\">\n <img class=\"sun-media-uploader-img\" [src]=\"item.thumbnailUrl || item.url\" />\n\n @if (item.progress) {\n <div class=\"sun-media-uploader-progress-bar\">\n <div\n class=\"sun-media-uploader-progress-inner\"\n [style]=\"{ transform: 'translateY(-' + item.progress + 'px)' }\"></div>\n <div class=\"sun-media-uploader-progress-text\">\n <div>{{ item.progress }}%</div>\n <div>上传中...</div>\n </div>\n </div>\n } @else {\n <div class=\"sun-media-uploader-mask\">\n @if (previewable) {\n <div class=\"sun-media-uploader-action\" (click)=\"onPreview(item)\">\n <span nz-icon nzType=\"eye\" nzTheme=\"outline\"></span>预览\n </div>\n }\n @if (downloadable) {\n <div class=\"sun-media-uploader-action\" (click)=\"onDownload(item)\">\n <span nz-icon nzType=\"download\" nzTheme=\"outline\"></span>下载\n </div>\n }\n @if (deletable) {\n <div\n class=\"sun-media-uploader-action\"\n nz-popconfirm\n nzType=\"danger\"\n nzPopconfirmTitle=\"您确定要删除该项目吗?\"\n nzOkDanger\n (nzOnConfirm)=\"delete.next(item)\">\n <span nz-icon nzType=\"delete\" nzTheme=\"outline\"></span>删除\n </div>\n }\n </div>\n }\n </div>\n}\n\n<nz-upload\n nzAccept=\"image/*\"\n nzListType=\"picture-card\"\n [hidden]=\"data?.length! >= limit || !uploadable\"\n [nzShowUploadList]=\"false\"\n [nzCustomRequest]=\"upload\"\n [nzTransformFile]=\"compress ? transform : undefined\"\n (nzChange)=\"onChange($event)\">\n <div class=\"sun-media-uploader-btn\">\n <span nz-icon nzType=\"plus\"></span>\n <div class=\"sun-media-uploader-btn-text\">点击上传</div>\n </div>\n</nz-upload>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solar-angular-ui-zorro-media-uploader.mjs","sources":["../../../packages/ui-zorro/media-uploader/media-uploader.component.ts","../../../packages/ui-zorro/media-uploader/media-uploader.component.html","../../../packages/ui-zorro/media-uploader/solar-angular-ui-zorro-media-uploader.ts"],"sourcesContent":["import { HttpEventType } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, booleanAttribute, inject, numberAttribute } from '@angular/core';\nimport { EarthService, ObjectStorageService } from '@solar-angular/planets/earth';\nimport { FileManager, ImageCompressor } from '@solar-angular/platform-browser';\nimport { MessageService } from '@solar-angular/ui-zorro/message';\nimport { fileExtensionOf } from '@solar-kit/core';\nimport { filterResult, unpackResult } from '@solar-kit/planets/sun';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzImageModule, NzImageService } from 'ng-zorro-antd/image';\nimport { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';\nimport { NzUploadChangeParam, NzUploadFile, NzUploadModule, NzUploadXHRArgs } from 'ng-zorro-antd/upload';\nimport { Observable, from, fromEvent, of, switchMap, take, tap } from 'rxjs';\n\nexport interface SunMedia {\n uid: string;\n type: 'image' | 'video';\n progress?: number;\n active?: boolean;\n file?: Blob;\n url: string\n thumbnailUrl?: string;\n [key: string]: any;\n}\n\n@Component({\n selector: 'sun-media-uploader',\n imports: [\n NzIconModule,\n NzUploadModule,\n NzImageModule,\n NzPopconfirmModule\n ],\n templateUrl: './media-uploader.component.html',\n styleUrl: './media-uploader.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'sun-media-uploader',\n '[class.sun-media-uploader-circle]': `shape === 'circle'`,\n }\n})\nexport class SunMediaUploader {\n private readonly imageService = inject(NzImageService);\n private readonly earthService = inject(EarthService);\n private readonly oss = inject(ObjectStorageService);\n private readonly imageCompressor = inject(ImageCompressor);\n private readonly message = inject(MessageService);\n private readonly fileManager = inject(FileManager);\n\n @Input() data: SunMedia[] = [\n // {\n // uid: '1',\n // type: 'image',\n // url: '',\n // progress: 50\n // },\n // {\n // uid: '2',\n // type: 'image',\n // url: '',\n // }\n ];\n @Input({ transform: numberAttribute }) limit = 9;\n @Input({ transform: booleanAttribute }) deletable = true;\n @Input({ transform: booleanAttribute }) uploadable = true;\n @Input({ transform: booleanAttribute }) previewable = true;\n @Input({ transform: booleanAttribute }) downloadable = false;\n @Input() shape: 'circle' | 'square' = 'square';\n @Input() uploadKeys = this.earthService.mediaUploadKeys().pipe(\n filterResult(),\n unpackResult(),\n );\n /** 启用图片压缩 */\n @Input({ transform: booleanAttribute }) compress = false;\n\n @Output() uploaded = new EventEmitter<{ key: string, hash: string, url: string }>();\n @Output() delete = new EventEmitter<SunMedia>();\n @Output() error = new EventEmitter<SunMedia>();\n @Output() dataChange = new EventEmitter<SunMedia[]>();\n\n get transform() {\n return (file: NzUploadFile): Observable<Blob> => {\n if (!file.type?.startsWith('image/')) {\n return of(file as any);\n }\n\n const { messageId } = this.message.loading('正在压缩图像');\n const reader = new FileReader();\n\n const source = fromEvent(reader, 'load').pipe(\n take(1),\n switchMap(() => this.imageCompressor.compress(reader.result as string)),\n tap(() => this.message.remove(messageId))\n );\n reader.readAsDataURL(file as any);\n\n return source;\n };\n }\n\n upload = (args: NzUploadXHRArgs) => {\n const file = args.postFile as File;\n const ext = fileExtensionOf(args.file.name);\n\n return this.uploadKeys.pipe(\n switchMap(uploadKey => this.oss.uploadWithEvents(file, `${uploadKey.keys[0]}.${ext}`, uploadKey)),\n ).subscribe({\n next: event => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n args.onProgress!({ percent: (event.loaded / event.total!) * 100 }, args.file);\n break;\n\n case HttpEventType.Response:\n this.uploaded.next({\n url: URL.createObjectURL(file),\n ...event.body!\n });\n args.onSuccess!(event.body, args.file, event);\n break;\n }\n },\n error: error => {\n args.onError!(error, args.file);\n }\n });\n };\n\n onChange({ type, file, event }: NzUploadChangeParam): void {\n const media = this.data.find(o => o.uid === file.uid)!;\n\n switch (type) {\n case 'start': {\n const url = URL.createObjectURL(file.originFileObj!);\n this.data = this.data.concat({\n uid: file.uid,\n url: url,\n thumbnailUrl: url,\n progress: 0.01,\n type: 'image',\n file: file.originFileObj\n });\n this.dataChange.emit(this.data);\n break;\n }\n\n case 'progress':\n media.progress = +event!.percent.toFixed(2);\n break;\n\n case 'success':\n delete media.progress;\n break;\n\n case 'error':\n this.data = this.data.filter(o => o.uid !== file.uid);\n this.dataChange.emit(this.data);\n this.error.emit(media);\n break;\n }\n }\n\n onPreview(media: SunMedia) {\n const images = this.data.map(o => ({ src: o.url || o.thumbnailUrl! }));\n const ref = this.imageService.preview(images);\n ref.switchTo(this.data.findIndex(o => o === media));\n }\n\n onDownload(media: SunMedia) {\n from(this.fileManager.download(media.url)).pipe(\n this.message.withLoading('正在下载')\n ).subscribe({\n error: () => {\n this.message.error('下载失败');\n }\n });\n }\n}\n","@for (item of data; track item) {\n <div class=\"sun-media-uploader-item\">\n <img class=\"sun-media-uploader-img\" [src]=\"item.thumbnailUrl || item.url\" />\n\n @if (item.progress) {\n <div class=\"sun-media-uploader-progress-bar\">\n <div\n class=\"sun-media-uploader-progress-inner\"\n [style]=\"{ transform: 'translateY(-' + item.progress + 'px)' }\"></div>\n <div class=\"sun-media-uploader-progress-text\">\n <div>{{ item.progress }}%</div>\n <div>上传中...</div>\n </div>\n </div>\n } @else {\n <div class=\"sun-media-uploader-mask\">\n @if (previewable) {\n <div class=\"sun-media-uploader-action\" (click)=\"onPreview(item)\">\n <span nz-icon nzType=\"eye\" nzTheme=\"outline\"></span>预览\n </div>\n }\n @if (downloadable) {\n <div class=\"sun-media-uploader-action\" (click)=\"onDownload(item)\">\n <span nz-icon nzType=\"download\" nzTheme=\"outline\"></span>下载\n </div>\n }\n @if (deletable) {\n <div\n class=\"sun-media-uploader-action\"\n nz-popconfirm\n nzType=\"danger\"\n nzPopconfirmTitle=\"您确定要删除该项目吗?\"\n nzOkDanger\n (nzOnConfirm)=\"delete.next(item)\">\n <span nz-icon nzType=\"delete\" nzTheme=\"outline\"></span>删除\n </div>\n }\n </div>\n }\n </div>\n}\n\n<nz-upload\n nzAccept=\"image/*\"\n nzListType=\"picture-card\"\n [hidden]=\"data?.length! >= limit || !uploadable\"\n [nzShowUploadList]=\"false\"\n [nzCustomRequest]=\"upload\"\n [nzTransformFile]=\"compress ? transform : undefined\"\n (nzChange)=\"onChange($event)\">\n <div class=\"sun-media-uploader-btn\">\n <span nz-icon nzType=\"plus\"></span>\n <div class=\"sun-media-uploader-btn-text\">点击上传</div>\n </div>\n</nz-upload>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -25,10 +25,10 @@ class MessageService extends NzMessageService {
25
25
  withSaveLoading() {
26
26
  return this.withLoading('正在保存');
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, providedIn: 'root' }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MessageService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MessageService, providedIn: 'root' }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageService, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: MessageService, decorators: [{
32
32
  type: Injectable,
33
33
  args: [{
34
34
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"solar-angular-ui-zorro-message.mjs","sources":["../../../packages/ui-zorro/message/message.service.ts","../../../packages/ui-zorro/message/solar-angular-ui-zorro-message.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { Observable, finalize } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService extends NzMessageService {\n\n saveSuccess() {\n this.success('保存成功');\n }\n\n deleteSuccess() {\n this.success('删除成功');\n }\n\n updateSuccess() {\n this.success('更新成功');\n }\n\n withLoading<T>(content = '正在加载') {\n return (observable: Observable<T>) => {\n const msg = this.loading(content, { nzDuration: 0 });\n return observable.pipe(\n finalize(() => this.remove(msg.messageId))\n );\n };\n }\n\n withDeleteLoading<T>() {\n return this.withLoading<T>('正在删除');\n }\n\n withSaveLoading<T>() {\n return this.withLoading<T>('正在保存');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAOM,MAAO,cAAe,SAAQ,gBAAgB,CAAA;IAElD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACtB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACtB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACtB;IAED,WAAW,CAAI,OAAO,GAAG,MAAM,EAAA;QAC7B,OAAO,CAAC,UAAyB,KAAI;AACnC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;AACrD,YAAA,OAAO,UAAU,CAAC,IAAI,CACpB,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAC3C,CAAC;AACJ,SAAC,CAAC;KACH;IAED,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC;KACpC;IAED,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAI,MAAM,CAAC,CAAC;KACpC;+GA7BU,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"solar-angular-ui-zorro-message.mjs","sources":["../../../packages/ui-zorro/message/message.service.ts","../../../packages/ui-zorro/message/solar-angular-ui-zorro-message.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { Observable, finalize } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MessageService extends NzMessageService {\n\n saveSuccess() {\n this.success('保存成功');\n }\n\n deleteSuccess() {\n this.success('删除成功');\n }\n\n updateSuccess() {\n this.success('更新成功');\n }\n\n withLoading<T>(content = '正在加载') {\n return (observable: Observable<T>) => {\n const msg = this.loading(content, { nzDuration: 0 });\n return observable.pipe(\n finalize(() => this.remove(msg.messageId))\n );\n };\n }\n\n withDeleteLoading<T>() {\n return this.withLoading<T>('正在删除');\n }\n\n withSaveLoading<T>() {\n return this.withLoading<T>('正在保存');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAOM,MAAO,cAAe,SAAQ,gBAAgB,CAAA;IAElD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;IAGtB,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;IAGtB,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;IAGtB,WAAW,CAAI,OAAO,GAAG,MAAM,EAAA;QAC7B,OAAO,CAAC,UAAyB,KAAI;AACnC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;AACpD,YAAA,OAAO,UAAU,CAAC,IAAI,CACpB,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAC3C;AACH,SAAC;;IAGH,iBAAiB,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,WAAW,CAAI,MAAM,CAAC;;IAGpC,eAAe,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,CAAI,MAAM,CAAC;;+GA5BzB,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACND;;AAEG;;;;"}
@@ -11,12 +11,12 @@ import * as i4 from 'ng-zorro-antd/core/transition-patch';
11
11
  import * as i5 from 'ng-zorro-antd/core/wave';
12
12
 
13
13
  class SunForbiddenPage {
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunForbiddenPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SunForbiddenPage, isStandalone: true, selector: "sun-forbidden", ngImport: i0, template: "<nz-result nzStatus=\"403\" nzTitle=\"403\" nzSubTitle=\"\u62B1\u6B49\uFF0C\u60A8\u6CA1\u6709\u6743\u9650\u8BBF\u95EE\u8BE5\u9875\u9762\">\n <div nz-result-extra>\n <button nz-button nzType=\"primary\" routerLink=\"/\">\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\"></span>\n \u8FD4\u56DE\u4E3B\u9875\n </button>\n </div>\n</nz-result>\n", styles: [":host{height:100%;width:100%;display:flex;justify-content:center;align-items:center;background:var(--ant-primary-1);padding-bottom:10vh}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: NzResultModule }, { kind: "component", type: i1.NzResultComponent, selector: "nz-result", inputs: ["nzIcon", "nzTitle", "nzStatus", "nzSubTitle", "nzExtra"], exportAs: ["nzResult"] }, { kind: "directive", type: i1.NzResultExtraDirective, selector: "div[nz-result-extra]", exportAs: ["nzResultExtra"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i3.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i5.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }] }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunForbiddenPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SunForbiddenPage, isStandalone: true, selector: "sun-forbidden", ngImport: i0, template: "<nz-result nzStatus=\"403\" nzTitle=\"403\" nzSubTitle=\"\u62B1\u6B49\uFF0C\u60A8\u6CA1\u6709\u6743\u9650\u8BBF\u95EE\u8BE5\u9875\u9762\">\n <div nz-result-extra>\n <button nz-button nzType=\"primary\" routerLink=\"/\">\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\"></span>\n \u8FD4\u56DE\u4E3B\u9875\n </button>\n </div>\n</nz-result>\n", styles: [":host{height:100%;width:100%;display:flex;justify-content:center;align-items:center;background:var(--ant-primary-1);padding-bottom:10vh}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: NzResultModule }, { kind: "component", type: i1.NzResultComponent, selector: "nz-result", inputs: ["nzIcon", "nzTitle", "nzStatus", "nzSubTitle", "nzExtra"], exportAs: ["nzResult"] }, { kind: "directive", type: i1.NzResultExtraDirective, selector: "div[nz-result-extra]", exportAs: ["nzResultExtra"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i2.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i3.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i4.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i5.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }] }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunForbiddenPage, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunForbiddenPage, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'sun-forbidden', standalone: true, imports: [
19
+ args: [{ selector: 'sun-forbidden', imports: [
20
20
  RouterLink,
21
21
  NzResultModule,
22
22
  NzIconModule,
@@ -1 +1 @@
1
- {"version":3,"file":"solar-angular-ui-zorro-page-forbidden.mjs","sources":["../../../packages/ui-zorro/page-forbidden/forbidden.page.ts","../../../packages/ui-zorro/page-forbidden/forbidden.page.html","../../../packages/ui-zorro/page-forbidden/solar-angular-ui-zorro-page-forbidden.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzResultModule } from 'ng-zorro-antd/result';\n\n@Component({\n selector: 'sun-forbidden',\n standalone: true,\n imports: [\n RouterLink,\n NzResultModule,\n NzIconModule,\n NzButtonModule\n ],\n templateUrl: './forbidden.page.html',\n styleUrl: './forbidden.page.scss'\n})\nexport class SunForbiddenPage { }\n","<nz-result nzStatus=\"403\" nzTitle=\"403\" nzSubTitle=\"抱歉,您没有权限访问该页面\">\n <div nz-result-extra>\n <button nz-button nzType=\"primary\" routerLink=\"/\">\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\"></span>\n 返回主页\n </button>\n </div>\n</nz-result>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAkBa,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB7B,iXAQA,EDEI,MAAA,EAAA,CAAA,4IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,mOACV,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,qIAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKL,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EACP,OAAA,EAAA;wBACP,UAAU;wBACV,cAAc;wBACd,YAAY;wBACZ,cAAc;AACf,qBAAA,EAAA,QAAA,EAAA,iXAAA,EAAA,MAAA,EAAA,CAAA,4IAAA,CAAA,EAAA,CAAA;;;AEdH;;AAEG;;;;"}
1
+ {"version":3,"file":"solar-angular-ui-zorro-page-forbidden.mjs","sources":["../../../packages/ui-zorro/page-forbidden/forbidden.page.ts","../../../packages/ui-zorro/page-forbidden/forbidden.page.html","../../../packages/ui-zorro/page-forbidden/solar-angular-ui-zorro-page-forbidden.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzResultModule } from 'ng-zorro-antd/result';\n\n@Component({\n selector: 'sun-forbidden',\n imports: [\n RouterLink,\n NzResultModule,\n NzIconModule,\n NzButtonModule\n ],\n templateUrl: './forbidden.page.html',\n styleUrl: './forbidden.page.scss'\n})\nexport class SunForbiddenPage { }\n","<nz-result nzStatus=\"403\" nzTitle=\"403\" nzSubTitle=\"抱歉,您没有权限访问该页面\">\n <div nz-result-extra>\n <button nz-button nzType=\"primary\" routerLink=\"/\">\n <span nz-icon nzType=\"arrow-left\" nzTheme=\"outline\"></span>\n 返回主页\n </button>\n </div>\n</nz-result>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAiBa,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB7B,iXAQA,EDCI,MAAA,EAAA,CAAA,4IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,mOACV,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2EAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKL,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAChB,OAAA,EAAA;wBACP,UAAU;wBACV,cAAc;wBACd,YAAY;wBACZ;AACD,qBAAA,EAAA,QAAA,EAAA,iXAAA,EAAA,MAAA,EAAA,CAAA,4IAAA,CAAA,EAAA;;;AEbH;;AAEG;;;;"}
@@ -22,12 +22,12 @@ class SunLogoutPage {
22
22
  login() {
23
23
  this.router.navigateByUrl('/login');
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunLogoutPage, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SunLogoutPage, isStandalone: true, selector: "sun-logout", ngImport: i0, template: "<nz-result\n nzStatus=\"success\"\n nzTitle=\"\u60A8\u5DF2\u6210\u529F\u9000\u51FA\u767B\u5F55!\"\n [nzSubTitle]=\"'\u7CFB\u7EDF\u5C06\u5728 ' + (5 - (interval$ | async)!) + ' \u79D2\u540E\u81EA\u52A8\u91CD\u5B9A\u5411...'\"\n>\n <div nz-result-extra>\n <button nz-button nzType=\"primary\" (click)=\"login()\">\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\n \u7ACB\u5373\u767B\u5F55\n </button>\n </div>\n</nz-result>\n", styles: [":host{height:100%;width:100%;display:flex;justify-content:center;align-items:center;background:var(--ant-primary-1);padding-bottom:10vh}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: NzResultModule }, { kind: "component", type: i2.NzResultComponent, selector: "nz-result", inputs: ["nzIcon", "nzTitle", "nzStatus", "nzSubTitle", "nzExtra"], exportAs: ["nzResult"] }, { kind: "directive", type: i2.NzResultExtraDirective, selector: "div[nz-result-extra]", exportAs: ["nzResultExtra"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i4.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i5.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i6.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }] }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunLogoutPage, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SunLogoutPage, isStandalone: true, selector: "sun-logout", ngImport: i0, template: "<nz-result\n nzStatus=\"success\"\n nzTitle=\"\u60A8\u5DF2\u6210\u529F\u9000\u51FA\u767B\u5F55!\"\n [nzSubTitle]=\"'\u7CFB\u7EDF\u5C06\u5728 ' + (5 - (interval$ | async)!) + ' \u79D2\u540E\u81EA\u52A8\u91CD\u5B9A\u5411...'\"\n>\n <div nz-result-extra>\n <button nz-button nzType=\"primary\" (click)=\"login()\">\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\n \u7ACB\u5373\u767B\u5F55\n </button>\n </div>\n</nz-result>\n", styles: [":host{height:100%;width:100%;display:flex;justify-content:center;align-items:center;background:var(--ant-primary-1);padding-bottom:10vh}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: NzResultModule }, { kind: "component", type: i2.NzResultComponent, selector: "nz-result", inputs: ["nzIcon", "nzTitle", "nzStatus", "nzSubTitle", "nzExtra"], exportAs: ["nzResult"] }, { kind: "directive", type: i2.NzResultExtraDirective, selector: "div[nz-result-extra]", exportAs: ["nzResultExtra"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i4.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i5.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i6.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SunLogoutPage, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SunLogoutPage, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'sun-logout', standalone: true, imports: [
30
+ args: [{ selector: 'sun-logout', imports: [
31
31
  AsyncPipe,
32
32
  NzResultModule,
33
33
  NzIconModule,
@@ -1 +1 @@
1
- {"version":3,"file":"solar-angular-ui-zorro-page-logout.mjs","sources":["../../../packages/ui-zorro/page-logout/logout.page.ts","../../../packages/ui-zorro/page-logout/logout.page.html","../../../packages/ui-zorro/page-logout/solar-angular-ui-zorro-page-logout.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Router } from '@angular/router';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzResultModule } from 'ng-zorro-antd/result';\nimport { last, shareReplay, take, timer } from 'rxjs';\n\n@Component({\n selector: 'sun-logout',\n standalone: true,\n imports: [\n AsyncPipe,\n NzResultModule,\n NzIconModule,\n NzButtonModule\n ],\n templateUrl: './logout.page.html',\n styleUrl: './logout.page.scss'\n})\nexport class SunLogoutPage {\n protected readonly interval$ = timer(0, 1000).pipe(\n take(6),\n shareReplay(1)\n );\n\n constructor(private router: Router) {\n this.interval$.pipe(\n last(),\n takeUntilDestroyed()\n ).subscribe(() => this.login());\n }\n\n login() {\n this.router.navigateByUrl('/login');\n }\n\n}\n","<nz-result\n nzStatus=\"success\"\n nzTitle=\"您已成功退出登录!\"\n [nzSubTitle]=\"'系统将在 ' + (5 - (interval$ | async)!) + ' 秒后自动重定向...'\"\n>\n <div nz-result-extra>\n <button nz-button nzType=\"primary\" (click)=\"login()\">\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\n 立即登录\n </button>\n </div>\n</nz-result>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solar-angular-ui-zorro-page-logout.mjs","sources":["../../../packages/ui-zorro/page-logout/logout.page.ts","../../../packages/ui-zorro/page-logout/logout.page.html","../../../packages/ui-zorro/page-logout/solar-angular-ui-zorro-page-logout.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Router } from '@angular/router';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzResultModule } from 'ng-zorro-antd/result';\nimport { last, shareReplay, take, timer } from 'rxjs';\n\n@Component({\n selector: 'sun-logout',\n imports: [\n AsyncPipe,\n NzResultModule,\n NzIconModule,\n NzButtonModule\n ],\n templateUrl: './logout.page.html',\n styleUrl: './logout.page.scss'\n})\nexport class SunLogoutPage {\n protected readonly interval$ = timer(0, 1000).pipe(\n take(6),\n shareReplay(1)\n );\n\n constructor(private router: Router) {\n this.interval$.pipe(\n last(),\n takeUntilDestroyed()\n ).subscribe(() => this.login());\n }\n\n login() {\n this.router.navigateByUrl('/login');\n }\n\n}\n","<nz-result\n nzStatus=\"success\"\n nzTitle=\"您已成功退出登录!\"\n [nzSubTitle]=\"'系统将在 ' + (5 - (interval$ | async)!) + ' 秒后自动重定向...'\"\n>\n <div nz-result-extra>\n <button nz-button nzType=\"primary\" (click)=\"login()\">\n <span nz-icon nzType=\"arrow-right\" nzTheme=\"outline\"></span>\n 立即登录\n </button>\n </div>\n</nz-result>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}