@acorex/platform 19.2.8 → 19.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/common/lib/app/application.types.d.ts +10 -2
  2. package/common/lib/utils/expression-evaluator.service.d.ts +3 -1
  3. package/common/lib/utils/index.d.ts +2 -0
  4. package/common/lib/utils/regional-util.service.d.ts +15 -0
  5. package/common/lib/utils/regional.types.d.ts +55 -0
  6. package/fesm2022/acorex-platform-common.mjs +30 -14
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-core.mjs +35 -16
  9. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-layout-builder.mjs +91 -24
  11. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-designer.mjs +48 -28
  13. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-entity.mjs +105 -78
  15. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  16. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Bl9f4Rtk.mjs → acorex-platform-themes-default-entity-master-create-view.component-Bvwr0PVk.mjs} +9 -5
  17. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bvwr0PVk.mjs.map +1 -0
  18. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-De61n012.mjs → acorex-platform-themes-default-entity-master-list-view.component-BzLgFr7D.mjs} +8 -3
  19. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BzLgFr7D.mjs.map +1 -0
  20. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-U8aBv1Ql.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BAU_s90_.mjs} +8 -4
  21. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BAU_s90_.mjs.map +1 -0
  22. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-B4aBmc5H.mjs → acorex-platform-themes-default-entity-master-single-view.component-BGUrwL2P.mjs} +3 -3
  23. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BGUrwL2P.mjs.map +1 -0
  24. package/fesm2022/acorex-platform-themes-default-setting-page.component-DYumYm5k.mjs +74 -0
  25. package/fesm2022/acorex-platform-themes-default-setting-page.component-DYumYm5k.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-themes-default-setting-view.component-CsCug3Vu.mjs +71 -0
  27. package/fesm2022/acorex-platform-themes-default-setting-view.component-CsCug3Vu.mjs.map +1 -0
  28. package/fesm2022/acorex-platform-themes-default.mjs +25 -16
  29. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-themes-shared.mjs +10 -1
  31. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  32. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-B90if8wb.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-BiCinIok.mjs} +13 -11
  33. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-BiCinIok.mjs.map +1 -0
  34. package/fesm2022/acorex-platform-widgets.mjs +597 -534
  35. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  36. package/layout/builder/lib/builder/datasource-provider.service.d.ts +3 -1
  37. package/layout/builder/lib/builder/widget-map.d.ts +1 -0
  38. package/layout/builder/lib/builder/widget.types.d.ts +15 -0
  39. package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +3 -0
  40. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -0
  41. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +3 -0
  42. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +5 -2
  43. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -1
  44. package/layout/entity/lib/entity-master-update.viewmodel.d.ts +4 -3
  45. package/layout/entity/lib/entity.viewmodel.d.ts +2 -0
  46. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +0 -2
  47. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +0 -2
  48. package/layout/setting/lib/setting.viewmodel.d.ts +3 -0
  49. package/package.json +9 -9
  50. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +3 -0
  51. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +3 -0
  52. package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +2 -0
  53. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +5 -1
  54. package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +2 -0
  55. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +3 -0
  56. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +3 -0
  57. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +5 -0
  58. package/themes/default/lib/layouts/root-layout/root-layout.module.d.ts +2 -1
  59. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +3 -0
  60. package/themes/default/lib/pages/theme-palette-preview/theme-palette-preview.page.d.ts +3 -0
  61. package/themes/shared/lib/components/slots/theme-slot.component.d.ts +3 -0
  62. package/themes/shared/lib/setting.keys.d.ts +2 -1
  63. package/themes/shared/lib/theme.service.d.ts +3 -0
  64. package/widgets/lib/properties/data-source.props.d.ts +3 -0
  65. package/widgets/lib/properties/editors.props.d.ts +0 -1
  66. package/widgets/lib/properties/index.d.ts +1 -0
  67. package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +6 -4
  68. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +3 -8
  69. package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +1 -1
  70. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget-edit.component.d.ts +14 -0
  71. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart-widget.config.d.ts +7 -0
  72. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +17 -0
  73. package/widgets/lib/widgets/charts/gauge-chart/index.d.ts +2 -0
  74. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +0 -2
  75. package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +0 -2
  76. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +0 -4
  77. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.d.ts +0 -2
  78. package/widgets/lib/widgets/editors/email/email-box-widget-edit.component.d.ts +0 -4
  79. package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +0 -2
  80. package/widgets/lib/widgets/editors/link/link-widget-edit.component.d.ts +0 -4
  81. package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +0 -2
  82. package/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.d.ts +0 -4
  83. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +0 -2
  84. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +0 -2
  85. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +0 -2
  86. package/widgets/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.d.ts +0 -1
  87. package/widgets/lib/widgets/editors/text/text-box-widget-edit.component.d.ts +0 -2
  88. package/widgets/lib/widgets/validations/base-validation/base-validation.d.ts +3 -2
  89. package/widgets/lib/widgets/validations/between-validation/between-validation-widget-edit.component.d.ts +1 -7
  90. package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget-edit.component.d.ts +1 -7
  91. package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget-edit.component.d.ts +1 -7
  92. package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget-edit.component.d.ts +1 -7
  93. package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget-edit.component.d.ts +1 -7
  94. package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget-edit.component.d.ts +1 -7
  95. package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget-edit.component.d.ts +1 -7
  96. package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget-edit.component.d.ts +1 -7
  97. package/widgets/lib/widgets/validations/required-validation/required-validation-widget-edit.component.d.ts +1 -7
  98. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bl9f4Rtk.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-De61n012.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-U8aBv1Ql.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B4aBmc5H.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-default-setting-page.component-BERYnJnp.mjs +0 -74
  103. package/fesm2022/acorex-platform-themes-default-setting-page.component-BERYnJnp.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-setting-view.component-BagAWM4W.mjs +0 -71
  105. package/fesm2022/acorex-platform-themes-default-setting-view.component-BagAWM4W.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-B90if8wb.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import * as i1$6 from '@acorex/platform/layout/builder';
2
- import { AXPWidgetsCatalog, createStringProperty, createBooleanProperty, createSelectProperty, cloneProperty, AXPWidgetComponent, AXP_WIDGETS_ACTION_GROUP, AXP_WIDGETS_EDITOR_GROUP, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPWidgetStatus, AXPPageStatus, AXP_WIDGETS_ADVANCE_GROUP, AXPLayoutBuilderModule, AXP_WIDGETS_LAYOUT_GROUP, AXP_WIDGETS_VALIDATION_GROUP, AXP_WIDGETS_CHART_GROUP, AXP_WIDGETS_FILTER_GROUP } from '@acorex/platform/layout/builder';
2
+ import { AXPWidgetsCatalog, createStringProperty, createBooleanProperty, createSelectProperty, cloneProperty, AXPWidgetComponent, AXP_WIDGETS_ACTION_GROUP, AXP_WIDGETS_EDITOR_GROUP, AXPColumnWidgetComponent, createNumberProperty, AXPDataListWidgetComponent, AXPWidgetStatus, AXPPageStatus, AXP_WIDGETS_ADVANCE_GROUP, AXPLayoutBuilderModule, AXP_WIDGETS_LAYOUT_GROUP, AXP_WIDGETS_VALIDATION_GROUP, AXP_WIDGETS_CHART_GROUP, AXP_WIDGETS_FILTER_GROUP } from '@acorex/platform/layout/builder';
3
3
  import { AX_STYLE_COLOR_TYPES, AX_STYLE_LOOK_TYPES, AXDataSource } from '@acorex/components/common';
4
4
  import * as i1$2 from '@acorex/components/badge';
5
5
  import { AXBadgeModule } from '@acorex/components/badge';
