ember-native 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +9 -0
- package/README.md +16 -0
- package/addon-main.cjs +4 -0
- package/declarations/components/InspectorSupport.d.ts +32 -0
- package/declarations/components/InspectorSupport.d.ts.map +1 -0
- package/declarations/components/ListView.d.ts +31 -0
- package/declarations/components/ListView.d.ts.map +1 -0
- package/declarations/components/RadListView.d.ts +41 -0
- package/declarations/components/RadListView.d.ts.map +1 -0
- package/declarations/components/index.d.ts +4 -0
- package/declarations/components/index.d.ts.map +1 -0
- package/declarations/dom/element-registry.d.ts +16 -0
- package/declarations/dom/element-registry.d.ts.map +1 -0
- package/declarations/dom/native/FrameElement.d.ts +16 -0
- package/declarations/dom/native/FrameElement.d.ts.map +1 -0
- package/declarations/dom/native/NativeElementNode.d.ts +41 -0
- package/declarations/dom/native/NativeElementNode.d.ts.map +1 -0
- package/declarations/dom/native/PageElement.d.ts +6 -0
- package/declarations/dom/native/PageElement.d.ts.map +1 -0
- package/declarations/dom/native-elements-tag-name-map.d.ts +10 -0
- package/declarations/dom/native-elements-tag-name-map.d.ts.map +1 -0
- package/declarations/dom/nodes/CommentNode.d.ts +7 -0
- package/declarations/dom/nodes/CommentNode.d.ts.map +1 -0
- package/declarations/dom/nodes/DocumentNode.d.ts +47 -0
- package/declarations/dom/nodes/DocumentNode.d.ts.map +1 -0
- package/declarations/dom/nodes/ElementNode.d.ts +18 -0
- package/declarations/dom/nodes/ElementNode.d.ts.map +1 -0
- package/declarations/dom/nodes/PropertyNode.d.ts +13 -0
- package/declarations/dom/nodes/PropertyNode.d.ts.map +1 -0
- package/declarations/dom/nodes/TextNode.d.ts +10 -0
- package/declarations/dom/nodes/TextNode.d.ts.map +1 -0
- package/declarations/dom/nodes/ViewNode.d.ts +49 -0
- package/declarations/dom/nodes/ViewNode.d.ts.map +1 -0
- package/declarations/dom/setup-registry.d.ts +5 -0
- package/declarations/dom/setup-registry.d.ts.map +1 -0
- package/declarations/index.d.ts +4 -0
- package/declarations/index.d.ts.map +1 -0
- package/declarations/instance-initializers/history.d.ts +8 -0
- package/declarations/instance-initializers/history.d.ts.map +1 -0
- package/declarations/services/history.d.ts +9 -0
- package/declarations/services/history.d.ts.map +1 -0
- package/declarations/services/native-router.d.ts +12 -0
- package/declarations/services/native-router.d.ts.map +1 -0
- package/declarations/setup-inspector-support.d.ts +2 -0
- package/declarations/setup-inspector-support.d.ts.map +1 -0
- package/declarations/setup.d.ts +2 -0
- package/declarations/setup.d.ts.map +1 -0
- package/declarations/types/glint.d.ts +47 -0
- package/declarations/types/glint.d.ts.map +1 -0
- package/declarations/types/globals.d.ts +32 -0
- package/declarations/types/globals.d.ts.map +1 -0
- package/dist/_app_/components/ember-native/InspectorSupport.js +1 -0
- package/dist/_app_/components/ember-native/ListView.js +1 -0
- package/dist/_app_/components/ember-native/RadListView.js +1 -0
- package/dist/_app_/components/ember-native/index.js +1 -0
- package/dist/_app_/instance-initializers/ember-native/history.js +1 -0
- package/dist/_app_/services/ember-native/history.js +1 -0
- package/dist/_app_/services/ember-native/native-router.js +1 -0
- package/dist/_rollupPluginBabelHelpers-DZQzmiRH.js +41 -0
- package/dist/_rollupPluginBabelHelpers-DZQzmiRH.js.map +1 -0
- package/dist/components/InspectorSupport.js +75 -0
- package/dist/components/InspectorSupport.js.map +1 -0
- package/dist/components/ListView.js +69 -0
- package/dist/components/ListView.js.map +1 -0
- package/dist/components/RadListView.js +104 -0
- package/dist/components/RadListView.js.map +1 -0
- package/dist/components/index.js +4 -0
- package/dist/components/index.js.map +1 -0
- package/dist/dom/element-registry.js +65 -0
- package/dist/dom/element-registry.js.map +1 -0
- package/dist/dom/native/FrameElement.js +89 -0
- package/dist/dom/native/FrameElement.js.map +1 -0
- package/dist/dom/native/NativeElementNode.js +380 -0
- package/dist/dom/native/NativeElementNode.js.map +1 -0
- package/dist/dom/native/PageElement.js +11 -0
- package/dist/dom/native/PageElement.js.map +1 -0
- package/dist/dom/native-elements-tag-name-map.js +2 -0
- package/dist/dom/native-elements-tag-name-map.js.map +1 -0
- package/dist/dom/nodes/CommentNode.js +15 -0
- package/dist/dom/nodes/CommentNode.js.map +1 -0
- package/dist/dom/nodes/DocumentNode.js +198 -0
- package/dist/dom/nodes/DocumentNode.js.map +1 -0
- package/dist/dom/nodes/ElementNode.js +267 -0
- package/dist/dom/nodes/ElementNode.js.map +1 -0
- package/dist/dom/nodes/PropertyNode.js +39 -0
- package/dist/dom/nodes/PropertyNode.js.map +1 -0
- package/dist/dom/nodes/TextNode.js +35 -0
- package/dist/dom/nodes/TextNode.js.map +1 -0
- package/dist/dom/nodes/ViewNode.js +211 -0
- package/dist/dom/nodes/ViewNode.js.map +1 -0
- package/dist/dom/setup-registry.js +66 -0
- package/dist/dom/setup-registry.js.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-initializers/history.js +11 -0
- package/dist/instance-initializers/history.js.map +1 -0
- package/dist/services/history.js +58 -0
- package/dist/services/history.js.map +1 -0
- package/dist/services/native-router.js +34 -0
- package/dist/services/native-router.js.map +1 -0
- package/dist/setup-inspector-support.js +158 -0
- package/dist/setup-inspector-support.js.map +1 -0
- package/dist/setup.js +46 -0
- package/dist/setup.js.map +1 -0
- package/dist/types/glint.js +4 -0
- package/dist/types/glint.js.map +1 -0
- package/dist/types/globals.js +2 -0
- package/dist/types/globals.js.map +1 -0
- package/dist/utils/content-tag-loader.js +9 -0
- package/dist/utils/ember-native.js +9 -0
- package/dist/utils/eslint/ember-native.js +9 -0
- package/dist/utils/fix-glimmer-content-owner.js +13 -0
- package/dist/utils/glimmer-env.js +3 -0
- package/dist/utils/webpack.config.js +72 -0
- package/package.json +174 -0
- package/types/ember.d.ts +1 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare module '*.scss';
|
|
2
|
+
type AnyFunction = (...args: any) => any;
|
|
3
|
+
declare namespace globalThis {
|
|
4
|
+
var define: AnyFunction;
|
|
5
|
+
var requirejs: AnyFunction;
|
|
6
|
+
var requireModule: AnyFunction;
|
|
7
|
+
var Element: import('../dom/nodes/ElementNode.ts').default;
|
|
8
|
+
var Node: import('../dom/nodes/ElementNode.ts').default;
|
|
9
|
+
var __metadata: AnyFunction;
|
|
10
|
+
var __decorate: AnyFunction;
|
|
11
|
+
var __inspectorSendEvent: AnyFunction;
|
|
12
|
+
var emberDebugInjected: boolean;
|
|
13
|
+
var MessageChannel: MessageChannel;
|
|
14
|
+
var postMessage: AnyFunction;
|
|
15
|
+
var triggerEvent: AnyFunction;
|
|
16
|
+
var EmberInspector: any;
|
|
17
|
+
}
|
|
18
|
+
interface Document {
|
|
19
|
+
nodeMap: any;
|
|
20
|
+
}
|
|
21
|
+
declare module 'loader.js' {
|
|
22
|
+
const require: AnyFunction;
|
|
23
|
+
const define: AnyFunction;
|
|
24
|
+
}
|
|
25
|
+
type ViewBase = import('@nativescript/core').ViewBase;
|
|
26
|
+
type NativeElementNode<T extends ViewBase> = import('../dom/native/NativeElementNode').default<T>;
|
|
27
|
+
interface HTMLElementTagNameMap {
|
|
28
|
+
'rad-list-view': NativeElementNode<import('nativescript-ui-listview').RadListView>;
|
|
29
|
+
'list-view': NativeElementNode<import('@nativescript/core').ListView>;
|
|
30
|
+
'html-view': NativeElementNode<import('@nativescript/core').HtmlView>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=globals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../src/types/globals.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,QAAQ,CAAC;AAExB,KAAK,WAAW,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;AAIzC,OAAO,WAAQ,UAAU,CAAC;IACxB,IAAI,MAAM,EAAE,WAAW,CAAC;IACxB,IAAI,SAAS,EAAE,WAAW,CAAC;IAC3B,IAAI,aAAa,EAAE,WAAW,CAAC;IAE/B,IAAI,OAAO,EAAE,OAAO,6BAA6B,EAAE,OAAO,CAAC;IAE3D,IAAI,IAAI,EAAE,OAAO,6BAA6B,EAAE,OAAO,CAAC;IACxD,IAAI,UAAU,EAAE,WAAW,CAAC;IAC5B,IAAI,UAAU,EAAE,WAAW,CAAC;IAC5B,IAAI,oBAAoB,EAAE,WAAW,CAAC;IACtC,IAAI,kBAAkB,EAAE,OAAO,CAAC;IAEhC,IAAI,cAAc,EAAE,cAAc,CAAC;IAEnC,IAAI,WAAW,EAAE,WAAW,CAAC;IAC7B,IAAI,YAAY,EAAE,WAAW,CAAC;IAC9B,IAAI,cAAc,EAAE,GAAG,CAAC;CACzB;AAGD,UAAU,QAAQ;IAChB,OAAO,EAAE,GAAG,CAAC;CACd;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,MAAM,OAAO,EAAE,WAAW,CAAC;IAC3B,MAAM,MAAM,EAAE,WAAW,CAAC;CAC3B;AAED,KAAK,QAAQ,GAAG,OAAO,oBAAoB,EAAE,QAAQ,CAAC;AACtD,KAAK,iBAAiB,CAAC,CAAC,SAAS,QAAQ,IACvC,OAAO,iCAAiC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAGvD,UAAU,qBAAqB;IAC7B,eAAe,EAAE,iBAAiB,CAChC,OAAO,0BAA0B,EAAE,WAAW,CAC/C,CAAC;IACF,WAAW,EAAE,iBAAiB,CAAC,OAAO,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IACtE,WAAW,EAAE,iBAAiB,CAAC,OAAO,oBAAoB,EAAE,QAAQ,CAAC,CAAC;CACvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/components/InspectorSupport";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/components/ListView";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/components/RadListView";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/components/index";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/instance-initializers/history";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/services/history";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/services/native-router";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function _applyDecoratedDescriptor(i, e, r, n, l) {
|
|
2
|
+
var a = {};
|
|
3
|
+
return Object.keys(n).forEach(function (i) {
|
|
4
|
+
a[i] = n[i];
|
|
5
|
+
}), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) {
|
|
6
|
+
return n(i, e, r) || r;
|
|
7
|
+
}, a), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a;
|
|
8
|
+
}
|
|
9
|
+
function _defineProperty(e, r, t) {
|
|
10
|
+
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
11
|
+
value: t,
|
|
12
|
+
enumerable: !0,
|
|
13
|
+
configurable: !0,
|
|
14
|
+
writable: !0
|
|
15
|
+
}) : e[r] = t, e;
|
|
16
|
+
}
|
|
17
|
+
function _initializerDefineProperty(e, i, r, l) {
|
|
18
|
+
r && Object.defineProperty(e, i, {
|
|
19
|
+
enumerable: r.enumerable,
|
|
20
|
+
configurable: r.configurable,
|
|
21
|
+
writable: r.writable,
|
|
22
|
+
value: r.initializer ? r.initializer.call(l) : void 0
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function _toPrimitive(t, r) {
|
|
26
|
+
if ("object" != typeof t || !t) return t;
|
|
27
|
+
var e = t[Symbol.toPrimitive];
|
|
28
|
+
if (void 0 !== e) {
|
|
29
|
+
var i = e.call(t, r || "default");
|
|
30
|
+
if ("object" != typeof i) return i;
|
|
31
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
32
|
+
}
|
|
33
|
+
return ("string" === r ? String : Number)(t);
|
|
34
|
+
}
|
|
35
|
+
function _toPropertyKey(t) {
|
|
36
|
+
var i = _toPrimitive(t, "string");
|
|
37
|
+
return "symbol" == typeof i ? i : i + "";
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export { _defineProperty as _, _applyDecoratedDescriptor as a, _initializerDefineProperty as b };
|
|
41
|
+
//# sourceMappingURL=_rollupPluginBabelHelpers-DZQzmiRH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_rollupPluginBabelHelpers-DZQzmiRH.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { _ as _defineProperty } from '../_rollupPluginBabelHelpers-DZQzmiRH.js';
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { modifier } from 'ember-modifier';
|
|
4
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
5
|
+
import { setComponentTemplate } from '@ember/component';
|
|
6
|
+
|
|
7
|
+
var _InspectorSupport;
|
|
8
|
+
const ref = modifier(function setRef(element, [context, key]) {
|
|
9
|
+
// console.log('ref', element, context, key);
|
|
10
|
+
context[key] = element;
|
|
11
|
+
});
|
|
12
|
+
class InspectorSupport extends Component {
|
|
13
|
+
constructor(...args) {
|
|
14
|
+
super(...args);
|
|
15
|
+
_defineProperty(this, "highlight", void 0);
|
|
16
|
+
_defineProperty(this, "tooltip", void 0);
|
|
17
|
+
_defineProperty(this, "page", void 0);
|
|
18
|
+
_defineProperty(this, "ownerDocument", void 0);
|
|
19
|
+
_defineProperty(this, "setupInspector", () => {
|
|
20
|
+
let i = setInterval(() => {
|
|
21
|
+
const viewInspection = globalThis.EmberInspector?.viewDebug?.viewInspection;
|
|
22
|
+
if (viewInspection && this.tooltip) {
|
|
23
|
+
this.tooltip.querySelector = () => {
|
|
24
|
+
return {
|
|
25
|
+
style: {}
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
viewInspection._showTooltip = () => {};
|
|
29
|
+
const _showHighlight = viewInspection._showHighlight;
|
|
30
|
+
viewInspection._hideHighlight = () => {
|
|
31
|
+
this.highlight.setAttribute('visibility', 'collapse');
|
|
32
|
+
};
|
|
33
|
+
viewInspection._showHighlight = (node, rect) => {
|
|
34
|
+
_showHighlight.call(this, node, rect);
|
|
35
|
+
this.highlight.setAttribute('visibility', 'visible');
|
|
36
|
+
const style = this.highlight.style;
|
|
37
|
+
style.width = style.width.value;
|
|
38
|
+
style.height = style.height.value;
|
|
39
|
+
const pos = this.page.nativeView.getLocationInWindow() || {
|
|
40
|
+
x: 0,
|
|
41
|
+
y: 0
|
|
42
|
+
};
|
|
43
|
+
this.highlight.setAttribute('left', Number(style.left.replace('px', '')) - pos.x);
|
|
44
|
+
this.highlight.setAttribute('top', Number(style.top.replace('px', '')) - pos.y);
|
|
45
|
+
};
|
|
46
|
+
viewInspection.highlight = this.highlight;
|
|
47
|
+
viewInspection.tooltip = this.tooltip;
|
|
48
|
+
const id = viewInspection.id;
|
|
49
|
+
viewInspection.highlight.id = `ember-inspector-highlight-${id}`;
|
|
50
|
+
viewInspection.tooltip.id = `ember-inspector-tooltip-${id}`;
|
|
51
|
+
clearInterval(i);
|
|
52
|
+
}
|
|
53
|
+
}, 1000);
|
|
54
|
+
});
|
|
55
|
+
_defineProperty(this, "setupHighlight", modifier(function setupHighlight(element) {
|
|
56
|
+
this.highlight = element;
|
|
57
|
+
this.highlight.setAttribute('visibility', 'collapse');
|
|
58
|
+
this.ownerDocument = element.ownerDocument;
|
|
59
|
+
}.bind(this)));
|
|
60
|
+
_defineProperty(this, "setupTooltip", modifier(function setupTooltip(element) {
|
|
61
|
+
this.tooltip = element;
|
|
62
|
+
this.tooltip.setAttribute('visibility', 'collapse');
|
|
63
|
+
}.bind(this)));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
_InspectorSupport = InspectorSupport;
|
|
67
|
+
setComponentTemplate(precompileTemplate("\n <absolute-layout {{ref this \"page\"}}>\n <html-view {{this.setupHighlight}} />\n <html-view {{this.setupTooltip}} zIndex=\"99\" />\n {{(this.setupInspector)}}\n <content-view left=\"0\" top=\"0\" width=\"100%\" height=\"100%\">\n <frame>\n {{yield}}\n </frame>\n </content-view>\n </absolute-layout>\n ", {
|
|
68
|
+
strictMode: true,
|
|
69
|
+
scope: () => ({
|
|
70
|
+
ref
|
|
71
|
+
})
|
|
72
|
+
}), _InspectorSupport);
|
|
73
|
+
|
|
74
|
+
export { InspectorSupport as default };
|
|
75
|
+
//# sourceMappingURL=InspectorSupport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InspectorSupport.js","sources":["../../src/components/InspectorSupport.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport ViewNode from '../dom/nodes/ViewNode.ts';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\nimport type PageElement from '../dom/native/PageElement.ts';\n\nconst ref = modifier(function setRef(element: any, [context, key]: any) {\n // console.log('ref', element, context, key);\n context[key] = element;\n});\n\ninterface InspectorSupportInterface {\n Blocks: {\n default: [];\n };\n}\n\nexport default class InspectorSupport extends Component<InspectorSupportInterface> {\n declare highlight: NativeElementNode;\n declare tooltip: NativeElementNode;\n declare page: PageElement;\n declare ownerDocument: DocumentNode;\n setupInspector = () => {\n let i = setInterval(() => {\n const viewInspection =\n globalThis.EmberInspector?.viewDebug?.viewInspection;\n if (viewInspection && this.tooltip) {\n this.tooltip.querySelector = () => {\n return {\n style: {},\n };\n };\n viewInspection._showTooltip = () => {};\n const _showHighlight = viewInspection._showHighlight;\n viewInspection._hideHighlight = () => {\n this.highlight.setAttribute('visibility', 'collapse');\n };\n viewInspection._showHighlight = (node: ViewNode, rect: any) => {\n _showHighlight.call(this, node, rect);\n this.highlight.setAttribute('visibility', 'visible');\n const style = this.highlight.style as any;\n style.width = (style.width as any).value;\n style.height = (style.height as any).value;\n const pos = this.page.nativeView.getLocationInWindow() || {\n x: 0,\n y: 0,\n };\n this.highlight.setAttribute(\n 'left',\n Number(style.left!.replace('px', '')) - pos.x,\n );\n this.highlight.setAttribute(\n 'top',\n Number(style.top!.replace('px', '')) - pos.y,\n );\n };\n viewInspection.highlight = this.highlight;\n viewInspection.tooltip = this.tooltip;\n const id = viewInspection.id;\n\n viewInspection.highlight.id = `ember-inspector-highlight-${id}`;\n viewInspection.tooltip.id = `ember-inspector-tooltip-${id}`;\n clearInterval(i);\n }\n }, 1000);\n };\n\n setupHighlight = modifier(\n function setupHighlight(\n this: InspectorSupport,\n element: NativeElementNode,\n ) {\n this.highlight = element;\n this.highlight.setAttribute('visibility', 'collapse');\n this.ownerDocument = element.ownerDocument!;\n }.bind(this),\n );\n setupTooltip = modifier(\n function setupTooltip(this: InspectorSupport, element: NativeElementNode) {\n this.tooltip = element;\n this.tooltip.setAttribute('visibility', 'collapse');\n }.bind(this),\n );\n <template>\n <absolute-layout {{ref this 'page'}}>\n <html-view {{this.setupHighlight}} />\n <html-view {{this.setupTooltip}} zIndex='99' />\n {{(this.setupInspector)}}\n <content-view left='0' top='0' width='100%' height='100%'>\n <frame>\n {{yield}}\n </frame>\n </content-view>\n </absolute-layout>\n </template>\n}\n"],"names":["ref","modifier","setRef","element","context","key","InspectorSupport","Component","constructor","args","_defineProperty","setupInspector","i","setInterval","viewInspection","globalThis","EmberInspector","viewDebug","tooltip","querySelector","style","_showTooltip","_showHighlight","_hideHighlight","highlight","setAttribute","node","rect","call","width","value","height","pos","page","nativeView","getLocationInWindow","x","y","Number","left","replace","top","id","clearInterval","setupHighlight","ownerDocument","bind","setupTooltip","_InspectorSupport","template_a9980fff4e2847edbb7e3e2f964dac5e","strictMode","scope"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { a as _applyDecoratedDescriptor, b as _initializerDefineProperty, _ as _defineProperty } from '../_rollupPluginBabelHelpers-DZQzmiRH.js';
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { modifier } from 'ember-modifier';
|
|
4
|
+
import { tracked } from '@glimmer/tracking';
|
|
5
|
+
import DocumentNode from '../dom/nodes/DocumentNode.js';
|
|
6
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
7
|
+
import { setComponentTemplate } from '@ember/component';
|
|
8
|
+
|
|
9
|
+
var _class, _descriptor, _ListView;
|
|
10
|
+
let ListView = (_class = (_ListView = class ListView extends Component {
|
|
11
|
+
constructor(...args) {
|
|
12
|
+
super(...args);
|
|
13
|
+
_initializerDefineProperty(this, "elementRefs", _descriptor, this);
|
|
14
|
+
_defineProperty(this, "setupListView", modifier(function setupListView(listView) {
|
|
15
|
+
const listViewComponent = this;
|
|
16
|
+
function _getDefaultItemContent(index) {
|
|
17
|
+
listViewComponent.cleanup(listView);
|
|
18
|
+
const sl = DocumentNode.createElement('stack-layout');
|
|
19
|
+
listViewComponent.elementRefs.push({
|
|
20
|
+
element: sl,
|
|
21
|
+
item: null,
|
|
22
|
+
index
|
|
23
|
+
});
|
|
24
|
+
listViewComponent.elementRefs = [...listViewComponent.elementRefs];
|
|
25
|
+
return sl.nativeView;
|
|
26
|
+
}
|
|
27
|
+
listView.nativeView._getDefaultItemContent = _getDefaultItemContent;
|
|
28
|
+
listView.nativeView._prepareItem = (stackLayout, index) => {
|
|
29
|
+
const ref = listViewComponent.elementRefs.find(e => e.element.nativeView === stackLayout);
|
|
30
|
+
ref.index = index;
|
|
31
|
+
listViewComponent.elementRefs = [...listViewComponent.elementRefs];
|
|
32
|
+
};
|
|
33
|
+
}.bind(this)));
|
|
34
|
+
}
|
|
35
|
+
get items() {
|
|
36
|
+
return this.elementRefs.map(({
|
|
37
|
+
element,
|
|
38
|
+
index
|
|
39
|
+
}) => {
|
|
40
|
+
return {
|
|
41
|
+
index,
|
|
42
|
+
item: this.args.items[index] || null,
|
|
43
|
+
element
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
cleanup(listView) {
|
|
48
|
+
for (const elementRef of this.elementRefs) {
|
|
49
|
+
const n = elementRef.element.nativeView.nativeViewProtected;
|
|
50
|
+
if (!n || !n.getWindowToken()) {
|
|
51
|
+
elementRef.element.parentNode.removeChild(elementRef.element);
|
|
52
|
+
listView.nativeView._realizedItems.delete(elementRef.element.nativeView);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
this.elementRefs = this.elementRefs.filter(e => !!e.element.nativeView.nativeViewProtected?.getWindowToken());
|
|
56
|
+
}
|
|
57
|
+
}, setComponentTemplate(precompileTemplate("\n <list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{#each this.items as |item|}}\n {{#in-element item.element}}\n {{yield item.item to=\"item\"}}\n {{/in-element}}\n {{/each}}\n ", {
|
|
58
|
+
strictMode: true
|
|
59
|
+
}), _ListView), _ListView), _descriptor = _applyDecoratedDescriptor(_class.prototype, "elementRefs", [tracked], {
|
|
60
|
+
configurable: true,
|
|
61
|
+
enumerable: true,
|
|
62
|
+
writable: true,
|
|
63
|
+
initializer: function () {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
}), _class);
|
|
67
|
+
|
|
68
|
+
export { ListView as default };
|
|
69
|
+
//# sourceMappingURL=ListView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListView.js","sources":["../../src/components/ListView.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport type {\n ListView as NativeListView,\n StackLayout,\n} from '@nativescript/core';\nimport { tracked } from '@glimmer/tracking';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\n\ninterface ListViewInterface<T> {\n Element: NativeElementNode<NativeListView>;\n Args: {\n items: T[];\n };\n Blocks: {\n item: [T | null];\n };\n}\n\ntype Ref<T> = {\n index: number;\n item: T | null;\n element: NativeElementNode<any>;\n};\n\nexport default class ListView<T> extends Component<ListViewInterface<T>> {\n @tracked elementRefs: Ref<T>[] = [];\n\n get items(): Ref<T>[] {\n return this.elementRefs.map(({ element, index }) => {\n return {\n index,\n item: this.args.items[index] || null,\n element,\n };\n });\n }\n\n cleanup(listView: NativeElementNode<NativeListView>) {\n for (const elementRef of this.elementRefs) {\n const n = elementRef.element.nativeView.nativeViewProtected;\n if (!n || !n.getWindowToken()) {\n elementRef.element.parentNode!.removeChild(elementRef.element);\n ((listView.nativeView as any)._realizedItems as any).delete(\n elementRef.element.nativeView,\n );\n }\n }\n this.elementRefs = this.elementRefs.filter(\n (e) => !!e.element.nativeView.nativeViewProtected?.getWindowToken(),\n ) as Ref<T>[];\n }\n\n setupListView = modifier(\n function setupListView(\n this: ListView<T>,\n listView: NativeElementNode<NativeListView>,\n ) {\n const listViewComponent = this;\n function _getDefaultItemContent(index: number) {\n listViewComponent.cleanup(listView);\n const sl = DocumentNode.createElement('stack-layout');\n listViewComponent.elementRefs.push({\n element: sl,\n item: null,\n index,\n });\n listViewComponent.elementRefs = [...listViewComponent.elementRefs];\n return sl.nativeView;\n }\n (listView.nativeView as any)._getDefaultItemContent =\n _getDefaultItemContent;\n (listView.nativeView as any)._prepareItem = (\n stackLayout: StackLayout,\n index: number,\n ) => {\n const ref = listViewComponent.elementRefs.find(\n (e) => e.element.nativeView === stackLayout,\n )!;\n ref.index = index;\n listViewComponent.elementRefs = [...listViewComponent.elementRefs];\n };\n }.bind(this),\n );\n\n <template>\n <list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{#each this.items as |item|}}\n {{#in-element item.element}}\n {{yield item.item to='item'}}\n {{/in-element}}\n {{/each}}\n </template>\n}\n"],"names":["ListView","_class","_ListView","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","modifier","setupListView","listView","listViewComponent","_getDefaultItemContent","index","cleanup","sl","DocumentNode","createElement","elementRefs","push","element","item","nativeView","_prepareItem","stackLayout","ref","find","e","bind","items","map","elementRef","n","nativeViewProtected","getWindowToken","parentNode","removeChild","_realizedItems","delete","filter","setComponentTemplate","template_19819cbdc8b544d9bc9bbfd3f9b07aae","strictMode","_applyDecoratedDescriptor","prototype","tracked"],"mappings":";;;;;;;;;AA0BqBA,IAAAA,QAAA,IAAAC,MAAA,IAAAC,SAAA,GAAN,MAAMF,QAAA,SAAoBG,SAAA,CAA4B;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AAAAC,IAAAA,0BAAA,sBAAAC,WAAA,EAAA,IAAA,CAAA;AAAAC,IAAAA,eAAA,wBA4BnDC,QAAA,CACd,SAASC,aACPA,CACAC,QAA2C,EAAA;MAE3C,MAAMC,oBAAoB,IAAI;MAC9B,SAASC,sBAAAA,CAAuBC,KAAa,EAAA;AAC3CF,QAAAA,iBAAA,CAAkBG,OAAO,CAACJ,QAAA,CAAA;AAC1B,QAAA,MAAMK,EAAA,GAAKC,YAAa,CAAAC,aAAa,CAAC,cAAA,CAAA;AACtCN,QAAAA,iBAAkB,CAAAO,WAAW,CAACC,IAAI,CAAC;AACjCC,UAAAA,OAAS,EAAAL,EAAA;AACTM,UAAAA,IAAM,EAAA,IAAA;AACNR,UAAAA;AACF,SAAA,CAAA;QACAF,iBAAA,CAAkBO,WAAW,GAAG,CAAI,GAAAP,iBAAA,CAAkBO,WAAW,CAAC;QAClE,OAAOH,GAAGO,UAAU;AACtB;AACCZ,MAAAA,SAASY,UAAU,CAASV,sBAAsB,GACjDA,sBAAA;MACDF,QAAA,CAASY,UAAU,CAASC,YAAY,GAAG,CAC1CC,WACA,EAAAX,KAAa,KAAA;AAEb,QAAA,MAAMY,GAAM,GAAAd,iBAAA,CAAkBO,WAAW,CAACQ,IAAI,CAC3CC,CAAA,IAAMA,CAAE,CAAAP,OAAO,CAACE,UAAU,KAAKE,WAAA,CAAA;QAElCC,GAAA,CAAIZ,KAAK,GAAGA,KAAA;QACZF,iBAAA,CAAkBO,WAAW,GAAG,CAAI,GAAAP,iBAAA,CAAkBO,WAAW,CAAC;OACpE;AACF,KAAE,CAAAU,IAAI,CAAC,IAAI,CACX,CAAA,CAAA;AAAA;EAvDF,IAAIC,KAAAA,GAAkB;AACpB,IAAA,OAAO,IAAI,CAACX,WAAW,CAACY,GAAG,CAAC,CAAC;MAAEV,OAAO;AAAEP,MAAAA;AAAO,KAAA,KAAA;MAC7C,OAAO;QACLA,KAAA;QACAQ,IAAA,EAAM,IAAI,CAACjB,IAAI,CAACyB,KAAK,CAAChB,MAAM,IAAI,IAAA;AAChCO,QAAAA;OACF;AACF,KAAA,CAAA;AACF;EAEAN,OAAQA,CAAAJ,QAA2C,EAAE;AACnD,IAAA,KAAK,MAAMqB,UAAA,IAAc,IAAI,CAACb,WAAW,EAAE;MACzC,MAAMc,IAAID,UAAW,CAAAX,OAAO,CAACE,UAAU,CAACW,mBAAmB;MAC3D,IAAI,CAACD,CAAA,IAAK,CAACA,CAAA,CAAEE,cAAc,EAAI,EAAA;QAC7BH,UAAA,CAAWX,OAAO,CAACe,UAAU,CAAEC,WAAW,CAACL,WAAWX,OAAO,CAAA;AAC3DV,QAAAA,QAAA,CAASY,UAAU,CAASe,cAAc,CAASC,MAAM,CACzDP,UAAW,CAAAX,OAAO,CAACE,UAAU,CAAA;AAEjC;AACF;IACA,IAAI,CAACJ,WAAW,GAAG,IAAI,CAACA,WAAW,CAACqB,MAAM,CACvCZ,KAAM,CAAC,CAACA,EAAEP,OAAO,CAACE,UAAU,CAACW,mBAAmB,EAAEC,cAAA,EAAA,CAC5C;AACX;AA0CF,CAAA,EAAAM,oBAAA,CAREC,kBAAAA,CAOA,sOAAA,EAAA;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAzC,SAAA,CAAA,EAAAA,SAAA,CAAAK,EAAAA,WAAA,GAAAqC,yBAAA,CAAA3C,MAAA,CAAA4C,SAAA,kBAlETC,OAAAA,CAAAA,EAAAA;EAAAA,YAAAA,EAAAA,IAAAA;EAAAA,UAAAA,EAAAA,IAAAA;EAAAA,QAAAA,EAAAA,IAAAA;AAAAA,EAAAA,WAAAA,cAAAA;AAAAA,IAAAA,OAAgC,EAAE;AAAA;AAAA,CAAA,CAAA,EAAA7C,MAAA;;;;"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { a as _applyDecoratedDescriptor, b as _initializerDefineProperty, _ as _defineProperty } from '../_rollupPluginBabelHelpers-DZQzmiRH.js';
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { modifier } from 'ember-modifier';
|
|
4
|
+
import { tracked } from '@glimmer/tracking';
|
|
5
|
+
import { ListViewViewType } from 'nativescript-ui-listview';
|
|
6
|
+
import DocumentNode from '../dom/nodes/DocumentNode.js';
|
|
7
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
8
|
+
import { setComponentTemplate } from '@ember/component';
|
|
9
|
+
|
|
10
|
+
var _class, _descriptor, _class2, _descriptor2, _RadListView;
|
|
11
|
+
let TrackedMap = (_class = class TrackedMap extends Map {
|
|
12
|
+
constructor(...args) {
|
|
13
|
+
super(...args);
|
|
14
|
+
_initializerDefineProperty(this, "counter", _descriptor, this);
|
|
15
|
+
}
|
|
16
|
+
set(key, value) {
|
|
17
|
+
this.counter += 1;
|
|
18
|
+
super.set(key, value);
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
get(key) {
|
|
22
|
+
if (this.counter === 0) return null;
|
|
23
|
+
return super.get(key);
|
|
24
|
+
}
|
|
25
|
+
entries() {
|
|
26
|
+
if (this.counter === 0) return super.entries();
|
|
27
|
+
return super.entries();
|
|
28
|
+
}
|
|
29
|
+
}, _descriptor = _applyDecoratedDescriptor(_class.prototype, "counter", [tracked], {
|
|
30
|
+
configurable: true,
|
|
31
|
+
enumerable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
initializer: function () {
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
}), _class);
|
|
37
|
+
let RadListView = (_class2 = (_RadListView = class RadListView extends Component {
|
|
38
|
+
constructor(...args) {
|
|
39
|
+
super(...args);
|
|
40
|
+
_defineProperty(this, "elementRefs", new TrackedMap());
|
|
41
|
+
_initializerDefineProperty(this, "listView", _descriptor2, this);
|
|
42
|
+
_defineProperty(this, "headerElement", void 0);
|
|
43
|
+
_defineProperty(this, "footerElement", void 0);
|
|
44
|
+
_defineProperty(this, "setupListView", modifier(function setupListView(listView) {
|
|
45
|
+
this.listView = listView;
|
|
46
|
+
const listViewComponent = this;
|
|
47
|
+
function _getDefaultItemContent() {
|
|
48
|
+
const sl = DocumentNode.createElement('stack-layout');
|
|
49
|
+
Object.defineProperty(sl.nativeView, 'parent', {
|
|
50
|
+
get() {
|
|
51
|
+
return this._parent;
|
|
52
|
+
},
|
|
53
|
+
set(v) {
|
|
54
|
+
this._parent = v;
|
|
55
|
+
Object.defineProperty(v, 'bindingContext', {
|
|
56
|
+
get() {
|
|
57
|
+
return listViewComponent.elementRefs.get(sl);
|
|
58
|
+
},
|
|
59
|
+
set(v) {
|
|
60
|
+
listViewComponent.elementRefs.set(sl, v);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return sl.nativeView;
|
|
66
|
+
}
|
|
67
|
+
listView.nativeView.itemViewLoader = type => {
|
|
68
|
+
switch (type) {
|
|
69
|
+
case ListViewViewType.ItemView:
|
|
70
|
+
return _getDefaultItemContent();
|
|
71
|
+
case ListViewViewType.HeaderView:
|
|
72
|
+
return this.headerElement.nativeView;
|
|
73
|
+
case ListViewViewType.FooterView:
|
|
74
|
+
return this.footerElement.nativeView;
|
|
75
|
+
}
|
|
76
|
+
return DocumentNode.createElement('stack-layout').nativeView;
|
|
77
|
+
};
|
|
78
|
+
}.bind(this)));
|
|
79
|
+
_defineProperty(this, "setupHeader", () => {
|
|
80
|
+
this.headerElement = DocumentNode.createElement('stack-layout');
|
|
81
|
+
});
|
|
82
|
+
_defineProperty(this, "setupFooter", () => {
|
|
83
|
+
this.footerElement = DocumentNode.createElement('stack-layout');
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
get items() {
|
|
87
|
+
return [...this.elementRefs.entries()].map(([element, item]) => {
|
|
88
|
+
return {
|
|
89
|
+
item,
|
|
90
|
+
element
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}, setComponentTemplate(precompileTemplate("\n <rad-list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{#if this.listView}}\n {{#if (has-block \"header\")}}\n {{this.setupHeader}}\n {{#in-element this.headerElement}}\n {{yield to=\"header\"}}\n {{/in-element}}\n {{/if}}\n {{#each this.items as |item|}}\n {{#in-element item.element}}\n {{yield item.item to=\"item\"}}\n {{/in-element}}\n {{/each}}\n {{#if (has-block \"footer\")}}\n {{this.setupFooter}}\n {{#in-element this.footerElement}}\n {{yield to=\"footer\"}}\n {{/in-element}}\n {{/if}}\n {{/if}}\n ", {
|
|
95
|
+
strictMode: true
|
|
96
|
+
}), _RadListView), _RadListView), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "listView", [tracked], {
|
|
97
|
+
configurable: true,
|
|
98
|
+
enumerable: true,
|
|
99
|
+
writable: true,
|
|
100
|
+
initializer: null
|
|
101
|
+
}), _class2);
|
|
102
|
+
|
|
103
|
+
export { RadListView as default };
|
|
104
|
+
//# sourceMappingURL=RadListView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadListView.js","sources":["../../src/components/RadListView.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport { tracked } from '@glimmer/tracking';\nimport {\n RadListView as NativeRadListView,\n ListViewViewType,\n} from 'nativescript-ui-listview';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\nimport type { StackLayout } from '@nativescript/core';\n\nclass TrackedMap extends Map<any, any> {\n @tracked counter = 0;\n set(key: any, value: any): this {\n this.counter += 1;\n super.set(key, value);\n return this;\n }\n\n get(key: any): any {\n if (this.counter === 0) return null;\n return super.get(key);\n }\n\n entries(): any {\n if (this.counter === 0) return super.entries();\n return super.entries();\n }\n}\n\ninterface RadListViewInterface<T> {\n Element: NativeElementNode<NativeRadListView>;\n Args: {\n items: T[];\n };\n Blocks: {\n header: [];\n footer: [];\n item: [T];\n };\n}\n\nexport default class RadListView<T = any> extends Component<\n RadListViewInterface<T>\n> {\n elementRefs: TrackedMap = new TrackedMap();\n @tracked private listView: NativeElementNode<NativeRadListView> | undefined;\n private declare headerElement: NativeElementNode<StackLayout>;\n private declare footerElement: NativeElementNode<StackLayout>;\n\n get items() {\n return [...this.elementRefs.entries()].map(([element, item]) => {\n return {\n item,\n element,\n };\n });\n }\n\n setupListView = modifier(\n function setupListView(\n this: RadListView,\n listView: NativeElementNode<NativeRadListView>,\n ) {\n this.listView = listView;\n const listViewComponent = this;\n function _getDefaultItemContent() {\n const sl = DocumentNode.createElement('stack-layout');\n Object.defineProperty(sl.nativeView, 'parent', {\n get() {\n return this._parent;\n },\n set(v: any) {\n this._parent = v;\n Object.defineProperty(v, 'bindingContext', {\n get() {\n return listViewComponent.elementRefs.get(sl);\n },\n set(v: any) {\n listViewComponent.elementRefs.set(sl, v);\n },\n });\n },\n });\n return sl.nativeView;\n }\n listView.nativeView.itemViewLoader = (type) => {\n switch (type) {\n case ListViewViewType.ItemView:\n return _getDefaultItemContent();\n case ListViewViewType.HeaderView:\n return this.headerElement.nativeView;\n case ListViewViewType.FooterView:\n return this.footerElement.nativeView;\n }\n return DocumentNode.createElement('stack-layout').nativeView;\n };\n }.bind(this),\n );\n\n setupHeader = () => {\n this.headerElement = DocumentNode.createElement('stack-layout');\n };\n\n setupFooter = () => {\n this.footerElement = DocumentNode.createElement('stack-layout');\n };\n\n <template>\n <rad-list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{#if this.listView}}\n {{#if (has-block 'header')}}\n {{this.setupHeader}}\n {{#in-element this.headerElement}}\n {{yield to='header'}}\n {{/in-element}}\n {{/if}}\n {{#each this.items as |item|}}\n {{#in-element item.element}}\n {{yield item.item to='item'}}\n {{/in-element}}\n {{/each}}\n {{#if (has-block 'footer')}}\n {{this.setupFooter}}\n {{#in-element this.footerElement}}\n {{yield to='footer'}}\n {{/in-element}}\n {{/if}}\n {{/if}}\n </template>\n}\n"],"names":["TrackedMap","_class","Map","constructor","args","_initializerDefineProperty","_descriptor","set","key","value","counter","get","entries","_applyDecoratedDescriptor","prototype","tracked","RadListView","_class2","_RadListView","Component","_defineProperty","_descriptor2","modifier","setupListView","listView","listViewComponent","_getDefaultItemContent","sl","DocumentNode","createElement","Object","defineProperty","nativeView","_parent","v","elementRefs","itemViewLoader","type","ListViewViewType","ItemView","HeaderView","headerElement","FooterView","footerElement","bind","setupHeader","setupFooter","items","map","element","item","setComponentTemplate","template_6d7dfa74990c49fb9d034abfcbf3247c","strictMode"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const elementMap = {};
|
|
2
|
+
const dashRegExp = /-/g;
|
|
3
|
+
const defaultViewMeta = {
|
|
4
|
+
skipAddToDom: false,
|
|
5
|
+
isUnaryTag: false,
|
|
6
|
+
tagNamespace: '',
|
|
7
|
+
canBeLeftOpenTag: false,
|
|
8
|
+
component: null
|
|
9
|
+
};
|
|
10
|
+
function normalizeElementName(elementName) {
|
|
11
|
+
return `${elementName.replace(dashRegExp, '').toLowerCase()}`;
|
|
12
|
+
}
|
|
13
|
+
function registerElement(elementName, resolver, meta = null) {
|
|
14
|
+
const normalizedName = normalizeElementName(elementName);
|
|
15
|
+
meta = Object.assign({}, defaultViewMeta, meta);
|
|
16
|
+
if (elementMap[normalizedName]) {
|
|
17
|
+
throw new Error(`Element for ${elementName} already registered.`);
|
|
18
|
+
}
|
|
19
|
+
const entry = {
|
|
20
|
+
resolver: resolver,
|
|
21
|
+
meta: meta
|
|
22
|
+
};
|
|
23
|
+
const dashName = elementName.replace(/([a-zA-Z])(?=[A-Z])/g, '$1-').toLowerCase();
|
|
24
|
+
elementMap[normalizedName] = entry;
|
|
25
|
+
elementMap[dashName] = entry;
|
|
26
|
+
elementMap[elementName] = entry;
|
|
27
|
+
}
|
|
28
|
+
function getElementMap() {
|
|
29
|
+
return elementMap;
|
|
30
|
+
}
|
|
31
|
+
function getViewClass(elementName) {
|
|
32
|
+
const normalizedName = normalizeElementName(elementName);
|
|
33
|
+
const entry = elementMap[normalizedName];
|
|
34
|
+
if (!entry) {
|
|
35
|
+
throw new TypeError(`No known component for element ${elementName}.`);
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
return entry.resolver();
|
|
39
|
+
} catch (e) {
|
|
40
|
+
throw new TypeError(`Could not load view for: ${elementName}. ${e}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function getViewMeta(elementName) {
|
|
44
|
+
const normalizedName = normalizeElementName(elementName);
|
|
45
|
+
let meta = defaultViewMeta;
|
|
46
|
+
const entry = elementMap[normalizedName];
|
|
47
|
+
if (entry && entry.meta) {
|
|
48
|
+
meta = entry.meta;
|
|
49
|
+
}
|
|
50
|
+
return meta;
|
|
51
|
+
}
|
|
52
|
+
function isKnownView(elementName) {
|
|
53
|
+
return elementMap[normalizeElementName(elementName)];
|
|
54
|
+
}
|
|
55
|
+
function createElement(elementName) {
|
|
56
|
+
const normalizedName = normalizeElementName(elementName);
|
|
57
|
+
const elementDefinition = elementMap[normalizedName];
|
|
58
|
+
if (!elementDefinition) {
|
|
59
|
+
throw new TypeError(`No known component for element ${elementName}.`);
|
|
60
|
+
}
|
|
61
|
+
return elementDefinition.resolver();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export { createElement, getElementMap, getViewClass, getViewMeta, isKnownView, normalizeElementName, registerElement };
|
|
65
|
+
//# sourceMappingURL=element-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"element-registry.js","sources":["../../src/dom/element-registry.ts"],"sourcesContent":["import type { NativeElementsTagNameMap } from './native-elements-tag-name-map.ts';\nimport type NativeElementNode from './native/NativeElementNode.ts';\n\nconst elementMap: Record<string, any> = {};\nconst dashRegExp = /-/g;\n\nconst defaultViewMeta = {\n skipAddToDom: false,\n isUnaryTag: false,\n tagNamespace: '',\n canBeLeftOpenTag: false,\n component: null,\n};\n\nexport function normalizeElementName(elementName: string) {\n return `${elementName.replace(dashRegExp, '').toLowerCase()}`;\n}\n\nexport function registerElement(\n elementName: string,\n resolver: () => NativeElementNode,\n meta: object | null = null,\n) {\n const normalizedName = normalizeElementName(elementName);\n\n meta = Object.assign({}, defaultViewMeta, meta);\n\n if (elementMap[normalizedName]) {\n throw new Error(`Element for ${elementName} already registered.`);\n }\n\n const entry = {\n resolver: resolver,\n meta: meta,\n };\n const dashName = elementName\n .replace(/([a-zA-Z])(?=[A-Z])/g, '$1-')\n .toLowerCase();\n elementMap[normalizedName] = entry;\n elementMap[dashName] = entry;\n elementMap[elementName] = entry;\n}\n\nexport function getElementMap() {\n return elementMap;\n}\n\nexport function getViewClass(elementName: string) {\n const normalizedName = normalizeElementName(elementName);\n const entry = elementMap[normalizedName];\n\n if (!entry) {\n throw new TypeError(`No known component for element ${elementName}.`);\n }\n\n try {\n return entry.resolver();\n } catch (e) {\n throw new TypeError(`Could not load view for: ${elementName}. ${e}`);\n }\n}\n\nexport function getViewMeta(elementName: string) {\n const normalizedName = normalizeElementName(elementName);\n\n let meta = defaultViewMeta;\n const entry = elementMap[normalizedName];\n\n if (entry && entry.meta) {\n meta = entry.meta;\n }\n\n return meta;\n}\n\nexport function isKnownView(elementName: string) {\n return elementMap[normalizeElementName(elementName)];\n}\n\nexport function createElement<T extends keyof NativeElementsTagNameMap>(\n elementName: T,\n): NativeElementsTagNameMap[T] {\n const normalizedName = normalizeElementName(elementName);\n const elementDefinition = elementMap[normalizedName];\n if (!elementDefinition) {\n throw new TypeError(`No known component for element ${elementName}.`);\n }\n return elementDefinition.resolver();\n}\n"],"names":["elementMap","dashRegExp","defaultViewMeta","skipAddToDom","isUnaryTag","tagNamespace","canBeLeftOpenTag","component","normalizeElementName","elementName","replace","toLowerCase","registerElement","resolver","meta","normalizedName","Object","assign","Error","entry","dashName","getElementMap","getViewClass","TypeError","e","getViewMeta","isKnownView","createElement","elementDefinition"],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { _ as _defineProperty } from '../../_rollupPluginBabelHelpers-DZQzmiRH.js';
|
|
2
|
+
import { Frame } from '@nativescript/core/ui/frame';
|
|
3
|
+
import { createElement } from '../element-registry.js';
|
|
4
|
+
import NativeElementNode from './NativeElementNode.js';
|
|
5
|
+
import { Page } from '@nativescript/core/ui/page';
|
|
6
|
+
|
|
7
|
+
let nextTransition = null;
|
|
8
|
+
function setNextTransition(transition, animated = true) {
|
|
9
|
+
nextTransition = {
|
|
10
|
+
transition,
|
|
11
|
+
animated
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
class FrameElement extends NativeElementNode {
|
|
15
|
+
constructor() {
|
|
16
|
+
super('frame', Frame, null);
|
|
17
|
+
_defineProperty(this, "currentPage", void 0);
|
|
18
|
+
}
|
|
19
|
+
setAttribute(key, value) {
|
|
20
|
+
if (key.toLowerCase() == 'defaultpage') {
|
|
21
|
+
const dummy = createElement('fragment');
|
|
22
|
+
this.nativeView.navigate({
|
|
23
|
+
create: () => dummy.firstElement().nativeView
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
super.setAttribute(key, value);
|
|
27
|
+
}
|
|
28
|
+
get nativeView() {
|
|
29
|
+
return super.nativeView;
|
|
30
|
+
}
|
|
31
|
+
set nativeView(view) {
|
|
32
|
+
super.nativeView = view;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
//In regular native script, Frame elements aren't meant to have children, we instead allow it to have one.. a page.. as a convenience
|
|
36
|
+
// and set the instance as the default page by navigating to it.
|
|
37
|
+
appendChild(childNode) {
|
|
38
|
+
//only handle page nodes
|
|
39
|
+
if (childNode instanceof NativeElementNode && childNode.nativeView instanceof Page) {
|
|
40
|
+
this.currentPage = childNode.nativeView;
|
|
41
|
+
this.nativeView.navigate({
|
|
42
|
+
create: () => childNode.nativeView,
|
|
43
|
+
clearHistory: true,
|
|
44
|
+
backstackVisible: false,
|
|
45
|
+
transition: nextTransition?.transition || {},
|
|
46
|
+
animated: nextTransition?.animated
|
|
47
|
+
});
|
|
48
|
+
nextTransition = null;
|
|
49
|
+
}
|
|
50
|
+
super.appendChild(childNode);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
onInsertedChild(childNode) {
|
|
54
|
+
if (childNode instanceof NativeElementNode && childNode.nativeView instanceof Page && this.currentPage !== childNode.nativeView) {
|
|
55
|
+
this.nativeView.navigate({
|
|
56
|
+
create: () => childNode.nativeView,
|
|
57
|
+
clearHistory: true,
|
|
58
|
+
backstackVisible: false,
|
|
59
|
+
transition: nextTransition?.transition || {},
|
|
60
|
+
animated: nextTransition?.animated
|
|
61
|
+
});
|
|
62
|
+
nextTransition = null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
removeChild(childNode) {
|
|
66
|
+
if (!childNode) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (!childNode.parentNode) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (childNode.parentNode !== this) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
childNode.parentNode = null;
|
|
76
|
+
|
|
77
|
+
// reset the prevSibling and nextSibling. If not, a keep-alived component will
|
|
78
|
+
// still have a filled nextSibling attribute so vue will not
|
|
79
|
+
// insert the node again to the parent. See #220
|
|
80
|
+
childNode.prevSibling = null;
|
|
81
|
+
childNode.nextSibling = null;
|
|
82
|
+
this.childNodes = this.childNodes.filter(node => node !== childNode);
|
|
83
|
+
childNode.removeChildren();
|
|
84
|
+
this.onRemovedChild(childNode);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export { FrameElement as default, setNextTransition };
|
|
89
|
+
//# sourceMappingURL=FrameElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameElement.js","sources":["../../../src/dom/native/FrameElement.ts"],"sourcesContent":["import { Frame } from '@nativescript/core/ui/frame';\nimport type { NavigationTransition, View } from '@nativescript/core';\n\nimport { createElement } from '../element-registry.ts';\nimport ViewNode from '../nodes/ViewNode.ts';\nimport NativeElementNode from './NativeElementNode.ts';\nimport { Page } from '@nativescript/core/ui/page';\n\nlet nextTransition: {\n transition: NavigationTransition | undefined;\n animated: boolean | undefined;\n} | null = null;\nexport function setNextTransition(\n transition?: NavigationTransition,\n animated = true,\n) {\n nextTransition = { transition, animated };\n}\n\nexport default class FrameElement extends NativeElementNode {\n currentPage: any;\n\n constructor() {\n super('frame', Frame, null);\n }\n\n setAttribute(key: string, value: any) {\n if (key.toLowerCase() == 'defaultpage') {\n const dummy = createElement('fragment');\n (this.nativeView as Frame).navigate({\n create: () =>\n (dummy.firstElement() as NativeElementNode).nativeView as View,\n });\n }\n super.setAttribute(key, value);\n }\n\n get nativeView(): Frame {\n return super.nativeView as Frame;\n }\n\n set nativeView(view: Frame) {\n super.nativeView = view;\n }\n\n //In regular native script, Frame elements aren't meant to have children, we instead allow it to have one.. a page.. as a convenience\n // and set the instance as the default page by navigating to it.\n appendChild(childNode: ViewNode) {\n //only handle page nodes\n if (\n childNode instanceof NativeElementNode &&\n childNode.nativeView instanceof Page\n ) {\n this.currentPage = childNode.nativeView;\n this.nativeView.navigate({\n create: () => childNode.nativeView,\n clearHistory: true,\n backstackVisible: false,\n transition: nextTransition?.transition || {},\n animated: nextTransition?.animated,\n });\n nextTransition = null;\n }\n super.appendChild(childNode);\n return;\n }\n\n onInsertedChild(childNode: ViewNode) {\n if (\n childNode instanceof NativeElementNode &&\n childNode.nativeView instanceof Page &&\n this.currentPage !== childNode.nativeView\n ) {\n this.nativeView.navigate({\n create: () => childNode.nativeView,\n clearHistory: true,\n backstackVisible: false,\n transition: nextTransition?.transition || {},\n animated: nextTransition?.animated,\n });\n nextTransition = null;\n }\n }\n\n removeChild(childNode: NativeElementNode) {\n if (!childNode) {\n return;\n }\n\n if (!childNode.parentNode) {\n return;\n }\n\n if (childNode.parentNode !== this) {\n return;\n }\n\n childNode.parentNode = null;\n\n // reset the prevSibling and nextSibling. If not, a keep-alived component will\n // still have a filled nextSibling attribute so vue will not\n // insert the node again to the parent. See #220\n childNode.prevSibling = null;\n childNode.nextSibling = null;\n\n this.childNodes = this.childNodes.filter((node) => node !== childNode);\n childNode.removeChildren();\n this.onRemovedChild(childNode);\n }\n}\n"],"names":["nextTransition","setNextTransition","transition","animated","FrameElement","NativeElementNode","constructor","Frame","_defineProperty","setAttribute","key","value","toLowerCase","dummy","createElement","nativeView","navigate","create","firstElement","view","appendChild","childNode","Page","currentPage","clearHistory","backstackVisible","onInsertedChild","removeChild","parentNode","prevSibling","nextSibling","childNodes","filter","node","removeChildren","onRemovedChild"],"mappings":"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"}
|