git0 0.2.11 → 0.2.12

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 (242) hide show
  1. package/docs/assets/js/c3a618e1.965a31da.js +1 -1
  2. package/docs/functions/index.html +2 -2
  3. package/docs-config/src/functions/index.md +1 -1
  4. package/package.json +2 -1
  5. package/readme.md +18 -30
  6. package/src/fm.js +1130 -0
  7. package/src/github-api.js +14 -15
  8. package/TypeScript-React-Starter/LICENSE +0 -21
  9. package/TypeScript-React-Starter/README-CRA.md +0 -1281
  10. package/TypeScript-React-Starter/README.md +0 -810
  11. package/TypeScript-React-Starter/package.json +0 -28
  12. package/TypeScript-React-Starter/public/favicon.ico +0 -0
  13. package/TypeScript-React-Starter/public/index.html +0 -31
  14. package/TypeScript-React-Starter/src/App.css +0 -24
  15. package/TypeScript-React-Starter/src/App.test.tsx +0 -8
  16. package/TypeScript-React-Starter/src/App.tsx +0 -23
  17. package/TypeScript-React-Starter/src/actions/index.tsx +0 -24
  18. package/TypeScript-React-Starter/src/components/Hello.css +0 -13
  19. package/TypeScript-React-Starter/src/components/Hello.test.tsx +0 -30
  20. package/TypeScript-React-Starter/src/components/Hello.tsx +0 -35
  21. package/TypeScript-React-Starter/src/constants/index.tsx +0 -6
  22. package/TypeScript-React-Starter/src/containers/Hello.tsx +0 -20
  23. package/TypeScript-React-Starter/src/index.css +0 -5
  24. package/TypeScript-React-Starter/src/index.tsx +0 -22
  25. package/TypeScript-React-Starter/src/logo.svg +0 -7
  26. package/TypeScript-React-Starter/src/reducers/index.tsx +0 -15
  27. package/TypeScript-React-Starter/src/types/index.tsx +0 -5
  28. package/TypeScript-React-Starter/tsconfig.json +0 -29
  29. package/TypeScript-React-Starter/tslint.json +0 -11
  30. package/TypeScript-React-Starter/yarn.lock +0 -4785
  31. package/svelte-nodegui/.all-contributorsrc +0 -60
  32. package/svelte-nodegui/.vscode/launch.json +0 -29
  33. package/svelte-nodegui/CHANGELOG.md +0 -153
  34. package/svelte-nodegui/LICENSE +0 -22
  35. package/svelte-nodegui/README.md +0 -151
  36. package/svelte-nodegui/demo/.editorconfig +0 -15
  37. package/svelte-nodegui/demo/.vscode/extensions.json +0 -3
  38. package/svelte-nodegui/demo/livereload.js +0 -29
  39. package/svelte-nodegui/demo/package-lock.json +0 -3514
  40. package/svelte-nodegui/demo/package.json +0 -35
  41. package/svelte-nodegui/demo/src/App.svelte +0 -29
  42. package/svelte-nodegui/demo/src/app.ts +0 -31
  43. package/svelte-nodegui/demo/tsconfig.json +0 -40
  44. package/svelte-nodegui/demo/webpack.config.js +0 -110
  45. package/svelte-nodegui/extras/assets/kitchen.png +0 -0
  46. package/svelte-nodegui/extras/assets/nodegui.png +0 -0
  47. package/svelte-nodegui/extras/assets/nodegui_white.png +0 -0
  48. package/svelte-nodegui/extras/assets/start_icon.png +0 -0
  49. package/svelte-nodegui/extras/legal/logo/thanks.md +0 -13
  50. package/svelte-nodegui/extras/legal/yode/LICENSE +0 -21
  51. package/svelte-nodegui/extras/legal/yoga/LICENSE +0 -0
  52. package/svelte-nodegui/extras/logo/nodegui-circle.png +0 -0
  53. package/svelte-nodegui/extras/logo/nodegui.png +0 -0
  54. package/svelte-nodegui/extras/logo/nodegui.svg +0 -4
  55. package/svelte-nodegui/nativescript-svelte-todo.gif +0 -0
  56. package/svelte-nodegui/package-lock.json +0 -1749
  57. package/svelte-nodegui/package.json +0 -44
  58. package/svelte-nodegui/repl-workers/bundler/commonjs.js +0 -58
  59. package/svelte-nodegui/repl-workers/bundler/index.js +0 -353
  60. package/svelte-nodegui/repl-workers/package-lock.json +0 -484
  61. package/svelte-nodegui/repl-workers/package.json +0 -21
  62. package/svelte-nodegui/repl-workers/rollup.config.js +0 -21
  63. package/svelte-nodegui/rollup.config.js +0 -81
  64. package/svelte-nodegui/scripts/create-pkg.js +0 -42
  65. package/svelte-nodegui/src/components/AsComponent.svelte +0 -16
  66. package/svelte-nodegui/src/components/SlotComponent.svelte +0 -4
  67. package/svelte-nodegui/src/components/Template.svelte +0 -10
  68. package/svelte-nodegui/src/components/Template.svelte.d.ts +0 -6
  69. package/svelte-nodegui/src/components/index.ts +0 -2
  70. package/svelte-nodegui/src/dom/index.ts +0 -132
  71. package/svelte-nodegui/src/dom/nativescript-vue-next/LICENCE +0 -21
  72. package/svelte-nodegui/src/dom/nativescript-vue-next/index.ts +0 -19
  73. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/index.ts +0 -21
  74. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/nodes.ts +0 -890
  75. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/registry.ts +0 -262
  76. package/svelte-nodegui/src/dom/nativescript-vue-next/runtime/runtimeHelpers.ts +0 -20
  77. package/svelte-nodegui/src/dom/react-nodegui/LICENSE +0 -21
  78. package/svelte-nodegui/src/dom/react-nodegui/src/components/AbstractComponents/RNAbstractButton.ts +0 -67
  79. package/svelte-nodegui/src/dom/react-nodegui/src/components/Action/RNAction.ts +0 -146
  80. package/svelte-nodegui/src/dom/react-nodegui/src/components/Action/index.ts +0 -37
  81. package/svelte-nodegui/src/dom/react-nodegui/src/components/AnimatedImage/RNAnimatedImage.ts +0 -76
  82. package/svelte-nodegui/src/dom/react-nodegui/src/components/AnimatedImage/index.ts +0 -45
  83. package/svelte-nodegui/src/dom/react-nodegui/src/components/BoxView/RNBoxView.ts +0 -99
  84. package/svelte-nodegui/src/dom/react-nodegui/src/components/BoxView/index.ts +0 -49
  85. package/svelte-nodegui/src/dom/react-nodegui/src/components/Button/RNButton.ts +0 -71
  86. package/svelte-nodegui/src/dom/react-nodegui/src/components/Button/index.ts +0 -49
  87. package/svelte-nodegui/src/dom/react-nodegui/src/components/CheckBox/RNCheckBox.ts +0 -71
  88. package/svelte-nodegui/src/dom/react-nodegui/src/components/CheckBox/index.ts +0 -50
  89. package/svelte-nodegui/src/dom/react-nodegui/src/components/ComboBox/RNComboBox.ts +0 -118
  90. package/svelte-nodegui/src/dom/react-nodegui/src/components/ComboBox/index.ts +0 -50
  91. package/svelte-nodegui/src/dom/react-nodegui/src/components/Dial/RNDial.ts +0 -69
  92. package/svelte-nodegui/src/dom/react-nodegui/src/components/Dial/index.ts +0 -41
  93. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridColumn/RNGridColumn.ts +0 -95
  94. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridColumn/index.ts +0 -49
  95. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridRow/RNGridRow.ts +0 -141
  96. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/GridRow/index.ts +0 -47
  97. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/RNGridView.ts +0 -185
  98. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/index.ts +0 -51
  99. package/svelte-nodegui/src/dom/react-nodegui/src/components/GridView/utils.ts +0 -59
  100. package/svelte-nodegui/src/dom/react-nodegui/src/components/Image/RNImage.ts +0 -135
  101. package/svelte-nodegui/src/dom/react-nodegui/src/components/Image/index.ts +0 -46
  102. package/svelte-nodegui/src/dom/react-nodegui/src/components/LineEdit/RNLineEdit.ts +0 -82
  103. package/svelte-nodegui/src/dom/react-nodegui/src/components/LineEdit/index.ts +0 -41
  104. package/svelte-nodegui/src/dom/react-nodegui/src/components/Menu/RNMenu.ts +0 -49
  105. package/svelte-nodegui/src/dom/react-nodegui/src/components/Menu/index.ts +0 -44
  106. package/svelte-nodegui/src/dom/react-nodegui/src/components/MenuBar/RNMenuBar.ts +0 -51
  107. package/svelte-nodegui/src/dom/react-nodegui/src/components/MenuBar/index.ts +0 -42
  108. package/svelte-nodegui/src/dom/react-nodegui/src/components/PlainTextEdit/RNPlainTextEdit.ts +0 -82
  109. package/svelte-nodegui/src/dom/react-nodegui/src/components/PlainTextEdit/index.ts +0 -44
  110. package/svelte-nodegui/src/dom/react-nodegui/src/components/ProgressBar/RNProgressBar.ts +0 -78
  111. package/svelte-nodegui/src/dom/react-nodegui/src/components/ProgressBar/index.ts +0 -43
  112. package/svelte-nodegui/src/dom/react-nodegui/src/components/RadioButton/RNRadioButton.ts +0 -50
  113. package/svelte-nodegui/src/dom/react-nodegui/src/components/RadioButton/index.ts +0 -43
  114. package/svelte-nodegui/src/dom/react-nodegui/src/components/ScrollArea/RNScrollArea.ts +0 -51
  115. package/svelte-nodegui/src/dom/react-nodegui/src/components/ScrollArea/index.ts +0 -44
  116. package/svelte-nodegui/src/dom/react-nodegui/src/components/Slider/RNSlider.ts +0 -97
  117. package/svelte-nodegui/src/dom/react-nodegui/src/components/Slider/index.ts +0 -46
  118. package/svelte-nodegui/src/dom/react-nodegui/src/components/SpinBox/RNSpinBox.ts +0 -88
  119. package/svelte-nodegui/src/dom/react-nodegui/src/components/SpinBox/index.ts +0 -49
  120. package/svelte-nodegui/src/dom/react-nodegui/src/components/Svg/RNSvg.ts +0 -67
  121. package/svelte-nodegui/src/dom/react-nodegui/src/components/Svg/index.ts +0 -43
  122. package/svelte-nodegui/src/dom/react-nodegui/src/components/SystemTrayIcon/RNSystemTrayIcon.ts +0 -141
  123. package/svelte-nodegui/src/dom/react-nodegui/src/components/SystemTrayIcon/index.ts +0 -43
  124. package/svelte-nodegui/src/dom/react-nodegui/src/components/Tab/RNTab.ts +0 -69
  125. package/svelte-nodegui/src/dom/react-nodegui/src/components/Tab/index.ts +0 -48
  126. package/svelte-nodegui/src/dom/react-nodegui/src/components/TabItem/RNTabItem.ts +0 -72
  127. package/svelte-nodegui/src/dom/react-nodegui/src/components/TabItem/index.ts +0 -40
  128. package/svelte-nodegui/src/dom/react-nodegui/src/components/Text/RNText.ts +0 -65
  129. package/svelte-nodegui/src/dom/react-nodegui/src/components/Text/index.ts +0 -49
  130. package/svelte-nodegui/src/dom/react-nodegui/src/components/View/RNView.ts +0 -306
  131. package/svelte-nodegui/src/dom/react-nodegui/src/components/View/index.ts +0 -44
  132. package/svelte-nodegui/src/dom/react-nodegui/src/components/Window/RNWindow.ts +0 -66
  133. package/svelte-nodegui/src/dom/react-nodegui/src/components/Window/index.ts +0 -50
  134. package/svelte-nodegui/src/dom/react-nodegui/src/components/config.ts +0 -95
  135. package/svelte-nodegui/src/dom/react-nodegui/src/index.ts +0 -52
  136. package/svelte-nodegui/src/dom/react-nodegui/src/reconciler/index.ts +0 -226
  137. package/svelte-nodegui/src/dom/react-nodegui/src/utils/decoupleFromReact.ts +0 -2
  138. package/svelte-nodegui/src/dom/react-nodegui/src/utils/helpers.ts +0 -14
  139. package/svelte-nodegui/src/dom/shared/Logger.ts +0 -16
  140. package/svelte-nodegui/src/dom/shared/index.ts +0 -1
  141. package/svelte-nodegui/src/dom/svelte/HeadElement.ts +0 -41
  142. package/svelte-nodegui/src/dom/svelte/RNObject.ts +0 -95
  143. package/svelte-nodegui/src/dom/svelte/StyleElement.ts +0 -92
  144. package/svelte-nodegui/src/dom/svelte/SvelteNodeGUIDocument.ts +0 -124
  145. package/svelte-nodegui/src/dom/svelte/TemplateElement.ts +0 -16
  146. package/svelte-nodegui/src/dom/svelte-elements.ts +0 -111
  147. package/svelte-nodegui/src/index.ts +0 -62
  148. package/svelte-nodegui/src/svelte-nodegui.ts +0 -159
  149. package/svelte-nodegui/src/transitions/bezier.ts +0 -112
  150. package/svelte-nodegui/src/transitions/index.ts +0 -227
  151. package/svelte-nodegui/tsconfig.json +0 -19
  152. package/svelte-nodegui/website/README.md +0 -33
  153. package/svelte-nodegui/website/blog/2019-05-30-welcome.md +0 -12
  154. package/svelte-nodegui/website/docs/api/classes/renderer.md +0 -49
  155. package/svelte-nodegui/website/docs/api/classes/rnaction.md +0 -608
  156. package/svelte-nodegui/website/docs/api/classes/rngridcolumn.md +0 -232
  157. package/svelte-nodegui/website/docs/api/classes/rngridrow.md +0 -247
  158. package/svelte-nodegui/website/docs/api/classes/rnmenu.md +0 -1337
  159. package/svelte-nodegui/website/docs/api/classes/rnmenubar.md +0 -1341
  160. package/svelte-nodegui/website/docs/api/globals.md +0 -832
  161. package/svelte-nodegui/website/docs/api/index.md +0 -0
  162. package/svelte-nodegui/website/docs/api/interfaces/_react_proxy_.reactproxycomponent.md +0 -38
  163. package/svelte-nodegui/website/docs/api/interfaces/abstractbuttonprops.md +0 -306
  164. package/svelte-nodegui/website/docs/api/interfaces/actionprops.md +0 -115
  165. package/svelte-nodegui/website/docs/api/interfaces/animatedimageprops.md +0 -297
  166. package/svelte-nodegui/website/docs/api/interfaces/boxviewprops.md +0 -245
  167. package/svelte-nodegui/website/docs/api/interfaces/buttonprops.md +0 -313
  168. package/svelte-nodegui/website/docs/api/interfaces/checkboxprops.md +0 -313
  169. package/svelte-nodegui/website/docs/api/interfaces/comboboxprops.md +0 -343
  170. package/svelte-nodegui/website/docs/api/interfaces/datawithoffset.md +0 -32
  171. package/svelte-nodegui/website/docs/api/interfaces/dialprops.md +0 -259
  172. package/svelte-nodegui/website/docs/api/interfaces/gridviewprops.md +0 -273
  173. package/svelte-nodegui/website/docs/api/interfaces/imageprops.md +0 -311
  174. package/svelte-nodegui/website/docs/api/interfaces/lineeditprops.md +0 -266
  175. package/svelte-nodegui/website/docs/api/interfaces/menubarprops.md +0 -245
  176. package/svelte-nodegui/website/docs/api/interfaces/menuprops.md +0 -245
  177. package/svelte-nodegui/website/docs/api/interfaces/plaintexteditprops.md +0 -259
  178. package/svelte-nodegui/website/docs/api/interfaces/progressbarprops.md +0 -266
  179. package/svelte-nodegui/website/docs/api/interfaces/radiobuttonprops.md +0 -282
  180. package/svelte-nodegui/website/docs/api/interfaces/scrollareaprops.md +0 -245
  181. package/svelte-nodegui/website/docs/api/interfaces/sliderprops.md +0 -329
  182. package/svelte-nodegui/website/docs/api/interfaces/spinboxprops.md +0 -273
  183. package/svelte-nodegui/website/docs/api/interfaces/systemtrayiconprops.md +0 -97
  184. package/svelte-nodegui/website/docs/api/interfaces/tabitemprops.md +0 -28
  185. package/svelte-nodegui/website/docs/api/interfaces/tabprops.md +0 -245
  186. package/svelte-nodegui/website/docs/api/interfaces/textprops.md +0 -277
  187. package/svelte-nodegui/website/docs/api/interfaces/viewprops.md +0 -261
  188. package/svelte-nodegui/website/docs/api/interfaces/windowprops.md +0 -245
  189. package/svelte-nodegui/website/docs/api/modules/_react_proxy_.md +0 -29
  190. package/svelte-nodegui/website/docs/doc1.md +0 -162
  191. package/svelte-nodegui/website/docs/guides/custom-nodegui-native-plugin.md +0 -6
  192. package/svelte-nodegui/website/docs/guides/debugging-in-vscode.md +0 -39
  193. package/svelte-nodegui/website/docs/guides/debugging.md +0 -59
  194. package/svelte-nodegui/website/docs/guides/getting-started.md +0 -141
  195. package/svelte-nodegui/website/docs/guides/handle-events.md +0 -188
  196. package/svelte-nodegui/website/docs/guides/images.md +0 -62
  197. package/svelte-nodegui/website/docs/guides/layout.md +0 -281
  198. package/svelte-nodegui/website/docs/guides/networking.md +0 -31
  199. package/svelte-nodegui/website/docs/guides/packaging.md +0 -32
  200. package/svelte-nodegui/website/docs/guides/scroll-view.md +0 -69
  201. package/svelte-nodegui/website/docs/guides/styling.md +0 -208
  202. package/svelte-nodegui/website/docs/guides/tutorial.md +0 -82
  203. package/svelte-nodegui/website/docs/guides/using-native-node-modules.md +0 -55
  204. package/svelte-nodegui/website/docs/mdx.md +0 -22
  205. package/svelte-nodegui/website/docs/scripts/fixdocs.js +0 -21
  206. package/svelte-nodegui/website/docusaurus.config.js +0 -131
  207. package/svelte-nodegui/website/package.json +0 -33
  208. package/svelte-nodegui/website/sidebars.js +0 -77
  209. package/svelte-nodegui/website/src/components/CodeExample.js +0 -42
  210. package/svelte-nodegui/website/src/components/CreateNativeApps.js +0 -46
  211. package/svelte-nodegui/website/src/components/Features.js +0 -62
  212. package/svelte-nodegui/website/src/components/Hero.js +0 -85
  213. package/svelte-nodegui/website/src/components/SplitView.js +0 -18
  214. package/svelte-nodegui/website/src/components/Talks.js +0 -68
  215. package/svelte-nodegui/website/src/components/Try.js +0 -83
  216. package/svelte-nodegui/website/src/components/common.js +0 -41
  217. package/svelte-nodegui/website/src/components/styles.css +0 -61
  218. package/svelte-nodegui/website/src/css/custom.css +0 -34
  219. package/svelte-nodegui/website/src/pages/index.js +0 -32
  220. package/svelte-nodegui/website/src/pages/styles.module.css +0 -35
  221. package/svelte-nodegui/website/static/CNAME +0 -1
  222. package/svelte-nodegui/website/static/img/box-layout-1.png +0 -0
  223. package/svelte-nodegui/website/static/img/box-layout-2.png +0 -0
  224. package/svelte-nodegui/website/static/img/code-sample.png +0 -0
  225. package/svelte-nodegui/website/static/img/demo.png +0 -0
  226. package/svelte-nodegui/website/static/img/favicon.ico +0 -0
  227. package/svelte-nodegui/website/static/img/flex-layout-1.png +0 -0
  228. package/svelte-nodegui/website/static/img/grid-layout-1.png +0 -0
  229. package/svelte-nodegui/website/static/img/logo-circle.png +0 -0
  230. package/svelte-nodegui/website/static/img/logo.png +0 -0
  231. package/svelte-nodegui/website/static/img/logo.svg +0 -5
  232. package/svelte-nodegui/website/static/img/logox200.png +0 -0
  233. package/svelte-nodegui/website/static/img/undraw_building_websites.svg +0 -1
  234. package/svelte-nodegui/website/static/img/undraw_code_review.svg +0 -1
  235. package/svelte-nodegui/website/static/img/undraw_docusaurus_mountain.svg +0 -170
  236. package/svelte-nodegui/website/static/img/undraw_docusaurus_react.svg +0 -169
  237. package/svelte-nodegui/website/static/img/undraw_docusaurus_tree.svg +0 -1
  238. package/svelte-nodegui/website/static/img/undraw_react.svg +0 -1
  239. package/svelte-nodegui/website/static/img/undraw_website_setup.svg +0 -1
  240. package/svelte-nodegui/website/static/img/undraw_windows.svg +0 -11
  241. package/svelte-nodegui/website/website/sidebars.js +0 -32
  242. package/svelte-nodegui/website/yarn.lock +0 -10533
