@acorex/platform 21.0.0-next.91 → 21.0.0-next.93

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 (60) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +0 -1
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-common.mjs +9 -4
  4. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-contracts.mjs +12 -1
  6. package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +2 -16
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain-contracts.mjs +0 -1
  10. package/fesm2022/acorex-platform-domain-contracts.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-builder.mjs +4 -4
  13. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-components.mjs +4 -3
  15. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-designer.mjs +4 -3
  17. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-entity.mjs +24 -4
  22. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-views.mjs +5 -4
  24. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-widget-core-contracts.mjs +141 -0
  26. package/fesm2022/acorex-platform-layout-widget-core-contracts.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-layout-widget-core.mjs +5 -132
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  29. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BvFykMTH.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DIDziLAT.mjs} +2 -2
  30. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DIDziLAT.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-layout-widgets.mjs +13 -440
  32. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  33. package/fesm2022/acorex-platform-runtime-contracts.mjs +166 -0
  34. package/fesm2022/acorex-platform-runtime-contracts.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-runtime.mjs +1 -163
  36. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  37. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BP2dVnBQ.mjs} +3 -2
  38. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BP2dVnBQ.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -1
  40. package/fesm2022/acorex-platform-themes-default.mjs +4 -3
  41. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  42. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  43. package/package.json +14 -6
  44. package/types/acorex-platform-common.d.ts +15 -5
  45. package/types/acorex-platform-contracts.d.ts +106 -4
  46. package/types/acorex-platform-core.d.ts +4 -101
  47. package/types/acorex-platform-layout-builder.d.ts +3 -3
  48. package/types/acorex-platform-layout-components.d.ts +4 -3
  49. package/types/acorex-platform-layout-designer.d.ts +2 -1
  50. package/types/acorex-platform-layout-entity-contracts.d.ts +2 -3
  51. package/types/acorex-platform-layout-entity.d.ts +12 -10
  52. package/types/acorex-platform-layout-views.d.ts +10 -9
  53. package/types/acorex-platform-layout-widget-core-contracts.d.ts +299 -0
  54. package/types/acorex-platform-layout-widget-core.d.ts +9 -301
  55. package/types/acorex-platform-layout-widgets.d.ts +55 -80
  56. package/types/acorex-platform-runtime-contracts.d.ts +275 -0
  57. package/types/acorex-platform-runtime.d.ts +4 -274
  58. package/types/acorex-platform-themes-default.d.ts +3 -3
  59. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BvFykMTH.mjs.map +0 -1
  60. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +0 -1