@@ -107,7 +107,7 @@ const AXP_WIDGET_PROPERTY_GROUP = {
107
107
  const AXP_VALIDATION_PROPERTY_GROUP = {
108
108
  name: 'validation',
109
109
  order: 4,
110
- title: 'validation',
110
+ title: 'Validation',
111
111
  };
112
112
 
113
113
  const AXP_DATA_SOURCE_PROPERTY = {
@@ -128,6 +128,57 @@ const AXP_DATA_SOURCE_PROPERTY = {
128
128
  },
129
129
  visible: true,
130
130
  };
131
+ const AXP_DATA_SOURCE_VALUE_FIELD = {
132
+ name: 'valueField',
133
+ title: 'Value Field',
134
+ group: AXP_DATA_PROPERTY_GROUP,
135
+ schema: {
136
+ dataType: 'string',
137
+ interface: {
138
+ name: 'valueField',
139
+ path: 'options.valueField',
140
+ type: AXPWidgetsCatalog.text,
141
+ options: {
142
+ hasClearButton: true,
143
+ },
144
+ triggers: [
145
+ {
146
+ event: `{{ events.context('options.dataSource') }}`,
147
+ action: `{{ context.set('options.valueField',context.eval("options.dataSource").valueField); }}`,
148
+ },
149
+ ],
150
+ },
151
+ },
152
+ visible: false,
153
+ };
154
+ const AXP_DATA_SOURCE_TEXT_FIELD = {
155
+ name: 'textField',
156
+ title: 'Text Field',
157
+ group: AXP_DATA_PROPERTY_GROUP,
158
+ schema: {
159
+ dataType: 'string',
160
+ interface: {
161
+ name: 'textField',
162
+ path: 'options.textField',
163
+ type: AXPWidgetsCatalog.text,
164
+ options: {
165
+ hasClearButton: true,
166
+ },
167
+ triggers: [
168
+ {
169
+ event: `{{ events.context('options.dataSource') }}`,
170
+ action: `{{ context.set('options.textField',context.eval("options.dataSource").textField); }}`,
171
+ },
172
+ ],
173
+ },
174
+ },
175
+ visible: false,
176
+ };
177
+ const AXP_DATA_SOURCE_PROPERTIES = [
178
+ AXP_DATA_SOURCE_PROPERTY,
179
+ AXP_DATA_SOURCE_VALUE_FIELD,
180
+ AXP_DATA_SOURCE_TEXT_FIELD
181
+ ];
131
182
 
132
183
  const AXP_NAME_PROPERTY = createStringProperty({
133
184
  name: 'name',
@@ -240,20 +291,6 @@ const AXP_BG_COLOR_PROPERTY = {
240
291
  visible: true,
241
292
  };
242
293
 
243
- const AXP_VALIDATION_PROPERTY = {
244
- name: 'validationRules',
245
- title: 'Validation Rules',
246
- group: AXP_DATA_PROPERTY_GROUP,
247
- schema: {
248
- dataType: 'array',
249
- defaultValue: [],
250
- interface: {
251
- type: AXPWidgetsCatalog.text,
252
- path: 'validationRules',
253
- },
254
- },
255
- visible: true,
256
- };
257
294
  const AXP_CONTENT_PROPERTY = createStringProperty({
258
295
  name: 'content',
259
296
  title: 'Content',
@@ -917,6 +954,142 @@ const AXP_TABLE_COLUMN_HEIGHT_PROPERTY = {
917
954
  visible: false,
918
955
  };
919
956
 
957
+ const AXP_REQUIRED_VALIDATION_PROPERTY = {
958
+ name: 'requiredValidation',
959
+ title: 'Required',
960
+ group: AXP_VALIDATION_PROPERTY_GROUP,
961
+ schema: {
962
+ dataType: 'object',
963
+ interface: {
964
+ name: 'requiredValidation',
965
+ path: 'options.validations.required',
966
+ type: AXPWidgetsCatalog.requiredValidation,
967
+ defaultValue: false,
968
+ },
969
+ },
970
+ visible: true,
971
+ };
972
+ const AXP_MIN_LENGTH_VALIDATION_PROPERTY = {
973
+ name: 'minLengthValidation',
974
+ title: 'Minimum Length',
975
+ group: AXP_VALIDATION_PROPERTY_GROUP,
976
+ schema: {
977
+ dataType: 'object',
978
+ interface: {
979
+ name: 'minLengthValidation',
980
+ path: 'options.validations.minLength',
981
+ type: AXPWidgetsCatalog.minLengthValidation,
982
+ defaultValue: null,
983
+ },
984
+ },
985
+ visible: true,
986
+ };
987
+ const AXP_MAX_LENGTH_VALIDATION_PROPERTY = {
988
+ name: 'maxLengthValidation',
989
+ title: 'Maximum Length',
990
+ group: AXP_VALIDATION_PROPERTY_GROUP,
991
+ schema: {
992
+ dataType: 'object',
993
+ interface: {
994
+ name: 'maxLengthValidation',
995
+ path: 'options.validations.maxLength',
996
+ type: AXPWidgetsCatalog.maxLengthValidation,
997
+ defaultValue: null,
998
+ },
999
+ },
1000
+ visible: true,
1001
+ };
1002
+ const AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY = {
1003
+ name: 'regularExpressionValidation',
1004
+ title: 'Regular Expression',
1005
+ group: AXP_VALIDATION_PROPERTY_GROUP,
1006
+ schema: {
1007
+ dataType: 'object',
1008
+ interface: {
1009
+ name: 'regularExpressionValidation',
1010
+ path: 'options.validations.regex',
1011
+ type: AXPWidgetsCatalog.regularExpressionValidation,
1012
+ defaultValue: false,
1013
+ },
1014
+ },
1015
+ visible: true,
1016
+ };
1017
+ const AXP_LESS_THAN_VALIDATION_PROPERTY = {
1018
+ name: 'lessThanValidation',
1019
+ title: 'Less Than',
1020
+ group: AXP_VALIDATION_PROPERTY_GROUP,
1021
+ schema: {
1022
+ dataType: 'object',
1023
+ interface: {
1024
+ name: 'lessThanValidation',
1025
+ path: 'options.validations.lessThan',
1026
+ type: AXPWidgetsCatalog.lessThanValidation,
1027
+ defaultValue: false,
1028
+ },
1029
+ },
1030
+ visible: true,
1031
+ };
1032
+ const AXP_GREATER_THAN_VALIDATION_PROPERTY = {
1033
+ name: 'greaterThanValidation',
1034
+ title: 'Greater Than',
1035
+ group: AXP_VALIDATION_PROPERTY_GROUP,
1036
+ schema: {
1037
+ dataType: 'object',
1038
+ interface: {
1039
+ name: 'greaterThanValidation',
1040
+ path: 'options.validations.greaterThan',
1041
+ type: AXPWidgetsCatalog.greaterThanValidation,
1042
+ defaultValue: false,
1043
+ },
1044
+ },
1045
+ visible: true,
1046
+ };
1047
+ const AXP_BETWEEN_VALIDATION_PROPERTY = {
1048
+ name: 'betweenValidation',
1049
+ title: 'Between',
1050
+ group: AXP_VALIDATION_PROPERTY_GROUP,
1051
+ schema: {
1052
+ dataType: 'object',
1053
+ interface: {
1054
+ name: 'betweenValidation',
1055
+ path: 'options.validations.between',
1056
+ type: AXPWidgetsCatalog.betweenValidation,
1057
+ defaultValue: false,
1058
+ },
1059
+ },
1060
+ visible: true,
1061
+ };
1062
+ const AXP_EQUAL_VALIDATION_PROPERTY = {
1063
+ name: 'equalValidation',
1064
+ title: 'Equal',
1065
+ group: AXP_VALIDATION_PROPERTY_GROUP,
1066
+ schema: {
1067
+ dataType: 'object',
1068
+ interface: {
1069
+ name: 'equalValidation',
1070
+ path: 'options.validations.equal',
1071
+ type: AXPWidgetsCatalog.equalValidation,
1072
+ defaultValue: false,
1073
+ },
1074
+ },
1075
+ visible: true,
1076
+ };
1077
+ const AXP_CALLBACK_VALIDATION_PROPERTY = {
1078
+ name: 'callbackValidation',
1079
+ title: 'Callback',
1080
+ group: AXP_VALIDATION_PROPERTY_GROUP,
1081
+ schema: {
1082
+ dataType: 'object',
1083
+ interface: {
1084
+ name: 'callbackValidation',
1085
+ path: 'options.validations.callback',
1086
+ type: AXPWidgetsCatalog.callbackValidation,
1087
+ defaultValue: false,
1088
+ },
1089
+ },
1090
+ visible: true,
1091
+ };
1092
+
920
1093
  class AXPButtonWidgetViewComponent extends AXPWidgetComponent {
921
1094
  constructor() {
922
1095
  super(...arguments);
@@ -1013,7 +1186,6 @@ class AXPCheckBoxWidgetEditComponent extends AXPWidgetComponent {
1013
1186
  this.disabled = computed(() => this.options()['disabled']);
1014
1187
  this.readonly = computed(() => this.options()['readonly']);
1015
1188
  this.label = computed(() => this.options()['label']);
1016
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
1017
1189
  }
1018
1190
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPCheckBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1019
1191
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPCheckBoxWidgetEditComponent, isStandalone: true, selector: "axp-checkbox-widget-edit", usesInheritance: true, ngImport: i0, template: `
@@ -1084,7 +1256,7 @@ const AXPCheckBoxWidget = {
1084
1256
  AXP_LABEL_PROPERTY,
1085
1257
  AXP_READONLY_PROPERTY,
1086
1258
  AXP_DISABLED_PROPERTY,
1087
- AXP_VALIDATION_PROPERTY,
1259
+ // AXP_VALIDATION_PROPERTY,
1088
1260
  booleanDefaultProperty(),
1089
1261
  ],
1090
1262
  components: {
@@ -1252,7 +1424,6 @@ class AXPContactWidgetEditComponent extends AXPWidgetComponent {
1252
1424
  },
1253
1425
  });
1254
1426
  this.validationService = inject(AXValidationService);
1255
- this._validationRules = [];
1256
1427
  this.itemToArray = (item) => {
1257
1428
  if (typeof item === 'object')
1258
1429
  return {
@@ -1342,12 +1513,6 @@ class AXPContactWidgetEditComponent extends AXPWidgetComponent {
1342
1513
  }
1343
1514
  }
1344
1515
  }
1345
- get validationRules() {
1346
- return this._validationRules;
1347
- }
1348
- set validationRules(v) {
1349
- this._validationRules = v;
1350
- }
1351
1516
  valueToArray() {
1352
1517
  const value = this.getValue();
1353
1518
  if (Array.isArray(value)) {
@@ -1388,7 +1553,7 @@ class AXPContactWidgetEditComponent extends AXPWidgetComponent {
1388
1553
  [ngClass]="generateClasses('value')"
1389
1554
  [disabled]="disabled()"
1390
1555
  >
1391
- @for (validation of validationRules; track $index) {
1556
+ @for (validation of validationRules(); track $index) {
1392
1557
  <ax-validation-rule
1393
1558
  [rule]="validation.rule"
1394
1559
  [message]="validation.options?.message"
@@ -1450,7 +1615,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1450
1615
  [ngClass]="generateClasses('value')"
1451
1616
  [disabled]="disabled()"
1452
1617
  >
1453
- @for (validation of validationRules; track $index) {
1618
+ @for (validation of validationRules(); track $index) {
1454
1619
  <ax-validation-rule
1455
1620
  [rule]="validation.rule"
1456
1621
  [message]="validation.options?.message"
@@ -1687,11 +1852,12 @@ const AXPContactWidget = {
1687
1852
  visible: true,
1688
1853
  },
1689
1854
  AXP_DISABLED_PROPERTY,
1690
- AXP_VALIDATION_PROPERTY,
1691
1855
  AXP_ALLOW_MULTIPLE_PROPERTY,
1692
1856
  AXP_HAS_LABEL_PROPERTY,
1693
1857
  AXP_HAS_ICON_PROPERTY,
1694
1858
  AXP_PLACEHOLDER_PROPERTY,
1859
+ //
1860
+ AXP_REQUIRED_VALIDATION_PROPERTY,
1695
1861
  ],
1696
1862
  components: {
1697
1863
  view: {
@@ -1794,7 +1960,6 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPWidgetComponent {
1794
1960
  this.disabled = computed(() => this.options()['disabled']);
1795
1961
  this.placeholder = computed(() => this.options()['placeholder']);
1796
1962
  this.internalValue = computed(() => Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]);
1797
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
1798
1963
  this.calendarFormat = computed(() => {
1799
1964
  if (this.format() === 'date')
1800
1965
  return 'dd/MM/yyyy';
@@ -2046,9 +2211,12 @@ const AXPDateTimeBoxWidget = {
2046
2211
  AXP_DATE_FORMAT_PROPERTY,
2047
2212
  AXP_READONLY_PROPERTY,
2048
2213
  AXP_DISABLED_PROPERTY,
2049
- AXP_VALIDATION_PROPERTY,
2050
2214
  AXP_PLACEHOLDER_PROPERTY,
2051
2215
  cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
2216
+ //
2217
+ AXP_REQUIRED_VALIDATION_PROPERTY,
2218
+ AXP_LESS_THAN_VALIDATION_PROPERTY,
2219
+ AXP_GREATER_THAN_VALIDATION_PROPERTY,
2052
2220
  ],
2053
2221
  components: {
2054
2222
  view: {
@@ -2194,7 +2362,6 @@ class AXPEmailBoxWidgetEditComponent extends AXPWidgetComponent {
2194
2362
  this.hasLabel = computed(() => this.options()["hasLabel"] ?? true);
2195
2363
  this.lables = computed(() => this.options()["lables"] ?? ['Primary', 'Secondary']);
2196
2364
  this.internalValue = computed(() => this.getValueAsArrayOfObjects());
2197
- this._validationRules = [];
2198
2365
  this.convertItem = (item, e) => {
2199
2366
  if (typeof item === 'object') {
2200
2367
  return { ...item, value: e.value };
@@ -2204,12 +2371,6 @@ class AXPEmailBoxWidgetEditComponent extends AXPWidgetComponent {
2204
2371
  }
2205
2372
  };
2206
2373
  }
2207
- get validationRules() {
2208
- return this._validationRules;
2209
- }
2210
- set validationRules(v) {
2211
- this._validationRules = v;
2212
- }
2213
2374
  getValueAsArrayOfObjects() {
2214
2375
  const value = this.getValue();
2215
2376
  if (Array.isArray(value)) {
@@ -2268,7 +2429,7 @@ class AXPEmailBoxWidgetEditComponent extends AXPWidgetComponent {
2268
2429
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
2269
2430
  [class.lg:!ax-col-end-12]="!hasLabel()"
2270
2431
  >
2271
- @for (validation of validationRules; track $index) {
2432
+ @for (validation of validationRules(); track $index) {
2272
2433
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
2273
2434
  }
2274
2435
  <ax-validation-rule [rule]="'email'"></ax-validation-rule>
@@ -2314,10 +2475,9 @@ class AXPEmailBoxWidgetEditComponent extends AXPWidgetComponent {
2314
2475
  type="text"
2315
2476
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
2316
2477
  [class.lg:!ax-col-end-13]="!hasLabel()">
2317
- @for (validation of validationRules; track $index) {
2478
+ @for (validation of validationRules(); track $index) {
2318
2479
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
2319
2480
  }
2320
- <ax-validation-rule [rule]="'email'"></ax-validation-rule>
2321
2481
  </ax-text-box>
2322
2482
  @if(hasLabel()){
2323
2483
  <ax-select-box
@@ -2350,7 +2510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2350
2510
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
2351
2511
  [class.lg:!ax-col-end-12]="!hasLabel()"
2352
2512
  >
2353
- @for (validation of validationRules; track $index) {
2513
+ @for (validation of validationRules(); track $index) {
2354
2514
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
2355
2515
  }
2356
2516
  <ax-validation-rule [rule]="'email'"></ax-validation-rule>
@@ -2396,10 +2556,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2396
2556
  type="text"
2397
2557
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
2398
2558
  [class.lg:!ax-col-end-13]="!hasLabel()">
2399
- @for (validation of validationRules; track $index) {
2559
+ @for (validation of validationRules(); track $index) {
2400
2560
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
2401
2561
  }
2402
- <ax-validation-rule [rule]="'email'"></ax-validation-rule>
2403
2562
  </ax-text-box>
2404
2563
  @if(hasLabel()){
2405
2564
  <ax-select-box
@@ -2545,9 +2704,10 @@ const AXPEmailBoxWidget = {
2545
2704
  AXP_DATA_PATH_PROPERTY,
2546
2705
  AXP_ALLOW_MULTIPLE_PROPERTY,
2547
2706
  AXP_DISABLED_PROPERTY,
2548
- AXP_VALIDATION_PROPERTY,
2549
2707
  AXP_PLACEHOLDER_PROPERTY,
2550
2708
  AXP_HAS_LABEL_PROPERTY,
2709
+ //
2710
+ AXP_REQUIRED_VALIDATION_PROPERTY,
2551
2711
  ],
2552
2712
  components: {
2553
2713
  view: {
@@ -2609,7 +2769,6 @@ class AXPLargeTextWidgetEditComponent extends AXPWidgetComponent {
2609
2769
  this.disabled = computed(() => this.options()['disabled']);
2610
2770
  this.clearButton = computed(() => this.options()['clearButton'] ?? true);
2611
2771
  this.placeholder = computed(() => this.options()['placeholder']);
2612
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
2613
2772
  }
2614
2773
  get __class() {
2615
2774
  const cls = {};
@@ -2746,10 +2905,13 @@ const AXPLargeTextWidget = {
2746
2905
  AXP_NAME_PROPERTY,
2747
2906
  AXP_DATA_PATH_PROPERTY,
2748
2907
  AXP_DISABLED_PROPERTY,
2749
- AXP_VALIDATION_PROPERTY,
2750
2908
  AXP_PLACEHOLDER_PROPERTY,
2751
2909
  largeTextDefaultProperty(),
2752
2910
  //cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '300px' } }),
2911
+ AXP_REQUIRED_VALIDATION_PROPERTY,
2912
+ AXP_MIN_LENGTH_VALIDATION_PROPERTY,
2913
+ AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY,
2914
+ AXP_MAX_LENGTH_VALIDATION_PROPERTY,
2753
2915
  ],
2754
2916
  components: {
2755
2917
  view: {
@@ -2917,7 +3079,6 @@ class AXPLinkWidgetEditComponent extends AXPWidgetComponent {
2917
3079
  },
2918
3080
  });
2919
3081
  this.internalValue = computed(() => this.getValueAsArrayOfObjects());
2920
- this._validationRules = [];
2921
3082
  this.convertItem = (item, e) => {
2922
3083
  if (typeof item === 'object')
2923
3084
  return { ...item, value: e.value };
@@ -2929,12 +3090,6 @@ class AXPLinkWidgetEditComponent extends AXPWidgetComponent {
2929
3090
  super.ngOnInit();
2930
3091
  this.getValueAsArrayOfObjects();
2931
3092
  }
2932
- get validationRules() {
2933
- return this._validationRules;
2934
- }
2935
- set validationRules(v) {
2936
- this._validationRules = v;
2937
- }
2938
3093
  getValueAsArrayOfObjects() {
2939
3094
  const value = this.getValue();
2940
3095
  if (Array.isArray(value)) {
@@ -3071,10 +3226,9 @@ class AXPLinkWidgetEditComponent extends AXPWidgetComponent {
3071
3226
  class="ax-col-start-1 ax-col-end-13"
3072
3227
  [ngClass]="generateClasses('url', 'multiple')"
3073
3228
  >
3074
- @for (validation of validationRules; track $index) {
3229
+ @for (validation of validationRules(); track $index) {
3075
3230
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
3076
3231
  }
3077
- <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
3078
3232
  </ax-text-box>
3079
3233
  @if(hasTitle()){
3080
3234
  <ax-text-box
@@ -3125,10 +3279,9 @@ class AXPLinkWidgetEditComponent extends AXPWidgetComponent {
3125
3279
  placeholder="Link"
3126
3280
  class="ax-col-start-1 ax-col-end-13"
3127
3281
  >
3128
- @for (validation of validationRules; track $index) {
3282
+ @for (validation of validationRules(); track $index) {
3129
3283
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
3130
3284
  }
3131
- <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
3132
3285
  </ax-text-box>
3133
3286
  @if(hasTitle()){
3134
3287
  <ax-text-box
@@ -3167,10 +3320,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
3167
3320
  class="ax-col-start-1 ax-col-end-13"
3168
3321
  [ngClass]="generateClasses('url', 'multiple')"
3169
3322
  >
3170
- @for (validation of validationRules; track $index) {
3323
+ @for (validation of validationRules(); track $index) {
3171
3324
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
3172
3325
  }
3173
- <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
3174
3326
  </ax-text-box>
3175
3327
  @if(hasTitle()){
3176
3328
  <ax-text-box
@@ -3221,10 +3373,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
3221
3373
  placeholder="Link"
3222
3374
  class="ax-col-start-1 ax-col-end-13"
3223
3375
  >
3224
- @for (validation of validationRules; track $index) {
3376
+ @for (validation of validationRules(); track $index) {
3225
3377
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
3226
3378
  }
3227
- <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
3228
3379
  </ax-text-box>
3229
3380
  @if(hasTitle()){
3230
3381
  <ax-text-box
@@ -3417,7 +3568,6 @@ class AXPNumberBoxWidgetEditComponent extends AXPWidgetComponent {
3417
3568
  this.maxValue = computed(() => this.options()['maxValue']);
3418
3569
  this.seprator = computed(() => this.options()['seprator'] ?? null);
3419
3570
  this.placeholder = computed(() => this.options()['placeholder']);
3420
- this.validationRules = computed(() => this.options()["validationRules"] ?? []);
3421
3571
  this.internalValue = computed(() => Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]);
3422
3572
  }
3423
3573
  handleValueChange(e, i) {
@@ -3634,12 +3784,16 @@ const AXPNumberBoxWidget = {
3634
3784
  AXP_ALLOW_MULTIPLE_PROPERTY,
3635
3785
  AXP_HAS_CLEAR_BUTTON_PROPERTY,
3636
3786
  AXP_DISABLED_PROPERTY,
3637
- AXP_VALIDATION_PROPERTY,
3638
3787
  AXP_PLACEHOLDER_PROPERTY,
3639
3788
  numberDefaultProperty(),
3640
3789
  numberMinValueProperty(),
3641
3790
  numberMaxValueProperty(),
3791
+ createNumberProperty({ defaultValue: 0, name: 'decimals', title: "Decimals", path: "options.decimals", group: AXP_BEHAVIOR_PROPERTY_GROUP }),
3642
3792
  cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
3793
+ //
3794
+ AXP_REQUIRED_VALIDATION_PROPERTY,
3795
+ AXP_LESS_THAN_VALIDATION_PROPERTY,
3796
+ AXP_GREATER_THAN_VALIDATION_PROPERTY,
3643
3797
  ],
3644
3798
  components: {
3645
3799
  view: {
@@ -3759,8 +3913,13 @@ class AXPPasswordBoxWidgetEditComponent extends AXPWidgetComponent {
3759
3913
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPasswordBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3760
3914
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPPasswordBoxWidgetEditComponent, isStandalone: true, selector: "ng-component", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
3761
3915
  <ax-password-box [ngModel]="getValue()" [disabled]="disabled()" (onValueChanged)="handleValueChanged($event)">
3762
- <ax-validation-rule rule="required"></ax-validation-rule>
3763
- @if(hasClearButton()){
3916
+ @for (validation of validationRules(); track $index) {
3917
+ <ax-validation-rule
3918
+ [rule]="validation.rule"
3919
+ [message]="validation.options?.message"
3920
+ [options]="validation.options"
3921
+ ></ax-validation-rule>
3922
+ } @if(hasClearButton()){
3764
3923
  <ax-clear-button></ax-clear-button>
3765
3924
  }
3766
3925
  </ax-password-box>
@@ -3771,15 +3930,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
3771
3930
  args: [{
3772
3931
  template: `
3773
3932
  <ax-password-box [ngModel]="getValue()" [disabled]="disabled()" (onValueChanged)="handleValueChanged($event)">
3774
- <ax-validation-rule rule="required"></ax-validation-rule>
3775
- @if(hasClearButton()){
3933
+ @for (validation of validationRules(); track $index) {
3934
+ <ax-validation-rule
3935
+ [rule]="validation.rule"
3936
+ [message]="validation.options?.message"
3937
+ [options]="validation.options"
3938
+ ></ax-validation-rule>
3939
+ } @if(hasClearButton()){
3776
3940
  <ax-clear-button></ax-clear-button>
3777
3941
  }
3778
3942
  </ax-password-box>
3779
3943
  `,
3780
3944
  changeDetection: ChangeDetectionStrategy.OnPush,
3781
3945
  imports: [CommonModule, FormsModule, AXDecoratorModule, AXPasswordBoxModule, AXValidationModule, AXFormModule],
3782
- inputs: []
3946
+ inputs: [],
3783
3947
  }]
3784
3948
  }], propDecorators: { __class: [{
3785
3949
  type: HostBinding,
@@ -3894,12 +4058,13 @@ const AXPPasswordBoxWidget = {
3894
4058
  type: 'editor',
3895
4059
  properties: [
3896
4060
  AXP_NAME_PROPERTY,
3897
- AXP_VALIDATION_PROPERTY,
3898
4061
  AXP_DATA_PATH_PROPERTY,
3899
4062
  AXP_HAS_CLEAR_BUTTON_PROPERTY,
3900
4063
  AXP_DISABLED_PROPERTY,
3901
4064
  AXP_HAS_COPY_ICON_PROPERTY,
3902
4065
  AXP_HAS_EYE_ICON_PROPERTY,
4066
+ //
4067
+ AXP_REQUIRED_VALIDATION_PROPERTY,
3903
4068
  ],
3904
4069
  components: {
3905
4070
  view: {
@@ -4044,13 +4209,6 @@ class AXPPhoneBoxWidgetEditComponent extends AXPWidgetComponent {
4044
4209
  this.hasLabel = computed(() => this.options()['hasLabel']);
4045
4210
  this.phoneLabels = computed(() => this.options()['phoneLabels'] || ['Mobile', 'Home', 'Work', 'Other']);
4046
4211
  this.internalValue = computed(() => this.getValueAsArrayOfObjects());
4047
- this._validationRules = [];
4048
- }
4049
- get validationRules() {
4050
- return this._validationRules;
4051
- }
4052
- set validationRules(v) {
4053
- this._validationRules = v;
4054
4212
  }
4055
4213
  getValueAsArrayOfObjects() {
4056
4214
  const value = this.getValue();
@@ -4105,7 +4263,7 @@ class AXPPhoneBoxWidgetEditComponent extends AXPWidgetComponent {
4105
4263
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
4106
4264
  [class.lg:!ax-col-end-12]="!hasLabel()"
4107
4265
  >
4108
- @for (validation of validationRules; track $index) {
4266
+ @for (validation of validationRules(); track $index) {
4109
4267
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4110
4268
  }
4111
4269
  </ax-text-box>
@@ -4136,7 +4294,7 @@ class AXPPhoneBoxWidgetEditComponent extends AXPWidgetComponent {
4136
4294
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
4137
4295
  [class.lg:!ax-col-end-13]="!hasLabel"
4138
4296
  >
4139
- @for (validation of validationRules; track $index) {
4297
+ @for (validation of validationRules(); track $index) {
4140
4298
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4141
4299
  }
4142
4300
  </ax-text-box>
@@ -4178,7 +4336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
4178
4336
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
4179
4337
  [class.lg:!ax-col-end-12]="!hasLabel()"
4180
4338
  >
4181
- @for (validation of validationRules; track $index) {
4339
+ @for (validation of validationRules(); track $index) {
4182
4340
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4183
4341
  }
4184
4342
  </ax-text-box>
@@ -4209,7 +4367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
4209
4367
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
4210
4368
  [class.lg:!ax-col-end-13]="!hasLabel"
4211
4369
  >
4212
- @for (validation of validationRules; track $index) {
4370
+ @for (validation of validationRules(); track $index) {
4213
4371
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4214
4372
  }
4215
4373
  </ax-text-box>
@@ -4365,8 +4523,8 @@ const AXPPhoneBoxWidget = {
4365
4523
  properties: [
4366
4524
  AXP_HAS_LABEL_PROPERTY,
4367
4525
  AXP_ALLOW_MULTIPLE_PROPERTY,
4368
- AXP_VALIDATION_PROPERTY,
4369
4526
  AXP_TABLE_COLUMN_WIDTH_PROPERTY,
4527
+ AXP_REQUIRED_VALIDATION_PROPERTY,
4370
4528
  ],
4371
4529
  components: {
4372
4530
  view: {
@@ -4440,10 +4598,9 @@ class AXPRichTextWidgetEditComponent extends AXPWidgetComponent {
4440
4598
  super(...arguments);
4441
4599
  this.placeholder = computed(() => this.options()['placeholder']);
4442
4600
  this.disabled = computed(() => this.options()['disabled']);
4443
- this.minLineCount = computed(() => this.options()['minLineCount'] ?? 3);
4444
- this.maxLineCount = computed(() => this.options()['maxLineCount'] ?? 3);
4601
+ this.minLineCount = computed(() => this.options()['minLineCount'] ?? this.options()['maxLineCount'] ?? 3);
4602
+ this.maxLineCount = computed(() => this.options()['maxLineCount'] ?? this.options()['minLineCount'] ?? 3);
4445
4603
  this.isFitLine = computed(() => this.options()['fitLineCount'] ?? false);
4446
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
4447
4604
  }
4448
4605
  setWysiwyg(e) {
4449
4606
  if (e) {
@@ -4657,11 +4814,12 @@ const AXPRichTextWidget = {
4657
4814
  properties: [
4658
4815
  AXP_NAME_PROPERTY,
4659
4816
  AXP_DATA_PATH_PROPERTY,
4660
- AXP_ALLOW_MULTIPLE_PROPERTY,
4661
4817
  AXP_DISABLED_PROPERTY,
4662
- // AXP_VALIDATION_PROPERTY,
4663
4818
  AXP_PLACEHOLDER_PROPERTY,
4664
4819
  //cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '300px' } }),
4820
+ AXP_REQUIRED_VALIDATION_PROPERTY,
4821
+ AXP_MIN_LENGTH_VALIDATION_PROPERTY,
4822
+ AXP_MAX_LENGTH_VALIDATION_PROPERTY,
4665
4823
  ],
4666
4824
  components: {
4667
4825
  view: {
@@ -4745,7 +4903,6 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
4745
4903
  constructor() {
4746
4904
  super(...arguments);
4747
4905
  this.widgetsConfigs = inject(STRATEGY_CONFIG_TOKEN);
4748
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
4749
4906
  this.multiple = computed(() => this.options()['multiple']);
4750
4907
  this.disabled = computed(() => this.options()['disabled']);
4751
4908
  this.placeholder = computed(() => this.options()['placeholder'] ?? '');
@@ -4784,7 +4941,7 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
4784
4941
  clear() {
4785
4942
  this.selectbox?.reset(true);
4786
4943
  setTimeout(() => {
4787
- this.selectbox?.refresh();
4944
+ this.refresh();
4788
4945
  }, 0);
4789
4946
  }
4790
4947
  get __class() {
@@ -4811,7 +4968,17 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
4811
4968
  } @if(hasClearButton()) {
4812
4969
  <ax-clear-button></ax-clear-button>
4813
4970
  } @for (validation of validationRules(); track $index) {
4814
- <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4971
+ <ax-validation-rule
4972
+ [rule]="validation.rule"
4973
+ [message]="validation.options?.message"
4974
+ [options]="validation.options"
4975
+ ></ax-validation-rule>
4976
+ } @for (validation of validationRules(); track $index) {
4977
+ <ax-validation-rule
4978
+ [rule]="validation.rule"
4979
+ [message]="validation.options?.message"
4980
+ [options]="validation.options"
4981
+ ></ax-validation-rule>
4815
4982
  }
4816
4983
  </ax-select-box>
4817
4984
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i3$2.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "textTemplate", "selectedItems", "dataSource", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3$1.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i5$2.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -4837,7 +5004,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
4837
5004
  } @if(hasClearButton()) {
4838
5005
  <ax-clear-button></ax-clear-button>
4839
5006
  } @for (validation of validationRules(); track $index) {
4840
- <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
5007
+ <ax-validation-rule
5008
+ [rule]="validation.rule"
5009
+ [message]="validation.options?.message"
5010
+ [options]="validation.options"
5011
+ ></ax-validation-rule>
5012
+ } @for (validation of validationRules(); track $index) {
5013
+ <ax-validation-rule
5014
+ [rule]="validation.rule"
5015
+ [message]="validation.options?.message"
5016
+ [options]="validation.options"
5017
+ ></ax-validation-rule>
4841
5018
  }
4842
5019
  </ax-select-box>
4843
5020
  `,
@@ -5144,7 +5321,6 @@ class AXPSelectionListWidgetEditComponent extends AXPDataListWidgetComponent {
5144
5321
  });
5145
5322
  this.dataSource().refresh();
5146
5323
  });
5147
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
5148
5324
  }
5149
5325
  handleValueChange(e) {
5150
5326
  if (e.isUserInteraction) {
@@ -5320,17 +5496,15 @@ const AXPSelectionListWidget = {
5320
5496
  group: AXP_WIDGETS_EDITOR_GROUP,
5321
5497
  defaultFilterWidgetName: 'select-filter',
5322
5498
  properties: [
5323
- AXP_DATA_SOURCE_PROPERTY,
5499
+ ...AXP_DATA_SOURCE_PROPERTIES,
5324
5500
  AXP_NAME_PROPERTY,
5325
5501
  AXP_DATA_PATH_PROPERTY,
5326
- AXP_VALUE_FIELD_PROPERTY,
5327
- AXP_TEXT_FIELD_PROPERTY,
5328
5502
  AXP_ALLOW_MULTIPLE_PROPERTY,
5329
5503
  AXP_DIRECTION_PROPERTY,
5330
5504
  AXP_DISABLED_PROPERTY,
5331
5505
  AXP_READONLY_PROPERTY,
5332
- AXP_VALIDATION_PROPERTY,
5333
5506
  //cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
5507
+ AXP_REQUIRED_VALIDATION_PROPERTY,
5334
5508
  ],
5335
5509
  type: 'editor',
5336
5510
  components: {
@@ -5409,7 +5583,6 @@ class AXPTextBoxWidgetEditComponent extends AXPWidgetComponent {
5409
5583
  this.hasClearButton = computed(() => this.options()['hasClearButton']);
5410
5584
  this.disabled = computed(() => this.options()['disabled']);
5411
5585
  this.placeholder = computed(() => this.options()['placeholder']);
5412
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
5413
5586
  this.internalValue = computed(() => Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]);
5414
5587
  }
5415
5588
  //eff = effect(() => console.log(this.options()));
@@ -5535,214 +5708,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
5535
5708
  FormsModule,
5536
5709
  AXFormModule,
5537
5710
  AXDecoratorModule,
5538
- AXValidationModule,
5539
- AXButtonModule,
5540
- ],
5541
- inputs: [],
5542
- }]
5543
- }], propDecorators: { __class: [{
5544
- type: HostBinding,
5545
- args: ['class']
5546
- }] } });
5547
-
5548
- var textBoxWidgetEdit_component = /*#__PURE__*/Object.freeze({
5549
- __proto__: null,
5550
- AXPTextBoxWidgetEditComponent: AXPTextBoxWidgetEditComponent
5551
- });
5552
-
5553
- let AXPTextBoxWidgetFilterComponent$1 = class AXPTextBoxWidgetFilterComponent extends AXPWidgetComponent {
5554
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5555
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTextBoxWidgetFilterComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5556
- };
5557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent$1, decorators: [{
5558
- type: Component,
5559
- args: [{
5560
- template: ``,
5561
- changeDetection: ChangeDetectionStrategy.OnPush,
5562
- imports: [CommonModule, FormsModule],
5563
- inputs: []
5564
- }]
5565
- }] });
5566
-
5567
- var textBoxWidgetFilter_component = /*#__PURE__*/Object.freeze({
5568
- __proto__: null,
5569
- AXPTextBoxWidgetFilterComponent: AXPTextBoxWidgetFilterComponent$1
5570
- });
5571
-
5572
- class AXPTextBoxWidgetColumnComponent extends AXPColumnWidgetComponent {
5573
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5574
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTextBoxWidgetColumnComponent, isStandalone: true, selector: "axp-text-box-widget-column", inputs: { rawValue: "rawValue" }, usesInheritance: true, ngImport: i0, template: `{{ rawValue }}`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5575
- }
5576
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetColumnComponent, decorators: [{
5577
- type: Component,
5578
- args: [{
5579
- selector: 'axp-text-box-widget-column',
5580
- template: `{{ rawValue }}`,
5581
- changeDetection: ChangeDetectionStrategy.OnPush,
5582
- imports: [CommonModule],
5583
- inputs: ['rawValue']
5584
- }]
5585
- }] });
5586
-
5587
- var textBoxWidgetColumn_component = /*#__PURE__*/Object.freeze({
5588
- __proto__: null,
5589
- AXPTextBoxWidgetColumnComponent: AXPTextBoxWidgetColumnComponent
5590
- });
5591
-
5592
- class AXPTextBoxWidgetPrintComponent extends AXPWidgetComponent {
5593
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5594
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTextBoxWidgetPrintComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5595
- }
5596
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetPrintComponent, decorators: [{
5597
- type: Component,
5598
- args: [{
5599
- template: ``,
5600
- changeDetection: ChangeDetectionStrategy.OnPush,
5601
- imports: [CommonModule],
5602
- inputs: []
5603
- }]
5604
- }] });
5605
-
5606
- var textBoxWidgetPrint_component = /*#__PURE__*/Object.freeze({
5607
- __proto__: null,
5608
- AXPTextBoxWidgetPrintComponent: AXPTextBoxWidgetPrintComponent
5609
- });
5610
-
5611
- const AXP_REQUIRED_VALIDATION_PROPERTY = {
5612
- name: 'requiredValidation',
5613
- title: 'Required',
5614
- group: AXP_VALIDATION_PROPERTY_GROUP,
5615
- schema: {
5616
- dataType: 'object',
5617
- interface: {
5618
- name: 'requiredValidation',
5619
- path: 'options.requiredValidation',
5620
- type: AXPWidgetsCatalog.requiredValidation,
5621
- defaultValue: false,
5622
- },
5623
- },
5624
- visible: true,
5625
- };
5626
- const AXP_MIN_LENGTH_VALIDATION_PROPERTY = {
5627
- name: 'minLengthValidation',
5628
- title: 'Minimum Length',
5629
- group: AXP_VALIDATION_PROPERTY_GROUP,
5630
- schema: {
5631
- dataType: 'object',
5632
- interface: {
5633
- name: 'minLengthValidation',
5634
- path: 'options.minLengthValidation',
5635
- type: AXPWidgetsCatalog.minLengthValidation,
5636
- defaultValue: false,
5637
- },
5638
- },
5639
- visible: true,
5640
- };
5641
- const AXP_MAX_LENGTH_VALIDATION_PROPERTY = {
5642
- name: 'maxLengthValidation',
5643
- title: 'Maximum Length',
5644
- group: AXP_VALIDATION_PROPERTY_GROUP,
5645
- schema: {
5646
- dataType: 'object',
5647
- interface: {
5648
- name: 'maxLengthValidation',
5649
- path: 'options.maxLengthValidation',
5650
- type: AXPWidgetsCatalog.maxLengthValidation,
5651
- defaultValue: false,
5652
- },
5653
- },
5654
- visible: true,
5655
- };
5656
- const AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY = {
5657
- name: 'regularExpressionValidation',
5658
- title: 'Regular Expression',
5659
- group: AXP_VALIDATION_PROPERTY_GROUP,
5660
- schema: {
5661
- dataType: 'object',
5662
- interface: {
5663
- name: 'regularExpressionValidation',
5664
- path: 'options.regularExpressionValidation',
5665
- type: AXPWidgetsCatalog.regularExpressionValidation,
5666
- defaultValue: false,
5667
- },
5668
- },
5669
- visible: true,
5670
- };
5671
- const AXP_LESS_THAN_VALIDATION_PROPERTY = {
5672
- name: 'lessThanValidation',
5673
- title: 'Less Than',
5674
- group: AXP_VALIDATION_PROPERTY_GROUP,
5675
- schema: {
5676
- dataType: 'object',
5677
- interface: {
5678
- name: 'lessThanValidation',
5679
- path: 'options.lessThanValidation',
5680
- type: AXPWidgetsCatalog.lessThanValidation,
5681
- defaultValue: false,
5682
- },
5683
- },
5684
- visible: true,
5685
- };
5686
- const AXP_GREATER_THAN_VALIDATION_PROPERTY = {
5687
- name: 'greaterThanValidation',
5688
- title: 'Greater Than',
5689
- group: AXP_VALIDATION_PROPERTY_GROUP,
5690
- schema: {
5691
- dataType: 'object',
5692
- interface: {
5693
- name: 'greaterThanValidation',
5694
- path: 'options.greaterThanValidation',
5695
- type: AXPWidgetsCatalog.greaterThanValidation,
5696
- defaultValue: false,
5697
- },
5698
- },
5699
- visible: true,
5700
- };
5701
- const AXP_BETWEEN_VALIDATION_PROPERTY = {
5702
- name: 'betweenValidation',
5703
- title: 'Between',
5704
- group: AXP_VALIDATION_PROPERTY_GROUP,
5705
- schema: {
5706
- dataType: 'object',
5707
- interface: {
5708
- name: 'betweenValidation',
5709
- path: 'options.betweenValidation',
5710
- type: AXPWidgetsCatalog.betweenValidation,
5711
- defaultValue: false,
5712
- },
5713
- },
5714
- visible: true,
5715
- };
5716
- const AXP_EQUAL_VALIDATION_PROPERTY = {
5717
- name: 'equalValidation',
5718
- title: 'Equal',
5719
- group: AXP_VALIDATION_PROPERTY_GROUP,
5720
- schema: {
5721
- dataType: 'object',
5722
- interface: {
5723
- name: 'equalValidation',
5724
- path: 'options.equalValidation',
5725
- type: AXPWidgetsCatalog.equalValidation,
5726
- defaultValue: false,
5727
- },
5728
- },
5729
- visible: true,
5730
- };
5731
- const AXP_CALLBACK_VALIDATION_PROPERTY = {
5732
- name: 'callbackValidation',
5733
- title: 'Callback',
5734
- group: AXP_VALIDATION_PROPERTY_GROUP,
5735
- schema: {
5736
- dataType: 'object',
5737
- interface: {
5738
- name: 'callbackValidation',
5739
- path: 'options.callbackValidation',
5740
- type: AXPWidgetsCatalog.callbackValidation,
5741
- defaultValue: false,
5742
- },
5743
- },
5744
- visible: true,
5711
+ AXValidationModule,
5712
+ AXButtonModule,
5713
+ ],
5714
+ inputs: [],
5715
+ }]
5716
+ }], propDecorators: { __class: [{
5717
+ type: HostBinding,
5718
+ args: ['class']
5719
+ }] } });
5720
+
5721
+ var textBoxWidgetEdit_component = /*#__PURE__*/Object.freeze({
5722
+ __proto__: null,
5723
+ AXPTextBoxWidgetEditComponent: AXPTextBoxWidgetEditComponent
5724
+ });
5725
+
5726
+ let AXPTextBoxWidgetFilterComponent$1 = class AXPTextBoxWidgetFilterComponent extends AXPWidgetComponent {
5727
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5728
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTextBoxWidgetFilterComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5745
5729
  };
