@acorex/platform 20.3.0-next.12 → 20.3.0-next.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/common/index.d.ts +399 -368
  2. package/core/index.d.ts +3 -2
  3. package/fesm2022/acorex-platform-auth.mjs +19 -19
  4. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-common.mjs +114 -162
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +45 -44
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +16 -16
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +1231 -2418
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components.mjs +1317 -254
  14. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-designer.mjs +81 -81
  16. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs → acorex-platform-layout-entity-create-entity.command-CuueLekJ.mjs} +4 -4
  18. package/fesm2022/{acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs.map → acorex-platform-layout-entity-create-entity.command-CuueLekJ.mjs.map} +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +473 -183
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +21 -21
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +2667 -0
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -0
  25. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs → acorex-platform-layout-widgets-button-widget-designer.component-C82aG5Rf.mjs} +5 -5
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C82aG5Rf.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CMmz70I8.mjs} +5 -5
  28. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CMmz70I8.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-DDOyf7NG.mjs} +5 -5
  30. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-DDOyf7NG.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-flsveRJc.mjs} +5 -5
  32. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-flsveRJc.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-CFXLM9Ls.mjs} +5 -5
  34. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-CFXLM9Ls.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs → acorex-platform-layout-widgets-extra-properties-widget-edit.component-1Wd5IUpo.mjs} +5 -5
  36. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-1Wd5IUpo.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs → acorex-platform-layout-widgets-extra-properties-widget-view.component-WLyXXg19.mjs} +5 -5
  38. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-WLyXXg19.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs → acorex-platform-layout-widgets-file-list-popup.component-DxTXIO_k.mjs} +8 -8
  40. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-DxTXIO_k.mjs.map +1 -0
  41. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs → acorex-platform-layout-widgets-page-widget-designer.component-44YSAqDc.mjs} +7 -7
  42. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-44YSAqDc.mjs.map +1 -0
  43. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Dat0cqWe.mjs} +8 -8
  44. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Dat0cqWe.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-CtJBzqq_.mjs} +4 -4
  46. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-CtJBzqq_.mjs.map +1 -0
  47. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Djpj1fNO.mjs} +5 -5
  48. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Djpj1fNO.mjs.map +1 -0
  49. package/fesm2022/{acorex-platform-widgets.mjs → acorex-platform-layout-widgets.mjs} +987 -616
  50. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-native.mjs +7 -7
  52. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  53. package/fesm2022/acorex-platform-runtime.mjs +40 -40
  54. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  55. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-oOA674Jd.mjs +115 -0
  56. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-oOA674Jd.mjs.map +1 -0
  57. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs → acorex-platform-themes-default-entity-master-list-view.component-Bk4p9oHD.mjs} +15 -15
  58. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-Bk4p9oHD.mjs.map} +1 -1
  59. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CrDQOCpB.mjs +101 -0
  60. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CrDQOCpB.mjs.map +1 -0
  61. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs → acorex-platform-themes-default-entity-master-single-view.component-CT-1gX4H.mjs} +17 -17
  62. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CT-1gX4H.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs → acorex-platform-themes-default-error-401.component-CHJFmJ2W.mjs} +4 -4
  64. package/fesm2022/{acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs.map → acorex-platform-themes-default-error-401.component-CHJFmJ2W.mjs.map} +1 -1
  65. package/fesm2022/{acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs → acorex-platform-themes-default-error-404.component-Db8KkVIF.mjs} +4 -4
  66. package/fesm2022/{acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs.map → acorex-platform-themes-default-error-404.component-Db8KkVIF.mjs.map} +1 -1
  67. package/fesm2022/{acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs → acorex-platform-themes-default-error-offline.component-DH39Viy-.mjs} +4 -4
  68. package/fesm2022/{acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs.map → acorex-platform-themes-default-error-offline.component-DH39Viy-.mjs.map} +1 -1
  69. package/fesm2022/acorex-platform-themes-default.mjs +44 -44
  70. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  71. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs → acorex-platform-themes-shared-icon-chooser-view.component-mFBYGE0_.mjs} +5 -5
  72. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-mFBYGE0_.mjs.map +1 -0
  73. package/fesm2022/{acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs → acorex-platform-themes-shared-settings.provider-DY2xFnrv.mjs} +8 -8
  74. package/fesm2022/acorex-platform-themes-shared-settings.provider-DY2xFnrv.mjs.map +1 -0
  75. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-viyyova6.mjs} +5 -5
  76. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-viyyova6.mjs.map +1 -0
  77. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BrUtKTXd.mjs} +5 -5
  78. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BrUtKTXd.mjs.map +1 -0
  79. package/fesm2022/acorex-platform-themes-shared.mjs +66 -55
  80. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  81. package/fesm2022/acorex-platform-workflow.mjs +27 -39
  82. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  83. package/layout/builder/README.md +2 -3
  84. package/layout/builder/index.d.ts +456 -879
  85. package/layout/components/index.d.ts +261 -81
  86. package/layout/designer/index.d.ts +4 -4
  87. package/layout/entity/index.d.ts +551 -13
  88. package/layout/views/index.d.ts +13 -13
  89. package/layout/widget-core/README.md +4 -0
  90. package/layout/widget-core/index.d.ts +950 -0
  91. package/layout/widgets/README.md +4 -0
  92. package/{widgets → layout/widgets}/index.d.ts +95 -61
  93. package/package.json +9 -5
  94. package/themes/shared/index.d.ts +2 -2
  95. package/workflow/index.d.ts +3 -173
  96. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs +0 -115
  97. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs +0 -101
  99. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-widgets.mjs.map +0 -1
  118. package/widgets/README.md +0 -4
@@ -1,908 +1,485 @@
1
- import * as _angular_core from '@angular/core';
2
- import { Signal, InjectionToken, ComponentRef, OnInit, EventEmitter, TemplateRef, Injector, WritableSignal, SimpleChanges, ModuleWithProviders } from '@angular/core';
3
- import * as _acorex_platform_core from '@acorex/platform/core';
4
- import { AXPDataType, AXPOptionsData, AXPValidationRules, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPPartialNested, AXPExpressionEvaluatorService } from '@acorex/platform/core';
5
- import * as _ngrx_signals from '@ngrx/signals';
6
- import * as _acorex_platform_layout_builder from '@acorex/platform/layout/builder';
7
- import { AXValueChangedEvent, AXDataSource } from '@acorex/cdk/common';
8
- import { Subject, BehaviorSubject } from 'rxjs';
9
- import { AXDataTableColumnComponent } from '@acorex/components/data-table';
10
- import * as i7 from '@acorex/core/translation';
11
- import { AXTranslationService } from '@acorex/core/translation';
12
- import { AXUnsubscriber } from '@acorex/core/utils';
13
- import * as i4 from '@angular/common';
14
- import * as i5 from '@angular/cdk/portal';
15
- import * as i6 from '@acorex/components/skeleton';
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { AXPWidgetRenderMode, AXPWidgetNode } from '@acorex/platform/layout/widget-core';
5
+ import { AXPGridLayoutOptions } from '@acorex/platform/core';
16
6
 