@@ -0,0 +1,275 @@
1
+ import { AXPDefinitionCategory, AXPExecuteCommandResult, AXPViewDefinition } from '@acorex/platform/contracts';
2
+
3
+ /**
4
+ * Shared build-time catalog metadata for command, query, and widget definition sidecars
5
+ * (`defineCommand`, `defineQuery`, `defineWidget`).
6
+ * Lives under `shared/` so consumers import one module without a "command" prefix on generic shapes.
7
+ */
8
+
9
+ /** Catalog metadata validation: rule key + optional rule options only. */
10
+ interface AXPCatalogValidationRuleValue {
11
+ rule: string;
12
+ options?: Record<string, unknown>;
13
+ }
14
+ /**
15
+ * Widget/interface reference for a schema property (name + optional widget options).
16
+ */
17
+ interface AXPCatalogInterfaceDefinitionValue {
18
+ name: string;
19
+ options?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * Agent-facing hints when a single catalog row can be satisfied in several ways
23
+ * (inline list, registry-backed dataSource key, query + assign, tabular columns, context merge, etc.).
24
+ * Documentation only; tooling may surface this next to `description` and `interface`.
25
+ */
26
+ interface AXPCatalogPropertyBindingHints {
27
+ /** Named strategies the agent or author may use to supply this parameter. */
28
+ strategies?: readonly string[];
29
+ /** Short concrete examples (strings or JSON fragments as documentation, not executed). */
30
+ examples?: readonly string[];
31
+ /** Extra notes: merge rules, mode flags, registry keys, or when to prefer one strategy over another. */
32
+ notes?: string;
33
+ }
34
+ /**
35
+ * One input/output property description (same structural role as entity option definitions).
36
+ */
37
+ interface AXPCatalogSchemaPropertyDefinition {
38
+ name: string;
39
+ title: string;
40
+ description?: string;
41
+ icon?: string;
42
+ defaultValue?: unknown;
43
+ disabled?: boolean;
44
+ interface: AXPCatalogInterfaceDefinitionValue;
45
+ validations?: AXPCatalogValidationRuleValue[];
46
+ /**
47
+ * Optional multi-strategy binding documentation for AI and codegen (commands, queries, widget sidecars).
48
+ * Prefer this over inventing a non-form `interface.name` that is not part of the AI-facing widget catalog.
49
+ */
50
+ bindingHints?: AXPCatalogPropertyBindingHints;
51
+ }
52
+ /** Structured usage hints for planners and assistants (prefer over duplicating rules only in `description`). */
53
+ interface AXPCatalogAiUsageMetadata {
54
+ whenToUse?: string[];
55
+ avoidWhen?: string[];
56
+ /** Registry keys or tool names that commonly follow this catalog entry. */
57
+ followUpTools?: string[];
58
+ }
59
+ /** Declarative contracts: what the entry provides, who depends on it, and guarantees. */
60
+ interface AXPCatalogAiContractsMetadata {
61
+ provides?: string[];
62
+ requiredBy?: string[];
63
+ guarantees?: string[];
64
+ }
65
+ type AXPCatalogAiSafetyKind = 'read-only' | 'mutating';
66
+ interface AXPCatalogAiSafetyMetadata {
67
+ kind?: AXPCatalogAiSafetyKind;
68
+ sideEffects?: boolean;
69
+ requiresConfirmation?: boolean;
70
+ }
71
+ type AXPCatalogAiPerformanceCost = 'low' | 'medium' | 'high';
72
+ interface AXPCatalogAiPerformanceMetadata {
73
+ cost?: AXPCatalogAiPerformanceCost;
74
+ cacheable?: boolean;
75
+ }
76
+ interface AXPCatalogAiNextStepMetadata {
77
+ when: string;
78
+ action: string;
79
+ }
80
+ /**
81
+ * How to interpret a successful payload for agents (documentation only; not live workflow step outcomes).
82
+ */
83
+ interface AXPCatalogAiResultSemanticsMetadata {
84
+ noMatch?: string;
85
+ exactMatch?: string;
86
+ multipleMatches?: string;
87
+ failed?: string;
88
+ /** Full catalog listing (e.g. no entity filter). */
89
+ catalog?: string;
90
+ }
91
+ interface AXPCatalogAiMetadata {
92
+ shortDescription?: string;
93
+ /**
94
+ * Long-form guidance appended to LLM tool descriptions (not for short UI/registry copy).
95
+ * Keep root `description` concise for pickers and entity rows.
96
+ */
97
+ instruction?: string;
98
+ tags?: string[];
99
+ usage?: AXPCatalogAiUsageMetadata;
100
+ contracts?: AXPCatalogAiContractsMetadata;
101
+ safety?: AXPCatalogAiSafetyMetadata;
102
+ performance?: AXPCatalogAiPerformanceMetadata;
103
+ nextSteps?: AXPCatalogAiNextStepMetadata[];
104
+ resultSemantics?: AXPCatalogAiResultSemanticsMetadata;
105
+ /**
106
+ * Default input fragment merged for AI/tool invocations (catalog & tooling).
107
+ * Runtime merge for a given entry is applied in the AI module (not the generic command executor).
108
+ */
109
+ toolInputDefaults?: Record<string, unknown>;
110
+ /**
111
+ * Optional JSON Schema fragment for LLM tool `parameters` (OpenAI-style function calling).
112
+ * Merged over the auto-generated schema from catalog `inputs` (`properties` / `required` deep-merged).
113
+ * Use when widget-to-type inference is insufficient (e.g. `object`, `array`, `enum`, `format`).
114
+ */
115
+ toolParametersSchema?: Record<string, unknown>;
116
+ }
117
+ type AXPCatalogExecutionMode = 'frontend' | 'backend' | 'both';
118
+ /**
119
+ * Where this catalog entry is intended to appear in product tooling (AI agents, workflow automation pickers, etc.).
120
+ * Omitted = not declared here; runtimes may fall back to other metadata (e.g. `ai.tags`).
121
+ */
122
+ type AXPCatalogCapability = 'ai' | 'workflow';
123
+ interface AXPCatalogMetadataDefinitionBase {
124
+ title: string;
125
+ description: string;
126
+ inputs?: AXPCatalogSchemaPropertyDefinition[];
127
+ outputs?: AXPCatalogSchemaPropertyDefinition[];
128
+ ai?: AXPCatalogAiMetadata;
129
+ capabilities?: AXPCatalogCapability[];
130
+ categories?: AXPDefinitionCategory | AXPDefinitionCategory[];
131
+ }
132
+
133
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM: AXPDefinitionCategory;
134
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_ENTITY: AXPDefinitionCategory;
135
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_STORAGE: AXPDefinitionCategory;
136
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_WIDGETS: AXPDefinitionCategory;
137
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_WORKFLOW: AXPDefinitionCategory;
138
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_UTILITY: AXPDefinitionCategory;
139
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_SETTINGS: AXPDefinitionCategory;
140
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_AI_TOOLS: AXPDefinitionCategory;
141
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_SECURITY: AXPDefinitionCategory;
142
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_DATA_MANAGEMENT: AXPDefinitionCategory;
143
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_ASSESSMENT: AXPDefinitionCategory;
144
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_REPORT: AXPDefinitionCategory;
145
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_ORGANIZATION: AXPDefinitionCategory;
146
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_TENANT: AXPDefinitionCategory;
147
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_HUMAN_CAPITAL: AXPDefinitionCategory;
148
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_PRODUCT: AXPDefinitionCategory;
149
+ declare const AXP_CATALOG_DEFINITION_CATEGORY_FILE_WIDGET: AXPDefinitionCategory;
150
+
151
+ type AXPExecuteCommandResultPromise<TResult = any> = Promise<AXPExecuteCommandResult<TResult>>;
152
+ interface AXPCommand<TInput = any, TResult = any> {
153
+ execute(input: TInput): AXPExecuteCommandResultPromise<TResult>;
154
+ }
155
+
156
+ /**
157
+ * Build-time command metadata for AXPCommand implementations.
158
+ * `inputs` / `outputs` are schema rows (same family as entity optionDefinitions).
159
+ * Validation entries: only `rule` name and optional `options` (no title/message on rules).
160
+ * Do not import from Angular templates; sidecars may import `defineCommand` from `@acorex/platform/runtime-contracts`.
161
+ *
162
+ * Query metadata (fetch-only, no outcomes) is defined in `../queries/query-definition.types.ts` with `defineQuery`.
163
+ * Widget metadata sidecars use `../widgets/widget-definition.types.ts` with `defineWidget`.
164
+ */
165
+
166
+ type AXPCommandOutcomeDefinition = {
167
+ mode: 'static';
168
+ values: string[];
169
+ } | {
170
+ mode: 'dynamic';
171
+ summary: string;
172
+ derivesFrom: string;
173
+ examples?: string[];
174
+ };
175
+ interface AXPCommandMetadataDefinition extends AXPCatalogMetadataDefinitionBase {
176
+ /** Runtime registration key (provideCommand / provideCommandSetups). */
177
+ key: string;
178
+ executionMode: AXPCatalogExecutionMode;
179
+ outcomes: AXPCommandOutcomeDefinition;
180
+ }
181
+
182
+ /**
183
+ * Typed identity helper for command metadata sidecars.
184
+ */
185
+ declare function defineCommand<T extends AXPCommandMetadataDefinition>(definition: T): T;
186
+
187
+ interface AXPQuery<TInput = any, TResult = any> {
188
+ fetch(input: TInput): Promise<TResult>;
189
+ }
190
+
191
+ /**
192
+ * Build-time query metadata for AXPQuery implementations.
193
+ * Mirrors command metadata shape except there are no `outcomes` (queries only `fetch`).
194
+ * Shares {@link AXPCatalogMetadataDefinitionBase} with commands and widgets; `inputs` / `outputs` live on the base.
195
+ */
196
+
197
+ /** One input/output property description for query definitions (same as command / widget catalog rows). */
198
+ type AXPQuerySchemaPropertyDefinition = AXPCatalogSchemaPropertyDefinition;
199
+ interface AXPQueryMetadataDefinition extends AXPCatalogMetadataDefinitionBase {
200
+ /** Runtime registration key (provideQuerySetups). */
201
+ key: string;
202
+ executionMode: AXPCatalogExecutionMode;
203
+ }
204
+
205
+ /**
206
+ * Typed identity helper for query metadata sidecars.
207
+ */
208
+ declare function defineQuery<T extends AXPQueryMetadataDefinition>(definition: T): T;
209
+
210
+ interface AXPViewProvider<TInput = any> {
211
+ provide(input: TInput): Promise<AXPViewDefinition>;
212
+ }
213
+
214
+ /**
215
+ * Build-time widget metadata sidecars (parallel to {@link AXPWidgetConfig} in layout/widget-core).
216
+ * Extends {@link AXPCatalogMetadataDefinitionBase}; `inputs` / `outputs` use the same schema rows as commands/queries.
217
+ * Sidecars should import `defineWidget` from `@acorex/platform/runtime-contracts`.
218
+ */
219
+
220
+ /** Same surface values as {@link AXPWidgetViewType} in layout/widget-core. */
221
+ type AXPWidgetMetadataViewType = 'container' | 'editor' | 'action' | 'view' | 'filter' | 'validation' | 'dashboard';
222
+ /** Same values as {@link AXPWidgetGroup} / {@link AXPWidgetGroupEnum} in layout/widget-core. */
223
+ type AXPWidgetMetadataGroup = 'form-element' | 'dashboard-widget' | 'form-template' | 'property-editor' | 'meta-data' | 'setting-widget' | 'entity-widget' | 'utility-widget' | 'base-widget';
224
+ /**
225
+ * Built-in default filter widget names from {@link AXPWidgetConfig.defaultFilterWidgetName}.
226
+ * Other string values remain valid for custom filters.
227
+ */
228
+ type AXPWidgetMetadataDefaultFilterName = 'string-filter' | 'number-filter' | 'datetime-filter' | 'boolean-filter' | 'select-filter' | 'lookup-filter' | 'time-duration-filter';
229
+ /**
230
+ * Widget renderer surface aligned with {@link AXPWidgetConfig.components} keys in layout/widget-core.
231
+ */
232
+ type AXPWidgetAiRenderSurfaceMode = 'view' | 'edit' | 'column' | 'designer' | 'print' | 'filter';
233
+ /**
234
+ * One line of guidance for agents: which Angular component runs in this surface and how it relates to data.
235
+ */
236
+ interface AXPWidgetAiRenderSurface {
237
+ mode: AXPWidgetAiRenderSurfaceMode;
238
+ summary: string;
239
+ }
240
+ /**
241
+ * AI hints for layout/form agents beyond {@link AXPCatalogAiMetadata}.
242
+ * Prefer `outputs` on {@link AXPCatalogMetadataDefinitionBase} for structured bound-value shape;
243
+ * use `renderSurfaces` for per-mode behavior (e.g. grid uses `column`, not `edit`).
244
+ */
245
+ interface AXPWidgetAiMetadata extends AXPCatalogAiMetadata {
246
+ /** Per-surface rendering notes (view vs edit vs column vs designer). */
247
+ renderSurfaces?: readonly AXPWidgetAiRenderSurface[];
248
+ /** Other widget `name` values often used next to or instead of this one. */
249
+ relatedWidgetNames?: string[];
250
+ /**
251
+ * Short layout or options snippets for few-shot style documentation (not executed).
252
+ */
253
+ layoutExamples?: string[];
254
+ }
255
+ interface AXPWidgetMetadataDefinition extends Omit<AXPCatalogMetadataDefinitionBase, 'capabilities'> {
256
+ /** Runtime widget registry name (same role as `AXPWidgetConfig.name`). */
257
+ name: string;
258
+ icon?: string;
259
+ subCategory?: AXPDefinitionCategory;
260
+ groups?: readonly AXPWidgetMetadataGroup[];
261
+ defaultFilterWidgetName?: AXPWidgetMetadataDefaultFilterName | string;
262
+ type: AXPWidgetMetadataViewType;
263
+ /**
264
+ * Widget-specific AI block (subtype of base `ai`); omit to use plain {@link AXPCatalogAiMetadata} from base.
265
+ */
266
+ ai?: AXPWidgetAiMetadata;
267
+ }
268
+
269
+ /**
270
+ * Typed identity helper for widget metadata sidecars.
271
+ */
272
+ declare function defineWidget<T extends AXPWidgetMetadataDefinition>(definition: T): T;
273
+
274
+ export { AXP_CATALOG_DEFINITION_CATEGORY_AI_TOOLS, AXP_CATALOG_DEFINITION_CATEGORY_ASSESSMENT, AXP_CATALOG_DEFINITION_CATEGORY_DATA_MANAGEMENT, AXP_CATALOG_DEFINITION_CATEGORY_ENTITY, AXP_CATALOG_DEFINITION_CATEGORY_FILE_WIDGET, AXP_CATALOG_DEFINITION_CATEGORY_HUMAN_CAPITAL, AXP_CATALOG_DEFINITION_CATEGORY_ORGANIZATION, AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM, AXP_CATALOG_DEFINITION_CATEGORY_PRODUCT, AXP_CATALOG_DEFINITION_CATEGORY_REPORT, AXP_CATALOG_DEFINITION_CATEGORY_SECURITY, AXP_CATALOG_DEFINITION_CATEGORY_SETTINGS, AXP_CATALOG_DEFINITION_CATEGORY_STORAGE, AXP_CATALOG_DEFINITION_CATEGORY_TENANT, AXP_CATALOG_DEFINITION_CATEGORY_UTILITY, AXP_CATALOG_DEFINITION_CATEGORY_WIDGETS, AXP_CATALOG_DEFINITION_CATEGORY_WORKFLOW, AXP_CATALOG_DEFINITION_CATEGORY_AI_TOOLS as AXP_COMMAND_DEFINITION_CATEGORY_AI_TOOLS, AXP_CATALOG_DEFINITION_CATEGORY_ASSESSMENT as AXP_COMMAND_DEFINITION_CATEGORY_ASSESSMENT, AXP_CATALOG_DEFINITION_CATEGORY_DATA_MANAGEMENT as AXP_COMMAND_DEFINITION_CATEGORY_DATA_MANAGEMENT, AXP_CATALOG_DEFINITION_CATEGORY_ENTITY as AXP_COMMAND_DEFINITION_CATEGORY_ENTITY, AXP_CATALOG_DEFINITION_CATEGORY_FILE_WIDGET as AXP_COMMAND_DEFINITION_CATEGORY_FILE_WIDGET, AXP_CATALOG_DEFINITION_CATEGORY_HUMAN_CAPITAL as AXP_COMMAND_DEFINITION_CATEGORY_HUMAN_CAPITAL, AXP_CATALOG_DEFINITION_CATEGORY_ORGANIZATION as AXP_COMMAND_DEFINITION_CATEGORY_ORGANIZATION, AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM as AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM, AXP_CATALOG_DEFINITION_CATEGORY_PRODUCT as AXP_COMMAND_DEFINITION_CATEGORY_PRODUCT, AXP_CATALOG_DEFINITION_CATEGORY_REPORT as AXP_COMMAND_DEFINITION_CATEGORY_REPORT, AXP_CATALOG_DEFINITION_CATEGORY_SECURITY as AXP_COMMAND_DEFINITION_CATEGORY_SECURITY, AXP_CATALOG_DEFINITION_CATEGORY_SETTINGS as AXP_COMMAND_DEFINITION_CATEGORY_SETTINGS, AXP_CATALOG_DEFINITION_CATEGORY_STORAGE as AXP_COMMAND_DEFINITION_CATEGORY_STORAGE, AXP_CATALOG_DEFINITION_CATEGORY_TENANT as AXP_COMMAND_DEFINITION_CATEGORY_TENANT, AXP_CATALOG_DEFINITION_CATEGORY_UTILITY as AXP_COMMAND_DEFINITION_CATEGORY_UTILITY, AXP_CATALOG_DEFINITION_CATEGORY_WORKFLOW as AXP_COMMAND_DEFINITION_CATEGORY_WORKFLOW, AXP_CATALOG_DEFINITION_CATEGORY_ENTITY as AXP_QUERY_DEFINITION_CATEGORY_ENTITY, AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM as AXP_QUERY_DEFINITION_CATEGORY_PLATFORM, AXP_CATALOG_DEFINITION_CATEGORY_STORAGE as AXP_QUERY_DEFINITION_CATEGORY_STORAGE, AXP_CATALOG_DEFINITION_CATEGORY_WIDGETS as AXP_QUERY_DEFINITION_CATEGORY_WIDGETS, defineCommand, defineQuery, defineWidget };
275
+ export type { AXPCatalogAiContractsMetadata, AXPCatalogAiMetadata, AXPCatalogAiNextStepMetadata, AXPCatalogAiPerformanceCost, AXPCatalogAiPerformanceMetadata, AXPCatalogAiResultSemanticsMetadata, AXPCatalogAiSafetyKind, AXPCatalogAiSafetyMetadata, AXPCatalogAiUsageMetadata, AXPCatalogCapability, AXPCatalogExecutionMode, AXPCatalogInterfaceDefinitionValue, AXPCatalogMetadataDefinitionBase, AXPCatalogPropertyBindingHints, AXPCatalogSchemaPropertyDefinition, AXPCatalogValidationRuleValue, AXPCommand, AXPCommandMetadataDefinition, AXPCommandOutcomeDefinition, AXPExecuteCommandResultPromise, AXPQuery, AXPQueryMetadataDefinition, AXPQuerySchemaPropertyDefinition, AXPViewProvider, AXPWidgetAiMetadata, AXPWidgetAiRenderSurface, AXPWidgetAiRenderSurfaceMode, AXPWidgetMetadataDefaultFilterName, AXPWidgetMetadataDefinition, AXPWidgetMetadataGroup, AXPWidgetMetadataViewType };
@@ -1,187 +1,9 @@
1
- import { AXPDefinitionCategory, AXPExecuteCommandResult, AXPViewDefinition, AXPMetaData } from '@acorex/platform/contracts';
1
+ import { AXPExecuteCommandResult, AXPViewDefinition, AXPMetaData } from '@acorex/platform/contracts';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, EnvironmentProviders, Type, Provider } from '@angular/core';
4
+ import { AXPCommand, AXPQuery, AXPViewProvider } from '@acorex/platform/runtime-contracts';
4
5
  import { AXComponent } from '@acorex/cdk/common';
