@webiny/app-admin 6.3.0 → 6.4.0-beta.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/assets/icons/add-18px.js +20 -0
- package/assets/icons/add-18px.js.map +1 -0
- package/assets/icons/arrow_drop_down-24px.js +20 -0
- package/assets/icons/arrow_drop_down-24px.js.map +1 -0
- package/assets/icons/attach_file_black_24dp.js +20 -0
- package/assets/icons/attach_file_black_24dp.js.map +1 -0
- package/assets/icons/baseline-menu-24px.js +20 -0
- package/assets/icons/baseline-menu-24px.js.map +1 -0
- package/assets/icons/baseline-notification_important-24px.js +19 -0
- package/assets/icons/baseline-notification_important-24px.js.map +1 -0
- package/assets/icons/baseline-security-24px.js +19 -0
- package/assets/icons/baseline-security-24px.js.map +1 -0
- package/assets/icons/file_download.js +19 -0
- package/assets/icons/file_download.js.map +1 -0
- package/assets/icons/file_upload.js +19 -0
- package/assets/icons/file_upload.js.map +1 -0
- package/assets/icons/filter-24px.js +23 -0
- package/assets/icons/filter-24px.js.map +1 -0
- package/assets/icons/github-brands.js +19 -0
- package/assets/icons/github-brands.js.map +1 -0
- package/assets/icons/highlight-24px.js +19 -0
- package/assets/icons/highlight-24px.js.map +1 -0
- package/assets/icons/icon-community.js +18 -0
- package/assets/icons/icon-community.js.map +1 -0
- package/assets/icons/icon-documentation.js +18 -0
- package/assets/icons/icon-documentation.js.map +1 -0
- package/assets/icons/info.js +19 -0
- package/assets/icons/info.js.map +1 -0
- package/assets/icons/insert_drive_file-24px.js +19 -0
- package/assets/icons/insert_drive_file-24px.js.map +1 -0
- package/assets/icons/insert_photo-24px.js +19 -0
- package/assets/icons/insert_photo-24px.js.map +1 -0
- package/assets/icons/label-24px.js +19 -0
- package/assets/icons/label-24px.js.map +1 -0
- package/assets/icons/round-account_circle-24px.js +19 -0
- package/assets/icons/round-account_circle-24px.js.map +1 -0
- package/assets/icons/round-add-24px.js +20 -0
- package/assets/icons/round-add-24px.js.map +1 -0
- package/assets/icons/round-arrow_drop_down-24px.js +19 -0
- package/assets/icons/round-arrow_drop_down-24px.js.map +1 -0
- package/assets/icons/round-chevron_right-24px.js +20 -0
- package/assets/icons/round-chevron_right-24px.js.map +1 -0
- package/assets/icons/round-feedback-24px.js +20 -0
- package/assets/icons/round-feedback-24px.js.map +1 -0
- package/assets/icons/round-help-24px.js +19 -0
- package/assets/icons/round-help-24px.js.map +1 -0
- package/assets/icons/round-invert_colors-24px.js +20 -0
- package/assets/icons/round-invert_colors-24px.js.map +1 -0
- package/assets/icons/round-keyboard_arrow_down-24px.js +17 -0
- package/assets/icons/round-keyboard_arrow_down-24px.js.map +1 -0
- package/assets/icons/round-keyboard_arrow_up-24px.js +17 -0
- package/assets/icons/round-keyboard_arrow_up-24px.js.map +1 -0
- package/assets/icons/round-lock_open-24px.js +22 -0
- package/assets/icons/round-lock_open-24px.js.map +1 -0
- package/assets/icons/round-more_vert-24px.js +20 -0
- package/assets/icons/round-more_vert-24px.js.map +1 -0
- package/assets/icons/round-open_in_new-24px.js +20 -0
- package/assets/icons/round-open_in_new-24px.js.map +1 -0
- package/assets/icons/round-settings-24px.js +20 -0
- package/assets/icons/round-settings-24px.js.map +1 -0
- package/assets/icons/search-24px.js +21 -0
- package/assets/icons/search-24px.js.map +1 -0
- package/assets/icons/slack-logo.js +14 -0
- package/assets/icons/slack-logo.js.map +1 -0
- package/assets/icons/today-24px.js +19 -0
- package/assets/icons/today-24px.js.map +1 -0
- package/assets/icons/touch_app.js +20 -0
- package/assets/icons/touch_app.js.map +1 -0
- package/assets/images/webiny-logo.js +34 -0
- package/assets/images/webiny-logo.js.map +1 -0
- package/assets/images/webiny-orange-logo.js +34 -0
- package/assets/images/webiny-orange-logo.js.map +1 -0
- package/base/Admin.js +37 -28
- package/base/Admin.js.map +1 -1
- package/base/Base/DefaultFieldRenderers.js +73 -70
- package/base/Base/DefaultFieldRenderers.js.map +1 -1
- package/base/Base/DefaultLayoutRenderers.js +9 -10
- package/base/Base/DefaultLayoutRenderers.js.map +1 -1
- package/base/Base/FieldRenderers/CheckboxesRenderer.js +22 -23
- package/base/Base/FieldRenderers/CheckboxesRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/CodeEditorRenderer.js +10 -13
- package/base/Base/FieldRenderers/CodeEditorRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/DateTimeInputsRenderer.js +60 -60
- package/base/Base/FieldRenderers/DateTimeInputsRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/DateTimeRenderer.js +38 -39
- package/base/Base/FieldRenderers/DateTimeRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/FilePickerRenderer.d.ts +2 -1
- package/base/Base/FieldRenderers/FilePickerRenderer.js +37 -40
- package/base/Base/FieldRenderers/FilePickerRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/FileUrlPickerRenderer.js +15 -20
- package/base/Base/FieldRenderers/FileUrlPickerRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/HiddenRenderer.js +3 -3
- package/base/Base/FieldRenderers/HiddenRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/HorizontalTabsRenderer.js +20 -21
- package/base/Base/FieldRenderers/HorizontalTabsRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/InputRenderer.js +16 -20
- package/base/Base/FieldRenderers/InputRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/MultiFilePickerRenderer.d.ts +13 -0
- package/base/Base/FieldRenderers/MultiFilePickerRenderer.js +70 -0
- package/base/Base/FieldRenderers/MultiFilePickerRenderer.js.map +1 -0
- package/base/Base/FieldRenderers/NumberInputRenderer.js +16 -19
- package/base/Base/FieldRenderers/NumberInputRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/NumberInputsRenderer.js +45 -44
- package/base/Base/FieldRenderers/NumberInputsRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +10 -13
- package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js +50 -56
- package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js +87 -99
- package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +41 -48
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +1 -2
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +62 -78
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +12 -15
- package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +48 -54
- package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +62 -79
- package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -1
- package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js +14 -17
- package/base/Base/FieldRenderers/ObjectRenderer/resolveItemTitle.js.map +1 -1
- package/base/Base/FieldRenderers/PassthroughRenderer.js +8 -11
- package/base/Base/FieldRenderers/PassthroughRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/RadioButtonsRenderer.js +21 -22
- package/base/Base/FieldRenderers/RadioButtonsRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/SelectRenderer.js +23 -24
- package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/SwitchRenderer.js +12 -15
- package/base/Base/FieldRenderers/SwitchRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/TagsRenderer.js +15 -16
- package/base/Base/FieldRenderers/TagsRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/TextInputsRenderer.js +44 -43
- package/base/Base/FieldRenderers/TextInputsRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/TextareaRenderer.js +17 -21
- package/base/Base/FieldRenderers/TextareaRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/TextareasRenderer.js +47 -46
- package/base/Base/FieldRenderers/TextareasRenderer.js.map +1 -1
- package/base/Base/FieldRenderers/VerticalTabsRenderer.js +35 -36
- package/base/Base/FieldRenderers/VerticalTabsRenderer.js.map +1 -1
- package/base/Base/LexicalPreset.js +56 -60
- package/base/Base/LexicalPreset.js.map +1 -1
- package/base/Base/Menus/SupportMenuItems.js +9 -13
- package/base/Base/Menus/SupportMenuItems.js.map +1 -1
- package/base/Base/Menus/WebinyVersion.js +19 -20
- package/base/Base/Menus/WebinyVersion.js.map +1 -1
- package/base/Base/Menus.js +52 -66
- package/base/Base/Menus.js.map +1 -1
- package/base/Base/RoutesConfig.js +21 -29
- package/base/Base/RoutesConfig.js.map +1 -1
- package/base/Base/Tenant/wby-horizontal.js +33 -0
- package/base/Base/Tenant/wby-horizontal.js.map +1 -0
- package/base/Base/Tenant/wby-square.js +20 -0
- package/base/Base/Tenant/wby-square.js.map +1 -0
- package/base/Base/Tenant.js +17 -19
- package/base/Base/Tenant.js.map +1 -1
- package/base/Base/UserMenu/ExitTenant.js +18 -29
- package/base/Base/UserMenu/ExitTenant.js.map +1 -1
- package/base/Base/UserMenu/SignOut.js +13 -14
- package/base/Base/UserMenu/SignOut.js.map +1 -1
- package/base/Base/UserMenu/UserInfo.js +23 -36
- package/base/Base/UserMenu/UserInfo.js.map +1 -1
- package/base/Base/UserMenu.js +12 -13
- package/base/Base/UserMenu.js.map +1 -1
- package/base/Base.js +4 -5
- package/base/Base.js.map +1 -1
- package/base/TelemetryAdminAppStart.js +9 -12
- package/base/TelemetryAdminAppStart.js.map +1 -1
- package/base/WebinyVersion.js +19 -20
- package/base/WebinyVersion.js.map +1 -1
- package/base/createRootContainer.js +42 -40
- package/base/createRootContainer.js.map +1 -1
- package/base/plugins/AddGraphQLQuerySelection.js +12 -11
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/AdminUiStateProvider.js +5 -10
- package/base/providers/AdminUiStateProvider.js.map +1 -1
- package/base/providers/ApolloProvider.js +8 -11
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/UiProviders.js +18 -27
- package/base/providers/UiProviders.js.map +1 -1
- package/base/providers/UiStateProvider.js +5 -10
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/ui/Brand.js +4 -5
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.d.ts +1 -1
- package/base/ui/CenteredView.js +9 -13
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.js +4 -5
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/FileManager.js +38 -60
- package/base/ui/FileManager.js.map +1 -1
- package/base/ui/Layout.js +4 -8
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LoginScreen.js +16 -21
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.js +4 -5
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Navigation.js +11 -14
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.js +4 -5
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Tags.js +12 -16
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/TenantSelector.js +4 -5
- package/base/ui/TenantSelector.js.map +1 -1
- package/base/ui/UserMenu/UserMenu.js +4 -5
- package/base/ui/UserMenu/UserMenu.js.map +1 -1
- package/base/ui/UserMenu/UserMenuHandle.js +4 -5
- package/base/ui/UserMenu/UserMenuHandle.js.map +1 -1
- package/base/ui/UserMenu/UserMenuItem.d.ts +4 -4
- package/base/ui/UserMenu/UserMenuItem.js +5 -15
- package/base/ui/UserMenu/UserMenuItem.js.map +1 -1
- package/base/ui/UserMenu/UserMenuLink.d.ts +4 -4
- package/base/ui/UserMenu/UserMenuLink.js +5 -15
- package/base/ui/UserMenu/UserMenuLink.js.map +1 -1
- package/base/ui/UserMenu/UserMenuSeparator.d.ts +2 -2
- package/base/ui/UserMenu/UserMenuSeparator.js +3 -5
- package/base/ui/UserMenu/UserMenuSeparator.js.map +1 -1
- package/base/ui/UserMenu.js +6 -13
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.js +6 -10
- package/components/AdminLayout.js.map +1 -1
- package/components/BulkActions/Worker.js +57 -120
- package/components/BulkActions/Worker.js.map +1 -1
- package/components/BulkActions/index.js +0 -2
- package/components/BulkActions/useDialogWithReport/DialogMessage.js +17 -21
- package/components/BulkActions/useDialogWithReport/DialogMessage.js.map +1 -1
- package/components/BulkActions/useDialogWithReport/index.js +0 -2
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.js +33 -44
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -1
- package/components/Buttons/Buttons.js +44 -71
- package/components/Buttons/Buttons.js.map +1 -1
- package/components/Buttons/Buttons.styles.js +9 -15
- package/components/Buttons/Buttons.styles.js.map +1 -1
- package/components/Buttons/index.js +1 -3
- package/components/Buttons/useButtons.js +15 -20
- package/components/Buttons/useButtons.js.map +1 -1
- package/components/DeveloperMode/DeveloperMode.js +5 -14
- package/components/DeveloperMode/DeveloperMode.js.map +1 -1
- package/components/DeveloperMode/index.js +0 -2
- package/components/Dialogs/Dialog.d.ts +2 -2
- package/components/Dialogs/Dialog.js +46 -59
- package/components/Dialogs/Dialog.js.map +1 -1
- package/components/Dialogs/DialogParamsContext.js +6 -7
- package/components/Dialogs/DialogParamsContext.js.map +1 -1
- package/components/Dialogs/DialogsContext.d.ts +2 -2
- package/components/Dialogs/DialogsContext.js +129 -149
- package/components/Dialogs/DialogsContext.js.map +1 -1
- package/components/Dialogs/useDialogs.js +5 -6
- package/components/Dialogs/useDialogs.js.map +1 -1
- package/components/EmptyView.js +26 -31
- package/components/EmptyView.js.map +1 -1
- package/components/Filters/Filters.js +15 -16
- package/components/Filters/Filters.js.map +1 -1
- package/components/Filters/FiltersToggle.js +18 -23
- package/components/Filters/FiltersToggle.js.map +1 -1
- package/components/Filters/index.js +0 -2
- package/components/FloatingActionButton.js +13 -15
- package/components/FloatingActionButton.js.map +1 -1
- package/components/IconPicker/IconPicker.js +24 -26
- package/components/IconPicker/IconPicker.js.map +1 -1
- package/components/IconPicker/IconPickerComponent.js +56 -72
- package/components/IconPicker/IconPickerComponent.js.map +1 -1
- package/components/IconPicker/IconPickerPresenter.js +64 -70
- package/components/IconPicker/IconPickerPresenter.js.map +1 -1
- package/components/IconPicker/IconPickerPresenter.test.js +79 -105
- package/components/IconPicker/IconPickerPresenter.test.js.map +1 -1
- package/components/IconPicker/IconPickerPresenterProvider.js +10 -16
- package/components/IconPicker/IconPickerPresenterProvider.js.map +1 -1
- package/components/IconPicker/IconPickerTab.js +97 -140
- package/components/IconPicker/IconPickerTab.js.map +1 -1
- package/components/IconPicker/IconRenderer.js +15 -23
- package/components/IconPicker/IconRenderer.js.map +1 -1
- package/components/IconPicker/IconRepository.js +41 -40
- package/components/IconPicker/IconRepository.js.map +1 -1
- package/components/IconPicker/IconRepository.test.js +56 -63
- package/components/IconPicker/IconRepository.test.js.map +1 -1
- package/components/IconPicker/IconRepositoryFactory.js +15 -11
- package/components/IconPicker/IconRepositoryFactory.js.map +1 -1
- package/components/IconPicker/Loading.js +47 -46
- package/components/IconPicker/Loading.js.map +1 -1
- package/components/IconPicker/components/IconPickerCell.js +18 -20
- package/components/IconPicker/components/IconPickerCell.js.map +1 -1
- package/components/IconPicker/components/IconPickerContent.js +27 -35
- package/components/IconPicker/components/IconPickerContent.js.map +1 -1
- package/components/IconPicker/components/IconPickerRow.js +5 -10
- package/components/IconPicker/components/IconPickerRow.js.map +1 -1
- package/components/IconPicker/components/IconPickerTrigger.js +42 -44
- package/components/IconPicker/components/IconPickerTrigger.js.map +1 -1
- package/components/IconPicker/components/index.js +0 -2
- package/components/IconPicker/config/Emojis.js +19 -21
- package/components/IconPicker/config/Emojis.js.map +1 -1
- package/components/IconPicker/config/FontAwesomeIcons.js +54 -58
- package/components/IconPicker/config/FontAwesomeIcons.js.map +1 -1
- package/components/IconPicker/config/IconPackProvider.js +17 -19
- package/components/IconPicker/config/IconPackProvider.js.map +1 -1
- package/components/IconPicker/config/IconType.js +48 -80
- package/components/IconPicker/config/IconType.js.map +1 -1
- package/components/IconPicker/config/index.js +28 -31
- package/components/IconPicker/config/index.js.map +1 -1
- package/components/IconPicker/defaultIcon.js +6 -5
- package/components/IconPicker/defaultIcon.js.map +1 -1
- package/components/IconPicker/index.js +0 -2
- package/components/IconPicker/plugins/customPlugin.js +87 -110
- package/components/IconPicker/plugins/customPlugin.js.map +1 -1
- package/components/IconPicker/plugins/emojisPlugin.js +90 -115
- package/components/IconPicker/plugins/emojisPlugin.js.map +1 -1
- package/components/IconPicker/plugins/graphql.js +3 -8
- package/components/IconPicker/plugins/graphql.js.map +1 -1
- package/components/IconPicker/plugins/iconsPlugin.js +73 -104
- package/components/IconPicker/plugins/iconsPlugin.js.map +1 -1
- package/components/IconPicker/types.js +4 -7
- package/components/IconPicker/types.js.map +1 -1
- package/components/LexicalEditor/LexicalEditor.js +40 -38
- package/components/LexicalEditor/LexicalEditor.js.map +1 -1
- package/components/LexicalEditor/LexicalLinkForm.js +80 -86
- package/components/LexicalEditor/LexicalLinkForm.js.map +1 -1
- package/components/LexicalEditor/index.js +0 -2
- package/components/LexicalEditor/lexicalValueFromHtml.js +21 -28
- package/components/LexicalEditor/lexicalValueFromHtml.js.map +1 -1
- package/components/LexicalEditor/lexicalValueWithHtml.js +24 -30
- package/components/LexicalEditor/lexicalValueWithHtml.js.map +1 -1
- package/components/MultiImageUpload.js +4 -13
- package/components/MultiImageUpload.js.map +1 -1
- package/components/NotAuthorizedError/NotAuthorizedError.js +16 -17
- package/components/NotAuthorizedError/NotAuthorizedError.js.map +1 -1
- package/components/NotAuthorizedError/SecureRouteError.js +297 -0
- package/components/NotAuthorizedError/SecureRouteError.js.map +1 -0
- package/components/NotAuthorizedError/index.js +0 -2
- package/components/OptionsMenu/OptionsMenu.js +20 -19
- package/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/components/OptionsMenu/OptionsMenuItem.js +15 -14
- package/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
- package/components/OptionsMenu/OptionsMenuLink.js +13 -14
- package/components/OptionsMenu/OptionsMenuLink.js.map +1 -1
- package/components/OptionsMenu/index.js +0 -2
- package/components/OptionsMenu/useOptionsMenuItem.js +13 -18
- package/components/OptionsMenu/useOptionsMenuItem.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.js +35 -38
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/components/OverlayBackdrop.js +6 -11
- package/components/OverlayLayout/components/OverlayBackdrop.js.map +1 -1
- package/components/OverlayLayout/components/OverlayContent.js +18 -17
- package/components/OverlayLayout/components/OverlayContent.js.map +1 -1
- package/components/OverlayLayout/components/OverlayHeader.js +30 -37
- package/components/OverlayLayout/components/OverlayHeader.js.map +1 -1
- package/components/OverlayLayout/components/OverlayRoot.js +13 -17
- package/components/OverlayLayout/components/OverlayRoot.js.map +1 -1
- package/components/OverlayLayout/components/index.js +0 -2
- package/components/OverlayLayout/index.js +0 -2
- package/components/Permissions/CannotUseAaclAlert.js +10 -11
- package/components/Permissions/CannotUseAaclAlert.js.map +1 -1
- package/components/Permissions/Permissions.js +32 -41
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/PermissionsGroup.js +9 -15
- package/components/Permissions/PermissionsGroup.js.map +1 -1
- package/components/Permissions/StyledComponents.js +9 -16
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.js +1 -3
- package/components/RegisterFeature.js +14 -21
- package/components/RegisterFeature.js.map +1 -1
- package/components/ResizablePanels/index.js +0 -2
- package/components/RoleAutocomplete/graphql.js +3 -2
- package/components/RoleAutocomplete/graphql.js.map +1 -1
- package/components/RoleAutocomplete/index.d.ts +5 -3
- package/components/RoleAutocomplete/index.js +21 -13
- package/components/RoleAutocomplete/index.js.map +1 -1
- package/components/RolesMultiAutocomplete/graphql.js +3 -2
- package/components/RolesMultiAutocomplete/graphql.js.map +1 -1
- package/components/RolesMultiAutocomplete/index.d.ts +5 -3
- package/components/RolesMultiAutocomplete/index.js +21 -14
- package/components/RolesMultiAutocomplete/index.js.map +1 -1
- package/components/SearchUI.js +18 -25
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.d.ts +1 -1
- package/components/SimpleForm/SimpleForm.js +54 -73
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js +1 -3
- package/components/SimpleUI/InputField.js +71 -64
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.d.ts +2 -2
- package/components/SingleImageUpload.js +37 -58
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.js +47 -57
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js +1 -3
- package/components/TeamAutocomplete/graphql.js +3 -2
- package/components/TeamAutocomplete/graphql.js.map +1 -1
- package/components/TeamAutocomplete/index.d.ts +5 -3
- package/components/TeamAutocomplete/index.js +21 -13
- package/components/TeamAutocomplete/index.js.map +1 -1
- package/components/TeamsMultiAutocomplete/graphql.js +3 -2
- package/components/TeamsMultiAutocomplete/graphql.js.map +1 -1
- package/components/TeamsMultiAutocomplete/index.d.ts +5 -3
- package/components/TeamsMultiAutocomplete/index.js +21 -14
- package/components/TeamsMultiAutocomplete/index.js.map +1 -1
- package/components/Wcp.js +27 -38
- package/components/Wcp.js.map +1 -1
- package/components/index.js +10 -13
- package/config/AdminConfig/Dashboard.js +3 -2
- package/config/AdminConfig/Dashboard.js.map +1 -1
- package/config/AdminConfig/Dialog.js +15 -17
- package/config/AdminConfig/Dialog.js.map +1 -1
- package/config/AdminConfig/FieldRenderer.js +15 -17
- package/config/AdminConfig/FieldRenderer.js.map +1 -1
- package/config/AdminConfig/Form.js +4 -3
- package/config/AdminConfig/Form.js.map +1 -1
- package/config/AdminConfig/LayoutRenderer.js +15 -17
- package/config/AdminConfig/LayoutRenderer.js.map +1 -1
- package/config/AdminConfig/LexicalTheme/Color.js +34 -41
- package/config/AdminConfig/LexicalTheme/Color.js.map +1 -1
- package/config/AdminConfig/LexicalTheme/Typography.js +61 -74
- package/config/AdminConfig/LexicalTheme/Typography.js.map +1 -1
- package/config/AdminConfig/LexicalTheme.js +4 -3
- package/config/AdminConfig/LexicalTheme.js.map +1 -1
- package/config/AdminConfig/Logo.d.ts +1 -1
- package/config/AdminConfig/Logo.js +15 -17
- package/config/AdminConfig/Logo.js.map +1 -1
- package/config/AdminConfig/Menu/MenuGroup.d.ts +3 -3
- package/config/AdminConfig/Menu/MenuGroup.js +7 -9
- package/config/AdminConfig/Menu/MenuGroup.js.map +1 -1
- package/config/AdminConfig/Menu/MenuItem.d.ts +2 -2
- package/config/AdminConfig/Menu/MenuItem.js +5 -7
- package/config/AdminConfig/Menu/MenuItem.js.map +1 -1
- package/config/AdminConfig/Menu/MenuLink.d.ts +2 -2
- package/config/AdminConfig/Menu/MenuLink.js +12 -15
- package/config/AdminConfig/Menu/MenuLink.js.map +1 -1
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.d.ts +2 -2
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.js +6 -8
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.js.map +1 -1
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.d.ts +1 -1
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.js +4 -6
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.js.map +1 -1
- package/config/AdminConfig/Menu/SupportMenu.d.ts +3 -3
- package/config/AdminConfig/Menu/SupportMenu.js +30 -41
- package/config/AdminConfig/Menu/SupportMenu.js.map +1 -1
- package/config/AdminConfig/Menu/UserMenu/UserMenuItem.js +4 -4
- package/config/AdminConfig/Menu/UserMenu/UserMenuItem.js.map +1 -1
- package/config/AdminConfig/Menu/UserMenu/UserMenuLink.js +4 -4
- package/config/AdminConfig/Menu/UserMenu/UserMenuLink.js.map +1 -1
- package/config/AdminConfig/Menu/UserMenu/UserMenuSeparator.js +0 -2
- package/config/AdminConfig/Menu/UserMenu/types.js +0 -3
- package/config/AdminConfig/Menu/UserMenu.d.ts +31 -31
- package/config/AdminConfig/Menu/UserMenu.js +39 -52
- package/config/AdminConfig/Menu/UserMenu.js.map +1 -1
- package/config/AdminConfig/Menu/types.js +0 -3
- package/config/AdminConfig/Menu.d.ts +42 -42
- package/config/AdminConfig/Menu.js +57 -73
- package/config/AdminConfig/Menu.js.map +1 -1
- package/config/AdminConfig/Route.js +4 -5
- package/config/AdminConfig/Route.js.map +1 -1
- package/config/AdminConfig/Security.js +3 -2
- package/config/AdminConfig/Security.js.map +1 -1
- package/config/AdminConfig/SecurityPermissions.js +20 -27
- package/config/AdminConfig/SecurityPermissions.js.map +1 -1
- package/config/AdminConfig/Tenant/TenantLogo.d.ts +1 -1
- package/config/AdminConfig/Tenant/TenantLogo.js +18 -20
- package/config/AdminConfig/Tenant/TenantLogo.js.map +1 -1
- package/config/AdminConfig/Tenant/TenantName.d.ts +1 -1
- package/config/AdminConfig/Tenant/TenantName.js +14 -15
- package/config/AdminConfig/Tenant/TenantName.js.map +1 -1
- package/config/AdminConfig/Tenant.js +6 -9
- package/config/AdminConfig/Tenant.js.map +1 -1
- package/config/AdminConfig/Theme/assignColor.js +51 -18
- package/config/AdminConfig/Theme/assignColor.js.map +1 -1
- package/config/AdminConfig/Theme/consts.js +20 -2
- package/config/AdminConfig/Theme/consts.js.map +1 -1
- package/config/AdminConfig/Theme/types.js +0 -3
- package/config/AdminConfig/Theme.js +8 -15
- package/config/AdminConfig/Theme.js.map +1 -1
- package/config/AdminConfig/Title.d.ts +1 -1
- package/config/AdminConfig/Title.js +11 -12
- package/config/AdminConfig/Title.js.map +1 -1
- package/config/AdminConfig/Widget.js +24 -31
- package/config/AdminConfig/Widget.js.map +1 -1
- package/config/AdminConfig.js +47 -59
- package/config/AdminConfig.js.map +1 -1
- package/config/createAdminConfig.js +55 -86
- package/config/createAdminConfig.js.map +1 -1
- package/domain/Identity.js +78 -88
- package/domain/Identity.js.map +1 -1
- package/errors/ErrorOverlayNetworkErrorHandler.js +37 -52
- package/errors/ErrorOverlayNetworkErrorHandler.js.map +1 -1
- package/errors/TenantIsDisabled.js +19 -20
- package/errors/TenantIsDisabled.js.map +1 -1
- package/exports/admin/build-params.js +0 -5
- package/exports/admin/configs.js +0 -2
- package/exports/admin/form.js +3 -18
- package/exports/admin/security.js +1 -7
- package/exports/admin/tenancy.js +0 -2
- package/exports/admin/ui.js +1 -4
- package/exports/admin.js +1 -4
- package/features/apolloClient/abstraction.js +2 -1
- package/features/apolloClient/abstraction.js.map +1 -1
- package/features/apolloClient/feature.js +22 -30
- package/features/apolloClient/feature.js.map +1 -1
- package/features/buildParams/BuildParams.js +20 -14
- package/features/buildParams/BuildParams.js.map +1 -1
- package/features/buildParams/abstractions.js +3 -2
- package/features/buildParams/abstractions.js.map +1 -1
- package/features/buildParams/feature.js +11 -10
- package/features/buildParams/feature.js.map +1 -1
- package/features/buildParams/index.js +0 -2
- package/features/formModel/ConditionRuleEvaluator.js +39 -46
- package/features/formModel/ConditionRuleEvaluator.js.map +1 -1
- package/features/formModel/Field.d.ts +1 -0
- package/features/formModel/Field.js +334 -411
- package/features/formModel/Field.js.map +1 -1
- package/features/formModel/FieldBuilder.d.ts +2 -1
- package/features/formModel/FieldBuilder.js +148 -171
- package/features/formModel/FieldBuilder.js.map +1 -1
- package/features/formModel/FieldBuilder.test.js +217 -201
- package/features/formModel/FieldBuilder.test.js.map +1 -1
- package/features/formModel/FieldBuilderRegistry.js +23 -25
- package/features/formModel/FieldBuilderRegistry.js.map +1 -1
- package/features/formModel/FocusManager.js +69 -95
- package/features/formModel/FocusManager.js.map +1 -1
- package/features/formModel/FormErrors.d.ts +9 -0
- package/features/formModel/FormErrors.js +35 -0
- package/features/formModel/FormErrors.js.map +1 -0
- package/features/formModel/FormModel.d.ts +2 -0
- package/features/formModel/FormModel.js +391 -396
- package/features/formModel/FormModel.js.map +1 -1
- package/features/formModel/FormModel.test.js +3791 -3354
- package/features/formModel/FormModel.test.js.map +1 -1
- package/features/formModel/FormModelFactory.js +27 -17
- package/features/formModel/FormModelFactory.js.map +1 -1
- package/features/formModel/FormView.d.ts +2 -1
- package/features/formModel/FormView.js +168 -156
- package/features/formModel/FormView.js.map +1 -1
- package/features/formModel/LayoutBuilderFactory.js +300 -370
- package/features/formModel/LayoutBuilderFactory.js.map +1 -1
- package/features/formModel/LayoutMutator.js +118 -125
- package/features/formModel/LayoutMutator.js.map +1 -1
- package/features/formModel/LayoutResolver.js +174 -214
- package/features/formModel/LayoutResolver.js.map +1 -1
- package/features/formModel/ObjectField.js +524 -724
- package/features/formModel/ObjectField.js.map +1 -1
- package/features/formModel/PresenterErrors.d.ts +9 -0
- package/features/formModel/PresenterErrors.js +32 -0
- package/features/formModel/PresenterErrors.js.map +1 -0
- package/features/formModel/Rules.test.js +311 -276
- package/features/formModel/Rules.test.js.map +1 -1
- package/features/formModel/abstractions.d.ts +10 -0
- package/features/formModel/abstractions.js +5 -114
- package/features/formModel/abstractions.js.map +1 -1
- package/features/formModel/createFieldRenderer.js +33 -10
- package/features/formModel/createFieldRenderer.js.map +1 -1
- package/features/formModel/demo/FieldRenderersDemoPresenter.js +289 -220
- package/features/formModel/demo/FieldRenderersDemoPresenter.js.map +1 -1
- package/features/formModel/demo/FormModelDemo.js +191 -215
- package/features/formModel/demo/FormModelDemo.js.map +1 -1
- package/features/formModel/demo/FormModelDemoPresenter.js +132 -113
- package/features/formModel/demo/FormModelDemoPresenter.js.map +1 -1
- package/features/formModel/demo/FormModelPhase11Presenter.js +101 -98
- package/features/formModel/demo/FormModelPhase11Presenter.js.map +1 -1
- package/features/formModel/demo/FormModelPhase8c1Presenter.js +64 -57
- package/features/formModel/demo/FormModelPhase8c1Presenter.js.map +1 -1
- package/features/formModel/feature.js +23 -22
- package/features/formModel/feature.js.map +1 -1
- package/features/formModel/fieldTypes/BooleanFieldType.js +18 -15
- package/features/formModel/fieldTypes/BooleanFieldType.js.map +1 -1
- package/features/formModel/fieldTypes/DateTimeFieldType.js +218 -341
- package/features/formModel/fieldTypes/DateTimeFieldType.js.map +1 -1
- package/features/formModel/fieldTypes/FileFieldType.d.ts +12 -1
- package/features/formModel/fieldTypes/FileFieldType.js +48 -12
- package/features/formModel/fieldTypes/FileFieldType.js.map +1 -1
- package/features/formModel/fieldTypes/FileUrlFieldType.js +15 -12
- package/features/formModel/fieldTypes/FileUrlFieldType.js.map +1 -1
- package/features/formModel/fieldTypes/NumberFieldType.js +19 -18
- package/features/formModel/fieldTypes/NumberFieldType.js.map +1 -1
- package/features/formModel/fieldTypes/ObjectFieldType.js +80 -94
- package/features/formModel/fieldTypes/ObjectFieldType.js.map +1 -1
- package/features/formModel/fieldTypes/TextFieldType.js +15 -12
- package/features/formModel/fieldTypes/TextFieldType.js.map +1 -1
- package/features/formModel/fieldTypes/index.js +7 -9
- package/features/formModel/index.d.ts +2 -0
- package/features/formModel/index.js +11 -29
- package/features/formModel/renderers.js +0 -4
- package/features/formModel/useFieldRenderers.js +10 -14
- package/features/formModel/useFieldRenderers.js.map +1 -1
- package/features/formModel/useLayoutRenderers.js +10 -14
- package/features/formModel/useLayoutRenderers.js.map +1 -1
- package/features/listCache/ListCache.d.ts +28 -0
- package/features/listCache/ListCache.js +48 -0
- package/features/listCache/ListCache.js.map +1 -0
- package/features/listCache/index.d.ts +2 -0
- package/features/listCache/index.js +1 -0
- package/features/security/AuthenticationContext/AuthenticationContext.js +27 -26
- package/features/security/AuthenticationContext/AuthenticationContext.js.map +1 -1
- package/features/security/AuthenticationContext/GraphQLClientDecorator.js +23 -22
- package/features/security/AuthenticationContext/GraphQLClientDecorator.js.map +1 -1
- package/features/security/AuthenticationContext/InternalIdTokenProvider.js +15 -12
- package/features/security/AuthenticationContext/InternalIdTokenProvider.js.map +1 -1
- package/features/security/AuthenticationContext/abstractions.js +3 -2
- package/features/security/AuthenticationContext/abstractions.js.map +1 -1
- package/features/security/AuthenticationContext/feature.js +15 -14
- package/features/security/AuthenticationContext/feature.js.map +1 -1
- package/features/security/AuthenticationContext/index.js +0 -2
- package/features/security/AuthenticationContext/types.js +0 -3
- package/features/security/IdentityContext/IdentityContext.js +18 -17
- package/features/security/IdentityContext/IdentityContext.js.map +1 -1
- package/features/security/IdentityContext/abstractions.js +2 -1
- package/features/security/IdentityContext/abstractions.js.map +1 -1
- package/features/security/IdentityContext/feature.js +13 -12
- package/features/security/IdentityContext/feature.js.map +1 -1
- package/features/security/IdentityContext/index.js +0 -2
- package/features/security/LogIn/IdentityMapper.js +8 -7
- package/features/security/LogIn/IdentityMapper.js.map +1 -1
- package/features/security/LogIn/LogInGateway.js +17 -19
- package/features/security/LogIn/LogInGateway.js.map +1 -1
- package/features/security/LogIn/LogInRepository.js +16 -14
- package/features/security/LogIn/LogInRepository.js.map +1 -1
- package/features/security/LogIn/LogInUseCase.js +23 -31
- package/features/security/LogIn/LogInUseCase.js.map +1 -1
- package/features/security/LogIn/abstractions.js +5 -16
- package/features/security/LogIn/abstractions.js.map +1 -1
- package/features/security/LogIn/createLoginMutation.js +2 -3
- package/features/security/LogIn/createLoginMutation.js.map +1 -1
- package/features/security/LogIn/feature.js +16 -15
- package/features/security/LogIn/feature.js.map +1 -1
- package/features/security/LogIn/index.js +0 -2
- package/features/security/LogOut/LogOutUseCase.js +18 -16
- package/features/security/LogOut/LogOutUseCase.js.map +1 -1
- package/features/security/LogOut/abstractions.js +2 -1
- package/features/security/LogOut/abstractions.js.map +1 -1
- package/features/security/LogOut/feature.js +12 -11
- package/features/security/LogOut/feature.js.map +1 -1
- package/features/security/LogOut/index.js +0 -2
- package/features/security/SecurityFeature.js +9 -8
- package/features/security/SecurityFeature.js.map +1 -1
- package/features/telemetry/TelemetryService.js +11 -12
- package/features/telemetry/TelemetryService.js.map +1 -1
- package/features/telemetry/abstractions.js +2 -1
- package/features/telemetry/abstractions.js.map +1 -1
- package/features/telemetry/feature.js +13 -12
- package/features/telemetry/feature.js.map +1 -1
- package/features/telemetry/index.js +0 -2
- package/features/tenancy/GraphQLClientDecorator.js +23 -20
- package/features/tenancy/GraphQLClientDecorator.js.map +1 -1
- package/features/tenancy/TenantContext.js +46 -50
- package/features/tenancy/TenantContext.js.map +1 -1
- package/features/tenancy/abstractions.js +2 -1
- package/features/tenancy/abstractions.js.map +1 -1
- package/features/tenancy/feature.js +25 -35
- package/features/tenancy/feature.js.map +1 -1
- package/features/tenancy/types.js +0 -3
- package/features/tools/LexicalContext/LexicalContext.js +20 -17
- package/features/tools/LexicalContext/LexicalContext.js.map +1 -1
- package/features/tools/LexicalContext/abstractions.js +2 -1
- package/features/tools/LexicalContext/abstractions.js.map +1 -1
- package/features/tools/LexicalContext/index.js +0 -2
- package/features/tools/ToolPipelineRunner.js +26 -24
- package/features/tools/ToolPipelineRunner.js.map +1 -1
- package/features/tools/ToolRegistry.js +32 -23
- package/features/tools/ToolRegistry.js.map +1 -1
- package/features/tools/abstractions.js +4 -3
- package/features/tools/abstractions.js.map +1 -1
- package/features/tools/feature.js +17 -16
- package/features/tools/feature.js.map +1 -1
- package/features/tools/index.js +1 -3
- package/features/wcp/ReactLicense.js +53 -52
- package/features/wcp/ReactLicense.js.map +1 -1
- package/features/wcp/WcpGateway.js +21 -20
- package/features/wcp/WcpGateway.js.map +1 -1
- package/features/wcp/WcpService.js +57 -67
- package/features/wcp/WcpService.js.map +1 -1
- package/features/wcp/abstractions.js +3 -2
- package/features/wcp/abstractions.js.map +1 -1
- package/features/wcp/feature.js +14 -13
- package/features/wcp/feature.js.map +1 -1
- package/features/wcp/types.js +0 -3
- package/features/webinySdk/WebinySdk.js +19 -18
- package/features/webinySdk/WebinySdk.js.map +1 -1
- package/features/webinySdk/abstractions.js +2 -5
- package/features/webinySdk/abstractions.js.map +1 -1
- package/features/webinySdk/feature.js +13 -12
- package/features/webinySdk/feature.js.map +1 -1
- package/features/webinySdk/index.js +0 -2
- package/hooks/index.js +0 -2
- package/hooks/useConfirmationDialog.d.ts +1 -1
- package/hooks/useConfirmationDialog.js +31 -38
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +14 -15
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useHotkeys.js +52 -85
- package/hooks/useHotkeys.js.map +1 -1
- package/hooks/useIsMounted.js +12 -11
- package/hooks/useIsMounted.js.map +1 -1
- package/hooks/useKeyHandler.js +45 -53
- package/hooks/useKeyHandler.js.map +1 -1
- package/hooks/useModKey.js +20 -25
- package/hooks/useModKey.js.map +1 -1
- package/hooks/useOpenDialog.js +13 -13
- package/hooks/useOpenDialog.js.map +1 -1
- package/hooks/useShiftKey.d.ts +5 -1
- package/hooks/useShiftKey.js +38 -29
- package/hooks/useShiftKey.js.map +1 -1
- package/hooks/useSnackbar.d.ts +3 -0
- package/hooks/useSnackbar.js +26 -28
- package/hooks/useSnackbar.js.map +1 -1
- package/hooks/useStateIfMounted.js +14 -12
- package/hooks/useStateIfMounted.js.map +1 -1
- package/hooks/useStateWithCallback.js +18 -14
- package/hooks/useStateWithCallback.js.map +1 -1
- package/hooks/useToggler.js +12 -11
- package/hooks/useToggler.js.map +1 -1
- package/index.d.ts +4 -1
- package/index.js +15 -31
- package/package.json +26 -28
- package/permissions/PermissionRenderer.js +179 -193
- package/permissions/PermissionRenderer.js.map +1 -1
- package/permissions/PermissionValueContext.js +13 -20
- package/permissions/PermissionValueContext.js.map +1 -1
- package/permissions/createHasPermission.js +32 -40
- package/permissions/createHasPermission.js.map +1 -1
- package/permissions/createPermissionSchema.js +6 -5
- package/permissions/createPermissionSchema.js.map +1 -1
- package/permissions/createPermissions.js +125 -185
- package/permissions/createPermissions.js.map +1 -1
- package/permissions/createPermissions.test.js +190 -158
- package/permissions/createPermissions.test.js.map +1 -1
- package/permissions/index.js +2 -4
- package/permissions/types.js +0 -3
- package/permissions/usePermissionForm.js +133 -232
- package/permissions/usePermissionForm.js.map +1 -1
- package/permissions/usePermissions.js +6 -5
- package/permissions/usePermissions.js.map +1 -1
- package/plugins/MenuPlugin.js +15 -14
- package/plugins/MenuPlugin.js.map +1 -1
- package/presentation/buildParams/useBuildParams.js +2 -3
- package/presentation/buildParams/useBuildParams.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/SystemInstaller.js +46 -53
- package/presentation/installation/components/SystemInstaller/SystemInstaller.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/SystemInstallerProvider.js +9 -14
- package/presentation/installation/components/SystemInstaller/SystemInstallerProvider.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/index.js +0 -2
- package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js +14 -29
- package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/usePasswordValidator.js +11 -10
- package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/usePasswordValidator.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/steps/AdminUserStep.js +60 -60
- package/presentation/installation/components/SystemInstaller/steps/AdminUserStep.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/steps/BasicInfoStep.js +75 -85
- package/presentation/installation/components/SystemInstaller/steps/BasicInfoStep.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/steps/Center.js +5 -8
- package/presentation/installation/components/SystemInstaller/steps/Center.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/steps/Container.js +18 -24
- package/presentation/installation/components/SystemInstaller/steps/Container.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/steps/FinishSetup.js +48 -53
- package/presentation/installation/components/SystemInstaller/steps/FinishSetup.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/steps/IntroductionStep.js +13 -16
- package/presentation/installation/components/SystemInstaller/steps/IntroductionStep.js.map +1 -1
- package/presentation/installation/components/SystemInstaller/steps/introduction.js +723 -0
- package/presentation/installation/components/SystemInstaller/steps/introduction.js.map +1 -0
- package/presentation/installation/components/SystemInstaller/steps/referralSources.js +14 -1
- package/presentation/installation/components/SystemInstaller/steps/referralSources.js.map +1 -1
- package/presentation/installation/presenters/SystemInstaller/SystemInstallerGateway.js +27 -28
- package/presentation/installation/presenters/SystemInstaller/SystemInstallerGateway.js.map +1 -1
- package/presentation/installation/presenters/SystemInstaller/SystemInstallerPresenter.js +117 -124
- package/presentation/installation/presenters/SystemInstaller/SystemInstallerPresenter.js.map +1 -1
- package/presentation/installation/presenters/SystemInstaller/SystemInstallerRepository.js +23 -21
- package/presentation/installation/presenters/SystemInstaller/SystemInstallerRepository.js.map +1 -1
- package/presentation/installation/presenters/SystemInstaller/abstractions.js +4 -3
- package/presentation/installation/presenters/SystemInstaller/abstractions.js.map +1 -1
- package/presentation/installation/presenters/SystemInstaller/feature.js +15 -14
- package/presentation/installation/presenters/SystemInstaller/feature.js.map +1 -1
- package/presentation/installation/presenters/SystemInstaller/index.js +0 -2
- package/presentation/lexicalContext/useLexicalContext.js +11 -8
- package/presentation/lexicalContext/useLexicalContext.js.map +1 -1
- package/presentation/listPresenter/ListPresenter.d.ts +30 -0
- package/presentation/listPresenter/ListPresenter.js +216 -0
- package/presentation/listPresenter/ListPresenter.js.map +1 -0
- package/presentation/listPresenter/ListPresenter.test.d.ts +1 -0
- package/presentation/listPresenter/ListPresenter.test.js +816 -0
- package/presentation/listPresenter/ListPresenter.test.js.map +1 -0
- package/presentation/listPresenter/SelectionController.d.ts +21 -0
- package/presentation/listPresenter/SelectionController.js +74 -0
- package/presentation/listPresenter/SelectionController.js.map +1 -0
- package/presentation/listPresenter/abstractions.d.ts +107 -0
- package/presentation/listPresenter/abstractions.js +5 -0
- package/presentation/listPresenter/abstractions.js.map +1 -0
- package/presentation/listPresenter/feature.d.ts +3 -0
- package/presentation/listPresenter/feature.js +17 -0
- package/presentation/listPresenter/feature.js.map +1 -0
- package/presentation/listPresenter/index.d.ts +3 -0
- package/presentation/listPresenter/index.js +2 -0
- package/presentation/security/components/HasPermission.js +15 -25
- package/presentation/security/components/HasPermission.js.map +1 -1
- package/presentation/security/components/SecureRoute.js +6 -12
- package/presentation/security/components/SecureRoute.js.map +1 -1
- package/presentation/security/hooks/useAuthentication.js +11 -17
- package/presentation/security/hooks/useAuthentication.js.map +1 -1
- package/presentation/security/hooks/useIdentity.js +19 -18
- package/presentation/security/hooks/useIdentity.js.map +1 -1
- package/presentation/security/hooks/useSecurity.js +14 -24
- package/presentation/security/hooks/useSecurity.js.map +1 -1
- package/presentation/tenancy/TenancyProvider.js +23 -36
- package/presentation/tenancy/TenancyProvider.js.map +1 -1
- package/presentation/tenancy/createTenancyProvider.js +6 -11
- package/presentation/tenancy/createTenancyProvider.js.map +1 -1
- package/presentation/tenancy/useTenantContext.js +17 -18
- package/presentation/tenancy/useTenantContext.js.map +1 -1
- package/presentation/textToLexicalTool/TextToLexicalTool.js +20 -18
- package/presentation/textToLexicalTool/TextToLexicalTool.js.map +1 -1
- package/presentation/textToLexicalTool/feature.js +6 -5
- package/presentation/textToLexicalTool/feature.js.map +1 -1
- package/presentation/textToLexicalTool/textToLexicalState.js +28 -28
- package/presentation/textToLexicalTool/textToLexicalState.js.map +1 -1
- package/presentation/wcp/WcpProvider.js +16 -26
- package/presentation/wcp/WcpProvider.js.map +1 -1
- package/presentation/wcp/useWcp.js +11 -12
- package/presentation/wcp/useWcp.js.map +1 -1
- package/routes.d.ts +0 -1
- package/routes.js +14 -17
- package/routes.js.map +1 -1
- package/static/svg/SecureRouteError.e8b15981.svg +1 -0
- package/static/svg/add-18px.b3062af6.svg +3 -0
- package/static/svg/arrow_drop_down-24px.da74d713.svg +4 -0
- package/static/svg/attach_file_black_24dp.7fb13a7e.svg +1 -0
- package/static/svg/baseline-menu-24px.071b179d.svg +4 -0
- package/static/svg/baseline-notification_important-24px.29277e73.svg +4 -0
- package/static/svg/baseline-security-24px.12e519cc.svg +4 -0
- package/static/svg/file_download.afe3fbec.svg +1 -0
- package/static/svg/file_upload.6865d820.svg +1 -0
- package/static/svg/filter-24px.886d9ff0.svg +8 -0
- package/static/svg/github-brands.6311f0fa.svg +1 -0
- package/static/svg/highlight-24px.959a97f7.svg +1 -0
- package/static/svg/icon-community.cd087355.svg +16 -0
- package/static/svg/icon-documentation.a189d24c.svg +16 -0
- package/static/svg/info.fe810b72.svg +1 -0
- package/static/svg/insert_drive_file-24px.39d490eb.svg +1 -0
- package/static/svg/insert_photo-24px.81a5f945.svg +1 -0
- package/static/svg/introduction.108720aa.svg +154 -0
- package/static/svg/label-24px.9deafa4f.svg +1 -0
- package/static/svg/round-account_circle-24px.f0b48cb7.svg +1 -0
- package/static/svg/round-add-24px.4a5219b4.svg +16 -0
- package/static/svg/round-arrow_drop_down-24px.5fdf92d1.svg +1 -0
- package/static/svg/round-chevron_right-24px.34936511.svg +12 -0
- package/static/svg/round-feedback-24px.4dae7231.svg +54 -0
- package/static/svg/round-help-24px.a61b1d66.svg +1 -0
- package/static/svg/round-invert_colors-24px.a229a1dd.svg +52 -0
- package/static/svg/round-keyboard_arrow_down-24px.6febe804.svg +16 -0
- package/static/svg/round-keyboard_arrow_up-24px.b1f7db34.svg +16 -0
- package/static/svg/round-lock_open-24px.d527f6a5.svg +60 -0
- package/static/svg/round-more_vert-24px.68d41b07.svg +12 -0
- package/static/svg/round-open_in_new-24px.be5b4ddd.svg +44 -0
- package/static/svg/round-settings-24px.c0b3056f.svg +4 -0
- package/static/svg/search-24px.3c0f88dd.svg +20 -0
- package/static/svg/slack-logo.7ee35e7f.svg +1 -0
- package/static/svg/today-24px.df206362.svg +1 -0
- package/static/svg/touch_app.debf3744.svg +1 -0
- package/static/svg/wby-horizontal.03327bf6.svg +23 -0
- package/static/svg/wby-square.ff8f47c3.svg +3 -0
- package/static/svg/webiny-logo.ef56725c.svg +20 -0
- package/static/svg/webiny-orange-logo.4eccf0f2.svg +20 -0
- package/types.js +0 -3
- package/components/BulkActions/index.js.map +0 -1
- package/components/BulkActions/useDialogWithReport/index.js.map +0 -1
- package/components/Buttons/index.js.map +0 -1
- package/components/DeveloperMode/index.js.map +0 -1
- package/components/Filters/index.js.map +0 -1
- package/components/IconPicker/components/index.js.map +0 -1
- package/components/IconPicker/index.js.map +0 -1
- package/components/LexicalEditor/index.js.map +0 -1
- package/components/NotAuthorizedError/index.js.map +0 -1
- package/components/OptionsMenu/index.js.map +0 -1
- package/components/OverlayLayout/components/index.js.map +0 -1
- package/components/OverlayLayout/index.js.map +0 -1
- package/components/Permissions/index.js.map +0 -1
- package/components/ResizablePanels/index.js.map +0 -1
- package/components/SimpleForm/index.js.map +0 -1
- package/components/SplitView/index.js.map +0 -1
- package/components/index.js.map +0 -1
- package/config/AdminConfig/Menu/UserMenu/UserMenuSeparator.js.map +0 -1
- package/config/AdminConfig/Menu/UserMenu/types.js.map +0 -1
- package/config/AdminConfig/Menu/types.js.map +0 -1
- package/config/AdminConfig/Theme/types.js.map +0 -1
- package/exports/admin/build-params.js.map +0 -1
- package/exports/admin/configs.js.map +0 -1
- package/exports/admin/form.js.map +0 -1
- package/exports/admin/security.js.map +0 -1
- package/exports/admin/tenancy.js.map +0 -1
- package/exports/admin/ui.js.map +0 -1
- package/exports/admin.js.map +0 -1
- package/features/buildParams/index.js.map +0 -1
- package/features/formModel/fieldTypes/index.js.map +0 -1
- package/features/formModel/index.js.map +0 -1
- package/features/formModel/renderers.js.map +0 -1
- package/features/security/AuthenticationContext/index.js.map +0 -1
- package/features/security/AuthenticationContext/types.js.map +0 -1
- package/features/security/IdentityContext/index.js.map +0 -1
- package/features/security/LogIn/index.js.map +0 -1
- package/features/security/LogOut/index.js.map +0 -1
- package/features/telemetry/index.js.map +0 -1
- package/features/tenancy/types.js.map +0 -1
- package/features/tools/LexicalContext/index.js.map +0 -1
- package/features/tools/index.js.map +0 -1
- package/features/wcp/types.js.map +0 -1
- package/features/webinySdk/index.js.map +0 -1
- package/hooks/index.js.map +0 -1
- package/index.js.map +0 -1
- package/permissions/index.js.map +0 -1
- package/permissions/types.js.map +0 -1
- package/presentation/installation/components/SystemInstaller/index.js.map +0 -1
- package/presentation/installation/presenters/SystemInstaller/index.js.map +0 -1
- package/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["makeAutoObservable","computed","toJS","runInAction","observable","Field","ObjectField","isObjectField","LayoutBuilderFactory","LayoutMutator","LayoutResolver","FocusManager","FormModel","_fields","Map","_builders","_layout","_baseline","_submitted","_validateOnChange","_isValid","_formRuleErrors","_activeTabs","map","_ruleEvaluators","_warnedRuleTypes","Set","_formRules","_lastFocusedField","_layoutMutator","_layoutResolver","_focusManager","constructor","config","registry","_registry","ruleEvaluators","builders","fields","name","builder","Object","entries","set","fieldConfig","build","field","_createField","setForm","layout","buildNodes","create","_warnOrphanFields","_generateDefaultLayout","_registerObjectNodeLayouts","_propagateAncestorRules","validateOnSubmit","_snapshotBaseline","vm","autoBind","evaluateRules","bind","rules","visible","disabled","length","rule","evaluator","find","e","canEvaluate","process","env","NODE_ENV","has","type","add","console","warn","matched","evaluate","action","get","parts","split","current","i","getChild","undefined","Error","focusField","clearFocusRequest","activations","buildFocusPath","act","tabKey","tabId","requestFocus","factory","delete","removeField","factoryOrNodeId","accessNode","applyModifications","removeFromLayout","getData","data","getValue","setData","value","setValueSilent","_resetAllValidation","reset","baselineValue","defaultValue","isDirty","baseline","JSON","stringify","isValid","submitted","errors","ruleErrorPaths","filter","path","validation","push","label","message","addRule","setLayout","validate","allFieldsValid","valid","force","ruleErrors","_runFormRule","err","target","_tryGetField","setValidation","submit","resolve","resolveChildLayout","children","getField","getFields","getFieldBuilders","predicate","pred","result","collectBuilders","fn","Array","isArray","safeParseAsync","success","error","issues","issue","String","join","node","fieldName","setInnerLayout","inner","tab","tabs","ancestry","walk","nodes","id","fieldIds","existing","containerRules","tabRules","setAncestorRules","layoutFieldIds","collectFieldIds","clear","resetValidation","childBuilders"],"sources":["FormModel.ts"],"sourcesContent":["import { makeAutoObservable, computed, toJS, runInAction, observable } from \"mobx\";\nimport { Field } from \"./Field.js\";\nimport { ObjectField, isObjectField } from \"./ObjectField.js\";\nimport { LayoutBuilderFactory } from \"./LayoutBuilderFactory.js\";\nimport { LayoutMutator } from \"./LayoutMutator.js\";\nimport { LayoutResolver } from \"./LayoutResolver.js\";\nimport { FocusManager } from \"./FocusManager.js\";\nimport type {\n IFormModel,\n IField,\n IFieldBuilder,\n IFieldBuilderRegistry,\n IObjectFieldConfig,\n IFormVM,\n IFormError,\n IFormModelConfig,\n ILayoutBuilder,\n ILayoutNodeBuilder,\n ILayoutModifier,\n IPositionedLayoutNode,\n ILayoutNodeAccessHandle,\n IRule,\n IRuleEvaluator,\n LayoutNode,\n LayoutNodeVM,\n FormRule,\n FormRuleFn\n} from \"./abstractions.js\";\n\nexport class FormModel implements IFormModel {\n private _fields = new Map<string, IField>();\n private _builders = new Map<string, IFieldBuilder>();\n private _layout: LayoutNode[] = [];\n private _baseline = new Map<string, unknown>();\n private _submitted = false;\n private _validateOnChange = false;\n private _isValid: boolean | null = null;\n private _formRuleErrors: IFormError[] = [];\n private _activeTabs = observable.map<string, string>();\n private _ruleEvaluators: IRuleEvaluator[] = [];\n private _warnedRuleTypes = new Set<string>();\n private _formRules: FormRule[] = [];\n private _lastFocusedField: IField | null = null;\n private _registry: IFieldBuilderRegistry;\n\n private _layoutMutator = new LayoutMutator();\n private _layoutResolver: LayoutResolver = null!;\n private _focusManager: FocusManager = null!;\n\n constructor(config: IFormModelConfig, registry: IFieldBuilderRegistry) {\n this._registry = registry;\n this._ruleEvaluators = config.ruleEvaluators ?? [];\n\n const builders = config.fields(registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n this._builders.set(name, builder);\n const fieldConfig = builder.build(name);\n const field = this._createField(fieldConfig);\n field.setForm(this);\n this._fields.set(name, field);\n }\n\n if (config.layout) {\n this._layout = LayoutBuilderFactory.buildNodes(\n config.layout(LayoutBuilderFactory.create())\n );\n this._warnOrphanFields();\n } else {\n this._layout = this._generateDefaultLayout();\n }\n\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n\n this._validateOnChange = config.validateOnSubmit === false;\n this._snapshotBaseline();\n\n makeAutoObservable(\n this,\n {\n vm: computed,\n _layoutMutator: false,\n _layoutResolver: false,\n _focusManager: false\n } as any,\n { autoBind: true }\n );\n\n this._layoutResolver = new LayoutResolver(\n this._fields,\n this._activeTabs,\n this.evaluateRules.bind(this)\n );\n this._focusManager = new FocusManager(this._fields);\n }\n\n evaluateRules(rules: IRule[] | undefined): { visible: boolean; disabled: boolean } {\n let visible = true;\n let disabled = false;\n if (!rules || rules.length === 0) {\n return { visible, disabled };\n }\n\n for (const rule of rules) {\n const evaluator = this._ruleEvaluators.find(e => e.canEvaluate(rule));\n if (!evaluator) {\n if (\n process.env.NODE_ENV === \"development\" &&\n !this._warnedRuleTypes.has(rule.type)\n ) {\n this._warnedRuleTypes.add(rule.type);\n console.warn(\n `[FormModel] No evaluator registered for rule type \"${rule.type}\". Rule is ignored.`\n );\n }\n continue;\n }\n const matched = evaluator.evaluate(rule, this);\n if (!matched) {\n continue;\n }\n if (rule.action === \"hide\") {\n visible = false;\n } else if (rule.action === \"disable\") {\n disabled = true;\n }\n }\n\n return { visible, disabled };\n }\n\n field(name: string): IField {\n const field = this._fields.get(name);\n if (field) {\n return field;\n }\n\n const parts = name.split(\".\");\n if (parts.length > 1) {\n let current: IField | undefined = this._fields.get(parts[0]);\n for (let i = 1; i < parts.length && current; i++) {\n if (isObjectField(current)) {\n current = current.getChild(parts[i]);\n } else {\n current = undefined;\n }\n }\n if (current) {\n return current;\n }\n }\n\n throw new Error(`Field \"${name}\" not found.`);\n }\n\n focusField(name: string): void {\n if (this._lastFocusedField) {\n this._lastFocusedField.clearFocusRequest();\n this._lastFocusedField = null;\n }\n\n const activations = this._focusManager.buildFocusPath(name, this._layout);\n let field: IField | undefined;\n try {\n field = this.field(name);\n } catch {\n // Field not found — no-op.\n }\n\n runInAction(() => {\n if (activations) {\n for (const act of activations) {\n this._activeTabs.set(act.tabKey, act.tabId);\n }\n }\n if (field) {\n field.requestFocus();\n this._lastFocusedField = field;\n }\n });\n }\n\n fields(\n factory: (registry: IFieldBuilderRegistry) => Record<string, IFieldBuilder | undefined>\n ): void {\n const builders = factory(this._registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n if (builder === undefined) {\n this._builders.delete(name);\n this.removeField(name);\n continue;\n }\n\n this._builders.set(name, builder);\n const fieldConfig = builder.build(name);\n const field = this._createField(fieldConfig);\n field.setForm(this);\n\n this._fields.set(name, field);\n }\n\n this._snapshotBaseline();\n this._propagateAncestorRules();\n }\n\n layout(factory: (layout: ILayoutModifier) => (LayoutNode | IPositionedLayoutNode)[]): void;\n layout(nodeId: string): ILayoutNodeAccessHandle;\n layout(\n factoryOrNodeId:\n | ((layout: ILayoutModifier) => (LayoutNode | IPositionedLayoutNode)[])\n | string\n ): void | ILayoutNodeAccessHandle {\n if (typeof factoryOrNodeId === \"string\") {\n return this._layoutMutator.accessNode(this._layout, factoryOrNodeId);\n }\n\n this._layout = this._layoutMutator.applyModifications(this._layout, factoryOrNodeId);\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n }\n\n removeField(name: string): void {\n this._fields.delete(name);\n this._baseline.delete(name);\n this._layout = this._layoutMutator.removeFromLayout(this._layout, name);\n }\n\n getData(): Record<string, unknown> {\n const data: Record<string, unknown> = {};\n for (const [name, field] of this._fields) {\n if (isObjectField(field)) {\n data[name] = toJS(field.getData());\n } else {\n data[name] = toJS(field.getValue());\n }\n }\n return data;\n }\n\n setData(data: Record<string, unknown>): void {\n for (const [name, value] of Object.entries(data)) {\n const field = this._fields.get(name);\n if (field) {\n field.setValueSilent(value);\n }\n }\n this._snapshotBaseline();\n this._resetAllValidation();\n this._submitted = false;\n this._isValid = null;\n this._formRuleErrors = [];\n }\n\n reset(): void {\n for (const [name, field] of this._fields) {\n const baselineValue = this._baseline.get(name);\n field.setValueSilent(baselineValue ?? field.config.defaultValue ?? null);\n }\n this._resetAllValidation();\n this._submitted = false;\n this._isValid = null;\n this._formRuleErrors = [];\n }\n\n get isDirty(): boolean {\n for (const [name, field] of this._fields) {\n const baseline = this._baseline.get(name);\n const current = isObjectField(field) ? field.getData() : field.getValue();\n if (JSON.stringify(toJS(current)) !== JSON.stringify(toJS(baseline))) {\n return true;\n }\n }\n return false;\n }\n\n get isValid(): boolean | null {\n return this._isValid;\n }\n\n get submitted(): boolean {\n return this._submitted;\n }\n\n get errors(): IFormError[] {\n if (!this._submitted) {\n return [];\n }\n const ruleErrorPaths = new Set(this._formRuleErrors.filter(e => e.path).map(e => e.path));\n const errors: IFormError[] = [];\n for (const [, field] of this._fields) {\n if (field.vm.validation.isValid === false && !ruleErrorPaths.has(field.name)) {\n errors.push({\n path: field.name,\n label: field.config.label,\n message: field.vm.validation.message || \"Invalid value.\"\n });\n }\n }\n return [...errors, ...this._formRuleErrors];\n }\n\n addRule(rule: FormRule): void {\n this._formRules.push(rule);\n }\n\n setLayout(factory: (layout: ILayoutBuilder) => ILayoutNodeBuilder[]): void {\n this._layout = LayoutBuilderFactory.buildNodes(factory(LayoutBuilderFactory.create()));\n this._warnOrphanFields();\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n }\n\n async validate(): Promise<boolean> {\n let allFieldsValid = true;\n\n for (const [, field] of this._fields) {\n const valid = await field.validate({ force: true });\n if (!valid) {\n allFieldsValid = false;\n }\n }\n\n const ruleErrors: IFormError[] = [];\n for (const rule of this._formRules) {\n const errors = await this._runFormRule(rule);\n for (const err of errors) {\n ruleErrors.push(err);\n if (err.path) {\n const target = this._tryGetField(err.path);\n if (target) {\n target.setValidation({ isValid: false, message: err.message });\n }\n }\n }\n }\n\n const isValid = allFieldsValid && ruleErrors.length === 0;\n runInAction(() => {\n this._formRuleErrors = ruleErrors;\n this._isValid = isValid;\n this._submitted = true;\n });\n return isValid;\n }\n\n async submit<T = Record<string, unknown>>(): Promise<T | false> {\n const valid = await this.validate();\n if (!valid) {\n return false;\n }\n return this.getData() as T;\n }\n\n get vm(): IFormVM {\n return {\n layout: this._layoutResolver.resolve(this._layout),\n errors: this.errors,\n isDirty: this.isDirty,\n isValid: this._isValid\n };\n }\n\n get registry(): IFieldBuilderRegistry {\n return this._registry;\n }\n\n public resolveChildLayout(layout: LayoutNode[], children: Map<string, IField>): LayoutNodeVM[] {\n return this._layoutResolver.resolveChildLayout(layout, children);\n }\n\n getField(name: string): IField | undefined {\n return this._fields.get(name);\n }\n\n getFields(): Map<string, IField> {\n return this._fields;\n }\n\n getFieldBuilders(predicate?: (builder: IFieldBuilder) => boolean): IFieldBuilder[] {\n const pred = predicate ?? (() => true);\n const result: IFieldBuilder[] = [];\n LayoutBuilderFactory.collectBuilders(this._fields, this._builders, pred, result);\n return result;\n }\n\n private async _runFormRule(rule: FormRule): Promise<IFormError[]> {\n if (typeof rule === \"function\") {\n const fn = rule as FormRuleFn;\n const result = await fn(this);\n return Array.isArray(result) ? result : [];\n }\n const data = this.getData();\n const result = await rule.safeParseAsync(data);\n if (result.success) {\n return [];\n }\n return result.error.issues.map(issue => {\n const path = issue.path.map(String).join(\".\");\n const field = path ? this._tryGetField(path) : undefined;\n return {\n path,\n label: field?.config.label,\n message: issue.message || \"Invalid value.\"\n };\n });\n }\n\n private _tryGetField(path: string): IField | undefined {\n try {\n return this.field(path);\n } catch {\n return undefined;\n }\n }\n\n private _registerObjectNodeLayouts(layout: LayoutNode[]): void {\n for (const node of layout) {\n if (node.type === \"object\") {\n const field = this._fields.get(node.fieldName);\n if (field && isObjectField(field)) {\n field.setInnerLayout(node.inner);\n }\n } else if (node.type === \"tabs\") {\n for (const tab of node.tabs) {\n this._registerObjectNodeLayouts(tab.layout);\n }\n }\n }\n }\n\n private _propagateAncestorRules(): void {\n const ancestry = new Map<string, IRule[]>();\n const walk = (nodes: LayoutNode[], rules: IRule[]) => {\n for (const node of nodes) {\n if (node.type === \"row\") {\n for (const id of node.fieldIds) {\n const existing = ancestry.get(id) ?? [];\n ancestry.set(id, [...existing, ...rules]);\n }\n } else if (node.type === \"tabs\") {\n const containerRules = [...rules, ...(node.rules ?? [])];\n for (const tab of node.tabs) {\n const tabRules = [...containerRules, ...(tab.rules ?? [])];\n walk(tab.layout, tabRules);\n }\n } else if (node.type === \"object\") {\n const existing = ancestry.get(node.fieldName) ?? [];\n ancestry.set(node.fieldName, [...existing, ...rules]);\n }\n }\n };\n\n walk(this._layout, []);\n\n for (const [, field] of this._fields) {\n field.setAncestorRules(ancestry.get(field.name) ?? []);\n }\n }\n\n private _generateDefaultLayout(): LayoutNode[] {\n const layout: LayoutNode[] = [];\n for (const [name, field] of this._fields) {\n if (field.visible) {\n layout.push({ type: \"row\", fieldIds: [name] });\n }\n }\n return layout;\n }\n\n private _warnOrphanFields(): void {\n const layoutFieldIds = new Set(LayoutBuilderFactory.collectFieldIds(this._layout));\n\n for (const [name, field] of this._fields) {\n if (field.visible && !layoutFieldIds.has(name)) {\n console.warn(\n `[FormModel] Field \"${name}\" is not in the layout and not marked as .hidden(). ` +\n `Add it to the layout or mark it as .hidden() to suppress this warning.`\n );\n }\n }\n }\n\n private _snapshotBaseline(): void {\n this._baseline.clear();\n for (const [name, field] of this._fields) {\n this._baseline.set(name, toJS(field.getValue()));\n }\n }\n\n private _resetAllValidation(): void {\n for (const [, field] of this._fields) {\n field.resetValidation();\n }\n }\n\n private _createField(config: any): IField {\n if (config.childBuilders) {\n return new ObjectField(config as IObjectFieldConfig);\n }\n return new Field(config);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"features/formModel/FormModel.js","sources":["../../../src/features/formModel/FormModel.ts"],"sourcesContent":["import { makeAutoObservable, computed, toJS, runInAction, observable } from \"mobx\";\nimport { Field } from \"./Field.js\";\nimport { ObjectField, isObjectField } from \"./ObjectField.js\";\nimport { LayoutBuilderFactory } from \"./LayoutBuilderFactory.js\";\nimport { LayoutMutator } from \"./LayoutMutator.js\";\nimport { LayoutResolver } from \"./LayoutResolver.js\";\nimport { FocusManager } from \"./FocusManager.js\";\nimport type {\n IFormModel,\n IField,\n IFieldBuilder,\n IFieldBuilderRegistry,\n IObjectFieldConfig,\n IFormVM,\n IFormError,\n IFormModelConfig,\n ILayoutBuilder,\n ILayoutNodeBuilder,\n ILayoutModifier,\n IPositionedLayoutNode,\n ILayoutNodeAccessHandle,\n IRule,\n IRuleEvaluator,\n LayoutNode,\n LayoutNodeVM,\n FormRule,\n FormRuleFn\n} from \"./abstractions.js\";\n\nexport class FormModel implements IFormModel {\n private _fields = new Map<string, IField>();\n private _builders = new Map<string, IFieldBuilder>();\n private _layout: LayoutNode[] = [];\n private _baseline = new Map<string, unknown>();\n private _submitted = false;\n private _submitCount = 0;\n private _validateOnChange = false;\n private _isValid: boolean | null = null;\n private _formRuleErrors: IFormError[] = [];\n private _activeTabs = observable.map<string, string>();\n private _ruleEvaluators: IRuleEvaluator[] = [];\n private _warnedRuleTypes = new Set<string>();\n private _formRules: FormRule[] = [];\n private _lastFocusedField: IField | null = null;\n private _registry: IFieldBuilderRegistry;\n\n private _layoutMutator = new LayoutMutator();\n private _layoutResolver: LayoutResolver = null!;\n private _focusManager: FocusManager = null!;\n\n constructor(config: IFormModelConfig, registry: IFieldBuilderRegistry) {\n this._registry = registry;\n this._ruleEvaluators = config.ruleEvaluators ?? [];\n\n const builders = config.fields(registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n this._builders.set(name, builder);\n const fieldConfig = builder.build(name);\n const field = this._createField(fieldConfig);\n field.setForm(this);\n this._fields.set(name, field);\n }\n\n if (config.layout) {\n this._layout = LayoutBuilderFactory.buildNodes(\n config.layout(LayoutBuilderFactory.create())\n );\n this._warnOrphanFields();\n } else {\n this._layout = this._generateDefaultLayout();\n }\n\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n\n this._validateOnChange = config.validateOnSubmit === false;\n this._snapshotBaseline();\n\n makeAutoObservable(\n this,\n {\n vm: computed,\n _layoutMutator: false,\n _layoutResolver: false,\n _focusManager: false\n } as any,\n { autoBind: true }\n );\n\n this._layoutResolver = new LayoutResolver(\n this._fields,\n this._activeTabs,\n this.evaluateRules.bind(this)\n );\n this._focusManager = new FocusManager(this._fields);\n }\n\n evaluateRules(rules: IRule[] | undefined): { visible: boolean; disabled: boolean } {\n let visible = true;\n let disabled = false;\n if (!rules || rules.length === 0) {\n return { visible, disabled };\n }\n\n for (const rule of rules) {\n const evaluator = this._ruleEvaluators.find(e => e.canEvaluate(rule));\n if (!evaluator) {\n if (\n process.env.NODE_ENV === \"development\" &&\n !this._warnedRuleTypes.has(rule.type)\n ) {\n this._warnedRuleTypes.add(rule.type);\n console.warn(\n `[FormModel] No evaluator registered for rule type \"${rule.type}\". Rule is ignored.`\n );\n }\n continue;\n }\n const matched = evaluator.evaluate(rule, this);\n if (!matched) {\n continue;\n }\n if (rule.action === \"hide\") {\n visible = false;\n } else if (rule.action === \"disable\") {\n disabled = true;\n }\n }\n\n return { visible, disabled };\n }\n\n field(name: string): IField {\n const field = this._fields.get(name);\n if (field) {\n return field;\n }\n\n const parts = name.split(\".\");\n if (parts.length > 1) {\n let current: IField | undefined = this._fields.get(parts[0]);\n for (let i = 1; i < parts.length && current; i++) {\n if (isObjectField(current)) {\n if (current.isList) {\n const index = parseInt(parts[i], 10);\n if (!isNaN(index)) {\n const item = current.items[index];\n if (item && i + 1 < parts.length) {\n current = item.children.get(parts[i + 1]);\n i++;\n } else {\n current = undefined;\n }\n continue;\n }\n }\n current = current.getChild(parts[i]);\n } else {\n current = undefined;\n }\n }\n if (current) {\n return current;\n }\n }\n\n throw new Error(`Field \"${name}\" not found.`);\n }\n\n focusField(name: string): void {\n if (this._lastFocusedField) {\n this._lastFocusedField.clearFocusRequest();\n this._lastFocusedField = null;\n }\n\n const activations = this._focusManager.buildFocusPath(name, this._layout);\n let field: IField | undefined;\n try {\n field = this.field(name);\n } catch {\n // Field not found — no-op.\n }\n\n runInAction(() => {\n if (activations) {\n for (const act of activations) {\n this._activeTabs.set(act.tabKey, act.tabId);\n }\n }\n if (field) {\n field.requestFocus();\n this._lastFocusedField = field;\n }\n });\n }\n\n fields(\n factory: (registry: IFieldBuilderRegistry) => Record<string, IFieldBuilder | undefined>\n ): void {\n const builders = factory(this._registry);\n\n for (const [name, builder] of Object.entries(builders)) {\n if (builder === undefined) {\n this._builders.delete(name);\n this.removeField(name);\n continue;\n }\n\n this._builders.set(name, builder);\n const fieldConfig = builder.build(name);\n const field = this._createField(fieldConfig);\n field.setForm(this);\n\n this._fields.set(name, field);\n }\n\n this._snapshotBaseline();\n this._propagateAncestorRules();\n }\n\n layout(factory: (layout: ILayoutModifier) => (LayoutNode | IPositionedLayoutNode)[]): void;\n layout(nodeId: string): ILayoutNodeAccessHandle;\n layout(\n factoryOrNodeId:\n | ((layout: ILayoutModifier) => (LayoutNode | IPositionedLayoutNode)[])\n | string\n ): void | ILayoutNodeAccessHandle {\n if (typeof factoryOrNodeId === \"string\") {\n return this._layoutMutator.accessNode(this._layout, factoryOrNodeId);\n }\n\n this._layout = this._layoutMutator.applyModifications(this._layout, factoryOrNodeId);\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n }\n\n removeField(name: string): void {\n this._fields.delete(name);\n this._baseline.delete(name);\n this._layout = this._layoutMutator.removeFromLayout(this._layout, name);\n }\n\n getData(): Record<string, unknown> {\n const data: Record<string, unknown> = {};\n for (const [name, field] of this._fields) {\n if (isObjectField(field)) {\n data[name] = toJS(field.getData());\n } else {\n data[name] = toJS(field.getValue());\n }\n }\n return data;\n }\n\n setData(data: Record<string, unknown>): void {\n for (const [name, value] of Object.entries(data)) {\n const field = this._fields.get(name);\n if (field) {\n field.setValueSilent(value);\n }\n }\n this._snapshotBaseline();\n this._resetAllValidation();\n this._submitted = false;\n this._submitCount = 0;\n this._isValid = null;\n this._formRuleErrors = [];\n }\n\n reset(): void {\n for (const [name, field] of this._fields) {\n const baselineValue = this._baseline.get(name);\n field.setValueSilent(baselineValue ?? field.config.defaultValue ?? null);\n }\n this._resetAllValidation();\n this._submitted = false;\n this._submitCount = 0;\n this._isValid = null;\n this._formRuleErrors = [];\n }\n\n get isDirty(): boolean {\n for (const [name, field] of this._fields) {\n const baseline = this._baseline.get(name);\n const current = isObjectField(field) ? field.getData() : field.getValue();\n if (JSON.stringify(toJS(current)) !== JSON.stringify(toJS(baseline))) {\n return true;\n }\n }\n return false;\n }\n\n get isValid(): boolean | null {\n return this._isValid;\n }\n\n get submitted(): boolean {\n return this._submitted;\n }\n\n get submitCount(): number {\n return this._submitCount;\n }\n\n get errors(): IFormError[] {\n if (!this._submitted) {\n return [];\n }\n const ruleErrorPaths = new Set(this._formRuleErrors.filter(e => e.path).map(e => e.path));\n const errors: IFormError[] = [];\n\n const collectErrors = (\n fields: Map<string, IField>,\n pathPrefix: string,\n trail: string[]\n ) => {\n for (const [, field] of fields) {\n const path = pathPrefix ? `${pathPrefix}.${field.name}` : field.name;\n const segment = field.config.label || field.name;\n if (isObjectField(field)) {\n if (field.vm.validation.isValid === false && !ruleErrorPaths.has(path)) {\n errors.push({\n path,\n label: field.config.label,\n breadcrumb: [...trail, segment],\n message: field.vm.validation.message || \"Invalid value.\"\n });\n }\n if (field.config.isList) {\n for (const [index, item] of field.items.entries()) {\n collectErrors(item.children, `${path}.${index}`, [\n ...trail,\n `${segment} [${index + 1}]`\n ]);\n }\n } else {\n collectErrors(field.children, path, [...trail, segment]);\n }\n } else if (field.vm.validation.isValid === false && !ruleErrorPaths.has(path)) {\n errors.push({\n path,\n label: field.config.label,\n breadcrumb: [...trail, segment],\n message: field.vm.validation.message || \"Invalid value.\"\n });\n }\n }\n };\n\n collectErrors(this._fields, \"\", []);\n return [...errors, ...this._formRuleErrors];\n }\n\n addRule(rule: FormRule): void {\n this._formRules.push(rule);\n }\n\n setLayout(factory: (layout: ILayoutBuilder) => ILayoutNodeBuilder[]): void {\n this._layout = LayoutBuilderFactory.buildNodes(factory(LayoutBuilderFactory.create()));\n this._warnOrphanFields();\n this._registerObjectNodeLayouts(this._layout);\n this._propagateAncestorRules();\n }\n\n async validate(): Promise<boolean> {\n let allFieldsValid = true;\n\n for (const [, field] of this._fields) {\n const valid = await field.validate({ force: true });\n if (!valid) {\n allFieldsValid = false;\n }\n }\n\n const ruleErrors: IFormError[] = [];\n for (const rule of this._formRules) {\n const errors = await this._runFormRule(rule);\n for (const err of errors) {\n ruleErrors.push(err);\n if (err.path) {\n const target = this._tryGetField(err.path);\n if (target) {\n target.setValidation({ isValid: false, message: err.message });\n }\n }\n }\n }\n\n const isValid = allFieldsValid && ruleErrors.length === 0;\n runInAction(() => {\n this._formRuleErrors = ruleErrors;\n this._isValid = isValid;\n this._submitted = true;\n this._submitCount++;\n });\n return isValid;\n }\n\n async submit<T = Record<string, unknown>>(): Promise<T | false> {\n const valid = await this.validate();\n if (!valid) {\n return false;\n }\n return this.getData() as T;\n }\n\n get vm(): IFormVM {\n return {\n layout: this._layoutResolver.resolve(this._layout),\n errors: this.errors,\n isDirty: this.isDirty,\n isValid: this._isValid,\n submitCount: this._submitCount,\n focusField: (path: string) => this.focusField(path),\n getData: () => this.getData() as Record<string, unknown>,\n setData: (data: Record<string, unknown>) => this.setData(data)\n };\n }\n\n get registry(): IFieldBuilderRegistry {\n return this._registry;\n }\n\n public resolveChildLayout(layout: LayoutNode[], children: Map<string, IField>): LayoutNodeVM[] {\n return this._layoutResolver.resolveChildLayout(layout, children);\n }\n\n getField(name: string): IField | undefined {\n return this._fields.get(name);\n }\n\n getFields(): Map<string, IField> {\n return this._fields;\n }\n\n getFieldBuilders(predicate?: (builder: IFieldBuilder) => boolean): IFieldBuilder[] {\n const pred = predicate ?? (() => true);\n const result: IFieldBuilder[] = [];\n LayoutBuilderFactory.collectBuilders(this._fields, this._builders, pred, result);\n return result;\n }\n\n private async _runFormRule(rule: FormRule): Promise<IFormError[]> {\n if (typeof rule === \"function\") {\n const fn = rule as FormRuleFn;\n const result = await fn(this);\n return Array.isArray(result) ? result : [];\n }\n const data = this.getData();\n const result = await rule.safeParseAsync(data);\n if (result.success) {\n return [];\n }\n return result.error.issues.map(issue => {\n const path = issue.path.map(String).join(\".\");\n const field = path ? this._tryGetField(path) : undefined;\n return {\n path,\n label: field?.config.label,\n message: issue.message || \"Invalid value.\"\n };\n });\n }\n\n private _tryGetField(path: string): IField | undefined {\n try {\n return this.field(path);\n } catch {\n return undefined;\n }\n }\n\n private _registerObjectNodeLayouts(layout: LayoutNode[]): void {\n for (const node of layout) {\n if (node.type === \"object\") {\n const field = this._fields.get(node.fieldName);\n if (field && isObjectField(field)) {\n field.setInnerLayout(node.inner);\n }\n } else if (node.type === \"tabs\") {\n for (const tab of node.tabs) {\n this._registerObjectNodeLayouts(tab.layout);\n }\n }\n }\n }\n\n private _propagateAncestorRules(): void {\n const ancestry = new Map<string, IRule[]>();\n const walk = (nodes: LayoutNode[], rules: IRule[]) => {\n for (const node of nodes) {\n if (node.type === \"row\") {\n for (const id of node.fieldIds) {\n const existing = ancestry.get(id) ?? [];\n ancestry.set(id, [...existing, ...rules]);\n }\n } else if (node.type === \"tabs\") {\n const containerRules = [...rules, ...(node.rules ?? [])];\n for (const tab of node.tabs) {\n const tabRules = [...containerRules, ...(tab.rules ?? [])];\n walk(tab.layout, tabRules);\n }\n } else if (node.type === \"object\") {\n const existing = ancestry.get(node.fieldName) ?? [];\n ancestry.set(node.fieldName, [...existing, ...rules]);\n }\n }\n };\n\n walk(this._layout, []);\n\n for (const [, field] of this._fields) {\n field.setAncestorRules(ancestry.get(field.name) ?? []);\n }\n }\n\n private _generateDefaultLayout(): LayoutNode[] {\n const layout: LayoutNode[] = [];\n for (const [name, field] of this._fields) {\n if (field.visible) {\n layout.push({ type: \"row\", fieldIds: [name] });\n }\n }\n return layout;\n }\n\n private _warnOrphanFields(): void {\n const layoutFieldIds = new Set(LayoutBuilderFactory.collectFieldIds(this._layout));\n\n for (const [name, field] of this._fields) {\n if (field.visible && !layoutFieldIds.has(name)) {\n console.warn(\n `[FormModel] Field \"${name}\" is not in the layout and not marked as .hidden(). ` +\n `Add it to the layout or mark it as .hidden() to suppress this warning.`\n );\n }\n }\n }\n\n private _snapshotBaseline(): void {\n this._baseline.clear();\n for (const [name, field] of this._fields) {\n this._baseline.set(name, toJS(field.getValue()));\n }\n }\n\n private _resetAllValidation(): void {\n for (const [, field] of this._fields) {\n field.resetValidation();\n }\n }\n\n private _createField(config: any): IField {\n if (config.childBuilders) {\n return new ObjectField(config as IObjectFieldConfig);\n }\n return new Field(config);\n }\n}\n"],"names":["FormModel","config","registry","Map","observable","Set","LayoutMutator","builders","name","builder","Object","fieldConfig","field","LayoutBuilderFactory","makeAutoObservable","computed","LayoutResolver","FocusManager","rules","visible","disabled","rule","evaluator","e","process","console","matched","parts","current","i","isObjectField","index","parseInt","isNaN","item","undefined","Error","activations","runInAction","act","factory","factoryOrNodeId","data","toJS","value","baselineValue","baseline","JSON","ruleErrorPaths","errors","collectErrors","fields","pathPrefix","trail","path","segment","allFieldsValid","valid","ruleErrors","err","target","isValid","layout","children","predicate","pred","result","fn","Array","issue","String","node","tab","ancestry","walk","nodes","id","existing","containerRules","tabRules","layoutFieldIds","ObjectField","Field"],"mappings":"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"}
|