git0 0.2.9 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/TypeScript-React-Starter/LICENSE +21 -0
- package/TypeScript-React-Starter/README-CRA.md +1281 -0
- package/TypeScript-React-Starter/README.md +810 -0
- package/TypeScript-React-Starter/package.json +28 -0
- package/TypeScript-React-Starter/public/favicon.ico +0 -0
- package/TypeScript-React-Starter/public/index.html +31 -0
- package/TypeScript-React-Starter/src/App.css +24 -0
- package/TypeScript-React-Starter/src/App.test.tsx +8 -0
- package/TypeScript-React-Starter/src/App.tsx +23 -0
- package/TypeScript-React-Starter/src/actions/index.tsx +24 -0
- package/TypeScript-React-Starter/src/components/Hello.css +13 -0
- package/TypeScript-React-Starter/src/components/Hello.test.tsx +30 -0
- package/TypeScript-React-Starter/src/components/Hello.tsx +35 -0
- package/TypeScript-React-Starter/src/constants/index.tsx +6 -0
- package/TypeScript-React-Starter/src/containers/Hello.tsx +20 -0
- package/TypeScript-React-Starter/src/index.css +5 -0
- package/TypeScript-React-Starter/src/index.tsx +22 -0
- package/TypeScript-React-Starter/src/logo.svg +7 -0
- package/TypeScript-React-Starter/src/reducers/index.tsx +15 -0
- package/TypeScript-React-Starter/src/types/index.tsx +5 -0
- package/TypeScript-React-Starter/tsconfig.json +29 -0
- package/TypeScript-React-Starter/tslint.json +11 -0
- package/TypeScript-React-Starter/yarn.lock +4785 -0
- package/package.json +2 -2
- package/src/github-api.js +3 -3
- package/svelte-nodegui/.all-contributorsrc +60 -0
- package/svelte-nodegui/.vscode/launch.json +29 -0
- package/svelte-nodegui/CHANGELOG.md +153 -0
- package/svelte-nodegui/LICENSE +22 -0
- package/svelte-nodegui/README.md +151 -0
- package/svelte-nodegui/demo/.editorconfig +15 -0
- package/svelte-nodegui/demo/.vscode/extensions.json +3 -0
- package/svelte-nodegui/demo/livereload.js +29 -0
- package/svelte-nodegui/demo/package-lock.json +3514 -0
- package/svelte-nodegui/demo/package.json +35 -0
- package/svelte-nodegui/demo/src/App.svelte +29 -0
- package/svelte-nodegui/demo/src/app.ts +31 -0
- package/svelte-nodegui/demo/tsconfig.json +40 -0
- package/svelte-nodegui/demo/webpack.config.js +110 -0
- package/svelte-nodegui/extras/assets/kitchen.png +0 -0
- package/svelte-nodegui/extras/assets/nodegui.png +0 -0
- package/svelte-nodegui/extras/assets/nodegui_white.png +0 -0
- package/svelte-nodegui/extras/assets/start_icon.png +0 -0
- package/svelte-nodegui/extras/legal/logo/thanks.md +13 -0
- package/svelte-nodegui/extras/legal/yode/LICENSE +21 -0
- package/svelte-nodegui/extras/legal/yoga/LICENSE +0 -0
- package/svelte-nodegui/extras/logo/nodegui-circle.png +0 -0
- package/svelte-nodegui/extras/logo/nodegui.png +0 -0
- package/svelte-nodegui/extras/logo/nodegui.svg +4 -0
- package/svelte-nodegui/nativescript-svelte-todo.gif +0 -0
- package/svelte-nodegui/package-lock.json +1749 -0
- package/svelte-nodegui/package.json +44 -0
- package/svelte-nodegui/repl-workers/bundler/commonjs.js +58 -0
- package/svelte-nodegui/repl-workers/bundler/index.js +353 -0
- package/svelte-nodegui/repl-workers/package-lock.json +484 -0
- package/svelte-nodegui/repl-workers/package.json +21 -0
- package/svelte-nodegui/repl-workers/rollup.config.js +21 -0
- package/svelte-nodegui/rollup.config.js +81 -0
- package/svelte-nodegui/scripts/create-pkg.js +42 -0
- package/svelte-nodegui/src/components/AsComponent.svelte +16 -0
- package/svelte-nodegui/src/components/SlotComponent.svelte +4 -0
- package/svelte-nodegui/src/components/Template.svelte +10 -0
- package/svelte-nodegui/src/components/Template.svelte.d.ts +6 -0
- package/svelte-nodegui/src/components/index.ts +2 -0
- package/svelte-nodegui/src/dom/index.ts +132 -0
- package/svelte-nodegui/src/dom/nativescript-vue-next/LICENCE +21 -0
- package/svelte-nodegui/src/dom/nativescript-vue-next/index.ts +19 -0
- package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/index.ts +21 -0
- package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/nodes.ts +890 -0
- package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/registry.ts +262 -0
- package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/runtimeHelpers.ts +20 -0
- package/svelte-nodegui/src/dom/react-nodegui/LICENSE +21 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/AbstractComponents/RNAbstractButton.ts +67 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Action/RNAction.ts +146 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Action/index.ts +37 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/AnimatedImage/RNAnimatedImage.ts +76 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/AnimatedImage/index.ts +45 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/BoxView/RNBoxView.ts +99 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/BoxView/index.ts +49 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Button/RNButton.ts +71 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Button/index.ts +49 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/CheckBox/RNCheckBox.ts +71 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/CheckBox/index.ts +50 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/ComboBox/RNComboBox.ts +118 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/ComboBox/index.ts +50 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Dial/RNDial.ts +69 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Dial/index.ts +41 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridColumn/RNGridColumn.ts +95 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridColumn/index.ts +49 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridRow/RNGridRow.ts +141 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridRow/index.ts +47 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/RNGridView.ts +185 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/index.ts +51 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/utils.ts +59 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Image/RNImage.ts +135 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Image/index.ts +46 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/LineEdit/RNLineEdit.ts +82 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/LineEdit/index.ts +41 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Menu/RNMenu.ts +49 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Menu/index.ts +44 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/MenuBar/RNMenuBar.ts +51 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/MenuBar/index.ts +42 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/PlainTextEdit/RNPlainTextEdit.ts +82 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/PlainTextEdit/index.ts +44 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/ProgressBar/RNProgressBar.ts +78 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/ProgressBar/index.ts +43 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/RadioButton/RNRadioButton.ts +50 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/RadioButton/index.ts +43 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/ScrollArea/RNScrollArea.ts +51 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/ScrollArea/index.ts +44 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Slider/RNSlider.ts +97 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Slider/index.ts +46 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/SpinBox/RNSpinBox.ts +88 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/SpinBox/index.ts +49 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Svg/RNSvg.ts +67 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Svg/index.ts +43 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/SystemTrayIcon/RNSystemTrayIcon.ts +141 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/SystemTrayIcon/index.ts +43 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Tab/RNTab.ts +69 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Tab/index.ts +48 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/TabItem/RNTabItem.ts +72 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/TabItem/index.ts +40 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Text/RNText.ts +65 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Text/index.ts +49 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/View/RNView.ts +306 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/View/index.ts +44 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Window/RNWindow.ts +66 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/Window/index.ts +50 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/components/config.ts +95 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/index.ts +52 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/reconciler/index.ts +226 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/utils/decoupleFromReact.ts +2 -0
- package/svelte-nodegui/src/dom/react-nodegui/src/utils/helpers.ts +14 -0
- package/svelte-nodegui/src/dom/shared/Logger.ts +16 -0
- package/svelte-nodegui/src/dom/shared/index.ts +1 -0
- package/svelte-nodegui/src/dom/svelte/HeadElement.ts +41 -0
- package/svelte-nodegui/src/dom/svelte/RNObject.ts +95 -0
- package/svelte-nodegui/src/dom/svelte/StyleElement.ts +92 -0
- package/svelte-nodegui/src/dom/svelte/SvelteNodeGUIDocument.ts +124 -0
- package/svelte-nodegui/src/dom/svelte/TemplateElement.ts +16 -0
- package/svelte-nodegui/src/dom/svelte-elements.ts +111 -0
- package/svelte-nodegui/src/index.ts +62 -0
- package/svelte-nodegui/src/svelte-nodegui.ts +159 -0
- package/svelte-nodegui/src/transitions/bezier.ts +112 -0
- package/svelte-nodegui/src/transitions/index.ts +227 -0
- package/svelte-nodegui/tsconfig.json +19 -0
- package/svelte-nodegui/website/README.md +33 -0
- package/svelte-nodegui/website/blog/2019-05-30-welcome.md +12 -0
- package/svelte-nodegui/website/docs/api/classes/renderer.md +49 -0
- package/svelte-nodegui/website/docs/api/classes/rnaction.md +608 -0
- package/svelte-nodegui/website/docs/api/classes/rngridcolumn.md +232 -0
- package/svelte-nodegui/website/docs/api/classes/rngridrow.md +247 -0
- package/svelte-nodegui/website/docs/api/classes/rnmenu.md +1337 -0
- package/svelte-nodegui/website/docs/api/classes/rnmenubar.md +1341 -0
- package/svelte-nodegui/website/docs/api/globals.md +832 -0
- package/svelte-nodegui/website/docs/api/index.md +0 -0
- package/svelte-nodegui/website/docs/api/interfaces/_react_proxy_.reactproxycomponent.md +38 -0
- package/svelte-nodegui/website/docs/api/interfaces/abstractbuttonprops.md +306 -0
- package/svelte-nodegui/website/docs/api/interfaces/actionprops.md +115 -0
- package/svelte-nodegui/website/docs/api/interfaces/animatedimageprops.md +297 -0
- package/svelte-nodegui/website/docs/api/interfaces/boxviewprops.md +245 -0
- package/svelte-nodegui/website/docs/api/interfaces/buttonprops.md +313 -0
- package/svelte-nodegui/website/docs/api/interfaces/checkboxprops.md +313 -0
- package/svelte-nodegui/website/docs/api/interfaces/comboboxprops.md +343 -0
- package/svelte-nodegui/website/docs/api/interfaces/datawithoffset.md +32 -0
- package/svelte-nodegui/website/docs/api/interfaces/dialprops.md +259 -0
- package/svelte-nodegui/website/docs/api/interfaces/gridviewprops.md +273 -0
- package/svelte-nodegui/website/docs/api/interfaces/imageprops.md +311 -0
- package/svelte-nodegui/website/docs/api/interfaces/lineeditprops.md +266 -0
- package/svelte-nodegui/website/docs/api/interfaces/menubarprops.md +245 -0
- package/svelte-nodegui/website/docs/api/interfaces/menuprops.md +245 -0
- package/svelte-nodegui/website/docs/api/interfaces/plaintexteditprops.md +259 -0
- package/svelte-nodegui/website/docs/api/interfaces/progressbarprops.md +266 -0
- package/svelte-nodegui/website/docs/api/interfaces/radiobuttonprops.md +282 -0
- package/svelte-nodegui/website/docs/api/interfaces/scrollareaprops.md +245 -0
- package/svelte-nodegui/website/docs/api/interfaces/sliderprops.md +329 -0
- package/svelte-nodegui/website/docs/api/interfaces/spinboxprops.md +273 -0
- package/svelte-nodegui/website/docs/api/interfaces/systemtrayiconprops.md +97 -0
- package/svelte-nodegui/website/docs/api/interfaces/tabitemprops.md +28 -0
- package/svelte-nodegui/website/docs/api/interfaces/tabprops.md +245 -0
- package/svelte-nodegui/website/docs/api/interfaces/textprops.md +277 -0
- package/svelte-nodegui/website/docs/api/interfaces/viewprops.md +261 -0
- package/svelte-nodegui/website/docs/api/interfaces/windowprops.md +245 -0
- package/svelte-nodegui/website/docs/api/modules/_react_proxy_.md +29 -0
- package/svelte-nodegui/website/docs/doc1.md +162 -0
- package/svelte-nodegui/website/docs/guides/custom-nodegui-native-plugin.md +6 -0
- package/svelte-nodegui/website/docs/guides/debugging-in-vscode.md +39 -0
- package/svelte-nodegui/website/docs/guides/debugging.md +59 -0
- package/svelte-nodegui/website/docs/guides/getting-started.md +141 -0
- package/svelte-nodegui/website/docs/guides/handle-events.md +188 -0
- package/svelte-nodegui/website/docs/guides/images.md +62 -0
- package/svelte-nodegui/website/docs/guides/layout.md +281 -0
- package/svelte-nodegui/website/docs/guides/networking.md +31 -0
- package/svelte-nodegui/website/docs/guides/packaging.md +32 -0
- package/svelte-nodegui/website/docs/guides/scroll-view.md +69 -0
- package/svelte-nodegui/website/docs/guides/styling.md +208 -0
- package/svelte-nodegui/website/docs/guides/tutorial.md +82 -0
- package/svelte-nodegui/website/docs/guides/using-native-node-modules.md +55 -0
- package/svelte-nodegui/website/docs/mdx.md +22 -0
- package/svelte-nodegui/website/docs/scripts/fixdocs.js +21 -0
- package/svelte-nodegui/website/docusaurus.config.js +131 -0
- package/svelte-nodegui/website/package.json +33 -0
- package/svelte-nodegui/website/sidebars.js +77 -0
- package/svelte-nodegui/website/src/components/CodeExample.js +42 -0
- package/svelte-nodegui/website/src/components/CreateNativeApps.js +46 -0
- package/svelte-nodegui/website/src/components/Features.js +62 -0
- package/svelte-nodegui/website/src/components/Hero.js +85 -0
- package/svelte-nodegui/website/src/components/SplitView.js +18 -0
- package/svelte-nodegui/website/src/components/Talks.js +68 -0
- package/svelte-nodegui/website/src/components/Try.js +83 -0
- package/svelte-nodegui/website/src/components/common.js +41 -0
- package/svelte-nodegui/website/src/components/styles.css +61 -0
- package/svelte-nodegui/website/src/css/custom.css +34 -0
- package/svelte-nodegui/website/src/pages/index.js +32 -0
- package/svelte-nodegui/website/src/pages/styles.module.css +35 -0
- package/svelte-nodegui/website/static/CNAME +1 -0
- package/svelte-nodegui/website/static/img/box-layout-1.png +0 -0
- package/svelte-nodegui/website/static/img/box-layout-2.png +0 -0
- package/svelte-nodegui/website/static/img/code-sample.png +0 -0
- package/svelte-nodegui/website/static/img/demo.png +0 -0
- package/svelte-nodegui/website/static/img/favicon.ico +0 -0
- package/svelte-nodegui/website/static/img/flex-layout-1.png +0 -0
- package/svelte-nodegui/website/static/img/grid-layout-1.png +0 -0
- package/svelte-nodegui/website/static/img/logo-circle.png +0 -0
- package/svelte-nodegui/website/static/img/logo.png +0 -0
- package/svelte-nodegui/website/static/img/logo.svg +5 -0
- package/svelte-nodegui/website/static/img/logox200.png +0 -0
- package/svelte-nodegui/website/static/img/undraw_building_websites.svg +1 -0
- package/svelte-nodegui/website/static/img/undraw_code_review.svg +1 -0
- package/svelte-nodegui/website/static/img/undraw_docusaurus_mountain.svg +170 -0
- package/svelte-nodegui/website/static/img/undraw_docusaurus_react.svg +169 -0
- package/svelte-nodegui/website/static/img/undraw_docusaurus_tree.svg +1 -0
- package/svelte-nodegui/website/static/img/undraw_react.svg +1 -0
- package/svelte-nodegui/website/static/img/undraw_website_setup.svg +1 -0
- package/svelte-nodegui/website/static/img/undraw_windows.svg +11 -0
- package/svelte-nodegui/website/website/sidebars.js +32 -0
- package/svelte-nodegui/website/yarn.lock +10533 -0
- package/bun.lock +0 -159
- package/docs-config/bun.lock +0 -6139
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
// import Reconciler from "react-reconciler";
|
|
2
|
+
// import { NodeWidget, QSystemTrayIcon, NodeObject } from "@nodegui/nodegui";
|
|
3
|
+
// import {
|
|
4
|
+
// getComponentByTagName,
|
|
5
|
+
// RNWidget,
|
|
6
|
+
// RNProps,
|
|
7
|
+
// RNComponent
|
|
8
|
+
// } from "../components/config";
|
|
9
|
+
|
|
10
|
+
// export type AppContainer = Set<NodeWidget<any>>;
|
|
11
|
+
export type AppContainer = any;
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
export const appContainer: AppContainer = new Set<NodeWidget<any>>();
|
|
15
|
+
|
|
16
|
+
const shouldIgnoreChild = (child: NodeObject<any>) =>
|
|
17
|
+
child instanceof QSystemTrayIcon;
|
|
18
|
+
|
|
19
|
+
const HostConfig: Reconciler.HostConfig<
|
|
20
|
+
string,
|
|
21
|
+
RNProps,
|
|
22
|
+
AppContainer,
|
|
23
|
+
RNComponent,
|
|
24
|
+
any,
|
|
25
|
+
any,
|
|
26
|
+
any,
|
|
27
|
+
any,
|
|
28
|
+
any,
|
|
29
|
+
any,
|
|
30
|
+
any,
|
|
31
|
+
any
|
|
32
|
+
> = {
|
|
33
|
+
now: Date.now,
|
|
34
|
+
getRootHostContext: function(nextRootInstance) {
|
|
35
|
+
let context = {
|
|
36
|
+
name: "rootnode"
|
|
37
|
+
};
|
|
38
|
+
return context;
|
|
39
|
+
},
|
|
40
|
+
getChildHostContext: function(parentContext, fiberType, rootInstance) {
|
|
41
|
+
const { getContext } = getComponentByTagName(fiberType);
|
|
42
|
+
return getContext(parentContext, rootInstance);
|
|
43
|
+
},
|
|
44
|
+
shouldSetTextContent: function(type, nextProps) {
|
|
45
|
+
const { shouldSetTextContent } = getComponentByTagName(type);
|
|
46
|
+
return shouldSetTextContent(nextProps);
|
|
47
|
+
},
|
|
48
|
+
createTextInstance: function(
|
|
49
|
+
newText,
|
|
50
|
+
rootContainerInstance,
|
|
51
|
+
context,
|
|
52
|
+
workInProgress
|
|
53
|
+
) {
|
|
54
|
+
// throw new Error(`Can't create text without <Text> for text: ${newText}`);
|
|
55
|
+
console.warn(
|
|
56
|
+
"createTextInstance called in reconciler when platform doesnt have host level text. "
|
|
57
|
+
);
|
|
58
|
+
console.warn(`Use <Text /> component to add the text: ${newText}`);
|
|
59
|
+
},
|
|
60
|
+
createInstance: function(
|
|
61
|
+
type,
|
|
62
|
+
newProps,
|
|
63
|
+
rootContainerInstance,
|
|
64
|
+
context,
|
|
65
|
+
workInProgress
|
|
66
|
+
) {
|
|
67
|
+
const { createInstance } = getComponentByTagName(type);
|
|
68
|
+
return createInstance(
|
|
69
|
+
newProps,
|
|
70
|
+
rootContainerInstance,
|
|
71
|
+
context,
|
|
72
|
+
workInProgress
|
|
73
|
+
);
|
|
74
|
+
},
|
|
75
|
+
appendInitialChild: function (parent: RNWidget, child: NodeWidget<any>) {
|
|
76
|
+
if (shouldIgnoreChild(child)) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
parent.appendInitialChild(child);
|
|
80
|
+
},
|
|
81
|
+
finalizeInitialChildren: function(
|
|
82
|
+
instance,
|
|
83
|
+
type,
|
|
84
|
+
newProps,
|
|
85
|
+
rootContainerInstance,
|
|
86
|
+
context
|
|
87
|
+
) {
|
|
88
|
+
const { finalizeInitialChildren } = getComponentByTagName(type);
|
|
89
|
+
return finalizeInitialChildren(
|
|
90
|
+
instance,
|
|
91
|
+
newProps,
|
|
92
|
+
rootContainerInstance,
|
|
93
|
+
context
|
|
94
|
+
);
|
|
95
|
+
},
|
|
96
|
+
prepareForCommit: function(rootNode) {
|
|
97
|
+
// noop
|
|
98
|
+
},
|
|
99
|
+
resetAfterCommit: function(rootNode) {
|
|
100
|
+
// noop
|
|
101
|
+
},
|
|
102
|
+
commitMount: function(instance, type, newProps, internalInstanceHandle) {
|
|
103
|
+
const { commitMount } = getComponentByTagName(type);
|
|
104
|
+
return commitMount(instance, newProps, internalInstanceHandle);
|
|
105
|
+
},
|
|
106
|
+
appendChildToContainer: function(container, child: NodeWidget<any>) {
|
|
107
|
+
container.add(child);
|
|
108
|
+
},
|
|
109
|
+
insertInContainerBefore: (container, child, beforeChild) => {
|
|
110
|
+
container.add(child);
|
|
111
|
+
},
|
|
112
|
+
removeChildFromContainer: (container, child) => {
|
|
113
|
+
container.delete(child);
|
|
114
|
+
if (child.close) {
|
|
115
|
+
child.close();
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
prepareUpdate: function(
|
|
119
|
+
instance,
|
|
120
|
+
type,
|
|
121
|
+
oldProps,
|
|
122
|
+
newProps,
|
|
123
|
+
rootContainerInstance,
|
|
124
|
+
hostContext
|
|
125
|
+
) {
|
|
126
|
+
const { prepareUpdate } = getComponentByTagName(type);
|
|
127
|
+
return prepareUpdate(
|
|
128
|
+
instance,
|
|
129
|
+
oldProps,
|
|
130
|
+
newProps,
|
|
131
|
+
rootContainerInstance,
|
|
132
|
+
hostContext
|
|
133
|
+
);
|
|
134
|
+
},
|
|
135
|
+
commitUpdate: function(
|
|
136
|
+
instance,
|
|
137
|
+
updatePayload,
|
|
138
|
+
type,
|
|
139
|
+
oldProps,
|
|
140
|
+
newProps,
|
|
141
|
+
finishedWork
|
|
142
|
+
) {
|
|
143
|
+
const { commitUpdate } = getComponentByTagName(type);
|
|
144
|
+
return commitUpdate(
|
|
145
|
+
instance,
|
|
146
|
+
updatePayload,
|
|
147
|
+
oldProps,
|
|
148
|
+
newProps,
|
|
149
|
+
finishedWork
|
|
150
|
+
);
|
|
151
|
+
},
|
|
152
|
+
appendChild: (parent: RNWidget, child: NodeWidget<any>) => {
|
|
153
|
+
if (shouldIgnoreChild(child)) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
parent.appendChild(child);
|
|
157
|
+
},
|
|
158
|
+
insertBefore: (
|
|
159
|
+
parent: RNWidget,
|
|
160
|
+
child: NodeWidget<any>,
|
|
161
|
+
beforeChild: NodeWidget<any>
|
|
162
|
+
) => {
|
|
163
|
+
if (shouldIgnoreChild(child)) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
parent.insertBefore(child, beforeChild);
|
|
167
|
+
},
|
|
168
|
+
removeChild: (parent: RNWidget, child: NodeWidget<any>) => {
|
|
169
|
+
if (!shouldIgnoreChild(child)) {
|
|
170
|
+
parent.removeChild(child);
|
|
171
|
+
}
|
|
172
|
+
if (child.close) {
|
|
173
|
+
child.close();
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
commitTextUpdate: (textInstance, oldText, newText) => {
|
|
177
|
+
//noop since we manage all text using Text component
|
|
178
|
+
console.warn(
|
|
179
|
+
"commitTextUpdate called when platform doesnt have host level text"
|
|
180
|
+
);
|
|
181
|
+
},
|
|
182
|
+
resetTextContent: instance => {
|
|
183
|
+
console.warn("resetTextContent in reconciler triggered!");
|
|
184
|
+
// noop for now till we find when this method is triggered
|
|
185
|
+
},
|
|
186
|
+
supportsMutation: true,
|
|
187
|
+
supportsPersistence: false,
|
|
188
|
+
supportsHydration: false,
|
|
189
|
+
getPublicInstance: instance => {
|
|
190
|
+
//for supporting refs
|
|
191
|
+
return instance;
|
|
192
|
+
},
|
|
193
|
+
shouldDeprioritizeSubtree: (type, props) => {
|
|
194
|
+
// Use to deprioritize entire subtree based on props and types. For example if you dont need reconciler to calculate for hidden elements
|
|
195
|
+
if ((props as any).visible === false) {
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
return false;
|
|
199
|
+
},
|
|
200
|
+
//@ts-ignore
|
|
201
|
+
hideInstance: (instance: NodeWidget<any>) => {
|
|
202
|
+
instance.hide();
|
|
203
|
+
},
|
|
204
|
+
unhideInstance: (instance: NodeWidget<any>, Props: RNProps) => {
|
|
205
|
+
instance.show();
|
|
206
|
+
},
|
|
207
|
+
hideTextInstance: (instance: any) => {
|
|
208
|
+
// noop since we dont have any host text
|
|
209
|
+
console.warn(
|
|
210
|
+
"hideTextInstance called when platform doesnt have host level text"
|
|
211
|
+
);
|
|
212
|
+
},
|
|
213
|
+
unhideTextInstance: (instance: NodeWidget<any>, Props: RNProps) => {
|
|
214
|
+
// noop since we dont have any host text
|
|
215
|
+
console.warn(
|
|
216
|
+
"unhideTextInstance called when platform doesnt have host level text"
|
|
217
|
+
);
|
|
218
|
+
},
|
|
219
|
+
scheduleTimeout: setTimeout,
|
|
220
|
+
cancelTimeout: clearTimeout,
|
|
221
|
+
noTimeout: -1,
|
|
222
|
+
isPrimaryRenderer: true
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
export default Reconciler(HostConfig);
|
|
226
|
+
*/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function throwUnsupported(instance: object) {
|
|
2
|
+
throw new Error(
|
|
3
|
+
`Unsupported operation performed in ${instance.constructor.name}`
|
|
4
|
+
);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function isValidUrl(str: string) {
|
|
8
|
+
try {
|
|
9
|
+
new URL(str);
|
|
10
|
+
return true;
|
|
11
|
+
} catch (_) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// declare let __DEV__: boolean|undefined;
|
|
2
|
+
|
|
3
|
+
export function log(message?: any, ...optionalParams: any[]): void {
|
|
4
|
+
if (!(global as any).__DEV__) return;
|
|
5
|
+
console.log(message, optionalParams);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function warn(message?: any, ...optionalParams: any[]): void {
|
|
9
|
+
if (!(global as any).__DEV__) return;
|
|
10
|
+
console.warn(message, optionalParams);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function error(message?: any, ...optionalParams: any[]): void {
|
|
14
|
+
// if(!(global as any).__DEV__) return;
|
|
15
|
+
console.error(message, optionalParams);
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { log, warn, error } from "./Logger";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NSVElement, NSVNodeTypes } from "../nativescript-vue-next/runtime/nodes";
|
|
2
|
+
import { RNObject } from "./RNObject";
|
|
3
|
+
import StyleElement from "./StyleElement";
|
|
4
|
+
// import { addCss } from "@nativescript/core/application"
|
|
5
|
+
|
|
6
|
+
export default class HeadElement extends NSVElement<RNObject> {
|
|
7
|
+
private readonly styleElements: Set<StyleElement> = new Set();
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
super("head")
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
addStyleElement(styleElement: StyleElement): void {
|
|
14
|
+
this.styleElements.add(styleElement);
|
|
15
|
+
this.updateStyles();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
removeStyleElement(styleElement: StyleElement): void {
|
|
19
|
+
this.styleElements.delete(styleElement);
|
|
20
|
+
this.updateStyles();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getStyleSheet(): string {
|
|
24
|
+
let css: string = "";
|
|
25
|
+
let i: number = 0;
|
|
26
|
+
for (const styleElement of this.styleElements) {
|
|
27
|
+
if(i > 0){
|
|
28
|
+
css += "\n";
|
|
29
|
+
}
|
|
30
|
+
css += styleElement.nativeView.textContent;
|
|
31
|
+
i++;
|
|
32
|
+
}
|
|
33
|
+
return css;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
updateStyles(): void {
|
|
37
|
+
const ss: string = this.getStyleSheet();
|
|
38
|
+
// console.log(`[HeadElement] updateStyles got stylesheet: \`${ss}\``);
|
|
39
|
+
this.ownerDocument.setStyleSheets(ss);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import {
|
|
2
|
+
QObject,
|
|
3
|
+
QObjectSignals,
|
|
4
|
+
Component,
|
|
5
|
+
} from "@nodegui/nodegui";
|
|
6
|
+
import { RNComponent, RNProps } from "../react-nodegui/src/components/config";
|
|
7
|
+
import { throwUnsupported } from "../react-nodegui/src/utils/helpers";
|
|
8
|
+
|
|
9
|
+
export interface ObjectProps extends RNProps {
|
|
10
|
+
/**
|
|
11
|
+
* Sets the object name (id) of the widget in Qt. Object name can be analogous to id of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world. [QWidget: setObjectName](https://docs.nodegui.org/docs/api/NodeWidget#widgetsetobjectnameobjectname)
|
|
12
|
+
*/
|
|
13
|
+
id?: string;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Prop to set the event listener map. See [Handlong Events](/docs/guides/handle-events)
|
|
17
|
+
*/
|
|
18
|
+
on?: Partial<QObjectSignals>;
|
|
19
|
+
|
|
20
|
+
textContent?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const setObjectProps = (
|
|
24
|
+
widget: RNObject,
|
|
25
|
+
newProps: ObjectProps,
|
|
26
|
+
oldProps: ObjectProps
|
|
27
|
+
) => {
|
|
28
|
+
const setter: ObjectProps = {
|
|
29
|
+
set id(id: string) {
|
|
30
|
+
widget.setObjectName(id);
|
|
31
|
+
},
|
|
32
|
+
set on(listenerMap: Partial<QObjectSignals>) {
|
|
33
|
+
const listenerMapLatest: any = Object.assign({}, listenerMap);
|
|
34
|
+
const oldListenerMap = Object.assign({}, oldProps.on);
|
|
35
|
+
Object.entries(oldListenerMap).forEach(([eventType, oldEvtListener]) => {
|
|
36
|
+
const newEvtListener = listenerMapLatest[eventType];
|
|
37
|
+
if (oldEvtListener !== newEvtListener) {
|
|
38
|
+
widget.removeEventListener(eventType as any, oldEvtListener);
|
|
39
|
+
} else {
|
|
40
|
+
delete listenerMapLatest[eventType];
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
Object.entries(listenerMapLatest).forEach(
|
|
45
|
+
([eventType, newEvtListener]) => {
|
|
46
|
+
widget.addEventListener(eventType as any, newEvtListener);
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
},
|
|
50
|
+
set textContent(t: string) {
|
|
51
|
+
widget.setProperty("textContent", t);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
Object.assign(setter, newProps);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @see https://docs.nodegui.org/docs/api/generated/classes/qobject/
|
|
59
|
+
*/
|
|
60
|
+
export class RNObject extends QObject implements RNComponent {
|
|
61
|
+
get id(): string {
|
|
62
|
+
return this.objectName();
|
|
63
|
+
}
|
|
64
|
+
get textContent(): string{
|
|
65
|
+
return this.property("textContent").toString();
|
|
66
|
+
}
|
|
67
|
+
set textContent(t: string) {
|
|
68
|
+
this.setProperty("textContent", t);
|
|
69
|
+
};
|
|
70
|
+
setProps(newProps: ObjectProps, oldProps: ObjectProps): void {
|
|
71
|
+
setObjectProps(this, newProps, oldProps);
|
|
72
|
+
}
|
|
73
|
+
appendInitialChild(child: Component) {
|
|
74
|
+
/* Just no-op. Use-cases include e.g. document > head */
|
|
75
|
+
// throwUnsupported(this);
|
|
76
|
+
}
|
|
77
|
+
appendChild(child: Component): void {
|
|
78
|
+
// console.log(`[RNObject] appendChild(${child})`);
|
|
79
|
+
/* Just no-op. Use-cases include e.g. document > head */
|
|
80
|
+
// throwUnsupported(this);
|
|
81
|
+
}
|
|
82
|
+
insertBefore(child: Component, beforeChild: Component): void {
|
|
83
|
+
/* Just no-op. Use-cases include e.g. document > head */
|
|
84
|
+
// throwUnsupported(this);
|
|
85
|
+
}
|
|
86
|
+
removeChild(child: Component): void {
|
|
87
|
+
/* Just no-op. Use-cases include e.g. document x head */
|
|
88
|
+
// throwUnsupported(this);
|
|
89
|
+
}
|
|
90
|
+
static tagName = "object";
|
|
91
|
+
|
|
92
|
+
toString(): string {
|
|
93
|
+
return `RNObject()`;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// import { ElementNode, logger as log } from '../basicdom'
|
|
2
|
+
import { NSVElement, NSVNodeTypes } from "../nativescript-vue-next/runtime/nodes";
|
|
3
|
+
import { RNObject } from "./RNObject";
|
|
4
|
+
import { log } from "../shared/Logger";
|
|
5
|
+
import HeadElement from "./HeadElement";
|
|
6
|
+
// import { StyleScope } from '@nativescript/core/ui/styling/style-scope'
|
|
7
|
+
// import { Frame } from '@nativescript/core'
|
|
8
|
+
|
|
9
|
+
class StyleSheet {
|
|
10
|
+
private readonly _rules: string[] = [];
|
|
11
|
+
|
|
12
|
+
constructor(private styleElement: NSVElement){
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// The css rules generated by svelte have a keyframe every 16 milliseconds and are quite slow to create and run
|
|
16
|
+
// this is here to support the simple and short ones, but ideally we would promote our own transitions in svelte-native/transitions
|
|
17
|
+
// which would delegate to the more direct nativescript way of working.
|
|
18
|
+
|
|
19
|
+
deleteRule(index: number) {
|
|
20
|
+
console.log(`[StyleSheet] deleteRule ${index}`);
|
|
21
|
+
|
|
22
|
+
// if(this.styleElement.parentNode){
|
|
23
|
+
// console.log(`[StyleSheet.deleteRule] found parentNode: ${this.styleElement.parentNode}`);
|
|
24
|
+
// } else {
|
|
25
|
+
// console.log(`[StyleSheet.deleteRule] found no parentNode.`);
|
|
26
|
+
// }
|
|
27
|
+
|
|
28
|
+
/* TODO: implement for NodeGUI */
|
|
29
|
+
let removed = this._rules.splice(index, 1);
|
|
30
|
+
this.styleElement.ownerDocument.head?.updateStyles();
|
|
31
|
+
|
|
32
|
+
// for (let r in removed) {
|
|
33
|
+
// // log.debug(() => `removing transition rule ${r}`);
|
|
34
|
+
// // Turns out nativescript doesn't support "removing" css.
|
|
35
|
+
// // this is pretty horrible but better than a memory leak.
|
|
36
|
+
// // since this code is called mainly for keyframes, and keyframes don't add new selectors (they just end up in _keyframes)
|
|
37
|
+
// // we can almost remove the rules ourselves.
|
|
38
|
+
// if (r.startsWith('@keyframes')) {
|
|
39
|
+
// const name = r.split(" ")[1];
|
|
40
|
+
// let frame: Frame = Frame.topmost();
|
|
41
|
+
// if (frame && (frame as any)._styleScope) {
|
|
42
|
+
// let scope = (frame as any)._styleScope as StyleScope;
|
|
43
|
+
// delete scope._keyframes[name]
|
|
44
|
+
// scope._css = scope._css.replace(r, "");
|
|
45
|
+
// }
|
|
46
|
+
// }
|
|
47
|
+
// }
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
insertRule(rule: string, index: number = 0) {
|
|
51
|
+
console.log(`[StyleSheet] insertRule(\`${rule}\`, ${index})`);
|
|
52
|
+
// log.debug(() => `Adding transition rule ${rule}`);
|
|
53
|
+
// log(`Adding transition rule ${rule}`);
|
|
54
|
+
|
|
55
|
+
// if(this.styleElement.parentNode){
|
|
56
|
+
// console.log(`[StyleSheet.insertRule] found parentNode: ${this.styleElement.parentNode}`);
|
|
57
|
+
// } else {
|
|
58
|
+
// console.log(`[StyleSheet.insertRule] found no parentNode.`);
|
|
59
|
+
// }
|
|
60
|
+
|
|
61
|
+
// let frame = Frame.topmost();
|
|
62
|
+
// frame.addCss(rule);
|
|
63
|
+
this._rules.splice(index, 0, rule);
|
|
64
|
+
this.styleElement.ownerDocument.head?.updateStyles();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
get cssRules(): any {
|
|
68
|
+
return this._rules;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export default class StyleElement extends NSVElement<RNObject> {
|
|
73
|
+
private readonly _sheet: StyleSheet;
|
|
74
|
+
|
|
75
|
+
constructor() {
|
|
76
|
+
super("style")
|
|
77
|
+
this._sheet = new StyleSheet(this);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
get sheet(): StyleSheet {
|
|
81
|
+
return this._sheet;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
get textContent(): string {
|
|
85
|
+
return this.nativeView.textContent;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
set textContent(t: string) {
|
|
89
|
+
this.nativeView.textContent = t;
|
|
90
|
+
this.ownerDocument.head?.updateStyles();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
|
|
2
|
+
// import { DocumentNode, ElementNode, createElement, TextNode, logger as log } from '../basicdom';
|
|
3
|
+
import { elementIterator, NSVComment, NSVElement, NSVNodeTypes, NSVText } from "../nativescript-vue-next/runtime/nodes";
|
|
4
|
+
import { RNWindow } from "../react-nodegui/src/components/Window/RNWindow";
|
|
5
|
+
import { warn, error, log } from '../shared/Logger';
|
|
6
|
+
import HeadElement from "./HeadElement";
|
|
7
|
+
import { RNObject } from "./RNObject";
|
|
8
|
+
import StyleElement from "./StyleElement";
|
|
9
|
+
import TemplateElement from "./TemplateElement";
|
|
10
|
+
|
|
11
|
+
export default class SvelteNodeGUIDocument extends NSVElement<RNObject> {
|
|
12
|
+
public head: HeadElement = this.createElement('head') as HeadElement;
|
|
13
|
+
public body: NSVElement<RNObject> = this.createElement('body') as NSVElement<RNObject>;
|
|
14
|
+
private _windows: Set<NSVElement<RNWindow>> = new Set();
|
|
15
|
+
|
|
16
|
+
constructor() {
|
|
17
|
+
super("document");
|
|
18
|
+
|
|
19
|
+
this.appendChild(this.head);
|
|
20
|
+
this.appendChild(this.body);
|
|
21
|
+
|
|
22
|
+
// log(`created ${this}`)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
createEvent(type: string) {
|
|
26
|
+
let e: any = {};
|
|
27
|
+
e.initCustomEvent = (type: string, ignored1: boolean, ignored2: boolean, detail: any) => {
|
|
28
|
+
e.type = type;
|
|
29
|
+
e.detail = detail;
|
|
30
|
+
e.eventName = type;
|
|
31
|
+
}
|
|
32
|
+
return e;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
createComment(data: string): NSVComment {
|
|
36
|
+
console.log(`Creating comment with data: "${data}"`);
|
|
37
|
+
return new NSVComment(data)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// createPropertyNode(tagName: string, propertyName: string): PropertyNode {
|
|
41
|
+
// console.log(`[SvelteNodeGUIDocument] createPropertyNode("${tagName}", "${propertyName}")`);
|
|
42
|
+
// return new PropertyNode(tagName, propertyName)
|
|
43
|
+
// }
|
|
44
|
+
|
|
45
|
+
createElement(tagName: string): NSVElement {
|
|
46
|
+
// if (tagName.indexOf(".") >= 0) {
|
|
47
|
+
// let bits = tagName.split(".", 2);
|
|
48
|
+
// return this.createPropertyNode(bits[0], bits[1]);
|
|
49
|
+
// }
|
|
50
|
+
// return nodeOps.createElement(tagName) as NSVElement;
|
|
51
|
+
|
|
52
|
+
let ele: NSVElement;
|
|
53
|
+
switch (tagName) {
|
|
54
|
+
case "template":
|
|
55
|
+
ele = new TemplateElement();
|
|
56
|
+
break;
|
|
57
|
+
case "style":
|
|
58
|
+
ele = new StyleElement();
|
|
59
|
+
break;
|
|
60
|
+
case "head":
|
|
61
|
+
ele = new HeadElement();
|
|
62
|
+
break;
|
|
63
|
+
case "document":
|
|
64
|
+
ele = new SvelteNodeGUIDocument();
|
|
65
|
+
break;
|
|
66
|
+
case "window":
|
|
67
|
+
ele = new NSVElement(tagName);
|
|
68
|
+
this._windows.add(ele as NSVElement<RNWindow>);
|
|
69
|
+
// console.log(`[SvelteNodeGUIDocument] added window ${(ele)}. Will set stylesheet on it: \`${this.head.getStyleSheet()}\``);
|
|
70
|
+
(ele.nativeView as RNWindow).setStyleSheet(this.head.getStyleSheet());
|
|
71
|
+
break;
|
|
72
|
+
case "fragment":
|
|
73
|
+
default: {
|
|
74
|
+
ele = new NSVElement(tagName);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if(tagName !== "document"){
|
|
78
|
+
ele.ownerDocument = this;
|
|
79
|
+
}
|
|
80
|
+
return ele;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
createElementNS(namespace: string, tagName: string): NSVElement {
|
|
84
|
+
return this.createElement(tagName)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
createTextNode(data: string): NSVText {
|
|
88
|
+
// console.log(`[SvelteNodeGUIDocument] createTextNode("${data}")`);
|
|
89
|
+
return new NSVText(data);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
getElementById(id: string): NSVElement|null {
|
|
93
|
+
for(let el of elementIterator(this)){
|
|
94
|
+
// console.log(`getElementById iterating over element <${(el as NSVElement).tagName ?? "node"}> ${(el as NSVElement).id}`);
|
|
95
|
+
if(el.nodeType === NSVNodeTypes.ELEMENT && (el as NSVElement).id === id){
|
|
96
|
+
return el as NSVElement;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
dispatchEvent(event: any) {
|
|
103
|
+
//Svelte dev fires these for tool support
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
addWindow(win: NSVElement<RNWindow>): void {
|
|
107
|
+
this._windows.add(win);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* I'm not clear where would be a good place to call this.
|
|
111
|
+
*/
|
|
112
|
+
deleteWindow(win: NSVElement<RNWindow>): void {
|
|
113
|
+
this._windows.delete(win);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
setStyleSheets(styleSheet: string): void {
|
|
117
|
+
// console.log(`[SvelteNodeGUIDocument] setStyleSheets(\`${styleSheet}\`)`);
|
|
118
|
+
|
|
119
|
+
this._windows.forEach(win => {
|
|
120
|
+
// console.log(`[SvelteNodeGUIDocument] setStyleSheets on window ${win}`);
|
|
121
|
+
win.nativeView.setStyleSheet(styleSheet);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NSVElement, NSVNodeTypes } from '../nativescript-vue-next/runtime/nodes';
|
|
2
|
+
import { RNObject } from './RNObject';
|
|
3
|
+
|
|
4
|
+
export default class TemplateElement extends NSVElement<RNObject> {
|
|
5
|
+
constructor() {
|
|
6
|
+
super("template");
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
set component(value: typeof SvelteComponent) {
|
|
10
|
+
this.setAttribute('component', value)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
get component(): typeof SvelteComponent {
|
|
14
|
+
return this.getAttribute('component') as typeof SvelteComponent
|
|
15
|
+
}
|
|
16
|
+
}
|