5730
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetFilterComponent$1, decorators: [{
5731
+ type: Component,
5732
+ args: [{
5733
+ template: ``,
5734
+ changeDetection: ChangeDetectionStrategy.OnPush,
5735
+ imports: [CommonModule, FormsModule],
5736
+ inputs: []
5737
+ }]
5738
+ }] });
5739
+
5740
+ var textBoxWidgetFilter_component = /*#__PURE__*/Object.freeze({
5741
+ __proto__: null,
5742
+ AXPTextBoxWidgetFilterComponent: AXPTextBoxWidgetFilterComponent$1
5743
+ });
5744
+
5745
+ class AXPTextBoxWidgetColumnComponent extends AXPColumnWidgetComponent {
5746
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5747
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTextBoxWidgetColumnComponent, isStandalone: true, selector: "axp-text-box-widget-column", inputs: { rawValue: "rawValue" }, usesInheritance: true, ngImport: i0, template: `{{ rawValue }}`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5748
+ }
5749
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetColumnComponent, decorators: [{
5750
+ type: Component,
5751
+ args: [{
5752
+ selector: 'axp-text-box-widget-column',
5753
+ template: `{{ rawValue }}`,
5754
+ changeDetection: ChangeDetectionStrategy.OnPush,
5755
+ imports: [CommonModule],
5756
+ inputs: ['rawValue']
5757
+ }]
5758
+ }] });
5759
+
5760
+ var textBoxWidgetColumn_component = /*#__PURE__*/Object.freeze({
5761
+ __proto__: null,
5762
+ AXPTextBoxWidgetColumnComponent: AXPTextBoxWidgetColumnComponent
5763
+ });
5764
+
5765
+ class AXPTextBoxWidgetPrintComponent extends AXPWidgetComponent {
5766
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5767
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTextBoxWidgetPrintComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5768
+ }
5769
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTextBoxWidgetPrintComponent, decorators: [{
5770
+ type: Component,
5771
+ args: [{
5772
+ template: ``,
5773
+ changeDetection: ChangeDetectionStrategy.OnPush,
5774
+ imports: [CommonModule],
5775
+ inputs: []
5776
+ }]
5777
+ }] });
5778
+
5779
+ var textBoxWidgetPrint_component = /*#__PURE__*/Object.freeze({
5780
+ __proto__: null,
5781
+ AXPTextBoxWidgetPrintComponent: AXPTextBoxWidgetPrintComponent
5782
+ });
5746
5783
 
