@webiny/app-admin 5.43.2 → 6.0.0-alpha.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/base/Admin.js +25 -35
- package/base/Admin.js.map +1 -1
- package/base/Base/Menus/SupportMenuItems.d.ts +2 -0
- package/base/Base/Menus/SupportMenuItems.js +20 -0
- package/base/Base/Menus/SupportMenuItems.js.map +1 -0
- package/base/Base/Menus/WebinyVersion.d.ts +2 -0
- package/base/Base/Menus/WebinyVersion.js +24 -0
- package/base/Base/Menus/WebinyVersion.js.map +1 -0
- package/base/Base/Menus.d.ts +2 -0
- package/base/Base/Menus.js +129 -0
- package/base/Base/Menus.js.map +1 -0
- package/base/Base/Routes.d.ts +2 -0
- package/base/Base/Routes.js +24 -0
- package/base/Base/Routes.js.map +1 -0
- package/base/Base/Tenant/wby-logo.svg +3 -0
- package/base/Base/Tenant.d.ts +2 -0
- package/base/Base/Tenant.js +19 -0
- package/base/Base/Tenant.js.map +1 -0
- package/base/Base.js +11 -79
- package/base/Base.js.map +1 -1
- package/base/WebinyVersion.d.ts +2 -0
- package/base/WebinyVersion.js +24 -0
- package/base/WebinyVersion.js.map +1 -0
- package/base/plugins/AddGraphQLQuerySelection.js +11 -21
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/AdminUiStateProvider.d.ts +1 -0
- package/base/providers/AdminUiStateProvider.js +14 -0
- package/base/providers/AdminUiStateProvider.js.map +1 -0
- package/base/providers/ApolloProvider.js +9 -15
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/TelemetryProvider.js +12 -18
- package/base/providers/TelemetryProvider.js.map +1 -1
- package/base/providers/UiProviders.d.ts +1 -0
- package/base/providers/UiProviders.js +14 -0
- package/base/providers/UiProviders.js.map +1 -0
- package/base/providers/UiStateProvider.js +9 -15
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/providers/ViewCompositionProvider.js +33 -44
- package/base/providers/ViewCompositionProvider.js.map +1 -1
- package/base/ui/Brand.js +5 -12
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.js +12 -43
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.js +5 -12
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/FileManager.js +42 -56
- package/base/ui/FileManager.js.map +1 -1
- package/base/ui/Layout.js +8 -16
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.js +5 -12
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.js +9 -15
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.d.ts +0 -5
- package/base/ui/Logo.js +5 -26
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Navigation.d.ts +0 -57
- package/base/ui/Navigation.js +5 -146
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.js +5 -12
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Tags.js +14 -19
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/{Search.d.ts → TenantSelector.d.ts} +2 -18
- package/base/ui/TenantSelector.js +8 -0
- package/base/ui/TenantSelector.js.map +1 -0
- package/base/ui/UserMenu/UserMenu.d.ts +39 -0
- package/base/ui/UserMenu/UserMenu.js +8 -0
- package/base/ui/UserMenu/UserMenu.js.map +1 -0
- package/base/ui/UserMenu/UserMenuHandle.d.ts +39 -0
- package/base/ui/UserMenu/UserMenuHandle.js +8 -0
- package/base/ui/UserMenu/UserMenuHandle.js.map +1 -0
- package/base/ui/UserMenu/UserMenuItem.d.ts +81 -0
- package/base/ui/UserMenu/UserMenuItem.js +19 -0
- package/base/ui/UserMenu/UserMenuItem.js.map +1 -0
- package/base/ui/UserMenu/UserMenuLink.d.ts +81 -0
- package/base/ui/UserMenu/UserMenuLink.js +19 -0
- package/base/ui/UserMenu/UserMenuLink.js.map +1 -0
- package/base/ui/UserMenu/UserMenuSeparator.d.ts +42 -0
- package/base/ui/UserMenu/UserMenuSeparator.js +9 -0
- package/base/ui/UserMenu/UserMenuSeparator.js.map +1 -0
- package/base/ui/UserMenu.d.ts +3 -79
- package/base/ui/UserMenu.js +14 -101
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.js +7 -13
- package/components/AdminLayout.js.map +1 -1
- package/components/AppInstaller/AppInstaller.js +57 -67
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.js +49 -69
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/index.js +10 -16
- package/components/AppInstaller/index.js.map +1 -1
- package/components/AppInstaller/styled.js +8 -15
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.js +81 -91
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/BulkActions/Worker.js +95 -141
- package/components/BulkActions/Worker.js.map +1 -1
- package/components/BulkActions/index.js +2 -27
- package/components/BulkActions/index.js.map +1 -1
- package/components/BulkActions/useDialogWithReport/DialogMessage.js +20 -33
- package/components/BulkActions/useDialogWithReport/DialogMessage.js.map +1 -1
- package/components/BulkActions/useDialogWithReport/index.js +1 -16
- package/components/BulkActions/useDialogWithReport/index.js.map +1 -1
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.js +45 -52
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -1
- package/components/Buttons/Buttons.d.ts +7 -6
- package/components/Buttons/Buttons.js +58 -56
- package/components/Buttons/Buttons.js.map +1 -1
- package/components/Buttons/Buttons.styles.js +2 -9
- package/components/Buttons/Buttons.styles.js.map +1 -1
- package/components/Buttons/index.js +2 -25
- package/components/Buttons/index.js.map +1 -1
- package/components/Buttons/useButtons.js +13 -19
- package/components/Buttons/useButtons.js.map +1 -1
- package/components/Dialogs/CustomDialog.js +30 -37
- package/components/Dialogs/CustomDialog.js.map +1 -1
- package/components/Dialogs/Dialog.d.ts +8 -4
- package/components/Dialogs/Dialog.js +56 -41
- package/components/Dialogs/Dialog.js.map +1 -1
- package/components/Dialogs/DialogsContext.d.ts +9 -3
- package/components/Dialogs/DialogsContext.js +96 -107
- package/components/Dialogs/DialogsContext.js.map +1 -1
- package/components/Dialogs/useDialogs.js +5 -17
- package/components/Dialogs/useDialogs.js.map +1 -1
- package/components/EmptyView.d.ts +1 -1
- package/components/EmptyView.js +31 -41
- package/components/EmptyView.js.map +1 -1
- package/components/Filters/Filters.js +12 -20
- package/components/Filters/Filters.js.map +1 -1
- package/components/Filters/FiltersToggle.d.ts +7 -0
- package/components/Filters/FiltersToggle.js +26 -0
- package/components/Filters/FiltersToggle.js.map +1 -0
- package/components/Filters/index.d.ts +1 -0
- package/components/Filters/index.js +2 -16
- package/components/Filters/index.js.map +1 -1
- package/components/FloatingActionButton.js +7 -13
- package/components/FloatingActionButton.js.map +1 -1
- package/components/FloatingPanel.js +44 -68
- package/components/FloatingPanel.js.map +1 -1
- package/components/IconPicker/IconPicker.d.ts +1 -1
- package/components/IconPicker/IconPicker.js +25 -32
- package/components/IconPicker/IconPicker.js.map +1 -1
- package/components/IconPicker/IconPickerComponent.d.ts +5 -5
- package/components/IconPicker/IconPickerComponent.js +67 -87
- package/components/IconPicker/IconPickerComponent.js.map +1 -1
- package/components/IconPicker/IconPickerPresenter.d.ts +5 -4
- package/components/IconPicker/IconPickerPresenter.js +68 -109
- package/components/IconPicker/IconPickerPresenter.js.map +1 -1
- package/components/IconPicker/IconPickerPresenter.test.js +21 -23
- package/components/IconPicker/IconPickerPresenter.test.js.map +1 -1
- package/components/IconPicker/IconPickerPresenterProvider.js +10 -17
- package/components/IconPicker/IconPickerPresenterProvider.js.map +1 -1
- package/components/IconPicker/IconPickerTab.d.ts +2 -1
- package/components/IconPicker/IconPickerTab.js +103 -113
- package/components/IconPicker/IconPickerTab.js.map +1 -1
- package/components/IconPicker/IconRenderer.js +16 -24
- package/components/IconPicker/IconRenderer.js.map +1 -1
- package/components/IconPicker/IconRepository.js +41 -73
- package/components/IconPicker/IconRepository.js.map +1 -1
- package/components/IconPicker/IconRepository.test.js +11 -13
- package/components/IconPicker/IconRepository.test.js.map +1 -1
- package/components/IconPicker/IconRepositoryFactory.js +14 -37
- package/components/IconPicker/IconRepositoryFactory.js.map +1 -1
- package/components/IconPicker/Loading.js +42 -68
- package/components/IconPicker/Loading.js.map +1 -1
- package/components/IconPicker/components/IconPickerCell.d.ts +12 -0
- package/components/IconPicker/components/IconPickerCell.js +27 -0
- package/components/IconPicker/components/IconPickerCell.js.map +1 -0
- package/components/IconPicker/components/IconPickerContent.d.ts +11 -0
- package/components/IconPicker/components/IconPickerContent.js +41 -0
- package/components/IconPicker/components/IconPickerContent.js.map +1 -0
- package/components/IconPicker/components/IconPickerRow.d.ts +4 -0
- package/components/IconPicker/components/IconPickerRow.js +14 -0
- package/components/IconPicker/components/IconPickerRow.js.map +1 -0
- package/components/IconPicker/components/IconPickerTrigger.d.ts +13 -0
- package/components/IconPicker/components/IconPickerTrigger.js +52 -0
- package/components/IconPicker/components/IconPickerTrigger.js.map +1 -0
- package/components/IconPicker/components/index.d.ts +4 -0
- package/components/IconPicker/components/index.js +6 -0
- package/components/IconPicker/components/index.js.map +1 -0
- package/components/IconPicker/config/Emojis.js +9 -16
- package/components/IconPicker/config/Emojis.js.map +1 -1
- package/components/IconPicker/config/FontAwesomeIcons.js +30 -43
- package/components/IconPicker/config/FontAwesomeIcons.js.map +1 -1
- package/components/IconPicker/config/IconPackProvider.js +10 -16
- package/components/IconPicker/config/IconPackProvider.js.map +1 -1
- package/components/IconPicker/config/IconType.js +52 -55
- package/components/IconPicker/config/IconType.js.map +1 -1
- package/components/IconPicker/config/index.js +35 -53
- package/components/IconPicker/config/index.js.map +1 -1
- package/components/IconPicker/defaultIcon.js +1 -7
- package/components/IconPicker/defaultIcon.js.map +1 -1
- package/components/IconPicker/index.js +6 -47
- package/components/IconPicker/index.js.map +1 -1
- package/components/IconPicker/plugins/customPlugin.js +71 -96
- package/components/IconPicker/plugins/customPlugin.js.map +1 -1
- package/components/IconPicker/plugins/emojisPlugin.js +80 -117
- package/components/IconPicker/plugins/emojisPlugin.js.map +1 -1
- package/components/IconPicker/plugins/graphql.js +19 -10
- package/components/IconPicker/plugins/graphql.js.map +1 -1
- package/components/IconPicker/plugins/iconsPlugin.js +62 -93
- package/components/IconPicker/plugins/iconsPlugin.js.map +1 -1
- package/components/IconPicker/types.d.ts +1 -1
- package/components/IconPicker/types.js +3 -8
- package/components/IconPicker/types.js.map +1 -1
- package/components/LexicalEditor/LexicalEditor.js +24 -31
- package/components/LexicalEditor/LexicalEditor.js.map +1 -1
- package/components/LexicalEditor/index.js +1 -12
- package/components/LexicalEditor/index.js.map +1 -1
- package/components/MultiImageUpload.d.ts +1 -1
- package/components/MultiImageUpload.js +8 -31
- package/components/MultiImageUpload.js.map +1 -1
- package/components/OptionsMenu/OptionsMenu.d.ts +1 -0
- package/components/OptionsMenu/OptionsMenu.js +17 -23
- package/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/components/OptionsMenu/OptionsMenuItem.d.ts +1 -0
- package/components/OptionsMenu/OptionsMenuItem.js +12 -17
- package/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
- package/components/OptionsMenu/OptionsMenuLink.d.ts +1 -0
- package/components/OptionsMenu/OptionsMenuLink.js +13 -36
- package/components/OptionsMenu/OptionsMenuLink.js.map +1 -1
- package/components/OptionsMenu/index.js +4 -51
- package/components/OptionsMenu/index.js.map +1 -1
- package/components/OptionsMenu/useOptionsMenuItem.js +12 -18
- package/components/OptionsMenu/useOptionsMenuItem.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.d.ts +6 -16
- package/components/OverlayLayout/OverlayLayout.js +42 -147
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/components/OverlayBackdrop.d.ts +7 -0
- package/components/OverlayLayout/components/OverlayBackdrop.js +15 -0
- package/components/OverlayLayout/components/OverlayBackdrop.js.map +1 -0
- package/components/OverlayLayout/components/OverlayContent.d.ts +6 -0
- package/components/OverlayLayout/components/OverlayContent.js +21 -0
- package/components/OverlayLayout/components/OverlayContent.js.map +1 -0
- package/components/OverlayLayout/components/OverlayHeader.d.ts +13 -0
- package/components/OverlayLayout/components/OverlayHeader.js +44 -0
- package/components/OverlayLayout/components/OverlayHeader.js.map +1 -0
- package/components/OverlayLayout/components/OverlayRoot.d.ts +9 -0
- package/components/OverlayLayout/components/OverlayRoot.js +19 -0
- package/components/OverlayLayout/components/OverlayRoot.js.map +1 -0
- package/components/OverlayLayout/components/index.d.ts +4 -0
- package/components/OverlayLayout/components/index.js +6 -0
- package/components/OverlayLayout/components/index.js.map +1 -0
- package/components/OverlayLayout/index.js +1 -16
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/Permissions/CannotUseAaclAlert.js +5 -12
- package/components/Permissions/CannotUseAaclAlert.js.map +1 -1
- package/components/Permissions/Permissions.js +37 -48
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/PermissionsGroup.d.ts +6 -0
- package/components/Permissions/PermissionsGroup.js +18 -0
- package/components/Permissions/PermissionsGroup.js.map +1 -0
- package/components/Permissions/StyledComponents.d.ts +1 -2
- package/components/Permissions/StyledComponents.js +12 -25
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.d.ts +1 -0
- package/components/Permissions/index.js +4 -35
- package/components/Permissions/index.js.map +1 -1
- package/components/ResizablePanels/index.js +1 -42
- package/components/ResizablePanels/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.js +13 -21
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/RichTextEditor/index.js +2 -19
- package/components/RichTextEditor/index.js.map +1 -1
- package/components/RichTextEditor/tools/header/index.js +455 -521
- package/components/RichTextEditor/tools/header/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/index.js +147 -182
- package/components/RichTextEditor/tools/image/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/svgs.js +4 -10
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
- package/components/RichTextEditor/tools/image/tunes.js +75 -96
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
- package/components/RichTextEditor/tools/image/types.js +1 -5
- package/components/RichTextEditor/tools/image/ui.js +143 -174
- package/components/RichTextEditor/tools/image/ui.js.map +1 -1
- package/components/RichTextEditor/tools/paragraph/index.js +337 -389
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
- package/components/RichTextEditor/tools/textColor/index.js +164 -202
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
- package/components/RichTextEditor/tools/utils.js +3 -9
- package/components/RichTextEditor/tools/utils.js.map +1 -1
- package/components/Routes.js +14 -23
- package/components/Routes.js.map +1 -1
- package/components/SearchUI.d.ts +2 -1
- package/components/SearchUI.js +22 -48
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.d.ts +14 -7
- package/components/SimpleForm/SimpleForm.js +72 -77
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js +1 -30
- package/components/SimpleForm/index.js.map +1 -1
- package/components/SimpleUI/InputField.js +39 -47
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.d.ts +19 -1
- package/components/SingleImageUpload.js +39 -75
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.d.ts +4 -4
- package/components/SplitView/SplitView.js +41 -88
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js +1 -24
- package/components/SplitView/index.js.map +1 -1
- package/components/StateInspector.js +28 -28
- package/components/StateInspector.js.map +1 -1
- package/components/Wcp.js +21 -25
- package/components/Wcp.js.map +1 -1
- package/components/index.js +3 -26
- package/components/index.js.map +1 -1
- package/config/AdminConfig/Menu/MenuGroup.d.ts +62 -0
- package/config/AdminConfig/Menu/MenuGroup.js +14 -0
- package/config/AdminConfig/Menu/MenuGroup.js.map +1 -0
- package/config/AdminConfig/Menu/MenuItem.d.ts +43 -0
- package/config/AdminConfig/Menu/MenuItem.js +14 -0
- package/config/AdminConfig/Menu/MenuItem.js.map +1 -0
- package/config/AdminConfig/Menu/MenuLink.d.ts +43 -0
- package/config/AdminConfig/Menu/MenuLink.js +18 -0
- package/config/AdminConfig/Menu/MenuLink.js.map +1 -0
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.d.ts +43 -0
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.js +13 -0
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.js.map +1 -0
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.d.ts +24 -0
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.js +13 -0
- package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.js.map +1 -0
- package/config/AdminConfig/Menu/SupportMenu.d.ts +72 -0
- package/config/AdminConfig/Menu/SupportMenu.js +49 -0
- package/config/AdminConfig/Menu/SupportMenu.js.map +1 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuItem.d.ts +41 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuItem.js +7 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuItem.js.map +1 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuLink.d.ts +41 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuLink.js +7 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuLink.js.map +1 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuSeparator.d.ts +1 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuSeparator.js +3 -0
- package/config/AdminConfig/Menu/UserMenu/UserMenuSeparator.js.map +1 -0
- package/config/AdminConfig/Menu/UserMenu/types.d.ts +7 -0
- package/config/AdminConfig/Menu/UserMenu/types.js +3 -0
- package/config/AdminConfig/Menu/UserMenu/types.js.map +1 -0
- package/config/AdminConfig/Menu/UserMenu.d.ts +129 -0
- package/config/AdminConfig/Menu/UserMenu.js +61 -0
- package/config/AdminConfig/Menu/UserMenu.js.map +1 -0
- package/config/AdminConfig/Menu/types.d.ts +7 -0
- package/config/AdminConfig/Menu/types.js +3 -0
- package/config/AdminConfig/Menu/types.js.map +1 -0
- package/config/AdminConfig/Menu.d.ts +350 -0
- package/config/AdminConfig/Menu.js +75 -0
- package/config/AdminConfig/Menu.js.map +1 -0
- package/config/AdminConfig/Route.d.ts +3 -0
- package/config/AdminConfig/Route.js +8 -0
- package/config/AdminConfig/Route.js.map +1 -0
- package/config/AdminConfig/Tenant/TenantLogo.d.ts +23 -0
- package/config/AdminConfig/Tenant/TenantLogo.js +16 -0
- package/config/AdminConfig/Tenant/TenantLogo.js.map +1 -0
- package/config/AdminConfig/Tenant/TenantName.d.ts +23 -0
- package/config/AdminConfig/Tenant/TenantName.js +16 -0
- package/config/AdminConfig/Tenant/TenantName.js.map +1 -0
- package/config/AdminConfig/Tenant.d.ts +66 -0
- package/config/AdminConfig/Tenant.js +23 -0
- package/config/AdminConfig/Tenant.js.map +1 -0
- package/config/AdminConfig/Theme/assignColor.d.ts +2 -0
- package/config/AdminConfig/Theme/assignColor.js +22 -0
- package/config/AdminConfig/Theme/assignColor.js.map +1 -0
- package/config/AdminConfig/Theme/consts.d.ts +2 -0
- package/config/AdminConfig/Theme/consts.js +4 -0
- package/config/AdminConfig/Theme/consts.js.map +1 -0
- package/config/AdminConfig/Theme/types.d.ts +3 -0
- package/config/AdminConfig/Theme/types.js +3 -0
- package/config/AdminConfig/Theme/types.js.map +1 -0
- package/config/AdminConfig/Theme.d.ts +16 -0
- package/config/AdminConfig/Theme.js +22 -0
- package/config/AdminConfig/Theme.js.map +1 -0
- package/config/AdminConfig.d.ts +434 -0
- package/config/AdminConfig.js +47 -0
- package/config/AdminConfig.js.map +1 -0
- package/config/createAdminConfig.d.ts +57 -0
- package/config/createAdminConfig.js +94 -0
- package/config/createAdminConfig.js.map +1 -0
- package/hooks/index.js +10 -115
- package/hooks/index.js.map +1 -1
- package/hooks/useConfirmationDialog.js +26 -39
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +16 -21
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useIsMounted.js +6 -14
- package/hooks/useIsMounted.js.map +1 -1
- package/hooks/useKeyHandler.js +28 -46
- package/hooks/useKeyHandler.js.map +1 -1
- package/hooks/useModKey.js +9 -20
- package/hooks/useModKey.js.map +1 -1
- package/hooks/useShiftKey.js +13 -26
- package/hooks/useShiftKey.js.map +1 -1
- package/hooks/useSnackbar.js +22 -43
- package/hooks/useSnackbar.js.map +1 -1
- package/hooks/useStateIfMounted.js +8 -18
- package/hooks/useStateIfMounted.js.map +1 -1
- package/hooks/useStateWithCallback.js +7 -20
- package/hooks/useStateWithCallback.js.map +1 -1
- package/index.d.ts +2 -5
- package/index.js +52 -491
- package/index.js.map +1 -1
- package/package.json +25 -23
- package/plugins/MenuPlugin.js +15 -36
- package/plugins/MenuPlugin.js.map +1 -1
- package/plugins/PermissionRendererPlugin.js +15 -36
- package/plugins/PermissionRendererPlugin.js.map +1 -1
- package/plugins/uiLayoutRenderer/index.js +39 -48
- package/plugins/uiLayoutRenderer/index.js.map +1 -1
- package/styles.scss +7 -3
- package/types.d.ts +1 -36
- package/types.js +4 -11
- package/types.js.map +1 -1
- package/ui/UIElement.js +1 -18
- package/ui/UIElement.js.map +1 -1
- package/ui/UILayout.js +1 -18
- package/ui/UILayout.js.map +1 -1
- package/ui/UIRenderer.js +1 -12
- package/ui/UIRenderer.js.map +1 -1
- package/ui/UIView.js +1 -24
- package/ui/UIView.js.map +1 -1
- package/ui/elements/AccordionElement.js +43 -74
- package/ui/elements/AccordionElement.js.map +1 -1
- package/ui/elements/ButtonElement.js +46 -79
- package/ui/elements/ButtonElement.js.map +1 -1
- package/ui/elements/ButtonGroupElement.js +12 -31
- package/ui/elements/ButtonGroupElement.js.map +1 -1
- package/ui/elements/GenericElement.js +1 -16
- package/ui/elements/GenericElement.js.map +1 -1
- package/ui/elements/LabelElement.js +15 -37
- package/ui/elements/LabelElement.js.map +1 -1
- package/ui/elements/NavigationMenuElement.js +67 -119
- package/ui/elements/NavigationMenuElement.js.map +1 -1
- package/ui/elements/PanelElement.js +2 -20
- package/ui/elements/PanelElement.js.map +1 -1
- package/ui/elements/PlaceholderElement.js +8 -29
- package/ui/elements/PlaceholderElement.js.map +1 -1
- package/ui/elements/SmallButtonElement.js +20 -40
- package/ui/elements/SmallButtonElement.js.map +1 -1
- package/ui/elements/TypographyElement.js +20 -43
- package/ui/elements/TypographyElement.js.map +1 -1
- package/ui/elements/ViewElement.js +1 -16
- package/ui/elements/ViewElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +17 -33
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement.js +90 -127
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js +7 -23
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +40 -65
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +56 -82
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.js +37 -35
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
- package/ui/elements/form/FileManagerElement.js +43 -81
- package/ui/elements/form/FileManagerElement.js.map +1 -1
- package/ui/elements/form/FormElement.js +17 -40
- package/ui/elements/form/FormElement.js.map +1 -1
- package/ui/elements/form/FormFieldElement.js +100 -158
- package/ui/elements/form/FormFieldElement.js.map +1 -1
- package/ui/elements/form/HiddenElement.js +21 -42
- package/ui/elements/form/HiddenElement.js.map +1 -1
- package/ui/elements/form/InputElement.js +28 -49
- package/ui/elements/form/InputElement.js.map +1 -1
- package/ui/elements/form/PasswordElement.js +26 -48
- package/ui/elements/form/PasswordElement.js.map +1 -1
- package/ui/elements/form/SelectElement.js +38 -64
- package/ui/elements/form/SelectElement.js.map +1 -1
- package/ui/elements/form/TextareaElement.js +30 -50
- package/ui/elements/form/TextareaElement.js.map +1 -1
- package/ui/views/AdminView/ContentElement.js +19 -42
- package/ui/views/AdminView/ContentElement.js.map +1 -1
- package/ui/views/AdminView/HeaderElement.js +57 -90
- package/ui/views/AdminView/HeaderElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionCenterElement.js +16 -35
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionLeftElement.js +16 -35
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionRightElement.js +16 -35
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
- package/ui/views/AdminView/components/Dialog.js +30 -36
- package/ui/views/AdminView/components/Dialog.js.map +1 -1
- package/ui/views/AdminView/components/Hamburger.js +12 -21
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/FormView/FormContainerElement.js +16 -53
- package/ui/views/FormView/FormContainerElement.js.map +1 -1
- package/ui/views/FormView/FormContentElement.d.ts +3 -1
- package/ui/views/FormView/FormContentElement.js +7 -19
- package/ui/views/FormView/FormContentElement.js.map +1 -1
- package/ui/views/FormView/FormFooterElement.js +11 -45
- package/ui/views/FormView/FormFooterElement.js.map +1 -1
- package/ui/views/FormView/FormHeaderElement.js +26 -75
- package/ui/views/FormView/FormHeaderElement.js.map +1 -1
- package/ui/views/FormView.js +104 -148
- package/ui/views/FormView.js.map +1 -1
- package/ui/views/OverlayView/ContentElement.js +12 -31
- package/ui/views/OverlayView/ContentElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +62 -99
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js +21 -44
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
- package/ui/views/OverlayView/useOverlayView.js +16 -27
- package/ui/views/OverlayView/useOverlayView.js.map +1 -1
- package/ui/views/OverlayView.js +72 -123
- package/ui/views/OverlayView.js.map +1 -1
- package/ui/views/SplitView/SplitViewPanelElement.js +28 -64
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
- package/ui/views/SplitView.js +51 -82
- package/ui/views/SplitView.js.map +1 -1
- package/base/Version.d.ts +0 -3
- package/base/Version.js +0 -56
- package/base/Version.js.map +0 -1
- package/base/ui/Menu.d.ts +0 -51
- package/base/ui/Menu.js +0 -133
- package/base/ui/Menu.js.map +0 -1
- package/base/ui/Search.js +0 -61
- package/base/ui/Search.js.map +0 -1
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.d.ts +0 -20
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.js +0 -48
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.js.map +0 -1
- package/components/Dialogs/styled.d.ts +0 -10
- package/components/Dialogs/styled.js +0 -40
- package/components/Dialogs/styled.js.map +0 -1
- package/components/Filters/Filters.styled.d.ts +0 -13
- package/components/Filters/Filters.styled.js +0 -53
- package/components/Filters/Filters.styled.js.map +0 -1
- package/components/IconPicker/IconPicker.styles.d.ts +0 -63
- package/components/IconPicker/IconPicker.styles.js +0 -187
- package/components/IconPicker/IconPicker.styles.js.map +0 -1
- package/components/OptionsMenu/OptionsMenu.styled.d.ts +0 -3
- package/components/OptionsMenu/OptionsMenu.styled.js +0 -26
- package/components/OptionsMenu/OptionsMenu.styled.js.map +0 -1
- package/components/OverlayLayout/icons/close.svg +0 -13
- package/components/OverlayLayout/icons/navigate_before.svg +0 -16
- package/plugins/globalSearch/SearchBar.d.ts +0 -34
- package/plugins/globalSearch/SearchBar.js +0 -225
- package/plugins/globalSearch/SearchBar.js.map +0 -1
- package/plugins/globalSearch/SearchBarDropdown.d.ts +0 -23
- package/plugins/globalSearch/SearchBarDropdown.js +0 -82
- package/plugins/globalSearch/SearchBarDropdown.js.map +0 -1
- package/plugins/globalSearch/icons/round-search-24px.svg +0 -20
- package/plugins/globalSearch/index.d.ts +0 -6
- package/plugins/globalSearch/index.js +0 -17
- package/plugins/globalSearch/index.js.map +0 -1
- package/plugins/globalSearch/styled.d.ts +0 -18
- package/plugins/globalSearch/styled.js +0 -133
- package/plugins/globalSearch/styled.js.map +0 -1
- package/styles/material-theme-assignments.scss +0 -375
- package/styles/material.scss +0 -42
- package/styles/reset.scss +0 -1
- package/styles/theme.scss +0 -76
- package/ui/views/AdminView/components/Snackbar.d.ts +0 -3
- package/ui/views/AdminView/components/Snackbar.js +0 -33
- package/ui/views/AdminView/components/Snackbar.js.map +0 -1
|
@@ -1,101 +1,81 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
var _presenter$vm = presenter.vm,
|
|
37
|
-
activeTab = _presenter$vm.activeTab,
|
|
38
|
-
isMenuOpened = _presenter$vm.isMenuOpened,
|
|
39
|
-
isLoading = _presenter$vm.isLoading,
|
|
40
|
-
iconTypes = _presenter$vm.iconTypes,
|
|
41
|
-
selectedIcon = _presenter$vm.selectedIcon,
|
|
42
|
-
size = _presenter$vm.size;
|
|
43
|
-
(0, _react.useEffect)(function () {
|
|
44
|
-
if (onChange && selectedIcon && !(0, _isEqual.default)(selectedIcon, value)) {
|
|
1
|
+
import React, { useEffect, useCallback, useMemo } from "react";
|
|
2
|
+
import { observer } from "mobx-react-lite";
|
|
3
|
+
import isEqual from "lodash/isEqual";
|
|
4
|
+
import { FormComponentDescription, FormComponentErrorMessage, FormComponentLabel, PopoverPrimitive } from "@webiny/admin-ui";
|
|
5
|
+
import { IconPickerContent, IconPickerTrigger } from "./components";
|
|
6
|
+
import { IconPickerPresenterProvider } from "./IconPickerPresenterProvider";
|
|
7
|
+
import { ICON_PICKER_SIZE } from "./types";
|
|
8
|
+
export const IconPickerComponent = observer(({
|
|
9
|
+
presenter,
|
|
10
|
+
label,
|
|
11
|
+
description,
|
|
12
|
+
removable,
|
|
13
|
+
required,
|
|
14
|
+
disabled,
|
|
15
|
+
...props
|
|
16
|
+
}) => {
|
|
17
|
+
const {
|
|
18
|
+
value,
|
|
19
|
+
onChange
|
|
20
|
+
} = props;
|
|
21
|
+
const {
|
|
22
|
+
isValid: validationIsValid,
|
|
23
|
+
message: validationMessage
|
|
24
|
+
} = props.validation || {};
|
|
25
|
+
const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);
|
|
26
|
+
const {
|
|
27
|
+
activeTab,
|
|
28
|
+
isMenuOpened,
|
|
29
|
+
isLoading,
|
|
30
|
+
iconTypes,
|
|
31
|
+
selectedIcon,
|
|
32
|
+
size
|
|
33
|
+
} = presenter.vm;
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (onChange && selectedIcon && !isEqual(selectedIcon, value)) {
|
|
45
36
|
onChange(selectedIcon);
|
|
46
37
|
}
|
|
47
38
|
}, [JSON.stringify(selectedIcon)]);
|
|
48
|
-
|
|
49
|
-
return presenter.setActiveTab(index);
|
|
50
|
-
};
|
|
51
|
-
var openMenu = function openMenu() {
|
|
52
|
-
return presenter.openMenu();
|
|
53
|
-
};
|
|
54
|
-
var closeMenu = function closeMenu() {
|
|
55
|
-
return presenter.closeMenu();
|
|
56
|
-
};
|
|
57
|
-
var removeIcon = (0, _react.useCallback)(function () {
|
|
39
|
+
const removeIcon = useCallback(() => {
|
|
58
40
|
if (onChange) {
|
|
59
41
|
presenter.setIcon(null);
|
|
60
42
|
onChange(undefined);
|
|
61
43
|
}
|
|
62
44
|
}, [onChange]);
|
|
63
|
-
|
|
45
|
+
const handleOnOpenChange = useCallback(open => {
|
|
46
|
+
if (open) {
|
|
47
|
+
return presenter.openMenu();
|
|
48
|
+
} else {
|
|
49
|
+
return presenter.closeMenu();
|
|
50
|
+
}
|
|
51
|
+
}, [presenter.openMenu, presenter.closeMenu]);
|
|
52
|
+
return /*#__PURE__*/React.createElement(IconPickerPresenterProvider, {
|
|
64
53
|
presenter: presenter
|
|
65
|
-
}, /*#__PURE__*/
|
|
66
|
-
|
|
67
|
-
|
|
54
|
+
}, /*#__PURE__*/React.createElement(FormComponentLabel, {
|
|
55
|
+
text: label,
|
|
56
|
+
required: required,
|
|
57
|
+
disabled: disabled
|
|
58
|
+
}), /*#__PURE__*/React.createElement(FormComponentDescription, {
|
|
59
|
+
text: description
|
|
60
|
+
}), /*#__PURE__*/React.createElement(PopoverPrimitive, {
|
|
68
61
|
open: isMenuOpened,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
onClose: closeMenu,
|
|
76
|
-
onOpen: openMenu,
|
|
77
|
-
portalZIndex: 20
|
|
78
|
-
}, /*#__PURE__*/_react.default.createElement(_IconPicker.MenuHeader, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
79
|
-
use: "body1"
|
|
80
|
-
}, "Select an icon"), value && removable && /*#__PURE__*/_react.default.createElement(_IconPicker.RemoveButton, {
|
|
81
|
-
onClick: removeIcon
|
|
82
|
-
}, "Remove"), /*#__PURE__*/_react.default.createElement(_close.ReactComponent, {
|
|
83
|
-
onClick: closeMenu
|
|
84
|
-
})), /*#__PURE__*/_react.default.createElement(_IconPicker.MenuContent, {
|
|
85
|
-
size: size
|
|
86
|
-
}, isLoading && /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, null), /*#__PURE__*/_react.default.createElement(_Tabs.Tabs, {
|
|
87
|
-
value: activeTab,
|
|
88
|
-
onActivate: function onActivate(value) {
|
|
89
|
-
return setActiveTab(value);
|
|
62
|
+
onOpenChange: handleOnOpenChange
|
|
63
|
+
}, /*#__PURE__*/React.createElement(PopoverPrimitive.Trigger, null, /*#__PURE__*/React.createElement(IconPickerTrigger, {
|
|
64
|
+
icon: selectedIcon
|
|
65
|
+
})), /*#__PURE__*/React.createElement(PopoverPrimitive.Content, {
|
|
66
|
+
style: {
|
|
67
|
+
width: size === ICON_PICKER_SIZE.SMALL ? "248px" : "328px"
|
|
90
68
|
}
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
69
|
+
}, /*#__PURE__*/React.createElement(IconPickerContent, {
|
|
70
|
+
loading: isLoading,
|
|
71
|
+
removable: value && removable,
|
|
72
|
+
iconTypes: iconTypes,
|
|
73
|
+
activeTab: activeTab,
|
|
74
|
+
removeIcon: removeIcon
|
|
75
|
+
}))), /*#__PURE__*/React.createElement(FormComponentErrorMessage, {
|
|
76
|
+
text: validationMessage,
|
|
77
|
+
invalid: invalid
|
|
78
|
+
}));
|
|
99
79
|
});
|
|
100
80
|
|
|
101
81
|
//# sourceMappingURL=IconPickerComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_mobxReactLite","_isEqual","_interopRequireDefault","_close","_Menu","_Tabs","_Typography","_FormElementMessage","_Progress","_IconRenderer","_IconPicker","_IconPickerTab","_IconPickerPresenterProvider","_IconType","_excluded","IconPickerComponent","exports","observer","_ref","presenter","label","description","removable","props","_objectWithoutProperties2","default","value","onChange","_ref2","validation","validationIsValid","isValid","validationMessage","message","_presenter$vm","vm","activeTab","isMenuOpened","isLoading","iconTypes","selectedIcon","size","useEffect","isEqual","JSON","stringify","setActiveTab","index","openMenu","closeMenu","removeIcon","useCallback","setIcon","undefined","createElement","IconPickerPresenterProvider","IconPickerWrapper","IconPickerLabel","Typography","use","Menu","open","handle","IconPickerInput","IconProvider","icon","IconRenderer","PlaceholderIcon","width","height","onClose","onOpen","portalZIndex","MenuHeader","RemoveButton","onClick","ReactComponent","MenuContent","CircularProgress","Tabs","onActivate","map","iconType","IconTypeProvider","key","name","type","IconPickerTabRenderer","FormElementMessage","error"],"sources":["IconPickerComponent.tsx"],"sourcesContent":["import React, { useEffect, useCallback } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport isEqual from \"lodash/isEqual\";\nimport { ReactComponent as CloseIcon } from \"@material-design-icons/svg/outlined/close.svg\";\n\nimport { Menu } from \"@webiny/ui/Menu\";\nimport { Tabs } from \"@webiny/ui/Tabs\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { FormComponentProps } from \"@webiny/ui/types\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\n\nimport { IconPickerPresenter } from \"./IconPickerPresenter\";\nimport { IconProvider, IconRenderer } from \"./IconRenderer\";\nimport {\n IconPickerWrapper,\n IconPickerLabel,\n IconPickerInput,\n MenuContent,\n MenuHeader,\n PlaceholderIcon,\n RemoveButton\n} from \"./IconPicker.styles\";\nimport { IconPickerTabRenderer } from \"./IconPickerTab\";\nimport { IconPickerPresenterProvider } from \"./IconPickerPresenterProvider\";\nimport { IconTypeProvider } from \"./config/IconType\";\nimport { Icon, ICON_PICKER_SIZE } from \"./types\";\n\nexport interface IconPickerProps extends FormComponentProps<Icon | undefined> {\n label?: string;\n description?: string;\n size?: ICON_PICKER_SIZE;\n removable?: boolean;\n}\n\nexport interface IconPickerComponentProps extends IconPickerProps {\n presenter: IconPickerPresenter;\n}\n\nexport const IconPickerComponent = observer(\n ({ presenter, label, description, removable, ...props }: IconPickerComponentProps) => {\n const { value, onChange } = props;\n const { isValid: validationIsValid, message: validationMessage } = props.validation || {};\n const { activeTab, isMenuOpened, isLoading, iconTypes, selectedIcon, size } = presenter.vm;\n\n useEffect(() => {\n if (onChange && selectedIcon && !isEqual(selectedIcon, value)) {\n onChange(selectedIcon);\n }\n }, [JSON.stringify(selectedIcon)]);\n\n const setActiveTab = (index: number) => presenter.setActiveTab(index);\n\n const openMenu = () => presenter.openMenu();\n const closeMenu = () => presenter.closeMenu();\n\n const removeIcon = useCallback(() => {\n if (onChange) {\n presenter.setIcon(null);\n onChange(undefined);\n }\n }, [onChange]);\n\n return (\n <IconPickerPresenterProvider presenter={presenter}>\n <IconPickerWrapper>\n {label && (\n <IconPickerLabel>\n <Typography use={\"body1\"}>{label}</Typography>\n </IconPickerLabel>\n )}\n\n <Menu\n open={isMenuOpened}\n handle={\n <IconPickerInput>\n {selectedIcon ? (\n <IconProvider icon={selectedIcon}>\n <IconRenderer />\n </IconProvider>\n ) : (\n <PlaceholderIcon width={32} height={32} />\n )}\n </IconPickerInput>\n }\n onClose={closeMenu}\n onOpen={openMenu}\n portalZIndex={20}\n >\n <MenuHeader>\n <Typography use={\"body1\"}>Select an icon</Typography>\n {value && removable && (\n <RemoveButton onClick={removeIcon}>Remove</RemoveButton>\n )}\n <CloseIcon onClick={closeMenu} />\n </MenuHeader>\n <MenuContent size={size}>\n {isLoading && <CircularProgress />}\n <Tabs value={activeTab} onActivate={value => setActiveTab(value)}>\n {iconTypes.map(iconType => (\n <IconTypeProvider key={iconType.name} type={iconType.name}>\n <IconPickerTabRenderer />\n </IconTypeProvider>\n ))}\n </Tabs>\n </MenuContent>\n </Menu>\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </IconPickerWrapper>\n </IconPickerPresenterProvider>\n );\n }\n);\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,mBAAA,GAAAR,OAAA;AAEA,IAAAS,SAAA,GAAAT,OAAA;AAGA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AASA,IAAAY,cAAA,GAAAZ,OAAA;AACA,IAAAa,4BAAA,GAAAb,OAAA;AACA,IAAAc,SAAA,GAAAd,OAAA;AAAqD,IAAAe,SAAA;AAc9C,IAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,uBAAQ,EACvC,UAAAC,IAAA,EAAsF;EAAA,IAAnFC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IAAEC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IAAKC,KAAK,OAAAC,yBAAA,CAAAC,OAAA,EAAAP,IAAA,EAAAJ,SAAA;EACjD,IAAQY,KAAK,GAAeH,KAAK,CAAzBG,KAAK;IAAEC,QAAQ,GAAKJ,KAAK,CAAlBI,QAAQ;EACvB,IAAAC,KAAA,GAAmEL,KAAK,CAACM,UAAU,IAAI,CAAC,CAAC;IAAxEC,iBAAiB,GAAAF,KAAA,CAA1BG,OAAO;IAA8BC,iBAAiB,GAAAJ,KAAA,CAA1BK,OAAO;EAC3C,IAAAC,aAAA,GAA8Ef,SAAS,CAACgB,EAAE;IAAlFC,SAAS,GAAAF,aAAA,CAATE,SAAS;IAAEC,YAAY,GAAAH,aAAA,CAAZG,YAAY;IAAEC,SAAS,GAAAJ,aAAA,CAATI,SAAS;IAAEC,SAAS,GAAAL,aAAA,CAATK,SAAS;IAAEC,YAAY,GAAAN,aAAA,CAAZM,YAAY;IAAEC,IAAI,GAAAP,aAAA,CAAJO,IAAI;EAEzE,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAIf,QAAQ,IAAIa,YAAY,IAAI,CAAC,IAAAG,gBAAO,EAACH,YAAY,EAAEd,KAAK,CAAC,EAAE;MAC3DC,QAAQ,CAACa,YAAY,CAAC;IAC1B;EACJ,CAAC,EAAE,CAACI,IAAI,CAACC,SAAS,CAACL,YAAY,CAAC,CAAC,CAAC;EAElC,IAAMM,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAa;IAAA,OAAK5B,SAAS,CAAC2B,YAAY,CAACC,KAAK,CAAC;EAAA;EAErE,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAA;IAAA,OAAS7B,SAAS,CAAC6B,QAAQ,CAAC,CAAC;EAAA;EAC3C,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAA;IAAA,OAAS9B,SAAS,CAAC8B,SAAS,CAAC,CAAC;EAAA;EAE7C,IAAMC,UAAU,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACjC,IAAIxB,QAAQ,EAAE;MACVR,SAAS,CAACiC,OAAO,CAAC,IAAI,CAAC;MACvBzB,QAAQ,CAAC0B,SAAS,CAAC;IACvB;EACJ,CAAC,EAAE,CAAC1B,QAAQ,CAAC,CAAC;EAEd,oBACI9B,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC1C,4BAAA,CAAA2C,2BAA2B;IAACpC,SAAS,EAAEA;EAAU,gBAC9CtB,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC5C,WAAA,CAAA8C,iBAAiB,QACbpC,KAAK,iBACFvB,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC5C,WAAA,CAAA+C,eAAe,qBACZ5D,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAChD,WAAA,CAAAoD,UAAU;IAACC,GAAG,EAAE;EAAQ,GAAEvC,KAAkB,CAChC,CACpB,eAEDvB,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAClD,KAAA,CAAAwD,IAAI;IACDC,IAAI,EAAExB,YAAa;IACnByB,MAAM,eACFjE,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC5C,WAAA,CAAAqD,eAAe,QACXvB,YAAY,gBACT3C,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC7C,aAAA,CAAAuD,YAAY;MAACC,IAAI,EAAEzB;IAAa,gBAC7B3C,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC7C,aAAA,CAAAyD,YAAY,MAAE,CACL,CAAC,gBAEfrE,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC5C,WAAA,CAAAyD,eAAe;MAACC,KAAK,EAAE,EAAG;MAACC,MAAM,EAAE;IAAG,CAAE,CAEhC,CACpB;IACDC,OAAO,EAAErB,SAAU;IACnBsB,MAAM,EAAEvB,QAAS;IACjBwB,YAAY,EAAE;EAAG,gBAEjB3E,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC5C,WAAA,CAAA+D,UAAU,qBACP5E,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAChD,WAAA,CAAAoD,UAAU;IAACC,GAAG,EAAE;EAAQ,GAAC,gBAA0B,CAAC,EACpDjC,KAAK,IAAIJ,SAAS,iBACfzB,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC5C,WAAA,CAAAgE,YAAY;IAACC,OAAO,EAAEzB;EAAW,GAAC,QAAoB,CAC1D,eACDrD,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAACnD,MAAA,CAAAyE,cAAS;IAACD,OAAO,EAAE1B;EAAU,CAAE,CACxB,CAAC,eACbpD,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC5C,WAAA,CAAAmE,WAAW;IAACpC,IAAI,EAAEA;EAAK,GACnBH,SAAS,iBAAIzC,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC9C,SAAA,CAAAsE,gBAAgB,MAAE,CAAC,eAClCjF,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAACjD,KAAA,CAAA0E,IAAI;IAACrD,KAAK,EAAEU,SAAU;IAAC4C,UAAU,EAAE,SAAZA,UAAUA,CAAEtD,KAAK;MAAA,OAAIoB,YAAY,CAACpB,KAAK,CAAC;IAAA;EAAC,GAC5Da,SAAS,CAAC0C,GAAG,CAAC,UAAAC,QAAQ;IAAA,oBACnBrF,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAACzC,SAAA,CAAAsE,gBAAgB;MAACC,GAAG,EAAEF,QAAQ,CAACG,IAAK;MAACC,IAAI,EAAEJ,QAAQ,CAACG;IAAK,gBACtDxF,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC3C,cAAA,CAAA4E,qBAAqB,MAAE,CACV,CAAC;EAAA,CACtB,CACC,CACG,CACX,CAAC,EAENzD,iBAAiB,KAAK,KAAK,iBACxBjC,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC/C,mBAAA,CAAAiF,kBAAkB;IAACC,KAAK;EAAA,GAAEzD,iBAAsC,CACpE,EACAF,iBAAiB,KAAK,KAAK,IAAIT,WAAW,iBACvCxB,MAAA,CAAA4B,OAAA,CAAA6B,aAAA,CAAC/C,mBAAA,CAAAiF,kBAAkB,QAAEnE,WAAgC,CAE1C,CACM,CAAC;AAEtC,CACJ,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useCallback","useMemo","observer","isEqual","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","PopoverPrimitive","IconPickerContent","IconPickerTrigger","IconPickerPresenterProvider","ICON_PICKER_SIZE","IconPickerComponent","presenter","label","description","removable","required","disabled","props","value","onChange","isValid","validationIsValid","message","validationMessage","validation","invalid","activeTab","isMenuOpened","isLoading","iconTypes","selectedIcon","size","vm","JSON","stringify","removeIcon","setIcon","undefined","handleOnOpenChange","open","openMenu","closeMenu","createElement","text","onOpenChange","Trigger","icon","Content","style","width","SMALL","loading"],"sources":["IconPickerComponent.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useMemo } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport isEqual from \"lodash/isEqual\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentProps,\n PopoverPrimitive\n} from \"@webiny/admin-ui\";\nimport { IconPickerContent, IconPickerTrigger } from \"./components\";\nimport { IconPickerPresenter } from \"./IconPickerPresenter\";\nimport { IconPickerPresenterProvider } from \"./IconPickerPresenterProvider\";\nimport { Icon, ICON_PICKER_SIZE } from \"./types\";\n\nexport interface IconPickerProps extends FormComponentProps {\n size?: ICON_PICKER_SIZE;\n removable?: boolean;\n value?: Icon;\n onChange?: (value: Icon | undefined) => void;\n}\n\nexport interface IconPickerComponentProps extends IconPickerProps {\n presenter: IconPickerPresenter;\n}\n\nexport const IconPickerComponent = observer(\n ({\n presenter,\n label,\n description,\n removable,\n required,\n disabled,\n ...props\n }: IconPickerComponentProps) => {\n const { value, onChange } = props;\n const { isValid: validationIsValid, message: validationMessage } = props.validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n const { activeTab, isMenuOpened, isLoading, iconTypes, selectedIcon, size } = presenter.vm;\n\n useEffect(() => {\n if (onChange && selectedIcon && !isEqual(selectedIcon, value)) {\n onChange(selectedIcon);\n }\n }, [JSON.stringify(selectedIcon)]);\n\n const removeIcon = useCallback(() => {\n if (onChange) {\n presenter.setIcon(null);\n onChange(undefined);\n }\n }, [onChange]);\n\n const handleOnOpenChange = useCallback(\n (open: boolean) => {\n if (open) {\n return presenter.openMenu();\n } else {\n return presenter.closeMenu();\n }\n },\n [presenter.openMenu, presenter.closeMenu]\n );\n\n return (\n <IconPickerPresenterProvider presenter={presenter}>\n <FormComponentLabel text={label} required={required} disabled={disabled} />\n <FormComponentDescription text={description} />\n <PopoverPrimitive open={isMenuOpened} onOpenChange={handleOnOpenChange}>\n <PopoverPrimitive.Trigger>\n <IconPickerTrigger icon={selectedIcon} />\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content\n style={{ width: size === ICON_PICKER_SIZE.SMALL ? \"248px\" : \"328px\" }}\n >\n <IconPickerContent\n loading={isLoading}\n removable={value && removable}\n iconTypes={iconTypes}\n activeTab={activeTab}\n removeIcon={removeIcon}\n />\n </PopoverPrimitive.Content>\n </PopoverPrimitive>\n <FormComponentErrorMessage text={validationMessage} invalid={invalid} />\n </IconPickerPresenterProvider>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,12 +6,12 @@ export interface IconPickerPresenterInterface {
|
|
|
6
6
|
setIcon(icon: Icon): void;
|
|
7
7
|
addIcon(icon: Icon): void;
|
|
8
8
|
setFilter(value: string): void;
|
|
9
|
-
setActiveTab(index:
|
|
9
|
+
setActiveTab(index: string): void;
|
|
10
10
|
openMenu(): void;
|
|
11
11
|
closeMenu(): void;
|
|
12
12
|
get vm(): {
|
|
13
13
|
isLoading: boolean;
|
|
14
|
-
activeTab
|
|
14
|
+
activeTab?: string;
|
|
15
15
|
isMenuOpened: boolean;
|
|
16
16
|
icons: Icon[];
|
|
17
17
|
iconTypes: IconType[];
|
|
@@ -30,7 +30,7 @@ export declare class IconPickerPresenter implements IconPickerPresenterInterface
|
|
|
30
30
|
constructor(repository: IconRepository, size?: string);
|
|
31
31
|
load(icon?: Icon | null): Promise<void>;
|
|
32
32
|
get vm(): {
|
|
33
|
-
activeTab:
|
|
33
|
+
activeTab: string | undefined;
|
|
34
34
|
isMenuOpened: boolean;
|
|
35
35
|
isLoading: boolean;
|
|
36
36
|
icons: Icon[];
|
|
@@ -42,11 +42,12 @@ export declare class IconPickerPresenter implements IconPickerPresenterInterface
|
|
|
42
42
|
addIcon(icon: Icon): void;
|
|
43
43
|
closeMenu(): void;
|
|
44
44
|
openMenu(): void;
|
|
45
|
-
setActiveTab(
|
|
45
|
+
setActiveTab(value?: string): void;
|
|
46
46
|
setIcon(icon: Icon | null): void;
|
|
47
47
|
setFilter(value: string): void;
|
|
48
48
|
private getFilteredIcons;
|
|
49
49
|
private getActiveTabByType;
|
|
50
|
+
private getDefaultTab;
|
|
50
51
|
private resetActiveTab;
|
|
51
52
|
private detectSelectedIcon;
|
|
52
53
|
}
|
|
@@ -1,118 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
var _mobx = require("mobx");
|
|
12
|
-
var IconPickerPresenter = exports.IconPickerPresenter = /*#__PURE__*/function () {
|
|
13
|
-
function IconPickerPresenter(repository, size) {
|
|
14
|
-
(0, _classCallCheck2.default)(this, IconPickerPresenter);
|
|
15
|
-
(0, _defineProperty2.default)(this, "selectedIcon", null);
|
|
16
|
-
(0, _defineProperty2.default)(this, "filter", "");
|
|
17
|
-
(0, _defineProperty2.default)(this, "activeTab", 0);
|
|
18
|
-
(0, _defineProperty2.default)(this, "isMenuOpened", false);
|
|
1
|
+
import { makeAutoObservable, toJS } from "mobx";
|
|
2
|
+
export class IconPickerPresenter {
|
|
3
|
+
selectedIcon = null;
|
|
4
|
+
filter = "";
|
|
5
|
+
activeTab = undefined;
|
|
6
|
+
isMenuOpened = false;
|
|
7
|
+
constructor(repository, size) {
|
|
19
8
|
this.repository = repository;
|
|
20
9
|
this.size = size;
|
|
21
|
-
|
|
10
|
+
makeAutoObservable(this);
|
|
22
11
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
value: async function load() {
|
|
26
|
-
var icon = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
27
|
-
if (icon?.value) {
|
|
28
|
-
this.selectedIcon = icon;
|
|
29
|
-
}
|
|
30
|
-
await this.repository.loadIcons();
|
|
31
|
-
if (icon && !icon?.value) {
|
|
32
|
-
this.detectSelectedIcon(icon);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}, {
|
|
36
|
-
key: "vm",
|
|
37
|
-
get: function get() {
|
|
38
|
-
return {
|
|
39
|
-
activeTab: this.activeTab,
|
|
40
|
-
isMenuOpened: this.isMenuOpened,
|
|
41
|
-
isLoading: this.repository.getLoading().isLoading,
|
|
42
|
-
icons: this.getFilteredIcons(),
|
|
43
|
-
iconTypes: this.repository.getIconTypes(),
|
|
44
|
-
// `toJS` will unwrap an observable into a POJO. This will make it simple to use in child components.
|
|
45
|
-
selectedIcon: (0, _mobx.toJS)(this.selectedIcon),
|
|
46
|
-
filter: this.filter,
|
|
47
|
-
size: this.size
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
}, {
|
|
51
|
-
key: "addIcon",
|
|
52
|
-
value: function addIcon(icon) {
|
|
53
|
-
this.repository.addIcon(icon);
|
|
54
|
-
}
|
|
55
|
-
}, {
|
|
56
|
-
key: "closeMenu",
|
|
57
|
-
value: function closeMenu() {
|
|
58
|
-
this.isMenuOpened = false;
|
|
59
|
-
}
|
|
60
|
-
}, {
|
|
61
|
-
key: "openMenu",
|
|
62
|
-
value: function openMenu() {
|
|
63
|
-
this.isMenuOpened = true;
|
|
64
|
-
this.resetActiveTab();
|
|
65
|
-
}
|
|
66
|
-
}, {
|
|
67
|
-
key: "setActiveTab",
|
|
68
|
-
value: function setActiveTab(index) {
|
|
69
|
-
this.activeTab = index;
|
|
70
|
-
}
|
|
71
|
-
}, {
|
|
72
|
-
key: "setIcon",
|
|
73
|
-
value: function setIcon(icon) {
|
|
12
|
+
async load(icon = null) {
|
|
13
|
+
if (icon?.value) {
|
|
74
14
|
this.selectedIcon = icon;
|
|
75
15
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
this.filter = value;
|
|
80
|
-
}
|
|
81
|
-
}, {
|
|
82
|
-
key: "getFilteredIcons",
|
|
83
|
-
value: function getFilteredIcons() {
|
|
84
|
-
var _this = this;
|
|
85
|
-
var hyphenUnderscoreRegex = /[-_]/g;
|
|
86
|
-
var icons = this.repository.getIcons();
|
|
87
|
-
return icons.filter(function (icon) {
|
|
88
|
-
return icon.name.replace(hyphenUnderscoreRegex, " ").toLowerCase().includes(_this.filter.toLowerCase());
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}, {
|
|
92
|
-
key: "getActiveTabByType",
|
|
93
|
-
value: function getActiveTabByType(type) {
|
|
94
|
-
var iconTypes = this.repository.getIconTypes();
|
|
95
|
-
var index = iconTypes.findIndex(function (iconsByType) {
|
|
96
|
-
return iconsByType.name === type;
|
|
97
|
-
});
|
|
98
|
-
return index !== -1 ? index : 0;
|
|
16
|
+
await this.repository.loadIcons();
|
|
17
|
+
if (icon && !icon?.value) {
|
|
18
|
+
this.detectSelectedIcon(icon);
|
|
99
19
|
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
20
|
+
}
|
|
21
|
+
get vm() {
|
|
22
|
+
return {
|
|
23
|
+
activeTab: this.activeTab,
|
|
24
|
+
isMenuOpened: this.isMenuOpened,
|
|
25
|
+
isLoading: this.repository.getLoading().isLoading,
|
|
26
|
+
icons: this.getFilteredIcons(),
|
|
27
|
+
iconTypes: this.repository.getIconTypes(),
|
|
28
|
+
// `toJS` will unwrap an observable into a POJO. This will make it simple to use in child components.
|
|
29
|
+
selectedIcon: toJS(this.selectedIcon),
|
|
30
|
+
filter: this.filter,
|
|
31
|
+
size: this.size
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
addIcon(icon) {
|
|
35
|
+
this.repository.addIcon(icon);
|
|
36
|
+
}
|
|
37
|
+
closeMenu() {
|
|
38
|
+
this.isMenuOpened = false;
|
|
39
|
+
}
|
|
40
|
+
openMenu() {
|
|
41
|
+
this.isMenuOpened = true;
|
|
42
|
+
this.resetActiveTab();
|
|
43
|
+
}
|
|
44
|
+
setActiveTab(value) {
|
|
45
|
+
this.activeTab = value;
|
|
46
|
+
}
|
|
47
|
+
setIcon(icon) {
|
|
48
|
+
this.selectedIcon = icon;
|
|
49
|
+
}
|
|
50
|
+
setFilter(value) {
|
|
51
|
+
this.filter = value;
|
|
52
|
+
}
|
|
53
|
+
getFilteredIcons() {
|
|
54
|
+
const hyphenUnderscoreRegex = /[-_]/g;
|
|
55
|
+
const icons = this.repository.getIcons();
|
|
56
|
+
return icons.filter(icon => icon.name.replace(hyphenUnderscoreRegex, " ").toLowerCase().includes(this.filter.toLowerCase()));
|
|
57
|
+
}
|
|
58
|
+
getActiveTabByType(type) {
|
|
59
|
+
const iconTypes = this.repository.getIconTypes();
|
|
60
|
+
const iconType = iconTypes.find(iconsByType => iconsByType.name === type);
|
|
61
|
+
return iconType?.name || iconTypes[0].name;
|
|
62
|
+
}
|
|
63
|
+
getDefaultTab() {
|
|
64
|
+
return this.repository.getIconTypes()[0].name;
|
|
65
|
+
}
|
|
66
|
+
resetActiveTab() {
|
|
67
|
+
this.setActiveTab(this.selectedIcon ? this.getActiveTabByType(this.selectedIcon.type) : this.getDefaultTab());
|
|
68
|
+
}
|
|
69
|
+
detectSelectedIcon(icon) {
|
|
70
|
+
const iconByName = this.repository.getIcons().find(x => x.name === icon.name && icon.type === x.type);
|
|
71
|
+
if (iconByName) {
|
|
72
|
+
this.selectedIcon = iconByName;
|
|
114
73
|
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
117
76
|
|
|
118
77
|
//# sourceMappingURL=IconPickerPresenter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["makeAutoObservable","toJS","IconPickerPresenter","selectedIcon","filter","activeTab","undefined","isMenuOpened","constructor","repository","size","load","icon","value","loadIcons","detectSelectedIcon","vm","isLoading","getLoading","icons","getFilteredIcons","iconTypes","getIconTypes","addIcon","closeMenu","openMenu","resetActiveTab","setActiveTab","setIcon","setFilter","hyphenUnderscoreRegex","getIcons","name","replace","toLowerCase","includes","getActiveTabByType","type","iconType","find","iconsByType","getDefaultTab","iconByName","x"],"sources":["IconPickerPresenter.ts"],"sourcesContent":["import { makeAutoObservable, toJS } from \"mobx\";\n\nimport { IconRepository } from \"./IconRepository\";\nimport { Icon } from \"./types\";\nimport { IconType } from \"./config\";\n\nexport interface IconPickerPresenterInterface {\n load(icon: Icon): Promise<void>;\n setIcon(icon: Icon): void;\n addIcon(icon: Icon): void;\n setFilter(value: string): void;\n setActiveTab(index: string): void;\n openMenu(): void;\n closeMenu(): void;\n get vm(): {\n isLoading: boolean;\n activeTab?: string;\n isMenuOpened: boolean;\n icons: Icon[];\n iconTypes: IconType[];\n selectedIcon: Icon | null;\n filter: string;\n size?: string;\n };\n}\n\nexport class IconPickerPresenter implements IconPickerPresenterInterface {\n private repository: IconRepository;\n private selectedIcon: Icon | null = null;\n private filter = \"\";\n private activeTab: string | undefined = undefined;\n private isMenuOpened = false;\n private size: string | undefined;\n\n constructor(repository: IconRepository, size?: string) {\n this.repository = repository;\n this.size = size;\n makeAutoObservable(this);\n }\n\n async load(icon: Icon | null = null) {\n if (icon?.value) {\n this.selectedIcon = icon;\n }\n\n await this.repository.loadIcons();\n\n if (icon && !icon?.value) {\n this.detectSelectedIcon(icon);\n }\n }\n\n get vm() {\n return {\n activeTab: this.activeTab,\n isMenuOpened: this.isMenuOpened,\n isLoading: this.repository.getLoading().isLoading,\n icons: this.getFilteredIcons(),\n iconTypes: this.repository.getIconTypes(),\n // `toJS` will unwrap an observable into a POJO. This will make it simple to use in child components.\n selectedIcon: toJS(this.selectedIcon),\n filter: this.filter,\n size: this.size\n };\n }\n\n addIcon(icon: Icon) {\n this.repository.addIcon(icon);\n }\n\n closeMenu(): void {\n this.isMenuOpened = false;\n }\n\n openMenu(): void {\n this.isMenuOpened = true;\n this.resetActiveTab();\n }\n\n setActiveTab(value?: string) {\n this.activeTab = value;\n }\n\n setIcon(icon: Icon | null) {\n this.selectedIcon = icon;\n }\n\n setFilter(value: string) {\n this.filter = value;\n }\n\n private getFilteredIcons() {\n const hyphenUnderscoreRegex = /[-_]/g;\n const icons = this.repository.getIcons();\n\n return icons.filter(icon =>\n icon.name\n .replace(hyphenUnderscoreRegex, \" \")\n .toLowerCase()\n .includes(this.filter.toLowerCase())\n );\n }\n\n private getActiveTabByType(type: string) {\n const iconTypes = this.repository.getIconTypes();\n const iconType = iconTypes.find(iconsByType => iconsByType.name === type);\n\n return iconType?.name || iconTypes[0].name;\n }\n\n private getDefaultTab() {\n return this.repository.getIconTypes()[0].name;\n }\n\n private resetActiveTab() {\n this.setActiveTab(\n this.selectedIcon\n ? this.getActiveTabByType(this.selectedIcon.type)\n : this.getDefaultTab()\n );\n }\n\n private detectSelectedIcon(icon: Icon) {\n const iconByName = this.repository\n .getIcons()\n .find(x => x.name === icon.name && icon.type === x.type);\n\n if (iconByName) {\n this.selectedIcon = iconByName;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _IconRepository = require("./IconRepository");
|
|
5
|
-
var mockIconTypes = [{
|
|
1
|
+
import { IconPickerPresenter } from "./IconPickerPresenter";
|
|
2
|
+
import { IconRepository } from "./IconRepository";
|
|
3
|
+
const mockIconTypes = [{
|
|
6
4
|
name: "icon"
|
|
7
5
|
}, {
|
|
8
6
|
name: "emoji"
|
|
9
7
|
}, {
|
|
10
8
|
name: "custom"
|
|
11
9
|
}];
|
|
12
|
-
|
|
10
|
+
const mockIcons = [{
|
|
13
11
|
type: "emoji",
|
|
14
12
|
name: "thumbs_up",
|
|
15
13
|
value: "👍",
|
|
@@ -21,26 +19,26 @@ var mockIcons = [{
|
|
|
21
19
|
value: '<path fill="currentColor" d="M384 48c8.8 0 16 7.2 16 16v384c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h288zM96 0C60.7 0 32 28.7 32 64v384c0 35.3 28.7 64 64 64h288c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zm144 256a64 64 0 1 0 0-128a64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80h-64zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zm-16 112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16v-64z"/>',
|
|
22
20
|
category: "Business"
|
|
23
21
|
}];
|
|
24
|
-
|
|
22
|
+
const mockIconPackProviders = [{
|
|
25
23
|
name: "mock_icons",
|
|
26
|
-
getIcons: async
|
|
24
|
+
getIcons: async () => {
|
|
27
25
|
return mockIcons;
|
|
28
26
|
}
|
|
29
27
|
}];
|
|
30
|
-
describe("IconPickerPresenter",
|
|
31
|
-
|
|
28
|
+
describe("IconPickerPresenter", () => {
|
|
29
|
+
const icon = {
|
|
32
30
|
type: "icon",
|
|
33
31
|
name: "solid_bullseye",
|
|
34
32
|
value: '<path fill="currentColor" d="M448 256a192 192 0 1 0-384 0a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0a256 256 0 1 1-512 0zm256 80a80 80 0 1 0 0-160a80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288a144 144 0 1 1 0-288zm-32 144a32 32 0 1 1 64 0a32 32 0 1 1-64 0z"/>',
|
|
35
33
|
category: "Business",
|
|
36
34
|
color: "#282fe6"
|
|
37
35
|
};
|
|
38
|
-
|
|
39
|
-
beforeEach(
|
|
40
|
-
|
|
41
|
-
presenter = new
|
|
36
|
+
let presenter;
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
const repository = new IconRepository(mockIconTypes, mockIconPackProviders);
|
|
39
|
+
presenter = new IconPickerPresenter(repository);
|
|
42
40
|
});
|
|
43
|
-
it("should create an IconPickerPresenter with the `vm` definition", async
|
|
41
|
+
it("should create an IconPickerPresenter with the `vm` definition", async () => {
|
|
44
42
|
// let's load icons and set a predefined `selectedIcon`
|
|
45
43
|
await presenter.load(icon);
|
|
46
44
|
|
|
@@ -50,7 +48,7 @@ describe("IconPickerPresenter", function () {
|
|
|
50
48
|
// `vm` should have the expected `icons` definition
|
|
51
49
|
expect(presenter.vm.icons).toEqual(mockIcons);
|
|
52
50
|
});
|
|
53
|
-
it("should be able to select an icon", async
|
|
51
|
+
it("should be able to select an icon", async () => {
|
|
54
52
|
// let's load icons
|
|
55
53
|
await presenter.load();
|
|
56
54
|
|
|
@@ -60,7 +58,7 @@ describe("IconPickerPresenter", function () {
|
|
|
60
58
|
// `vm` should have the expected `selectedIcon` value
|
|
61
59
|
expect(presenter.vm.selectedIcon).toEqual(presenter.vm.icons[0]);
|
|
62
60
|
});
|
|
63
|
-
it("should be able to add an icon", async
|
|
61
|
+
it("should be able to add an icon", async () => {
|
|
64
62
|
// let's load icons
|
|
65
63
|
await presenter.load();
|
|
66
64
|
|
|
@@ -71,9 +69,9 @@ describe("IconPickerPresenter", function () {
|
|
|
71
69
|
expect(presenter.vm.icons.length).toBe(3);
|
|
72
70
|
|
|
73
71
|
// `vm` should have the expected `icons` value
|
|
74
|
-
expect(presenter.vm.icons).toEqual([
|
|
72
|
+
expect(presenter.vm.icons).toEqual([...mockIcons, icon]);
|
|
75
73
|
});
|
|
76
|
-
it("should be able to filter icons by name", async
|
|
74
|
+
it("should be able to filter icons by name", async () => {
|
|
77
75
|
// let's load icons
|
|
78
76
|
await presenter.load();
|
|
79
77
|
|
|
@@ -86,15 +84,15 @@ describe("IconPickerPresenter", function () {
|
|
|
86
84
|
// `vm` should have filtered icon
|
|
87
85
|
expect(presenter.vm.icons[0]).toEqual(mockIcons[1]);
|
|
88
86
|
});
|
|
89
|
-
it("should be able to set active tab on menu open", async
|
|
87
|
+
it("should be able to set active tab on menu open", async () => {
|
|
90
88
|
// let's load icons and set a predefined `selectedIcon`
|
|
91
89
|
await presenter.load(mockIcons[0]);
|
|
92
90
|
|
|
93
91
|
// default `isMenuOpened` should be false
|
|
94
92
|
expect(presenter.vm.isMenuOpened).toBe(false);
|
|
95
93
|
|
|
96
|
-
// default `activeTab` should be
|
|
97
|
-
expect(presenter.vm.activeTab).toBe(
|
|
94
|
+
// default `activeTab` should be handled by the component itself
|
|
95
|
+
expect(presenter.vm.activeTab).toBe(undefined);
|
|
98
96
|
|
|
99
97
|
// should be able to set `isMenuOpened`
|
|
100
98
|
// should be able to set `activeTab` based on `selectedIcon` type
|
|
@@ -104,7 +102,7 @@ describe("IconPickerPresenter", function () {
|
|
|
104
102
|
expect(presenter.vm.isMenuOpened).toBe(true);
|
|
105
103
|
|
|
106
104
|
// `vm` should have the expected `activeTab` value
|
|
107
|
-
expect(presenter.vm.activeTab).toBe(
|
|
105
|
+
expect(presenter.vm.activeTab).toBe("emoji");
|
|
108
106
|
});
|
|
109
107
|
});
|
|
110
108
|
|