nativescript-vue 3.0.0-beta.1 → 3.0.0-beta.11

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 (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -2
  3. package/devtools.js +33 -0
  4. package/dist/compiler.d.ts +1 -1
  5. package/dist/compiler.js +1 -1
  6. package/dist/compiler.js.map +1 -1
  7. package/dist/components/ActionBar.d.ts +1 -1
  8. package/dist/components/ActionBar.js +6 -5
  9. package/dist/components/ActionBar.js.map +1 -1
  10. package/dist/components/ListView.d.ts +2 -2
  11. package/dist/components/ListView.js +11 -12
  12. package/dist/components/ListView.js.map +1 -1
  13. package/dist/components/index.d.ts +6 -2
  14. package/dist/components/index.js +3 -2
  15. package/dist/components/index.js.map +1 -1
  16. package/dist/directives/vModel.d.ts +8 -0
  17. package/dist/directives/vModel.js +38 -0
  18. package/dist/directives/vModel.js.map +1 -0
  19. package/dist/directives/vShow.d.ts +2 -2
  20. package/dist/directives/vShow.js +4 -4
  21. package/dist/dom/index.d.ts +1 -1
  22. package/dist/dom/index.js +7 -8
  23. package/dist/dom/index.js.map +1 -1
  24. package/dist/index.d.ts +19 -10
  25. package/dist/index.js +50 -15
  26. package/dist/index.js.map +1 -1
  27. package/dist/nativescript/elements.js +78 -53
  28. package/dist/nativescript/elements.js.map +1 -1
  29. package/dist/nativescript/index.d.ts +3 -3
  30. package/dist/nativescript/index.js +3 -4
  31. package/dist/nativescript/index.js.map +1 -1
  32. package/dist/plugins/modals.d.ts +9 -5
  33. package/dist/plugins/modals.js +50 -32
  34. package/dist/plugins/modals.js.map +1 -1
  35. package/dist/plugins/navigation.d.ts +7 -7
  36. package/dist/plugins/navigation.js +59 -78
  37. package/dist/plugins/navigation.js.map +1 -1
  38. package/dist/plugins/templates.d.ts +10 -0
  39. package/dist/plugins/templates.js +12 -0
  40. package/dist/plugins/templates.js.map +1 -0
  41. package/dist/registry/index.d.ts +3 -3
  42. package/dist/registry/index.js +2 -2
  43. package/dist/registry/index.js.map +1 -1
  44. package/dist/renderer/index.js +3 -3
  45. package/dist/renderer/modules/attrs.d.ts +1 -1
  46. package/dist/renderer/modules/attrs.js +3 -3
  47. package/dist/renderer/modules/class.d.ts +1 -1
  48. package/dist/renderer/modules/class.js +2 -2
  49. package/dist/renderer/modules/events.d.ts +3 -3
  50. package/dist/renderer/modules/events.js +8 -2
  51. package/dist/renderer/modules/events.js.map +1 -1
  52. package/dist/renderer/modules/style.d.ts +3 -2
  53. package/dist/renderer/modules/style.js +66 -20
  54. package/dist/renderer/modules/style.js.map +1 -1
  55. package/dist/renderer/nodeOps.d.ts +3 -2
  56. package/dist/renderer/nodeOps.js +7 -4
  57. package/dist/renderer/nodeOps.js.map +1 -1
  58. package/dist/renderer/patchProp.d.ts +1 -1
  59. package/dist/renderer/patchProp.js +27 -10
  60. package/dist/renderer/patchProp.js.map +1 -1
  61. package/dist/runtimeHelpers.d.ts +26 -0
  62. package/dist/runtimeHelpers.js +44 -3
  63. package/dist/runtimeHelpers.js.map +1 -1
  64. package/dist/types.d.ts +1 -1
  65. package/dist/withCompiler.js +1 -1
  66. package/dist/withCompiler.js.map +1 -1
  67. package/nativescript.webpack.js +122 -14
  68. package/package.json +35 -12
  69. package/dist/components/ListView.working.d.ts +0 -44
  70. package/dist/components/ListView.working.js +0 -126
  71. package/dist/components/ListView.working.js.map +0 -1
  72. package/dist/index.mjs.map +0 -7
@@ -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"}
@@ -1,6 +1,6 @@
1
- import { NSVElement, NSVViewFlags } from "../dom";
2
- export declare type NSVElementResolver = () => any;
3
- export declare type NSVModelDescriptor = {
1
+ import type { NSVElement, NSVViewFlags } from '../dom';
2
+ export type NSVElementResolver = () => any;
3
+ export type NSVModelDescriptor = {
4
4
  prop: string;
5
5
  event: string;
6
6
  };
@@ -1,5 +1,5 @@
1
1
  export let defaultViewMeta = {
2
- viewFlags: 0 // NSVViewFlags.NONE, // tsx can't resolve NSVViewFlags here?
2
+ viewFlags: 0, // NSVViewFlags.NONE - circular dependency, using constant value instead
3
3
  };
4
4
  let elementMap = {};
5
5
  export function getViewMeta(elementName) {
@@ -34,7 +34,7 @@ export function getViewClass(elementName) {
34
34
  }
35
35
  }
36
36
  export function normalizeElementName(elementName) {
37
- return elementName.replace(/-/g, "").toLowerCase();
37
+ return elementName.replace(/-/g, '').toLowerCase();
38
38
  }
39
39
  export function registerElement(elementName, resolver, meta) {
40
40
  const normalizedName = normalizeElementName(elementName);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,IAAI,eAAe,GAAgB;IACxC,SAAS,EAAE,CAAC,CAAC,6DAA6D;CAC3E,CAAC;AAEF,IAAI,UAAU,GAAyC,EAAE,CAAC;AAE1D,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,+CAA+C;IAE/C,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,GAAG,CAAC,CAAC;KACnE;IAED,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,IAAI,mBAAmB,CAAC;AAExB,MAAM,UAAU,2BAA2B,CAAC,QAA+B;IACzE,mBAAmB,GAAG,QAAQ,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,gDAAgD;IAChD,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,QAAQ,EAAE;YACZ,OAAO,QAAQ,CAAC;SACjB;QAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,GAAG,CAAC,CAAC;KACnE;IAED,IAAI;QACF,OAAO,KAAK,CAAC,QAAS,EAAE,CAAC;KAC1B;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,WAAW,KAAK,CAAC,EAAE,CAAC,CAAC;KAClE;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,QAA6B,EAC7B,IAA2B;IAE3B,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IAE5D,IAAI,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;QAC/D,MAAM,IAAI,KAAK,CACb,eAAe,WAAW,wBAAwB;YAChD,gEAAgE,CACnE,CAAC;KACH;IAED,UAAU,CAAC,cAAc,CAAC,GAAG;QAC3B,IAAI,EAAE,UAAU;QAChB,QAAQ;KACT,CAAC;IACF,mDAAmD;AACrD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,OAAO,UAAU,CAAC,cAAc,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,IAAI,eAAe,GAAgB;IACxC,SAAS,EAAE,CAAC,EAAE,wEAAwE;CACvF,CAAC;AAEF,IAAI,UAAU,GAAyC,EAAE,CAAC;AAE1D,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,+CAA+C;IAE/C,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,GAAG,CAAC,CAAC;KACnE;IAED,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,IAAI,mBAAmB,CAAC;AAExB,MAAM,UAAU,2BAA2B,CAAC,QAA+B;IACzE,mBAAmB,GAAG,QAAQ,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,gDAAgD;IAChD,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC,WAAW,CAAC,CAAC;QAEpD,IAAI,QAAQ,EAAE;YACZ,OAAO,QAAQ,CAAC;SACjB;QAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,GAAG,CAAC,CAAC;KACnE;IAED,IAAI;QACF,OAAO,KAAK,CAAC,QAAS,EAAE,CAAC;KAC1B;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,4BAA4B,WAAW,KAAK,CAAC,EAAE,CAAC,CAAC;KAClE;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,WAAmB,EACnB,QAA6B,EAC7B,IAA2B;IAE3B,MAAM,cAAc,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;IAE5D,IAAI,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE;QAC/D,MAAM,IAAI,KAAK,CACb,eAAe,WAAW,wBAAwB;YAChD,gEAAgE,CACnE,CAAC;KACH;IAED,UAAU,CAAC,cAAc,CAAC,GAAG;QAC3B,IAAI,EAAE,UAAU;QAChB,QAAQ;KACT,CAAC;IACF,mDAAmD;AACrD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,OAAO,UAAU,CAAC,cAAc,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -1,6 +1,6 @@
1
- import { createRenderer } from "@vue/runtime-core";
2
- import { patchProp } from "./patchProp";
3
- import { nodeOps } from "./nodeOps";
1
+ import { createRenderer } from '@vue/runtime-core';
2
+ import { patchProp } from './patchProp';
3
+ import { nodeOps } from './nodeOps';
4
4
  export const renderer = createRenderer({
5
5
  patchProp,
6
6
  ...nodeOps,
@@ -1,2 +1,2 @@
1
- import { NSVElement } from "../../dom";
1
+ import { NSVElement } from '../../dom';
2
2
  export declare function patchAttr(el: NSVElement, key: string, prevValue: any, nextValue: any): void;
@@ -1,5 +1,5 @@
1
- import { isBoolean, isAndroidKey, isIOSKey } from "../../runtimeHelpers";
2
- import { isAndroid, isIOS } from "../../nativescript";
1
+ import { isBoolean, isAndroidKey, isIOSKey } from '../../runtimeHelpers';
2
+ import { isAndroid, isIOS } from '../../nativescript';
3
3
  export function patchAttr(el, key, prevValue, nextValue) {
4
4
  if (isAndroidKey(key)) {
5
5
  if (!isAndroid) {
@@ -17,7 +17,7 @@ export function patchAttr(el, key, prevValue, nextValue) {
17
17
  }
18
18
  // detect expandable attrs for boolean values
19
19
  // see https://vuejs.org/v2/guide/components-props.html#Passing-a-Boolean
20
- if (isBoolean(el.getAttribute(key)) && nextValue === "") {
20
+ if (isBoolean(el.getAttribute(key)) && nextValue === '') {
21
21
  nextValue = true;
22
22
  }
23
23
  if (nextValue === null) {
@@ -1,2 +1,2 @@
1
- import { NSVElement } from "../../dom";
1
+ import { NSVElement } from '../../dom';
2
2
  export declare function patchClass(el: NSVElement, value: string | null): void;
@@ -2,8 +2,8 @@
2
2
  // into a single binding ['staticClass', dynamic]
3
3
  export function patchClass(el, value) {
4
4
  if (value == null) {
5
- value = "";
5
+ value = '';
6
6
  }
7
- el.setAttribute("class", value);
7
+ el.setAttribute('class', value);
8
8
  }
9
9
  //# sourceMappingURL=class.js.map
@@ -1,9 +1,9 @@
1
- import { NSVElement } from "../../dom";
2
- import { ComponentInternalInstance } from "@vue/runtime-core";
1
+ import { NSVElement } from '../../dom';
2
+ import { ComponentInternalInstance } from '@vue/runtime-core';
3
3
  interface Invoker extends EventListener {
4
4
  value: EventValue;
5
5
  }
6
- declare type EventValue = Function | Function[];
6
+ type EventValue = Function | Function[];
7
7
  export declare function addEventListener(el: NSVElement, event: string, handler: EventListener, options?: EventListenerOptions): void;
8
8
  export declare function removeEventListener(el: NSVElement, event: string, handler: EventListener, options?: EventListenerOptions): void;
9
9
  export declare function patchEvent(el: NSVElement & {
@@ -1,4 +1,4 @@
1
- import { callWithAsyncErrorHandling, } from "@vue/runtime-core";
1
+ import { callWithAsyncErrorHandling, } from '@vue/runtime-core';
2
2
  export function addEventListener(el, event, handler, options = {}) {
3
3
  el.addEventListener(event, handler, options);
4
4
  }
@@ -39,8 +39,14 @@ function parseName(name) {
39
39
  options;
40
40
  }
41
41
  }
42
+ // todo: optimise if necessary
43
+ // this isn't technically perfect,
44
+ // since if the event name was UPPER then we'll convert it to uPPER
45
+ // but for the majority of cases, this should be the right thing to do.
46
+ name = name.slice(name.startsWith('on:') ? 3 : 2);
47
+ name = name.charAt(0).toLowerCase() + name.slice(1);
42
48
  // return event name by removing on prefix. eg. onitemTap -> itemTap
43
- return [name.slice(2), options];
49
+ return [name, options];
44
50
  // return [hyphenate(name.slice(2)), options]
45
51
  }
46
52
  function createInvoker(initialValue, instance) {
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/renderer/modules/events.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,0BAA0B,GAE3B,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,UAAU,gBAAgB,CAC9B,EAAc,EACd,KAAa,EACb,OAAsB,EACtB,UAAgC,EAAE;IAElC,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,EAAc,EACd,KAAa,EACb,OAAsB,EACtB,UAAgC,EAAE;IAElC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,EAA+D,EAC/D,OAAe,EACf,SAA4B,EAC5B,SAA4B,EAC5B,WAA6C,IAAI;IAEjD,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,SAAS,IAAI,eAAe,EAAE;QAChC,QAAQ;QACR,eAAe,CAAC,KAAK,GAAG,SAAS,CAAC;KACnC;SAAM;QACL,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,SAAS,EAAE;YACb,MAAM;YACN,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YACzE,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC9C;aAAM,IAAI,eAAe,EAAE;YAC1B,SAAS;YACT,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YACxD,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;SAC/B;KACF;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,OAAyC,CAAC;IAC9C,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC;QACN,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE;YAC1C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC/C,OAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;YAC5C,OAAO,CAAC;SACT;KACF;IACD,oEAAoE;IACpE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChC,6CAA6C;AAC/C,CAAC;AAED,SAAS,aAAa,CACpB,YAAwB,EACxB,QAA0C;IAE1C,MAAM,OAAO,GAAY,CAAC,CAAQ,EAAE,EAAE;QACpC,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;IAC7B,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/renderer/modules/events.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { NSVElement } from "../../dom";
2
- declare type Style = string | null;
1
+ import { NSVElement } from '../../dom';
2
+ type Style = string | Record<string, string | number> | null;
3
+ export declare const STYLE_ORIGINAL_VALUE: unique symbol;
3
4
  export declare function patchStyle(el: NSVElement, prev: Style, next: Style): void;
4
5
  export {};
@@ -1,34 +1,80 @@
1
- function isRule(node) {
2
- return node.type === "rule";
1
+ import { parseStringStyle, isArray, isString, isObject, } from '@vue/shared';
2
+ function normalizeStyle(style) {
3
+ if (!style) {
4
+ return null;
5
+ }
6
+ if (isString(style)) {
7
+ if (style.trim().charAt(0) === '{') {
8
+ return JSON.parse(style);
9
+ }
10
+ return parseStringStyle(style);
11
+ }
12
+ if (isArray(style)) {
13
+ return style.reduce((normalizedStyle, currentStyle) => {
14
+ return Object.assign(normalizedStyle, normalizeStyle(currentStyle));
15
+ }, {});
16
+ }
17
+ if (isObject(style)) {
18
+ return style;
19
+ }
20
+ return {};
3
21
  }
4
- function isDeclaration(node) {
5
- return node.type === "declaration";
22
+ function normalizeProperty(property) {
23
+ if (property.endsWith('Align')) {
24
+ // NativeScript uses Alignment instead of Align, this ensures that text-align works
25
+ property += 'ment';
26
+ }
27
+ return property;
6
28
  }
7
- function createDeclaration(decl) {
8
- return { property: decl.property.toLowerCase(), value: decl.value };
29
+ export const STYLE_ORIGINAL_VALUE = Symbol('style_original_value');
30
+ function addStyleProperty(el, property, value) {
31
+ const _sov = el[STYLE_ORIGINAL_VALUE] ?? (el[STYLE_ORIGINAL_VALUE] = new Map());
32
+ property = normalizeProperty(property);
33
+ if (!_sov.has(property)) {
34
+ _sov.set(property, el.style[property]);
35
+ }
36
+ el.style[property] = value;
9
37
  }
10
- function declarationsFromAstNodes(astRules) {
11
- return astRules.filter(isRule).map((rule) => {
12
- return rule.declarations.filter(isDeclaration).map(createDeclaration);
13
- });
38
+ function removeStyleProperty(el, property) {
39
+ const _sov = el[STYLE_ORIGINAL_VALUE] ?? (el[STYLE_ORIGINAL_VALUE] = new Map());
40
+ property = normalizeProperty(property);
41
+ // only delete styles we added
42
+ if (_sov.has(property)) {
43
+ const originalValue = _sov.get(property);
44
+ _sov.delete(property);
45
+ // edge case: if a style property also exists as an attribute (ie backgroundColor)
46
+ // changing the attribute will not update our originalValue, so when removing
47
+ // the previous color will be applied. Fixing this would involve listening to
48
+ // individual attribute changes, and it's not worth the overhead.
49
+ try {
50
+ el.style[property] = originalValue;
51
+ }
52
+ catch (err) {
53
+ // hack: if the original value is invalid, we can't set it back to it's original value
54
+ // instead we set it to null, which will remove the style, however this may
55
+ // still lead to incorrect styling in some cases.
56
+ el.style[property] = null;
57
+ }
58
+ }
14
59
  }
60
+ // todo: perhaps mimic dom version with prefixing stripped out: https://github.com/vuejs/core/blob/main/packages/runtime-dom/src/modules/style.ts
15
61
  export function patchStyle(el, prev, next) {
16
62
  if (prev) {
17
- // todo: check if we can substitute cssTreeParse with parseInlineCSS from compiler/transforms/transformStyle (by extracting it to shared)
18
- // reset previous styles
19
- const localStyle = `local { ${prev} }`;
20
- // const ast: any = cssTreeParse(localStyle, undefined)
21
- // const [declarations] = declarationsFromAstNodes(ast.stylesheet.rules)
22
- // declarations.forEach((d: any) => {
23
- // ;(el.nativeView.style as any)[d.property] = unsetValue
24
- // })
63
+ const style = normalizeStyle(prev);
64
+ // undo old styles
65
+ Object.keys(style).forEach((property) => {
66
+ removeStyleProperty(el, property);
67
+ });
25
68
  }
26
69
  if (!next) {
27
- el.removeAttribute("style");
70
+ el.removeAttribute('style');
28
71
  }
29
72
  else {
30
73
  // set new styles
31
- el.style = next;
74
+ const style = normalizeStyle(next);
75
+ Object.keys(style).forEach((property) => {
76
+ addStyleProperty(el, property, style[property]);
77
+ });
32
78
  }
33
79
  }
34
80
  //# sourceMappingURL=style.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/renderer/modules/style.ts"],"names":[],"mappings":"AAIA,SAAS,MAAM,CAAC,IAAS;IACvB,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,IAAS;IAC9B,OAAO,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAS;IAClC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAe;IAC/C,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAc,EAAE,IAAW,EAAE,IAAW;IACjE,IAAI,IAAI,EAAE;QACR,yIAAyI;QACzI,wBAAwB;QACxB,MAAM,UAAU,GAAG,WAAW,IAAI,IAAI,CAAC;QACvC,uDAAuD;QACvD,wEAAwE;QAExE,qCAAqC;QACrC,2DAA2D;QAC3D,KAAK;KACN;IAED,IAAI,CAAC,IAAI,EAAE;QACT,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;KAC7B;SAAM;QACL,iBAAiB;QACjB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;KACjB;AACH,CAAC"}
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/renderer/modules/style.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { VNodeProps, RendererOptions } from "@vue/runtime-dom";
2
- import { NSVElement, NSVNode } from "../dom";
1
+ import { VNodeProps, RendererOptions } from '@vue/runtime-core';
2
+ import { NSVElement, NSVNode } from '../dom';
3
3
  export declare function insert(el: NSVNode, parent: NSVElement, anchor?: NSVNode | null | undefined): void;
4
4
  export declare function remove(el: NSVNode): void;
5
5
  export declare function createElement(type: string, isSVG?: boolean | undefined, isCustomizedBuiltIn?: string | undefined, vnodeProps?: (VNodeProps & {
@@ -13,4 +13,5 @@ export declare function parentNode(node: NSVNode): NSVElement | null;
13
13
  export declare function nextSibling(node: NSVNode): NSVNode | null;
14
14
  export declare function cloneNode(node: NSVNode): NSVNode;
15
15
  export declare function insertStaticContent(content: string, parent: NSVElement, anchor: NSVNode, isSvg: boolean, start?: NSVNode, end?: NSVNode): [NSVNode, NSVNode];
16
+ export declare function setScopeId(el: NSVElement, scopeId: string): void;
16
17
  export declare const nodeOps: Omit<RendererOptions, 'patchProp'>;
@@ -1,4 +1,4 @@
1
- import { NSVComment, NSVElement, NSVText } from "../dom";
1
+ import { NSVComment, NSVElement, NSVText } from '../dom';
2
2
  export function insert(el, parent, anchor) {
3
3
  // console.log("insert", el, parent.tagName, anchor);
4
4
  if (anchor !== null) {
@@ -42,14 +42,17 @@ export function nextSibling(node) {
42
42
  return node.nextSibling;
43
43
  }
44
44
  export function cloneNode(node) {
45
- console.log("CLONE NODE");
45
+ console.log('CLONE NODE');
46
46
  return node;
47
47
  }
48
48
  // insertStaticContent?(content: string, parent: HostElement, anchor: HostNode | null, isSVG: boolean, start?: HostNode | null, end?: HostNode | null): [HostNode, HostNode];
49
49
  export function insertStaticContent(content, parent, anchor, isSvg, start, end) {
50
- console.log("insert static content - not implemented.");
50
+ console.log('insert static content - not implemented.');
51
51
  return [undefined, undefined];
52
52
  }
53
+ export function setScopeId(el, scopeId) {
54
+ el.setAttribute(scopeId, '');
55
+ }
53
56
  export const nodeOps = {
54
57
  insert,
55
58
  remove,
@@ -62,7 +65,7 @@ export const nodeOps = {
62
65
  nextSibling,
63
66
  cloneNode,
64
67
  insertStaticContent,
68
+ setScopeId,
65
69
  // querySelector,
66
- // setScopeId,
67
70
  };
68
71
  //# sourceMappingURL=nodeOps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeOps.js","sourceRoot":"","sources":["../../src/renderer/nodeOps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAW,OAAO,EAAE,MAAM,QAAQ,CAAC;AAElE,MAAM,UAAU,MAAM,CACpB,EAAW,EACX,MAAkB,EAClB,MAAmC;IAEnC,qDAAqD;IACrD,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,gCAAgC;QAChC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;KACjC;SAAM;QACL,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KACxB;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAW;IAChC,IAAI,EAAE,CAAC,UAAU,IAAI,IAAI,EAAE;QACzB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC/B;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,KAA2B,EAC3B,mBAAwC,EACxC,UAAqE;IAErE,sCAAsC;IACtC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,6BAA6B;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,gCAAgC;IAChC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAa,EAAE,IAAY;IACjD,uCAAuC;IACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,IAAY;IAC3D,+CAA+C;IAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,6CAA6C;IAC7C,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,OAAO,IAAI,CAAC,WAAW,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AACD,6KAA6K;AAC7K,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,MAAkB,EAClB,MAAe,EACf,KAAc,EACd,KAAe,EACf,GAAa;IAEb,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAExD,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAuC;IACzD,MAAM;IACN,MAAM;IACN,aAAa;IACb,UAAU;IACV,aAAa;IACb,OAAO;IACP,cAAc;IACd,UAAU;IACV,WAAW;IAEX,SAAS;IACT,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;CACjB,CAAC"}
1
+ {"version":3,"file":"nodeOps.js","sourceRoot":"","sources":["../../src/renderer/nodeOps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAW,OAAO,EAAE,MAAM,QAAQ,CAAC;AAElE,MAAM,UAAU,MAAM,CACpB,EAAW,EACX,MAAkB,EAClB,MAAmC;IAEnC,qDAAqD;IACrD,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,gCAAgC;QAChC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;KACjC;SAAM;QACL,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KACxB;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAW;IAChC,IAAI,EAAE,CAAC,UAAU,IAAI,IAAI,EAAE;QACzB,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC/B;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,KAA2B,EAC3B,mBAAwC,EACxC,UAAqE;IAErE,sCAAsC;IACtC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,6BAA6B;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,gCAAgC;IAChC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAa,EAAE,IAAY;IACjD,uCAAuC;IACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAgB,EAAE,IAAY;IAC3D,+CAA+C;IAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,6CAA6C;IAC7C,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,OAAO,IAAI,CAAC,WAAW,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa;IACrC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AACD,6KAA6K;AAC7K,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,MAAkB,EAClB,MAAe,EACf,KAAc,EACd,KAAe,EACf,GAAa;IAEb,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAExD,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAc,EAAE,OAAe;IACxD,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAuC;IACzD,MAAM;IACN,MAAM;IACN,aAAa;IACb,UAAU;IACV,aAAa;IACb,OAAO;IACP,cAAc;IACd,UAAU;IACV,WAAW;IAEX,SAAS;IACT,mBAAmB;IAEnB,UAAU;IAEV,mBAAmB;CACpB,CAAC"}
@@ -1,2 +1,2 @@
1
- import { NSVElement } from "../dom";
1
+ import { NSVElement } from '../dom';
2
2
  export declare function patchProp(el: NSVElement, key: string, prevValue: any, nextValue: any, isSVG: boolean, prevChildren: any, parentComponent: any, parentSuspense: any, unmountChildren: any): void;
@@ -1,22 +1,39 @@
1
- import { patchAttr } from "./modules/attrs";
2
- import { patchClass } from "./modules/class";
3
- import { patchEvent } from "./modules/events";
4
- import { patchStyle } from "./modules/style";
5
- import { isOn } from "../runtimeHelpers";
1
+ import { patchAttr } from './modules/attrs';
2
+ import { patchClass } from './modules/class';
3
+ import { patchEvent } from './modules/events';
4
+ import { patchStyle } from './modules/style';
5
+ import { isOn } from '../runtimeHelpers';
6
+ import { getViewMeta } from '../registry';
6
7
  export function patchProp(el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) {
7
8
  switch (key) {
8
9
  // special
9
- case "class":
10
+ case 'class':
10
11
  // console.log('->patchProp+Class')
11
12
  patchClass(el, nextValue);
12
13
  break;
13
- case "style":
14
+ case 'style':
14
15
  // console.log('->patchProp+Style')
15
16
  patchStyle(el, prevValue, nextValue);
16
17
  break;
17
- case "modelValue":
18
- case "onUpdate:modelValue":
19
- // handled by v-model directive
18
+ case 'modelValue':
19
+ case 'onUpdate:modelValue':
20
+ try {
21
+ // v-model - maps modelValue/onUpdate:modelValue to the correct prop/events from the registry meta
22
+ const { prop, event } = getViewMeta(el.tagName)
23
+ .model;
24
+ if (key === 'modelValue') {
25
+ patchAttr(el, prop, prevValue, nextValue);
26
+ }
27
+ else {
28
+ const cb = nextValue
29
+ ? ($event) => nextValue($event.object[prop])
30
+ : nextValue;
31
+ patchEvent(el, `on:${event}`, prevValue, cb);
32
+ }
33
+ }
34
+ catch (err) {
35
+ // ignore if the view meta can't be found.
36
+ }
20
37
  break;
21
38
  default:
22
39
  if (isOn(key)) {
@@ -1 +1 @@
1
- {"version":3,"file":"patchProp.js","sourceRoot":"","sources":["../../src/renderer/patchProp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,MAAM,UAAU,SAAS,CACvB,EAAc,EACd,GAAW,EACX,SAAc,EACd,SAAc,EACd,KAAK,GAAG,KAAK,EACb,YAAiB,EACjB,eAAoB,EACpB,cAAmB,EACnB,eAAoB;IAEpB,QAAQ,GAAG,EAAE;QACX,UAAU;QACV,KAAK,OAAO;YACV,mCAAmC;YACnC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC1B,MAAM;QACR,KAAK,OAAO;YACV,mCAAmC;YACnC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB;YACxB,+BAA+B;YAC/B,MAAM;QACR;YACE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;gBACb,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;aAC5D;iBAAM;gBACL,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;aAC1C;KACJ;AACH,CAAC"}
1
+ {"version":3,"file":"patchProp.js","sourceRoot":"","sources":["../../src/renderer/patchProp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAsB,MAAM,aAAa,CAAC;AAE9D,MAAM,UAAU,SAAS,CACvB,EAAc,EACd,GAAW,EACX,SAAc,EACd,SAAc,EACd,KAAK,GAAG,KAAK,EACb,YAAiB,EACjB,eAAoB,EACpB,cAAmB,EACnB,eAAoB;IAEpB,QAAQ,GAAG,EAAE;QACX,UAAU;QACV,KAAK,OAAO;YACV,mCAAmC;YACnC,UAAU,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC1B,MAAM;QACR,KAAK,OAAO;YACV,mCAAmC;YACnC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACrC,MAAM;QACR,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB;YACxB,IAAI;gBACF,kGAAkG;gBAClG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;qBAC5C,KAA2B,CAAC;gBAC/B,IAAI,GAAG,KAAK,YAAY,EAAE;oBACxB,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;iBAC3C;qBAAM;oBACL,MAAM,EAAE,GAAG,SAAS;wBAClB,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC5C,CAAC,CAAC,SAAS,CAAC;oBACd,UAAU,CAAC,EAAE,EAAE,MAAM,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;iBAC9C;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,0CAA0C;aAC3C;YACD,MAAM;QACR;YACE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;gBACb,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;aAC5D;iBAAM;gBACL,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;aAC1C;KACJ;AACH,CAAC"}