nativescript-vue 3.0.2 → 3.1.0

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.
Files changed (68) hide show
  1. package/README.md +37 -2
  2. package/devtools.js +100 -24
  3. package/dist/components/ActionBar.js +1 -1
  4. package/dist/components/ActionBar.js.map +1 -1
  5. package/dist/components/ListView.d.ts +9 -3
  6. package/dist/components/ListView.js +46 -14
  7. package/dist/components/ListView.js.map +1 -1
  8. package/dist/components/Platform.d.ts +8 -0
  9. package/dist/components/Platform.js +15 -0
  10. package/dist/components/Platform.js.map +1 -0
  11. package/dist/components/index.d.ts +16 -5
  12. package/dist/components/index.js +4 -1
  13. package/dist/components/index.js.map +1 -1
  14. package/dist/directives/vShow.js.map +1 -1
  15. package/dist/dom/index.d.ts +14 -1
  16. package/dist/dom/index.js +58 -19
  17. package/dist/dom/index.js.map +1 -1
  18. package/dist/index.d.ts +6 -2
  19. package/dist/index.js +52 -6
  20. package/dist/index.js.map +1 -1
  21. package/dist/nativescript/elements.js +61 -43
  22. package/dist/nativescript/elements.js.map +1 -1
  23. package/dist/nativescript/index.js.map +1 -1
  24. package/dist/plugins/modals.d.ts +4 -1
  25. package/dist/plugins/modals.js +85 -15
  26. package/dist/plugins/modals.js.map +1 -1
  27. package/dist/plugins/navigation.d.ts +7 -2
  28. package/dist/plugins/navigation.js +45 -7
  29. package/dist/plugins/navigation.js.map +1 -1
  30. package/dist/registry/index.js.map +1 -1
  31. package/dist/renderer/index.js.map +1 -1
  32. package/dist/renderer/modules/attrs.js +27 -8
  33. package/dist/renderer/modules/attrs.js.map +1 -1
  34. package/dist/renderer/modules/class.js.map +1 -1
  35. package/dist/renderer/modules/events.js +0 -1
  36. package/dist/renderer/modules/events.js.map +1 -1
  37. package/dist/renderer/modules/style.js +13 -16
  38. package/dist/renderer/modules/style.js.map +1 -1
  39. package/dist/renderer/nodeOps.js.map +1 -1
  40. package/dist/renderer/patchProp.js +38 -16
  41. package/dist/renderer/patchProp.js.map +1 -1
  42. package/dist/renderer/runtimeDomOverrides.d.ts +11 -0
  43. package/dist/renderer/runtimeDomOverrides.js +23 -0
  44. package/dist/renderer/runtimeDomOverrides.js.map +1 -1
  45. package/dist/runtimeHelpers.d.ts +12 -1
  46. package/dist/runtimeHelpers.js +27 -3
  47. package/dist/runtimeHelpers.js.map +1 -1
  48. package/dist/util/logger.js.map +1 -1
  49. package/nativescript.webpack.js +199 -54
  50. package/package.json +49 -20
  51. package/dist/compiler-sfc/index.d.ts +0 -1
  52. package/dist/compiler-sfc/index.js +0 -2
  53. package/dist/compiler-sfc/index.js.map +0 -1
  54. package/dist/compiler.d.ts +0 -4
  55. package/dist/compiler.js +0 -32
  56. package/dist/compiler.js.map +0 -1
  57. package/dist/directives/vModel.d.ts +0 -8
  58. package/dist/directives/vModel.js +0 -38
  59. package/dist/directives/vModel.js.map +0 -1
  60. package/dist/plugins/templates.d.ts +0 -10
  61. package/dist/plugins/templates.js +0 -12
  62. package/dist/plugins/templates.js.map +0 -1
  63. package/dist/types.d.ts +0 -15
  64. package/dist/types.js +0 -2
  65. package/dist/types.js.map +0 -1
  66. package/dist/withCompiler.d.ts +0 -3
  67. package/dist/withCompiler.js +0 -6
  68. package/dist/withCompiler.js.map +0 -1
