uiconfig-blueprint 0.1.0-dev.1 → 0.1.0-dev.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.
- package/README.md +27 -1
- package/dist/ConfigObject.d.ts +2 -1
- package/dist/UiConfigRendererBlueprint.d.ts +6 -4
- package/dist/allPaths-Dhco1c7a.js +23 -0
- package/dist/{allPaths-EYaH0Usv.js.map → allPaths-Dhco1c7a.js.map} +1 -1
- package/dist/{allPathsLoader-UVZ15qNf.js → allPathsLoader-BNvrKJa2.js} +5 -5
- package/dist/{allPathsLoader-UVZ15qNf.js.map → allPathsLoader-BNvrKJa2.js.map} +1 -1
- package/dist/bpComponents/BPButtonComponent.d.ts +1 -0
- package/dist/bpComponents/BPColorInputComponent.d.ts +1 -0
- package/dist/bpComponents/BPComponent.d.ts +3 -1
- package/dist/bpComponents/BPContainerComponent.d.ts +1 -1
- package/dist/bpComponents/BPFileComponent.d.ts +8 -5
- package/dist/bpComponents/BPFolderComponent.d.ts +9 -1
- package/dist/bpComponents/BPInputComponent.d.ts +2 -1
- package/dist/bpComponents/BPNumberInputComponent.d.ts +3 -1
- package/dist/bpComponents/BPSliderInputComponent.d.ts +1 -0
- package/dist/bpComponents/BPTreeComponent.d.ts +20 -10
- package/dist/bpComponents/BPValueComponent.d.ts +4 -1
- package/dist/bpComponents/BPVectorInputComponent.d.ts +1 -0
- package/dist/bpComponents/GetNumberTransformFunctions.d.ts +4 -0
- package/dist/bpComponents/NumberUnits.d.ts +7 -0
- package/dist/components/DialogContext.d.ts +18 -10
- package/dist/components/DraggableIcon.d.ts +1 -0
- package/dist/components/ExtendedNumericInput.d.ts +13 -3
- package/dist/components/FileComponent.d.ts +3 -1
- package/dist/components/InspectorStackComponent.d.ts +2 -1
- package/dist/components/NumericInput.d.ts +79 -0
- package/dist/components/Tree2.d.ts +52 -0
- package/dist/components/TreeNode2.d.ts +43 -0
- package/dist/components/axesIcons.d.ts +7 -0
- package/dist/components/bpIconWrapper.d.ts +2 -2
- package/dist/components/iconMapping.d.ts +198 -0
- package/dist/components/loadingState.d.ts +4 -0
- package/dist/components/shapesIcons.d.ts +100 -0
- package/dist/components/treeTypes.d.ts +18 -0
- package/dist/index-B1k4Miq7.js +671 -0
- package/dist/index-B1k4Miq7.js.map +1 -0
- package/dist/index-BvGAMcRo.js +671 -0
- package/dist/index-BvGAMcRo.js.map +1 -0
- package/dist/index-GANXo7JZ.js +13560 -0
- package/dist/index-GANXo7JZ.js.map +1 -0
- package/dist/index.js +71 -36
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/lib.d.ts +4 -1
- package/dist/{splitPathsBySizeLoader-GhF5umHk.js → splitPathsBySizeLoader-DGIXBgyZ.js} +6 -6
- package/dist/{splitPathsBySizeLoader-GhF5umHk.js.map → splitPathsBySizeLoader-DGIXBgyZ.js.map} +1 -1
- package/docs/assets/highlight.css +45 -17
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/UI.html +10 -5
- package/docs/classes/UiConfigRendererBlueprint.html +10 -5
- package/docs/index.html +16 -5
- package/lib/css/renderer.css +189 -23
- package/lib/css/renderer.css.map +1 -1
- package/lib/esm/ConfigObject.d.ts +2 -1
- package/lib/esm/ConfigObject.js +15 -9
- package/lib/esm/ConfigObject.js.map +1 -1
- package/lib/esm/UiConfigRendererBlueprint.d.ts +6 -4
- package/lib/esm/UiConfigRendererBlueprint.js +30 -17
- package/lib/esm/UiConfigRendererBlueprint.js.map +1 -1
- package/lib/esm/bpComponents/BPButtonComponent.d.ts +1 -0
- package/lib/esm/bpComponents/BPButtonComponent.js +4 -2
- package/lib/esm/bpComponents/BPButtonComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPColorInputComponent.d.ts +1 -0
- package/lib/esm/bpComponents/BPColorInputComponent.js +4 -2
- package/lib/esm/bpComponents/BPColorInputComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPComponent.d.ts +3 -1
- package/lib/esm/bpComponents/BPComponent.js +15 -2
- package/lib/esm/bpComponents/BPComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPContainerComponent.d.ts +1 -1
- package/lib/esm/bpComponents/BPContainerComponent.js +12 -2
- package/lib/esm/bpComponents/BPContainerComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPDropdownInputComponent.js +7 -3
- package/lib/esm/bpComponents/BPDropdownInputComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPFileComponent.d.ts +8 -5
- package/lib/esm/bpComponents/BPFileComponent.js +18 -24
- package/lib/esm/bpComponents/BPFileComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPFolderComponent.d.ts +9 -1
- package/lib/esm/bpComponents/BPFolderComponent.js +55 -12
- package/lib/esm/bpComponents/BPFolderComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPInputComponent.d.ts +2 -1
- package/lib/esm/bpComponents/BPInputComponent.js +2 -1
- package/lib/esm/bpComponents/BPInputComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPNumberInputComponent.d.ts +3 -1
- package/lib/esm/bpComponents/BPNumberInputComponent.js +6 -1
- package/lib/esm/bpComponents/BPNumberInputComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPPanelComponent.js +1 -1
- package/lib/esm/bpComponents/BPPanelComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPSliderInputComponent.d.ts +1 -0
- package/lib/esm/bpComponents/BPSliderInputComponent.js +18 -6
- package/lib/esm/bpComponents/BPSliderInputComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPTextInputComponent.js +1 -1
- package/lib/esm/bpComponents/BPTextInputComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPToggleInputComponent.js +3 -2
- package/lib/esm/bpComponents/BPToggleInputComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPTreeComponent.d.ts +20 -10
- package/lib/esm/bpComponents/BPTreeComponent.js +120 -26
- package/lib/esm/bpComponents/BPTreeComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPTreeFolderComponent.js +4 -3
- package/lib/esm/bpComponents/BPTreeFolderComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPValueComponent.d.ts +4 -1
- package/lib/esm/bpComponents/BPValueComponent.js +19 -3
- package/lib/esm/bpComponents/BPValueComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPVectorInputComponent.d.ts +1 -0
- package/lib/esm/bpComponents/BPVectorInputComponent.js +14 -8
- package/lib/esm/bpComponents/BPVectorInputComponent.js.map +1 -1
- package/lib/esm/bpComponents/GetNumberTransformFunctions.d.ts +4 -0
- package/lib/esm/bpComponents/GetNumberTransformFunctions.js +14 -0
- package/lib/esm/bpComponents/GetNumberTransformFunctions.js.map +1 -0
- package/lib/esm/bpComponents/NumberUnits.d.ts +7 -0
- package/lib/esm/bpComponents/NumberUnits.js +101 -0
- package/lib/esm/bpComponents/NumberUnits.js.map +1 -0
- package/lib/esm/components/AppToaster.js.map +1 -1
- package/lib/esm/components/ConfigurationPanelComponent.js +6 -1
- package/lib/esm/components/ConfigurationPanelComponent.js.map +1 -1
- package/lib/esm/components/DialogContext.d.ts +18 -10
- package/lib/esm/components/DialogContext.js +52 -33
- package/lib/esm/components/DialogContext.js.map +1 -1
- package/lib/esm/components/DraggableIcon.d.ts +1 -0
- package/lib/esm/components/DraggableIcon.js +7 -4
- package/lib/esm/components/DraggableIcon.js.map +1 -1
- package/lib/esm/components/ExtendedNumericInput.d.ts +13 -3
- package/lib/esm/components/ExtendedNumericInput.js +62 -17
- package/lib/esm/components/ExtendedNumericInput.js.map +1 -1
- package/lib/esm/components/FileComponent.d.ts +3 -1
- package/lib/esm/components/FileComponent.js +19 -19
- package/lib/esm/components/FileComponent.js.map +1 -1
- package/lib/esm/components/InspectorStackComponent.d.ts +2 -1
- package/lib/esm/components/InspectorStackComponent.js +2 -2
- package/lib/esm/components/InspectorStackComponent.js.map +1 -1
- package/lib/esm/components/NumericInput.d.ts +79 -0
- package/lib/esm/components/NumericInput.js +311 -0
- package/lib/esm/components/NumericInput.js.map +1 -0
- package/lib/esm/components/Tree2.d.ts +52 -0
- package/lib/esm/components/Tree2.js +177 -0
- package/lib/esm/components/Tree2.js.map +1 -0
- package/lib/esm/components/TreeNode2.d.ts +43 -0
- package/lib/esm/components/TreeNode2.js +111 -0
- package/lib/esm/components/TreeNode2.js.map +1 -0
- package/lib/esm/components/VisualStyleContext.js +9 -3
- package/lib/esm/components/VisualStyleContext.js.map +1 -1
- package/lib/esm/components/axesIcons.d.ts +7 -0
- package/lib/esm/components/axesIcons.js +10 -0
- package/lib/esm/components/axesIcons.js.map +1 -0
- package/lib/esm/components/bpIconWrapper.d.ts +2 -2
- package/lib/esm/components/bpIconWrapper.js +2 -2
- package/lib/esm/components/bpIconWrapper.js.map +1 -1
- package/lib/esm/components/iconMapping.d.ts +198 -0
- package/lib/esm/components/iconMapping.js +202 -0
- package/lib/esm/components/iconMapping.js.map +1 -0
- package/lib/esm/components/loadingState.d.ts +4 -0
- package/lib/esm/components/loadingState.js +10 -0
- package/lib/esm/components/loadingState.js.map +1 -1
- package/lib/esm/components/shapesIcons.d.ts +100 -0
- package/lib/esm/components/shapesIcons.js +102 -0
- package/lib/esm/components/shapesIcons.js.map +1 -0
- package/lib/esm/components/treeTypes.d.ts +18 -0
- package/lib/esm/components/treeTypes.js +2 -0
- package/lib/esm/components/treeTypes.js.map +1 -0
- package/lib/esm/lib.d.ts +4 -1
- package/lib/esm/lib.js +4 -1
- package/lib/esm/lib.js.map +1 -1
- package/lib/esm/renderer.css.js +1 -0
- package/package.json +62 -13
- package/src/ConfigObject.tsx +25 -11
- package/src/UiConfigRendererBlueprint.tsx +31 -20
- package/src/bpComponents/BPButtonComponent.scss +5 -1
- package/src/bpComponents/BPButtonComponent.tsx +9 -2
- package/src/bpComponents/BPColorInputComponent.tsx +8 -2
- package/src/bpComponents/BPComponent.tsx +17 -4
- package/src/bpComponents/BPContainerComponent.tsx +13 -1
- package/src/bpComponents/BPDropdownInputComponent.tsx +8 -2
- package/src/bpComponents/BPFileComponent.tsx +55 -27
- package/src/bpComponents/BPFolderComponent.scss +20 -6
- package/src/bpComponents/BPFolderComponent.tsx +105 -16
- package/src/bpComponents/BPInputComponent.tsx +6 -2
- package/src/bpComponents/BPNumberInputComponent.tsx +14 -2
- package/src/bpComponents/BPPanelComponent.tsx +1 -1
- package/src/bpComponents/BPSliderInputComponent.tsx +40 -20
- package/src/bpComponents/BPTextInputComponent.tsx +1 -0
- package/src/bpComponents/BPToggleInputComponent.tsx +6 -3
- package/src/bpComponents/BPTreeComponent.tsx +125 -25
- package/src/bpComponents/BPTreeFolderComponent.tsx +3 -3
- package/src/bpComponents/BPValueComponent.tsx +31 -4
- package/src/bpComponents/BPVectorInputComponent.tsx +23 -20
- package/src/bpComponents/GetNumberTransformFunctions.tsx +14 -0
- package/src/bpComponents/NumberUnits.tsx +123 -0
- package/src/components/AppToaster.tsx +20 -0
- package/src/components/ConfigurationPanelComponent.tsx +14 -3
- package/src/components/DialogContext.tsx +125 -65
- package/src/components/DraggableIcon.tsx +6 -5
- package/src/components/ExtendedNumericInput.tsx +70 -18
- package/src/components/FileComponent.tsx +48 -25
- package/src/components/InspectorStackComponent.tsx +2 -2
- package/src/components/NumericInput.tsx +679 -0
- package/src/components/Tree2.tsx +344 -0
- package/src/components/TreeNode2.tsx +192 -0
- package/src/components/VisualStyleContext.tsx +10 -2
- package/src/components/axesIcons.tsx +116 -0
- package/src/components/bpIconWrapper.tsx +5 -4
- package/src/components/common.scss +17 -0
- package/src/components/iconMapping.ts +354 -0
- package/src/components/loadingState.tsx +9 -0
- package/src/components/shapesIcons.tsx +980 -0
- package/src/components/tree2.scss +69 -0
- package/src/components/treeTypes.ts +97 -0
- package/src/lib.ts +4 -1
- package/src/renderer.scss +79 -11
- package/tsconfig.json +1 -0
- package/dist/allPaths-EYaH0Usv.js +0 -23
- package/dist/index-0vU2D25U.js +0 -604
- package/dist/index-0vU2D25U.js.map +0 -1
- package/dist/index-JBvBPdy9.js +0 -604
- package/dist/index-JBvBPdy9.js.map +0 -1
- package/dist/index-OyL-zObJ.js +0 -12765
- package/dist/index-OyL-zObJ.js.map +0 -1
- package/lib/cjs/ConfigObject.d.ts +0 -18
- package/lib/cjs/ConfigObject.js +0 -82
- package/lib/cjs/ConfigObject.js.map +0 -1
- package/lib/cjs/UiConfigRendererBlueprint.d.ts +0 -13
- package/lib/cjs/UiConfigRendererBlueprint.js +0 -56
- package/lib/cjs/UiConfigRendererBlueprint.js.map +0 -1
- package/lib/cjs/bpComponents/BPButtonComponent.d.ts +0 -8
- package/lib/cjs/bpComponents/BPButtonComponent.js +0 -19
- package/lib/cjs/bpComponents/BPButtonComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPColorInputComponent.d.ts +0 -24
- package/lib/cjs/bpComponents/BPColorInputComponent.js +0 -127
- package/lib/cjs/bpComponents/BPColorInputComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPComponent.d.ts +0 -29
- package/lib/cjs/bpComponents/BPComponent.js +0 -59
- package/lib/cjs/bpComponents/BPComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPContainerComponent.d.ts +0 -21
- package/lib/cjs/bpComponents/BPContainerComponent.js +0 -54
- package/lib/cjs/bpComponents/BPContainerComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPDropdownInputComponent.d.ts +0 -15
- package/lib/cjs/bpComponents/BPDropdownInputComponent.js +0 -43
- package/lib/cjs/bpComponents/BPDropdownInputComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPFileComponent.d.ts +0 -25
- package/lib/cjs/bpComponents/BPFileComponent.js +0 -69
- package/lib/cjs/bpComponents/BPFileComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPFolderComponent.d.ts +0 -16
- package/lib/cjs/bpComponents/BPFolderComponent.js +0 -39
- package/lib/cjs/bpComponents/BPFolderComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPInputComponent.d.ts +0 -11
- package/lib/cjs/bpComponents/BPInputComponent.js +0 -34
- package/lib/cjs/bpComponents/BPInputComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPLabelledComponent.d.ts +0 -8
- package/lib/cjs/bpComponents/BPLabelledComponent.js +0 -14
- package/lib/cjs/bpComponents/BPLabelledComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPNumberInputComponent.d.ts +0 -10
- package/lib/cjs/bpComponents/BPNumberInputComponent.js +0 -40
- package/lib/cjs/bpComponents/BPNumberInputComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPPanelComponent.d.ts +0 -16
- package/lib/cjs/bpComponents/BPPanelComponent.js +0 -35
- package/lib/cjs/bpComponents/BPPanelComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPSliderInputComponent.d.ts +0 -14
- package/lib/cjs/bpComponents/BPSliderInputComponent.js +0 -41
- package/lib/cjs/bpComponents/BPSliderInputComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPTextInputComponent.d.ts +0 -7
- package/lib/cjs/bpComponents/BPTextInputComponent.js +0 -19
- package/lib/cjs/bpComponents/BPTextInputComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPToggleInputComponent.d.ts +0 -8
- package/lib/cjs/bpComponents/BPToggleInputComponent.js +0 -22
- package/lib/cjs/bpComponents/BPToggleInputComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPTreeComponent.d.ts +0 -36
- package/lib/cjs/bpComponents/BPTreeComponent.js +0 -131
- package/lib/cjs/bpComponents/BPTreeComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPTreeFolderComponent.d.ts +0 -10
- package/lib/cjs/bpComponents/BPTreeFolderComponent.js +0 -40
- package/lib/cjs/bpComponents/BPTreeFolderComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPValueComponent.d.ts +0 -16
- package/lib/cjs/bpComponents/BPValueComponent.js +0 -46
- package/lib/cjs/bpComponents/BPValueComponent.js.map +0 -1
- package/lib/cjs/bpComponents/BPVectorInputComponent.d.ts +0 -19
- package/lib/cjs/bpComponents/BPVectorInputComponent.js +0 -110
- package/lib/cjs/bpComponents/BPVectorInputComponent.js.map +0 -1
- package/lib/cjs/components/ConfigurationPanelComponent.d.ts +0 -4
- package/lib/cjs/components/ConfigurationPanelComponent.js +0 -30
- package/lib/cjs/components/ConfigurationPanelComponent.js.map +0 -1
- package/lib/cjs/components/DialogContext.d.ts +0 -48
- package/lib/cjs/components/DialogContext.js +0 -79
- package/lib/cjs/components/DialogContext.js.map +0 -1
- package/lib/cjs/components/DraggableIcon.d.ts +0 -19
- package/lib/cjs/components/DraggableIcon.js +0 -70
- package/lib/cjs/components/DraggableIcon.js.map +0 -1
- package/lib/cjs/components/ExtendedNumericInput.d.ts +0 -25
- package/lib/cjs/components/ExtendedNumericInput.js +0 -174
- package/lib/cjs/components/ExtendedNumericInput.js.map +0 -1
- package/lib/cjs/components/FileComponent.d.ts +0 -7
- package/lib/cjs/components/FileComponent.js +0 -49
- package/lib/cjs/components/FileComponent.js.map +0 -1
- package/lib/cjs/components/FormGroupComponent.d.ts +0 -6
- package/lib/cjs/components/FormGroupComponent.js +0 -16
- package/lib/cjs/components/FormGroupComponent.js.map +0 -1
- package/lib/cjs/components/InspectorStackComponent.d.ts +0 -4
- package/lib/cjs/components/InspectorStackComponent.js +0 -27
- package/lib/cjs/components/InspectorStackComponent.js.map +0 -1
- package/lib/cjs/components/VisualStyleContext.d.ts +0 -119
- package/lib/cjs/components/VisualStyleContext.js +0 -60
- package/lib/cjs/components/VisualStyleContext.js.map +0 -1
- package/lib/cjs/components/bpIconWrapper.d.ts +0 -2
- package/lib/cjs/components/bpIconWrapper.js +0 -9
- package/lib/cjs/components/bpIconWrapper.js.map +0 -1
- package/lib/cjs/components/loadingState.d.ts +0 -4
- package/lib/cjs/components/loadingState.js +0 -16
- package/lib/cjs/components/loadingState.js.map +0 -1
- package/lib/cjs/components/variableIcons.d.ts +0 -40
- package/lib/cjs/components/variableIcons.js +0 -46
- package/lib/cjs/components/variableIcons.js.map +0 -1
- package/lib/cjs/contexts.d.ts +0 -1
- package/lib/cjs/contexts.js +0 -3
- package/lib/cjs/contexts.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -4
- package/lib/cjs/index.js +0 -9
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/lib.d.ts +0 -32
- package/lib/cjs/lib.js +0 -49
- package/lib/cjs/lib.js.map +0 -1
- package/lib/cjs/threejs.d.ts +0 -2
- package/lib/cjs/threejs.js +0 -3
- package/lib/cjs/threejs.js.map +0 -1
- package/lib/esnext/ConfigObject.d.ts +0 -18
- package/lib/esnext/ConfigObject.js +0 -75
- package/lib/esnext/ConfigObject.js.map +0 -1
- package/lib/esnext/UiConfigRendererBlueprint.d.ts +0 -13
- package/lib/esnext/UiConfigRendererBlueprint.js +0 -52
- package/lib/esnext/UiConfigRendererBlueprint.js.map +0 -1
- package/lib/esnext/bpComponents/BPButtonComponent.d.ts +0 -8
- package/lib/esnext/bpComponents/BPButtonComponent.js +0 -15
- package/lib/esnext/bpComponents/BPButtonComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPColorInputComponent.d.ts +0 -24
- package/lib/esnext/bpComponents/BPColorInputComponent.js +0 -110
- package/lib/esnext/bpComponents/BPColorInputComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPComponent.d.ts +0 -29
- package/lib/esnext/bpComponents/BPComponent.js +0 -46
- package/lib/esnext/bpComponents/BPComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPContainerComponent.d.ts +0 -21
- package/lib/esnext/bpComponents/BPContainerComponent.js +0 -51
- package/lib/esnext/bpComponents/BPContainerComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPDropdownInputComponent.d.ts +0 -15
- package/lib/esnext/bpComponents/BPDropdownInputComponent.js +0 -40
- package/lib/esnext/bpComponents/BPDropdownInputComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPFileComponent.d.ts +0 -25
- package/lib/esnext/bpComponents/BPFileComponent.js +0 -52
- package/lib/esnext/bpComponents/BPFileComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPFolderComponent.d.ts +0 -16
- package/lib/esnext/bpComponents/BPFolderComponent.js +0 -30
- package/lib/esnext/bpComponents/BPFolderComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPInputComponent.d.ts +0 -11
- package/lib/esnext/bpComponents/BPInputComponent.js +0 -19
- package/lib/esnext/bpComponents/BPInputComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPLabelledComponent.d.ts +0 -8
- package/lib/esnext/bpComponents/BPLabelledComponent.js +0 -13
- package/lib/esnext/bpComponents/BPLabelledComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPNumberInputComponent.d.ts +0 -10
- package/lib/esnext/bpComponents/BPNumberInputComponent.js +0 -21
- package/lib/esnext/bpComponents/BPNumberInputComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPPanelComponent.d.ts +0 -16
- package/lib/esnext/bpComponents/BPPanelComponent.js +0 -31
- package/lib/esnext/bpComponents/BPPanelComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPSliderInputComponent.d.ts +0 -14
- package/lib/esnext/bpComponents/BPSliderInputComponent.js +0 -39
- package/lib/esnext/bpComponents/BPSliderInputComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPTextInputComponent.d.ts +0 -7
- package/lib/esnext/bpComponents/BPTextInputComponent.js +0 -15
- package/lib/esnext/bpComponents/BPTextInputComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPToggleInputComponent.d.ts +0 -8
- package/lib/esnext/bpComponents/BPToggleInputComponent.js +0 -18
- package/lib/esnext/bpComponents/BPToggleInputComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPTreeComponent.d.ts +0 -36
- package/lib/esnext/bpComponents/BPTreeComponent.js +0 -111
- package/lib/esnext/bpComponents/BPTreeComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPTreeFolderComponent.d.ts +0 -10
- package/lib/esnext/bpComponents/BPTreeFolderComponent.js +0 -23
- package/lib/esnext/bpComponents/BPTreeFolderComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPValueComponent.d.ts +0 -16
- package/lib/esnext/bpComponents/BPValueComponent.js +0 -29
- package/lib/esnext/bpComponents/BPValueComponent.js.map +0 -1
- package/lib/esnext/bpComponents/BPVectorInputComponent.d.ts +0 -19
- package/lib/esnext/bpComponents/BPVectorInputComponent.js +0 -93
- package/lib/esnext/bpComponents/BPVectorInputComponent.js.map +0 -1
- package/lib/esnext/components/ConfigurationPanelComponent.d.ts +0 -4
- package/lib/esnext/components/ConfigurationPanelComponent.js +0 -26
- package/lib/esnext/components/ConfigurationPanelComponent.js.map +0 -1
- package/lib/esnext/components/DialogContext.d.ts +0 -48
- package/lib/esnext/components/DialogContext.js +0 -55
- package/lib/esnext/components/DialogContext.js.map +0 -1
- package/lib/esnext/components/DraggableIcon.d.ts +0 -19
- package/lib/esnext/components/DraggableIcon.js +0 -62
- package/lib/esnext/components/DraggableIcon.js.map +0 -1
- package/lib/esnext/components/ExtendedNumericInput.d.ts +0 -25
- package/lib/esnext/components/ExtendedNumericInput.js +0 -151
- package/lib/esnext/components/ExtendedNumericInput.js.map +0 -1
- package/lib/esnext/components/FileComponent.d.ts +0 -7
- package/lib/esnext/components/FileComponent.js +0 -42
- package/lib/esnext/components/FileComponent.js.map +0 -1
- package/lib/esnext/components/FormGroupComponent.d.ts +0 -6
- package/lib/esnext/components/FormGroupComponent.js +0 -11
- package/lib/esnext/components/FormGroupComponent.js.map +0 -1
- package/lib/esnext/components/InspectorStackComponent.d.ts +0 -4
- package/lib/esnext/components/InspectorStackComponent.js +0 -23
- package/lib/esnext/components/InspectorStackComponent.js.map +0 -1
- package/lib/esnext/components/VisualStyleContext.d.ts +0 -119
- package/lib/esnext/components/VisualStyleContext.js +0 -53
- package/lib/esnext/components/VisualStyleContext.js.map +0 -1
- package/lib/esnext/components/bpIconWrapper.d.ts +0 -2
- package/lib/esnext/components/bpIconWrapper.js +0 -5
- package/lib/esnext/components/bpIconWrapper.js.map +0 -1
- package/lib/esnext/components/loadingState.d.ts +0 -4
- package/lib/esnext/components/loadingState.js +0 -12
- package/lib/esnext/components/loadingState.js.map +0 -1
- package/lib/esnext/components/variableIcons.d.ts +0 -40
- package/lib/esnext/components/variableIcons.js +0 -43
- package/lib/esnext/components/variableIcons.js.map +0 -1
- package/lib/esnext/contexts.d.ts +0 -1
- package/lib/esnext/contexts.js +0 -2
- package/lib/esnext/contexts.js.map +0 -1
- package/lib/esnext/index.d.ts +0 -4
- package/lib/esnext/index.js +0 -5
- package/lib/esnext/index.js.map +0 -1
- package/lib/esnext/lib.d.ts +0 -32
- package/lib/esnext/lib.js +0 -33
- package/lib/esnext/lib.js.map +0 -1
- package/lib/esnext/threejs.d.ts +0 -2
- package/lib/esnext/threejs.js +0 -2
- package/lib/esnext/threejs.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,18 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uiconfig-blueprint",
|
|
3
3
|
"name:umd": "bpui",
|
|
4
|
-
"version": "0.1.0-dev.
|
|
4
|
+
"version": "0.1.0-dev.11",
|
|
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
|
+
"browser": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
8
10
|
"source": "src/index.ts",
|
|
9
11
|
"sideEffects": false,
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.mjs",
|
|
16
|
+
"require": "./dist/index.js",
|
|
17
|
+
"browser": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./lib/esm": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./lib/esm/index.js",
|
|
22
|
+
"require": "./dist/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./lib/esm/*": {
|
|
25
|
+
"types": "./lib/esm/*.d.ts",
|
|
26
|
+
"import": "./lib/esm/*.js"
|
|
27
|
+
},
|
|
28
|
+
"./lib/css/*": {
|
|
29
|
+
"import": "./lib/css/*.css",
|
|
30
|
+
"require": "./lib/css/*.css"
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json"
|
|
33
|
+
},
|
|
10
34
|
"files": [
|
|
11
35
|
"lib",
|
|
12
36
|
"dist",
|
|
13
37
|
"src",
|
|
14
38
|
"docs",
|
|
15
|
-
"tsconfig.json"
|
|
39
|
+
"tsconfig.json",
|
|
40
|
+
"README.md"
|
|
16
41
|
],
|
|
17
42
|
"repository": {
|
|
18
43
|
"type": "git",
|
|
@@ -35,22 +60,48 @@
|
|
|
35
60
|
},
|
|
36
61
|
"homepage": "https://github.com/repalash/uiconfig-blueprint#readme",
|
|
37
62
|
"dependencies": {
|
|
38
|
-
"
|
|
63
|
+
"ts-browser-helpers": "^0.18.0",
|
|
64
|
+
"uiconfig.js": "^0.1.6",
|
|
65
|
+
"@blueprintjs/icons": "^5.11.0",
|
|
66
|
+
"@blueprintjs/select": "^5.2.2",
|
|
67
|
+
"blueprint-styler": "^5.0.2",
|
|
68
|
+
"react-colorful": "^5.6.1"
|
|
69
|
+
},
|
|
70
|
+
"peerDependencies": {
|
|
71
|
+
"@blueprintjs/core": "^5.11.0",
|
|
39
72
|
"@types/three": "^0.152.1",
|
|
40
|
-
"ts-browser-helpers": "^0.8.0",
|
|
41
73
|
"@types/webxr": "^0.5.10",
|
|
42
|
-
"uiconfig.js": "^0.0.9",
|
|
43
|
-
"@blueprintjs/icons": "^5.5.0",
|
|
44
|
-
"@blueprintjs/select": "^5.0.20",
|
|
45
|
-
"blueprint-styler": "^5.0.2",
|
|
46
74
|
"@types/react": "^18.0.28",
|
|
47
75
|
"@types/react-dom": "^18.0.11",
|
|
48
76
|
"react": "^18.2.0",
|
|
49
77
|
"react-dom": "^18.2.0"
|
|
50
78
|
},
|
|
79
|
+
"peerDependenciesMeta": {
|
|
80
|
+
"@blueprintjs/core": {
|
|
81
|
+
"optional": true
|
|
82
|
+
},
|
|
83
|
+
"@types/three": {
|
|
84
|
+
"optional": true
|
|
85
|
+
},
|
|
86
|
+
"@types/webxr": {
|
|
87
|
+
"optional": true
|
|
88
|
+
},
|
|
89
|
+
"@types/react": {
|
|
90
|
+
"optional": true
|
|
91
|
+
},
|
|
92
|
+
"@types/react-dom": {
|
|
93
|
+
"optional": true
|
|
94
|
+
},
|
|
95
|
+
"react": {
|
|
96
|
+
"optional": true
|
|
97
|
+
},
|
|
98
|
+
"react-dom": {
|
|
99
|
+
"optional": true
|
|
100
|
+
}
|
|
101
|
+
},
|
|
51
102
|
"//": {
|
|
52
|
-
"
|
|
53
|
-
"uiconfig.js": "^0.0.
|
|
103
|
+
"devDependencies": {
|
|
104
|
+
"uiconfig.js": "^0.0.12"
|
|
54
105
|
},
|
|
55
106
|
"local_dependencies": {
|
|
56
107
|
"uiconfig.js": "file:./../uiconfig/"
|
|
@@ -63,7 +114,5 @@
|
|
|
63
114
|
"browserslist": [
|
|
64
115
|
"defaults"
|
|
65
116
|
],
|
|
66
|
-
"type": "module"
|
|
67
|
-
"browser": "dist/index.js",
|
|
68
|
-
"types": "dist/index.d.ts"
|
|
117
|
+
"type": "module"
|
|
69
118
|
}
|
package/src/ConfigObject.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {Class, PartialRecord} from "ts-browser-helpers";
|
|
2
|
+
import {Class, getOrCall, PartialRecord} from "ts-browser-helpers";
|
|
3
3
|
import {BPComponentProps, BPComponentState, UiConfigRendererContext} from "./bpComponents/BPComponent";
|
|
4
4
|
import {BPFolderComponent, FolderHeadCard} from "./bpComponents/BPFolderComponent";
|
|
5
5
|
import {BPTextInputComponent} from "./bpComponents/BPTextInputComponent";
|
|
@@ -13,7 +13,6 @@ import {BPPanelComponent} from "./bpComponents/BPPanelComponent";
|
|
|
13
13
|
import {BPTreeFolderComponent} from "./bpComponents/BPTreeFolderComponent";
|
|
14
14
|
import {UiObjectConfig} from 'uiconfig.js'
|
|
15
15
|
import {BPColorInputComponent} from './bpComponents/BPColorInputComponent'
|
|
16
|
-
import {BPFileComponent} from "./bpComponents/BPFileComponent";
|
|
17
16
|
import {BPVectorInputComponent} from './bpComponents/BPVectorInputComponent'
|
|
18
17
|
// import {BPVectorInputComponent} from "./bpComponents/BPVectorInputComponent";
|
|
19
18
|
// import {BPFileComponent} from "./bpComponents/BPFileComponent";
|
|
@@ -21,13 +20,14 @@ import {BPVectorInputComponent} from './bpComponents/BPVectorInputComponent'
|
|
|
21
20
|
// import {BPHierarchyComponent} from "./bpComponents/BPHierarchyComponent";
|
|
22
21
|
|
|
23
22
|
export type UiConfigTypes = 'input' | 'button' | 'folder' | 'checkbox' | 'toggle' |
|
|
24
|
-
'dropdown' | 'slider' | 'color' | 'image' | 'number' | 'panel' | 'tree' | 'hierarchy' |
|
|
25
|
-
'vec' | 'vec2' | 'vec3' | 'vec4' | 'monitor'
|
|
23
|
+
'dropdown' | 'slider' | 'color' | 'image' | 'number' | 'panel' | 'tree' | 'hierarchy' | 'materials' | 'textures' |
|
|
24
|
+
'vec' | 'vec2' | 'vec3' | 'vec4' | 'monitor' | 'vector'
|
|
26
25
|
|
|
27
26
|
export interface ConfigProps extends PanelActions {
|
|
28
27
|
config: UiObjectConfig;
|
|
29
28
|
isPanel?: boolean,
|
|
30
29
|
level?: number,
|
|
30
|
+
className?: string
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export const ConfigObjectGenerators: PartialRecord<UiConfigTypes, Class<React.Component<BPComponentProps<any>, BPComponentState>>> = {
|
|
@@ -44,11 +44,12 @@ export const ConfigObjectGenerators: PartialRecord<UiConfigTypes, Class<React.Co
|
|
|
44
44
|
slider: BPSliderInputComponent,
|
|
45
45
|
tree: BPTreeFolderComponent,
|
|
46
46
|
color: BPColorInputComponent,
|
|
47
|
-
image: BPFileComponent,
|
|
47
|
+
// image: BPFileComponent,
|
|
48
48
|
vec: BPVectorInputComponent,
|
|
49
49
|
vec2: BPVectorInputComponent,
|
|
50
50
|
vec3: BPVectorInputComponent,
|
|
51
51
|
vec4: BPVectorInputComponent,
|
|
52
|
+
vector: BPVectorInputComponent,
|
|
52
53
|
// hierarchy: BPHierarchyComponent,
|
|
53
54
|
}
|
|
54
55
|
|
|
@@ -58,10 +59,14 @@ export class ConfigObject extends React.Component<ConfigProps, {}> {
|
|
|
58
59
|
state = {}
|
|
59
60
|
|
|
60
61
|
render() {
|
|
62
|
+
if (!this.props.config || !this.props.config.type) return (<div key={this.props.config.uuid} className={this.props.className}></div>)
|
|
61
63
|
this.context.methods.initUiConfig(this.props.config)
|
|
62
|
-
|
|
64
|
+
|
|
65
|
+
const order = this.props.config.order ? getOrCall(this.props.config.order, this.props.config) ?? undefined : undefined
|
|
66
|
+
const orderStyle = {order: order && typeof order === 'string' ? parseInt(order): order}
|
|
67
|
+
|
|
63
68
|
let type = this.props.config.type as any as UiConfigTypes
|
|
64
|
-
const val = this.context.methods.
|
|
69
|
+
const val = this.context.methods.getRawValue(this.props.config)
|
|
65
70
|
|
|
66
71
|
// hacks
|
|
67
72
|
if (type === 'input' && typeof val === 'number') this.props.config.type = type = 'number'
|
|
@@ -75,9 +80,15 @@ export class ConfigObject extends React.Component<ConfigProps, {}> {
|
|
|
75
80
|
let BPComp = ConfigObjectGenerators[type]
|
|
76
81
|
if (type === 'panel' && !this.props.isPanel) {
|
|
77
82
|
const label = this.context.methods.getLabel(this.props.config)
|
|
83
|
+
const children = this.context.methods.getChildren(this.props.config)
|
|
84
|
+
const enabledToggle = children[0] && this.context.methods.getLabel(children[0]).toLowerCase() === 'enabled' ? children[0] : undefined
|
|
85
|
+
enabledToggle && (enabledToggle.hidden = true)
|
|
78
86
|
return (
|
|
79
|
-
<div key={this.props.config.uuid}>
|
|
80
|
-
<FolderHeadCard
|
|
87
|
+
<div key={this.props.config.uuid} style={orderStyle} className={this.props.className}>
|
|
88
|
+
<FolderHeadCard
|
|
89
|
+
enabled={enabledToggle ? this.context.methods.getRawValue(enabledToggle) : undefined}
|
|
90
|
+
onEnabledChange={(e) => enabledToggle && this.context.methods.setValue(enabledToggle, e.target.checked, {}).then(() => this.setState(this.state))}
|
|
91
|
+
level={0} label={label} minimal={false} open={false} onClick={() => {
|
|
81
92
|
this.props.openPanel<{ config: UiObjectConfig<any> }>({
|
|
82
93
|
props: {config: this.props.config},
|
|
83
94
|
title: label,
|
|
@@ -92,9 +103,12 @@ export class ConfigObject extends React.Component<ConfigProps, {}> {
|
|
|
92
103
|
)
|
|
93
104
|
}
|
|
94
105
|
if (BPComp) {
|
|
95
|
-
return (<div key={this.props.config.uuid}><BPComp {...{...this.props, isPanel: undefined}} /></div>)
|
|
106
|
+
return (<div key={this.props.config.uuid} style={orderStyle} className={this.props.className}><BPComp {...{...this.props, isPanel: undefined}} /></div>)
|
|
96
107
|
}
|
|
97
|
-
return (<div key={this.props.config.uuid}
|
|
108
|
+
return (<div key={this.props.config.uuid} style={orderStyle} className={this.props.className}>
|
|
109
|
+
{/*Unknown type: {this.props.config.type}*/}
|
|
110
|
+
</div>)
|
|
111
|
+
// return null
|
|
98
112
|
|
|
99
113
|
// let uiRef: React.FC | BPUiRef<any> | null = this.props.uiConfig.uiRef
|
|
100
114
|
// if (uiRef) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {createDiv, createStyles, css} from "ts-browser-helpers";
|
|
2
|
-
import {
|
|
1
|
+
import {createDiv, createStyles, css, JSUndoManager} from "ts-browser-helpers";
|
|
2
|
+
import {UiConfigRenderer, UiObjectConfig} from "uiconfig.js";
|
|
3
3
|
import React from 'react'
|
|
4
4
|
import {createRoot, Root} from 'react-dom/client'
|
|
5
5
|
import {ConfigurationPanelComponent} from './components/ConfigurationPanelComponent'
|
|
@@ -9,32 +9,43 @@ import rendererCss from './renderer.scss?inline' // for rollup build remove ?inl
|
|
|
9
9
|
import {FocusStyleManager} from '@blueprintjs/core'
|
|
10
10
|
import {THREE} from "./threejs";
|
|
11
11
|
|
|
12
|
-
export class UiConfigRendererBlueprint extends
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
super(container, autoPostFrame);
|
|
12
|
+
export class UiConfigRendererBlueprint extends UiConfigRenderer {
|
|
13
|
+
constructor(container: HTMLElement = document.body, {autoPostFrame = true} = {}, undoManager?: JSUndoManager|false) {
|
|
14
|
+
super(container, autoPostFrame, undefined, undoManager);
|
|
16
15
|
// this._root.expanded = expanded
|
|
17
|
-
|
|
18
16
|
}
|
|
19
17
|
|
|
18
|
+
protected _root: Root
|
|
19
|
+
|
|
20
20
|
protected _createUiContainer(): HTMLDivElement {
|
|
21
21
|
FocusStyleManager.onlyShowFocusOnTabs();
|
|
22
22
|
|
|
23
23
|
const container = createDiv({id: 'blueprintUiContainer', addToBody: false})
|
|
24
24
|
createStyles(css`
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
@media only screen and (min-width: 1500px) {
|
|
29
|
-
:root{
|
|
30
|
-
--blueprint-ui-container-width: 400px;
|
|
25
|
+
:root {
|
|
26
|
+
--blueprint-ui-container-width: 300px;
|
|
31
27
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
|
|
29
|
+
@media only screen and (min-width: 1500px) {
|
|
30
|
+
:root {
|
|
31
|
+
--blueprint-ui-container-width: 400px;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
@media only screen and (min-width: 2500px) {
|
|
35
|
+
:root {
|
|
36
|
+
--blueprint-ui-container-width: 500px;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@media only screen and (min-width: 600px) {
|
|
41
|
+
#blueprintUiContainer {
|
|
42
|
+
min-width: var(--blueprint-ui-container-width);
|
|
43
|
+
min-height: 200px;
|
|
44
|
+
max-height: 100%;
|
|
45
|
+
max-width: 100%;
|
|
46
|
+
resize: both;
|
|
47
|
+
}
|
|
36
48
|
}
|
|
37
|
-
}
|
|
38
49
|
`)
|
|
39
50
|
createStyles(rendererCss)
|
|
40
51
|
|
|
@@ -65,8 +76,8 @@ export class UiConfigRendererBlueprint extends UiConfigRendererBase<Root> {
|
|
|
65
76
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
66
77
|
THREE: THREE|undefined = (window as any).THREE
|
|
67
78
|
|
|
68
|
-
|
|
69
|
-
|
|
79
|
+
unmount() {
|
|
80
|
+
this._root?.unmount()
|
|
70
81
|
}
|
|
71
82
|
|
|
72
83
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {BPComponentProps, UiConfigRendererContextType} from "./BPComponent";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import {BPLabelledComponent, BPLabelledComponentState} from "./BPLabelledComponent";
|
|
4
|
-
import {Button} from "@blueprintjs/core";
|
|
4
|
+
import {Button, Intent} from "@blueprintjs/core";
|
|
5
5
|
|
|
6
|
+
// @ts-ignore
|
|
6
7
|
export class BPButtonComponent extends BPLabelledComponent<()=>void, BPLabelledComponentState> {
|
|
7
8
|
constructor(props: BPComponentProps<()=>void>, context: UiConfigRendererContextType) {
|
|
8
9
|
super(props, context, {label: 'Button'});
|
|
@@ -13,12 +14,18 @@ export class BPButtonComponent extends BPLabelledComponent<()=>void, BPLabelledC
|
|
|
13
14
|
this.context.methods.clickButton(this.props.config, {args: [event]})
|
|
14
15
|
}
|
|
15
16
|
|
|
17
|
+
protected flexBasis = "50%"
|
|
18
|
+
|
|
16
19
|
render() {
|
|
17
20
|
return !this.state.hidden ? (
|
|
18
|
-
<div className="bpButtonComponent xPaddedContent"
|
|
21
|
+
<div className="bpButtonComponent xPaddedContent"
|
|
22
|
+
style={{flexBasis: this.state.baseWidth ?? this.flexBasis}}
|
|
23
|
+
>
|
|
19
24
|
<Button className="bpButton"
|
|
20
25
|
disabled={this.state.disabled}
|
|
26
|
+
intent={Intent.PRIMARY}
|
|
21
27
|
// small={true}
|
|
28
|
+
fill={true}
|
|
22
29
|
text={this.state.label} style={{}} onClick={this.onClick}/>
|
|
23
30
|
</div>
|
|
24
31
|
) : null
|
|
@@ -20,7 +20,7 @@ export class BPColorInputComponent extends BPValueComponent<ColorRepresentation,
|
|
|
20
20
|
constructor(props: BPComponentProps<ColorRepresentation>, context: UiConfigRendererContextType) {
|
|
21
21
|
super(props, context, {
|
|
22
22
|
label: 'Color',
|
|
23
|
-
value:
|
|
23
|
+
value: '#000000',
|
|
24
24
|
mode: 'number',
|
|
25
25
|
srgbConvert: false,
|
|
26
26
|
});
|
|
@@ -95,11 +95,17 @@ export class BPColorInputComponent extends BPValueComponent<ColorRepresentation,
|
|
|
95
95
|
document.addEventListener('mouseup', this._mouseUp)
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
protected flexBasis = "100%"
|
|
99
|
+
|
|
98
100
|
render() {
|
|
99
101
|
return !this.state.hidden ? (
|
|
100
|
-
<FormGroupComponent
|
|
102
|
+
<FormGroupComponent
|
|
103
|
+
label={this.state.label}
|
|
104
|
+
flexBasis={this.state.baseWidth ?? this.flexBasis}
|
|
105
|
+
>
|
|
101
106
|
<InputGroup inputRef={this._inputRef}
|
|
102
107
|
disabled={this.state.disabled} readOnly={this.state.readOnly}
|
|
108
|
+
fill={true}
|
|
103
109
|
leftElement={(
|
|
104
110
|
<Popover
|
|
105
111
|
popoverClassName={'color-picker-popover'}
|
|
@@ -12,6 +12,7 @@ export type BPComponentState = {
|
|
|
12
12
|
hidden?: boolean
|
|
13
13
|
disabled?: boolean
|
|
14
14
|
readOnly?: boolean // same as disabled(for most inputs)
|
|
15
|
+
baseWidth?: string // for flexBasis, can be a number or a string like '50%' or '100px'
|
|
15
16
|
}
|
|
16
17
|
export interface UiConfigRendererBaseBp extends UiConfigRendererBase{
|
|
17
18
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -20,7 +21,7 @@ export interface UiConfigRendererBaseBp extends UiConfigRendererBase{
|
|
|
20
21
|
|
|
21
22
|
export const UiConfigRendererContext = createContext<UiConfigRendererBaseBp>(null as any)
|
|
22
23
|
export type UiConfigRendererContextType = React.ContextType<typeof UiConfigRendererContext>
|
|
23
|
-
export abstract class BPComponent<TValue, TState, TProps extends BPComponentProps<TValue> = BPComponentProps<TValue>> extends React.Component<TProps, TState> {
|
|
24
|
+
export abstract class BPComponent<TValue, TState extends BPComponentState, TProps extends BPComponentProps<TValue> = BPComponentProps<TValue>> extends React.Component<TProps, TState> {
|
|
24
25
|
static contextType = UiConfigRendererContext
|
|
25
26
|
declare context: UiConfigRendererContextType
|
|
26
27
|
|
|
@@ -28,6 +29,7 @@ export abstract class BPComponent<TValue, TState, TProps extends BPComponentProp
|
|
|
28
29
|
super(props, context);
|
|
29
30
|
this.state = this.getUpdatedState(state)
|
|
30
31
|
// this.state = state
|
|
32
|
+
this.setState = this.setState.bind(this)
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
/**
|
|
@@ -38,16 +40,27 @@ export abstract class BPComponent<TValue, TState, TProps extends BPComponentProp
|
|
|
38
40
|
return new Promise<void>(resolve => this.setState(state, resolve))
|
|
39
41
|
}
|
|
40
42
|
|
|
43
|
+
keyVersion = 0
|
|
44
|
+
|
|
41
45
|
/**
|
|
42
46
|
* This is called to get the updated state from the config, copy any values/properties from the config to the state here
|
|
43
47
|
* @param state - the current state
|
|
44
48
|
*/
|
|
45
49
|
getUpdatedState(state: TState): TState{
|
|
50
|
+
const hidden = getOrCall(this.props.config.hidden) ?? false
|
|
51
|
+
const disabled = getOrCall(this.props.config.disabled) ?? false
|
|
52
|
+
const readOnly = getOrCall(this.props.config.readOnly) ?? false
|
|
53
|
+
const baseWidth = getOrCall(this.props.config.baseWidth) ?? undefined
|
|
54
|
+
if(hidden !== state.hidden
|
|
55
|
+
|| disabled !== state.disabled
|
|
56
|
+
|| readOnly !== state.readOnly
|
|
57
|
+
) this.keyVersion++
|
|
46
58
|
return {
|
|
47
59
|
...state,
|
|
48
|
-
hidden
|
|
49
|
-
disabled
|
|
50
|
-
readOnly
|
|
60
|
+
hidden,
|
|
61
|
+
disabled,
|
|
62
|
+
readOnly,
|
|
63
|
+
baseWidth
|
|
51
64
|
}
|
|
52
65
|
}
|
|
53
66
|
|
|
@@ -16,6 +16,7 @@ export class BPContainerComponent<TState extends BPContainerComponentState=BPCon
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
protected _registerChild(child: UiObjectConfig) {
|
|
19
|
+
// if(Object.keys(child).length)
|
|
19
20
|
child.parentOnChange = this._childParentOnChange
|
|
20
21
|
if(child.property === undefined &&
|
|
21
22
|
child.value === undefined &&
|
|
@@ -28,7 +29,7 @@ export class BPContainerComponent<TState extends BPContainerComponentState=BPCon
|
|
|
28
29
|
|
|
29
30
|
protected _unregisterChild(child: UiObjectConfig) {
|
|
30
31
|
if (child.parentOnChange !== this._childParentOnChange)
|
|
31
|
-
child.parentOnChange
|
|
32
|
+
delete child.parentOnChange
|
|
32
33
|
if(Array.isArray(child.property) &&
|
|
33
34
|
(child.property === this.props.config.property ||
|
|
34
35
|
(child.property[0] === this.props.config &&
|
|
@@ -44,6 +45,17 @@ export class BPContainerComponent<TState extends BPContainerComponentState=BPCon
|
|
|
44
45
|
getUpdatedState(state: TState) {
|
|
45
46
|
const oldChildren = state.children
|
|
46
47
|
const newChildren = this.context.methods.getChildren(this.props.config)
|
|
48
|
+
.flatMap(c=>{
|
|
49
|
+
if(c.type === 'folder' &&
|
|
50
|
+
c.unwrapContents === true
|
|
51
|
+
){
|
|
52
|
+
const children2 = this.context.methods.getChildren(c)
|
|
53
|
+
const enabledToggle = children2[0] && this.context.methods.getBinding(children2[0])[1] === 'enabled' ? children2[0] : undefined
|
|
54
|
+
enabledToggle && (enabledToggle.hidden = true)
|
|
55
|
+
return children2
|
|
56
|
+
}
|
|
57
|
+
return c
|
|
58
|
+
})
|
|
47
59
|
const removed = oldChildren.filter(c => !newChildren.includes(c))
|
|
48
60
|
const added = newChildren.filter(c => !oldChildren.includes(c))
|
|
49
61
|
// console.warn(this, this._registerChild, this._childParentOnChange, added, removed)
|
|
@@ -59,8 +59,14 @@ export class BPDropdownInputComponent extends BPInputComponent<string|number, BP
|
|
|
59
59
|
activeItem={item}
|
|
60
60
|
key={this.props.config.uuid}
|
|
61
61
|
disabled={this.state.disabled}
|
|
62
|
+
fill={true}
|
|
62
63
|
popoverProps={{
|
|
63
|
-
minimal: true
|
|
64
|
+
minimal: true,
|
|
65
|
+
}}
|
|
66
|
+
popoverTargetProps={{
|
|
67
|
+
style: {
|
|
68
|
+
height: "var(--pt-input-height)",
|
|
69
|
+
}
|
|
64
70
|
}}
|
|
65
71
|
noResults={<MenuItem disabled={true} text="No results." roleStructure="listoption" />}
|
|
66
72
|
items={this.state.options}
|
|
@@ -72,7 +78,7 @@ export class BPDropdownInputComponent extends BPInputComponent<string|number, BP
|
|
|
72
78
|
>
|
|
73
79
|
{/* children become the popover target; render value here */}
|
|
74
80
|
<Button rightIcon="double-caret-vertical" small={true}
|
|
75
|
-
style={{whiteSpace: 'nowrap', textOverflow: "ellipsis"}}>{item.label}</Button>
|
|
81
|
+
style={{whiteSpace: 'nowrap', textOverflow: "ellipsis", height: "100%"}}>{item.label}</Button>
|
|
76
82
|
</Select>
|
|
77
83
|
)
|
|
78
84
|
}
|
|
@@ -7,50 +7,57 @@ type StateValue = string | File | null
|
|
|
7
7
|
type FileImportType = any
|
|
8
8
|
export type BPFileComponentState = BPValueComponentState<StateValue> & {
|
|
9
9
|
mode: 'url'|'file',
|
|
10
|
+
preview?: string,
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
type BPFileComponentExtras = {fileLoader?: {load: (v: string|File|{path: string, file: File|Blob})=>Promise<FileImportType>}}
|
|
13
14
|
type BPFileComponentContextType = UiConfigRendererContextType & BPFileComponentExtras
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
// todo make this abstract?
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
export class BPFileComponent<T extends FileImportType=FileImportType, TP = {}> extends BPValueComponent<T | null, BPFileComponentState, StateValue> {
|
|
16
19
|
declare context: BPFileComponentContextType
|
|
17
|
-
declare props: BPComponentProps<
|
|
18
|
-
constructor(props: BPComponentProps<
|
|
20
|
+
declare props: BPComponentProps<T | null> & BPFileComponentExtras & TP
|
|
21
|
+
constructor(props: BPComponentProps<T | null> & BPFileComponentExtras & TP, context: BPFileComponentContextType) {
|
|
19
22
|
super(props, context, {
|
|
20
|
-
mode: '
|
|
23
|
+
mode: 'url',
|
|
21
24
|
value: null,
|
|
22
25
|
label: 'File'
|
|
23
26
|
});
|
|
24
27
|
if(!context.fileLoader && !props.fileLoader) throw new Error('BPFileComponent requires fileLoader to be available in context')
|
|
25
28
|
}
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
30
|
+
// reimplemented in subclass
|
|
31
|
+
convertValueToState(_val: T | null, _state: BPFileComponentState): BPFileComponentState {
|
|
32
|
+
throw new Error('Not Implemented')
|
|
33
|
+
// let mode: BPFileComponentState['mode'] = state.mode
|
|
34
|
+
// let value = state.value
|
|
35
|
+
// if (val) {
|
|
36
|
+
// if (val.userData) {
|
|
37
|
+
// if (val.userData.__sourceBlob) {
|
|
38
|
+
// value = val.userData.__sourceBlob
|
|
39
|
+
// mode = 'file'
|
|
40
|
+
// } else if (val.userData.rootPath?.length) {
|
|
41
|
+
// value = val.userData.rootPath
|
|
42
|
+
// mode = 'url'
|
|
43
|
+
// }
|
|
44
|
+
// }
|
|
45
|
+
// }
|
|
46
|
+
// return {...state, mode, value}
|
|
42
47
|
}
|
|
43
48
|
|
|
44
|
-
async convertStateToValue(state: BPFileComponentState): Promise<
|
|
49
|
+
async convertStateToValue(state: BPFileComponentState): Promise<T|null> {
|
|
45
50
|
const value = state.value
|
|
46
51
|
let val: any
|
|
52
|
+
const last = this.context.methods.getRawValue(this.props.config as any) ?? null
|
|
53
|
+
const lastState = this.convertValueToState(last as any, {...this.state, value: null})
|
|
47
54
|
if (value === null) {
|
|
48
55
|
val = null
|
|
49
56
|
} else if (typeof value === 'string') {
|
|
50
|
-
val = await (this.context.fileLoader ?? this.props.fileLoader)!.load(value);
|
|
57
|
+
val = value === lastState.value ? last : await (this.context.fileLoader ?? this.props.fileLoader)!.load(value);
|
|
51
58
|
} else {
|
|
52
59
|
// todo handle blob with no name
|
|
53
|
-
val = await (this.context.fileLoader ?? this.props.fileLoader)!.load({path: value.name || 'file', file: value});
|
|
60
|
+
val = value === lastState.value ? last : await (this.context.fileLoader ?? this.props.fileLoader)!.load({path: value.name || 'file', file: value});
|
|
54
61
|
}
|
|
55
62
|
// console.log(val)
|
|
56
63
|
return val;
|
|
@@ -60,12 +67,33 @@ export class BPFileComponent extends BPValueComponent<FileImportType | null, BPF
|
|
|
60
67
|
// return super.doesNeedRefresh(state);
|
|
61
68
|
// }
|
|
62
69
|
|
|
70
|
+
renderPreviewSlot() {
|
|
71
|
+
return <img src={"https://threepipe.org/logo.svg"}
|
|
72
|
+
style={{width: "100%", maxHeight: "80px", objectFit: "contain"}}/>
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// async updateStateValue(state: BPFileComponentState, last?: boolean): Promise<void> {
|
|
76
|
+
// if(state.value !== this.state.value && state.preview) delete state.preview
|
|
77
|
+
// return super.updateStateValue(state, last);
|
|
78
|
+
// }
|
|
79
|
+
|
|
80
|
+
protected flexBasis = "100%"
|
|
81
|
+
|
|
63
82
|
render() {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
83
|
+
let show = !this.state.hidden
|
|
84
|
+
// todo - document hideOnEmpty. it hides the whole component if there is no value and no preview. (used in SSReflectionPlugin)
|
|
85
|
+
if (show && this.props.config.hideOnEmpty && !this.state.preview && !this.state.value) {
|
|
86
|
+
show = false
|
|
87
|
+
}
|
|
88
|
+
return show ? (
|
|
89
|
+
<FormGroupComponent
|
|
90
|
+
label={this.state.label}
|
|
91
|
+
disabled={this.state.disabled}
|
|
92
|
+
flexBasis={this.state.baseWidth ?? this.flexBasis}
|
|
93
|
+
>
|
|
94
|
+
<FileComponent previewSlot={this.renderPreviewSlot()} state={this.state} onChange={(s) =>
|
|
95
|
+
this.updateStateValue({...this.state, preview: undefined, ...s}) // todo: set loading while this promise is happening.
|
|
96
|
+
} key={this.props.config.uuid}/>
|
|
69
97
|
</FormGroupComponent>
|
|
70
98
|
) : null
|
|
71
99
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
background-color: $light-gray4 !important;
|
|
30
30
|
}
|
|
31
31
|
.bp5-dark .folder-card {
|
|
32
|
-
background-color: $dark-
|
|
32
|
+
background-color: $dark-gray1 !important;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
|
|
@@ -58,16 +58,25 @@
|
|
|
58
58
|
&:active {
|
|
59
59
|
background-color: $gray4 !important;
|
|
60
60
|
}
|
|
61
|
+
|
|
62
|
+
.bp5-button-text {
|
|
63
|
+
text-align: left;
|
|
64
|
+
flex: 1 1 auto;
|
|
65
|
+
}
|
|
61
66
|
}
|
|
62
67
|
.bp5-dark .folder-trigger-button {
|
|
63
68
|
background-color: $dark-gray1 !important;
|
|
64
69
|
|
|
65
70
|
&:hover {
|
|
66
|
-
background-color: $dark-
|
|
71
|
+
background-color: $dark-gray2 !important;
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
&:active {
|
|
70
|
-
background-color: $dark-
|
|
75
|
+
background-color: $dark-gray2 !important;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&.folder-trigger-button-expanded{
|
|
79
|
+
background-color: $dark-gray2 !important;
|
|
71
80
|
}
|
|
72
81
|
}
|
|
73
82
|
|
|
@@ -83,7 +92,12 @@
|
|
|
83
92
|
flex-direction: row;
|
|
84
93
|
|
|
85
94
|
> .folder-trigger-button {
|
|
86
|
-
margin-right: $pt-grid-size;
|
|
95
|
+
//margin-right: $pt-grid-size;
|
|
96
|
+
margin-right: 6px;
|
|
97
|
+
//margin-left: $pt-grid-size;
|
|
98
|
+
padding-top: 6px;
|
|
99
|
+
padding-bottom: 6px;
|
|
100
|
+
min-height: 36px;
|
|
87
101
|
}
|
|
88
102
|
}
|
|
89
103
|
|
|
@@ -92,7 +106,7 @@
|
|
|
92
106
|
align-items: center;
|
|
93
107
|
justify-content: space-between;
|
|
94
108
|
flex-direction: row;
|
|
95
|
-
box-shadow: 0 1px $pt-divider-black;
|
|
109
|
+
//box-shadow: 0 1px $pt-divider-black;
|
|
96
110
|
//z-index: 1;
|
|
97
111
|
|
|
98
112
|
> button {
|
|
@@ -100,7 +114,7 @@
|
|
|
100
114
|
}
|
|
101
115
|
|
|
102
116
|
.bp5-dark & {
|
|
103
|
-
box-shadow: 0 1px $pt-dark-divider-white;
|
|
117
|
+
//box-shadow: 0 1px $pt-dark-divider-white;
|
|
104
118
|
//background-color: $dark-gray1;
|
|
105
119
|
}
|
|
106
120
|
}
|