uiconfig-blueprint 0.0.2 → 0.1.0-dev.1

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 (406) hide show
  1. package/README.md +15 -3
  2. package/dist/ConfigObject.d.ts +5 -3
  3. package/dist/allPaths-EYaH0Usv.js +23 -0
  4. package/dist/{allPaths-gmYjuI3J.js.map → allPaths-EYaH0Usv.js.map} +1 -1
  5. package/dist/{allPathsLoader-drlBWMqQ.js → allPathsLoader-UVZ15qNf.js} +5 -5
  6. package/dist/{allPathsLoader-drlBWMqQ.js.map → allPathsLoader-UVZ15qNf.js.map} +1 -1
  7. package/dist/bpComponents/BPButtonComponent.d.ts +1 -1
  8. package/dist/bpComponents/BPColorInputComponent.d.ts +1 -2
  9. package/dist/bpComponents/BPComponent.d.ts +7 -3
  10. package/dist/bpComponents/BPDropdownInputComponent.d.ts +1 -2
  11. package/dist/bpComponents/BPFileComponent.d.ts +1 -2
  12. package/dist/bpComponents/BPFolderComponent.d.ts +1 -1
  13. package/dist/bpComponents/BPInputComponent.d.ts +2 -2
  14. package/dist/bpComponents/BPNumberInputComponent.d.ts +1 -2
  15. package/dist/bpComponents/BPPanelComponent.d.ts +1 -2
  16. package/dist/bpComponents/BPSliderInputComponent.d.ts +1 -2
  17. package/dist/bpComponents/BPTextInputComponent.d.ts +1 -2
  18. package/dist/bpComponents/BPToggleInputComponent.d.ts +2 -3
  19. package/dist/bpComponents/BPTreeComponent.d.ts +15 -11
  20. package/dist/bpComponents/BPTreeFolderComponent.d.ts +2 -2
  21. package/dist/bpComponents/BPVectorInputComponent.d.ts +1 -2
  22. package/dist/components/AppToaster.d.ts +6 -0
  23. package/dist/components/ConfigurationPanelComponent.d.ts +4 -0
  24. package/dist/components/DialogContext.d.ts +52 -0
  25. package/dist/components/DraggableIcon.d.ts +1 -1
  26. package/dist/components/ExtendedNumericInput.d.ts +1 -1
  27. package/dist/components/FormGroupComponent.d.ts +2 -2
  28. package/dist/components/InspectorStackComponent.d.ts +1 -2
  29. package/dist/components/VisualStyleContext.d.ts +10 -1
  30. package/dist/components/bpIconWrapper.d.ts +2 -2
  31. package/dist/components/loadingState.d.ts +4 -0
  32. package/dist/components/variableIcons.d.ts +40 -41
  33. package/dist/{index-tqa0R-I0.js → index-0vU2D25U.js} +3 -3
  34. package/dist/{index-tqa0R-I0.js.map → index-0vU2D25U.js.map} +1 -1
  35. package/dist/{index-iM9IChdK.js → index-JBvBPdy9.js} +3 -3
  36. package/dist/{index-iM9IChdK.js.map → index-JBvBPdy9.js.map} +1 -1
  37. package/dist/{index-fkZWUkpO.js → index-OyL-zObJ.js} +10219 -26737
  38. package/dist/index-OyL-zObJ.js.map +1 -0
  39. package/dist/index.js +20 -233
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.mjs +3 -3
  42. package/dist/lib.d.ts +33 -0
  43. package/dist/{splitPathsBySizeLoader-WyKl5Fxr.js → splitPathsBySizeLoader-GhF5umHk.js} +6 -6
  44. package/dist/{splitPathsBySizeLoader-WyKl5Fxr.js.map → splitPathsBySizeLoader-GhF5umHk.js.map} +1 -1
  45. package/docs/assets/main.js +4 -3
  46. package/docs/assets/navigation.js +1 -0
  47. package/docs/assets/search.js +1 -1
  48. package/docs/assets/style.css +484 -369
  49. package/docs/classes/UI.html +22 -403
  50. package/docs/classes/UiConfigRendererBlueprint.html +22 -404
  51. package/docs/index.html +26 -103
  52. package/docs/modules.html +3 -50
  53. package/lib/cjs/ConfigObject.d.ts +18 -0
  54. package/lib/cjs/ConfigObject.js +82 -0
  55. package/lib/cjs/ConfigObject.js.map +1 -0
  56. package/lib/cjs/UiConfigRendererBlueprint.d.ts +13 -0
  57. package/lib/cjs/UiConfigRendererBlueprint.js +56 -0
  58. package/lib/cjs/UiConfigRendererBlueprint.js.map +1 -0
  59. package/lib/cjs/bpComponents/BPButtonComponent.d.ts +8 -0
  60. package/lib/cjs/bpComponents/BPButtonComponent.js +19 -0
  61. package/lib/cjs/bpComponents/BPButtonComponent.js.map +1 -0
  62. package/lib/cjs/bpComponents/BPColorInputComponent.d.ts +24 -0
  63. package/lib/cjs/bpComponents/BPColorInputComponent.js +127 -0
  64. package/lib/cjs/bpComponents/BPColorInputComponent.js.map +1 -0
  65. package/lib/cjs/bpComponents/BPComponent.d.ts +29 -0
  66. package/lib/cjs/bpComponents/BPComponent.js +59 -0
  67. package/lib/cjs/bpComponents/BPComponent.js.map +1 -0
  68. package/lib/cjs/bpComponents/BPContainerComponent.d.ts +21 -0
  69. package/lib/cjs/bpComponents/BPContainerComponent.js +54 -0
  70. package/lib/cjs/bpComponents/BPContainerComponent.js.map +1 -0
  71. package/lib/cjs/bpComponents/BPDropdownInputComponent.d.ts +15 -0
  72. package/lib/cjs/bpComponents/BPDropdownInputComponent.js +43 -0
  73. package/lib/cjs/bpComponents/BPDropdownInputComponent.js.map +1 -0
  74. package/lib/cjs/bpComponents/BPFileComponent.d.ts +25 -0
  75. package/lib/cjs/bpComponents/BPFileComponent.js +69 -0
  76. package/lib/cjs/bpComponents/BPFileComponent.js.map +1 -0
  77. package/lib/cjs/bpComponents/BPFolderComponent.d.ts +16 -0
  78. package/lib/cjs/bpComponents/BPFolderComponent.js +39 -0
  79. package/lib/cjs/bpComponents/BPFolderComponent.js.map +1 -0
  80. package/lib/cjs/bpComponents/BPInputComponent.d.ts +11 -0
  81. package/lib/cjs/bpComponents/BPInputComponent.js +34 -0
  82. package/lib/cjs/bpComponents/BPInputComponent.js.map +1 -0
  83. package/lib/cjs/bpComponents/BPLabelledComponent.d.ts +8 -0
  84. package/lib/cjs/bpComponents/BPLabelledComponent.js +14 -0
  85. package/lib/cjs/bpComponents/BPLabelledComponent.js.map +1 -0
  86. package/lib/cjs/bpComponents/BPNumberInputComponent.d.ts +10 -0
  87. package/lib/cjs/bpComponents/BPNumberInputComponent.js +40 -0
  88. package/lib/cjs/bpComponents/BPNumberInputComponent.js.map +1 -0
  89. package/lib/cjs/bpComponents/BPPanelComponent.d.ts +16 -0
  90. package/lib/cjs/bpComponents/BPPanelComponent.js +35 -0
  91. package/lib/cjs/bpComponents/BPPanelComponent.js.map +1 -0
  92. package/lib/cjs/bpComponents/BPSliderInputComponent.d.ts +14 -0
  93. package/lib/cjs/bpComponents/BPSliderInputComponent.js +41 -0
  94. package/lib/cjs/bpComponents/BPSliderInputComponent.js.map +1 -0
  95. package/lib/cjs/bpComponents/BPTextInputComponent.d.ts +7 -0
  96. package/lib/cjs/bpComponents/BPTextInputComponent.js +19 -0
  97. package/lib/cjs/bpComponents/BPTextInputComponent.js.map +1 -0
  98. package/lib/cjs/bpComponents/BPToggleInputComponent.d.ts +8 -0
  99. package/lib/cjs/bpComponents/BPToggleInputComponent.js +22 -0
  100. package/lib/cjs/bpComponents/BPToggleInputComponent.js.map +1 -0
  101. package/lib/cjs/bpComponents/BPTreeComponent.d.ts +36 -0
  102. package/lib/cjs/bpComponents/BPTreeComponent.js +131 -0
  103. package/lib/cjs/bpComponents/BPTreeComponent.js.map +1 -0
  104. package/lib/cjs/bpComponents/BPTreeFolderComponent.d.ts +10 -0
  105. package/lib/cjs/bpComponents/BPTreeFolderComponent.js +40 -0
  106. package/lib/cjs/bpComponents/BPTreeFolderComponent.js.map +1 -0
  107. package/lib/cjs/bpComponents/BPValueComponent.d.ts +16 -0
  108. package/lib/cjs/bpComponents/BPValueComponent.js +46 -0
  109. package/lib/cjs/bpComponents/BPValueComponent.js.map +1 -0
  110. package/lib/cjs/bpComponents/BPVectorInputComponent.d.ts +19 -0
  111. package/lib/cjs/bpComponents/BPVectorInputComponent.js +110 -0
  112. package/lib/cjs/bpComponents/BPVectorInputComponent.js.map +1 -0
  113. package/lib/cjs/components/ConfigurationPanelComponent.d.ts +4 -0
  114. package/lib/cjs/components/ConfigurationPanelComponent.js +30 -0
  115. package/lib/cjs/components/ConfigurationPanelComponent.js.map +1 -0
  116. package/lib/cjs/components/DialogContext.d.ts +48 -0
  117. package/lib/cjs/components/DialogContext.js +79 -0
  118. package/lib/cjs/components/DialogContext.js.map +1 -0
  119. package/lib/cjs/components/DraggableIcon.d.ts +19 -0
  120. package/lib/cjs/components/DraggableIcon.js +70 -0
  121. package/lib/cjs/components/DraggableIcon.js.map +1 -0
  122. package/lib/cjs/components/ExtendedNumericInput.d.ts +25 -0
  123. package/lib/cjs/components/ExtendedNumericInput.js +174 -0
  124. package/lib/cjs/components/ExtendedNumericInput.js.map +1 -0
  125. package/lib/cjs/components/FileComponent.d.ts +7 -0
  126. package/lib/cjs/components/FileComponent.js +49 -0
  127. package/lib/cjs/components/FileComponent.js.map +1 -0
  128. package/lib/cjs/components/FormGroupComponent.d.ts +6 -0
  129. package/lib/cjs/components/FormGroupComponent.js +16 -0
  130. package/lib/cjs/components/FormGroupComponent.js.map +1 -0
  131. package/lib/cjs/components/InspectorStackComponent.d.ts +4 -0
  132. package/lib/cjs/components/InspectorStackComponent.js +27 -0
  133. package/lib/cjs/components/InspectorStackComponent.js.map +1 -0
  134. package/lib/cjs/components/VisualStyleContext.d.ts +119 -0
  135. package/lib/cjs/components/VisualStyleContext.js +60 -0
  136. package/lib/cjs/components/VisualStyleContext.js.map +1 -0
  137. package/lib/cjs/components/bpIconWrapper.d.ts +2 -0
  138. package/lib/cjs/components/bpIconWrapper.js +9 -0
  139. package/lib/cjs/components/bpIconWrapper.js.map +1 -0
  140. package/lib/cjs/components/loadingState.d.ts +4 -0
  141. package/lib/cjs/components/loadingState.js +16 -0
  142. package/lib/cjs/components/loadingState.js.map +1 -0
  143. package/lib/cjs/components/variableIcons.d.ts +40 -0
  144. package/lib/cjs/components/variableIcons.js +46 -0
  145. package/lib/cjs/components/variableIcons.js.map +1 -0
  146. package/lib/cjs/contexts.d.ts +1 -0
  147. package/lib/cjs/contexts.js +3 -0
  148. package/lib/cjs/contexts.js.map +1 -0
  149. package/lib/cjs/index.d.ts +4 -0
  150. package/lib/cjs/index.js +9 -0
  151. package/lib/cjs/index.js.map +1 -0
  152. package/lib/cjs/lib.d.ts +32 -0
  153. package/lib/cjs/lib.js +49 -0
  154. package/lib/cjs/lib.js.map +1 -0
  155. package/lib/cjs/threejs.d.ts +2 -0
  156. package/lib/cjs/threejs.js +3 -0
  157. package/lib/cjs/threejs.js.map +1 -0
  158. package/lib/css/renderer.css +13110 -0
  159. package/lib/css/renderer.css.map +1 -0
  160. package/lib/esm/ConfigObject.d.ts +18 -0
  161. package/lib/esm/ConfigObject.js +78 -0
  162. package/lib/esm/ConfigObject.js.map +1 -0
  163. package/lib/esm/UiConfigRendererBlueprint.d.ts +13 -0
  164. package/lib/esm/UiConfigRendererBlueprint.js +52 -0
  165. package/lib/esm/UiConfigRendererBlueprint.js.map +1 -0
  166. package/lib/esm/bpComponents/BPButtonComponent.d.ts +8 -0
  167. package/lib/esm/bpComponents/BPButtonComponent.js +15 -0
  168. package/lib/esm/bpComponents/BPButtonComponent.js.map +1 -0
  169. package/lib/esm/bpComponents/BPColorInputComponent.d.ts +24 -0
  170. package/lib/esm/bpComponents/BPColorInputComponent.js +123 -0
  171. package/lib/esm/bpComponents/BPColorInputComponent.js.map +1 -0
  172. package/lib/esm/bpComponents/BPComponent.d.ts +29 -0
  173. package/lib/esm/bpComponents/BPComponent.js +55 -0
  174. package/lib/esm/bpComponents/BPComponent.js.map +1 -0
  175. package/lib/esm/bpComponents/BPContainerComponent.d.ts +21 -0
  176. package/lib/esm/bpComponents/BPContainerComponent.js +50 -0
  177. package/lib/esm/bpComponents/BPContainerComponent.js.map +1 -0
  178. package/lib/esm/bpComponents/BPDropdownInputComponent.d.ts +15 -0
  179. package/lib/esm/bpComponents/BPDropdownInputComponent.js +39 -0
  180. package/lib/esm/bpComponents/BPDropdownInputComponent.js.map +1 -0
  181. package/lib/esm/bpComponents/BPFileComponent.d.ts +25 -0
  182. package/lib/esm/bpComponents/BPFileComponent.js +65 -0
  183. package/lib/esm/bpComponents/BPFileComponent.js.map +1 -0
  184. package/lib/esm/bpComponents/BPFolderComponent.d.ts +16 -0
  185. package/lib/esm/bpComponents/BPFolderComponent.js +34 -0
  186. package/lib/esm/bpComponents/BPFolderComponent.js.map +1 -0
  187. package/lib/esm/bpComponents/BPInputComponent.d.ts +11 -0
  188. package/lib/esm/bpComponents/BPInputComponent.js +30 -0
  189. package/lib/esm/bpComponents/BPInputComponent.js.map +1 -0
  190. package/lib/esm/bpComponents/BPLabelledComponent.d.ts +8 -0
  191. package/lib/esm/bpComponents/BPLabelledComponent.js +10 -0
  192. package/lib/esm/bpComponents/BPLabelledComponent.js.map +1 -0
  193. package/lib/esm/bpComponents/BPNumberInputComponent.d.ts +10 -0
  194. package/lib/esm/bpComponents/BPNumberInputComponent.js +36 -0
  195. package/lib/esm/bpComponents/BPNumberInputComponent.js.map +1 -0
  196. package/lib/esm/bpComponents/BPPanelComponent.d.ts +16 -0
  197. package/lib/esm/bpComponents/BPPanelComponent.js +31 -0
  198. package/lib/esm/bpComponents/BPPanelComponent.js.map +1 -0
  199. package/lib/esm/bpComponents/BPSliderInputComponent.d.ts +14 -0
  200. package/lib/esm/bpComponents/BPSliderInputComponent.js +37 -0
  201. package/lib/esm/bpComponents/BPSliderInputComponent.js.map +1 -0
  202. package/lib/esm/bpComponents/BPTextInputComponent.d.ts +7 -0
  203. package/lib/esm/bpComponents/BPTextInputComponent.js +15 -0
  204. package/lib/esm/bpComponents/BPTextInputComponent.js.map +1 -0
  205. package/lib/esm/bpComponents/BPToggleInputComponent.d.ts +8 -0
  206. package/lib/esm/bpComponents/BPToggleInputComponent.js +18 -0
  207. package/lib/esm/bpComponents/BPToggleInputComponent.js.map +1 -0
  208. package/lib/esm/bpComponents/BPTreeComponent.d.ts +36 -0
  209. package/lib/esm/bpComponents/BPTreeComponent.js +127 -0
  210. package/lib/esm/bpComponents/BPTreeComponent.js.map +1 -0
  211. package/lib/esm/bpComponents/BPTreeFolderComponent.d.ts +10 -0
  212. package/lib/esm/bpComponents/BPTreeFolderComponent.js +36 -0
  213. package/lib/esm/bpComponents/BPTreeFolderComponent.js.map +1 -0
  214. package/lib/esm/bpComponents/BPValueComponent.d.ts +16 -0
  215. package/lib/esm/bpComponents/BPValueComponent.js +42 -0
  216. package/lib/esm/bpComponents/BPValueComponent.js.map +1 -0
  217. package/lib/esm/bpComponents/BPVectorInputComponent.d.ts +19 -0
  218. package/lib/esm/bpComponents/BPVectorInputComponent.js +106 -0
  219. package/lib/esm/bpComponents/BPVectorInputComponent.js.map +1 -0
  220. package/lib/esm/components/AppToaster.d.ts +6 -0
  221. package/lib/esm/components/AppToaster.js +8 -0
  222. package/lib/esm/components/AppToaster.js.map +1 -0
  223. package/lib/esm/components/ConfigurationPanelComponent.d.ts +4 -0
  224. package/lib/esm/components/ConfigurationPanelComponent.js +26 -0
  225. package/lib/esm/components/ConfigurationPanelComponent.js.map +1 -0
  226. package/lib/esm/components/DialogContext.d.ts +52 -0
  227. package/lib/esm/components/DialogContext.js +89 -0
  228. package/lib/esm/components/DialogContext.js.map +1 -0
  229. package/lib/esm/components/DraggableIcon.d.ts +19 -0
  230. package/lib/esm/components/DraggableIcon.js +66 -0
  231. package/lib/esm/components/DraggableIcon.js.map +1 -0
  232. package/lib/esm/components/ExtendedNumericInput.d.ts +25 -0
  233. package/lib/esm/components/ExtendedNumericInput.js +170 -0
  234. package/lib/esm/components/ExtendedNumericInput.js.map +1 -0
  235. package/lib/esm/components/FileComponent.d.ts +7 -0
  236. package/lib/esm/components/FileComponent.js +45 -0
  237. package/lib/esm/components/FileComponent.js.map +1 -0
  238. package/lib/esm/components/FormGroupComponent.d.ts +6 -0
  239. package/lib/esm/components/FormGroupComponent.js +12 -0
  240. package/lib/esm/components/FormGroupComponent.js.map +1 -0
  241. package/lib/esm/components/InspectorStackComponent.d.ts +4 -0
  242. package/lib/esm/components/InspectorStackComponent.js +23 -0
  243. package/lib/esm/components/InspectorStackComponent.js.map +1 -0
  244. package/lib/esm/components/VisualStyleContext.d.ts +119 -0
  245. package/lib/esm/components/VisualStyleContext.js +53 -0
  246. package/lib/esm/components/VisualStyleContext.js.map +1 -0
  247. package/lib/esm/components/bpIconWrapper.d.ts +2 -0
  248. package/lib/esm/components/bpIconWrapper.js +5 -0
  249. package/lib/esm/components/bpIconWrapper.js.map +1 -0
  250. package/lib/esm/components/loadingState.d.ts +4 -0
  251. package/lib/esm/components/loadingState.js +21 -0
  252. package/lib/esm/components/loadingState.js.map +1 -0
  253. package/lib/esm/components/variableIcons.d.ts +40 -0
  254. package/lib/esm/components/variableIcons.js +43 -0
  255. package/lib/esm/components/variableIcons.js.map +1 -0
  256. package/lib/esm/contexts.d.ts +1 -0
  257. package/lib/esm/contexts.js +2 -0
  258. package/lib/esm/contexts.js.map +1 -0
  259. package/lib/esm/index.d.ts +4 -0
  260. package/lib/esm/index.js +5 -0
  261. package/lib/esm/index.js.map +1 -0
  262. package/lib/esm/lib.d.ts +33 -0
  263. package/lib/esm/lib.js +34 -0
  264. package/lib/esm/lib.js.map +1 -0
  265. package/lib/esm/threejs.d.ts +2 -0
  266. package/lib/esm/threejs.js +2 -0
  267. package/lib/esm/threejs.js.map +1 -0
  268. package/lib/esnext/ConfigObject.d.ts +18 -0
  269. package/lib/esnext/ConfigObject.js +75 -0
  270. package/lib/esnext/ConfigObject.js.map +1 -0
  271. package/lib/esnext/UiConfigRendererBlueprint.d.ts +13 -0
  272. package/lib/esnext/UiConfigRendererBlueprint.js +52 -0
  273. package/lib/esnext/UiConfigRendererBlueprint.js.map +1 -0
  274. package/lib/esnext/bpComponents/BPButtonComponent.d.ts +8 -0
  275. package/lib/esnext/bpComponents/BPButtonComponent.js +15 -0
  276. package/lib/esnext/bpComponents/BPButtonComponent.js.map +1 -0
  277. package/lib/esnext/bpComponents/BPColorInputComponent.d.ts +24 -0
  278. package/lib/esnext/bpComponents/BPColorInputComponent.js +110 -0
  279. package/lib/esnext/bpComponents/BPColorInputComponent.js.map +1 -0
  280. package/lib/esnext/bpComponents/BPComponent.d.ts +29 -0
  281. package/lib/esnext/bpComponents/BPComponent.js +46 -0
  282. package/lib/esnext/bpComponents/BPComponent.js.map +1 -0
  283. package/lib/esnext/bpComponents/BPContainerComponent.d.ts +21 -0
  284. package/lib/esnext/bpComponents/BPContainerComponent.js +51 -0
  285. package/lib/esnext/bpComponents/BPContainerComponent.js.map +1 -0
  286. package/lib/esnext/bpComponents/BPDropdownInputComponent.d.ts +15 -0
  287. package/lib/esnext/bpComponents/BPDropdownInputComponent.js +40 -0
  288. package/lib/esnext/bpComponents/BPDropdownInputComponent.js.map +1 -0
  289. package/lib/esnext/bpComponents/BPFileComponent.d.ts +25 -0
  290. package/lib/esnext/bpComponents/BPFileComponent.js +52 -0
  291. package/lib/esnext/bpComponents/BPFileComponent.js.map +1 -0
  292. package/lib/esnext/bpComponents/BPFolderComponent.d.ts +16 -0
  293. package/lib/esnext/bpComponents/BPFolderComponent.js +30 -0
  294. package/lib/esnext/bpComponents/BPFolderComponent.js.map +1 -0
  295. package/lib/esnext/bpComponents/BPInputComponent.d.ts +11 -0
  296. package/lib/esnext/bpComponents/BPInputComponent.js +19 -0
  297. package/lib/esnext/bpComponents/BPInputComponent.js.map +1 -0
  298. package/lib/esnext/bpComponents/BPLabelledComponent.d.ts +8 -0
  299. package/lib/esnext/bpComponents/BPLabelledComponent.js +13 -0
  300. package/lib/esnext/bpComponents/BPLabelledComponent.js.map +1 -0
  301. package/lib/esnext/bpComponents/BPNumberInputComponent.d.ts +10 -0
  302. package/lib/esnext/bpComponents/BPNumberInputComponent.js +21 -0
  303. package/lib/esnext/bpComponents/BPNumberInputComponent.js.map +1 -0
  304. package/lib/esnext/bpComponents/BPPanelComponent.d.ts +16 -0
  305. package/lib/esnext/bpComponents/BPPanelComponent.js +31 -0
  306. package/lib/esnext/bpComponents/BPPanelComponent.js.map +1 -0
  307. package/lib/esnext/bpComponents/BPSliderInputComponent.d.ts +14 -0
  308. package/lib/esnext/bpComponents/BPSliderInputComponent.js +39 -0
  309. package/lib/esnext/bpComponents/BPSliderInputComponent.js.map +1 -0
  310. package/lib/esnext/bpComponents/BPTextInputComponent.d.ts +7 -0
  311. package/lib/esnext/bpComponents/BPTextInputComponent.js +15 -0
  312. package/lib/esnext/bpComponents/BPTextInputComponent.js.map +1 -0
  313. package/lib/esnext/bpComponents/BPToggleInputComponent.d.ts +8 -0
  314. package/lib/esnext/bpComponents/BPToggleInputComponent.js +18 -0
  315. package/lib/esnext/bpComponents/BPToggleInputComponent.js.map +1 -0
  316. package/lib/esnext/bpComponents/BPTreeComponent.d.ts +36 -0
  317. package/lib/esnext/bpComponents/BPTreeComponent.js +111 -0
  318. package/lib/esnext/bpComponents/BPTreeComponent.js.map +1 -0
  319. package/lib/esnext/bpComponents/BPTreeFolderComponent.d.ts +10 -0
  320. package/lib/esnext/bpComponents/BPTreeFolderComponent.js +23 -0
  321. package/lib/esnext/bpComponents/BPTreeFolderComponent.js.map +1 -0
  322. package/lib/esnext/bpComponents/BPValueComponent.d.ts +16 -0
  323. package/lib/esnext/bpComponents/BPValueComponent.js +29 -0
  324. package/lib/esnext/bpComponents/BPValueComponent.js.map +1 -0
  325. package/lib/esnext/bpComponents/BPVectorInputComponent.d.ts +19 -0
  326. package/lib/esnext/bpComponents/BPVectorInputComponent.js +93 -0
  327. package/lib/esnext/bpComponents/BPVectorInputComponent.js.map +1 -0
  328. package/lib/esnext/components/ConfigurationPanelComponent.d.ts +4 -0
  329. package/lib/esnext/components/ConfigurationPanelComponent.js +26 -0
  330. package/lib/esnext/components/ConfigurationPanelComponent.js.map +1 -0
  331. package/lib/esnext/components/DialogContext.d.ts +48 -0
  332. package/lib/esnext/components/DialogContext.js +55 -0
  333. package/lib/esnext/components/DialogContext.js.map +1 -0
  334. package/lib/esnext/components/DraggableIcon.d.ts +19 -0
  335. package/lib/esnext/components/DraggableIcon.js +62 -0
  336. package/lib/esnext/components/DraggableIcon.js.map +1 -0
  337. package/lib/esnext/components/ExtendedNumericInput.d.ts +25 -0
  338. package/lib/esnext/components/ExtendedNumericInput.js +151 -0
  339. package/lib/esnext/components/ExtendedNumericInput.js.map +1 -0
  340. package/lib/esnext/components/FileComponent.d.ts +7 -0
  341. package/lib/esnext/components/FileComponent.js +42 -0
  342. package/lib/esnext/components/FileComponent.js.map +1 -0
  343. package/lib/esnext/components/FormGroupComponent.d.ts +6 -0
  344. package/lib/esnext/components/FormGroupComponent.js +11 -0
  345. package/lib/esnext/components/FormGroupComponent.js.map +1 -0
  346. package/lib/esnext/components/InspectorStackComponent.d.ts +4 -0
  347. package/lib/esnext/components/InspectorStackComponent.js +23 -0
  348. package/lib/esnext/components/InspectorStackComponent.js.map +1 -0
  349. package/lib/esnext/components/VisualStyleContext.d.ts +119 -0
  350. package/lib/esnext/components/VisualStyleContext.js +53 -0
  351. package/lib/esnext/components/VisualStyleContext.js.map +1 -0
  352. package/lib/esnext/components/bpIconWrapper.d.ts +2 -0
  353. package/lib/esnext/components/bpIconWrapper.js +5 -0
  354. package/lib/esnext/components/bpIconWrapper.js.map +1 -0
  355. package/lib/esnext/components/loadingState.d.ts +4 -0
  356. package/lib/esnext/components/loadingState.js +12 -0
  357. package/lib/esnext/components/loadingState.js.map +1 -0
  358. package/lib/esnext/components/variableIcons.d.ts +40 -0
  359. package/lib/esnext/components/variableIcons.js +43 -0
  360. package/lib/esnext/components/variableIcons.js.map +1 -0
  361. package/lib/esnext/contexts.d.ts +1 -0
  362. package/lib/esnext/contexts.js +2 -0
  363. package/lib/esnext/contexts.js.map +1 -0
  364. package/lib/esnext/index.d.ts +4 -0
  365. package/lib/esnext/index.js +5 -0
  366. package/lib/esnext/index.js.map +1 -0
  367. package/lib/esnext/lib.d.ts +32 -0
  368. package/lib/esnext/lib.js +33 -0
  369. package/lib/esnext/lib.js.map +1 -0
  370. package/lib/esnext/threejs.d.ts +2 -0
  371. package/lib/esnext/threejs.js +2 -0
  372. package/lib/esnext/threejs.js.map +1 -0
  373. package/package.json +15 -11
  374. package/src/ConfigObject.tsx +4 -4
  375. package/src/UiConfigRendererBlueprint.tsx +2 -15
  376. package/src/bpComponents/BPButtonComponent.scss +1 -0
  377. package/src/bpComponents/BPColorInputComponent.tsx +1 -1
  378. package/src/bpComponents/BPComponent.tsx +9 -3
  379. package/src/bpComponents/BPDropdownInputComponent.tsx +0 -1
  380. package/src/bpComponents/BPFileComponent.tsx +2 -3
  381. package/src/bpComponents/BPFolderComponent.scss +2 -2
  382. package/src/bpComponents/BPInputComponent.tsx +1 -1
  383. package/src/bpComponents/BPPanelComponent.tsx +0 -1
  384. package/src/bpComponents/BPSliderInputComponent.tsx +0 -1
  385. package/src/bpComponents/BPTextInputComponent.tsx +1 -1
  386. package/src/bpComponents/BPToggleInputComponent.tsx +1 -1
  387. package/src/bpComponents/BPTreeComponent.tsx +48 -31
  388. package/src/bpComponents/BPTreeFolderComponent.tsx +2 -2
  389. package/src/components/AppToaster.tsx +18 -0
  390. package/src/components/ConfigurationPanelComponent.tsx +63 -0
  391. package/src/components/DialogContext.tsx +150 -0
  392. package/src/components/DraggableIcon.tsx +1 -0
  393. package/src/components/ExtendedNumericInput.tsx +2 -2
  394. package/src/components/FormGroupComponent.tsx +1 -1
  395. package/src/components/InspectorStackComponent.tsx +3 -33
  396. package/src/components/VisualStyleContext.tsx +33 -1
  397. package/src/components/bpIconWrapper.tsx +1 -1
  398. package/src/components/common.scss +6 -0
  399. package/src/components/loadingState.tsx +11 -0
  400. package/src/components/variableIcons.tsx +0 -1
  401. package/src/lib.ts +33 -0
  402. package/src/renderer.scss +59 -56
  403. package/src/tsconfig.json +6 -0
  404. package/tsconfig.json +1 -1
  405. package/dist/allPaths-gmYjuI3J.js +0 -23
  406. package/dist/index-fkZWUkpO.js.map +0 -1
