@yongdall/web 0.4.4 → 0.4.5

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/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as dot_request1 from "dot-request";
2
2
  import DotRequest, { default as DotRequest$1 } from "dot-request";
3
3
  import { ArrayStore, BindObjectStore, ObjectStore, Schema, Schema as Schema$1, Store, Store as Store$1, StoreLayout, StoreLayout as StoreLayout$1, renderStore } from "@neeloong/form";
4
- import { Field, MaybePromise, Permission, Permissions } from "@yongdall/types";
4
+ import { Field, FormLayout, MaybePromise, PageForm, Permission, Permissions } from "@yongdall/types";
5
5
  import { Hook, Indicator, Plugin, Search } from "@yongdall/common";
6
6
  import { Signal as Signal$1 } from "signal-polyfill";
7
7
  export * from "@yongdall/types";
@@ -135,6 +135,142 @@ type PageInfo = {
135
135
  hide: () => void;
136
136
  };
137
137
  //#endregion
138
+ //#region packages/web/print.d.mts
139
+ type Print = Print.Page & Print.Pages;
140
+ declare namespace Print {
141
+ type MarginBox = {
142
+ content?: Print.Context | Print.Context[] | undefined;
143
+ /**
144
+ * - 字体族
145
+ */
146
+ fontFamily?: string | undefined;
147
+ /**
148
+ * - 字体大小
149
+ */
150
+ fontSize?: string | number | undefined;
151
+ bold?: boolean | undefined;
152
+ italic?: boolean | undefined;
153
+ /**
154
+ * - 文字颜色
155
+ */
156
+ color?: string | undefined;
157
+ /**
158
+ * - 文本方向
159
+ */
160
+ direction?: "ltr" | "rtl" | undefined;
161
+ /**
162
+ * - 行高
163
+ */
164
+ lineHeight?: string | number | undefined;
165
+ /**
166
+ * - 层叠顺序
167
+ */
168
+ zIndex?: number | undefined;
169
+ /**
170
+ * - 文本对齐
171
+ */
172
+ textAlign?: "left" | "center" | "right" | "justify" | "start" | "end" | undefined;
173
+ /**
174
+ * - 垂直对齐
175
+ */
176
+ verticalAlign?: number | "sub" | "baseline" | "super" | "top" | "text-top" | "middle" | "bottom" | "text-bottom" | undefined;
177
+ /**
178
+ * - 内边距属性对象
179
+ */
180
+ padding?: Record<"left" | "right" | "top" | "bottom", string | number> | undefined;
181
+ border?: Print.Border | undefined;
182
+ };
183
+ type Context = string | Print.Newline | Print.Image | Print.Barcode | Print.Counter;
184
+ type Newline = {
185
+ type: "newline";
186
+ };
187
+ type Counter = {
188
+ type: "page" | "pages";
189
+ };
190
+ type Image = {
191
+ type: "image";
192
+ url: string;
193
+ alt?: string | undefined;
194
+ width?: string | number | undefined;
195
+ height?: string | number | undefined;
196
+ };
197
+ type Barcode = {
198
+ type: "barcode" | "code128";
199
+ text: string;
200
+ width?: string | number | undefined;
201
+ height?: string | number | undefined;
202
+ };
203
+ type Border = {
204
+ /**
205
+ * - 边框宽度复合属性
206
+ */
207
+ width?: string | number | undefined;
208
+ /**
209
+ * - 边框颜色复合属性
210
+ */
211
+ color?: string | undefined;
212
+ /**
213
+ * - 边框样式复合属性
214
+ */
215
+ style?: "dotted" | "dashed" | "solid" | "double" | "groove" | "ridge" | "inset" | "outset" | undefined;
216
+ };
217
+ type Page = {
218
+ /**
219
+ * 页面尺寸
220
+ */
221
+ size?: {
222
+ width?: string;
223
+ height?: string;
224
+ } | "A3" | "B4" | "A4" | "B5" | "A5" | undefined;
225
+ /**
226
+ * 页面方向
227
+ */
228
+ orientation?: "portrait" | "landscape" | "auto" | undefined;
229
+ /**
230
+ * 页边距
231
+ */
232
+ margin?: string | [string, (string | undefined)?, (string | undefined)?, (string | undefined)?] | undefined;
233
+ topLeft?: Print.MarginBox | undefined;
234
+ topCenter?: Print.MarginBox | undefined;
235
+ topRight?: Print.MarginBox | undefined;
236
+ bottomLeft?: Print.MarginBox | undefined;
237
+ bottomCenter?: Print.MarginBox | undefined;
238
+ bottomRight?: Print.MarginBox | undefined;
239
+ leftTop?: Print.MarginBox | undefined;
240
+ leftMiddle?: Print.MarginBox | undefined;
241
+ leftBottom?: Print.MarginBox | undefined;
242
+ rightTop?: Print.MarginBox | undefined;
243
+ rightMiddle?: Print.MarginBox | undefined;
244
+ rightBottom?: Print.MarginBox | undefined;
245
+ topLeftCorner?: Print.MarginBox | undefined;
246
+ topRightCorner?: Print.MarginBox | undefined;
247
+ bottomLeftCorner?: Print.MarginBox | undefined;
248
+ bottomRightCorner?: Print.MarginBox | undefined;
249
+ topBorder?: Print.Border | undefined;
250
+ bottomBorder?: Print.Border | undefined;
251
+ leftBorder?: Print.Border | undefined;
252
+ rightBorder?: Print.Border | undefined;
253
+ };
254
+ type Pages = {
255
+ /**
256
+ * 左侧页面/节点
257
+ */
258
+ left?: Print.Page | undefined;
259
+ /**
260
+ * 右侧页面/节点
261
+ */
262
+ right?: Print.Page | undefined;
263
+ /**
264
+ * 首页页面/节点
265
+ */
266
+ first?: Print.Page | undefined;
267
+ /**
268
+ * 空白页面/节点
269
+ */
270
+ blank?: Print.Page | undefined;
271
+ };
272
+ }
273
+ //#endregion
138
274
  //#region packages/web/GeneralContext.d.mts