5
6
 
6
- /**
7
- * Shared build-time catalog metadata for command, query, and widget definition sidecars
8
- * (`defineCommand`, `defineQuery`, `defineWidget`).
9
- * Lives under `shared/` so consumers import one module without a "command" prefix on generic shapes.
10
- */
11
-
12
- /** Catalog metadata validation: rule key + optional rule options only. */
13
- interface AXPCatalogValidationRuleValue {
14
- rule: string;
15
- options?: Record<string, unknown>;
16
- }
17
- /**
18
- * Widget/interface reference for a schema property (name + optional widget options).
19
- */
20
- interface AXPCatalogInterfaceDefinitionValue {
21
- name: string;
22
- options?: Record<string, unknown>;
23
- }
24
- /**
25
- * Agent-facing hints when a single catalog row can be satisfied in several ways
26
- * (inline list, registry-backed dataSource key, query + assign, tabular columns, context merge, etc.).
27
- * Documentation only; tooling may surface this next to `description` and `interface`.
28
- */
29
- interface AXPCatalogPropertyBindingHints {
30
- /** Named strategies the agent or author may use to supply this parameter. */
31
- strategies?: readonly string[];
32
- /** Short concrete examples (strings or JSON fragments as documentation, not executed). */
33
- examples?: readonly string[];
34
- /** Extra notes: merge rules, mode flags, registry keys, or when to prefer one strategy over another. */
35
- notes?: string;
36
- }
37
- /**
38
- * One input/output property description (same structural role as entity option definitions).
39
- */
40
- interface AXPCatalogSchemaPropertyDefinition {
41
- name: string;
42
- title: string;
43
- description?: string;
44
- icon?: string;
45
- defaultValue?: unknown;
46
- disabled?: boolean;
47
- interface: AXPCatalogInterfaceDefinitionValue;
48
- validations?: AXPCatalogValidationRuleValue[];
49
- /**
50
- * Optional multi-strategy binding documentation for AI and codegen (commands, queries, widget sidecars).
51
- * Prefer this over inventing a non-form `interface.name` that is not part of the AI-facing widget catalog.
52
- */
53
- bindingHints?: AXPCatalogPropertyBindingHints;
54
- }
55
- /** Structured usage hints for planners and assistants (prefer over duplicating rules only in `description`). */
56
- interface AXPCatalogAiUsageMetadata {
57
- whenToUse?: string[];
58
- avoidWhen?: string[];
59
- /** Registry keys or tool names that commonly follow this catalog entry. */
60
- followUpTools?: string[];
61
- }
62
- /** Declarative contracts: what the entry provides, who depends on it, and guarantees. */
63
- interface AXPCatalogAiContractsMetadata {
64
- provides?: string[];
65
- requiredBy?: string[];
66
- guarantees?: string[];
67
- }
68
- type AXPCatalogAiSafetyKind = 'read-only' | 'mutating';
69
- interface AXPCatalogAiSafetyMetadata {
70
- kind?: AXPCatalogAiSafetyKind;
71
- sideEffects?: boolean;
72
- requiresConfirmation?: boolean;
73
- }
74
- type AXPCatalogAiPerformanceCost = 'low' | 'medium' | 'high';
75
- interface AXPCatalogAiPerformanceMetadata {
76
- cost?: AXPCatalogAiPerformanceCost;
77
- cacheable?: boolean;
78
- }
79
- interface AXPCatalogAiNextStepMetadata {
80
- when: string;
81
- action: string;
82
- }
83
- /**
84
- * How to interpret a successful payload for agents (documentation only; not live workflow step outcomes).
85
- */
86
- interface AXPCatalogAiResultSemanticsMetadata {
87
- noMatch?: string;
88
- exactMatch?: string;
89
- multipleMatches?: string;
90
- failed?: string;
91
- /** Full catalog listing (e.g. no entity filter). */
92
- catalog?: string;
93
- }
94
- interface AXPCatalogAiMetadata {
95
- shortDescription?: string;
96
- /**
97
- * Long-form guidance appended to LLM tool descriptions (not for short UI/registry copy).
98
- * Keep root `description` concise for pickers and entity rows.
99
- */
100
- instruction?: string;
101
- tags?: string[];
102
- usage?: AXPCatalogAiUsageMetadata;
103
- contracts?: AXPCatalogAiContractsMetadata;
104
- safety?: AXPCatalogAiSafetyMetadata;
105
- performance?: AXPCatalogAiPerformanceMetadata;
106
- nextSteps?: AXPCatalogAiNextStepMetadata[];
107
- resultSemantics?: AXPCatalogAiResultSemanticsMetadata;
108
- /**
109
- * Default input fragment merged for AI/tool invocations (catalog & tooling).
110
- * Runtime merge for a given entry is applied in the AI module (not the generic command executor).
111
- */
112
- toolInputDefaults?: Record<string, unknown>;
113
- /**
114
- * Optional JSON Schema fragment for LLM tool `parameters` (OpenAI-style function calling).
115
- * Merged over the auto-generated schema from catalog `inputs` (`properties` / `required` deep-merged).
116
- * Use when widget-to-type inference is insufficient (e.g. `object`, `array`, `enum`, `format`).
117
- */
118
- toolParametersSchema?: Record<string, unknown>;
119
- }
120
- type AXPCatalogExecutionMode = 'frontend' | 'backend' | 'both';
121
- /**
122
- * Where this catalog entry is intended to appear in product tooling (AI agents, workflow automation pickers, etc.).
123
- * Omitted = not declared here; runtimes may fall back to other metadata (e.g. `ai.tags`).
124
- */
125
- type AXPCatalogCapability = 'ai' | 'workflow';
126
- interface AXPCatalogMetadataDefinitionBase {
127
- title: string;
128
- description: string;
129
- inputs?: AXPCatalogSchemaPropertyDefinition[];
130
- outputs?: AXPCatalogSchemaPropertyDefinition[];
131
- ai?: AXPCatalogAiMetadata;
132
- capabilities?: AXPCatalogCapability[];
133
- categories?: AXPDefinitionCategory | AXPDefinitionCategory[];
134
- }
135
-
136
- /**
137
- * Build-time command metadata for AXPCommand implementations.
138
- * `inputs` / `outputs` are schema rows (same family as entity optionDefinitions).
139
- * Validation entries: only `rule` name and optional `options` (no title/message on rules).
140
- * Do not import from Angular templates; sidecars may import `defineCommand` from `@acorex/platform/runtime`.
141
- *
142
- * Query metadata (fetch-only, no outcomes) is defined in `../queries/query-definition.types.ts` with `defineQuery`.
143
- * Widget metadata sidecars use `../widgets/widget-definition.types.ts` with `defineWidget`.
144
- */
145
-
146
- type AXPCommandOutcomeDefinition = {
147
- mode: 'static';
148
- values: string[];
149
- } | {
150
- mode: 'dynamic';
151
- summary: string;
152
- derivesFrom: string;
153
- examples?: string[];
154
- };
155
- interface AXPCommandMetadataDefinition extends AXPCatalogMetadataDefinitionBase {
156
- /** Runtime registration key (provideCommand / provideCommandSetups). */
157
- key: string;
158
- executionMode: AXPCatalogExecutionMode;
159
- outcomes: AXPCommandOutcomeDefinition;
160
- }
161
-
162
- /**
163
- * Typed identity helper for command metadata sidecars.
164
- */
165
- declare function defineCommand<T extends AXPCommandMetadataDefinition>(definition: T): T;
166
-
167
- declare const AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM: AXPDefinitionCategory;
168
- declare const AXP_CATALOG_DEFINITION_CATEGORY_ENTITY: AXPDefinitionCategory;
169
- declare const AXP_CATALOG_DEFINITION_CATEGORY_STORAGE: AXPDefinitionCategory;
170
- declare const AXP_CATALOG_DEFINITION_CATEGORY_WIDGETS: AXPDefinitionCategory;
171
- declare const AXP_CATALOG_DEFINITION_CATEGORY_WORKFLOW: AXPDefinitionCategory;
172
- declare const AXP_CATALOG_DEFINITION_CATEGORY_UTILITY: AXPDefinitionCategory;
173
- declare const AXP_CATALOG_DEFINITION_CATEGORY_SETTINGS: AXPDefinitionCategory;
174
- declare const AXP_CATALOG_DEFINITION_CATEGORY_AI_TOOLS: AXPDefinitionCategory;
175
- declare const AXP_CATALOG_DEFINITION_CATEGORY_SECURITY: AXPDefinitionCategory;
176
- declare const AXP_CATALOG_DEFINITION_CATEGORY_DATA_MANAGEMENT: AXPDefinitionCategory;
177
- declare const AXP_CATALOG_DEFINITION_CATEGORY_ASSESSMENT: AXPDefinitionCategory;
178
- declare const AXP_CATALOG_DEFINITION_CATEGORY_REPORT: AXPDefinitionCategory;
179
- declare const AXP_CATALOG_DEFINITION_CATEGORY_ORGANIZATION: AXPDefinitionCategory;
180
- declare const AXP_CATALOG_DEFINITION_CATEGORY_TENANT: AXPDefinitionCategory;
181
- declare const AXP_CATALOG_DEFINITION_CATEGORY_HUMAN_CAPITAL: AXPDefinitionCategory;
182
- declare const AXP_CATALOG_DEFINITION_CATEGORY_PRODUCT: AXPDefinitionCategory;
183
- declare const AXP_CATALOG_DEFINITION_CATEGORY_FILE_WIDGET: AXPDefinitionCategory;
184
-
185
7
  type AXPCommandExecutionStage = 'before' | 'after';
