nativescript-vue 3.0.0-beta.5 → 3.0.0-beta.7

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 (63) hide show
  1. package/README.md +3 -4
  2. package/dist/compiler.d.ts +1 -1
  3. package/dist/compiler.js +1 -1
  4. package/dist/compiler.js.map +1 -1
  5. package/dist/components/ActionBar.d.ts +1 -1
  6. package/dist/components/ActionBar.js +5 -5
  7. package/dist/components/ListView.d.ts +2 -2
  8. package/dist/components/ListView.js +10 -12
  9. package/dist/components/ListView.js.map +1 -1
  10. package/dist/components/index.d.ts +6 -2
  11. package/dist/components/index.js +3 -2
  12. package/dist/components/index.js.map +1 -1
  13. package/dist/directives/vModel.d.ts +8 -0
  14. package/dist/directives/vModel.js +38 -0
  15. package/dist/directives/vModel.js.map +1 -0
  16. package/dist/directives/vShow.d.ts +2 -2
  17. package/dist/directives/vShow.js +4 -4
  18. package/dist/dom/index.d.ts +1 -1
  19. package/dist/dom/index.js +7 -6
  20. package/dist/dom/index.js.map +1 -1
  21. package/dist/index.d.ts +13 -12
  22. package/dist/index.js +22 -31
  23. package/dist/index.js.map +1 -1
  24. package/dist/nativescript/elements.js +54 -54
  25. package/dist/nativescript/index.d.ts +3 -3
  26. package/dist/nativescript/index.js +3 -3
  27. package/dist/plugins/modals.d.ts +9 -5
  28. package/dist/plugins/modals.js +50 -32
  29. package/dist/plugins/modals.js.map +1 -1
  30. package/dist/plugins/navigation.d.ts +7 -7
  31. package/dist/plugins/navigation.js +59 -78
  32. package/dist/plugins/navigation.js.map +1 -1
  33. package/dist/plugins/templates.d.ts +10 -0
  34. package/dist/plugins/templates.js +12 -0
  35. package/dist/plugins/templates.js.map +1 -0
  36. package/dist/registry/index.d.ts +3 -3
  37. package/dist/registry/index.js +2 -2
  38. package/dist/registry/index.js.map +1 -1
  39. package/dist/renderer/index.js +3 -3
  40. package/dist/renderer/modules/attrs.d.ts +1 -1
  41. package/dist/renderer/modules/attrs.js +3 -3
  42. package/dist/renderer/modules/class.d.ts +1 -1
  43. package/dist/renderer/modules/class.js +2 -2
  44. package/dist/renderer/modules/events.d.ts +3 -3
  45. package/dist/renderer/modules/events.js +3 -3
  46. package/dist/renderer/modules/events.js.map +1 -1
  47. package/dist/renderer/modules/style.d.ts +2 -2
  48. package/dist/renderer/modules/style.js +28 -8
  49. package/dist/renderer/modules/style.js.map +1 -1
  50. package/dist/renderer/nodeOps.d.ts +3 -2
  51. package/dist/renderer/nodeOps.js +7 -4
  52. package/dist/renderer/nodeOps.js.map +1 -1
  53. package/dist/renderer/patchProp.d.ts +1 -1
  54. package/dist/renderer/patchProp.js +27 -10
  55. package/dist/renderer/patchProp.js.map +1 -1
  56. package/dist/runtimeHelpers.d.ts +14 -0
  57. package/dist/runtimeHelpers.js +41 -3
  58. package/dist/runtimeHelpers.js.map +1 -1
  59. package/dist/types.d.ts +1 -1
  60. package/dist/withCompiler.js +1 -1
  61. package/dist/withCompiler.js.map +1 -1
  62. package/nativescript.webpack.js +24 -12
  63. package/package.json +26 -11