5747
5784
  const AXPTextBoxWidget = {
5748
5785
  name: 'text-editor',
@@ -5760,15 +5797,11 @@ const AXPTextBoxWidget = {
5760
5797
  AXP_PLACEHOLDER_PROPERTY,
5761
5798
  AXP_HAS_CLEAR_BUTTON_PROPERTY,
5762
5799
  plainTextDefaultProperty(),
5800
+ //
5763
5801
  AXP_REQUIRED_VALIDATION_PROPERTY,
5764
5802
  AXP_MIN_LENGTH_VALIDATION_PROPERTY,
5765
5803
  AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY,
5766
5804
  AXP_MAX_LENGTH_VALIDATION_PROPERTY,
5767
- AXP_LESS_THAN_VALIDATION_PROPERTY,
5768
- AXP_GREATER_THAN_VALIDATION_PROPERTY,
5769
- AXP_BETWEEN_VALIDATION_PROPERTY,
5770
- AXP_EQUAL_VALIDATION_PROPERTY,
5771
- AXP_CALLBACK_VALIDATION_PROPERTY,
5772
5805
  //cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
5773
5806
  ],
5774
5807
  components: {
@@ -6313,29 +6346,36 @@ class AXPFileBoxWidgetEditComponent extends AXPWidgetComponent {
6313
6346
  return [];
6314
6347
  return this.getValue() ? (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]) : [{}];
6315
6348
  });
