@aemforms/af-core 0.22.117 → 0.22.119

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.
@@ -3450,28 +3450,35 @@ class Form extends Container {
3450
3450
  }
3451
3451
  }
3452
3452
  setFocus(field, focusOption) {
3453
- if (!focusOption) {
3454
- this.#clearCurrentFocus(field);
3455
- this.#setActiveFirstDeepChild(field);
3456
- return;
3457
- }
3458
- const parent = (field?.isContainer ? field : field.parent);
3459
- const navigableChidren = this.#getNavigableChildren(parent.items);
3460
- let activeChild = parent.activeChild;
3461
- let currActiveChildIndex = activeChild !== null ? navigableChidren.indexOf(activeChild) : -1;
3462
- if (parent.activeChild === null) {
3463
- this.#setActiveFirstDeepChild(navigableChidren[0]);
3464
- currActiveChildIndex = 0;
3465
- return;
3466
- }
3467
- if (focusOption === FocusOption.NEXT_ITEM) {
3468
- activeChild = this.#getNextItem(currActiveChildIndex, navigableChidren);
3469
- }
3470
- else if (focusOption === FocusOption.PREVIOUS_ITEM) {
3471
- activeChild = this.#getPreviousItem(currActiveChildIndex, navigableChidren);
3453
+ const dependencyTracking = this._ruleEngine.getDependencyTracking();
3454
+ this._ruleEngine.setDependencyTracking(false);
3455
+ try {
3456
+ if (!focusOption) {
3457
+ this.#clearCurrentFocus(field);
3458
+ this.#setActiveFirstDeepChild(field);
3459
+ return;
3460
+ }
3461
+ const parent = (field?.isContainer ? field : field.parent);
3462
+ const navigableChidren = this.#getNavigableChildren(parent.items);
3463
+ let activeChild = parent.activeChild;
3464
+ let currActiveChildIndex = activeChild !== null ? navigableChidren.indexOf(activeChild) : -1;
3465
+ if (parent.activeChild === null) {
3466
+ this.#setActiveFirstDeepChild(navigableChidren[0]);
3467
+ currActiveChildIndex = 0;
3468
+ return;
3469
+ }
3470
+ if (focusOption === FocusOption.NEXT_ITEM) {
3471
+ activeChild = this.#getNextItem(currActiveChildIndex, navigableChidren);
3472
+ }
3473
+ else if (focusOption === FocusOption.PREVIOUS_ITEM) {
3474
+ activeChild = this.#getPreviousItem(currActiveChildIndex, navigableChidren);
3475
+ }
3476
+ if (activeChild !== null) {
3477
+ this.#setActiveFirstDeepChild(activeChild);
3478
+ }
3472
3479
  }
3473
- if (activeChild !== null) {
3474
- this.#setActiveFirstDeepChild(activeChild);
3480
+ finally {
3481
+ this._ruleEngine.setDependencyTracking(dependencyTracking);
3475
3482
  }
3476
3483
  }
3477
3484
  getState(forRestore = false) {
@@ -3681,6 +3688,7 @@ class RuleEngine {
3681
3688
  ];
3682
3689
  customFunctions;
3683
3690
  debugInfo = [];
3691
+ dependencyTracking = true;
3684
3692
  constructor() {
3685
3693
  this.customFunctions = FunctionRuntime.getFunctions();
3686
3694
  }
@@ -3715,10 +3723,16 @@ class RuleEngine {
3715
3723
  return finalRes;
3716
3724
  }
3717
3725
  trackDependency(subscriber) {
3718
- if (this._context && this._context.field !== undefined && this._context.field !== subscriber) {
3726
+ if (this.dependencyTracking && this._context && this._context.field !== undefined && this._context.field !== subscriber) {
3719
3727
  subscriber._addDependent(this._context.field);
3720
3728
  }
3721
3729
  }
3730
+ setDependencyTracking(track) {
3731
+ this.dependencyTracking = track;
3732
+ }
3733
+ getDependencyTracking() {
3734
+ return this.dependencyTracking;
3735
+ }
3722
3736
  }
3723
3737
 
3724
3738
  class Fieldset extends Container {
@@ -3873,6 +3887,9 @@ class Field extends Scriptable {
3873
3887
  if (['plain-text', 'image'].indexOf(this.fieldType) === -1) {
3874
3888
  this._jsonModel.value = undefined;
3875
3889
  }
3890
+ else if (this.fieldType === 'image') {
3891
+ this._jsonModel.value = this._jsonModel.properties['fd:repoPath'] ?? this._jsonModel.value;
3892
+ }
3876
3893
  else {
3877
3894
  this._jsonModel.default = this._jsonModel.default || this._jsonModel.value;
3878
3895
  }
@@ -4764,14 +4781,21 @@ class DateField extends Field {
4764
4781
  this._jsonModel.placeholder = parseDateSkeleton(this._jsonModel.editFormat, this.locale);
4765
4782
  }
4766
4783
  }
4784
+ #convertNumberToDate(value) {
4785
+ const coercedValue = numberToDatetime(value);
4786
+ if (!isNaN(coercedValue)) {
4787
+ return formatDate(coercedValue, this.locale, this._dataFormat);
4788
+ }
4789
+ return null;
4790
+ }
4767
4791
  get value() {
4768
4792
  return super.value;
4769
4793
  }
4770
4794
  set value(value) {
4771
4795
  if (typeof value === 'number') {
4772
- const coercedValue = numberToDatetime(value);
4773
- if (!isNaN(coercedValue)) {
4774
- super.value = formatDate(coercedValue, this.locale, this._dataFormat);
4796
+ const coercedValue = this.#convertNumberToDate(value);
4797
+ if (coercedValue) {
4798
+ super.value = coercedValue;
4775
4799
  }
4776
4800
  }
4777
4801
  else {
@@ -4789,6 +4813,34 @@ class DateField extends Field {
4789
4813
  }
4790
4814
  }
4791
4815
  }
4816
+ get minimum() {
4817
+ return super.minimum;
4818
+ }
4819
+ set minimum(value) {
4820
+ if (typeof value === 'number') {
4821
+ const coercedValue = this.#convertNumberToDate(value);
4822
+ if (coercedValue) {
4823
+ super.minimum = coercedValue;
4824
+ }
4825
+ }
4826
+ else if (typeof value === 'string') {
4827
+ super.minimum = value;
4828
+ }
4829
+ }
4830
+ get maximum() {
4831
+ return super.maximum;
4832
+ }
4833
+ set maximum(value) {
4834
+ if (typeof value === 'number') {
4835
+ const coercedValue = this.#convertNumberToDate(value);
4836
+ if (coercedValue) {
4837
+ super.maximum = coercedValue;
4838
+ }
4839
+ }
4840
+ else if (typeof value === 'string') {
4841
+ super.maximum = value;
4842
+ }
4843
+ }
4792
4844
  }
4793
4845
 
4794
4846
  class EmailInput extends Field {
@@ -99,17 +99,17 @@ declare class Checkbox extends Field {
99
99
  enum?: any[] | undefined;
100
100
  accept?: string[] | undefined;
101
101
  enforceEnum?: boolean | undefined;
102
- exclusiveMinimum?: number | undefined;
103
- exclusiveMaximum?: number | undefined;
102
+ exclusiveMinimum?: string | number | undefined;
103
+ exclusiveMaximum?: string | number | undefined;
104
104
  format?: string | undefined;
105
105
  maxFileSize?: string | number | undefined;
106
106
  maxLength?: number | undefined;
107
- maximum?: number | undefined;
107
+ maximum?: string | number | undefined;
108
108
  maxItems?: number | undefined;
109
109
  minOccur?: number | undefined;
110
110
  maxOccur?: number | undefined;
111
111
  minLength?: number | undefined;
112
- minimum?: number | undefined;
112
+ minimum?: string | number | undefined;
113
113
  minItems?: number | undefined;
114
114
  pattern?: string | undefined;
115
115
  required?: boolean | undefined;
@@ -1,9 +1,14 @@
1
1
  import Field from './Field';
2
2
  declare class DateField extends Field {
3
+ #private;
3
4
  private locale?;
4
5
  private _dataFormat;
5
6
  protected _applyDefaults(): void;
6
7
  get value(): any;
7
8
  set value(value: any);
9
+ get minimum(): string | number | undefined;
10
+ set minimum(value: string | number | undefined);
11
+ get maximum(): string | number | undefined;
12
+ set maximum(value: string | number | undefined);
8
13
  }
9
14
  export default DateField;
@@ -44,10 +44,10 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
44
44
  set enumNames(e: string[] | undefined);
45
45
  get required(): boolean;
46
46
  set required(r: boolean);
47
- get maximum(): number | undefined;
48
- set maximum(m: number | undefined);
49
- get minimum(): number | undefined;
50
- set minimum(m: number | undefined);
47
+ get maximum(): string | number | undefined;
48
+ set maximum(m: string | number | undefined);
49
+ get minimum(): string | number | undefined;
50
+ set minimum(m: string | number | undefined);
51
51
  private withCategory;
52
52
  get editValue(): any;
53
53
  get displayValue(): any;
@@ -142,10 +142,10 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
142
142
  get minLength(): number | undefined;
143
143
  get pattern(): string | undefined;
144
144
  get step(): number | undefined;
145
- get exclusiveMinimum(): number | undefined;
146
- set exclusiveMinimum(eM: number | undefined);
147
- get exclusiveMaximum(): number | undefined;
148
- set exclusiveMaximum(eM: number | undefined);
145
+ get exclusiveMinimum(): string | number | undefined;
146
+ set exclusiveMinimum(eM: string | number | undefined);
147
+ get exclusiveMaximum(): string | number | undefined;
148
+ set exclusiveMaximum(eM: string | number | undefined);
149
149
  get default(): any;
150
150
  private isNotEmpty;
151
151
  protected evaluateConstraints(): any;
@@ -167,17 +167,17 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
167
167
  enum?: any[] | undefined;
168
168
  accept?: string[] | undefined;
169
169
  enforceEnum?: boolean | undefined;
170
- exclusiveMinimum?: number | undefined;
171
- exclusiveMaximum?: number | undefined;
170
+ exclusiveMinimum?: string | number | undefined;
171
+ exclusiveMaximum?: string | number | undefined;
172
172
  format?: string | undefined;
173
173
  maxFileSize?: string | number | undefined;
174
174
  maxLength?: number | undefined;
175
- maximum?: number | undefined;
175
+ maximum?: string | number | undefined;
176
176
  maxItems?: number | undefined;
177
177
  minOccur?: number | undefined;
178
178
  maxOccur?: number | undefined;
179
179
  minLength?: number | undefined;
180
- minimum?: number | undefined;
180
+ minimum?: string | number | undefined;
181
181
  minItems?: number | undefined;
182
182
  pattern?: string | undefined;
183
183
  required?: boolean | undefined;
@@ -46,17 +46,17 @@ declare class Form extends Container<FormJson> implements FormModel {
46
46
  } & {
47
47
  accept?: string[] | undefined;
48
48
  enforceEnum?: boolean | undefined;
49
- exclusiveMinimum?: number | undefined;
50
- exclusiveMaximum?: number | undefined;
49
+ exclusiveMinimum?: string | number | undefined;
50
+ exclusiveMaximum?: string | number | undefined;
51
51
  format?: string | undefined;
52
52
  maxFileSize?: string | number | undefined;
53
53
  maxLength?: number | undefined;
54
- maximum?: number | undefined;
54
+ maximum?: string | number | undefined;
55
55
  maxItems?: number | undefined;
56
56
  minOccur?: number | undefined;
57
57
  maxOccur?: number | undefined;
58
58
  minLength?: number | undefined;
59
- minimum?: number | undefined;
59
+ minimum?: string | number | undefined;
60
60
  minItems?: number | undefined;
61
61
  pattern?: string | undefined;
62
62
  required?: boolean | undefined;
@@ -5,6 +5,7 @@ declare class RuleEngine {
5
5
  private _globalNames;
6
6
  private readonly customFunctions;
7
7
  private debugInfo;
8
+ private dependencyTracking;
8
9
  constructor();
9
10
  compileRule(rule: string, locale?: string): {
10
11
  formula: Formula;
@@ -12,5 +13,7 @@ declare class RuleEngine {
12
13
  };
13
14
  execute(node: any, data: any, globals: any, useValueOf: boolean | undefined, eString: string): any;
14
15
  trackDependency(subscriber: BaseModel): void;
16
+ setDependencyTracking(track: boolean): void;
17
+ getDependencyTracking(): boolean;
15
18
  }
16
19
  export default RuleEngine;
@@ -15,17 +15,17 @@ type TranslationConstraintsJson = {
15
15
  export type ConstraintsJson = TranslationConstraintsJson & {
16
16
  accept?: string[];
17
17
  enforceEnum?: boolean;
18
- exclusiveMinimum?: number;
19
- exclusiveMaximum?: number;
18
+ exclusiveMinimum?: number | string;
19
+ exclusiveMaximum?: number | string;
20
20
  format?: string;
21
21
  maxFileSize?: number | string;
22
22
  maxLength?: number;
23
- maximum?: number;
23
+ maximum?: number | string;
24
24
  maxItems?: number;
25
25
  minOccur?: number;
26
26
  maxOccur?: number;
27
27
  minLength?: number;
28
- minimum?: number;
28
+ minimum?: number | string;
29
29
  minItems?: number;
30
30
  pattern?: string;
31
31
  required?: boolean;
package/lib/Checkbox.d.ts CHANGED
@@ -99,17 +99,17 @@ declare class Checkbox extends Field {
99
99
  enum?: any[] | undefined;
100
100
  accept?: string[] | undefined;
101
101
  enforceEnum?: boolean | undefined;
102
- exclusiveMinimum?: number | undefined;
103
- exclusiveMaximum?: number | undefined;
102
+ exclusiveMinimum?: string | number | undefined;
103
+ exclusiveMaximum?: string | number | undefined;
104
104
  format?: string | undefined;
105
105
  maxFileSize?: string | number | undefined;
106
106
  maxLength?: number | undefined;
107
- maximum?: number | undefined;
107
+ maximum?: string | number | undefined;
108
108
  maxItems?: number | undefined;
109
109
  minOccur?: number | undefined;
110
110
  maxOccur?: number | undefined;
111
111
  minLength?: number | undefined;
112
- minimum?: number | undefined;
112
+ minimum?: string | number | undefined;
113
113
  minItems?: number | undefined;
114
114
  pattern?: string | undefined;
115
115
  required?: boolean | undefined;
@@ -1,9 +1,14 @@
1
1
  import Field from './Field';
2
2
  declare class DateField extends Field {
3
+ #private;
3
4
  private locale?;
4
5
  private _dataFormat;
5
6
  protected _applyDefaults(): void;
6
7
  get value(): any;
7
8
  set value(value: any);
9
+ get minimum(): string | number | undefined;
10
+ set minimum(value: string | number | undefined);
11
+ get maximum(): string | number | undefined;
12
+ set maximum(value: string | number | undefined);
8
13
  }
9
14
  export default DateField;
package/lib/DateField.js CHANGED
@@ -1,13 +1,20 @@
1
1
  "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
2
7
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
8
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
9
  };
10
+ var _DateField_instances, _DateField_convertNumberToDate;
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  const Field_1 = __importDefault(require("./Field"));
7
13
  const af_formatters_1 = require("@aemforms/af-formatters");
8
14
  class DateField extends Field_1.default {
9
15
  constructor() {
10
16
  super(...arguments);
17
+ _DateField_instances.add(this);
11
18
  this._dataFormat = 'yyyy-MM-dd';
12
19
  }
13
20
  _applyDefaults() {
@@ -28,9 +35,9 @@ class DateField extends Field_1.default {
28
35
  }
29
36
  set value(value) {
30
37
  if (typeof value === 'number') {
31
- const coercedValue = (0, af_formatters_1.numberToDatetime)(value);
32
- if (!isNaN(coercedValue)) {
33
- super.value = (0, af_formatters_1.formatDate)(coercedValue, this.locale, this._dataFormat);
38
+ const coercedValue = __classPrivateFieldGet(this, _DateField_instances, "m", _DateField_convertNumberToDate).call(this, value);
39
+ if (coercedValue) {
40
+ super.value = coercedValue;
34
41
  }
35
42
  }
36
43
  else {
@@ -48,5 +55,40 @@ class DateField extends Field_1.default {
48
55
  }
49
56
  }
50
57
  }
58
+ get minimum() {
59
+ return super.minimum;
60
+ }
61
+ set minimum(value) {
62
+ if (typeof value === 'number') {
63
+ const coercedValue = __classPrivateFieldGet(this, _DateField_instances, "m", _DateField_convertNumberToDate).call(this, value);
64
+ if (coercedValue) {
65
+ super.minimum = coercedValue;
66
+ }
67
+ }
68
+ else if (typeof value === 'string') {
69
+ super.minimum = value;
70
+ }
71
+ }
72
+ get maximum() {
73
+ return super.maximum;
74
+ }
75
+ set maximum(value) {
76
+ if (typeof value === 'number') {
77
+ const coercedValue = __classPrivateFieldGet(this, _DateField_instances, "m", _DateField_convertNumberToDate).call(this, value);
78
+ if (coercedValue) {
79
+ super.maximum = coercedValue;
80
+ }
81
+ }
82
+ else if (typeof value === 'string') {
83
+ super.maximum = value;
84
+ }
85
+ }
51
86
  }
87
+ _DateField_instances = new WeakSet(), _DateField_convertNumberToDate = function _DateField_convertNumberToDate(value) {
88
+ const coercedValue = (0, af_formatters_1.numberToDatetime)(value);
89
+ if (!isNaN(coercedValue)) {
90
+ return (0, af_formatters_1.formatDate)(coercedValue, this.locale, this._dataFormat);
91
+ }
92
+ return null;
93
+ };
52
94
  exports.default = DateField;
package/lib/Field.d.ts CHANGED
@@ -44,10 +44,10 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
44
44
  set enumNames(e: string[] | undefined);
45
45
  get required(): boolean;
46
46
  set required(r: boolean);
47
- get maximum(): number | undefined;
48
- set maximum(m: number | undefined);
49
- get minimum(): number | undefined;
50
- set minimum(m: number | undefined);
47
+ get maximum(): string | number | undefined;
48
+ set maximum(m: string | number | undefined);
49
+ get minimum(): string | number | undefined;
50
+ set minimum(m: string | number | undefined);
51
51
  private withCategory;
52
52
  get editValue(): any;
53
53
  get displayValue(): any;
@@ -142,10 +142,10 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
142
142
  get minLength(): number | undefined;
143
143
  get pattern(): string | undefined;
144
144
  get step(): number | undefined;
145
- get exclusiveMinimum(): number | undefined;
146
- set exclusiveMinimum(eM: number | undefined);
147
- get exclusiveMaximum(): number | undefined;
148
- set exclusiveMaximum(eM: number | undefined);
145
+ get exclusiveMinimum(): string | number | undefined;
146
+ set exclusiveMinimum(eM: string | number | undefined);
147
+ get exclusiveMaximum(): string | number | undefined;
148
+ set exclusiveMaximum(eM: string | number | undefined);
149
149
  get default(): any;
150
150
  private isNotEmpty;
151
151
  protected evaluateConstraints(): any;
@@ -167,17 +167,17 @@ declare class Field extends Scriptable<FieldJson> implements FieldModel {
167
167
  enum?: any[] | undefined;
168
168
  accept?: string[] | undefined;
169
169
  enforceEnum?: boolean | undefined;
170
- exclusiveMinimum?: number | undefined;
171
- exclusiveMaximum?: number | undefined;
170
+ exclusiveMinimum?: string | number | undefined;
171
+ exclusiveMaximum?: string | number | undefined;
172
172
  format?: string | undefined;
173
173
  maxFileSize?: string | number | undefined;
174
174
  maxLength?: number | undefined;
175
- maximum?: number | undefined;
175
+ maximum?: string | number | undefined;
176
176
  maxItems?: number | undefined;
177
177
  minOccur?: number | undefined;
178
178
  maxOccur?: number | undefined;
179
179
  minLength?: number | undefined;
180
- minimum?: number | undefined;
180
+ minimum?: string | number | undefined;
181
181
  minItems?: number | undefined;
182
182
  pattern?: string | undefined;
183
183
  required?: boolean | undefined;
package/lib/Field.js CHANGED
@@ -100,6 +100,7 @@ class Field extends Scriptable_1.default {
100
100
  return finalType;
101
101
  }
102
102
  _applyDefaults() {
103
+ var _a;
103
104
  super._applyDefaultsInModel();
104
105
  this.coerceParam('required', 'boolean');
105
106
  this.coerceParam('readOnly', 'boolean');
@@ -111,6 +112,9 @@ class Field extends Scriptable_1.default {
111
112
  if (['plain-text', 'image'].indexOf(this.fieldType) === -1) {
112
113
  this._jsonModel.value = undefined;
113
114
  }
115
+ else if (this.fieldType === 'image') {
116
+ this._jsonModel.value = (_a = this._jsonModel.properties['fd:repoPath']) !== null && _a !== void 0 ? _a : this._jsonModel.value;
117
+ }
114
118
  else {
115
119
  this._jsonModel.default = this._jsonModel.default || this._jsonModel.value;
116
120
  }
package/lib/Form.d.ts CHANGED
@@ -46,17 +46,17 @@ declare class Form extends Container<FormJson> implements FormModel {
46
46
  } & {
47
47
  accept?: string[] | undefined;
48
48
  enforceEnum?: boolean | undefined;
49
- exclusiveMinimum?: number | undefined;
50
- exclusiveMaximum?: number | undefined;
49
+ exclusiveMinimum?: string | number | undefined;
50
+ exclusiveMaximum?: string | number | undefined;
51
51
  format?: string | undefined;
52
52
  maxFileSize?: string | number | undefined;
53
53
  maxLength?: number | undefined;
54
- maximum?: number | undefined;
54
+ maximum?: string | number | undefined;
55
55
  maxItems?: number | undefined;
56
56
  minOccur?: number | undefined;
57
57
  maxOccur?: number | undefined;
58
58
  minLength?: number | undefined;
59
- minimum?: number | undefined;
59
+ minimum?: string | number | undefined;
60
60
  minItems?: number | undefined;
61
61
  pattern?: string | undefined;
62
62
  required?: boolean | undefined;
package/lib/Form.js CHANGED
@@ -166,28 +166,35 @@ class Form extends Container_1.default {
166
166
  return new SubmitMetaData_1.default(options);
167
167
  }
168
168
  setFocus(field, focusOption) {
169
- if (!focusOption) {
170
- __classPrivateFieldGet(this, _Form_instances, "m", _Form_clearCurrentFocus).call(this, field);
171
- __classPrivateFieldGet(this, _Form_instances, "m", _Form_setActiveFirstDeepChild).call(this, field);
172
- return;
173
- }
174
- const parent = ((field === null || field === void 0 ? void 0 : field.isContainer) ? field : field.parent);
175
- const navigableChidren = __classPrivateFieldGet(this, _Form_instances, "m", _Form_getNavigableChildren).call(this, parent.items);
176
- let activeChild = parent.activeChild;
177
- let currActiveChildIndex = activeChild !== null ? navigableChidren.indexOf(activeChild) : -1;
178
- if (parent.activeChild === null) {
179
- __classPrivateFieldGet(this, _Form_instances, "m", _Form_setActiveFirstDeepChild).call(this, navigableChidren[0]);
180
- currActiveChildIndex = 0;
181
- return;
182
- }
183
- if (focusOption === index_1.FocusOption.NEXT_ITEM) {
184
- activeChild = __classPrivateFieldGet(this, _Form_instances, "m", _Form_getNextItem).call(this, currActiveChildIndex, navigableChidren);
185
- }
186
- else if (focusOption === index_1.FocusOption.PREVIOUS_ITEM) {
187
- activeChild = __classPrivateFieldGet(this, _Form_instances, "m", _Form_getPreviousItem).call(this, currActiveChildIndex, navigableChidren);
169
+ const dependencyTracking = this._ruleEngine.getDependencyTracking();
170
+ this._ruleEngine.setDependencyTracking(false);
171
+ try {
172
+ if (!focusOption) {
173
+ __classPrivateFieldGet(this, _Form_instances, "m", _Form_clearCurrentFocus).call(this, field);
174
+ __classPrivateFieldGet(this, _Form_instances, "m", _Form_setActiveFirstDeepChild).call(this, field);
175
+ return;
176
+ }
177
+ const parent = ((field === null || field === void 0 ? void 0 : field.isContainer) ? field : field.parent);
178
+ const navigableChidren = __classPrivateFieldGet(this, _Form_instances, "m", _Form_getNavigableChildren).call(this, parent.items);
179
+ let activeChild = parent.activeChild;
180
+ let currActiveChildIndex = activeChild !== null ? navigableChidren.indexOf(activeChild) : -1;
181
+ if (parent.activeChild === null) {
182
+ __classPrivateFieldGet(this, _Form_instances, "m", _Form_setActiveFirstDeepChild).call(this, navigableChidren[0]);
183
+ currActiveChildIndex = 0;
184
+ return;
185
+ }
186
+ if (focusOption === index_1.FocusOption.NEXT_ITEM) {
187
+ activeChild = __classPrivateFieldGet(this, _Form_instances, "m", _Form_getNextItem).call(this, currActiveChildIndex, navigableChidren);
188
+ }
189
+ else if (focusOption === index_1.FocusOption.PREVIOUS_ITEM) {
190
+ activeChild = __classPrivateFieldGet(this, _Form_instances, "m", _Form_getPreviousItem).call(this, currActiveChildIndex, navigableChidren);
191
+ }
192
+ if (activeChild !== null) {
193
+ __classPrivateFieldGet(this, _Form_instances, "m", _Form_setActiveFirstDeepChild).call(this, activeChild);
194
+ }
188
195
  }
189
- if (activeChild !== null) {
190
- __classPrivateFieldGet(this, _Form_instances, "m", _Form_setActiveFirstDeepChild).call(this, activeChild);
196
+ finally {
197
+ this._ruleEngine.setDependencyTracking(dependencyTracking);
191
198
  }
192
199
  }
193
200
  getState(forRestore = false) {
@@ -5,6 +5,7 @@ declare class RuleEngine {
5
5
  private _globalNames;
6
6
  private readonly customFunctions;
7
7
  private debugInfo;
8
+ private dependencyTracking;
8
9
  constructor();
9
10
  compileRule(rule: string, locale?: string): {
10
11
  formula: Formula;
@@ -12,5 +13,7 @@ declare class RuleEngine {
12
13
  };
13
14
  execute(node: any, data: any, globals: any, useValueOf: boolean | undefined, eString: string): any;
14
15
  trackDependency(subscriber: BaseModel): void;
16
+ setDependencyTracking(track: boolean): void;
17
+ getDependencyTracking(): boolean;
15
18
  }
16
19
  export default RuleEngine;
@@ -21,6 +21,7 @@ class RuleEngine {
21
21
  '$event'
22
22
  ];
23
23
  this.debugInfo = [];
24
+ this.dependencyTracking = true;
24
25
  this.customFunctions = FunctionRuntime_1.FunctionRuntime.getFunctions();
25
26
  }
26
27
  compileRule(rule, locale) {
@@ -55,9 +56,15 @@ class RuleEngine {
55
56
  return finalRes;
56
57
  }
57
58
  trackDependency(subscriber) {
58
- if (this._context && this._context.field !== undefined && this._context.field !== subscriber) {
59
+ if (this.dependencyTracking && this._context && this._context.field !== undefined && this._context.field !== subscriber) {
59
60
  subscriber._addDependent(this._context.field);
60
61
  }
61
62
  }
63
+ setDependencyTracking(track) {
64
+ this.dependencyTracking = track;
65
+ }
66
+ getDependencyTracking() {
67
+ return this.dependencyTracking;
68
+ }
62
69
  }
63
70
  exports.default = RuleEngine;
@@ -15,17 +15,17 @@ declare type TranslationConstraintsJson = {
15
15
  export declare type ConstraintsJson = TranslationConstraintsJson & {
16
16
  accept?: string[];
17
17
  enforceEnum?: boolean;
18
- exclusiveMinimum?: number;
19
- exclusiveMaximum?: number;
18
+ exclusiveMinimum?: number | string;
19
+ exclusiveMaximum?: number | string;
20
20
  format?: string;
21
21
  maxFileSize?: number | string;
22
22
  maxLength?: number;
23
- maximum?: number;
23
+ maximum?: number | string;
24
24
  maxItems?: number;
25
25
  minOccur?: number;
26
26
  maxOccur?: number;
27
27
  minLength?: number;
28
- minimum?: number;
28
+ minimum?: number | string;
29
29
  minItems?: number;
30
30
  pattern?: string;
31
31
  required?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aemforms/af-core",
3
- "version": "0.22.117",
3
+ "version": "0.22.119",
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.117"
40
+ "@aemforms/af-formatters": "^0.22.119"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@babel/preset-env": "^7.20.2",