@cratis/scene.components 0.1.0
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/.storybook/main.ts +55 -0
- package/.storybook/preview.tsx +36 -0
- package/CratisComponents.stories.tsx +235 -0
- package/README.md +192 -0
- package/bindings/ArcRuntimeBoundary.tsx +36 -0
- package/bindings/BindingKind.ts +18 -0
- package/bindings/BoundConstructor.ts +21 -0
- package/bindings/ElementBinding.ts +19 -0
- package/bindings/MissingBinding.tsx +34 -0
- package/bindings/Placeholder.tsx +42 -0
- package/bindings/bindingRegistry.ts +105 -0
- package/bindings/for_bindingRegistry/when_a_command_is_registered.ts +30 -0
- package/bindings/for_bindingRegistry/when_a_query_is_not_registered.ts +17 -0
- package/bindings/for_bindingRegistry/when_a_query_is_registered.ts +30 -0
- package/bindings/for_bindingRegistry/when_bindings_are_cleared.ts +29 -0
- package/bindings/for_resolveElementBinding/when_resolving_a_command_binding.ts +34 -0
- package/bindings/for_resolveElementBinding/when_resolving_a_query_binding.ts +45 -0
- package/bindings/index.ts +11 -0
- package/bindings/resolveElementBinding.ts +33 -0
- package/common/SceneDropdown.tsx +31 -0
- package/common/SceneErrorBoundary.tsx +17 -0
- package/common/SceneIcon.tsx +18 -0
- package/common/SceneTooltip.tsx +28 -0
- package/common/index.ts +7 -0
- package/cratisComponents.ts +91 -0
- package/cratisComponentsPackage.ts +101 -0
- package/data/SceneDataTable.tsx +41 -0
- package/data/SceneObservableDataTable.tsx +41 -0
- package/data/for_SceneDataTable/when_the_query_binding_is_missing.tsx +48 -0
- package/data/index.ts +5 -0
- package/dialogs/SceneBusyIndicatorDialog.tsx +29 -0
- package/dialogs/SceneCommandDialog.tsx +42 -0
- package/dialogs/SceneConfirmationDialog.tsx +23 -0
- package/dialogs/SceneDialog.tsx +41 -0
- package/dialogs/SceneStepperCommandDialog.tsx +50 -0
- package/dialogs/index.ts +8 -0
- package/dist/cjs/bindings/ArcRuntimeBoundary.js +37 -0
- package/dist/cjs/bindings/ArcRuntimeBoundary.js.map +1 -0
- package/dist/cjs/bindings/BindingKind.js +19 -0
- package/dist/cjs/bindings/BindingKind.js.map +1 -0
- package/dist/cjs/bindings/MissingBinding.js +24 -0
- package/dist/cjs/bindings/MissingBinding.js.map +1 -0
- package/dist/cjs/bindings/Placeholder.js +38 -0
- package/dist/cjs/bindings/Placeholder.js.map +1 -0
- package/dist/cjs/bindings/bindingRegistry.js +101 -0
- package/dist/cjs/bindings/bindingRegistry.js.map +1 -0
- package/dist/cjs/bindings/resolveElementBinding.js +34 -0
- package/dist/cjs/bindings/resolveElementBinding.js.map +1 -0
- package/dist/cjs/common/SceneDropdown.js +30 -0
- package/dist/cjs/common/SceneDropdown.js.map +1 -0
- package/dist/cjs/common/SceneErrorBoundary.js +20 -0
- package/dist/cjs/common/SceneErrorBoundary.js.map +1 -0
- package/dist/cjs/common/SceneIcon.js +22 -0
- package/dist/cjs/common/SceneIcon.js.map +1 -0
- package/dist/cjs/common/SceneTooltip.js +29 -0
- package/dist/cjs/common/SceneTooltip.js.map +1 -0
- package/dist/cjs/cratisComponents.js +106 -0
- package/dist/cjs/cratisComponents.js.map +1 -0
- package/dist/cjs/cratisComponentsPackage.js +105 -0
- package/dist/cjs/cratisComponentsPackage.js.map +1 -0
- package/dist/cjs/data/SceneDataTable.js +46 -0
- package/dist/cjs/data/SceneDataTable.js.map +1 -0
- package/dist/cjs/data/SceneObservableDataTable.js +44 -0
- package/dist/cjs/data/SceneObservableDataTable.js.map +1 -0
- package/dist/cjs/dialogs/SceneBusyIndicatorDialog.js +30 -0
- package/dist/cjs/dialogs/SceneBusyIndicatorDialog.js.map +1 -0
- package/dist/cjs/dialogs/SceneCommandDialog.js +47 -0
- package/dist/cjs/dialogs/SceneCommandDialog.js.map +1 -0
- package/dist/cjs/dialogs/SceneConfirmationDialog.js +25 -0
- package/dist/cjs/dialogs/SceneConfirmationDialog.js.map +1 -0
- package/dist/cjs/dialogs/SceneDialog.js +41 -0
- package/dist/cjs/dialogs/SceneDialog.js.map +1 -0
- package/dist/cjs/dialogs/SceneStepperCommandDialog.js +54 -0
- package/dist/cjs/dialogs/SceneStepperCommandDialog.js.map +1 -0
- package/dist/cjs/editors/SceneFilterPanel.js +57 -0
- package/dist/cjs/editors/SceneFilterPanel.js.map +1 -0
- package/dist/cjs/editors/SceneObjectContentEditor.js +37 -0
- package/dist/cjs/editors/SceneObjectContentEditor.js.map +1 -0
- package/dist/cjs/editors/SceneObjectNavigationalBar.js +34 -0
- package/dist/cjs/editors/SceneObjectNavigationalBar.js.map +1 -0
- package/dist/cjs/editors/SceneSchemaEditor.js +33 -0
- package/dist/cjs/editors/SceneSchemaEditor.js.map +1 -0
- package/dist/cjs/editors/SceneTimeMachine.js +32 -0
- package/dist/cjs/editors/SceneTimeMachine.js.map +1 -0
- package/dist/cjs/editors/filterDefinitions.js +59 -0
- package/dist/cjs/editors/filterDefinitions.js.map +1 -0
- package/dist/cjs/editors/timeMachineVersions.js +44 -0
- package/dist/cjs/editors/timeMachineVersions.js.map +1 -0
- package/dist/cjs/editors/useEditableCopy.js +39 -0
- package/dist/cjs/editors/useEditableCopy.js.map +1 -0
- package/dist/cjs/forms/SceneCommandForm.js +46 -0
- package/dist/cjs/forms/SceneCommandForm.js.map +1 -0
- package/dist/cjs/forms/fields/CommandFormField.js +31 -0
- package/dist/cjs/forms/fields/CommandFormField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneCalendarField.js +41 -0
- package/dist/cjs/forms/fields/SceneCalendarField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneCheckboxField.js +28 -0
- package/dist/cjs/forms/fields/SceneCheckboxField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneChipsField.js +33 -0
- package/dist/cjs/forms/fields/SceneChipsField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneColorPickerField.js +30 -0
- package/dist/cjs/forms/fields/SceneColorPickerField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneDropdownField.js +35 -0
- package/dist/cjs/forms/fields/SceneDropdownField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneInputTextField.js +45 -0
- package/dist/cjs/forms/fields/SceneInputTextField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneMultiSelectField.js +40 -0
- package/dist/cjs/forms/fields/SceneMultiSelectField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneNumberField.js +32 -0
- package/dist/cjs/forms/fields/SceneNumberField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneRadioButtonField.js +35 -0
- package/dist/cjs/forms/fields/SceneRadioButtonField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneRadioGroupField.js +36 -0
- package/dist/cjs/forms/fields/SceneRadioGroupField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneSliderField.js +31 -0
- package/dist/cjs/forms/fields/SceneSliderField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneTextAreaField.js +31 -0
- package/dist/cjs/forms/fields/SceneTextAreaField.js.map +1 -0
- package/dist/cjs/forms/fields/resolveFieldBinding.js +27 -0
- package/dist/cjs/forms/fields/resolveFieldBinding.js.map +1 -0
- package/dist/cjs/index.js +123 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/pages/SceneDataPage.js +45 -0
- package/dist/cjs/pages/SceneDataPage.js.map +1 -0
- package/dist/cjs/pages/SceneFormElement.js +26 -0
- package/dist/cjs/pages/SceneFormElement.js.map +1 -0
- package/dist/cjs/pages/ScenePage.js +28 -0
- package/dist/cjs/pages/ScenePage.js.map +1 -0
- package/dist/cjs/properties.js +104 -0
- package/dist/cjs/properties.js.map +1 -0
- package/dist/cjs/toolbar/SceneToolbar.js +27 -0
- package/dist/cjs/toolbar/SceneToolbar.js.map +1 -0
- package/dist/cjs/toolbar/SceneToolbarButton.js +32 -0
- package/dist/cjs/toolbar/SceneToolbarButton.js.map +1 -0
- package/dist/cjs/toolbar/SceneToolbarGroup.js +27 -0
- package/dist/cjs/toolbar/SceneToolbarGroup.js.map +1 -0
- package/dist/cjs/toolbar/SceneToolbarSeparator.js +25 -0
- package/dist/cjs/toolbar/SceneToolbarSeparator.js.map +1 -0
- package/dist/esm/CratisComponents.stories.d.ts +29 -0
- package/dist/esm/CratisComponents.stories.d.ts.map +1 -0
- package/dist/esm/CratisComponents.stories.js +187 -0
- package/dist/esm/CratisComponents.stories.js.map +1 -0
- package/dist/esm/bindings/ArcRuntimeBoundary.d.ts +6 -0
- package/dist/esm/bindings/ArcRuntimeBoundary.d.ts.map +1 -0
- package/dist/esm/bindings/ArcRuntimeBoundary.js +35 -0
- package/dist/esm/bindings/ArcRuntimeBoundary.js.map +1 -0
- package/dist/esm/bindings/BindingKind.d.ts +5 -0
- package/dist/esm/bindings/BindingKind.d.ts.map +1 -0
- package/dist/esm/bindings/BindingKind.js +17 -0
- package/dist/esm/bindings/BindingKind.js.map +1 -0
- package/dist/esm/bindings/BoundConstructor.d.ts +2 -0
- package/dist/esm/bindings/BoundConstructor.d.ts.map +1 -0
- package/dist/esm/bindings/BoundConstructor.js +2 -0
- package/dist/esm/bindings/BoundConstructor.js.map +1 -0
- package/dist/esm/bindings/ElementBinding.d.ts +6 -0
- package/dist/esm/bindings/ElementBinding.d.ts.map +1 -0
- package/dist/esm/bindings/ElementBinding.js +2 -0
- package/dist/esm/bindings/ElementBinding.js.map +1 -0
- package/dist/esm/bindings/MissingBinding.d.ts +9 -0
- package/dist/esm/bindings/MissingBinding.d.ts.map +1 -0
- package/dist/esm/bindings/MissingBinding.js +22 -0
- package/dist/esm/bindings/MissingBinding.js.map +1 -0
- package/dist/esm/bindings/Placeholder.d.ts +7 -0
- package/dist/esm/bindings/Placeholder.d.ts.map +1 -0
- package/dist/esm/bindings/Placeholder.js +36 -0
- package/dist/esm/bindings/Placeholder.js.map +1 -0
- package/dist/esm/bindings/bindingRegistry.d.ts +11 -0
- package/dist/esm/bindings/bindingRegistry.d.ts.map +1 -0
- package/dist/esm/bindings/bindingRegistry.js +91 -0
- package/dist/esm/bindings/bindingRegistry.js.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.js +25 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.js.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.js +12 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.js.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.js +23 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.js.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.js +18 -0
- package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.js.map +1 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.d.ts +2 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.d.ts.map +1 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.js +25 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.js.map +1 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.d.ts +2 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.d.ts.map +1 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.js +33 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.js.map +1 -0
- package/dist/esm/bindings/index.d.ts +9 -0
- package/dist/esm/bindings/index.d.ts.map +1 -0
- package/dist/esm/bindings/index.js +9 -0
- package/dist/esm/bindings/index.js.map +1 -0
- package/dist/esm/bindings/resolveElementBinding.d.ts +5 -0
- package/dist/esm/bindings/resolveElementBinding.d.ts.map +1 -0
- package/dist/esm/bindings/resolveElementBinding.js +32 -0
- package/dist/esm/bindings/resolveElementBinding.js.map +1 -0
- package/dist/esm/common/SceneDropdown.d.ts +3 -0
- package/dist/esm/common/SceneDropdown.d.ts.map +1 -0
- package/dist/esm/common/SceneDropdown.js +28 -0
- package/dist/esm/common/SceneDropdown.js.map +1 -0
- package/dist/esm/common/SceneErrorBoundary.d.ts +3 -0
- package/dist/esm/common/SceneErrorBoundary.d.ts.map +1 -0
- package/dist/esm/common/SceneErrorBoundary.js +18 -0
- package/dist/esm/common/SceneErrorBoundary.js.map +1 -0
- package/dist/esm/common/SceneIcon.d.ts +3 -0
- package/dist/esm/common/SceneIcon.d.ts.map +1 -0
- package/dist/esm/common/SceneIcon.js +20 -0
- package/dist/esm/common/SceneIcon.js.map +1 -0
- package/dist/esm/common/SceneTooltip.d.ts +3 -0
- package/dist/esm/common/SceneTooltip.d.ts.map +1 -0
- package/dist/esm/common/SceneTooltip.js +27 -0
- package/dist/esm/common/SceneTooltip.js.map +1 -0
- package/dist/esm/common/index.d.ts +5 -0
- package/dist/esm/common/index.d.ts.map +1 -0
- package/dist/esm/common/index.js +5 -0
- package/dist/esm/common/index.js.map +1 -0
- package/dist/esm/cratisComponents.d.ts +4 -0
- package/dist/esm/cratisComponents.d.ts.map +1 -0
- package/dist/esm/cratisComponents.js +103 -0
- package/dist/esm/cratisComponents.js.map +1 -0
- package/dist/esm/cratisComponentsPackage.d.ts +5 -0
- package/dist/esm/cratisComponentsPackage.d.ts.map +1 -0
- package/dist/esm/cratisComponentsPackage.js +102 -0
- package/dist/esm/cratisComponentsPackage.js.map +1 -0
- package/dist/esm/data/SceneDataTable.d.ts +3 -0
- package/dist/esm/data/SceneDataTable.d.ts.map +1 -0
- package/dist/esm/data/SceneDataTable.js +44 -0
- package/dist/esm/data/SceneDataTable.js.map +1 -0
- package/dist/esm/data/SceneObservableDataTable.d.ts +3 -0
- package/dist/esm/data/SceneObservableDataTable.d.ts.map +1 -0
- package/dist/esm/data/SceneObservableDataTable.js +42 -0
- package/dist/esm/data/SceneObservableDataTable.js.map +1 -0
- package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.d.ts +2 -0
- package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.d.ts.map +1 -0
- package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.js +36 -0
- package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.js.map +1 -0
- package/dist/esm/data/index.d.ts +3 -0
- package/dist/esm/data/index.d.ts.map +1 -0
- package/dist/esm/data/index.js +3 -0
- package/dist/esm/data/index.js.map +1 -0
- package/dist/esm/dialogs/SceneBusyIndicatorDialog.d.ts +3 -0
- package/dist/esm/dialogs/SceneBusyIndicatorDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneBusyIndicatorDialog.js +28 -0
- package/dist/esm/dialogs/SceneBusyIndicatorDialog.js.map +1 -0
- package/dist/esm/dialogs/SceneCommandDialog.d.ts +3 -0
- package/dist/esm/dialogs/SceneCommandDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneCommandDialog.js +45 -0
- package/dist/esm/dialogs/SceneCommandDialog.js.map +1 -0
- package/dist/esm/dialogs/SceneConfirmationDialog.d.ts +2 -0
- package/dist/esm/dialogs/SceneConfirmationDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneConfirmationDialog.js +23 -0
- package/dist/esm/dialogs/SceneConfirmationDialog.js.map +1 -0
- package/dist/esm/dialogs/SceneDialog.d.ts +3 -0
- package/dist/esm/dialogs/SceneDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneDialog.js +39 -0
- package/dist/esm/dialogs/SceneDialog.js.map +1 -0
- package/dist/esm/dialogs/SceneStepperCommandDialog.d.ts +3 -0
- package/dist/esm/dialogs/SceneStepperCommandDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneStepperCommandDialog.js +52 -0
- package/dist/esm/dialogs/SceneStepperCommandDialog.js.map +1 -0
- package/dist/esm/dialogs/index.d.ts +6 -0
- package/dist/esm/dialogs/index.d.ts.map +1 -0
- package/dist/esm/dialogs/index.js +6 -0
- package/dist/esm/dialogs/index.js.map +1 -0
- package/dist/esm/editors/SceneFilterPanel.d.ts +3 -0
- package/dist/esm/editors/SceneFilterPanel.d.ts.map +1 -0
- package/dist/esm/editors/SceneFilterPanel.js +55 -0
- package/dist/esm/editors/SceneFilterPanel.js.map +1 -0
- package/dist/esm/editors/SceneObjectContentEditor.d.ts +3 -0
- package/dist/esm/editors/SceneObjectContentEditor.d.ts.map +1 -0
- package/dist/esm/editors/SceneObjectContentEditor.js +35 -0
- package/dist/esm/editors/SceneObjectContentEditor.js.map +1 -0
- package/dist/esm/editors/SceneObjectNavigationalBar.d.ts +3 -0
- package/dist/esm/editors/SceneObjectNavigationalBar.d.ts.map +1 -0
- package/dist/esm/editors/SceneObjectNavigationalBar.js +32 -0
- package/dist/esm/editors/SceneObjectNavigationalBar.js.map +1 -0
- package/dist/esm/editors/SceneSchemaEditor.d.ts +3 -0
- package/dist/esm/editors/SceneSchemaEditor.d.ts.map +1 -0
- package/dist/esm/editors/SceneSchemaEditor.js +31 -0
- package/dist/esm/editors/SceneSchemaEditor.js.map +1 -0
- package/dist/esm/editors/SceneTimeMachine.d.ts +3 -0
- package/dist/esm/editors/SceneTimeMachine.d.ts.map +1 -0
- package/dist/esm/editors/SceneTimeMachine.js +30 -0
- package/dist/esm/editors/SceneTimeMachine.js.map +1 -0
- package/dist/esm/editors/filterDefinitions.d.ts +3 -0
- package/dist/esm/editors/filterDefinitions.d.ts.map +1 -0
- package/dist/esm/editors/filterDefinitions.js +57 -0
- package/dist/esm/editors/filterDefinitions.js.map +1 -0
- package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts +2 -0
- package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts.map +1 -0
- package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js +15 -0
- package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js.map +1 -0
- package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.d.ts +2 -0
- package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.d.ts.map +1 -0
- package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.js +39 -0
- package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.js.map +1 -0
- package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.d.ts +2 -0
- package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.d.ts.map +1 -0
- package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.js +32 -0
- package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.js.map +1 -0
- package/dist/esm/editors/index.d.ts +9 -0
- package/dist/esm/editors/index.d.ts.map +1 -0
- package/dist/esm/editors/index.js +9 -0
- package/dist/esm/editors/index.js.map +1 -0
- package/dist/esm/editors/timeMachineVersions.d.ts +3 -0
- package/dist/esm/editors/timeMachineVersions.d.ts.map +1 -0
- package/dist/esm/editors/timeMachineVersions.js +42 -0
- package/dist/esm/editors/timeMachineVersions.js.map +1 -0
- package/dist/esm/editors/useEditableCopy.d.ts +2 -0
- package/dist/esm/editors/useEditableCopy.d.ts.map +1 -0
- package/dist/esm/editors/useEditableCopy.js +37 -0
- package/dist/esm/editors/useEditableCopy.js.map +1 -0
- package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.d.ts +2 -0
- package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.d.ts.map +1 -0
- package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.js +25 -0
- package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.js.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.js +34 -0
- package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.js.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.js +49 -0
- package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.js.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.js +27 -0
- package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.js.map +1 -0
- package/dist/esm/for_properties/when_a_property_has_the_wrong_type.d.ts +2 -0
- package/dist/esm/for_properties/when_a_property_has_the_wrong_type.d.ts.map +1 -0
- package/dist/esm/for_properties/when_a_property_has_the_wrong_type.js +24 -0
- package/dist/esm/for_properties/when_a_property_has_the_wrong_type.js.map +1 -0
- package/dist/esm/for_properties/when_a_property_is_missing.d.ts +2 -0
- package/dist/esm/for_properties/when_a_property_is_missing.d.ts.map +1 -0
- package/dist/esm/for_properties/when_a_property_is_missing.js +13 -0
- package/dist/esm/for_properties/when_a_property_is_missing.js.map +1 -0
- package/dist/esm/for_properties/when_a_property_is_present.d.ts +2 -0
- package/dist/esm/for_properties/when_a_property_is_present.d.ts.map +1 -0
- package/dist/esm/for_properties/when_a_property_is_present.js +21 -0
- package/dist/esm/for_properties/when_a_property_is_present.js.map +1 -0
- package/dist/esm/forms/SceneCommandForm.d.ts +3 -0
- package/dist/esm/forms/SceneCommandForm.d.ts.map +1 -0
- package/dist/esm/forms/SceneCommandForm.js +44 -0
- package/dist/esm/forms/SceneCommandForm.js.map +1 -0
- package/dist/esm/forms/fields/CommandFormField.d.ts +9 -0
- package/dist/esm/forms/fields/CommandFormField.d.ts.map +1 -0
- package/dist/esm/forms/fields/CommandFormField.js +29 -0
- package/dist/esm/forms/fields/CommandFormField.js.map +1 -0
- package/dist/esm/forms/fields/FieldBinding.d.ts +6 -0
- package/dist/esm/forms/fields/FieldBinding.d.ts.map +1 -0
- package/dist/esm/forms/fields/FieldBinding.js +2 -0
- package/dist/esm/forms/fields/FieldBinding.js.map +1 -0
- package/dist/esm/forms/fields/SceneCalendarField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneCalendarField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneCalendarField.js +39 -0
- package/dist/esm/forms/fields/SceneCalendarField.js.map +1 -0
- package/dist/esm/forms/fields/SceneCheckboxField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneCheckboxField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneCheckboxField.js +26 -0
- package/dist/esm/forms/fields/SceneCheckboxField.js.map +1 -0
- package/dist/esm/forms/fields/SceneChipsField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneChipsField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneChipsField.js +31 -0
- package/dist/esm/forms/fields/SceneChipsField.js.map +1 -0
- package/dist/esm/forms/fields/SceneColorPickerField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneColorPickerField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneColorPickerField.js +28 -0
- package/dist/esm/forms/fields/SceneColorPickerField.js.map +1 -0
- package/dist/esm/forms/fields/SceneDropdownField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneDropdownField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneDropdownField.js +33 -0
- package/dist/esm/forms/fields/SceneDropdownField.js.map +1 -0
- package/dist/esm/forms/fields/SceneInputTextField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneInputTextField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneInputTextField.js +43 -0
- package/dist/esm/forms/fields/SceneInputTextField.js.map +1 -0
- package/dist/esm/forms/fields/SceneMultiSelectField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneMultiSelectField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneMultiSelectField.js +38 -0
- package/dist/esm/forms/fields/SceneMultiSelectField.js.map +1 -0
- package/dist/esm/forms/fields/SceneNumberField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneNumberField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneNumberField.js +30 -0
- package/dist/esm/forms/fields/SceneNumberField.js.map +1 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.js +33 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.js.map +1 -0
- package/dist/esm/forms/fields/SceneRadioGroupField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneRadioGroupField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneRadioGroupField.js +34 -0
- package/dist/esm/forms/fields/SceneRadioGroupField.js.map +1 -0
- package/dist/esm/forms/fields/SceneSliderField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneSliderField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneSliderField.js +29 -0
- package/dist/esm/forms/fields/SceneSliderField.js.map +1 -0
- package/dist/esm/forms/fields/SceneTextAreaField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneTextAreaField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneTextAreaField.js +29 -0
- package/dist/esm/forms/fields/SceneTextAreaField.js.map +1 -0
- package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.d.ts +2 -0
- package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.d.ts.map +1 -0
- package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.js +12 -0
- package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.js.map +1 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.d.ts +2 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.d.ts.map +1 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js +24 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js.map +1 -0
- package/dist/esm/forms/fields/index.d.ts +16 -0
- package/dist/esm/forms/fields/index.d.ts.map +1 -0
- package/dist/esm/forms/fields/index.js +16 -0
- package/dist/esm/forms/fields/index.js.map +1 -0
- package/dist/esm/forms/fields/resolveFieldBinding.d.ts +4 -0
- package/dist/esm/forms/fields/resolveFieldBinding.d.ts.map +1 -0
- package/dist/esm/forms/fields/resolveFieldBinding.js +25 -0
- package/dist/esm/forms/fields/resolveFieldBinding.js.map +1 -0
- package/dist/esm/forms/index.d.ts +3 -0
- package/dist/esm/forms/index.d.ts.map +1 -0
- package/dist/esm/forms/index.js +3 -0
- package/dist/esm/forms/index.js.map +1 -0
- package/dist/esm/given.d.ts +3 -0
- package/dist/esm/given.d.ts.map +1 -0
- package/dist/esm/given.js +21 -0
- package/dist/esm/given.js.map +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +51 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/pages/SceneDataPage.d.ts +3 -0
- package/dist/esm/pages/SceneDataPage.d.ts.map +1 -0
- package/dist/esm/pages/SceneDataPage.js +43 -0
- package/dist/esm/pages/SceneDataPage.js.map +1 -0
- package/dist/esm/pages/SceneFormElement.d.ts +3 -0
- package/dist/esm/pages/SceneFormElement.d.ts.map +1 -0
- package/dist/esm/pages/SceneFormElement.js +24 -0
- package/dist/esm/pages/SceneFormElement.js.map +1 -0
- package/dist/esm/pages/ScenePage.d.ts +3 -0
- package/dist/esm/pages/ScenePage.d.ts.map +1 -0
- package/dist/esm/pages/ScenePage.js +26 -0
- package/dist/esm/pages/ScenePage.js.map +1 -0
- package/dist/esm/pages/for_ScenePage/when_rendering_a_page.d.ts +2 -0
- package/dist/esm/pages/for_ScenePage/when_rendering_a_page.d.ts.map +1 -0
- package/dist/esm/pages/for_ScenePage/when_rendering_a_page.js +31 -0
- package/dist/esm/pages/for_ScenePage/when_rendering_a_page.js.map +1 -0
- package/dist/esm/pages/index.d.ts +4 -0
- package/dist/esm/pages/index.d.ts.map +1 -0
- package/dist/esm/pages/index.js +4 -0
- package/dist/esm/pages/index.js.map +1 -0
- package/dist/esm/properties.d.ts +9 -0
- package/dist/esm/properties.d.ts.map +1 -0
- package/dist/esm/properties.js +95 -0
- package/dist/esm/properties.js.map +1 -0
- package/dist/esm/toolbar/SceneToolbar.d.ts +3 -0
- package/dist/esm/toolbar/SceneToolbar.d.ts.map +1 -0
- package/dist/esm/toolbar/SceneToolbar.js +25 -0
- package/dist/esm/toolbar/SceneToolbar.js.map +1 -0
- package/dist/esm/toolbar/SceneToolbarButton.d.ts +3 -0
- package/dist/esm/toolbar/SceneToolbarButton.d.ts.map +1 -0
- package/dist/esm/toolbar/SceneToolbarButton.js +30 -0
- package/dist/esm/toolbar/SceneToolbarButton.js.map +1 -0
- package/dist/esm/toolbar/SceneToolbarGroup.d.ts +3 -0
- package/dist/esm/toolbar/SceneToolbarGroup.d.ts.map +1 -0
- package/dist/esm/toolbar/SceneToolbarGroup.js +25 -0
- package/dist/esm/toolbar/SceneToolbarGroup.js.map +1 -0
- package/dist/esm/toolbar/SceneToolbarSeparator.d.ts +3 -0
- package/dist/esm/toolbar/SceneToolbarSeparator.d.ts.map +1 -0
- package/dist/esm/toolbar/SceneToolbarSeparator.js +23 -0
- package/dist/esm/toolbar/SceneToolbarSeparator.js.map +1 -0
- package/dist/esm/toolbar/index.d.ts +5 -0
- package/dist/esm/toolbar/index.d.ts.map +1 -0
- package/dist/esm/toolbar/index.js +5 -0
- package/dist/esm/toolbar/index.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/editors/SceneFilterPanel.tsx +52 -0
- package/editors/SceneObjectContentEditor.tsx +36 -0
- package/editors/SceneObjectNavigationalBar.tsx +34 -0
- package/editors/SceneSchemaEditor.tsx +34 -0
- package/editors/SceneTimeMachine.tsx +32 -0
- package/editors/filterDefinitions.ts +59 -0
- package/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.tsx +18 -0
- package/editors/for_filterDefinitions/when_reading_filter_definitions.ts +49 -0
- package/editors/for_timeMachineVersions/when_reading_versions.ts +39 -0
- package/editors/index.ts +11 -0
- package/editors/timeMachineVersions.ts +44 -0
- package/editors/useEditableCopy.ts +32 -0
- package/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.tsx +37 -0
- package/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.ts +49 -0
- package/for_cratisComponentsPackage/when_resolving_its_dependencies.ts +68 -0
- package/for_cratisComponentsPackage/when_validating_the_bundle.ts +39 -0
- package/for_properties/when_a_property_has_the_wrong_type.ts +41 -0
- package/for_properties/when_a_property_is_missing.ts +26 -0
- package/for_properties/when_a_property_is_present.ts +36 -0
- package/forms/SceneCommandForm.tsx +45 -0
- package/forms/fields/CommandFormField.tsx +32 -0
- package/forms/fields/FieldBinding.ts +26 -0
- package/forms/fields/SceneCalendarField.tsx +41 -0
- package/forms/fields/SceneCheckboxField.tsx +29 -0
- package/forms/fields/SceneChipsField.tsx +34 -0
- package/forms/fields/SceneColorPickerField.tsx +31 -0
- package/forms/fields/SceneDropdownField.tsx +36 -0
- package/forms/fields/SceneInputTextField.tsx +37 -0
- package/forms/fields/SceneMultiSelectField.tsx +40 -0
- package/forms/fields/SceneNumberField.tsx +33 -0
- package/forms/fields/SceneRadioButtonField.tsx +37 -0
- package/forms/fields/SceneRadioGroupField.tsx +36 -0
- package/forms/fields/SceneSliderField.tsx +32 -0
- package/forms/fields/SceneTextAreaField.tsx +32 -0
- package/forms/fields/for_CommandFormField/when_the_field_names_no_property.tsx +16 -0
- package/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.ts +34 -0
- package/forms/fields/index.ts +18 -0
- package/forms/fields/resolveFieldBinding.ts +27 -0
- package/forms/index.ts +5 -0
- package/given.ts +33 -0
- package/index.ts +14 -0
- package/package.json +68 -0
- package/pages/SceneDataPage.tsx +40 -0
- package/pages/SceneFormElement.tsx +21 -0
- package/pages/ScenePage.tsx +30 -0
- package/pages/for_ScenePage/when_rendering_a_page.tsx +39 -0
- package/pages/index.ts +6 -0
- package/properties.ts +112 -0
- package/storybook-static/assets/CommandDialog-B78_eDOU.css +1 -0
- package/storybook-static/assets/CratisComponents-qPooLvTv.css +1 -0
- package/storybook-static/assets/DataPage-CroWzXsC.css +1 -0
- package/storybook-static/assets/iframe-DQhZBFM5.css +1 -0
- package/theme/sceneTokenBridge.css +72 -0
- package/toolbar/SceneToolbar.tsx +28 -0
- package/toolbar/SceneToolbarButton.tsx +31 -0
- package/toolbar/SceneToolbarGroup.tsx +28 -0
- package/toolbar/SceneToolbarSeparator.tsx +21 -0
- package/toolbar/index.ts +7 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneConfirmationDialog.js","sources":["../../../dialogs/SceneConfirmationDialog.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { lazy } from 'react';\nimport { ArcRuntimeBoundary } from '../bindings';\n\nconst ConfirmationDialog = lazy(async () => ({ default: (await import('@cratis/components/Dialogs')).ConfirmationDialog }));\n\n/**\n * The `Cratis.Components:confirmationDialog` component - `ConfirmationDialog` from\n * `@cratis/components/Dialogs`.\n *\n * Takes no properties by design: it is not a dialog a screen configures, it is the host that renders\n * whatever confirmation the running application has asked for through Arc's dialog service. A screen\n * places it once, near the root, and every `Are you sure?` in the application appears there.\n */\nexport function SceneConfirmationDialog() {\n return (\n <ArcRuntimeBoundary>\n <ConfirmationDialog />\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["ConfirmationDialog","lazy","default","SceneConfirmationDialog","_jsx","ArcRuntimeBoundary"],"mappings":";;;;;AAMA,MAAMA,kBAAAA,iBAAqBC,IAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,4BAAA,CAA4B,EAAGF;KAAmB,CAAA,CAAA;AAExH;;;;;;;AAOC,IACM,SAASG,uBAAAA,GAAAA;AACZ,IAAA,qBACIC,GAAA,CAACC,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAD,GAAA,CAACJ,kBAAAA,EAAAA,EAAAA;;AAGb;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneDialog.d.ts","sourceRoot":"","sources":["../../../dialogs/SceneDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAkB/D,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,wBAAwB,+BAkBvE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { lazy } from 'react';
|
|
3
|
+
import '../bindings/resolveElementBinding.js';
|
|
4
|
+
import { ArcRuntimeBoundary } from '../bindings/ArcRuntimeBoundary.js';
|
|
5
|
+
import { stringProperty, booleanProperty } from '../properties.js';
|
|
6
|
+
|
|
7
|
+
const Dialog = /*#__PURE__*/ lazy(async ()=>({
|
|
8
|
+
default: (await import('@cratis/components/Dialogs')).Dialog
|
|
9
|
+
}));
|
|
10
|
+
/**
|
|
11
|
+
* The `Cratis.Components:dialog` component, registered under the bare name `dialog` - `Dialog` from
|
|
12
|
+
* `@cratis/components/Dialogs`.
|
|
13
|
+
*
|
|
14
|
+
* Shadowing PrimeReact's `dialog` deliberately. PrimeReact's is a modal frame and nothing more; this one
|
|
15
|
+
* resolves its result through Arc's dialog context, so a screen's dialog participates in the same
|
|
16
|
+
* request/response protocol as the rest of the application - a caller awaits a `DialogResult` instead of
|
|
17
|
+
* threading `visible` state and callbacks by hand.
|
|
18
|
+
*
|
|
19
|
+
* `visible` defaults to `true` because a dialog placed on a screen is being placed to be seen; a host
|
|
20
|
+
* that controls visibility sets the property explicitly.
|
|
21
|
+
*/ function SceneDialog({ element, slots }) {
|
|
22
|
+
return /*#__PURE__*/ jsx(ArcRuntimeBoundary, {
|
|
23
|
+
children: /*#__PURE__*/ jsx(Dialog, {
|
|
24
|
+
title: stringProperty(element.properties, 'title') ?? '',
|
|
25
|
+
visible: booleanProperty(element.properties, 'visible') ?? true,
|
|
26
|
+
width: stringProperty(element.properties, 'width'),
|
|
27
|
+
resizable: booleanProperty(element.properties, 'resizable'),
|
|
28
|
+
isValid: booleanProperty(element.properties, 'isValid'),
|
|
29
|
+
isBusy: booleanProperty(element.properties, 'isBusy'),
|
|
30
|
+
okLabel: stringProperty(element.properties, 'okLabel'),
|
|
31
|
+
cancelLabel: stringProperty(element.properties, 'cancelLabel'),
|
|
32
|
+
className: stringProperty(element.properties, 'className'),
|
|
33
|
+
children: slots.content
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { SceneDialog };
|
|
39
|
+
//# sourceMappingURL=SceneDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneDialog.js","sources":["../../../dialogs/SceneDialog.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary } from '../bindings';\nimport { booleanProperty, stringProperty } from '../properties';\n\nconst Dialog = lazy(async () => ({ default: (await import('@cratis/components/Dialogs')).Dialog }));\n\n/**\n * The `Cratis.Components:dialog` component, registered under the bare name `dialog` - `Dialog` from\n * `@cratis/components/Dialogs`.\n *\n * Shadowing PrimeReact's `dialog` deliberately. PrimeReact's is a modal frame and nothing more; this one\n * resolves its result through Arc's dialog context, so a screen's dialog participates in the same\n * request/response protocol as the rest of the application - a caller awaits a `DialogResult` instead of\n * threading `visible` state and callbacks by hand.\n *\n * `visible` defaults to `true` because a dialog placed on a screen is being placed to be seen; a host\n * that controls visibility sets the property explicitly.\n */\nexport function SceneDialog({ element, slots }: RegisteredComponentProps) {\n return (\n <ArcRuntimeBoundary>\n <Dialog\n title={stringProperty(element.properties, 'title') ?? ''}\n visible={booleanProperty(element.properties, 'visible') ?? true}\n width={stringProperty(element.properties, 'width')}\n resizable={booleanProperty(element.properties, 'resizable')}\n isValid={booleanProperty(element.properties, 'isValid')}\n isBusy={booleanProperty(element.properties, 'isBusy')}\n okLabel={stringProperty(element.properties, 'okLabel')}\n cancelLabel={stringProperty(element.properties, 'cancelLabel')}\n className={stringProperty(element.properties, 'className')}\n >\n {slots.content}\n </Dialog>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["Dialog","lazy","default","SceneDialog","element","slots","_jsx","ArcRuntimeBoundary","title","stringProperty","properties","visible","booleanProperty","width","resizable","isValid","isBusy","okLabel","cancelLabel","className","content"],"mappings":";;;;;;AAQA,MAAMA,MAAAA,iBAASC,IAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,4BAAA,CAA4B,EAAGF;KAAO,CAAA,CAAA;AAEhG;;;;;;;;;;;AAWC,IACM,SAASG,WAAAA,CAAY,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AACpE,IAAA,qBACIC,GAAA,CAACC,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAD,GAAA,CAACN,MAAAA,EAAAA;AACGQ,YAAAA,KAAAA,EAAOC,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,OAAA,CAAA,IAAY,EAAA;AACtDC,YAAAA,OAAAA,EAASC,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,SAAA,CAAA,IAAc,IAAA;YAC3DG,KAAAA,EAAOJ,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,OAAA,CAAA;YAC1CI,SAAAA,EAAWF,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;YAC/CK,OAAAA,EAASH,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,SAAA,CAAA;YAC7CM,MAAAA,EAAQJ,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,QAAA,CAAA;YAC5CO,OAAAA,EAASR,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,SAAA,CAAA;YAC5CQ,WAAAA,EAAaT,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;YAChDS,SAAAA,EAAWV,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;AAE7CL,YAAAA,QAAAA,EAAAA,KAAAA,CAAMe;;;AAIvB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneStepperCommandDialog.d.ts","sourceRoot":"","sources":["../../../dialogs/SceneStepperCommandDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAsB/D,wBAAgB,yBAAyB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,wBAAwB,+BAuBrF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { lazy } from 'react';
|
|
3
|
+
import { BindingKind } from '../bindings/BindingKind.js';
|
|
4
|
+
import { resolveElementBinding } from '../bindings/resolveElementBinding.js';
|
|
5
|
+
import { MissingBinding } from '../bindings/MissingBinding.js';
|
|
6
|
+
import { ArcRuntimeBoundary } from '../bindings/ArcRuntimeBoundary.js';
|
|
7
|
+
import { stringProperty, booleanProperty, unionProperty } from '../properties.js';
|
|
8
|
+
|
|
9
|
+
const StepperCommandDialog = /*#__PURE__*/ lazy(async ()=>({
|
|
10
|
+
default: (await import('@cratis/components/CommandDialog')).StepperCommandDialog
|
|
11
|
+
}));
|
|
12
|
+
/** Whether the step headers run across the top or down the side. */ const orientations = [
|
|
13
|
+
'horizontal',
|
|
14
|
+
'vertical'
|
|
15
|
+
];
|
|
16
|
+
/**
|
|
17
|
+
* The `Cratis.Components:stepperCommandDialog` component - `StepperCommandDialog` from
|
|
18
|
+
* `@cratis/components/CommandDialog`.
|
|
19
|
+
*
|
|
20
|
+
* `commandDialog` split across steps, for a command with more fields than fit one screen. It stays a
|
|
21
|
+
* single command: the steps partition the *fields*, not the intent, and nothing is submitted until the
|
|
22
|
+
* last step - so a half-finished wizard leaves no trace, which is exactly what a command should do.
|
|
23
|
+
*
|
|
24
|
+
* `linear` decides whether a step can be skipped ahead of the one before it. The step panels go in the
|
|
25
|
+
* `content` slot.
|
|
26
|
+
*/ function SceneStepperCommandDialog({ element, slots }) {
|
|
27
|
+
const { name, target } = resolveElementBinding(element, BindingKind.Command);
|
|
28
|
+
if (!target) return /*#__PURE__*/ jsx(MissingBinding, {
|
|
29
|
+
element: element,
|
|
30
|
+
kind: BindingKind.Command,
|
|
31
|
+
name: name
|
|
32
|
+
});
|
|
33
|
+
return /*#__PURE__*/ jsx(ArcRuntimeBoundary, {
|
|
34
|
+
children: /*#__PURE__*/ jsx(StepperCommandDialog, {
|
|
35
|
+
title: stringProperty(element.properties, 'title') ?? '',
|
|
36
|
+
command: target,
|
|
37
|
+
visible: booleanProperty(element.properties, 'visible') ?? true,
|
|
38
|
+
width: stringProperty(element.properties, 'width'),
|
|
39
|
+
linear: booleanProperty(element.properties, 'linear'),
|
|
40
|
+
orientation: unionProperty(element.properties, 'orientation', orientations),
|
|
41
|
+
okLabel: stringProperty(element.properties, 'okLabel'),
|
|
42
|
+
nextLabel: stringProperty(element.properties, 'nextLabel'),
|
|
43
|
+
previousLabel: stringProperty(element.properties, 'previousLabel'),
|
|
44
|
+
showCancel: booleanProperty(element.properties, 'showCancel'),
|
|
45
|
+
cancelLabel: stringProperty(element.properties, 'cancelLabel'),
|
|
46
|
+
children: slots.content
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { SceneStepperCommandDialog };
|
|
52
|
+
//# sourceMappingURL=SceneStepperCommandDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneStepperCommandDialog.js","sources":["../../../dialogs/SceneStepperCommandDialog.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary, BindingKind, MissingBinding, resolveElementBinding } from '../bindings';\nimport { booleanProperty, stringProperty, unionProperty } from '../properties';\n\nconst StepperCommandDialog = lazy(async () => ({\n default: (await import('@cratis/components/CommandDialog')).StepperCommandDialog,\n}));\n\n/** Whether the step headers run across the top or down the side. */\nconst orientations = ['horizontal', 'vertical'] as const;\n\n/**\n * The `Cratis.Components:stepperCommandDialog` component - `StepperCommandDialog` from\n * `@cratis/components/CommandDialog`.\n *\n * `commandDialog` split across steps, for a command with more fields than fit one screen. It stays a\n * single command: the steps partition the *fields*, not the intent, and nothing is submitted until the\n * last step - so a half-finished wizard leaves no trace, which is exactly what a command should do.\n *\n * `linear` decides whether a step can be skipped ahead of the one before it. The step panels go in the\n * `content` slot.\n */\nexport function SceneStepperCommandDialog({ element, slots }: RegisteredComponentProps) {\n const { name, target } = resolveElementBinding(element, BindingKind.Command);\n if (!target) return <MissingBinding element={element} kind={BindingKind.Command} name={name} />;\n\n return (\n <ArcRuntimeBoundary>\n <StepperCommandDialog\n title={stringProperty(element.properties, 'title') ?? ''}\n command={target}\n visible={booleanProperty(element.properties, 'visible') ?? true}\n width={stringProperty(element.properties, 'width')}\n linear={booleanProperty(element.properties, 'linear')}\n orientation={unionProperty(element.properties, 'orientation', orientations)}\n okLabel={stringProperty(element.properties, 'okLabel')}\n nextLabel={stringProperty(element.properties, 'nextLabel')}\n previousLabel={stringProperty(element.properties, 'previousLabel')}\n showCancel={booleanProperty(element.properties, 'showCancel')}\n cancelLabel={stringProperty(element.properties, 'cancelLabel')}\n >\n {slots.content}\n </StepperCommandDialog>\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["StepperCommandDialog","lazy","default","orientations","SceneStepperCommandDialog","element","slots","name","target","resolveElementBinding","BindingKind","Command","_jsx","MissingBinding","kind","ArcRuntimeBoundary","title","stringProperty","properties","command","visible","booleanProperty","width","linear","orientation","unionProperty","okLabel","nextLabel","previousLabel","showCancel","cancelLabel","content"],"mappings":";;;;;;;;AAQA,MAAMA,oBAAAA,iBAAuBC,IAAAA,CAAK,WAAa;AAC3CC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,kCAAA,CAAkC,EAAGF;KAChE,CAAA,CAAA;AAEA,qEACA,MAAMG,YAAAA,GAAe;AAAC,IAAA,YAAA;AAAc,IAAA;AAAW,CAAA;AAE/C;;;;;;;;;;AAUC,IACM,SAASC,yBAAAA,CAA0B,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;IAClF,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,qBAAAA,CAAsBJ,OAAAA,EAASK,WAAAA,CAAYC,OAAO,CAAA;IAC3E,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,GAAA,CAACC,cAAAA,EAAAA;QAAeR,OAAAA,EAASA,OAAAA;AAASS,QAAAA,IAAAA,EAAMJ,YAAYC,OAAO;QAAEJ,IAAAA,EAAMA;;AAEvF,IAAA,qBACIK,GAAA,CAACG,kBAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAH,GAAA,CAACZ,oBAAAA,EAAAA;AACGgB,YAAAA,KAAAA,EAAOC,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA,IAAY,EAAA;YACtDC,OAAAA,EAASX,MAAAA;AACTY,YAAAA,OAAAA,EAASC,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA,IAAc,IAAA;YAC3DI,KAAAA,EAAOL,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,OAAA,CAAA;YAC1CK,MAAAA,EAAQF,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,QAAA,CAAA;AAC5CM,YAAAA,WAAAA,EAAaC,aAAAA,CAAcpB,OAAAA,CAAQa,UAAU,EAAE,aAAA,EAAef,YAAAA,CAAAA;YAC9DuB,OAAAA,EAAST,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,SAAA,CAAA;YAC5CS,SAAAA,EAAWV,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,WAAA,CAAA;YAC9CU,aAAAA,EAAeX,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,eAAA,CAAA;YAClDW,UAAAA,EAAYR,eAAAA,CAAgBhB,OAAAA,CAAQa,UAAU,EAAE,YAAA,CAAA;YAChDY,WAAAA,EAAab,cAAAA,CAAeZ,OAAAA,CAAQa,UAAU,EAAE,aAAA,CAAA;AAE/CZ,YAAAA,QAAAA,EAAAA,KAAAA,CAAMyB;;;AAIvB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../dialogs/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../dialogs/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneFilterPanel.d.ts","sourceRoot":"","sources":["../../../editors/SceneFilterPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAe/D,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,wBAAwB,+BA+B5E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { useFilterState, FilterPanel } from '@cratis/components/Filter';
|
|
4
|
+
import { stringProperty } from '../properties.js';
|
|
5
|
+
import { filterDefinitions } from './filterDefinitions.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The `Cratis.Components:filterPanel` component - `FilterPanel` from `@cratis/components/Filter`.
|
|
9
|
+
*
|
|
10
|
+
* `FilterPanel` is a portal anchored to a button: it renders next to whatever opened it, which means it
|
|
11
|
+
* cannot be placed on a screen on its own. So this adapter is the whole control - the toggle button and
|
|
12
|
+
* the panel it anchors - and a screen places one element instead of having to model an anchor
|
|
13
|
+
* relationship the element tree has no way to express.
|
|
14
|
+
*
|
|
15
|
+
* Selection state comes from the library's own `useFilterState`, so the toggling, clearing and range
|
|
16
|
+
* behavior is the library's rather than a second implementation of it here.
|
|
17
|
+
*/ function SceneFilterPanel({ element, slots }) {
|
|
18
|
+
const filters = useMemo(()=>filterDefinitions(element.properties), [
|
|
19
|
+
element.properties
|
|
20
|
+
]);
|
|
21
|
+
const anchorRef = useRef(null);
|
|
22
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
23
|
+
const state = useFilterState(filters);
|
|
24
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
25
|
+
children: [
|
|
26
|
+
/*#__PURE__*/ jsx("button", {
|
|
27
|
+
type: "button",
|
|
28
|
+
ref: anchorRef,
|
|
29
|
+
"data-scene-id": element.id,
|
|
30
|
+
onClick: ()=>setIsOpen((open)=>!open),
|
|
31
|
+
children: stringProperty(element.properties, 'label') ?? 'Filters'
|
|
32
|
+
}),
|
|
33
|
+
/*#__PURE__*/ jsx(FilterPanel, {
|
|
34
|
+
isOpen: isOpen,
|
|
35
|
+
filters: filters,
|
|
36
|
+
filterValues: state.filterValues,
|
|
37
|
+
rangeValues: state.rangeValues,
|
|
38
|
+
customValues: state.customValues,
|
|
39
|
+
searchPlaceholder: stringProperty(element.properties, 'searchPlaceholder'),
|
|
40
|
+
expandedFilterKey: state.expandedFilterKey,
|
|
41
|
+
anchorRef: anchorRef,
|
|
42
|
+
onClose: ()=>setIsOpen(false),
|
|
43
|
+
onFilterToggle: state.handleToggleFilter,
|
|
44
|
+
onFilterClear: state.handleClearFilter,
|
|
45
|
+
onRangeChange: state.handleRangeChange,
|
|
46
|
+
onExpandedFilterChange: state.setExpandedFilterKey,
|
|
47
|
+
onCustomValueChange: state.handleCustomValueChange,
|
|
48
|
+
children: slots.content
|
|
49
|
+
})
|
|
50
|
+
]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { SceneFilterPanel };
|
|
55
|
+
//# sourceMappingURL=SceneFilterPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneFilterPanel.js","sources":["../../../editors/SceneFilterPanel.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useMemo, useRef, useState } from 'react';\nimport { FilterPanel, useFilterState } from '@cratis/components/Filter';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { stringProperty } from '../properties';\nimport { filterDefinitions } from './filterDefinitions';\n\n/**\n * The `Cratis.Components:filterPanel` component - `FilterPanel` from `@cratis/components/Filter`.\n *\n * `FilterPanel` is a portal anchored to a button: it renders next to whatever opened it, which means it\n * cannot be placed on a screen on its own. So this adapter is the whole control - the toggle button and\n * the panel it anchors - and a screen places one element instead of having to model an anchor\n * relationship the element tree has no way to express.\n *\n * Selection state comes from the library's own `useFilterState`, so the toggling, clearing and range\n * behavior is the library's rather than a second implementation of it here.\n */\nexport function SceneFilterPanel({ element, slots }: RegisteredComponentProps) {\n const filters = useMemo(() => filterDefinitions(element.properties), [element.properties]);\n const anchorRef = useRef<HTMLButtonElement>(null);\n const [isOpen, setIsOpen] = useState(false);\n const state = useFilterState(filters);\n\n return (\n <>\n <button type='button' ref={anchorRef} data-scene-id={element.id} onClick={() => setIsOpen(open => !open)}>\n {stringProperty(element.properties, 'label') ?? 'Filters'}\n </button>\n <FilterPanel\n isOpen={isOpen}\n filters={filters}\n filterValues={state.filterValues}\n rangeValues={state.rangeValues}\n customValues={state.customValues}\n searchPlaceholder={stringProperty(element.properties, 'searchPlaceholder')}\n expandedFilterKey={state.expandedFilterKey}\n anchorRef={anchorRef}\n onClose={() => setIsOpen(false)}\n onFilterToggle={state.handleToggleFilter}\n onFilterClear={state.handleClearFilter}\n onRangeChange={state.handleRangeChange}\n onExpandedFilterChange={state.setExpandedFilterKey}\n onCustomValueChange={state.handleCustomValueChange}\n >\n {slots.content}\n </FilterPanel>\n </>\n );\n}\n"],"names":["SceneFilterPanel","element","slots","filters","useMemo","filterDefinitions","properties","anchorRef","useRef","isOpen","setIsOpen","useState","state","useFilterState","_jsxs","_Fragment","_jsx","button","type","ref","data-scene-id","id","onClick","open","stringProperty","FilterPanel","filterValues","rangeValues","customValues","searchPlaceholder","expandedFilterKey","onClose","onFilterToggle","handleToggleFilter","onFilterClear","handleClearFilter","onRangeChange","handleRangeChange","onExpandedFilterChange","setExpandedFilterKey","onCustomValueChange","handleCustomValueChange","content"],"mappings":";;;;;;AASA;;;;;;;;;;AAUC,IACM,SAASA,gBAAAA,CAAiB,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AACzE,IAAA,MAAMC,UAAUC,OAAAA,CAAQ,IAAMC,iBAAAA,CAAkBJ,OAAAA,CAAQK,UAAU,CAAA,EAAG;AAACL,QAAAA,OAAAA,CAAQK;AAAW,KAAA,CAAA;AACzF,IAAA,MAAMC,YAAYC,MAAAA,CAA0B,IAAA,CAAA;AAC5C,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,QAAAA,CAAS,KAAA,CAAA;AACrC,IAAA,MAAMC,QAAQC,cAAAA,CAAeV,OAAAA,CAAAA;IAE7B,qBACIW,IAAA,CAAAC,QAAA,EAAA;;0BACIC,GAAA,CAACC,QAAAA,EAAAA;gBAAOC,IAAAA,EAAK,QAAA;gBAASC,GAAAA,EAAKZ,SAAAA;AAAWa,gBAAAA,eAAAA,EAAenB,QAAQoB,EAAE;AAAEC,gBAAAA,OAAAA,EAAS,IAAMZ,SAAAA,CAAUa,CAAAA,IAAAA,GAAQ,CAACA,IAAAA,CAAAA;0BAC9FC,cAAAA,CAAevB,OAAAA,CAAQK,UAAU,EAAE,OAAA,CAAA,IAAY;;0BAEpDU,GAAA,CAACS,WAAAA,EAAAA;gBACGhB,MAAAA,EAAQA,MAAAA;gBACRN,OAAAA,EAASA,OAAAA;AACTuB,gBAAAA,YAAAA,EAAcd,MAAMc,YAAY;AAChCC,gBAAAA,WAAAA,EAAaf,MAAMe,WAAW;AAC9BC,gBAAAA,YAAAA,EAAchB,MAAMgB,YAAY;gBAChCC,iBAAAA,EAAmBL,cAAAA,CAAevB,OAAAA,CAAQK,UAAU,EAAE,mBAAA,CAAA;AACtDwB,gBAAAA,iBAAAA,EAAmBlB,MAAMkB,iBAAiB;gBAC1CvB,SAAAA,EAAWA,SAAAA;AACXwB,gBAAAA,OAAAA,EAAS,IAAMrB,SAAAA,CAAU,KAAA,CAAA;AACzBsB,gBAAAA,cAAAA,EAAgBpB,MAAMqB,kBAAkB;AACxCC,gBAAAA,aAAAA,EAAetB,MAAMuB,iBAAiB;AACtCC,gBAAAA,aAAAA,EAAexB,MAAMyB,iBAAiB;AACtCC,gBAAAA,sBAAAA,EAAwB1B,MAAM2B,oBAAoB;AAClDC,gBAAAA,mBAAAA,EAAqB5B,MAAM6B,uBAAuB;AAEjDvC,gBAAAA,QAAAA,EAAAA,KAAAA,CAAMwC;;;;AAIvB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneObjectContentEditor.d.ts","sourceRoot":"","sources":["../../../editors/SceneObjectContentEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAe/D,wBAAgB,wBAAwB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAc7E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { ObjectContentEditor } from '@cratis/components/ObjectContentEditor';
|
|
4
|
+
import { objectProperty, stringProperty, booleanProperty } from '../properties.js';
|
|
5
|
+
import { useEditableCopy } from './useEditableCopy.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The `Cratis.Components:objectContentEditor` component - `ObjectContentEditor` from
|
|
9
|
+
* `@cratis/components/ObjectContentEditor`.
|
|
10
|
+
*
|
|
11
|
+
* Renders an arbitrary JSON document against its schema, so nested objects and arrays are navigable and
|
|
12
|
+
* each value is edited with a control that matches its declared type. That is what makes it worth
|
|
13
|
+
* exposing to a screen at all: the alternative is a textarea full of JSON, which is not an editor.
|
|
14
|
+
*
|
|
15
|
+
* `object` and `schema` come through the property bag as plain JSON, which is exactly what they are at
|
|
16
|
+
* runtime - the conversions state that, since the property bag is typed as unknown values by definition.
|
|
17
|
+
*/ function SceneObjectContentEditor({ element }) {
|
|
18
|
+
const declared = useMemo(()=>objectProperty(element.properties, 'object') ?? {}, [
|
|
19
|
+
element.properties
|
|
20
|
+
]);
|
|
21
|
+
const schema = useMemo(()=>objectProperty(element.properties, 'schema') ?? {}, [
|
|
22
|
+
element.properties
|
|
23
|
+
]);
|
|
24
|
+
const [object, setObject] = useEditableCopy(declared);
|
|
25
|
+
return /*#__PURE__*/ jsx(ObjectContentEditor, {
|
|
26
|
+
object: object,
|
|
27
|
+
schema: schema,
|
|
28
|
+
editMode: booleanProperty(element.properties, 'editMode'),
|
|
29
|
+
onChange: setObject,
|
|
30
|
+
className: stringProperty(element.properties, 'className')
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { SceneObjectContentEditor };
|
|
35
|
+
//# sourceMappingURL=SceneObjectContentEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneObjectContentEditor.js","sources":["../../../editors/SceneObjectContentEditor.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useMemo } from 'react';\nimport { ObjectContentEditor } from '@cratis/components/ObjectContentEditor';\nimport { Json, JsonSchema } from '@cratis/components/types';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, objectProperty, stringProperty } from '../properties';\nimport { useEditableCopy } from './useEditableCopy';\n\n/**\n * The `Cratis.Components:objectContentEditor` component - `ObjectContentEditor` from\n * `@cratis/components/ObjectContentEditor`.\n *\n * Renders an arbitrary JSON document against its schema, so nested objects and arrays are navigable and\n * each value is edited with a control that matches its declared type. That is what makes it worth\n * exposing to a screen at all: the alternative is a textarea full of JSON, which is not an editor.\n *\n * `object` and `schema` come through the property bag as plain JSON, which is exactly what they are at\n * runtime - the conversions state that, since the property bag is typed as unknown values by definition.\n */\nexport function SceneObjectContentEditor({ element }: RegisteredComponentProps) {\n const declared = useMemo(() => (objectProperty(element.properties, 'object') ?? {}) as unknown as Json, [element.properties]);\n const schema = useMemo(() => (objectProperty(element.properties, 'schema') ?? {}) as unknown as JsonSchema, [element.properties]);\n const [object, setObject] = useEditableCopy(declared);\n\n return (\n <ObjectContentEditor\n object={object}\n schema={schema}\n editMode={booleanProperty(element.properties, 'editMode')}\n onChange={setObject}\n className={stringProperty(element.properties, 'className')}\n />\n );\n}\n"],"names":["SceneObjectContentEditor","element","declared","useMemo","objectProperty","properties","schema","object","setObject","useEditableCopy","_jsx","ObjectContentEditor","editMode","booleanProperty","onChange","className","stringProperty"],"mappings":";;;;;;AAUA;;;;;;;;;;AAUC,IACM,SAASA,wBAAAA,CAAyB,EAAEC,OAAO,EAA4B,EAAA;IAC1E,MAAMC,QAAAA,GAAWC,QAAQ,IAAOC,cAAAA,CAAeH,QAAQI,UAAU,EAAE,QAAA,CAAA,IAAa,EAAC,EAAuB;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;IAC5H,MAAMC,MAAAA,GAASH,QAAQ,IAAOC,cAAAA,CAAeH,QAAQI,UAAU,EAAE,QAAA,CAAA,IAAa,EAAC,EAA6B;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;AAChI,IAAA,MAAM,CAACE,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,eAAAA,CAAgBP,QAAAA,CAAAA;AAE5C,IAAA,qBACIQ,GAAA,CAACC,mBAAAA,EAAAA;QACGJ,MAAAA,EAAQA,MAAAA;QACRD,MAAAA,EAAQA,MAAAA;QACRM,QAAAA,EAAUC,eAAAA,CAAgBZ,OAAAA,CAAQI,UAAU,EAAE,UAAA,CAAA;QAC9CS,QAAAA,EAAUN,SAAAA;QACVO,SAAAA,EAAWC,cAAAA,CAAef,OAAAA,CAAQI,UAAU,EAAE,WAAA;;AAG1D;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneObjectNavigationalBar.d.ts","sourceRoot":"","sources":["../../../editors/SceneObjectNavigationalBar.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAiB/D,wBAAgB,0BAA0B,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAW/E"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { ObjectNavigationalBar } from '@cratis/components/ObjectNavigationalBar';
|
|
4
|
+
import { stringArrayProperty, stringProperty } from '../properties.js';
|
|
5
|
+
import { useEditableCopy } from './useEditableCopy.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The `Cratis.Components:objectNavigationalBar` component - `ObjectNavigationalBar` from
|
|
9
|
+
* `@cratis/components/ObjectNavigationalBar`.
|
|
10
|
+
*
|
|
11
|
+
* The breadcrumb trail that says where you are inside a nested document, and lets you climb back out.
|
|
12
|
+
* Clicking a crumb truncates the trail to it, which is behavior the component reports rather than
|
|
13
|
+
* performs - so this adapter holds the trail and applies the truncation, and the bar is a working
|
|
14
|
+
* breadcrumb on a screen instead of a row of inert labels.
|
|
15
|
+
*
|
|
16
|
+
* The reported index is how many segments to *keep*, not the position of the crumb clicked: the bar
|
|
17
|
+
* prepends a `Root` crumb at index 0, so clicking the first real segment reports 1. `slice(0, index)` is
|
|
18
|
+
* what that means, and it is also exactly what the back arrow asks for when it reports `length - 1`.
|
|
19
|
+
*/ function SceneObjectNavigationalBar({ element }) {
|
|
20
|
+
const declared = useMemo(()=>stringArrayProperty(element.properties, 'navigationPath') ?? [], [
|
|
21
|
+
element.properties
|
|
22
|
+
]);
|
|
23
|
+
const [navigationPath, setNavigationPath] = useEditableCopy(declared);
|
|
24
|
+
return /*#__PURE__*/ jsx(ObjectNavigationalBar, {
|
|
25
|
+
navigationPath: navigationPath,
|
|
26
|
+
onNavigate: (index)=>setNavigationPath(navigationPath.slice(0, index)),
|
|
27
|
+
className: stringProperty(element.properties, 'className')
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { SceneObjectNavigationalBar };
|
|
32
|
+
//# sourceMappingURL=SceneObjectNavigationalBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneObjectNavigationalBar.js","sources":["../../../editors/SceneObjectNavigationalBar.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useMemo } from 'react';\nimport { ObjectNavigationalBar } from '@cratis/components/ObjectNavigationalBar';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { stringArrayProperty, stringProperty } from '../properties';\nimport { useEditableCopy } from './useEditableCopy';\n\n/**\n * The `Cratis.Components:objectNavigationalBar` component - `ObjectNavigationalBar` from\n * `@cratis/components/ObjectNavigationalBar`.\n *\n * The breadcrumb trail that says where you are inside a nested document, and lets you climb back out.\n * Clicking a crumb truncates the trail to it, which is behavior the component reports rather than\n * performs - so this adapter holds the trail and applies the truncation, and the bar is a working\n * breadcrumb on a screen instead of a row of inert labels.\n *\n * The reported index is how many segments to *keep*, not the position of the crumb clicked: the bar\n * prepends a `Root` crumb at index 0, so clicking the first real segment reports 1. `slice(0, index)` is\n * what that means, and it is also exactly what the back arrow asks for when it reports `length - 1`.\n */\nexport function SceneObjectNavigationalBar({ element }: RegisteredComponentProps) {\n const declared = useMemo(() => stringArrayProperty(element.properties, 'navigationPath') ?? [], [element.properties]);\n const [navigationPath, setNavigationPath] = useEditableCopy(declared);\n\n return (\n <ObjectNavigationalBar\n navigationPath={navigationPath}\n onNavigate={index => setNavigationPath(navigationPath.slice(0, index))}\n className={stringProperty(element.properties, 'className')}\n />\n );\n}\n"],"names":["SceneObjectNavigationalBar","element","declared","useMemo","stringArrayProperty","properties","navigationPath","setNavigationPath","useEditableCopy","_jsx","ObjectNavigationalBar","onNavigate","index","slice","className","stringProperty"],"mappings":";;;;;;AASA;;;;;;;;;;;;AAYC,IACM,SAASA,0BAAAA,CAA2B,EAAEC,OAAO,EAA4B,EAAA;IAC5E,MAAMC,QAAAA,GAAWC,QAAQ,IAAMC,mBAAAA,CAAoBH,QAAQI,UAAU,EAAE,gBAAA,CAAA,IAAqB,EAAE,EAAE;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;AACpH,IAAA,MAAM,CAACC,cAAAA,EAAgBC,iBAAAA,CAAkB,GAAGC,eAAAA,CAAgBN,QAAAA,CAAAA;AAE5D,IAAA,qBACIO,GAAA,CAACC,qBAAAA,EAAAA;QACGJ,cAAAA,EAAgBA,cAAAA;AAChBK,QAAAA,UAAAA,EAAYC,CAAAA,KAAAA,GAASL,iBAAAA,CAAkBD,cAAAA,CAAeO,KAAK,CAAC,CAAA,EAAGD,KAAAA,CAAAA,CAAAA;QAC/DE,SAAAA,EAAWC,cAAAA,CAAed,OAAAA,CAAQI,UAAU,EAAE,WAAA;;AAG1D;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneSchemaEditor.d.ts","sourceRoot":"","sources":["../../../editors/SceneSchemaEditor.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAY/D,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAetE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { SchemaEditor } from '@cratis/components/SchemaEditor';
|
|
4
|
+
import { objectProperty, stringProperty, booleanProperty } from '../properties.js';
|
|
5
|
+
import { useEditableCopy } from './useEditableCopy.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The `Cratis.Components:schemaEditor` component - `SchemaEditor` from `@cratis/components/SchemaEditor`.
|
|
9
|
+
*
|
|
10
|
+
* Edits a JSON schema as a typed property tree rather than as text. In a Cratis application this is how
|
|
11
|
+
* an event type's shape is inspected and evolved, so `canEdit` and `canNotEditReason` are a pair worth
|
|
12
|
+
* setting together - a schema is often deliberately read-only, and saying *why* in the same place is
|
|
13
|
+
* what keeps that from looking like a bug.
|
|
14
|
+
*/ function SceneSchemaEditor({ element }) {
|
|
15
|
+
const declared = useMemo(()=>objectProperty(element.properties, 'schema') ?? {}, [
|
|
16
|
+
element.properties
|
|
17
|
+
]);
|
|
18
|
+
const [schema, setSchema] = useEditableCopy(declared);
|
|
19
|
+
return /*#__PURE__*/ jsx(SchemaEditor, {
|
|
20
|
+
schema: schema,
|
|
21
|
+
eventTypeName: stringProperty(element.properties, 'eventTypeName'),
|
|
22
|
+
canEdit: booleanProperty(element.properties, 'canEdit'),
|
|
23
|
+
canNotEditReason: stringProperty(element.properties, 'canNotEditReason'),
|
|
24
|
+
editMode: booleanProperty(element.properties, 'editMode'),
|
|
25
|
+
onChange: setSchema,
|
|
26
|
+
className: stringProperty(element.properties, 'className')
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { SceneSchemaEditor };
|
|
31
|
+
//# sourceMappingURL=SceneSchemaEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneSchemaEditor.js","sources":["../../../editors/SceneSchemaEditor.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useMemo } from 'react';\nimport { SchemaEditor } from '@cratis/components/SchemaEditor';\nimport { JsonSchema } from '@cratis/components/types';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, objectProperty, stringProperty } from '../properties';\nimport { useEditableCopy } from './useEditableCopy';\n\n/**\n * The `Cratis.Components:schemaEditor` component - `SchemaEditor` from `@cratis/components/SchemaEditor`.\n *\n * Edits a JSON schema as a typed property tree rather than as text. In a Cratis application this is how\n * an event type's shape is inspected and evolved, so `canEdit` and `canNotEditReason` are a pair worth\n * setting together - a schema is often deliberately read-only, and saying *why* in the same place is\n * what keeps that from looking like a bug.\n */\nexport function SceneSchemaEditor({ element }: RegisteredComponentProps) {\n const declared = useMemo(() => (objectProperty(element.properties, 'schema') ?? {}) as unknown as JsonSchema, [element.properties]);\n const [schema, setSchema] = useEditableCopy(declared);\n\n return (\n <SchemaEditor\n schema={schema}\n eventTypeName={stringProperty(element.properties, 'eventTypeName')}\n canEdit={booleanProperty(element.properties, 'canEdit')}\n canNotEditReason={stringProperty(element.properties, 'canNotEditReason')}\n editMode={booleanProperty(element.properties, 'editMode')}\n onChange={setSchema}\n className={stringProperty(element.properties, 'className')}\n />\n );\n}\n"],"names":["SceneSchemaEditor","element","declared","useMemo","objectProperty","properties","schema","setSchema","useEditableCopy","_jsx","SchemaEditor","eventTypeName","stringProperty","canEdit","booleanProperty","canNotEditReason","editMode","onChange","className"],"mappings":";;;;;;AAUA;;;;;;;AAOC,IACM,SAASA,iBAAAA,CAAkB,EAAEC,OAAO,EAA4B,EAAA;IACnE,MAAMC,QAAAA,GAAWC,QAAQ,IAAOC,cAAAA,CAAeH,QAAQI,UAAU,EAAE,QAAA,CAAA,IAAa,EAAC,EAA6B;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;AAClI,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,eAAAA,CAAgBN,QAAAA,CAAAA;AAE5C,IAAA,qBACIO,GAAA,CAACC,YAAAA,EAAAA;QACGJ,MAAAA,EAAQA,MAAAA;QACRK,aAAAA,EAAeC,cAAAA,CAAeX,OAAAA,CAAQI,UAAU,EAAE,eAAA,CAAA;QAClDQ,OAAAA,EAASC,eAAAA,CAAgBb,OAAAA,CAAQI,UAAU,EAAE,SAAA,CAAA;QAC7CU,gBAAAA,EAAkBH,cAAAA,CAAeX,OAAAA,CAAQI,UAAU,EAAE,kBAAA,CAAA;QACrDW,QAAAA,EAAUF,eAAAA,CAAgBb,OAAAA,CAAQI,UAAU,EAAE,UAAA,CAAA;QAC9CY,QAAAA,EAAUV,SAAAA;QACVW,SAAAA,EAAWN,cAAAA,CAAeX,OAAAA,CAAQI,UAAU,EAAE,WAAA;;AAG1D;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneTimeMachine.d.ts","sourceRoot":"","sources":["../../../editors/SceneTimeMachine.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAa/D,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAarE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { TimeMachine } from '@cratis/components/TimeMachine';
|
|
4
|
+
import { numberProperty } from '../properties.js';
|
|
5
|
+
import { timeMachineVersions } from './timeMachineVersions.js';
|
|
6
|
+
import { useEditableCopy } from './useEditableCopy.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The `Cratis.Components:timeMachine` component - `TimeMachine` from `@cratis/components/TimeMachine`.
|
|
10
|
+
*
|
|
11
|
+
* Scrubs through successive versions of something on a timeline - which in an event-sourced application
|
|
12
|
+
* is the most natural way to look at anything, since every read model *has* a history rather than only a
|
|
13
|
+
* current value. The selected version is held here so the timeline scrubs on a screen; a host that wants
|
|
14
|
+
* to drive the selection renders the component itself.
|
|
15
|
+
*/ function SceneTimeMachine({ element }) {
|
|
16
|
+
const versions = useMemo(()=>timeMachineVersions(element.properties), [
|
|
17
|
+
element.properties
|
|
18
|
+
]);
|
|
19
|
+
const declaredIndex = numberProperty(element.properties, 'currentVersionIndex') ?? 0;
|
|
20
|
+
const [currentVersionIndex, setCurrentVersionIndex] = useEditableCopy(declaredIndex);
|
|
21
|
+
return /*#__PURE__*/ jsx(TimeMachine, {
|
|
22
|
+
versions: versions,
|
|
23
|
+
currentVersionIndex: currentVersionIndex,
|
|
24
|
+
onVersionChange: setCurrentVersionIndex,
|
|
25
|
+
scrollSensitivity: numberProperty(element.properties, 'scrollSensitivity')
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { SceneTimeMachine };
|
|
30
|
+
//# sourceMappingURL=SceneTimeMachine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneTimeMachine.js","sources":["../../../editors/SceneTimeMachine.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useMemo } from 'react';\nimport { TimeMachine } from '@cratis/components/TimeMachine';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { numberProperty } from '../properties';\nimport { timeMachineVersions } from './timeMachineVersions';\nimport { useEditableCopy } from './useEditableCopy';\n\n/**\n * The `Cratis.Components:timeMachine` component - `TimeMachine` from `@cratis/components/TimeMachine`.\n *\n * Scrubs through successive versions of something on a timeline - which in an event-sourced application\n * is the most natural way to look at anything, since every read model *has* a history rather than only a\n * current value. The selected version is held here so the timeline scrubs on a screen; a host that wants\n * to drive the selection renders the component itself.\n */\nexport function SceneTimeMachine({ element }: RegisteredComponentProps) {\n const versions = useMemo(() => timeMachineVersions(element.properties), [element.properties]);\n const declaredIndex = numberProperty(element.properties, 'currentVersionIndex') ?? 0;\n const [currentVersionIndex, setCurrentVersionIndex] = useEditableCopy(declaredIndex);\n\n return (\n <TimeMachine\n versions={versions}\n currentVersionIndex={currentVersionIndex}\n onVersionChange={setCurrentVersionIndex}\n scrollSensitivity={numberProperty(element.properties, 'scrollSensitivity')}\n />\n );\n}\n"],"names":["SceneTimeMachine","element","versions","useMemo","timeMachineVersions","properties","declaredIndex","numberProperty","currentVersionIndex","setCurrentVersionIndex","useEditableCopy","_jsx","TimeMachine","onVersionChange","scrollSensitivity"],"mappings":";;;;;;;AAUA;;;;;;;AAOC,IACM,SAASA,gBAAAA,CAAiB,EAAEC,OAAO,EAA4B,EAAA;AAClE,IAAA,MAAMC,WAAWC,OAAAA,CAAQ,IAAMC,mBAAAA,CAAoBH,OAAAA,CAAQI,UAAU,CAAA,EAAG;AAACJ,QAAAA,OAAAA,CAAQI;AAAW,KAAA,CAAA;AAC5F,IAAA,MAAMC,aAAAA,GAAgBC,cAAAA,CAAeN,OAAAA,CAAQI,UAAU,EAAE,qBAAA,CAAA,IAA0B,CAAA;AACnF,IAAA,MAAM,CAACG,mBAAAA,EAAqBC,sBAAAA,CAAuB,GAAGC,eAAAA,CAAgBJ,aAAAA,CAAAA;AAEtE,IAAA,qBACIK,GAAA,CAACC,WAAAA,EAAAA;QACGV,QAAAA,EAAUA,QAAAA;QACVM,mBAAAA,EAAqBA,mBAAAA;QACrBK,eAAAA,EAAiBJ,sBAAAA;QACjBK,iBAAAA,EAAmBP,cAAAA,CAAeN,OAAAA,CAAQI,UAAU,EAAE,mBAAA;;AAGlE;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterDefinitions.d.ts","sourceRoot":"","sources":["../../../editors/filterDefinitions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAA6B,MAAM,2BAA2B,CAAC;AAaxF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,EAAE,CAqBzF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { objectArrayProperty, stringProperty, numberProperty, booleanProperty, unionProperty } from '../properties.js';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
/** The value kinds a filter can be declared over. */ const filterTypes = [
|
|
6
|
+
'string',
|
|
7
|
+
'number',
|
|
8
|
+
'date',
|
|
9
|
+
'custom'
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* Reads a `filters` property into the `FilterDefinition` list `FilterPanel` renders.
|
|
13
|
+
*
|
|
14
|
+
* A definition needs a `key` and a `label`; an entry without both is dropped, since a filter with no key
|
|
15
|
+
* has nothing to filter on and one with no label cannot be shown. Everything else is optional and falls
|
|
16
|
+
* through to the panel's own defaults.
|
|
17
|
+
*/ function filterDefinitions(properties) {
|
|
18
|
+
const entries = objectArrayProperty(properties, 'filters') ?? [];
|
|
19
|
+
return entries.map((entry)=>{
|
|
20
|
+
const key = stringProperty(entry, 'key');
|
|
21
|
+
const label = stringProperty(entry, 'label');
|
|
22
|
+
if (key === undefined || label === undefined) return undefined;
|
|
23
|
+
return {
|
|
24
|
+
key,
|
|
25
|
+
label,
|
|
26
|
+
type: unionProperty(entry, 'type', filterTypes),
|
|
27
|
+
multi: booleanProperty(entry, 'multi'),
|
|
28
|
+
options: filterOptions(entry),
|
|
29
|
+
searchable: booleanProperty(entry, 'searchable'),
|
|
30
|
+
searchPlaceholder: stringProperty(entry, 'searchPlaceholder'),
|
|
31
|
+
buckets: numberProperty(entry, 'buckets')
|
|
32
|
+
};
|
|
33
|
+
}).filter((definition)=>definition !== undefined);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Reads one filter's selectable options. An option's `value` is what gets applied and its `key` is what
|
|
37
|
+
* the panel tracks selection by; `value` falls back to the key so the common case of a plain string
|
|
38
|
+
* choice needs only `key` and `label`.
|
|
39
|
+
*/ function filterOptions(entry) {
|
|
40
|
+
const options = objectArrayProperty(entry, 'options');
|
|
41
|
+
if (options === undefined) return undefined;
|
|
42
|
+
return options.map((option)=>{
|
|
43
|
+
const key = stringProperty(option, 'key');
|
|
44
|
+
const label = stringProperty(option, 'label');
|
|
45
|
+
if (key === undefined || label === undefined) return undefined;
|
|
46
|
+
const value = stringProperty(option, 'value') ?? numberProperty(option, 'value') ?? booleanProperty(option, 'value') ?? key;
|
|
47
|
+
return {
|
|
48
|
+
key,
|
|
49
|
+
label,
|
|
50
|
+
value,
|
|
51
|
+
count: numberProperty(option, 'count')
|
|
52
|
+
};
|
|
53
|
+
}).filter((option)=>option !== undefined);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { filterDefinitions };
|
|
57
|
+
//# sourceMappingURL=filterDefinitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterDefinitions.js","sources":["../../../editors/filterDefinitions.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { FilterDefinition, FilterOption, FilterValue } from '@cratis/components/Filter';\nimport { booleanProperty, numberProperty, objectArrayProperty, stringProperty, unionProperty } from '../properties';\n\n/** The value kinds a filter can be declared over. */\nconst filterTypes = ['string', 'number', 'date', 'custom'] as const;\n\n/**\n * Reads a `filters` property into the `FilterDefinition` list `FilterPanel` renders.\n *\n * A definition needs a `key` and a `label`; an entry without both is dropped, since a filter with no key\n * has nothing to filter on and one with no label cannot be shown. Everything else is optional and falls\n * through to the panel's own defaults.\n */\nexport function filterDefinitions(properties: Record<string, unknown>): FilterDefinition[] {\n const entries = objectArrayProperty(properties, 'filters') ?? [];\n\n return entries\n .map((entry): FilterDefinition | undefined => {\n const key = stringProperty(entry, 'key');\n const label = stringProperty(entry, 'label');\n if (key === undefined || label === undefined) return undefined;\n\n return {\n key,\n label,\n type: unionProperty(entry, 'type', filterTypes),\n multi: booleanProperty(entry, 'multi'),\n options: filterOptions(entry),\n searchable: booleanProperty(entry, 'searchable'),\n searchPlaceholder: stringProperty(entry, 'searchPlaceholder'),\n buckets: numberProperty(entry, 'buckets'),\n };\n })\n .filter((definition): definition is FilterDefinition => definition !== undefined);\n}\n\n/**\n * Reads one filter's selectable options. An option's `value` is what gets applied and its `key` is what\n * the panel tracks selection by; `value` falls back to the key so the common case of a plain string\n * choice needs only `key` and `label`.\n */\nfunction filterOptions(entry: Record<string, unknown>): FilterOption[] | undefined {\n const options = objectArrayProperty(entry, 'options');\n if (options === undefined) return undefined;\n\n return options\n .map((option): FilterOption | undefined => {\n const key = stringProperty(option, 'key');\n const label = stringProperty(option, 'label');\n if (key === undefined || label === undefined) return undefined;\n\n const value: FilterValue = stringProperty(option, 'value') ?? numberProperty(option, 'value') ?? booleanProperty(option, 'value') ?? key;\n return { key, label, value, count: numberProperty(option, 'count') };\n })\n .filter((option): option is FilterOption => option !== undefined);\n}\n"],"names":["filterTypes","filterDefinitions","properties","entries","objectArrayProperty","map","entry","key","stringProperty","label","undefined","type","unionProperty","multi","booleanProperty","options","filterOptions","searchable","searchPlaceholder","buckets","numberProperty","filter","definition","option","value","count"],"mappings":";;AAAA;AACA;AAKA,sDACA,MAAMA,WAAAA,GAAc;AAAC,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA,MAAA;AAAQ,IAAA;AAAS,CAAA;AAE1D;;;;;;IAOO,SAASC,iBAAAA,CAAkBC,UAAmC,EAAA;AACjE,IAAA,MAAMC,OAAAA,GAAUC,mBAAAA,CAAoBF,UAAAA,EAAY,SAAA,CAAA,IAAc,EAAE;IAEhE,OAAOC,OAAAA,CACFE,GAAG,CAAC,CAACC,KAAAA,GAAAA;QACF,MAAMC,GAAAA,GAAMC,eAAeF,KAAAA,EAAO,KAAA,CAAA;QAClC,MAAMG,KAAAA,GAAQD,eAAeF,KAAAA,EAAO,OAAA,CAAA;AACpC,QAAA,IAAIC,GAAAA,KAAQG,SAAAA,IAAaD,KAAAA,KAAUC,SAAAA,EAAW,OAAOA,SAAAA;QAErD,OAAO;AACHH,YAAAA,GAAAA;AACAE,YAAAA,KAAAA;YACAE,IAAAA,EAAMC,aAAAA,CAAcN,OAAO,MAAA,EAAQN,WAAAA,CAAAA;AACnCa,YAAAA,KAAAA,EAAOC,gBAAgBR,KAAAA,EAAO,OAAA,CAAA;AAC9BS,YAAAA,OAAAA,EAASC,aAAAA,CAAcV,KAAAA,CAAAA;AACvBW,YAAAA,UAAAA,EAAYH,gBAAgBR,KAAAA,EAAO,YAAA,CAAA;AACnCY,YAAAA,iBAAAA,EAAmBV,eAAeF,KAAAA,EAAO,mBAAA,CAAA;AACzCa,YAAAA,OAAAA,EAASC,eAAed,KAAAA,EAAO,SAAA;AACnC,SAAA;AACJ,IAAA,CAAA,CAAA,CACCe,MAAM,CAAC,CAACC,UAAAA,GAA+CA,UAAAA,KAAeZ,SAAAA,CAAAA;AAC/E;AAEA;;;;IAKA,SAASM,cAAcV,KAA8B,EAAA;IACjD,MAAMS,OAAAA,GAAUX,oBAAoBE,KAAAA,EAAO,SAAA,CAAA;IAC3C,IAAIS,OAAAA,KAAYL,WAAW,OAAOA,SAAAA;IAElC,OAAOK,OAAAA,CACFV,GAAG,CAAC,CAACkB,MAAAA,GAAAA;QACF,MAAMhB,GAAAA,GAAMC,eAAee,MAAAA,EAAQ,KAAA,CAAA;QACnC,MAAMd,KAAAA,GAAQD,eAAee,MAAAA,EAAQ,OAAA,CAAA;AACrC,QAAA,IAAIhB,GAAAA,KAAQG,SAAAA,IAAaD,KAAAA,KAAUC,SAAAA,EAAW,OAAOA,SAAAA;QAErD,MAAMc,KAAAA,GAAqBhB,eAAee,MAAAA,EAAQ,OAAA,CAAA,IAAYH,eAAeG,MAAAA,EAAQ,OAAA,CAAA,IAAYT,eAAAA,CAAgBS,MAAAA,EAAQ,OAAA,CAAA,IAAYhB,GAAAA;QACrI,OAAO;AAAEA,YAAAA,GAAAA;AAAKE,YAAAA,KAAAA;AAAOe,YAAAA,KAAAA;AAAOC,YAAAA,KAAAA,EAAOL,eAAeG,MAAAA,EAAQ,OAAA;AAAS,SAAA;AACvE,IAAA,CAAA,CAAA,CACCF,MAAM,CAAC,CAACE,MAAAA,GAAmCA,MAAAA,KAAWb,SAAAA,CAAAA;AAC/D;;;;"}
|
package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_navigating_back_up_the_trail.d.ts","sourceRoot":"","sources":["../../../../editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { fireEvent, render, screen } from '@testing-library/react';
|
|
3
|
+
import { externalComponent } from '../../given';
|
|
4
|
+
import { SceneObjectNavigationalBar } from '../SceneObjectNavigationalBar';
|
|
5
|
+
describe('when navigating back up the trail', () => {
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
const element = externalComponent('Cratis.Components:objectNavigationalBar', { navigationPath: ['shipping', 'address', 'street'] });
|
|
8
|
+
render(_jsx(SceneObjectNavigationalBar, { element: element, slots: {} }));
|
|
9
|
+
fireEvent.click(screen.getByText('address'));
|
|
10
|
+
});
|
|
11
|
+
it('should keep the crumb that was clicked', () => screen.getByText('address').textContent.should.equal('address'));
|
|
12
|
+
it('should keep everything above it', () => screen.getByText('shipping').textContent.should.equal('shipping'));
|
|
13
|
+
it('should drop everything below it', () => (screen.queryByText('street') === null).should.be.true);
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=when_navigating_back_up_the_trail.js.map
|
package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_navigating_back_up_the_trail.js","sourceRoot":"","sources":["../../../../editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC/C,UAAU,CAAC,GAAG,EAAE;QACZ,MAAM,OAAO,GAAG,iBAAiB,CAAC,yCAAyC,EAAE,EAAE,cAAc,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpI,MAAM,CAAC,KAAC,0BAA0B,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAI,CAAC,CAAC;QACpE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAY,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACrH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAY,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAChH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACxG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_reading_filter_definitions.d.ts","sourceRoot":"","sources":["../../../../editors/for_filterDefinitions/when_reading_filter_definitions.ts"],"names":[],"mappings":""}
|