6349
+ this.files = signal([]);
6316
6350
  this.markedListAsCommitted = null;
6317
6351
  this.markedListAsDeleted = null;
6318
- this.#effect2 = effect(async () => {
6319
- const status = this.layoutService.status();
6320
- if (status == AXPPageStatus.Submitted) {
6321
- if (this.markedListAsCommitted) {
6322
- for (const fileId of this.markedListAsCommitted) {
6323
- await this.fileStorage.commit(fileId);
6324
- }
6325
- this.markedListAsCommitted = null;
6352
+ }
6353
+ async ngOnDestroy() {
6354
+ const status = this.layoutService.status();
6355
+ if (status == AXPPageStatus.Submitted) {
6356
+ if (this.markedListAsCommitted) {
6357
+ for (const fileId of this.markedListAsCommitted) {
6358
+ await this.fileStorage.commit(fileId);
6326
6359
  }
6327
- if (this.markedListAsDeleted) {
6328
- for (const fileId of this.markedListAsDeleted) {
6329
- await this.fileStorage.markForDeletion(fileId);
6330
- }
6331
- this.markedListAsDeleted = null;
6360
+ this.markedListAsCommitted = null;
6361
+ }
6362
+ if (this.markedListAsDeleted) {
6363
+ for (const fileId of this.markedListAsDeleted) {
6364
+ await this.fileStorage.markForDeletion(fileId);
6332
6365
  }
6366
+ this.markedListAsDeleted = null;
6333
6367
  }
6334
- });
6368
+ }
6369
+ }
6370
+ handleOnFileRemove(file) {
6371
+ debugger;
6372
+ this.files.update((files) => files.filter((f) => f !== file));
6335
6373
  }
6336
- #effect2;
6337
6374
  handleOnFileUploadComplete(e) { }
6338
- handleOnFilesUploadComplete(e) { }
6375
+ handleOnFilesUploadComplete(e) {
6376
+ this.files.set(e.uploadedFiles);
6377
+ console.log(e.uploadedFiles[0].onComplete);
6378
+ }
6339
6379
  async handleChanged(e) {
6340
6380
  const results = [];
6341
6381
  for (var i = 0; i < e.requests.length; i++) {
@@ -6346,7 +6386,9 @@ class AXPFileBoxWidgetEditComponent extends AXPWidgetComponent {
6346
6386
  refType: this.refType(),
6347
6387
  isPrimary: true,
6348
6388
  }));
6349
- e.requests[i].finish();
6389
+ e.requests[i].finish({
6390
+ id: results[i].fileId,
6391
+ });
6350
6392
  }
