git0 0.2.9 → 0.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +3 -3
  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,141 @@
1
+ import { WidgetEventListeners } from "../View/RNView";
2
+ import {
3
+ QSystemTrayIconSignals,
4
+ QSystemTrayIcon,
5
+ NodeWidget,
6
+ QIcon,
7
+ QMenu,
8
+ } from "@nodegui/nodegui";
9
+ import { RNComponent, RNProps } from "../config";
10
+ import { throwUnsupported } from "../../utils/helpers";
11
+
12
+ /**
13
+ * The SystemTrayIcon component provides the ability to add and manipulate a native system tray icon.
14
+ * [NodeGui's QSystemTrayIcon](https://docs.nodegui.org/docs/api/generated/classes/qsystemtrayicon).
15
+ * ## Example
16
+ * ```javascript
17
+ * import React from "react";
18
+ * import { QIcon, QAction } from "@nodegui/nodegui";
19
+ * import { Menu, Renderer, SystemTrayIcon, Window } from "@nodegui/react-nodegui";
20
+ * import path from "path";
21
+ *
22
+ * const icon = new QIcon(path.join(__dirname, "../extras/assets/nodegui.png"));
23
+ * const action = new QAction();
24
+ * action.setText("Hello");
25
+ * action.addEventListener("triggered", () => {
26
+ * console.log("hello");
27
+ * });
28
+ *
29
+ * const App = () => {
30
+ * return (
31
+ * <Window>
32
+ * <SystemTrayIcon icon={icon} tooltip="Hello World" visible>
33
+ * <Menu actions={[action]} />
34
+ * </SystemTrayIcon>
35
+ * </Window>
36
+ * );
37
+ * };
38
+ *
39
+ * Renderer.render(<App />);
40
+ *
41
+ * ```
42
+ */
43
+ export interface SystemTrayIconProps extends RNProps {
44
+ /**
45
+ * Sets an icon for the system tray. [QSystemTrayIcon: setIcon](https://docs.nodegui.org/docs/api/generated/classes/qsystemtrayicon#seticon)
46
+ */
47
+ icon?: QIcon;
48
+
49
+ /**
50
+ * 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)
51
+ */
52
+ id?: string;
53
+
54
+ /**
55
+ * Prop to set the event listener map. See [Handlong Events](/docs/guides/handle-events)
56
+ */
57
+ on?: Partial<WidgetEventListeners | QSystemTrayIconSignals>;
58
+
59
+ /**
60
+ * Sets a tooltip for the system tray. [QSystemTrayIcon: setTooltip](https://docs.nodegui.org/docs/api/generated/classes/qsystemtrayicon#settooltip)
61
+ */
62
+ tooltip?: string;
63
+
64
+ /**
65
+ * Shows or hides the widget and its children. [QWidget: show](https://docs.nodegui.org/docs/api/NodeWidget#widgetshow)
66
+ */
67
+ visible?: boolean;
68
+ }
69
+
70
+ const setSystemTrayIconProps = (
71
+ widget: RNSystemTrayIcon,
72
+ newProps: SystemTrayIconProps,
73
+ oldProps: SystemTrayIconProps
74
+ ) => {
75
+ const setter: SystemTrayIconProps = {
76
+ set icon(icon: QIcon) {
77
+ widget.setIcon(icon);
78
+ },
79
+ set id(id: string) {
80
+ widget.setObjectName(id);
81
+ },
82
+ set on(
83
+ listenerMap: Partial<WidgetEventListeners | QSystemTrayIconSignals>
84
+ ) {
85
+ const listenerMapLatest: any = Object.assign({}, listenerMap);
86
+ const oldListenerMap = Object.assign({}, oldProps.on);
87
+ Object.entries(oldListenerMap).forEach(([eventType, oldEvtListener]) => {
88
+ const newEvtListener = listenerMapLatest[eventType];
89
+ if (oldEvtListener !== newEvtListener) {
90
+ widget.removeEventListener(eventType as any, oldEvtListener);
91
+ } else {
92
+ delete listenerMapLatest[eventType];
93
+ }
94
+ });
95
+
96
+ Object.entries(listenerMapLatest).forEach(
97
+ ([eventType, newEvtListener]) => {
98
+ widget.addEventListener(eventType as any, newEvtListener);
99
+ }
100
+ );
101
+ },
102
+ set tooltip(tooltip: string) {
103
+ widget.setToolTip(tooltip);
104
+ },
105
+ set visible(shouldShow: boolean) {
106
+ shouldShow ? widget.show() : widget.hide();
107
+ },
108
+ };
109
+ Object.assign(setter, newProps);
110
+ };
111
+
112
+ /**
113
+ * @ignore
114
+ */
115
+ export class RNSystemTrayIcon extends QSystemTrayIcon implements RNComponent {
116
+ static tagName = "systemtrayicon";
117
+
118
+ setProps(newProps: SystemTrayIconProps, oldProps: SystemTrayIconProps): void {
119
+ setSystemTrayIconProps(this, newProps, oldProps);
120
+ }
121
+ appendInitialChild(child: NodeWidget<any>): void {
122
+ if (child instanceof QMenu) {
123
+ if (!this.contextMenu) {
124
+ this.setContextMenu(child);
125
+ } else {
126
+ console.warn("SystemTrayIcon can't have more than one Menu.");
127
+ }
128
+ } else {
129
+ console.warn("SystemTrayIcon only supports Menu as its children");
130
+ }
131
+ }
132
+ appendChild(child: NodeWidget<any>): void {
133
+ this.appendInitialChild(child);
134
+ }
135
+ insertBefore(child: NodeWidget<any>, beforeChild: NodeWidget<any>): void {
136
+ throwUnsupported(this);
137
+ }
138
+ removeChild(child: NodeWidget<any>): void {
139
+ throwUnsupported(this);
140
+ }
141
+ }
@@ -0,0 +1,43 @@
1
+ import type { Fiber } from "../../utils/decoupleFromReact";
2
+ import { registerComponent, ComponentConfig } from "../config";
3
+ import { RNSystemTrayIcon, SystemTrayIconProps } from "./RNSystemTrayIcon";
4
+ import { AppContainer } from "../../reconciler";
5
+
6
+ class SystemTrayIconConfig extends ComponentConfig {
7
+ tagName = RNSystemTrayIcon.tagName;
8
+ shouldSetTextContent(nextProps: SystemTrayIconProps): boolean {
9
+ return false;
10
+ }
11
+ createInstance(
12
+ newProps: SystemTrayIconProps,
13
+ rootInstance: AppContainer,
14
+ context: any,
15
+ workInProgress: Fiber
16
+ ): RNSystemTrayIcon {
17
+ const widget = new RNSystemTrayIcon();
18
+ widget.setProps(newProps, {});
19
+ return widget;
20
+ }
21
+ commitMount(
22
+ instance: RNSystemTrayIcon,
23
+ newProps: SystemTrayIconProps,
24
+ internalInstanceHandle: any
25
+ ): void {
26
+ if (newProps.visible !== false) {
27
+ instance.show();
28
+ }
29
+ }
30
+ commitUpdate(
31
+ instance: RNSystemTrayIcon,
32
+ updatePayload: any,
33
+ oldProps: SystemTrayIconProps,
34
+ newProps: SystemTrayIconProps,
35
+ finishedWork: Fiber
36
+ ): void {
37
+ instance.setProps(newProps, oldProps);
38
+ }
39
+ }
40
+
41
+ export const SystemTrayIcon = registerComponent<SystemTrayIconProps>(
42
+ new SystemTrayIconConfig()
43
+ );
@@ -0,0 +1,69 @@
1
+ import {
2
+ QTabWidget,
3
+ QTabWidgetSignals,
4
+ TabPosition,
5
+ QIcon,
6
+ NodeWidget
7
+ } from "@nodegui/nodegui";
8
+ import { ViewProps, setViewProps } from "../View/RNView";
9
+ import { RNComponent } from "../config";
10
+ import { RNTabItem, setTabItemProps } from "../TabItem/RNTabItem";
11
+
12
+ export interface TabProps extends ViewProps<QTabWidgetSignals> {
13
+ tabPosition?: TabPosition;
14
+ }
15
+
16
+ /**
17
+ * @ignore
18
+ */
19
+ export const setTabProps = (
20
+ widget: RNTab,
21
+ newProps: TabProps,
22
+ oldProps: TabProps
23
+ ) => {
24
+ const setter: TabProps = {
25
+ set tabPosition(value: TabPosition) {
26
+ widget.setTabPosition(value);
27
+ }
28
+ };
29
+ Object.assign(setter, newProps);
30
+ setViewProps(widget, newProps, oldProps);
31
+ };
32
+
33
+ /**
34
+ * @ignore
35
+ */
36
+ export class RNTab extends QTabWidget implements RNComponent {
37
+ setProps(newProps: TabProps, oldProps: TabProps): void {
38
+ setTabProps(this, newProps, oldProps);
39
+ }
40
+
41
+ appendInitialChild(tabItem: RNTabItem): void {
42
+ if (!(tabItem instanceof RNTabItem)) {
43
+ throw new Error("Children of tab should be of type TabItem");
44
+ }
45
+
46
+ if (tabItem.actualTabWidget) {
47
+ this.addTab(tabItem.actualTabWidget, new QIcon(), "");
48
+ tabItem.parentTab = this;
49
+ setTabItemProps(tabItem, this, tabItem.initialProps, {});
50
+ }
51
+ }
52
+ appendChild(child: RNTabItem): void {
53
+ this.appendInitialChild(child);
54
+ }
55
+ insertBefore(child: RNTabItem, beforeChild: RNTabItem): void {
56
+ if (!(child instanceof RNTabItem)) {
57
+ throw new Error("Children of tab should be of type TabItem");
58
+ }
59
+ const index = this.indexOf(beforeChild.actualTabWidget as NodeWidget<any>);
60
+ this.insertTab(index, child.actualTabWidget as NodeWidget<any>, new QIcon(), "");
61
+ child.parentTab = this;
62
+ setTabItemProps(child, this, child.initialProps, {});
63
+ }
64
+ removeChild(child: RNTabItem): void {
65
+ const childIndex = this.indexOf(child.actualTabWidget as NodeWidget<any>);
66
+ this.removeTab(childIndex);
67
+ }
68
+ static tagName = "tabwidget";
69
+ }
@@ -0,0 +1,48 @@
1
+ import type { Fiber } from "../../utils/decoupleFromReact";
2
+ import { registerComponent, ComponentConfig } from "../config";
3
+ import { RNTab, TabProps } from "./RNTab";
4
+ import { AppContainer } from "../../reconciler";
5
+ class TabsConfig extends ComponentConfig {
6
+ tagName = RNTab.tagName;
7
+ shouldSetTextContent(nextProps: TabProps): boolean {
8
+ return false;
9
+ }
10
+ createInstance(
11
+ newProps: TabProps,
12
+ rootInstance: AppContainer,
13
+ context: any,
14
+ workInProgress: Fiber
15
+ ): RNTab {
16
+ const widget = new RNTab();
17
+ widget.setProps(newProps, {});
18
+ return widget;
19
+ }
20
+ commitMount(
21
+ instance: RNTab,
22
+ newProps: TabProps,
23
+ internalInstanceHandle: any
24
+ ): void {
25
+ if (newProps.visible !== false) {
26
+ instance.show();
27
+ }
28
+ }
29
+ finalizeInitialChildren(
30
+ instance: RNTab,
31
+ newProps: TabProps,
32
+ rootContainerInstance: AppContainer,
33
+ context: any
34
+ ): boolean {
35
+ return true;
36
+ }
37
+ commitUpdate(
38
+ instance: RNTab,
39
+ updatePayload: any,
40
+ oldProps: TabProps,
41
+ newProps: TabProps,
42
+ finishedWork: Fiber
43
+ ): void {
44
+ instance.setProps(newProps, oldProps);
45
+ }
46
+ }
47
+
48
+ export const Tabs = registerComponent<TabProps>(new TabsConfig());
@@ -0,0 +1,72 @@
1
+ import { NodeWidget, QIcon, Component } from "@nodegui/nodegui";
2
+ import { RNComponent, RNProps } from "../config";
3
+ import { RNTab } from "../Tab/RNTab";
4
+
5
+ export interface TabItemProps {
6
+ title?: string;
7
+ icon?: QIcon;
8
+ }
9
+
10
+ /**
11
+ * @ignore
12
+ */
13
+ export const setTabItemProps = (
14
+ tabItem: RNTabItem,
15
+ parentTab: RNTab,
16
+ newProps: TabItemProps,
17
+ oldProps: TabItemProps
18
+ ) => {
19
+ if (!tabItem.actualTabWidget) {
20
+ return;
21
+ }
22
+ const tabIndex = parentTab.indexOf(tabItem.actualTabWidget);
23
+ if (tabIndex < 0) {
24
+ console.error("TabItem is not part of the parent tab it references to");
25
+ return;
26
+ }
27
+
28
+ const setter: TabItemProps = {
29
+ set title(text: string) {
30
+ parentTab.setTabText(tabIndex, text);
31
+ },
32
+ set icon(qicon: QIcon) {
33
+ parentTab.setTabIcon(tabIndex, qicon);
34
+ }
35
+ };
36
+ Object.assign(setter, newProps);
37
+ };
38
+
39
+ /**
40
+ * @ignore
41
+ */
42
+ export class RNTabItem extends Component implements RNComponent {
43
+ native: any;
44
+ actualTabWidget?: NodeWidget<any>;
45
+ initialProps: TabItemProps = {};
46
+ parentTab?: RNTab;
47
+
48
+ setProps(newProps: TabItemProps, oldProps: TabItemProps): void {
49
+ if (this.parentTab) {
50
+ setTabItemProps(this, this.parentTab, newProps, oldProps);
51
+ } else {
52
+ this.initialProps = newProps;
53
+ }
54
+ }
55
+ appendInitialChild(child: NodeWidget<any>): void {
56
+ if (this.actualTabWidget) {
57
+ throw new Error("Tab Item can have only one child");
58
+ }
59
+ this.actualTabWidget = child;
60
+ }
61
+ appendChild(child: NodeWidget<any>): void {
62
+ this.appendInitialChild(child);
63
+ }
64
+ insertBefore(child: NodeWidget<any>, beforeChild: NodeWidget<any>): void {
65
+ this.appendInitialChild(child);
66
+ }
67
+ removeChild(child: NodeWidget<any>): void {
68
+ child.close();
69
+ delete this.actualTabWidget;
70
+ }
71
+ static tagName: string = "tabitem";
72
+ }
@@ -0,0 +1,40 @@
1
+ import type { Fiber } from "../../utils/decoupleFromReact";
2
+ import { registerComponent, ComponentConfig } from "../config";
3
+ import { RNTabItem, TabItemProps } from "./RNTabItem";
4
+ import { AppContainer } from "../../reconciler";
5
+
6
+ class TabItemConfig extends ComponentConfig {
7
+ tagName = RNTabItem.tagName;
8
+ shouldSetTextContent(nextProps: TabItemProps): boolean {
9
+ return false;
10
+ }
11
+ createInstance(
12
+ newProps: TabItemProps,
13
+ rootInstance: AppContainer,
14
+ context: any,
15
+ workInProgress: Fiber
16
+ ): RNTabItem {
17
+ const item = new RNTabItem();
18
+ item.setProps(newProps, {});
19
+ return item;
20
+ }
21
+ finalizeInitialChildren(
22
+ instance: RNTabItem,
23
+ newProps: TabItemProps,
24
+ rootContainerInstance: AppContainer,
25
+ context: any
26
+ ): boolean {
27
+ return false;
28
+ }
29
+ commitUpdate(
30
+ instance: RNTabItem,
31
+ updatePayload: any,
32
+ oldProps: TabItemProps,
33
+ newProps: TabItemProps,
34
+ finishedWork: Fiber
35
+ ): void {
36
+ instance.setProps(newProps, oldProps);
37
+ }
38
+ }
39
+
40
+ export const TabItem = registerComponent<TabItemProps>(new TabItemConfig());
@@ -0,0 +1,65 @@
1
+ import { QLabel, NodeWidget, QLabelSignals, TextInteractionFlag } from '@nodegui/nodegui';
2
+ import { ViewProps, setViewProps } from '../View/RNView';
3
+ import { RNWidget } from '../config';
4
+ import { throwUnsupported } from '../../utils/helpers';
5
+
6
+ export interface TextProps extends ViewProps<QLabelSignals> {
7
+ children?: string | number | Array<string | number>;
8
+ wordWrap?: boolean;
9
+ scaledContents?: boolean;
10
+ openExternalLinks?: boolean;
11
+ textInteractionFlags?: TextInteractionFlag;
12
+ }
13
+
14
+ /**
15
+ * @ignore
16
+ */
17
+ export const setTextProps = (
18
+ widget: RNText,
19
+ newProps: TextProps,
20
+ oldProps: TextProps
21
+ ) => {
22
+ const setter: TextProps = {
23
+ set children(text: string | number | Array<string | number>) {
24
+ text = Array.isArray(text) ? text.join('') : text;
25
+
26
+ widget.setText(text);
27
+ },
28
+ set wordWrap(shouldWrap: boolean) {
29
+ widget.setWordWrap(shouldWrap);
30
+ },
31
+ set scaledContents(scaled: boolean) {
32
+ widget.setProperty('scaledContents', scaled);
33
+ },
34
+ set openExternalLinks(shouldOpenExternalLinks: boolean) {
35
+ widget.setProperty('openExternalLinks', shouldOpenExternalLinks);
36
+ },
37
+ set textInteractionFlags(interactionFlag: TextInteractionFlag){
38
+ widget.setProperty('textInteractionFlags', interactionFlag);
39
+ }
40
+ };
41
+ Object.assign(setter, newProps);
42
+ setViewProps(widget, newProps, oldProps);
43
+ };
44
+
45
+ /**
46
+ * @ignore
47
+ */
48
+ export class RNText extends QLabel implements RNWidget {
49
+ setProps(newProps: TextProps, oldProps: TextProps): void {
50
+ setTextProps(this, newProps, oldProps);
51
+ }
52
+ appendInitialChild(child: NodeWidget<any>): void {
53
+ throwUnsupported(this);
54
+ }
55
+ appendChild(child: NodeWidget<any>): void {
56
+ throwUnsupported(this);
57
+ }
58
+ insertBefore(child: NodeWidget<any>, beforeChild: NodeWidget<any>): void {
59
+ throwUnsupported(this);
60
+ }
61
+ removeChild(child: NodeWidget<any>): void {
62
+ throwUnsupported(this);
63
+ }
64
+ static tagName = 'text';
65
+ }
@@ -0,0 +1,49 @@
1
+ import type { Fiber } from "../../utils/decoupleFromReact";
2
+ import { registerComponent, ComponentConfig } from "../config";
3
+ import { RNText, TextProps } from "./RNText";
4
+ import { AppContainer } from "../../reconciler";
5
+ class TextConfig extends ComponentConfig {
6
+ tagName = RNText.tagName;
7
+ shouldSetTextContent(nextProps: TextProps): boolean {
8
+ return true;
9
+ }
10
+ createInstance(
11
+ newProps: TextProps,
12
+ rootInstance: AppContainer,
13
+ context: any,
14
+ workInProgress: Fiber
15
+ ): RNText {
16
+ const widget = new RNText();
17
+ widget.setProps(newProps, {});
18
+ return widget;
19
+ }
20
+ commitMount(
21
+ instance: RNText,
22
+ newProps: TextProps,
23
+ internalInstanceHandle: any
24
+ ): void {
25
+ if (newProps.visible !== false) {
26
+ instance.show();
27
+ }
28
+ return;
29
+ }
30
+ finalizeInitialChildren(
31
+ instance: RNText,
32
+ newProps: TextProps,
33
+ rootContainerInstance: AppContainer,
34
+ context: any
35
+ ): boolean {
36
+ return true;
37
+ }
38
+ commitUpdate(
39
+ instance: RNText,
40
+ updatePayload: any,
41
+ oldProps: TextProps,
42
+ newProps: TextProps,
43
+ finishedWork: Fiber
44
+ ): void {
45
+ instance.setProps(newProps, oldProps);
46
+ }
47
+ }
48
+
49
+ export const Text = registerComponent<TextProps>(new TextConfig());