package/dist/dom/index.js CHANGED
@@ -28,9 +28,10 @@ export class NSVNode {
28
28
  if (!this.parentNode) {
29
29
  return null;
30
30
  }
31
- const selfIndex = this.parentNode.childNodes.findIndex((n) => n.nodeId === this.nodeId);
32
- if (selfIndex > -1 && selfIndex < this.parentNode.childNodes.length - 1) {
33
- return this.parentNode.childNodes[selfIndex + 1];
31
+ const siblings = this.parentNode.childNodes;
32
+ const selfIndex = siblings.indexOf(this);
33
+ if (selfIndex > -1 && selfIndex < siblings.length - 1) {
34
+ return siblings[selfIndex + 1];
34
35
  }
35
36
  return null;
36
37
  }
@@ -38,9 +39,10 @@ export class NSVNode {
38
39
  if (!this.parentNode) {
39
40
  return null;
40
41
  }
41
- const selfIndex = this.parentNode.childNodes.findIndex((n) => n.nodeId === this.nodeId);
42
+ const siblings = this.parentNode.childNodes;
43
+ const selfIndex = siblings.indexOf(this);
42
44
  if (selfIndex > 0) {
43
- return this.parentNode.childNodes[selfIndex - 1];
45
+ return siblings[selfIndex - 1];
44
46
  }
45
47
  return null;
46
48
  }
@@ -138,34 +140,36 @@ export class NSVElement extends NSVNode {
138
140
  // unset(this.nativeView, name)
139
141
  }
140
142
  insertBefore(el, anchor) {
141
- if (!anchor) {
143
+ if (!anchor || anchor === el) {
142
144
  return this.appendChild(el);
143
145
  }
144
- const refIndex = this.childNodes.findIndex((node) => node.nodeId === anchor.nodeId);
146
+ // Detach before locating the anchor: when el is already a child of this
147
+ // node and sits before the anchor, removing it shifts the anchor's index.
148
+ el.parentNode?.removeChild(el);
149
+ const refIndex = this.childNodes.indexOf(anchor);
145
150
  if (refIndex === -1) {
146
151
  return this.appendChild(el);
147
152
  }
148
- if (el.parentNode) {
149
- el.parentNode.removeChild(el);
150
- }
151
153
  this.childNodes.splice(refIndex, 0, el);
152
154
  el.parentNode = this;
153
- // find index to use for the native view, since non-visual nodes
154
- // (comment/text don't exist in the native view hierarchy)
155
- // todo: potentially refactor based on my benchmark:
156
- // https://www.measurethat.net/Benchmarks/Show/7450/0/filter-findindex
157
- const trueIndex = this.childNodes
158
- .filter((node) => node.nodeType === "element" /* NSVNodeTypes.ELEMENT */)
159
- .findIndex((node) => node.nodeId === el.nodeId);
155
+ // comment/text nodes don't exist in the native view hierarchy, so the
156
+ // native index only counts the element nodes preceding el
157
+ let trueIndex = 0;
158
+ for (let i = 0; i < refIndex; i++) {
159
+ if (this.childNodes[i].nodeType === "element" /* NSVNodeTypes.ELEMENT */) {
160
+ trueIndex++;
161
+ }
162
+ }
160
163
  this.addChild(el, trueIndex);
161
164
  }
162
165
  appendChild(el) {
166
+ el.parentNode?.removeChild(el);
163
167
  this.childNodes.push(el);
164
168
  el.parentNode = this;
165
169
  this.addChild(el);
166
170
  }
167
171
  removeChild(el) {
168
- const index = this.childNodes.findIndex((node) => node.nodeId === el.nodeId);
172
+ const index = this.childNodes.indexOf(el);
169
173
  if (index > -1) {
170
174
  this.childNodes.splice(index, 1);
171
175
  el.parentNode = null;
@@ -221,8 +225,8 @@ export class NSVRoot extends NSVNode {
221
225
  // no-op
222
226
  }
223
227
  removeChild(el) {
224
- // console.log('NSVRoot->removeCchild()');
225
228
  if (el === this.el) {
229
+ el.parentNode = null;
226
230
  this.el = null;
227
231
  }
228
232
  }
@@ -233,6 +237,41 @@ export class NSVRoot extends NSVNode {
233
237
  return this.appendChild(el);
234
238
  }
235
239
  }
240
+ /**
241
+ * Parks nodes outside the visual tree, as KeepAlive does with deactivated
242
+ * subtrees. Children keep their place in the node tree so anchors and
243
+ * siblings still resolve, but nothing is added to a native parent: a view
244
+ * moved in here is simply detached until it is moved back out.
245
+ */
246
+ export class NSVDetachedContainer extends NSVNode {
247
+ constructor() {
248
+ super("detached" /* NSVNodeTypes.DETACHED */);
249
+ }
250
+ appendChild(el) {
251
+ el.parentNode?.removeChild(el);
252
+ this.childNodes.push(el);
253
+ el.parentNode = this;
254
+ }
255
+ insertBefore(el, anchor) {
256
+ if (!anchor || anchor === el) {
257
+ return this.appendChild(el);
258
+ }
259
+ el.parentNode?.removeChild(el);
260
+ const refIndex = this.childNodes.indexOf(anchor);
261
+ if (refIndex === -1) {
262
+ return this.appendChild(el);
263
+ }
264
+ this.childNodes.splice(refIndex, 0, el);
265
+ el.parentNode = this;
266
+ }
267
+ removeChild(el) {
268
+ const index = this.childNodes.indexOf(el);
269
+ if (index > -1) {
270
+ this.childNodes.splice(index, 1);
271
+ el.parentNode = null;
272
+ }
273
+ }
274
+ }
236
275
  function addChild(child, parent, atIndex) {
237
276
  if (__TEST__)
238
277
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dom/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { markRaw } from '@vue/runtime-core';\nimport {\n getViewClass,\n getViewMeta,\n normalizeElementName,\n NSVViewMeta,\n} from '../registry';\nimport { ELEMENT_REF } from '../runtimeHelpers';\nimport setValue from 'set-value';\n// import unset from 'unset-value'\n\nconst __TEST__ = false;\n\nexport const enum NSVNodeTypes {\n TEXT = 'text',\n ELEMENT = 'element',\n COMMENT = 'comment',\n ROOT = 'root',\n DETACHED = 'detached',\n}\n\n// View Flags indicate the kind of view the element is\n// this avoids extra checks during runtime to determine\n// the method to use for adding/removing child nodes\nexport const enum NSVViewFlags {\n NONE = 0,\n SKIP_ADD_TO_DOM = 1 << 0,\n CONTENT_VIEW = 1 << 1,\n LAYOUT_VIEW = 1 << 2,\n NO_CHILDREN = 1 << 3,\n}\n\nlet nodeId = 0;\n\nexport abstract class NSVNode {\n protected constructor(nodeType: NSVNodeTypes) {\n this.nodeType = nodeType;\n this.nodeId = nodeId++;\n }\n\n nodeId: number;\n nodeType: NSVNodeTypes;\n\n private _text?: string | undefined;\n public get text(): string | undefined {\n return this._text;\n }\n public set text(value: string | undefined) {\n this._text = value;\n\n if (this.parentNode?.nodeType === NSVNodeTypes.ELEMENT) {\n this.parentNode.updateText();\n }\n }\n\n parentNode: NSVElement | null = null;\n childNodes: NSVNode[] = [];\n\n get nextSibling(): NSVNode | null {\n if (!this.parentNode) {\n return null;\n }\n\n const siblings = this.parentNode.childNodes;\n const selfIndex = siblings.indexOf(this);\n\n if (selfIndex > -1 && selfIndex < siblings.length - 1) {\n return siblings[selfIndex + 1];\n }\n\n return null;\n }\n\n get prevSibling(): NSVNode | null {\n if (!this.parentNode) {\n return null;\n }\n\n const siblings = this.parentNode.childNodes;\n const selfIndex = siblings.indexOf(this);\n\n if (selfIndex > 0) {\n return siblings[selfIndex - 1];\n }\n\n return null;\n }\n\n get firstChild() {\n return this.childNodes.length ? this.childNodes[0] : null;\n }\n\n get lastChild() {\n return this.childNodes.length\n ? this.childNodes[this.childNodes.length - 1]\n : null;\n }\n}\n\nexport class NSVElement extends NSVNode {\n private readonly _tagName: string;\n private readonly _nativeView: any;\n private _meta: NSVViewMeta | undefined;\n private _attributeOriginalValue: Map<string, unknown> = new Map();\n\n constructor(tagName: string) {\n super(NSVNodeTypes.ELEMENT);\n\n this._tagName = normalizeElementName(tagName);\n const viewClass = getViewClass(tagName);\n this._nativeView = markRaw(new viewClass());\n this._nativeView[ELEMENT_REF] = this;\n }\n\n get tagName(): string {\n return this._tagName;\n }\n\n get nativeView() {\n return this._nativeView;\n }\n\n get style(): any | string {\n return this.nativeView.style;\n }\n\n set style(inlineStyle: any | string) {\n this.nativeView.style = inlineStyle;\n }\n\n get text(): string | undefined {\n return this.nativeView.text;\n }\n\n set text(t: string | undefined) {\n this.nativeView.text = t;\n }\n\n get meta() {\n if (this._meta) {\n return this._meta;\n }\n\n return (this._meta = getViewMeta(this.tagName));\n }\n\n addEventListener(\n event: string,\n handler: any,\n options: AddEventListenerOptions = {},\n ) {\n const { capture, once } = options;\n if (capture) {\n // debug(\"Bubble propagation is not supported\");\n }\n if (once) {\n const oldHandler = handler;\n const self = this;\n handler = (...args: any) => {\n oldHandler.call(null, ...args);\n self.removeEventListener(event, handler);\n };\n }\n\n this.nativeView.addEventListener(event, handler);\n }\n\n removeEventListener(event: string, handler?: any) {\n this.nativeView.removeEventListener(event, handler);\n }\n\n dispatchEvent(event: string) {\n this.nativeView.notify({ eventName: event, object: this.nativeView });\n }\n\n getAttribute(name: string): unknown {\n return this.nativeView[name];\n }\n\n setAttribute(name: string, value: unknown) {\n if (!this._attributeOriginalValue.has(name)) {\n this._attributeOriginalValue.set(name, this.nativeView[name]);\n }\n // this.nativeView[name] = value;\n setValue(this.nativeView, name, value);\n }\n\n removeAttribute(name: string) {\n // only remove attributes that we have set previously\n if (this._attributeOriginalValue.has(name)) {\n const originalValue = this._attributeOriginalValue.get(name);\n this._attributeOriginalValue.delete(name);\n\n // this.nativeView[name] = originalValue;\n setValue(this.nativeView, name, originalValue);\n }\n\n // potential issue: unsetValue is an empty object\n // not all properties/attributes may know/check for this\n // set(this.nativeView, name, unsetValue);\n // originally we deleted the property, but in case of built-in properties\n // this would break them. For example, deleting the padding property\n // will prevent us from changing the padding once we deleted it\n // that's not the expected behaviour.\n // unset(this.nativeView, name)\n }\n\n insertBefore(el: NSVNode, anchor?: NSVNode | null) {\n if (!anchor || anchor === el) {\n return this.appendChild(el);\n }\n\n // Detach before locating the anchor: when el is already a child of this\n // node and sits before the anchor, removing it shifts the anchor's index.\n el.parentNode?.removeChild(el);\n\n const refIndex = this.childNodes.indexOf(anchor);\n\n if (refIndex === -1) {\n return this.appendChild(el);\n }\n\n this.childNodes.splice(refIndex, 0, el);\n el.parentNode = this;\n\n // comment/text nodes don't exist in the native view hierarchy, so the\n // native index only counts the element nodes preceding el\n let trueIndex = 0;\n for (let i = 0; i < refIndex; i++) {\n if (this.childNodes[i].nodeType === NSVNodeTypes.ELEMENT) {\n trueIndex++;\n }\n }\n\n this.addChild(el, trueIndex);\n }\n\n appendChild(el: NSVNode) {\n el.parentNode?.removeChild(el);\n\n this.childNodes.push(el);\n el.parentNode = this;\n\n this.addChild(el);\n }\n\n removeChild(el: NSVNode) {\n const index = this.childNodes.indexOf(el);\n\n if (index > -1) {\n this.childNodes.splice(index, 1);\n el.parentNode = null;\n if (el.nodeType === NSVNodeTypes.ELEMENT) {\n removeChild(el as NSVElement, this);\n } else if (el.nodeType === NSVNodeTypes.TEXT) {\n this.updateText();\n }\n }\n }\n\n // abstracted from appendChild, and insertBefore to avoid code duplication\n private addChild(el: NSVNode, atIndex?: number): void {\n if (el.nodeType === NSVNodeTypes.ELEMENT) {\n addChild(el as NSVElement, this, atIndex);\n } else if (el.nodeType === NSVNodeTypes.TEXT) {\n this.updateText();\n }\n }\n\n updateText() {\n this.setAttribute(\n 'text',\n this.childNodes.reduce((text: string, currentNode) => {\n if (currentNode.nodeType !== NSVNodeTypes.TEXT) {\n return text;\n }\n return text + currentNode.text;\n }, ''),\n );\n }\n}\n\nexport class NSVComment extends NSVNode {\n constructor(text: string) {\n super(NSVNodeTypes.COMMENT);\n\n this.text = text;\n }\n}\n\nexport class NSVText extends NSVNode {\n constructor(text: string) {\n super(NSVNodeTypes.TEXT);\n\n this.text = text;\n }\n}\n\nexport class NSVRoot extends NSVNode {\n el?: NSVElement;\n\n constructor() {\n super(NSVNodeTypes.ROOT);\n }\n\n appendChild(el: NSVNode) {\n // console.log(`NSVRoot->appendChild(${el.nodeType})`)\n if (el instanceof NSVElement) {\n el.parentNode = this as any;\n this.el = el;\n }\n // no-op\n }\n\n removeChild(el: NSVNode) {\n if (el === this.el) {\n el.parentNode = null;\n this.el = null;\n }\n }\n\n insertBefore(el: NSVNode, anchor?: NSVNode | null) {\n // console.error(\n // \"insertBefore called on NSVRoot - root element must contain a single child.\"\n // );\n return this.appendChild(el);\n }\n}\n\n/**\n * Parks nodes outside the visual tree, as KeepAlive does with deactivated\n * subtrees. Children keep their place in the node tree so anchors and\n * siblings still resolve, but nothing is added to a native parent: a view\n * moved in here is simply detached until it is moved back out.\n */\nexport class NSVDetachedContainer extends NSVNode {\n constructor() {\n super(NSVNodeTypes.DETACHED);\n }\n\n appendChild(el: NSVNode) {\n el.parentNode?.removeChild(el);\n\n this.childNodes.push(el);\n el.parentNode = this as any;\n }\n\n insertBefore(el: NSVNode, anchor?: NSVNode | null) {\n if (!anchor || anchor === el) {\n return this.appendChild(el);\n }\n\n el.parentNode?.removeChild(el);\n\n const refIndex = this.childNodes.indexOf(anchor);\n\n if (refIndex === -1) {\n return this.appendChild(el);\n }\n\n this.childNodes.splice(refIndex, 0, el);\n el.parentNode = this as any;\n }\n\n removeChild(el: NSVNode) {\n const index = this.childNodes.indexOf(el);\n\n if (index > -1) {\n this.childNodes.splice(index, 1);\n el.parentNode = null;\n }\n }\n}\n\nfunction addChild(child: NSVElement, parent: NSVElement, atIndex?: number) {\n if (__TEST__) return;\n // debug(\n // `...addChild( ${child.tagName}(${child.nodeId}), ${parent.tagName}(${\n // parent.nodeId\n // }), ${atIndex} )`\n // )\n if (child.meta.viewFlags & NSVViewFlags.SKIP_ADD_TO_DOM) {\n // debug('SKIP_ADD_TO_DOM')\n return;\n }\n\n const parentView = parent.nativeView;\n const childView = child.nativeView;\n\n if (parent.meta.viewFlags & NSVViewFlags.NO_CHILDREN) {\n // debug('NO_CHILDREN')\n return;\n }\n if (parent.meta.nodeOps) {\n return parent.meta.nodeOps.insert(child, parent, atIndex);\n }\n\n if (parent.meta.viewFlags & NSVViewFlags.LAYOUT_VIEW) {\n if (typeof atIndex === 'number') {\n parentView.insertChild(childView, atIndex);\n } else {\n parentView.addChild(childView);\n }\n } else if (parent.meta.viewFlags & NSVViewFlags.CONTENT_VIEW) {\n parentView.content = childView;\n } else {\n parentView._addChildFromBuilder(childView.constructor.name, childView);\n }\n}\n\nfunction removeChild(child: NSVElement, parent: NSVElement) {\n if (__TEST__) return;\n // debug(\n // `...removeChild( ${child.tagName}(${child.nodeId}), ${parent.tagName}(${\n // parent.nodeId\n // }) )`\n // )\n\n if (child.meta.viewFlags & NSVViewFlags.SKIP_ADD_TO_DOM) {\n // debug('SKIP_ADD_TO_DOM')\n return;\n }\n if (parent.meta.viewFlags & NSVViewFlags.NO_CHILDREN) {\n // debug('NO_CHILDREN')\n return;\n }\n if (parent.meta.nodeOps) {\n return parent.meta.nodeOps.remove(child, parent);\n }\n\n const parentView = parent.nativeView;\n const childView = child.nativeView;\n\n if (parent.meta.viewFlags & NSVViewFlags.LAYOUT_VIEW) {\n parentView.removeChild(childView);\n } else if (parent.meta.viewFlags & NSVViewFlags.CONTENT_VIEW) {\n parentView.content = null;\n } else {\n parentView._removeView(childView);\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -8,17 +8,21 @@ declare module '@vue/runtime-core' {
8
8
  mount(rootContainer?: NSVRoot | string, isHydrate?: boolean, isSVG?: boolean): ComponentPublicInstance;
9
9
  registerElement: typeof registerElement;
10
10
  }
11
+ interface AppContext {
12
+ /** Set by runtime-core in development; re-renders the root vnode. */
13
+ reload?(): void;
14
+ }
11
15
  }
12
16
  export * from './components';
13
17
  export * from './dom';
14
18
  export * from './registry';
15
19
  export * from './renderer';
16
- export { createNativeView, ELEMENT_REF } from './runtimeHelpers';
20
+ export { createNativeView, ELEMENT_REF, isOn } from './runtimeHelpers';
17
21
  export * from '@vue/runtime-core';
18
22
  export { vShow } from './directives/vShow';
19
23
  export { $closeModal, $showModal } from './plugins/modals';
20
24
  export { $navigateBack, $navigateTo } from './plugins/navigation';
21
- export * from './renderer/runtimeDomOverrides';
25
+ export { KeepAlive, TransitionGroup } from './renderer/runtimeDomOverrides';
22
26
  export declare const render: import("@vue/runtime-core").RootRenderFunction<import("@vue/runtime-core").RendererElement>;
23
27
  export declare const createApp: CreateAppFunction<NSVElement>;
24
28
  export declare function resolveComponent(name: string, maybeSelReference: boolean): any;
package/dist/index.js CHANGED
@@ -1,23 +1,25 @@
1
+ import { Frame } from '@nativescript/core';
1
2
  import { createBlock as createBlockCore, createElementBlock as createElementBlockCore, createElementVNode as createElementVNodeCore, createVNode as createVNodeCore, resolveComponent as resolveComponentCore, } from '@vue/runtime-core';
2
3
  import { BUILT_IN_COMPONENTS } from './components';
3
- import { NSVRoot } from './dom';
4
+ import { NSVElement, NSVRoot } from './dom';
4
5
  import { init, resetRoot, startApp } from './nativescript';
5
6
  import { renderer } from './renderer';
6
- import { install as modalsPlugin } from './plugins/modals';
7
+ import { hasOpenModals, install as modalsPlugin } from './plugins/modals';
7
8
  import { install as navigationPlugin } from './plugins/navigation';
8
9
  import { isKnownView, registerElement } from './registry';
9
- import { setRootApp } from './runtimeHelpers';
10
+ import { ELEMENT_REF, nameForDevtools, setRootApp } from './runtimeHelpers';
11
+ import { logger } from './util/logger';
10
12
  init();
11
13
  export * from './components';
12
14
  export * from './dom';
13
15
  export * from './registry';
14
16
  export * from './renderer';
15
- export { createNativeView, ELEMENT_REF } from './runtimeHelpers';
17
+ export { createNativeView, ELEMENT_REF, isOn } from './runtimeHelpers';
16
18
  export * from '@vue/runtime-core';
17
19
  export { vShow } from './directives/vShow';
18
20
  export { $closeModal, $showModal } from './plugins/modals';
19
21
  export { $navigateBack, $navigateTo } from './plugins/navigation';
20
- export * from './renderer/runtimeDomOverrides';
22
+ export { KeepAlive, TransitionGroup } from './renderer/runtimeDomOverrides';
21
23
  // creates a special root container that calls resetRoot whenever it's children change
22
24
  function createAppRoot() {
23
25
  const defaultRoot = new NSVRoot();
@@ -38,8 +40,47 @@ function createAppRoot() {
38
40
  };
39
41
  return defaultRoot;
40
42
  }
43
+ /**
44
+ * Vue's own root reload re-renders the root vnode, which remounts the root
45
+ * component and, through createAppRoot, replaces the app's root view: every
46
+ * navigated page and open modal is lost. While the user is away from the
47
+ * root page, re-render the root in place instead. Only the template is
48
+ * refreshed that way; a changed <script> needs the full remount, which
49
+ * happens the next time the root reloads with nothing on top of it.
50
+ */
51
+ function keepPlaceOnRootReload(app) {
52
+ const remount = app._context.reload;
53
+ app._context.reload = () => {
54
+ const instance = app._instance;
55
+ if (!instance || !isAwayFromRootPage()) {
56
+ return remount?.();
57
+ }
58
+ instance.render = instance.type.render ?? instance.render;
59
+ instance.update();
60
+ logger.warn(`[HMR] Root component re-rendered in place to keep the current page ` +
61
+ `and modals. Changes to its <script> apply after a restart, or once ` +
62
+ `you return to the root page and it reloads again.`);
63
+ };
64
+ }
65
+ function isAwayFromRootPage() {
66
+ if (hasOpenModals()) {
67
+ return true;
68
+ }
69
+ const frame = Frame.topmost();
70
+ if (!frame) {
71
+ return false;
72
+ }
73
+ if (frame.backStack.length > 0) {
74
+ return true;
75
+ }
76
+ // pages rendered by the root app live under a <Frame> element; pages
77
+ // from $navigateTo are mounted into a detached root
78
+ const current = frame.currentPage?.[ELEMENT_REF];
79
+ return !!current && !(current.parentNode instanceof NSVElement);
80
+ }
41
81
  export const render = renderer.render;
42
82
  export const createApp = ((...args) => {
83
+ nameForDevtools(args[0]);
43
84
  const app = renderer.createApp(...args);
44
85
  const { mount } = app;
45
86
  app.registerElement = registerElement;
@@ -50,9 +91,14 @@ export const createApp = ((...args) => {
50
91
  return mount(...args);
51
92
  };
52
93
  app.start = () => {
94
+ // mounted hooks run synchronously inside mount, and $navigateTo/$showModal
95
+ // called from them need the root app context
96
+ setRootApp(app);
53
97
  const componentInstance = app.mount(createAppRoot(), false, false);
54
98
  startApp(componentInstance);
55
- setRootApp(app);
99
+ if (__DEV__) {
100
+ keepPlaceOnRootReload(app);
101
+ }
56
102
  return componentInstance;
57
103
  };
58
104
  app.use(modalsPlugin);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,WAAW,IAAI,eAAe,EAC9B,kBAAkB,IAAI,sBAAsB,EAC5C,kBAAkB,IAAI,sBAAsB,EAC5C,WAAW,IAAI,eAAe,EAC9B,gBAAgB,IAAI,oBAAoB,GACzC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAkBvC,IAAI,EAAE,CAAC;AAEP,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEvE,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAE5E,sFAAsF;AACtF,SAAS,aAAa;IACpB,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE,CAAC;IAElC,kDAAkD;IAClD,8DAA8D;IAC9D,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE9D,WAAW,CAAC,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE;QAC/B,WAAW,CAAC,EAAE,CAAC,CAAC;QAEhB,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC,CAAC;IAEF,WAAW,CAAC,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE;QAC/B,WAAW,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,eAAe,EAAE,CAAC;YACpB,SAAS,CAAE,EAAiB,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,GAAQ;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;IAEpC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;QACzB,MAAM,QAAQ,GAAI,GAAW,CAAC,SAAS,CAAC;QAExC,IAAI,CAAC,QAAQ,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACvC,OAAO,OAAO,EAAE,EAAE,CAAC;QACrB,CAAC;QAED,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CACT,qEAAqE;YACnE,qEAAqE;YACrE,mDAAmD,CACtD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,aAAa,EAAE,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,oDAAoD;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,WAAW,CAA2B,CAAC;IAC3E,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,YAAY,UAAU,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE;IACpC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAEtB,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC;IAEtC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAA8B,EAAE,EAAE;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE;QACf,2EAA2E;QAC3E,6CAA6C;QAC7C,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhB,MAAM,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAEnE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAE5B,IAAI,OAAO,EAAE,CAAC;YACZ,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACtB,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE1B,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAChD,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QAEzE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAkC,CAAC;AAEpC,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,iBAA0B;IACvE,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAChE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,sCAAsC,CAAC,IAAS;IACvD,MAAM,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC;IAChD,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAI,gBAAmB;IACxC,OAAO,CAAC,CAAC,IAAS,EAAE,GAAG,IAAS,EAAE,EAAE;QAClC,OAAQ,gBAAwB,CAC9B,sCAAsC,CAAC,IAAI,CAAC,EAC5C,GAAG,IAAI,CACR,CAAC;IACJ,CAAC,CAAM,CAAC;AACV,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,WAAW,GAA2B,UAAU,CAAC,eAAe,CAAC,CAAC","sourcesContent":["import type { App, CreateAppFunction } from '@vue/runtime-core';\nimport { Frame } from '@nativescript/core';\nimport {\n createBlock as createBlockCore,\n createElementBlock as createElementBlockCore,\n createElementVNode as createElementVNodeCore,\n createVNode as createVNodeCore,\n resolveComponent as resolveComponentCore,\n} from '@vue/runtime-core';\n\nimport { BUILT_IN_COMPONENTS } from './components';\n\nimport { NSVElement, NSVRoot } from './dom';\nimport { init, resetRoot, startApp } from './nativescript';\nimport { renderer } from './renderer';\n\nimport { hasOpenModals, install as modalsPlugin } from './plugins/modals';\nimport { install as navigationPlugin } from './plugins/navigation';\nimport { isKnownView, registerElement } from './registry';\nimport { ELEMENT_REF, nameForDevtools, setRootApp } from './runtimeHelpers';\nimport { logger } from './util/logger';\n\ndeclare module '@vue/runtime-core' {\n interface App {\n start(): ComponentPublicInstance | undefined;\n mount(\n rootContainer?: NSVRoot | string,\n isHydrate?: boolean,\n isSVG?: boolean,\n ): ComponentPublicInstance;\n registerElement: typeof registerElement;\n }\n interface AppContext {\n /** Set by runtime-core in development; re-renders the root vnode. */\n reload?(): void;\n }\n}\n\ninit();\n\nexport * from './components';\nexport * from './dom';\nexport * from './registry';\nexport * from './renderer';\nexport { createNativeView, ELEMENT_REF, isOn } from './runtimeHelpers';\n\nexport * from '@vue/runtime-core';\nexport { vShow } from './directives/vShow';\nexport { $closeModal, $showModal } from './plugins/modals';\nexport { $navigateBack, $navigateTo } from './plugins/navigation';\nexport { KeepAlive, TransitionGroup } from './renderer/runtimeDomOverrides';\n\n// creates a special root container that calls resetRoot whenever it's children change\nfunction createAppRoot() {\n const defaultRoot = new NSVRoot();\n\n // flag to indicate when we need to call resetRoot\n // usually happens when the root component is re-mounted (HMR)\n let shouldResetRoot = false;\n\n const appendChild = defaultRoot.appendChild.bind(defaultRoot);\n const removeChild = defaultRoot.removeChild.bind(defaultRoot);\n\n defaultRoot.removeChild = (el) => {\n removeChild(el);\n\n shouldResetRoot = true;\n };\n\n defaultRoot.appendChild = (el) => {\n appendChild(el);\n\n if (shouldResetRoot) {\n resetRoot((el as NSVElement).nativeView);\n }\n };\n\n return defaultRoot;\n}\n\n/**\n * Vue's own root reload re-renders the root vnode, which remounts the root\n * component and, through createAppRoot, replaces the app's root view: every\n * navigated page and open modal is lost. While the user is away from the\n * root page, re-render the root in place instead. Only the template is\n * refreshed that way; a changed <script> needs the full remount, which\n * happens the next time the root reloads with nothing on top of it.\n */\nfunction keepPlaceOnRootReload(app: App) {\n const remount = app._context.reload;\n\n app._context.reload = () => {\n const instance = (app as any)._instance;\n\n if (!instance || !isAwayFromRootPage()) {\n return remount?.();\n }\n\n instance.render = instance.type.render ?? instance.render;\n instance.update();\n logger.warn(\n `[HMR] Root component re-rendered in place to keep the current page ` +\n `and modals. Changes to its <script> apply after a restart, or once ` +\n `you return to the root page and it reloads again.`,\n );\n };\n}\n\nfunction isAwayFromRootPage() {\n if (hasOpenModals()) {\n return true;\n }\n\n const frame = Frame.topmost();\n if (!frame) {\n return false;\n }\n if (frame.backStack.length > 0) {\n return true;\n }\n\n // pages rendered by the root app live under a <Frame> element; pages\n // from $navigateTo are mounted into a detached root\n const current = frame.currentPage?.[ELEMENT_REF] as NSVElement | undefined;\n return !!current && !(current.parentNode instanceof NSVElement);\n}\n\nexport const render = renderer.render;\nexport const createApp = ((...args) => {\n nameForDevtools(args[0]);\n const app = renderer.createApp(...args);\n const { mount } = app;\n\n app.registerElement = registerElement;\n\n app.mount = (...args: Parameters<typeof mount>) => {\n if (!args.length) {\n return mount(new NSVRoot(), false, false);\n }\n return mount(...args);\n };\n\n app.start = () => {\n // mounted hooks run synchronously inside mount, and $navigateTo/$showModal\n // called from them need the root app context\n setRootApp(app);\n\n const componentInstance = app.mount(createAppRoot(), false, false);\n\n startApp(componentInstance);\n\n if (__DEV__) {\n keepPlaceOnRootReload(app);\n }\n\n return componentInstance;\n };\n\n app.use(modalsPlugin);\n app.use(navigationPlugin);\n\n app.config.errorHandler = (err, instance, info) => {\n console.error((info ? `Error during execution of ${info}: ` : ``) + err);\n\n if (__DEV__) {\n throw err;\n }\n };\n\n return app;\n}) as CreateAppFunction<NSVElement>;\n\nexport function resolveComponent(name: string, maybeSelReference: boolean) {\n if (BUILT_IN_COMPONENTS[name]) {\n return BUILT_IN_COMPONENTS[name];\n }\n\n if (isKnownView(name)) {\n return name;\n }\n\n const component = resolveComponentCore(name, maybeSelReference);\n return component;\n}\n\n/**\n * Checks if the type has a constructor.name that matches a known view or built-in component\n * If so, returns the name of the view or component. This allows {N} element imports to be\n * used inside script setup context without requiring aliasing.\n */\nfunction maybeConvertToKnownComponentOrViewName(type: any) {\n const name = type?.prototype?.constructor?.name;\n if (name) {\n if (BUILT_IN_COMPONENTS[name]) {\n return BUILT_IN_COMPONENTS[name];\n }\n\n if (isKnownView(name)) {\n return name;\n }\n }\n\n return type;\n}\n\n/**\n * Wraps the original function and replaces the first argument if it matches\n * a known view or built-in component.\n */\nfunction wrapCreate<T>(originalFunction: T): T {\n return ((type: any, ...args: any) => {\n return (originalFunction as any)(\n maybeConvertToKnownComponentOrViewName(type),\n ...args,\n );\n }) as T;\n}\n\nexport const createBlock = wrapCreate(createBlockCore);\nexport const createElementBlock = wrapCreate(createElementBlockCore);\nexport const createElementVNode = wrapCreate(createElementVNodeCore);\nexport const createVNode: typeof createVNodeCore = wrapCreate(createVNodeCore);\n"]}
@@ -1,33 +1,42 @@
1
+ import * as NSCore from '@nativescript/core';
1
2
  import { Page as NSCPage, TabViewItem as NSCTabViewItem, } from '@nativescript/core';
2
3
  import { registerElement } from '../registry';
3
4
  import { logger } from '../util/logger';
4
5
  export function registerCoreElements() {
5
6
  // layouts
6
- registerElement('AbsoluteLayout', () => require('@nativescript/core').AbsoluteLayout, { viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */ });
7
- registerElement('DockLayout', () => require('@nativescript/core').DockLayout, {
7
+ registerElement('AbsoluteLayout', () => NSCore.AbsoluteLayout, {
8
8
  viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
9
9
  });
10
- registerElement('FlexboxLayout', () => require('@nativescript/core').FlexboxLayout, { viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */ });
11
- registerElement('GridLayout', () => require('@nativescript/core').GridLayout, {
10
+ registerElement('DockLayout', () => NSCore.DockLayout, {
12
11
  viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
13
12
  });
14
- registerElement('RootLayout', () => require('@nativescript/core').RootLayout, {
13
+ registerElement('FlexboxLayout', () => NSCore.FlexboxLayout, {
15
14
  viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
16
15
  });
17
- registerElement('StackLayout', () => require('@nativescript/core').StackLayout, { viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */ });
18
- registerElement('WrapLayout', () => require('@nativescript/core').WrapLayout, {
16
+ registerElement('GridLayout', () => NSCore.GridLayout, {
17
+ viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
18
+ });
19
+ registerElement('RootLayout', () => NSCore.RootLayout, {
20
+ viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
21
+ });
22
+ registerElement('StackLayout', () => NSCore.StackLayout, {
23
+ viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
24
+ });
25
+ registerElement('WrapLayout', () => NSCore.WrapLayout, {
19
26
  viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
20
27
  });
21
28
  // ContentViews
22
- registerElement('ContentView', () => require('@nativescript/core').ContentView, { viewFlags: 2 /* NSVViewFlags.CONTENT_VIEW */ });
23
- registerElement('ScrollView', () => require('@nativescript/core').ScrollView, {
29
+ registerElement('ContentView', () => NSCore.ContentView, {
30
+ viewFlags: 2 /* NSVViewFlags.CONTENT_VIEW */,
31
+ });
32
+ registerElement('ScrollView', () => NSCore.ScrollView, {
24
33
  viewFlags: 2 /* NSVViewFlags.CONTENT_VIEW */,
25
34
  });
26
35
  // ActionBar
27
- registerElement('ActionItem', () => require('@nativescript/core').ActionItem);
28
- registerElement('NavigationButton', () => require('@nativescript/core').NavigationButton);
36
+ registerElement('ActionItem', () => NSCore.ActionItem);
37
+ registerElement('NavigationButton', () => NSCore.NavigationButton);
29
38
  // navigation
30
- registerElement('Frame', () => require('@nativescript/core').Frame, {
39
+ registerElement('Frame', () => NSCore.Frame, {
31
40
  // todo: move into Frame.ts when we end up creating a component for Frame
32
41
  nodeOps: {
33
42
  insert(child, parent, atIndex) {
@@ -47,30 +56,38 @@ export function registerCoreElements() {
47
56
  }
48
57
  },
49
58
  remove(child, parent) {
50
- // ignore? warn? throw? navigate back?
51
- // console.log("REMOVE CHILD FROM FRAME", child);
59
+ // a Page removed by Vue stays on the native backstack; navigation
60
+ // out of a Frame is only driven through $navigateBack / frame APIs
61
+ if (__DEV__) {
62
+ const frame = parent.nativeView;
63
+ if (frame.currentPage === child.nativeView) {
64
+ logger.warn(`Removing the current <Page> from a <Frame> has no effect on ` +
65
+ `the native navigation stack. Use $navigateBack() or ` +
66
+ `$navigateTo() instead of v-if/v-for on <Page>.`);
67
+ }
68
+ }
52
69
  },
53
70
  },
54
71
  });
55
- registerElement('Page', () => require('@nativescript/core').Page, {
72
+ registerElement('Page', () => NSCore.Page, {
56
73
  viewFlags: 2 /* NSVViewFlags.CONTENT_VIEW */,
57
74
  });
58
75
  // html
59
- registerElement('HtmlView', () => require('@nativescript/core').HtmlView);
60
- registerElement('WebView', () => require('@nativescript/core').WebView);
76
+ registerElement('HtmlView', () => NSCore.HtmlView);
77
+ registerElement('WebView', () => NSCore.WebView);
61
78
  // components
62
- registerElement('ActivityIndicator', () => require('@nativescript/core').ActivityIndicator);
63
- registerElement('Button', () => require('@nativescript/core').Button);
64
- registerElement('DatePicker', () => require('@nativescript/core').DatePicker, {
79
+ registerElement('ActivityIndicator', () => NSCore.ActivityIndicator);
80
+ registerElement('Button', () => NSCore.Button);
81
+ registerElement('DatePicker', () => NSCore.DatePicker, {
65
82
  model: {
66
83
  prop: 'date',
67
84
  event: 'dateChange',
68
85
  },
69
86
  });
70
- registerElement('FormattedString', () => require('@nativescript/core').FormattedString, {
87
+ registerElement('FormattedString', () => NSCore.FormattedString, {
71
88
  nodeOps: {
72
89
  insert(child, parent, atIndex) {
73
- if (atIndex) {
90
+ if (typeof atIndex === 'number') {
74
91
  parent.nativeView.spans.splice(atIndex, 0, child.nativeView);
75
92
  return;
76
93
  }
@@ -84,78 +101,79 @@ export function registerCoreElements() {
84
101
  },
85
102
  },
86
103
  });
87
- registerElement('Image', () => require('@nativescript/core').Image);
88
- registerElement('Label', () => require('@nativescript/core').Label);
89
- registerElement('ListPicker', () => require('@nativescript/core').ListPicker, {
104
+ registerElement('Image', () => NSCore.Image);
105
+ registerElement('Label', () => NSCore.Label);
106
+ registerElement('ListPicker', () => NSCore.ListPicker, {
90
107
  model: {
91
108
  prop: 'selectedIndex',
92
109
  event: 'selectedIndexChange',
93
110
  },
94
111
  });
95
- registerElement('Placeholder', () => require('@nativescript/core').Placeholder);
96
- registerElement('Progress', () => require('@nativescript/core').Progress);
97
- registerElement('ProxyViewContainer', () => require('@nativescript/core').ProxyViewContainer);
98
- registerElement('SearchBar', () => require('@nativescript/core').SearchBar, {
112
+ registerElement('Placeholder', () => NSCore.Placeholder);
113
+ registerElement('Progress', () => NSCore.Progress);
114
+ registerElement('ProxyViewContainer', () => NSCore.ProxyViewContainer);
115
+ registerElement('SearchBar', () => NSCore.SearchBar, {
99
116
  model: {
100
117
  prop: 'text',
101
118
  event: 'textChange',
102
119
  },
103
120
  });
104
- registerElement('SegmentedBar', () => require('@nativescript/core').SegmentedBar, {
121
+ registerElement('SegmentedBar', () => NSCore.SegmentedBar, {
105
122
  model: {
106
123
  prop: 'selectedIndex',
107
124
  event: 'selectedIndexChange',
108
125
  },
109
126
  });
110
- registerElement('SegmentedBarItem', () => require('@nativescript/core').SegmentedBarItem);
111
- registerElement('Slider', () => require('@nativescript/core').Slider, {
127
+ registerElement('SegmentedBarItem', () => NSCore.SegmentedBarItem);
128
+ registerElement('Slider', () => NSCore.Slider, {
112
129
  model: {
113
130
  prop: 'value',
114
131
  event: 'valueChange',
115
132
  },
116
133
  });
117
- registerElement('Span', () => require('@nativescript/core').Span);
118
- registerElement('Switch', () => require('@nativescript/core').Switch, {
134
+ registerElement('Span', () => NSCore.Span);
135
+ registerElement('Switch', () => NSCore.Switch, {
119
136
  model: {
120
137
  prop: 'checked',
121
138
  event: 'checkedChange',
122
139
  },
123
140
  });
124
- registerElement('TextField', () => require('@nativescript/core').TextField, {
141
+ registerElement('TextField', () => NSCore.TextField, {
125
142
  model: {
126
143
  prop: 'text',
127
144
  event: 'textChange',
128
145
  },
129
146
  });
130
- registerElement('TextView', () => require('@nativescript/core').TextView, {
147
+ registerElement('TextView', () => NSCore.TextView, {
131
148
  model: {
132
149
  prop: 'text',
133
150
  event: 'textChange',
134
151
  },
135
152
  });
136
- registerElement('TimePicker', () => require('@nativescript/core').TimePicker, {
153
+ registerElement('TimePicker', () => NSCore.TimePicker, {
137
154
  model: {
138
155
  prop: 'time',
139
156
  event: 'timeChange',
140
157
  },
141
158
  });
142
- registerElement('TabViewItem', () => require('@nativescript/core').TabViewItem);
143
- registerElement('TabView', () => require('@nativescript/core').TabView, {
159
+ registerElement('TabViewItem', () => NSCore.TabViewItem);
160
+ registerElement('TabView', () => NSCore.TabView, {
144
161
  model: {
145
162
  prop: 'selectedIndex',
146
163
  event: 'selectedIndexChange',
147
164
  },
148
165
  nodeOps: {
149
- insert(child, parent) {
166
+ insert(child, parent, atIndex) {
150
167
  const tabView = parent.nativeView;
151
168
  if (child.nativeView instanceof NSCTabViewItem) {
152
- const items = tabView.items || [];
153
- parent.setAttribute('items', items.concat([child.nativeView]));
169
+ const items = [...(tabView.items || [])];
170
+ items.splice(atIndex ?? items.length, 0, child.nativeView);
171
+ parent.setAttribute('items', items);
154
172
  }
155
173
  },
156
174
  remove(child, parent) {
157
175
  const tabView = parent.nativeView;
158
- const items = tabView.items.filter((item) => item !== child.nativeView);
176
+ const items = (tabView.items || []).filter((item) => item !== child.nativeView);
159
177
  parent.setAttribute('items', items);
160
178
  },
161
179
  },
@@ -1 +1 @@
1
- {"version":3,"file":"elements.js","sourceRoot":"","sources":["../../src/nativescript/elements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elements.js","sourceRoot":"","sources":["../../src/nativescript/elements.ts"],"names":[],"mappings":"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","sourcesContent":["import * as NSCore from '@nativescript/core';\nimport {\n Frame as NSCFrame,\n Page as NSCPage,\n TabView as NSCTabView,\n TabViewItem as NSCTabViewItem,\n} from '@nativescript/core';\n\nimport { NSVElement, NSVViewFlags } from '../dom';\nimport { registerElement } from '../registry';\nimport { logger } from '../util/logger';\n\nexport function registerCoreElements() {\n // layouts\n registerElement('AbsoluteLayout', () => NSCore.AbsoluteLayout, {\n viewFlags: NSVViewFlags.LAYOUT_VIEW,\n });\n registerElement('DockLayout', () => NSCore.DockLayout, {\n viewFlags: NSVViewFlags.LAYOUT_VIEW,\n });\n registerElement('FlexboxLayout', () => NSCore.FlexboxLayout, {\n viewFlags: NSVViewFlags.LAYOUT_VIEW,\n });\n registerElement('GridLayout', () => NSCore.GridLayout, {\n viewFlags: NSVViewFlags.LAYOUT_VIEW,\n });\n registerElement('RootLayout', () => NSCore.RootLayout, {\n viewFlags: NSVViewFlags.LAYOUT_VIEW,\n });\n registerElement('StackLayout', () => NSCore.StackLayout, {\n viewFlags: NSVViewFlags.LAYOUT_VIEW,\n });\n registerElement('WrapLayout', () => NSCore.WrapLayout, {\n viewFlags: NSVViewFlags.LAYOUT_VIEW,\n });\n\n // ContentViews\n registerElement('ContentView', () => NSCore.ContentView, {\n viewFlags: NSVViewFlags.CONTENT_VIEW,\n });\n registerElement('ScrollView', () => NSCore.ScrollView, {\n viewFlags: NSVViewFlags.CONTENT_VIEW,\n });\n\n // ActionBar\n registerElement('ActionItem', () => NSCore.ActionItem);\n registerElement('NavigationButton', () => NSCore.NavigationButton);\n\n // navigation\n registerElement('Frame', () => NSCore.Frame, {\n // todo: move into Frame.ts when we end up creating a component for Frame\n nodeOps: {\n insert(child: NSVElement, parent: NSVElement, atIndex?: number): void {\n const frame = parent.nativeView as NSCFrame;\n if (child.nativeView instanceof NSCPage) {\n frame.navigate({\n create() {\n return child.nativeView;\n },\n });\n } else {\n if (__DEV__) {\n logger.warn(\n `<Frame> must only contain <Page> elements - ` +\n `got <${child.nativeView.constructor.name}> instead.`,\n );\n }\n }\n },\n remove(child: NSVElement, parent: NSVElement): void {\n // a Page removed by Vue stays on the native backstack; navigation\n // out of a Frame is only driven through $navigateBack / frame APIs\n if (__DEV__) {\n const frame = parent.nativeView as NSCFrame;\n if (frame.currentPage === child.nativeView) {\n logger.warn(\n `Removing the current <Page> from a <Frame> has no effect on ` +\n `the native navigation stack. Use $navigateBack() or ` +\n `$navigateTo() instead of v-if/v-for on <Page>.`,\n );\n }\n }\n },\n },\n });\n registerElement('Page', () => NSCore.Page, {\n viewFlags: NSVViewFlags.CONTENT_VIEW,\n });\n\n // html\n registerElement('HtmlView', () => NSCore.HtmlView);\n registerElement('WebView', () => NSCore.WebView);\n\n // components\n registerElement('ActivityIndicator', () => NSCore.ActivityIndicator);\n registerElement('Button', () => NSCore.Button);\n registerElement('DatePicker', () => NSCore.DatePicker, {\n model: {\n prop: 'date',\n event: 'dateChange',\n },\n });\n registerElement('FormattedString', () => NSCore.FormattedString, {\n nodeOps: {\n insert(child, parent, atIndex) {\n if (typeof atIndex === 'number') {\n parent.nativeView.spans.splice(atIndex, 0, child.nativeView);\n return;\n }\n parent.nativeView.spans.push(child.nativeView);\n },\n remove(child, parent) {\n const index = parent.nativeView.spans.indexOf(child.nativeView);\n\n if (index > -1) {\n parent.nativeView.spans.splice(index, 1);\n }\n },\n },\n });\n registerElement('Image', () => NSCore.Image);\n registerElement('Label', () => NSCore.Label);\n registerElement('ListPicker', () => NSCore.ListPicker, {\n model: {\n prop: 'selectedIndex',\n event: 'selectedIndexChange',\n },\n });\n registerElement('Placeholder', () => NSCore.Placeholder);\n registerElement('Progress', () => NSCore.Progress);\n registerElement('ProxyViewContainer', () => NSCore.ProxyViewContainer);\n registerElement('SearchBar', () => NSCore.SearchBar, {\n model: {\n prop: 'text',\n event: 'textChange',\n },\n });\n registerElement('SegmentedBar', () => NSCore.SegmentedBar, {\n model: {\n prop: 'selectedIndex',\n event: 'selectedIndexChange',\n },\n });\n registerElement('SegmentedBarItem', () => NSCore.SegmentedBarItem);\n registerElement('Slider', () => NSCore.Slider, {\n model: {\n prop: 'value',\n event: 'valueChange',\n },\n });\n registerElement('Span', () => NSCore.Span);\n registerElement('Switch', () => NSCore.Switch, {\n model: {\n prop: 'checked',\n event: 'checkedChange',\n },\n });\n registerElement('TextField', () => NSCore.TextField, {\n model: {\n prop: 'text',\n event: 'textChange',\n },\n });\n registerElement('TextView', () => NSCore.TextView, {\n model: {\n prop: 'text',\n event: 'textChange',\n },\n });\n registerElement('TimePicker', () => NSCore.TimePicker, {\n model: {\n prop: 'time',\n event: 'timeChange',\n },\n });\n\n registerElement('TabViewItem', () => NSCore.TabViewItem);\n\n registerElement('TabView', () => NSCore.TabView, {\n model: {\n prop: 'selectedIndex',\n event: 'selectedIndexChange',\n },\n nodeOps: {\n insert(child, parent, atIndex) {\n const tabView = parent.nativeView as NSCTabView;\n\n if (child.nativeView instanceof NSCTabViewItem) {\n const items = [...(tabView.items || [])];\n items.splice(atIndex ?? items.length, 0, child.nativeView);\n\n parent.setAttribute('items', items);\n }\n },\n remove(child, parent) {\n const tabView = parent.nativeView as NSCTabView;\n const items = (tabView.items || []).filter(\n (item) => item !== child.nativeView,\n );\n\n parent.setAttribute('items', items);\n },\n },\n });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nativescript/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAQ,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMlD,MAAM,UAAU,IAAI;IAClB,oBAAoB,EAAE,CAAC;IAEvB,MAAM,CAAC,gBAAgB,GAAG,GAAG,EAAE;QAC7B,WAAW,CAAC,WAAW,EAAE,EAAE,iBAAiB,EAAE,CAAC;IACjD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,aAAsC;IAC7D,WAAW,CAAC,GAAG,CAAC;QACd,MAAM;YACJ,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,WAAW,CAAC,aAAa,CAAC;QACxB,MAAM;YACJ,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEtD,kCAAkC;AAClC,8BAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nativescript/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAQ,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMlD,MAAM,UAAU,IAAI;IAClB,oBAAoB,EAAE,CAAC;IAEvB,MAAM,CAAC,gBAAgB,GAAG,GAAG,EAAE;QAC7B,WAAW,CAAC,WAAW,EAAE,EAAE,iBAAiB,EAAE,CAAC;IACjD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,aAAsC;IAC7D,WAAW,CAAC,GAAG,CAAC;QACd,MAAM;YACJ,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,WAAW,CAAC,aAAa,CAAC;QACxB,MAAM;YACJ,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEtD,kCAAkC;AAClC,8BAA8B","sourcesContent":["import { Application, View } from '@nativescript/core';\nimport { ComponentPublicInstance } from '@vue/runtime-core';\nimport { registerCoreElements } from './elements';\n\n// export all ns stuff in a single file to allow easy mocking for testing...\n\ndeclare const global: any;\n\nexport function init() {\n registerCoreElements();\n\n global.__onLiveSyncCore = () => {\n Application.getRootView()?._onCssStateChange();\n };\n}\n\nexport function startApp(rootComponent: ComponentPublicInstance) {\n Application.run({\n create() {\n return rootComponent.$el.nativeView;\n },\n });\n}\n\nexport function resetRoot(view: View) {\n Application.resetRootView({\n create() {\n return view;\n },\n });\n}\n\nexport { isAndroid, isIOS } from '@nativescript/core';\n\n// export const isAndroid = false;\n// export const isIOS = false;\n"]}