@aemforms/af-core 0.22.97 → 0.22.99

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.
@@ -78,19 +78,21 @@ const isButton = function (item) {
78
78
  return item?.fieldType === 'button';
79
79
  };
80
80
  function deepClone(obj, idGenerator) {
81
- let result;
82
- if (obj instanceof Array) {
83
- result = [];
84
- result = obj.map(x => deepClone(x, idGenerator));
81
+ if (obj === null || typeof obj !== 'object') {
82
+ return obj;
85
83
  }
86
- else if (typeof obj === 'object' && obj !== null) {
87
- result = {};
88
- Object.entries(obj).forEach(([key, value]) => {
89
- result[key] = deepClone(value, idGenerator);
90
- });
84
+ let result;
85
+ if (Array.isArray(obj)) {
86
+ result = new Array(obj.length);
87
+ for (let i = 0; i < obj.length; i++) {
88
+ result[i] = deepClone(obj[i], idGenerator);
89
+ }
91
90
  }
92
91
  else {
93
- result = obj;
92
+ result = {};
93
+ for (const key of Object.keys(obj)) {
94
+ result[key] = deepClone(obj[key], idGenerator);
95
+ }
94
96
  }
95
97
  if (idGenerator && result && result.id) {
96
98
  result.id = idGenerator();
@@ -1225,6 +1227,9 @@ class BaseNode {
1225
1227
  get name() {
1226
1228
  return this._jsonModel.name;
1227
1229
  }
1230
+ get screenReaderText() {
1231
+ return this._jsonModel.screenReaderText;
1232
+ }
1228
1233
  get description() {
1229
1234
  return this._jsonModel.description;
1230
1235
  }
@@ -1946,7 +1951,7 @@ class Container extends Scriptable {
1946
1951
  _canHaveRepeatingChildren(mode = 'create') {
1947
1952
  const items = this._jsonModel.items;
1948
1953
  return this._jsonModel.type == 'array' && this.getDataNode() != null &&
1949
- (items.length === 1 || (items[0].repeatable == true && mode === 'restore'));
1954
+ (items.length === 1 || (items.length > 0 && items[0].repeatable == true && mode === 'restore'));
1950
1955
  }
1951
1956
  _initialize(mode) {
1952
1957
  super._initialize(mode);
@@ -2141,12 +2146,11 @@ class Container extends Scriptable {
2141
2146
  }
2142
2147
  }
2143
2148
  get enabled() {
2144
- if (this.parent?.enabled !== undefined) {
2145
- return !this.parent?.enabled ? false : this._jsonModel.enabled;
2146
- }
2147
- else {
2148
- return this._jsonModel.enabled;
2149
+ const parentEnabled = this.parent?.enabled;
2150
+ if (parentEnabled !== undefined) {
2151
+ return parentEnabled ? this._jsonModel.enabled : false;
2149
2152
  }
2153
+ return this._jsonModel.enabled;
2150
2154
  }
2151
2155
  set enabled(e) {
2152
2156
  this._setProperty('enabled', e, true, this.notifyChildren);
@@ -3605,12 +3609,11 @@ class Field extends Scriptable {
3605
3609
  this._setProperty('readOnly', e);
3606
3610
  }
3607
3611
  get enabled() {
3608
- if (this.parent.enabled !== undefined) {
3609
- return this.parent.enabled === false ? false : this._jsonModel.enabled;
3610
- }
3611
- else {
3612
- return this._jsonModel.enabled;
3612
+ const parentEnabled = this.parent?.enabled;
3613
+ if (parentEnabled !== undefined) {
3614
+ return parentEnabled ? this._jsonModel.enabled : false;
3613
3615
  }
3616
+ return this._jsonModel.enabled;
3614
3617
  }
3615
3618
  set enabled(e) {
3616
3619
  this._setProperty('enabled', e);
@@ -3861,9 +3864,6 @@ class Field extends Scriptable {
3861
3864
  this._setProperty('errorMessage', e);
3862
3865
  this._setProperty('validationMessage', e);
3863
3866
  }
3864
- get screenReaderText() {
3865
- return this._jsonModel.screenReaderText;
3866
- }
3867
3867
  _getConstraintObject() {
3868
3868
  return Constraints;
3869
3869
  }
@@ -4089,6 +4089,9 @@ class Field extends Scriptable {
4089
4089
  if (this.visible === false) {
4090
4090
  return [];
4091
4091
  }
4092
+ if (this.valid === false && this.errorMessage && this?.validity?.customConstraint) {
4093
+ return [new ValidationError(this.id, [this._jsonModel.errorMessage])];
4094
+ }
4092
4095
  const changes = this.evaluateConstraints();
4093
4096
  this.#triggerValidationEvent();
4094
4097
  if (changes.validity) {
@@ -40,6 +40,7 @@ export declare abstract class BaseNode<T extends BaseJson> implements BaseModel
40
40
  get fieldType(): string;
41
41
  get ':type'(): string;
42
42
  get name(): string | undefined;
43
+ get screenReaderText(): string | undefined;
43
44
  get description(): string | undefined;
44
45
  set description(d: string | undefined);
45
46
  get dataRef(): string | null | undefined;
@@ -65,7 +65,6 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
65
65
  getErrorMessage(constraint: keyof (ConstraintsMessages)): string;
66
66
  get errorMessage(): string | undefined;
67
67
  set errorMessage(e: string | undefined);
68
- get screenReaderText(): string | undefined;
69
68
  _getConstraintObject(): {
70
69
  enum: (constraint: any, inputVal: any) => {
71
70
  valid: boolean;
package/lib/BaseNode.d.ts CHANGED
@@ -40,6 +40,7 @@ export declare abstract class BaseNode<T extends BaseJson> implements BaseModel
40
40
  get fieldType(): string;
41
41
  get ':type'(): string;
42
42
  get name(): string | undefined;
43
+ get screenReaderText(): string | undefined;
43
44
  get description(): string | undefined;
44
45
  set description(d: string | undefined);
45
46
  get dataRef(): string | null | undefined;
package/lib/BaseNode.js CHANGED
@@ -203,6 +203,9 @@ class BaseNode {
203
203
  get name() {
204
204
  return this._jsonModel.name;
205
205
  }
206
+ get screenReaderText() {
207
+ return this._jsonModel.screenReaderText;
208
+ }
206
209
  get description() {
207
210
  return this._jsonModel.description;
208
211
  }
package/lib/Container.js CHANGED
@@ -199,7 +199,7 @@ class Container extends Scriptable_1.default {
199
199
  _canHaveRepeatingChildren(mode = 'create') {
200
200
  const items = this._jsonModel.items;
201
201
  return this._jsonModel.type == 'array' && this.getDataNode() != null &&
202
- (items.length === 1 || (items[0].repeatable == true && mode === 'restore'));
202
+ (items.length === 1 || (items.length > 0 && items[0].repeatable == true && mode === 'restore'));
203
203
  }
204
204
  _initialize(mode) {
205
205
  super._initialize(mode);
@@ -395,13 +395,12 @@ class Container extends Scriptable_1.default {
395
395
  }
396
396
  }
397
397
  get enabled() {
398
- var _a, _b;
399
- if (((_a = this.parent) === null || _a === void 0 ? void 0 : _a.enabled) !== undefined) {
400
- return !((_b = this.parent) === null || _b === void 0 ? void 0 : _b.enabled) ? false : this._jsonModel.enabled;
401
- }
402
- else {
403
- return this._jsonModel.enabled;
398
+ var _a;
399
+ const parentEnabled = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.enabled;
400
+ if (parentEnabled !== undefined) {
401
+ return parentEnabled ? this._jsonModel.enabled : false;
404
402
  }
403
+ return this._jsonModel.enabled;
405
404
  }
406
405
  set enabled(e) {
407
406
  this._setProperty('enabled', e, true, this.notifyChildren);
package/lib/Field.d.ts CHANGED
@@ -65,7 +65,6 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
65
65
  getErrorMessage(constraint: keyof (ConstraintsMessages)): string;
66
66
  get errorMessage(): string | undefined;
67
67
  set errorMessage(e: string | undefined);
68
- get screenReaderText(): string | undefined;
69
68
  _getConstraintObject(): {
70
69
  enum: (constraint: any, inputVal: any) => {
71
70
  valid: boolean;
package/lib/Field.js CHANGED
@@ -210,12 +210,12 @@ class Field extends Scriptable_1.default {
210
210
  this._setProperty('readOnly', e);
211
211
  }
212
212
  get enabled() {
213
- if (this.parent.enabled !== undefined) {
214
- return this.parent.enabled === false ? false : this._jsonModel.enabled;
215
- }
216
- else {
217
- return this._jsonModel.enabled;
213
+ var _a;
214
+ const parentEnabled = (_a = this.parent) === null || _a === void 0 ? void 0 : _a.enabled;
215
+ if (parentEnabled !== undefined) {
216
+ return parentEnabled ? this._jsonModel.enabled : false;
218
217
  }
218
+ return this._jsonModel.enabled;
219
219
  }
220
220
  set enabled(e) {
221
221
  this._setProperty('enabled', e);
@@ -463,9 +463,6 @@ class Field extends Scriptable_1.default {
463
463
  this._setProperty('errorMessage', e);
464
464
  this._setProperty('validationMessage', e);
465
465
  }
466
- get screenReaderText() {
467
- return this._jsonModel.screenReaderText;
468
- }
469
466
  _getConstraintObject() {
470
467
  return ValidationUtils_1.Constraints;
471
468
  }
@@ -674,9 +671,13 @@ class Field extends Scriptable_1.default {
674
671
  }
675
672
  }
676
673
  validate() {
674
+ var _a;
677
675
  if (this.visible === false) {
678
676
  return [];
679
677
  }
678
+ if (this.valid === false && this.errorMessage && ((_a = this === null || this === void 0 ? void 0 : this.validity) === null || _a === void 0 ? void 0 : _a.customConstraint)) {
679
+ return [new types_1.ValidationError(this.id, [this._jsonModel.errorMessage])];
680
+ }
680
681
  const changes = this.evaluateConstraints();
681
682
  __classPrivateFieldGet(this, _Field_instances, "m", _Field_triggerValidationEvent).call(this);
682
683
  if (changes.validity) {
@@ -56,19 +56,21 @@ const isButton = function (item) {
56
56
  };
57
57
  exports.isButton = isButton;
58
58
  function deepClone(obj, idGenerator) {
59
- let result;
60
- if (obj instanceof Array) {
61
- result = [];
62
- result = obj.map(x => deepClone(x, idGenerator));
59
+ if (obj === null || typeof obj !== 'object') {
60
+ return obj;
63
61
  }
64
- else if (typeof obj === 'object' && obj !== null) {
65
- result = {};
66
- Object.entries(obj).forEach(([key, value]) => {
67
- result[key] = deepClone(value, idGenerator);
68
- });
62
+ let result;
63
+ if (Array.isArray(obj)) {
64
+ result = new Array(obj.length);
65
+ for (let i = 0; i < obj.length; i++) {
66
+ result[i] = deepClone(obj[i], idGenerator);
67
+ }
69
68
  }
70
69
  else {
71
- result = obj;
70
+ result = {};
71
+ for (const key of Object.keys(obj)) {
72
+ result[key] = deepClone(obj[key], idGenerator);
73
+ }
72
74
  }
73
75
  if (idGenerator && result && result.id) {
74
76
  result.id = idGenerator();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aemforms/af-core",
3
- "version": "0.22.97",
3
+ "version": "0.22.99",
4
4
  "description": "Core Module for Forms Runtime",
5
5
  "author": "Adobe Systems",
6
6
  "license": "Adobe Proprietary",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@adobe/json-formula": "0.1.50",
40
- "@aemforms/af-formatters": "^0.22.97"
40
+ "@aemforms/af-formatters": "^0.22.99"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@babel/preset-env": "^7.20.2",