@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":"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,YAAmC,EAAA;AACjE,IAAA,MAAMC,OAAAA,GAAUC,8BAAAA,CAAoBF,YAAAA,EAAY,SAAA,CAAA,IAAc,EAAE;IAEhE,OAAOC,OAAAA,CACFE,GAAG,CAAC,CAACC,KAAAA,GAAAA;QACF,MAAMC,GAAAA,GAAMC,0BAAeF,KAAAA,EAAO,KAAA,CAAA;QAClC,MAAMG,KAAAA,GAAQD,0BAAeF,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,wBAAAA,CAAcN,OAAO,MAAA,EAAQN,WAAAA,CAAAA;AACnCa,YAAAA,KAAAA,EAAOC,2BAAgBR,KAAAA,EAAO,OAAA,CAAA;AAC9BS,YAAAA,OAAAA,EAASC,aAAAA,CAAcV,KAAAA,CAAAA;AACvBW,YAAAA,UAAAA,EAAYH,2BAAgBR,KAAAA,EAAO,YAAA,CAAA;AACnCY,YAAAA,iBAAAA,EAAmBV,0BAAeF,KAAAA,EAAO,mBAAA,CAAA;AACzCa,YAAAA,OAAAA,EAASC,0BAAed,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,+BAAoBE,KAAAA,EAAO,SAAA,CAAA;IAC3C,IAAIS,OAAAA,KAAYL,WAAW,OAAOA,SAAAA;IAElC,OAAOK,OAAAA,CACFV,GAAG,CAAC,CAACkB,MAAAA,GAAAA;QACF,MAAMhB,GAAAA,GAAMC,0BAAee,MAAAA,EAAQ,KAAA,CAAA;QACnC,MAAMd,KAAAA,GAAQD,0BAAee,MAAAA,EAAQ,OAAA,CAAA;AACrC,QAAA,IAAIhB,GAAAA,KAAQG,SAAAA,IAAaD,KAAAA,KAAUC,SAAAA,EAAW,OAAOA,SAAAA;QAErD,MAAMc,KAAAA,GAAqBhB,0BAAee,MAAAA,EAAQ,OAAA,CAAA,IAAYH,0BAAeG,MAAAA,EAAQ,OAAA,CAAA,IAAYT,0BAAAA,CAAgBS,MAAAA,EAAQ,OAAA,CAAA,IAAYhB,GAAAA;QACrI,OAAO;AAAEA,YAAAA,GAAAA;AAAKE,YAAAA,KAAAA;AAAOe,YAAAA,KAAAA;AAAOC,YAAAA,KAAAA,EAAOL,0BAAeG,MAAAA,EAAQ,OAAA;AAAS,SAAA;AACvE,IAAA,CAAA,CAAA,CACCF,MAAM,CAAC,CAACE,MAAAA,GAAmCA,MAAAA,KAAWb,SAAAA,CAAAA;AAC/D;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var properties = require('../properties.js');
|
|
4
|
+
|
|
5
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
6
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
7
|
+
/**
|
|
8
|
+
* Reads a `versions` property into the `Version` list `TimeMachine` renders.
|
|
9
|
+
*
|
|
10
|
+
* An entry without an `id`, a `label` and a parseable `timestamp` is dropped rather than defaulted,
|
|
11
|
+
* because `TimeMachine`'s whole job is to place versions on a timeline: a version invented at the epoch
|
|
12
|
+
* would not be a slightly wrong entry, it would silently reorder every real one around it. A dropped
|
|
13
|
+
* entry is visibly one item short; a fabricated one is a timeline that lies.
|
|
14
|
+
*
|
|
15
|
+
* `content` is rendered as text. A version whose content is a whole element tree is not something a
|
|
16
|
+
* property bag can carry, and pretending otherwise would be the wrong seam - that belongs in a screen
|
|
17
|
+
* template, not in a property.
|
|
18
|
+
*/ function timeMachineVersions(properties$1) {
|
|
19
|
+
const entries = properties.objectArrayProperty(properties$1, 'versions') ?? [];
|
|
20
|
+
return entries.map((entry)=>{
|
|
21
|
+
const id = properties.stringProperty(entry, 'id');
|
|
22
|
+
const label = properties.stringProperty(entry, 'label');
|
|
23
|
+
const timestamp = timestampOf(entry);
|
|
24
|
+
if (id === undefined || label === undefined || timestamp === undefined) return undefined;
|
|
25
|
+
return {
|
|
26
|
+
id,
|
|
27
|
+
label,
|
|
28
|
+
timestamp,
|
|
29
|
+
content: properties.stringProperty(entry, 'content') ?? ''
|
|
30
|
+
};
|
|
31
|
+
}).filter((version)=>version !== undefined);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Reads an entry's `timestamp`, accepting both the ISO string a `.play` screen writes and the epoch
|
|
35
|
+
* number a serializer may produce, and rejecting anything that does not parse into a real date.
|
|
36
|
+
*/ function timestampOf(entry) {
|
|
37
|
+
const value = properties.stringProperty(entry, 'timestamp') ?? properties.numberProperty(entry, 'timestamp');
|
|
38
|
+
if (value === undefined) return undefined;
|
|
39
|
+
const timestamp = new Date(value);
|
|
40
|
+
return Number.isNaN(timestamp.getTime()) ? undefined : timestamp;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
exports.timeMachineVersions = timeMachineVersions;
|
|
44
|
+
//# sourceMappingURL=timeMachineVersions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeMachineVersions.js","sources":["../../../editors/timeMachineVersions.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 { Version } from '@cratis/components/TimeMachine';\nimport { numberProperty, objectArrayProperty, stringProperty } from '../properties';\n\n/**\n * Reads a `versions` property into the `Version` list `TimeMachine` renders.\n *\n * An entry without an `id`, a `label` and a parseable `timestamp` is dropped rather than defaulted,\n * because `TimeMachine`'s whole job is to place versions on a timeline: a version invented at the epoch\n * would not be a slightly wrong entry, it would silently reorder every real one around it. A dropped\n * entry is visibly one item short; a fabricated one is a timeline that lies.\n *\n * `content` is rendered as text. A version whose content is a whole element tree is not something a\n * property bag can carry, and pretending otherwise would be the wrong seam - that belongs in a screen\n * template, not in a property.\n */\nexport function timeMachineVersions(properties: Record<string, unknown>): Version[] {\n const entries = objectArrayProperty(properties, 'versions') ?? [];\n\n return entries\n .map((entry): Version | undefined => {\n const id = stringProperty(entry, 'id');\n const label = stringProperty(entry, 'label');\n const timestamp = timestampOf(entry);\n if (id === undefined || label === undefined || timestamp === undefined) return undefined;\n\n return { id, label, timestamp, content: stringProperty(entry, 'content') ?? '' };\n })\n .filter((version): version is Version => version !== undefined);\n}\n\n/**\n * Reads an entry's `timestamp`, accepting both the ISO string a `.play` screen writes and the epoch\n * number a serializer may produce, and rejecting anything that does not parse into a real date.\n */\nfunction timestampOf(entry: Record<string, unknown>): Date | undefined {\n const value = stringProperty(entry, 'timestamp') ?? numberProperty(entry, 'timestamp');\n if (value === undefined) return undefined;\n\n const timestamp = new Date(value);\n return Number.isNaN(timestamp.getTime()) ? undefined : timestamp;\n}\n"],"names":["timeMachineVersions","properties","entries","objectArrayProperty","map","entry","id","stringProperty","label","timestamp","timestampOf","undefined","content","filter","version","value","numberProperty","Date","Number","isNaN","getTime"],"mappings":";;;;AAAA;AACA;AAKA;;;;;;;;;;;IAYO,SAASA,mBAAAA,CAAoBC,YAAmC,EAAA;AACnE,IAAA,MAAMC,OAAAA,GAAUC,8BAAAA,CAAoBF,YAAAA,EAAY,UAAA,CAAA,IAAe,EAAE;IAEjE,OAAOC,OAAAA,CACFE,GAAG,CAAC,CAACC,KAAAA,GAAAA;QACF,MAAMC,EAAAA,GAAKC,0BAAeF,KAAAA,EAAO,IAAA,CAAA;QACjC,MAAMG,KAAAA,GAAQD,0BAAeF,KAAAA,EAAO,OAAA,CAAA;AACpC,QAAA,MAAMI,YAAYC,WAAAA,CAAYL,KAAAA,CAAAA;AAC9B,QAAA,IAAIC,OAAOK,SAAAA,IAAaH,KAAAA,KAAUG,SAAAA,IAAaF,SAAAA,KAAcE,WAAW,OAAOA,SAAAA;QAE/E,OAAO;AAAEL,YAAAA,EAAAA;AAAIE,YAAAA,KAAAA;AAAOC,YAAAA,SAAAA;YAAWG,OAAAA,EAASL,yBAAAA,CAAeF,OAAO,SAAA,CAAA,IAAc;AAAG,SAAA;AACnF,IAAA,CAAA,CAAA,CACCQ,MAAM,CAAC,CAACC,OAAAA,GAAgCA,OAAAA,KAAYH,SAAAA,CAAAA;AAC7D;AAEA;;;IAIA,SAASD,YAAYL,KAA8B,EAAA;AAC/C,IAAA,MAAMU,KAAAA,GAAQR,yBAAAA,CAAeF,KAAAA,EAAO,WAAA,CAAA,IAAgBW,0BAAeX,KAAAA,EAAO,WAAA,CAAA;IAC1E,IAAIU,KAAAA,KAAUJ,WAAW,OAAOA,SAAAA;IAEhC,MAAMF,SAAAA,GAAY,IAAIQ,IAAAA,CAAKF,KAAAA,CAAAA;AAC3B,IAAA,OAAOG,OAAOC,KAAK,CAACV,SAAAA,CAAUW,OAAO,MAAMT,SAAAA,GAAYF,SAAAA;AAC3D;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
|
|
5
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
6
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
7
|
+
/**
|
|
8
|
+
* Keeps a locally editable copy of a value a screen declares, resetting it whenever the declared value
|
|
9
|
+
* itself changes.
|
|
10
|
+
*
|
|
11
|
+
* The editors in `@cratis/components` are controlled components: `ObjectContentEditor`, `SchemaEditor`
|
|
12
|
+
* and `TimeMachine` all render what they are given and report changes through a callback. A Scene screen
|
|
13
|
+
* can only *declare* the starting value - a property bag has no way to receive a callback - so without
|
|
14
|
+
* somewhere to put the result, every one of these would render as a dead surface that discards every
|
|
15
|
+
* keystroke. Local state is what makes them behave like the editors they are while a screen is being
|
|
16
|
+
* designed; a host that needs the edits for real reads them off its own model, not off the screen.
|
|
17
|
+
*
|
|
18
|
+
* The reset is deliberately done during render rather than in an effect: Studio rewrites an element's
|
|
19
|
+
* properties as the designer types, and an effect-based reset would show one frame of the previous
|
|
20
|
+
* value every time.
|
|
21
|
+
*/ function useEditableCopy(source) {
|
|
22
|
+
const [edited, setEdited] = react.useState(source);
|
|
23
|
+
const [lastSource, setLastSource] = react.useState(source);
|
|
24
|
+
if (lastSource !== source) {
|
|
25
|
+
setLastSource(source);
|
|
26
|
+
setEdited(source);
|
|
27
|
+
return [
|
|
28
|
+
source,
|
|
29
|
+
setEdited
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
return [
|
|
33
|
+
edited,
|
|
34
|
+
setEdited
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.useEditableCopy = useEditableCopy;
|
|
39
|
+
//# sourceMappingURL=useEditableCopy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEditableCopy.js","sources":["../../../editors/useEditableCopy.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 { useState } from 'react';\n\n/**\n * Keeps a locally editable copy of a value a screen declares, resetting it whenever the declared value\n * itself changes.\n *\n * The editors in `@cratis/components` are controlled components: `ObjectContentEditor`, `SchemaEditor`\n * and `TimeMachine` all render what they are given and report changes through a callback. A Scene screen\n * can only *declare* the starting value - a property bag has no way to receive a callback - so without\n * somewhere to put the result, every one of these would render as a dead surface that discards every\n * keystroke. Local state is what makes them behave like the editors they are while a screen is being\n * designed; a host that needs the edits for real reads them off its own model, not off the screen.\n *\n * The reset is deliberately done during render rather than in an effect: Studio rewrites an element's\n * properties as the designer types, and an effect-based reset would show one frame of the previous\n * value every time.\n */\nexport function useEditableCopy<T>(source: T): [T, (value: T) => void] {\n const [edited, setEdited] = useState(source);\n const [lastSource, setLastSource] = useState(source);\n\n if (lastSource !== source) {\n setLastSource(source);\n setEdited(source);\n return [source, setEdited];\n }\n\n return [edited, setEdited];\n}\n"],"names":["useEditableCopy","source","edited","setEdited","useState","lastSource","setLastSource"],"mappings":";;;;AAAA;AACA;AAIA;;;;;;;;;;;;;;IAeO,SAASA,eAAAA,CAAmBC,MAAS,EAAA;AACxC,IAAA,MAAM,CAACC,MAAAA,EAAQC,SAAAA,CAAU,GAAGC,cAAAA,CAASH,MAAAA,CAAAA;AACrC,IAAA,MAAM,CAACI,UAAAA,EAAYC,aAAAA,CAAc,GAAGF,cAAAA,CAASH,MAAAA,CAAAA;AAE7C,IAAA,IAAII,eAAeJ,MAAAA,EAAQ;QACvBK,aAAAA,CAAcL,MAAAA,CAAAA;QACdE,SAAAA,CAAUF,MAAAA,CAAAA;QACV,OAAO;AAACA,YAAAA,MAAAA;AAAQE,YAAAA;AAAU,SAAA;AAC9B,IAAA;IAEA,OAAO;AAACD,QAAAA,MAAAA;AAAQC,QAAAA;AAAU,KAAA;AAC9B;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var BindingKind = require('../bindings/BindingKind.js');
|
|
6
|
+
var resolveElementBinding = require('../bindings/resolveElementBinding.js');
|
|
7
|
+
var MissingBinding = require('../bindings/MissingBinding.js');
|
|
8
|
+
var ArcRuntimeBoundary = require('../bindings/ArcRuntimeBoundary.js');
|
|
9
|
+
var properties = require('../properties.js');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* `AutoCommandForm` types `exclude` as `(keyof TCommand)[]`, which collapses to `never[]` when the
|
|
13
|
+
* command type is only known at runtime - as it always is here, since the class arrives from the binding
|
|
14
|
+
* registry rather than from a type annotation. The conversion states the shape this adapter actually
|
|
15
|
+
* passes; the underlying component reads `exclude` as property names either way.
|
|
16
|
+
*/ const AutoCommandForm = /*#__PURE__*/ react.lazy(async ()=>({
|
|
17
|
+
default: (await import('@cratis/components/CommandForm')).AutoCommandForm
|
|
18
|
+
}));
|
|
19
|
+
/**
|
|
20
|
+
* The `Cratis.Components:commandForm` component - `AutoCommandForm` from `@cratis/components/CommandForm`.
|
|
21
|
+
*
|
|
22
|
+
* `AutoCommandForm` rather than `CommandForm`, because a screen that had to list every field by hand
|
|
23
|
+
* would go stale the moment a property is added to the command on the backend. `AutoCommandForm` reads
|
|
24
|
+
* the command's own property descriptors and picks a field component per property type, so the form
|
|
25
|
+
* follows the command - which is the same guarantee Arc's generated proxies give the rest of the stack.
|
|
26
|
+
*
|
|
27
|
+
* A screen that does want to place fields itself puts the field components from this package in the
|
|
28
|
+
* `content` slot and names them individually; `exclude` keeps `AutoCommandForm` from generating a second
|
|
29
|
+
* copy of anything placed that way.
|
|
30
|
+
*/ function SceneCommandForm({ element }) {
|
|
31
|
+
const { name, target } = resolveElementBinding.resolveElementBinding(element, BindingKind.BindingKind.Command);
|
|
32
|
+
if (!target) return /*#__PURE__*/ jsxRuntime.jsx(MissingBinding.MissingBinding, {
|
|
33
|
+
element: element,
|
|
34
|
+
kind: BindingKind.BindingKind.Command,
|
|
35
|
+
name: name
|
|
36
|
+
});
|
|
37
|
+
return /*#__PURE__*/ jsxRuntime.jsx(ArcRuntimeBoundary.ArcRuntimeBoundary, {
|
|
38
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(AutoCommandForm, {
|
|
39
|
+
command: target,
|
|
40
|
+
exclude: properties.stringArrayProperty(element.properties, 'exclude')
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
exports.SceneCommandForm = SceneCommandForm;
|
|
46
|
+
//# sourceMappingURL=SceneCommandForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneCommandForm.js","sources":["../../../forms/SceneCommandForm.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 { ComponentType, lazy } from 'react';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { ArcRuntimeBoundary, BindingKind, BoundConstructor, MissingBinding, resolveElementBinding } from '../bindings';\nimport { stringArrayProperty } from '../properties';\n\ninterface AutoCommandFormElementProps {\n command: BoundConstructor;\n exclude?: string[];\n}\n\n/**\n * `AutoCommandForm` types `exclude` as `(keyof TCommand)[]`, which collapses to `never[]` when the\n * command type is only known at runtime - as it always is here, since the class arrives from the binding\n * registry rather than from a type annotation. The conversion states the shape this adapter actually\n * passes; the underlying component reads `exclude` as property names either way.\n */\nconst AutoCommandForm = lazy(async () => ({\n default: (await import('@cratis/components/CommandForm')).AutoCommandForm as unknown as ComponentType<AutoCommandFormElementProps>,\n}));\n\n/**\n * The `Cratis.Components:commandForm` component - `AutoCommandForm` from `@cratis/components/CommandForm`.\n *\n * `AutoCommandForm` rather than `CommandForm`, because a screen that had to list every field by hand\n * would go stale the moment a property is added to the command on the backend. `AutoCommandForm` reads\n * the command's own property descriptors and picks a field component per property type, so the form\n * follows the command - which is the same guarantee Arc's generated proxies give the rest of the stack.\n *\n * A screen that does want to place fields itself puts the field components from this package in the\n * `content` slot and names them individually; `exclude` keeps `AutoCommandForm` from generating a second\n * copy of anything placed that way.\n */\nexport function SceneCommandForm({ element }: 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 <AutoCommandForm command={target} exclude={stringArrayProperty(element.properties, 'exclude')} />\n </ArcRuntimeBoundary>\n );\n}\n"],"names":["AutoCommandForm","lazy","default","SceneCommandForm","element","name","target","resolveElementBinding","BindingKind","Command","_jsx","MissingBinding","kind","ArcRuntimeBoundary","command","exclude","stringArrayProperty","properties"],"mappings":";;;;;;;;;;AAaA;;;;;AAKC,IACD,MAAMA,eAAAA,iBAAkBC,UAAAA,CAAK,WAAa;AACtCC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAC9D,CAAA,CAAA;AAEA;;;;;;;;;;;AAWC,IACM,SAASG,gBAAAA,CAAiB,EAAEC,OAAO,EAA4B,EAAA;IAClE,MAAM,EAAEC,IAAI,EAAEC,MAAM,EAAE,GAAGC,2CAAAA,CAAsBH,OAAAA,EAASI,uBAAAA,CAAYC,OAAO,CAAA;IAC3E,IAAI,CAACH,MAAAA,EAAQ,qBAAOI,cAAA,CAACC,6BAAAA,EAAAA;QAAeP,OAAAA,EAASA,OAAAA;AAASQ,QAAAA,IAAAA,EAAMJ,wBAAYC,OAAO;QAAEJ,IAAAA,EAAMA;;AAEvF,IAAA,qBACIK,cAAA,CAACG,qCAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAH,cAAA,CAACV,eAAAA,EAAAA;YAAgBc,OAAAA,EAASR,MAAAA;YAAQS,OAAAA,EAASC,8BAAAA,CAAoBZ,OAAAA,CAAQa,UAAU,EAAE,SAAA;;;AAG/F;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
require('../../bindings/resolveElementBinding.js');
|
|
5
|
+
var Placeholder = require('../../bindings/Placeholder.js');
|
|
6
|
+
var ArcRuntimeBoundary = require('../../bindings/ArcRuntimeBoundary.js');
|
|
7
|
+
var resolveFieldBinding = require('./resolveFieldBinding.js');
|
|
8
|
+
|
|
9
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
10
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
11
|
+
/**
|
|
12
|
+
* The part every command form field adapter does identically: resolve the element's `property` into a
|
|
13
|
+
* {@link FieldBinding}, place a visible placeholder when there is none, and isolate the lazily loaded
|
|
14
|
+
* Arc-bound field behind an {@link ArcRuntimeBoundary}.
|
|
15
|
+
*
|
|
16
|
+
* Factored out rather than repeated twelve times so that the behavior a screen author depends on - an
|
|
17
|
+
* unbound field shows up as an unbound field, and one broken field does not take the form with it - is
|
|
18
|
+
* defined once and cannot drift between field types.
|
|
19
|
+
*/ function CommandFormField({ element, children }) {
|
|
20
|
+
const binding = resolveFieldBinding.resolveFieldBinding(element);
|
|
21
|
+
if (!binding) return /*#__PURE__*/ jsxRuntime.jsx(Placeholder.Placeholder, {
|
|
22
|
+
element: element,
|
|
23
|
+
problem: "Missing 'property'"
|
|
24
|
+
});
|
|
25
|
+
return /*#__PURE__*/ jsxRuntime.jsx(ArcRuntimeBoundary.ArcRuntimeBoundary, {
|
|
26
|
+
children: children(binding)
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
exports.CommandFormField = CommandFormField;
|
|
31
|
+
//# sourceMappingURL=CommandFormField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandFormField.js","sources":["../../../../forms/fields/CommandFormField.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 { ReactNode } from 'react';\nimport { ExternalComponent } from '@cratis/scene.model';\nimport { ArcRuntimeBoundary, Placeholder } from '../../bindings';\nimport { FieldBinding } from './FieldBinding';\nimport { resolveFieldBinding } from './resolveFieldBinding';\n\nexport interface CommandFormFieldProps {\n /** The element being adapted, read for its `property`, `title` and `description`. */\n element: ExternalComponent;\n\n /** Renders the real `@cratis/components` field, given the binding built from the element. */\n children: (binding: FieldBinding) => ReactNode;\n}\n\n/**\n * The part every command form field adapter does identically: resolve the element's `property` into a\n * {@link FieldBinding}, place a visible placeholder when there is none, and isolate the lazily loaded\n * Arc-bound field behind an {@link ArcRuntimeBoundary}.\n *\n * Factored out rather than repeated twelve times so that the behavior a screen author depends on - an\n * unbound field shows up as an unbound field, and one broken field does not take the form with it - is\n * defined once and cannot drift between field types.\n */\nexport function CommandFormField({ element, children }: CommandFormFieldProps) {\n const binding = resolveFieldBinding(element);\n if (!binding) return <Placeholder element={element} problem=\"Missing 'property'\" />;\n\n return <ArcRuntimeBoundary>{children(binding)}</ArcRuntimeBoundary>;\n}\n"],"names":["CommandFormField","element","children","binding","resolveFieldBinding","_jsx","Placeholder","problem","ArcRuntimeBoundary"],"mappings":";;;;;;;;AAAA;AACA;AAgBA;;;;;;;;AAQC,IACM,SAASA,gBAAAA,CAAiB,EAAEC,OAAO,EAAEC,QAAQ,EAAyB,EAAA;AACzE,IAAA,MAAMC,UAAUC,uCAAAA,CAAoBH,OAAAA,CAAAA;IACpC,IAAI,CAACE,OAAAA,EAAS,qBAAOE,cAAA,CAACC,uBAAAA,EAAAA;QAAYL,OAAAA,EAASA,OAAAA;QAASM,OAAAA,EAAQ;;AAE5D,IAAA,qBAAOF,cAAA,CAACG,qCAAAA,EAAAA;kBAAoBN,QAAAA,CAASC,OAAAA;;AACzC;;;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const CalendarField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).CalendarField
|
|
10
|
+
}));
|
|
11
|
+
/** Whether times are shown on a 12- or 24-hour clock. */ const hourFormats = [
|
|
12
|
+
'12',
|
|
13
|
+
'24'
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* The `Cratis.Components:calendarField` component - `CalendarField` from `@cratis/components/CommandForm`.
|
|
17
|
+
*
|
|
18
|
+
* Binds to a `Date` property, so the command receives a real date rather than the string an
|
|
19
|
+
* `<input type="date">` produces - which matters because the backend's command record is typed and a
|
|
20
|
+
* string would fail model binding rather than the field.
|
|
21
|
+
*
|
|
22
|
+
* `minDate` and `maxDate` are deliberately not exposed: they would have to come out of the property bag
|
|
23
|
+
* as strings and be parsed here, and a bound range that silently misparses is worse than no bound range.
|
|
24
|
+
* A date range that has to be enforced belongs in the command's validator, where it is authoritative.
|
|
25
|
+
*/ function SceneCalendarField({ element }) {
|
|
26
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
27
|
+
element: element,
|
|
28
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(CalendarField, {
|
|
29
|
+
...binding,
|
|
30
|
+
placeholder: properties.stringProperty(element.properties, 'placeholder'),
|
|
31
|
+
dateFormat: properties.stringProperty(element.properties, 'dateFormat'),
|
|
32
|
+
showIcon: properties.booleanProperty(element.properties, 'showIcon'),
|
|
33
|
+
showTime: properties.booleanProperty(element.properties, 'showTime'),
|
|
34
|
+
hourFormat: properties.unionProperty(element.properties, 'hourFormat', hourFormats),
|
|
35
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
exports.SceneCalendarField = SceneCalendarField;
|
|
41
|
+
//# sourceMappingURL=SceneCalendarField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneCalendarField.js","sources":["../../../../forms/fields/SceneCalendarField.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 { booleanProperty, stringProperty, unionProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst CalendarField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).CalendarField }));\n\n/** Whether times are shown on a 12- or 24-hour clock. */\nconst hourFormats = ['12', '24'] as const;\n\n/**\n * The `Cratis.Components:calendarField` component - `CalendarField` from `@cratis/components/CommandForm`.\n *\n * Binds to a `Date` property, so the command receives a real date rather than the string an\n * `<input type=\"date\">` produces - which matters because the backend's command record is typed and a\n * string would fail model binding rather than the field.\n *\n * `minDate` and `maxDate` are deliberately not exposed: they would have to come out of the property bag\n * as strings and be parsed here, and a bound range that silently misparses is worse than no bound range.\n * A date range that has to be enforced belongs in the command's validator, where it is authoritative.\n */\nexport function SceneCalendarField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <CalendarField\n {...binding}\n placeholder={stringProperty(element.properties, 'placeholder')}\n dateFormat={stringProperty(element.properties, 'dateFormat')}\n showIcon={booleanProperty(element.properties, 'showIcon')}\n showTime={booleanProperty(element.properties, 'showTime')}\n hourFormat={unionProperty(element.properties, 'hourFormat', hourFormats)}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["CalendarField","lazy","default","hourFormats","SceneCalendarField","element","_jsx","CommandFormField","binding","placeholder","stringProperty","properties","dateFormat","showIcon","booleanProperty","showTime","hourFormat","unionProperty","className"],"mappings":";;;;;;;AAQA,MAAMA,aAAAA,iBAAgBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAc,CAAA,CAAA;AAElH,0DACA,MAAMG,WAAAA,GAAc;AAAC,IAAA,IAAA;AAAM,IAAA;AAAK,CAAA;AAEhC;;;;;;;;;;AAUC,IACM,SAASC,kBAAAA,CAAmB,EAAEC,OAAO,EAA4B,EAAA;AACpE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACN,aAAAA,EAAAA;AACI,gBAAA,GAAGQ,OAAO;gBACXC,WAAAA,EAAaC,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;gBAChDC,UAAAA,EAAYF,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,YAAA,CAAA;gBAC/CE,QAAAA,EAAUC,0BAAAA,CAAgBT,OAAAA,CAAQM,UAAU,EAAE,UAAA,CAAA;gBAC9CI,QAAAA,EAAUD,0BAAAA,CAAgBT,OAAAA,CAAQM,UAAU,EAAE,UAAA,CAAA;AAC9CK,gBAAAA,UAAAA,EAAYC,wBAAAA,CAAcZ,OAAAA,CAAQM,UAAU,EAAE,YAAA,EAAcR,WAAAA,CAAAA;gBAC5De,SAAAA,EAAWR,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const CheckboxField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).CheckboxField
|
|
10
|
+
}));
|
|
11
|
+
/**
|
|
12
|
+
* The `Cratis.Components:checkboxField` component - `CheckboxField` from `@cratis/components/CommandForm`.
|
|
13
|
+
*
|
|
14
|
+
* `label` is the text beside the box and is distinct from `title`, which is the field's own label above
|
|
15
|
+
* it - a checkbox usually wants only one of the two, and which one is a layout decision the screen makes.
|
|
16
|
+
*/ function SceneCheckboxField({ element }) {
|
|
17
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
18
|
+
element: element,
|
|
19
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(CheckboxField, {
|
|
20
|
+
...binding,
|
|
21
|
+
label: properties.stringProperty(element.properties, 'label'),
|
|
22
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
23
|
+
})
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.SceneCheckboxField = SceneCheckboxField;
|
|
28
|
+
//# sourceMappingURL=SceneCheckboxField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneCheckboxField.js","sources":["../../../../forms/fields/SceneCheckboxField.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 { stringProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst CheckboxField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).CheckboxField }));\n\n/**\n * The `Cratis.Components:checkboxField` component - `CheckboxField` from `@cratis/components/CommandForm`.\n *\n * `label` is the text beside the box and is distinct from `title`, which is the field's own label above\n * it - a checkbox usually wants only one of the two, and which one is a layout decision the screen makes.\n */\nexport function SceneCheckboxField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <CheckboxField\n {...binding}\n label={stringProperty(element.properties, 'label')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["CheckboxField","lazy","default","SceneCheckboxField","element","_jsx","CommandFormField","binding","label","stringProperty","properties","className"],"mappings":";;;;;;;AAQA,MAAMA,aAAAA,iBAAgBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAc,CAAA,CAAA;AAElH;;;;;AAKC,IACM,SAASG,kBAAAA,CAAmB,EAAEC,OAAO,EAA4B,EAAA;AACpE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACL,aAAAA,EAAAA;AACI,gBAAA,GAAGO,OAAO;gBACXC,KAAAA,EAAOC,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,OAAA,CAAA;gBAC1CC,SAAAA,EAAWF,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const ChipsField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).ChipsField
|
|
10
|
+
}));
|
|
11
|
+
/**
|
|
12
|
+
* The `Cratis.Components:chipsField` component - `ChipsField` from `@cratis/components/CommandForm`.
|
|
13
|
+
*
|
|
14
|
+
* A free-form list of strings - tags, labels, recipients - where the values are typed rather than picked.
|
|
15
|
+
* `multiSelectField` is the right choice whenever the values come from a known set; this one exists for
|
|
16
|
+
* when they do not.
|
|
17
|
+
*/ function SceneChipsField({ element }) {
|
|
18
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
19
|
+
element: element,
|
|
20
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(ChipsField, {
|
|
21
|
+
...binding,
|
|
22
|
+
placeholder: properties.stringProperty(element.properties, 'placeholder'),
|
|
23
|
+
max: properties.numberProperty(element.properties, 'max'),
|
|
24
|
+
separator: properties.stringProperty(element.properties, 'separator'),
|
|
25
|
+
addOnBlur: properties.booleanProperty(element.properties, 'addOnBlur'),
|
|
26
|
+
allowDuplicate: properties.booleanProperty(element.properties, 'allowDuplicate'),
|
|
27
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
exports.SceneChipsField = SceneChipsField;
|
|
33
|
+
//# sourceMappingURL=SceneChipsField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneChipsField.js","sources":["../../../../forms/fields/SceneChipsField.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 { booleanProperty, numberProperty, stringProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst ChipsField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).ChipsField }));\n\n/**\n * The `Cratis.Components:chipsField` component - `ChipsField` from `@cratis/components/CommandForm`.\n *\n * A free-form list of strings - tags, labels, recipients - where the values are typed rather than picked.\n * `multiSelectField` is the right choice whenever the values come from a known set; this one exists for\n * when they do not.\n */\nexport function SceneChipsField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <ChipsField\n {...binding}\n placeholder={stringProperty(element.properties, 'placeholder')}\n max={numberProperty(element.properties, 'max')}\n separator={stringProperty(element.properties, 'separator')}\n addOnBlur={booleanProperty(element.properties, 'addOnBlur')}\n allowDuplicate={booleanProperty(element.properties, 'allowDuplicate')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["ChipsField","lazy","default","SceneChipsField","element","_jsx","CommandFormField","binding","placeholder","stringProperty","properties","max","numberProperty","separator","addOnBlur","booleanProperty","allowDuplicate","className"],"mappings":";;;;;;;AAQA,MAAMA,UAAAA,iBAAaC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAW,CAAA,CAAA;AAE5G;;;;;;AAMC,IACM,SAASG,eAAAA,CAAgB,EAAEC,OAAO,EAA4B,EAAA;AACjE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACL,UAAAA,EAAAA;AACI,gBAAA,GAAGO,OAAO;gBACXC,WAAAA,EAAaC,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;gBAChDC,GAAAA,EAAKC,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,KAAA,CAAA;gBACxCG,SAAAA,EAAWJ,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;gBAC9CI,SAAAA,EAAWC,0BAAAA,CAAgBX,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;gBAC/CM,cAAAA,EAAgBD,0BAAAA,CAAgBX,OAAAA,CAAQM,UAAU,EAAE,gBAAA,CAAA;gBACpDO,SAAAA,EAAWR,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const ColorPickerField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).ColorPickerField
|
|
10
|
+
}));
|
|
11
|
+
/**
|
|
12
|
+
* The `Cratis.Components:colorPickerField` component - `ColorPickerField` from
|
|
13
|
+
* `@cratis/components/CommandForm`.
|
|
14
|
+
*
|
|
15
|
+
* Binds a color to a string property. `inline` decides whether the picker is always open or opens from a
|
|
16
|
+
* swatch, which is a layout decision rather than a behavioral one.
|
|
17
|
+
*/ function SceneColorPickerField({ element }) {
|
|
18
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
19
|
+
element: element,
|
|
20
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(ColorPickerField, {
|
|
21
|
+
...binding,
|
|
22
|
+
inline: properties.booleanProperty(element.properties, 'inline'),
|
|
23
|
+
defaultColor: properties.stringProperty(element.properties, 'defaultColor'),
|
|
24
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
exports.SceneColorPickerField = SceneColorPickerField;
|
|
30
|
+
//# sourceMappingURL=SceneColorPickerField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneColorPickerField.js","sources":["../../../../forms/fields/SceneColorPickerField.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 { booleanProperty, stringProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst ColorPickerField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).ColorPickerField }));\n\n/**\n * The `Cratis.Components:colorPickerField` component - `ColorPickerField` from\n * `@cratis/components/CommandForm`.\n *\n * Binds a color to a string property. `inline` decides whether the picker is always open or opens from a\n * swatch, which is a layout decision rather than a behavioral one.\n */\nexport function SceneColorPickerField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <ColorPickerField\n {...binding}\n inline={booleanProperty(element.properties, 'inline')}\n defaultColor={stringProperty(element.properties, 'defaultColor')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["ColorPickerField","lazy","default","SceneColorPickerField","element","_jsx","CommandFormField","binding","inline","booleanProperty","properties","defaultColor","stringProperty","className"],"mappings":";;;;;;;AAQA,MAAMA,gBAAAA,iBAAmBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAiB,CAAA,CAAA;AAExH;;;;;;AAMC,IACM,SAASG,qBAAAA,CAAsB,EAAEC,OAAO,EAA4B,EAAA;AACvE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACL,gBAAAA,EAAAA;AACI,gBAAA,GAAGO,OAAO;gBACXC,MAAAA,EAAQC,0BAAAA,CAAgBL,OAAAA,CAAQM,UAAU,EAAE,QAAA,CAAA;gBAC5CC,YAAAA,EAAcC,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,cAAA,CAAA;gBACjDG,SAAAA,EAAWD,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const DropdownField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).DropdownField
|
|
10
|
+
}));
|
|
11
|
+
/**
|
|
12
|
+
* The `Cratis.Components:dropdownField` component - `DropdownField` from `@cratis/components/CommandForm`.
|
|
13
|
+
*
|
|
14
|
+
* Single selection from a fixed list the screen carries inline. `optionLabel` and `optionValue` default
|
|
15
|
+
* to `label` and `value`, the shape an authored list takes when nobody says otherwise, so the common
|
|
16
|
+
* case needs only `options`.
|
|
17
|
+
*
|
|
18
|
+
* Options that have to come from the backend are a different component: bind the list to a query with
|
|
19
|
+
* `dataTable`, or register the lookup as its own query. A property bag is the wrong place for data.
|
|
20
|
+
*/ function SceneDropdownField({ element }) {
|
|
21
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
22
|
+
element: element,
|
|
23
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(DropdownField, {
|
|
24
|
+
...binding,
|
|
25
|
+
options: properties.objectArrayProperty(element.properties, 'options') ?? [],
|
|
26
|
+
optionLabel: properties.stringProperty(element.properties, 'optionLabel') ?? 'label',
|
|
27
|
+
optionValue: properties.stringProperty(element.properties, 'optionValue') ?? 'value',
|
|
28
|
+
placeholder: properties.stringProperty(element.properties, 'placeholder'),
|
|
29
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
exports.SceneDropdownField = SceneDropdownField;
|
|
35
|
+
//# sourceMappingURL=SceneDropdownField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneDropdownField.js","sources":["../../../../forms/fields/SceneDropdownField.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 { objectArrayProperty, stringProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst DropdownField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).DropdownField }));\n\n/**\n * The `Cratis.Components:dropdownField` component - `DropdownField` from `@cratis/components/CommandForm`.\n *\n * Single selection from a fixed list the screen carries inline. `optionLabel` and `optionValue` default\n * to `label` and `value`, the shape an authored list takes when nobody says otherwise, so the common\n * case needs only `options`.\n *\n * Options that have to come from the backend are a different component: bind the list to a query with\n * `dataTable`, or register the lookup as its own query. A property bag is the wrong place for data.\n */\nexport function SceneDropdownField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <DropdownField\n {...binding}\n options={objectArrayProperty(element.properties, 'options') ?? []}\n optionLabel={stringProperty(element.properties, 'optionLabel') ?? 'label'}\n optionValue={stringProperty(element.properties, 'optionValue') ?? 'value'}\n placeholder={stringProperty(element.properties, 'placeholder')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["DropdownField","lazy","default","SceneDropdownField","element","_jsx","CommandFormField","binding","options","objectArrayProperty","properties","optionLabel","stringProperty","optionValue","placeholder","className"],"mappings":";;;;;;;AAQA,MAAMA,aAAAA,iBAAgBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAc,CAAA,CAAA;AAElH;;;;;;;;;AASC,IACM,SAASG,kBAAAA,CAAmB,EAAEC,OAAO,EAA4B,EAAA;AACpE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACL,aAAAA,EAAAA;AACI,gBAAA,GAAGO,OAAO;AACXC,gBAAAA,OAAAA,EAASC,8BAAAA,CAAoBL,OAAAA,CAAQM,UAAU,EAAE,cAAc,EAAE;AACjEC,gBAAAA,WAAAA,EAAaC,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA,IAAkB,OAAA;AAClEG,gBAAAA,WAAAA,EAAaD,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA,IAAkB,OAAA;gBAClEI,WAAAA,EAAaF,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;gBAChDK,SAAAA,EAAWH,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const InputTextField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).InputTextField
|
|
10
|
+
}));
|
|
11
|
+
/**
|
|
12
|
+
* The HTML input types `InputTextField` supports, as a tuple so `unionProperty` narrows an authored
|
|
13
|
+
* string to exactly one of them and falls back to the component's own default for anything else.
|
|
14
|
+
*/ const inputTypes = [
|
|
15
|
+
'text',
|
|
16
|
+
'email',
|
|
17
|
+
'password',
|
|
18
|
+
'color',
|
|
19
|
+
'date',
|
|
20
|
+
'datetime-local',
|
|
21
|
+
'time',
|
|
22
|
+
'url',
|
|
23
|
+
'tel',
|
|
24
|
+
'search'
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* The `Cratis.Components:inputTextField` component - `InputTextField` from `@cratis/components/CommandForm`.
|
|
28
|
+
*
|
|
29
|
+
* The single-line text field, and the one a screen reaches for most. `type` carries all the way through
|
|
30
|
+
* to the HTML input, so `email`, `password` and `url` fields are this component too rather than separate
|
|
31
|
+
* names - the browser's own keyboard and validation behavior is what differs, not the binding.
|
|
32
|
+
*/ function SceneInputTextField({ element }) {
|
|
33
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
34
|
+
element: element,
|
|
35
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(InputTextField, {
|
|
36
|
+
...binding,
|
|
37
|
+
type: properties.unionProperty(element.properties, 'type', inputTypes),
|
|
38
|
+
placeholder: properties.stringProperty(element.properties, 'placeholder'),
|
|
39
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
exports.SceneInputTextField = SceneInputTextField;
|
|
45
|
+
//# sourceMappingURL=SceneInputTextField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneInputTextField.js","sources":["../../../../forms/fields/SceneInputTextField.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 { stringProperty, unionProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst InputTextField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).InputTextField }));\n\n/**\n * The HTML input types `InputTextField` supports, as a tuple so `unionProperty` narrows an authored\n * string to exactly one of them and falls back to the component's own default for anything else.\n */\nconst inputTypes = ['text', 'email', 'password', 'color', 'date', 'datetime-local', 'time', 'url', 'tel', 'search'] as const;\n\n/**\n * The `Cratis.Components:inputTextField` component - `InputTextField` from `@cratis/components/CommandForm`.\n *\n * The single-line text field, and the one a screen reaches for most. `type` carries all the way through\n * to the HTML input, so `email`, `password` and `url` fields are this component too rather than separate\n * names - the browser's own keyboard and validation behavior is what differs, not the binding.\n */\nexport function SceneInputTextField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <InputTextField\n {...binding}\n type={unionProperty(element.properties, 'type', inputTypes)}\n placeholder={stringProperty(element.properties, 'placeholder')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["InputTextField","lazy","default","inputTypes","SceneInputTextField","element","_jsx","CommandFormField","binding","type","unionProperty","properties","placeholder","stringProperty","className"],"mappings":";;;;;;;AAQA,MAAMA,cAAAA,iBAAiBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAe,CAAA,CAAA;AAEpH;;;AAGC,IACD,MAAMG,UAAAA,GAAa;AAAC,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,UAAA;AAAY,IAAA,OAAA;AAAS,IAAA,MAAA;AAAQ,IAAA,gBAAA;AAAkB,IAAA,MAAA;AAAQ,IAAA,KAAA;AAAO,IAAA,KAAA;AAAO,IAAA;AAAS,CAAA;AAEnH;;;;;;AAMC,IACM,SAASC,mBAAAA,CAAoB,EAAEC,OAAO,EAA4B,EAAA;AACrE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACN,cAAAA,EAAAA;AACI,gBAAA,GAAGQ,OAAO;AACXC,gBAAAA,IAAAA,EAAMC,wBAAAA,CAAcL,OAAAA,CAAQM,UAAU,EAAE,MAAA,EAAQR,UAAAA,CAAAA;gBAChDS,WAAAA,EAAaC,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;gBAChDG,SAAAA,EAAWD,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const MultiSelectField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).MultiSelectField
|
|
10
|
+
}));
|
|
11
|
+
/** How the current selection is summarized in the closed control. */ const displayModes = [
|
|
12
|
+
'comma',
|
|
13
|
+
'chip'
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* The `Cratis.Components:multiSelectField` component - `MultiSelectField` from
|
|
17
|
+
* `@cratis/components/CommandForm`.
|
|
18
|
+
*
|
|
19
|
+
* The many-valued counterpart to `dropdownField`, binding to a collection property on the command rather
|
|
20
|
+
* than a scalar one.
|
|
21
|
+
*/ function SceneMultiSelectField({ element }) {
|
|
22
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
23
|
+
element: element,
|
|
24
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(MultiSelectField, {
|
|
25
|
+
...binding,
|
|
26
|
+
options: properties.objectArrayProperty(element.properties, 'options') ?? [],
|
|
27
|
+
optionLabel: properties.stringProperty(element.properties, 'optionLabel') ?? 'label',
|
|
28
|
+
optionValue: properties.stringProperty(element.properties, 'optionValue') ?? 'value',
|
|
29
|
+
placeholder: properties.stringProperty(element.properties, 'placeholder'),
|
|
30
|
+
display: properties.unionProperty(element.properties, 'display', displayModes),
|
|
31
|
+
maxSelectedLabels: properties.numberProperty(element.properties, 'maxSelectedLabels'),
|
|
32
|
+
filter: properties.booleanProperty(element.properties, 'filter'),
|
|
33
|
+
showClear: properties.booleanProperty(element.properties, 'showClear'),
|
|
34
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
35
|
+
})
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
exports.SceneMultiSelectField = SceneMultiSelectField;
|
|
40
|
+
//# sourceMappingURL=SceneMultiSelectField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneMultiSelectField.js","sources":["../../../../forms/fields/SceneMultiSelectField.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 { booleanProperty, numberProperty, objectArrayProperty, stringProperty, unionProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst MultiSelectField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).MultiSelectField }));\n\n/** How the current selection is summarized in the closed control. */\nconst displayModes = ['comma', 'chip'] as const;\n\n/**\n * The `Cratis.Components:multiSelectField` component - `MultiSelectField` from\n * `@cratis/components/CommandForm`.\n *\n * The many-valued counterpart to `dropdownField`, binding to a collection property on the command rather\n * than a scalar one.\n */\nexport function SceneMultiSelectField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <MultiSelectField\n {...binding}\n options={objectArrayProperty(element.properties, 'options') ?? []}\n optionLabel={stringProperty(element.properties, 'optionLabel') ?? 'label'}\n optionValue={stringProperty(element.properties, 'optionValue') ?? 'value'}\n placeholder={stringProperty(element.properties, 'placeholder')}\n display={unionProperty(element.properties, 'display', displayModes)}\n maxSelectedLabels={numberProperty(element.properties, 'maxSelectedLabels')}\n filter={booleanProperty(element.properties, 'filter')}\n showClear={booleanProperty(element.properties, 'showClear')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["MultiSelectField","lazy","default","displayModes","SceneMultiSelectField","element","_jsx","CommandFormField","binding","options","objectArrayProperty","properties","optionLabel","stringProperty","optionValue","placeholder","display","unionProperty","maxSelectedLabels","numberProperty","filter","booleanProperty","showClear","className"],"mappings":";;;;;;;AAQA,MAAMA,gBAAAA,iBAAmBC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAiB,CAAA,CAAA;AAExH,sEACA,MAAMG,YAAAA,GAAe;AAAC,IAAA,OAAA;AAAS,IAAA;AAAO,CAAA;AAEtC;;;;;;AAMC,IACM,SAASC,qBAAAA,CAAsB,EAAEC,OAAO,EAA4B,EAAA;AACvE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACN,gBAAAA,EAAAA;AACI,gBAAA,GAAGQ,OAAO;AACXC,gBAAAA,OAAAA,EAASC,8BAAAA,CAAoBL,OAAAA,CAAQM,UAAU,EAAE,cAAc,EAAE;AACjEC,gBAAAA,WAAAA,EAAaC,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA,IAAkB,OAAA;AAClEG,gBAAAA,WAAAA,EAAaD,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA,IAAkB,OAAA;gBAClEI,WAAAA,EAAaF,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;AAChDK,gBAAAA,OAAAA,EAASC,wBAAAA,CAAcZ,OAAAA,CAAQM,UAAU,EAAE,SAAA,EAAWR,YAAAA,CAAAA;gBACtDe,iBAAAA,EAAmBC,yBAAAA,CAAed,OAAAA,CAAQM,UAAU,EAAE,mBAAA,CAAA;gBACtDS,MAAAA,EAAQC,0BAAAA,CAAgBhB,OAAAA,CAAQM,UAAU,EAAE,QAAA,CAAA;gBAC5CW,SAAAA,EAAWD,0BAAAA,CAAgBhB,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;gBAC/CY,SAAAA,EAAWV,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const NumberField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).NumberField
|
|
10
|
+
}));
|
|
11
|
+
/**
|
|
12
|
+
* The `Cratis.Components:numberField` component - `NumberField` from `@cratis/components/CommandForm`.
|
|
13
|
+
*
|
|
14
|
+
* PrimeReact's `InputNumber` behind the command binding, so the bound property stays a number rather
|
|
15
|
+
* than the string an `<input type="number">` would hand back. `min`, `max` and `step` are client-side
|
|
16
|
+
* affordances only - the authoritative check is still the backend's validation on the command.
|
|
17
|
+
*/ function SceneNumberField({ element }) {
|
|
18
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
19
|
+
element: element,
|
|
20
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(NumberField, {
|
|
21
|
+
...binding,
|
|
22
|
+
placeholder: properties.stringProperty(element.properties, 'placeholder'),
|
|
23
|
+
min: properties.numberProperty(element.properties, 'min'),
|
|
24
|
+
max: properties.numberProperty(element.properties, 'max'),
|
|
25
|
+
step: properties.numberProperty(element.properties, 'step'),
|
|
26
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
exports.SceneNumberField = SceneNumberField;
|
|
32
|
+
//# sourceMappingURL=SceneNumberField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneNumberField.js","sources":["../../../../forms/fields/SceneNumberField.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 { numberProperty, stringProperty } from '../../properties';\nimport { CommandFormField } from './CommandFormField';\n\nconst NumberField = lazy(async () => ({ default: (await import('@cratis/components/CommandForm')).NumberField }));\n\n/**\n * The `Cratis.Components:numberField` component - `NumberField` from `@cratis/components/CommandForm`.\n *\n * PrimeReact's `InputNumber` behind the command binding, so the bound property stays a number rather\n * than the string an `<input type=\"number\">` would hand back. `min`, `max` and `step` are client-side\n * affordances only - the authoritative check is still the backend's validation on the command.\n */\nexport function SceneNumberField({ element }: RegisteredComponentProps) {\n return (\n <CommandFormField element={element}>\n {binding => (\n <NumberField\n {...binding}\n placeholder={stringProperty(element.properties, 'placeholder')}\n min={numberProperty(element.properties, 'min')}\n max={numberProperty(element.properties, 'max')}\n step={numberProperty(element.properties, 'step')}\n className={stringProperty(element.properties, 'className')}\n />\n )}\n </CommandFormField>\n );\n}\n"],"names":["NumberField","lazy","default","SceneNumberField","element","_jsx","CommandFormField","binding","placeholder","stringProperty","properties","min","numberProperty","max","step","className"],"mappings":";;;;;;;AAQA,MAAMA,WAAAA,iBAAcC,UAAAA,CAAK,WAAa;AAAEC,QAAAA,OAAAA,EAAS,CAAC,MAAM,OAAO,gCAAA,CAAgC,EAAGF;KAAY,CAAA,CAAA;AAE9G;;;;;;AAMC,IACM,SAASG,gBAAAA,CAAiB,EAAEC,OAAO,EAA4B,EAAA;AAClE,IAAA,qBACIC,cAAA,CAACC,iCAAAA,EAAAA;QAAiBF,OAAAA,EAASA,OAAAA;AACtBG,QAAAA,QAAAA,EAAAA,CAAAA,wBACGF,cAAA,CAACL,WAAAA,EAAAA;AACI,gBAAA,GAAGO,OAAO;gBACXC,WAAAA,EAAaC,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,aAAA,CAAA;gBAChDC,GAAAA,EAAKC,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,KAAA,CAAA;gBACxCG,GAAAA,EAAKD,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,KAAA,CAAA;gBACxCI,IAAAA,EAAMF,yBAAAA,CAAeR,OAAAA,CAAQM,UAAU,EAAE,MAAA,CAAA;gBACzCK,SAAAA,EAAWN,yBAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,WAAA;;;AAKlE;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var properties = require('../../properties.js');
|
|
6
|
+
var CommandFormField = require('./CommandFormField.js');
|
|
7
|
+
|
|
8
|
+
const RadioButtonField = /*#__PURE__*/ react.lazy(async ()=>({
|
|
9
|
+
default: (await import('@cratis/components/CommandForm')).RadioButtonField
|
|
10
|
+
}));
|
|
11
|
+
/**
|
|
12
|
+
* The `Cratis.Components:radioButtonField` component - `RadioButtonField` from
|
|
13
|
+
* `@cratis/components/CommandForm`.
|
|
14
|
+
*
|
|
15
|
+
* One button of a mutually exclusive set, for a screen that needs the choices placed individually rather
|
|
16
|
+
* than as a block. `buttonValue` is the value this particular button writes to the bound property, and
|
|
17
|
+
* the whole set is tied together by every button naming the same `property`.
|
|
18
|
+
*
|
|
19
|
+
* `buttonValue` is read as a string first and a number second, since a choice is usually a string but a
|
|
20
|
+
* numeric code is common enough that forcing it through as `'1'` would bind the wrong value.
|
|
21
|
+
*/ function SceneRadioButtonField({ element }) {
|
|
22
|
+
const buttonValue = properties.stringProperty(element.properties, 'buttonValue') ?? properties.numberProperty(element.properties, 'buttonValue') ?? '';
|
|
23
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandFormField.CommandFormField, {
|
|
24
|
+
element: element,
|
|
25
|
+
children: (binding)=>/*#__PURE__*/ jsxRuntime.jsx(RadioButtonField, {
|
|
26
|
+
...binding,
|
|
27
|
+
buttonValue: buttonValue,
|
|
28
|
+
label: properties.stringProperty(element.properties, 'label'),
|
|
29
|
+
className: properties.stringProperty(element.properties, 'className')
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
exports.SceneRadioButtonField = SceneRadioButtonField;
|
|
35
|
+
//# sourceMappingURL=SceneRadioButtonField.js.map
|