git0 0.2.11 → 0.2.13

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