@acorex/platform 21.0.0-next.39 → 21.0.0-next.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-common.mjs +6 -2
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +8 -1
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +3 -0
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +22 -5
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +25 -13
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +203 -55
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +622 -121
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +169 -85
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +643 -311
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +120 -9
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs → acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs → acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs → acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +10 -10
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs} +2 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs} +38 -16
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +183 -84
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +50 -10
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-core.d.ts +13 -2
- package/types/acorex-platform-domain.d.ts +28 -2
- package/types/acorex-platform-layout-builder.d.ts +41 -27
- package/types/acorex-platform-layout-designer.d.ts +55 -15
- package/types/acorex-platform-layout-entity.d.ts +145 -11
- package/types/acorex-platform-layout-widget-core.d.ts +81 -68
- package/types/acorex-platform-layout-widgets.d.ts +25 -5
- package/types/acorex-platform-runtime.d.ts +156 -61
- package/types/acorex-platform-workflow.d.ts +37 -2
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs +0 -65
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i1$3 from '@acorex/platform/layout/widget-core';
|
|
2
|
-
import { createStringProperty, AXPWidgetsCatalog, createBooleanProperty, createSelectProperty, createNumberProperty, cloneProperty, AXPWidgetCoreModule, AXPDataListWidgetComponent, AXPColumnWidgetComponent, AXPLayoutBaseWidgetComponent, AXPWidgetGroupEnum,
|
|
2
|
+
import { createStringProperty, AXPWidgetsCatalog, createBooleanProperty, createSelectProperty, createNumberProperty, cloneProperty, AXPWidgetCoreModule, AXPDataListWidgetComponent, AXPColumnWidgetComponent, AXPLayoutBaseWidgetComponent, AXPWidgetGroupEnum, AXP_WIDGETS_ACTION_SUB_CONTROLS, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_EDITOR_CATEGORY, AXPValueWidgetComponent, AXP_WIDGETS_EDITOR_SUB_CHOICE, AXP_WIDGETS_EDITOR_SUB_VISUAL, AXP_WIDGETS_EDITOR_SUB_COMPOSITE, AXP_WIDGETS_EDITOR_SUB_DATETIME, AXP_WIDGETS_EDITOR_SUB_RICH, AXP_WIDGETS_EDITOR_SUB_TEXT_INPUTS, AXP_WIDGETS_EDITOR_SUB_NUMERIC, AXPWidgetStatus, AXP_WIDGETS_ADVANCE_SUB_MEDIA, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_ADVANCE_SUB_INPUT, AXP_WIDGETS_LAYOUT_SUB_LISTS, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGETS_ADVANCE_SUB_DATA, AXP_WIDGETS_ADVANCE_SUB_TOOLS, AXP_WIDGETS_EDITOR_SUB_CONFIG, AXPWidgetRegistryService, AXPPropertyEditorHelper, AXP_WIDGETS_LAYOUT_SUB_GRID, AXPBlockBaseLayoutWidgetComponent, AXP_WIDGETS_LAYOUT_SUB_SURFACES, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXP_WIDGETS_LAYOUT_SUB_SHELL, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, findNonEmptyBreakpoints, AXPGridItemBaseLayoutWidgetComponent, AXP_WIDGETS_LAYOUT_SUB_UTILITY, AXPGridBaseLayoutWidgetComponent, AXP_WIDGETS_LAYOUT_SUB_TABS, AXP_WIDGET_DEFINITION_PROVIDER, normalizeDefinitionCategories } from '@acorex/platform/layout/widget-core';
|
|
3
3
|
import { AX_STYLE_COLOR_TYPES, AX_STYLE_LOOK_TYPES, AXDataSource, convertArrayToDataSource } from '@acorex/cdk/common';
|
|
4
4
|
import { AXActionSheetService } from '@acorex/components/action-sheet';
|
|
5
5
|
import * as i1$2 from '@acorex/components/badge';
|
|
@@ -119,6 +119,8 @@ import { AXCronJobModule } from '@acorex/components/cron-job';
|
|
|
119
119
|
import { AXTimeDurationFormatter, AXCalendarService } from '@acorex/core/date-time';
|
|
120
120
|
import * as i3$6 from '@acorex/components/time-duration';
|
|
121
121
|
import { AXTimeDurationModule } from '@acorex/components/time-duration';
|
|
122
|
+
import * as i4$1 from '@acorex/components/tooltip';
|
|
123
|
+
import { AXTooltipModule } from '@acorex/components/tooltip';
|
|
122
124
|
import * as i1$l from '@acorex/components/alert';
|
|
123
125
|
import { AXAlertModule } from '@acorex/components/alert';
|
|
124
126
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
@@ -1310,8 +1312,7 @@ class AXPSelectLanguagePopup extends AXBasePageComponent {
|
|
|
1310
1312
|
if (this.showOtherLanguages() || !this.hasLanguagesBeyondProfiles()) {
|
|
1311
1313
|
return list;
|
|
1312
1314
|
}
|
|
1313
|
-
return list.filter((l) => l.isLocaleProfile ||
|
|
1314
|
-
this.hasTranslationContent(l.context?.value));
|
|
1315
|
+
return list.filter((l) => l.isLocaleProfile || this.hasTranslationContent(l.context?.value));
|
|
1315
1316
|
}, ...(ngDevMode ? [{ debugName: "visibleLanguageList" }] : /* istanbul ignore next */ []));
|
|
1316
1317
|
}
|
|
1317
1318
|
//#region ---- Lifecycle ----
|
|
@@ -1326,6 +1327,7 @@ class AXPSelectLanguagePopup extends AXBasePageComponent {
|
|
|
1326
1327
|
handleContextChanged(e, language) {
|
|
1327
1328
|
language.context = e.data;
|
|
1328
1329
|
}
|
|
1330
|
+
//TODO NEED TO FIX THOSE HAS NO PROFILE
|
|
1329
1331
|
onShowOtherLanguagesChanged(event) {
|
|
1330
1332
|
const next = !!event.value;
|
|
1331
1333
|
this.showOtherLanguages.set(next);
|
|
@@ -1337,8 +1339,7 @@ class AXPSelectLanguagePopup extends AXBasePageComponent {
|
|
|
1337
1339
|
if (!current) {
|
|
1338
1340
|
return list;
|
|
1339
1341
|
}
|
|
1340
|
-
const staysVisible = current.isLocaleProfile ||
|
|
1341
|
-
(!current.isLocaleProfile && this.hasTranslationContent(current.context?.value));
|
|
1342
|
+
const staysVisible = current.isLocaleProfile || (!current.isLocaleProfile && this.hasTranslationContent(current.context?.value));
|
|
1342
1343
|
if (staysVisible) {
|
|
1343
1344
|
return list;
|
|
1344
1345
|
}
|
|
@@ -1375,7 +1376,9 @@ class AXPSelectLanguagePopup extends AXBasePageComponent {
|
|
|
1375
1376
|
async onSaveButtonClick() {
|
|
1376
1377
|
const merged = { ...this.values };
|
|
1377
1378
|
this.languageList().forEach((item) => {
|
|
1378
|
-
|
|
1379
|
+
if (item.context.value) {
|
|
1380
|
+
merged[item.code] = item.context.value;
|
|
1381
|
+
}
|
|
1379
1382
|
});
|
|
1380
1383
|
this.close(merged);
|
|
1381
1384
|
}
|
|
@@ -1984,10 +1987,11 @@ var buttonWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
1984
1987
|
|
|
1985
1988
|
const AXPButtonWidget = {
|
|
1986
1989
|
name: 'button-action',
|
|
1987
|
-
title: '
|
|
1988
|
-
description: '
|
|
1990
|
+
title: '@platform-layout-widgets:widgets.button-action.title',
|
|
1991
|
+
description: '@platform-layout-widgets:widgets.button-action.description',
|
|
1989
1992
|
icon: 'fa-light fa-play',
|
|
1990
|
-
categories: [AXP_WIDGETS_ACTION_CATEGORY
|
|
1993
|
+
categories: [AXP_WIDGETS_ACTION_CATEGORY],
|
|
1994
|
+
subCategory: AXP_WIDGETS_ACTION_SUB_CONTROLS,
|
|
1991
1995
|
aiDescription: 'Primary or secondary action button. Use when the answer should offer a clear next step (submit, navigate, run) with label and optional icon.',
|
|
1992
1996
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
1993
1997
|
type: 'action',
|
|
@@ -2025,7 +2029,7 @@ const AXPConditionBuilderWidget = {
|
|
|
2025
2029
|
description: 'Builds filter conditions (field/operator/value) with AND/OR groups',
|
|
2026
2030
|
icon: 'fa-light fa-filter',
|
|
2027
2031
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
2028
|
-
groups: [AXPWidgetGroupEnum.
|
|
2032
|
+
groups: [AXPWidgetGroupEnum.BaseWidget],
|
|
2029
2033
|
type: 'editor',
|
|
2030
2034
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
|
|
2031
2035
|
components: {
|
|
@@ -2549,10 +2553,11 @@ var checkboxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
2549
2553
|
|
|
2550
2554
|
const AXPCheckBoxWidget = {
|
|
2551
2555
|
name: 'checkbox-editor',
|
|
2552
|
-
title: '
|
|
2556
|
+
title: '@platform-layout-widgets:widgets.checkbox-editor.title',
|
|
2553
2557
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
2558
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CHOICE,
|
|
2554
2559
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
2555
|
-
description: '
|
|
2560
|
+
description: '@platform-layout-widgets:widgets.checkbox-editor.description',
|
|
2556
2561
|
icon: 'fa-light fa-square-check',
|
|
2557
2562
|
defaultFilterWidgetName: 'boolean-filter',
|
|
2558
2563
|
type: 'editor',
|
|
@@ -2782,10 +2787,11 @@ var colorBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
2782
2787
|
|
|
2783
2788
|
const AXPColorBoxWidget = {
|
|
2784
2789
|
name: 'color-editor',
|
|
2785
|
-
title: '
|
|
2786
|
-
description: '
|
|
2790
|
+
title: '@platform-layout-widgets:widgets.color-editor.title',
|
|
2791
|
+
description: '@platform-layout-widgets:widgets.color-editor.description',
|
|
2787
2792
|
icon: 'fa-light fa-palette',
|
|
2788
2793
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
2794
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_VISUAL,
|
|
2789
2795
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
2790
2796
|
type: 'editor',
|
|
2791
2797
|
properties: [
|
|
@@ -3133,10 +3139,11 @@ var colorPaletteWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
3133
3139
|
|
|
3134
3140
|
const AXPColorPaletteWidget = {
|
|
3135
3141
|
name: 'color-palette-editor',
|
|
3136
|
-
title: '
|
|
3137
|
-
description: '
|
|
3142
|
+
title: '@platform-layout-widgets:widgets.color-palette-editor.title',
|
|
3143
|
+
description: '@platform-layout-widgets:widgets.color-palette-editor.description',
|
|
3138
3144
|
icon: 'fa-light fa-swatchbook',
|
|
3139
3145
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
3146
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_VISUAL,
|
|
3140
3147
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
3141
3148
|
type: 'editor',
|
|
3142
3149
|
properties: [
|
|
@@ -3362,10 +3369,11 @@ var connectedListsWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
3362
3369
|
|
|
3363
3370
|
const AXPConnectedDragDropListsWidget = {
|
|
3364
3371
|
name: 'connected-lists-editor',
|
|
3365
|
-
title: '
|
|
3366
|
-
description: '
|
|
3372
|
+
title: '@platform-layout-widgets:widgets.connected-lists-editor.title',
|
|
3373
|
+
description: '@platform-layout-widgets:widgets.connected-lists-editor.description',
|
|
3367
3374
|
icon: 'fa-light fa-arrow-right-arrow-left',
|
|
3368
3375
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
3376
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CHOICE,
|
|
3369
3377
|
groups: [AXPWidgetGroupEnum.UtilityWidget],
|
|
3370
3378
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
|
|
3371
3379
|
type: 'editor',
|
|
@@ -4143,9 +4151,10 @@ var contactWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
4143
4151
|
|
|
4144
4152
|
const AXPContactWidget = {
|
|
4145
4153
|
name: 'contact-editor',
|
|
4146
|
-
title: '
|
|
4147
|
-
description: '
|
|
4154
|
+
title: '@platform-layout-widgets:widgets.contact-editor.title',
|
|
4155
|
+
description: '@platform-layout-widgets:widgets.contact-editor.description',
|
|
4148
4156
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
4157
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_COMPOSITE,
|
|
4149
4158
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
4150
4159
|
icon: 'fa-light fa-address-book',
|
|
4151
4160
|
defaultFilterWidgetName: 'string-filter',
|
|
@@ -4195,9 +4204,10 @@ const AXPContactWidget = {
|
|
|
4195
4204
|
|
|
4196
4205
|
const AXPAddressWidget = {
|
|
4197
4206
|
name: 'address-editor',
|
|
4198
|
-
title: '
|
|
4199
|
-
description: '
|
|
4207
|
+
title: '@platform-layout-widgets:widgets.address-editor.title',
|
|
4208
|
+
description: '@platform-layout-widgets:widgets.address-editor.description',
|
|
4200
4209
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
4210
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_COMPOSITE,
|
|
4201
4211
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
4202
4212
|
icon: 'fa-light fa-location-dot',
|
|
4203
4213
|
defaultFilterWidgetName: 'string-filter',
|
|
@@ -5292,10 +5302,11 @@ var dateTimeBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
5292
5302
|
|
|
5293
5303
|
const AXPDateTimeBoxWidget = {
|
|
5294
5304
|
name: 'date-time-editor',
|
|
5295
|
-
title: '
|
|
5296
|
-
description: '
|
|
5305
|
+
title: '@platform-layout-widgets:widgets.date-time-editor.title',
|
|
5306
|
+
description: '@platform-layout-widgets:widgets.date-time-editor.description',
|
|
5297
5307
|
icon: 'fa-light fa-calendar',
|
|
5298
5308
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
5309
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_DATETIME,
|
|
5299
5310
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
5300
5311
|
type: 'editor',
|
|
5301
5312
|
defaultFilterWidgetName: 'datetime-filter',
|
|
@@ -5544,11 +5555,12 @@ var editorJsWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
5544
5555
|
|
|
5545
5556
|
const AXPEditorJsWidget = {
|
|
5546
5557
|
name: 'editor-js-editor',
|
|
5547
|
-
title: '
|
|
5548
|
-
description: '
|
|
5558
|
+
title: '@platform-layout-widgets:widgets.editor-js-editor.title',
|
|
5559
|
+
description: '@platform-layout-widgets:widgets.editor-js-editor.description',
|
|
5549
5560
|
icon: 'fa-light fa-input-text',
|
|
5550
5561
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
5551
|
-
|
|
5562
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_RICH,
|
|
5563
|
+
groups: [AXPWidgetGroupEnum.BaseWidget],
|
|
5552
5564
|
defaultFilterWidgetName: 'string-filter',
|
|
5553
5565
|
type: 'editor',
|
|
5554
5566
|
properties: [
|
|
@@ -5813,10 +5825,11 @@ var largeTextWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
5813
5825
|
|
|
5814
5826
|
const AXPLargeTextWidget = {
|
|
5815
5827
|
name: 'large-text-editor',
|
|
5816
|
-
title: '
|
|
5817
|
-
description: '
|
|
5828
|
+
title: '@platform-layout-widgets:widgets.large-text-editor.title',
|
|
5829
|
+
description: '@platform-layout-widgets:widgets.large-text-editor.description',
|
|
5818
5830
|
icon: 'fa-light fa-input-text',
|
|
5819
5831
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
5832
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_TEXT_INPUTS,
|
|
5820
5833
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
5821
5834
|
defaultFilterWidgetName: 'string-filter',
|
|
5822
5835
|
type: 'editor',
|
|
@@ -5953,10 +5966,11 @@ var listWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
5953
5966
|
|
|
5954
5967
|
const AXPDragDropListWidget = {
|
|
5955
5968
|
name: 'list-editor',
|
|
5956
|
-
title: '
|
|
5957
|
-
description: '
|
|
5969
|
+
title: '@platform-layout-widgets:widgets.list-editor.title',
|
|
5970
|
+
description: '@platform-layout-widgets:widgets.list-editor.description',
|
|
5958
5971
|
icon: 'fa-light fa-list',
|
|
5959
5972
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
5973
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CHOICE,
|
|
5960
5974
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
5961
5975
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
5962
5976
|
type: 'editor',
|
|
@@ -6232,10 +6246,11 @@ var numberBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
6232
6246
|
|
|
6233
6247
|
const AXPNumberBoxWidget = {
|
|
6234
6248
|
name: 'number-editor',
|
|
6235
|
-
title: '
|
|
6236
|
-
description: '
|
|
6249
|
+
title: '@platform-layout-widgets:widgets.number-editor.title',
|
|
6250
|
+
description: '@platform-layout-widgets:widgets.number-editor.description',
|
|
6237
6251
|
icon: 'fa-light fa-input-numeric',
|
|
6238
6252
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
6253
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_NUMERIC,
|
|
6239
6254
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
6240
6255
|
type: 'editor',
|
|
6241
6256
|
defaultFilterWidgetName: 'number-filter',
|
|
@@ -6481,10 +6496,11 @@ var passwordBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
6481
6496
|
|
|
6482
6497
|
const AXPPasswordBoxWidget = {
|
|
6483
6498
|
name: 'password-editor',
|
|
6484
|
-
title: '
|
|
6485
|
-
description: '
|
|
6499
|
+
title: '@platform-layout-widgets:widgets.password-editor.title',
|
|
6500
|
+
description: '@platform-layout-widgets:widgets.password-editor.description',
|
|
6486
6501
|
icon: 'fa-light fa-lock',
|
|
6487
6502
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
6503
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_TEXT_INPUTS,
|
|
6488
6504
|
type: 'editor',
|
|
6489
6505
|
properties: [
|
|
6490
6506
|
AXP_NAME_PROPERTY,
|
|
@@ -6844,10 +6860,11 @@ var progressBarWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
6844
6860
|
|
|
6845
6861
|
const AXPProgressBarWidget = {
|
|
6846
6862
|
name: 'progress-bar-editor',
|
|
6847
|
-
title: '
|
|
6848
|
-
description: '
|
|
6863
|
+
title: '@platform-layout-widgets:widgets.progress-bar-editor.title',
|
|
6864
|
+
description: '@platform-layout-widgets:widgets.progress-bar-editor.description',
|
|
6849
6865
|
icon: 'fa-light fa-chart-line-up',
|
|
6850
6866
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
6867
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_NUMERIC,
|
|
6851
6868
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
6852
6869
|
type: 'editor',
|
|
6853
6870
|
properties: [
|
|
@@ -7061,10 +7078,11 @@ var ratePickerWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
7061
7078
|
|
|
7062
7079
|
const AXPRatePickerWidget = {
|
|
7063
7080
|
name: 'rate-picker-editor',
|
|
7064
|
-
title: '
|
|
7065
|
-
description: '
|
|
7081
|
+
title: '@platform-layout-widgets:widgets.rate-picker-editor.title',
|
|
7082
|
+
description: '@platform-layout-widgets:widgets.rate-picker-editor.description',
|
|
7066
7083
|
icon: 'fa-light fa-star',
|
|
7067
7084
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
7085
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_NUMERIC,
|
|
7068
7086
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
7069
7087
|
defaultFilterWidgetName: 'number-filter',
|
|
7070
7088
|
type: 'editor',
|
|
@@ -7106,6 +7124,54 @@ const AXPRatePickerWidget = {
|
|
|
7106
7124
|
},
|
|
7107
7125
|
};
|
|
7108
7126
|
|
|
7127
|
+
/** Stable context path for rich-text preview dialogs (layout builder + context store). */
|
|
7128
|
+
const AXP_RICH_TEXT_DIALOG_BODY_PATH = '__axpRichTextDialogBody';
|
|
7129
|
+
/**
|
|
7130
|
+
* Turns camelCase / kebab-case property segments into Title Case words for fallback titles.
|
|
7131
|
+
*/
|
|
7132
|
+
function humanizePropertyPath(path) {
|
|
7133
|
+
if (!path) {
|
|
7134
|
+
return '';
|
|
7135
|
+
}
|
|
7136
|
+
const spaced = path.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/[-_]/g, ' ');
|
|
7137
|
+
return spaced.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
7138
|
+
}
|
|
7139
|
+
/**
|
|
7140
|
+
* Resolves dialog title: translated keys (`@...`), humanized identifiers, or plain captions.
|
|
7141
|
+
*/
|
|
7142
|
+
async function resolveRichTextPreviewTitle(translation, caption, path) {
|
|
7143
|
+
const raw = caption?.trim() || path?.trim() || '';
|
|
7144
|
+
if (!raw) {
|
|
7145
|
+
return '';
|
|
7146
|
+
}
|
|
7147
|
+
if (raw.startsWith('@')) {
|
|
7148
|
+
return (await translation.translateAsync(raw)) ?? raw;
|
|
7149
|
+
}
|
|
7150
|
+
if (/^[a-z][a-zA-Z0-9]*$/.test(raw)) {
|
|
7151
|
+
return humanizePropertyPath(raw);
|
|
7152
|
+
}
|
|
7153
|
+
return raw;
|
|
7154
|
+
}
|
|
7155
|
+
/**
|
|
7156
|
+
* Approximate visible text length for rich HTML (decides inline vs truncated column cell).
|
|
7157
|
+
*/
|
|
7158
|
+
function richTextPlainTextLength(html) {
|
|
7159
|
+
if (!html?.trim()) {
|
|
7160
|
+
return 0;
|
|
7161
|
+
}
|
|
7162
|
+
try {
|
|
7163
|
+
if (typeof DOMParser !== 'undefined') {
|
|
7164
|
+
const doc = new DOMParser().parseFromString(html, 'text/html');
|
|
7165
|
+
const text = doc.body.textContent?.replace(/\s+/g, ' ').trim() ?? '';
|
|
7166
|
+
return text.length;
|
|
7167
|
+
}
|
|
7168
|
+
}
|
|
7169
|
+
catch {
|
|
7170
|
+
/* ignore */
|
|
7171
|
+
}
|
|
7172
|
+
return html.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim().length;
|
|
7173
|
+
}
|
|
7174
|
+
|
|
7109
7175
|
class AXPRichTextWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
7110
7176
|
constructor() {
|
|
7111
7177
|
super(...arguments);
|
|
@@ -7113,23 +7179,42 @@ class AXPRichTextWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
7113
7179
|
this.layoutBuilder = inject(AXPLayoutBuilderService);
|
|
7114
7180
|
this.mlResolver = inject(AXTranslationService);
|
|
7115
7181
|
}
|
|
7182
|
+
/** Plain-text length threshold: above this, cell is clamped and clickable for full preview. */
|
|
7183
|
+
previewMaxChars() {
|
|
7184
|
+
const v = this.options['previewMaxChars'];
|
|
7185
|
+
return typeof v === 'number' && v > 0 ? v : 100;
|
|
7186
|
+
}
|
|
7187
|
+
/** Whether resolved HTML is long enough to warrant truncation + popup. */
|
|
7188
|
+
isTruncatedPreview(resolvedHtml) {
|
|
7189
|
+
return richTextPlainTextLength(resolvedHtml) > this.previewMaxChars();
|
|
7190
|
+
}
|
|
7191
|
+
onExpandClick(event) {
|
|
7192
|
+
event.nativeEvent.preventDefault();
|
|
7193
|
+
event.nativeEvent.stopPropagation();
|
|
7194
|
+
void this.openPopup();
|
|
7195
|
+
}
|
|
7116
7196
|
async openPopup() {
|
|
7117
|
-
const
|
|
7197
|
+
const lang = this.mlResolver.getActiveLang();
|
|
7198
|
+
const resolvedHtml = this.mlResolver.resolve(this.rawValue, lang) ?? '';
|
|
7199
|
+
if (!this.isTruncatedPreview(resolvedHtml)) {
|
|
7200
|
+
return;
|
|
7201
|
+
}
|
|
7202
|
+
const title = await resolveRichTextPreviewTitle(this.mlResolver, this.columnCaption, this.path);
|
|
7118
7203
|
const size = this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md';
|
|
7119
|
-
|
|
7204
|
+
await this.layoutBuilder
|
|
7120
7205
|
.create()
|
|
7121
7206
|
.dialog((dialog) => {
|
|
7122
7207
|
dialog
|
|
7123
|
-
.setTitle(
|
|
7208
|
+
.setTitle(title)
|
|
7124
7209
|
.setSize(size)
|
|
7210
|
+
.setContext({ [AXP_RICH_TEXT_DIALOG_BODY_PATH]: resolvedHtml })
|
|
7125
7211
|
.content((layoutBuilder) => {
|
|
7126
7212
|
layoutBuilder.flex((flex) => {
|
|
7127
|
-
flex.mode('view').
|
|
7128
|
-
|
|
7129
|
-
|
|
7130
|
-
|
|
7131
|
-
|
|
7132
|
-
});
|
|
7213
|
+
flex.mode('view').richText({
|
|
7214
|
+
path: AXP_RICH_TEXT_DIALOG_BODY_PATH,
|
|
7215
|
+
defaultValue: resolvedHtml,
|
|
7216
|
+
showFullContent: true,
|
|
7217
|
+
height: 400,
|
|
7133
7218
|
});
|
|
7134
7219
|
});
|
|
7135
7220
|
})
|
|
@@ -7138,22 +7223,36 @@ class AXPRichTextWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
7138
7223
|
});
|
|
7139
7224
|
})
|
|
7140
7225
|
.show();
|
|
7141
|
-
ref.close();
|
|
7142
7226
|
}
|
|
7143
7227
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRichTextWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
7144
7228
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPRichTextWidgetColumnComponent, isStandalone: true, selector: "axp-rich-text-widget-column", inputs: { rawValue: "rawValue", rowData: "rowData" }, usesInheritance: true, ngImport: i0, template: `
|
|
7145
7229
|
@let html = rawValue | translate | async;
|
|
7230
|
+
@let expandHint = '@platform-layout-widgets:widgets.rich-text-editor.column-expand-title' | translate | async;
|
|
7146
7231
|
@if (html) {
|
|
7147
|
-
|
|
7148
|
-
class="ax-
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
|
|
7152
|
-
|
|
7232
|
+
@if (isTruncatedPreview(html)) {
|
|
7233
|
+
<div class="ax-flex ax-gap-1 ax-items-start ax-min-w-0 ax-max-w-full">
|
|
7234
|
+
<div
|
|
7235
|
+
class="ax-min-w-0 ax-flex-1 ax-line-clamp-3 ax-overflow-hidden ax-break-words"
|
|
7236
|
+
[innerHTML]="html | safe: 'html'"
|
|
7237
|
+
></div>
|
|
7238
|
+
<ax-button
|
|
7239
|
+
class="ax-xs ax-shrink-0"
|
|
7240
|
+
look="blank"
|
|
7241
|
+
[iconOnly]="true"
|
|
7242
|
+
[text]="expandHint ?? ''"
|
|
7243
|
+
[title]="expandHint ?? ''"
|
|
7244
|
+
(onClick)="onExpandClick($event)"
|
|
7245
|
+
>
|
|
7246
|
+
<ax-icon icon="far fa-expand"></ax-icon>
|
|
7247
|
+
</ax-button>
|
|
7248
|
+
</div>
|
|
7249
|
+
} @else {
|
|
7250
|
+
<div class="ax-min-w-0 ax-max-w-full ax-break-words" [innerHTML]="html | safe: 'html'"></div>
|
|
7251
|
+
}
|
|
7153
7252
|
} @else {
|
|
7154
7253
|
<span class="ax-text-muted">---</span>
|
|
7155
7254
|
}
|
|
7156
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7255
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7157
7256
|
}
|
|
7158
7257
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRichTextWidgetColumnComponent, decorators: [{
|
|
7159
7258
|
type: Component,
|
|
@@ -7161,19 +7260,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7161
7260
|
selector: 'axp-rich-text-widget-column',
|
|
7162
7261
|
template: `
|
|
7163
7262
|
@let html = rawValue | translate | async;
|
|
7263
|
+
@let expandHint = '@platform-layout-widgets:widgets.rich-text-editor.column-expand-title' | translate | async;
|
|
7164
7264
|
@if (html) {
|
|
7165
|
-
|
|
7166
|
-
class="ax-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
|
|
7265
|
+
@if (isTruncatedPreview(html)) {
|
|
7266
|
+
<div class="ax-flex ax-gap-1 ax-items-start ax-min-w-0 ax-max-w-full">
|
|
7267
|
+
<div
|
|
7268
|
+
class="ax-min-w-0 ax-flex-1 ax-line-clamp-3 ax-overflow-hidden ax-break-words"
|
|
7269
|
+
[innerHTML]="html | safe: 'html'"
|
|
7270
|
+
></div>
|
|
7271
|
+
<ax-button
|
|
7272
|
+
class="ax-xs ax-shrink-0"
|
|
7273
|
+
look="blank"
|
|
7274
|
+
[iconOnly]="true"
|
|
7275
|
+
[text]="expandHint ?? ''"
|
|
7276
|
+
[title]="expandHint ?? ''"
|
|
7277
|
+
(onClick)="onExpandClick($event)"
|
|
7278
|
+
>
|
|
7279
|
+
<ax-icon icon="far fa-expand"></ax-icon>
|
|
7280
|
+
</ax-button>
|
|
7281
|
+
</div>
|
|
7282
|
+
} @else {
|
|
7283
|
+
<div class="ax-min-w-0 ax-max-w-full ax-break-words" [innerHTML]="html | safe: 'html'"></div>
|
|
7284
|
+
}
|
|
7171
7285
|
} @else {
|
|
7172
7286
|
<span class="ax-text-muted">---</span>
|
|
7173
7287
|
}
|
|
7174
7288
|
`,
|
|
7175
7289
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7176
|
-
imports: [AXSafePipe, AXTranslationModule, AsyncPipe],
|
|
7290
|
+
imports: [AXButtonModule, AXDecoratorModule, AXSafePipe, AXTranslationModule, AsyncPipe],
|
|
7177
7291
|
inputs: ['rawValue', 'rowData'],
|
|
7178
7292
|
}]
|
|
7179
7293
|
}] });
|
|
@@ -7350,28 +7464,39 @@ class AXPRichTextWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
7350
7464
|
this.platform = inject(AXPlatform);
|
|
7351
7465
|
this.layoutBuilder = inject(AXPLayoutBuilderService);
|
|
7352
7466
|
this.mlResolver = inject(AXTranslationService);
|
|
7353
|
-
|
|
7467
|
+
this.currentLanguage = toSignal(this.mlResolver.langChanges$, {
|
|
7468
|
+
initialValue: this.mlResolver.getActiveLang(),
|
|
7469
|
+
});
|
|
7470
|
+
/** Resolved HTML for inline snippet and preview dialog. */
|
|
7354
7471
|
this.displayHtml = computed(() => {
|
|
7355
7472
|
const v = this.getValue();
|
|
7356
|
-
return this.mlResolver.resolve(v);
|
|
7473
|
+
return this.mlResolver.resolve(v, this.currentLanguage());
|
|
7357
7474
|
}, ...(ngDevMode ? [{ debugName: "displayHtml" }] : /* istanbul ignore next */ []));
|
|
7475
|
+
/** Full-body preview (dialogs) vs truncated grid snippet. */
|
|
7476
|
+
this.showFullContent = computed(() => this.options()['showFullContent'] === true, ...(ngDevMode ? [{ debugName: "showFullContent" }] : /* istanbul ignore next */ []));
|
|
7477
|
+
this.previewMaxHeightPx = computed(() => {
|
|
7478
|
+
const h = this.options()['height'];
|
|
7479
|
+
return h != null && h > 0 ? h : 400;
|
|
7480
|
+
}, ...(ngDevMode ? [{ debugName: "previewMaxHeightPx" }] : /* istanbul ignore next */ []));
|
|
7358
7481
|
}
|
|
7359
7482
|
async openPopup() {
|
|
7483
|
+
const resolvedHtml = this.displayHtml();
|
|
7484
|
+
const title = await resolveRichTextPreviewTitle(this.mlResolver, undefined, this.path);
|
|
7360
7485
|
const size = this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md';
|
|
7361
|
-
|
|
7486
|
+
await this.layoutBuilder
|
|
7362
7487
|
.create()
|
|
7363
7488
|
.dialog((dialog) => {
|
|
7364
7489
|
dialog
|
|
7365
|
-
.setTitle(
|
|
7490
|
+
.setTitle(title)
|
|
7366
7491
|
.setSize(size)
|
|
7492
|
+
.setContext({ [AXP_RICH_TEXT_DIALOG_BODY_PATH]: resolvedHtml })
|
|
7367
7493
|
.content((layoutBuilder) => {
|
|
7368
7494
|
layoutBuilder.flex((flex) => {
|
|
7369
|
-
flex.mode('view').
|
|
7370
|
-
|
|
7371
|
-
|
|
7372
|
-
|
|
7373
|
-
|
|
7374
|
-
});
|
|
7495
|
+
flex.mode('view').richText({
|
|
7496
|
+
path: AXP_RICH_TEXT_DIALOG_BODY_PATH,
|
|
7497
|
+
defaultValue: resolvedHtml,
|
|
7498
|
+
showFullContent: true,
|
|
7499
|
+
height: 400,
|
|
7375
7500
|
});
|
|
7376
7501
|
});
|
|
7377
7502
|
})
|
|
@@ -7380,20 +7505,31 @@ class AXPRichTextWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
7380
7505
|
});
|
|
7381
7506
|
})
|
|
7382
7507
|
.show();
|
|
7383
|
-
ref.close();
|
|
7384
7508
|
}
|
|
7385
7509
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRichTextWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
7386
7510
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPRichTextWidgetViewComponent, isStandalone: true, selector: "axp-rich-text-widget-view", usesInheritance: true, ngImport: i0, template: `
|
|
7387
7511
|
@let html = getValue() | translate | async;
|
|
7388
|
-
@if (
|
|
7389
|
-
|
|
7390
|
-
|
|
7391
|
-
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
|
|
7512
|
+
@if (showFullContent()) {
|
|
7513
|
+
@if (html) {
|
|
7514
|
+
<div
|
|
7515
|
+
class="ax-overflow-auto ax-min-h-0 ax-rich-text-widget-full-preview"
|
|
7516
|
+
[style.max-height.px]="previewMaxHeightPx()"
|
|
7517
|
+
[innerHTML]="html | safe: 'html'"
|
|
7518
|
+
></div>
|
|
7519
|
+
} @else {
|
|
7520
|
+
<span class="ax-text-muted">---</span>
|
|
7521
|
+
}
|
|
7395
7522
|
} @else {
|
|
7396
|
-
|
|
7523
|
+
@if (html) {
|
|
7524
|
+
<span
|
|
7525
|
+
class="ax-truncate ax-underline ax-block ax-w-full ax-cursor-pointer ax-text-muted"
|
|
7526
|
+
(click)="openPopup()"
|
|
7527
|
+
[innerHTML]="html | safe: 'html'"
|
|
7528
|
+
>
|
|
7529
|
+
</span>
|
|
7530
|
+
} @else {
|
|
7531
|
+
<span class="ax-text-muted">---</span>
|
|
7532
|
+
}
|
|
7397
7533
|
}
|
|
7398
7534
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AXSafePipe, name: "safe" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7399
7535
|
}
|
|
@@ -7403,15 +7539,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
7403
7539
|
selector: 'axp-rich-text-widget-view',
|
|
7404
7540
|
template: `
|
|
7405
7541
|
@let html = getValue() | translate | async;
|
|
7406
|
-
@if (
|
|
7407
|
-
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7542
|
+
@if (showFullContent()) {
|
|
7543
|
+
@if (html) {
|
|
7544
|
+
<div
|
|
7545
|
+
class="ax-overflow-auto ax-min-h-0 ax-rich-text-widget-full-preview"
|
|
7546
|
+
[style.max-height.px]="previewMaxHeightPx()"
|
|
7547
|
+
[innerHTML]="html | safe: 'html'"
|
|
7548
|
+
></div>
|
|
7549
|
+
} @else {
|
|
7550
|
+
<span class="ax-text-muted">---</span>
|
|
7551
|
+
}
|
|
7413
7552
|
} @else {
|
|
7414
|
-
|
|
7553
|
+
@if (html) {
|
|
7554
|
+
<span
|
|
7555
|
+
class="ax-truncate ax-underline ax-block ax-w-full ax-cursor-pointer ax-text-muted"
|
|
7556
|
+
(click)="openPopup()"
|
|
7557
|
+
[innerHTML]="html | safe: 'html'"
|
|
7558
|
+
>
|
|
7559
|
+
</span>
|
|
7560
|
+
} @else {
|
|
7561
|
+
<span class="ax-text-muted">---</span>
|
|
7562
|
+
}
|
|
7415
7563
|
}
|
|
7416
7564
|
`,
|
|
7417
7565
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -7426,10 +7574,11 @@ var richTextWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
7426
7574
|
|
|
7427
7575
|
const AXPRichTextWidget = {
|
|
7428
7576
|
name: 'rich-text-editor',
|
|
7429
|
-
title: '
|
|
7430
|
-
description: '
|
|
7577
|
+
title: '@platform-layout-widgets:widgets.rich-text-editor.title',
|
|
7578
|
+
description: '@platform-layout-widgets:widgets.rich-text-editor.description',
|
|
7431
7579
|
icon: 'fa-light fa-input-text',
|
|
7432
7580
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
7581
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_RICH,
|
|
7433
7582
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
7434
7583
|
defaultFilterWidgetName: 'string-filter',
|
|
7435
7584
|
type: 'editor',
|
|
@@ -7665,35 +7814,36 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
|
|
|
7665
7814
|
this.contextService.patch(itemToExpose, true);
|
|
7666
7815
|
}
|
|
7667
7816
|
//#endregion
|
|
7668
|
-
|
|
7669
|
-
|
|
7670
|
-
|
|
7671
|
-
|
|
7672
|
-
|
|
7673
|
-
|
|
7674
|
-
|
|
7675
|
-
|
|
7676
|
-
|
|
7677
|
-
|
|
7678
|
-
|
|
7679
|
-
|
|
7817
|
+
}
|
|
7818
|
+
//#region ---- Set Value Based on Mode ----
|
|
7819
|
+
// Apply strategy even when the value comes from outside (isUserInteraction=false).
|
|
7820
|
+
if (this.filterMode()) {
|
|
7821
|
+
// Filter mode: set value with operation structure
|
|
7822
|
+
const newValue = e.value;
|
|
7823
|
+
const text = this.selectedItems().map((item) => get(item, this.textField()));
|
|
7824
|
+
this.setValue({
|
|
7825
|
+
value: newValue,
|
|
7826
|
+
displayText: text,
|
|
7827
|
+
operation: {
|
|
7828
|
+
type: this.multiple() ? 'in' : 'equal',
|
|
7829
|
+
},
|
|
7830
|
+
});
|
|
7831
|
+
}
|
|
7832
|
+
else {
|
|
7833
|
+
// Normal mode: set value directly
|
|
7834
|
+
if (this.widgetsConfigs.selectValueStrategy === 'valueField') {
|
|
7835
|
+
this.setValue(e.value);
|
|
7680
7836
|
}
|
|
7681
7837
|
else {
|
|
7682
|
-
|
|
7683
|
-
|
|
7684
|
-
this.setValue(e.value);
|
|
7838
|
+
if (this.multiple()) {
|
|
7839
|
+
this.setValue(this.selectedItems());
|
|
7685
7840
|
}
|
|
7686
7841
|
else {
|
|
7687
|
-
|
|
7688
|
-
this.setValue(this.selectedItems());
|
|
7689
|
-
}
|
|
7690
|
-
else {
|
|
7691
|
-
this.setValue(this.selectedItems()[0]);
|
|
7692
|
-
}
|
|
7842
|
+
this.setValue(this.selectedItems()[0]);
|
|
7693
7843
|
}
|
|
7694
7844
|
}
|
|
7695
|
-
//#endregion
|
|
7696
7845
|
}
|
|
7846
|
+
//#endregion
|
|
7697
7847
|
}
|
|
7698
7848
|
handleSearchValueChange(e) {
|
|
7699
7849
|
if (e.isUserInteraction) {
|
|
@@ -7907,10 +8057,11 @@ var selectBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
7907
8057
|
|
|
7908
8058
|
const AXPSelectBoxWidget = {
|
|
7909
8059
|
name: 'select-editor',
|
|
7910
|
-
title: '
|
|
7911
|
-
description: '
|
|
8060
|
+
title: '@platform-layout-widgets:widgets.select-editor.title',
|
|
8061
|
+
description: '@platform-layout-widgets:widgets.select-editor.description',
|
|
7912
8062
|
icon: 'fa-light fa-list-dropdown',
|
|
7913
8063
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
8064
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CHOICE,
|
|
7914
8065
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
7915
8066
|
defaultFilterWidgetName: 'select-filter',
|
|
7916
8067
|
type: 'editor',
|
|
@@ -8264,10 +8415,11 @@ var selectionListWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
8264
8415
|
|
|
8265
8416
|
const AXPSelectionListWidget = {
|
|
8266
8417
|
name: 'selection-list-editor',
|
|
8267
|
-
title: '
|
|
8268
|
-
description: '
|
|
8418
|
+
title: '@platform-layout-widgets:widgets.selection-list-editor.title',
|
|
8419
|
+
description: '@platform-layout-widgets:widgets.selection-list-editor.description',
|
|
8269
8420
|
icon: 'fa-light fa-list-radio',
|
|
8270
8421
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
8422
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CHOICE,
|
|
8271
8423
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
8272
8424
|
defaultFilterWidgetName: 'select-filter',
|
|
8273
8425
|
properties: [
|
|
@@ -8757,10 +8909,11 @@ var tagEditorWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
8757
8909
|
|
|
8758
8910
|
const AXPTagEditorWidget = {
|
|
8759
8911
|
name: 'tag-editor',
|
|
8760
|
-
title: '
|
|
8912
|
+
title: '@platform-layout-widgets:widgets.tag-editor.title',
|
|
8761
8913
|
icon: 'fa-light fa-tags',
|
|
8762
|
-
description: '
|
|
8914
|
+
description: '@platform-layout-widgets:widgets.tag-editor.description',
|
|
8763
8915
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
8916
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CHOICE,
|
|
8764
8917
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
8765
8918
|
type: 'editor',
|
|
8766
8919
|
defaultFilterWidgetName: 'string-filter',
|
|
@@ -9144,10 +9297,11 @@ var templateBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
9144
9297
|
|
|
9145
9298
|
const AXPTemplateBoxWidget = {
|
|
9146
9299
|
name: 'template-box-editor',
|
|
9147
|
-
title: '
|
|
9300
|
+
title: '@platform-layout-widgets:widgets.template-box-editor.title',
|
|
9148
9301
|
icon: 'fa-light fa-file-alt',
|
|
9149
|
-
description: '
|
|
9302
|
+
description: '@platform-layout-widgets:widgets.template-box-editor.description',
|
|
9150
9303
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
9304
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_TEXT_INPUTS,
|
|
9151
9305
|
type: 'editor',
|
|
9152
9306
|
defaultFilterWidgetName: 'string-filter',
|
|
9153
9307
|
properties: [
|
|
@@ -9420,10 +9574,11 @@ var textBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
9420
9574
|
|
|
9421
9575
|
const AXPTextBoxWidget = {
|
|
9422
9576
|
name: 'text-editor',
|
|
9423
|
-
title: '
|
|
9577
|
+
title: '@platform-layout-widgets:widgets.text-editor.title',
|
|
9424
9578
|
icon: 'fa-light fa-input-text',
|
|
9425
|
-
description: '
|
|
9579
|
+
description: '@platform-layout-widgets:widgets.text-editor.description',
|
|
9426
9580
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
9581
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_TEXT_INPUTS,
|
|
9427
9582
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
9428
9583
|
type: 'editor',
|
|
9429
9584
|
defaultFilterWidgetName: 'string-filter',
|
|
@@ -9765,11 +9920,12 @@ var toggleWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
9765
9920
|
|
|
9766
9921
|
const AXPToggleWidget = {
|
|
9767
9922
|
name: 'toggle-editor',
|
|
9768
|
-
title: '
|
|
9769
|
-
description: '
|
|
9923
|
+
title: '@platform-layout-widgets:widgets.toggle-editor.title',
|
|
9924
|
+
description: '@platform-layout-widgets:widgets.toggle-editor.description',
|
|
9770
9925
|
icon: 'fa-light fa-toggle-on',
|
|
9771
9926
|
defaultFilterWidgetName: 'boolean-filter',
|
|
9772
9927
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
9928
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CHOICE,
|
|
9773
9929
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
9774
9930
|
type: 'editor',
|
|
9775
9931
|
properties: [
|
|
@@ -10342,10 +10498,11 @@ var avatarWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
10342
10498
|
|
|
10343
10499
|
const AXPAvatarWidget = {
|
|
10344
10500
|
name: 'avatar',
|
|
10345
|
-
title: '
|
|
10346
|
-
description: '
|
|
10501
|
+
title: '@platform-layout-widgets:widgets.avatar.title',
|
|
10502
|
+
description: '@platform-layout-widgets:widgets.avatar.description',
|
|
10347
10503
|
icon: 'fa-light fa-image-user',
|
|
10348
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
10504
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
10505
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
10349
10506
|
aiDescription: 'User or entity avatar from a reference id/type. Use when the answer should show who or what something belongs to, not a full photo gallery.',
|
|
10350
10507
|
groups: [AXPWidgetGroupEnum.EntityWidget],
|
|
10351
10508
|
type: 'editor',
|
|
@@ -10583,10 +10740,11 @@ var codeEditorWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
10583
10740
|
//#region ---- Widget Config ----
|
|
10584
10741
|
const AXPCodeEditorWidget = {
|
|
10585
10742
|
name: 'code-editor',
|
|
10586
|
-
title: '
|
|
10587
|
-
description: '
|
|
10743
|
+
title: '@platform-layout-widgets:widgets.code-editor.title',
|
|
10744
|
+
description: '@platform-layout-widgets:widgets.code-editor.description',
|
|
10588
10745
|
icon: 'fa-light fa-code',
|
|
10589
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
10746
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
10747
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
|
|
10590
10748
|
aiDescription: 'Syntax-highlighted code block. Use for snippets, scripts, or configs where line structure and language matter; bind source via data path or options.',
|
|
10591
10749
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
10592
10750
|
type: 'editor',
|
|
@@ -10896,10 +11054,11 @@ var dataListWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
10896
11054
|
|
|
10897
11055
|
const AXPDataListWidget = {
|
|
10898
11056
|
name: 'data-list',
|
|
10899
|
-
title: '
|
|
10900
|
-
description: '
|
|
11057
|
+
title: '@platform-layout-widgets:widgets.data-list.title',
|
|
11058
|
+
description: '@platform-layout-widgets:widgets.data-list.description',
|
|
10901
11059
|
icon: 'fa-light fa-table',
|
|
10902
|
-
categories: [AXP_WIDGETS_LAYOUT_CATEGORY
|
|
11060
|
+
categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
|
|
11061
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_LISTS,
|
|
10903
11062
|
aiDescription: 'Use for tabular data: multiple rows with defined columns, paging, and optional row commands. Provide options.dataSource (rows) and options.columns.',
|
|
10904
11063
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
10905
11064
|
type: 'view',
|
|
@@ -12304,10 +12463,11 @@ var fileUploaderWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
12304
12463
|
|
|
12305
12464
|
const AXPFileUploaderWidget = {
|
|
12306
12465
|
name: 'file-uploader',
|
|
12307
|
-
title: '
|
|
12308
|
-
description: '
|
|
12466
|
+
title: '@platform-layout-widgets:widgets.file-uploader.title',
|
|
12467
|
+
description: '@platform-layout-widgets:widgets.file-uploader.description',
|
|
12309
12468
|
icon: 'fa-light fa-files',
|
|
12310
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
12469
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
12470
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
12311
12471
|
aiDescription: 'Use when the answer involves file attachments: list, upload, or download. Prefer when the user references documents or media beyond inline text.',
|
|
12312
12472
|
groups: ['form-element'],
|
|
12313
12473
|
type: 'editor',
|
|
@@ -13035,10 +13195,11 @@ var galleryWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
13035
13195
|
|
|
13036
13196
|
const AXPGalleryWidget = {
|
|
13037
13197
|
name: 'gallery',
|
|
13038
|
-
title: '
|
|
13039
|
-
description: '
|
|
13198
|
+
title: '@platform-layout-widgets:widgets.gallery.title',
|
|
13199
|
+
description: '@platform-layout-widgets:widgets.gallery.description',
|
|
13040
13200
|
icon: 'fa-light fa-images',
|
|
13041
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
13201
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
13202
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
13042
13203
|
aiDescription: 'Image gallery with thumbnails and optional fullscreen. Use for multiple images or a carousel-like browse experience (not a single static image).',
|
|
13043
13204
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
13044
13205
|
properties: [
|
|
@@ -13516,13 +13677,13 @@ var imageMarkerWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
13516
13677
|
|
|
13517
13678
|
const AXPImageMarkerWidget = {
|
|
13518
13679
|
name: 'image-marker',
|
|
13519
|
-
title: '
|
|
13520
|
-
description: '
|
|
13680
|
+
title: '@platform-layout-widgets:widgets.image-marker.title',
|
|
13681
|
+
description: '@platform-layout-widgets:widgets.image-marker.description',
|
|
13521
13682
|
icon: 'fa-light fa-map-marker-alt',
|
|
13522
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
13683
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
13684
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
13523
13685
|
aiDescription: 'Use when highlighting points or regions on a base image (annotations, hotspots). Provide base image plus marker coordinates or overlays in options.',
|
|
13524
13686
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
13525
|
-
aiCatalog: 'include',
|
|
13526
13687
|
type: 'editor',
|
|
13527
13688
|
properties: [
|
|
13528
13689
|
AXP_NAME_PROPERTY,
|
|
@@ -13686,12 +13847,13 @@ var jsonViewerWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
|
13686
13847
|
//#region ---- Widget Config ----
|
|
13687
13848
|
const AXPJsonViewerWidget = {
|
|
13688
13849
|
name: 'json-viewer',
|
|
13689
|
-
title: '
|
|
13690
|
-
description: '
|
|
13850
|
+
title: '@platform-layout-widgets:widgets.json-viewer.title',
|
|
13851
|
+
description: '@platform-layout-widgets:widgets.json-viewer.description',
|
|
13691
13852
|
icon: 'fa-light fa-code',
|
|
13692
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
13853
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
13854
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_DATA,
|
|
13693
13855
|
aiDescription: 'Shows JSON as an expandable tree. Prefer when the payload is structured data (objects/arrays) and hierarchy matters more than plain text.',
|
|
13694
|
-
groups: [AXPWidgetGroupEnum.
|
|
13856
|
+
groups: [AXPWidgetGroupEnum.BaseWidget],
|
|
13695
13857
|
type: 'editor',
|
|
13696
13858
|
properties: [
|
|
13697
13859
|
AXP_NAME_PROPERTY,
|
|
@@ -14154,10 +14316,11 @@ var qrcodeWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
14154
14316
|
|
|
14155
14317
|
const AXPQrcodeWidget = {
|
|
14156
14318
|
name: 'qrcode',
|
|
14157
|
-
title: '
|
|
14158
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
14319
|
+
title: '@platform-layout-widgets:widgets.qrcode.title',
|
|
14320
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
14321
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
14159
14322
|
icon: 'fa-light fa-qrcode',
|
|
14160
|
-
description: '
|
|
14323
|
+
description: '@platform-layout-widgets:widgets.qrcode.description',
|
|
14161
14324
|
aiDescription: 'Renders a scannable QR code from text or URL (options.content). Use when the user should open a link or payload on a phone.',
|
|
14162
14325
|
type: 'view',
|
|
14163
14326
|
properties: [
|
|
@@ -14447,9 +14610,10 @@ var schedulerPickerWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
14447
14610
|
|
|
14448
14611
|
const AXPSchedulerPickerWidget = {
|
|
14449
14612
|
name: 'scheduler-picker',
|
|
14450
|
-
title: '
|
|
14613
|
+
title: '@platform-layout-widgets:widgets.scheduler-picker.title',
|
|
14451
14614
|
icon: 'fa-light fa-calendar-clock',
|
|
14452
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
14615
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
14616
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
|
|
14453
14617
|
aiDescription: 'Schedule or calendar picker. Use when the user selects dates, times, or recurring slots; bind value via data path.',
|
|
14454
14618
|
type: 'editor',
|
|
14455
14619
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
@@ -14786,10 +14950,11 @@ var signaturePadWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
14786
14950
|
|
|
14787
14951
|
const AXPSignatureWidget = {
|
|
14788
14952
|
name: 'signature',
|
|
14789
|
-
title: '
|
|
14790
|
-
description: '
|
|
14953
|
+
title: '@platform-layout-widgets:widgets.signature.title',
|
|
14954
|
+
description: '@platform-layout-widgets:widgets.signature.description',
|
|
14791
14955
|
icon: 'fa-light fa-file-signature',
|
|
14792
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
14956
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
14957
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
|
|
14793
14958
|
aiDescription: 'Digital signature capture or display. Use when consent, approval, or handwritten input is required instead of typed text.',
|
|
14794
14959
|
type: 'editor',
|
|
14795
14960
|
properties: [
|
|
@@ -14873,6 +15038,8 @@ class AXPStatusChipComponent {
|
|
|
14873
15038
|
this.isPopoverOpen = signal(false, ...(ngDevMode ? [{ debugName: "isPopoverOpen" }] : /* istanbul ignore next */ []));
|
|
14874
15039
|
this.isUpdating = signal(false, ...(ngDevMode ? [{ debugName: "isUpdating" }] : /* istanbul ignore next */ []));
|
|
14875
15040
|
this.providerSignal = signal(undefined, ...(ngDevMode ? [{ debugName: "providerSignal" }] : /* istanbul ignore next */ []));
|
|
15041
|
+
/** Native tooltip from translated `AXPStatusDefinition.description` (i18n key). */
|
|
15042
|
+
this.chipTooltip = signal(null, ...(ngDevMode ? [{ debugName: "chipTooltip" }] : /* istanbul ignore next */ []));
|
|
14876
15043
|
//#endregion
|
|
14877
15044
|
//#region ---- Computed Properties ----
|
|
14878
15045
|
this.statuses = computed(() => this.providerSignal()?.statuses ?? [], ...(ngDevMode ? [{ debugName: "statuses" }] : /* istanbul ignore next */ []));
|
|
@@ -14912,15 +15079,9 @@ class AXPStatusChipComponent {
|
|
|
14912
15079
|
if (!Array.isArray(statuses) || statuses.length === 0) {
|
|
14913
15080
|
return [];
|
|
14914
15081
|
}
|
|
14915
|
-
//
|
|
15082
|
+
// No declared transitions: executeTransition() rejects every path — do not offer fake targets
|
|
14916
15083
|
if (!Array.isArray(transitions) || transitions.length === 0) {
|
|
14917
|
-
return
|
|
14918
|
-
.filter((s) => s.name !== currentStatus.name)
|
|
14919
|
-
.map((s) => ({
|
|
14920
|
-
from: currentStatus.name,
|
|
14921
|
-
to: s.name,
|
|
14922
|
-
toStatus: s,
|
|
14923
|
-
}));
|
|
15084
|
+
return [];
|
|
14924
15085
|
}
|
|
14925
15086
|
// Filter transitions that start from current status
|
|
14926
15087
|
const availableTransitions = transitions.filter((t) => t.from === currentStatus.name);
|
|
@@ -14956,6 +15117,18 @@ class AXPStatusChipComponent {
|
|
|
14956
15117
|
this.providerSignal.set(provider);
|
|
14957
15118
|
});
|
|
14958
15119
|
}, ...(ngDevMode ? [{ debugName: "loadProvider" }] : /* istanbul ignore next */ []));
|
|
15120
|
+
this.syncDescriptionTooltip = effect(() => {
|
|
15121
|
+
const def = this.currentStatus();
|
|
15122
|
+
const descKey = def?.description;
|
|
15123
|
+
if (!descKey) {
|
|
15124
|
+
untracked(() => this.chipTooltip.set(null));
|
|
15125
|
+
return;
|
|
15126
|
+
}
|
|
15127
|
+
void this.translationService
|
|
15128
|
+
.translateAsync(descKey)
|
|
15129
|
+
.then((t) => untracked(() => this.chipTooltip.set(t || null)))
|
|
15130
|
+
.catch(() => untracked(() => this.chipTooltip.set(null)));
|
|
15131
|
+
}, ...(ngDevMode ? [{ debugName: "syncDescriptionTooltip" }] : /* istanbul ignore next */ []));
|
|
14959
15132
|
}
|
|
14960
15133
|
//#endregion
|
|
14961
15134
|
//#region ---- Public Methods ----
|
|
@@ -15054,8 +15227,12 @@ class AXPStatusChipComponent {
|
|
|
15054
15227
|
[class.ax-cursor-pointer]="hasTransitions"
|
|
15055
15228
|
[class.ax-cursor-default]="!hasTransitions"
|
|
15056
15229
|
(click)="hasTransitions && openPopover()"
|
|
15230
|
+
[attr.title]="chipTooltip() ?? null"
|
|
15057
15231
|
#chipElement
|
|
15058
15232
|
>
|
|
15233
|
+
@if (currentStatusDef.icon) {
|
|
15234
|
+
<i [class]="currentStatusDef.icon + ' ax-text-[0.85em] ax-opacity-90'"></i>
|
|
15235
|
+
}
|
|
15059
15236
|
<span>{{ currentStatusDef.title | translate | async }}</span>
|
|
15060
15237
|
@if (hasTransitions) {
|
|
15061
15238
|
<i class="fa-light fa-chevron-down ax-text-xs"></i>
|
|
@@ -15122,8 +15299,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
15122
15299
|
[class.ax-cursor-pointer]="hasTransitions"
|
|
15123
15300
|
[class.ax-cursor-default]="!hasTransitions"
|
|
15124
15301
|
(click)="hasTransitions && openPopover()"
|
|
15302
|
+
[attr.title]="chipTooltip() ?? null"
|
|
15125
15303
|
#chipElement
|
|
15126
15304
|
>
|
|
15305
|
+
@if (currentStatusDef.icon) {
|
|
15306
|
+
<i [class]="currentStatusDef.icon + ' ax-text-[0.85em] ax-opacity-90'"></i>
|
|
15307
|
+
}
|
|
15127
15308
|
<span>{{ currentStatusDef.title | translate | async }}</span>
|
|
15128
15309
|
@if (hasTransitions) {
|
|
15129
15310
|
<i class="fa-light fa-chevron-down ax-text-xs"></i>
|
|
@@ -15217,7 +15398,17 @@ class AXPStatusWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
15217
15398
|
*/
|
|
15218
15399
|
this.columnReadonly = computed(() => !!this.options['readonly'], ...(ngDevMode ? [{ debugName: "columnReadonly" }] : /* istanbul ignore next */ []));
|
|
15219
15400
|
this.entityData = computed(() => {
|
|
15220
|
-
|
|
15401
|
+
const row = this.rowDataSignal();
|
|
15402
|
+
if (!row || typeof row !== 'object') {
|
|
15403
|
+
return null;
|
|
15404
|
+
}
|
|
15405
|
+
const entityKey = this.options['entity'];
|
|
15406
|
+
const fieldName = this.options['fieldName'];
|
|
15407
|
+
return {
|
|
15408
|
+
...row,
|
|
15409
|
+
...(entityKey ? { entity: entityKey, entityName: entityKey } : {}),
|
|
15410
|
+
...(fieldName ? { statusField: fieldName } : {}),
|
|
15411
|
+
};
|
|
15221
15412
|
}, ...(ngDevMode ? [{ debugName: "entityData" }] : /* istanbul ignore next */ []));
|
|
15222
15413
|
this.resolvedStatuses = computed(() => {
|
|
15223
15414
|
return this.providerSignal()?.statuses ?? [];
|
|
@@ -15257,15 +15448,9 @@ class AXPStatusWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
15257
15448
|
if (!Array.isArray(statuses) || statuses.length === 0) {
|
|
15258
15449
|
return [];
|
|
15259
15450
|
}
|
|
15260
|
-
//
|
|
15451
|
+
// No declared transitions: executeTransition() rejects every path — do not offer fake targets
|
|
15261
15452
|
if (!Array.isArray(transitions) || transitions.length === 0) {
|
|
15262
|
-
return
|
|
15263
|
-
.filter((s) => s.name !== currentStatus.name)
|
|
15264
|
-
.map((status) => ({
|
|
15265
|
-
from: currentStatus.name,
|
|
15266
|
-
to: status.name,
|
|
15267
|
-
toStatus: status,
|
|
15268
|
-
}));
|
|
15453
|
+
return [];
|
|
15269
15454
|
}
|
|
15270
15455
|
// Filter transitions that start from current status
|
|
15271
15456
|
const availableTransitions = transitions.filter((t) => t.from === currentStatus.name);
|
|
@@ -15460,15 +15645,9 @@ class AXPStatusWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
15460
15645
|
if (!Array.isArray(statuses) || statuses.length === 0) {
|
|
15461
15646
|
return [];
|
|
15462
15647
|
}
|
|
15463
|
-
//
|
|
15648
|
+
// No declared transitions: executeTransition() rejects every path — do not offer fake targets
|
|
15464
15649
|
if (!Array.isArray(transitions) || transitions.length === 0) {
|
|
15465
|
-
return
|
|
15466
|
-
.filter((s) => s.name !== currentStatus.name)
|
|
15467
|
-
.map((status) => ({
|
|
15468
|
-
from: currentStatus.name,
|
|
15469
|
-
to: status.name,
|
|
15470
|
-
toStatus: status,
|
|
15471
|
-
}));
|
|
15650
|
+
return [];
|
|
15472
15651
|
}
|
|
15473
15652
|
// Filter transitions that start from current status
|
|
15474
15653
|
const availableTransitions = transitions.filter((t) => t.from === currentStatus.name);
|
|
@@ -15508,13 +15687,35 @@ class AXPStatusWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
15508
15687
|
// Could show a toast notification here if needed
|
|
15509
15688
|
}
|
|
15510
15689
|
/**
|
|
15511
|
-
*
|
|
15690
|
+
* Build context for default `Entity:UpdateStatus` (entity key, record id, status field path).
|
|
15512
15691
|
*/
|
|
15513
15692
|
getEntityData() {
|
|
15514
|
-
|
|
15515
|
-
|
|
15516
|
-
const
|
|
15517
|
-
|
|
15693
|
+
const opts = this.options();
|
|
15694
|
+
const entityKey = (opts['entityName'] ?? opts['entity']);
|
|
15695
|
+
const statusField = (opts['statusField'] ?? opts['fieldName'] ?? this.path);
|
|
15696
|
+
const parentPath = this.parentPath();
|
|
15697
|
+
const idPathCandidates = [
|
|
15698
|
+
parentPath ? `${parentPath}.id` : null,
|
|
15699
|
+
'id',
|
|
15700
|
+
parentPath ? `${parentPath}._id` : null,
|
|
15701
|
+
'_id',
|
|
15702
|
+
].filter((p) => !!p);
|
|
15703
|
+
let id;
|
|
15704
|
+
for (const p of idPathCandidates) {
|
|
15705
|
+
id = this.contextService.getValue(p);
|
|
15706
|
+
if (id != null && String(id).length > 0) {
|
|
15707
|
+
break;
|
|
15708
|
+
}
|
|
15709
|
+
}
|
|
15710
|
+
if (!entityKey || id == null || String(id).length === 0) {
|
|
15711
|
+
return null;
|
|
15712
|
+
}
|
|
15713
|
+
return {
|
|
15714
|
+
entity: entityKey,
|
|
15715
|
+
entityName: entityKey,
|
|
15716
|
+
statusField: statusField ?? 'statusId',
|
|
15717
|
+
id: String(id),
|
|
15718
|
+
};
|
|
15518
15719
|
}
|
|
15519
15720
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStatusWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
15520
15721
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: AXPStatusWidgetEditComponent, isStandalone: true, selector: "axp-status-widget-edit", viewQueries: [{ propertyName: "statusChip", first: true, predicate: AXPStatusChipComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
@@ -15630,15 +15831,9 @@ class AXPStatusWidgetViewComponent extends AXPDataListWidgetComponent {
|
|
|
15630
15831
|
if (!Array.isArray(statuses) || statuses.length === 0) {
|
|
15631
15832
|
return [];
|
|
15632
15833
|
}
|
|
15633
|
-
//
|
|
15834
|
+
// No declared transitions: executeTransition() rejects every path — do not offer fake targets
|
|
15634
15835
|
if (!Array.isArray(transitions) || transitions.length === 0) {
|
|
15635
|
-
return
|
|
15636
|
-
.filter((s) => s.name !== currentStatus.name)
|
|
15637
|
-
.map((status) => ({
|
|
15638
|
-
from: currentStatus.name,
|
|
15639
|
-
to: status.name,
|
|
15640
|
-
toStatus: status,
|
|
15641
|
-
}));
|
|
15836
|
+
return [];
|
|
15642
15837
|
}
|
|
15643
15838
|
// Filter transitions that start from current status
|
|
15644
15839
|
const availableTransitions = transitions.filter((t) => t.from === currentStatus.name);
|
|
@@ -15731,10 +15926,11 @@ var statusWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
15731
15926
|
|
|
15732
15927
|
const AXPStatusWidget = {
|
|
15733
15928
|
name: 'status-widget',
|
|
15734
|
-
title: '
|
|
15735
|
-
description: '
|
|
15929
|
+
title: '@platform-layout-widgets:widgets.status-widget.title',
|
|
15930
|
+
description: '@platform-layout-widgets:widgets.status-widget.description',
|
|
15736
15931
|
icon: 'fa-light fa-circle-check',
|
|
15737
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
15932
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
15933
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_DATA,
|
|
15738
15934
|
aiDescription: 'Visual status chip or badge for entity/state. Use when the answer should highlight a single workflow or lifecycle state (e.g. open, approved).',
|
|
15739
15935
|
groups: [AXPWidgetGroupEnum.EntityWidget],
|
|
15740
15936
|
defaultFilterWidgetName: 'status-filter',
|
|
@@ -15767,10 +15963,11 @@ const AXPStatusWidget = {
|
|
|
15767
15963
|
//#region ---- Widget Config ----
|
|
15768
15964
|
const AXPStopwatchWidget = {
|
|
15769
15965
|
name: 'stopwatch',
|
|
15770
|
-
title: '
|
|
15771
|
-
description: '
|
|
15966
|
+
title: '@platform-layout-widgets:widgets.stopwatch.title',
|
|
15967
|
+
description: '@platform-layout-widgets:widgets.stopwatch.description',
|
|
15772
15968
|
icon: 'fa-light fa-stopwatch',
|
|
15773
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
15969
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
15970
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_TOOLS,
|
|
15774
15971
|
aiDescription: 'Live stopwatch or countdown. Use when the answer involves elapsed time, deadlines, or timed steps; configure mode (count-up vs count-down) in options.',
|
|
15775
15972
|
groups: [AXPWidgetGroupEnum.UtilityWidget],
|
|
15776
15973
|
type: 'view',
|
|
@@ -15951,10 +16148,11 @@ var stopwatchWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
15951
16148
|
|
|
15952
16149
|
const AXPWidgetFieldConfiguratorWidget = {
|
|
15953
16150
|
name: 'widget-field-configurator',
|
|
15954
|
-
title: '
|
|
15955
|
-
icon: 'fa-
|
|
15956
|
-
description: '
|
|
16151
|
+
title: '@platform-layout-widgets:widgets.widget-field-configurator.title',
|
|
16152
|
+
icon: 'fa-light fa-puzzle-piece',
|
|
16153
|
+
description: '@platform-layout-widgets:widgets.widget-field-configurator.description',
|
|
15957
16154
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
16155
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CONFIG,
|
|
15958
16156
|
groups: [AXPWidgetGroupEnum.UtilityWidget],
|
|
15959
16157
|
type: 'editor',
|
|
15960
16158
|
defaultFilterWidgetName: 'string-filter',
|
|
@@ -16171,12 +16369,12 @@ class AXPWidgetFieldConfiguratorWidgetColumnComponent extends AXPColumnWidgetCom
|
|
|
16171
16369
|
@if (widget()) {
|
|
16172
16370
|
<i [class]="widget()?.icon" class="fa-fw"></i>
|
|
16173
16371
|
<span [title]="widget()?.title" class="ax-text-xs ax-font-medium">
|
|
16174
|
-
{{ widget()?.title }}
|
|
16372
|
+
{{ widget()?.title | translate | async }}
|
|
16175
16373
|
</span>
|
|
16176
16374
|
} @else {
|
|
16177
16375
|
<span class="ax-text-muted">---</span>
|
|
16178
16376
|
}
|
|
16179
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16377
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16180
16378
|
}
|
|
16181
16379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWidgetFieldConfiguratorWidgetColumnComponent, decorators: [{
|
|
16182
16380
|
type: Component,
|
|
@@ -16186,14 +16384,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
16186
16384
|
@if (widget()) {
|
|
16187
16385
|
<i [class]="widget()?.icon" class="fa-fw"></i>
|
|
16188
16386
|
<span [title]="widget()?.title" class="ax-text-xs ax-font-medium">
|
|
16189
|
-
{{ widget()?.title }}
|
|
16387
|
+
{{ widget()?.title | translate | async }}
|
|
16190
16388
|
</span>
|
|
16191
16389
|
} @else {
|
|
16192
16390
|
<span class="ax-text-muted">---</span>
|
|
16193
16391
|
}
|
|
16194
16392
|
`,
|
|
16195
16393
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16196
|
-
imports: [],
|
|
16394
|
+
imports: [AXTranslationModule, AsyncPipe],
|
|
16197
16395
|
inputs: ['rawValue', 'rowData'],
|
|
16198
16396
|
}]
|
|
16199
16397
|
}] });
|
|
@@ -16205,10 +16403,11 @@ var widgetFieldConfiguratorWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
16205
16403
|
|
|
16206
16404
|
const AXPItemConfiguratorWidget = {
|
|
16207
16405
|
name: 'item-configurator',
|
|
16208
|
-
title: '
|
|
16209
|
-
icon: 'fa-
|
|
16210
|
-
description: '
|
|
16406
|
+
title: '@platform-layout-widgets:widgets.item-configurator.title',
|
|
16407
|
+
icon: 'fa-light fa-sliders',
|
|
16408
|
+
description: '@platform-layout-widgets:widgets.item-configurator.description',
|
|
16211
16409
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
16410
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_CONFIG,
|
|
16212
16411
|
groups: [AXPWidgetGroupEnum.UtilityWidget],
|
|
16213
16412
|
type: 'editor',
|
|
16214
16413
|
defaultFilterWidgetName: 'string-filter',
|
|
@@ -17204,9 +17403,10 @@ var advancedGridWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
17204
17403
|
|
|
17205
17404
|
const AXPAdvancedGridWidget = {
|
|
17206
17405
|
name: 'advanced-grid-layout',
|
|
17207
|
-
title: '
|
|
17406
|
+
title: '@platform-layout-widgets:widgets.advanced-grid-layout.title',
|
|
17208
17407
|
type: 'container',
|
|
17209
17408
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
17409
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
17210
17410
|
icon: 'fa-light fa-grid-2',
|
|
17211
17411
|
properties: [
|
|
17212
17412
|
AXP_NAME_PROPERTY,
|
|
@@ -17444,9 +17644,10 @@ var advancedGridItemWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
17444
17644
|
|
|
17445
17645
|
const AXPAdvancedGridItemWidget = {
|
|
17446
17646
|
name: 'advanced-grid-item-layout',
|
|
17447
|
-
title: '
|
|
17647
|
+
title: '@platform-layout-widgets:widgets.advanced-grid-item-layout.title',
|
|
17448
17648
|
type: 'container',
|
|
17449
17649
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
17650
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
17450
17651
|
icon: 'fa-light fa-objects-column',
|
|
17451
17652
|
properties: [
|
|
17452
17653
|
AXP_NAME_PROPERTY,
|
|
@@ -17589,10 +17790,11 @@ var blockWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
17589
17790
|
const AXPBlockWidget = {
|
|
17590
17791
|
name: 'block-layout',
|
|
17591
17792
|
type: 'container',
|
|
17592
|
-
title: '
|
|
17593
|
-
description: '
|
|
17793
|
+
title: '@platform-layout-widgets:widgets.block-layout.title',
|
|
17794
|
+
description: '@platform-layout-widgets:widgets.block-layout.description',
|
|
17594
17795
|
icon: 'fa-light fa-block',
|
|
17595
17796
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
17797
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
17596
17798
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
17597
17799
|
options: {
|
|
17598
17800
|
canInsert: true,
|
|
@@ -17765,10 +17967,11 @@ var fieldsetWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
17765
17967
|
const AXPFieldsetWidget = {
|
|
17766
17968
|
name: 'fieldset-layout',
|
|
17767
17969
|
type: 'container',
|
|
17768
|
-
title: '
|
|
17769
|
-
description: '
|
|
17970
|
+
title: '@platform-layout-widgets:widgets.fieldset-layout.title',
|
|
17971
|
+
description: '@platform-layout-widgets:widgets.fieldset-layout.description',
|
|
17770
17972
|
icon: 'fa-light fa-object-group',
|
|
17771
17973
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
17974
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
|
|
17772
17975
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
17773
17976
|
properties: [AXP_NAME_PROPERTY, AXP_TITLE_PROPERTY, AXP_ICON_PROPERTY, AXP_LAYOUT_SHOW_HEADER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY],
|
|
17774
17977
|
components: {
|
|
@@ -17869,7 +18072,7 @@ class AXPFlexWidgetViewComponent extends AXPFlexBaseLayoutWidgetComponent {
|
|
|
17869
18072
|
[node]="node"
|
|
17870
18073
|
[index]="index"
|
|
17871
18074
|
[parentNode]="this"
|
|
17872
|
-
[mode]="this.mode"
|
|
18075
|
+
[mode]="node.mode ?? this.mode"
|
|
17873
18076
|
></ng-container>
|
|
17874
18077
|
}
|
|
17875
18078
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
@@ -17885,7 +18088,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
17885
18088
|
[node]="node"
|
|
17886
18089
|
[index]="index"
|
|
17887
18090
|
[parentNode]="this"
|
|
17888
|
-
[mode]="this.mode"
|
|
18091
|
+
[mode]="node.mode ?? this.mode"
|
|
17889
18092
|
></ng-container>
|
|
17890
18093
|
}
|
|
17891
18094
|
`,
|
|
@@ -17908,10 +18111,11 @@ var flexWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
17908
18111
|
const AXPFlexWidget = {
|
|
17909
18112
|
name: 'flex-layout',
|
|
17910
18113
|
type: 'container',
|
|
17911
|
-
title: '
|
|
17912
|
-
description: '
|
|
18114
|
+
title: '@platform-layout-widgets:widgets.flex-layout.title',
|
|
18115
|
+
description: '@platform-layout-widgets:widgets.flex-layout.description',
|
|
17913
18116
|
icon: 'fa-light fa-box-taped',
|
|
17914
18117
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
18118
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
17915
18119
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
17916
18120
|
options: {
|
|
17917
18121
|
canInsert: true,
|
|
@@ -18055,11 +18259,12 @@ var flexItemWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
18055
18259
|
|
|
18056
18260
|
const AXPFlexItemWidget = {
|
|
18057
18261
|
name: 'flex-item-layout',
|
|
18058
|
-
title: '
|
|
18262
|
+
title: '@platform-layout-widgets:widgets.flex-item-layout.title',
|
|
18059
18263
|
type: 'container',
|
|
18060
18264
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
18265
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
18061
18266
|
// groups: [AXPWidgetGroupEnum.FormElement],
|
|
18062
|
-
description: '
|
|
18267
|
+
description: '@platform-layout-widgets:widgets.flex-item-layout.description',
|
|
18063
18268
|
icon: 'fa-light fa-rectangle-vertical-history',
|
|
18064
18269
|
properties: [
|
|
18065
18270
|
AXP_NAME_PROPERTY,
|
|
@@ -18151,10 +18356,11 @@ var pageWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
18151
18356
|
|
|
18152
18357
|
const AXPPageWidget = {
|
|
18153
18358
|
name: 'page-layout',
|
|
18154
|
-
title: '
|
|
18155
|
-
description: '
|
|
18359
|
+
title: '@platform-layout-widgets:widgets.page-layout.title',
|
|
18360
|
+
description: '@platform-layout-widgets:widgets.page-layout.description',
|
|
18156
18361
|
icon: 'fa-light fa-page',
|
|
18157
18362
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
18363
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_SHELL,
|
|
18158
18364
|
type: 'container',
|
|
18159
18365
|
properties: [
|
|
18160
18366
|
AXP_NAME_PROPERTY,
|
|
@@ -18478,10 +18684,11 @@ var repeaterWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
18478
18684
|
|
|
18479
18685
|
const AXPRepeaterWidget = {
|
|
18480
18686
|
name: 'repeater-layout',
|
|
18481
|
-
title: '
|
|
18482
|
-
description: '
|
|
18687
|
+
title: '@platform-layout-widgets:widgets.repeater-layout.title',
|
|
18688
|
+
description: '@platform-layout-widgets:widgets.repeater-layout.description',
|
|
18483
18689
|
icon: 'fa-light fa-table-list',
|
|
18484
18690
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
18691
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
|
|
18485
18692
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
18486
18693
|
type: 'container',
|
|
18487
18694
|
properties: [
|
|
@@ -18874,9 +19081,10 @@ var stepWizardWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
18874
19081
|
|
|
18875
19082
|
const AXPStepWizardWidget = {
|
|
18876
19083
|
name: 'step-wizard',
|
|
18877
|
-
title: '
|
|
18878
|
-
icon: 'fa-
|
|
18879
|
-
categories: [AXP_WIDGETS_LAYOUT_CATEGORY
|
|
19084
|
+
title: '@platform-layout-widgets:widgets.step-wizard.title',
|
|
19085
|
+
icon: 'fa-light fa-image-user',
|
|
19086
|
+
categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
|
|
19087
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
|
|
18880
19088
|
aiDescription: 'Use for multi-step flows (wizard). Present when the user should follow ordered steps; children typically hold step content.',
|
|
18881
19089
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
18882
19090
|
type: 'view',
|
|
@@ -19853,10 +20061,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
19853
20061
|
const AXPTableWidget = {
|
|
19854
20062
|
name: 'table-layout',
|
|
19855
20063
|
type: 'container',
|
|
19856
|
-
title: '
|
|
19857
|
-
description: '
|
|
20064
|
+
title: '@platform-layout-widgets:widgets.table-layout.title',
|
|
20065
|
+
description: '@platform-layout-widgets:widgets.table-layout.description',
|
|
19858
20066
|
icon: 'fa-light fa-table',
|
|
19859
20067
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
20068
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
19860
20069
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
19861
20070
|
options: {
|
|
19862
20071
|
canInsert: true,
|
|
@@ -20271,10 +20480,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
20271
20480
|
|
|
20272
20481
|
const AXPTableItemWidget = {
|
|
20273
20482
|
name: 'table-item-layout',
|
|
20274
|
-
title: '
|
|
20483
|
+
title: '@platform-layout-widgets:widgets.table-item-layout.title',
|
|
20275
20484
|
type: 'container',
|
|
20276
20485
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
20277
|
-
|
|
20486
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
20487
|
+
description: '@platform-layout-widgets:widgets.table-item-layout.description',
|
|
20278
20488
|
icon: 'fa-light fa-table-cells',
|
|
20279
20489
|
properties: [
|
|
20280
20490
|
AXP_NAME_PROPERTY,
|
|
@@ -23950,12 +24160,13 @@ var cronJobWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
23950
24160
|
|
|
23951
24161
|
const AXPCronJobWidget = {
|
|
23952
24162
|
name: 'cron-job',
|
|
23953
|
-
title: '
|
|
24163
|
+
title: '@platform-layout-widgets:widgets.cron-job.title',
|
|
23954
24164
|
icon: 'fa-light fa-alarm-clock',
|
|
23955
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
24165
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
24166
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_INPUT,
|
|
23956
24167
|
aiDescription: 'Cron expression editor and viewer. Use when the answer involves recurring schedules or job timing (not a one-off date picker).',
|
|
23957
24168
|
type: 'editor',
|
|
23958
|
-
groups: [AXPWidgetGroupEnum.
|
|
24169
|
+
groups: [AXPWidgetGroupEnum.BaseWidget],
|
|
23959
24170
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
23960
24171
|
components: {
|
|
23961
24172
|
view: {
|
|
@@ -24099,10 +24310,11 @@ var metaDataWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
24099
24310
|
|
|
24100
24311
|
const AXPMetaDataWidget = {
|
|
24101
24312
|
name: 'meta-data-editor',
|
|
24102
|
-
title: '
|
|
24313
|
+
title: '@platform-layout-widgets:widgets.meta-data-editor.title',
|
|
24103
24314
|
icon: 'fa-light fa-input-text',
|
|
24104
|
-
description: 'meta
|
|
24315
|
+
description: '@platform-layout-widgets:widgets.meta-data-editor.description',
|
|
24105
24316
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
24317
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_COMPOSITE,
|
|
24106
24318
|
type: 'editor',
|
|
24107
24319
|
defaultFilterWidgetName: 'string-filter',
|
|
24108
24320
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],
|
|
@@ -24410,10 +24622,11 @@ var numberUnitBoxWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
24410
24622
|
|
|
24411
24623
|
const AXPNumberUnitBoxWidget = {
|
|
24412
24624
|
name: 'number-unit-editor',
|
|
24413
|
-
title: '
|
|
24414
|
-
description: '
|
|
24625
|
+
title: '@platform-layout-widgets:widgets.number-unit-editor.title',
|
|
24626
|
+
description: '@platform-layout-widgets:widgets.number-unit-editor.description',
|
|
24415
24627
|
icon: 'fa-light fa-input-numeric',
|
|
24416
24628
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
24629
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_NUMERIC,
|
|
24417
24630
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
24418
24631
|
type: 'editor',
|
|
24419
24632
|
defaultFilterWidgetName: 'number-filter',
|
|
@@ -24459,10 +24672,11 @@ const AXPNumberUnitBoxWidget = {
|
|
|
24459
24672
|
|
|
24460
24673
|
const AXPTableEditorWidget = {
|
|
24461
24674
|
name: 'table-editor',
|
|
24462
|
-
title: '
|
|
24675
|
+
title: '@platform-layout-widgets:widgets.table-editor.title',
|
|
24463
24676
|
icon: 'fa-light fa-input-text',
|
|
24464
|
-
description: '
|
|
24677
|
+
description: '@platform-layout-widgets:widgets.table-editor.description',
|
|
24465
24678
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
24679
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_COMPOSITE,
|
|
24466
24680
|
type: 'editor',
|
|
24467
24681
|
defaultFilterWidgetName: 'string-filter',
|
|
24468
24682
|
properties: [
|
|
@@ -25467,13 +25681,13 @@ var imageWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
25467
25681
|
//#region ---- Image Widget Config ----
|
|
25468
25682
|
const AXPImageWidget = {
|
|
25469
25683
|
name: 'image',
|
|
25470
|
-
title: '
|
|
25471
|
-
description: '
|
|
25684
|
+
title: '@platform-layout-widgets:widgets.image.title',
|
|
25685
|
+
description: '@platform-layout-widgets:widgets.image.description',
|
|
25472
25686
|
icon: 'fa-light fa-image',
|
|
25473
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
25687
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
25688
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
25474
25689
|
aiDescription: 'Use for a single image (URL or embedded). Prefer over plain markdown when aspect ratio, sizing, or binary handling matters.',
|
|
25475
25690
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
25476
|
-
aiCatalog: 'include',
|
|
25477
25691
|
type: 'editor',
|
|
25478
25692
|
properties: [
|
|
25479
25693
|
AXP_NAME_PROPERTY,
|
|
@@ -25645,13 +25859,13 @@ var listToolbarWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
25645
25859
|
|
|
25646
25860
|
const AXPListToolbarWidget = {
|
|
25647
25861
|
name: 'list-toolbar',
|
|
25648
|
-
title: '
|
|
25649
|
-
description: '',
|
|
25862
|
+
title: '@platform-layout-widgets:widgets.list-toolbar.title',
|
|
25650
25863
|
type: 'view',
|
|
25651
|
-
categories: [AXP_WIDGETS_LAYOUT_CATEGORY
|
|
25864
|
+
categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
|
|
25865
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_LISTS,
|
|
25652
25866
|
aiDescription: 'Toolbar for list views: sort, filter, and column toggles. Use next to data-list when the user may refine or reorder rows.',
|
|
25653
25867
|
groups: [AXPWidgetGroupEnum.UtilityWidget],
|
|
25654
|
-
icon: 'fa-
|
|
25868
|
+
icon: 'fa-light fa-square',
|
|
25655
25869
|
properties: [
|
|
25656
25870
|
AXP_NAME_PROPERTY,
|
|
25657
25871
|
AXP_DATA_PATH_PROPERTY,
|
|
@@ -25690,13 +25904,13 @@ const AXPListToolbarWidget = {
|
|
|
25690
25904
|
|
|
25691
25905
|
const AXPMapWidget = {
|
|
25692
25906
|
name: 'map',
|
|
25693
|
-
title: '
|
|
25694
|
-
description: '
|
|
25907
|
+
title: '@platform-layout-widgets:widgets.map.title',
|
|
25908
|
+
description: '@platform-layout-widgets:widgets.map.description',
|
|
25695
25909
|
icon: 'fa-light fa-map-location',
|
|
25696
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY
|
|
25910
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
25911
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_TOOLS,
|
|
25697
25912
|
aiDescription: 'Use when the answer involves locations, routes, or areas on a map. Pass markers, polygons, or center/zoom via options; suitable for “where”, “near”, or geographic summaries.',
|
|
25698
25913
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
25699
|
-
aiCatalog: 'include',
|
|
25700
25914
|
type: 'editor',
|
|
25701
25915
|
properties: [
|
|
25702
25916
|
AXP_NAME_PROPERTY,
|
|
@@ -25851,7 +26065,7 @@ class AXPTimerDurationWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
25851
26065
|
[options]="validation.options"
|
|
25852
26066
|
></ax-validation-rule>
|
|
25853
26067
|
}
|
|
25854
|
-
</ax-time-duration>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXTimeDurationModule }, { kind: "component", type: i3$6.AXTimeDurationComponent, selector: "ax-time-duration", inputs: ["disabled", "tabIndex", "readonly", "look", "valueStart", "valueEnd", "label", "maskDigits", "minValue", "maxValue"], outputs: ["onValueChanged"] }, { kind: "ngmodule", type: AXValidationModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
26068
|
+
</ax-time-duration>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXTimeDurationModule }, { kind: "component", type: i3$6.AXTimeDurationComponent, selector: "ax-time-duration", inputs: ["disabled", "tabIndex", "readonly", "look", "name", "valueStart", "valueEnd", "label", "maskDigits", "minValue", "maxValue"], outputs: ["onValueChanged"] }, { kind: "ngmodule", type: AXValidationModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25855
26069
|
}
|
|
25856
26070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPTimerDurationWidgetEditComponent, decorators: [{
|
|
25857
26071
|
type: Component,
|
|
@@ -25917,10 +26131,11 @@ var timeDurationWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
25917
26131
|
|
|
25918
26132
|
const AXPTimeDurationWidget = {
|
|
25919
26133
|
name: 'time-duration',
|
|
25920
|
-
title: '
|
|
25921
|
-
description: '
|
|
26134
|
+
title: '@platform-layout-widgets:widgets.time-duration.title',
|
|
26135
|
+
description: '@platform-layout-widgets:widgets.time-duration.description',
|
|
25922
26136
|
icon: 'fa-light fa-clock',
|
|
25923
26137
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
26138
|
+
subCategory: AXP_WIDGETS_EDITOR_SUB_DATETIME,
|
|
25924
26139
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
25925
26140
|
defaultFilterWidgetName: 'time-duration-filter',
|
|
25926
26141
|
type: 'editor',
|
|
@@ -27191,10 +27406,11 @@ const AXPTimeDurationFilterWidget = {
|
|
|
27191
27406
|
|
|
27192
27407
|
const AXPDocumentWidget = {
|
|
27193
27408
|
name: 'document-layout',
|
|
27194
|
-
title: '
|
|
27195
|
-
description: '
|
|
27409
|
+
title: '@platform-layout-widgets:widgets.document-layout.title',
|
|
27410
|
+
description: '@platform-layout-widgets:widgets.document-layout.description',
|
|
27196
27411
|
icon: 'fa-light fa-page',
|
|
27197
27412
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
27413
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_SHELL,
|
|
27198
27414
|
type: 'container',
|
|
27199
27415
|
properties: [],
|
|
27200
27416
|
components: {},
|
|
@@ -27207,6 +27423,24 @@ class AXPFormFieldWidgetViewComponent extends AXPGridItemBaseLayoutWidgetCompone
|
|
|
27207
27423
|
this.showLabel = computed(() => this.options()['showLabel'] ?? true, ...(ngDevMode ? [{ debugName: "showLabel" }] : /* istanbul ignore next */ []));
|
|
27208
27424
|
this.badge = computed(() => this.options()['badge'], ...(ngDevMode ? [{ debugName: "badge" }] : /* istanbul ignore next */ []));
|
|
27209
27425
|
this.visible = computed(() => this.options()['visible'], ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
|
|
27426
|
+
this.hintText = computed(() => this.options()['hint'], ...(ngDevMode ? [{ debugName: "hintText" }] : /* istanbul ignore next */ []));
|
|
27427
|
+
this.hasHint = computed(() => {
|
|
27428
|
+
const h = this.hintText();
|
|
27429
|
+
if (h == null) {
|
|
27430
|
+
return false;
|
|
27431
|
+
}
|
|
27432
|
+
if (typeof h === 'string') {
|
|
27433
|
+
return h.trim().length > 0;
|
|
27434
|
+
}
|
|
27435
|
+
return true;
|
|
27436
|
+
}, ...(ngDevMode ? [{ debugName: "hasHint" }] : /* istanbul ignore next */ []));
|
|
27437
|
+
this.hintDisplayMode = computed(() => this.options()['hintDisplayMode'] === 'icon' ? 'icon' : 'note', ...(ngDevMode ? [{ debugName: "hintDisplayMode" }] : /* istanbul ignore next */ []));
|
|
27438
|
+
/** Info icon with tooltip (typically next to the label when the label is visible). */
|
|
27439
|
+
this.hintAsIcon = computed(() => this.hasHint() && this.hintDisplayMode() === 'icon', ...(ngDevMode ? [{ debugName: "hintAsIcon" }] : /* istanbul ignore next */ []));
|
|
27440
|
+
/** Visible helper copy under the field (inside `ax-form-field`). */
|
|
27441
|
+
this.hintAsNote = computed(() => this.hasHint() && this.hintDisplayMode() === 'note', ...(ngDevMode ? [{ debugName: "hintAsNote" }] : /* istanbul ignore next */ []));
|
|
27442
|
+
/** Label row needs to show even when label is hidden (e.g. icon-only hint with badge layout). */
|
|
27443
|
+
this.showTopRow = computed(() => this.showLabel() || !!this.badge() || this.hintAsIcon(), ...(ngDevMode ? [{ debugName: "showTopRow" }] : /* istanbul ignore next */ []));
|
|
27210
27444
|
this.isRequired = computed(() => this.children().some((c) => {
|
|
27211
27445
|
const validations = c.options?.['validations'];
|
|
27212
27446
|
return Array.isArray(validations) && validations.some((v) => v.rule === 'required');
|
|
@@ -27218,14 +27452,25 @@ class AXPFormFieldWidgetViewComponent extends AXPGridItemBaseLayoutWidgetCompone
|
|
|
27218
27452
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFormFieldWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
27219
27453
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPFormFieldWidgetViewComponent, isStandalone: true, selector: "axp-form-field-widget-view", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
|
|
27220
27454
|
<ax-form-field>
|
|
27221
|
-
@if (
|
|
27455
|
+
@if (showTopRow()) {
|
|
27222
27456
|
<div class="ax-flex ax-gap-1 ax-items-center ax-justify-between">
|
|
27223
|
-
|
|
27224
|
-
|
|
27225
|
-
|
|
27457
|
+
<div class="ax-flex ax-min-w-0 ax-flex-wrap ax-items-center ax-gap-1 ax-leading-none">
|
|
27458
|
+
@if (showLabel()) {
|
|
27459
|
+
<ax-label [required]="isRequired()" class="ax-inline-flex ax-min-w-0 ax-items-center">{{ label() | translate | async }}</ax-label>
|
|
27460
|
+
}
|
|
27461
|
+
@if (hintAsIcon()) {
|
|
27462
|
+
<i
|
|
27463
|
+
role="button"
|
|
27464
|
+
tabindex="0"
|
|
27465
|
+
class="fa-regular fa-circle-info ax-relative ax-top-px ax-inline-flex ax-h-5 ax-w-5 ax-shrink-0 ax-cursor-help ax-items-center ax-justify-center ax-rounded-full ax-text-xs ax-leading-none ax-text-neutral-500 ax-outline-none ax-transition-[color,background-color] hover:ax-bg-neutral-100 hover:ax-text-neutral-800 focus-visible:ax-outline-2 focus-visible:ax-outline-primary-500 focus-visible:ax-outline-offset-1 ax-mt-[-5px]"
|
|
27466
|
+
[axTooltip]="(hintText()! | translate | async) ?? ''"
|
|
27467
|
+
axTooltipPlacement="top"
|
|
27468
|
+
[attr.aria-label]="(hintText()! | translate | async) ?? ''"
|
|
27469
|
+
></i>
|
|
27470
|
+
}
|
|
27471
|
+
</div>
|
|
27226
27472
|
@if (badge()) {
|
|
27227
|
-
|
|
27228
|
-
<span class="ax-text ax-p-1 ax-text-xs ax-rounded-md ">{{ badge() | translate | async }}</span>
|
|
27473
|
+
<span class="ax-text ax-p-1 ax-text-xs ax-rounded-md">{{ badge() | translate | async }}</span>
|
|
27229
27474
|
}
|
|
27230
27475
|
</div>
|
|
27231
27476
|
}
|
|
@@ -27239,8 +27484,13 @@ class AXPFormFieldWidgetViewComponent extends AXPGridItemBaseLayoutWidgetCompone
|
|
|
27239
27484
|
>
|
|
27240
27485
|
</ng-container>
|
|
27241
27486
|
}
|
|
27487
|
+
@if (hintAsNote()) {
|
|
27488
|
+
<p class="ax-text-xs ax-mt-1 ax-font-normal ax-opacity-75">
|
|
27489
|
+
{{ hintText()! | translate | async }}
|
|
27490
|
+
</p>
|
|
27491
|
+
}
|
|
27242
27492
|
</ax-form-field>
|
|
27243
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27493
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: i1$3.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged", "onLoad"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "directive", type: i4$1.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27244
27494
|
}
|
|
27245
27495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPFormFieldWidgetViewComponent, decorators: [{
|
|
27246
27496
|
type: Component,
|
|
@@ -27248,14 +27498,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
27248
27498
|
selector: 'axp-form-field-widget-view',
|
|
27249
27499
|
template: `
|
|
27250
27500
|
<ax-form-field>
|
|
27251
|
-
@if (
|
|
27501
|
+
@if (showTopRow()) {
|
|
27252
27502
|
<div class="ax-flex ax-gap-1 ax-items-center ax-justify-between">
|
|
27253
|
-
|
|
27254
|
-
|
|
27255
|
-
|
|
27503
|
+
<div class="ax-flex ax-min-w-0 ax-flex-wrap ax-items-center ax-gap-1 ax-leading-none">
|
|
27504
|
+
@if (showLabel()) {
|
|
27505
|
+
<ax-label [required]="isRequired()" class="ax-inline-flex ax-min-w-0 ax-items-center">{{ label() | translate | async }}</ax-label>
|
|
27506
|
+
}
|
|
27507
|
+
@if (hintAsIcon()) {
|
|
27508
|
+
<i
|
|
27509
|
+
role="button"
|
|
27510
|
+
tabindex="0"
|
|
27511
|
+
class="fa-regular fa-circle-info ax-relative ax-top-px ax-inline-flex ax-h-5 ax-w-5 ax-shrink-0 ax-cursor-help ax-items-center ax-justify-center ax-rounded-full ax-text-xs ax-leading-none ax-text-neutral-500 ax-outline-none ax-transition-[color,background-color] hover:ax-bg-neutral-100 hover:ax-text-neutral-800 focus-visible:ax-outline-2 focus-visible:ax-outline-primary-500 focus-visible:ax-outline-offset-1 ax-mt-[-5px]"
|
|
27512
|
+
[axTooltip]="(hintText()! | translate | async) ?? ''"
|
|
27513
|
+
axTooltipPlacement="top"
|
|
27514
|
+
[attr.aria-label]="(hintText()! | translate | async) ?? ''"
|
|
27515
|
+
></i>
|
|
27516
|
+
}
|
|
27517
|
+
</div>
|
|
27256
27518
|
@if (badge()) {
|
|
27257
|
-
|
|
27258
|
-
<span class="ax-text ax-p-1 ax-text-xs ax-rounded-md ">{{ badge() | translate | async }}</span>
|
|
27519
|
+
<span class="ax-text ax-p-1 ax-text-xs ax-rounded-md">{{ badge() | translate | async }}</span>
|
|
27259
27520
|
}
|
|
27260
27521
|
</div>
|
|
27261
27522
|
}
|
|
@@ -27269,10 +27530,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
27269
27530
|
>
|
|
27270
27531
|
</ng-container>
|
|
27271
27532
|
}
|
|
27533
|
+
@if (hintAsNote()) {
|
|
27534
|
+
<p class="ax-text-xs ax-mt-1 ax-font-normal ax-opacity-75">
|
|
27535
|
+
{{ hintText()! | translate | async }}
|
|
27536
|
+
</p>
|
|
27537
|
+
}
|
|
27272
27538
|
</ax-form-field>
|
|
27273
27539
|
`,
|
|
27274
27540
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
27275
|
-
imports: [
|
|
27541
|
+
imports: [
|
|
27542
|
+
CommonModule,
|
|
27543
|
+
AXFormModule,
|
|
27544
|
+
AXLabelModule,
|
|
27545
|
+
AXPWidgetCoreModule,
|
|
27546
|
+
AXTranslationModule,
|
|
27547
|
+
AXBadgeModule,
|
|
27548
|
+
AXDecoratorModule,
|
|
27549
|
+
AXTooltipModule,
|
|
27550
|
+
],
|
|
27276
27551
|
standalone: true,
|
|
27277
27552
|
}]
|
|
27278
27553
|
}], propDecorators: { __class: [{
|
|
@@ -27289,6 +27564,20 @@ class AXPFormFieldWidgetDesignerComponent extends AXPGridItemBaseLayoutWidgetCom
|
|
|
27289
27564
|
constructor() {
|
|
27290
27565
|
super(...arguments);
|
|
27291
27566
|
this.label = computed(() => this.options()['label'], ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
27567
|
+
this.hint = computed(() => this.options()['hint'], ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
|
|
27568
|
+
this.hasHint = computed(() => {
|
|
27569
|
+
const h = this.hint();
|
|
27570
|
+
if (h == null || h === '') {
|
|
27571
|
+
return false;
|
|
27572
|
+
}
|
|
27573
|
+
if (typeof h === 'string') {
|
|
27574
|
+
return h.trim().length > 0;
|
|
27575
|
+
}
|
|
27576
|
+
return true;
|
|
27577
|
+
}, ...(ngDevMode ? [{ debugName: "hasHint" }] : /* istanbul ignore next */ []));
|
|
27578
|
+
this.hintDisplayMode = computed(() => this.options()['hintDisplayMode'] === 'icon' ? 'icon' : 'note', ...(ngDevMode ? [{ debugName: "hintDisplayMode" }] : /* istanbul ignore next */ []));
|
|
27579
|
+
this.hintAsIcon = computed(() => this.hasHint() && this.hintDisplayMode() === 'icon', ...(ngDevMode ? [{ debugName: "hintAsIcon" }] : /* istanbul ignore next */ []));
|
|
27580
|
+
this.hintAsNote = computed(() => this.hasHint() && this.hintDisplayMode() === 'note', ...(ngDevMode ? [{ debugName: "hintAsNote" }] : /* istanbul ignore next */ []));
|
|
27292
27581
|
}
|
|
27293
27582
|
get __class() {
|
|
27294
27583
|
return this.hostClass();
|
|
@@ -27301,7 +27590,12 @@ class AXPFormFieldWidgetDesignerComponent extends AXPGridItemBaseLayoutWidgetCom
|
|
|
27301
27590
|
},
|
|
27302
27591
|
], usesInheritance: true, ngImport: i0, template: `
|
|
27303
27592
|
<ax-form-field>
|
|
27304
|
-
<ax-
|
|
27593
|
+
<div class="ax-flex ax-gap-1 ax-items-center">
|
|
27594
|
+
<ax-label>{{ label() | translate | async }}</ax-label>
|
|
27595
|
+
@if (hintAsIcon()) {
|
|
27596
|
+
<i class="fa-regular fa-circle-info ax-text-sm ax-opacity-75" aria-hidden="true"></i>
|
|
27597
|
+
}
|
|
27598
|
+
</div>
|
|
27305
27599
|
@for (node of children(); track $index) {
|
|
27306
27600
|
<ng-container
|
|
27307
27601
|
axp-widget-designer-renderer
|
|
@@ -27314,6 +27608,11 @@ class AXPFormFieldWidgetDesignerComponent extends AXPGridItemBaseLayoutWidgetCom
|
|
|
27314
27608
|
} @empty {
|
|
27315
27609
|
<axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button>
|
|
27316
27610
|
}
|
|
27611
|
+
@if (hintAsNote()) {
|
|
27612
|
+
<p class="ax-text-xs ax-mt-1 ax-font-normal ax-opacity-75">
|
|
27613
|
+
{{ hint() | translate | async }}
|
|
27614
|
+
</p>
|
|
27615
|
+
}
|
|
27317
27616
|
</ax-form-field>
|
|
27318
27617
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i3.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i2.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXPWidgetCoreModule }, { kind: "directive", type: AXPWidgetDesignerRendererDirective, selector: "[axp-widget-designer-renderer]", inputs: ["parentNode", "parentElement", "parentComponent", "index", "locked", "mode", "node"] }, { kind: "component", type: AXPDesignerAddWidgetMiniButtonComponent, selector: "axp-designer-add-widget-mini-button", outputs: ["onClick"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27319
27618
|
}
|
|
@@ -27323,7 +27622,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
27323
27622
|
selector: 'axp-form-field-widget-designer',
|
|
27324
27623
|
template: `
|
|
27325
27624
|
<ax-form-field>
|
|
27326
|
-
<ax-
|
|
27625
|
+
<div class="ax-flex ax-gap-1 ax-items-center">
|
|
27626
|
+
<ax-label>{{ label() | translate | async }}</ax-label>
|
|
27627
|
+
@if (hintAsIcon()) {
|
|
27628
|
+
<i class="fa-regular fa-circle-info ax-text-sm ax-opacity-75" aria-hidden="true"></i>
|
|
27629
|
+
}
|
|
27630
|
+
</div>
|
|
27327
27631
|
@for (node of children(); track $index) {
|
|
27328
27632
|
<ng-container
|
|
27329
27633
|
axp-widget-designer-renderer
|
|
@@ -27336,6 +27640,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
27336
27640
|
} @empty {
|
|
27337
27641
|
<axp-designer-add-widget-mini-button></axp-designer-add-widget-mini-button>
|
|
27338
27642
|
}
|
|
27643
|
+
@if (hintAsNote()) {
|
|
27644
|
+
<p class="ax-text-xs ax-mt-1 ax-font-normal ax-opacity-75">
|
|
27645
|
+
{{ hint() | translate | async }}
|
|
27646
|
+
</p>
|
|
27647
|
+
}
|
|
27339
27648
|
</ax-form-field>
|
|
27340
27649
|
`,
|
|
27341
27650
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -27366,14 +27675,37 @@ var formFieldWidgetDesigner_component = /*#__PURE__*/Object.freeze({
|
|
|
27366
27675
|
AXPFormFieldWidgetDesignerComponent: AXPFormFieldWidgetDesignerComponent
|
|
27367
27676
|
});
|
|
27368
27677
|
|
|
27678
|
+
const AXP_FORM_FIELD_HINT_PROPERTY = createStringProperty({
|
|
27679
|
+
name: 'hint',
|
|
27680
|
+
title: 'Hint',
|
|
27681
|
+
path: 'options.hint',
|
|
27682
|
+
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
27683
|
+
});
|
|
27684
|
+
const AXP_FORM_FIELD_HINT_DISPLAY_MODE_PROPERTY = createSelectProperty({
|
|
27685
|
+
name: 'hintDisplayMode',
|
|
27686
|
+
title: 'Hint display',
|
|
27687
|
+
path: 'options.hintDisplayMode',
|
|
27688
|
+
group: AXP_BEHAVIOR_PROPERTY_GROUP,
|
|
27689
|
+
defaultValue: 'note',
|
|
27690
|
+
dataSource: [
|
|
27691
|
+
{ id: 'note', title: 'Note (below field)' },
|
|
27692
|
+
{ id: 'icon', title: 'Icon (tooltip)' },
|
|
27693
|
+
],
|
|
27694
|
+
});
|
|
27369
27695
|
const AXPFormFieldWidget = {
|
|
27370
27696
|
name: 'form-field',
|
|
27371
|
-
title: '
|
|
27697
|
+
title: '@platform-layout-widgets:widgets.form-field.title',
|
|
27372
27698
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
27699
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_UTILITY,
|
|
27373
27700
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
27374
27701
|
type: 'container',
|
|
27375
27702
|
icon: 'fa-light fa-pen-field',
|
|
27376
|
-
properties: [
|
|
27703
|
+
properties: [
|
|
27704
|
+
AXP_NAME_PROPERTY,
|
|
27705
|
+
cloneProperty(AXP_LABEL_PROPERTY, { schema: { defaultValue: 'Sample Label' } }),
|
|
27706
|
+
AXP_FORM_FIELD_HINT_PROPERTY,
|
|
27707
|
+
AXP_FORM_FIELD_HINT_DISPLAY_MODE_PROPERTY,
|
|
27708
|
+
],
|
|
27377
27709
|
components: {
|
|
27378
27710
|
view: {
|
|
27379
27711
|
component: () => Promise.resolve().then(function () { return formFieldWidgetView_component; }).then((c) => c.AXPFormFieldWidgetViewComponent),
|
|
@@ -27864,9 +28196,10 @@ var gridWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
27864
28196
|
|
|
27865
28197
|
const AXPGridWidget = {
|
|
27866
28198
|
name: 'grid-layout',
|
|
27867
|
-
title: '
|
|
28199
|
+
title: '@platform-layout-widgets:widgets.grid-layout.title',
|
|
27868
28200
|
type: 'container',
|
|
27869
28201
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
28202
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
27870
28203
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
27871
28204
|
icon: 'fa-light fa-grid',
|
|
27872
28205
|
properties: [
|
|
@@ -28103,9 +28436,10 @@ var gridItemWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
28103
28436
|
|
|
28104
28437
|
const AXPGridItemWidget = {
|
|
28105
28438
|
name: 'grid-item-layout',
|
|
28106
|
-
title: '
|
|
28439
|
+
title: '@platform-layout-widgets:widgets.grid-item-layout.title',
|
|
28107
28440
|
type: 'container',
|
|
28108
28441
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
28442
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_GRID,
|
|
28109
28443
|
// groups: [AXPWidgetGroupEnum.FormElement],
|
|
28110
28444
|
icon: 'fa-light fa-objects-column',
|
|
28111
28445
|
properties: [
|
|
@@ -28132,10 +28466,11 @@ const AXPGridItemWidget = {
|
|
|
28132
28466
|
|
|
28133
28467
|
const AXPAlertBoxWidget = {
|
|
28134
28468
|
name: 'alert-box-layout',
|
|
28135
|
-
title: '
|
|
28136
|
-
description: '
|
|
28469
|
+
title: '@platform-layout-widgets:widgets.alert-box-layout.title',
|
|
28470
|
+
description: '@platform-layout-widgets:widgets.alert-box-layout.description',
|
|
28137
28471
|
icon: 'fa-light fa-circle-info',
|
|
28138
|
-
categories: [AXP_WIDGETS_LAYOUT_CATEGORY
|
|
28472
|
+
categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
|
|
28473
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
|
|
28139
28474
|
aiDescription: 'Use for notices: success, warning, danger, or info callouts with title and body. Prefer over plain text when severity or emphasis should be visible.',
|
|
28140
28475
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
28141
28476
|
type: 'view',
|
|
@@ -28378,9 +28713,10 @@ var iconWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
28378
28713
|
|
|
28379
28714
|
const AXPIconWidget = {
|
|
28380
28715
|
name: 'icon',
|
|
28381
|
-
title: '
|
|
28716
|
+
title: '@platform-layout-widgets:widgets.icon.title',
|
|
28382
28717
|
type: 'view',
|
|
28383
28718
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
28719
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_UTILITY,
|
|
28384
28720
|
// groups: [AXPWidgetGroupEnum.FormElement],
|
|
28385
28721
|
icon: 'fa-light fa-icons',
|
|
28386
28722
|
properties: [AXP_NAME_PROPERTY],
|
|
@@ -28586,10 +28922,11 @@ var panelWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
28586
28922
|
const AXPPanelWidget = {
|
|
28587
28923
|
name: 'panel-layout',
|
|
28588
28924
|
type: 'container',
|
|
28589
|
-
title: '
|
|
28590
|
-
description: '
|
|
28925
|
+
title: '@platform-layout-widgets:widgets.panel-layout.title',
|
|
28926
|
+
description: '@platform-layout-widgets:widgets.panel-layout.description',
|
|
28591
28927
|
icon: 'fa-light fa-rectangle-list',
|
|
28592
28928
|
categories: AXP_WIDGETS_LAYOUT_CATEGORY,
|
|
28929
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
|
|
28593
28930
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
28594
28931
|
properties: [
|
|
28595
28932
|
AXP_NAME_PROPERTY,
|
|
@@ -28843,13 +29180,14 @@ var tabsetWidgetDesigner_component = /*#__PURE__*/Object.freeze({
|
|
|
28843
29180
|
|
|
28844
29181
|
const AXPTabSetWidget = {
|
|
28845
29182
|
name: 'tabset-layout',
|
|
28846
|
-
title: '
|
|
28847
|
-
description: '
|
|
29183
|
+
title: '@platform-layout-widgets:widgets.tabset-layout.title',
|
|
29184
|
+
description: '@platform-layout-widgets:widgets.tabset-layout.description',
|
|
28848
29185
|
type: 'view',
|
|
28849
|
-
categories: [AXP_WIDGETS_LAYOUT_CATEGORY
|
|
29186
|
+
categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
|
|
29187
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_TABS,
|
|
28850
29188
|
aiDescription: 'Use to split content into labeled tabs. Pair with tabset-item children; each tab should map to one logical section of the answer.',
|
|
28851
29189
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
28852
|
-
icon: 'fa-
|
|
29190
|
+
icon: 'fa-light fa-square',
|
|
28853
29191
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
28854
29192
|
components: {
|
|
28855
29193
|
view: {
|
|
@@ -28930,13 +29268,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
28930
29268
|
|
|
28931
29269
|
const AXPTabSetItemWidget = {
|
|
28932
29270
|
name: 'tabset-item',
|
|
28933
|
-
title: '
|
|
28934
|
-
description: '
|
|
29271
|
+
title: '@platform-layout-widgets:widgets.tabset-item.title',
|
|
29272
|
+
description: '@platform-layout-widgets:widgets.tabset-item.description',
|
|
28935
29273
|
type: 'view',
|
|
28936
|
-
categories: [AXP_WIDGETS_LAYOUT_CATEGORY
|
|
29274
|
+
categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
|
|
29275
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_TABS,
|
|
28937
29276
|
aiDescription: 'Single tab panel inside a tabset. Use one item per tab label; put the tab content in the slot or bound child widgets.',
|
|
28938
29277
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
28939
|
-
icon: 'fa-
|
|
29278
|
+
icon: 'fa-light fa-square',
|
|
28940
29279
|
properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
|
|
28941
29280
|
components: {
|
|
28942
29281
|
view: {
|
|
@@ -28977,10 +29316,11 @@ var textBlockWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
28977
29316
|
|
|
28978
29317
|
const AXPTextBlockWidget = {
|
|
28979
29318
|
name: 'text-block-layout',
|
|
28980
|
-
title: '
|
|
28981
|
-
description: '
|
|
29319
|
+
title: '@platform-layout-widgets:widgets.text-block-layout.title',
|
|
29320
|
+
description: '@platform-layout-widgets:widgets.text-block-layout.description',
|
|
28982
29321
|
icon: 'fa-light fa-text',
|
|
28983
|
-
categories: [AXP_WIDGETS_LAYOUT_CATEGORY
|
|
29322
|
+
categories: [AXP_WIDGETS_LAYOUT_CATEGORY],
|
|
29323
|
+
subCategory: AXP_WIDGETS_LAYOUT_SUB_SURFACES,
|
|
28984
29324
|
aiDescription: 'Use for rich text blocks (options.content) when the answer needs structured prose beyond a single paragraph; supports inline formatting from the rich-text renderer.',
|
|
28985
29325
|
groups: [AXPWidgetGroupEnum.FormElement],
|
|
28986
29326
|
type: 'view',
|
|
@@ -29457,6 +29797,7 @@ var triggerExpressionEditorPopup_component = /*#__PURE__*/Object.freeze({
|
|
|
29457
29797
|
AXPTriggerExpressionEditorPopupComponent: AXPTriggerExpressionEditorPopupComponent
|
|
29458
29798
|
});
|
|
29459
29799
|
|
|
29800
|
+
//#region ---- Imports ----
|
|
29460
29801
|
//#endregion
|
|
29461
29802
|
//#region ---- Widget Lists (single source of truth) ----
|
|
29462
29803
|
/**
|
|
@@ -29573,6 +29914,7 @@ const EXTENDED_WIDGETS = [
|
|
|
29573
29914
|
name: 'select-filter',
|
|
29574
29915
|
title: 'Select Filter',
|
|
29575
29916
|
categories: AXP_WIDGETS_EDITOR_CATEGORY,
|
|
29917
|
+
groups: [AXPWidgetGroupEnum.BaseWidget],
|
|
29576
29918
|
type: 'filter',
|
|
29577
29919
|
components: {},
|
|
29578
29920
|
options: {
|
|
@@ -29676,7 +30018,7 @@ function toSerializableWidget(config) {
|
|
|
29676
30018
|
...(config.icon != null ? { icon: config.icon } : {}),
|
|
29677
30019
|
...(config.description != null ? { description: resolveWidgetLabelForAi(config.description) || undefined } : {}),
|
|
29678
30020
|
...(config.aiDescription != null && config.aiDescription !== '' ? { aiDescription: config.aiDescription } : {}),
|
|
29679
|
-
categories:
|
|
30021
|
+
categories: normalizeDefinitionCategories(config.categories).map((c) => ({
|
|
29680
30022
|
name: c.name,
|
|
29681
30023
|
title: resolveWidgetLabelForAi(c.title) || c.name,
|
|
29682
30024
|
order: c.order,
|
|
@@ -29689,7 +30031,6 @@ function toSerializableWidget(config) {
|
|
|
29689
30031
|
...(config.designer != null ? { designer: config.designer } : {}),
|
|
29690
30032
|
...(config.options != null ? { options: config.options } : {}),
|
|
29691
30033
|
...(config.defaultFilterWidgetName != null ? { defaultFilterWidgetName: config.defaultFilterWidgetName } : {}),
|
|
29692
|
-
...(config.aiCatalog != null ? { aiCatalog: config.aiCatalog } : {}),
|
|
29693
30034
|
};
|
|
29694
30035
|
}
|
|
29695
30036
|
function buildUsage(config) {
|
|
@@ -29712,7 +30053,7 @@ function buildUsage(config) {
|
|
|
29712
30053
|
//#endregion
|
|
29713
30054
|
//#region ---- Query ----
|
|
29714
30055
|
/**
|
|
29715
|
-
* Read-only
|
|
30056
|
+
* Read-only full widget registry (Widgets:GetForAI). Lists every registered widget.
|
|
29716
30057
|
*/
|
|
29717
30058
|
class AXPGetWidgetsForAIQuery {
|
|
29718
30059
|
constructor() {
|
|
@@ -29721,16 +30062,13 @@ class AXPGetWidgetsForAIQuery {
|
|
|
29721
30062
|
async fetch(input) {
|
|
29722
30063
|
const name = input?.name?.trim();
|
|
29723
30064
|
if (!name) {
|
|
29724
|
-
const list = this.registry
|
|
29725
|
-
.all()
|
|
29726
|
-
.filter((w) => isWidgetAiCatalogIncluded(w))
|
|
29727
|
-
.map((w) => ({
|
|
30065
|
+
const list = this.registry.all().map((w) => ({
|
|
29728
30066
|
name: String(w.name),
|
|
29729
30067
|
title: resolveWidgetLabelForAi(w.title) || String(w.name),
|
|
29730
30068
|
...(w.description != null ? { description: resolveWidgetLabelForAi(w.description) || undefined } : {}),
|
|
29731
30069
|
...(w.aiDescription != null && w.aiDescription !== '' ? { aiDescription: w.aiDescription } : {}),
|
|
29732
30070
|
type: w.type,
|
|
29733
|
-
categories:
|
|
30071
|
+
categories: normalizeDefinitionCategories(w.categories).map((c) => ({
|
|
29734
30072
|
name: c.name,
|
|
29735
30073
|
title: resolveWidgetLabelForAi(c.title) || c.name,
|
|
29736
30074
|
order: c.order,
|
|
@@ -29740,12 +30078,6 @@ class AXPGetWidgetsForAIQuery {
|
|
|
29740
30078
|
}
|
|
29741
30079
|
try {
|
|
29742
30080
|
const config = this.registry.resolve(name);
|
|
29743
|
-
if (!isWidgetAiCatalogIncluded(config)) {
|
|
29744
|
-
return {
|
|
29745
|
-
success: false,
|
|
29746
|
-
error: `Widget "${name}" is not available for the AI widget catalog.`,
|
|
29747
|
-
};
|
|
29748
|
-
}
|
|
29749
30081
|
return {
|
|
29750
30082
|
success: true,
|
|
29751
30083
|
detail: toSerializableWidget(config),
|