@@ -1,33 +1,33 @@
1
- import { Page as NSCPage } from "@nativescript/core";
2
- import { warn } from "@vue/runtime-core";
3
- import { registerElement } from "../registry";
1
+ import { Page as NSCPage } from '@nativescript/core';
2
+ import { warn } from '@vue/runtime-core';
3
+ import { registerElement } from '../registry';
4
4
  export function registerCoreElements() {
5
5
  // layouts
6
- registerElement("AbsoluteLayout", () => require("@nativescript/core").AbsoluteLayout, { viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */ });
7
- registerElement("DockLayout", () => require("@nativescript/core").DockLayout, {
6
+ registerElement('AbsoluteLayout', () => require('@nativescript/core').AbsoluteLayout, { viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */ });
7
+ registerElement('DockLayout', () => require('@nativescript/core').DockLayout, {
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('FlexboxLayout', () => require('@nativescript/core').FlexboxLayout, { viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */ });
11
+ registerElement('GridLayout', () => require('@nativescript/core').GridLayout, {
12
12
  viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
13
13
  });
14
- registerElement("RootLayout", () => require("@nativescript/core").RootLayout, {
14
+ registerElement('RootLayout', () => require('@nativescript/core').RootLayout, {
15
15
  viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
16
16
  });
17
- registerElement("StackLayout", () => require("@nativescript/core").StackLayout, { viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */ });
18
- registerElement("WrapLayout", () => require("@nativescript/core").WrapLayout, {
17
+ registerElement('StackLayout', () => require('@nativescript/core').StackLayout, { viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */ });
18
+ registerElement('WrapLayout', () => require('@nativescript/core').WrapLayout, {
19
19
  viewFlags: 4 /* NSVViewFlags.LAYOUT_VIEW */,
20
20
  });
21
21
  // ContentViews
22
- registerElement("ContentView", () => require("@nativescript/core").ContentView, { viewFlags: 2 /* NSVViewFlags.CONTENT_VIEW */ });
23
- registerElement("ScrollView", () => require("@nativescript/core").ScrollView, {
22
+ registerElement('ContentView', () => require('@nativescript/core').ContentView, { viewFlags: 2 /* NSVViewFlags.CONTENT_VIEW */ });
23
+ registerElement('ScrollView', () => require('@nativescript/core').ScrollView, {
24
24
  viewFlags: 2 /* NSVViewFlags.CONTENT_VIEW */,
25
25
  });
26
26
  // ActionBar
27
- registerElement("ActionItem", () => require("@nativescript/core").ActionItem);
28
- registerElement("NavigationButton", () => require("@nativescript/core").NavigationButton);
27
+ registerElement('ActionItem', () => require('@nativescript/core').ActionItem);
28
+ registerElement('NavigationButton', () => require('@nativescript/core').NavigationButton);
29
29
  // navigation
30
- registerElement("Frame", () => require("@nativescript/core").Frame, {
30
+ registerElement('Frame', () => require('@nativescript/core').Frame, {
31
31
  // todo: move into Frame.ts when we end up creating a component for Frame
32
32
  nodeOps: {
33
33
  insert(child, parent, atIndex) {
@@ -52,22 +52,22 @@ export function registerCoreElements() {
52
52
  },
53
53
  },
54
54
  });
55
- registerElement("Page", () => require("@nativescript/core").Page, {
55
+ registerElement('Page', () => require('@nativescript/core').Page, {
56
56
  viewFlags: 2 /* NSVViewFlags.CONTENT_VIEW */,
57
57
  });
58
58
  // html
59
- registerElement("HtmlView", () => require("@nativescript/core").HtmlView);
60
- registerElement("WebView", () => require("@nativescript/core").WebView);
59
+ registerElement('HtmlView', () => require('@nativescript/core').HtmlView);
60
+ registerElement('WebView', () => require('@nativescript/core').WebView);
61
61
  // components
62
- registerElement("ActivityIndicator", () => require("@nativescript/core").ActivityIndicator);
63
- registerElement("Button", () => require("@nativescript/core").Button);
64
- registerElement("DatePicker", () => require("@nativescript/core").DatePicker, {
62
+ registerElement('ActivityIndicator', () => require('@nativescript/core').ActivityIndicator);
63
+ registerElement('Button', () => require('@nativescript/core').Button);
64
+ registerElement('DatePicker', () => require('@nativescript/core').DatePicker, {
65
65
  model: {
66
- prop: "date",
67
- event: "dateChange",
66
+ prop: 'date',
67
+ event: 'dateChange',
68
68
  },
69
69
  });
70
- registerElement("FormattedString", () => require("@nativescript/core").FormattedString, {
70
+ registerElement('FormattedString', () => require('@nativescript/core').FormattedString, {
71
71
  nodeOps: {
72
72
  insert(child, parent, atIndex) {
73
73
  if (atIndex) {
@@ -84,58 +84,58 @@ export function registerCoreElements() {
84
84
  },
85
85
  },
86
86
  });
87
- registerElement("Image", () => require("@nativescript/core").Image);
88
- registerElement("Label", () => require("@nativescript/core").Label);
89
- registerElement("ListPicker", () => require("@nativescript/core").ListPicker, {
87
+ registerElement('Image', () => require('@nativescript/core').Image);
88
+ registerElement('Label', () => require('@nativescript/core').Label);
89
+ registerElement('ListPicker', () => require('@nativescript/core').ListPicker, {
90
90
  model: {
91
- prop: "selectedIndex",
92
- event: "selectedIndexChange",
91
+ prop: 'selectedIndex',
92
+ event: 'selectedIndexChange',
93
93
  },
94
94
  });
95
- registerElement("Placeholder", () => require("@nativescript/core").Placeholder);
96
- registerElement("Progress", () => require("@nativescript/core").Progress);
97
- registerElement("SearchBar", () => require("@nativescript/core").SearchBar, {
95
+ registerElement('Placeholder', () => require('@nativescript/core').Placeholder);
96
+ registerElement('Progress', () => require('@nativescript/core').Progress);
97
+ registerElement('SearchBar', () => require('@nativescript/core').SearchBar, {
98
98
  model: {
99
- prop: "text",
100
- event: "textChange",
99
+ prop: 'text',
100
+ event: 'textChange',
101
101
  },
102
102
  });
103
- registerElement("SegmentedBar", () => require("@nativescript/core").SegmentedBar, {
103
+ registerElement('SegmentedBar', () => require('@nativescript/core').SegmentedBar, {
104
104
  model: {
105
- prop: "selectedIndex",
106
- event: "selectedIndexChange",
105
+ prop: 'selectedIndex',
106
+ event: 'selectedIndexChange',
107
107
  },
108
108
  });
109
- registerElement("SegmentedBarItem", () => require("@nativescript/core").SegmentedBarItem);
110
- registerElement("Slider", () => require("@nativescript/core").Slider, {
109
+ registerElement('SegmentedBarItem', () => require('@nativescript/core').SegmentedBarItem);
110
+ registerElement('Slider', () => require('@nativescript/core').Slider, {
111
111
  model: {
112
- prop: "value",
113
- event: "valueChange",
112
+ prop: 'value',
113
+ event: 'valueChange',
114
114
  },
115
115
  });
116
- registerElement("Span", () => require("@nativescript/core").Span);
117
- registerElement("Switch", () => require("@nativescript/core").Switch, {
116
+ registerElement('Span', () => require('@nativescript/core').Span);
117
+ registerElement('Switch', () => require('@nativescript/core').Switch, {
118
118
  model: {
119
- prop: "checked",
120
- event: "checkedChange",
119
+ prop: 'checked',
120
+ event: 'checkedChange',
121
121
  },
122
122
  });
123
- registerElement("TextField", () => require("@nativescript/core").TextField, {
123
+ registerElement('TextField', () => require('@nativescript/core').TextField, {
124
124
  model: {
125
- prop: "text",
126
- event: "textChange",
125
+ prop: 'text',
126
+ event: 'textChange',
127
127
  },
128
128
  });
129
- registerElement("TextView", () => require("@nativescript/core").TextView, {
129
+ registerElement('TextView', () => require('@nativescript/core').TextView, {
130
130
  model: {
131
- prop: "text",
132
- event: "textChange",
131
+ prop: 'text',
132
+ event: 'textChange',
133
133
  },
134
134
  });
135
- registerElement("TimePicker", () => require("@nativescript/core").TimePicker, {
135
+ registerElement('TimePicker', () => require('@nativescript/core').TimePicker, {
136
136
  model: {
137
- prop: "time",
138
- event: "timeChange",
137
+ prop: 'time',
138
+ event: 'timeChange',
139
139
  },
140
140
  });
141
141
  }
@@ -1,6 +1,6 @@
1
- import { View } from "@nativescript/core";
2
- import { ComponentPublicInstance } from "@vue/runtime-core";
1
+ import { View } from '@nativescript/core';
2
+ import { ComponentPublicInstance } from '@vue/runtime-core';
3
3
  export declare function init(): void;
4
4
  export declare function startApp(rootComponent: ComponentPublicInstance): void;
5
5
  export declare function resetRoot(view: View): void;
6
- export { isAndroid, isIOS } from "@nativescript/core";
6
+ export { isAndroid, isIOS } from '@nativescript/core';
@@ -1,5 +1,5 @@
1
- import { Application } from "@nativescript/core";
2
- import { registerCoreElements } from "./elements";
1
+ import { Application } from '@nativescript/core';
2
+ import { registerCoreElements } from './elements';
3
3
  // export all ns stuff in a single file to allow easy mocking for testing...
4
4
  export function init() {
5
5
  registerCoreElements();
@@ -21,7 +21,7 @@ export function resetRoot(view) {
21
21
  },
22
22
  });
23
23
  }
24
- export { isAndroid, isIOS } from "@nativescript/core";
24
+ export { isAndroid, isIOS } from '@nativescript/core';
25
25
  // export const isAndroid = false;
26
26
  // export const isIOS = false;
27
27
  //# sourceMappingURL=index.js.map
@@ -1,15 +1,19 @@
1
- import { App, Component, ComponentInternalInstance, ComponentPublicInstance, Ref } from "@vue/runtime-core";
2
- import { ShowModalOptions, View } from "@nativescript/core";
3
- import { NSVElement } from "..";
4
- declare module "@vue/runtime-core" {
1
+ import { ShowModalOptions, View } from '@nativescript/core';
2
+ import { App, Component, ComponentPublicInstance } from '@vue/runtime-core';
3
+ import { NSVElement } from '../dom';
4
+ declare module '@vue/runtime-core' {
5
5
  interface ComponentCustomProperties {
6
6
  /**
7
7
  * todo: update docblock
8
8
  */
9
9
  $showModal: <T = any>(component: Component, options?: ModalOptions) => Promise<T | false | undefined>;
10
+ $closeModal: (arg: any) => void;
11
+ $modal: {
12
+ close: (arg: any) => void;
13
+ };
10
14
  }
11
15
  }
12
- declare type ResolvableModalTarget = Ref | ComponentInternalInstance | ComponentPublicInstance | NSVElement | View | any;
16
+ type ResolvableModalTarget = ComponentPublicInstance | NSVElement | View;
13
17
  export interface ModalOptions extends Partial<ShowModalOptions> {
14
18
  props?: Record<string, any>;
15
19
  target?: ResolvableModalTarget;
@@ -1,7 +1,8 @@
1
- import { warn, } from "@vue/runtime-core";
2
- import { Application, View } from "@nativescript/core";
3
- import { createApp, NSVElement } from "..";
4
- import { isObject } from "@vue/shared";
1
+ import { Application, View } from '@nativescript/core';
2
+ import { unref, warn, } from '@vue/runtime-core';
3
+ import { NSVElement, NSVRoot } from '../dom';
4
+ import { createNativeView } from '../runtimeHelpers';
5
+ import { isObject } from '@vue/shared';
5
6
  /**
6
7
  * @internal
7
8
  */
@@ -9,53 +10,70 @@ export function install(app) {
9
10
  app.config.globalProperties.$showModal = $showModal;
10
11
  }
11
12
  function resolveModalTarget(target) {
12
- if (isObject(target) && isObject(target.$el)) {
13
- return target.$el.nativeView;
13
+ const ob = unref(target);
14
+ if (ob instanceof NSVElement) {
15
+ return ob.nativeView;
14
16
  }
15
- else if (target instanceof NSVElement) {
16
- return target.nativeView;
17
+ else if (ob instanceof View) {
18
+ return ob;
17
19
  }
18
- else if (target instanceof View) {
19
- return target;
20
+ else if (isObject(ob) && isObject(ob.$el)) {
21
+ return ob.$el.nativeView;
20
22
  }
21
23
  return false;
22
24
  }
23
- export async function $showModal(component, options) {
24
- options = Object.assign({
25
- target: Application.getRootView(),
26
- }, options);
27
- const modalTarget = resolveModalTarget(options.target);
25
+ export async function $showModal(component, options = {}) {
26
+ const modalTarget = resolveModalTarget(options.target ?? Application.getRootView());
28
27
  if (!modalTarget) {
29
28
  if (__DEV__) {
30
29
  warn(`could not open modal because the target does not exist`);
31
30
  }
32
- return false;
31
+ return;
33
32
  }
34
33
  return new Promise((resolve) => {
35
- const modalApp = createApp(component, options ? options.props : null);
36
34
  let isResolved = false;
35
+ let isReloading = false;
36
+ let root = new NSVRoot();
37
+ const reloadModal = () => {
38
+ isReloading = true;
39
+ closeModal();
40
+ // reopening is done in `closeCallback`
41
+ };
42
+ let view = createNativeView(component, options.props, {
43
+ reload: reloadModal,
44
+ });
37
45
  const closeCallback = (data) => {
38
46
  if (isResolved)
39
47
  return;
40
- isResolved = true;
41
- try {
42
- modalContent.closeModal();
43
- }
44
- catch (e) {
45
- // ignore?
48
+ if (isReloading) {
49
+ view.unmount();
50
+ view.mount(root);
51
+ openModal({
52
+ // todo: for this to work nicely, we'd need to add `animated: false` to `closeModal` as well
53
+ // but not currently possible without a core change.
54
+ // animated: false,
55
+ });
56
+ isReloading = false;
57
+ return;
46
58
  }
47
- modalApp.unmount();
59
+ isResolved = true;
60
+ view.unmount();
61
+ view = null;
48
62
  resolve(data);
49
63
  };
50
- modalApp.config.globalProperties.$modal = {
51
- close: closeCallback,
64
+ const openModal = (additionalOptions) => {
65
+ modalTarget.showModal(view.nativeView, {
66
+ ...options,
67
+ context: null,
68
+ closeCallback,
69
+ ...additionalOptions,
70
+ });
52
71
  };
53
- const modalContent = modalApp.mount().$el.nativeView;
54
- modalTarget.showModal(modalContent, {
55
- ...options,
56
- context: null,
57
- closeCallback,
58
- });
72
+ const closeModal = (...args) => view.nativeView?.closeModal(...args);
73
+ view.context.config.globalProperties.$closeModal = closeModal;
74
+ view.context.config.globalProperties.$modal = { close: closeModal };
75
+ view.mount(root);
76
+ openModal();
59
77
  });
60
78
  }
61
79
  //# sourceMappingURL=modals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modals.js","sourceRoot":"","sources":["../../src/plugins/modals.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,IAAI,GACL,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAoB,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA2BvC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,GAAQ;IAC9B,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;AACtD,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA6B;IACvD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;KAC9B;SAAM,IAAI,MAAM,YAAY,UAAU,EAAE;QACvC,OAAO,MAAM,CAAC,UAAU,CAAC;KAC1B;SAAM,IAAI,MAAM,YAAY,IAAI,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAoB,EACpB,OAAsB;IAEtB,OAAO,GAAG,MAAM,CAAC,MAAM,CACrB;QACE,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE;KAClC,EACD,OAAO,CACR,CAAC;IAEF,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvD,IAAI,CAAC,WAAW,EAAE;QAChB,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,wDAAwD,CAAC,CAAC;SAChE;QACD,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,aAAa,GAAG,CAAC,IAAQ,EAAE,EAAE;YACjC,IAAI,UAAU;gBAAE,OAAO;YACvB,UAAU,GAAG,IAAI,CAAC;YAElB,IAAI;gBACF,YAAY,CAAC,UAAU,EAAE,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACV,UAAU;aACX;YAED,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG;YACxC,KAAK,EAAE,aAAa;SACrB,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;QAErD,WAAW,CAAC,SAAS,CAAC,YAAY,EAAE;YAClC,GAAG,OAAO;YACV,OAAO,EAAE,IAAI;YACb,aAAa;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"modals.js","sourceRoot":"","sources":["../../src/plugins/modals.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { App, Component, Ref } from "@vue/runtime-core";
2
- import { Frame, NavigationEntry, Page } from "@nativescript/core";
3
- import { NSVElement } from "..";
4
- declare module "@vue/runtime-core" {
1
+ import { Frame, NavigationEntry, Page } from '@nativescript/core';
2
+ import { App, Component, Ref } from '@vue/runtime-core';
3
+ import { NSVElement } from '../dom';
4
+ declare module '@vue/runtime-core' {
5
5
  interface ComponentCustomProperties {
6
6
  /**
7
7
  * todo: update docblock
@@ -11,11 +11,11 @@ declare module "@vue/runtime-core" {
11
11
  * @param target
12
12
  * @param options
13
13
  */
14
- $navigateTo: (target: Component, options?: NavigationOptions) => Promise<any>;
14
+ $navigateTo: (target: Component, options?: NavigationOptions) => Page;
15
15
  $navigateBack: (options?: NavigationOptions) => void;
16
16
  }
17
17
  }
18
- declare type ResolvableFrame = string | Ref | NSVElement | Frame | undefined;
18
+ type ResolvableFrame = string | Ref | NSVElement | Frame | undefined;
19
19
  export interface NavigationOptions extends NavigationEntry {
20
20
  props?: Record<string, any>;
21
21
  frame?: ResolvableFrame;
@@ -27,6 +27,6 @@ export interface BackNavigationOptions {
27
27
  * @internal
28
28
  */
29
29
  export declare function install(app: App): void;
30
- export declare function $navigateTo(target: Component, options?: NavigationOptions): Promise<Page>;
30
+ export declare function $navigateTo(target: Component, options?: NavigationOptions): Page;
31
31
  export declare function $navigateBack(options?: BackNavigationOptions): Promise<void>;
32
32
  export {};
@@ -1,6 +1,7 @@
1
- import { isRef } from "@vue/runtime-core";
2
- import { Frame } from "@nativescript/core";
3
- import { createApp, NSVElement, NSVRoot } from "..";
1
+ import { Frame } from '@nativescript/core';
2
+ import { nextTick, unref } from '@vue/runtime-core';
3
+ import { NSVElement, NSVRoot } from '../dom';
4
+ import { createNativeView } from '../runtimeHelpers';
4
5
  /**
5
6
  * @internal
6
7
  */
@@ -12,114 +13,94 @@ function resolveFrame(frame) {
12
13
  if (!frame) {
13
14
  return Frame.topmost();
14
15
  }
15
- if (frame instanceof Frame) {
16
- return frame;
16
+ const ob = unref(frame);
17
+ if (ob instanceof Frame) {
18
+ return ob;
17
19
  }
18
- // todo: check if refs work this way or not
19
- if (isRef(frame)) {
20
- return frame.value;
21
- }
22
- if (frame instanceof NSVElement) {
23
- return frame.nativeView;
20
+ if (ob instanceof NSVElement) {
21
+ return ob.nativeView;
24
22
  }
25
23
  // todo: either change core Frame to add frames to the stack when they are created
26
24
  // or do as we did in 2.x - handle a Map of frames.
27
25
  // right now, empty frames can't be navigated as they are not recognized by `getFrameById`
28
- return Frame.getFrameById(frame);
29
- }
30
- function createNavigationRoot(cb) {
31
- const defaultRoot = new NSVRoot();
32
- // flag to indicate when we need to call resetRoot
33
- // usually happens when the root component is re-mounted (HMR)
34
- let shouldResetRoot = false;
35
- const appendChild = defaultRoot.appendChild.bind(defaultRoot);
36
- const removeChild = defaultRoot.removeChild.bind(defaultRoot);
37
- defaultRoot.removeChild = (el) => {
38
- removeChild(el);
39
- shouldResetRoot = true;
40
- // console.log("remove child", (el as NSVElement).tagName);
41
- };
42
- defaultRoot.appendChild = (el) => {
43
- appendChild(el);
44
- if (shouldResetRoot) {
45
- shouldResetRoot = false;
46
- // console.log("append child", (el as NSVElement).tagName);
47
- cb(el.nativeView);
48
- }
49
- };
50
- return defaultRoot;
51
- }
52
- function attachDisposeCallbacks(targetPage, disposeCallback) {
53
- // const handler = (args: NavigatedData) => {
54
- // if (args.isBackNavigation) {
55
- // console.log("navigatedFrom called.");
56
- // targetPage.off("navigatedFrom", handler as any);
57
- // disposeCallback();
58
- // }
59
- // };
60
- // targetPage.on("navigatedFrom", handler);
61
- const dispose = targetPage.disposeNativeView;
62
- targetPage.disposeNativeView = () => {
63
- // console.log("dispose native view called.");
64
- disposeCallback(targetPage);
65
- dispose.call(targetPage);
66
- };
26
+ return Frame.getFrameById(ob);
67
27
  }
68
- export async function $navigateTo(target, options) {
69
- options = Object.assign({}, options);
70
- // console.log("$navigateTo");
28
+ export function $navigateTo(target, options) {
71
29
  try {
72
- const frame = resolveFrame(options.frame);
30
+ const frame = resolveFrame(options?.frame);
73
31
  if (!frame) {
74
- throw new Error("Failed to resolve frame. Make sure your frame exists.");
32
+ throw new Error('Failed to resolve frame. Make sure your frame exists.');
75
33
  }
76
- const cleanup = (page) => {
77
- if (page === latestPage) {
78
- // console.log("DISPOSE NAVIGATION APP");
79
- navigationApp.unmount();
34
+ const root = new NSVRoot();
35
+ let isReloading = false;
36
+ const attachDisposeCallback = (page) => {
37
+ const dispose = page.disposeNativeView;
38
+ page.disposeNativeView = () => {
39
+ dispose.call(page);
40
+ // if we are reloading, don't unmount the view, as the reload will unmount/remount it.
41
+ if (!isReloading) {
42
+ view.unmount();
43
+ view = null;
44
+ }
45
+ };
46
+ };
47
+ const reloadPage = () => {
48
+ if (isReloading) {
49
+ return;
80
50
  }
81
- else {
82
- // console.log("no dispose we have replaced page");
51
+ // if the page we are reloading is not the current page, wait for it to be navigated to
52
+ if (frame.currentPage !== view.nativeView) {
53
+ view.nativeView.once('navigatedTo', () => {
54
+ nextTick(() => {
55
+ reloadPage();
56
+ });
57
+ });
58
+ return;
83
59
  }
84
- };
85
- const navigationApp = createApp(target, options.props);
86
- const targetPage = navigationApp.mount(createNavigationRoot((newPage) => {
87
- latestPage = newPage;
88
- attachDisposeCallbacks(newPage, cleanup);
89
- // cache the original transition of the current page
60
+ isReloading = true;
61
+ view.unmount();
62
+ view.mount(root);
63
+ attachDisposeCallback(view.nativeView);
90
64
  const originalTransition = frame.currentEntry.transition;
91
65
  // replace current page
92
66
  frame.replacePage({
93
67
  ...options,
94
68
  transition: {
95
- name: "fade",
69
+ name: 'fade',
96
70
  duration: 10,
97
71
  },
98
- create: () => newPage,
72
+ create: () => view.nativeView,
99
73
  });
100
74
  // reset the transition to the original one
101
- frame.once("navigatedTo", () => {
75
+ frame.once('navigatedTo', () => {
102
76
  frame.currentEntry.transition = originalTransition;
77
+ isReloading = false;
103
78
  });
104
- })).$el.nativeView;
105
- let latestPage = targetPage;
106
- attachDisposeCallbacks(targetPage, cleanup);
79
+ };
80
+ let view = createNativeView(target, options?.props, {
81
+ /**
82
+ * Called by @vue/runtime-core when the component is reloaded during HMR.
83
+ */
84
+ reload: reloadPage,
85
+ });
86
+ view.mount(root);
87
+ attachDisposeCallback(view.nativeView);
107
88
  frame.navigate({
108
89
  ...options,
109
- create: () => targetPage,
90
+ create: () => view.nativeView,
110
91
  });
111
- return targetPage;
92
+ return view.nativeView;
112
93
  }
113
94
  catch (e) {
114
- console.error("[$navigateTo] Failed to navigate:\n\n");
95
+ console.error('[$navigateTo] Failed to navigate:\n\n');
115
96
  console.error(e, e.stack);
116
97
  throw e;
117
98
  }
118
99
  }
119
100
  export async function $navigateBack(options) {
120
- const frame = resolveFrame(options ? options.frame : undefined);
101
+ const frame = resolveFrame(options?.frame);
121
102
  if (!frame) {
122
- throw new Error("Failed to resolve frame. Make sure your frame exists.");
103
+ throw new Error('Failed to resolve frame. Make sure your frame exists.');
123
104
  }
124
105
  if (!frame.canGoBack()) {
125
106
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/plugins/navigation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/plugins/navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { App } from '@vue/runtime-core';
2
+ declare module '@vue/runtime-core' {
3
+ interface ComponentCustomProperties {
4
+ $templates: any;
5
+ }
6
+ }
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare function install(app: App): void;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export function install(app) {
5
+ app.config.globalProperties.$templates = {
6
+ getKeyedTemplates() { },
7
+ selectorFn() { },
8
+ patchTemplate(name, context, oldVnode) { },
9
+ registerTemplate() { }
10
+ };
11
+ }
12
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/plugins/templates.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,GAAQ;IAC9B,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,GAAG;QACvC,iBAAiB,KAAI,CAAC;QACtB,UAAU,KAAI,CAAC;QACf,aAAa,CAAC,IAAY,EAAE,OAAY,EAAE,QAAe,IAAG,CAAC;QAC7D,gBAAgB,KAAI,CAAC;KACtB,CAAC;AACJ,CAAC"}