neo.mjs 5.3.10 → 5.3.12

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.
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='5.3.10'
23
+ * @member {String} version='5.3.12'
24
24
  */
25
- version: '5.3.10'
25
+ version: '5.3.12'
26
26
  }
27
27
 
28
28
  /**
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='5.3.10'
23
+ * @member {String} version='5.3.12'
24
24
  */
25
- version: '5.3.10'
25
+ version: '5.3.12'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "5.3.10",
3
+ "version": "5.3.12",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -237,12 +237,12 @@ const DefaultConfig = {
237
237
  useVdomWorker: true,
238
238
  /**
239
239
  * buildScripts/injectPackageVersion.mjs will update this value
240
- * @default '5.3.10'
240
+ * @default '5.3.12'
241
241
  * @memberOf! module:Neo
242
242
  * @name config.version
243
243
  * @type String
244
244
  */
245
- version: '5.3.10'
245
+ version: '5.3.12'
246
246
  };
247
247
 
248
248
  Object.assign(DefaultConfig, {
package/src/Neo.mjs CHANGED
@@ -660,7 +660,7 @@ function autoGenerateGetSet(proto, key) {
660
660
  * @param {Boolean} create
661
661
  * @param {Object} current
662
662
  * @param {Object} prev
663
- * @returns {Object}
663
+ * @returns {Object|undefined}
664
664
  */
665
665
  function createArrayNs(create, current, prev) {
666
666
  let arrDetails = parseArrayFromString(current),
@@ -674,6 +674,10 @@ function createArrayNs(create, current, prev) {
674
674
  arrRoot = prev[arrDetails[0]];
675
675
  }
676
676
 
677
+ if (!arrRoot) {
678
+ return;
679
+ }
680
+
677
681
  for (; i < len; i++) {
678
682
  arrItem = parseInt(arrDetails[i]);
679
683
 
@@ -115,7 +115,9 @@ class Observable extends Base {
115
115
  if (eventConfig.scope && !eventConfig.scope.id) {
116
116
  listeners[name].splice(i, 1);
117
117
  } else {
118
- eventConfig.fn.apply(eventConfig.scope || me, eventConfig.data ? args.concat(eventConfig.data) : args);
118
+ if (!me.suspendEvents) {
119
+ eventConfig.fn.apply(eventConfig.scope || me, eventConfig.data ? args.concat(eventConfig.data) : args);
120
+ }
119
121
  }
120
122
  }
121
123
  }
@@ -180,31 +180,33 @@ class Container extends BaseContainer {
180
180
  * @param {Object} [values]
181
181
  */
182
182
  async reset(values={}) {
183
- let keys = values ? Object.keys(values) : [],
184
- fields = await this.getFields(),
185
- index;
183
+ let me = this,
184
+ fields = await me.getFields(),
185
+ path, value;
186
186
 
187
187
  fields.forEach(item => {
188
- index = keys.indexOf(item.name);
189
-
190
- if (index < 0) {
191
- index = keys.indexOf(item.id);
192
- }
188
+ path = me.getFieldPath(item);
189
+ value = Neo.nsWithArrays(path, false, values);
193
190
 
194
- item.reset(index > -1 ? values[keys[index]] : null);
191
+ item.reset(path ? value : null);
195
192
  })
196
193
  }
197
194
 
198
195
  /**
199
196
  * Set field values by field name or field id
200
197
  * @param {Object} values={}
198
+ * @param {Boolean} suspendEvents=false
201
199
  */
202
- async setValues(values={}) {
200
+ async setValues(values={}, suspendEvents=false) {
203
201
  let me = this,
204
202
  fields = await me.getFields(),
205
203
  isRadio, path, value;
206
204
 
207
205
  fields.forEach(item => {
206
+ if (suspendEvents) {
207
+ item.suspendEvents = true;
208
+ }
209
+
208
210
  path = me.getFieldPath(item);
209
211
  value = Neo.nsWithArrays(path, false, values);
210
212
 
@@ -217,13 +219,15 @@ class Container extends BaseContainer {
217
219
  isRadio = Neo.form.field?.Radio && item instanceof Neo.form.field.Radio;
218
220
 
219
221
  if (isRadio) {
220
- if (item.value === value) {
221
- item.checked = true;
222
- }
222
+ item.checked = item.value === value;
223
223
  } else {
224
224
  item.value = value;
225
225
  }
226
226
  }
227
+
228
+ if (suspendEvents) {
229
+ delete item.suspendEvents;
230
+ }
227
231
  })
228
232
  }
229
233
 
@@ -1253,7 +1253,7 @@ class Text extends Base {
1253
1253
  NeoArray[!isValid ? 'add' : 'remove'](cls, 'neo-invalid');
1254
1254
  me[silent ? '_cls' : 'cls'] = cls;
1255
1255
 
1256
- errorNode = VDomUtil.findVdomChild(this.vdom, {cls: 'neo-textfield-error'}).vdom;
1256
+ errorNode = VDomUtil.findVdomChild(me.vdom, {cls: 'neo-textfield-error'}).vdom;
1257
1257
 
1258
1258
  if (!isValid) {
1259
1259
  errorNode.html = me.error;