@acorex/platform 19.2.7 → 19.2.9

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 (97) hide show
  1. package/common/lib/app/application.types.d.ts +8 -0
  2. package/common/lib/utils/index.d.ts +2 -0
  3. package/common/lib/utils/regional-util.service.d.ts +15 -0
  4. package/common/lib/utils/regional.types.d.ts +55 -0
  5. package/fesm2022/acorex-platform-common.mjs +4 -2
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +35 -16
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-builder.mjs +83 -23
  10. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-designer.mjs +27 -26
  12. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-entity.mjs +123 -63
  14. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  15. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Bl9f4Rtk.mjs → acorex-platform-themes-default-entity-master-create-view.component-BK8BItxL.mjs} +2 -2
  16. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-BK8BItxL.mjs.map +1 -0
  17. 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
  18. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BGUrwL2P.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-themes-default-setting-page.component-CN2NCgUv.mjs +74 -0
  20. package/fesm2022/acorex-platform-themes-default-setting-page.component-CN2NCgUv.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-themes-default-setting-view.component-CsCug3Vu.mjs +71 -0
  22. package/fesm2022/acorex-platform-themes-default-setting-view.component-CsCug3Vu.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-themes-default.mjs +24 -14
  24. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-themes-shared.mjs +10 -1
  26. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-BiCinIok.mjs +274 -0
  28. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-BiCinIok.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-BBRVgZLu.mjs → acorex-platform-widgets-tabular-data-view-popup.component-BaslkAPS.mjs} +16 -1
  30. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-BaslkAPS.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-widgets.mjs +512 -342
  32. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  33. package/layout/builder/lib/builder/datasource-provider.service.d.ts +3 -1
  34. package/layout/builder/lib/builder/widget-renderer.directive.d.ts +3 -0
  35. package/layout/builder/lib/builder/widget.types.d.ts +2 -0
  36. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -0
  37. package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +3 -0
  38. package/layout/entity/lib/entity-master-create.viewmodel.d.ts +3 -1
  39. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +1 -1
  40. package/layout/entity/lib/entity.viewmodel.d.ts +1 -0
  41. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +0 -2
  42. package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +0 -2
  43. package/layout/setting/lib/setting.viewmodel.d.ts +3 -0
  44. package/package.json +5 -5
  45. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +3 -0
  46. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +3 -0
  47. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +3 -0
  48. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +3 -0
  49. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +3 -0
  50. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +6 -0
  51. package/themes/default/lib/layouts/root-layout/root-layout.module.d.ts +2 -1
  52. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +3 -0
  53. package/themes/default/lib/pages/theme-palette-preview/theme-palette-preview.page.d.ts +3 -0
  54. package/themes/shared/lib/components/slots/theme-slot.component.d.ts +3 -0
  55. package/themes/shared/lib/setting.keys.d.ts +2 -1
  56. package/themes/shared/lib/theme.service.d.ts +3 -0
  57. package/widgets/lib/properties/data-source.props.d.ts +3 -0
  58. package/widgets/lib/properties/editors.props.d.ts +0 -1
  59. package/widgets/lib/properties/index.d.ts +1 -0
  60. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +18 -3
  61. package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +20 -6
  62. package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +0 -2
  63. package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +0 -2
  64. package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +0 -4
  65. package/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.d.ts +0 -4
  66. package/widgets/lib/widgets/editors/email/email-box-widget-edit.component.d.ts +0 -4
  67. package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +0 -2
  68. package/widgets/lib/widgets/editors/link/link-widget-edit.component.d.ts +0 -4
  69. package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +0 -2
  70. package/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.d.ts +0 -4
  71. package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +4 -3
  72. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +0 -2
  73. package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +0 -2
  74. package/widgets/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.d.ts +11 -3
  75. package/widgets/lib/widgets/editors/tabular-data/tabular-data-view-popup.component.d.ts +3 -1
  76. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-edit.component.d.ts +1 -1
  77. package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-view.component.d.ts +0 -2
  78. package/widgets/lib/widgets/editors/text/text-box-widget-edit.component.d.ts +0 -2
  79. package/widgets/lib/widgets/validations/base-validation/base-validation.d.ts +3 -2
  80. package/widgets/lib/widgets/validations/between-validation/between-validation-widget-edit.component.d.ts +1 -7
  81. package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget-edit.component.d.ts +1 -7
  82. package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget-edit.component.d.ts +1 -7
  83. package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget-edit.component.d.ts +1 -7
  84. package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget-edit.component.d.ts +1 -7
  85. package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget-edit.component.d.ts +1 -7
  86. package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget-edit.component.d.ts +1 -7
  87. package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget-edit.component.d.ts +1 -7
  88. package/widgets/lib/widgets/validations/required-validation/required-validation-widget-edit.component.d.ts +1 -7
  89. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Bl9f4Rtk.mjs.map +0 -1
  90. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B4aBmc5H.mjs.map +0 -1
  91. package/fesm2022/acorex-platform-themes-default-setting-page.component-BERYnJnp.mjs +0 -74
  92. package/fesm2022/acorex-platform-themes-default-setting-page.component-BERYnJnp.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-themes-default-setting-view.component-BagAWM4W.mjs +0 -71
  94. package/fesm2022/acorex-platform-themes-default-setting-view.component-BagAWM4W.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-D2-nHqYy.mjs +0 -144
  96. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-D2-nHqYy.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-BBRVgZLu.mjs.map +0 -1
@@ -12,7 +12,7 @@ import { AXLoadingModule } from '@acorex/components/loading';
12
12
  import * as i1$1 from '@angular/common';
13
13
  import { CommonModule } from '@angular/common';
14
14
  import * as i0 from '@angular/core';
15
- import { computed, EventEmitter, Component, ChangeDetectionStrategy, inject, afterNextRender, HostBinding, signal, effect, ViewEncapsulation, InjectionToken, ViewChild, untracked, ChangeDetectorRef, viewChild, ElementRef, afterRender, NgZone, model, input, linkedSignal, HostListener, NgModule } from '@angular/core';
15
+ import { computed, EventEmitter, Component, ChangeDetectionStrategy, inject, afterNextRender, HostBinding, signal, ViewEncapsulation, InjectionToken, effect, ViewChild, untracked, ChangeDetectorRef, viewChild, ElementRef, afterRender, NgZone, model, input, linkedSignal, HostListener, NgModule } from '@angular/core';
16
16
  import * as i1 from '@acorex/components/check-box';
17
17
  import { AXCheckBoxModule } from '@acorex/components/check-box';
18
18
  import * as i3$1 from '@acorex/components/form';
@@ -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 = [];
1798
1963
  this.calendarFormat = computed(() => {
1799
1964
  if (this.format() === 'date')
1800
1965
  return 'dd/MM/yyyy';
@@ -1804,12 +1969,6 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPWidgetComponent {
1804
1969
  return 'dd/MM/yyyy HH:mm';
1805
1970
  });
1806
1971
  }