@@ -0,0 +1,33 @@
1
+ export * from './threejs';
2
+ export * from './contexts';
3
+ export * from './ConfigObject';
4
+ export * from './components/bpIconWrapper';
5
+ export * from './components/ConfigurationPanelComponent';
6
+ export * from './components/DraggableIcon';
7
+ export * from './components/ExtendedNumericInput';
8
+ export * from './components/FileComponent';
9
+ export * from './components/FormGroupComponent';
10
+ export * from './components/InspectorStackComponent';
11
+ export * from './components/variableIcons';
12
+ export * from './components/VisualStyleContext';
13
+ export * from './components/DialogContext';
14
+ export * from './components/loadingState';
15
+ export * from './bpComponents/BPButtonComponent';
16
+ export * from './bpComponents/BPColorInputComponent';
17
+ export * from './bpComponents/BPComponent';
18
+ export * from './bpComponents/BPContainerComponent';
19
+ export * from './bpComponents/BPDropdownInputComponent';
20
+ export * from './bpComponents/BPFileComponent';
21
+ export * from './bpComponents/BPFolderComponent';
22
+ export * from './bpComponents/BPInputComponent';
23
+ export * from './bpComponents/BPLabelledComponent';
24
+ export * from './bpComponents/BPNumberInputComponent';
25
+ export * from './bpComponents/BPPanelComponent';
26
+ export * from './bpComponents/BPSliderInputComponent';
27
+ export * from './bpComponents/BPTextInputComponent';
28
+ export * from './bpComponents/BPToggleInputComponent';
29
+ export * from './bpComponents/BPTreeComponent';
30
+ export * from './bpComponents/BPTreeFolderComponent';
31
+ export * from './bpComponents/BPValueComponent';
32
+ export * from './bpComponents/BPVectorInputComponent';
33
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0CAA0C,CAAA;AACxD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AACpD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sCAAsC,CAAA;AACpD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qCAAqC,CAAA;AACnD,cAAc,yCAAyC,CAAA;AACvD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,oCAAoC,CAAA;AAClD,cAAc,uCAAuC,CAAA;AACrD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uCAAuC,CAAA;AACrD,cAAc,qCAAqC,CAAA;AACnD,cAAc,uCAAuC,CAAA;AACrD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,sCAAsC,CAAA;AACpD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uCAAuC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type * as THREE_1 from 'three';
2
+ export type THREE = Pick<typeof THREE_1, 'Color' | 'Vector2' | 'Vector3' | 'Vector4'>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=threejs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threejs.js","sourceRoot":"","sources":["../../src/threejs.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,20 +1,14 @@
1
1
  {
2
2
  "name": "uiconfig-blueprint",
3
3
  "name:umd": "bpui",
4
- "version": "0.0.2",
4
+ "version": "0.1.0-dev.1",
5
5
  "description": "Blueprint.js wrapper and custom components for web controls UI. To be used with uiconfig.",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.mjs",
8
- "exports": {
9
- ".": {
10
- "import": "./dist/index.mjs",
11
- "require": "./dist/index.js"
12
- }
13
- },
14
- "types": "dist/index.d.ts",
15
8
  "source": "src/index.ts",
16
9
  "sideEffects": false,
17
10
  "files": [
11
+ "lib",
18
12
  "dist",
19
13
  "src",
20
14
  "docs",
@@ -41,9 +35,14 @@
41
35
  },
42
36
  "homepage": "https://github.com/repalash/uiconfig-blueprint#readme",
43
37
  "dependencies": {
38
+ "@blueprintjs/core": "^5.7.2",
44
39
  "@types/three": "^0.152.1",
40
+ "ts-browser-helpers": "^0.8.0",
45
41
  "@types/webxr": "^0.5.10",
46
- "uiconfig.js": "^0.0.8",
42
+ "uiconfig.js": "^0.0.9",
43
+ "@blueprintjs/icons": "^5.5.0",
44
+ "@blueprintjs/select": "^5.0.20",
45
+ "blueprint-styler": "^5.0.2",
47
46
  "@types/react": "^18.0.28",
48
47
  "@types/react-dom": "^18.0.11",
49
48
  "react": "^18.2.0",
@@ -51,15 +50,20 @@
51
50
  },
52
51
  "//": {
53
52
  "dependencies": {
54
- "uiconfig.js": "^0.0.8"
53
+ "uiconfig.js": "^0.0.9"
55
54
  },
56
55
  "local_dependencies": {
57
56
  "uiconfig.js": "file:./../uiconfig/"
57
+ },
58
+ "scripts": {
59
+ "compile:cjs": "tsc -p ./src -m commonjs --verbatimModuleSyntax false --outDir lib/cjs",
60
+ "compile:esnext": "tsc -p ./src -t esnext --outDir lib/esnext"
58
61
  }
59
62
  },
60
63
  "browserslist": [
61
64
  "defaults"
62
65
  ],
63
66
  "type": "module",
64
- "browser": "dist/index.js"
67
+ "browser": "dist/index.js",
68
+ "types": "dist/index.d.ts"
65
69
  }