139
275
  declare class GeneralContext {
140
276
  /**
@@ -142,11 +278,65 @@ declare class GeneralContext {
142
278
  * @param {AbortSignal} [signal]
143
279
  */
144
280
  constructor(signal?: AbortSignal);
281
+ /**
282
+ * @overload
283
+ * @param {false} [useReject]
284
+ * @returns {Promise<void>}
285
+ */
286
+ waitDestroy(useReject?: false | undefined): Promise<void>;
287
+ /**
288
+ * @overload
289
+ * @param {true} useReject
290
+ * @returns {Promise<never>}
291
+ */
292
+ waitDestroy(useReject: true): Promise<never>;
293
+ /**
294
+ * @overload
295
+ * @param {boolean} [useReject]
296
+ * @returns {Promise<void | never>}
297
+ */
298
+ waitDestroy(useReject?: boolean | undefined): Promise<void | never>;
145
299
  get destroyed(): boolean;
146
300
  get signal(): AbortSignal;
147
301
  #private;
148
302
  }
149
303
  //#endregion
304
+ //#region packages/web/dom/root.d.mts
305
+ declare const root$1: HTMLDivElement;
306
+ //#endregion
307
+ //#region packages/web/dom/setIcon.d.mts
308
+ /**
309
+ *
310
+ * @param {string?} icon
311
+ */
312
+ declare function setIcon(icon: string | null): void;
313
+ //#endregion
314
+ //#region packages/web/dom/createDialog.d.mts
315
+ /**
316
+ * @template T
317
+ * @overload
318
+ * @param {(dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T} exec
319
+ * @param {object} [options]
320
+ * @param {AbortSignal} [options.signal]
321
+ * @param {HTMLElement} [options.parent]
322
+ * @returns {Promise<T>}
323
+ */
324
+ declare function createDialog<T>(exec: (dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T, options?: {
325
+ signal?: AbortSignal | undefined;
326
+ parent?: HTMLElement | undefined;
327
+ } | undefined): Promise<T>;
328
+ /**
329
+ * @overload
330
+ * @param {object} [options]
331
+ * @param {AbortSignal} [options.signal]
332
+ * @param {HTMLElement} [options.parent]
333
+ * @returns {HTMLDialogElement}
334
+ */
335
+ declare function createDialog(options?: {
336
+ signal?: AbortSignal | undefined;
337
+ parent?: HTMLElement | undefined;
338
+ } | undefined): HTMLDialogElement;
339
+ //#endregion
150
340
  //#region packages/web/Menu.d.mts
151
341
  /**
152
342
  * 菜单显示
@@ -425,40 +615,8 @@ declare namespace Menu {
425
615
  type Renderer = (menu: Menu, signal: AbortSignal, isButton?: boolean) => HTMLElement | null;
426
616
  }
427
617
  //#endregion
428
- //#region packages/web/route/PageSider.d.mts
429
- declare class PageSider extends GeneralContext {
430
- /**
431
- *
432
- * @param {ParentNode} parent
433
- * @param {Node?} next
434
- * @param {boolean} inserted
435
- * @param {AbortSignal} signal
436
- * @returns
437
- */
438
- constructor(parent: ParentNode, next: Node | null, inserted: boolean, signal: AbortSignal);
439
- get container(): HTMLDivElement;
440
- set unprintable(unprintable: boolean);
441
- get unprintable(): boolean;
442
- set panel(panel: boolean);
443
- get panel(): boolean;
444
- set title(t: string);
445
- get title(): string;
446
- /**
447
- *
448
- * @param {(Menu | null)[]} menus
449
- * @param {Menu?} button
450
- * @param {Menu.Renderer} [create]
451
- * @returns
452
- */
453
- setMenu(menus: (Menu | null)[], button: Menu | null, create?: Menu.Renderer): void;
454
- get inserted(): boolean;
455
- insert(): void;
456
- remove(): void;
457
- #private;
458
- }
459
- //#endregion
460
- //#region packages/web/route/PageHeader.d.mts
461
- declare class PageHeader extends GeneralContext {
618
+ //#region packages/web/dom/ModalHeader.d.mts
619
+ declare class ModalHeader extends GeneralContext {
462
620
  /**
463
621
  *
464
622
  * @param {HTMLElement} root
@@ -467,6 +625,7 @@ declare class PageHeader extends GeneralContext {
467
625
  */
468
626
  constructor(root: HTMLElement, signal?: AbortSignal);
469
627
  get container(): HTMLDivElement;
628
+ get buttons(): HTMLDivElement;
470
629
  /**
471
630
  *
472
631
  * @param {*} menus
@@ -474,13 +633,11 @@ declare class PageHeader extends GeneralContext {
474
633
  * @returns
475
634
  */
476
635
  setMenu(menus: any, create?: Menu.Renderer): void;
477
- set unprintable(unprintable: boolean);
478
- get unprintable(): boolean;
479
636
  #private;
480
637
  }
481
638
  //#endregion
482
- //#region packages/web/route/PageFooter.d.mts
483
- declare class PageFooter extends GeneralContext {
639
+ //#region packages/web/dom/ModalFooter.d.mts
640
+ declare class ModalFooter extends GeneralContext {
484
641
  /**
485
642
  *
486
643
  * @param {HTMLElement} root
@@ -489,220 +646,129 @@ declare class PageFooter extends GeneralContext {
489
646
  */
490
647
  constructor(root: HTMLElement, signal?: AbortSignal);
491
648
  get container(): HTMLDivElement;
492
- set unprintable(unprintable: boolean);
493
- get unprintable(): boolean;
494
649
  #private;
495
650
  }
496
651
  //#endregion
497
- //#region packages/web/route/PageSection.d.mts
498
- declare class PageSection extends GeneralContext {
652
+ //#region packages/web/dom/Modal.d.mts
653
+ declare class Modal extends GeneralContext {
499
654
  /**
500
- *
501
- * @param {ParentNode} parent
502
- * @param {Node?} next
503
- * @param {boolean} inserted
504
- * @param {AbortSignal} signal
505
- * @returns
655
+ * @param {object} [options]
656
+ * @param {AbortSignal} [options.signal]
657
+ * @param {HTMLElement} [options.parent]
506
658
  */
507
- constructor(parent: ParentNode, next: Node | null, inserted: boolean, signal: AbortSignal);
659
+ constructor(options?: {
660
+ signal?: AbortSignal | undefined;
661
+ parent?: HTMLElement | undefined;
662
+ });
508
663
  get container(): HTMLDivElement;
509
- set unprintable(unprintable: boolean);
510
- get unprintable(): boolean;
511
- set panel(panel: boolean);
512
- get panel(): boolean;
513
- get inserted(): boolean;
514
- insert(): void;
515
- remove(): void;
516
- #private;
517
- }
518
- //#endregion
519
- //#region packages/web/route/Page.d.mts
520
- declare class Page {
521
664
  /**
522
- *
523
- * @param {boolean} show
665
+ * @template T
666
+ * @param {(dialog: this) => PromiseLike<T> | T} exec
667
+ * @returns {Promise<T>}
524
668
  */
525
- constructor(show: boolean);
526
- get destroyed(): boolean;
527
- get container(): HTMLDivElement;
528
- set mode(mode: "scroll" | "flex");
529
- get mode(): "scroll" | "flex";
530
- set panel(panel: boolean);
531
- get panel(): boolean;
532
- get show(): boolean;
533
- /**
534
- *
535
- * @param {boolean} show
536
- */
537
- toggle(show: boolean): void;
538
- destroy(): boolean;
669
+ do<T>(exec: (dialog: this) => PromiseLike<T> | T): Promise<T>;
539
670
  /**
540
671
  *
541
672
  * @param {AbortSignal} [signal]
542
673
  * @returns
543
674
  */
544
- createHeader(signal?: AbortSignal): PageHeader;
675
+ createHeader(signal?: AbortSignal): ModalHeader;
545
676
  /**
546
677
  *
547
678
  * @param {AbortSignal} [signal]
548
679
  * @returns
549
680
  */
550
- createFooter(signal?: AbortSignal): PageFooter;
681
+ createFooter(signal?: AbortSignal): ModalFooter;
682
+ #private;
683
+ }
684
+ //#endregion
685
+ //#region packages/web/dom/createModal.d.mts
686
+ /**
687
+ * @template T
688
+ * @overload
689
+ * @param {(modal: Modal) => PromiseLike<T> | T} exec
690
+ * @param {object} [options]
691
+ * @param {AbortSignal} [options.signal]
692
+ * @param {HTMLElement} [options.parent]
693
+ * @returns {Promise<T>}
694
+ */
695
+ declare function createModal<T>(exec: (modal: Modal) => PromiseLike<T> | T, options?: {
696
+ signal?: AbortSignal | undefined;
697
+ parent?: HTMLElement | undefined;
698
+ } | undefined): Promise<T>;
699
+ /**
700
+ * @overload
701
+ * @param {object} [options]
702
+ * @param {AbortSignal} [options.signal]
703
+ * @param {HTMLElement} [options.parent]
704
+ * @returns {Modal}
705
+ */
706
+ declare function createModal(options?: {
707
+ signal?: AbortSignal | undefined;
708
+ parent?: HTMLElement | undefined;
709
+ } | undefined): Modal;
710
+ //#endregion
711
+ //#region packages/web/dom/index.d.mts
712
+ declare const isMac: boolean;
713
+ //#endregion
714
+ //#region packages/web/route/PageSider.d.mts
715
+ declare class PageSider extends GeneralContext {
551
716
  /**
552
717
  *
553
- * @param {'start' | 'end' | 'before' | 'after'} position
554
- * @param {boolean} [inserted]
555
- * @param {AbortSignal} [signal]
556
- * @returns {PageSection}
718
+ * @param {ParentNode} parent
719
+ * @param {Node?} next
720
+ * @param {boolean} inserted
721
+ * @param {AbortSignal} signal
722
+ * @returns
557
723
  */
558
- createSection(position: "start" | "end" | "before" | "after", inserted?: boolean, signal?: AbortSignal): PageSection;
559
- get signal(): AbortSignal;
560
- set siderOpen(open: boolean);
561
- get siderOpen(): boolean;
724
+ constructor(parent: ParentNode, next: Node | null, inserted: boolean, signal: AbortSignal);
562
725
  /**
563
- *
564
- * @param {boolean} [inserted]
726
+ * @template T
727
+ * @overload
728
+ * @param {(dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T} exec
565
729
  * @param {AbortSignal} [signal]
566
- * @returns {PageSider}
730
+ * @returns {Promise<T>}
567
731
  */
568
- createSider(inserted?: boolean, signal?: AbortSignal): PageSider;
569
- #private;
570
- }
571
- //#endregion
572
- //#region packages/web/print.d.mts
573
- type Print = Print.Page & Print.Pages;
574
- declare namespace Print {
575
- type MarginBox = {
576
- content?: Print.Context | Print.Context[] | undefined;
577
- /**
578
- * - 字体族
579
- */
580
- fontFamily?: string | undefined;
581
- /**
582
- * - 字体大小
583
- */
584
- fontSize?: string | number | undefined;
585
- bold?: boolean | undefined;
586
- italic?: boolean | undefined;
587
- /**
588
- * - 文字颜色
589
- */
590
- color?: string | undefined;
591
- /**
592
- * - 文本方向
593
- */
594
- direction?: "ltr" | "rtl" | undefined;
595
- /**
596
- * - 行高
597
- */
598
- lineHeight?: string | number | undefined;
599
- /**
600
- * - 层叠顺序
601
- */
602
- zIndex?: number | undefined;
603
- /**
604
- * - 文本对齐
605
- */
606
- textAlign?: "left" | "center" | "right" | "justify" | "start" | "end" | undefined;
607
- /**
608
- * - 垂直对齐
609
- */
610
- verticalAlign?: number | "sub" | "baseline" | "super" | "top" | "text-top" | "middle" | "bottom" | "text-bottom" | undefined;
611
- /**
612
- * - 内边距属性对象
613
- */
614
- padding?: Record<"left" | "right" | "top" | "bottom", string | number> | undefined;
615
- border?: Print.Border | undefined;
616
- };
617
- type Context = string | Print.Newline | Print.Image | Print.Barcode | Print.Counter;
618
- type Newline = {
619
- type: "newline";
620
- };
621
- type Counter = {
622
- type: "page" | "pages";
623
- };
624
- type Image = {
625
- type: "image";
626
- url: string;
627
- alt?: string | undefined;
628
- width?: string | number | undefined;
629
- height?: string | number | undefined;
630
- };
631
- type Barcode = {
632
- type: "barcode" | "code128";
633
- text: string;
634
- width?: string | number | undefined;
635
- height?: string | number | undefined;
636
- };
637
- type Border = {
638
- /**
639
- * - 边框宽度复合属性
640
- */
641
- width?: string | number | undefined;
642
- /**
643
- * - 边框颜色复合属性
644
- */
645
- color?: string | undefined;
646
- /**
647
- * - 边框样式复合属性
648
- */
649
- style?: "dotted" | "dashed" | "solid" | "double" | "groove" | "ridge" | "inset" | "outset" | undefined;
650
- };
651
- type Page = {
652
- /**
653
- * 页面尺寸
654
- */
655
- size?: {
656
- width?: string;
657
- height?: string;
658
- } | "A3" | "B4" | "A4" | "B5" | "A5" | undefined;
659
- /**
660
- * 页面方向
661
- */
662
- orientation?: "portrait" | "landscape" | "auto" | undefined;
663
- /**
664
- * 页边距
665
- */
666
- margin?: string | [string, (string | undefined)?, (string | undefined)?, (string | undefined)?] | undefined;
667
- topLeft?: Print.MarginBox | undefined;
668
- topCenter?: Print.MarginBox | undefined;
669
- topRight?: Print.MarginBox | undefined;
670
- bottomLeft?: Print.MarginBox | undefined;
671
- bottomCenter?: Print.MarginBox | undefined;
672
- bottomRight?: Print.MarginBox | undefined;
673
- leftTop?: Print.MarginBox | undefined;
674
- leftMiddle?: Print.MarginBox | undefined;
675
- leftBottom?: Print.MarginBox | undefined;
676
- rightTop?: Print.MarginBox | undefined;
677
- rightMiddle?: Print.MarginBox | undefined;
678
- rightBottom?: Print.MarginBox | undefined;
679
- topLeftCorner?: Print.MarginBox | undefined;
680
- topRightCorner?: Print.MarginBox | undefined;
681
- bottomLeftCorner?: Print.MarginBox | undefined;
682
- bottomRightCorner?: Print.MarginBox | undefined;
683
- topBorder?: Print.Border | undefined;
684
- bottomBorder?: Print.Border | undefined;
685
- leftBorder?: Print.Border | undefined;
686
- rightBorder?: Print.Border | undefined;
687
- };
688
- type Pages = {
689
- /**
690
- * 左侧页面/节点
691
- */
692
- left?: Print.Page | undefined;
693
- /**
694
- * 右侧页面/节点
695
- */
696
- right?: Print.Page | undefined;
697
- /**
698
- * 首页页面/节点
699
- */
700
- first?: Print.Page | undefined;
701
- /**
702
- * 空白页面/节点
703
- */
704
- blank?: Print.Page | undefined;
705
- };
732
+ createDialog<T>(exec: (dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
733
+ /**
734
+ * @overload
735
+ * @param {AbortSignal} [signal]
736
+ * @returns {HTMLDialogElement}
737
+ */
738
+ createDialog(signal?: AbortSignal | undefined): HTMLDialogElement;
739
+ /**
740
+ * @template T
741
+ * @overload
742
+ * @param {(modal: Modal) => PromiseLike<T> | T} exec
743
+ * @param {AbortSignal} [signal]
744
+ * @returns {Promise<T>}
745
+ */
746
+ createModal<T>(exec: (modal: Modal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
747
+ /**
748
+ * @overload
749
+ * @param {AbortSignal} [signal]
750
+ * @returns {Modal}
751
+ */
752
+ createModal(signal?: AbortSignal | undefined): Modal;
753
+ get container(): HTMLDivElement;
754
+ set unprintable(unprintable: boolean);
755
+ get unprintable(): boolean;
756
+ set panel(panel: boolean);
757
+ get panel(): boolean;
758
+ set title(t: string);
759
+ get title(): string;
760
+ /**
761
+ *
762
+ * @param {(Menu | null)[]} menus
763
+ * @param {Menu?} button
764
+ * @param {Menu.Renderer} [create]
765
+ * @returns
766
+ */
767
+ setMenu(menus: (Menu | null)[], button: Menu | null, create?: Menu.Renderer): void;
768
+ get inserted(): boolean;
769
+ insert(): void;
770
+ remove(): void;
771
+ #private;
706
772
  }
707
773
  //#endregion
708
774
  //#region packages/web/services/page.d.mts
@@ -713,6 +779,7 @@ type PageConfiguration = {
713
779
  organization?: string | undefined;
714
780
  workspace?: string | undefined;
715
781
  page?: string | undefined;
782
+ url?: string | undefined;
716
783
  widget?: string | null | undefined;
717
784
  title?: string | undefined;
718
785
  titlePattern?: string | undefined;
@@ -724,9 +791,7 @@ type PageConfiguration = {
724
791
  }[] | undefined;
725
792
  menuButtons?: Menu.Button[] | undefined;
726
793
  menus?: (Menu | null)[] | undefined;
727
- forms?: Record<string, {
728
- layoutId?: string;
729
- } | null> | undefined;
794
+ forms?: Record<string, PageForm | null> | undefined;
730
795
  where?: Search.AndList | undefined;
731
796
  orWhere?: Search.OrList | undefined;
732
797
  defaultQuery?: string | undefined;
@@ -848,6 +913,157 @@ declare namespace PageIdent {
848
913
  type Parser = (path: string) => PageIdent.Route;
849
914
  }
850
915
  //#endregion
916
+ //#region packages/web/route/PageHeader.d.mts
917
+ declare class PageHeader extends GeneralContext {
918
+ /**
919
+ *
920
+ * @param {HTMLElement} root
921
+ * @param {AbortSignal} [signal]
922
+ * @returns
923
+ */
924
+ constructor(root: HTMLElement, signal?: AbortSignal);
925
+ /**
926
+ * @template T
927
+ * @overload
928
+ * @param {(dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T} exec
929
+ * @param {AbortSignal} [signal]
930
+ * @returns {Promise<T>}
931
+ */
932
+ createDialog<T>(exec: (dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
933
+ /**
934
+ * @overload
935
+ * @param {AbortSignal} [signal]
936
+ * @returns {HTMLDialogElement}
937
+ */
938
+ createDialog(signal?: AbortSignal | undefined): HTMLDialogElement;
939
+ /**
940
+ * @template T
941
+ * @overload
942
+ * @param {(modal: Modal) => PromiseLike<T> | T} exec
943
+ * @param {AbortSignal} [signal]
944
+ * @returns {Promise<T>}
945
+ */
946
+ createModal<T>(exec: (modal: Modal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
947
+ /**
948
+ * @overload
949
+ * @param {AbortSignal} [signal]
950
+ * @returns {Modal}
951
+ */
952
+ createModal(signal?: AbortSignal | undefined): Modal;
953
+ set sticky(sticky: boolean);
954
+ get sticky(): boolean;
955
+ set panel(panel: boolean);
956
+ get panel(): boolean;
957
+ get container(): HTMLDivElement;
958
+ /**
959
+ *
960
+ * @param {*} menus
961
+ * @param {Menu.Renderer} [create]
962
+ * @returns
963
+ */
964
+ setMenu(menus: any, create?: Menu.Renderer): void;
965
+ set unprintable(unprintable: boolean);
966
+ get unprintable(): boolean;
967
+ #private;
968
+ }
969
+ //#endregion
970
+ //#region packages/web/route/PageFooter.d.mts
971
+ declare class PageFooter extends GeneralContext {
972
+ /**
973
+ *
974
+ * @param {HTMLElement} root
975
+ * @param {AbortSignal} [signal]
976
+ * @returns
977
+ */
978
+ constructor(root: HTMLElement, signal?: AbortSignal);
979
+ /**
980
+ * @template T
981
+ * @overload
982
+ * @param {(dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T} exec
983
+ * @param {AbortSignal} [signal]
984
+ * @returns {Promise<T>}
985
+ */
986
+ createDialog<T>(exec: (dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
987
+ /**
988
+ * @overload
989
+ * @param {AbortSignal} [signal]
990
+ * @returns {HTMLDialogElement}
991
+ */
992
+ createDialog(signal?: AbortSignal | undefined): HTMLDialogElement;
993
+ /**
994
+ * @template T
995
+ * @overload
996
+ * @param {(modal: Modal) => PromiseLike<T> | T} exec
997
+ * @param {AbortSignal} [signal]
998
+ * @returns {Promise<T>}
999
+ */
1000
+ createModal<T>(exec: (modal: Modal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
1001
+ /**
1002
+ * @overload
1003
+ * @param {AbortSignal} [signal]
1004
+ * @returns {Modal}
1005
+ */
1006
+ createModal(signal?: AbortSignal | undefined): Modal;
1007
+ set sticky(sticky: boolean);
1008
+ get sticky(): boolean;
1009
+ set panel(panel: boolean);
1010
+ get panel(): boolean;
1011
+ get container(): HTMLDivElement;
1012
+ set unprintable(unprintable: boolean);
1013
+ get unprintable(): boolean;
1014
+ #private;
1015
+ }
1016
+ //#endregion
1017
+ //#region packages/web/route/PageSection.d.mts
1018
+ declare class PageSection extends GeneralContext {
1019
+ /**
1020
+ *
1021
+ * @param {ParentNode} parent
1022
+ * @param {Node?} next
1023
+ * @param {boolean} inserted
1024
+ * @param {AbortSignal} signal
1025
+ * @returns
1026
+ */
1027
+ constructor(parent: ParentNode, next: Node | null, inserted: boolean, signal: AbortSignal);
1028
+ /**
1029
+ * @template T
1030
+ * @overload
1031
+ * @param {(dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T} exec
1032
+ * @param {AbortSignal} [signal]
1033
+ * @returns {Promise<T>}
1034
+ */
1035
+ createDialog<T>(exec: (dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
1036
+ /**
1037
+ * @overload
1038
+ * @param {AbortSignal} [signal]
1039
+ * @returns {HTMLDialogElement}
1040
+ */
1041
+ createDialog(signal?: AbortSignal | undefined): HTMLDialogElement;
1042
+ /**
1043
+ * @template T
1044
+ * @overload
1045
+ * @param {(modal: Modal) => PromiseLike<T> | T} exec
1046
+ * @param {AbortSignal} [signal]
1047
+ * @returns {Promise<T>}
1048
+ */
1049
+ createModal<T>(exec: (modal: Modal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
1050
+ /**
1051
+ * @overload
1052
+ * @param {AbortSignal} [signal]
1053
+ * @returns {Modal}
1054
+ */
1055
+ createModal(signal?: AbortSignal | undefined): Modal;
1056
+ get container(): HTMLDivElement;
1057
+ set unprintable(unprintable: boolean);
1058
+ get unprintable(): boolean;
1059
+ set panel(panel: boolean);
1060
+ get panel(): boolean;
1061
+ get inserted(): boolean;
1062
+ insert(): void;
1063
+ remove(): void;
1064
+ #private;
1065
+ }
1066
+ //#endregion
851
1067
  //#region packages/web/services/model.d.mts
852
1068
  /**
853
1069
  *
@@ -1181,6 +1397,87 @@ declare function getPages(): PageHandle[];
1181
1397
  */
1182
1398
  type PageManager = (page: PageHandle) => void;
1183
1399
  //#endregion
1400
+ //#region packages/web/route/Page.d.mts
1401
+ declare class Page {
1402
+ /**
1403
+ *
1404
+ * @param {boolean} show
1405
+ */
1406
+ constructor(show: boolean);
1407
+ /**
1408
+ * @template T
1409
+ * @overload
1410
+ * @param {(dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T} exec
1411
+ * @param {AbortSignal} [signal]
1412
+ * @returns {Promise<T>}
1413
+ */
1414
+ createDialog<T>(exec: (dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
1415
+ /**
1416
+ * @overload
1417
+ * @param {AbortSignal} [signal]
1418
+ * @returns {HTMLDialogElement}
1419
+ */
1420
+ createDialog(signal?: AbortSignal | undefined): HTMLDialogElement;
1421
+ /**
1422
+ * @template T
1423
+ * @overload
1424
+ * @param {(modal: Modal) => PromiseLike<T> | T} exec
1425
+ * @param {AbortSignal} [signal]
1426
+ * @returns {Promise<T>}
1427
+ */
1428
+ createModal<T>(exec: (modal: Modal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
1429
+ /**
1430
+ * @overload
1431
+ * @param {AbortSignal} [signal]
1432
+ * @returns {Modal}
1433
+ */
1434
+ createModal(signal?: AbortSignal | undefined): Modal;
1435
+ get destroyed(): boolean;
1436
+ get container(): HTMLDivElement;
1437
+ set mode(mode: "scroll" | "flex");
1438
+ get mode(): "scroll" | "flex";
1439
+ set panel(panel: boolean);
1440
+ get panel(): boolean;
1441
+ get show(): boolean;
1442
+ /**
1443
+ *
1444
+ * @param {boolean} show
1445
+ */
1446
+ toggle(show: boolean): void;
1447
+ destroy(): boolean;
1448
+ /**
1449
+ *
1450
+ * @param {AbortSignal} [signal]
1451
+ * @returns
1452
+ */
1453
+ createHeader(signal?: AbortSignal): PageHeader;
1454
+ /**
1455
+ *
1456
+ * @param {AbortSignal} [signal]
1457
+ * @returns
1458
+ */
1459
+ createFooter(signal?: AbortSignal): PageFooter;
1460
+ /**
1461
+ *
1462
+ * @param {'start' | 'end' | 'before' | 'after'} position
1463
+ * @param {boolean} [inserted]
1464
+ * @param {AbortSignal} [signal]
1465
+ * @returns {PageSection}
1466
+ */
1467
+ createSection(position: "start" | "end" | "before" | "after", inserted?: boolean, signal?: AbortSignal): PageSection;
1468
+ get signal(): AbortSignal;
1469
+ set siderOpen(open: boolean);
1470
+ get siderOpen(): boolean;
1471
+ /**
1472
+ *
1473
+ * @param {boolean} [inserted]
1474
+ * @param {AbortSignal} [signal]
1475
+ * @returns {PageSider}
1476
+ */
1477
+ createSider(inserted?: boolean, signal?: AbortSignal): PageSider;
1478
+ #private;
1479
+ }
1480
+ //#endregion
1184
1481
  //#region packages/web/user.d.mts
1185
1482
  /**
1186
1483
  * 用户类型定义
@@ -1215,7 +1512,7 @@ declare namespace User {
1215
1512
  /** @param {string} permission @param {string} [organization] */
1216
1513
  function hasOrganizationPermission(permission: string, organization?: string): boolean;
1217
1514
  const permissions: Permissions;
1218
- const organizationPermissions: Record<string, Permissions>;
1515
+ const organizationPermissions: Record<string, Permissions | undefined>;
1219
1516
  const allOrganizationPermissions: Permissions;
1220
1517
  const waitLogin: boolean;
1221
1518
  /**
@@ -1631,6 +1928,7 @@ interface Theme {
1631
1928
  /** 添加到根节点上的类名 */
1632
1929
  rootClassName: string;
1633
1930
  createPage(show: boolean): Page;
1931
+ createFrame(ctx: PageFrame.Context): PageFrame;
1634
1932
  renderError(ctx: PageContext, error: unknown): void;
1635
1933
  components: Record<string, any>;
1636
1934
  setup(signal: AbortSignal): void;
@@ -1639,8 +1937,22 @@ interface ModelIndicator {
1639
1937
  fields?: string[];
1640
1938
  get: (doc: object) => Indicator;
1641
1939
  }
1940
+ interface PageFrame {
1941
+ toggle(show: boolean): void;
1942
+ destroy(): void;
1943
+ }
1944
+ declare namespace PageFrame {
1945
+ interface Context {
1946
+ url: string;
1947
+ show: boolean;
1948
+ title: string;
1949
+ icon: string;
1950
+ loading: boolean;
1951
+ }
1952
+ }
1642
1953
  //#endregion
1643
1954
  //#region packages/web/route/PageContext.d.mts
1955
+ /** @import { Modal } from '../dom/index.mjs' */
1644
1956
  declare class PageContext extends GeneralContext {
1645
1957
  /**
1646
1958
  *
@@ -1678,6 +1990,34 @@ declare class PageContext extends GeneralContext {
1678
1990
  get panel(): boolean;
1679
1991
  set mode(mode: "scroll" | "flex");
1680
1992
  get mode(): "scroll" | "flex";
1993
+ /**
1994
+ * @template T
1995
+ * @overload
1996
+ * @param {(dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T} exec
1997
+ * @param {AbortSignal} [signal]
1998
+ * @returns {Promise<T>}
1999
+ */
2000
+ createDialog<T>(exec: (dialog: HTMLDialogElement, signal: AbortSignal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
2001
+ /**
2002
+ * @overload
2003
+ * @param {AbortSignal} [signal]
2004
+ * @returns {HTMLDialogElement}
2005
+ */
2006
+ createDialog(signal?: AbortSignal | undefined): HTMLDialogElement;
2007
+ /**
2008
+ * @template T
2009
+ * @overload
2010
+ * @param {(modal: Modal) => PromiseLike<T> | T} exec
2011
+ * @param {AbortSignal} [signal]
2012
+ * @returns {Promise<T>}
2013
+ */
2014
+ createModal<T>(exec: (modal: Modal) => PromiseLike<T> | T, signal?: AbortSignal | undefined): Promise<T>;
2015
+ /**
2016
+ * @overload
2017
+ * @param {AbortSignal} [signal]
2018
+ * @returns {Modal}
2019
+ */
2020
+ createModal(signal?: AbortSignal | undefined): Modal;
1681
2021
  /**
1682
2022
  *
1683
2023
  * @param {AbortSignal} [signal]
@@ -1771,6 +2111,9 @@ type PageError = {
1771
2111
  description?: string | undefined;
1772
2112
  };
1773
2113
  //#endregion
2114
+ //#region packages/web/route/createPage.d.mts
2115
+ declare function createFrame(ctx: PageFrame.Context): PageFrame;
2116
+ //#endregion
1774
2117
  //#region packages/web/route/index.d.mts
1775
2118
  type PageRenderer = (ctx: PageContext) => MaybePromise<void>;
1776
2119
  //#endregion
@@ -2070,41 +2413,11 @@ declare function enumerationsService(enumeration: string): {
2070
2413
  * @returns
2071
2414
  */
2072
2415
  declare function formLayoutsService(layout: string): {
2073
- then<TResult1 = {
2074
- layout: any;
2075
- type?: string;
2076
- enableLink?: boolean;
2077
- enableLinkEditable?: boolean;
2078
- } | null, TResult2 = never>(onfulfilled?: ((value: {
2079
- layout: any;
2080
- type?: string;
2081
- enableLink?: boolean;
2082
- enableLinkEditable?: boolean;
2083
- } | null) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
2084
- catch<TResult2 = never>(onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<{
2085
- layout: any;
2086
- type?: string;
2087
- enableLink?: boolean;
2088
- enableLinkEditable?: boolean;
2089
- } | TResult2 | null>;
2090
- finally(onfinally?: (() => void) | null | undefined): Promise<{
2091
- layout: any;
2092
- type?: string;
2093
- enableLink?: boolean;
2094
- enableLinkEditable?: boolean;
2095
- } | null>;
2096
- load: (force?: boolean) => Promise<{
2097
- layout: any;
2098
- type?: string;
2099
- enableLink?: boolean;
2100
- enableLinkEditable?: boolean;
2101
- } | null>;
2102
- get: () => {
2103
- layout: any;
2104
- type?: string;
2105
- enableLink?: boolean;
2106
- enableLinkEditable?: boolean;
2107
- } | null;
2416
+ then<TResult1 = FormLayout | null, TResult2 = never>(onfulfilled?: ((value: FormLayout | null) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<TResult1 | TResult2>;
2417
+ catch<TResult2 = never>(onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined): Promise<FormLayout | TResult2 | null>;
2418
+ finally(onfinally?: (() => void) | null | undefined): Promise<FormLayout | null>;
2419
+ load: (force?: boolean) => Promise<FormLayout | null>;
2420
+ get: () => FormLayout | null;
2108
2421
  };
2109
2422
  //#endregion
2110
2423
  //#region packages/web/services/permissions.d.mts
@@ -2187,7 +2500,23 @@ declare namespace pathRoots {
2187
2500
  let file: string;
2188
2501
  }
2189
2502
  //#endregion
2190
- //#region packages/web/model.d.mts
2503
+ //#region packages/web/model/createModelDefault.d.mts
2504
+ declare function createModelDefault(model: ModelScriptConfiguration | ModelConfiguration, params: Record<string, any> | [key: string, value: any][], defaultValue?: Record<string, any>): any;
2505
+ //#endregion
2506
+ //#region packages/web/model/createDocumentInModal.d.mts
2507
+ /** @import { Modal } from '../dom/index.mjs' */
2508
+ /** @import { ModelScriptConfiguration, modelService } from '../services/model.mjs' */
2509
+ /**
2510
+ *
2511
+ * @param {Modal} modal
2512
+ * @param {ModelScriptConfiguration} model
2513
+ * @param {ReturnType<typeof modelService>} currentModel
2514
+ * @param {FormLayout?} [layout]
2515
+ * @param {Record<string, any> | [key: string, value: any][] | null} [newParams]
2516
+ */
2517
+ declare function createDocumentInModal(modal: Modal, model: ModelScriptConfiguration, currentModel: ReturnType<typeof modelService>, layout?: FormLayout | null, newParams?: Record<string, any> | [key: string, value: any][] | null): Promise<any>;
2518
+ //#endregion
2519
+ //#region packages/web/model/index.d.mts
2191
2520
  /**
2192
2521
  *
2193
2522
  * @param {ModelConfiguration | ModelScriptConfiguration} model
@@ -2250,6 +2579,39 @@ declare const neverAbortedSignal: AbortSignal;
2250
2579
  //#endregion
2251
2580
  //#region packages/web/permission.d.mts
2252
2581
  /** @import { FieldScriptConfiguration, ModelConfiguration, ModelScriptConfiguration } from './types.mjs' */
2582
+ /**
2583
+ *
2584
+ * @param {string | string[] | null | void} permission
2585
+ */
2586
+ declare function flatPermission(permission: string | string[] | null | void): string[];
2587
+ /**
2588
+ *
2589
+ * @param {object} [options]
2590
+ * @param {{has(permission: string): boolean}} [options.permissions]
2591
+ * @param {{has(permission: string): boolean}} [options.allOrganizationPermissions]
2592
+ * @param {Record<string, {has(permission: string): boolean} | null | undefined>} [options.organizationPermissions]
2593
+ * @param {{has(authorization: string): boolean}?} [options.authorizations]
2594
+ * @returns {(p: string) => boolean}
2595
+ */
2596
+ declare function toPermissionFilter({
2597
+ permissions,
2598
+ organizationPermissions,
2599
+ allOrganizationPermissions,
2600
+ authorizations
2601
+ }?: {
2602
+ permissions?: {
2603
+ has(permission: string): boolean;
2604
+ } | undefined;
2605
+ allOrganizationPermissions?: {
2606
+ has(permission: string): boolean;
2607
+ } | undefined;
2608
+ organizationPermissions?: Record<string, {
2609
+ has(permission: string): boolean;
2610
+ } | null | undefined> | undefined;
2611
+ authorizations?: {
2612
+ has(authorization: string): boolean;
2613
+ } | null | undefined;
2614
+ }): (p: string) => boolean;
2253
2615
  /**
2254
2616
  *
2255
2617
  * @param {string | string[] | null | void} permission
@@ -2502,14 +2864,6 @@ declare namespace application {
2502
2864
  }
2503
2865
  declare function refresh(): Promise<void>;
2504
2866
  //#endregion
2505
- //#region packages/web/dom.d.mts
2506
- /**
2507
- *
2508
- * @param {string?} icon
2509
- */
2510
- declare function setIcon(icon: string | null): void;
2511
- declare const root$1: HTMLDivElement;
2512
- //#endregion
2513
2867
  //#region packages/web/form/List.d.mts
2514
2868
  declare class List$1 {
2515
2869
  /**
@@ -2562,4 +2916,4 @@ declare function updateHooks(hooks: Record<string, Hook.Define<Hooks>>): void;
2562
2916
  /** @type {Hook<Hooks>} */
2563
2917
  declare const allHooks: Hook<Hooks>;
2564
2918
  //#endregion
2565
- export { ArrayStore, Authenticator, BindObjectStore, code128_d_exports as Code128, Command, ConfiguratorComponent, ConfiguratorContext, type ContinuationDefine, CurrentPage, type DataSource, DotRequest, FieldComponent, FieldComponentEvent, FieldComponents, FieldContext, FieldDefine, FieldFilter, FieldFilterComponent, FieldFilterContext, FieldFilterFns, FieldFilterOptions, FieldFilterStyle, type FieldScript, type FieldScriptConfiguration, FieldShowHandle, FieldStyle, FilterFns, FormFieldHook, FromRenderer, GeneralContext, type HomeContext, Hooks, IconDefine, Ident_d_exports as Ident, List, type Match, Menu, type ModelConfiguration, ModelIndicator, type ModelScript, type ModelScriptConfiguration, ObjectStore, Page, type PageConfiguration, type PageContext, type PageError, PageFooter, type PageHandle, PageHeader, PageIdent, type PageManager, type PageRenderer, PageSection, PageSectionParam, PageSider, Pagination, type Print, ResponseError, type Schema, Signal$1 as Signal, State, Store, type StoreLayout, SubmodelsLayoutEvent, Theme, User, UserHook, VerifyContext, VerifyError, type WorkspaceDefine, addManager, allHooks, application, buildDataSource, buildPlugin, createComputed, createDeeply, createFilters, createIcon, createQuickFilters, createShowField, createState, createStore, createStoreField, createTick, effect, enumerationsService, execScript, filterPermission, formLayoutsService, getAllFilterFns, getAuthorizations, getField, getFieldFilter, getFieldFilterOperators, getFilterFns, getPages, getPermissionFields, getPrimaryFields, hasField, hasFieldFilter, importStyle, importWidget, isPluginId, loadMenu, modelService, neverAbortedSignal, pathRoots, _default as permissionsService, plugins, _default$1 as renderForm, renderStore, _default$2 as renderStoreForm, request, root$1 as root, selectFile, setIcon, showFilterDialog, start, testPermission, testPermissionConstraints, testPermissions, toFileLink, toFileURL, toId, toSchema, toUrl, updateHooks, waitAbortSignal, watch };
2919
+ export { ArrayStore, Authenticator, BindObjectStore, code128_d_exports as Code128, Command, ConfiguratorComponent, ConfiguratorContext, type ContinuationDefine, CurrentPage, type DataSource, DotRequest, FieldComponent, FieldComponentEvent, FieldComponents, FieldContext, FieldDefine, FieldFilter, FieldFilterComponent, FieldFilterContext, FieldFilterFns, FieldFilterOptions, FieldFilterStyle, type FieldScript, type FieldScriptConfiguration, FieldShowHandle, FieldStyle, FilterFns, FormFieldHook, FromRenderer, GeneralContext, type HomeContext, Hooks, IconDefine, Ident_d_exports as Ident, List, type Match, Menu, Modal, ModalFooter, ModalHeader, type ModelConfiguration, ModelIndicator, type ModelScript, type ModelScriptConfiguration, ObjectStore, Page, type PageConfiguration, type PageContext, type PageError, PageFooter, PageFrame, type PageHandle, PageHeader, PageIdent, type PageManager, type PageRenderer, PageSection, PageSectionParam, PageSider, Pagination, type Print, ResponseError, type Schema, Signal$1 as Signal, State, Store, type StoreLayout, SubmodelsLayoutEvent, Theme, User, UserHook, VerifyContext, VerifyError, type WorkspaceDefine, addManager, allHooks, application, buildDataSource, buildPlugin, createComputed, createDeeply, createDialog, createDocumentInModal, createFilters, createFrame, createIcon, createModal, createModelDefault, createQuickFilters, createShowField, createState, createStore, createStoreField, createTick, effect, enumerationsService, execScript, filterPermission, flatPermission, formLayoutsService, getAllFilterFns, getAuthorizations, getField, getFieldFilter, getFieldFilterOperators, getFilterFns, getPages, getPermissionFields, getPrimaryFields, hasField, hasFieldFilter, importStyle, importWidget, isMac, isPluginId, loadMenu, modelService, neverAbortedSignal, pathRoots, _default as permissionsService, plugins, _default$1 as renderForm, renderStore, _default$2 as renderStoreForm, request, root$1 as root, selectFile, setIcon, showFilterDialog, start, testPermission, testPermissionConstraints, testPermissions, toFileLink, toFileURL, toId, toPermissionFilter, toSchema, toUrl, updateHooks, waitAbortSignal, watch };