17
- declare enum AXPPageStatus {
18
- Idle = "idle",// The page is idle.
19
- Rendering = "rendering",// The page is being rendered.
20
- Rendered = "rendered",// The rendering process is complete. should be renamed to idle
21
- Processing = "processing",// The page is performing a task or interaction.
22
- Submitting = "submitting",// The form is being submitted.
23
- Submitted = "submitted",// Submission is completed.
24
- Validating = "validating",// The form is being validated.
25
- Validated = "validated",// Validation is completed.
26
- Error = "error"
27
- }
28
- declare enum AXPWidgetStatus {
29
- Rendering = "rendering",// The widget is being rendered.
30
- Rendered = "rendered",// The rendering process is complete.
31
- Processing = "processing",// The widget is performing a task or interaction.
32
- Error = "error"
33
- }
34
-
35
- type AXPLayoutElementAPI = {
36
- [name: string]: Subject<any> | Function;
37
- };
38
- declare abstract class AXPLayoutElement {
39
- abstract get id(): string | null;
40
- abstract get status(): Signal<AXPWidgetStatus>;
41
- api(): AXPLayoutElementAPI;
42
- }
43
- declare class AXPLayoutBuilderService {
44
- private readonly variables$;
45
- private readonly functions$;
46
- readonly onRefresh: Subject<void>;
47
- private widgets;
48
- private readonly onWidgetRegistered;
49
- private readonly status$;
50
- readonly status: Signal<AXPPageStatus>;
51
- readonly isBusy: Signal<boolean>;
52
- get variables(): any;
53
- get functions(): {
54
- [key: string]: Function;
7
+ type AXPLayoutMode = AXPWidgetRenderMode;
8
+ type AXPLayoutDirection = 'horizontal' | 'vertical';
9
+ type AXPLayoutLook = 'normal' | 'borderless' | 'outlined';
10
+ interface TextBoxOptions {
11
+ placeholder?: string;
12
+ maxLength?: number;
13
+ minLength?: number;
14
+ prefix?: string;
15
+ suffix?: string;
16
+ clearButton?: boolean;
17
+ }
18
+ interface NumberBoxOptions {
19
+ min?: number;
20
+ max?: number;
21
+ step?: number;
22
+ placeholder?: string;
23
+ format?: string;
24
+ }
25
+ interface SelectBoxOptions {
26
+ items: any[] | (() => any[]) | (() => Promise<any[]>);
27
+ valueField?: string;
28
+ textField?: string;
29
+ placeholder?: string;
30
+ multiple?: boolean;
31
+ searchable?: boolean;
32
+ clearButton?: boolean;
33
+ }
34
+ interface DateTimeBoxOptions {
35
+ type?: 'date' | 'time' | 'datetime';
36
+ format?: string;
37
+ min?: Date | string;
38
+ max?: Date | string;
39
+ placeholder?: string;
40
+ clearButton?: boolean;
41
+ }
42
+ interface ToggleSwitchOptions {
43
+ label?: string;
44
+ trueText?: string;
45
+ falseText?: string;
46
+ }
47
+ interface LargeTextBoxOptions {
48
+ rows?: number;
49
+ maxLength?: number;
50
+ minLength?: number;
51
+ placeholder?: string;
52
+ resizable?: boolean;
53
+ }
54
+ interface ColorBoxOptions {
55
+ format?: 'hex' | 'rgb' | 'hsl';
56
+ showAlpha?: boolean;
57
+ showPalette?: boolean;
58
+ }
59
+ interface AXPFlexContainerOptions {
60
+ flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
61
+ flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
62
+ justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
63
+ alignItems?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';
64
+ gap?: string;
65
+ spacing?: {
66
+ padding?: string;
67
+ margin?: string;
55
68
  };
56
- updateStatus(): void;
57
- private detectStatus;
58
- refresh(): void;
59
- setStatus(status: AXPPageStatus): void;
60
- setVariables(keysValues: any): void;
61
- setVariables(key: string, value: any): void;
62
- setFunctions(keysValues: any): void;
63
- setFunctions(key: string, value: any): void;
64
- registerWidget(id: string, widget: AXPLayoutElement): void;
65
- getWidget(id: string): AXPLayoutElement | undefined;
66
- /**
67
- * Waits until a widget with the given id is registered, then resolves with it.
68
- * If the widget is already registered, resolves immediately.
69
- * Optionally accepts a timeout (in ms) after which it resolves with undefined.
70
- */
71
- waitForWidget(id: string, timeoutMs?: number): Promise<AXPLayoutElement | undefined>;
72
- ngOnDestroy(): void;
73
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutBuilderService, never>;
74
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLayoutBuilderService>;
75
- }
76
-
77
- interface AXPWidgetCategory {
78
- name: string;
79
- title: string;
80
- order: number;
81
- }
82
- declare const AXP_WIDGETS_LAYOUT_CATEGORY: AXPWidgetCategory;
83
- declare const AXP_WIDGETS_EDITOR_CATEGORY: AXPWidgetCategory;
84
- declare const AXP_WIDGETS_ACTION_CATEGORY: AXPWidgetCategory;
85
- declare const AXP_WIDGETS_ADVANCE_CATEGORY: AXPWidgetCategory;
86
- declare const AXP_WIDGETS_CATEGORIES: AXPWidgetCategory[];
87
-
88
- type AXPWidgetGroup = 'form-element' | 'dashboard-widget' | 'form-template' | 'property-editor' | 'meta-data' | 'setting-widget' | 'entity-widget';
89
- declare enum AXPWidgetGroupEnum {
90
- FormElement = "form-element",
91
- DashboardWidget = "dashboard-widget",
92
- FormTemplate = "form-template",
93
- PropertyEditor = "property-editor",
94
- MetaData = "meta-data",
95
- SettingWidget = "setting-widget",
96
- EntityWidget = "entity-widget"
97
- }
98
-
99
- interface AXPWidgetTypesMap {
100
- timeDuration: 'time-duration';
101
- checkbox: 'checkbox-editor';
102
- color: 'color-editor';
103
- contact: 'contact-editor';
104
- dateTime: 'date-time-editor';
105
- largeText: 'large-text-editor';
106
- number: 'number-editor';
107
- numberUnit: 'number-unit-editor';
108
- password: 'password-editor';
109
- richText: 'rich-text-editor';
110
- select: 'select-editor';
111
- selectionList: 'selection-list-editor';
112
- text: 'text-editor';
113
- table: 'table-editor';
114
- toggle: 'toggle-editor';
115
- blockLayout: 'block-layout';
116
- pageLayout: 'page-layout';
117
- repeaterLayout: 'repeater-layout';
118
- textBlockLayout: 'text-block-layout';
119
- fileUploader: 'file-uploader';
120
- fileTypeExtension: 'file-type-extension';
121
- map: 'map';
122
- imageMarker: 'image-marker';
123
- image: 'image';
124
- gallery: 'gallery';
125
- signature: 'signature';
126
- buttonAction: 'button-action';
127
- document: 'document-layout';
128
- lookup: 'lookup-editor';
129
- formField: 'form-field';
130
- advancedGrid: 'advanced-grid-layout';
131
- advancedGridItem: 'advanced-grid-item-layout';
132
- grid: 'grid-layout';
133
- gridItem: 'grid-item-layout';
134
- qrcode: 'qrcode';
135
- widgetSelector: 'widget-selector';
136
- template: 'template';
137
- templateDesigner: 'template-designer';
138
- cronJob: 'cron-job';
139
- spacing: 'spacing';
140
- border: 'border';
141
- direction: 'direction';
142
- flexLayout: 'flex-layout';
143
- flexItem: 'flex-item-layout';
144
- tableLayout: 'table-layout';
145
- tableItem: 'table-item-layout';
146
- avatar: 'avatar';
147
- stringFilter: 'string-filter';
148
- numberFilter: 'number-filter';
149
- dateTimeFilter: 'datetime-filter';
150
- booleanFilter: 'boolean-filter';
151
- lookupFilter: 'lookup-filter';
152
- flexOptions: 'flex-options';
153
- flexItemOptions: 'flex-item-options';
154
- gridOptions: 'grid-options';
155
- gridItemOptions: 'grid-item-options';
156
- advancedGridOptions: 'advanced-grid-options';
157
- selectFilter: 'select-filter';
158
- requiredValidation: 'required-validation';
159
- regularExpressionValidation: 'regular-expression-validation';
160
- minLengthValidation: 'min-length-validation';
161
- maxLengthValidation: 'max-length-validation';
162
- lessThanValidation: 'less-than-validation';
163
- greaterThanValidation: 'greater-than-validation';
164
- betweenValidation: 'between-validation';
165
- equalValidation: 'equal-validation';
166
- callbackValidation: 'callback-validation';
167
- donutChart: 'donut-chart';
168
- barChart: 'bar-chart';
169
- lineChart: 'line-chart';
170
- gaugeChart: 'gauge-chart';
171
- stickyNote: 'sticky-note';
172
- clockCalendar: 'clock-calendar';
173
- analogClock: 'analog-clock';
174
- weather: 'weather';
175
- minimalWeather: 'minimal-weather';
176
- advancedWeather: 'advanced-weather';
177
- metaData: 'meta-data-editor';
178
- tagable: 'tagable-editor';
179
- templateEditor: 'template-box-editor';
180
- themePaletteChooser: 'theme-palette-chooser';
181
- themeModeChooser: 'theme-mode-chooser';
182
- menuOrientationChooser: 'menu-orientation-chooser';
183
- fontStyleChooser: 'font-style-chooser';
184
- fontSizeChooser: 'font-size-chooser';
185
- iconChooser: 'icon-chooser';
186
- themeColorChooser: 'theme-color-chooser';
187
- panel: 'panel';
188
- notification: 'notification';
189
- taskBoard: 'task-board';
190
- comment: 'comment';
191
- list: 'list';
192
- listToolbar: 'list-toolbar';
193
- entityList: 'entity-list';
194
- documentUploader: 'document-uploader';
195
- }
196
-
197
- interface AXPWidgetPropertyGroup {
198
- name: string;
199
- title: string;
200
- order: number;
201
- }
202
- interface AXPWidgetProperty {
203
- name: string;
204
- title: string;
205
- description?: string;
206
- group: AXPWidgetPropertyGroup;
207
- order?: number;
208
- schema: {
209
- dataType: AXPDataType;
210
- nullable?: boolean;
211
- defaultValue?: any | string | ((context: any | null) => any);
212
- interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;
69
+ border?: {
70
+ radius?: string;
71
+ width?: string;
72
+ color?: string;
73
+ style?: string;
213
74
  };
214
- options?: AXPOptionsData;
215
- validations?: AXPValidationRules;
216
- visible: boolean;
217
- }
218
- declare function cloneProperty(property: AXPWidgetProperty, values: AXPPartialNested<AXPWidgetProperty>): AXPWidgetProperty;
219
- declare function createStringProperty(ctor: {
220
- defaultValue?: string;
221
- name: string;
222
- title: string;
223
- path?: string;
224
- group: AXPWidgetPropertyGroup;
225
- visible?: boolean;
226
- }): AXPWidgetProperty;
227
- declare function createNumberProperty(ctor: {
228
- defaultValue?: number;
229
- name: string;
230
- title: string;
231
- path?: string;
232
- group: AXPWidgetPropertyGroup;
233
- visible?: boolean;
234
- options?: {
235
- minValue?: number;
236
- maxValue?: number;
237
- decimals?: number;
75
+ backgroundColor?: string;
76
+ direction?: string;
77
+ overflow?: string;
78
+ overflowX?: string;
79
+ overflowY?: string;
80
+ width?: string;
81
+ minWidth?: string;
82
+ maxWidth?: string;
83
+ height?: string;
84
+ minHeight?: string;
85
+ maxHeight?: string;
86
+ }
87
+ interface AXPGridContainerOptions {
88
+ grid?: {
89
+ default?: {
90
+ columns?: number;
91
+ rows?: number;
92
+ gap?: string;
93
+ justifyItems?: string;
94
+ alignItems?: string;
95
+ autoFlow?: string;
96
+ };
238
97
  };
239
- }): AXPWidgetProperty;
240
- declare function createBooleanProperty(ctor: {
241
- defaultValue?: boolean;
242
- name: string;
243
- title: string;
244
- path?: string;
245
- group: AXPWidgetPropertyGroup;
246
- visible?: boolean;
247
- }): AXPWidgetProperty;
248
- declare function createSelectProperty<T = string | {
249
- id: string;
250
- title: string;
251
- }>(ctor: {
252
- defaultValue: T | T[] | any;
253
- dataSource: T[];
254
- name: string;
255
- title: string;
256
- path?: string;
257
- group: AXPWidgetPropertyGroup;
258
- visible?: boolean;
259
- }): AXPWidgetProperty;
260
- interface AXPWidgetNode {
261
- type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
262
- mode?: AXPWidgetRenderMode;
263
- path?: string;
264
- name?: string;
265
- defaultValue?: any;
266
- formula?: string;
267
- children?: AXPWidgetNode[];
268
- options?: AXPOptionsData;
269
- triggers?: AXPWidgetTriggers;
270
- meta?: AXPMetaData;
271
- valueTransforms?: AXPValueTransformerFunctions;
272
- }
273
- interface AXPWidgetNodeToken {
274
- defaultValue?: any;
275
- config: AXPWidgetConfig;
276
- node: AXPWidgetNode;
277
- options?: AXPOptionsData;
278
- }
279
- interface AXPWidgetColumnNode {
280
- type: string;
281
- path: string;
282
- options?: AXPOptionsData;
283
- }
284
- interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {
285
- config: AXPWidgetConfig;
286
- }
287
- declare const AXP_WIDGET_TOKEN: InjectionToken<AXPWidgetNodeToken>;
288
- declare const AXP_WIDGET_COLUMN_TOKEN: InjectionToken<AXPWidgetColumnNodeToken>;
289
- interface AXPWidgetComponentConfig {
290
- component: () => Promise<any>;
291
- properties?: AXPWidgetProperty[];
292
- }
293
- interface AXPWidgetConfigComponents {
294
- designer?: AXPWidgetComponentConfig;
295
- view?: AXPWidgetComponentConfig;
296
- edit?: AXPWidgetComponentConfig;
297
- print?: AXPWidgetComponentConfig;
298
- column?: AXPWidgetComponentConfig;
299
- filter?: AXPWidgetComponentConfig;
300
- }
301
- type AXPWidgetViewType = 'container' | 'editor' | 'action' | 'view' | 'filter' | 'validation' | 'dashboard';
302
- type AXPWidgetDesignerOptionsMap = {
303
- container: {
304
- canInsert: boolean;
98
+ spacing?: {
99
+ padding?: string;
100
+ margin?: string;
305
101
  };
306
- editor: {
307
- needLabel: boolean;
102
+ border?: {
103
+ radius?: string;
104
+ width?: string;
105
+ color?: string;
106
+ style?: string;
308
107
  };
309
- action: {};
310
- view: {};
311
- };
312
- type AXPExtractWidgetConfig<T> = {
313
- type: AXPWidgetViewType;
314
- designer: T extends {
315
- type: infer V;
316
- } ? V extends keyof AXPWidgetDesignerOptionsMap ? AXPWidgetDesignerOptionsMap[V] : any : any;
317
- };
318
- interface AXPWidgetConfig<T = any> {
319
- name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
320
- alias?: string | string[];
321
- title: string;
108
+ backgroundColor?: string;
109
+ direction?: string;
110
+ overflow?: string;
111
+ overflowX?: string;
112
+ overflowY?: string;
113
+ width?: string;
114
+ minWidth?: string;
115
+ maxWidth?: string;
116
+ height?: string;
117
+ minHeight?: string;
118
+ maxHeight?: string;
119
+ }
120
+ interface AXPPanelContainerOptions {
121
+ caption?: string;
322
122
  icon?: string;
323
- description?: string;
324
- categories?: AXPWidgetCategory | AXPWidgetCategory[];
325
- groups?: AXPWidgetGroup[];
326
- properties?: AXPWidgetProperty[];
327
- components: AXPWidgetConfigComponents;
328
- meta?: AXPMetaData;
329
- type: AXPExtractWidgetConfig<T>['type'];
330
- designer?: AXPExtractWidgetConfig<T>['designer'];
331
- options?: Record<string, any>;
332
- defaultFilterWidgetName?: 'string-filter' | 'number-filter' | 'datetime-filter' | 'boolean-filter' | 'select-filter' | 'lookup-filter';
333
- }
334
- interface extendedWidget {
335
- widget: AXPWidgetConfig;
336
- parentName: string;
337
- }
338
- type AXPWidgetRenderMode = keyof AXPWidgetConfigComponents;
339
- interface AXPLayoutBuilderStatusChangedEvent {
340
- status: AXPPageStatus;
341
- }
342
-
343
- type AXPClassMap = Readonly<Record<string, boolean>>;
344
- type AXPStyleMap = Readonly<Record<string, string | number>>;
345
- declare abstract class AXPBaseWidgetComponent extends AXPLayoutElement {
346
- #private;
347
- protected readonly token: _acorex_platform_layout_builder.AXPWidgetNodeToken;
348
- readonly host: HTMLDivElement;
349
- protected readonly layoutService: AXPLayoutBuilderService;
350
- protected readonly contextService: {
351
- data: _angular_core.Signal<{}>;
352
- state: _angular_core.Signal<_acorex_platform_layout_builder.AXPLayoutContextState>;
353
- initialSnapshot: _angular_core.Signal<{}>;
354
- previousSnapshot: _angular_core.Signal<{}>;
355
- lastChange: _ngrx_signals.DeepSignal<_acorex_platform_layout_builder.AXPLayoutContextChangeEvent>;
356
- isChanged: _angular_core.Signal<boolean>;
357
- isReset: _angular_core.Signal<boolean>;
358
- isInitiated: _angular_core.Signal<boolean>;
359
- isEmpty: _angular_core.Signal<boolean>;
360
- isDirty: _angular_core.Signal<boolean>;
361
- snapshot: _angular_core.Signal<{}>;
362
- initial: _angular_core.Signal<{}>;
363
- previous: _angular_core.Signal<{}>;
364
- changeEvent: _angular_core.Signal<_acorex_platform_layout_builder.AXPLayoutContextChangeEvent>;
365
- update: (path: string, value: any) => void;
366
- patch: (context: {}) => void;
367
- reset: () => void;
368
- set: (initialData: any) => void;
369
- getValue: (path: string) => any;
370
- } & _ngrx_signals.StateSource<{
371
- data: {};
372
- state: _acorex_platform_layout_builder.AXPLayoutContextState;
373
- initialSnapshot: {};
374
- previousSnapshot: {};
375
- lastChange: _acorex_platform_layout_builder.AXPLayoutContextChangeEvent;
376
- }>;
377
- readonly config: _acorex_platform_layout_builder.AXPWidgetConfig<any>;
378
- readonly node: AXPWidgetNode;
379
- protected readonly name: string | undefined;
380
- protected component: this;
381
- protected _id: string | null;
382
- get id(): string | null;
383
- protected _options: _angular_core.WritableSignal<_acorex_platform_core.AXPOptionsData>;
384
- options: _angular_core.Signal<_acorex_platform_core.AXPOptionsData>;
385
- onOptionsChanged: Subject<{
386
- sender: AXPBaseWidgetComponent;
387
- }>;
388
- private _status;
389
- status: _angular_core.Signal<AXPWidgetStatus>;
390
- readonly onStatusChanged: BehaviorSubject<AXPWidgetStatus>;
391
- isBusy: _angular_core.Signal<boolean>;
392
- parent: AXPLayoutBaseWidgetComponent | null | undefined;
393
- parentComponent: ComponentRef<any> | null | undefined;
394
- parentElement: HTMLElement | null | undefined;
395
- index: number | null | undefined;
396
- mode: AXPWidgetRenderMode;
397
- locked: boolean;
398
- protected outputs(): (string | {
399
- [name: string]: unknown;
400
- })[];
401
- ngOnInit(): void;
402
- setStatus(status: AXPWidgetStatus): void;
403
- setOptions(values: any): void;
404
- output<T = any>(name: string): T;
405
- call(name: string, ...args: any[]): void;
406
- protected readonly _children: _angular_core.WritableSignal<AXPWidgetNode[]>;
407
- protected children: _angular_core.Signal<AXPWidgetNode[]>;
408
- setChildren(children: AXPWidgetNode[]): void;
409
- onAdded(): void;
410
- hostClass?(): AXPClassMap;
411
- hostStyle?(): AXPStyleMap;
412
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPBaseWidgetComponent, never>;
413
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPBaseWidgetComponent>;
414
- }
415
- declare abstract class AXPLayoutBaseWidgetComponent extends AXPBaseWidgetComponent {
416
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutBaseWidgetComponent, never>;
417
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLayoutBaseWidgetComponent>;
418
- }
419
- declare abstract class AXPValueWidgetComponent<T = any | null> extends AXPLayoutBaseWidgetComponent implements OnInit {
420
- protected readonly path: string | undefined;
421
- protected readonly defaultValue: any;
422
- private _isValueWidget;
423
- private isValueWidget;
424
- onValueChanged: Subject<{
425
- sender: AXPBaseWidgetComponent;
426
- }>;
427
- fullPath: _angular_core.WritableSignal<string | null>;
428
- parentPath: _angular_core.WritableSignal<string | null>;
429
- ngOnInit(): void;
430
- getValue: _angular_core.Signal<T>;
431
- protected validationRules: _angular_core.Signal<AXPValidationRules>;
432
- protected extractValue(path: string): any;
433
- setValue(value: T | null | undefined): void;
434
- private detectFullPath;
435
- protected handleValueChanged(e: AXValueChangedEvent<T>): void;
436
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPValueWidgetComponent<any>, never>;
437
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPValueWidgetComponent<any>>;
438
- }
439
- declare abstract class AXPDataListWidgetComponent extends AXPValueWidgetComponent<any> {
440
- private dataService;
441
- protected textField: _angular_core.Signal<string>;
442
- protected valueField: _angular_core.Signal<string>;
443
- protected dataSource: _angular_core.WritableSignal<AXDataSource<any>>;
444
- protected isReady: _angular_core.Signal<boolean>;
445
- selectedItems: _angular_core.WritableSignal<any[]>;
446
- private rf;
447
- protected extractItem(item: unknown): Promise<any>;
448
- private effect2;
449
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDataListWidgetComponent, never>;
450
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataListWidgetComponent>;
451
- }
452
- declare abstract class AXPColumnWidgetComponent<T = any | null | void> {
453
- private readonly token;
454
- protected readonly path: string;
455
- protected readonly options: _acorex_platform_core.AXPOptionsData;
456
- protected readonly rawValue: T;
457
- protected readonly rowData: any;
458
- protected readonly nullText: any;
459
- protected readonly nullValue: T;
460
- protected value: _angular_core.Signal<T>;
461
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPColumnWidgetComponent<any>, never>;
462
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPColumnWidgetComponent<any>>;
463
- }
464
-
465
- declare abstract class AXPBoxModelLayoutWidgetComponent extends AXPLayoutBaseWidgetComponent {
466
- hostBoxStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
467
- protected blockStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
468
- protected inlineStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
469
- protected blockClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
470
- protected inlineClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
471
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPBoxModelLayoutWidgetComponent, never>;
472
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPBoxModelLayoutWidgetComponent>;
473
- }
474
-
475
- declare abstract class AXPBlockBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {
476
- hostClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
477
- hostStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
478
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPBlockBaseLayoutWidgetComponent, never>;
479
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPBlockBaseLayoutWidgetComponent>;
480
- }
481
-
482
- type AXPPropertyEditorSideValues = 'top' | 'left' | 'bottom' | 'right';
483
- type AXPPropertyEditorCornerValues = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
484
- type AXPPropertyEditorSideGeneric<T extends string, U extends string | number = string> = Record<T, U>;
485
- type AXPPropertySides<T extends string | number = string> = AXPPropertyEditorSideGeneric<AXPPropertyEditorSideValues, T>;
486
- type AXPPropertyCorners<T extends string | number = string> = AXPPropertyEditorSideGeneric<AXPPropertyEditorCornerValues, T>;
487
- interface AXPSpacingBox<T extends string | number = string> {
488
- margin: AXPPropertySides<T>;
489
- padding: AXPPropertySides<T>;
490
- }
491
- interface AXPBorderBox<T extends string | number = string> {
492
- width: AXPPropertySides<T>;
493
- radius: AXPPropertyCorners<T>;
494
- color: AXPPropertySides<T>;
495
- style: AXPPropertySides<T>;
496
- }
497
- interface AXPSpacingBoxString {
498
- margin: string;
499
- padding: string;
500
- }
501
- interface AXPBorderBoxString {
502
- width: string;
503
- radius: string;
504
- color: string;
505
- style: string;
506
- }
507
- interface AXPFlexBoxString {
508
- flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
509
- flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
510
- justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around';
511
- alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline';
512
- gap?: string;
513
- }
514
- interface AXPFlexItemBoxString {
515
- order?: string;
516
- grow?: string;
517
- shrink?: string;
518
- basis?: string;
519
- alignSelf?: string;
123
+ look?: 'solid' | 'fill' | 'outline' | 'flat' | 'none';
124
+ disabled?: boolean;
125
+ showHeader?: boolean;
126
+ collapsed?: boolean;
127
+ }
128
+ interface AXPPageContainerOptions {
129
+ backgroundColor?: string;
130
+ theme?: {
131
+ id: string;
132
+ };
133
+ hasHeader?: boolean;
134
+ hasFooter?: boolean;
135
+ direction?: string;
136
+ }
137
+ interface AXPTabsetContainerOptions {
138
+ look?: 'with-line' | 'with-line-color' | 'pills' | 'pills-color';
139
+ orientation?: 'vertical' | 'horizontal';
140
+ activeIndex?: number;
141
+ }
142
+ interface RichTextOptions {
143
+ placeholder?: string;
144
+ toolbar?: string[];
145
+ readonly?: boolean;
146
+ }
147
+ interface PasswordBoxOptions {
148
+ placeholder?: string;
149
+ revealToggle?: boolean;
150
+ maxLength?: number;
151
+ }
152
+ interface LookupBoxOptions {
153
+ dataSource?: any[] | (() => any[]) | (() => Promise<any[]>);
154
+ valueField?: string;
155
+ textField?: string;
156
+ searchable?: boolean;
157
+ }
158
+ interface SelectionListOptions {
159
+ items: any[] | (() => any[]) | (() => Promise<any[]>);
160
+ valueField?: string;
161
+ textField?: string;
162
+ multiple?: boolean;
163
+ searchable?: boolean;
164
+ }
165
+ interface AXPWidgetConfiguration {
166
+ type: string;
167
+ options?: any;
520
168
  }
521
- interface AXPGridBoxString {
522
- columns?: number;
523
- rows?: number;
524
- gap?: string;
525
- justifyItems?: 'start' | 'end' | 'center' | 'stretch';
526
- alignItems?: 'start' | 'end' | 'center' | 'stretch';
527
- autoFlow?: 'row' | 'column' | 'dense' | 'row dense' | 'column dense';
528
- }
529
- interface AXPGridItemBoxString {
530
- colSpan?: string | number;
531
- colStart?: string | number;
532
- colEnd?: string | number;
533
- rowSpan?: string | number;
534
- rowStart?: string | number;
535
- rowEnd?: string | number;
536
- alignSelf?: 'start' | 'end' | 'center' | 'stretch';
537
- justifySelf?: 'start' | 'end' | 'center' | 'stretch';
538
- }
539
- type AXPGridBreakpointValues = AXPBreakpointValues<AXPGridBoxString>;
540
- type AXPBreakpoints = 'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
541
- type AXPBreakpointValues<T> = {
542
- [key in AXPBreakpoints]?: T;
543
- };
544
-
545
- declare class AXPPropertyEditorHelper {
546
- private static expandShorthand;
547
- private static condenseShorthand;
548
- private static parseSides;
549
- private static parseSidesWithUnits;
550
- private static parseCorners;
551
- static parseSpacingBox(input: AXPSpacingBoxString): AXPSpacingBox<number>;
552
- static parseBorderBox(input: AXPBorderBoxString): AXPBorderBox<number | string>;
553
- static parseSpacingBoxReverse(input: AXPSpacingBox<number>, units: AXPSpacingBox<string>): AXPSpacingBoxString;
554
- static parseBorderBoxReverse(input: AXPBorderBox<number | string>, units: AXPBorderBox<string>): AXPBorderBoxString;
555
- static getValueWithUnit(input: string | number): {
556
- value: number;
557
- unit: string;
169
+ interface AXPLayoutNodeDefinition {
170
+ id?: string;
171
+ name?: string;
172
+ widget?: AXPWidgetConfiguration;
173
+ children?: AXPLayoutNodeDefinition[];
174
+ layout?: AXPGridLayoutOptions;
175
+ mode?: AXPLayoutMode;
176
+ order?: number | string;
177
+ visible?: boolean | string;
178
+ disabled?: boolean | string;
179
+ readonly?: boolean | string;
180
+ }
181
+ interface AXPLayoutDefinition {
182
+ nodes: AXPLayoutNodeDefinition[];
183
+ mode?: AXPLayoutMode;
184
+ direction?: AXPLayoutDirection;
185
+ look?: AXPLayoutLook;
186
+ layoutConfig?: AXPGridLayoutOptions;
187
+ }
188
+ interface LayoutBuilderState {
189
+ nodes: AXPLayoutNodeDefinition[];
190
+ mode: AXPLayoutMode;
191
+ direction: AXPLayoutDirection;
192
+ look: AXPLayoutLook;
193
+ layoutConfig: AXPGridLayoutOptions;
194
+ }
195
+ interface WidgetBuilderState {
196
+ id?: string;
197
+ name?: string;
198
+ type: 'widget';
199
+ widget?: AXPWidgetConfiguration;
200
+ children?: AXPLayoutNodeDefinition[];
201
+ layout?: AXPGridLayoutOptions;
202
+ mode?: AXPLayoutMode;
203
+ order?: number | string;
204
+ visible?: boolean | string;
205
+ disabled?: boolean | string;
206
+ readonly?: boolean | string;
207
+ }
208
+ interface ILayoutBuilder {
209
+ widget(name?: string, delegate?: (widget: IWidgetBuilder) => void): ILayoutBuilder;
210
+ grid(delegate: (container: IGridContainerBuilder) => void): ILayoutBuilder;
211
+ flex(delegate: (container: IFlexContainerBuilder) => void): ILayoutBuilder;
212
+ panel(delegate: (container: IPanelContainerBuilder) => void): ILayoutBuilder;
213
+ page(delegate: (container: IPageContainerBuilder) => void): ILayoutBuilder;
214
+ tabset(delegate: (container: ITabsetContainerBuilder) => void): ILayoutBuilder;
215
+ textBox(options?: TextBoxOptions): ILayoutBuilder;
216
+ largeTextBox(options?: LargeTextBoxOptions): ILayoutBuilder;
217
+ richText(options?: RichTextOptions): ILayoutBuilder;
218
+ passwordBox(options?: PasswordBoxOptions): ILayoutBuilder;
219
+ numberBox(options?: NumberBoxOptions): ILayoutBuilder;
220
+ selectBox(options: SelectBoxOptions): ILayoutBuilder;
221
+ lookupBox(options: LookupBoxOptions): ILayoutBuilder;
222
+ selectionList(options: SelectionListOptions): ILayoutBuilder;
223
+ dateTimeBox(options?: DateTimeBoxOptions): ILayoutBuilder;
224
+ toggleSwitch(options?: ToggleSwitchOptions): ILayoutBuilder;
225
+ colorBox(options?: ColorBoxOptions): ILayoutBuilder;
226
+ customWidget(type: string, options?: any): ILayoutBuilder;
227
+ layout(config: Partial<AXPGridLayoutOptions>): ILayoutBuilder;
228
+ mode(mode: AXPLayoutMode): ILayoutBuilder;
229
+ direction(direction: AXPLayoutDirection): ILayoutBuilder;
230
+ look(look: AXPLayoutLook): ILayoutBuilder;
231
+ build(): AXPLayoutDefinition;
232
+ render(): AXPWidgetNode;
233
+ }
234
+ interface LayoutDefinition {
235
+ zones: {
236
+ [zoneId: string]: ZoneConfig;
558
237
  };
559
- static getValueFromUnit(value: number, unit: string): string;
560
- static parseGap(gap: string): {
561
- values: Record<'x' | 'y', number>;
562
- unit: string;
238
+ styles?: {
239
+ [key: string]: any;
563
240
  };
564
- static parseGridTemplate(gridTemplate: string): number;
565
- static createGridTemplate(repetitionCount: number): string;
241
+ responsive?: ResponsiveConfig;
566
242
  }
567
- declare function findNonEmptyBreakpoints<T>(values: AXPBreakpointValues<T>): AXPBreakpoints[];
568
-
569
- declare abstract class AXPFlexBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
570
- protected flex: _angular_core.Signal<AXPFlexBoxString | undefined>;
571
- hostFlexStyle: _angular_core.Signal<Record<string, string | number>>;
572
- hostFlexClass: _angular_core.Signal<Record<string, boolean>>;
573
- hostClass: _angular_core.Signal<Record<string, boolean>>;
574
- hostStyle: _angular_core.Signal<Record<string, string | number>>;
575
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPFlexBaseLayoutWidgetComponent, never>;
576
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPFlexBaseLayoutWidgetComponent>;
243
+ interface ZoneConfig {
244
+ layout?: LayoutTypeConfig;
245
+ styles?: {
246
+ [key: string]: any;
247
+ };
248
+ containers?: {
249
+ [containerId: string]: ContainerConfig;
250
+ };
251
+ order?: number;
577
252
  }
578
-
579
- declare abstract class AXPInlineBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {
580
- hostClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
581
- hostStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
582
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPInlineBaseLayoutWidgetComponent, never>;
583
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPInlineBaseLayoutWidgetComponent>;
253
+ interface ContainerConfig {
254
+ layout?: LayoutTypeConfig;
255
+ styles?: {
256
+ [key: string]: any;
257
+ };
584
258
  }
585
-
586
- declare abstract class AXPFlexItemBaseLayoutWidgetComponent extends AXPInlineBaseLayoutWidgetComponent {
587
- protected flexItem: _angular_core.Signal<AXPFlexItemBoxString | undefined>;
588
- hostFlexItemStyle: _angular_core.Signal<Record<string, string | number>>;
589
- hostFlexItemClass: _angular_core.Signal<{
590
- [x: string]: boolean;
591
- }>;
592
- hostClass: _angular_core.Signal<{
593
- [x: string]: boolean;
594
- }>;
595
- hostStyle: _angular_core.Signal<Record<string, string | number>>;
596
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPFlexItemBaseLayoutWidgetComponent, never>;
597
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPFlexItemBaseLayoutWidgetComponent>;
259
+ interface LayoutTypeConfig {
260
+ type?: 'flex' | 'grid' | 'block';
261
+ flexDirection?: 'row' | 'column' | 'row-reverse' | 'column-reverse';
262
+ justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
263
+ alignItems?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';
264
+ gap?: string;
265
+ grid?: {
266
+ columns?: number;
267
+ rows?: number;
268
+ gap?: string;
269
+ };
598
270
  }
599
-
600
- declare abstract class AXPGridBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
601
- private grid;
602
- hostGridStyle: _angular_core.Signal<Record<string, string | number>>;
603
- hostGridClass: _angular_core.Signal<Record<string, boolean>>;
604
- hostClass: _angular_core.Signal<Record<string, boolean>>;
605
- hostStyle: _angular_core.Signal<Record<string, string | number>>;
606
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPGridBaseLayoutWidgetComponent, never>;
607
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPGridBaseLayoutWidgetComponent>;
271
+ interface LayoutNode {
272
+ id: string;
273
+ type: string;
274
+ zone: string;
275
+ container?: string;
276
+ path?: string;
277
+ options?: any;
278
+ formula?: string;
279
+ triggers?: any[];
280
+ defaultValue?: any;
281
+ mode?: AXPLayoutMode;
282
+ layout?: NodeLayoutConfig;
608
283
  }
609
-
610
- declare abstract class AXPGridItemBaseLayoutWidgetComponent extends AXPFlexBaseLayoutWidgetComponent {
611
- private gridItem;
612
- hostGridItemStyle: _angular_core.Signal<Record<string, string | number>>;
613
- hostGridItemClass: _angular_core.Signal<Record<string, boolean>>;
614
- hostClass: _angular_core.Signal<Record<string, boolean>>;
615
- hostStyle: _angular_core.Signal<Record<string, string | number>>;
616
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPGridItemBaseLayoutWidgetComponent, never>;
617
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPGridItemBaseLayoutWidgetComponent>;
284
+ interface NodeLayoutConfig {
285
+ width?: string;
286
+ height?: string;
287
+ order?: number;
288
+ flex?: string;
289
+ gridArea?: string;
290
+ }
291
+ interface ResponsiveConfig {
292
+ breakpoints?: {
293
+ mobile?: number;
294
+ tablet?: number;
295
+ desktop?: number;
296
+ };
618
297
  }
619
-
620
- declare abstract class AXPTableBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
621
- hostTableClass: _angular_core.Signal<{
622
- [x: string]: boolean;
623
- }>;
624
- hostTableStyle: _angular_core.Signal<Record<string, string | number>>;
625
- hostClass: _angular_core.Signal<{
626
- [x: string]: boolean;
627
- }>;
628
- hostStyle: _angular_core.Signal<Record<string, string | number>>;
629
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTableBaseLayoutWidgetComponent, never>;
630
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTableBaseLayoutWidgetComponent>;
298
+ interface LayoutRenderContext {
299
+ data?: any;
300
+ variables?: {
301
+ [key: string]: any;
302
+ };
303
+ functions?: {
304
+ [key: string]: Function;
305
+ };
631
306
  }
632
-
633
- declare abstract class AXPTableItemOpsBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
634
- abstract insertColumnLeft(): void;
635
- abstract insertColumnRight(): void;
636
- abstract insertRowAbove(): void;
637
- abstract insertRowBelow(): void;
638
- abstract insertCellShiftRight(): void;
639
- abstract insertCellShiftDown(): void;
640
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTableItemOpsBaseLayoutWidgetComponent, never>;
641
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTableItemOpsBaseLayoutWidgetComponent>;
307
+ interface IWidgetBuilder {
308
+ id(id: string): IWidgetBuilder;
309
+ layout(config: Partial<AXPGridLayoutOptions>): IWidgetBuilder;
310
+ layout(colSpan: number): IWidgetBuilder;
311
+ mode(mode: AXPLayoutMode): IWidgetBuilder;
312
+ order(value: number | string): IWidgetBuilder;
313
+ visible(condition: boolean | string): IWidgetBuilder;
314
+ disabled(condition: boolean | string): IWidgetBuilder;
315
+ readonly(condition: boolean | string): IWidgetBuilder;
316
+ grid(delegate: (container: IGridContainerBuilder) => void): IWidgetBuilder;
317
+ flex(delegate: (container: IFlexContainerBuilder) => void): IWidgetBuilder;
318
+ panel(delegate: (container: IPanelContainerBuilder) => void): IWidgetBuilder;
319
+ page(delegate: (container: IPageContainerBuilder) => void): IWidgetBuilder;
320
+ tabset(delegate: (container: ITabsetContainerBuilder) => void): IWidgetBuilder;
321
+ widget(name?: string, delegate?: (widget: IWidgetBuilder) => void): IWidgetBuilder;
322
+ textBox(options?: TextBoxOptions): IWidgetBuilder;
323
+ largeTextBox(options?: LargeTextBoxOptions): IWidgetBuilder;
324
+ richText(options?: RichTextOptions): IWidgetBuilder;
325
+ passwordBox(options?: PasswordBoxOptions): IWidgetBuilder;
326
+ numberBox(options?: NumberBoxOptions): IWidgetBuilder;
327
+ selectBox(options: SelectBoxOptions): IWidgetBuilder;
328
+ lookupBox(options: LookupBoxOptions): IWidgetBuilder;
329
+ selectionList(options: SelectionListOptions): IWidgetBuilder;
330
+ dateTimeBox(options?: DateTimeBoxOptions): IWidgetBuilder;
331
+ toggleSwitch(options?: ToggleSwitchOptions): IWidgetBuilder;
332
+ colorBox(options?: ColorBoxOptions): IWidgetBuilder;
333
+ customWidget<T>(type: string, options?: T): IWidgetBuilder;
334
+ build(): AXPLayoutNodeDefinition;
335
+ }
336
+ interface IBaseContainerBuilder<TContainer = any> {
337
+ id(id: string): TContainer;
338
+ layout(config: Partial<AXPGridLayoutOptions>): TContainer;
339
+ layout(colSpan: number): TContainer;
340
+ mode(mode: AXPLayoutMode): TContainer;
341
+ order(value: number | string): TContainer;
342
+ visible(condition: boolean | string): TContainer;
343
+ disabled(condition: boolean | string): TContainer;
344
+ readonly(condition: boolean | string): TContainer;
345
+ addContainer<T extends IBaseContainerBuilder>(name?: string, delegate?: (container: T) => void): TContainer;
346
+ addWidget(name?: string, delegate?: (widget: IWidgetBuilder) => void): TContainer;
347
+ textBox(options?: TextBoxOptions): TContainer;
348
+ largeTextBox(options?: LargeTextBoxOptions): TContainer;
349
+ richText(options?: RichTextOptions): TContainer;
350
+ passwordBox(options?: PasswordBoxOptions): TContainer;
351
+ numberBox(options?: NumberBoxOptions): TContainer;
352
+ selectBox(options: SelectBoxOptions): TContainer;
353
+ lookupBox(options: LookupBoxOptions): TContainer;
354
+ selectionList(options: SelectionListOptions): TContainer;
355
+ dateTimeBox(options?: DateTimeBoxOptions): TContainer;
356
+ toggleSwitch(options?: ToggleSwitchOptions): TContainer;
357
+ colorBox(options?: ColorBoxOptions): TContainer;
358
+ customWidget<T>(type: string, options?: T): TContainer;
359
+ build(): AXPLayoutNodeDefinition;
360
+ }
361
+ interface IFlexContainerBuilder extends IBaseContainerBuilder<IFlexContainerBuilder> {
362
+ setOptions(options: AXPFlexContainerOptions): IFlexContainerBuilder;
363
+ setFlexDirection(direction: 'row' | 'column' | 'row-reverse' | 'column-reverse'): IFlexContainerBuilder;
364
+ setFlexWrap(wrap: 'nowrap' | 'wrap' | 'wrap-reverse'): IFlexContainerBuilder;
365
+ setJustifyContent(justify: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly'): IFlexContainerBuilder;
366
+ setAlignItems(align: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch'): IFlexContainerBuilder;
367
+ setGap(gap: string): IFlexContainerBuilder;
368
+ setBackgroundColor(color: string): IFlexContainerBuilder;
369
+ setPadding(padding: string): IFlexContainerBuilder;
370
+ setMargin(margin: string): IFlexContainerBuilder;
371
+ }
372
+ interface IGridContainerBuilder extends IBaseContainerBuilder<IGridContainerBuilder> {
373
+ setOptions(options: AXPGridContainerOptions): IGridContainerBuilder;
374
+ setColumns(columns: number): IGridContainerBuilder;
375
+ setRows(rows: number): IGridContainerBuilder;
376
+ setGap(gap: string): IGridContainerBuilder;
377
+ setJustifyItems(justify: 'start' | 'end' | 'center' | 'stretch'): IGridContainerBuilder;
378
+ setAlignItems(align: 'start' | 'end' | 'center' | 'stretch'): IGridContainerBuilder;
379
+ setAutoFlow(flow: 'row' | 'column' | 'row dense' | 'column dense'): IGridContainerBuilder;
380
+ setBackgroundColor(color: string): IGridContainerBuilder;
381
+ setPadding(padding: string): IGridContainerBuilder;
382
+ setMargin(margin: string): IGridContainerBuilder;
383
+ }
384
+ interface IPanelContainerBuilder extends IBaseContainerBuilder<IPanelContainerBuilder> {
385
+ setOptions(options: AXPPanelContainerOptions): IPanelContainerBuilder;
386
+ setCaption(caption: string): IPanelContainerBuilder;
387
+ setIcon(icon: string): IPanelContainerBuilder;
388
+ setLook(look: 'solid' | 'fill' | 'outline' | 'flat' | 'none'): IPanelContainerBuilder;
389
+ setShowHeader(show: boolean): IPanelContainerBuilder;
390
+ setCollapsed(collapsed: boolean): IPanelContainerBuilder;
391
+ }
392
+ interface IPageContainerBuilder extends IBaseContainerBuilder<IPageContainerBuilder> {
393
+ setOptions(options: AXPPageContainerOptions): IPageContainerBuilder;
394
+ setBackgroundColor(color: string): IPageContainerBuilder;
395
+ setTheme(theme: {
396
+ id: string;
397
+ }): IPageContainerBuilder;
398
+ setHasHeader(hasHeader: boolean): IPageContainerBuilder;
399
+ setHasFooter(hasFooter: boolean): IPageContainerBuilder;
400
+ setDirection(direction: string): IPageContainerBuilder;
401
+ }
402
+ interface ITabsetContainerBuilder extends IBaseContainerBuilder<ITabsetContainerBuilder> {
403
+ setOptions(options: AXPTabsetContainerOptions): ITabsetContainerBuilder;
404
+ setLook(look: 'with-line' | 'with-line-color' | 'pills' | 'pills-color'): ITabsetContainerBuilder;
405
+ setOrientation(orientation: 'vertical' | 'horizontal'): ITabsetContainerBuilder;
406
+ setActiveIndex(index: number): ITabsetContainerBuilder;
642
407
  }
643
408
 
644
- declare abstract class AXPTableItemBaseLayoutWidgetComponent extends AXPTableItemOpsBaseLayoutWidgetComponent {
645
- protected colSpan: _angular_core.Signal<number>;
646
- protected rowSpan: _angular_core.Signal<number>;
647
- hostClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
648
- hostStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
649
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTableItemBaseLayoutWidgetComponent, never>;
650
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTableItemBaseLayoutWidgetComponent>;
409
+ declare class AXPLayoutRendererComponent implements OnInit {
410
+ builder?: AXPLayoutDefinition;
411
+ renderedNode: AXPWidgetNode;
412
+ ngOnInit(): void;
413
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPLayoutRendererComponent, never>;
414
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPLayoutRendererComponent, "axp-layout-renderer", never, { "builder": { "alias": "builder"; "required": false; }; }, {}, never, never, true, never>;
651
415
  }
652
416
 
653
- type AXPLayoutContextState = 'initiated' | 'restored' | 'changed' | 'patch';
654
- declare class AXPLayoutContextChangeEvent {
655
- oldValue?: any;
656
- newValue?: any;
657
- path?: string;
658
- state: AXPLayoutContextState;
659
- data: any;
660
- }
661
- declare const AXPLayoutBuilderContextStore: _angular_core.Type<{
662
- data: _angular_core.Signal<{}>;
663
- state: _angular_core.Signal<AXPLayoutContextState>;
664
- initialSnapshot: _angular_core.Signal<{}>;
665
- previousSnapshot: _angular_core.Signal<{}>;
666
- lastChange: _ngrx_signals.DeepSignal<AXPLayoutContextChangeEvent>;
667
- isChanged: _angular_core.Signal<boolean>;
668
- isReset: _angular_core.Signal<boolean>;
669
- isInitiated: _angular_core.Signal<boolean>;
670
- isEmpty: _angular_core.Signal<boolean>;
671
- isDirty: _angular_core.Signal<boolean>;
672
- snapshot: _angular_core.Signal<{}>;
673
- initial: _angular_core.Signal<{}>;
674
- previous: _angular_core.Signal<{}>;
675
- changeEvent: _angular_core.Signal<AXPLayoutContextChangeEvent>;
676
- update: (path: string, value: any) => void;
677
- patch: (context: {}) => void;
678
- reset: () => void;
679
- set: (initialData: any) => void;
680
- getValue: (path: string) => any;
681
- } & _ngrx_signals.StateSource<{
682
- data: {};
683
- state: AXPLayoutContextState;
684
- initialSnapshot: {};
685
- previousSnapshot: {};
686
- lastChange: AXPLayoutContextChangeEvent;
687
- }>>;
688
-
689
- declare class AXPWidgetContainerComponent {
690
- readonly contextService: {
691
- data: _angular_core.Signal<{}>;
692
- state: _angular_core.Signal<_acorex_platform_layout_builder.AXPLayoutContextState>;
693
- initialSnapshot: _angular_core.Signal<{}>;
694
- previousSnapshot: _angular_core.Signal<{}>;
695
- lastChange: _ngrx_signals.DeepSignal<AXPLayoutContextChangeEvent>;
696
- isChanged: _angular_core.Signal<boolean>;
697
- isReset: _angular_core.Signal<boolean>;
698
- isInitiated: _angular_core.Signal<boolean>;
699
- isEmpty: _angular_core.Signal<boolean>;
700
- isDirty: _angular_core.Signal<boolean>;
701
- snapshot: _angular_core.Signal<{}>;
702
- initial: _angular_core.Signal<{}>;
703
- previous: _angular_core.Signal<{}>;
704
- changeEvent: _angular_core.Signal<AXPLayoutContextChangeEvent>;
705
- update: (path: string, value: any) => void;
706
- patch: (context: {}) => void;
707
- reset: () => void;
708
- set: (initialData: any) => void;
709
- getValue: (path: string) => any;
710
- } & _ngrx_signals.StateSource<{
711
- data: {};
712
- state: _acorex_platform_layout_builder.AXPLayoutContextState;
713
- initialSnapshot: {};
714
- previousSnapshot: {};
715
- lastChange: AXPLayoutContextChangeEvent;
716
- }>;
717
- readonly builderService: AXPLayoutBuilderService;
718
- readonly onContextChanged: EventEmitter<AXPLayoutContextChangeEvent>;
719
- set context(value: any);
720
- set functions(v: any);
721
- constructor();
722
- status: _angular_core.Signal<_acorex_platform_layout_builder.AXPPageStatus>;
723
- isBusy: _angular_core.Signal<boolean>;
724
- refresh(): void;
725
- find(name: string): Promise<_acorex_platform_layout_builder.AXPLayoutElement | undefined>;
726
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetContainerComponent, never>;
727
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetContainerComponent, "axp-widgets-container", never, { "context": { "alias": "context"; "required": false; }; "functions": { "alias": "functions"; "required": false; }; }, { "onContextChanged": "onContextChanged"; }, never, ["*"], false, never>;
417
+ declare class LayoutBuilderModule {
418
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutBuilderModule, never>;
419
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LayoutBuilderModule, never, [typeof i1.CommonModule, typeof AXPLayoutRendererComponent], [typeof AXPLayoutRendererComponent]>;
420
+ static ɵinj: i0.ɵɵInjectorDeclaration<LayoutBuilderModule>;
728
421
  }
729
422
 
730
- declare class AXPWidgetRegistryService {
731
- private types;
732
- static instance: AXPWidgetRegistryService;
423
+ declare class AXPLayoutBuilderService {
733
424
  /**
734
- *
425
+ * Create a new layout builder
735
426
  */
736
- constructor();
737
- register(widget: AXPWidgetConfig): void;
738
- extend(parentName: string, widget: AXPWidgetConfig): void;
739
- resolve(name: string): AXPWidgetConfig | undefined;
740
- all(): AXPWidgetConfig[];
741
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetRegistryService, never>;
742
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetRegistryService>;
743
- }
744
-
745
- declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
746
- protected widgetRegistery: AXPWidgetRegistryService;
747
- private grid;
748
- customExpandIcon: string;
749
- customCollapseIcon: string;
750
- customWidth: string;
751
- private _node;
752
- get node(): AXPWidgetColumnNode;
753
- set node(v: AXPWidgetColumnNode);
754
- private mergedOptions;
755
- protected loadingRow: _angular_core.WritableSignal<null>;
756
- footerTemplate: TemplateRef<unknown>;
757
- private _contentFooterTemplate;
758
- get renderFooterTemplate(): TemplateRef<unknown>;
759
- expandHandler: boolean;
760
- cellTemplate: TemplateRef<unknown>;
761
- private _contentCellTemplate;
762
- get renderCellTemplate(): TemplateRef<unknown>;
763
- headerTemplate: TemplateRef<unknown>;
764
- private _contentHeaderTemplate;
765
- protected handleExpandRow(row: any): Promise<void>;
766
- get renderHeaderTemplate(): TemplateRef<unknown>;
767
- get loadingEnabled(): boolean;
768
- get name(): string;
769
- private injector;
770
- private cdr;
771
- protected widgetInjector: Injector;
772
- protected component: any;
773
- ngOnInit(): Promise<void>;
774
- getInputs(data: any): any;
775
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetColumnRendererComponent, never>;
776
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetColumnRendererComponent, "axp-widget-column-renderer", never, { "caption": { "alias": "caption"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "customWidth": { "alias": "customWidth"; "required": false; }; "node": { "alias": "node"; "required": true; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; }, {}, never, never, false, never>;
777
- }
778
-
779
- type AXPWidgetRendererDirectiveOptions = AXPMetaData;
780
- declare class AXPWidgetRendererDirective {
781
- parentNode: _angular_core.InputSignal<AXPLayoutBaseWidgetComponent | null | undefined>;
782
- index: _angular_core.InputSignal<number | null | undefined>;
783
- mode: _angular_core.InputSignal<keyof _acorex_platform_layout_builder.AXPWidgetConfigComponents>;
784
- node: _angular_core.InputSignal<AXPWidgetNode>;
785
- private _options;
786
- options: _angular_core.Signal<AXPMetaData>;
787
- onOptionsChanged: _angular_core.OutputEmitterRef<{
788
- sender: AXPWidgetRendererDirective;
789
- widget: AXPBaseWidgetComponent;
790
- }>;
791
- onValueChanged: _angular_core.OutputEmitterRef<{
792
- sender: AXPWidgetRendererDirective;
793
- widget: AXPValueWidgetComponent;
794
- }>;
795
- protected mergedOptions: WritableSignal<any>;
796
- private injector;
797
- protected builderService: AXPLayoutBuilderService;
798
- protected contextService: {
799
- data: _angular_core.Signal<{}>;
800
- state: _angular_core.Signal<_acorex_platform_layout_builder.AXPLayoutContextState>;
801
- initialSnapshot: _angular_core.Signal<{}>;
802
- previousSnapshot: _angular_core.Signal<{}>;
803
- lastChange: _ngrx_signals.DeepSignal<_acorex_platform_layout_builder.AXPLayoutContextChangeEvent>;
804
- isChanged: _angular_core.Signal<boolean>;
805
- isReset: _angular_core.Signal<boolean>;
806
- isInitiated: _angular_core.Signal<boolean>;
807
- isEmpty: _angular_core.Signal<boolean>;
808
- isDirty: _angular_core.Signal<boolean>;
809
- snapshot: _angular_core.Signal<{}>;
810
- initial: _angular_core.Signal<{}>;
811
- previous: _angular_core.Signal<{}>;
812
- changeEvent: _angular_core.Signal<_acorex_platform_layout_builder.AXPLayoutContextChangeEvent>;
813
- update: (path: string, value: any) => void;
814
- patch: (context: {}) => void;
815
- reset: () => void;
816
- set: (initialData: any) => void;
817
- getValue: (path: string) => any;
818
- } & _ngrx_signals.StateSource<{
819
- data: {};
820
- state: _acorex_platform_layout_builder.AXPLayoutContextState;
821
- initialSnapshot: {};
822
- previousSnapshot: {};
823
- lastChange: _acorex_platform_layout_builder.AXPLayoutContextChangeEvent;
824
- }>;
825
- protected widgetRegistery: AXPWidgetRegistryService;
826
- protected unsubscriber: AXUnsubscriber;
827
- protected translateService: AXTranslationService;
828
- protected widgetService: AXPWidgetRegistryService;
829
- protected expressionEvaluator: AXPExpressionEvaluatorService;
830
- private viewContainerRef;
831
- protected isLoading: WritableSignal<boolean>;
832
- instance: AXPValueWidgetComponent;
833
- private expressionEvaluators;
834
- private componentRef;
835
- private renderTimeoutId;
836
- private hasInitialRender;
837
- private onContextChanged;
838
- private contextUpdateQueue;
839
- private contextUpdateTimeout;
840
- private readonly CONTEXT_UPDATE_DEBOUNCE_MS;
841
- private expressionCache;
842
- private readonly EXPRESSION_CACHE_TTL;
843
- private lastAppliedOptions;
844
- private lastExpressionResults;
845
- private preRenderContextQueue;
846
- constructor();
847
- private getCachedExpressionResult;
848
- private setCachedExpressionResult;
849
- private clearExpressionCache;
850
- private isPathAffectingExpressions;
851
- private queueContextUpdate;
852
- private processBatchedUpdates;
853
- private isRelevantContextChange;
854
- private hasExpressionDependency;
855
- private isPathAlias;
856
- private getExpressionValueFromNode;
857
- private hasTriggerDependency;
858
- ngOnChanges(changes: SimpleChanges): void;
859
- private rerenderComponent;
860
- ngOnDestroy(): void;
861
- private loadComponent;
862
- private applyOptions;
863
- private hasOptionsChanged;
864
- private checkFormulaForUpdate;
865
- preprocessAndInitialOptions(obj: any, pathPrefix?: string): void;
866
- updateOptionsBasedOnContext(): Promise<number>;
867
- updateValueBasedOnFormula(): Promise<void>;
868
- private evaluateExpression;
869
- private buildExpressionScope;
870
- private getContextScope;
871
- private getEventScope;
872
- private getWidgetScope;
873
- private getFunctionScope;
874
- private getVariablesScope;
875
- private assignTriggers;
876
- private evaluateTrigger;
877
- private evaluateAction;
878
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetRendererDirective, never>;
879
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXPWidgetRendererDirective, "[axp-widget-renderer]", ["widgetRenderer"], { "parentNode": { "alias": "parentNode"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "node": { "alias": "node"; "required": true; "isSignal": true; }; }, { "onOptionsChanged": "onOptionsChanged"; "onValueChanged": "onValueChanged"; }, never, never, false, never>;
880
- }
881
-
882
- interface AXPLayoutBuilderModuleConfigs {
883
- widgets?: AXPWidgetConfig[];
884
- extendedWidgets?: extendedWidget[];
885
- }
886
- declare class AXPLayoutBuilderModule {
887
- static forRoot(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule>;
888
- static forChild(config?: AXPLayoutBuilderModuleConfigs): ModuleWithProviders<AXPLayoutBuilderModule>;
427
+ create(): ILayoutBuilder;
889
428
  /**
890
- * @ignore
429
+ * Convert Layout Builder definition to Layout Renderer format
430
+ * با processing و cleaning options
891
431
  */
892
- constructor(instances: any[]);
893
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutBuilderModule, [{ optional: true; }]>;
894
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPLayoutBuilderModule, [typeof AXPWidgetContainerComponent, typeof AXPWidgetColumnRendererComponent, typeof AXPWidgetRendererDirective], [typeof i4.CommonModule, typeof i5.PortalModule, typeof i6.AXSkeletonModule, typeof i4.CommonModule, typeof i7.AXTranslationModule], [typeof AXPWidgetContainerComponent, typeof AXPWidgetColumnRendererComponent, typeof AXPWidgetRendererDirective]>;
895
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPLayoutBuilderModule>;
896
- }
897
-
898
- interface AXPMetaDataDefinition {
899
- name: string;
900
- title: string;
901
- defaultValue?: any;
902
- interface: string | AXPWidgetNode | (() => Promise<AXPWidgetNode>);
432
+ convertToLayoutRenderer(definition: AXPLayoutDefinition): {
433
+ layoutDefinition: LayoutDefinition;
434
+ layoutNodes: LayoutNode[];
435
+ };
436
+ /**
437
+ * Convert grid layout options to CSS styles
438
+ */
439
+ private convertGridLayoutToStyles;
440
+ /**
441
+ * Convert grid layout to node layout configuration
442
+ */
443
+ private convertToNodeLayout;
444
+ /**
445
+ * Process widget options based on actual widget configurations
446
+ */
447
+ private processWidgetOptions;
448
+ /**
449
+ * Process text-block-layout content
450
+ */
451
+ private processTextBlockContent;
452
+ /**
453
+ * Process grid-layout options
454
+ */
455
+ private processGridOptions;
456
+ /**
457
+ * Process spacing options
458
+ */
459
+ private processSpacingOptions;
460
+ /**
461
+ * Process border options
462
+ */
463
+ private processBorderOptions;
464
+ /**
465
+ * Process flex-layout options
466
+ */
467
+ private processFlexOptions;
468
+ /**
469
+ * Process panel-layout options
470
+ */
471
+ private processPanelOptions;
472
+ /**
473
+ * Process tag content
474
+ */
475
+ private processTagContent;
476
+ /**
477
+ * Process generic content
478
+ */
479
+ private processGenericContent;
480
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPLayoutBuilderService, never>;
481
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPLayoutBuilderService>;
903
482
  }
904
483
 
905
- declare const AXPWidgetsCatalog: AXPWidgetTypesMap;
906
-
907
- export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPLayoutBuilderContextStore, AXPLayoutBuilderModule, AXPLayoutBuilderService, AXPLayoutContextChangeEvent, AXPLayoutElement, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty, findNonEmptyBreakpoints };
908
- export type { AXPBorderBox, AXPBorderBoxString, AXPBreakpointValues, AXPBreakpoints, AXPClassMap, AXPExtractWidgetConfig, AXPFlexBoxString, AXPFlexItemBoxString, AXPGridBoxString, AXPGridBreakpointValues, AXPGridItemBoxString, AXPLayoutBuilderModuleConfigs, AXPLayoutBuilderStatusChangedEvent, AXPLayoutContextState, AXPLayoutElementAPI, AXPMetaDataDefinition, AXPPropertyCorners, AXPPropertyEditorCornerValues, AXPPropertyEditorSideGeneric, AXPPropertyEditorSideValues, AXPPropertySides, AXPSpacingBox, AXPSpacingBoxString, AXPStyleMap, AXPWidgetCategory, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetRenderMode, AXPWidgetRendererDirectiveOptions, AXPWidgetTypesMap, AXPWidgetViewType, extendedWidget };
484
+ export { AXPLayoutBuilderService, AXPLayoutRendererComponent, LayoutBuilderModule };
485
+ export type { AXPFlexContainerOptions, AXPGridContainerOptions, AXPLayoutDefinition, AXPLayoutDirection, AXPLayoutLook, AXPLayoutMode, AXPLayoutNodeDefinition, AXPPageContainerOptions, AXPPanelContainerOptions, AXPTabsetContainerOptions, AXPWidgetConfiguration, ColorBoxOptions, ContainerConfig, DateTimeBoxOptions, IBaseContainerBuilder, IFlexContainerBuilder, IGridContainerBuilder, ILayoutBuilder, IPageContainerBuilder, IPanelContainerBuilder, ITabsetContainerBuilder, IWidgetBuilder, LargeTextBoxOptions, LayoutBuilderState, LayoutDefinition, LayoutNode, LayoutRenderContext, LayoutTypeConfig, LookupBoxOptions, NodeLayoutConfig, NumberBoxOptions, PasswordBoxOptions, ResponsiveConfig, RichTextOptions, SelectBoxOptions, SelectionListOptions, TextBoxOptions, ToggleSwitchOptions, WidgetBuilderState, ZoneConfig };