6351
6393
  if (!this.multiple()) {
6352
6394
  this.setValue(results[0].fileId);
@@ -6361,45 +6403,45 @@ class AXPFileBoxWidgetEditComponent extends AXPWidgetComponent {
6361
6403
  const extension = fileName?.split('.')?.pop()?.toLowerCase();
6362
6404
  switch (extension) {
6363
6405
  case 'txt':
6364
- return { icon: 'fa-file-alt', color: 'ax-bg-blue-100 ax-text-blue-500' };
6406
+ return { icon: ' far fa-file-alt', color: 'ax-bg-blue-100 ax-text-blue-500' };
6365
6407
  case 'pdf':
6366
- return { icon: 'fa-file-pdf', color: 'ax-bg-red-100 ax-text-red-500' };
6408
+ return { icon: ' far fa-file-pdf', color: 'ax-bg-red-100 ax-text-red-500' };
6367
6409
  case 'doc':
6368
6410
  case 'docx':
6369
- return { icon: 'fa-file-word', color: 'ax-bg-blue-200 ax-text-blue-600' };
6411
+ return { icon: ' far fa-file-word', color: 'ax-bg-blue-200 ax-text-blue-600' };
6370
6412
  case 'xls':
6371
6413
  case 'xlsx':
6372
- return { icon: 'fa-file-excel', color: 'ax-bg-green-100 ax-text-green-500' };
6414
+ return { icon: ' far fa-file-excel', color: 'ax-bg-green-100 ax-text-green-500' };
6373
6415
  case 'ppt':
6374
6416
  case 'pptx':
6375
- return { icon: 'fa-file-powerpoint', color: 'ax-bg-orange-100 ax-text-orange-500' };
6417
+ return { icon: ' far fa-file-powerpoint', color: 'ax-bg-orange-100 ax-text-orange-500' };
6376
6418
  case 'jpg':
6377
6419
  case 'jpeg':
6378
6420
  case 'png':
6379
6421
  case 'gif':
6380
6422
  case 'bmp':
6381
- return { icon: 'fa-file-image', color: 'ax-bg-purple-100 ax-text-purple-500' };
6423
+ return { icon: ' far fa-file-image', color: 'ax-bg-purple-100 ax-text-purple-500' };
6382
6424
  case 'zip':
6383
6425
  case 'rar':
6384
6426
  case '7z':
6385
- return { icon: 'fa-file-archive', color: 'ax-bg-yellow-100 ax-text-yellow-500' };
6427
+ return { icon: ' far fa-file-archive', color: 'ax-bg-yellow-100 ax-text-yellow-500' };
6386
6428
  case 'mp3':
6387
6429
  case 'wav':
6388
6430
  case 'ogg':
6389
- return { icon: 'fa-file-audio', color: 'ax-bg-pink-100 ax-text-pink-500' };
6431
+ return { icon: ' far fa-file-audio', color: 'ax-bg-pink-100 ax-text-pink-500' };
6390
6432
  case 'mp4':
6391
6433
  case 'avi':
6392
6434
  case 'mkv':
6393
6435
  case 'mov':
6394
- return { icon: 'fa-file-video', color: 'ax-bg-blue-100 ax-text-blue-500' };
6436
+ return { icon: ' far fa-file-video', color: 'ax-bg-blue-100 ax-text-blue-500' };
6395
6437
  case 'js':
6396
6438
  case 'jsx':
6397
6439
  case 'ts':
6398
6440
  case 'tsx':
6399
- return { icon: 'fa-file-code', color: 'ax-bg-yellow-100 ax-text-yellow-500' };
6441
+ return { icon: ' far fa-file-code', color: 'ax-bg-yellow-100 ax-text-yellow-500' };
6400
6442
  // Add more cases as needed for other file types
6401
6443
  default:
6402
- return { icon: 'fa-file', color: 'ax-bg-gray-100 ax-text-gray-500' };
6444
+ return { icon: ' far fa-file', color: 'ax-bg-gray-100 ax-text-gray-500' };
6403
6445
  }
6404
6446
  }
6405
6447
  get __class() {
@@ -6409,7 +6451,7 @@ class AXPFileBoxWidgetEditComponent extends AXPWidgetComponent {
6409
6451
  return cls;
6410
6452
  }
6411
6453
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6412
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPFileBoxWidgetEditComponent, isStandalone: true, selector: "axp-file-widget-edit", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
6454
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPFileBoxWidgetEditComponent, isStandalone: true, selector: "axp-file-widget-edit", host: { properties: { "class": "this.__class" } }, usesInheritance: true, ngImport: i0, template: `
6413
6455
  <div class="ax-grid ax-grid-cols-12">
6414
6456
  <div class="ax-col-span-12">
6415
6457
  <ax-uploader-drop-zone
@@ -6423,7 +6465,17 @@ class AXPFileBoxWidgetEditComponent extends AXPWidgetComponent {
6423
6465
  ></ax-uploader-drop-zone>
6424
6466
  </div>
6425
6467
  </div>
6426
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXUploaderModule }, { kind: "component", type: i5$3.AXUploaderDropZoneComponent, selector: "ax-uploader-drop-zone", inputs: ["description"] }, { kind: "directive", type: i5$3.AXUploaderZoneDirective, selector: "[axUploaderZone]", inputs: ["multiple", "accept"], outputs: ["onChanged", "onFileUploadComplete", "onFilesUploadComplete"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6468
+ @for(file of files(); track $index){
6469
+ <div class="ax-grid ax-mt-10 ax-grid-cols-12 ax-gap-1 ax-px-4">
6470
+ <ax-icon class="{{ getFileInfo(file.file.name).icon }} {{ getFileInfo(file.file.name).color }}"></ax-icon>
6471
+ <ax-text class="ax-col-span-10" [textContent]="file.file.name"></ax-text>
6472
+ <div>
6473
+ <ax-icon class="fa-light fa-download ax-px-2"></ax-icon>
6474
+ <ax-icon (click)="handleOnFileRemove(file)" class="fa-light fa-xmark"></ax-icon>
6475
+ </div>
6476
+ </div>
6477
+ }
6478
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXUploaderModule }, { kind: "component", type: i5$3.AXUploaderDropZoneComponent, selector: "ax-uploader-drop-zone", inputs: ["description"] }, { kind: "directive", type: i5$3.AXUploaderZoneDirective, selector: "[axUploaderZone]", inputs: ["multiple", "accept"], outputs: ["onChanged", "onFileUploadComplete", "onFilesUploadComplete"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6427
6479
  }
6428
6480
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPFileBoxWidgetEditComponent, decorators: [{
6429
6481
  type: Component,
@@ -6443,6 +6495,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
6443
6495
  ></ax-uploader-drop-zone>
6444
6496
  </div>
6445
6497
  </div>
6498
+ @for(file of files(); track $index){
6499
+ <div class="ax-grid ax-mt-10 ax-grid-cols-12 ax-gap-1 ax-px-4">
6500
+ <ax-icon class="{{ getFileInfo(file.file.name).icon }} {{ getFileInfo(file.file.name).color }}"></ax-icon>
6501
+ <ax-text class="ax-col-span-10" [textContent]="file.file.name"></ax-text>
6502
+ <div>
6503
+ <ax-icon class="fa-light fa-download ax-px-2"></ax-icon>
6504
+ <ax-icon (click)="handleOnFileRemove(file)" class="fa-light fa-xmark"></ax-icon>
6505
+ </div>
6506
+ </div>
6507
+ }
6446
6508
  `,
6447
6509
  changeDetection: ChangeDetectionStrategy.OnPush,
6448
6510
  imports: [CommonModule, FormsModule, AXButtonModule, AXDecoratorModule, AXUploaderModule],
@@ -6717,7 +6779,6 @@ const AXPFileBoxWidget = {
6717
6779
  properties: [
6718
6780
  AXP_NAME_PROPERTY,
6719
6781
  AXP_DATA_PATH_PROPERTY,
6720
- AXP_VALIDATION_PROPERTY,
6721
6782
  AXP_ALLOW_MULTIPLE_PROPERTY,
6722
6783
  AXP_DOWNLOADABLE_PROPERTY,
6723
6784
  AXP_DESCRIPTION_PROPERTY,
@@ -7375,6 +7436,7 @@ const AXPMapBoxWidget = {
7375
7436
  options: {
7376
7437
  minValue: -90,
7377
7438
  maxValue: 90,
7439
+ decimals: 5
7378
7440
  },
7379
7441
  },
7380
7442
  },
@@ -7394,6 +7456,7 @@ const AXPMapBoxWidget = {
7394
7456
  options: {
7395
7457
  minValue: -180,
7396
7458
  maxValue: 180,
7459
+ decimals: 5
7397
7460
  },
7398
7461
  },
7399
7462
  },
@@ -7709,7 +7772,12 @@ const AXPSignatureWidget = {
7709
7772
  icon: 'fa-solid fa-file-signature',
7710
7773
  group: AXP_WIDGETS_ADVANCE_GROUP,
7711
7774
  type: 'editor',
7712
- properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_VALIDATION_PROPERTY],
7775
+ properties: [
7776
+ AXP_NAME_PROPERTY,
7777
+ AXP_DATA_PATH_PROPERTY,
7778
+ AXP_DISABLED_PROPERTY,
7779
+ AXP_REQUIRED_VALIDATION_PROPERTY
7780
+ ],
7713
7781
  components: {
7714
7782
  view: {
7715
7783
  component: () => Promise.resolve().then(function () { return signaturePadWidgetView_component; }).then((c) => c.AXPSignatureWidgetViewComponent),
@@ -11569,6 +11637,11 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11569
11637
  initializeChart() {
11570
11638
  const chartValue = this.data();
11571
11639
  const { width, height, margin } = this.getChartDimensions(chartValue.options);
11640
+ // Clear existing SVG if it exists
11641
+ if (this.svg) {
11642
+ this.svg.selectAll('*').remove();
11643
+ }
11644
+ // Create SVG
11572
11645
  this.svg = this.d3.select(this.chartEl().nativeElement).append('svg').attr('width', width).attr('height', height);
11573
11646
  this.drawChart(chartValue);
11574
11647
  }
@@ -11582,40 +11655,24 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11582
11655
  if (options.enableTooltip) {
11583
11656
  this.addTooltips(data, x, y, options);
11584
11657
  }
11585
- if (options.enableLegend) {
11586
- this.addLegend(data, width, margin, options);
11587
- }
11588
- if (options.enableZoom) {
11589
- this.addZoom();
11590
- }
11591
- if (options.enableExport) {
11592
- this.addExportButton();
11593
- }
11594
11658
  }
11595
11659
  updateChart(chartValue) {
11596
11660
  const { data, options } = chartValue;
11597
- const { width, height, margin } = this.getChartDimensions(options);
11598
- const x = this.createXScale(data, width, margin);
11599
- const y = this.createYScale(data, height, margin);
11600
- this.updateBars(data, x, y, height, margin, options);
11601
- this.updateAxes(x, y, height, margin, options);
11602
- if (options.enableTooltip) {
11603
- this.updateTooltips(data, x, y, options);
11604
- }
11605
- if (options.enableLegend) {
11606
- this.updateLegend(data, width, margin, options);
11607
- }
11661
+ // Clear existing chart content
11662
+ this.svg.selectAll('*').remove();
11663
+ // Re-render chart with new options
11664
+ this.drawChart(chartValue);
11608
11665
  }
11609
11666
  getChartDimensions(options) {
11610
- const width = options.width || 400;
11611
- const height = options.height || 200;
11612
- const margin = options.margin || { top: 20, right: 20, bottom: 30, left: 40 };
11613
- return { width, height, margin };
11667
+ const baseWidth = options.width || 400;
11668
+ const baseHeight = options.height || 200;
11669
+ const margin = options.margin || { top: 100, right: 20, bottom: 30, left: 40 };
11670
+ return { width: baseWidth, height: baseHeight, margin };
11614
11671
  }
11615
11672
  createXScale(data, width, margin) {
11616
11673
  return this.d3
11617
11674
  .scaleBand()
11618
- .domain(data.map((d) => d.name)) // Use name instead of id
11675
+ .domain(data.map((d) => d.name))
11619
11676
  .range([margin.left, width - margin.right])
11620
11677
  .padding(0.1);
11621
11678
  }
@@ -11632,23 +11689,7 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11632
11689
  .data(data)
11633
11690
  .enter()
11634
11691
  .append('rect')
11635
- .attr('x', (d) => x(d.name) || 0) // Use name instead of id
11636
- .attr('y', height - margin.bottom)
11637
- .attr('width', x.bandwidth())
11638
- .attr('height', 0)
11639
- .attr('fill', (d) => d.color || options.color || 'teal')
11640
- .transition()
11641
- .duration(500)
11642
- .attr('y', (d) => y(d.value))
11643
- .attr('height', (d) => y(0) - y(d.value));
11644
- }
11645
- updateBars(data, x, y, height, margin, options) {
11646
- const bars = this.svg.selectAll('rect').data(data, (d) => d.id);
11647
- // Enter new bars
11648
- bars
11649
- .enter()
11650
- .append('rect')
11651
- .attr('x', (d) => x(d.name) || 0) // Use name instead of id
11692
+ .attr('x', (d) => x(d.name) || 0)
11652
11693
  .attr('y', height - margin.bottom)
11653
11694
  .attr('width', x.bandwidth())
11654
11695
  .attr('height', 0)
@@ -11657,23 +11698,6 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11657
11698
  .duration(500)
11658
11699
  .attr('y', (d) => y(d.value))
11659
11700
  .attr('height', (d) => y(0) - y(d.value));
11660
- // Update existing bars
11661
- bars
11662
- .transition()
11663
- .duration(500)
11664
- .attr('x', (d) => x(d.name) || 0) // Use name instead of id
11665
- .attr('y', (d) => y(d.value))
11666
- .attr('width', x.bandwidth())
11667
- .attr('height', (d) => y(0) - y(d.value))
11668
- .attr('fill', (d) => d.color || options.color || 'teal');
11669
- // Exit old bars
11670
- bars
11671
- .exit()
11672
- .transition()
11673
- .duration(500)
11674
- .attr('y', height - margin.bottom)
11675
- .attr('height', 0)
11676
- .remove();
11677
11701
  }
11678
11702
  drawAxes(x, y, height, margin, options) {
11679
11703
  const axisColor = options.axisColor || '#000';
@@ -11681,7 +11705,7 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11681
11705
  // Draw X axis
11682
11706
  this.svg
11683
11707
  .append('g')
11684
- .attr('class', 'x-axis')
11708
+ .attr('class', 'axp-bar-chart-x-axis')
11685
11709
  .attr('transform', `translate(0,${height - margin.bottom})`)
11686
11710
  .call(this.d3.axisBottom(x).tickSizeOuter(0))
11687
11711
  .attr('color', axisColor)
@@ -11689,156 +11713,80 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11689
11713
  // Draw Y axis
11690
11714
  this.svg
11691
11715
  .append('g')
11692
- .attr('class', 'y-axis')
11716
+ .attr('class', 'axp-bar-chart-y-axis')
11693
11717
  .attr('transform', `translate(${margin.left},0)`)
11694
11718
  .call(this.d3.axisLeft(y))
11695
11719
  .attr('color', axisColor)
11696
11720
  .style('font-size', `${axisFontSize}px`);
11697
11721
  }
11698
- updateAxes(x, y, height, margin, options) {
11699
- const axisColor = options.axisColor || '#000';
11700
- const axisFontSize = options.axisFontSize || 12;
11701
- // Update X axis
11702
- this.svg
11703
- .select('.x-axis')
11704
- .transition()
11705
- .duration(500)
11706
- .call(this.d3.axisBottom(x).tickSizeOuter(0))
11707
- .attr('color', axisColor)
11708
- .style('font-size', `${axisFontSize}px`);
11709
- // Update Y axis
11710
- this.svg
11711
- .select('.y-axis')
11712
- .transition()
11713
- .duration(500)
11714
- .call(this.d3.axisLeft(y))
11715
- .attr('color', axisColor)
11716
- .style('font-size', `${axisFontSize}px`);
11717
- }
11718
11722
  addTooltips(data, x, y, options) {
11719
- this.tooltip = this.d3
11720
- .select('body')
11721
- .append('div')
11722
- .attr('class', 'tooltip')
11723
- .style('opacity', 0)
11724
- .style('position', 'absolute')
11725
- .style('background', options.tooltipBackground || '#fff')
11726
- .style('color', options.tooltipTextColor || '#000')
11727
- .style('padding', '5px')
11728
- .style('border-radius', '3px');
11723
+ this.tooltip = this.svg.append('g').attr('class', 'axp-bar-chart-tooltip').style('opacity', 0);
11724
+ this.tooltip
11725
+ .append('rect')
11726
+ .attr('width', 80)
11727
+ .attr('height', 30)
11728
+ .attr('fill', options.tooltipBackground || '#fff')
11729
+ .attr('rx', 4)
11730
+ .attr('ry', 4);
11731
+ this.tooltip
11732
+ .append('text')
11733
+ .attr('x', 40)
11734
+ .attr('y', 20)
11735
+ .attr('text-anchor', 'middle')
11736
+ .attr('fill', options.tooltipTextColor || '#000')
11737
+ .style('font-size', '11px');
11729
11738
  this.svg
11730
11739
  .selectAll('rect')
11731
11740
  .on('mouseover', (event, d) => {
11732
- const [xPos, yPos] = this.d3.pointer(event);
11733
- this.tooltip.transition().duration(200).style('opacity', 0.9);
11734
- this.tooltip
11735
- .html(`Value: ${d.value}`)
11736
- .style('left', `${xPos + 10}px`)
11737
- .style('top', `${yPos - 10}px`);
11741
+ const barX = x(d.name) || 0;
11742
+ const barY = y(d.value);
11743
+ // Adjust tooltip position to stay within SVG boundaries
11744
+ const tooltipX = Math.min(barX + x.bandwidth() / 2 - 40, Number.parseInt(this.svg.attr('width')) - 80);
11745
+ const tooltipY = Math.max(barY - 40, 0);
11746
+ this.tooltip.style('opacity', 1).attr('transform', `translate(${tooltipX},${tooltipY})`);
11747
+ this.tooltip.select('text').text(`${d.name}: ${d.value}`);
11738
11748
  })
11739
11749
  .on('mouseout', () => {
11740
- this.tooltip.transition().duration(500).style('opacity', 0);
11750
+ this.tooltip.style('opacity', 0);
11741
11751
  });
11742
11752
  }
11743
- updateTooltips(data, x, y, options) {
11744
- if (!this.tooltip) {
11745
- this.addTooltips(data, x, y, options);
11746
- }
11747
- }
11748
- addLegend(data, width, margin, options) {
11749
- const legend = this.svg
11750
- .append('g')
11751
- .attr('class', 'legend')
11752
- .attr('transform', `translate(${width - margin.right - 100}, ${margin.top})`);
11753
+ // API to render legend in another component
11754
+ renderLegend(data, options, container) {
11755
+ const legend = this.d3.select(container).append('div').attr('class', 'axp-bar-chart-legend');
11753
11756
  const legendItems = legend
11754
11757
  .selectAll('.legend-item')
11755
11758
  .data(data)
11756
11759
  .enter()
11757
- .append('g')
11758
- .attr('class', 'legend-item')
11759
- .attr('transform', (d, i) => `translate(0, ${i * 20})`);
11760
+ .append('div')
11761
+ .attr('class', 'axp-bar-chart-legend-item')
11762
+ .style('display', 'flex')
11763
+ .style('align-items', 'center')
11764
+ .style('margin-bottom', '5px');
11760
11765
  legendItems
11761
- .append('rect')
11762
- .attr('width', 18)
11763
- .attr('height', 18)
11764
- .attr('fill', (d) => d.color || options.color || 'teal');
11766
+ .append('div')
11767
+ .style('width', '16px')
11768
+ .style('height', '16px')
11769
+ .style('background-color', (d) => d.color || options.color || 'teal')
11770
+ .style('margin-right', '8px');
11765
11771
  legendItems
11766
- .append('text')
11767
- .attr('x', 24)
11768
- .attr('y', 9)
11769
- .attr('dy', '.35em')
11770
- .text((d) => d.name); // Use name instead of id
11771
- }
11772
- updateLegend(data, width, margin, options) {
11773
- const legend = this.svg.select('.legend').data([data]);
11774
- const legendItems = legend.selectAll('.legend-item').data(data, (d) => d.id);
11775
- // Enter new legend items
11776
- const newLegendItems = legendItems
11777
- .enter()
11778
- .append('g')
11779
- .attr('class', 'legend-item')
11780
- .attr('transform', (d, i) => `translate(0, ${i * 20})`);
11781
- newLegendItems
11782
- .append('rect')
11783
- .attr('width', 18)
11784
- .attr('height', 18)
11785
- .attr('fill', (d) => d.color || options.color || 'teal');
11786
- newLegendItems
11787
- .append('text')
11788
- .attr('x', 24)
11789
- .attr('y', 9)
11790
- .attr('dy', '.35em')
11791
- .text((d) => d.name); // Use name instead of id
11792
- // Update existing legend items
11793
- legendItems.select('text').text((d) => d.name); // Use name instead of id
11794
- // Exit old legend items
11795
- legendItems.exit().remove();
11796
- }
11797
- addZoom() {
11798
- const zoom = this.d3
11799
- .zoom()
11800
- .scaleExtent([1, 10])
11801
- .on('zoom', (event) => {
11802
- this.svg.attr('transform', event.transform.toString());
11803
- });
11804
- this.svg.call(zoom);
11805
- }
11806
- addExportButton() {
11807
- const exportButton = this.d3
11808
- .select(this.chartEl().nativeElement)
11809
- .append('button')
11810
- .text('Export to PNG')
11811
- .style('position', 'absolute')
11812
- .style('top', '10px')
11813
- .style('right', '10px')
11814
- .on('click', () => {
11815
- const svgElement = this.svg.node();
11816
- if (svgElement) {
11817
- const serializer = new XMLSerializer();
11818
- const svgString = serializer.serializeToString(svgElement);
11819
- const canvas = document.createElement('canvas');
11820
- const ctx = canvas.getContext('2d');
11821
- const img = new Image();
11822
- img.onload = () => {
11823
- canvas.width = img.width;
11824
- canvas.height = img.height;
11825
- ctx?.drawImage(img, 0, 0);
11826
- const link = document.createElement('a');
11827
- link.download = 'chart.png';
11828
- link.href = canvas.toDataURL('image/png');
11829
- link.click();
11830
- };
11831
- img.src = 'data:image/svg+xml;base64,' + btoa(svgString);
11832
- }
11833
- });
11772
+ .append('div')
11773
+ .text((d) => d.name)
11774
+ .style('font-size', '12px');
11775
+ }
11776
+ // API to export chart as PNG
11777
+ exportChartAsPNG() {
11778
+ const svgElement = this.svg.node();
11779
+ if (svgElement) {
11780
+ const serializer = new XMLSerializer();
11781
+ const svgString = serializer.serializeToString(svgElement);
11782
+ return 'data:image/svg+xml;base64,' + btoa(svgString);
11783
+ }
11784
+ return null;
11834
11785
  }
11835
11786
  ngOnDestroy() {
11836
11787
  if (this.svg) {
11837
11788
  this.svg.selectAll('*').remove();
11838
11789
  }
11839
- if (this.tooltip) {
11840
- this.tooltip.remove();
11841
- }
11842
11790
  }
11843
11791
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBarChartWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11844
11792
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPBarChartWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "chartEl", first: true, predicate: ["chart"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<div class="ax-flex ax-justify-center ax-items-center" #chart></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -12242,6 +12190,119 @@ const AXPQrcodeWidget = {
12242
12190
  },
12243
12191
  };
12244
12192
 
12193
+ class AXPGaugeChartWidgetEditComponent extends AXPWidgetComponent {
12194
+ constructor() {
12195
+ super(...arguments);
12196
+ this.chartEl = viewChild.required('chart');
12197
+ this.#af = afterNextRender(async () => {
12198
+ await this.loadD3();
12199
+ this.createChart();
12200
+ });
12201
+ }
12202
+ #af;
12203
+ async loadD3() {
12204
+ try {
12205
+ this.d3 = await import('d3');
12206
+ }
12207
+ catch (error) {
12208
+ console.error('Failed to load D3.js:', error);
12209
+ }
12210
+ }
12211
+ createChart() {
12212
+ const chartElement = this.chartEl().nativeElement;
12213
+ this.d3.select(chartElement).selectAll('*').remove();
12214
+ const width = this.getValue().options.width;
12215
+ const height = this.getValue().options.height;
12216
+ const minValue = this.getValue().options.minValue;
12217
+ const maxValue = this.getValue().options.maxValue;
12218
+ const arcThickness = this.getValue().options.arcThickness;
12219
+ const labelOffset = this.getValue().options.labelOffset;
12220
+ const radius = Math.min(width, height) / 2;
12221
+ const arc = this.d3
12222
+ .arc()
12223
+ .innerRadius(radius - arcThickness)
12224
+ .outerRadius(radius)
12225
+ .startAngle(-Math.PI / 2)
12226
+ .endAngle(Math.PI / 2);
12227
+ const scale = this.d3
12228
+ .scaleLinear()
12229
+ .domain([minValue, maxValue])
12230
+ .range([-Math.PI / 2, Math.PI / 2]);
12231
+ const svg = this.d3
12232
+ .select(chartElement)
12233
+ .append('svg')
12234
+ .attr('width', width)
12235
+ .attr('height', height)
12236
+ .attr('role', 'img')
12237
+ .attr('aria-label', 'Gauge chart')
12238
+ .attr('viewBox', `0 0 ${width} ${height}`) // Adjusted viewBox
12239
+ .style('max-width', '100%')
12240
+ .style('height', 'auto')
12241
+ .append('g')
12242
+ .attr('transform', `translate(${width / 2}, ${height / 2})`); // Center the chart
12243
+ const gaugeArc = svg
12244
+ .append('g')
12245
+ .selectAll('path')
12246
+ .data(this.getValue().data)
12247
+ .enter()
12248
+ .append('path')
12249
+ .attr('fill', (d) => d.color || this.getRandomColor())
12250
+ .attr('d', arc);
12251
+ const label = svg
12252
+ .append('text')
12253
+ .attr('text-anchor', 'middle')
12254
+ .attr('font-size', '16px')
12255
+ .attr('y', labelOffset)
12256
+ .text(`${this.getValue().data[0].value}`);
12257
+ const pointer = svg
12258
+ .append('line')
12259
+ .attr('x1', 0)
12260
+ .attr('y1', 0)
12261
+ .attr('x2', 0)
12262
+ .attr('y2', -radius + arcThickness / 2)
12263
+ .attr('stroke', 'black')
12264
+ .attr('stroke-width', 2)
12265
+ .attr('transform', `rotate(${scale(this.getValue().data[0].value) * (180 / Math.PI)})`);
12266
+ }
12267
+ getRandomColor() {
12268
+ // Generate a random hex color
12269
+ return `#${Math.floor(Math.random() * 16777215).toString(16)}`;
12270
+ }
12271
+ ngOnDestroy() {
12272
+ this.d3.select(this.chartEl().nativeElement).selectAll('*').remove();
12273
+ }
12274
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGaugeChartWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12275
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.0.3", type: AXPGaugeChartWidgetEditComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "chartEl", first: true, predicate: ["chart"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: ` <div class="ax-flex ax-justify-center ax-items-center" #chart></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12276
+ }
12277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPGaugeChartWidgetEditComponent, decorators: [{
12278
+ type: Component,
12279
+ args: [{
12280
+ template: ` <div class="ax-flex ax-justify-center ax-items-center" #chart></div>`,
12281
+ standalone: true,
12282
+ changeDetection: ChangeDetectionStrategy.OnPush,
12283
+ }]
12284
+ }] });
12285
+
12286
+ var gaugeChartWidgetEdit_component = /*#__PURE__*/Object.freeze({
12287
+ __proto__: null,
12288
+ AXPGaugeChartWidgetEditComponent: AXPGaugeChartWidgetEditComponent
12289
+ });
12290
+
12291
+ const AXPGaugeChartWidget = {
12292
+ name: 'gauge-chart',
12293
+ title: 'Gauge Chart Widget',
12294
+ group: AXP_WIDGETS_CHART_GROUP,
12295
+ type: 'chart',
12296
+ icon: 'fa-solid fa-gauge',
12297
+ visible: false,
12298
+ properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],
12299
+ components: {
12300
+ edit: {
12301
+ component: () => Promise.resolve().then(function () { return gaugeChartWidgetEdit_component; }).then((c) => c.AXPGaugeChartWidgetEditComponent),
12302
+ },
12303
+ },
12304
+ };
12305
+
12245
12306
  class AXPColorBoxWidgetViewComponent extends AXPWidgetComponent {
12246
12307
  constructor() {
12247
12308
  super(...arguments);
@@ -12288,7 +12349,6 @@ class AXPColorBoxWidgetEditComponent extends AXPWidgetComponent {
12288
12349
  this.disabled = computed(() => this.options()["disabled"]);
12289
12350
  this.readonly = computed(() => this.options()["readonly"]);
12290
12351
  this.hasClearButton = computed(() => this.options()['hasClearButton']);
12291
- this.validationRules = computed(() => this.options()["validationRules"] ?? []);
12292
12352
  }
12293
12353
  get __class() {
12294
12354
  const cls = {};
@@ -12422,8 +12482,9 @@ const AXPColorBoxWidget = {
12422
12482
  AXP_DATA_PATH_PROPERTY,
12423
12483
  AXP_READONLY_PROPERTY,
12424
12484
  AXP_DISABLED_PROPERTY,
12425
- AXP_VALIDATION_PROPERTY,
12426
- AXP_PLACEHOLDER_PROPERTY
12485
+ AXP_PLACEHOLDER_PROPERTY,
12486
+ //
12487
+ AXP_REQUIRED_VALIDATION_PROPERTY,
12427
12488
  ],
12428
12489
  components: {
12429
12490
  designer: {
@@ -12476,9 +12537,9 @@ class AXPTabularDataEditorWidgetEditComponent extends AXPWidgetComponent {
12476
12537
  this.platform = inject(AXPlatform);
12477
12538
  }
12478
12539
  async openPopup() {
12479
- const { AXPTabularDataPopupComponent } = await import('./acorex-platform-widgets-tabular-data-edit-popup.component-B90if8wb.mjs');
12540
+ const { AXPTabularDataPopupComponent } = await import('./acorex-platform-widgets-tabular-data-edit-popup.component-BiCinIok.mjs');
12480
12541
  const popupData = await this.popupService.open(AXPTabularDataPopupComponent, {
12481
- size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
12542
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : this.columns().length > 3 ? 'lg' : 'md',
12482
12543
  header: true,
12483
12544
  closeOnBackdropClick: true,
12484
12545
  closeButton: true,
@@ -12602,7 +12663,7 @@ var tabularDataWidgetView_component = /*#__PURE__*/Object.freeze({
12602
12663
 
12603
12664
  const AXPTableEditorWidget = {
12604
12665
  name: 'table-editor',
12605
- title: 'Table Editor Box',
12666
+ title: 'Table Editor',
12606
12667
  icon: 'fa-solid fa-input-text',
12607
12668
  description: 'Inputs single-line text',
12608
12669
  group: AXP_WIDGETS_EDITOR_GROUP,
@@ -12613,7 +12674,6 @@ const AXPTableEditorWidget = {
12613
12674
  AXP_DATA_PATH_PROPERTY,
12614
12675
  AXP_ALLOW_MULTIPLE_PROPERTY,
12615
12676
  AXP_DISABLED_PROPERTY,
12616
- AXP_VALIDATION_PROPERTY,
12617
12677
  AXP_PLACEHOLDER_PROPERTY,
12618
12678
  AXP_HAS_CLEAR_BUTTON_PROPERTY,
12619
12679
  //cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
@@ -12638,6 +12698,7 @@ const AXPTableEditorWidget = {
12638
12698
  component: () => Promise.resolve().then(function () { return tabularDataWidgetEdit_component; }).then((c) => c.AXPTabularDataEditorWidgetEditComponent),
12639
12699
  },
12640
12700
  },
12701
+ visible: false
12641
12702
  };
12642
12703
 
12643
12704
  class AXPBooleanFilterWidgetEditComponent extends AXPWidgetComponent {
@@ -14321,6 +14382,7 @@ class AXPWidgetsModule {
14321
14382
  //charts
14322
14383
  AXPDonutChartWidget,
14323
14384
  AXPBarChartWidget,
14385
+ AXPGaugeChartWidget,
14324
14386
  ],
14325
14387
  })] }); }
14326
14388
  }
@@ -14390,6 +14452,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
14390
14452
  //charts
14391
14453
  AXPDonutChartWidget,
14392
14454
  AXPBarChartWidget,
14455
+ AXPGaugeChartWidget,
14393
14456
  ],
14394
14457
  }),
14395
14458
  ],
