git0 0.2.10 → 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.
Files changed (239) hide show
  1. package/TypeScript-React-Starter/LICENSE +21 -0
  2. package/TypeScript-React-Starter/README-CRA.md +1281 -0
  3. package/TypeScript-React-Starter/README.md +810 -0
  4. package/TypeScript-React-Starter/package.json +28 -0
  5. package/TypeScript-React-Starter/public/favicon.ico +0 -0
  6. package/TypeScript-React-Starter/public/index.html +31 -0
  7. package/TypeScript-React-Starter/src/App.css +24 -0
  8. package/TypeScript-React-Starter/src/App.test.tsx +8 -0
  9. package/TypeScript-React-Starter/src/App.tsx +23 -0
  10. package/TypeScript-React-Starter/src/actions/index.tsx +24 -0
  11. package/TypeScript-React-Starter/src/components/Hello.css +13 -0
  12. package/TypeScript-React-Starter/src/components/Hello.test.tsx +30 -0
  13. package/TypeScript-React-Starter/src/components/Hello.tsx +35 -0
  14. package/TypeScript-React-Starter/src/constants/index.tsx +6 -0
  15. package/TypeScript-React-Starter/src/containers/Hello.tsx +20 -0
  16. package/TypeScript-React-Starter/src/index.css +5 -0
  17. package/TypeScript-React-Starter/src/index.tsx +22 -0
  18. package/TypeScript-React-Starter/src/logo.svg +7 -0
  19. package/TypeScript-React-Starter/src/reducers/index.tsx +15 -0
  20. package/TypeScript-React-Starter/src/types/index.tsx +5 -0
  21. package/TypeScript-React-Starter/tsconfig.json +29 -0
  22. package/TypeScript-React-Starter/tslint.json +11 -0
  23. package/TypeScript-React-Starter/yarn.lock +4785 -0
  24. package/package.json +2 -2
  25. package/src/github-api.js +1 -0
  26. package/svelte-nodegui/.all-contributorsrc +60 -0
  27. package/svelte-nodegui/.vscode/launch.json +29 -0
  28. package/svelte-nodegui/CHANGELOG.md +153 -0
  29. package/svelte-nodegui/LICENSE +22 -0
  30. package/svelte-nodegui/README.md +151 -0
  31. package/svelte-nodegui/demo/.editorconfig +15 -0
  32. package/svelte-nodegui/demo/.vscode/extensions.json +3 -0
  33. package/svelte-nodegui/demo/livereload.js +29 -0
  34. package/svelte-nodegui/demo/package-lock.json +3514 -0
  35. package/svelte-nodegui/demo/package.json +35 -0
  36. package/svelte-nodegui/demo/src/App.svelte +29 -0
  37. package/svelte-nodegui/demo/src/app.ts +31 -0
  38. package/svelte-nodegui/demo/tsconfig.json +40 -0
  39. package/svelte-nodegui/demo/webpack.config.js +110 -0
  40. package/svelte-nodegui/extras/assets/kitchen.png +0 -0
  41. package/svelte-nodegui/extras/assets/nodegui.png +0 -0
  42. package/svelte-nodegui/extras/assets/nodegui_white.png +0 -0
  43. package/svelte-nodegui/extras/assets/start_icon.png +0 -0
  44. package/svelte-nodegui/extras/legal/logo/thanks.md +13 -0
  45. package/svelte-nodegui/extras/legal/yode/LICENSE +21 -0
  46. package/svelte-nodegui/extras/legal/yoga/LICENSE +0 -0
  47. package/svelte-nodegui/extras/logo/nodegui-circle.png +0 -0
  48. package/svelte-nodegui/extras/logo/nodegui.png +0 -0
  49. package/svelte-nodegui/extras/logo/nodegui.svg +4 -0
  50. package/svelte-nodegui/nativescript-svelte-todo.gif +0 -0
  51. package/svelte-nodegui/package-lock.json +1749 -0
  52. package/svelte-nodegui/package.json +44 -0
  53. package/svelte-nodegui/repl-workers/bundler/commonjs.js +58 -0
  54. package/svelte-nodegui/repl-workers/bundler/index.js +353 -0
  55. package/svelte-nodegui/repl-workers/package-lock.json +484 -0
  56. package/svelte-nodegui/repl-workers/package.json +21 -0
  57. package/svelte-nodegui/repl-workers/rollup.config.js +21 -0
  58. package/svelte-nodegui/rollup.config.js +81 -0
  59. package/svelte-nodegui/scripts/create-pkg.js +42 -0
  60. package/svelte-nodegui/src/components/AsComponent.svelte +16 -0
  61. package/svelte-nodegui/src/components/SlotComponent.svelte +4 -0
  62. package/svelte-nodegui/src/components/Template.svelte +10 -0
  63. package/svelte-nodegui/src/components/Template.svelte.d.ts +6 -0
  64. package/svelte-nodegui/src/components/index.ts +2 -0
  65. package/svelte-nodegui/src/dom/index.ts +132 -0
  66. package/svelte-nodegui/src/dom/nativescript-vue-next/LICENCE +21 -0
  67. package/svelte-nodegui/src/dom/nativescript-vue-next/index.ts +19 -0
  68. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/index.ts +21 -0
  69. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/nodes.ts +890 -0
  70. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/registry.ts +262 -0
  71. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/runtimeHelpers.ts +20 -0
  72. package/svelte-nodegui/src/dom/react-nodegui/LICENSE +21 -0
  73. package/svelte-nodegui/src/dom/react-nodegui/src/components/AbstractComponents/RNAbstractButton.ts +67 -0
  74. package/svelte-nodegui/src/dom/react-nodegui/src/components/Action/RNAction.ts +146 -0
  75. package/svelte-nodegui/src/dom/react-nodegui/src/components/Action/index.ts +37 -0
  76. package/svelte-nodegui/src/dom/react-nodegui/src/components/AnimatedImage/RNAnimatedImage.ts +76 -0
  77. package/svelte-nodegui/src/dom/react-nodegui/src/components/AnimatedImage/index.ts +45 -0
  78. package/svelte-nodegui/src/dom/react-nodegui/src/components/BoxView/RNBoxView.ts +99 -0
  79. package/svelte-nodegui/src/dom/react-nodegui/src/components/BoxView/index.ts +49 -0
  80. package/svelte-nodegui/src/dom/react-nodegui/src/components/Button/RNButton.ts +71 -0
  81. package/svelte-nodegui/src/dom/react-nodegui/src/components/Button/index.ts +49 -0
  82. package/svelte-nodegui/src/dom/react-nodegui/src/components/CheckBox/RNCheckBox.ts +71 -0
  83. package/svelte-nodegui/src/dom/react-nodegui/src/components/CheckBox/index.ts +50 -0
  84. package/svelte-nodegui/src/dom/react-nodegui/src/components/ComboBox/RNComboBox.ts +118 -0
  85. package/svelte-nodegui/src/dom/react-nodegui/src/components/ComboBox/index.ts +50 -0
  86. package/svelte-nodegui/src/dom/react-nodegui/src/components/Dial/RNDial.ts +69 -0
  87. package/svelte-nodegui/src/dom/react-nodegui/src/components/Dial/index.ts +41 -0
  88. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridColumn/RNGridColumn.ts +95 -0
  89. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridColumn/index.ts +49 -0
  90. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridRow/RNGridRow.ts +141 -0
  91. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridRow/index.ts +47 -0
  92. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/RNGridView.ts +185 -0
  93. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/index.ts +51 -0
  94. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/utils.ts +59 -0
  95. package/svelte-nodegui/src/dom/react-nodegui/src/components/Image/RNImage.ts +135 -0
  96. package/svelte-nodegui/src/dom/react-nodegui/src/components/Image/index.ts +46 -0
  97. package/svelte-nodegui/src/dom/react-nodegui/src/components/LineEdit/RNLineEdit.ts +82 -0
  98. package/svelte-nodegui/src/dom/react-nodegui/src/components/LineEdit/index.ts +41 -0
  99. package/svelte-nodegui/src/dom/react-nodegui/src/components/Menu/RNMenu.ts +49 -0
  100. package/svelte-nodegui/src/dom/react-nodegui/src/components/Menu/index.ts +44 -0
  101. package/svelte-nodegui/src/dom/react-nodegui/src/components/MenuBar/RNMenuBar.ts +51 -0
  102. package/svelte-nodegui/src/dom/react-nodegui/src/components/MenuBar/index.ts +42 -0
  103. package/svelte-nodegui/src/dom/react-nodegui/src/components/PlainTextEdit/RNPlainTextEdit.ts +82 -0
  104. package/svelte-nodegui/src/dom/react-nodegui/src/components/PlainTextEdit/index.ts +44 -0
  105. package/svelte-nodegui/src/dom/react-nodegui/src/components/ProgressBar/RNProgressBar.ts +78 -0
  106. package/svelte-nodegui/src/dom/react-nodegui/src/components/ProgressBar/index.ts +43 -0
  107. package/svelte-nodegui/src/dom/react-nodegui/src/components/RadioButton/RNRadioButton.ts +50 -0
  108. package/svelte-nodegui/src/dom/react-nodegui/src/components/RadioButton/index.ts +43 -0
  109. package/svelte-nodegui/src/dom/react-nodegui/src/components/ScrollArea/RNScrollArea.ts +51 -0
  110. package/svelte-nodegui/src/dom/react-nodegui/src/components/ScrollArea/index.ts +44 -0
  111. package/svelte-nodegui/src/dom/react-nodegui/src/components/Slider/RNSlider.ts +97 -0
  112. package/svelte-nodegui/src/dom/react-nodegui/src/components/Slider/index.ts +46 -0
  113. package/svelte-nodegui/src/dom/react-nodegui/src/components/SpinBox/RNSpinBox.ts +88 -0
  114. package/svelte-nodegui/src/dom/react-nodegui/src/components/SpinBox/index.ts +49 -0
  115. package/svelte-nodegui/src/dom/react-nodegui/src/components/Svg/RNSvg.ts +67 -0
  116. package/svelte-nodegui/src/dom/react-nodegui/src/components/Svg/index.ts +43 -0
  117. package/svelte-nodegui/src/dom/react-nodegui/src/components/SystemTrayIcon/RNSystemTrayIcon.ts +141 -0
  118. package/svelte-nodegui/src/dom/react-nodegui/src/components/SystemTrayIcon/index.ts +43 -0
  119. package/svelte-nodegui/src/dom/react-nodegui/src/components/Tab/RNTab.ts +69 -0
  120. package/svelte-nodegui/src/dom/react-nodegui/src/components/Tab/index.ts +48 -0
  121. package/svelte-nodegui/src/dom/react-nodegui/src/components/TabItem/RNTabItem.ts +72 -0
  122. package/svelte-nodegui/src/dom/react-nodegui/src/components/TabItem/index.ts +40 -0
  123. package/svelte-nodegui/src/dom/react-nodegui/src/components/Text/RNText.ts +65 -0
  124. package/svelte-nodegui/src/dom/react-nodegui/src/components/Text/index.ts +49 -0
  125. package/svelte-nodegui/src/dom/react-nodegui/src/components/View/RNView.ts +306 -0
  126. package/svelte-nodegui/src/dom/react-nodegui/src/components/View/index.ts +44 -0
  127. package/svelte-nodegui/src/dom/react-nodegui/src/components/Window/RNWindow.ts +66 -0
  128. package/svelte-nodegui/src/dom/react-nodegui/src/components/Window/index.ts +50 -0
  129. package/svelte-nodegui/src/dom/react-nodegui/src/components/config.ts +95 -0
  130. package/svelte-nodegui/src/dom/react-nodegui/src/index.ts +52 -0
  131. package/svelte-nodegui/src/dom/react-nodegui/src/reconciler/index.ts +226 -0
  132. package/svelte-nodegui/src/dom/react-nodegui/src/utils/decoupleFromReact.ts +2 -0
  133. package/svelte-nodegui/src/dom/react-nodegui/src/utils/helpers.ts +14 -0
  134. package/svelte-nodegui/src/dom/shared/Logger.ts +16 -0
  135. package/svelte-nodegui/src/dom/shared/index.ts +1 -0
  136. package/svelte-nodegui/src/dom/svelte/HeadElement.ts +41 -0
  137. package/svelte-nodegui/src/dom/svelte/RNObject.ts +95 -0
  138. package/svelte-nodegui/src/dom/svelte/StyleElement.ts +92 -0
  139. package/svelte-nodegui/src/dom/svelte/SvelteNodeGUIDocument.ts +124 -0
  140. package/svelte-nodegui/src/dom/svelte/TemplateElement.ts +16 -0
  141. package/svelte-nodegui/src/dom/svelte-elements.ts +111 -0
  142. package/svelte-nodegui/src/index.ts +62 -0
  143. package/svelte-nodegui/src/svelte-nodegui.ts +159 -0
  144. package/svelte-nodegui/src/transitions/bezier.ts +112 -0
  145. package/svelte-nodegui/src/transitions/index.ts +227 -0
  146. package/svelte-nodegui/tsconfig.json +19 -0
  147. package/svelte-nodegui/website/README.md +33 -0
  148. package/svelte-nodegui/website/blog/2019-05-30-welcome.md +12 -0
  149. package/svelte-nodegui/website/docs/api/classes/renderer.md +49 -0
  150. package/svelte-nodegui/website/docs/api/classes/rnaction.md +608 -0
  151. package/svelte-nodegui/website/docs/api/classes/rngridcolumn.md +232 -0
  152. package/svelte-nodegui/website/docs/api/classes/rngridrow.md +247 -0
  153. package/svelte-nodegui/website/docs/api/classes/rnmenu.md +1337 -0
  154. package/svelte-nodegui/website/docs/api/classes/rnmenubar.md +1341 -0
  155. package/svelte-nodegui/website/docs/api/globals.md +832 -0
  156. package/svelte-nodegui/website/docs/api/index.md +0 -0
  157. package/svelte-nodegui/website/docs/api/interfaces/_react_proxy_.reactproxycomponent.md +38 -0
  158. package/svelte-nodegui/website/docs/api/interfaces/abstractbuttonprops.md +306 -0
  159. package/svelte-nodegui/website/docs/api/interfaces/actionprops.md +115 -0
  160. package/svelte-nodegui/website/docs/api/interfaces/animatedimageprops.md +297 -0
  161. package/svelte-nodegui/website/docs/api/interfaces/boxviewprops.md +245 -0
  162. package/svelte-nodegui/website/docs/api/interfaces/buttonprops.md +313 -0
  163. package/svelte-nodegui/website/docs/api/interfaces/checkboxprops.md +313 -0
  164. package/svelte-nodegui/website/docs/api/interfaces/comboboxprops.md +343 -0
  165. package/svelte-nodegui/website/docs/api/interfaces/datawithoffset.md +32 -0
  166. package/svelte-nodegui/website/docs/api/interfaces/dialprops.md +259 -0
  167. package/svelte-nodegui/website/docs/api/interfaces/gridviewprops.md +273 -0
  168. package/svelte-nodegui/website/docs/api/interfaces/imageprops.md +311 -0
  169. package/svelte-nodegui/website/docs/api/interfaces/lineeditprops.md +266 -0
  170. package/svelte-nodegui/website/docs/api/interfaces/menubarprops.md +245 -0
  171. package/svelte-nodegui/website/docs/api/interfaces/menuprops.md +245 -0
  172. package/svelte-nodegui/website/docs/api/interfaces/plaintexteditprops.md +259 -0
  173. package/svelte-nodegui/website/docs/api/interfaces/progressbarprops.md +266 -0
  174. package/svelte-nodegui/website/docs/api/interfaces/radiobuttonprops.md +282 -0
  175. package/svelte-nodegui/website/docs/api/interfaces/scrollareaprops.md +245 -0
  176. package/svelte-nodegui/website/docs/api/interfaces/sliderprops.md +329 -0
  177. package/svelte-nodegui/website/docs/api/interfaces/spinboxprops.md +273 -0
  178. package/svelte-nodegui/website/docs/api/interfaces/systemtrayiconprops.md +97 -0
  179. package/svelte-nodegui/website/docs/api/interfaces/tabitemprops.md +28 -0
  180. package/svelte-nodegui/website/docs/api/interfaces/tabprops.md +245 -0
  181. package/svelte-nodegui/website/docs/api/interfaces/textprops.md +277 -0
  182. package/svelte-nodegui/website/docs/api/interfaces/viewprops.md +261 -0
  183. package/svelte-nodegui/website/docs/api/interfaces/windowprops.md +245 -0
  184. package/svelte-nodegui/website/docs/api/modules/_react_proxy_.md +29 -0
  185. package/svelte-nodegui/website/docs/doc1.md +162 -0
  186. package/svelte-nodegui/website/docs/guides/custom-nodegui-native-plugin.md +6 -0
  187. package/svelte-nodegui/website/docs/guides/debugging-in-vscode.md +39 -0
  188. package/svelte-nodegui/website/docs/guides/debugging.md +59 -0
  189. package/svelte-nodegui/website/docs/guides/getting-started.md +141 -0
  190. package/svelte-nodegui/website/docs/guides/handle-events.md +188 -0
  191. package/svelte-nodegui/website/docs/guides/images.md +62 -0
  192. package/svelte-nodegui/website/docs/guides/layout.md +281 -0
  193. package/svelte-nodegui/website/docs/guides/networking.md +31 -0
  194. package/svelte-nodegui/website/docs/guides/packaging.md +32 -0
  195. package/svelte-nodegui/website/docs/guides/scroll-view.md +69 -0
  196. package/svelte-nodegui/website/docs/guides/styling.md +208 -0
  197. package/svelte-nodegui/website/docs/guides/tutorial.md +82 -0
  198. package/svelte-nodegui/website/docs/guides/using-native-node-modules.md +55 -0
  199. package/svelte-nodegui/website/docs/mdx.md +22 -0
  200. package/svelte-nodegui/website/docs/scripts/fixdocs.js +21 -0
  201. package/svelte-nodegui/website/docusaurus.config.js +131 -0
  202. package/svelte-nodegui/website/package.json +33 -0
  203. package/svelte-nodegui/website/sidebars.js +77 -0
  204. package/svelte-nodegui/website/src/components/CodeExample.js +42 -0
  205. package/svelte-nodegui/website/src/components/CreateNativeApps.js +46 -0
  206. package/svelte-nodegui/website/src/components/Features.js +62 -0
  207. package/svelte-nodegui/website/src/components/Hero.js +85 -0
  208. package/svelte-nodegui/website/src/components/SplitView.js +18 -0
  209. package/svelte-nodegui/website/src/components/Talks.js +68 -0
  210. package/svelte-nodegui/website/src/components/Try.js +83 -0
  211. package/svelte-nodegui/website/src/components/common.js +41 -0
  212. package/svelte-nodegui/website/src/components/styles.css +61 -0
  213. package/svelte-nodegui/website/src/css/custom.css +34 -0
  214. package/svelte-nodegui/website/src/pages/index.js +32 -0
  215. package/svelte-nodegui/website/src/pages/styles.module.css +35 -0
  216. package/svelte-nodegui/website/static/CNAME +1 -0
  217. package/svelte-nodegui/website/static/img/box-layout-1.png +0 -0
  218. package/svelte-nodegui/website/static/img/box-layout-2.png +0 -0
  219. package/svelte-nodegui/website/static/img/code-sample.png +0 -0
  220. package/svelte-nodegui/website/static/img/demo.png +0 -0
  221. package/svelte-nodegui/website/static/img/favicon.ico +0 -0
  222. package/svelte-nodegui/website/static/img/flex-layout-1.png +0 -0
  223. package/svelte-nodegui/website/static/img/grid-layout-1.png +0 -0
  224. package/svelte-nodegui/website/static/img/logo-circle.png +0 -0
  225. package/svelte-nodegui/website/static/img/logo.png +0 -0
  226. package/svelte-nodegui/website/static/img/logo.svg +5 -0
  227. package/svelte-nodegui/website/static/img/logox200.png +0 -0
  228. package/svelte-nodegui/website/static/img/undraw_building_websites.svg +1 -0
  229. package/svelte-nodegui/website/static/img/undraw_code_review.svg +1 -0
  230. package/svelte-nodegui/website/static/img/undraw_docusaurus_mountain.svg +170 -0
  231. package/svelte-nodegui/website/static/img/undraw_docusaurus_react.svg +169 -0
  232. package/svelte-nodegui/website/static/img/undraw_docusaurus_tree.svg +1 -0
  233. package/svelte-nodegui/website/static/img/undraw_react.svg +1 -0
  234. package/svelte-nodegui/website/static/img/undraw_website_setup.svg +1 -0
  235. package/svelte-nodegui/website/static/img/undraw_windows.svg +11 -0
  236. package/svelte-nodegui/website/website/sidebars.js +32 -0
  237. package/svelte-nodegui/website/yarn.lock +10533 -0
  238. package/bun.lock +0 -159
  239. 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,2 @@
1
+ export type Fiber = any;
2
+ export type FunctionComponentElement<Props> = any;
@@ -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
+ }