@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 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","Header","_ref","data","config","api","readOnly","_classCallCheck2","default","alignments","ALIGNMENTS","typography","_CSS","block","styles","settingsButton","settingsButtonActive","wrapper","_settings","_data","normalizeData","settingsButtons","_element","getTag","_createClass2","key","value","newData","text","level","parseInt","defaultLevel","number","textAlign","TextAlign","START","render","renderSettings","_this","holder","document","createElement","levels","length","forEach","selectTypeButton","classList","add","currentLevel","innerHTML","svg","dataset","addEventListener","setLevel","appendChild","push","alignment","currentAlignment","name","setAlignment","_this2","button","toggle","_this3","merge","validate","blockData","trim","save","toolsContent","getTextAlign","className","includes","concat","get","set","undefined","parentNode","newHeader","replaceChild","_this4","tag","component","toLowerCase","typographyConfig","textAlignClass","remove","contentEditable","i18n","t","placeholder","_this5","find","levelItem","_this6","ALIGNMENT_ICONS","start","_this7","userSpecified","console","warn","_this8","availableLevels","filter","l","onPaste","event","content","detail","tagName","reduce","prevLevel","currLevel","Math","abs","export","import","tags","icon","title","_default","exports"],"sources":["index.ts"],"sourcesContent":["import { API, HTMLPasteEvent } from \"@editorjs/editorjs\";\nimport { ALIGNMENTS, ALIGNMENT_ICONS, TextAlign, Alignment } from \"../utils\";\n\ninterface Typography {\n [key: string]: {\n label: string;\n component: string;\n className: string;\n };\n}\n\nexport interface HeaderData {\n text: string;\n level: number;\n textAlign?: TextAlign;\n alignment?: Alignment;\n className?: string;\n}\n\ninterface HeaderConfig {\n levels: number[];\n typography: Typography;\n placeholder?: string;\n defaultLevel?: number;\n}\n\ninterface HeaderArgs {\n data: HeaderData;\n config: HeaderConfig;\n api: any;\n readOnly: boolean;\n}\n\nclass Header {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly settingsButtons: any[];\n private readonly _CSS: any;\n private readonly _settings: HeaderConfig;\n private _data: HeaderData;\n private _element: any;\n private readonly alignments: Alignment[];\n private readonly typography: Typography;\n /**\n * Render plugin`s main Element and fill it with saved data\n *\n * @param {{data: HeaderData, config: HeaderConfig, api: object}}\n * data — previously saved data\n * config - user config for Tool\n * api - Editor.js API\n * readOnly - read only mode flag\n */\n constructor({ data, config, api, readOnly }: HeaderArgs) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.alignments = ALIGNMENTS;\n /**\n * Import typography from theme\n */\n this.typography = config.typography || null;\n\n /**\n * Styles\n *\n * @type {object}\n */\n this._CSS = {\n block: this.api.styles.block,\n settingsButton: this.api.styles.settingsButton,\n settingsButtonActive: this.api.styles.settingsButtonActive,\n wrapper: \"ce-header\"\n };\n\n /**\n * Tool's settings passed from Editor\n *\n * @type {HeaderConfig}\n * @private\n */\n this._settings = config;\n\n /**\n * Block's data\n *\n * @type {HeaderData}\n * @private\n */\n this._data = this.normalizeData(data);\n\n /**\n * List of settings buttons\n *\n * @type {HTMLElement[]}\n */\n this.settingsButtons = [];\n\n /**\n * Main Block wrapper\n *\n * @type {HTMLElement}\n * @private\n */\n this._element = this.getTag();\n }\n\n /**\n * Normalize input data\n *\n * @param {HeaderData} data - saved data to process\n *\n * @returns {HeaderData}\n * @private\n */\n normalizeData(data: Partial<HeaderData>): HeaderData {\n const newData: Partial<HeaderData> = {};\n\n if (typeof data !== \"object\") {\n data = {};\n }\n\n newData.text = data.text || \"\";\n newData.level = parseInt(data.level as unknown as string) || this.defaultLevel.number;\n newData.textAlign = data.textAlign || TextAlign.START;\n\n return newData as HeaderData;\n }\n\n /**\n * Return Tool's view\n *\n * @returns {HTMLHeadingElement}\n * @public\n */\n render() {\n return this._element;\n }\n\n /**\n * Create Block's settings block\n *\n * @returns {HTMLElement}\n */\n renderSettings() {\n const holder = document.createElement(\"DIV\");\n\n // do not add settings button, when only one level is configured\n if (this.levels.length <= 1) {\n return holder;\n }\n\n /** Add type selectors */\n this.levels.forEach(level => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentLevel.number === level.number) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = level.svg;\n\n /**\n * Save level to its button\n */\n selectTypeButton.dataset[\"level\"] = level.number + \"\";\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setLevel(level.number);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n /**\n * Add alignment selectors\n * */\n this.alignments.forEach(alignment => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentAlignment.name === alignment.name) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = alignment.svg;\n\n /**\n * Save alignment to its button\n */\n selectTypeButton.dataset[\"textAlign\"] = alignment.name;\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setAlignment(alignment);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n return holder;\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} level - level to set\n */\n setLevel(level: number): void {\n this.data = {\n level: level,\n text: this.data.text\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n parseInt(button.dataset.level) === level\n );\n });\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} alignment - level to set\n */\n setAlignment(alignment: Alignment) {\n this.data = {\n textAlign: alignment.name,\n text: this.data.text,\n level: this.data.level\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n button.dataset.textAlign === alignment.name\n );\n });\n }\n\n /**\n * Method that specified how to merge two Text blocks.\n * Called by Editor.js by backspace at the beginning of the Block\n *\n * @param {HeaderData} data - saved data to merger with current block\n * @public\n */\n merge(data: HeaderData): void {\n this.data = {\n text: this.data.text + data.text,\n level: this.data.level,\n alignment: this.data.alignment\n };\n }\n\n /**\n * Validate Text block data:\n * - check for emptiness\n *\n * @param {HeaderData} blockData — data received after saving\n * @returns {boolean} false if saved data is not correct, otherwise true\n * @public\n */\n validate(blockData: HeaderData): boolean {\n return blockData.text.trim() !== \"\";\n }\n\n /**\n * Extract Tool's data from the view\n *\n * @param {HTMLHeadingElement} toolsContent - Text tools rendered view\n * @returns {HeaderData} - saved data\n * @public\n */\n save(toolsContent: HTMLHeadingElement): HeaderData {\n return {\n text: toolsContent.innerHTML,\n level: this.currentLevel.number,\n textAlign: this.getTextAlign(toolsContent.className),\n className: toolsContent.className\n };\n }\n\n /**\n * Extract textAlign from className\n *\n * @param {string} className - heading element className\n * @returns {TextAlign} textAlign\n */\n getTextAlign(className: string): TextAlign {\n let textAlign = TextAlign.START;\n // Match className with alignment\n this.alignments.forEach(alignment => {\n if (className.includes(`ce-header-text--${alignment.name}`)) {\n textAlign = alignment.name;\n }\n });\n return textAlign;\n }\n\n /**\n * Allow Header to be converted to/from other blocks\n */\n static get conversionConfig() {\n return {\n export: \"text\", // use 'text' property for other blocks\n import: \"text\" // fill 'text' property from other block's export string\n };\n }\n\n /**\n * Sanitizer Rules\n */\n static get sanitize() {\n return {\n level: false,\n text: {}\n };\n }\n\n /**\n * Returns true to notify core that read-only is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get current Tools`s data\n *\n * @returns {HeaderData} Current data\n * @private\n */\n get data(): HeaderData {\n this._data.text = this._element.innerHTML;\n this._data.level = this.currentLevel.number;\n this._data.textAlign = this.currentAlignment.name;\n\n return this._data;\n }\n\n /**\n * Store data in plugin:\n * - at the this._data property\n * - at the HTML\n *\n * @param {HeaderData} data — data to set\n * @private\n */\n set data(data: HeaderData) {\n this._data = this.normalizeData(data);\n\n /**\n * If level is set and block in DOM\n * then replace it to a new block\n */\n if (data.level !== undefined && this._element.parentNode) {\n /**\n * Create a new tag\n *\n * @type {HTMLHeadingElement}\n */\n const newHeader = this.getTag();\n\n /**\n * Save Block's content\n */\n newHeader.innerHTML = this._element.innerHTML;\n\n /**\n * Replace blocks\n */\n this._element.parentNode.replaceChild(newHeader, this._element);\n\n /**\n * Save new block to private variable\n *\n * @type {HTMLHeadingElement}\n * @private\n */\n this._element = newHeader;\n }\n\n /**\n * If data.text was passed then update block's content\n */\n if (data.text !== undefined) {\n this._element.innerHTML = this._data.text || \"\";\n }\n }\n\n /**\n * Get tag for target level\n * By default returns second-leveled header\n *\n * @returns {HTMLElement}\n */\n getTag() {\n /**\n * Create element for current Block's level\n */\n const tag = document.createElement(this.currentLevel.tag);\n\n /**\n * Add text to block\n */\n tag.innerHTML = this._data.text || \"\";\n\n /**\n * Add styles class from typography\n */\n if (this.typography) {\n const component = this.currentLevel.tag.toLowerCase();\n const typographyConfig = this.typography[component];\n tag.classList.add(typographyConfig.className);\n } else {\n /**\n * Add styles class\n */\n tag.classList.add(this._CSS.wrapper);\n }\n\n /**\n * Add Alignment class\n */\n this.alignments.forEach(alignment => {\n const textAlignClass = `ce-header-text--${alignment.name}`;\n if (alignment.name === this._data.textAlign) {\n tag.classList.add(textAlignClass);\n } else {\n tag.classList.remove(textAlignClass);\n }\n });\n\n /**\n * Make tag editable\n */\n tag.contentEditable = this.readOnly ? \"false\" : \"true\";\n\n /**\n * Add Placeholder\n */\n tag.dataset[\"placeholder\"] = this.api.i18n.t(this._settings.placeholder || \"\");\n\n return tag;\n }\n\n /**\n * Get current level\n *\n * @returns {level}\n */\n get currentLevel() {\n let level = this.levels.find(levelItem => levelItem.number === this._data.level);\n\n if (!level) {\n level = this.defaultLevel;\n }\n\n return level;\n }\n\n /**\n * Get current alignment\n *\n * @returns {alignment}\n */\n get currentAlignment() {\n let alignment = this.alignments.find(alignment => alignment.name === this._data.textAlign);\n\n if (!alignment) {\n alignment = { name: TextAlign.START, svg: ALIGNMENT_ICONS.start };\n }\n\n return alignment;\n }\n\n /**\n * Return default level\n *\n * @returns {level}\n */\n get defaultLevel() {\n /**\n * User can specify own default level value\n */\n if (this._settings.defaultLevel) {\n const userSpecified = this.levels.find(levelItem => {\n return levelItem.number === this._settings.defaultLevel;\n });\n\n if (userSpecified) {\n return userSpecified;\n } else {\n console.warn(\n \"(ง'̀-'́)ง Heading Tool: the default level specified was not found in available levels\"\n );\n }\n }\n\n /**\n * With no additional options, there will be H2 by default\n *\n * @type {level}\n */\n return this.levels[1];\n }\n\n /**\n * @typedef {object} level\n * @property {number} number - level number\n * @property {string} tag - tag corresponds with level number\n * @property {string} svg - icon\n */\n\n /**\n * Available header levels\n *\n * @returns {level[]}\n */\n get levels() {\n const availableLevels = [\n {\n number: 1,\n tag: \"H1\",\n svg: '<svg width=\"16\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.14 1.494V4.98h4.62V1.494c0-.498.098-.871.293-1.12A.927.927 0 0 1 7.82 0c.322 0 .583.123.782.37.2.246.3.62.3 1.124v9.588c0 .503-.101.88-.303 1.128a.957.957 0 0 1-.779.374.921.921 0 0 1-.77-.378c-.193-.251-.29-.626-.29-1.124V6.989H2.14v4.093c0 .503-.1.88-.302 1.128a.957.957 0 0 1-.778.374.921.921 0 0 1-.772-.378C.096 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.285.374A.922.922 0 0 1 1.06 0c.321 0 .582.123.782.37.199.246.299.62.299 1.124zm11.653 9.985V5.27c-1.279.887-2.14 1.33-2.583 1.33a.802.802 0 0 1-.563-.228.703.703 0 0 1-.245-.529c0-.232.08-.402.241-.511.161-.11.446-.25.854-.424.61-.259 1.096-.532 1.462-.818a5.84 5.84 0 0 0 .97-.962c.282-.355.466-.573.552-.655.085-.082.246-.123.483-.123.267 0 .481.093.642.28.161.186.242.443.242.77v7.813c0 .914-.345 1.371-1.035 1.371-.307 0-.554-.093-.74-.28-.187-.186-.28-.461-.28-.825z\"/></svg>'\n },\n {\n number: 2,\n tag: \"H2\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm10.99 9.288h3.527c.351 0 .62.072.804.216.185.144.277.34.277.588 0 .22-.073.408-.22.56-.146.154-.368.23-.665.23h-4.972c-.338 0-.601-.093-.79-.28a.896.896 0 0 1-.284-.659c0-.162.06-.377.182-.645s.255-.478.399-.631a38.617 38.617 0 0 1 1.621-1.598c.482-.444.827-.735 1.034-.875.369-.261.676-.523.922-.787.245-.263.432-.534.56-.81.129-.278.193-.549.193-.815 0-.288-.069-.546-.206-.773a1.428 1.428 0 0 0-.56-.53 1.618 1.618 0 0 0-.774-.19c-.59 0-1.054.26-1.392.777-.045.068-.12.252-.226.554-.106.302-.225.534-.358.696-.133.162-.328.243-.585.243a.76.76 0 0 1-.56-.223c-.149-.148-.223-.351-.223-.608 0-.31.07-.635.21-.972.139-.338.347-.645.624-.92a3.093 3.093 0 0 1 1.054-.665c.426-.169.924-.253 1.496-.253.69 0 1.277.108 1.764.324.315.144.592.343.83.595.24.252.425.544.558.875.133.33.2.674.2 1.03 0 .558-.14 1.066-.416 1.523-.277.457-.56.815-.848 1.074-.288.26-.771.666-1.45 1.22-.677.554-1.142.984-1.394 1.29a3.836 3.836 0 0 0-.331.44z\"/></svg>'\n },\n {\n number: 3,\n tag: \"H3\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm11.61 4.919c.418 0 .778-.123 1.08-.368.301-.245.452-.597.452-1.055 0-.35-.12-.65-.36-.902-.241-.252-.566-.378-.974-.378-.277 0-.505.038-.684.116a1.1 1.1 0 0 0-.426.306 2.31 2.31 0 0 0-.296.49c-.093.2-.178.388-.255.565a.479.479 0 0 1-.245.225.965.965 0 0 1-.409.081.706.706 0 0 1-.5-.22c-.152-.148-.228-.345-.228-.59 0-.236.071-.484.214-.745a2.72 2.72 0 0 1 .627-.746 3.149 3.149 0 0 1 1.024-.568 4.122 4.122 0 0 1 1.368-.214c.44 0 .842.06 1.205.18.364.12.679.294.947.52.267.228.47.49.606.79.136.3.204.622.204.967 0 .454-.099.843-.296 1.168-.198.324-.48.64-.848.95.354.19.653.408.895.653.243.245.426.516.548.813.123.298.184.619.184.964 0 .413-.083.812-.248 1.198-.166.386-.41.73-.732 1.031a3.49 3.49 0 0 1-1.147.708c-.443.17-.932.256-1.467.256a3.512 3.512 0 0 1-1.464-.293 3.332 3.332 0 0 1-1.699-1.64c-.142-.314-.214-.573-.214-.777 0-.263.085-.475.255-.636a.89.89 0 0 1 .637-.242c.127 0 .25.037.367.112a.53.53 0 0 1 .232.27c.236.63.489 1.099.759 1.405.27.306.65.46 1.14.46a1.714 1.714 0 0 0 1.46-.824c.17-.273.256-.588.256-.947 0-.53-.145-.947-.436-1.249-.29-.302-.694-.453-1.212-.453-.09 0-.231.01-.422.028-.19.018-.313.027-.367.027-.25 0-.443-.062-.579-.187-.136-.125-.204-.299-.204-.521 0-.218.081-.394.245-.528.163-.134.406-.2.728-.2h.28z\"/></svg>'\n },\n {\n number: 4,\n tag: \"H4\",\n svg: '<svg width=\"20\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm13.003 10.09v-1.252h-3.38c-.427 0-.746-.097-.96-.29-.213-.193-.32-.456-.32-.788 0-.085.016-.171.048-.259.031-.088.078-.18.141-.276.063-.097.128-.19.195-.28.068-.09.15-.2.25-.33l3.568-4.774a5.44 5.44 0 0 1 .576-.683.763.763 0 0 1 .542-.212c.682 0 1.023.39 1.023 1.171v5.212h.29c.346 0 .623.047.832.142.208.094.313.3.313.62 0 .26-.086.45-.256.568-.17.12-.427.179-.768.179h-.41v1.252c0 .346-.077.603-.23.771-.152.168-.356.253-.612.253a.78.78 0 0 1-.61-.26c-.154-.173-.232-.427-.232-.764zm-2.895-2.76h2.895V4.91L12.26 8.823z\"/></svg>'\n },\n {\n number: 5,\n tag: \"H5\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm14.16 2.645h-3.234l-.388 2.205c.644-.344 1.239-.517 1.783-.517.436 0 .843.082 1.222.245.38.164.712.39.998.677.286.289.51.63.674 1.025.163.395.245.82.245 1.273 0 .658-.148 1.257-.443 1.797-.295.54-.72.97-1.276 1.287-.556.318-1.197.477-1.923.477-.813 0-1.472-.15-1.978-.45-.506-.3-.865-.643-1.076-1.031-.21-.388-.316-.727-.316-1.018 0-.177.073-.345.22-.504a.725.725 0 0 1 .556-.238c.381 0 .665.22.85.66.182.404.427.719.736.943.309.225.654.337 1.035.337.35 0 .656-.09.919-.272.263-.182.466-.431.61-.749.142-.318.214-.678.214-1.082 0-.436-.078-.808-.232-1.117a1.607 1.607 0 0 0-.62-.69 1.674 1.674 0 0 0-.864-.229c-.39 0-.67.048-.837.143-.168.095-.41.262-.725.5-.316.239-.576.358-.78.358a.843.843 0 0 1-.592-.242c-.173-.16-.259-.344-.259-.548 0-.022.025-.177.075-.463l.572-3.26c.063-.39.181-.675.354-.852.172-.177.454-.265.844-.265h3.595c.708 0 1.062.27 1.062.81a.711.711 0 0 1-.26.572c-.172.145-.426.218-.762.218z\"/></svg>'\n },\n {\n number: 6,\n tag: \"H6\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zM12.53 7.058a3.093 3.093 0 0 1 1.004-.814 2.734 2.734 0 0 1 1.214-.264c.43 0 .827.08 1.19.24.365.161.684.39.957.686.274.296.485.645.635 1.048a3.6 3.6 0 0 1 .223 1.262c0 .637-.145 1.216-.437 1.736-.292.52-.699.926-1.221 1.218-.522.292-1.114.438-1.774.438-.76 0-1.416-.186-1.967-.557-.552-.37-.974-.919-1.265-1.645-.292-.726-.438-1.613-.438-2.662 0-.855.088-1.62.265-2.293.176-.674.43-1.233.76-1.676.33-.443.73-.778 1.2-1.004.47-.226 1.006-.339 1.608-.339.579 0 1.089.113 1.53.34.44.225.773.506.997.84.224.335.335.656.335.964 0 .185-.07.354-.21.505a.698.698 0 0 1-.536.227.874.874 0 0 1-.529-.18 1.039 1.039 0 0 1-.36-.498 1.42 1.42 0 0 0-.495-.655 1.3 1.3 0 0 0-.786-.247c-.24 0-.479.069-.716.207a1.863 1.863 0 0 0-.6.56c-.33.479-.525 1.333-.584 2.563zm1.832 4.213c.456 0 .834-.186 1.133-.56.298-.373.447-.862.447-1.468 0-.412-.07-.766-.21-1.062a1.584 1.584 0 0 0-.577-.678 1.47 1.47 0 0 0-.807-.234c-.28 0-.548.074-.804.224-.255.149-.461.365-.617.647a2.024 2.024 0 0 0-.234.994c0 .61.158 1.12.475 1.527.316.407.714.61 1.194.61z\"/></svg>'\n }\n ];\n\n return this._settings.levels\n ? availableLevels.filter(l => this._settings.levels.includes(l.number))\n : availableLevels;\n }\n\n /**\n * Handle H1-H6 tags on paste to substitute it with header Tool\n *\n * @param {HTMLPasteEvent} event - event with pasted content\n */\n onPaste(event: HTMLPasteEvent) {\n const content = event.detail.data;\n\n /**\n * Define default level value\n *\n * @type {number}\n */\n let level = this.defaultLevel.number;\n\n switch (content.tagName) {\n case \"H1\":\n level = 1;\n break;\n case \"H2\":\n level = 2;\n break;\n case \"H3\":\n level = 3;\n break;\n case \"H4\":\n level = 4;\n break;\n case \"H5\":\n level = 5;\n break;\n case \"H6\":\n level = 6;\n break;\n }\n\n if (this._settings.levels) {\n // Fallback to nearest level when specified not available\n level = this._settings.levels.reduce((prevLevel, currLevel) => {\n return Math.abs(currLevel - level) < Math.abs(prevLevel - level)\n ? currLevel\n : prevLevel;\n });\n }\n\n this.data = {\n level,\n text: content.innerHTML\n };\n }\n\n /**\n * Used by Editor.js paste handling API.\n * Provides configuration to handle H1-H6 tags.\n *\n * @returns {{handler: (function(HTMLElement): {text: string}), tags: string[]}}\n */\n static get pasteConfig() {\n return {\n tags: [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"]\n };\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon:\n '<svg width=\"10\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 14\">\\n' +\n ' <path d=\"M7.6 8.15H2.25v4.525a1.125 1.125 0 0 1-2.25 0V1.125a1.125 1.125 0 1 1 2.25 0V5.9H7.6V1.125a1.125 1.125 0 0 1 2.25 0v11.55a1.125 1.125 0 0 1-2.25 0V8.15z\"/>\\n' +\n \"</svg>\",\n title: \"Heading\"\n };\n }\n}\n\nexport default Header;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ALIGNMENTS","ALIGNMENT_ICONS","TextAlign","Header","constructor","data","config","api","readOnly","alignments","typography","_CSS","block","styles","settingsButton","settingsButtonActive","wrapper","_settings","_data","normalizeData","settingsButtons","_element","getTag","newData","text","level","parseInt","defaultLevel","number","textAlign","START","render","renderSettings","holder","document","createElement","levels","length","forEach","selectTypeButton","classList","add","currentLevel","innerHTML","svg","dataset","addEventListener","setLevel","appendChild","push","alignment","currentAlignment","name","setAlignment","button","toggle","merge","validate","blockData","trim","save","toolsContent","getTextAlign","className","includes","conversionConfig","export","import","sanitize","isReadOnlySupported","undefined","parentNode","newHeader","replaceChild","tag","component","toLowerCase","typographyConfig","textAlignClass","remove","contentEditable","i18n","t","placeholder","find","levelItem","start","userSpecified","console","warn","availableLevels","filter","l","onPaste","event","content","detail","tagName","reduce","prevLevel","currLevel","Math","abs","pasteConfig","tags","toolbox","icon","title"],"sources":["index.ts"],"sourcesContent":["import { API, HTMLPasteEvent } from \"@editorjs/editorjs\";\nimport { ALIGNMENTS, ALIGNMENT_ICONS, TextAlign, Alignment } from \"../utils\";\n\ninterface Typography {\n [key: string]: {\n label: string;\n component: string;\n className: string;\n };\n}\n\nexport interface HeaderData {\n text: string;\n level: number;\n textAlign?: TextAlign;\n alignment?: Alignment;\n className?: string;\n}\n\ninterface HeaderConfig {\n levels: number[];\n typography: Typography;\n placeholder?: string;\n defaultLevel?: number;\n}\n\ninterface HeaderArgs {\n data: HeaderData;\n config: HeaderConfig;\n api: any;\n readOnly: boolean;\n}\n\nclass Header {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly settingsButtons: any[];\n private readonly _CSS: any;\n private readonly _settings: HeaderConfig;\n private _data: HeaderData;\n private _element: any;\n private readonly alignments: Alignment[];\n private readonly typography: Typography;\n /**\n * Render plugin`s main Element and fill it with saved data\n *\n * @param {{data: HeaderData, config: HeaderConfig, api: object}}\n * data — previously saved data\n * config - user config for Tool\n * api - Editor.js API\n * readOnly - read only mode flag\n */\n constructor({ data, config, api, readOnly }: HeaderArgs) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.alignments = ALIGNMENTS;\n /**\n * Import typography from theme\n */\n this.typography = config.typography || null;\n\n /**\n * Styles\n *\n * @type {object}\n */\n this._CSS = {\n block: this.api.styles.block,\n settingsButton: this.api.styles.settingsButton,\n settingsButtonActive: this.api.styles.settingsButtonActive,\n wrapper: \"ce-header\"\n };\n\n /**\n * Tool's settings passed from Editor\n *\n * @type {HeaderConfig}\n * @private\n */\n this._settings = config;\n\n /**\n * Block's data\n *\n * @type {HeaderData}\n * @private\n */\n this._data = this.normalizeData(data);\n\n /**\n * List of settings buttons\n *\n * @type {HTMLElement[]}\n */\n this.settingsButtons = [];\n\n /**\n * Main Block wrapper\n *\n * @type {HTMLElement}\n * @private\n */\n this._element = this.getTag();\n }\n\n /**\n * Normalize input data\n *\n * @param {HeaderData} data - saved data to process\n *\n * @returns {HeaderData}\n * @private\n */\n normalizeData(data: Partial<HeaderData>): HeaderData {\n const newData: Partial<HeaderData> = {};\n\n if (typeof data !== \"object\") {\n data = {};\n }\n\n newData.text = data.text || \"\";\n newData.level = parseInt(data.level as unknown as string) || this.defaultLevel.number;\n newData.textAlign = data.textAlign || TextAlign.START;\n\n return newData as HeaderData;\n }\n\n /**\n * Return Tool's view\n *\n * @returns {HTMLHeadingElement}\n * @public\n */\n render() {\n return this._element;\n }\n\n /**\n * Create Block's settings block\n *\n * @returns {HTMLElement}\n */\n renderSettings() {\n const holder = document.createElement(\"DIV\");\n\n // do not add settings button, when only one level is configured\n if (this.levels.length <= 1) {\n return holder;\n }\n\n /** Add type selectors */\n this.levels.forEach(level => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentLevel.number === level.number) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = level.svg;\n\n /**\n * Save level to its button\n */\n selectTypeButton.dataset[\"level\"] = level.number + \"\";\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setLevel(level.number);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n /**\n * Add alignment selectors\n * */\n this.alignments.forEach(alignment => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentAlignment.name === alignment.name) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = alignment.svg;\n\n /**\n * Save alignment to its button\n */\n selectTypeButton.dataset[\"textAlign\"] = alignment.name;\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setAlignment(alignment);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n return holder;\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} level - level to set\n */\n setLevel(level: number): void {\n this.data = {\n level: level,\n text: this.data.text\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n parseInt(button.dataset.level) === level\n );\n });\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} alignment - level to set\n */\n setAlignment(alignment: Alignment) {\n this.data = {\n textAlign: alignment.name,\n text: this.data.text,\n level: this.data.level\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n button.dataset.textAlign === alignment.name\n );\n });\n }\n\n /**\n * Method that specified how to merge two Text blocks.\n * Called by Editor.js by backspace at the beginning of the Block\n *\n * @param {HeaderData} data - saved data to merger with current block\n * @public\n */\n merge(data: HeaderData): void {\n this.data = {\n text: this.data.text + data.text,\n level: this.data.level,\n alignment: this.data.alignment\n };\n }\n\n /**\n * Validate Text block data:\n * - check for emptiness\n *\n * @param {HeaderData} blockData — data received after saving\n * @returns {boolean} false if saved data is not correct, otherwise true\n * @public\n */\n validate(blockData: HeaderData): boolean {\n return blockData.text.trim() !== \"\";\n }\n\n /**\n * Extract Tool's data from the view\n *\n * @param {HTMLHeadingElement} toolsContent - Text tools rendered view\n * @returns {HeaderData} - saved data\n * @public\n */\n save(toolsContent: HTMLHeadingElement): HeaderData {\n return {\n text: toolsContent.innerHTML,\n level: this.currentLevel.number,\n textAlign: this.getTextAlign(toolsContent.className),\n className: toolsContent.className\n };\n }\n\n /**\n * Extract textAlign from className\n *\n * @param {string} className - heading element className\n * @returns {TextAlign} textAlign\n */\n getTextAlign(className: string): TextAlign {\n let textAlign = TextAlign.START;\n // Match className with alignment\n this.alignments.forEach(alignment => {\n if (className.includes(`ce-header-text--${alignment.name}`)) {\n textAlign = alignment.name;\n }\n });\n return textAlign;\n }\n\n /**\n * Allow Header to be converted to/from other blocks\n */\n static get conversionConfig() {\n return {\n export: \"text\", // use 'text' property for other blocks\n import: \"text\" // fill 'text' property from other block's export string\n };\n }\n\n /**\n * Sanitizer Rules\n */\n static get sanitize() {\n return {\n level: false,\n text: {}\n };\n }\n\n /**\n * Returns true to notify core that read-only is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get current Tools`s data\n *\n * @returns {HeaderData} Current data\n * @private\n */\n get data(): HeaderData {\n this._data.text = this._element.innerHTML;\n this._data.level = this.currentLevel.number;\n this._data.textAlign = this.currentAlignment.name;\n\n return this._data;\n }\n\n /**\n * Store data in plugin:\n * - at the this._data property\n * - at the HTML\n *\n * @param {HeaderData} data — data to set\n * @private\n */\n set data(data: HeaderData) {\n this._data = this.normalizeData(data);\n\n /**\n * If level is set and block in DOM\n * then replace it to a new block\n */\n if (data.level !== undefined && this._element.parentNode) {\n /**\n * Create a new tag\n *\n * @type {HTMLHeadingElement}\n */\n const newHeader = this.getTag();\n\n /**\n * Save Block's content\n */\n newHeader.innerHTML = this._element.innerHTML;\n\n /**\n * Replace blocks\n */\n this._element.parentNode.replaceChild(newHeader, this._element);\n\n /**\n * Save new block to private variable\n *\n * @type {HTMLHeadingElement}\n * @private\n */\n this._element = newHeader;\n }\n\n /**\n * If data.text was passed then update block's content\n */\n if (data.text !== undefined) {\n this._element.innerHTML = this._data.text || \"\";\n }\n }\n\n /**\n * Get tag for target level\n * By default returns second-leveled header\n *\n * @returns {HTMLElement}\n */\n getTag() {\n /**\n * Create element for current Block's level\n */\n const tag = document.createElement(this.currentLevel.tag);\n\n /**\n * Add text to block\n */\n tag.innerHTML = this._data.text || \"\";\n\n /**\n * Add styles class from typography\n */\n if (this.typography) {\n const component = this.currentLevel.tag.toLowerCase();\n const typographyConfig = this.typography[component];\n tag.classList.add(typographyConfig.className);\n } else {\n /**\n * Add styles class\n */\n tag.classList.add(this._CSS.wrapper);\n }\n\n /**\n * Add Alignment class\n */\n this.alignments.forEach(alignment => {\n const textAlignClass = `ce-header-text--${alignment.name}`;\n if (alignment.name === this._data.textAlign) {\n tag.classList.add(textAlignClass);\n } else {\n tag.classList.remove(textAlignClass);\n }\n });\n\n /**\n * Make tag editable\n */\n tag.contentEditable = this.readOnly ? \"false\" : \"true\";\n\n /**\n * Add Placeholder\n */\n tag.dataset[\"placeholder\"] = this.api.i18n.t(this._settings.placeholder || \"\");\n\n return tag;\n }\n\n /**\n * Get current level\n *\n * @returns {level}\n */\n get currentLevel() {\n let level = this.levels.find(levelItem => levelItem.number === this._data.level);\n\n if (!level) {\n level = this.defaultLevel;\n }\n\n return level;\n }\n\n /**\n * Get current alignment\n *\n * @returns {alignment}\n */\n get currentAlignment() {\n let alignment = this.alignments.find(alignment => alignment.name === this._data.textAlign);\n\n if (!alignment) {\n alignment = { name: TextAlign.START, svg: ALIGNMENT_ICONS.start };\n }\n\n return alignment;\n }\n\n /**\n * Return default level\n *\n * @returns {level}\n */\n get defaultLevel() {\n /**\n * User can specify own default level value\n */\n if (this._settings.defaultLevel) {\n const userSpecified = this.levels.find(levelItem => {\n return levelItem.number === this._settings.defaultLevel;\n });\n\n if (userSpecified) {\n return userSpecified;\n } else {\n console.warn(\n \"(ง'̀-'́)ง Heading Tool: the default level specified was not found in available levels\"\n );\n }\n }\n\n /**\n * With no additional options, there will be H2 by default\n *\n * @type {level}\n */\n return this.levels[1];\n }\n\n /**\n * @typedef {object} level\n * @property {number} number - level number\n * @property {string} tag - tag corresponds with level number\n * @property {string} svg - icon\n */\n\n /**\n * Available header levels\n *\n * @returns {level[]}\n */\n get levels() {\n const availableLevels = [\n {\n number: 1,\n tag: \"H1\",\n svg: '<svg width=\"16\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.14 1.494V4.98h4.62V1.494c0-.498.098-.871.293-1.12A.927.927 0 0 1 7.82 0c.322 0 .583.123.782.37.2.246.3.62.3 1.124v9.588c0 .503-.101.88-.303 1.128a.957.957 0 0 1-.779.374.921.921 0 0 1-.77-.378c-.193-.251-.29-.626-.29-1.124V6.989H2.14v4.093c0 .503-.1.88-.302 1.128a.957.957 0 0 1-.778.374.921.921 0 0 1-.772-.378C.096 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.285.374A.922.922 0 0 1 1.06 0c.321 0 .582.123.782.37.199.246.299.62.299 1.124zm11.653 9.985V5.27c-1.279.887-2.14 1.33-2.583 1.33a.802.802 0 0 1-.563-.228.703.703 0 0 1-.245-.529c0-.232.08-.402.241-.511.161-.11.446-.25.854-.424.61-.259 1.096-.532 1.462-.818a5.84 5.84 0 0 0 .97-.962c.282-.355.466-.573.552-.655.085-.082.246-.123.483-.123.267 0 .481.093.642.28.161.186.242.443.242.77v7.813c0 .914-.345 1.371-1.035 1.371-.307 0-.554-.093-.74-.28-.187-.186-.28-.461-.28-.825z\"/></svg>'\n },\n {\n number: 2,\n tag: \"H2\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm10.99 9.288h3.527c.351 0 .62.072.804.216.185.144.277.34.277.588 0 .22-.073.408-.22.56-.146.154-.368.23-.665.23h-4.972c-.338 0-.601-.093-.79-.28a.896.896 0 0 1-.284-.659c0-.162.06-.377.182-.645s.255-.478.399-.631a38.617 38.617 0 0 1 1.621-1.598c.482-.444.827-.735 1.034-.875.369-.261.676-.523.922-.787.245-.263.432-.534.56-.81.129-.278.193-.549.193-.815 0-.288-.069-.546-.206-.773a1.428 1.428 0 0 0-.56-.53 1.618 1.618 0 0 0-.774-.19c-.59 0-1.054.26-1.392.777-.045.068-.12.252-.226.554-.106.302-.225.534-.358.696-.133.162-.328.243-.585.243a.76.76 0 0 1-.56-.223c-.149-.148-.223-.351-.223-.608 0-.31.07-.635.21-.972.139-.338.347-.645.624-.92a3.093 3.093 0 0 1 1.054-.665c.426-.169.924-.253 1.496-.253.69 0 1.277.108 1.764.324.315.144.592.343.83.595.24.252.425.544.558.875.133.33.2.674.2 1.03 0 .558-.14 1.066-.416 1.523-.277.457-.56.815-.848 1.074-.288.26-.771.666-1.45 1.22-.677.554-1.142.984-1.394 1.29a3.836 3.836 0 0 0-.331.44z\"/></svg>'\n },\n {\n number: 3,\n tag: \"H3\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm11.61 4.919c.418 0 .778-.123 1.08-.368.301-.245.452-.597.452-1.055 0-.35-.12-.65-.36-.902-.241-.252-.566-.378-.974-.378-.277 0-.505.038-.684.116a1.1 1.1 0 0 0-.426.306 2.31 2.31 0 0 0-.296.49c-.093.2-.178.388-.255.565a.479.479 0 0 1-.245.225.965.965 0 0 1-.409.081.706.706 0 0 1-.5-.22c-.152-.148-.228-.345-.228-.59 0-.236.071-.484.214-.745a2.72 2.72 0 0 1 .627-.746 3.149 3.149 0 0 1 1.024-.568 4.122 4.122 0 0 1 1.368-.214c.44 0 .842.06 1.205.18.364.12.679.294.947.52.267.228.47.49.606.79.136.3.204.622.204.967 0 .454-.099.843-.296 1.168-.198.324-.48.64-.848.95.354.19.653.408.895.653.243.245.426.516.548.813.123.298.184.619.184.964 0 .413-.083.812-.248 1.198-.166.386-.41.73-.732 1.031a3.49 3.49 0 0 1-1.147.708c-.443.17-.932.256-1.467.256a3.512 3.512 0 0 1-1.464-.293 3.332 3.332 0 0 1-1.699-1.64c-.142-.314-.214-.573-.214-.777 0-.263.085-.475.255-.636a.89.89 0 0 1 .637-.242c.127 0 .25.037.367.112a.53.53 0 0 1 .232.27c.236.63.489 1.099.759 1.405.27.306.65.46 1.14.46a1.714 1.714 0 0 0 1.46-.824c.17-.273.256-.588.256-.947 0-.53-.145-.947-.436-1.249-.29-.302-.694-.453-1.212-.453-.09 0-.231.01-.422.028-.19.018-.313.027-.367.027-.25 0-.443-.062-.579-.187-.136-.125-.204-.299-.204-.521 0-.218.081-.394.245-.528.163-.134.406-.2.728-.2h.28z\"/></svg>'\n },\n {\n number: 4,\n tag: \"H4\",\n svg: '<svg width=\"20\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm13.003 10.09v-1.252h-3.38c-.427 0-.746-.097-.96-.29-.213-.193-.32-.456-.32-.788 0-.085.016-.171.048-.259.031-.088.078-.18.141-.276.063-.097.128-.19.195-.28.068-.09.15-.2.25-.33l3.568-4.774a5.44 5.44 0 0 1 .576-.683.763.763 0 0 1 .542-.212c.682 0 1.023.39 1.023 1.171v5.212h.29c.346 0 .623.047.832.142.208.094.313.3.313.62 0 .26-.086.45-.256.568-.17.12-.427.179-.768.179h-.41v1.252c0 .346-.077.603-.23.771-.152.168-.356.253-.612.253a.78.78 0 0 1-.61-.26c-.154-.173-.232-.427-.232-.764zm-2.895-2.76h2.895V4.91L12.26 8.823z\"/></svg>'\n },\n {\n number: 5,\n tag: \"H5\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm14.16 2.645h-3.234l-.388 2.205c.644-.344 1.239-.517 1.783-.517.436 0 .843.082 1.222.245.38.164.712.39.998.677.286.289.51.63.674 1.025.163.395.245.82.245 1.273 0 .658-.148 1.257-.443 1.797-.295.54-.72.97-1.276 1.287-.556.318-1.197.477-1.923.477-.813 0-1.472-.15-1.978-.45-.506-.3-.865-.643-1.076-1.031-.21-.388-.316-.727-.316-1.018 0-.177.073-.345.22-.504a.725.725 0 0 1 .556-.238c.381 0 .665.22.85.66.182.404.427.719.736.943.309.225.654.337 1.035.337.35 0 .656-.09.919-.272.263-.182.466-.431.61-.749.142-.318.214-.678.214-1.082 0-.436-.078-.808-.232-1.117a1.607 1.607 0 0 0-.62-.69 1.674 1.674 0 0 0-.864-.229c-.39 0-.67.048-.837.143-.168.095-.41.262-.725.5-.316.239-.576.358-.78.358a.843.843 0 0 1-.592-.242c-.173-.16-.259-.344-.259-.548 0-.022.025-.177.075-.463l.572-3.26c.063-.39.181-.675.354-.852.172-.177.454-.265.844-.265h3.595c.708 0 1.062.27 1.062.81a.711.711 0 0 1-.26.572c-.172.145-.426.218-.762.218z\"/></svg>'\n },\n {\n number: 6,\n tag: \"H6\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zM12.53 7.058a3.093 3.093 0 0 1 1.004-.814 2.734 2.734 0 0 1 1.214-.264c.43 0 .827.08 1.19.24.365.161.684.39.957.686.274.296.485.645.635 1.048a3.6 3.6 0 0 1 .223 1.262c0 .637-.145 1.216-.437 1.736-.292.52-.699.926-1.221 1.218-.522.292-1.114.438-1.774.438-.76 0-1.416-.186-1.967-.557-.552-.37-.974-.919-1.265-1.645-.292-.726-.438-1.613-.438-2.662 0-.855.088-1.62.265-2.293.176-.674.43-1.233.76-1.676.33-.443.73-.778 1.2-1.004.47-.226 1.006-.339 1.608-.339.579 0 1.089.113 1.53.34.44.225.773.506.997.84.224.335.335.656.335.964 0 .185-.07.354-.21.505a.698.698 0 0 1-.536.227.874.874 0 0 1-.529-.18 1.039 1.039 0 0 1-.36-.498 1.42 1.42 0 0 0-.495-.655 1.3 1.3 0 0 0-.786-.247c-.24 0-.479.069-.716.207a1.863 1.863 0 0 0-.6.56c-.33.479-.525 1.333-.584 2.563zm1.832 4.213c.456 0 .834-.186 1.133-.56.298-.373.447-.862.447-1.468 0-.412-.07-.766-.21-1.062a1.584 1.584 0 0 0-.577-.678 1.47 1.47 0 0 0-.807-.234c-.28 0-.548.074-.804.224-.255.149-.461.365-.617.647a2.024 2.024 0 0 0-.234.994c0 .61.158 1.12.475 1.527.316.407.714.61 1.194.61z\"/></svg>'\n }\n ];\n\n return this._settings.levels\n ? availableLevels.filter(l => this._settings.levels.includes(l.number))\n : availableLevels;\n }\n\n /**\n * Handle H1-H6 tags on paste to substitute it with header Tool\n *\n * @param {HTMLPasteEvent} event - event with pasted content\n */\n onPaste(event: HTMLPasteEvent) {\n const content = event.detail.data;\n\n /**\n * Define default level value\n *\n * @type {number}\n */\n let level = this.defaultLevel.number;\n\n switch (content.tagName) {\n case \"H1\":\n level = 1;\n break;\n case \"H2\":\n level = 2;\n break;\n case \"H3\":\n level = 3;\n break;\n case \"H4\":\n level = 4;\n break;\n case \"H5\":\n level = 5;\n break;\n case \"H6\":\n level = 6;\n break;\n }\n\n if (this._settings.levels) {\n // Fallback to nearest level when specified not available\n level = this._settings.levels.reduce((prevLevel, currLevel) => {\n return Math.abs(currLevel - level) < Math.abs(prevLevel - level)\n ? currLevel\n : prevLevel;\n });\n }\n\n this.data = {\n level,\n text: content.innerHTML\n };\n }\n\n /**\n * Used by Editor.js paste handling API.\n * Provides configuration to handle H1-H6 tags.\n *\n * @returns {{handler: (function(HTMLElement): {text: string}), tags: string[]}}\n */\n static get pasteConfig() {\n return {\n tags: [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"]\n };\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon:\n '<svg width=\"10\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 14\">\\n' +\n ' <path d=\"M7.6 8.15H2.25v4.525a1.125 1.125 0 0 1-2.25 0V1.125a1.125 1.125 0 1 1 2.25 0V5.9H7.6V1.125a1.125 1.125 0 0 1 2.25 0v11.55a1.125 1.125 0 0 1-2.25 0V8.15z\"/>\\n' +\n \"</svg>\",\n title: \"Heading\"\n };\n }\n}\n\nexport default Header;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,32 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _ui = _interopRequireDefault(require("./ui"));
|
|
11
|
-
var _tunes = _interopRequireDefault(require("./tunes"));
|
|
12
|
-
var _svgs = _interopRequireDefault(require("./svgs"));
|
|
13
|
-
var defaultGetFileSrc = function defaultGetFileSrc(file) {
|
|
1
|
+
import Ui from "./ui";
|
|
2
|
+
import Tunes from "./tunes";
|
|
3
|
+
import svgs from "./svgs";
|
|
4
|
+
const defaultGetFileSrc = file => {
|
|
14
5
|
if (typeof file === "string") {
|
|
15
6
|
return file;
|
|
16
7
|
}
|
|
17
8
|
return file.src;
|
|
18
9
|
};
|
|
19
|
-
|
|
10
|
+
const defaultOnSelectFile = file => {
|
|
20
11
|
return file.src;
|
|
21
12
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
13
|
+
export default class ImageTool {
|
|
14
|
+
/**
|
|
15
|
+
* Notify core that read-only mode is supported
|
|
16
|
+
*
|
|
17
|
+
* @returns {boolean}
|
|
18
|
+
*/
|
|
19
|
+
static get isReadOnlySupported() {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Get Tool toolbox settings
|
|
25
|
+
* icon - Tool icon's SVG
|
|
26
|
+
* title - title to show in toolbox
|
|
27
|
+
*
|
|
28
|
+
* @returns {{icon: string, title: string}}
|
|
29
|
+
*/
|
|
30
|
+
static get toolbox() {
|
|
31
|
+
return {
|
|
32
|
+
icon: svgs.toolbox,
|
|
33
|
+
title: "Image"
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
constructor({
|
|
37
|
+
data,
|
|
38
|
+
config,
|
|
39
|
+
api,
|
|
40
|
+
readOnly
|
|
41
|
+
}) {
|
|
30
42
|
this.api = api;
|
|
31
43
|
this.readOnly = readOnly;
|
|
32
44
|
this.config = {
|
|
@@ -39,26 +51,24 @@ var ImageTool = exports.default = /*#__PURE__*/function () {
|
|
|
39
51
|
/**
|
|
40
52
|
* Module for working with UI
|
|
41
53
|
*/
|
|
42
|
-
this.ui = new
|
|
43
|
-
api
|
|
54
|
+
this.ui = new Ui({
|
|
55
|
+
api,
|
|
44
56
|
config: this.config,
|
|
45
|
-
onSelectFile:
|
|
46
|
-
|
|
47
|
-
|
|
57
|
+
onSelectFile: () => {
|
|
58
|
+
this.config.context.showFileManager(file => {
|
|
59
|
+
this.image = this.config.onSelectFile(file);
|
|
48
60
|
});
|
|
49
61
|
},
|
|
50
|
-
readOnly
|
|
62
|
+
readOnly
|
|
51
63
|
});
|
|
52
64
|
|
|
53
65
|
/**
|
|
54
66
|
* Module for working with tunes
|
|
55
67
|
*/
|
|
56
|
-
this.tunes = new
|
|
57
|
-
api
|
|
68
|
+
this.tunes = new Tunes({
|
|
69
|
+
api,
|
|
58
70
|
actions: this.config.actions,
|
|
59
|
-
onChange:
|
|
60
|
-
return _this.tuneToggled(tuneName);
|
|
61
|
-
}
|
|
71
|
+
onChange: tuneName => this.tuneToggled(tuneName)
|
|
62
72
|
});
|
|
63
73
|
|
|
64
74
|
/**
|
|
@@ -75,163 +85,118 @@ var ImageTool = exports.default = /*#__PURE__*/function () {
|
|
|
75
85
|
*
|
|
76
86
|
* @returns {HTMLDivElement}
|
|
77
87
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
return this.ui.render(this.data);
|
|
82
|
-
}
|
|
88
|
+
render() {
|
|
89
|
+
return this.ui.render(this.data);
|
|
90
|
+
}
|
|
83
91
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
return this.data;
|
|
97
|
-
}
|
|
92
|
+
/**
|
|
93
|
+
* Return Block data
|
|
94
|
+
*
|
|
95
|
+
* @public
|
|
96
|
+
*
|
|
97
|
+
* @returns {ImageToolData}
|
|
98
|
+
*/
|
|
99
|
+
save() {
|
|
100
|
+
const caption = this.ui.nodes.caption;
|
|
101
|
+
this._data.caption = caption.innerHTML;
|
|
102
|
+
return this.data;
|
|
103
|
+
}
|
|
98
104
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
return this.tunes.render(this.data);
|
|
110
|
-
}
|
|
105
|
+
/**
|
|
106
|
+
* Makes buttons with tunes: stretch image
|
|
107
|
+
*
|
|
108
|
+
* @public
|
|
109
|
+
*
|
|
110
|
+
* @returns {Element}
|
|
111
|
+
*/
|
|
112
|
+
renderSettings() {
|
|
113
|
+
return this.tunes.render(this.data);
|
|
114
|
+
}
|
|
111
115
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Stores all Tool's data
|
|
118
|
+
*
|
|
119
|
+
* @private
|
|
120
|
+
*
|
|
121
|
+
* @param {ImageToolData} data - data in Image Tool format
|
|
122
|
+
*/
|
|
123
|
+
set data(data) {
|
|
124
|
+
this.image = data.file;
|
|
125
|
+
this._data.caption = data.caption || "";
|
|
126
|
+
this.ui.fillCaption(this._data.caption);
|
|
127
|
+
Tunes.tunes.forEach(({
|
|
128
|
+
name
|
|
129
|
+
}) => {
|
|
130
|
+
const tune = name;
|
|
131
|
+
const initialValue = data[tune];
|
|
132
|
+
const value = initialValue === true || initialValue === "true";
|
|
133
|
+
this.setTune(tune, value);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
132
136
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
this._data.caption = data.caption || "";
|
|
144
|
-
this.ui.fillCaption(this._data.caption);
|
|
145
|
-
_tunes.default.tunes.forEach(function (_ref2) {
|
|
146
|
-
var name = _ref2.name;
|
|
147
|
-
var tune = name;
|
|
148
|
-
var initialValue = data[tune];
|
|
149
|
-
var value = initialValue === true || initialValue === "true";
|
|
150
|
-
_this2.setTune(tune, value);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}, {
|
|
154
|
-
key: "image",
|
|
155
|
-
set: function set(file) {
|
|
156
|
-
this._data.file = file || {};
|
|
157
|
-
if (file) {
|
|
158
|
-
this.ui.fillImage(this.config.getFileSrc(file));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
137
|
+
/**
|
|
138
|
+
* Return Tool data
|
|
139
|
+
*
|
|
140
|
+
* @private
|
|
141
|
+
*
|
|
142
|
+
* @returns {ImageToolData}
|
|
143
|
+
*/
|
|
144
|
+
get data() {
|
|
145
|
+
return this._data;
|
|
146
|
+
}
|
|
161
147
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
// inverse tune state
|
|
174
|
-
this.setTune(tuneName, !this._data[tuneName]);
|
|
148
|
+
/**
|
|
149
|
+
* Set new image file
|
|
150
|
+
*
|
|
151
|
+
* @private
|
|
152
|
+
*
|
|
153
|
+
* @param {object} file - uploaded file data
|
|
154
|
+
*/
|
|
155
|
+
set image(file) {
|
|
156
|
+
this._data.file = file || {};
|
|
157
|
+
if (file) {
|
|
158
|
+
this.ui.fillImage(this.config.getFileSrc(file));
|
|
175
159
|
}
|
|
160
|
+
}
|
|
176
161
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
this.ui.applyTune(tuneName, value);
|
|
190
|
-
if (tuneName === "stretched") {
|
|
191
|
-
/**
|
|
192
|
-
* Wait until the API is ready
|
|
193
|
-
*/
|
|
194
|
-
Promise.resolve().then(function () {
|
|
195
|
-
var blockId = _this3.api.blocks.getCurrentBlockIndex();
|
|
196
|
-
_this3.api.blocks.stretchBlock(blockId, value);
|
|
197
|
-
}).catch(function (err) {
|
|
198
|
-
console.error(err);
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}, {
|
|
203
|
-
key: "isReadOnly",
|
|
204
|
-
value: function isReadOnly() {
|
|
205
|
-
return this.readOnly;
|
|
206
|
-
}
|
|
207
|
-
}], [{
|
|
208
|
-
key: "isReadOnlySupported",
|
|
209
|
-
get:
|
|
210
|
-
/**
|
|
211
|
-
* Notify core that read-only mode is supported
|
|
212
|
-
*
|
|
213
|
-
* @returns {boolean}
|
|
214
|
-
*/
|
|
215
|
-
function get() {
|
|
216
|
-
return true;
|
|
217
|
-
}
|
|
162
|
+
/**
|
|
163
|
+
* Callback fired when Block Tune is activated
|
|
164
|
+
*
|
|
165
|
+
* @private
|
|
166
|
+
*
|
|
167
|
+
* @param {string} tuneName - tune that has been clicked
|
|
168
|
+
* @returns {void}
|
|
169
|
+
*/
|
|
170
|
+
tuneToggled(tuneName) {
|
|
171
|
+
// inverse tune state
|
|
172
|
+
this.setTune(tuneName, !this._data[tuneName]);
|
|
173
|
+
}
|
|
218
174
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
175
|
+
/**
|
|
176
|
+
* Set one tune
|
|
177
|
+
*
|
|
178
|
+
* @param {string} tuneName - {@link Tunes.tunes}
|
|
179
|
+
* @param {boolean} value - tune state
|
|
180
|
+
* @returns {void}
|
|
181
|
+
*/
|
|
182
|
+
setTune(tuneName, value) {
|
|
183
|
+
this._data[tuneName] = value;
|
|
184
|
+
this.ui.applyTune(tuneName, value);
|
|
185
|
+
if (tuneName === "stretched") {
|
|
186
|
+
/**
|
|
187
|
+
* Wait until the API is ready
|
|
188
|
+
*/
|
|
189
|
+
Promise.resolve().then(() => {
|
|
190
|
+
const blockId = this.api.blocks.getCurrentBlockIndex();
|
|
191
|
+
this.api.blocks.stretchBlock(blockId, value);
|
|
192
|
+
}).catch(err => {
|
|
193
|
+
console.error(err);
|
|
194
|
+
});
|
|
233
195
|
}
|
|
234
|
-
}
|
|
235
|
-
|
|
196
|
+
}
|
|
197
|
+
isReadOnly() {
|
|
198
|
+
return this.readOnly;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
236
201
|
|
|
237
202
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ui","_interopRequireDefault","require","_tunes","_svgs","defaultGetFileSrc","file","src","defaultOnSelectFile","ImageTool","exports","default","_ref","_this","data","config","api","readOnly","_classCallCheck2","getFileSrc","onSelectFile","actions","context","ui","Ui","showFileManager","image","tunes","Tunes","onChange","tuneName","tuneToggled","_data","_createClass2","key","value","render","save","caption","nodes","innerHTML","renderSettings","get","set","_this2","fillCaption","forEach","_ref2","name","tune","initialValue","setTune","fillImage","_this3","applyTune","Promise","resolve","then","blockId","blocks","getCurrentBlockIndex","stretchBlock","catch","err","console","error","isReadOnly","icon","svgs","toolbox","title"],"sources":["index.ts"],"sourcesContent":["import { API } from \"@editorjs/editorjs\";\nimport Ui from \"./ui\";\nimport Tunes from \"./tunes\";\nimport svgs from \"./svgs\";\nimport { Tune } from \"./types\";\n\ninterface File {\n src: string;\n}\ninterface GetFileSourceCallable {\n (file: File | string): string;\n}\nconst defaultGetFileSrc: GetFileSourceCallable = file => {\n if (typeof file === \"string\") {\n return file;\n }\n\n return file.src;\n};\ninterface OnSelectFileCallable {\n (file: File): string;\n}\nconst defaultOnSelectFile: OnSelectFileCallable = file => {\n return file.src;\n};\n\ninterface ImageToolData {\n caption: string;\n file: string;\n}\ninterface ImageToolParams {\n data: ImageToolData;\n config: Config;\n api: API;\n readOnly: boolean;\n}\ninterface Config {\n getFileSrc: GetFileSourceCallable;\n onSelectFile: OnSelectFileCallable;\n actions: Tune[];\n context: {\n showFileManager: (cb: (file: File) => void) => void;\n };\n}\nexport default class ImageTool {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly config: Config;\n private readonly tunes: Tunes;\n private readonly ui: Ui;\n private readonly _data: any;\n\n /**\n * Notify core that read-only mode is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon: svgs.toolbox,\n title: \"Image\"\n };\n }\n\n constructor({ data, config, api, readOnly }: ImageToolParams) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.config = {\n getFileSrc: config.getFileSrc || defaultGetFileSrc,\n onSelectFile: config.onSelectFile || defaultOnSelectFile,\n actions: config.actions || [],\n context: config.context\n };\n\n /**\n * Module for working with UI\n */\n this.ui = new Ui({\n api,\n config: this.config,\n onSelectFile: () => {\n this.config.context.showFileManager((file: File) => {\n this.image = this.config.onSelectFile(file);\n });\n },\n readOnly\n });\n\n /**\n * Module for working with tunes\n */\n this.tunes = new Tunes({\n api,\n actions: this.config.actions,\n onChange: (tuneName: string) => this.tuneToggled(tuneName)\n });\n\n /**\n * Set saved state\n */\n this._data = {};\n this.data = data;\n }\n\n /**\n * Renders Block content\n *\n * @public\n *\n * @returns {HTMLDivElement}\n */\n render() {\n return this.ui.render(this.data);\n }\n\n /**\n * Return Block data\n *\n * @public\n *\n * @returns {ImageToolData}\n */\n save() {\n const caption = this.ui.nodes.caption;\n\n this._data.caption = caption.innerHTML;\n\n return this.data;\n }\n\n /**\n * Makes buttons with tunes: stretch image\n *\n * @public\n *\n * @returns {Element}\n */\n renderSettings() {\n return this.tunes.render(this.data);\n }\n\n /**\n * Stores all Tool's data\n *\n * @private\n *\n * @param {ImageToolData} data - data in Image Tool format\n */\n set data(data) {\n this.image = data.file;\n\n this._data.caption = data.caption || \"\";\n this.ui.fillCaption(this._data.caption);\n\n Tunes.tunes.forEach(({ name }) => {\n const tune = name as keyof ImageToolData;\n\n const initialValue = data[tune] as unknown as string | boolean;\n\n const value = initialValue === true || initialValue === \"true\";\n\n this.setTune(tune, value);\n });\n }\n\n /**\n * Return Tool data\n *\n * @private\n *\n * @returns {ImageToolData}\n */\n get data(): ImageToolData {\n return this._data;\n }\n\n /**\n * Set new image file\n *\n * @private\n *\n * @param {object} file - uploaded file data\n */\n set image(file: File | string) {\n this._data.file = file || {};\n\n if (file) {\n this.ui.fillImage(this.config.getFileSrc(file));\n }\n }\n\n /**\n * Callback fired when Block Tune is activated\n *\n * @private\n *\n * @param {string} tuneName - tune that has been clicked\n * @returns {void}\n */\n public tuneToggled(tuneName: string): void {\n // inverse tune state\n this.setTune(tuneName, !this._data[tuneName]);\n }\n\n /**\n * Set one tune\n *\n * @param {string} tuneName - {@link Tunes.tunes}\n * @param {boolean} value - tune state\n * @returns {void}\n */\n public setTune(tuneName: string, value: boolean): void {\n this._data[tuneName] = value;\n\n this.ui.applyTune(tuneName, value);\n\n if (tuneName === \"stretched\") {\n /**\n * Wait until the API is ready\n */\n Promise.resolve()\n .then(() => {\n const blockId = this.api.blocks.getCurrentBlockIndex();\n\n this.api.blocks.stretchBlock(blockId, value);\n })\n .catch(err => {\n console.error(err);\n });\n }\n }\n\n public isReadOnly(): boolean {\n return this.readOnly;\n }\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AASA,IAAMG,iBAAwC,GAAG,SAA3CA,iBAAwCA,CAAGC,IAAI,EAAI;EACrD,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC1B,OAAOA,IAAI;EACf;EAEA,OAAOA,IAAI,CAACC,GAAG;AACnB,CAAC;AAID,IAAMC,mBAAyC,GAAG,SAA5CA,mBAAyCA,CAAGF,IAAI,EAAI;EACtD,OAAOA,IAAI,CAACC,GAAG;AACnB,CAAC;AAAC,IAoBmBE,SAAS,GAAAC,OAAA,CAAAC,OAAA;EA+B1B,SAAAF,UAAAG,IAAA,EAA8D;IAAA,IAAAC,KAAA;IAAA,IAAhDC,IAAI,GAAAF,IAAA,CAAJE,IAAI;MAAEC,MAAM,GAAAH,IAAA,CAANG,MAAM;MAAEC,GAAG,GAAAJ,IAAA,CAAHI,GAAG;MAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IAAA,IAAAC,gBAAA,CAAAP,OAAA,QAAAF,SAAA;IACrC,IAAI,CAACO,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IAExB,IAAI,CAACF,MAAM,GAAG;MACVI,UAAU,EAAEJ,MAAM,CAACI,UAAU,IAAId,iBAAiB;MAClDe,YAAY,EAAEL,MAAM,CAACK,YAAY,IAAIZ,mBAAmB;MACxDa,OAAO,EAAEN,MAAM,CAACM,OAAO,IAAI,EAAE;MAC7BC,OAAO,EAAEP,MAAM,CAACO;IACpB,CAAC;;IAED;AACR;AACA;IACQ,IAAI,CAACC,EAAE,GAAG,IAAIC,WAAE,CAAC;MACbR,GAAG,EAAHA,GAAG;MACHD,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBK,YAAY,EAAE,SAAdA,YAAYA,CAAA,EAAQ;QAChBP,KAAI,CAACE,MAAM,CAACO,OAAO,CAACG,eAAe,CAAC,UAACnB,IAAU,EAAK;UAChDO,KAAI,CAACa,KAAK,GAAGb,KAAI,CAACE,MAAM,CAACK,YAAY,CAACd,IAAI,CAAC;QAC/C,CAAC,CAAC;MACN,CAAC;MACDW,QAAQ,EAARA;IACJ,CAAC,CAAC;;IAEF;AACR;AACA;IACQ,IAAI,CAACU,KAAK,GAAG,IAAIC,cAAK,CAAC;MACnBZ,GAAG,EAAHA,GAAG;MACHK,OAAO,EAAE,IAAI,CAACN,MAAM,CAACM,OAAO;MAC5BQ,QAAQ,EAAE,SAAVA,QAAQA,CAAGC,QAAgB;QAAA,OAAKjB,KAAI,CAACkB,WAAW,CAACD,QAAQ,CAAC;MAAA;IAC9D,CAAC,CAAC;;IAEF;AACR;AACA;IACQ,IAAI,CAACE,KAAK,GAAG,CAAC,CAAC;IACf,IAAI,CAAClB,IAAI,GAAGA,IAAI;EACpB;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI,WAAAmB,aAAA,CAAAtB,OAAA,EAAAF,SAAA;IAAAyB,GAAA;IAAAC,KAAA,EAOA,SAAAC,MAAMA,CAAA,EAAG;MACL,OAAO,IAAI,CAACb,EAAE,CAACa,MAAM,CAAC,IAAI,CAACtB,IAAI,CAAC;IACpC;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAoB,GAAA;IAAAC,KAAA,EAOA,SAAAE,IAAIA,CAAA,EAAG;MACH,IAAMC,OAAO,GAAG,IAAI,CAACf,EAAE,CAACgB,KAAK,CAACD,OAAO;MAErC,IAAI,CAACN,KAAK,CAACM,OAAO,GAAGA,OAAO,CAACE,SAAS;MAEtC,OAAO,IAAI,CAAC1B,IAAI;IACpB;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAoB,GAAA;IAAAC,KAAA,EAOA,SAAAM,cAAcA,CAAA,EAAG;MACb,OAAO,IAAI,CAACd,KAAK,CAACS,MAAM,CAAC,IAAI,CAACtB,IAAI,CAAC;IACvC;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAoB,GAAA;IAAAQ,GAAA;IAwBA;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,SAAAA,IAAA,EAA0B;MACtB,OAAO,IAAI,CAACV,KAAK;IACrB;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA,OANI;IAAAW,GAAA,EA5BA,SAAAA,IAAS7B,IAAI,EAAE;MAAA,IAAA8B,MAAA;MACX,IAAI,CAAClB,KAAK,GAAGZ,IAAI,CAACR,IAAI;MAEtB,IAAI,CAAC0B,KAAK,CAACM,OAAO,GAAGxB,IAAI,CAACwB,OAAO,IAAI,EAAE;MACvC,IAAI,CAACf,EAAE,CAACsB,WAAW,CAAC,IAAI,CAACb,KAAK,CAACM,OAAO,CAAC;MAEvCV,cAAK,CAACD,KAAK,CAACmB,OAAO,CAAC,UAAAC,KAAA,EAAc;QAAA,IAAXC,IAAI,GAAAD,KAAA,CAAJC,IAAI;QACvB,IAAMC,IAAI,GAAGD,IAA2B;QAExC,IAAME,YAAY,GAAGpC,IAAI,CAACmC,IAAI,CAAgC;QAE9D,IAAMd,KAAK,GAAGe,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,MAAM;QAE9DN,MAAI,CAACO,OAAO,CAACF,IAAI,EAAEd,KAAK,CAAC;MAC7B,CAAC,CAAC;IACN;EAAC;IAAAD,GAAA;IAAAS,GAAA,EAoBD,SAAAA,IAAUrC,IAAmB,EAAE;MAC3B,IAAI,CAAC0B,KAAK,CAAC1B,IAAI,GAAGA,IAAI,IAAI,CAAC,CAAC;MAE5B,IAAIA,IAAI,EAAE;QACN,IAAI,CAACiB,EAAE,CAAC6B,SAAS,CAAC,IAAI,CAACrC,MAAM,CAACI,UAAU,CAACb,IAAI,CAAC,CAAC;MACnD;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAA4B,GAAA;IAAAC,KAAA,EAQA,SAAOJ,WAAWA,CAACD,QAAgB,EAAQ;MACvC;MACA,IAAI,CAACqB,OAAO,CAACrB,QAAQ,EAAE,CAAC,IAAI,CAACE,KAAK,CAACF,QAAQ,CAAC,CAAC;IACjD;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAI,GAAA;IAAAC,KAAA,EAOA,SAAOgB,OAAOA,CAACrB,QAAgB,EAAEK,KAAc,EAAQ;MAAA,IAAAkB,MAAA;MACnD,IAAI,CAACrB,KAAK,CAACF,QAAQ,CAAC,GAAGK,KAAK;MAE5B,IAAI,CAACZ,EAAE,CAAC+B,SAAS,CAACxB,QAAQ,EAAEK,KAAK,CAAC;MAElC,IAAIL,QAAQ,KAAK,WAAW,EAAE;QAC1B;AACZ;AACA;QACYyB,OAAO,CAACC,OAAO,CAAC,CAAC,CACZC,IAAI,CAAC,YAAM;UACR,IAAMC,OAAO,GAAGL,MAAI,CAACrC,GAAG,CAAC2C,MAAM,CAACC,oBAAoB,CAAC,CAAC;UAEtDP,MAAI,CAACrC,GAAG,CAAC2C,MAAM,CAACE,YAAY,CAACH,OAAO,EAAEvB,KAAK,CAAC;QAChD,CAAC,CAAC,CACD2B,KAAK,CAAC,UAAAC,GAAG,EAAI;UACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;QACtB,CAAC,CAAC;MACV;IACJ;EAAC;IAAA7B,GAAA;IAAAC,KAAA,EAED,SAAO+B,UAAUA,CAAA,EAAY;MACzB,OAAO,IAAI,CAACjD,QAAQ;IACxB;EAAC;IAAAiB,GAAA;IAAAQ,GAAA;IAlMD;AACJ;AACA;AACA;AACA;IACI,SAAAA,IAAA,EAAiC;MAC7B,OAAO,IAAI;IACf;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAR,GAAA;IAAAQ,GAAA,EAOA,SAAAA,IAAA,EAAqB;MACjB,OAAO;QACHyB,IAAI,EAAEC,aAAI,CAACC,OAAO;QAClBC,KAAK,EAAE;MACX,CAAC;IACL;EAAC;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Ui","Tunes","svgs","defaultGetFileSrc","file","src","defaultOnSelectFile","ImageTool","isReadOnlySupported","toolbox","icon","title","constructor","data","config","api","readOnly","getFileSrc","onSelectFile","actions","context","ui","showFileManager","image","tunes","onChange","tuneName","tuneToggled","_data","render","save","caption","nodes","innerHTML","renderSettings","fillCaption","forEach","name","tune","initialValue","value","setTune","fillImage","applyTune","Promise","resolve","then","blockId","blocks","getCurrentBlockIndex","stretchBlock","catch","err","console","error","isReadOnly"],"sources":["index.ts"],"sourcesContent":["import { API } from \"@editorjs/editorjs\";\nimport Ui from \"./ui\";\nimport Tunes from \"./tunes\";\nimport svgs from \"./svgs\";\nimport { Tune } from \"./types\";\n\ninterface File {\n src: string;\n}\ninterface GetFileSourceCallable {\n (file: File | string): string;\n}\nconst defaultGetFileSrc: GetFileSourceCallable = file => {\n if (typeof file === \"string\") {\n return file;\n }\n\n return file.src;\n};\ninterface OnSelectFileCallable {\n (file: File): string;\n}\nconst defaultOnSelectFile: OnSelectFileCallable = file => {\n return file.src;\n};\n\ninterface ImageToolData {\n caption: string;\n file: string;\n}\ninterface ImageToolParams {\n data: ImageToolData;\n config: Config;\n api: API;\n readOnly: boolean;\n}\ninterface Config {\n getFileSrc: GetFileSourceCallable;\n onSelectFile: OnSelectFileCallable;\n actions: Tune[];\n context: {\n showFileManager: (cb: (file: File) => void) => void;\n };\n}\nexport default class ImageTool {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly config: Config;\n private readonly tunes: Tunes;\n private readonly ui: Ui;\n private readonly _data: any;\n\n /**\n * Notify core that read-only mode is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon: svgs.toolbox,\n title: \"Image\"\n };\n }\n\n constructor({ data, config, api, readOnly }: ImageToolParams) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.config = {\n getFileSrc: config.getFileSrc || defaultGetFileSrc,\n onSelectFile: config.onSelectFile || defaultOnSelectFile,\n actions: config.actions || [],\n context: config.context\n };\n\n /**\n * Module for working with UI\n */\n this.ui = new Ui({\n api,\n config: this.config,\n onSelectFile: () => {\n this.config.context.showFileManager((file: File) => {\n this.image = this.config.onSelectFile(file);\n });\n },\n readOnly\n });\n\n /**\n * Module for working with tunes\n */\n this.tunes = new Tunes({\n api,\n actions: this.config.actions,\n onChange: (tuneName: string) => this.tuneToggled(tuneName)\n });\n\n /**\n * Set saved state\n */\n this._data = {};\n this.data = data;\n }\n\n /**\n * Renders Block content\n *\n * @public\n *\n * @returns {HTMLDivElement}\n */\n render() {\n return this.ui.render(this.data);\n }\n\n /**\n * Return Block data\n *\n * @public\n *\n * @returns {ImageToolData}\n */\n save() {\n const caption = this.ui.nodes.caption;\n\n this._data.caption = caption.innerHTML;\n\n return this.data;\n }\n\n /**\n * Makes buttons with tunes: stretch image\n *\n * @public\n *\n * @returns {Element}\n */\n renderSettings() {\n return this.tunes.render(this.data);\n }\n\n /**\n * Stores all Tool's data\n *\n * @private\n *\n * @param {ImageToolData} data - data in Image Tool format\n */\n set data(data) {\n this.image = data.file;\n\n this._data.caption = data.caption || \"\";\n this.ui.fillCaption(this._data.caption);\n\n Tunes.tunes.forEach(({ name }) => {\n const tune = name as keyof ImageToolData;\n\n const initialValue = data[tune] as unknown as string | boolean;\n\n const value = initialValue === true || initialValue === \"true\";\n\n this.setTune(tune, value);\n });\n }\n\n /**\n * Return Tool data\n *\n * @private\n *\n * @returns {ImageToolData}\n */\n get data(): ImageToolData {\n return this._data;\n }\n\n /**\n * Set new image file\n *\n * @private\n *\n * @param {object} file - uploaded file data\n */\n set image(file: File | string) {\n this._data.file = file || {};\n\n if (file) {\n this.ui.fillImage(this.config.getFileSrc(file));\n }\n }\n\n /**\n * Callback fired when Block Tune is activated\n *\n * @private\n *\n * @param {string} tuneName - tune that has been clicked\n * @returns {void}\n */\n public tuneToggled(tuneName: string): void {\n // inverse tune state\n this.setTune(tuneName, !this._data[tuneName]);\n }\n\n /**\n * Set one tune\n *\n * @param {string} tuneName - {@link Tunes.tunes}\n * @param {boolean} value - tune state\n * @returns {void}\n */\n public setTune(tuneName: string, value: boolean): void {\n this._data[tuneName] = value;\n\n this.ui.applyTune(tuneName, value);\n\n if (tuneName === \"stretched\") {\n /**\n * Wait until the API is ready\n */\n Promise.resolve()\n .then(() => {\n const blockId = this.api.blocks.getCurrentBlockIndex();\n\n this.api.blocks.stretchBlock(blockId, value);\n })\n .catch(err => {\n console.error(err);\n });\n }\n }\n\n public isReadOnly(): boolean {\n return this.readOnly;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|