neo.mjs 5.13.9 → 5.13.10

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.13.9'
23
+ * @member {String} version='5.13.10'
24
24
  */
25
- version: '5.13.9'
25
+ version: '5.13.10'
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.13.9'
23
+ * @member {String} version='5.13.10'
24
24
  */
25
- version: '5.13.9'
25
+ version: '5.13.10'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "5.13.9",
3
+ "version": "5.13.10",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -273,6 +273,7 @@
273
273
  border-color : transparent;
274
274
  margin : 0; // important for Safari => #1125
275
275
  padding-left : 16px;
276
+ position : relative; // overwriting the browser default static, to ensure the z-index gets applied
276
277
  z-index : 1;
277
278
  }
278
279
 
@@ -245,12 +245,12 @@ const DefaultConfig = {
245
245
  useVdomWorker: true,
246
246
  /**
247
247
  * buildScripts/injectPackageVersion.mjs will update this value
248
- * @default '5.13.9'
248
+ * @default '5.13.10'
249
249
  * @memberOf! module:Neo
250
250
  * @name config.version
251
251
  * @type String
252
252
  */
253
- version: '5.13.9'
253
+ version: '5.13.10'
254
254
  };
255
255
 
256
256
  Object.assign(DefaultConfig, {
@@ -1596,7 +1596,7 @@ class Base extends CoreBase {
1596
1596
  }
1597
1597
 
1598
1598
  return new Promise((resolve, reject) => {
1599
- if (me.mounted) {
1599
+ if (me.mounted && me.vnode) {
1600
1600
  me.updateVdom(vdom, vnode, resolve, reject);
1601
1601
  } else {
1602
1602
  me.update();
@@ -1837,22 +1837,24 @@ class Base extends CoreBase {
1837
1837
 
1838
1838
  // keep the vnode parent tree in sync
1839
1839
  ComponentManager.getParents(me).forEach((component, index) => {
1840
- if (!me.vnode) {
1841
- if (index === 0 && !VNodeUtil.removeChildVnode(component.vnode, me.id)) {
1842
- // This can fail, in case the vnode is already removed (not an issue, better safe than sorry)
1843
- // console.warn('syncVnodeTree: Could not remove the parent vnode for', me.id, component);
1840
+ if (component.vnode) {
1841
+ if (!me.vnode) {
1842
+ if (index === 0 && !VNodeUtil.removeChildVnode(component.vnode, me.id)) {
1843
+ // This can fail, in case the vnode is already removed (not an issue, better safe than sorry)
1844
+ // console.warn('syncVnodeTree: Could not remove the parent vnode for', me.id, component);
1845
+ }
1844
1846
  }
1845
- }
1846
1847
 
1847
- // check for dynamically rendered components which get inserted into the component tree
1848
- else if (index === 0 && me.vnode.outerHTML) {
1849
- // console.log('dyn item', me.vnode, me.parentIndex);
1850
- component.vnode.childNodes.splice(me.parentIndex || 0, 0, me.vnode);
1851
- }
1848
+ // check for dynamically rendered components which get inserted into the component tree
1849
+ else if (index === 0 && me.vnode.outerHTML) {
1850
+ // console.log('dyn item', me.vnode, me.parentIndex);
1851
+ component.vnode.childNodes.splice(me.parentIndex || 0, 0, me.vnode);
1852
+ }
1852
1853
 
1853
- else if (!VNodeUtil.replaceChildVnode(component.vnode, me.vnode.id, me.vnode)) {
1854
- // todo: can happen for dynamically inserted container items
1855
- // console.warn('syncVnodeTree: Could not replace the parent vnode for', me.vnode.id, component);
1854
+ else if (!VNodeUtil.replaceChildVnode(component.vnode, me.vnode.id, me.vnode)) {
1855
+ // todo: can happen for dynamically inserted container items
1856
+ // console.warn('syncVnodeTree: Could not replace the parent vnode for', me.vnode.id, component);
1857
+ }
1856
1858
  }
1857
1859
  });
1858
1860
 
@@ -2024,18 +2026,21 @@ class Base extends CoreBase {
2024
2026
 
2025
2027
  reject?.()
2026
2028
  }).then(data => {
2027
- // console.log('Component vnode updated', data);
2028
- me.vnode = data.vnode;
2029
- me.isVdomUpdating = false;
2030
-
2031
- deltas = data.deltas;
2032
-
2033
- if (!Neo.config.useVdomWorker && deltas.length > 0) {
2034
- Neo.applyDeltas(me.appName, deltas).then(() => {
2029
+ // checking if the component got destroyed before the update cycle is done
2030
+ if (me.id) {
2031
+ // console.log('Component vnode updated', data);
2032
+ me.vnode = data.vnode;
2033
+ me.isVdomUpdating = false;
2034
+
2035
+ deltas = data.deltas;
2036
+
2037
+ if (!Neo.config.useVdomWorker && deltas.length > 0) {
2038
+ Neo.applyDeltas(me.appName, deltas).then(() => {
2039
+ me.resolveVdomUpdate(resolve)
2040
+ });
2041
+ } else {
2035
2042
  me.resolveVdomUpdate(resolve)
2036
- });
2037
- } else {
2038
- me.resolveVdomUpdate(resolve)
2043
+ }
2039
2044
  }
2040
2045
  })
2041
2046
  }