ember-native 3.1.0 → 3.2.1
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/declarations/components/ListView.d.ts +33 -1
- package/declarations/index.d.ts +2 -0
- package/declarations/modifiers/index.d.ts +1 -0
- package/declarations/modifiers/native-slot.d.ts +8 -0
- package/dist/_app_/modifiers/ember-native/index.js +1 -0
- package/dist/_app_/modifiers/ember-native/native-slot.js +1 -0
- package/dist/{_rollupPluginBabelHelpers-ClPBvGFm.js → _rollupPluginBabelHelpers-apNPIsxw.js} +1 -2
- package/dist/_rollupPluginBabelHelpers-apNPIsxw.js.map +1 -0
- package/dist/components/InspectorSupport.js +2 -3
- package/dist/components/InspectorSupport.js.map +1 -1
- package/dist/components/ListView.js +86 -5
- package/dist/components/ListView.js.map +1 -1
- package/dist/components/RadListView.js +2 -3
- package/dist/components/RadListView.js.map +1 -1
- package/dist/components/index.js +0 -1
- package/dist/components/index.js.map +1 -1
- package/dist/dom/element-registry.js +3 -2
- package/dist/dom/element-registry.js.map +1 -1
- package/dist/dom/native/FrameElement.js +1 -2
- package/dist/dom/native/FrameElement.js.map +1 -1
- package/dist/dom/native/NativeElementNode.js +0 -4
- package/dist/dom/native/NativeElementNode.js.map +1 -1
- package/dist/dom/native/PageElement.js +0 -1
- package/dist/dom/native/PageElement.js.map +1 -1
- package/dist/dom/nodes/CommentNode.js +1 -3
- package/dist/dom/nodes/CommentNode.js.map +1 -1
- package/dist/dom/nodes/DocumentNode.js +1 -2
- package/dist/dom/nodes/DocumentNode.js.map +1 -1
- package/dist/dom/nodes/ElementNode.js +1 -2
- package/dist/dom/nodes/ElementNode.js.map +1 -1
- package/dist/dom/nodes/PropertyNode.js +0 -1
- package/dist/dom/nodes/PropertyNode.js.map +1 -1
- package/dist/dom/nodes/TextNode.js +1 -2
- package/dist/dom/nodes/TextNode.js.map +1 -1
- package/dist/dom/nodes/ViewNode.js +1 -2
- package/dist/dom/nodes/ViewNode.js.map +1 -1
- package/dist/dom/setup-registry.js +0 -1
- package/dist/dom/setup-registry.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/instance-initializers/history.js +0 -1
- package/dist/instance-initializers/history.js.map +1 -1
- package/dist/instance-initializers/webpack-hot-reload.js +0 -1
- package/dist/instance-initializers/webpack-hot-reload.js.map +1 -1
- package/dist/modifiers/index.js +2 -0
- package/dist/modifiers/index.js.map +1 -0
- package/dist/modifiers/native-slot.js +19 -0
- package/dist/modifiers/native-slot.js.map +1 -0
- package/dist/services/history.js +1 -2
- package/dist/services/history.js.map +1 -1
- package/dist/services/native-router.js +1 -2
- package/dist/services/native-router.js.map +1 -1
- package/dist/services/webpack-hot-reload.js +1 -2
- package/dist/services/webpack-hot-reload.js.map +1 -1
- package/dist/setup-inspector-support.js +3 -4
- package/dist/setup-inspector-support.js.map +1 -1
- package/dist/setup.js +1 -2
- package/dist/setup.js.map +1 -1
- package/dist/types/glint.js +0 -1
- package/dist/types/glint.js.map +1 -1
- package/dist/utils/embroider-template-tag-loader.js +1 -1
- package/package.json +16 -13
- package/dist/_rollupPluginBabelHelpers-ClPBvGFm.js.map +0 -1
|
@@ -1,14 +1,35 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
|
-
import type { ListView as NativeListView } from '@nativescript/core';
|
|
2
|
+
import type { ListView as NativeListView, ItemEventData, EventData } from '@nativescript/core';
|
|
3
3
|
import NativeElementNode from '../dom/native/NativeElementNode.ts';
|
|
4
4
|
interface ListViewInterface<T> {
|
|
5
5
|
Element: NativeElementNode<NativeListView>;
|
|
6
6
|
Args: {
|
|
7
7
|
items: T[];
|
|
8
8
|
key?: string;
|
|
9
|
+
onItemTap?: (args: ItemEventData) => void;
|
|
10
|
+
onItemLoading?: (args: ItemEventData) => void;
|
|
11
|
+
onLoadMoreItems?: (args: EventData) => void;
|
|
12
|
+
onSearchChange?: (args: EventData) => void;
|
|
13
|
+
sectioned?: boolean;
|
|
14
|
+
stickyHeader?: boolean;
|
|
15
|
+
stickyHeaderHeight?: number;
|
|
16
|
+
stickyHeaderTopPadding?: boolean | number;
|
|
17
|
+
showSearch?: boolean;
|
|
18
|
+
searchAutoHide?: boolean;
|
|
19
|
+
separatorColor?: string;
|
|
20
|
+
rowHeight?: number;
|
|
21
|
+
iosEstimatedRowHeight?: number;
|
|
9
22
|
};
|
|
10
23
|
Blocks: {
|
|
11
24
|
item: [T | null];
|
|
25
|
+
publicApi: [
|
|
26
|
+
{
|
|
27
|
+
refresh: () => void;
|
|
28
|
+
scrollToIndex: (index: number) => void;
|
|
29
|
+
scrollToIndexAnimated: (index: number) => void;
|
|
30
|
+
isItemAtIndexVisible: (index: number) => boolean;
|
|
31
|
+
}
|
|
32
|
+
];
|
|
12
33
|
};
|
|
13
34
|
}
|
|
14
35
|
type Ref<T> = {
|
|
@@ -18,9 +39,20 @@ type Ref<T> = {
|
|
|
18
39
|
};
|
|
19
40
|
export default class ListView<T> extends Component<ListViewInterface<T>> {
|
|
20
41
|
elementRefs: Ref<T>[];
|
|
42
|
+
private listViewElement?;
|
|
21
43
|
get items(): Ref<T>[];
|
|
22
44
|
get itemKey(): string;
|
|
23
45
|
cleanup(listView: NativeElementNode<NativeListView>): void;
|
|
46
|
+
refresh(): void;
|
|
47
|
+
scrollToIndex(index: number): void;
|
|
48
|
+
scrollToIndexAnimated(index: number): void;
|
|
49
|
+
isItemAtIndexVisible(index: number): boolean;
|
|
50
|
+
get publicApi(): {
|
|
51
|
+
refresh: () => void;
|
|
52
|
+
scrollToIndex: (index: number) => void;
|
|
53
|
+
scrollToIndexAnimated: (index: number) => void;
|
|
54
|
+
isItemAtIndexVisible: (index: number) => boolean;
|
|
55
|
+
};
|
|
24
56
|
setupListView: import("ember-modifier").FunctionBasedModifier<{
|
|
25
57
|
Args: {
|
|
26
58
|
Positional: [];
|
package/declarations/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as nativeSlot } from './native-slot.ts';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare const _default: import("ember-modifier").FunctionBasedModifier<{
|
|
2
|
+
Element: import("..").NativeElementNode<import("@nativescript/core").ViewBase>;
|
|
3
|
+
Args: {
|
|
4
|
+
Named: import("ember-modifier/-private/signature").EmptyObject;
|
|
5
|
+
Positional: [propertyName: string];
|
|
6
|
+
};
|
|
7
|
+
}>;
|
|
8
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/modifiers/index";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "ember-native/modifiers/native-slot";
|
package/dist/{_rollupPluginBabelHelpers-ClPBvGFm.js → _rollupPluginBabelHelpers-apNPIsxw.js}
RENAMED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
function _applyDecoratedDescriptor(i, e, r, n, l) {
|
|
3
2
|
var a = {};
|
|
4
3
|
return Object.keys(n).forEach(function (i) {
|
|
@@ -39,4 +38,4 @@ function _toPropertyKey(t) {
|
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
export { _defineProperty as _, _applyDecoratedDescriptor as a, _initializerDefineProperty as b };
|
|
42
|
-
//# sourceMappingURL=_rollupPluginBabelHelpers-
|
|
41
|
+
//# sourceMappingURL=_rollupPluginBabelHelpers-apNPIsxw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_rollupPluginBabelHelpers-apNPIsxw.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { _ as _defineProperty } from '../_rollupPluginBabelHelpers-ClPBvGFm.js';
|
|
1
|
+
import { _ as _defineProperty } from '../_rollupPluginBabelHelpers-apNPIsxw.js';
|
|
3
2
|
import Component from '@glimmer/component';
|
|
4
3
|
import { modifier } from 'ember-modifier';
|
|
5
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
@@ -61,7 +60,7 @@ class InspectorSupport extends Component {
|
|
|
61
60
|
}
|
|
62
61
|
}
|
|
63
62
|
_InspectorSupport = InspectorSupport;
|
|
64
|
-
setComponentTemplate(precompileTemplate("
|
|
63
|
+
setComponentTemplate(precompileTemplate("<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>", {
|
|
65
64
|
strictMode: true,
|
|
66
65
|
scope: () => ({
|
|
67
66
|
ref
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectorSupport.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
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 const 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.value;\n style.height = style.height.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","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","setComponentTemplate","precompileTemplate","strictMode","scope"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import { _ as _defineProperty, a as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../_rollupPluginBabelHelpers-ClPBvGFm.js';
|
|
1
|
+
import { _ as _defineProperty, a as _applyDecoratedDescriptor, b as _initializerDefineProperty } from '../_rollupPluginBabelHelpers-apNPIsxw.js';
|
|
3
2
|
import Component from '@glimmer/component';
|
|
4
3
|
import { modifier } from 'ember-modifier';
|
|
4
|
+
import { Color } from '@nativescript/core';
|
|
5
5
|
import { tracked } from '@glimmer/tracking';
|
|
6
6
|
import DocumentNode from '../dom/nodes/DocumentNode.js';
|
|
7
7
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
@@ -9,11 +9,13 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
9
9
|
|
|
10
10
|
var _class, _descriptor, _ListView;
|
|
11
11
|
let ListView = (_class = (_ListView = class ListView extends Component {
|
|
12
|
-
constructor(...
|
|
13
|
-
super(...
|
|
12
|
+
constructor(..._args) {
|
|
13
|
+
super(..._args);
|
|
14
14
|
_initializerDefineProperty(this, "elementRefs", _descriptor, this);
|
|
15
|
+
_defineProperty(this, "listViewElement", void 0);
|
|
15
16
|
_defineProperty(this, "setupListView", modifier(function setupListView(listView) {
|
|
16
17
|
const listViewComponent = this;
|
|
18
|
+
this.listViewElement = listView;
|
|
17
19
|
function _getDefaultItemContent(index) {
|
|
18
20
|
listViewComponent.cleanup(listView);
|
|
19
21
|
const sl = DocumentNode.createElement('stack-layout');
|
|
@@ -35,6 +37,55 @@ let ListView = (_class = (_ListView = class ListView extends Component {
|
|
|
35
37
|
ref.index = index;
|
|
36
38
|
listViewComponent.elementRefs = [...listViewComponent.elementRefs];
|
|
37
39
|
};
|
|
40
|
+
// Event handlers
|
|
41
|
+
if (listViewComponent.args.onItemTap) {
|
|
42
|
+
listView.nativeView.on('itemTap', args => {
|
|
43
|
+
listViewComponent.args.onItemTap(args);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (listViewComponent.args.onItemLoading) {
|
|
47
|
+
listView.nativeView.on('itemLoading', args => {
|
|
48
|
+
listViewComponent.args.onItemLoading(args);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (listViewComponent.args.onLoadMoreItems) {
|
|
52
|
+
listView.nativeView.on('loadMoreItems', args => {
|
|
53
|
+
listViewComponent.args.onLoadMoreItems(args);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (listViewComponent.args.onSearchChange) {
|
|
57
|
+
listView.nativeView.on('searchChange', args => {
|
|
58
|
+
listViewComponent.args.onSearchChange(args);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Properties
|
|
62
|
+
if (listViewComponent.args.sectioned !== undefined) {
|
|
63
|
+
listView.nativeView.sectioned = listViewComponent.args.sectioned;
|
|
64
|
+
}
|
|
65
|
+
if (listViewComponent.args.stickyHeader !== undefined) {
|
|
66
|
+
listView.nativeView.stickyHeader = listViewComponent.args.stickyHeader;
|
|
67
|
+
}
|
|
68
|
+
if (listViewComponent.args.stickyHeaderHeight !== undefined) {
|
|
69
|
+
listView.nativeView.stickyHeaderHeight = listViewComponent.args.stickyHeaderHeight;
|
|
70
|
+
}
|
|
71
|
+
if (listViewComponent.args.stickyHeaderTopPadding !== undefined) {
|
|
72
|
+
listView.nativeView.stickyHeaderTopPadding = listViewComponent.args.stickyHeaderTopPadding;
|
|
73
|
+
}
|
|
74
|
+
if (listViewComponent.args.showSearch !== undefined) {
|
|
75
|
+
listView.nativeView.showSearch = listViewComponent.args.showSearch;
|
|
76
|
+
}
|
|
77
|
+
if (listViewComponent.args.searchAutoHide !== undefined) {
|
|
78
|
+
listView.nativeView.searchAutoHide = listViewComponent.args.searchAutoHide;
|
|
79
|
+
}
|
|
80
|
+
if (listViewComponent.args.separatorColor !== undefined) {
|
|
81
|
+
listView.nativeView.separatorColor = new Color(listViewComponent.args.separatorColor);
|
|
82
|
+
}
|
|
83
|
+
if (listViewComponent.args.rowHeight !== undefined) {
|
|
84
|
+
listView.nativeView.rowHeight = listViewComponent.args.rowHeight;
|
|
85
|
+
}
|
|
86
|
+
if (listViewComponent.args.iosEstimatedRowHeight !== undefined) {
|
|
87
|
+
listView.nativeView.iosEstimatedRowHeight = listViewComponent.args.iosEstimatedRowHeight;
|
|
88
|
+
}
|
|
38
89
|
}.bind(this)));
|
|
39
90
|
}
|
|
40
91
|
get items() {
|
|
@@ -65,7 +116,37 @@ let ListView = (_class = (_ListView = class ListView extends Component {
|
|
|
65
116
|
}
|
|
66
117
|
this.elementRefs = this.elementRefs.filter(e => !!e.element.nativeView.nativeViewProtected?.getWindowToken());
|
|
67
118
|
}
|
|
68
|
-
|
|
119
|
+
// Public methods
|
|
120
|
+
refresh() {
|
|
121
|
+
if (this.listViewElement) {
|
|
122
|
+
this.listViewElement.nativeView.refresh();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
scrollToIndex(index) {
|
|
126
|
+
if (this.listViewElement) {
|
|
127
|
+
this.listViewElement.nativeView.scrollToIndex(index);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
scrollToIndexAnimated(index) {
|
|
131
|
+
if (this.listViewElement) {
|
|
132
|
+
this.listViewElement.nativeView.scrollToIndexAnimated(index);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
isItemAtIndexVisible(index) {
|
|
136
|
+
if (this.listViewElement) {
|
|
137
|
+
return this.listViewElement.nativeView.isItemAtIndexVisible(index);
|
|
138
|
+
}
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
get publicApi() {
|
|
142
|
+
return {
|
|
143
|
+
refresh: this.refresh.bind(this),
|
|
144
|
+
scrollToIndex: this.scrollToIndex.bind(this),
|
|
145
|
+
scrollToIndexAnimated: this.scrollToIndexAnimated.bind(this),
|
|
146
|
+
isItemAtIndexVisible: this.isItemAtIndexVisible.bind(this)
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
}, setComponentTemplate(precompileTemplate("<list-view {{this.setupListView}} items={{@items}} ...attributes />\n{{yield this.publicApi to=\"publicApi\"}}\n{{#each this.items key=this.itemKey as |item|}}\n {{#in-element item.element}}\n {{yield item.item to=\"item\"}}\n {{/in-element}}\n{{/each}}", {
|
|
69
150
|
strictMode: true
|
|
70
151
|
}), _ListView), _ListView), _descriptor = _applyDecoratedDescriptor(_class.prototype, "elementRefs", [tracked], {
|
|
71
152
|
configurable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
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 ItemEventData,\n EventData,\n} from '@nativescript/core';\nimport { Color } 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 key?: string;\n \n // Event handlers\n onItemTap?: (args: ItemEventData) => void;\n onItemLoading?: (args: ItemEventData) => void;\n onLoadMoreItems?: (args: EventData) => void;\n onSearchChange?: (args: EventData) => void;\n \n // Properties\n sectioned?: boolean;\n stickyHeader?: boolean;\n stickyHeaderHeight?: number;\n stickyHeaderTopPadding?: boolean | number;\n showSearch?: boolean;\n searchAutoHide?: boolean;\n separatorColor?: string;\n rowHeight?: number;\n iosEstimatedRowHeight?: number;\n };\n Blocks: {\n item: [T | null];\n publicApi: [{\n refresh: () => void;\n scrollToIndex: (index: number) => void;\n scrollToIndexAnimated: (index: number) => void;\n isItemAtIndexVisible: (index: number) => boolean;\n }];\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 private listViewElement?: NativeElementNode<NativeListView>;\n\n get items(): Ref<T>[] {\n return this.elementRefs\n .filter((x) => x.index < this.args.items.length)\n .map(({ element, index }) => {\n return {\n index,\n item: this.args.items[index] || null,\n element,\n };\n });\n }\n\n get itemKey() {\n if (this.args.key) {\n return 'item.' + this.args.key;\n }\n return 'item';\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).delete(\n elementRef.element.nativeView,\n );\n }\n }\n this.elementRefs = this.elementRefs.filter(\n (e) => !!e.element.nativeView.nativeViewProtected?.getWindowToken(),\n );\n }\n\n // Public methods\n refresh() {\n if (this.listViewElement) {\n this.listViewElement.nativeView.refresh();\n }\n }\n\n scrollToIndex(index: number) {\n if (this.listViewElement) {\n this.listViewElement.nativeView.scrollToIndex(index);\n }\n }\n\n scrollToIndexAnimated(index: number) {\n if (this.listViewElement) {\n this.listViewElement.nativeView.scrollToIndexAnimated(index);\n }\n }\n\n isItemAtIndexVisible(index: number): boolean {\n if (this.listViewElement) {\n return this.listViewElement.nativeView.isItemAtIndexVisible(index);\n }\n return false;\n }\n\n get publicApi() {\n return {\n refresh: this.refresh.bind(this),\n scrollToIndex: this.scrollToIndex.bind(this),\n scrollToIndexAnimated: this.scrollToIndexAnimated.bind(this),\n isItemAtIndexVisible: this.isItemAtIndexVisible.bind(this),\n };\n }\n\n setupListView = modifier(\n function setupListView(\n this: ListView<T>,\n listView: NativeElementNode<NativeListView>,\n ) {\n const listViewComponent = this;\n this.listViewElement = listView;\n \n function _getDefaultItemContent(index: number) {\n listViewComponent.cleanup(listView);\n const sl = DocumentNode.createElement('stack-layout');\n listView.appendChild(sl);\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 if (ref.index === index) {\n return;\n }\n ref.index = index;\n listViewComponent.elementRefs = [...listViewComponent.elementRefs];\n };\n \n // Event handlers\n if (listViewComponent.args.onItemTap) {\n listView.nativeView.on('itemTap', (args: ItemEventData) => {\n listViewComponent.args.onItemTap!(args);\n });\n }\n \n if (listViewComponent.args.onItemLoading) {\n listView.nativeView.on('itemLoading', (args: ItemEventData) => {\n listViewComponent.args.onItemLoading!(args);\n });\n }\n \n if (listViewComponent.args.onLoadMoreItems) {\n listView.nativeView.on('loadMoreItems', (args: EventData) => {\n listViewComponent.args.onLoadMoreItems!(args);\n });\n }\n \n if (listViewComponent.args.onSearchChange) {\n listView.nativeView.on('searchChange', (args: EventData) => {\n listViewComponent.args.onSearchChange!(args);\n });\n }\n \n // Properties\n if (listViewComponent.args.sectioned !== undefined) {\n (listView.nativeView as any).sectioned = listViewComponent.args.sectioned;\n }\n \n if (listViewComponent.args.stickyHeader !== undefined) {\n (listView.nativeView as any).stickyHeader = listViewComponent.args.stickyHeader;\n }\n \n if (listViewComponent.args.stickyHeaderHeight !== undefined) {\n (listView.nativeView as any).stickyHeaderHeight = listViewComponent.args.stickyHeaderHeight;\n }\n \n if (listViewComponent.args.stickyHeaderTopPadding !== undefined) {\n (listView.nativeView as any).stickyHeaderTopPadding = listViewComponent.args.stickyHeaderTopPadding;\n }\n \n if (listViewComponent.args.showSearch !== undefined) {\n (listView.nativeView as any).showSearch = listViewComponent.args.showSearch;\n }\n \n if (listViewComponent.args.searchAutoHide !== undefined) {\n (listView.nativeView as any).searchAutoHide = listViewComponent.args.searchAutoHide;\n }\n \n if (listViewComponent.args.separatorColor !== undefined) {\n listView.nativeView.separatorColor = new Color(listViewComponent.args.separatorColor);\n }\n \n if (listViewComponent.args.rowHeight !== undefined) {\n listView.nativeView.rowHeight = listViewComponent.args.rowHeight;\n }\n \n if (listViewComponent.args.iosEstimatedRowHeight !== undefined) {\n listView.nativeView.iosEstimatedRowHeight = listViewComponent.args.iosEstimatedRowHeight;\n }\n }.bind(this),\n );\n\n <template>\n <list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{yield this.publicApi to='publicApi'}}\n {{#each this.items key=this.itemKey as |item|}}\n {{#in-element item.element}}\n {{yield item.item to='item'}}\n {{/in-element}}\n {{/each}}\n </template>\n}"],"names":["ListView","_class","_ListView","Component","constructor","_args","_initializerDefineProperty","_descriptor","_defineProperty","modifier","setupListView","listView","listViewComponent","listViewElement","_getDefaultItemContent","index","cleanup","sl","DocumentNode","createElement","appendChild","elementRefs","push","element","item","nativeView","_prepareItem","stackLayout","ref","find","e","args","onItemTap","on","onItemLoading","onLoadMoreItems","onSearchChange","sectioned","undefined","stickyHeader","stickyHeaderHeight","stickyHeaderTopPadding","showSearch","searchAutoHide","separatorColor","Color","rowHeight","iosEstimatedRowHeight","bind","items","filter","x","length","map","itemKey","key","elementRef","n","nativeViewProtected","getWindowToken","parentNode","removeChild","_realizedItems","delete","refresh","scrollToIndex","scrollToIndexAnimated","isItemAtIndexVisible","publicApi","setComponentTemplate","precompileTemplate","strictMode","_applyDecoratedDescriptor","prototype","tracked","configurable","enumerable","writable","initializer"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { a as _applyDecoratedDescriptor, _ as _defineProperty, b as _initializerDefineProperty } from '../_rollupPluginBabelHelpers-ClPBvGFm.js';
|
|
1
|
+
import { a as _applyDecoratedDescriptor, _ as _defineProperty, b as _initializerDefineProperty } from '../_rollupPluginBabelHelpers-apNPIsxw.js';
|
|
3
2
|
import Component from '@glimmer/component';
|
|
4
3
|
import { modifier } from 'ember-modifier';
|
|
5
4
|
import { tracked } from '@glimmer/tracking';
|
|
@@ -112,7 +111,7 @@ let RadListView = (_class2 = (_RadListView = class RadListView extends Component
|
|
|
112
111
|
};
|
|
113
112
|
});
|
|
114
113
|
}
|
|
115
|
-
}, setComponentTemplate(precompileTemplate("
|
|
114
|
+
}, setComponentTemplate(precompileTemplate("<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 key=this.itemKey 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}}", {
|
|
116
115
|
strictMode: true
|
|
117
116
|
}), _RadListView), _RadListView), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "listView", [tracked], {
|
|
118
117
|
configurable: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadListView.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
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 key?: string;\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 cleanup(listView: NativeElementNode<NativeRadListView>) {\n for (const [element] of [...this.elementRefs.entries()]) {\n const n = element.nativeView.nativeViewProtected;\n if (!n || !n.getWindowToken()) {\n this.elementRefs.delete(element);\n const idx = listView.childNodes.findIndex((c) => c === element);\n if (idx >= 0) {\n listView.childNodes.splice(idx, 1);\n }\n }\n }\n }\n\n get itemKey() {\n if (this.args.key) {\n return 'item.' + this.args.key;\n }\n return 'item';\n }\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 listView.nativeView.on('itemRecyclingInternal', () => {\n this.cleanup(listView);\n });\n const listViewComponent = this;\n function _getDefaultItemContent() {\n const sl = DocumentNode.createElement('stack-layout');\n listView.appendChild(sl);\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 key=this.itemKey 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","configurable","enumerable","writable","initializer","RadListView","_class2","_RadListView","Component","_defineProperty","_descriptor2","modifier","setupListView","listView","nativeView","on","cleanup","listViewComponent","_getDefaultItemContent","sl","DocumentNode","createElement","appendChild","Object","defineProperty","_parent","v","elementRefs","itemViewLoader","type","ListViewViewType","ItemView","HeaderView","headerElement","FooterView","footerElement","bind","element","n","nativeViewProtected","getWindowToken","delete","idx","childNodes","findIndex","c","splice","itemKey","items","map","item","setComponentTemplate","precompileTemplate","strictMode"],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
const elementMap = {};
|
|
3
2
|
const dashRegExp = /-/g;
|
|
4
3
|
const defaultViewMeta = {
|
|
@@ -38,7 +37,9 @@ function getViewClass(elementName) {
|
|
|
38
37
|
try {
|
|
39
38
|
return entry.resolver();
|
|
40
39
|
} catch (e) {
|
|
41
|
-
throw new TypeError(`Could not load view for: ${elementName}. ${e}
|
|
40
|
+
throw new TypeError(`Could not load view for: ${elementName}. ${e}`, {
|
|
41
|
+
cause: e
|
|
42
|
+
});
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
function getViewMeta(elementName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-registry.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
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}`, { cause: 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","cause","getViewMeta","isKnownView","createElement","elementDefinition"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { _ as _defineProperty } from '../../_rollupPluginBabelHelpers-ClPBvGFm.js';
|
|
1
|
+
import { _ as _defineProperty } from '../../_rollupPluginBabelHelpers-apNPIsxw.js';
|
|
3
2
|
import { Frame } from '@nativescript/core/ui/frame';
|
|
4
3
|
import { createElement } from '../element-registry.js';
|
|
5
4
|
import NativeElementNode from './NativeElementNode.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameElement.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
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).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 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","childNodes","filter","node","removeChildren","onRemovedChild"],"mappings":"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"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
import { _ as _defineProperty } from '../../_rollupPluginBabelHelpers-ClPBvGFm.js';
|
|
3
1
|
import { KeyframeAnimation } from '@nativescript/core/ui/animation/keyframe-animation';
|
|
4
2
|
import { LayoutBase } from '@nativescript/core/ui/layouts/layout-base';
|
|
5
3
|
import { ListView, ContentView, Frame, View, isAndroid, isIOS } from '@nativescript/core';
|
|
@@ -16,7 +14,6 @@ const defaultViewMeta = {
|
|
|
16
14
|
class NativeElementNode extends ElementNode {
|
|
17
15
|
constructor(tagName, viewClass, meta = null) {
|
|
18
16
|
super(tagName);
|
|
19
|
-
_defineProperty(this, "_meta", void 0);
|
|
20
17
|
this.nodeType = 1;
|
|
21
18
|
this.tagName = tagName;
|
|
22
19
|
this._meta = Object.assign({}, defaultViewMeta, meta || {});
|
|
@@ -170,7 +167,6 @@ class NativeElementNode extends ElementNode {
|
|
|
170
167
|
}
|
|
171
168
|
set nativeView(view) {
|
|
172
169
|
this._nativeView = view;
|
|
173
|
-
this.addEventListener('tap', () => globalThis.triggerEvent('click', this));
|
|
174
170
|
}
|
|
175
171
|
get meta() {
|
|
176
172
|
return this._meta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeElementNode.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"NativeElementNode.js","sources":["../../../src/dom/native/NativeElementNode.ts"],"sourcesContent":["import { KeyframeAnimation } from '@nativescript/core/ui/animation/keyframe-animation';\nimport { LayoutBase } from '@nativescript/core/ui/layouts/layout-base';\nimport {\n ContentView,\n type EventData,\n Frame,\n isAndroid,\n isIOS,\n ListView,\n Page,\n View,\n} from '@nativescript/core';\nimport { CssAnimationParser } from '@nativescript/core/ui/styling/css-animation-parser';\nimport { type ViewBase } from '@nativescript/core/ui/core/view-base';\nimport { TextBase } from '@nativescript/core/ui/text-base';\nimport ElementNode from '../nodes/ElementNode.ts';\nimport ViewNode, { type EventListener } from '../nodes/ViewNode.ts';\n\nfunction camelize(kebab: string): string {\n return kebab.replace(/-+(\\w)/g, (_m, l) => l.toUpperCase());\n}\n\nexport interface ComponentMeta {\n skipAddToDom?: boolean;\n insertChild?: (\n parent: NativeElementNode<any>,\n child: NativeElementNode<any>,\n index: number,\n ) => void;\n removeChild?: (parent: NativeElementNode, child: NativeElementNode) => void;\n}\n\nconst defaultViewMeta = {\n skipAddToDom: false,\n};\n\nexport default class NativeElementNode<\n T extends ViewBase | null = ViewBase,\n> extends ElementNode {\n declare _nativeView: T;\n declare _meta: ComponentMeta;\n\n constructor(\n tagName: string,\n viewClass: typeof View | null,\n meta: ComponentMeta | null = null,\n ) {\n super(tagName);\n\n this.nodeType = 1;\n this.tagName = tagName;\n\n this._meta = Object.assign({}, defaultViewMeta, meta || {});\n\n if (viewClass) {\n this.nativeView = new (viewClass as any)();\n (this._nativeView as any).__GlimmerNativeElement__ = this;\n }\n\n // log.debug(`created ${this} ${this._nativeView}`);\n\n //TODO these style shims mess up the code, extract to external modules\n\n const setStyleAttribute = (value: string): void => {\n this.setAttribute('style', value);\n };\n\n const getStyleAttribute = (): string => {\n return this.getAttribute('style');\n };\n\n const getParentPage = (): NativeElementNode | null => {\n if (this.nativeView && this.nativeView.page) {\n return (this.nativeView.page as any).__GlimmerNativeElement__;\n }\n return null;\n };\n\n const animations: Map<string, KeyframeAnimation | null> = new Map();\n const oldAnimations: KeyframeAnimation[] = [];\n\n const addAnimation = (animation: string) => {\n // log.debug(`Adding animation ${animation}`);\n if (!this.nativeView) {\n throw Error(\n 'Attempt to apply animation to tag without a native view' +\n this.tagName,\n );\n }\n\n const page = getParentPage();\n if (page == null) {\n animations.set(animation, null);\n return;\n }\n\n //quickly cancel any old ones\n while (oldAnimations.length) {\n const oldAnimation = oldAnimations.shift()!;\n if (oldAnimation.isPlaying) {\n oldAnimation.cancel();\n }\n }\n\n //Parse our \"animation\" style property into an animation info instance (this won't include the keyframes from the css)\n const animationInfos =\n CssAnimationParser.keyframeAnimationsFromCSSDeclarations([\n { property: 'animation', value: animation },\n ]);\n if (!animationInfos) {\n animations.set(animation, null);\n return;\n }\n const animationInfo = animationInfos[0]!;\n\n //Fetch an animationInfo instance that includes the keyframes from the css (this won't include the animation properties parsed above)\n const animationWithKeyframes = (\n page.nativeView as Page\n ).getKeyframeAnimationWithName(animationInfo.name!);\n if (!animationWithKeyframes) {\n animations.set(animation, null);\n return;\n }\n\n animationInfo.keyframes = animationWithKeyframes.keyframes;\n //combine the keyframes from the css with the animation from the parsed attribute to get a complete animationInfo object\n const animationInstance =\n KeyframeAnimation.keyframeAnimationFromInfo(animationInfo);\n\n // save and launch the animation\n animations.set(animation, animationInstance);\n animationInstance.play(this.nativeView as unknown as View);\n };\n\n const removeAnimation = (animation: string) => {\n // log.debug(`Removing animation ${animation}`);\n if (animations.has(animation)) {\n const animationInstance = animations.get(animation);\n animations.delete(animation);\n\n if (animationInstance) {\n if (animationInstance.isPlaying) {\n //we don't want to stop right away since svelte removes the animation before it is finished due to our lag time starting the animation.\n oldAnimations.push(animationInstance);\n }\n }\n }\n };\n\n this.style = {\n setProperty: (\n propertyName: string,\n value: string /*priority?: string*/,\n ) => {\n this.setStyle(camelize(propertyName), value);\n },\n\n // @ts-expect-error does not exist\n removeProperty: (propertyName: string) => {\n this.setStyle(camelize(propertyName), null);\n },\n\n get animation(): string {\n return [...animations.keys()].join(', ');\n },\n\n set animation(value: string) {\n // log.debug(`setting animation ${value}`);\n const new_animations =\n value.trim() == '' ? [] : value.split(',').map((a) => a.trim());\n //add new ones\n for (const anim of new_animations) {\n if (!animations.has(anim)) {\n addAnimation(anim);\n }\n }\n //remove old ones\n for (const anim of animations.keys()) {\n if (new_animations.indexOf(anim) < 0) {\n removeAnimation(anim);\n }\n }\n },\n\n get cssText(): string {\n // log.debug('got css text');\n return getStyleAttribute();\n },\n\n set cssText(value: string) {\n // log.debug('set css text');\n setStyleAttribute(value);\n },\n };\n }\n\n /* istanbul ignore next */\n setStyle(property: string, value: string | number | null) {\n // log.debug(`setStyle ${this} ${property} ${value}`);\n\n if (!value) return;\n\n if (!(value = value.toString().trim()).length) {\n return;\n }\n\n if (property.endsWith('Align')) {\n // NativeScript uses Alignment instead of Align, this ensures that text-align works\n property += 'ment';\n }\n (this.nativeView!.style as any)[property] = value;\n }\n\n get style() {\n return this.nativeView?.style;\n }\n\n set style(v) {\n Object.assign(this.nativeView?.style || {}, v);\n }\n\n updateText() {\n const hasTextAttr = this.nativeView instanceof TextBase;\n if (hasTextAttr) {\n const t = this.childNodes\n .map((c) => (c as any).text)\n .filter(Boolean)\n .join('');\n this.setAttribute('text', t.trim());\n }\n }\n\n get nativeView(): T {\n return this._nativeView;\n }\n\n set nativeView(view) {\n this._nativeView = view;\n }\n\n get meta() {\n return this._meta;\n }\n\n /* istanbul ignore next */\n addEventListener(event: string, handler: EventListener) {\n // log.debug('add event listener', this, event, handler);\n this.nativeView!.on(event, handler);\n }\n\n /* istanbul ignore next */\n removeEventListener(event: string, handler?: EventListener) {\n // log.debug(`remove event listener ${this} ${event}`);\n this.nativeView!.off(event, handler);\n }\n\n getAttribute(fullkey: string) {\n let getTarget = this.nativeView as any;\n\n const keypath = fullkey.split('.');\n const resolvedKeys: string[] = [];\n\n while (keypath.length > 0) {\n if (!getTarget) return null;\n\n let key = keypath.shift()!;\n\n // try to fix case\n const lowerkey = key.toLowerCase();\n for (const realKey in getTarget) {\n if (lowerkey == realKey.toLowerCase()) {\n key = realKey;\n break;\n }\n }\n resolvedKeys.push(key);\n\n if (keypath.length > 0) {\n getTarget = getTarget[key];\n } else {\n return getTarget[key];\n }\n }\n\n return null;\n }\n\n onInsertedChild(childNode: ViewNode, atIndex: number) {\n const parentNode = this;\n if (!parentNode) {\n return;\n }\n\n if (\n !(parentNode instanceof NativeElementNode) ||\n !(childNode instanceof NativeElementNode) ||\n !parentNode.nativeView ||\n !childNode.nativeView\n ) {\n return;\n }\n\n if (parentNode.nativeView instanceof ListView) {\n return;\n }\n\n if (parentNode.meta && typeof parentNode.meta.insertChild === 'function') {\n //our dom includes \"textNode\" and \"commentNode\" which does not appear in the nativeview's children.\n //we recalculate the index required for the insert operation buy only including native element nodes in the count\n const nativeIndex = parentNode.childNodes\n .filter((e) => e instanceof NativeElementNode)\n .indexOf(childNode);\n return parentNode.meta.insertChild(parentNode, childNode, nativeIndex);\n }\n\n const parentView = parentNode.nativeView;\n const childView = childNode.nativeView;\n\n //use the builder logic if we aren't being dynamic, to catch config items like <actionbar> that are not likely to be toggled\n if (atIndex < 0 && (parentView as any)._addChildFromBuilder) {\n (parentView as any)._addChildFromBuilder(\n childNode._nativeView.constructor.name,\n childView,\n );\n return;\n }\n\n if (parentView instanceof LayoutBase) {\n if (atIndex >= 0) {\n //our dom includes \"textNode\" and \"commentNode\" which does not appear in the nativeview's children.\n //we recalculate the index required for the insert operation buy only including native element nodes in the count\n const nativeIndex = parentNode.childNodes\n .filter((e) => e instanceof NativeElementNode)\n .indexOf(childNode);\n parentView.insertChild(childView, nativeIndex);\n } else {\n parentView.addChild(childView);\n }\n return;\n }\n\n if ((parentView as any)._addChildFromBuilder) {\n return (parentView as any)._addChildFromBuilder(\n childNode._nativeView.constructor.name,\n childView,\n );\n }\n\n if (parentView instanceof ContentView) {\n parentView.content = childView;\n return;\n }\n }\n\n onRemovedChild(childNode: ViewNode) {\n const parentNode = this;\n if (!parentNode) {\n return;\n }\n\n if (\n !(parentNode instanceof NativeElementNode) ||\n !(childNode instanceof NativeElementNode) ||\n !parentNode.nativeView ||\n !childNode.nativeView\n ) {\n return;\n }\n\n if (parentNode.meta && typeof parentNode.meta.removeChild === 'function') {\n return parentNode.meta.removeChild(\n parentNode as NativeElementNode,\n childNode as NativeElementNode,\n );\n }\n\n if (!childNode.nativeView || !childNode.nativeView) {\n return;\n }\n\n const parentView = parentNode.nativeView;\n const childView = childNode.nativeView;\n\n if (parentView instanceof Frame) {\n return;\n }\n\n if (parentView instanceof LayoutBase) {\n parentView.removeChild(childView);\n } else if (parentView instanceof ContentView) {\n if (parentView.content === childView) {\n (parentView as any).content = null;\n }\n if (childNode.nodeType === 8) {\n parentView._removeView(childView);\n }\n } else if (parentView instanceof View) {\n if (childNode.parentNode !== parentNode) {\n return;\n }\n parentView._removeView(childView);\n } else {\n // throw new Error(\"Unknown parent type: \" + parent);\n }\n }\n\n /* istanbul ignore next */\n setAttribute(fullkey: string, value: any) {\n const nv = this.nativeView as any;\n let setTarget = nv;\n\n // normalize key\n if (isAndroid && fullkey.startsWith('android:')) {\n fullkey = fullkey.substr(8);\n }\n if (isIOS && fullkey.startsWith('ios:')) {\n fullkey = fullkey.substr(4);\n }\n\n //we might be getting an element from a propertyNode eg page.actionBar, unwrap\n if (value instanceof NativeElementNode) {\n value = value.nativeView;\n }\n const keypath = fullkey.split('.');\n const resolvedKeys: string[] = [];\n\n while (keypath.length > 0) {\n if (!setTarget) return;\n let key = keypath.shift()!;\n\n // try to fix case\n const lowerkey = key.toLowerCase();\n for (const realKey in setTarget) {\n if (lowerkey == realKey.toLowerCase()) {\n key = realKey;\n break;\n }\n }\n resolvedKeys.push(key);\n\n if (keypath.length > 0) {\n setTarget = setTarget[key];\n } else {\n try {\n // log.debug(`setAttr ${this} ${resolvedKeys.join('.')} ${value}`);\n setTarget[key] = value;\n } catch (e) {\n // ignore but log\n console.error(\n `set attribute threw an error, attr:${key} on ${this._tagName}: ${(e as any).message}`,\n );\n }\n }\n }\n }\n\n dispatchEvent(event: EventData) {\n if (this.nativeView) {\n //nativescript uses the EventName while dom uses Type\n event.eventName = (event as any).type;\n this.nativeView.notify(event);\n }\n }\n\n clear(node: any) {\n while (node.childNodes.length) {\n this.clear(node.firstChild);\n }\n node.parentNode.removeChild(node);\n }\n\n appendChild(childNode: ViewNode) {\n super.appendChild(childNode);\n if (childNode.nodeType === 3) {\n this.updateText();\n }\n }\n\n insertBefore(childNode: ViewNode, referenceNode: ViewNode) {\n super.insertBefore(childNode, referenceNode);\n if (childNode.nodeType === 3) {\n this.updateText();\n }\n }\n\n removeChild(childNode: ViewNode) {\n super.removeChild(childNode);\n if (childNode.nodeType === 3) {\n this.updateText();\n }\n }\n\n removeChildren() {\n while (this.childNodes.length) {\n this.clear(this.firstChild);\n }\n }\n\n getBoundingClientRect() {\n if (!this.nativeView) return null;\n if (!(this.nativeView as unknown as View).getLocationInWindow) return null;\n const nw = this.nativeView as unknown as View;\n const point = nw.getLocationInWindow();\n const actualSize = nw.getActualSize();\n if (!point) {\n return {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n width: 0,\n height: 0,\n };\n }\n return {\n left: point.x,\n top: point.y,\n bottom: point.y + actualSize.height,\n width: actualSize.width,\n height: actualSize.height,\n };\n }\n}\n"],"names":["camelize","kebab","replace","_m","l","toUpperCase","defaultViewMeta","skipAddToDom","NativeElementNode","ElementNode","constructor","tagName","viewClass","meta","nodeType","_meta","Object","assign","nativeView","_nativeView","__GlimmerNativeElement__","setStyleAttribute","value","setAttribute","getStyleAttribute","getAttribute","getParentPage","page","animations","Map","oldAnimations","addAnimation","animation","Error","set","length","oldAnimation","shift","isPlaying","cancel","animationInfos","CssAnimationParser","keyframeAnimationsFromCSSDeclarations","property","animationInfo","animationWithKeyframes","getKeyframeAnimationWithName","name","keyframes","animationInstance","KeyframeAnimation","keyframeAnimationFromInfo","play","removeAnimation","has","get","delete","push","style","setProperty","propertyName","setStyle","removeProperty","keys","join","new_animations","trim","split","map","a","anim","indexOf","cssText","toString","endsWith","v","updateText","hasTextAttr","TextBase","t","childNodes","c","text","filter","Boolean","view","addEventListener","event","handler","on","removeEventListener","off","fullkey","getTarget","keypath","key","lowerkey","toLowerCase","realKey","onInsertedChild","childNode","atIndex","parentNode","ListView","insertChild","nativeIndex","e","parentView","childView","_addChildFromBuilder","LayoutBase","addChild","ContentView","content","onRemovedChild","removeChild","Frame","_removeView","View","nv","setTarget","isAndroid","startsWith","substr","isIOS","console","error","_tagName","message","dispatchEvent","eventName","type","notify","clear","node","firstChild","appendChild","insertBefore","referenceNode","removeChildren","getBoundingClientRect","getLocationInWindow","nw","point","actualSize","getActualSize","left","top","right","bottom","width","height","x","y"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageElement.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"PageElement.js","sources":["../../../src/dom/native/PageElement.ts"],"sourcesContent":["import { Page } from '@nativescript/core/ui/page';\n\nimport NativeElementNode from './NativeElementNode.ts';\n\nexport default class PageElement extends NativeElementNode<Page> {\n constructor() {\n super('page', Page, null);\n }\n}\n"],"names":["PageElement","NativeElementNode","constructor","Page"],"mappings":";;;AAIe,MAAMA,WAAW,SAASC,iBAAiB,CAAO;AAC/DC,EAAAA,WAAWA,GAAG;AACZ,IAAA,KAAK,CAAC,MAAM,EAAEC,IAAI,EAAE,IAAI,CAAC;AAC3B,EAAA;AACF;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
import { _ as _defineProperty } from '../../_rollupPluginBabelHelpers-ClPBvGFm.js';
|
|
1
|
+
import { _ as _defineProperty } from '../../_rollupPluginBabelHelpers-apNPIsxw.js';
|
|
3
2
|
import ElementNode from './ElementNode.js';
|
|
4
3
|
|
|
5
4
|
class CommentNode extends ElementNode {
|
|
6
5
|
constructor(text) {
|
|
7
6
|
super('comment');
|
|
8
|
-
_defineProperty(this, "nodeType", void 0);
|
|
9
7
|
_defineProperty(this, "text", void 0);
|
|
10
8
|
this.nodeType = 8;
|
|
11
9
|
this.text = text;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommentNode.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"CommentNode.js","sources":["../../../src/dom/nodes/CommentNode.ts"],"sourcesContent":["import ElementNode from './ElementNode.ts';\n\nexport default class CommentNode extends ElementNode {\n declare nodeType: any;\n text: any;\n constructor(text: any) {\n super('comment');\n\n this.nodeType = 8;\n this.text = text;\n }\n}\n"],"names":["CommentNode","ElementNode","constructor","text","_defineProperty","nodeType"],"mappings":";;;AAEe,MAAMA,WAAW,SAASC,WAAW,CAAC;EAGnDC,WAAWA,CAACC,IAAS,EAAE;IACrB,KAAK,CAAC,SAAS,CAAC;AAACC,IAAAA,eAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,CAAA;IAEjB,IAAI,CAACC,QAAQ,GAAG,CAAC;IACjB,IAAI,CAACF,IAAI,GAAGA,IAAI;AAClB,EAAA;AACF;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { _ as _defineProperty } from '../../_rollupPluginBabelHelpers-ClPBvGFm.js';
|
|
1
|
+
import { _ as _defineProperty } from '../../_rollupPluginBabelHelpers-apNPIsxw.js';
|
|
3
2
|
import { createElement } from '../element-registry.js';
|
|
4
3
|
import CommentNode from './CommentNode.js';
|
|
5
4
|
import ElementNode from './ElementNode.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentNode.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"DocumentNode.js","sources":["../../../src/dom/nodes/DocumentNode.ts"],"sourcesContent":["import { createElement } from '../element-registry.ts';\nimport CommentNode from './CommentNode.ts';\nimport ElementNode from './ElementNode.ts';\nimport PropertyNode from './PropertyNode.ts';\nimport TextNode from './TextNode.ts';\nimport ViewNode from './ViewNode.ts';\nimport type { NativeElementsTagNameMap } from '../native-elements-tag-name-map.ts';\nimport type PageElement from '../native/PageElement.ts';\nimport NativeElementNode from '../native/NativeElementNode.ts';\n\nfunction* elementIterator(el: any): Generator<any, void, unknown> {\n yield el;\n for (const child of el.childNodes) {\n yield* elementIterator(child);\n }\n}\n\nclass HeadNode extends ElementNode {\n private document: any;\n constructor(tagName: string, document: DocumentNode) {\n super(tagName);\n this.document = document;\n }\n appendChild(childNode: ViewNode) {\n if (childNode.tagName === 'style') {\n this.document.page.nativeView.addCss(\n (childNode.childNodes[0]! as any).text,\n );\n return;\n }\n super.appendChild(childNode);\n }\n}\n\nlet document: DocumentNode | null = null;\n\nexport default class DocumentNode extends ViewNode {\n head: any;\n config: any;\n declare nodeMap: Map<any, any>;\n page: PageElement | undefined;\n body: ElementNode | undefined;\n documentElement = {\n dataset: {},\n };\n\n static getInstance() {\n if (!document) {\n document = new DocumentNode();\n }\n return document;\n }\n\n constructor() {\n if (document) return document;\n super();\n document = this;\n this.tagName = 'docNode';\n this.nodeType = 9;\n this.head = new HeadNode('head', this);\n this.appendChild(this.head);\n this.nodeMap = new Map();\n }\n\n createEvent(eventInterface: string) {\n const event = {\n eventInterface,\n initEvent(type: string, bubbles: boolean, cancelable: boolean) {\n Object.assign(event, {\n type,\n bubbles,\n cancelable,\n });\n },\n };\n return event;\n }\n\n createComment(text: string) {\n return new CommentNode(text);\n }\n\n static createPropertyNode(tagName: string): PropertyNode {\n return new PropertyNode(tagName);\n }\n\n createElement(name: string) {\n return DocumentNode.createElement(name as any);\n }\n\n static createElement<T extends keyof NativeElementsTagNameMap>(\n tagName: T,\n ): NativeElementsTagNameMap[T] {\n if (tagName === 'property') {\n return this.createPropertyNode(tagName) as any;\n }\n const e = createElement(tagName);\n e._ownerDocument = this.getInstance();\n if (e instanceof NativeElementNode && e.nativeView) {\n this.getInstance().nodeMap.set(e.nativeView._domId, e);\n }\n if (tagName === 'page') {\n this.getInstance().page = e as PageElement;\n\n Object.defineProperty(this.getInstance(), 'body', {\n configurable: true,\n get() {\n const page = this.page;\n return {\n insertAdjacentHTML() {\n return null;\n },\n addEventListener: globalThis.addEventListener.bind(page),\n get lastChild() {\n return null;\n },\n };\n },\n });\n }\n return e;\n }\n\n createElementNS(_namespace: any, tagName: keyof NativeElementsTagNameMap) {\n return DocumentNode.createElement(tagName);\n }\n\n createTextNode(text: string) {\n return new TextNode(text);\n }\n\n addEventListener(event: string, callback: EventListener) {\n if (event === 'DOMContentLoaded') {\n setTimeout(callback, 0);\n return;\n }\n console.error('unsupported event on document', event);\n }\n\n removeEventListener(event: string, handler: EventListener) {\n if (event === 'DOMContentLoaded') {\n return;\n }\n console.error('unsupported event on document', event, handler);\n }\n\n searchDom(node: ViewNode, startNode: ViewNode, endNode: ViewNode) {\n const start = startNode || this.page;\n if (start === node) {\n return true;\n }\n if (node === endNode) {\n return false;\n }\n for (const childNode of start.childNodes) {\n if (this.searchDom(node, childNode, endNode)) {\n return true;\n }\n }\n let sibling: ViewNode | null = node;\n while (sibling) {\n if (this.searchDom(node, sibling, endNode)) {\n return true;\n }\n sibling = sibling.nextSibling;\n }\n return false;\n }\n\n createRange() {\n const self = this;\n return {\n startNode: null as ViewNode | null,\n endNode: null as ViewNode | null,\n setStartBefore(startNode: ViewNode | null) {\n while (startNode && !(startNode as NativeElementNode).nativeView) {\n startNode = startNode.nextSibling;\n }\n this.startNode = startNode;\n },\n setEndAfter(endNode: ViewNode | null) {\n while (endNode && !(endNode as NativeElementNode).nativeView) {\n endNode = endNode.prevSibling;\n }\n this.endNode = endNode;\n },\n isPointInRange(dom: ViewNode): boolean {\n return self.searchDom(dom, this.startNode!, this.endNode!);\n },\n getBoundingClientRect() {\n if (!(this.startNode instanceof NativeElementNode)) return null;\n if (!this.startNode?.nativeView) return null;\n const point = this.startNode.nativeView.getLocationInWindow();\n const size = this.startNode.nativeView.getActualSize();\n let x = point.x;\n let y = point.y;\n let width = size.width;\n let height = size.height;\n for (const element of elementIterator(this.startNode)) {\n const point = element.nativeView.getLocationInWindow();\n const size = element.nativeView.getActualSize();\n x = Math.min(x, point.x);\n y = Math.min(y, point.y);\n width = point.x + size.width - x;\n height = point.y + size.height - y;\n if (element === this.endNode) {\n break;\n }\n }\n return {\n left: x,\n top: y,\n bottom: y + height,\n width,\n height,\n };\n },\n };\n }\n\n querySelectorAll(selector: string) {\n if (selector.startsWith('meta')) {\n const config = this.config;\n return {\n getAttribute(): string {\n return JSON.stringify(config);\n },\n };\n }\n }\n}\n"],"names":["elementIterator","el","child","childNodes","HeadNode","ElementNode","constructor","tagName","document","_defineProperty","appendChild","childNode","page","nativeView","addCss","text","DocumentNode","ViewNode","getInstance","dataset","nodeType","head","nodeMap","Map","createEvent","eventInterface","event","initEvent","type","bubbles","cancelable","Object","assign","createComment","CommentNode","createPropertyNode","PropertyNode","createElement","name","e","_ownerDocument","NativeElementNode","set","_domId","defineProperty","configurable","get","insertAdjacentHTML","addEventListener","globalThis","bind","lastChild","createElementNS","_namespace","createTextNode","TextNode","callback","setTimeout","console","error","removeEventListener","handler","searchDom","node","startNode","endNode","start","sibling","nextSibling","createRange","self","setStartBefore","setEndAfter","prevSibling","isPointInRange","dom","getBoundingClientRect","point","getLocationInWindow","size","getActualSize","x","y","width","height","element","Math","min","left","top","bottom","querySelectorAll","selector","startsWith","config","getAttribute","JSON","stringify"],"mappings":"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"}
|