186
8
  interface AXPCommandExecutionEvent<TInput = unknown, TResult = unknown> {
187
9
  stage: AXPCommandExecutionStage;
@@ -233,11 +55,6 @@ interface AXPCommandExtension {
233
55
  }
234
56
  declare const AXP_COMMAND_EXTENSION: InjectionToken<AXPCommandExtension[]>;
235
57
 
236
- type AXPExecuteCommandResultPromise<TResult = any> = Promise<AXPExecuteCommandResult<TResult>>;
237
- interface AXPCommand<TInput = any, TResult = any> {
238
- execute(input: TInput): AXPExecuteCommandResultPromise<TResult>;
239
- }
240
-
241
58
  declare class AXPCommandRegistry {
242
59
  private registry;
243
60
  private middlewares;
@@ -282,25 +99,6 @@ type AXPCommandLoader = {
282
99
  declare function provideCommandSetups(entries: AXPCommandLoader[]): EnvironmentProviders;
283
100
  declare function provideCommand(key: string, loader: () => Type<AXPCommand> | Promise<Type<AXPCommand>>): EnvironmentProviders;
284
101
 
285
- /**
286
- * Build-time query metadata for AXPQuery implementations.
287
- * Mirrors command metadata shape except there are no `outcomes` (queries only `fetch`).
288
- * Shares {@link AXPCatalogMetadataDefinitionBase} with commands and widgets; `inputs` / `outputs` live on the base.
289
- */
290
-
291
- /** One input/output property description for query definitions (same as command / widget catalog rows). */
292
- type AXPQuerySchemaPropertyDefinition = AXPCatalogSchemaPropertyDefinition;
293
- interface AXPQueryMetadataDefinition extends AXPCatalogMetadataDefinitionBase {
294
- /** Runtime registration key (provideQuerySetups). */
295
- key: string;
296
- executionMode: AXPCatalogExecutionMode;
297
- }
298
-
299
- /**
300
- * Typed identity helper for query metadata sidecars.
301
- */
302
- declare function defineQuery<T extends AXPQueryMetadataDefinition>(definition: T): T;
303
-
304
102
  type AXPQueryMiddleware<TInput = any, TResult = any> = (input: TInput, next: (input: TInput) => Promise<TResult>) => Promise<TResult>;
305
103
  declare function composeQueryMiddlewares<TInput, TResult>(middlewares: AXPQueryMiddleware<TInput, TResult>[]): (handler: (input: TInput) => Promise<TResult>) => (input: TInput) => Promise<TResult>;
306
104
 
@@ -311,10 +109,6 @@ type AXPQueryMiddlewareEntry = (AXPQueryMiddleware | {
311
109
  })[];
312
110
  declare function provideQueryMiddleware(entries: AXPQueryMiddlewareEntry): EnvironmentProviders;
313
111
 
314
- interface AXPQuery<TInput = any, TResult = any> {
315
- fetch(input: TInput): Promise<TResult>;
316
- }
317
-
318
112
  declare const AXP_QUERY_SETUP: InjectionToken<void>;
319
113
  type AXPQueryLoaderEntry = {
320
114
  key: string;
@@ -367,70 +161,6 @@ declare class AXPQueryService {
367
161
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPQueryService>;
368
162
  }
369
163
 
370
- /**
371
- * Build-time widget metadata sidecars (parallel to {@link AXPWidgetConfig} in layout/widget-core).
372
- * Extends {@link AXPCatalogMetadataDefinitionBase}; `inputs` / `outputs` use the same schema rows as commands/queries.
373
- * Sidecars may import `defineWidget` from `@acorex/platform/runtime`.
374
- */
375
-
376
- /** Same surface values as {@link AXPWidgetViewType} in layout/widget-core. */
377
- type AXPWidgetMetadataViewType = 'container' | 'editor' | 'action' | 'view' | 'filter' | 'validation' | 'dashboard';
378
- /** Same values as {@link AXPWidgetGroup} / {@link AXPWidgetGroupEnum} in layout/widget-core. */
379
- type AXPWidgetMetadataGroup = 'form-element' | 'dashboard-widget' | 'form-template' | 'property-editor' | 'meta-data' | 'setting-widget' | 'entity-widget' | 'utility-widget' | 'base-widget';
380
- /**
381
- * Built-in default filter widget names from {@link AXPWidgetConfig.defaultFilterWidgetName}.
382
- * Other string values remain valid for custom filters.
383
- */
384
- type AXPWidgetMetadataDefaultFilterName = 'string-filter' | 'number-filter' | 'datetime-filter' | 'boolean-filter' | 'select-filter' | 'lookup-filter' | 'time-duration-filter';
385
- /**
386
- * Widget renderer surface aligned with {@link AXPWidgetConfig.components} keys in layout/widget-core.
387
- */
388
- type AXPWidgetAiRenderSurfaceMode = 'view' | 'edit' | 'column' | 'designer' | 'print' | 'filter';
389
- /**
390
- * One line of guidance for agents: which Angular component runs in this surface and how it relates to data.
391
- */
392
- interface AXPWidgetAiRenderSurface {
393
- mode: AXPWidgetAiRenderSurfaceMode;
394
- summary: string;
395
- }
396
- /**
397
- * AI hints for layout/form agents beyond {@link AXPCatalogAiMetadata}.
398
- * Prefer `outputs` on {@link AXPCatalogMetadataDefinitionBase} for structured bound-value shape;
399
- * use `renderSurfaces` for per-mode behavior (e.g. grid uses `column`, not `edit`).
400
- */
401
- interface AXPWidgetAiMetadata extends AXPCatalogAiMetadata {
402
- /** Per-surface rendering notes (view vs edit vs column vs designer). */
403
- renderSurfaces?: readonly AXPWidgetAiRenderSurface[];
404
- /** Other widget `name` values often used next to or instead of this one. */
405
- relatedWidgetNames?: string[];
406
- /**
407
- * Short layout or options snippets for few-shot style documentation (not executed).
408
- */
409
- layoutExamples?: string[];
410
- }
411
- interface AXPWidgetMetadataDefinition extends Omit<AXPCatalogMetadataDefinitionBase, 'capabilities'> {
412
- /** Runtime widget registry name (same role as `AXPWidgetConfig.name`). */
413
- name: string;
414
- icon?: string;
415
- subCategory?: AXPDefinitionCategory;
416
- groups?: readonly AXPWidgetMetadataGroup[];
417
- defaultFilterWidgetName?: AXPWidgetMetadataDefaultFilterName | string;
418
- type: AXPWidgetMetadataViewType;
419
- /**
420
- * Widget-specific AI block (subtype of base `ai`); omit to use plain {@link AXPCatalogAiMetadata} from base.
421
- */
422
- ai?: AXPWidgetAiMetadata;
423
- }
424
-
425
- /**
426
- * Typed identity helper for widget metadata sidecars.
427
- */
428
- declare function defineWidget<T extends AXPWidgetMetadataDefinition>(definition: T): T;
429
-
430
- interface AXPViewProvider<TInput = any> {
431
- provide(input: TInput): Promise<AXPViewDefinition>;
432
- }
433
-
434
164
  type AXPViewMiddleware<TInput = any> = (input: TInput, next: (input: TInput) => Promise<AXPViewDefinition>) => Promise<AXPViewDefinition>;
435
165
  declare function composeViewMiddlewares<TInput>(middlewares: AXPViewMiddleware<TInput>[]): (handler: (input: TInput) => Promise<AXPViewDefinition>) => (input: TInput) => Promise<AXPViewDefinition>;
436
166
 
@@ -567,5 +297,5 @@ declare class AXPRuntimeModule {
567
297
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPRuntimeModule>;
568
298
  }
569
299
 
570
- export { AXPCommandEventsService, AXPCommandExecutor, AXPCommandRegistry, AXPCommandService, AXPPolicyEngineContext, AXPPolicyEngineDirective, AXPPolicyEngineRegistry, AXPPolicyEngineService, AXPQueryExecutor, AXPQueryRegistry, AXPQueryService, AXPRuntimeModule, AXPViewExecutor, AXPViewRegistry, AXPViewService, AXP_CATALOG_DEFINITION_CATEGORY_AI_TOOLS as AXP_COMMAND_DEFINITION_CATEGORY_AI_TOOLS, AXP_CATALOG_DEFINITION_CATEGORY_ASSESSMENT as AXP_COMMAND_DEFINITION_CATEGORY_ASSESSMENT, AXP_CATALOG_DEFINITION_CATEGORY_DATA_MANAGEMENT as AXP_COMMAND_DEFINITION_CATEGORY_DATA_MANAGEMENT, AXP_CATALOG_DEFINITION_CATEGORY_ENTITY as AXP_COMMAND_DEFINITION_CATEGORY_ENTITY, AXP_CATALOG_DEFINITION_CATEGORY_FILE_WIDGET as AXP_COMMAND_DEFINITION_CATEGORY_FILE_WIDGET, AXP_CATALOG_DEFINITION_CATEGORY_HUMAN_CAPITAL as AXP_COMMAND_DEFINITION_CATEGORY_HUMAN_CAPITAL, AXP_CATALOG_DEFINITION_CATEGORY_ORGANIZATION as AXP_COMMAND_DEFINITION_CATEGORY_ORGANIZATION, AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM as AXP_COMMAND_DEFINITION_CATEGORY_PLATFORM, AXP_CATALOG_DEFINITION_CATEGORY_PRODUCT as AXP_COMMAND_DEFINITION_CATEGORY_PRODUCT, AXP_CATALOG_DEFINITION_CATEGORY_REPORT as AXP_COMMAND_DEFINITION_CATEGORY_REPORT, AXP_CATALOG_DEFINITION_CATEGORY_SECURITY as AXP_COMMAND_DEFINITION_CATEGORY_SECURITY, AXP_CATALOG_DEFINITION_CATEGORY_SETTINGS as AXP_COMMAND_DEFINITION_CATEGORY_SETTINGS, AXP_CATALOG_DEFINITION_CATEGORY_STORAGE as AXP_COMMAND_DEFINITION_CATEGORY_STORAGE, AXP_CATALOG_DEFINITION_CATEGORY_TENANT as AXP_COMMAND_DEFINITION_CATEGORY_TENANT, AXP_CATALOG_DEFINITION_CATEGORY_UTILITY as AXP_COMMAND_DEFINITION_CATEGORY_UTILITY, AXP_CATALOG_DEFINITION_CATEGORY_WORKFLOW as AXP_COMMAND_DEFINITION_CATEGORY_WORKFLOW, AXP_COMMAND_EXTENSION, AXP_COMMAND_MIDDLEWARE_SETUP, AXP_COMMAND_SETUP, AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, AXP_POLICY_EXTENSION, AXP_CATALOG_DEFINITION_CATEGORY_ENTITY as AXP_QUERY_DEFINITION_CATEGORY_ENTITY, AXP_CATALOG_DEFINITION_CATEGORY_PLATFORM as AXP_QUERY_DEFINITION_CATEGORY_PLATFORM, AXP_CATALOG_DEFINITION_CATEGORY_STORAGE as AXP_QUERY_DEFINITION_CATEGORY_STORAGE, AXP_CATALOG_DEFINITION_CATEGORY_WIDGETS as AXP_QUERY_DEFINITION_CATEGORY_WIDGETS, AXP_QUERY_EXTENSION, AXP_QUERY_MIDDLEWARE_SETUP, AXP_QUERY_SETUP, AXP_VIEW_EXTENSION, AXP_VIEW_SETUP, composeCommandMiddlewares, composePolicyEngineMiddlewares, composeQueryMiddlewares, composeViewMiddlewares, defineCommand, defineQuery, defineWidget, provideCommand, provideCommandMiddleware, provideCommandSetups, providePolicySetups, provideQueryMiddleware, provideQuerySetups, provideViewSetup, provideViewSetups };
571
- export type { AXPCatalogAiContractsMetadata, AXPCatalogAiMetadata, AXPCatalogAiNextStepMetadata, AXPCatalogAiPerformanceCost, AXPCatalogAiPerformanceMetadata, AXPCatalogAiResultSemanticsMetadata, AXPCatalogAiSafetyKind, AXPCatalogAiSafetyMetadata, AXPCatalogAiUsageMetadata, AXPCatalogCapability, AXPCatalogExecutionMode, AXPCatalogInterfaceDefinitionValue, AXPCatalogMetadataDefinitionBase, AXPCatalogPropertyBindingHints, AXPCatalogSchemaPropertyDefinition, AXPCatalogValidationRuleValue, AXPCommand, AXPCommandExecutionEvent, AXPCommandExecutionStage, AXPCommandExtension, AXPCommandMetadataDefinition, AXPCommandMiddleware, AXPCommandOutcomeDefinition, AXPExecuteCommandResultPromise, AXPPolicy, AXPPolicyEngineMiddleware, AXPPolicyExtension, AXPQuery, AXPQueryExtension, AXPQueryMetadataDefinition, AXPQueryMiddleware, AXPQuerySchemaPropertyDefinition, AXPViewExtension, AXPViewMiddleware, AXPViewProvider, AXPWidgetAiMetadata, AXPWidgetAiRenderSurface, AXPWidgetAiRenderSurfaceMode, AXPWidgetMetadataDefaultFilterName, AXPWidgetMetadataDefinition, AXPWidgetMetadataGroup, AXPWidgetMetadataViewType };
300
+ export { AXPCommandEventsService, AXPCommandExecutor, AXPCommandRegistry, AXPCommandService, AXPPolicyEngineContext, AXPPolicyEngineDirective, AXPPolicyEngineRegistry, AXPPolicyEngineService, AXPQueryExecutor, AXPQueryRegistry, AXPQueryService, AXPRuntimeModule, AXPViewExecutor, AXPViewRegistry, AXPViewService, AXP_COMMAND_EXTENSION, AXP_COMMAND_MIDDLEWARE_SETUP, AXP_COMMAND_SETUP, AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, AXP_POLICY_EXTENSION, AXP_QUERY_EXTENSION, AXP_QUERY_MIDDLEWARE_SETUP, AXP_QUERY_SETUP, AXP_VIEW_EXTENSION, AXP_VIEW_SETUP, composeCommandMiddlewares, composePolicyEngineMiddlewares, composeQueryMiddlewares, composeViewMiddlewares, provideCommand, provideCommandMiddleware, provideCommandSetups, providePolicySetups, provideQueryMiddleware, provideQuerySetups, provideViewSetup, provideViewSetups };
301
+ export type { AXPCommandExecutionEvent, AXPCommandExecutionStage, AXPCommandExtension, AXPCommandMiddleware, AXPPolicy, AXPPolicyEngineMiddleware, AXPPolicyExtension, AXPQueryExtension, AXPQueryMiddleware, AXPViewExtension, AXPViewMiddleware };
@@ -7,11 +7,11 @@ import { AXValueChangedEvent } from '@acorex/cdk/common';
7
7
  import { AXActionSheetService } from '@acorex/components/action-sheet';
8
8
  import { AXDataTableComponent, AXRowCommandItem, AXDataTableRowDbClick, AXRowCommandItemClickEvent, AXDataTableRowCssClassResolver, AXDataTableCellCssClassResolver, onColumnSizeChangedEvent, AXColumnsOrderChangedEvent } from '@acorex/components/data-table';
9
9
  import { AXUnsubscriber } from '@acorex/core/utils';
10
- import { AXPDeviceService, AXPActionMenuItem } from '@acorex/platform/core';
10
+ import { AXPDeviceService } from '@acorex/platform/core';
11
11
  import { AXPEntityCommandTriggerViewModel, AXPEntityDetailListViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewSortPropViewModel } from '@acorex/platform/layout/entity';
12
- import { AXPlatform } from '@acorex/core/platform';
13
12
  import * as _acorex_platform_contracts from '@acorex/platform/contracts';
14
- import { AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex/platform/contracts';
13
+ import { AXPBreadcrumbItem, AXPActionMenuItem, AXPExecuteCommand } from '@acorex/platform/contracts';
14
+ import { AXPlatform } from '@acorex/core/platform';
15
15
  import { AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';
16
16
  import { AXDataPagerChangedEvent, AXDataPagerMode } from '@acorex/components/data-pager';
17
17
  import * as _acorex_platform_common from '@acorex/platform/common';
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-layout-widgets-tabular-data-edit-popup.component-BvFykMTH.mjs","sources":["../../../../libs/platform/layout/widgets/src/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.ts"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport {\n AXDataTableComponent,\n AXDataTableModule,\n AXRowCommandItem,\n AXRowCommandItemClickEvent,\n} from '@acorex/components/data-table';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPDataGenerator } from '@acorex/platform/contracts';\nimport { AXPContextChangeEvent } from '@acorex/platform/contracts';\n\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, viewChild } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPTabularDataColumn } from './tabular-widget.types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form #form>\n <div class=\"ax-p-4\">\n <ax-data-table\n #grid\n [paging]=\"false\"\n [allowReordering]=\"true\"\n (selectedRowsChange)=\"handleSelectionChange($event)\"\n [dataSource]=\"dataSource\"\n class=\"ax-h-96 ax-overflow-auto\"\n >\n @for (column of columns; track $index) {\n <ax-text-column\n width=\"200px\"\n [caption]=\"column.title\"\n [dataField]=\"column.name\"\n [cellTemplate]=\"cell\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ng-template #cell let-item>\n <ng-container\n axp-widget-renderer\n [node]=\"{\n path: item.rowIndex + '.' + column.name,\n type: column.type,\n options: column.options ?? {},\n }\"\n [mode]=\"'edit'\"\n >\n </ng-container>\n </ng-template>\n }\n <ax-command-column\n fixed=\"end\"\n [width]=\"getCommandRowItems.length * 60 + 'px'\"\n [items]=\"getCommandRowItems\"\n (onItemClick)=\"handleRowCommandClick($event)\"\n ></ax-command-column>\n </ax-data-table>\n @if (!disabled) {\n <div class=\"ax-flex ax-justify-end ax-py-4\">\n <ax-button\n [text]=\"(this.context ?? []).length ? 'Start Adding Items' : 'Add Your First Item'\"\n look=\"twotone\"\n [disabled]=\"disabled\"\n (onClick)=\"addRecord()\"\n class=\"ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.discard.title' | translate | async\" (onClick)=\"onCloseDiscard()\"></ax-button>\n <ax-button\n color=\"primary\"\n [text]=\"'@general:actions.ok.title' | translate | async\"\n (onClick)=\"handleSaveClick(form)\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n </ax-form>\n </axp-widgets-container>\n `,\n imports: [\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n AXPWidgetCoreModule,\n AXDataTableModule,\n AXTranslationModule,\n AXFormModule,\n ],\n})\nexport class AXPTabularDataPopupComponent extends AXBasePageComponent {\n context: any;\n columns: AXPTabularDataColumn[];\n disabled: boolean = false;\n defaultRowCount: number = 0;\n contextDiscard: any;\n\n getCommandRowItems: AXRowCommandItem[] = [\n {\n name: 'delete',\n text: \"@general:actions.delete.title\",\n icon: 'fa-light fa-trash ax-text-danger',\n //divided: boolean,\n //disabled: boolean,\n color: 'danger',\n },\n ];\n\n protected override ngOnInit(): void {\n this.columns = this.columns.filter((col) => col.name != null && col.name != '' && col.type != null);\n\n this.columns = this.columns.map((col) => {\n return {\n ...col,\n options: {\n ...(col.options ?? {}),\n validationRules: [\n {\n rule: 'required',\n },\n ],\n },\n };\n });\n this.contextDiscard = cloneDeep(this.context);\n if (this.context == null || this.context?.length == 0) {\n for (let i = 0; i < this.defaultRowCount; i++) {\n this.addRecord();\n }\n }\n }\n\n protected dataSource = new AXDataSource({\n load: async () => {\n this.context = (this.context ?? []).map((x: any) => {\n return {\n ...x,\n id: AXPDataGenerator.uuid(),\n options: {},\n };\n });\n const items = this.context;\n console.log(this.context);\n\n return {\n items: items ?? [],\n total: (items ?? []).length,\n };\n },\n pageSize: 1,\n key: 'gridItem',\n });\n\n protected grid = viewChild<AXDataTableComponent>('grid');\n\n handleContextChange(e: AXPContextChangeEvent) {\n this.context = e.data;\n }\n\n onCloseDiscard() {\n this.close({\n context: this.contextDiscard,\n });\n }\n\n addRecord() {\n console.log(this.columns);\n\n const value = this.context ?? [];\n const newRecord = this.columns?.reduce((acc: { [key: string]: any }, column) => {\n acc[column.name] = ''; // or any default value\n return acc;\n }, {});\n console.log(value);\n this.context = [...value, newRecord];\n this.grid()?.refresh();\n }\n\n handleSelectionChange(e: any) {\n console.log(e);\n }\n\n protected async handleRowCommandClick(e: AXRowCommandItemClickEvent) {\n if (e.name == 'delete') {\n this.context = this.context.filter((item: any) => item.id !== e.data.id);\n this.grid()?.refresh();\n }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n console.log(formResult.rules);\n\n if (formResult.result) {\n this.close({\n context: this.context,\n });\n }\n }\n}\n"],"names":["i1","i2","i3","i4","i5","i6","i7"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsGM,MAAO,4BAA6B,SAAQ,mBAAmB,CAAA;AAjFrE,IAAA,WAAA,GAAA;;QAoFE,IAAA,CAAA,QAAQ,GAAY,KAAK;QACzB,IAAA,CAAA,eAAe,GAAW,CAAC;AAG3B,QAAA,IAAA,CAAA,kBAAkB,GAAuB;AACvC,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,IAAI,EAAE,+BAA+B;AACrC,gBAAA,IAAI,EAAE,kCAAkC;;;AAGxC,gBAAA,KAAK,EAAE,QAAQ;AAChB,aAAA;SACF;QA0BS,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,CAAC;YACtC,IAAI,EAAE,YAAW;AACf,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAM,KAAI;oBACjD,OAAO;AACL,wBAAA,GAAG,CAAC;AACJ,wBAAA,EAAE,EAAE,gBAAgB,CAAC,IAAI,EAAE;AAC3B,wBAAA,OAAO,EAAE,EAAE;qBACZ;AACH,gBAAA,CAAC,CAAC;AACF,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;AAC1B,gBAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBAEzB,OAAO;oBACL,KAAK,EAAE,KAAK,IAAI,EAAE;AAClB,oBAAA,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM;iBAC5B;YACH,CAAC;AACD,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,GAAG,EAAE,UAAU;AAChB,SAAA,CAAC;AAEQ,QAAA,IAAA,CAAA,IAAI,GAAG,SAAS,CAAuB,MAAM,2EAAC;AA8CzD,IAAA;IA3FoB,QAAQ,GAAA;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AAEnG,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;YACtC,OAAO;AACL,gBAAA,GAAG,GAAG;AACN,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;AACtB,oBAAA,eAAe,EAAE;AACf,wBAAA;AACE,4BAAA,IAAI,EAAE,UAAU;AACjB,yBAAA;AACF,qBAAA;AACF,iBAAA;aACF;AACH,QAAA,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7C,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE;AACrD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,CAAC,SAAS,EAAE;YAClB;QACF;IACF;AAyBA,IAAA,mBAAmB,CAAC,CAAwB,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI;IACvB;IAEA,cAAc,GAAA;QACZ,IAAI,CAAC,KAAK,CAAC;YACT,OAAO,EAAE,IAAI,CAAC,cAAc;AAC7B,SAAA,CAAC;IACJ;IAEA,SAAS,GAAA;AACP,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAEzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;AAChC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAA2B,EAAE,MAAM,KAAI;YAC7E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACtB,YAAA,OAAO,GAAG;QACZ,CAAC,EAAE,EAAE,CAAC;AACN,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;AACpC,QAAA,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE;IACxB;AAEA,IAAA,qBAAqB,CAAC,CAAM,EAAA;AAC1B,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB;IAEU,MAAM,qBAAqB,CAAC,CAA6B,EAAA;AACjE,QAAA,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE;YACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACxE,YAAA,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE;QACxB;IACF;IAEU,MAAM,eAAe,CAAC,IAAqB,EAAA;AACnD,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;AAE7B,QAAA,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC;gBACT,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,aAAA,CAAC;QACJ;IACF;8GA5GW,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA/E7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAEC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGH,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAjFxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoET,EAAA,CAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,iBAAiB;wBACjB,cAAc;wBACd,mBAAmB;wBACnB,iBAAiB;wBACjB,mBAAmB;wBACnB,YAAY;AACb,qBAAA;AACF,iBAAA;kEAgEkD,MAAM,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;;;"}