@@ -14403,5 +14466,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
14403
14466
  * Generated bundle index. Do not edit.
14404
14467
  */
14405
14468
 
14406
- export { AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetPrintComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetPrintComponent, AXPAvatarWidgetViewComponent, AXPBarChartWidget, AXPBarChartWidgetEditComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetEditComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetPrintComponent, AXPContactWidgetViewComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetFilterComponent, AXPDateTimeBoxWidgetPrintComponent, AXPDateTimeBoxWidgetViewComponent, AXPDonutChartWidget, AXPDonutChartWidgetEditComponent, AXPEmailBoxWidget, AXPEmailBoxWidgetColumnComponent, AXPEmailBoxWidgetEditComponent, AXPEmailBoxWidgetFilterComponent, AXPEmailBoxWidgetPrintComponent, AXPEmailBoxWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFileBoxWidget, AXPFileBoxWidgetColumnComponent, AXPFileBoxWidgetEditComponent, AXPFileBoxWidgetFilterComponent, AXPFileBoxWidgetPrintComponent, AXPFileBoxWidgetViewComponent, AXPFileManagementService, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPGalleryWidget, AXPGalleryWidgetColumnComponent, AXPGalleryWidgetEditComponent, AXPGalleryWidgetFilterComponent, AXPGalleryWidgetPrintComponent, AXPGalleryWidgetViewComponent, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetFilterComponent, AXPLargeTextWidgetPrintComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPLinkWidget, AXPLinkWidgetColumnComponent, AXPLinkWidgetEditComponent, AXPLinkWidgetFilterComponent, AXPLinkWidgetPrintComponent, AXPLinkWidgetViewComponent, AXPMapBoxWidget, AXPMapBoxWidgetEditComponent, AXPMapBoxWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetFilterComponent, AXPNumberBoxWidgetPrintComponent, AXPNumberBoxWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetFilterComponent, AXPPasswordBoxWidgetPrintComponent, AXPPasswordBoxWidgetViewComponent, AXPPhoneBoxWidget, AXPPhoneBoxWidgetColumnComponent, AXPPhoneBoxWidgetEditComponent, AXPPhoneBoxWidgetFilterComponent, AXPPhoneBoxWidgetPrintComponent, AXPPhoneBoxWidgetViewComponent, AXPPropertyEditorHelper, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetPrintComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetFilterComponent, AXPRichTextWidgetPrintComponent, AXPRichTextWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetFilterComponent, AXPSelectBoxWidgetPrintComponent, AXPSelectBoxWidgetViewComponent, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetFilterComponent, AXPSelectionListWidgetPrintComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetFilterComponent, AXPSignatureWidgetPrintComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetFilterComponent$1 as AXPTextBoxWidgetFilterComponent, AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetFilterComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWidgetsModule, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BG_COLOR_PROPERTY, AXP_BOX_MODEL_PROPERTY_GROUP, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_PROPERTY, AXP_DATE_FORMAT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_HAS_CLEAR_BUTTON_PROPERTY, AXP_HAS_COPY_ICON_PROPERTY, AXP_HAS_EYE_ICON_PROPERTY, AXP_HAS_ICON_PROPERTY, AXP_HAS_LABEL_PROPERTY, AXP_ICON_PROPERTY, AXP_IS_LOADING_PROPERTY, AXP_LABEL_PROPERTY, AXP_LAYOUT_ADVANCED_GRID_PROPERTY, AXP_LAYOUT_ALIGN_CONTENT_PROPERTY, AXP_LAYOUT_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_COL_END_PROPERTY, AXP_LAYOUT_COL_SPAN_PROPERTY, AXP_LAYOUT_COL_START_PROPERTY, AXP_LAYOUT_FLEX_ALIGN_PROPERTY, AXP_LAYOUT_FLEX_DIRECTION_PROPERTY, AXP_LAYOUT_FLEX_JUSTIFY_PROPERTY, AXP_LAYOUT_FLEX_PROPERTIES, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, AXP_LAYOUT_FLEX_WRAP_PROPERTY, AXP_LAYOUT_GAP_PROPERTY, AXP_LAYOUT_GRID_ITEM_PROPERTIES, AXP_LAYOUT_GRID_PROPERTIES, AXP_LAYOUT_GRID_PROPERTY, AXP_LAYOUT_GRID_PROPERTY_GROUP, AXP_LAYOUT_GRID_ROW_PROPERTIES, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_NAME_PROPERTY, AXP_PLACEHOLDER_PROPERTY, AXP_READONLY_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMN_HEIGHT_PROPERTY, AXP_TABLE_COLUMN_WIDTH_PROPERTY, AXP_TEXT_FIELD_PROPERTY, AXP_TEXT_PROPERTY, AXP_THEME_PROPERTY, AXP_TITLE_PROPERTY, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY, AXP_VALIDATION_PROPERTY_GROUP, AXP_VALUE_FIELD_PROPERTY, AXP_WIDGET_PROPERTY_GROUP, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, DEFAULT_STRATEGY_CONFIG, STRATEGY_CONFIG_TOKEN, booleanDefaultProperty, findNonEmptyBreakpoints, largeTextDefaultProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, plainTextDefaultProperty };
14469
+ export { AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetPrintComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetPrintComponent, AXPAvatarWidgetViewComponent, AXPBarChartWidget, AXPBarChartWidgetEditComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetEditComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetPrintComponent, AXPContactWidgetViewComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetFilterComponent, AXPDateTimeBoxWidgetPrintComponent, AXPDateTimeBoxWidgetViewComponent, AXPDonutChartWidget, AXPDonutChartWidgetEditComponent, AXPEmailBoxWidget, AXPEmailBoxWidgetColumnComponent, AXPEmailBoxWidgetEditComponent, AXPEmailBoxWidgetFilterComponent, AXPEmailBoxWidgetPrintComponent, AXPEmailBoxWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFileBoxWidget, AXPFileBoxWidgetColumnComponent, AXPFileBoxWidgetEditComponent, AXPFileBoxWidgetFilterComponent, AXPFileBoxWidgetPrintComponent, AXPFileBoxWidgetViewComponent, AXPFileManagementService, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPGalleryWidget, AXPGalleryWidgetColumnComponent, AXPGalleryWidgetEditComponent, AXPGalleryWidgetFilterComponent, AXPGalleryWidgetPrintComponent, AXPGalleryWidgetViewComponent, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetFilterComponent, AXPLargeTextWidgetPrintComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPLinkWidget, AXPLinkWidgetColumnComponent, AXPLinkWidgetEditComponent, AXPLinkWidgetFilterComponent, AXPLinkWidgetPrintComponent, AXPLinkWidgetViewComponent, AXPMapBoxWidget, AXPMapBoxWidgetEditComponent, AXPMapBoxWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetFilterComponent, AXPNumberBoxWidgetPrintComponent, AXPNumberBoxWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetFilterComponent, AXPPasswordBoxWidgetPrintComponent, AXPPasswordBoxWidgetViewComponent, AXPPhoneBoxWidget, AXPPhoneBoxWidgetColumnComponent, AXPPhoneBoxWidgetEditComponent, AXPPhoneBoxWidgetFilterComponent, AXPPhoneBoxWidgetPrintComponent, AXPPhoneBoxWidgetViewComponent, AXPPropertyEditorHelper, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetPrintComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetFilterComponent, AXPRichTextWidgetPrintComponent, AXPRichTextWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetFilterComponent, AXPSelectBoxWidgetPrintComponent, AXPSelectBoxWidgetViewComponent, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetFilterComponent, AXPSelectionListWidgetPrintComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetFilterComponent, AXPSignatureWidgetPrintComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetFilterComponent$1 as AXPTextBoxWidgetFilterComponent, AXPTextBoxWidgetPrintComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetFilterComponent, AXPToggleWidgetPrintComponent, AXPToggleWidgetViewComponent, AXPWidgetsModule, AXP_ALLOW_MULTIPLE_PROPERTY, AXP_ALLOW_SEARCH_PROPERTY, AXP_BEHAVIOR_PROPERTY_GROUP, AXP_BETWEEN_VALIDATION_PROPERTY, AXP_BG_COLOR_PROPERTY, AXP_BOX_MODEL_PROPERTY_GROUP, AXP_CALLBACK_VALIDATION_PROPERTY, AXP_COLOR_PROPERTY, AXP_CONTENT_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DATA_SOURCE_PROPERTIES, AXP_DATA_SOURCE_PROPERTY, AXP_DATA_SOURCE_TEXT_FIELD, AXP_DATA_SOURCE_VALUE_FIELD, AXP_DATE_FORMAT_PROPERTY, AXP_DESCRIPTION_PROPERTY, AXP_DIRECTION_PROPERTY, AXP_DISABLED_PROPERTY, AXP_DOWNLOADABLE_PROPERTY, AXP_EQUAL_VALIDATION_PROPERTY, AXP_FALSY_TEXT_PROPERTY, AXP_FONT_SIZE_PROPERTY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_GREATER_THAN_VALIDATION_PROPERTY, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_HAS_CLEAR_BUTTON_PROPERTY, AXP_HAS_COPY_ICON_PROPERTY, AXP_HAS_EYE_ICON_PROPERTY, AXP_HAS_ICON_PROPERTY, AXP_HAS_LABEL_PROPERTY, AXP_ICON_PROPERTY, AXP_IS_LOADING_PROPERTY, AXP_LABEL_PROPERTY, AXP_LAYOUT_ADVANCED_GRID_PROPERTY, AXP_LAYOUT_ALIGN_CONTENT_PROPERTY, AXP_LAYOUT_BORDER_PROPERTY, AXP_LAYOUT_COLUMNS_PROPERTY, AXP_LAYOUT_COL_END_PROPERTY, AXP_LAYOUT_COL_SPAN_PROPERTY, AXP_LAYOUT_COL_START_PROPERTY, AXP_LAYOUT_FLEX_ALIGN_PROPERTY, AXP_LAYOUT_FLEX_DIRECTION_PROPERTY, AXP_LAYOUT_FLEX_JUSTIFY_PROPERTY, AXP_LAYOUT_FLEX_PROPERTIES, AXP_LAYOUT_FLEX_PROPERTY, AXP_LAYOUT_FLEX_PROPERTY_GROUP, AXP_LAYOUT_FLEX_WRAP_PROPERTY, AXP_LAYOUT_GAP_PROPERTY, AXP_LAYOUT_GRID_ITEM_PROPERTIES, AXP_LAYOUT_GRID_PROPERTIES, AXP_LAYOUT_GRID_PROPERTY, AXP_LAYOUT_GRID_PROPERTY_GROUP, AXP_LAYOUT_GRID_ROW_PROPERTIES, AXP_LAYOUT_ROWS_PROPERTY, AXP_LAYOUT_SPACING_PROPERTY, AXP_LESS_THAN_VALIDATION_PROPERTY, AXP_MAX_LENGTH_VALIDATION_PROPERTY, AXP_MIN_LENGTH_VALIDATION_PROPERTY, AXP_NAME_PROPERTY, AXP_PLACEHOLDER_PROPERTY, AXP_READONLY_PROPERTY, AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY, AXP_REQUIRED_VALIDATION_PROPERTY, AXP_STYLE_COLOR_PROPERTY, AXP_STYLE_LOOK_PROPERTY, AXP_STYLING_PROPERTY_GROUP, AXP_TABLE_COLUMN_HEIGHT_PROPERTY, AXP_TABLE_COLUMN_WIDTH_PROPERTY, AXP_TEXT_FIELD_PROPERTY, AXP_TEXT_PROPERTY, AXP_THEME_PROPERTY, AXP_TITLE_PROPERTY, AXP_TRULY_TEXT_PROPERTY, AXP_VALIDATION_PROPERTY_GROUP, AXP_VALUE_FIELD_PROPERTY, AXP_WIDGET_PROPERTY_GROUP, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, DEFAULT_STRATEGY_CONFIG, STRATEGY_CONFIG_TOKEN, booleanDefaultProperty, findNonEmptyBreakpoints, largeTextDefaultProperty, numberDefaultProperty, numberMaxValueProperty, numberMinValueProperty, plainTextDefaultProperty };
14407
14470
  //# sourceMappingURL=acorex-platform-widgets.mjs.map