@aemforms/af-core 0.22.97 → 0.22.98

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();
@@ -2141,12 +2143,11 @@ class Container extends Scriptable {
2141
2143
  }
2142
2144
  }
2143
2145
  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;
2146
+ const parentEnabled = this.parent?.enabled;
2147
+ if (parentEnabled !== undefined) {
2148
+ return parentEnabled ? this._jsonModel.enabled : false;
2149
2149
  }
2150
+ return this._jsonModel.enabled;
2150
2151
  }
2151
2152
  set enabled(e) {
2152
2153
  this._setProperty('enabled', e, true, this.notifyChildren);
@@ -3605,12 +3606,11 @@ class Field extends Scriptable {
3605
3606
  this._setProperty('readOnly', e);
3606
3607
  }
3607
3608
  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;
3609
+ const parentEnabled = this.parent?.enabled;
3610
+ if (parentEnabled !== undefined) {
3611
+ return parentEnabled ? this._jsonModel.enabled : false;
3613
3612
  }
3613
+ return this._jsonModel.enabled;
3614
3614
  }
3615
3615
  set enabled(e) {
3616
3616
  this._setProperty('enabled', e);
@@ -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) {
package/lib/Container.js CHANGED
@@ -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.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);
@@ -674,9 +674,13 @@ class Field extends Scriptable_1.default {
674
674
  }
675
675
  }
676
676
  validate() {
677
+ var _a;
677
678
  if (this.visible === false) {
678
679
  return [];
679
680
  }
681
+ if (this.valid === false && this.errorMessage && ((_a = this === null || this === void 0 ? void 0 : this.validity) === null || _a === void 0 ? void 0 : _a.customConstraint)) {
682
+ return [new types_1.ValidationError(this.id, [this._jsonModel.errorMessage])];
683
+ }
680
684
  const changes = this.evaluateConstraints();
681
685
  __classPrivateFieldGet(this, _Field_instances, "m", _Field_triggerValidationEvent).call(this);
682
686
  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.98",
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.98"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@babel/preset-env": "^7.20.2",