@@ -30,7 +30,7 @@ export interface ConfigProps extends PanelActions {
30
30
  level?: number,
31
31
  }
32
32
 
33
- const generators: PartialRecord<UiConfigTypes, Class<React.Component<BPComponentProps<any>, BPComponentState>>> = {
33
+ export const ConfigObjectGenerators: PartialRecord<UiConfigTypes, Class<React.Component<BPComponentProps<any>, BPComponentState>>> = {
34
34
  input: BPTextInputComponent,
35
35
  number: BPNumberInputComponent,
36
36
  button: BPButtonComponent,
@@ -54,7 +54,7 @@ const generators: PartialRecord<UiConfigTypes, Class<React.Component<BPComponent
54
54
 
55
55
  export class ConfigObject extends React.Component<ConfigProps, {}> {
56
56
  static contextType = UiConfigRendererContext
57
- context!: React.ContextType<typeof UiConfigRendererContext>
57
+ declare context: React.ContextType<typeof UiConfigRendererContext>
58
58
  state = {}
59
59
 
60
60
  render() {
@@ -72,7 +72,7 @@ export class ConfigObject extends React.Component<ConfigProps, {}> {
72
72
  }
73
73
  if (val && type === 'input' && typeof (val as any).x === 'number') this.props.config.type = type = 'vec'
74
74
 
75
- let BPComp = generators[type]
75
+ let BPComp = ConfigObjectGenerators[type]
76
76
  if (type === 'panel' && !this.props.isPanel) {
77
77
  const label = this.context.methods.getLabel(this.props.config)
78
78
  return (
@@ -107,7 +107,7 @@ export class ConfigObject extends React.Component<ConfigProps, {}> {
107
107
  // }
108
108
  // if (!this.props.uiConfig.type) return (<li key={v4()}></li>)
109
109
  // if (!this.props.uiConfig.uuid) this.props.uiConfig.uuid = v4()
110
- // const g = generators[this.props.uiConfig.type as any as UiConfigTypes]
110
+ // const g = ConfigObjectGenerators[this.props.uiConfig.type as any as UiConfigTypes]
111
111
  // // console.log(props.uiConfig)
112
112
  // if (!g) return <li key={this.props.uiConfig.uuid}></li>
113
113
  // this.props.uiConfig.uiRefresh = (mode, deep, delay) => {
@@ -2,7 +2,7 @@ import {createDiv, createStyles, css} from "ts-browser-helpers";
2
2
  import {UiConfigRendererBase, UiObjectConfig} from "uiconfig.js";
3
3
  import React from 'react'
4
4
  import {createRoot, Root} from 'react-dom/client'
5
- import {InspectorStackComponent} from './components/InspectorStackComponent'
5
+ import {ConfigurationPanelComponent} from './components/ConfigurationPanelComponent'
6
6
  import {BPComponent, UiConfigRendererContext} from './bpComponents/BPComponent'
7
7
  // @ts-ignore
8
8
  import rendererCss from './renderer.scss?inline' // for rollup build remove ?inline
@@ -47,7 +47,7 @@ export class UiConfigRendererBlueprint extends UiConfigRendererBase<Root> {
47
47
  this._root.render(
48
48
  <React.StrictMode>
49
49
  <UiConfigRendererContext.Provider value={this}>
50
- <InspectorStackComponent config={this.config}/>
50
+ <ConfigurationPanelComponent config={this.config}/>
51
51
  </UiConfigRendererContext.Provider>
52
52
  </React.StrictMode>
53
53
  )
@@ -69,17 +69,4 @@ export class UiConfigRendererBlueprint extends UiConfigRendererBase<Root> {
69
69
  // todo
70
70
  }
71
71
 
72
- // todo: hidden and disabled
73
-
74
- // protected _renderUiConfig(uiConfig: UiObjectConfig<any, string>, parent: any): any {
75
- // const ui = uiConfig.type ? this._typeGenerators[uiConfig.type]?.(parent, uiConfig, this) as BladeApi<BladeController<View>> | undefined : undefined
76
- // if (ui) {
77
- // ui.hidden = getOrCall(uiConfig.hidden) ?? false
78
- // ui.disabled = getOrCall(uiConfig.disabled) ?? false // todo: also see if property is writable?
79
- // }
80
- //
81
- // return ui
82
- //
83
- // }
84
-
85
72
  }
@@ -2,6 +2,7 @@
2
2
  .bpButtonComponent {
3
3
  //width: 100%;
4
4
  display: flex;
5
+ justify-content: center;
5
6
  flex-basis: 50%;
6
7
  margin: 2px 0;
7
8
  width: max-content;
@@ -1,4 +1,4 @@
1
- import React, {createRef} from "react";
1
+ import {createRef} from "react";
2
2
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
3
3
  import {Button, Icon, InputGroup, Popover} from "@blueprintjs/core";
4
4
  import {BPValueComponent, BPValueComponentState} from "./BPValueComponent";
@@ -1,7 +1,8 @@
1
1
  import React, {createContext} from "react";
2
- import type {UiConfigRendererBlueprint} from '../UiConfigRendererBlueprint'
2
+ import type {UiConfigRendererBase} from 'uiconfig.js'
3
3
  import {UiObjectConfig} from 'uiconfig.js'
4
4
  import {getOrCall} from 'ts-browser-helpers'
5
+ import {THREE} from "../threejs";
5
6
 
6
7
  export type BPComponentProps<T> = {
7
8
  config: UiObjectConfig<T>,
@@ -12,11 +13,16 @@ export type BPComponentState = {
12
13
  disabled?: boolean
13
14
  readOnly?: boolean // same as disabled(for most inputs)
14
15
  }
15
- export const UiConfigRendererContext = createContext<UiConfigRendererBlueprint>(null as any)
16
+ export interface UiConfigRendererBaseBp extends UiConfigRendererBase{
17
+ // eslint-disable-next-line @typescript-eslint/naming-convention
18
+ THREE: THREE|undefined
19
+ }
20
+
21
+ export const UiConfigRendererContext = createContext<UiConfigRendererBaseBp>(null as any)
16
22
  export type UiConfigRendererContextType = React.ContextType<typeof UiConfigRendererContext>
17
23
  export abstract class BPComponent<TValue, TState, TProps extends BPComponentProps<TValue> = BPComponentProps<TValue>> extends React.Component<TProps, TState> {
18
24
  static contextType = UiConfigRendererContext
19
- context!: UiConfigRendererContextType
25
+ declare context: UiConfigRendererContextType
20
26
 
21
27
  protected constructor(props: TProps, context: UiConfigRendererContextType, state: TState) {
22
28
  super(props, context);
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
3
2
  import {Button, MenuItem} from "@blueprintjs/core";
4
3
  import {BPInputComponent} from "./BPInputComponent";
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import {FileComponent} from "../components/FileComponent";
3
2
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
4
3
  import {BPValueComponent, BPValueComponentState} from "./BPValueComponent";
@@ -14,8 +13,8 @@ type BPFileComponentExtras = {fileLoader?: {load: (v: string|File|{path: string,
14
13
  type BPFileComponentContextType = UiConfigRendererContextType & BPFileComponentExtras
15
14
 
16
15
  export class BPFileComponent extends BPValueComponent<FileImportType | null, BPFileComponentState, StateValue> {
17
- context!: BPFileComponentContextType
18
- props!: BPComponentProps<FileImportType | null> & BPFileComponentExtras
16
+ declare context: BPFileComponentContextType
17
+ declare props: BPComponentProps<FileImportType | null> & BPFileComponentExtras
19
18
  constructor(props: BPComponentProps<FileImportType | null> & BPFileComponentExtras, context: BPFileComponentContextType) {
20
19
  super(props, context, {
21
20
  mode: 'file',
@@ -1,4 +1,4 @@
1
- @import "~@blueprintjs/core/lib/scss/variables.scss";
1
+ @import "@blueprintjs/core/lib/scss/variables.scss";
2
2
 
3
3
  // todo: style for bp5-disabled
4
4
 
@@ -93,7 +93,7 @@
93
93
  justify-content: space-between;
94
94
  flex-direction: row;
95
95
  box-shadow: 0 1px $pt-divider-black;
96
- z-index: 1;
96
+ //z-index: 1;
97
97
 
98
98
  > button {
99
99
  border-radius: 0;
@@ -1,6 +1,6 @@
1
1
  import {BPValueComponent, BPValueComponentState} from "./BPValueComponent";
2
2
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
3
- import React, {ReactNode} from "react";
3
+ import {ReactNode} from "react";
4
4
  import {FormGroupComponent} from "../components/FormGroupComponent";
5
5
 
6
6
  export abstract class BPInputComponent<
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
3
2
  import {ConfigObject} from "../ConfigObject";
4
3
  import {BPLabelledComponentState} from "./BPLabelledComponent";
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
3
2
  import {NumericInput, Slider} from "@blueprintjs/core";
4
3
  import {BPInputComponent} from "./BPInputComponent";
@@ -1,4 +1,4 @@
1
- import React, {ChangeEventHandler} from "react";
1
+ import {ChangeEventHandler} from "react";
2
2
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
3
3
  import {InputGroup} from "@blueprintjs/core";
4
4
  import {BPInputComponent} from "./BPInputComponent";
@@ -1,4 +1,4 @@
1
- import React, {ChangeEventHandler} from "react";
1
+ import {ChangeEventHandler} from "react";
2
2
  import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
3
3
  import {Switch} from "@blueprintjs/core";
4
4
  import {BPInputComponent} from "./BPInputComponent";
@@ -1,25 +1,19 @@
1
1
  import {BPComponent, BPComponentProps, BPComponentState, UiConfigRendererContextType} from "./BPComponent";
2
2
  import {Tree, TreeNodeInfo} from "@blueprintjs/core";
3
- import React from "react";
4
3
 
5
4
  export type BPTreeComponentState<T = {}> = BPComponentState & {
6
5
  nodes: TreeNodeInfo<T>[]
7
6
  }
8
7
 
9
- export function forEachTreeNode<T>(nodes: TreeNodeInfo<T>[] | undefined, callback: (node: TreeNodeInfo<T>) => void) {
10
- if (!nodes) return;
11
- for (const node of nodes) {
12
- callback(node);
13
- forEachTreeNode(node.childNodes, callback);
14
- }
15
- }
8
+ // https://github.com/palantir/blueprint/blob/develop/packages/docs-app/src/examples/core-examples/treeExample.tsx
9
+ type NodePath = number[];
16
10
 
17
11
  export abstract class BPTreeComponent<T = {}, TConfigVal = void> extends BPComponent<TConfigVal, BPTreeComponentState<T>> {
18
12
  constructor(props: BPComponentProps<TConfigVal>, context: UiConfigRendererContextType) {
19
13
  super(props, context, {nodes: []});
20
14
  }
21
15
 
22
- protected _infoMap = new Map<string, TreeNodeInfo<T>>()
16
+ protected _infoMap = new Map<string | number, TreeNodeInfo<T>>()
23
17
 
24
18
  protected _createNodeInfo(id: string, obj: T) {
25
19
  return {
@@ -27,6 +21,8 @@ export abstract class BPTreeComponent<T = {}, TConfigVal = void> extends BPCompo
27
21
  label: 'unnamed',
28
22
  nodeData: obj,
29
23
  childNodes: [],
24
+ isExpanded: false,
25
+ isSelected: false,
30
26
  }
31
27
  }
32
28
 
@@ -36,23 +32,48 @@ export abstract class BPTreeComponent<T = {}, TConfigVal = void> extends BPCompo
36
32
 
37
33
  protected abstract _getRootNodes(): T[]
38
34
 
39
- protected async _onNodeClick(_node: TreeNodeInfo<T>) {
35
+ protected async _onNodeClick(_id: string | number, _path: number[]) {
40
36
  }
41
37
 
42
- protected async _onNodeDoubleClick(_node: TreeNodeInfo<T>) {
38
+ protected async _onNodeDoubleClick(_id: string | number, _path: number[]) {
43
39
  }
44
40
 
45
- protected async _onNodeExpand(node: TreeNodeInfo<T>) {
46
- node.isExpanded = !node.isExpanded
47
- await this.setStatePromise(this.state)
41
+ protected _cloneNodes(callback?: (t:TreeNodeInfo<T>)=>void, state?: TreeNodeInfo<T>[]): TreeNodeInfo<T>[] {
42
+ return (state ?? this.state.nodes).map(n => {
43
+ let res: TreeNodeInfo<T> = {
44
+ ...n,
45
+ childNodes: n.childNodes ? this._cloneNodes(callback, n.childNodes) : undefined
46
+ }
47
+ if(callback) callback(res)
48
+ this._infoMap.set(n.id, res)
49
+ return res
50
+ })
51
+ }
52
+
53
+ protected _forEachNode<T>(nodes: TreeNodeInfo<T>[] | undefined, callback: (node: TreeNodeInfo<T>) => void) {
54
+ if (nodes === undefined) {
55
+ return nodes;
56
+ }
57
+ for (const node of nodes) {
58
+ callback(node);
59
+ this._forEachNode(node.childNodes, callback);
60
+ }
61
+ return nodes
62
+ }
63
+ protected _forNodeAtPath<T>(nodes: TreeNodeInfo<T>[], path: NodePath, callback: (node: TreeNodeInfo<T>) => void) {
64
+ callback(Tree.nodeFromPath(path, nodes));
48
65
  }
49
66
 
50
- protected async _onNodeCollapse(node: TreeNodeInfo<T>) {
67
+ protected async _onNodeExpandCollapse(_id: string | number, _path: number[]) {
68
+ const nodes = this._cloneNodes()
69
+ const node = this._infoMap.get(_id)
70
+ if (!node) return
51
71
  node.isExpanded = !node.isExpanded
52
- await this.setStatePromise(this.state)
72
+ // forNodeAtPath(nodes, _path, node => (node.isExpanded = !node.isExpanded));
73
+ await this.setStatePromise({...this.state, nodes})
53
74
  }
54
75
 
55
- protected async _onNodeContextMenu(_node: TreeNodeInfo<T>) {
76
+ protected async _onNodeContextMenu(_id: string | number, _path: number[]) {
56
77
  }
57
78
 
58
79
  protected buildData(data: TreeNodeInfo<T>[], obj: T, _?: any, _2?: any) {
@@ -72,22 +93,19 @@ export abstract class BPTreeComponent<T = {}, TConfigVal = void> extends BPCompo
72
93
  const nodes = children.map(c => {
73
94
  return this.buildData([], c)[0]
74
95
  }).filter(v => v)
75
- console.log('update', nodes, children)
76
96
  return super.getUpdatedState({
77
97
  nodes
78
98
  })
79
99
  }
80
100
 
81
101
  deselectAll() {
82
- forEachTreeNode(this.state.nodes, (n) => n.isSelected = false)
102
+ const nodes = this._cloneNodes(n => n.isSelected = false)
103
+ return this.setStatePromise({...this.state, nodes})
83
104
  }
84
105
 
85
- async setSelected(node?: TreeNodeInfo<T>) {
86
- this.deselectAll()
87
- if (node) {
88
- node.isSelected = true
89
- await this.setStatePromise(this.state)
90
- }
106
+ async setSelected(id?: string) {
107
+ const nodes = this._cloneNodes(n => n.isSelected = n.id === id)
108
+ return this.setStatePromise({...this.state, nodes})
91
109
  }
92
110
 
93
111
  componentDidMount() {
@@ -99,26 +117,25 @@ export abstract class BPTreeComponent<T = {}, TConfigVal = void> extends BPCompo
99
117
  }
100
118
 
101
119
  render() {
102
- console.log('render tree', this.state.nodes)
103
120
  const TreeT = Tree.ofType<T>()
104
121
  return !this.state.hidden ? (
105
122
  <TreeT
106
123
  contents={this.state.nodes}
107
124
  className="folderContent"
108
125
  onNodeExpand={(node, _path, _e) => {
109
- this._onNodeExpand(node)
126
+ this._onNodeExpandCollapse(node.id, _path)
110
127
  }}
111
128
  onNodeCollapse={(node, _path, _e) => {
112
- this._onNodeCollapse(node)
129
+ this._onNodeExpandCollapse(node.id, _path)
113
130
  }}
114
131
  onNodeClick={(node, _path, _e) => {
115
- this._onNodeClick(node)
132
+ this._onNodeClick(node.id, _path)
116
133
  }}
117
134
  onNodeDoubleClick={(node, _path, _e) => {
118
- this._onNodeDoubleClick(node)
135
+ this._onNodeDoubleClick(node.id, _path)
119
136
  }}
120
137
  onNodeContextMenu={(node, _path, _e) => {
121
- this._onNodeContextMenu(node)
138
+ this._onNodeContextMenu(node.id, _path)
122
139
  }}
123
140
  />
124
141
  ) : null
@@ -20,11 +20,11 @@ export class BPTreeFolderComponent extends BPTreeComponent<UiObjectConfig> {
20
20
  return (this.props.config.children || []).map(c => getOrCall(c) || {}).flat(2) as UiObjectConfig[]
21
21
  }
22
22
 
23
- protected async _onNodeClick(_node: TreeNodeInfo<UiObjectConfig>) {
23
+ protected async _onNodeClick(_id: string|number) {
24
24
  console.log("TODO: Tree node clicked")
25
25
  }
26
26
 
27
- protected async _onNodeDoubleClick(_node: TreeNodeInfo<UiObjectConfig>) {
27
+ protected async _onNodeDoubleClick(_id: string|number) {
28
28
  console.log("TODO: Tree node double clicked")
29
29
  }
30
30
 
@@ -0,0 +1,18 @@
1
+ import {OverlayToaster, Toaster} from "@blueprintjs/core";
2
+
3
+ // /** Singleton toaster instance. Create separate instances for different options. */
4
+ // export const AppToaster = OverlayToaster.create({
5
+ // // className: "recipe-toaster",
6
+ // position: Position.TOP,
7
+ // });
8
+
9
+ // hack for blueprint 5, remove in blueprint 6
10
+ export const AppToasterRef = {ref: null as Toaster | null}
11
+ export const AppToaster = ()=>AppToasterRef.ref ?? {show: ()=>{}, dismiss: ()=>{}} as any as Toaster
12
+
13
+ /**
14
+ * Use this component in the App.tsx or other root component to create the AppToaster singleton
15
+ */
16
+ export function AppToasterOverlay(){
17
+ return <OverlayToaster ref={(ref: Toaster|null) => (AppToasterRef.ref = ref)} />
18
+ }
@@ -0,0 +1,63 @@
1
+ import React from "react";
2
+ import {Button, Card, Panel, PanelStack2, Popover} from "@blueprintjs/core";
3
+ import {ConfigObject, ConfigProps} from "../ConfigObject";
4
+ import {UiObjectConfig} from 'uiconfig.js'
5
+ import {UiConfigRendererContext} from '../bpComponents/BPComponent'
6
+ import {Classes} from '@blueprintjs/core/src/common'
7
+ import {
8
+ defaultVisualStyle,
9
+ setupVisualStyle,
10
+ ThemeSettingsMenuComponent,
11
+ VisualStyleContext
12
+ } from './VisualStyleContext'
13
+
14
+ // import {ViewerAppContext} from "./ViewerAppComponent";
15
+
16
+ export function ConfigurationPanelComponent({config}: { config: UiObjectConfig<any, 'panel'> }) {
17
+ const renderer = React.useContext(UiConfigRendererContext)
18
+ const stackItem = React.useCallback(() => {
19
+ return {
20
+ props: {config: config},
21
+ renderPanel(props: ConfigProps) {
22
+ // console.log(props.config === config)
23
+ return (
24
+ <ul style={{listStyleType: "none", paddingLeft: "0", margin: "0"}}>
25
+ {/*{v && (<ConfigObject {...props}/>)}*/}
26
+ {config && (<ConfigObject {...props} isPanel={true}/>)}
27
+ </ul>
28
+ )
29
+ },
30
+ title: renderer.methods.getLabel(config)
31
+ } as Panel<{ config: UiObjectConfig }>
32
+ }, [config])
33
+ const [currentPanelStack, setCurrentPanelStack] = React.useState<Array<Panel<{ config: UiObjectConfig }>>>([stackItem()]);
34
+
35
+ React.useEffect(() => {
36
+ setCurrentPanelStack([stackItem()])
37
+ }, [stackItem, setCurrentPanelStack])
38
+
39
+ const style = setupVisualStyle()
40
+
41
+ return (
42
+ <VisualStyleContext.Provider value={{...defaultVisualStyle, ...style}}>
43
+ <Card id="bpInspectorCard" className={style.darkMode?Classes.DARK:""} style={{height: "100%", flexGrow: "1", position: "relative"}}>
44
+ <PanelStack2 className="inspectorPanelStack"
45
+ showPanelHeader={true}
46
+ renderActivePanelOnly={true}
47
+ onOpen={(p) => setCurrentPanelStack([...currentPanelStack, p] as any)}
48
+ onClose={() => setCurrentPanelStack(currentPanelStack.slice(0, -1))}
49
+ stack={currentPanelStack}/>
50
+ <div className={"bpPanelStackHeaderOverlay " + Classes.PANEL_STACK2_HEADER}>
51
+ <Popover targetProps={{style: {position: "absolute", right: "5px"}}}
52
+ minimal={true}
53
+ targetTagName={"div"}
54
+ content={
55
+ <ThemeSettingsMenuComponent/>
56
+ } placement="bottom">
57
+ <Button icon="cog" small minimal text="" />
58
+ </Popover>
59
+ </div>
60
+ </Card>
61
+ </VisualStyleContext.Provider>
62
+ )
63
+ }