@@ -1,95 +0,0 @@
1
- import type { FunctionComponentElement } from "../../../utils/decoupleFromReact";
2
- import { Component, NodeWidget } from "@nodegui/nodegui";
3
- import { RNComponent } from "../../config";
4
- import { RNGridRow } from "../GridRow/RNGridRow";
5
-
6
- export type GridColumnProps = {
7
- /**
8
- * The number of horizontal units to occupy
9
- */
10
- width?: number;
11
- };
12
-
13
- const setGridColumnProps = (
14
- widget: RNGridColumn,
15
- parentRow: RNGridRow,
16
- newProps: GridColumnProps,
17
- oldProps: GridColumnProps
18
- ) => {
19
- if (widget.actualWidget) {
20
- // TODO: Optimize this
21
- parentRow.parentGrid?.layout?.removeWidget(widget.actualWidget);
22
- parentRow.parentGrid?.layout?.addWidget(
23
- widget.actualWidget,
24
- parentRow.rowIndex ?? 0,
25
- widget.columnIndex ?? 0,
26
- parentRow.height ?? 1,
27
- widget.width ?? 1
28
- );
29
- }
30
-
31
- const setter: GridColumnProps = {
32
- set width(width: number) {
33
- widget.width = width;
34
- },
35
- };
36
- Object.assign(setter, newProps);
37
- };
38
-
39
- export class RNGridColumn extends Component implements RNComponent {
40
- native: any;
41
- actualWidget?: NodeWidget<any>;
42
- parentRow?: RNGridRow;
43
- latestProps?: GridColumnProps;
44
- prevProps?: GridColumnProps;
45
- columnIndex?: number;
46
- width?: number;
47
-
48
- setParentRowAndUpdateProps(parentRow: RNGridRow, index: number): void {
49
- this.parentRow = parentRow;
50
- this.columnIndex = index;
51
- setGridColumnProps(
52
- this,
53
- parentRow,
54
- this.latestProps ?? {},
55
- this.prevProps ?? {}
56
- );
57
- }
58
-
59
- remove(): void {
60
- if (!this.actualWidget) {
61
- return;
62
- }
63
-
64
- this.parentRow?.parentGrid?.layout?.removeWidget(this.actualWidget);
65
- this.actualWidget.close();
66
- this.actualWidget = undefined;
67
- }
68
-
69
- /* RNComponent */
70
-
71
- setProps(newProps: GridColumnProps, oldProps: GridColumnProps): void {
72
- if (this.parentRow) {
73
- setGridColumnProps(this, this.parentRow, newProps, oldProps);
74
- }
75
-
76
- this.latestProps = newProps;
77
- this.prevProps = oldProps;
78
- }
79
- appendInitialChild(child: NodeWidget<any>): void {
80
- if (this.actualWidget) {
81
- throw new Error("Grid column can have only one child");
82
- }
83
- this.actualWidget = child;
84
- }
85
- appendChild(child: NodeWidget<any>): void {
86
- this.appendInitialChild(child);
87
- }
88
- insertBefore(child: NodeWidget<any>, beforeChild: NodeWidget<any>): void {
89
- this.appendInitialChild(child);
90
- }
91
- removeChild(child: NodeWidget<any>): void {
92
- this.remove();
93
- }
94
- static tagName: string = "gridcolumn";
95
- }
@@ -1,49 +0,0 @@
1
- import type { Fiber } from "../../../utils/decoupleFromReact";
2
- import { GridColumnProps, RNGridColumn } from "./RNGridColumn";
3
- import { AppContainer } from "../../../reconciler";
4
- import { registerComponent, ComponentConfig } from "../../config";
5
-
6
- class GridColumnConfig extends ComponentConfig {
7
- tagName = RNGridColumn.tagName;
8
- shouldSetTextContent(nextProps: GridColumnProps): boolean {
9
- return false;
10
- }
11
- createInstance(
12
- newProps: GridColumnProps,
13
- rootInstance: AppContainer,
14
- context: any,
15
- workInProgress: Fiber
16
- ): RNGridColumn {
17
- const widget = new RNGridColumn();
18
- widget.setProps(newProps, newProps);
19
- return widget;
20
- }
21
- finalizeInitialChildren(
22
- instance: RNGridColumn,
23
- newProps: GridColumnProps,
24
- rootContainerInstance: AppContainer,
25
- context: any
26
- ): boolean {
27
- return true;
28
- }
29
- commitMount(
30
- instance: RNGridColumn,
31
- newProps: GridColumnProps,
32
- internalInstanceHandle: any
33
- ): void {
34
- return;
35
- }
36
- commitUpdate(
37
- instance: RNGridColumn,
38
- updatePayload: any,
39
- oldProps: GridColumnProps,
40
- newProps: GridColumnProps,
41
- finishedWork: Fiber
42
- ): void {
43
- instance.setProps(newProps, oldProps);
44
- }
45
- }
46
-
47
- export const GridColumn = registerComponent<GridColumnProps>(
48
- new GridColumnConfig()
49
- );
@@ -1,141 +0,0 @@
1
- import type { FunctionComponentElement } from "../../../utils/decoupleFromReact";
2
- import { GridColumnProps, RNGridColumn } from "../GridColumn/RNGridColumn";
3
- import { Component } from "@nodegui/nodegui";
4
- import { RNComponent } from "../../config";
5
- import { RNGridView } from "../RNGridView";
6
- import {
7
- DataWithOffset,
8
- updateDisplacedChildren,
9
- offsetForIndex,
10
- } from "../utils";
11
-
12
- export type GridRowProps = {
13
- children:
14
- | Array<FunctionComponentElement<GridColumnProps>>
15
- | FunctionComponentElement<GridColumnProps>;
16
-
17
- /**
18
- * The number of vertical units to occupy
19
- */
20
- height?: number;
21
- };
22
-
23
- const setGridRowProps = (
24
- widget: RNGridRow,
25
- parentGrid: RNGridView,
26
- newProps: Omit<GridRowProps, "children">,
27
- oldProps: Omit<GridRowProps, "children">
28
- ) => {
29
- const setter: Omit<GridRowProps, "children"> = {
30
- set height(height: number) {
31
- widget.height = height;
32
- },
33
- };
34
- Object.assign(setter, newProps);
35
- };
36
-
37
- export class RNGridRow extends Component implements RNComponent {
38
- native: any;
39
- parentGrid?: RNGridView;
40
- latestProps?: GridRowProps;
41
- prevProps?: GridRowProps;
42
- childColumns: Array<DataWithOffset<RNGridColumn>> = [];
43
- rowIndex?: number;
44
- height?: number;
45
-
46
- setParentGridAndUpdateProps(parentGrid: RNGridView, index: number): void {
47
- this.parentGrid = parentGrid;
48
- this.rowIndex = index;
49
- setGridRowProps(
50
- this,
51
- parentGrid,
52
- this.latestProps ?? {},
53
- this.prevProps ?? {}
54
- );
55
-
56
- this.updateChildren();
57
- }
58
-
59
- updateChildren(startIndex = 0): void {
60
- updateDisplacedChildren<RNGridColumn, RNGridRow>(
61
- startIndex,
62
- this.childColumns,
63
- this,
64
- "width",
65
- "setParentRowAndUpdateProps"
66
- );
67
- }
68
-
69
- remove(): void {
70
- this.childColumns.forEach(({ data }) => data.remove());
71
- }
72
-
73
- /* RNComponent */
74
-
75
- setProps(newProps: GridRowProps, oldProps: GridRowProps): void {
76
- if (this.parentGrid) {
77
- setGridRowProps(this, this.parentGrid, newProps, oldProps);
78
- }
79
-
80
- this.latestProps = newProps;
81
- this.prevProps = oldProps;
82
- }
83
- appendInitialChild(child: RNGridColumn): void {
84
- this.appendChild(child);
85
- }
86
- appendChild(child: RNGridColumn): void {
87
- if (!(child instanceof RNGridColumn)) {
88
- throw new Error("GridColumn is the only supported child of GridRow");
89
- }
90
-
91
- const offset = offsetForIndex<RNGridColumn>(
92
- this.childColumns.length,
93
- this.childColumns,
94
- "width"
95
- );
96
-
97
- child.setParentRowAndUpdateProps(this, offset);
98
-
99
- this.childColumns.push({
100
- offset,
101
- data: child,
102
- });
103
- }
104
- insertBefore(child: RNGridColumn, beforeChild: RNGridColumn): void {
105
- const prevIndex = this.childColumns.findIndex(
106
- ({ data }) => data === beforeChild
107
- );
108
-
109
- if (prevIndex === -1) {
110
- throw new Error(
111
- "Attempted to insert child GridColumn before nonexistent column"
112
- );
113
- }
114
-
115
- const offset = offsetForIndex<RNGridColumn>(
116
- prevIndex,
117
- this.childColumns,
118
- "width"
119
- );
120
-
121
- this.childColumns.splice(prevIndex, 0, {
122
- offset,
123
- data: child,
124
- });
125
- // Update displaced children
126
- this.updateChildren(prevIndex);
127
- }
128
- removeChild(child: RNGridColumn): void {
129
- const prevIndex = this.childColumns.findIndex(({ data }) => data === child);
130
-
131
- if (prevIndex !== -1) {
132
- this.childColumns.splice(prevIndex, 1);
133
- this.updateChildren(prevIndex);
134
- }
135
-
136
- // Actually remove child from layout
137
- child.remove();
138
- child.parentRow = undefined;
139
- }
140
- static tagName: string = "gridrow";
141
- }
@@ -1,47 +0,0 @@
1
- import type { Fiber } from "../../../utils/decoupleFromReact";
2
- import { AppContainer } from "../../../reconciler";
3
- import { registerComponent, ComponentConfig } from "../../config";
4
- import { RNGridRow, GridRowProps } from "./RNGridRow";
5
-
6
- class GridRowConfig extends ComponentConfig {
7
- tagName = RNGridRow.tagName;
8
- shouldSetTextContent(nextProps: GridRowProps): boolean {
9
- return false;
10
- }
11
- createInstance(
12
- newProps: GridRowProps,
13
- rootInstance: AppContainer,
14
- context: any,
15
- workInProgress: Fiber
16
- ): RNGridRow {
17
- const widget = new RNGridRow();
18
- widget.setProps(newProps, newProps);
19
- return widget;
20
- }
21
- finalizeInitialChildren(
22
- instance: RNGridRow,
23
- newProps: GridRowProps,
24
- rootContainerInstance: AppContainer,
25
- context: any
26
- ): boolean {
27
- return true;
28
- }
29
- commitMount(
30
- instance: RNGridRow,
31
- newProps: GridRowProps,
32
- internalInstanceHandle: any
33
- ): void {
34
- return;
35
- }
36
- commitUpdate(
37
- instance: RNGridRow,
38
- updatePayload: any,
39
- oldProps: GridRowProps,
40
- newProps: GridRowProps,
41
- finishedWork: Fiber
42
- ): void {
43
- instance.setProps(newProps, oldProps);
44
- }
45
- }
46
-
47
- export const GridRow = registerComponent<GridRowProps>(new GridRowConfig());
@@ -1,185 +0,0 @@
1
- import type { FunctionComponentElement } from "../../utils/decoupleFromReact";
2
- import { QGridLayoutSignals, QGridLayout, QWidget } from "@nodegui/nodegui";
3
- import { ViewProps, setViewProps } from "../View/RNView";
4
- import { RNComponent } from "../config";
5
- import { RNGridRow, GridRowProps } from "./GridRow/RNGridRow";
6
- import {
7
- DataWithOffset,
8
- offsetForIndex,
9
- updateDisplacedChildren,
10
- } from "./utils";
11
-
12
- export type GridViewColumnProps = {
13
- [ColumnIndex: number]: {
14
- stretch?: number;
15
- minWidth?: number;
16
- };
17
- };
18
-
19
- export type GridViewRowProps = {
20
- [RowIndex: number]: {
21
- stretch?: number;
22
- minHeight?: number;
23
- };
24
- };
25
-
26
- export interface GridViewProps extends ViewProps<QGridLayoutSignals> {
27
- children:
28
- | Array<FunctionComponentElement<GridRowProps>>
29
- | FunctionComponentElement<GridRowProps>;
30
-
31
- columnProps?: GridViewColumnProps;
32
- rowProps?: GridViewRowProps;
33
-
34
- horizontalSpacing?: number;
35
- verticalSpacing?: number;
36
- }
37
-
38
- const setGridViewProps = (
39
- widget: RNGridView,
40
- newProps: Omit<GridViewProps, "children">,
41
- oldProps: Omit<GridViewProps, "children">
42
- ) => {
43
- const setter: Omit<GridViewProps, "children"> = {
44
- set horizontalSpacing(spacing: number) {
45
- widget.layout?.setHorizontalSpacing(spacing);
46
- },
47
- set verticalSpacing(spacing: number) {
48
- widget.layout?.setVerticalSpacing(spacing);
49
- },
50
- set columnProps(props: GridViewColumnProps) {
51
- for (const indexString of Object.keys(props)) {
52
- const index = parseInt(indexString, 10);
53
- const { stretch, minWidth } = props[index];
54
-
55
- widget.layout?.setColumnStretch(index, stretch ?? 0);
56
- widget.layout?.setColumnMinimumWidth(index, minWidth ?? 0);
57
- }
58
- },
59
- set rowProps(props: GridViewRowProps) {
60
- for (const indexString of Object.keys(props)) {
61
- const index = parseInt(indexString, 10);
62
- const { stretch, minHeight } = props[index];
63
-
64
- widget.layout?.setRowStretch(index, stretch ?? 0);
65
- widget.layout?.setRowMinimumHeight(index, minHeight ?? 0);
66
- }
67
- },
68
- };
69
- Object.assign(setter, newProps);
70
- setViewProps(widget, newProps, oldProps);
71
- };
72
-
73
- /**
74
- * @ignore
75
- */
76
- export class RNGridView extends QWidget implements RNComponent {
77
- native: any;
78
- _layout?: QGridLayout;
79
- initialProps?: GridViewProps;
80
- childRows: Array<DataWithOffset<RNGridRow>> = [];
81
-
82
- get layout() {
83
- return this.layout;
84
- }
85
-
86
- set layout(l: QGridLayout) {
87
- this._layout = l;
88
- }
89
-
90
- updateChildren(startIndex = 0): void {
91
- updateDisplacedChildren<RNGridRow, RNGridView>(
92
- startIndex,
93
- this.childRows,
94
- this,
95
- "height",
96
- "setParentGridAndUpdateProps"
97
- );
98
- }
99
-
100
- /* RNComponent */
101
-
102
- setProps(newProps: GridViewProps, oldProps: GridViewProps): void {
103
- if (this.layout) {
104
- setGridViewProps(this, newProps, oldProps);
105
- } else {
106
- this.initialProps = newProps;
107
- }
108
- }
109
- appendInitialChild(child: RNGridRow): void {
110
- this.appendChild(child);
111
- }
112
- appendChild(child: RNGridRow): void {
113
- if (!(child instanceof RNGridRow)) {
114
- throw new Error("GridRow is the only supported child of GridView");
115
- }
116
-
117
- const updateChild = () => {
118
- const offset = offsetForIndex<RNGridRow>(
119
- this.childRows.length,
120
- this.childRows,
121
- "height"
122
- );
123
-
124
- child.setParentGridAndUpdateProps(this, offset);
125
-
126
- this.childRows.push({
127
- offset,
128
- data: child,
129
- });
130
- };
131
-
132
- if (this.layout) {
133
- updateChild();
134
-
135
- return;
136
- }
137
-
138
- const layout = new QGridLayout();
139
- this.setLayout(layout);
140
- this.layout = layout;
141
-
142
- // Newly created layout, so set initial props
143
- if (this.initialProps) {
144
- setGridViewProps(this, this.initialProps, {});
145
- }
146
-
147
- updateChild();
148
- }
149
- insertBefore(child: RNGridRow, beforeChild: RNGridRow): void {
150
- const prevIndex = this.childRows.findIndex(
151
- ({ data }) => data === beforeChild
152
- );
153
-
154
- if (prevIndex === -1) {
155
- throw new Error(
156
- "Attempted to insert child GridRow before nonexistent row"
157
- );
158
- }
159
-
160
- const offset = offsetForIndex<RNGridRow>(
161
- prevIndex,
162
- this.childRows,
163
- "height"
164
- );
165
-
166
- this.childRows.splice(prevIndex, 0, {
167
- offset,
168
- data: child,
169
- });
170
- // Update displaced children
171
- this.updateChildren(prevIndex);
172
- }
173
- removeChild(child: RNGridRow): void {
174
- const prevIndex = this.childRows.findIndex(({ data }) => data === child);
175
-
176
- if (prevIndex !== -1) {
177
- this.childRows.splice(prevIndex, 1);
178
- this.updateChildren(prevIndex);
179
- }
180
-
181
- child.remove();
182
- child.parentGrid = undefined;
183
- }
184
- static tagName: string = "gridview";
185
- }
@@ -1,51 +0,0 @@
1
- import { registerComponent, ComponentConfig } from "../config";
2
- import type { Fiber } from "../../utils/decoupleFromReact";
3
- import { AppContainer } from "../../reconciler";
4
- import { RNGridView, GridViewProps } from "./RNGridView";
5
-
6
- class GridViewConfig extends ComponentConfig {
7
- tagName = RNGridView.tagName;
8
- shouldSetTextContent(nextProps: GridViewProps): boolean {
9
- return false;
10
- }
11
- createInstance(
12
- newProps: GridViewProps,
13
- rootInstance: AppContainer,
14
- context: any,
15
- workInProgress: Fiber
16
- ): RNGridView {
17
- const widget = new RNGridView();
18
- widget.setProps(newProps, {
19
- children: [],
20
- });
21
- return widget;
22
- }
23
- finalizeInitialChildren(
24
- instance: RNGridView,
25
- newProps: GridViewProps,
26
- rootContainerInstance: AppContainer,
27
- context: any
28
- ): boolean {
29
- return true;
30
- }
31
- commitMount(
32
- instance: RNGridView,
33
- newProps: GridViewProps,
34
- internalInstanceHandle: any
35
- ): void {
36
- if (newProps.visible !== false) {
37
- instance.show();
38
- }
39
- }
40
- commitUpdate(
41
- instance: RNGridView,
42
- updatePayload: any,
43
- oldProps: GridViewProps,
44
- newProps: GridViewProps,
45
- finishedWork: Fiber
46
- ): void {
47
- instance.setProps(newProps, oldProps);
48
- }
49
- }
50
-
51
- export const GridView = registerComponent<GridViewProps>(new GridViewConfig());
@@ -1,59 +0,0 @@
1
- export interface DataWithOffset<T> {
2
- offset: number;
3
- data: T;
4
- }
5
-
6
- type SetParentFunc<T> = (parent: T, index: number) => void;
7
-
8
- /**
9
- * Extract the keys of type `T` matching type `TType`
10
- */
11
- type KeysOfType<T, TType> = {
12
- [Key in keyof T]-?: T[Key] extends TType | undefined ? Key : never;
13
- }[keyof T];
14
-
15
- /**
16
- * Show TypeScript that the fields we're interested in are of type `TType`
17
- */
18
- type OnlyType<T, TType> = {
19
- [Key in KeysOfType<T, TType>]?: TType;
20
- };
21
-
22
- export const offsetForIndex = <T>(
23
- index: number,
24
- items: Array<DataWithOffset<OnlyType<T, number>>>,
25
- sizeKey: keyof OnlyType<T, number>
26
- ) => {
27
- let offset = 0;
28
-
29
- if (index > 0) {
30
- const previousChild = items[index - 1];
31
- offset = previousChild.offset + (previousChild.data[sizeKey] ?? 1);
32
- }
33
-
34
- return offset;
35
- };
36
-
37
- type Allowed<TItem, TParent> = OnlyType<TItem, SetParentFunc<TParent>>;
38
- export function updateDisplacedChildren<TItem, TParent>(
39
- startIndex: number,
40
- items: Array<
41
- DataWithOffset<
42
- OnlyType<TItem, number> & Allowed<TItem, TParent>
43
- >
44
- >,
45
- parent: TParent,
46
- sizeKey: keyof OnlyType<TItem, number>,
47
- setParentFuncKey: keyof Allowed<TItem, TParent>
48
- ) {
49
- let offset = offsetForIndex(startIndex, items, sizeKey);
50
-
51
- for (let i = startIndex; i < items.length; i++) {
52
- const displacedChild = items[i];
53
-
54
- displacedChild.offset = offset;
55
- displacedChild.data[setParentFuncKey]?.(parent, offset);
56
-
57
- offset += displacedChild.data[sizeKey] ?? 1;
58
- }
59
- };