@solar-angular/ui-zorro 18.0.7 → 18.1.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.
package/crud/page.d.ts CHANGED
@@ -10,11 +10,19 @@ import { Searcher } from './searcher';
10
10
  */
11
11
  export declare abstract class CrudPage<T, U = T, V = U> {
12
12
  protected data: V[];
13
- protected pageSize: number;
14
- protected pageNo: number;
15
13
  protected loading: boolean;
16
14
  protected searcher: Searcher<T>;
17
15
  protected editor: Editor<U>;
16
+ /**
17
+ * @deprecated 请使用 {@link searcher} 的 pageSize 属性
18
+ */
19
+ protected get pageSize(): number;
20
+ protected set pageSize(value: number);
21
+ /**
22
+ * @deprecated 请使用 {@link searcher} 的 pageNo 属性
23
+ */
24
+ protected get pageNo(): number;
25
+ protected set pageNo(value: number);
18
26
  readonly message: MessageService;
19
27
  protected withTableLoading<X>(): (observable: Observable<X>) => Observable<X>;
20
28
  /**
@@ -4,5 +4,7 @@ export declare class Searcher<T> {
4
4
  form?: FormGroup;
5
5
  model: Partial<T>;
6
6
  schema: AbstractFormGroupSchema;
7
+ pageSize: number;
8
+ pageNo: number;
7
9
  reset(): void;
8
10
  }
@@ -11,6 +11,8 @@ import * as i4 from "ng-zorro-antd/typography";
11
11
  export class SunEditorDrawer {
12
12
  constructor() {
13
13
  this.width = 600;
14
+ // TODO: 有些 model 不一定有 primaryKey,可能是两个 foreignKeys,所以要考虑将 operation 变为一个函数
15
+ // 考虑直接做到 signal 版本里,这里就变成一个 computed fn
14
16
  this.primaryKey = 'id';
15
17
  this.visibleChange = new EventEmitter();
16
18
  }
@@ -34,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
34
36
  }], visibleChange: [{
35
37
  type: Output
36
38
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWRyYXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9jcnVkL2VkaXRvci1kcmF3ZXIvZWRpdG9yLWRyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9jcnVkL2VkaXRvci1kcmF3ZXIvZWRpdG9yLWRyYXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFlOUQsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFjVyxVQUFLLEdBQW9CLEdBQUcsQ0FBQztRQUM3QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRWpCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztLQUN2RDsrR0FOWSxlQUFlO21HQUFmLGVBQWUsa01DbkI1QixpaENBbUNBLGdMRHhCSSxjQUFjLCttQkFDZCxZQUFZLDJNQUNaLFlBQVksaU5BQ1osa0JBQWtCOzs0RkFLVCxlQUFlO2tCQVozQixTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osa0JBQWtCO3FCQUNuQjs4QkFLUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOekRyYXdlck1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvZHJhd2VyJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5pbXBvcnQgeyBOelNwaW5Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3NwaW4nO1xuaW1wb3J0IHsgTnpUeXBvZ3JhcGh5TW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC90eXBvZ3JhcGh5JztcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJy4uL2VkaXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N1bi1lZGl0b3ItZHJhd2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE56RHJhd2VyTW9kdWxlLFxuICAgIE56U3Bpbk1vZHVsZSxcbiAgICBOekljb25Nb2R1bGUsXG4gICAgTnpUeXBvZ3JhcGh5TW9kdWxlXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3ItZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VkaXRvci1kcmF3ZXIuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFN1bkVkaXRvckRyYXdlcjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICBASW5wdXQoKSBlZGl0b3IhOiBFZGl0b3I8VD47XG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgfCBudW1iZXIgPSA2MDA7XG4gIEBJbnB1dCgpIHByaW1hcnlLZXkgPSAnaWQnO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xufVxuIiwiPG56LWRyYXdlclxuICBueldyYXBDbGFzc05hbWU9XCJzdW4tZWRpdG9yLWRyYXdlci13cmFwcGVyXCJcbiAgW256V2lkdGhdPVwid2lkdGhcIlxuICBbbnpDbG9zYWJsZV09XCJmYWxzZVwiXG4gIFtuelRpdGxlXT1cImVkaXRvclRpdGxlXCJcbiAgW256Rm9vdGVyXT1cImVkaXRvckZvb3RlclwiXG4gIFsobnpWaXNpYmxlKV09XCJlZGl0b3IudmlzaWJsZVwiXG4gIChuelZpc2libGVDaGFuZ2UpPVwidmlzaWJsZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAobnpPbkNsb3NlKT1cImVkaXRvci52aXNpYmxlID0gZmFsc2VcIlxuPlxuICA8bnotc3BpbiAqbnpEcmF3ZXJDb250ZW50IFtuelNwaW5uaW5nXT1cImVkaXRvci5sb2FkaW5nXCI+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC9uei1zcGluPlxuPC9uei1kcmF3ZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZWRpdG9yVGl0bGU+XG4gIDxkaXY+e3sgZWRpdG9yLm1vZGVsW3ByaW1hcnlLZXldID8gJ+e8lui+keadoeebricgOiAn5paw5aKe5p2h55uuJyB9fTwvZGl2PlxuXG4gIDxzcGFuXG4gICAgbnotaWNvblxuICAgIG56VHlwZT1cInB1c2hwaW5cIlxuICAgIFtuelRoZW1lXT1cImVkaXRvci5waW4gPyAndHdvdG9uZScgOiAnb3V0bGluZSdcIlxuICAgIChjbGljayk9XCJlZGl0b3IudG9nZ2xlUGluKClcIlxuICA+PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0b3JGb290ZXI+XG4gIDxzbWFsbCBuei10eXBvZ3JhcGh5IG56VHlwZT1cInNlY29uZGFyeVwiPlxuICAgIOazqOaEj++8muagh+etvuS4iuW4puaciVxuICAgIDxzcGFuIG56LXR5cG9ncmFwaHkgbnpUeXBlPVwiZGFuZ2VyXCIgc3R5bGU9XCJmb250LWZhbWlseTogU2ltU3VuLCBzYW5zLXNlcmlmXCJcbiAgICAgID4qPC9zcGFuXG4gICAgPlxuICAgIOespuWPt+eahOmhueebruS4uuW/heWhq+mhuVxuICA8L3NtYWxsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWRyYXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9jcnVkL2VkaXRvci1kcmF3ZXIvZWRpdG9yLWRyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9jcnVkL2VkaXRvci1kcmF3ZXIvZWRpdG9yLWRyYXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFlOUQsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFjVyxVQUFLLEdBQW9CLEdBQUcsQ0FBQztRQUN0QywyRUFBMkU7UUFDM0Usd0NBQXdDO1FBQy9CLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBQ3ZEOytHQVJZLGVBQWU7bUdBQWYsZUFBZSxrTUNuQjVCLGloQ0FtQ0EsZ0xEeEJJLGNBQWMsK21CQUNkLFlBQVksMk1BQ1osWUFBWSxpTkFDWixrQkFBa0I7OzRGQUtULGVBQWU7a0JBWjNCLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixrQkFBa0I7cUJBQ25COzhCQUtRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE56RHJhd2VyTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9kcmF3ZXInO1xuaW1wb3J0IHsgTnpJY29uTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9pY29uJztcbmltcG9ydCB7IE56U3Bpbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvc3Bpbic7XG5pbXBvcnQgeyBOelR5cG9ncmFwaHlNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3R5cG9ncmFwaHknO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnLi4vZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3VuLWVkaXRvci1kcmF3ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTnpEcmF3ZXJNb2R1bGUsXG4gICAgTnpTcGluTW9kdWxlLFxuICAgIE56SWNvbk1vZHVsZSxcbiAgICBOelR5cG9ncmFwaHlNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci1kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZWRpdG9yLWRyYXdlci5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgU3VuRWRpdG9yRHJhd2VyPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIEBJbnB1dCgpIGVkaXRvciE6IEVkaXRvcjxUPjtcbiAgQElucHV0KCkgd2lkdGg6IHN0cmluZyB8IG51bWJlciA9IDYwMDtcbiAgLy8gVE9ETzog5pyJ5LqbIG1vZGVsIOS4jeS4gOWumuaciSBwcmltYXJ5S2V577yM5Y+v6IO95piv5Lik5LiqIGZvcmVpZ25LZXlz77yM5omA5Lul6KaB6ICD6JmR5bCGIG9wZXJhdGlvbiDlj5jkuLrkuIDkuKrlh73mlbBcbiAgLy8g6ICD6JmR55u05o6l5YGa5YiwIHNpZ25hbCDniYjmnKzph4zvvIzov5nph4zlsLHlj5jmiJDkuIDkuKogY29tcHV0ZWQgZm5cbiAgQElucHV0KCkgcHJpbWFyeUtleSA9ICdpZCc7XG5cbiAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG59XG4iLCI8bnotZHJhd2VyXG4gIG56V3JhcENsYXNzTmFtZT1cInN1bi1lZGl0b3ItZHJhd2VyLXdyYXBwZXJcIlxuICBbbnpXaWR0aF09XCJ3aWR0aFwiXG4gIFtuekNsb3NhYmxlXT1cImZhbHNlXCJcbiAgW256VGl0bGVdPVwiZWRpdG9yVGl0bGVcIlxuICBbbnpGb290ZXJdPVwiZWRpdG9yRm9vdGVyXCJcbiAgWyhuelZpc2libGUpXT1cImVkaXRvci52aXNpYmxlXCJcbiAgKG56VmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gIChuek9uQ2xvc2UpPVwiZWRpdG9yLnZpc2libGUgPSBmYWxzZVwiXG4+XG4gIDxuei1zcGluICpuekRyYXdlckNvbnRlbnQgW256U3Bpbm5pbmddPVwiZWRpdG9yLmxvYWRpbmdcIj5cbiAgICA8bmctY29udGVudCAvPlxuICA8L256LXNwaW4+XG48L256LWRyYXdlcj5cblxuPG5nLXRlbXBsYXRlICNlZGl0b3JUaXRsZT5cbiAgPGRpdj57eyBlZGl0b3IubW9kZWxbcHJpbWFyeUtleV0gPyAn57yW6L6R5p2h55uuJyA6ICfmlrDlop7mnaHnm64nIH19PC9kaXY+XG5cbiAgPHNwYW5cbiAgICBuei1pY29uXG4gICAgbnpUeXBlPVwicHVzaHBpblwiXG4gICAgW256VGhlbWVdPVwiZWRpdG9yLnBpbiA/ICd0d290b25lJyA6ICdvdXRsaW5lJ1wiXG4gICAgKGNsaWNrKT1cImVkaXRvci50b2dnbGVQaW4oKVwiXG4gID48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VkaXRvckZvb3Rlcj5cbiAgPHNtYWxsIG56LXR5cG9ncmFwaHkgbnpUeXBlPVwic2Vjb25kYXJ5XCI+XG4gICAg5rOo5oSP77ya5qCH562+5LiK5bim5pyJXG4gICAgPHNwYW4gbnotdHlwb2dyYXBoeSBuelR5cGU9XCJkYW5nZXJcIiBzdHlsZT1cImZvbnQtZmFtaWx5OiBTaW1TdW4sIHNhbnMtc2VyaWZcIlxuICAgICAgPio8L3NwYW5cbiAgICA+XG4gICAg56ym5Y+355qE6aG555uu5Li65b+F5aGr6aG5XG4gIDwvc21hbGw+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -12,13 +12,29 @@ import { Searcher } from './searcher';
12
12
  export class CrudPage {
13
13
  constructor() {
14
14
  this.data = [];
15
- this.pageSize = 10;
16
- this.pageNo = 1;
17
15
  this.loading = false;
18
16
  this.searcher = new Searcher();
19
17
  this.editor = new Editor();
20
18
  this.message = inject(MessageService);
21
19
  }
20
+ /**
21
+ * @deprecated 请使用 {@link searcher} 的 pageSize 属性
22
+ */
23
+ get pageSize() {
24
+ return this.searcher.pageSize;
25
+ }
26
+ set pageSize(value) {
27
+ this.searcher.pageSize = value;
28
+ }
29
+ /**
30
+ * @deprecated 请使用 {@link searcher} 的 pageNo 属性
31
+ */
32
+ get pageNo() {
33
+ return this.searcher.pageNo;
34
+ }
35
+ set pageNo(value) {
36
+ this.searcher.pageNo = value;
37
+ }
22
38
  withTableLoading() {
23
39
  return (observable) => {
24
40
  this.loading = true;
@@ -63,4 +79,4 @@ export class CrudPage {
63
79
  */
64
80
  export class PagingCrudPage extends CrudPage {
65
81
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3VpLXpvcnJvL2NydWQvcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBZ0IsUUFBUTtJQUE5QjtRQUNZLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFZixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVYLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFaEIsYUFBUSxHQUFHLElBQUksUUFBUSxFQUFLLENBQUM7UUFDN0IsV0FBTSxHQUFHLElBQUksTUFBTSxFQUFLLENBQUM7UUFFMUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQTJDNUMsQ0FBQztJQXpDVyxnQkFBZ0I7UUFDeEIsT0FBTyxDQUFDLFVBQXlCLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQ3BCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUNyQyxDQUFDO1FBQ0osQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNPLFdBQVcsQ0FBSSxPQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFJLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDTyxpQkFBaUI7UUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFLLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGVBQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBSyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7O09BR0c7SUFDTyxJQUFJLENBQUMsTUFBUztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixjQUFnQyxTQUFRLFFBQWlCO0NBRTlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0Bzb2xhci1hbmd1bGFyL3VpLXpvcnJvL21lc3NhZ2UnO1xuaW1wb3J0IHsgZmluYWxpemUsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVkaXRvciB9IGZyb20gJy4vZWRpdG9yJztcbmltcG9ydCB7IFNlYXJjaGVyIH0gZnJvbSAnLi9zZWFyY2hlcic7XG5cbi8qKlxuICog5aKe5Yig5pS55p+l6aG16Z2iXG4gKiBAdGVtcGxhdGUgVCBTZWFyY2hlciDnmoTmqKHlnovnsbvlnotcbiAqIEB0ZW1wbGF0ZSBVIEVkaXRvciDnmoTmqKHlnovnsbvlnovvvIzpu5jorqTkuLogVFxuICogQHRlbXBsYXRlIFYgRGF0YSDnmoTmqKHlnovnsbvlnovvvIzpu5jorqTkuLogVVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3J1ZFBhZ2U8VCwgVSA9IFQsIFYgPSBVPiB7XG4gIHByb3RlY3RlZCBkYXRhOiBWW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgcGFnZVNpemUgPSAxMDtcbiAgcHJvdGVjdGVkIHBhZ2VObyA9IDE7XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgc2VhcmNoZXIgPSBuZXcgU2VhcmNoZXI8VD4oKTtcbiAgcHJvdGVjdGVkIGVkaXRvciA9IG5ldyBFZGl0b3I8VT4oKTtcblxuICByZWFkb25seSBtZXNzYWdlID0gaW5qZWN0KE1lc3NhZ2VTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgd2l0aFRhYmxlTG9hZGluZzxYPigpIHtcbiAgICByZXR1cm4gKG9ic2VydmFibGU6IE9ic2VydmFibGU8WD4pID0+IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSlcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgTWVzc2FnZVNlcnZpY2Uud2l0aExvYWRpbmcoKX0g55qE5b+r5o235pa55byPXG4gICAqIEBwYXJhbSBjb250ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgd2l0aExvYWRpbmc8WD4oY29udGVudD86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2Uud2l0aExvYWRpbmc8WD4oY29udGVudCk7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIE1lc3NhZ2VTZXJ2aWNlLndpdGhEZWxldGVMb2FkaW5nKCl9IOeahOW/q+aNt+aWueW8j1xuICAgKiBAcGFyYW0gY29udGVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHdpdGhEZWxldGVMb2FkaW5nPFg+KCkge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2Uud2l0aERlbGV0ZUxvYWRpbmc8WD4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgTWVzc2FnZVNlcnZpY2Uud2l0aFNhdmVMb2FkaW5nKCl9IOeahOW/q+aNt+aWueW8j1xuICAgKiBAcGFyYW0gY29udGVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHdpdGhTYXZlTG9hZGluZzxYPigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlLndpdGhTYXZlTG9hZGluZzxYPigpO1xuICB9XG5cbiAgLyoqXG4gICAqIOe8lui+kVxuICAgKiBAcGFyYW0gZW50aXR5XG4gICAqL1xuICBwcm90ZWN0ZWQgZWRpdChlbnRpdHk6IFUpIHtcbiAgICB0aGlzLmVkaXRvci5maWxsKGVudGl0eSk7XG4gICAgdGhpcy5lZGl0b3IucHJlc2VudCgpO1xuICB9XG59XG5cbi8qKlxuICog5bim5YiG6aG155qE5aKe5Yig5pS55p+l6aG16Z2iXG4gKiBAdGVtcGxhdGUgVCBTZWFyY2hlciDnmoTmqKHlnovnsbvlnotcbiAqIEB0ZW1wbGF0ZSBVIEVkaXRvciDnmoTmqKHlnovnsbvlnovvvIzpu5jorqTkuLogVFxuICogQHRlbXBsYXRlIFYgRGF0YSDnmoTmqKHlnovnsbvlnovvvIzpu5jorqTkuLogVVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFnaW5nQ3J1ZFBhZ2U8VCwgVSA9IFQsIFYgPSBVPiBleHRlbmRzIENydWRQYWdlPFQsIFUsIFY+IHtcbiAgcHJvdGVjdGVkIHRvdGFsU2l6ZSE6IG51bWJlcjtcbn1cbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3VpLXpvcnJvL2NydWQvcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBZ0IsUUFBUTtJQUE5QjtRQUNZLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFZixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBSyxDQUFDO1FBQzdCLFdBQU0sR0FBRyxJQUFJLE1BQU0sRUFBSyxDQUFDO1FBcUIxQixZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBMkM1QyxDQUFDO0lBOURDOztPQUVHO0lBQ0gsSUFBYyxRQUFRO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQWMsUUFBUSxDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFDRDs7T0FFRztJQUNILElBQWMsTUFBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFjLE1BQU0sQ0FBQyxLQUFLO1FBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBSVMsZ0JBQWdCO1FBQ3hCLE9BQU8sQ0FBQyxVQUF5QixFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUNwQixRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FDckMsQ0FBQztRQUNKLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDTyxXQUFXLENBQUksT0FBZ0I7UUFDdkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBSSxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ08saUJBQWlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBSyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDTyxlQUFlO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUssQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sSUFBSSxDQUFDLE1BQVM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBZ0IsY0FBZ0MsU0FBUSxRQUFpQjtDQUU5RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAc29sYXItYW5ndWxhci91aS16b3Jyby9tZXNzYWdlJztcbmltcG9ydCB7IGZpbmFsaXplLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFZGl0b3IgfSBmcm9tICcuL2VkaXRvcic7XG5pbXBvcnQgeyBTZWFyY2hlciB9IGZyb20gJy4vc2VhcmNoZXInO1xuXG4vKipcbiAqIOWinuWIoOaUueafpemhtemdolxuICogQHRlbXBsYXRlIFQgU2VhcmNoZXIg55qE5qih5Z6L57G75Z6LXG4gKiBAdGVtcGxhdGUgVSBFZGl0b3Ig55qE5qih5Z6L57G75Z6L77yM6buY6K6k5Li6IFRcbiAqIEB0ZW1wbGF0ZSBWIERhdGEg55qE5qih5Z6L57G75Z6L77yM6buY6K6k5Li6IFVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENydWRQYWdlPFQsIFUgPSBULCBWID0gVT4ge1xuICBwcm90ZWN0ZWQgZGF0YTogVltdID0gW107XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgc2VhcmNoZXIgPSBuZXcgU2VhcmNoZXI8VD4oKTtcbiAgcHJvdGVjdGVkIGVkaXRvciA9IG5ldyBFZGl0b3I8VT4oKTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQg6K+35L2/55SoIHtAbGluayBzZWFyY2hlcn0g55qEIHBhZ2VTaXplIOWxnuaAp1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBwYWdlU2l6ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hlci5wYWdlU2l6ZTtcbiAgfVxuICBwcm90ZWN0ZWQgc2V0IHBhZ2VTaXplKHZhbHVlKSB7XG4gICAgdGhpcy5zZWFyY2hlci5wYWdlU2l6ZSA9IHZhbHVlO1xuICB9XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCDor7fkvb/nlKgge0BsaW5rIHNlYXJjaGVyfSDnmoQgcGFnZU5vIOWxnuaAp1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBwYWdlTm8oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoZXIucGFnZU5vO1xuICB9XG4gIHByb3RlY3RlZCBzZXQgcGFnZU5vKHZhbHVlKSB7XG4gICAgdGhpcy5zZWFyY2hlci5wYWdlTm8gPSB2YWx1ZTtcbiAgfVxuXG4gIHJlYWRvbmx5IG1lc3NhZ2UgPSBpbmplY3QoTWVzc2FnZVNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCB3aXRoVGFibGVMb2FkaW5nPFg+KCkge1xuICAgIHJldHVybiAob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxYPikgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBNZXNzYWdlU2VydmljZS53aXRoTG9hZGluZygpfSDnmoTlv6vmjbfmlrnlvI9cbiAgICogQHBhcmFtIGNvbnRlbnRcbiAgICovXG4gIHByb3RlY3RlZCB3aXRoTG9hZGluZzxYPihjb250ZW50Pzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZS53aXRoTG9hZGluZzxYPihjb250ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiB7QGxpbmsgTWVzc2FnZVNlcnZpY2Uud2l0aERlbGV0ZUxvYWRpbmcoKX0g55qE5b+r5o235pa55byPXG4gICAqIEBwYXJhbSBjb250ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgd2l0aERlbGV0ZUxvYWRpbmc8WD4oKSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZS53aXRoRGVsZXRlTG9hZGluZzxYPigpO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBNZXNzYWdlU2VydmljZS53aXRoU2F2ZUxvYWRpbmcoKX0g55qE5b+r5o235pa55byPXG4gICAqIEBwYXJhbSBjb250ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgd2l0aFNhdmVMb2FkaW5nPFg+KCkge1xuICAgIHJldHVybiB0aGlzLm1lc3NhZ2Uud2l0aFNhdmVMb2FkaW5nPFg+KCk7XG4gIH1cblxuICAvKipcbiAgICog57yW6L6RXG4gICAqIEBwYXJhbSBlbnRpdHlcbiAgICovXG4gIHByb3RlY3RlZCBlZGl0KGVudGl0eTogVSkge1xuICAgIHRoaXMuZWRpdG9yLmZpbGwoZW50aXR5KTtcbiAgICB0aGlzLmVkaXRvci5wcmVzZW50KCk7XG4gIH1cbn1cblxuLyoqXG4gKiDluKbliIbpobXnmoTlop7liKDmlLnmn6XpobXpnaJcbiAqIEB0ZW1wbGF0ZSBUIFNlYXJjaGVyIOeahOaooeWei+exu+Wei1xuICogQHRlbXBsYXRlIFUgRWRpdG9yIOeahOaooeWei+exu+Wei++8jOm7mOiupOS4uiBUXG4gKiBAdGVtcGxhdGUgViBEYXRhIOeahOaooeWei+exu+Wei++8jOm7mOiupOS4uiBVXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYWdpbmdDcnVkUGFnZTxULCBVID0gVCwgViA9IFU+IGV4dGVuZHMgQ3J1ZFBhZ2U8VCwgVSwgVj4ge1xuICBwcm90ZWN0ZWQgdG90YWxTaXplITogbnVtYmVyO1xufVxuIl19
@@ -1,9 +1,12 @@
1
1
  export class Searcher {
2
2
  constructor() {
3
3
  this.model = {};
4
+ this.pageSize = 10;
5
+ this.pageNo = 1;
4
6
  }
5
7
  reset() {
8
+ this.pageNo = 1;
6
9
  this.form?.reset({});
7
10
  }
8
11
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9jcnVkL3NlYXJjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBRUUsVUFBSyxHQUFlLEVBQUUsQ0FBQztJQU96QixDQUFDO0lBSEMsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybUdyb3VwU2NoZW1hIH0gZnJvbSAnQGZsdWVudC1mb3JtL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoZXI8VD4ge1xuICBmb3JtPzogRm9ybUdyb3VwO1xuICBtb2RlbDogUGFydGlhbDxUPiA9IHt9O1xuXG4gIHNjaGVtYSE6IEFic3RyYWN0Rm9ybUdyb3VwU2NoZW1hO1xuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuZm9ybT8ucmVzZXQoe30pO1xuICB9XG59XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9jcnVkL3NlYXJjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxRQUFRO0lBQXJCO1FBRUUsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUd2QixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsV0FBTSxHQUFHLENBQUMsQ0FBQztJQU1iLENBQUM7SUFKQyxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGb3JtR3JvdXBTY2hlbWEgfSBmcm9tICdAZmx1ZW50LWZvcm0vY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hlcjxUPiB7XG4gIGZvcm0/OiBGb3JtR3JvdXA7XG4gIG1vZGVsOiBQYXJ0aWFsPFQ+ID0ge307XG4gIHNjaGVtYSE6IEFic3RyYWN0Rm9ybUdyb3VwU2NoZW1hO1xuXG4gIHBhZ2VTaXplID0gMTA7XG4gIHBhZ2VObyA9IDE7XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5wYWdlTm8gPSAxO1xuICAgIHRoaXMuZm9ybT8ucmVzZXQoe30pO1xuICB9XG59XG4iXX0=
@@ -12,4 +12,11 @@ export function saveButton() {
12
12
  .variants({ block: true })
13
13
  .disabled(({ control }) => control.invalid);
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3VpLXpvcnJvL2ZsdWVudC1mb3JtL2NvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBeUIsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RSxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxNQUFNLEVBQUU7U0FDWixPQUFPLENBQUMsSUFBSSxDQUFDO1NBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNmLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN6QixRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUF3RixDQUFDO0FBQ3ZJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbnN0YWJsZUJ1aWxkZXIgfSBmcm9tICdAZmx1ZW50LWZvcm0vY29yZSc7XG5pbXBvcnQgeyBidXR0b24sIEJ1dHRvbkNvbXBvbmVudFNjaGVtYSB9IGZyb20gJ0BmbHVlbnQtZm9ybS91aS16b3Jybyc7XG5pbXBvcnQgeyBLaW5kT3JLZXkgfSBmcm9tICcuL3R5cGluZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hCdXR0b24oKTogVW5zdGFibGVCdWlsZGVyPEJ1dHRvbkNvbXBvbmVudFNjaGVtYSwgS2luZE9yS2V5IHwgJ2ljb24nIHwgJ2NvbnRlbnQnIHwgJ3R5cGUnPiB7XG4gIHJldHVybiBidXR0b24oKS5pY29uKCdzZWFyY2gnKS5jb250ZW50KCfmn6Xor6InKS50eXBlKCdwcmltYXJ5Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRCdXR0b24oKTogVW5zdGFibGVCdWlsZGVyPEJ1dHRvbkNvbXBvbmVudFNjaGVtYSwgS2luZE9yS2V5IHwgJ2ljb24nIHwgJ2NvbnRlbnQnIHwgJ3R5cGUnIHwgJ21vZGUnPiB7XG4gIHJldHVybiBidXR0b24oKS5pY29uKCdwbHVzJykuY29udGVudCgn5paw5aKeJykudHlwZSgncHJpbWFyeScpLm1vZGUoJ2J1dHRvbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZUJ1dHRvbigpOiBVbnN0YWJsZUJ1aWxkZXI8QnV0dG9uQ29tcG9uZW50U2NoZW1hLCBLaW5kT3JLZXkgfCAnY29udGVudCcgfCAndHlwZScgfCAnZGlzYWJsZWQnPiB7XG4gIHJldHVybiBidXR0b24oKVxuICAgIC5jb250ZW50KCfkv53lrZgnKVxuICAgIC50eXBlKCdwcmltYXJ5JylcbiAgICAudmFyaWFudHMoeyBibG9jazogdHJ1ZSB9KVxuICAgIC5kaXNhYmxlZCgoeyBjb250cm9sIH0pID0+IGNvbnRyb2wuaW52YWxpZCkgYXMgVW5zdGFibGVCdWlsZGVyPEJ1dHRvbkNvbXBvbmVudFNjaGVtYSwgS2luZE9yS2V5IHwgJ2NvbnRlbnQnIHwgJ3R5cGUnIHwgJ2Rpc2FibGVkJz47XG59XG4iXX0=
15
+ export function submitButton() {
16
+ return button()
17
+ .content('提交')
18
+ .type('primary')
19
+ .variants({ block: true })
20
+ .disabled(({ control }) => control.invalid);
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3VpLXpvcnJvL2ZsdWVudC1mb3JtL2NvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBeUIsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RSxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxNQUFNLEVBQUU7U0FDWixPQUFPLENBQUMsSUFBSSxDQUFDO1NBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNmLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN6QixRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUF3RixDQUFDO0FBQ3ZJLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLE1BQU0sRUFBRTtTQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDYixJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ2YsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ3pCLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQXdGLENBQUM7QUFDdkksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVuc3RhYmxlQnVpbGRlciB9IGZyb20gJ0BmbHVlbnQtZm9ybS9jb3JlJztcbmltcG9ydCB7IGJ1dHRvbiwgQnV0dG9uQ29tcG9uZW50U2NoZW1hIH0gZnJvbSAnQGZsdWVudC1mb3JtL3VpLXpvcnJvJztcbmltcG9ydCB7IEtpbmRPcktleSB9IGZyb20gJy4vdHlwaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaEJ1dHRvbigpOiBVbnN0YWJsZUJ1aWxkZXI8QnV0dG9uQ29tcG9uZW50U2NoZW1hLCBLaW5kT3JLZXkgfCAnaWNvbicgfCAnY29udGVudCcgfCAndHlwZSc+IHtcbiAgcmV0dXJuIGJ1dHRvbigpLmljb24oJ3NlYXJjaCcpLmNvbnRlbnQoJ+afpeivoicpLnR5cGUoJ3ByaW1hcnknKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEJ1dHRvbigpOiBVbnN0YWJsZUJ1aWxkZXI8QnV0dG9uQ29tcG9uZW50U2NoZW1hLCBLaW5kT3JLZXkgfCAnaWNvbicgfCAnY29udGVudCcgfCAndHlwZScgfCAnbW9kZSc+IHtcbiAgcmV0dXJuIGJ1dHRvbigpLmljb24oJ3BsdXMnKS5jb250ZW50KCfmlrDlop4nKS50eXBlKCdwcmltYXJ5JykubW9kZSgnYnV0dG9uJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlQnV0dG9uKCk6IFVuc3RhYmxlQnVpbGRlcjxCdXR0b25Db21wb25lbnRTY2hlbWEsIEtpbmRPcktleSB8ICdjb250ZW50JyB8ICd0eXBlJyB8ICdkaXNhYmxlZCc+IHtcbiAgcmV0dXJuIGJ1dHRvbigpXG4gICAgLmNvbnRlbnQoJ+S/neWtmCcpXG4gICAgLnR5cGUoJ3ByaW1hcnknKVxuICAgIC52YXJpYW50cyh7IGJsb2NrOiB0cnVlIH0pXG4gICAgLmRpc2FibGVkKCh7IGNvbnRyb2wgfSkgPT4gY29udHJvbC5pbnZhbGlkKSBhcyBVbnN0YWJsZUJ1aWxkZXI8QnV0dG9uQ29tcG9uZW50U2NoZW1hLCBLaW5kT3JLZXkgfCAnY29udGVudCcgfCAndHlwZScgfCAnZGlzYWJsZWQnPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1Ym1pdEJ1dHRvbigpOiBVbnN0YWJsZUJ1aWxkZXI8QnV0dG9uQ29tcG9uZW50U2NoZW1hLCBLaW5kT3JLZXkgfCAnY29udGVudCcgfCAndHlwZScgfCAnZGlzYWJsZWQnPiB7XG4gIHJldHVybiBidXR0b24oKVxuICAgIC5jb250ZW50KCfmj5DkuqQnKVxuICAgIC50eXBlKCdwcmltYXJ5JylcbiAgICAudmFyaWFudHMoeyBibG9jazogdHJ1ZSB9KVxuICAgIC5kaXNhYmxlZCgoeyBjb250cm9sIH0pID0+IGNvbnRyb2wuaW52YWxpZCkgYXMgVW5zdGFibGVCdWlsZGVyPEJ1dHRvbkNvbXBvbmVudFNjaGVtYSwgS2luZE9yS2V5IHwgJ2NvbnRlbnQnIHwgJ3R5cGUnIHwgJ2Rpc2FibGVkJz47XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export function entityToOption(entity) {
2
+ return { label: entity.fullName, value: entity.id };
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdWktem9ycm8vZmx1ZW50LWZvcm0vaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBdUM7SUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkRW50aXR5IH0gZnJvbSAnQHNvbGFyLWtpdC9wbGFuZXRzL3N1bic7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUb09wdGlvbihlbnRpdHk6IElkRW50aXR5ICYgeyBmdWxsTmFtZTogc3RyaW5nIH0pIHtcbiAgcmV0dXJuIHsgbGFiZWw6IGVudGl0eS5mdWxsTmFtZSwgdmFsdWU6IGVudGl0eS5pZCB9O1xufVxuIl19
@@ -1,5 +1,6 @@
1
1
  export * from './components';
2
2
  export * from './controls';
3
3
  export * from './form';
4
+ export * from './helper';
4
5
  export * from './patchers';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9mbHVlbnQtZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL3BhdGNoZXJzJztcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9mbHVlbnQtZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2xzJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybSc7XG5leHBvcnQgKiBmcm9tICcuL2hlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL3BhdGNoZXJzJztcbiJdfQ==
@@ -37,7 +37,7 @@ export function useAutoPlaceholderPatchers() {
37
37
  export function useImprovedPickerPatchers() {
38
38
  return [
39
39
  {
40
- selector: ['date-picker', 'time-picker', 'select', 'cascader', 'tree-select'],
40
+ selector: ['date-picker', 'date-range-picker', 'time-picker', 'select', 'cascader', 'tree-select'],
41
41
  patch: schema => {
42
42
  if (!schema['required']) {
43
43
  schema['clearable'] ??= true;
@@ -54,4 +54,4 @@ export function useImprovedPickerPatchers() {
54
54
  }
55
55
  ];
56
56
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2hlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9mbHVlbnQtZm9ybS9wYXRjaGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxTQUFTLFVBQVUsQ0FBQyxLQUFxQjtJQUN2QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE1BQWtDLEVBQUUsTUFBYztJQUN6RSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUIsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDeEMsTUFBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTztRQUNMO1lBQ0UsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztTQUNoRDtRQUNEO1lBQ0UsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7U0FDaEQ7UUFDRDtZQUNFLFFBQVEsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUM7WUFDN0UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7U0FDaEQ7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTztRQUNMO1lBQ0UsUUFBUSxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQztZQUM3RSxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUN4QixNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDO2dCQUMvQixDQUFDO2dCQUVELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRjtRQUNEO1lBQ0UsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUM7WUFDL0MsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLENBQUM7Z0JBRTlCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZW1hUGF0Y2hlciB9IGZyb20gJ0BmbHVlbnQtZm9ybS9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Wm9ycm9Db250cm9sU2NoZW1hLCBMYWJlbCB9IGZyb20gJ0BmbHVlbnQtZm9ybS91aS16b3Jybyc7XG5cbmZ1bmN0aW9uIHBhcnNlTGFiZWwobGFiZWw6IHN0cmluZyB8IExhYmVsKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICByZXR1cm4gbGFiZWwuY29udGVudCA/PyAnJztcbn1cblxuZnVuY3Rpb24gYXV0b1BsYWNlaG9sZGVyKHNjaGVtYTogQWJzdHJhY3Rab3Jyb0NvbnRyb2xTY2hlbWEsIGFjdGlvbjogc3RyaW5nKSB7XG4gIGNvbnN0IGxhYmVsID0gc2NoZW1hWydsYWJlbCddO1xuXG4gIGlmIChsYWJlbCAmJiB0eXBlb2YgbGFiZWwgIT09ICdmdW5jdGlvbicpIHtcbiAgICAoc2NoZW1hIGFzIGFueSlbJ3BsYWNlaG9sZGVyJ10gPz89IGFjdGlvbiArIHBhcnNlTGFiZWwobGFiZWwpO1xuICB9XG5cbiAgcmV0dXJuIHNjaGVtYTtcbn1cblxuLyoqXG4gKiDkuLrmlofmnKzmoYblrZfmrrXoh6rliqjmt7vliqAgcGxhY2Vob2xkZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUF1dG9QbGFjZWhvbGRlclBhdGNoZXJzKCk6IFNjaGVtYVBhdGNoZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgc2VsZWN0b3I6IFsndGV4dCcsICdudW1iZXInXSxcbiAgICAgIHBhdGNoOiBzY2hlbWEgPT4gYXV0b1BsYWNlaG9sZGVyKHNjaGVtYSwgJ+ivt+i+k+WFpScpXG4gICAgfSxcbiAgICB7XG4gICAgICBzZWxlY3RvcjogJ3RleHRhcmVhJyxcbiAgICAgIHBhdGNoOiBzY2hlbWEgPT4gYXV0b1BsYWNlaG9sZGVyKHNjaGVtYSwgJ+ivt+Whq+WGmScpXG4gICAgfSxcbiAgICB7XG4gICAgICBzZWxlY3RvcjogWydkYXRlLXBpY2tlcicsICd0aW1lLXBpY2tlcicsICdzZWxlY3QnLCAnY2FzY2FkZXInLCAndHJlZS1zZWxlY3QnXSxcbiAgICAgIHBhdGNoOiBzY2hlbWEgPT4gYXV0b1BsYWNlaG9sZGVyKHNjaGVtYSwgJ+ivt+mAieaLqScpXG4gICAgfVxuICBdO1xufVxuXG4vKipcbiAqIDEuIOiHquWKqOS4uumdnuW/heWhq+Wtl+autea3u+WKoOa4hemZpOaMiemSrlxuICogMi4g5Li66YCJ5oup5Zmo5re75Yqg5pCc57Si5Yqf6IO9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VJbXByb3ZlZFBpY2tlclBhdGNoZXJzKCk6IFNjaGVtYVBhdGNoZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgc2VsZWN0b3I6IFsnZGF0ZS1waWNrZXInLCAndGltZS1waWNrZXInLCAnc2VsZWN0JywgJ2Nhc2NhZGVyJywgJ3RyZWUtc2VsZWN0J10sXG4gICAgICBwYXRjaDogc2NoZW1hID0+IHtcbiAgICAgICAgaWYgKCFzY2hlbWFbJ3JlcXVpcmVkJ10pIHtcbiAgICAgICAgICBzY2hlbWFbJ2NsZWFyYWJsZSddID8/PSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHNlbGVjdG9yOiBbJ3NlbGVjdCcsICdjYXNjYWRlcicsICd0cmVlLXNlbGVjdCddLFxuICAgICAgcGF0Y2g6IHNjaGVtYSA9PiB7XG4gICAgICAgIHNjaGVtYVsnc2VhcmNoYWJsZSddID8/PSB0cnVlO1xuXG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2hlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9mbHVlbnQtZm9ybS9wYXRjaGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxTQUFTLFVBQVUsQ0FBQyxLQUFxQjtJQUN2QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE1BQWtDLEVBQUUsTUFBYztJQUN6RSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFOUIsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDeEMsTUFBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsT0FBTztRQUNMO1lBQ0UsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUM1QixLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztTQUNoRDtRQUNEO1lBQ0UsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7U0FDaEQ7UUFDRDtZQUNFLFFBQVEsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUM7WUFDN0UsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7U0FDaEQ7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTztRQUNMO1lBQ0UsUUFBUSxFQUFFLENBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQztZQUNsRyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUN4QixNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDO2dCQUMvQixDQUFDO2dCQUVELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRjtRQUNEO1lBQ0UsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUM7WUFDL0MsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLENBQUM7Z0JBRTlCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLENBQUM7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NoZW1hUGF0Y2hlciB9IGZyb20gJ0BmbHVlbnQtZm9ybS9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Wm9ycm9Db250cm9sU2NoZW1hLCBMYWJlbCB9IGZyb20gJ0BmbHVlbnQtZm9ybS91aS16b3Jybyc7XG5cbmZ1bmN0aW9uIHBhcnNlTGFiZWwobGFiZWw6IHN0cmluZyB8IExhYmVsKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBsYWJlbCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICByZXR1cm4gbGFiZWwuY29udGVudCA/PyAnJztcbn1cblxuZnVuY3Rpb24gYXV0b1BsYWNlaG9sZGVyKHNjaGVtYTogQWJzdHJhY3Rab3Jyb0NvbnRyb2xTY2hlbWEsIGFjdGlvbjogc3RyaW5nKSB7XG4gIGNvbnN0IGxhYmVsID0gc2NoZW1hWydsYWJlbCddO1xuXG4gIGlmIChsYWJlbCAmJiB0eXBlb2YgbGFiZWwgIT09ICdmdW5jdGlvbicpIHtcbiAgICAoc2NoZW1hIGFzIGFueSlbJ3BsYWNlaG9sZGVyJ10gPz89IGFjdGlvbiArIHBhcnNlTGFiZWwobGFiZWwpO1xuICB9XG5cbiAgcmV0dXJuIHNjaGVtYTtcbn1cblxuLyoqXG4gKiDkuLrmlofmnKzmoYblrZfmrrXoh6rliqjmt7vliqAgcGxhY2Vob2xkZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUF1dG9QbGFjZWhvbGRlclBhdGNoZXJzKCk6IFNjaGVtYVBhdGNoZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgc2VsZWN0b3I6IFsndGV4dCcsICdudW1iZXInXSxcbiAgICAgIHBhdGNoOiBzY2hlbWEgPT4gYXV0b1BsYWNlaG9sZGVyKHNjaGVtYSwgJ+ivt+i+k+WFpScpXG4gICAgfSxcbiAgICB7XG4gICAgICBzZWxlY3RvcjogJ3RleHRhcmVhJyxcbiAgICAgIHBhdGNoOiBzY2hlbWEgPT4gYXV0b1BsYWNlaG9sZGVyKHNjaGVtYSwgJ+ivt+Whq+WGmScpXG4gICAgfSxcbiAgICB7XG4gICAgICBzZWxlY3RvcjogWydkYXRlLXBpY2tlcicsICd0aW1lLXBpY2tlcicsICdzZWxlY3QnLCAnY2FzY2FkZXInLCAndHJlZS1zZWxlY3QnXSxcbiAgICAgIHBhdGNoOiBzY2hlbWEgPT4gYXV0b1BsYWNlaG9sZGVyKHNjaGVtYSwgJ+ivt+mAieaLqScpXG4gICAgfVxuICBdO1xufVxuXG4vKipcbiAqIDEuIOiHquWKqOS4uumdnuW/heWhq+Wtl+autea3u+WKoOa4hemZpOaMiemSrlxuICogMi4g5Li66YCJ5oup5Zmo5re75Yqg5pCc57Si5Yqf6IO9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VJbXByb3ZlZFBpY2tlclBhdGNoZXJzKCk6IFNjaGVtYVBhdGNoZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgc2VsZWN0b3I6IFsnZGF0ZS1waWNrZXInLCAnZGF0ZS1yYW5nZS1waWNrZXInLCAndGltZS1waWNrZXInLCAnc2VsZWN0JywgJ2Nhc2NhZGVyJywgJ3RyZWUtc2VsZWN0J10sXG4gICAgICBwYXRjaDogc2NoZW1hID0+IHtcbiAgICAgICAgaWYgKCFzY2hlbWFbJ3JlcXVpcmVkJ10pIHtcbiAgICAgICAgICBzY2hlbWFbJ2NsZWFyYWJsZSddID8/PSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNjaGVtYTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHNlbGVjdG9yOiBbJ3NlbGVjdCcsICdjYXNjYWRlcicsICd0cmVlLXNlbGVjdCddLFxuICAgICAgcGF0Y2g6IHNjaGVtYSA9PiB7XG4gICAgICAgIHNjaGVtYVsnc2VhcmNoYWJsZSddID8/PSB0cnVlO1xuXG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuIl19
@@ -78,6 +78,8 @@ class Editor {
78
78
  class SunEditorDrawer {
79
79
  constructor() {
80
80
  this.width = 600;
81
+ // TODO: 有些 model 不一定有 primaryKey,可能是两个 foreignKeys,所以要考虑将 operation 变为一个函数
82
+ // 考虑直接做到 signal 版本里,这里就变成一个 computed fn
81
83
  this.primaryKey = 'id';
82
84
  this.visibleChange = new EventEmitter();
83
85
  }
@@ -105,8 +107,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
105
107
  class Searcher {
106
108
  constructor() {
107
109
  this.model = {};
110
+ this.pageSize = 10;
111
+ this.pageNo = 1;
108
112
  }
109
113
  reset() {
114
+ this.pageNo = 1;
110
115
  this.form?.reset({});
111
116
  }
112
117
  }
@@ -120,13 +125,29 @@ class Searcher {
120
125
  class CrudPage {
121
126
  constructor() {
122
127
  this.data = [];
123
- this.pageSize = 10;
124
- this.pageNo = 1;
125
128
  this.loading = false;
126
129
  this.searcher = new Searcher();
127
130
  this.editor = new Editor();
128
131
  this.message = inject(MessageService);
129
132
  }
133
+ /**
134
+ * @deprecated 请使用 {@link searcher} 的 pageSize 属性
135
+ */
136
+ get pageSize() {
137
+ return this.searcher.pageSize;
138
+ }
139
+ set pageSize(value) {
140
+ this.searcher.pageSize = value;
141
+ }
142
+ /**
143
+ * @deprecated 请使用 {@link searcher} 的 pageNo 属性
144
+ */
145
+ get pageNo() {
146
+ return this.searcher.pageNo;
147
+ }
148
+ set pageNo(value) {
149
+ this.searcher.pageNo = value;
150
+ }
130
151
  withTableLoading() {
131
152
  return (observable) => {
132
153
  this.loading = true;
@@ -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 { AbstractFormGroupSchema, 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: AbstractFormGroupSchema = 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 @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 { AbstractFormGroupSchema } from '@fluent-form/core';\n\nexport class Searcher<T> {\n form?: FormGroup;\n model: Partial<T> = {};\n\n schema!: AbstractFormGroupSchema;\n\n reset() {\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 pageSize = 10;\n protected pageNo = 1;\n\n protected loading = false;\n\n protected searcher = new Searcher<T>();\n protected editor = new Editor<U>();\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 { AbstractFormGroupSchema, 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: AbstractFormGroupSchema = 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 { AbstractFormGroupSchema } from '@fluent-form/core';\n\nexport class Searcher<T> {\n form?: FormGroup;\n model: Partial<T> = {};\n schema!: AbstractFormGroupSchema;\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 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 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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"}
@@ -15,6 +15,13 @@ function saveButton() {
15
15
  .variants({ block: true })
16
16
  .disabled(({ control }) => control.invalid);
17
17
  }
18
+ function submitButton() {
19
+ return button()
20
+ .content('提交')
21
+ .type('primary')
22
+ .variants({ block: true })
23
+ .disabled(({ control }) => control.invalid);
24
+ }
18
25
 
19
26
  function cellphoneText(key = 'cellphone', length = 11) {
20
27
  return text(key).type('tel').length(length);
@@ -131,6 +138,10 @@ function entityForm(composeFn) {
131
138
  });
132
139
  }
133
140
 
141
+ function entityToOption(entity) {
142
+ return { label: entity.fullName, value: entity.id };
143
+ }
144
+
134
145
  function parseLabel(label) {
135
146
  if (typeof label === 'string') {
136
147
  return label;
@@ -170,7 +181,7 @@ function useAutoPlaceholderPatchers() {
170
181
  function useImprovedPickerPatchers() {
171
182
  return [
172
183
  {
173
- selector: ['date-picker', 'time-picker', 'select', 'cascader', 'tree-select'],
184
+ selector: ['date-picker', 'date-range-picker', 'time-picker', 'select', 'cascader', 'tree-select'],
174
185
  patch: schema => {
175
186
  if (!schema['required']) {
176
187
  schema['clearable'] ??= true;
@@ -192,5 +203,5 @@ function useImprovedPickerPatchers() {
192
203
  * Generated bundle index. Do not edit.
193
204
  */
194
205
 
195
- export { addButton, categoryCascader, cellphoneText, datetimePicker, datetimeRangePicker, enabledToggle, entityCascader, entityCheckboxGroup, entityForm, entityRadioGroup, entitySelect, finishedToggle, genderRadioGroup, integer, saveButton, searchButton, useAutoPlaceholderPatchers, useImprovedPickerPatchers };
206
+ export { addButton, categoryCascader, cellphoneText, datetimePicker, datetimeRangePicker, enabledToggle, entityCascader, entityCheckboxGroup, entityForm, entityRadioGroup, entitySelect, entityToOption, finishedToggle, genderRadioGroup, integer, saveButton, searchButton, submitButton, useAutoPlaceholderPatchers, useImprovedPickerPatchers };
196
207
  //# sourceMappingURL=solar-angular-ui-zorro-fluent-form.mjs.map
@@ -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/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","import { SchemaKey, SingleSchemaKey, UnstableBuilder } from '@fluent-form/core';\nimport { CascaderControlSchema, CheckboxGroupControlSchema, DatePickerControlSchema, DateRangePickerControlSchema, NumberControlSchema, RadioGroupControlSchema, SelectControlSchema, TextControlSchema, ToggleControlSchema, cascader, checkboxGroup, datePicker, dateRangePicker, number, radioGroup, select, text, toggle } from '@fluent-form/ui-zorro';\nimport { TreeNode, levels2tree, tree2list } from '@solar-angular/core';\nimport { Category, Channel } from '@solar-kit/planets/earth';\nimport { Gender } from '@solar-kit/planets/sun';\nimport { KindOrKey } from './typing';\n\nexport function cellphoneText(key = 'cellphone', length = 11): UnstableBuilder<TextControlSchema, KindOrKey | 'type' | 'length'> {\n return text(key).type('tel').length(length);\n}\n\nexport function integer(key: SingleSchemaKey): UnstableBuilder<NumberControlSchema, KindOrKey | 'precision'> {\n return number(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: SchemaKey, channels: Channel[], categories: Category[]): UnstableBuilder<CascaderControlSchema, KindOrKey | 'options' | 'trigger' | 'config' | 'mapper'> {\n return entityCascader(key).options(levels2tree([channels, categories], 'channel'));\n}\n\n/**\n * 通用的实体多选框\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entityCheckboxGroup(key: string): UnstableBuilder<CheckboxGroupControlSchema, KindOrKey | 'config'> {\n return checkboxGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体单选框\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entityRadioGroup(key: string): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'config'> {\n return radioGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体选择器\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entitySelect(key: SingleSchemaKey): UnstableBuilder<SelectControlSchema, KindOrKey | 'config'> {\n return select(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体联级选择器\n *\n * - 多字段模式下不支持以下选项:\n * - 不支持使用函数作为 options\n * - 不支持 fetchOptions 选项\n *\n * options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造\n *\n * @param key\n */\nexport function entityCascader(key: SchemaKey): UnstableBuilder<CascaderControlSchema, KindOrKey | 'trigger' | 'config' | 'mapper'> {\n let list: TreeNode[];\n\n return cascader(key)\n .trigger('hover')\n .mapper({\n parser: (value: TreeNode['id'] | TreeNode['id'][] | null, schema) => {\n if (!value) return null;\n\n // 如果输入的是数组,则说明当前是多字段模式,不需要做处理\n if (Array.isArray(value)) return value;\n\n // 如果输入的是叶子节点,我们需要转为 [父节点, ..., 叶子节点]\n list ??= tree2list((schema as CascaderControlSchema).options as TreeNode[]);\n // 找到选中的叶子节点\n let node = list.find(node => node.id === value && node.isLeaf);\n\n const levels = [];\n\n while (node) {\n levels.unshift(node.id);\n node = node.parent;\n }\n\n return levels;\n },\n formatter: value => {\n // 多字段模式,不需要处理\n if (Array.isArray(key)) return value;\n\n // 输出的是节点数组,我们只要叶子节点\n return value?.[value.length - 1];\n }\n })\n .config({ labelProperty: 'fullName', valueProperty: 'id' });\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 } from '@fluent-form/core';\nimport { headless } from '@fluent-form/ui-zorro';\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', 'number'],\n patch: schema => autoPlaceholder(schema, '请输入')\n },\n {\n selector: 'textarea',\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', '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;;ACXM,SAAU,aAAa,CAAC,GAAG,GAAG,WAAW,EAAE,MAAM,GAAG,EAAE,EAAA;AAC1D,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAEK,SAAU,OAAO,CAAC,GAAoB,EAAA;IAC1C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClC,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,GAAc,EAAE,QAAmB,EAAE,UAAsB,EAAA;AAC1F,IAAA,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;;;;AAKG;AACG,SAAU,mBAAmB,CAAC,GAAW,EAAA;AAC7C,IAAA,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AACvF,CAAC;AAED;;;;;AAKG;AACG,SAAU,gBAAgB,CAAC,GAAW,EAAA;AAC1C,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;;;;;AAKG;AACG,SAAU,YAAY,CAAC,GAAoB,EAAA;AAC/C,IAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;;;;;;;;AAUG;AACG,SAAU,cAAc,CAAC,GAAc,EAAA;AAC3C,IAAA,IAAI,IAAgB,CAAC;IAErB,OAAO,QAAQ,CAAC,GAAG,CAAC;SACjB,OAAO,CAAC,OAAO,CAAC;AAChB,SAAA,MAAM,CAAC;AACN,QAAA,MAAM,EAAE,CAAC,KAA+C,EAAE,MAAM,KAAI;AAClE,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,OAAO,IAAI,CAAC;;AAGxB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;;AAGvC,YAAA,IAAI,KAAK,SAAS,CAAE,MAAgC,CAAC,OAAqB,CAAC,CAAC;;YAE5E,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,EAAE,CAAC;YAElB,OAAO,IAAI,EAAE;AACX,gBAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,gBAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;aACpB;AAED,YAAA,OAAO,MAAM,CAAC;SACf;QACD,SAAS,EAAE,KAAK,IAAG;;AAEjB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;;YAGrC,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAClC;KACF,CAAC;SACD,MAAM,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,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;;ACtHA;;;;;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;;ACZA,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,MAAM,EAAE,QAAQ,CAAC;YAC5B,KAAK,EAAE,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;AAChD,SAAA;AACD,QAAA;AACE,YAAA,QAAQ,EAAE,UAAU;YACpB,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;YACE,QAAQ,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;YAC7E,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/controls.ts","../../../packages/ui-zorro/fluent-form/form.ts","../../../packages/ui-zorro/fluent-form/helper.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","import { SchemaKey, SingleSchemaKey, UnstableBuilder } from '@fluent-form/core';\nimport { CascaderControlSchema, CheckboxGroupControlSchema, DatePickerControlSchema, DateRangePickerControlSchema, NumberControlSchema, RadioGroupControlSchema, SelectControlSchema, TextControlSchema, ToggleControlSchema, cascader, checkboxGroup, datePicker, dateRangePicker, number, radioGroup, select, text, toggle } from '@fluent-form/ui-zorro';\nimport { TreeNode, levels2tree, tree2list } from '@solar-angular/core';\nimport { Category, Channel } from '@solar-kit/planets/earth';\nimport { Gender } from '@solar-kit/planets/sun';\nimport { KindOrKey } from './typing';\n\nexport function cellphoneText(key = 'cellphone', length = 11): UnstableBuilder<TextControlSchema, KindOrKey | 'type' | 'length'> {\n return text(key).type('tel').length(length);\n}\n\nexport function integer(key: SingleSchemaKey): UnstableBuilder<NumberControlSchema, KindOrKey | 'precision'> {\n return number(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: SchemaKey, channels: Channel[], categories: Category[]): UnstableBuilder<CascaderControlSchema, KindOrKey | 'options' | 'trigger' | 'config' | 'mapper'> {\n return entityCascader(key).options(levels2tree([channels, categories], 'channel'));\n}\n\n/**\n * 通用的实体多选框\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entityCheckboxGroup(key: string): UnstableBuilder<CheckboxGroupControlSchema, KindOrKey | 'config'> {\n return checkboxGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体单选框\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entityRadioGroup(key: string): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'config'> {\n return radioGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体选择器\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entitySelect(key: SingleSchemaKey): UnstableBuilder<SelectControlSchema, KindOrKey | 'config'> {\n return select(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体联级选择器\n *\n * - 多字段模式下不支持以下选项:\n * - 不支持使用函数作为 options\n * - 不支持 fetchOptions 选项\n *\n * options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造\n *\n * @param key\n */\nexport function entityCascader(key: SchemaKey): UnstableBuilder<CascaderControlSchema, KindOrKey | 'trigger' | 'config' | 'mapper'> {\n let list: TreeNode[];\n\n return cascader(key)\n .trigger('hover')\n .mapper({\n parser: (value: TreeNode['id'] | TreeNode['id'][] | null, schema) => {\n if (!value) return null;\n\n // 如果输入的是数组,则说明当前是多字段模式,不需要做处理\n if (Array.isArray(value)) return value;\n\n // 如果输入的是叶子节点,我们需要转为 [父节点, ..., 叶子节点]\n list ??= tree2list((schema as CascaderControlSchema).options as TreeNode[]);\n // 找到选中的叶子节点\n let node = list.find(node => node.id === value && node.isLeaf);\n\n const levels = [];\n\n while (node) {\n levels.unshift(node.id);\n node = node.parent;\n }\n\n return levels;\n },\n formatter: value => {\n // 多字段模式,不需要处理\n if (Array.isArray(key)) return value;\n\n // 输出的是节点数组,我们只要叶子节点\n return value?.[value.length - 1];\n }\n })\n .config({ labelProperty: 'fullName', valueProperty: 'id' });\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 } from '@fluent-form/core';\nimport { headless } from '@fluent-form/ui-zorro';\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 { IdEntity } from '@solar-kit/planets/sun';\n\nexport function entityToOption(entity: IdEntity & { fullName: string }) {\n return { label: entity.fullName, value: entity.id };\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', 'number'],\n patch: schema => autoPlaceholder(schema, '请输入')\n },\n {\n selector: 'textarea',\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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"}
@@ -4,3 +4,4 @@ import { KindOrKey } from './typing';
4
4
  export declare function searchButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type'>;
5
5
  export declare function addButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type' | 'mode'>;
6
6
  export declare function saveButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;
7
+ export declare function submitButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;
@@ -0,0 +1,7 @@
1
+ import { IdEntity } from '@solar-kit/planets/sun';
2
+ export declare function entityToOption(entity: IdEntity & {
3
+ fullName: string;
4
+ }): {
5
+ label: string;
6
+ value: number;
7
+ };
@@ -1,4 +1,5 @@
1
1
  export * from './components';
2
2
  export * from './controls';
3
3
  export * from './form';
4
+ export * from './helper';
4
5
  export * from './patchers';
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@solar-angular/ui-zorro",
3
- "version": "18.0.7",
3
+ "version": "18.1.1",
4
4
  "sideEffects": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "dependencies": {
9
- "@solar-angular/core": "18.0.7",
10
- "@solar-angular/planets": "18.0.7",
11
- "@solar-angular/platform-browser": "18.0.7",
9
+ "@solar-angular/core": "18.1.1",
10
+ "@solar-angular/planets": "18.1.1",
11
+ "@solar-angular/platform-browser": "18.1.1",
12
12
  "tslib": "^2.3.0"
13
13
  },
14
14
  "peerDependencies": {
@@ -51,18 +51,18 @@
51
51
  "esm": "./esm2022/fluent-form/solar-angular-ui-zorro-fluent-form.mjs",
52
52
  "default": "./fesm2022/solar-angular-ui-zorro-fluent-form.mjs"
53
53
  },
54
- "./media-uploader": {
55
- "types": "./media-uploader/index.d.ts",
56
- "esm2022": "./esm2022/media-uploader/solar-angular-ui-zorro-media-uploader.mjs",
57
- "esm": "./esm2022/media-uploader/solar-angular-ui-zorro-media-uploader.mjs",
58
- "default": "./fesm2022/solar-angular-ui-zorro-media-uploader.mjs"
59
- },
60
54
  "./message": {
61
55
  "types": "./message/index.d.ts",
62
56
  "esm2022": "./esm2022/message/solar-angular-ui-zorro-message.mjs",
63
57
  "esm": "./esm2022/message/solar-angular-ui-zorro-message.mjs",
64
58
  "default": "./fesm2022/solar-angular-ui-zorro-message.mjs"
65
59
  },
60
+ "./media-uploader": {
61
+ "types": "./media-uploader/index.d.ts",
62
+ "esm2022": "./esm2022/media-uploader/solar-angular-ui-zorro-media-uploader.mjs",
63
+ "esm": "./esm2022/media-uploader/solar-angular-ui-zorro-media-uploader.mjs",
64
+ "default": "./fesm2022/solar-angular-ui-zorro-media-uploader.mjs"
65
+ },
66
66
  "./page-forbidden": {
67
67
  "types": "./page-forbidden/index.d.ts",
68
68
  "esm2022": "./esm2022/page-forbidden/solar-angular-ui-zorro-page-forbidden.mjs",