1807
- get validationRules() {
1808
- return this._validationRules;
1809
- }
1810
- set validationRules(v) {
1811
- this._validationRules = v;
1812
- }
1813
1972
  handleValueChange(e, i) {
1814
1973
  if (e.isUserInteraction) {
1815
1974
  const newValues = this.internalValue().map((item, index) => (i === index ? e.value : item));
@@ -1845,7 +2004,7 @@ class AXPDateTimeBoxWidgetEditComponent extends AXPWidgetComponent {
1845
2004
  [format]="calendarFormat()"
1846
2005
  [placeholder]="placeholder()"
1847
2006
  >
1848
- @for (validation of validationRules; track $index) {
2007
+ @for (validation of validationRules(); track $index) {
1849
2008
  <ax-validation-rule
1850
2009
  [rule]="validation.rule"
1851
2010
  [message]="validation.options?.message"
@@ -1887,7 +2046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
1887
2046
  [format]="calendarFormat()"
1888
2047
  [placeholder]="placeholder()"
1889
2048
  >
1890
- @for (validation of validationRules; track $index) {
2049
+ @for (validation of validationRules(); track $index) {
1891
2050
  <ax-validation-rule
1892
2051
  [rule]="validation.rule"
1893
2052
  [message]="validation.options?.message"
@@ -2052,9 +2211,12 @@ const AXPDateTimeBoxWidget = {
2052
2211
  AXP_DATE_FORMAT_PROPERTY,
2053
2212
  AXP_READONLY_PROPERTY,
2054
2213
  AXP_DISABLED_PROPERTY,
2055
- AXP_VALIDATION_PROPERTY,
2056
2214
  AXP_PLACEHOLDER_PROPERTY,
2057
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,
2058
2220
  ],
2059
2221
  components: {
2060
2222
  view: {
@@ -2200,7 +2362,6 @@ class AXPEmailBoxWidgetEditComponent extends AXPWidgetComponent {
2200
2362
  this.hasLabel = computed(() => this.options()["hasLabel"] ?? true);
2201
2363
  this.lables = computed(() => this.options()["lables"] ?? ['Primary', 'Secondary']);
2202
2364
  this.internalValue = computed(() => this.getValueAsArrayOfObjects());
2203
- this._validationRules = [];
2204
2365
  this.convertItem = (item, e) => {
2205
2366
  if (typeof item === 'object') {
2206
2367
  return { ...item, value: e.value };
@@ -2210,12 +2371,6 @@ class AXPEmailBoxWidgetEditComponent extends AXPWidgetComponent {
2210
2371
  }
2211
2372
  };
2212
2373
  }
2213
- get validationRules() {
2214
- return this._validationRules;
2215
- }
2216
- set validationRules(v) {
2217
- this._validationRules = v;
2218
- }
2219
2374
  getValueAsArrayOfObjects() {
2220
2375
  const value = this.getValue();
2221
2376
  if (Array.isArray(value)) {
@@ -2274,7 +2429,7 @@ class AXPEmailBoxWidgetEditComponent extends AXPWidgetComponent {
2274
2429
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
2275
2430
  [class.lg:!ax-col-end-12]="!hasLabel()"
2276
2431
  >
2277
- @for (validation of validationRules; track $index) {
2432
+ @for (validation of validationRules(); track $index) {
2278
2433
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
2279
2434
  }
2280
2435
  <ax-validation-rule [rule]="'email'"></ax-validation-rule>
@@ -2320,10 +2475,9 @@ class AXPEmailBoxWidgetEditComponent extends AXPWidgetComponent {
2320
2475
  type="text"
2321
2476
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
2322
2477
  [class.lg:!ax-col-end-13]="!hasLabel()">
2323
- @for (validation of validationRules; track $index) {
2478
+ @for (validation of validationRules(); track $index) {
2324
2479
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
2325
2480
  }
2326
- <ax-validation-rule [rule]="'email'"></ax-validation-rule>
2327
2481
  </ax-text-box>
2328
2482
  @if(hasLabel()){
2329
2483
  <ax-select-box
@@ -2356,7 +2510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2356
2510
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
2357
2511
  [class.lg:!ax-col-end-12]="!hasLabel()"
2358
2512
  >
2359
- @for (validation of validationRules; track $index) {
2513
+ @for (validation of validationRules(); track $index) {
2360
2514
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
2361
2515
  }
2362
2516
  <ax-validation-rule [rule]="'email'"></ax-validation-rule>
@@ -2402,10 +2556,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
2402
2556
  type="text"
2403
2557
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
2404
2558
  [class.lg:!ax-col-end-13]="!hasLabel()">
2405
- @for (validation of validationRules; track $index) {
2559
+ @for (validation of validationRules(); track $index) {
2406
2560
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
2407
2561
  }
2408
- <ax-validation-rule [rule]="'email'"></ax-validation-rule>
2409
2562
  </ax-text-box>
2410
2563
  @if(hasLabel()){
2411
2564
  <ax-select-box
@@ -2551,9 +2704,10 @@ const AXPEmailBoxWidget = {
2551
2704
  AXP_DATA_PATH_PROPERTY,
2552
2705
  AXP_ALLOW_MULTIPLE_PROPERTY,
2553
2706
  AXP_DISABLED_PROPERTY,
2554
- AXP_VALIDATION_PROPERTY,
2555
2707
  AXP_PLACEHOLDER_PROPERTY,
2556
2708
  AXP_HAS_LABEL_PROPERTY,
2709
+ //
2710
+ AXP_REQUIRED_VALIDATION_PROPERTY,
2557
2711
  ],
2558
2712
  components: {
2559
2713
  view: {
@@ -2615,7 +2769,6 @@ class AXPLargeTextWidgetEditComponent extends AXPWidgetComponent {
2615
2769
  this.disabled = computed(() => this.options()['disabled']);
2616
2770
  this.clearButton = computed(() => this.options()['clearButton'] ?? true);
2617
2771
  this.placeholder = computed(() => this.options()['placeholder']);
2618
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
2619
2772
  }
2620
2773
  get __class() {
2621
2774
  const cls = {};
@@ -2752,10 +2905,13 @@ const AXPLargeTextWidget = {
2752
2905
  AXP_NAME_PROPERTY,
2753
2906
  AXP_DATA_PATH_PROPERTY,
2754
2907
  AXP_DISABLED_PROPERTY,
2755
- AXP_VALIDATION_PROPERTY,
2756
2908
  AXP_PLACEHOLDER_PROPERTY,
2757
2909
  largeTextDefaultProperty(),
2758
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,
2759
2915
  ],
2760
2916
  components: {
2761
2917
  view: {
@@ -2923,7 +3079,6 @@ class AXPLinkWidgetEditComponent extends AXPWidgetComponent {
2923
3079
  },
2924
3080
  });
2925
3081
  this.internalValue = computed(() => this.getValueAsArrayOfObjects());
2926
- this._validationRules = [];
2927
3082
  this.convertItem = (item, e) => {
2928
3083
  if (typeof item === 'object')
2929
3084
  return { ...item, value: e.value };
@@ -2935,12 +3090,6 @@ class AXPLinkWidgetEditComponent extends AXPWidgetComponent {
2935
3090
  super.ngOnInit();
2936
3091
  this.getValueAsArrayOfObjects();
2937
3092
  }
2938
- get validationRules() {
2939
- return this._validationRules;
2940
- }
2941
- set validationRules(v) {
2942
- this._validationRules = v;
2943
- }
2944
3093
  getValueAsArrayOfObjects() {
2945
3094
  const value = this.getValue();
2946
3095
  if (Array.isArray(value)) {
@@ -3077,10 +3226,9 @@ class AXPLinkWidgetEditComponent extends AXPWidgetComponent {
3077
3226
  class="ax-col-start-1 ax-col-end-13"
3078
3227
  [ngClass]="generateClasses('url', 'multiple')"
3079
3228
  >
3080
- @for (validation of validationRules; track $index) {
3229
+ @for (validation of validationRules(); track $index) {
3081
3230
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
3082
3231
  }
3083
- <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
3084
3232
  </ax-text-box>
3085
3233
  @if(hasTitle()){
3086
3234
  <ax-text-box
@@ -3131,10 +3279,9 @@ class AXPLinkWidgetEditComponent extends AXPWidgetComponent {
3131
3279
  placeholder="Link"
3132
3280
  class="ax-col-start-1 ax-col-end-13"
3133
3281
  >
3134
- @for (validation of validationRules; track $index) {
3282
+ @for (validation of validationRules(); track $index) {
3135
3283
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
3136
3284
  }
3137
- <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
3138
3285
  </ax-text-box>
3139
3286
  @if(hasTitle()){
3140
3287
  <ax-text-box
@@ -3173,10 +3320,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
3173
3320
  class="ax-col-start-1 ax-col-end-13"
3174
3321
  [ngClass]="generateClasses('url', 'multiple')"
3175
3322
  >
3176
- @for (validation of validationRules; track $index) {
3323
+ @for (validation of validationRules(); track $index) {
3177
3324
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
3178
3325
  }
3179
- <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
3180
3326
  </ax-text-box>
3181
3327
  @if(hasTitle()){
3182
3328
  <ax-text-box
@@ -3227,10 +3373,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
3227
3373
  placeholder="Link"
3228
3374
  class="ax-col-start-1 ax-col-end-13"
3229
3375
  >
3230
- @for (validation of validationRules; track $index) {
3376
+ @for (validation of validationRules(); track $index) {
3231
3377
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
3232
3378
  }
3233
- <ax-validation-rule message="field can't be empty" rule="required"> </ax-validation-rule>
3234
3379
  </ax-text-box>
3235
3380
  @if(hasTitle()){
3236
3381
  <ax-text-box
@@ -3423,7 +3568,6 @@ class AXPNumberBoxWidgetEditComponent extends AXPWidgetComponent {
3423
3568
  this.maxValue = computed(() => this.options()['maxValue']);
3424
3569
  this.seprator = computed(() => this.options()['seprator'] ?? null);
3425
3570
  this.placeholder = computed(() => this.options()['placeholder']);
3426
- this.validationRules = computed(() => this.options()["validationRules"] ?? []);
3427
3571
  this.internalValue = computed(() => Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]);
3428
3572
  }
3429
3573
  handleValueChange(e, i) {
@@ -3640,12 +3784,15 @@ const AXPNumberBoxWidget = {
3640
3784
  AXP_ALLOW_MULTIPLE_PROPERTY,
3641
3785
  AXP_HAS_CLEAR_BUTTON_PROPERTY,
3642
3786
  AXP_DISABLED_PROPERTY,
3643
- AXP_VALIDATION_PROPERTY,
3644
3787
  AXP_PLACEHOLDER_PROPERTY,
3645
3788
  numberDefaultProperty(),
3646
3789
  numberMinValueProperty(),
3647
3790
  numberMaxValueProperty(),
3648
3791
  cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
3792
+ //
3793
+ AXP_REQUIRED_VALIDATION_PROPERTY,
3794
+ AXP_LESS_THAN_VALIDATION_PROPERTY,
3795
+ AXP_GREATER_THAN_VALIDATION_PROPERTY,
3649
3796
  ],
3650
3797
  components: {
3651
3798
  view: {
@@ -3765,8 +3912,13 @@ class AXPPasswordBoxWidgetEditComponent extends AXPWidgetComponent {
3765
3912
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPPasswordBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3766
3913
  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: `
3767
3914
  <ax-password-box [ngModel]="getValue()" [disabled]="disabled()" (onValueChanged)="handleValueChanged($event)">
3768
- <ax-validation-rule rule="required"></ax-validation-rule>
3769
- @if(hasClearButton()){
3915
+ @for (validation of validationRules(); track $index) {
3916
+ <ax-validation-rule
3917
+ [rule]="validation.rule"
3918
+ [message]="validation.options?.message"
3919
+ [options]="validation.options"
3920
+ ></ax-validation-rule>
3921
+ } @if(hasClearButton()){
3770
3922
  <ax-clear-button></ax-clear-button>
3771
3923
  }
3772
3924
  </ax-password-box>
@@ -3777,15 +3929,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
3777
3929
  args: [{
3778
3930
  template: `
3779
3931
  <ax-password-box [ngModel]="getValue()" [disabled]="disabled()" (onValueChanged)="handleValueChanged($event)">
3780
- <ax-validation-rule rule="required"></ax-validation-rule>
3781
- @if(hasClearButton()){
3932
+ @for (validation of validationRules(); track $index) {
3933
+ <ax-validation-rule
3934
+ [rule]="validation.rule"
3935
+ [message]="validation.options?.message"
3936
+ [options]="validation.options"
3937
+ ></ax-validation-rule>
3938
+ } @if(hasClearButton()){
3782
3939
  <ax-clear-button></ax-clear-button>
3783
3940
  }
3784
3941
  </ax-password-box>
3785
3942
  `,
3786
3943
  changeDetection: ChangeDetectionStrategy.OnPush,
3787
3944
  imports: [CommonModule, FormsModule, AXDecoratorModule, AXPasswordBoxModule, AXValidationModule, AXFormModule],
3788
- inputs: []
3945
+ inputs: [],
3789
3946
  }]
3790
3947
  }], propDecorators: { __class: [{
3791
3948
  type: HostBinding,
@@ -3900,12 +4057,13 @@ const AXPPasswordBoxWidget = {
3900
4057
  type: 'editor',
3901
4058
  properties: [
3902
4059
  AXP_NAME_PROPERTY,
3903
- AXP_VALIDATION_PROPERTY,
3904
4060
  AXP_DATA_PATH_PROPERTY,
3905
4061
  AXP_HAS_CLEAR_BUTTON_PROPERTY,
3906
4062
  AXP_DISABLED_PROPERTY,
3907
4063
  AXP_HAS_COPY_ICON_PROPERTY,
3908
4064
  AXP_HAS_EYE_ICON_PROPERTY,
4065
+ //
4066
+ AXP_REQUIRED_VALIDATION_PROPERTY,
3909
4067
  ],
3910
4068
  components: {
3911
4069
  view: {
@@ -4050,13 +4208,6 @@ class AXPPhoneBoxWidgetEditComponent extends AXPWidgetComponent {
4050
4208
  this.hasLabel = computed(() => this.options()['hasLabel']);
4051
4209
  this.phoneLabels = computed(() => this.options()['phoneLabels'] || ['Mobile', 'Home', 'Work', 'Other']);
4052
4210
  this.internalValue = computed(() => this.getValueAsArrayOfObjects());
4053
- this._validationRules = [];
4054
- }
4055
- get validationRules() {
4056
- return this._validationRules;
4057
- }
4058
- set validationRules(v) {
4059
- this._validationRules = v;
4060
4211
  }
4061
4212
  getValueAsArrayOfObjects() {
4062
4213
  const value = this.getValue();
@@ -4111,7 +4262,7 @@ class AXPPhoneBoxWidgetEditComponent extends AXPWidgetComponent {
4111
4262
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
4112
4263
  [class.lg:!ax-col-end-12]="!hasLabel()"
4113
4264
  >
4114
- @for (validation of validationRules; track $index) {
4265
+ @for (validation of validationRules(); track $index) {
4115
4266
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4116
4267
  }
4117
4268
  </ax-text-box>
@@ -4142,7 +4293,7 @@ class AXPPhoneBoxWidgetEditComponent extends AXPWidgetComponent {
4142
4293
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
4143
4294
  [class.lg:!ax-col-end-13]="!hasLabel"
4144
4295
  >
4145
- @for (validation of validationRules; track $index) {
4296
+ @for (validation of validationRules(); track $index) {
4146
4297
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4147
4298
  }
4148
4299
  </ax-text-box>
@@ -4184,7 +4335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
4184
4335
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
4185
4336
  [class.lg:!ax-col-end-12]="!hasLabel()"
4186
4337
  >
4187
- @for (validation of validationRules; track $index) {
4338
+ @for (validation of validationRules(); track $index) {
4188
4339
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4189
4340
  }
4190
4341
  </ax-text-box>
@@ -4215,7 +4366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
4215
4366
  class="ax-col-start-1 ax-col-end-13 lg:ax-col-end-8"
4216
4367
  [class.lg:!ax-col-end-13]="!hasLabel"
4217
4368
  >
4218
- @for (validation of validationRules; track $index) {
4369
+ @for (validation of validationRules(); track $index) {
4219
4370
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
4220
4371
  }
4221
4372
  </ax-text-box>
@@ -4371,8 +4522,8 @@ const AXPPhoneBoxWidget = {
4371
4522
  properties: [
4372
4523
  AXP_HAS_LABEL_PROPERTY,
4373
4524
  AXP_ALLOW_MULTIPLE_PROPERTY,
4374
- AXP_VALIDATION_PROPERTY,
4375
4525
  AXP_TABLE_COLUMN_WIDTH_PROPERTY,
4526
+ AXP_REQUIRED_VALIDATION_PROPERTY,
4376
4527
  ],
4377
4528
  components: {
4378
4529
  view: {
@@ -4446,16 +4597,18 @@ class AXPRichTextWidgetEditComponent extends AXPWidgetComponent {
4446
4597
  super(...arguments);
4447
4598
  this.placeholder = computed(() => this.options()['placeholder']);
4448
4599
  this.disabled = computed(() => this.options()['disabled']);
4449
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
4450
- this.eff = effect(() => {
4451
- console.log(this.getValue());
4452
- });
4600
+ this.minLineCount = computed(() => this.options()['minLineCount'] ?? this.options()['maxLineCount'] ?? 3);
4601
+ this.maxLineCount = computed(() => this.options()['maxLineCount'] ?? this.options()['minLineCount'] ?? 3);
4602
+ this.isFitLine = computed(() => this.options()['fitLineCount'] ?? false);
4453
4603
  }
4454
4604
  setWysiwyg(e) {
4455
4605
  if (e) {
4456
4606
  this.setValue(e.value);
4457
4607
  }
4458
4608
  }
4609
+ getLinePx(count) {
4610
+ return 24 + 18.46 * count + 'px';
4611
+ }
4459
4612
  get __class() {
4460
4613
  const cls = {};
4461
4614
  cls[`ax-block`] = true;
@@ -4469,7 +4622,11 @@ class AXPRichTextWidgetEditComponent extends AXPWidgetComponent {
4469
4622
  [ngModel]="getValue()"
4470
4623
  (onValueChanged)="setWysiwyg($event)"
4471
4624
  >
4472
- <ax-wysiwyg-view class="ax-min-h-28"></ax-wysiwyg-view>
4625
+ <ax-wysiwyg-view
4626
+ [style.min-height]="getLinePx(minLineCount())"
4627
+ [style.max-height]="getLinePx(maxLineCount())"
4628
+ [style.height]="'fit-content !important'"
4629
+ ></ax-wysiwyg-view>
4473
4630
  <!-- <ax-wysiwyg-toolbar>
4474
4631
  <ax-wysiwyg-history></ax-wysiwyg-history>
4475
4632
  <ax-wysiwyg-font-style></ax-wysiwyg-font-style>
@@ -4510,7 +4667,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
4510
4667
  [ngModel]="getValue()"
4511
4668
  (onValueChanged)="setWysiwyg($event)"
4512
4669
  >
4513
- <ax-wysiwyg-view class="ax-min-h-28"></ax-wysiwyg-view>
4670
+ <ax-wysiwyg-view
4671
+ [style.min-height]="getLinePx(minLineCount())"
4672
+ [style.max-height]="getLinePx(maxLineCount())"
4673
+ [style.height]="'fit-content !important'"
4674
+ ></ax-wysiwyg-view>
4514
4675
  <!-- <ax-wysiwyg-toolbar>
4515
4676
  <ax-wysiwyg-history></ax-wysiwyg-history>
4516
4677
  <ax-wysiwyg-font-style></ax-wysiwyg-font-style>
@@ -4654,9 +4815,11 @@ const AXPRichTextWidget = {
4654
4815
  AXP_DATA_PATH_PROPERTY,
4655
4816
  AXP_ALLOW_MULTIPLE_PROPERTY,
4656
4817
  AXP_DISABLED_PROPERTY,
4657
- AXP_VALIDATION_PROPERTY,
4658
4818
  AXP_PLACEHOLDER_PROPERTY,
4659
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,
4660
4823
  ],
4661
4824
  components: {
4662
4825
  view: {
@@ -4740,7 +4903,6 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
4740
4903
  constructor() {
4741
4904
  super(...arguments);
4742
4905
  this.widgetsConfigs = inject(STRATEGY_CONFIG_TOKEN);
4743
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
4744
4906
  this.multiple = computed(() => this.options()['multiple']);
4745
4907
  this.disabled = computed(() => this.options()['disabled']);
4746
4908
  this.placeholder = computed(() => this.options()['placeholder'] ?? '');
@@ -4779,7 +4941,7 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
4779
4941
  clear() {
4780
4942
  this.selectbox?.reset(true);
4781
4943
  setTimeout(() => {
4782
- this.selectbox?.refresh();
4944
+ this.refresh();
4783
4945
  }, 0);
4784
4946
  }
4785
4947
  get __class() {
@@ -4806,7 +4968,17 @@ class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent {
4806
4968
  } @if(hasClearButton()) {
4807
4969
  <ax-clear-button></ax-clear-button>
4808
4970
  } @for (validation of validationRules(); track $index) {
4809
- <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>
4810
4982
  }
4811
4983
  </ax-select-box>
4812
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 }); }
@@ -4832,7 +5004,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
4832
5004
  } @if(hasClearButton()) {
4833
5005
  <ax-clear-button></ax-clear-button>
4834
5006
  } @for (validation of validationRules(); track $index) {
4835
- <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>
4836
5018
  }
4837
5019
  </ax-select-box>
4838
5020
  `,
@@ -5139,7 +5321,6 @@ class AXPSelectionListWidgetEditComponent extends AXPDataListWidgetComponent {
5139
5321
  });
5140
5322
  this.dataSource().refresh();
5141
5323
  });
5142
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
5143
5324
  }
5144
5325
  handleValueChange(e) {
5145
5326
  if (e.isUserInteraction) {
@@ -5315,17 +5496,15 @@ const AXPSelectionListWidget = {
5315
5496
  group: AXP_WIDGETS_EDITOR_GROUP,
5316
5497
  defaultFilterWidgetName: 'select-filter',
5317
5498
  properties: [
5318
- AXP_DATA_SOURCE_PROPERTY,
5499
+ ...AXP_DATA_SOURCE_PROPERTIES,
5319
5500
  AXP_NAME_PROPERTY,
5320
5501
  AXP_DATA_PATH_PROPERTY,
5321
- AXP_VALUE_FIELD_PROPERTY,
5322
- AXP_TEXT_FIELD_PROPERTY,
5323
5502
  AXP_ALLOW_MULTIPLE_PROPERTY,
5324
5503
  AXP_DIRECTION_PROPERTY,
5325
5504
  AXP_DISABLED_PROPERTY,
5326
5505
  AXP_READONLY_PROPERTY,
5327
- AXP_VALIDATION_PROPERTY,
5328
5506
  //cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
5507
+ AXP_REQUIRED_VALIDATION_PROPERTY,
5329
5508
  ],
5330
5509
  type: 'editor',
5331
5510
  components: {
@@ -5404,7 +5583,6 @@ class AXPTextBoxWidgetEditComponent extends AXPWidgetComponent {
5404
5583
  this.hasClearButton = computed(() => this.options()['hasClearButton']);
5405
5584
  this.disabled = computed(() => this.options()['disabled']);
5406
5585
  this.placeholder = computed(() => this.options()['placeholder']);
5407
- this.validationRules = computed(() => this.options()['validationRules'] ?? []);
5408
5586
  this.internalValue = computed(() => Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]);
5409
5587
  }
5410
5588
  //eff = effect(() => console.log(this.options()));
@@ -5603,142 +5781,6 @@ var textBoxWidgetPrint_component = /*#__PURE__*/Object.freeze({
5603
5781
  AXPTextBoxWidgetPrintComponent: AXPTextBoxWidgetPrintComponent
5604
5782
  });
5605
5783
 
5606
- const AXP_REQUIRED_VALIDATION_PROPERTY = {
5607
- name: 'requiredValidation',
5608
- title: 'Required',
5609
- group: AXP_VALIDATION_PROPERTY_GROUP,
5610
- schema: {
5611
- dataType: 'object',
5612
- interface: {
5613
- name: 'requiredValidation',
5614
- path: 'options.requiredValidation',
5615
- type: AXPWidgetsCatalog.requiredValidation,
5616
- // defaultValue: false,
5617
- },
5618
- },
5619
- visible: true,
5620
- };
5621
- const AXP_MIN_LENGTH_VALIDATION_PROPERTY = {
5622
- name: 'minLengthValidation',
5623
- title: 'Minimum Length',
5624
- group: AXP_VALIDATION_PROPERTY_GROUP,
5625
- schema: {
5626
- dataType: 'object',
5627
- interface: {
5628
- name: 'minLengthValidation',
5629
- path: 'options.minLengthValidation',
5630
- type: AXPWidgetsCatalog.minLengthValidation,
5631
- // defaultValue: false,
5632
- },
5633
- },
5634
- visible: true,
5635
- };
5636
- const AXP_MAX_LENGTH_VALIDATION_PROPERTY = {
5637
- name: 'maxLengthValidation',
5638
- title: 'Maximum Length',
5639
- group: AXP_VALIDATION_PROPERTY_GROUP,
5640
- schema: {
5641
- dataType: 'object',
5642
- interface: {
5643
- name: 'maxLengthValidation',
5644
- path: 'options.maxLengthValidation',
5645
- type: AXPWidgetsCatalog.maxLengthValidation,
5646
- // defaultValue: false,
5647
- },
5648
- },
5649
- visible: true,
5650
- };
5651
- const AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY = {
5652
- name: 'regularExpressionValidation',
5653
- title: 'Regular Expression',
5654
- group: AXP_VALIDATION_PROPERTY_GROUP,
5655
- schema: {
5656
- dataType: 'object',
5657
- interface: {
5658
- name: 'regularExpressionValidation',
5659
- path: 'options.regularExpressionValidation',
5660
- type: AXPWidgetsCatalog.regularExpressionValidation,
5661
- // defaultValue: false,
5662
- },
5663
- },
5664
- visible: true,
5665
- };
5666
- const AXP_LESS_THAN_VALIDATION_PROPERTY = {
5667
- name: 'lessThanValidation',
5668
- title: 'Less Than',
5669
- group: AXP_VALIDATION_PROPERTY_GROUP,
5670
- schema: {
5671
- dataType: 'object',
5672
- interface: {
5673
- name: 'lessThanValidation',
5674
- path: 'options.lessThanValidation',
5675
- type: AXPWidgetsCatalog.lessThanValidation,
5676
- // defaultValue: false,
5677
- },
5678
- },
5679
- visible: true,
5680
- };
5681
- const AXP_GREATER_THAN_VALIDATION_PROPERTY = {
5682
- name: 'greaterThanValidation',
5683
- title: 'Greater Than',
5684
- group: AXP_VALIDATION_PROPERTY_GROUP,
5685
- schema: {
5686
- dataType: 'object',
5687
- interface: {
5688
- name: 'greaterThanValidation',
5689
- path: 'options.greaterThanValidation',
5690
- type: AXPWidgetsCatalog.greaterThanValidation,
5691
- // defaultValue: false,
5692
- },
5693
- },
5694
- visible: true,
5695
- };
5696
- const AXP_BETWEEN_VALIDATION_PROPERTY = {
5697
- name: 'betweenValidation',
5698
- title: 'Between',
5699
- group: AXP_VALIDATION_PROPERTY_GROUP,
5700
- schema: {
5701
- dataType: 'object',
5702
- interface: {
5703
- name: 'betweenValidation',
5704
- path: 'options.betweenValidation',
5705
- type: AXPWidgetsCatalog.betweenValidation,
5706
- // defaultValue: false,
5707
- },
5708
- },
5709
- visible: true,
5710
- };
5711
- const AXP_EQUAL_VALIDATION_PROPERTY = {
5712
- name: 'equalValidation',
5713
- title: 'Equal',
5714
- group: AXP_VALIDATION_PROPERTY_GROUP,
5715
- schema: {
5716
- dataType: 'object',
5717
- interface: {
5718
- name: 'equalValidation',
5719
- path: 'options.equalValidation',
5720
- type: AXPWidgetsCatalog.equalValidation,
5721
- // defaultValue: false,
5722
- },
5723
- },
5724
- visible: true,
5725
- };
5726
- const AXP_CALLBACK_VALIDATION_PROPERTY = {
5727
- name: 'callbackValidation',
5728
- title: 'Callback',
5729
- group: AXP_VALIDATION_PROPERTY_GROUP,
5730
- schema: {
5731
- dataType: 'object',
5732
- interface: {
5733
- name: 'callbackValidation',
5734
- path: 'options.callbackValidation',
5735
- type: AXPWidgetsCatalog.callbackValidation,
5736
- // defaultValue: false,
5737
- },
5738
- },
5739
- visible: true,
5740
- };
5741
-
5742
5784
  const AXPTextBoxWidget = {
5743
5785
  name: 'text-editor',
5744
5786
  title: 'Text Box',
@@ -5752,19 +5794,14 @@ const AXPTextBoxWidget = {
5752
5794
  AXP_DATA_PATH_PROPERTY,
5753
5795
  AXP_ALLOW_MULTIPLE_PROPERTY,
5754
5796
  AXP_DISABLED_PROPERTY,
5755
- AXP_VALIDATION_PROPERTY,
5756
5797
  AXP_PLACEHOLDER_PROPERTY,
5757
5798
  AXP_HAS_CLEAR_BUTTON_PROPERTY,
5758
5799
  plainTextDefaultProperty(),
5800
+ //
5759
5801
  AXP_REQUIRED_VALIDATION_PROPERTY,
5760
5802
  AXP_MIN_LENGTH_VALIDATION_PROPERTY,
5761
5803
  AXP_REGULAR_EXPRESSION_VALIDATION_PROPERTY,
5762
5804
  AXP_MAX_LENGTH_VALIDATION_PROPERTY,
5763
- AXP_LESS_THAN_VALIDATION_PROPERTY,
5764
- AXP_GREATER_THAN_VALIDATION_PROPERTY,
5765
- AXP_BETWEEN_VALIDATION_PROPERTY,
5766
- AXP_EQUAL_VALIDATION_PROPERTY,
5767
- AXP_CALLBACK_VALIDATION_PROPERTY,
5768
5805
  //cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
5769
5806
  ],
5770
5807
  components: {
@@ -6713,7 +6750,6 @@ const AXPFileBoxWidget = {
6713
6750
  properties: [
6714
6751
  AXP_NAME_PROPERTY,
6715
6752
  AXP_DATA_PATH_PROPERTY,
6716
- AXP_VALIDATION_PROPERTY,
6717
6753
  AXP_ALLOW_MULTIPLE_PROPERTY,
6718
6754
  AXP_DOWNLOADABLE_PROPERTY,
6719
6755
  AXP_DESCRIPTION_PROPERTY,
@@ -7705,7 +7741,12 @@ const AXPSignatureWidget = {
7705
7741
  icon: 'fa-solid fa-file-signature',
7706
7742
  group: AXP_WIDGETS_ADVANCE_GROUP,
7707
7743
  type: 'editor',
7708
- properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_VALIDATION_PROPERTY],
7744
+ properties: [
7745
+ AXP_NAME_PROPERTY,
7746
+ AXP_DATA_PATH_PROPERTY,
7747
+ AXP_DISABLED_PROPERTY,
7748
+ AXP_REQUIRED_VALIDATION_PROPERTY
7749
+ ],
7709
7750
  components: {
7710
7751
  view: {
7711
7752
  component: () => Promise.resolve().then(function () { return signaturePadWidgetView_component; }).then((c) => c.AXPSignatureWidgetViewComponent),
@@ -11538,101 +11579,247 @@ class AXPBarChartWidgetEditComponent extends AXPWidgetComponent {
11538
11579
  constructor() {
11539
11580
  super(...arguments);
11540
11581
  this.chartEl = viewChild.required('chart');
11541
- this.af = afterNextRender(async () => {
11582
+ this.data = linkedSignal(() => this.getValue());
11583
+ this.isRendered = false;
11584
+ this.#af = afterNextRender(async () => {
11542
11585
  await this.loadD3();
11543
- this.createChart();
11586
+ this.initializeChart();
11587
+ this.isRendered = true;
11588
+ });
11589
+ this.#eff = effect(() => {
11590
+ this.data();
11591
+ if (this.isRendered) {
11592
+ this.updateChart(this.data());
11593
+ }
11544
11594
  });
11545
11595
  }
11596
+ #af;
11597
+ #eff;
11546
11598
  async loadD3() {
11547
11599
  try {
11548
11600
  this.d3 = await import('d3');
11549
- window.d3 = this.d3;
11550
11601
  }
11551
11602
  catch (error) {
11552
11603
  console.error('Failed to load D3.js:', error);
11553
11604
  }
11554
11605
  }
11555
- createChart() {
11556
- const chartElement = this.chartEl().nativeElement;
11557
- this.d3.select(chartElement).selectAll('*').remove();
11558
- const width = this.getValue().options.width;
11559
- const height = this.getValue().options.height;
11560
- const margin = { top: 30, right: 0, bottom: 30, left: 40 };
11561
- const x = this.d3
11606
+ initializeChart() {
11607
+ const chartValue = this.data();
11608
+ const { width, height, margin } = this.getChartDimensions(chartValue.options);
11609
+ // Clear existing SVG if it exists
11610
+ if (this.svg) {
11611
+ this.svg.selectAll('*').remove();
11612
+ }
11613
+ // Create SVG
11614
+ this.svg = this.d3.select(this.chartEl().nativeElement).append('svg').attr('width', width).attr('height', height);
11615
+ this.drawChart(chartValue);
11616
+ }
11617
+ drawChart(chartValue) {
11618
+ const { data, options } = chartValue;
11619
+ const { width, height, margin } = this.getChartDimensions(options);
11620
+ const x = this.createXScale(data, width, margin);
11621
+ const y = this.createYScale(data, height, margin);
11622
+ this.drawBars(data, x, y, height, margin, options);
11623
+ this.drawAxes(x, y, height, margin, options);
11624
+ if (options.enableTooltip) {
11625
+ this.addTooltips(data, x, y, options);
11626
+ }
11627
+ if (options.enableLegend) {
11628
+ this.addLegend(data, width, height, margin, options);
11629
+ }
11630
+ if (options.enableExport) {
11631
+ this.addExportButton();
11632
+ }
11633
+ }
11634
+ updateChart(chartValue) {
11635
+ const { data, options } = chartValue;
11636
+ // Clear existing chart content
11637
+ this.svg.selectAll('*').remove();
11638
+ // Re-render chart with new options
11639
+ this.drawChart(chartValue);
11640
+ }
11641
+ getChartDimensions(options) {
11642
+ const baseWidth = options.width || 400;
11643
+ const baseHeight = options.height || 200;
11644
+ const margin = options.margin || { top: 20, right: 20, bottom: 30, left: 40 };
11645
+ // Reserve space for legend
11646
+ const legendSpace = 100; // 100px reserved for legend
11647
+ let width = baseWidth;
11648
+ let height = baseHeight;
11649
+ if (options.enableLegend) {
11650
+ switch (options.legendPosition) {
11651
+ case 'top-right':
11652
+ case 'top-left':
11653
+ height -= legendSpace; // Reserve space at the top
11654
+ margin.top += legendSpace;
11655
+ break;
11656
+ case 'bottom-right':
11657
+ case 'bottom-left':
11658
+ height -= legendSpace; // Reserve space at the bottom
11659
+ margin.bottom += legendSpace;
11660
+ break;
11661
+ }
11662
+ }
11663
+ return { width, height, margin };
11664
+ }
11665
+ createXScale(data, width, margin) {
11666
+ return this.d3
11562
11667
  .scaleBand()
11563
- .domain(this.getValue().data.map((d) => d.name))
11668
+ .domain(data.map((d) => d.name))
11564
11669
  .range([margin.left, width - margin.right])
11565
11670
  .padding(0.1);
11566
- const y = this.d3
11671
+ }
11672
+ createYScale(data, height, margin) {
11673
+ return this.d3
11567
11674
  .scaleLinear()
11568
- .domain([0, this.d3.max(this.getValue().data, (d) => d.value)])
11675
+ .domain([0, this.d3.max(data, (d) => d.value)])
11676
+ .nice()
11569
11677
  .range([height - margin.bottom, margin.top]);
11570
- const svg = this.d3
11571
- .select(chartElement)
11572
- .append('svg')
11573
- .attr('width', width)
11574
- .attr('height', height)
11575
- .attr('viewBox', [0, 0, width, height])
11576
- .style('max-width', '100%')
11577
- .style('height', 'auto');
11578
- // Add the vertical line on the y-axis
11579
- svg
11580
- .append('line')
11581
- .attr('x1', margin.left)
11582
- .attr('y1', margin.top)
11583
- .attr('x2', margin.left)
11584
- .attr('y2', height - margin.bottom)
11585
- .attr('stroke', 'black')
11586
- .attr('stroke-width', 1);
11587
- // Add the bars
11588
- svg
11589
- .append('g')
11678
+ }
11679
+ drawBars(data, x, y, height, margin, options) {
11680
+ this.svg
11590
11681
  .selectAll('rect')
11591
- .data(this.getValue().data)
11592
- .join('rect')
11593
- .attr('fill', (d) => d.color || this.getValue().options.color || 'steelblue')
11594
- .attr('x', (d) => x(d.name))
11682
+ .data(data)
11683
+ .enter()
11684
+ .append('rect')
11685
+ .attr('x', (d) => x(d.name) || 0)
11686
+ .attr('y', height - margin.bottom)
11687
+ .attr('width', x.bandwidth())
11688
+ .attr('height', 0)
11689
+ .attr('fill', (d) => d.color || options.color || 'teal')
11690
+ .transition()
11691
+ .duration(500)
11595
11692
  .attr('y', (d) => y(d.value))
11596
- .attr('height', (d) => y(0) - y(d.value))
11597
- .attr('width', x.bandwidth());
11598
- // Add the x-axis
11599
- svg
11693
+ .attr('height', (d) => y(0) - y(d.value));
11694
+ }
11695
+ drawAxes(x, y, height, margin, options) {
11696
+ const axisColor = options.axisColor || '#000';
11697
+ const axisFontSize = options.axisFontSize || 12;
11698
+ // Draw X axis
11699
+ this.svg
11600
11700
  .append('g')
11701
+ .attr('class', 'x-axis')
11601
11702
  .attr('transform', `translate(0,${height - margin.bottom})`)
11602
- .call(this.d3.axisBottom(x));
11603
- // Add the y-axis with tick lines
11604
- const yAxis = this.d3.axisLeft(y).tickFormat((d) => `${d}`);
11605
- svg
11703
+ .call(this.d3.axisBottom(x).tickSizeOuter(0))
11704
+ .attr('color', axisColor)
11705
+ .style('font-size', `${axisFontSize}px`);
11706
+ // Draw Y axis
11707
+ this.svg
11606
11708
  .append('g')
11709
+ .attr('class', 'y-axis')
11607
11710
  .attr('transform', `translate(${margin.left},0)`)
11608
- .call(yAxis)
11609
- .call((g) => g.select('.domain').remove());
11610
- if (this.getValue().options.yAxisTick === undefined || this.getValue().options.yAxisTick === true) {
11611
- // Add tick lines for each y-axis value
11612
- svg
11613
- .selectAll('.y-tick-line')
11614
- .data(y.ticks())
11615
- .enter()
11616
- .append('line')
11617
- .attr('class', 'y-tick-line')
11618
- .attr('x1', margin.left)
11619
- .attr('y1', (d) => y(d))
11620
- .attr('x2', width - margin.right)
11621
- .attr('y2', (d) => y(d))
11622
- .attr('stroke', '#0001')
11623
- .attr('stroke-width', 0.5);
11711
+ .call(this.d3.axisLeft(y))
11712
+ .attr('color', axisColor)
11713
+ .style('font-size', `${axisFontSize}px`);
11714
+ }
11715
+ addTooltips(data, x, y, options) {
11716
+ this.tooltip = this.svg.append('g').attr('class', 'tooltip').style('opacity', 0);
11717
+ this.tooltip
11718
+ .append('rect')
11719
+ .attr('width', 80)
11720
+ .attr('height', 30)
11721
+ .attr('fill', options.tooltipBackground || '#fff')
11722
+ .attr('rx', 4)
11723
+ .attr('ry', 4);
11724
+ this.tooltip
11725
+ .append('text')
11726
+ .attr('x', 40)
11727
+ .attr('y', 20)
11728
+ .attr('text-anchor', 'middle')
11729
+ .attr('fill', options.tooltipTextColor || '#000')
11730
+ .style('font-size', '11px');
11731
+ this.svg
11732
+ .selectAll('rect')
11733
+ .on('mouseover', (event, d) => {
11734
+ const barX = x(d.name) || 0;
11735
+ const barY = y(d.value);
11736
+ this.tooltip.style('opacity', 1).attr('transform', `translate(${barX + x.bandwidth() / 2 - 40},${barY - 40})`);
11737
+ this.tooltip.select('text').text(`${d.name}: ${d.value}`);
11738
+ })
11739
+ .on('mouseout', () => {
11740
+ this.tooltip.style('opacity', 0);
11741
+ });
11742
+ }
11743
+ addLegend(data, width, height, margin, options) {
11744
+ const legendPosition = options.legendPosition || 'top-right';
11745
+ const legend = this.svg.append('g').attr('class', 'legend');
11746
+ const legendItems = legend
11747
+ .selectAll('.legend-item')
11748
+ .data(data)
11749
+ .enter()
11750
+ .append('g')
11751
+ .attr('class', 'legend-item')
11752
+ .attr('transform', (d, i) => `translate(0, ${i * 20})`);
11753
+ legendItems
11754
+ .append('rect')
11755
+ .attr('width', 16)
11756
+ .attr('height', 16)
11757
+ .attr('fill', (d) => d.color || options.color || 'teal');
11758
+ legendItems
11759
+ .append('text')
11760
+ .attr('x', 24)
11761
+ .attr('y', 12)
11762
+ .attr('fill', '#000')
11763
+ .style('font-size', '12px')
11764
+ .text((d) => d.name);
11765
+ // Position the legend
11766
+ switch (legendPosition) {
11767
+ case 'top-right':
11768
+ legend.attr('transform', `translate(${width - margin.right - 100}, ${margin.top - 80})`);
11769
+ break;
11770
+ case 'top-left':
11771
+ legend.attr('transform', `translate(${margin.left}, ${margin.top - 80})`);
11772
+ break;
11773
+ case 'bottom-right':
11774
+ legend.attr('transform', `translate(${width - margin.right - 100}, ${height - margin.bottom + 20})`);
11775
+ break;
11776
+ case 'bottom-left':
11777
+ legend.attr('transform', `translate(${margin.left}, ${height - margin.bottom + 20})`);
11778
+ break;
11624
11779
  }
11625
11780
  }
11781
+ addExportButton() {
11782
+ const exportButton = this.d3
11783
+ .select(this.chartEl().nativeElement)
11784
+ .append('button')
11785
+ .text('Export to PNG')
11786
+ .style('position', 'absolute')
11787
+ .style('top', '10px')
11788
+ .style('right', '10px')
11789
+ .style('z-index', '1000')
11790
+ .on('click', () => {
11791
+ const svgElement = this.svg.node();
11792
+ if (svgElement) {
11793
+ const serializer = new XMLSerializer();
11794
+ const svgString = serializer.serializeToString(svgElement);
11795
+ const canvas = document.createElement('canvas');
11796
+ const ctx = canvas.getContext('2d');
11797
+ const img = new Image();
11798
+ img.onload = () => {
11799
+ canvas.width = img.width;
11800
+ canvas.height = img.height;
11801
+ ctx?.drawImage(img, 0, 0);
11802
+ const link = document.createElement('a');
11803
+ link.download = 'chart.png';
11804
+ link.href = canvas.toDataURL('image/png');
11805
+ link.click();
11806
+ };
11807
+ img.src = 'data:image/svg+xml;base64,' + btoa(svgString);
11808
+ }
11809
+ });
11810
+ }
11626
11811
  ngOnDestroy() {
11627
- this.d3.select(this.chartEl().nativeElement).selectAll('*').remove();
11812
+ if (this.svg) {
11813
+ this.svg.selectAll('*').remove();
11814
+ }
11628
11815
  }
11629
11816
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBarChartWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11630
- 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 }); }
11817
+ 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 }); }
11631
11818
  }
11632
11819
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPBarChartWidgetEditComponent, decorators: [{
11633
11820
  type: Component,
11634
11821
  args: [{
11635
- template: ` <div class="ax-flex ax-justify-center ax-items-center" #chart></div>`,
11822
+ template: `<div class="ax-flex ax-justify-center ax-items-center" #chart></div>`,
11636
11823
  standalone: true,
11637
11824
  changeDetection: ChangeDetectionStrategy.OnPush,
11638
11825
  }]
@@ -12074,7 +12261,6 @@ class AXPColorBoxWidgetEditComponent extends AXPWidgetComponent {
12074
12261
  this.disabled = computed(() => this.options()["disabled"]);
12075
12262
  this.readonly = computed(() => this.options()["readonly"]);
12076
12263
  this.hasClearButton = computed(() => this.options()['hasClearButton']);
12077
- this.validationRules = computed(() => this.options()["validationRules"] ?? []);
12078
12264
  }
12079
12265
  get __class() {
12080
12266
  const cls = {};
@@ -12208,8 +12394,9 @@ const AXPColorBoxWidget = {
12208
12394
  AXP_DATA_PATH_PROPERTY,
12209
12395
  AXP_READONLY_PROPERTY,
12210
12396
  AXP_DISABLED_PROPERTY,
12211
- AXP_VALIDATION_PROPERTY,
12212
- AXP_PLACEHOLDER_PROPERTY
12397
+ AXP_PLACEHOLDER_PROPERTY,
12398
+ //
12399
+ AXP_REQUIRED_VALIDATION_PROPERTY,
12213
12400
  ],
12214
12401
  components: {
12215
12402
  designer: {
@@ -12257,14 +12444,14 @@ class AXPTabularDataEditorWidgetEditComponent extends AXPWidgetComponent {
12257
12444
  constructor() {
12258
12445
  super(...arguments);
12259
12446
  this.columns = computed(() => this.options()['columns']);
12260
- this.isPopup = computed(() => this.options()['isPopup']);
12447
+ this.defaultRowCount = computed(() => this.options()['defaultRowCount']);
12261
12448
  this.popupService = inject(AXPopupService);
12262
12449
  this.platform = inject(AXPlatform);
12263
12450
  }
12264
12451
  async openPopup() {
12265
- const { AXPTabularDataPopupComponent } = await import('./acorex-platform-widgets-tabular-data-edit-popup.component-D2-nHqYy.mjs');
12452
+ const { AXPTabularDataPopupComponent } = await import('./acorex-platform-widgets-tabular-data-edit-popup.component-BiCinIok.mjs');
12266
12453
  const popupData = await this.popupService.open(AXPTabularDataPopupComponent, {
12267
- size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
12454
+ size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : this.columns().length > 3 ? 'lg' : 'md',
12268
12455
  header: true,
12269
12456
  closeOnBackdropClick: true,
12270
12457
  closeButton: true,
@@ -12273,24 +12460,19 @@ class AXPTabularDataEditorWidgetEditComponent extends AXPWidgetComponent {
12273
12460
  data: {
12274
12461
  columns: this.columns(),
12275
12462
  context: this.getValue(),
12463
+ defaultRowCount: this.defaultRowCount(),
12276
12464
  },
12277
12465
  });
12278
12466
  this.setValue(popupData.data?.context);
12279
12467
  }
12280
12468
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataEditorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12281
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTabularDataEditorWidgetEditComponent, isStandalone: true, selector: "axp-tabular-data-editor-widget", usesInheritance: true, ngImport: i0, template: `
12282
- <span class="ax-truncate ax-underline ax-cursor-pointer" (click)="openPopup()">
12283
- Click To Edit</span>
12284
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXDataTableModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12469
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: AXPTabularDataEditorWidgetEditComponent, isStandalone: true, selector: "axp-tabular-data-editor-widget", usesInheritance: true, ngImport: i0, template: ` <span class="ax-truncate ax-underline ax-cursor-pointer" (click)="openPopup()"> Click To Edit</span> `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "ngmodule", type: AXDataTableModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12285
12470
  }
12286
12471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPTabularDataEditorWidgetEditComponent, decorators: [{
12287
12472
  type: Component,
12288
12473
  args: [{
12289
12474
  selector: 'axp-tabular-data-editor-widget',
12290
- template: `
12291
- <span class="ax-truncate ax-underline ax-cursor-pointer" (click)="openPopup()">
12292
- Click To Edit</span>
12293
- `,
12475
+ template: ` <span class="ax-truncate ax-underline ax-cursor-pointer" (click)="openPopup()"> Click To Edit</span> `,
12294
12476
  changeDetection: ChangeDetectionStrategy.OnPush,
12295
12477
  imports: [
12296
12478
  CommonModule,
@@ -12356,20 +12538,9 @@ class AXPTabularDataEditorWidgetViewComponent extends AXPWidgetComponent {
12356
12538
  this.popupService = inject(AXPopupService);
12357
12539
  this.platform = inject(AXPlatform);
12358
12540
  this.columns = this.options()['columns'];
12359
- this.dataSource = new AXDataSource({
12360
- load: async () => {
12361
- const items = this.getValue() ?? [];
12362
- return {
12363
- items: items,
12364
- total: items.length,
12365
- };
12366
- },
12367
- pageSize: 1000,
12368
- key: 'gridItem',
12369
- });
12370
12541
  }
12371
12542
  async openPopup() {
12372
- const { AXPTabularDataPopupComponent } = await import('./acorex-platform-widgets-tabular-data-view-popup.component-BBRVgZLu.mjs');
12543
+ const { AXPTabularDataPopupComponent } = await import('./acorex-platform-widgets-tabular-data-view-popup.component-BaslkAPS.mjs');
12373
12544
  this.popupService.open(AXPTabularDataPopupComponent, {
12374
12545
  size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',
12375
12546
  header: true,
@@ -12378,7 +12549,7 @@ class AXPTabularDataEditorWidgetViewComponent extends AXPWidgetComponent {
12378
12549
  draggable: true,
12379
12550
  title: this.path ?? '',
12380
12551
  data: {
12381
- dataSource: this.dataSource,
12552
+ items: this.getValue() ?? [],
12382
12553
  columns: this.columns,
12383
12554
  },
12384
12555
  });
@@ -12415,7 +12586,6 @@ const AXPTableEditorWidget = {
12415
12586
  AXP_DATA_PATH_PROPERTY,
12416
12587
  AXP_ALLOW_MULTIPLE_PROPERTY,
12417
12588
  AXP_DISABLED_PROPERTY,
12418
- AXP_VALIDATION_PROPERTY,
12419
12589
  AXP_PLACEHOLDER_PROPERTY,
12420
12590
  AXP_HAS_CLEAR_BUTTON_PROPERTY,
12421
12591
  //cloneProperty(AXP_TABLE_COLUMN_WIDTH_PROPERTY, { schema: { defaultValue: '200px' } }),
@@ -14205,5 +14375,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
14205
14375
  * Generated bundle index. Do not edit.
14206
14376
  */
14207
14377
 
14208
- 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 };
14378
+ 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 };
14209
14379
  //# sourceMappingURL=acorex-platform-widgets.mjs.map