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.
- package/LICENSE +21 -0
- package/README.md +45 -2
- package/devtools.js +33 -0
- package/dist/compiler.d.ts +1 -1
- package/dist/compiler.js +1 -1
- package/dist/compiler.js.map +1 -1
- package/dist/components/ActionBar.d.ts +1 -1
- package/dist/components/ActionBar.js +6 -5
- package/dist/components/ActionBar.js.map +1 -1
- package/dist/components/ListView.d.ts +2 -2
- package/dist/components/ListView.js +11 -12
- package/dist/components/ListView.js.map +1 -1
- package/dist/components/index.d.ts +6 -2
- package/dist/components/index.js +3 -2
- package/dist/components/index.js.map +1 -1
- package/dist/directives/vModel.d.ts +8 -0
- package/dist/directives/vModel.js +38 -0
- package/dist/directives/vModel.js.map +1 -0
- package/dist/directives/vShow.d.ts +2 -2
- package/dist/directives/vShow.js +4 -4
- package/dist/dom/index.d.ts +1 -1
- package/dist/dom/index.js +7 -8
- package/dist/dom/index.js.map +1 -1
- package/dist/index.d.ts +19 -10
- package/dist/index.js +50 -15
- package/dist/index.js.map +1 -1
- package/dist/nativescript/elements.js +78 -53
- package/dist/nativescript/elements.js.map +1 -1
- package/dist/nativescript/index.d.ts +3 -3
- package/dist/nativescript/index.js +3 -4
- package/dist/nativescript/index.js.map +1 -1
- package/dist/plugins/modals.d.ts +9 -5
- package/dist/plugins/modals.js +50 -32
- package/dist/plugins/modals.js.map +1 -1
- package/dist/plugins/navigation.d.ts +7 -7
- package/dist/plugins/navigation.js +59 -78
- package/dist/plugins/navigation.js.map +1 -1
- package/dist/plugins/templates.d.ts +10 -0
- package/dist/plugins/templates.js +12 -0
- package/dist/plugins/templates.js.map +1 -0
- package/dist/registry/index.d.ts +3 -3
- package/dist/registry/index.js +2 -2
- package/dist/registry/index.js.map +1 -1
- package/dist/renderer/index.js +3 -3
- package/dist/renderer/modules/attrs.d.ts +1 -1
- package/dist/renderer/modules/attrs.js +3 -3
- package/dist/renderer/modules/class.d.ts +1 -1
- package/dist/renderer/modules/class.js +2 -2
- package/dist/renderer/modules/events.d.ts +3 -3
- package/dist/renderer/modules/events.js +8 -2
- package/dist/renderer/modules/events.js.map +1 -1
- package/dist/renderer/modules/style.d.ts +3 -2
- package/dist/renderer/modules/style.js +66 -20
- package/dist/renderer/modules/style.js.map +1 -1
- package/dist/renderer/nodeOps.d.ts +3 -2
- package/dist/renderer/nodeOps.js +7 -4
- package/dist/renderer/nodeOps.js.map +1 -1
- package/dist/renderer/patchProp.d.ts +1 -1
- package/dist/renderer/patchProp.js +27 -10
- package/dist/renderer/patchProp.js.map +1 -1
- package/dist/runtimeHelpers.d.ts +26 -0
- package/dist/runtimeHelpers.js +44 -3
- package/dist/runtimeHelpers.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/withCompiler.js +1 -1
- package/dist/withCompiler.js.map +1 -1
- package/nativescript.webpack.js +122 -14
- package/package.json +35 -12
- package/dist/components/ListView.working.d.ts +0 -44
- package/dist/components/ListView.working.js +0 -126
- package/dist/components/ListView.working.js.map +0 -1
- package/dist/index.mjs.map +0 -7
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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
|
-
|
|
16
|
-
|
|
16
|
+
const ob = unref(frame);
|
|
17
|
+
if (ob instanceof Frame) {
|
|
18
|
+
return ob;
|
|
17
19
|
}
|
|
18
|
-
|
|
19
|
-
|
|
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(
|
|
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
|
|
69
|
-
options = Object.assign({}, options);
|
|
70
|
-
// console.log("$navigateTo");
|
|
28
|
+
export function $navigateTo(target, options) {
|
|
71
29
|
try {
|
|
72
|
-
const frame = resolveFrame(options
|
|
30
|
+
const frame = resolveFrame(options?.frame);
|
|
73
31
|
if (!frame) {
|
|
74
|
-
throw new Error(
|
|
32
|
+
throw new Error('Failed to resolve frame. Make sure your frame exists.');
|
|
75
33
|
}
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
82
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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:
|
|
69
|
+
name: 'fade',
|
|
96
70
|
duration: 10,
|
|
97
71
|
},
|
|
98
|
-
create: () =>
|
|
72
|
+
create: () => view.nativeView,
|
|
99
73
|
});
|
|
100
74
|
// reset the transition to the original one
|
|
101
|
-
frame.once(
|
|
75
|
+
frame.once('navigatedTo', () => {
|
|
102
76
|
frame.currentEntry.transition = originalTransition;
|
|
77
|
+
isReloading = false;
|
|
103
78
|
});
|
|
104
|
-
}
|
|
105
|
-
let
|
|
106
|
-
|
|
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: () =>
|
|
90
|
+
create: () => view.nativeView,
|
|
110
91
|
});
|
|
111
|
-
return
|
|
92
|
+
return view.nativeView;
|
|
112
93
|
}
|
|
113
94
|
catch (e) {
|
|
114
|
-
console.error(
|
|
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
|
|
101
|
+
const frame = resolveFrame(options?.frame);
|
|
121
102
|
if (!frame) {
|
|
122
|
-
throw new Error(
|
|
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":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/plugins/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/dist/registry/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { NSVElement, NSVViewFlags } from
|
|
2
|
-
export
|
|
3
|
-
export
|
|
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
|
};
|
package/dist/registry/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export let defaultViewMeta = {
|
|
2
|
-
viewFlags: 0 // NSVViewFlags.NONE
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/renderer/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createRenderer } from
|
|
2
|
-
import { patchProp } from
|
|
3
|
-
import { nodeOps } from
|
|
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
|
|
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
|
|
2
|
-
import { isAndroid, isIOS } from
|
|
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
|
|
1
|
+
import { NSVElement } from '../../dom';
|
|
2
2
|
export declare function patchClass(el: NSVElement, value: string | null): void;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { NSVElement } from
|
|
2
|
-
import { ComponentInternalInstance } from
|
|
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
|
-
|
|
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
|
|
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
|
|
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;
|
|
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
|
|
2
|
-
|
|
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
|
-
|
|
2
|
-
|
|
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
|
|
5
|
-
|
|
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
|
-
|
|
8
|
-
|
|
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
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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(
|
|
70
|
+
el.removeAttribute('style');
|
|
28
71
|
}
|
|
29
72
|
else {
|
|
30
73
|
// set new styles
|
|
31
|
-
|
|
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":"
|
|
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
|
|
2
|
-
import { NSVElement, NSVNode } from
|
|
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'>;
|
package/dist/renderer/nodeOps.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NSVComment, NSVElement, NSVText } from
|
|
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(
|
|
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(
|
|
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;
|
|
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
|
|
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
|
|
2
|
-
import { patchClass } from
|
|
3
|
-
import { patchEvent } from
|
|
4
|
-
import { patchStyle } from
|
|
5
|
-
import { isOn } from
|
|
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
|
|
10
|
+
case 'class':
|
|
10
11
|
// console.log('->patchProp+Class')
|
|
11
12
|
patchClass(el, nextValue);
|
|
12
13
|
break;
|
|
13
|
-
case
|
|
14
|
+
case 'style':
|
|
14
15
|
// console.log('->patchProp+Style')
|
|
15
16
|
patchStyle(el, prevValue, nextValue);
|
|
16
17
|
break;
|
|
17
|
-
case
|
|
18
|
-
case
|
|
19
|
-
|
|
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;
|
|
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"}
|