@webiny/app-admin 5.40.0-beta.1 → 5.40.0-beta.3
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.d.ts +1 -1
- package/base/Admin.js +7 -4
- package/base/Admin.js.map +1 -1
- package/base/Base.d.ts +1 -1
- package/base/Base.js +7 -2
- package/base/Base.js.map +1 -1
- package/base/Version.d.ts +3 -0
- package/base/Version.js +56 -0
- package/base/Version.js.map +1 -0
- package/base/plugins/AddGraphQLQuerySelection.js +1 -2
- package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
- package/base/providers/ApolloProvider.d.ts +1 -1
- package/base/providers/ApolloProvider.js +1 -2
- package/base/providers/ApolloProvider.js.map +1 -1
- package/base/providers/TelemetryProvider.d.ts +2 -1
- package/base/providers/TelemetryProvider.js +2 -3
- package/base/providers/TelemetryProvider.js.map +1 -1
- package/base/providers/UiStateProvider.d.ts +2 -1
- package/base/providers/UiStateProvider.js +1 -2
- package/base/providers/UiStateProvider.js.map +1 -1
- package/base/providers/ViewCompositionProvider.d.ts +2 -1
- package/base/providers/ViewCompositionProvider.js +1 -2
- package/base/providers/ViewCompositionProvider.js.map +1 -1
- package/base/ui/Brand.d.ts +5 -3
- package/base/ui/Brand.js +2 -4
- package/base/ui/Brand.js.map +1 -1
- package/base/ui/CenteredView.d.ts +2 -1
- package/base/ui/CenteredView.js +20 -11
- package/base/ui/CenteredView.js.map +1 -1
- package/base/ui/Dashboard.d.ts +5 -3
- package/base/ui/Dashboard.js +2 -4
- package/base/ui/Dashboard.js.map +1 -1
- package/base/ui/FileManager.d.ts +3 -2
- package/base/ui/FileManager.js +3 -6
- package/base/ui/FileManager.js.map +1 -1
- package/base/ui/Layout.d.ts +4 -2
- package/base/ui/Layout.js +2 -4
- package/base/ui/Layout.js.map +1 -1
- package/base/ui/LocaleSelector.d.ts +5 -3
- package/base/ui/LocaleSelector.js +2 -4
- package/base/ui/LocaleSelector.js.map +1 -1
- package/base/ui/LoginScreen.d.ts +3 -2
- package/base/ui/LoginScreen.js +2 -4
- package/base/ui/LoginScreen.js.map +1 -1
- package/base/ui/Logo.d.ts +6 -4
- package/base/ui/Logo.js +3 -6
- package/base/ui/Logo.js.map +1 -1
- package/base/ui/Menu.d.ts +9 -6
- package/base/ui/Menu.js +3 -8
- package/base/ui/Menu.js.map +1 -1
- package/base/ui/Navigation.d.ts +16 -6
- package/base/ui/Navigation.js +7 -13
- package/base/ui/Navigation.js.map +1 -1
- package/base/ui/NotFound.d.ts +5 -3
- package/base/ui/NotFound.js +2 -4
- package/base/ui/NotFound.js.map +1 -1
- package/base/ui/Search.d.ts +6 -3
- package/base/ui/Search.js +4 -8
- package/base/ui/Search.js.map +1 -1
- package/base/ui/Tags.d.ts +1 -1
- package/base/ui/Tags.js +2 -4
- package/base/ui/Tags.js.map +1 -1
- package/base/ui/UserMenu.d.ts +16 -8
- package/base/ui/UserMenu.js +9 -18
- package/base/ui/UserMenu.js.map +1 -1
- package/components/AdminLayout.d.ts +1 -1
- package/components/AdminLayout.js +1 -2
- package/components/AdminLayout.js.map +1 -1
- package/components/AppInstaller/AppInstaller.d.ts +1 -1
- package/components/AppInstaller/AppInstaller.js +5 -3
- package/components/AppInstaller/AppInstaller.js.map +1 -1
- package/components/AppInstaller/Sidebar.d.ts +2 -2
- package/components/AppInstaller/Sidebar.js +39 -58
- package/components/AppInstaller/Sidebar.js.map +1 -1
- package/components/AppInstaller/index.d.ts +2 -2
- package/components/AppInstaller/index.js +1 -2
- package/components/AppInstaller/index.js.map +1 -1
- package/components/AppInstaller/styled.d.ts +4 -4
- package/components/AppInstaller/styled.js +54 -61
- package/components/AppInstaller/styled.js.map +1 -1
- package/components/AppInstaller/useInstaller.js +1 -2
- package/components/AppInstaller/useInstaller.js.map +1 -1
- package/components/BulkActions/Worker.d.ts +2 -1
- package/components/BulkActions/Worker.js +4 -8
- package/components/BulkActions/Worker.js.map +1 -1
- package/components/BulkActions/index.js.map +1 -1
- package/components/BulkActions/useDialogWithReport/DialogMessage.d.ts +2 -2
- package/components/BulkActions/useDialogWithReport/DialogMessage.js +5 -4
- package/components/BulkActions/useDialogWithReport/DialogMessage.js.map +1 -1
- package/components/BulkActions/useDialogWithReport/index.js.map +1 -1
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.d.ts +2 -0
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.js +10 -3
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -1
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.d.ts +1 -1
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.js +35 -15
- package/components/BulkActions/useDialogWithReport/useDialogWithReport.styled.js.map +1 -1
- package/components/Buttons/Buttons.d.ts +5 -5
- package/components/Buttons/Buttons.js +5 -10
- package/components/Buttons/Buttons.js.map +1 -1
- package/components/Buttons/Buttons.styles.d.ts +1 -1
- package/components/Buttons/Buttons.styles.js +15 -5
- package/components/Buttons/Buttons.styles.js.map +1 -1
- package/components/Buttons/index.js.map +1 -1
- package/components/Buttons/useButtons.d.ts +1 -1
- package/components/Buttons/useButtons.js +2 -4
- package/components/Buttons/useButtons.js.map +1 -1
- package/components/Dialogs/CustomDialog.d.ts +17 -0
- package/components/Dialogs/CustomDialog.js +55 -0
- package/components/Dialogs/CustomDialog.js.map +1 -0
- package/components/Dialogs/Dialog.d.ts +15 -0
- package/components/Dialogs/Dialog.js +45 -0
- package/components/Dialogs/Dialog.js.map +1 -0
- package/components/Dialogs/DialogsContext.d.ts +43 -0
- package/components/Dialogs/DialogsContext.js +121 -0
- package/components/Dialogs/DialogsContext.js.map +1 -0
- package/components/Dialogs/styled.d.ts +10 -0
- package/components/Dialogs/styled.js +40 -0
- package/components/Dialogs/styled.js.map +1 -0
- package/components/Dialogs/useDialogs.d.ts +3 -0
- package/components/Dialogs/useDialogs.js +24 -0
- package/components/Dialogs/useDialogs.js.map +1 -0
- package/components/EmptyView.d.ts +2 -2
- package/components/EmptyView.js +14 -33
- package/components/EmptyView.js.map +1 -1
- package/components/Filters/Filters.d.ts +1 -1
- package/components/Filters/Filters.js +1 -2
- package/components/Filters/Filters.js.map +1 -1
- package/components/Filters/Filters.styled.d.ts +3 -3
- package/components/Filters/Filters.styled.js +43 -15
- package/components/Filters/Filters.styled.js.map +1 -1
- package/components/Filters/index.js.map +1 -1
- package/components/FloatingActionButton.d.ts +1 -1
- package/components/FloatingActionButton.js +1 -2
- package/components/FloatingActionButton.js.map +1 -1
- package/components/LexicalEditor/LexicalEditor.d.ts +2 -2
- package/components/LexicalEditor/LexicalEditor.js +1 -2
- package/components/LexicalEditor/LexicalEditor.js.map +1 -1
- package/components/LexicalEditor/index.js.map +1 -1
- package/components/MultiImageUpload.d.ts +2 -2
- package/components/MultiImageUpload.js +1 -2
- package/components/MultiImageUpload.js.map +1 -1
- package/components/OptionsMenu/OptionsMenu.d.ts +1 -1
- package/components/OptionsMenu/OptionsMenu.js +1 -2
- package/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/components/OptionsMenu/OptionsMenu.styled.d.ts +3 -34
- package/components/OptionsMenu/OptionsMenu.styled.js +15 -5
- package/components/OptionsMenu/OptionsMenu.styled.js.map +1 -1
- package/components/OptionsMenu/OptionsMenuItem.d.ts +1 -1
- package/components/OptionsMenu/OptionsMenuItem.js +1 -2
- package/components/OptionsMenu/OptionsMenuItem.js.map +1 -1
- package/components/OptionsMenu/OptionsMenuLink.d.ts +1 -1
- package/components/OptionsMenu/OptionsMenuLink.js +1 -2
- package/components/OptionsMenu/OptionsMenuLink.js.map +1 -1
- package/components/OptionsMenu/index.js.map +1 -1
- package/components/OptionsMenu/useOptionsMenuItem.d.ts +1 -1
- package/components/OptionsMenu/useOptionsMenuItem.js +2 -4
- package/components/OptionsMenu/useOptionsMenuItem.js.map +1 -1
- package/components/OverlayLayout/OverlayLayout.d.ts +1 -1
- package/components/OverlayLayout/OverlayLayout.js +21 -27
- package/components/OverlayLayout/OverlayLayout.js.map +1 -1
- package/components/OverlayLayout/index.js.map +1 -1
- package/components/Permissions/CannotUseAaclAlert.d.ts +2 -2
- package/components/Permissions/CannotUseAaclAlert.js +1 -2
- package/components/Permissions/CannotUseAaclAlert.js.map +1 -1
- package/components/Permissions/Permissions.d.ts +2 -2
- package/components/Permissions/Permissions.js +1 -2
- package/components/Permissions/Permissions.js.map +1 -1
- package/components/Permissions/StyledComponents.d.ts +2 -2
- package/components/Permissions/StyledComponents.js +5 -8
- package/components/Permissions/StyledComponents.js.map +1 -1
- package/components/Permissions/index.js.map +1 -1
- package/components/RichTextEditor/RichTextEditor.d.ts +2 -2
- package/components/RichTextEditor/RichTextEditor.js +1 -2
- package/components/RichTextEditor/RichTextEditor.js.map +1 -1
- package/components/RichTextEditor/index.js.map +1 -1
- package/components/RichTextEditor/tools/header/index.js +2 -4
- package/components/RichTextEditor/tools/header/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/index.js +2 -4
- package/components/RichTextEditor/tools/image/index.js.map +1 -1
- package/components/RichTextEditor/tools/image/svgs.js +1 -2
- package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
- package/components/RichTextEditor/tools/image/tunes.js +2 -4
- package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
- package/components/RichTextEditor/tools/image/types.js.map +1 -1
- package/components/RichTextEditor/tools/image/ui.js +3 -6
- package/components/RichTextEditor/tools/image/ui.js.map +1 -1
- package/components/RichTextEditor/tools/paragraph/index.js +2 -4
- package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
- package/components/RichTextEditor/tools/textColor/index.js +2 -4
- package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
- package/components/RichTextEditor/tools/utils.js +3 -6
- package/components/RichTextEditor/tools/utils.js.map +1 -1
- package/components/Routes.d.ts +2 -2
- package/components/Routes.js +1 -2
- package/components/Routes.js.map +1 -1
- package/components/SearchUI.d.ts +2 -2
- package/components/SearchUI.js +15 -36
- package/components/SearchUI.js.map +1 -1
- package/components/SimpleForm/SimpleForm.d.ts +3 -3
- package/components/SimpleForm/SimpleForm.js +28 -22
- package/components/SimpleForm/SimpleForm.js.map +1 -1
- package/components/SimpleForm/index.js.map +1 -1
- package/components/SimpleUI/InputField.d.ts +3 -2
- package/components/SimpleUI/InputField.js +5 -6
- package/components/SimpleUI/InputField.js.map +1 -1
- package/components/SingleImageUpload.d.ts +1 -1
- package/components/SingleImageUpload.js +18 -22
- package/components/SingleImageUpload.js.map +1 -1
- package/components/SplitView/SplitView.d.ts +3 -3
- package/components/SplitView/SplitView.js +24 -21
- package/components/SplitView/SplitView.js.map +1 -1
- package/components/SplitView/index.js.map +1 -1
- package/components/Wcp.d.ts +1 -1
- package/components/Wcp.js +1 -2
- package/components/Wcp.js.map +1 -1
- package/components/index.js.map +1 -1
- package/hooks/createGenericContext.d.ts +1 -1
- package/hooks/createGenericContext.js.map +1 -1
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +22 -0
- package/hooks/index.js.map +1 -1
- package/hooks/useConfirmationDialog.js +1 -2
- package/hooks/useConfirmationDialog.js.map +1 -1
- package/hooks/useDialog.js +1 -2
- package/hooks/useDialog.js.map +1 -1
- package/hooks/useIsMounted.js +1 -2
- package/hooks/useIsMounted.js.map +1 -1
- package/hooks/useKeyHandler.js.map +1 -1
- package/hooks/useModKey.js.map +1 -1
- package/hooks/useShiftKey.js.map +1 -1
- package/hooks/useSnackbar.js +1 -2
- package/hooks/useSnackbar.js.map +1 -1
- package/hooks/useStateIfMounted.js.map +1 -1
- package/hooks/useStateWithCallback.d.ts +5 -0
- package/hooks/useStateWithCallback.js +31 -0
- package/hooks/useStateWithCallback.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +20 -0
- package/index.js.map +1 -1
- package/package.json +33 -31
- package/plugins/MenuPlugin.js +5 -8
- package/plugins/MenuPlugin.js.map +1 -1
- package/plugins/PermissionRendererPlugin.js +5 -8
- package/plugins/PermissionRendererPlugin.js.map +1 -1
- package/plugins/globalSearch/SearchBar.d.ts +3 -2
- package/plugins/globalSearch/SearchBar.js +11 -15
- package/plugins/globalSearch/SearchBar.js.map +1 -1
- package/plugins/globalSearch/SearchBarDropdown.d.ts +1 -1
- package/plugins/globalSearch/SearchBarDropdown.js +5 -8
- package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
- package/plugins/globalSearch/index.js +1 -2
- package/plugins/globalSearch/index.js.map +1 -1
- package/plugins/globalSearch/styled.d.ts +3 -3
- package/plugins/globalSearch/styled.js +49 -46
- package/plugins/globalSearch/styled.js.map +1 -1
- package/plugins/uiLayoutRenderer/index.js +1 -2
- package/plugins/uiLayoutRenderer/index.js.map +1 -1
- package/styles/material-theme-assignments.scss +62 -43
- package/styles/material.scss +0 -1
- package/styles/reset.scss +1 -0
- package/styles.scss +1 -0
- package/types.d.ts +3 -0
- package/types.js.map +1 -1
- package/ui/UIElement.js.map +1 -1
- package/ui/UILayout.js.map +1 -1
- package/ui/UIRenderer.js.map +1 -1
- package/ui/UIView.js.map +1 -1
- package/ui/elements/AccordionElement.js +9 -15
- package/ui/elements/AccordionElement.js.map +1 -1
- package/ui/elements/ButtonElement.js +5 -8
- package/ui/elements/ButtonElement.js.map +1 -1
- package/ui/elements/ButtonGroupElement.js +18 -19
- package/ui/elements/ButtonGroupElement.js.map +1 -1
- package/ui/elements/GenericElement.js.map +1 -1
- package/ui/elements/LabelElement.js +5 -8
- package/ui/elements/LabelElement.js.map +1 -1
- package/ui/elements/NavigationMenuElement.js +8 -13
- package/ui/elements/NavigationMenuElement.js.map +1 -1
- package/ui/elements/PanelElement.js +4 -6
- package/ui/elements/PanelElement.js.map +1 -1
- package/ui/elements/PlaceholderElement.js +5 -8
- package/ui/elements/PlaceholderElement.js.map +1 -1
- package/ui/elements/SmallButtonElement.js +5 -8
- package/ui/elements/SmallButtonElement.js.map +1 -1
- package/ui/elements/TypographyElement.js +5 -8
- package/ui/elements/TypographyElement.js.map +1 -1
- package/ui/elements/ViewElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +5 -8
- package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
- package/ui/elements/form/DynamicFieldsetElement.js +5 -8
- package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js +4 -6
- package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -8
- package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +18 -25
- package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
- package/ui/elements/form/FileManagerElement/styled.d.ts +5 -7
- package/ui/elements/form/FileManagerElement/styled.js +58 -69
- package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
- package/ui/elements/form/FileManagerElement.js +5 -8
- package/ui/elements/form/FileManagerElement.js.map +1 -1
- package/ui/elements/form/FormElement.js +5 -8
- package/ui/elements/form/FormElement.js.map +1 -1
- package/ui/elements/form/FormFieldElement.js +7 -11
- package/ui/elements/form/FormFieldElement.js.map +1 -1
- package/ui/elements/form/HiddenElement.js +5 -8
- package/ui/elements/form/HiddenElement.js.map +1 -1
- package/ui/elements/form/InputElement.js +5 -8
- package/ui/elements/form/InputElement.js.map +1 -1
- package/ui/elements/form/PasswordElement.js +5 -8
- package/ui/elements/form/PasswordElement.js.map +1 -1
- package/ui/elements/form/SelectElement.js +5 -8
- package/ui/elements/form/SelectElement.js.map +1 -1
- package/ui/elements/form/TextareaElement.js +5 -8
- package/ui/elements/form/TextareaElement.js.map +1 -1
- package/ui/views/AdminView/ContentElement.js +20 -16
- package/ui/views/AdminView/ContentElement.js.map +1 -1
- package/ui/views/AdminView/HeaderElement.js +8 -13
- package/ui/views/AdminView/HeaderElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionCenterElement.js +7 -10
- package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionLeftElement.js +7 -10
- package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
- package/ui/views/AdminView/HeaderSectionRightElement.js +7 -10
- package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
- package/ui/views/AdminView/components/Dialog.d.ts +2 -2
- package/ui/views/AdminView/components/Dialog.js +1 -2
- package/ui/views/AdminView/components/Dialog.js.map +1 -1
- package/ui/views/AdminView/components/Hamburger.d.ts +2 -2
- package/ui/views/AdminView/components/Hamburger.js +1 -2
- package/ui/views/AdminView/components/Hamburger.js.map +1 -1
- package/ui/views/AdminView/components/Snackbar.d.ts +2 -2
- package/ui/views/AdminView/components/Snackbar.js +1 -2
- package/ui/views/AdminView/components/Snackbar.js.map +1 -1
- package/ui/views/FormView/FormContainerElement.d.ts +2 -2
- package/ui/views/FormView/FormContainerElement.js +18 -13
- package/ui/views/FormView/FormContainerElement.js.map +1 -1
- package/ui/views/FormView/FormContentElement.js +4 -6
- package/ui/views/FormView/FormContentElement.js.map +1 -1
- package/ui/views/FormView/FormFooterElement.d.ts +2 -2
- package/ui/views/FormView/FormFooterElement.js +18 -20
- package/ui/views/FormView/FormFooterElement.js.map +1 -1
- package/ui/views/FormView/FormHeaderElement.js +13 -16
- package/ui/views/FormView/FormHeaderElement.js.map +1 -1
- package/ui/views/FormView.js +5 -8
- package/ui/views/FormView.js.map +1 -1
- package/ui/views/OverlayView/ContentElement.js +18 -13
- package/ui/views/OverlayView/ContentElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderElement.js +9 -13
- package/ui/views/OverlayView/HeaderElement.js.map +1 -1
- package/ui/views/OverlayView/HeaderTitleElement.js +8 -13
- package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
- package/ui/views/OverlayView/useOverlayView.js +3 -4
- package/ui/views/OverlayView/useOverlayView.js.map +1 -1
- package/ui/views/OverlayView.js +21 -25
- package/ui/views/OverlayView.js.map +1 -1
- package/ui/views/SplitView/SplitViewPanelElement.js +7 -11
- package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
- package/ui/views/SplitView.js +14 -18
- package/ui/views/SplitView.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_Alert","CannotUseAaclAlert","default","createElement","Alert","title","type","href","target","rel"
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_Alert","CannotUseAaclAlert","exports","default","createElement","Alert","title","type","href","target","rel"],"sources":["CannotUseAaclAlert.tsx"],"sourcesContent":["import React from \"react\";\nimport { Alert } from \"@webiny/ui/Alert\";\n\nexport const CannotUseAaclAlert = () => {\n return (\n <Alert title={\"Advanced Access Control Layer (AACL) not activated\"} type={\"warning\"}>\n <strong>Custom access</strong> option cannot be used because the Advanced Access Control\n Layer (AACL) is not activated. <br />\n <br />\n To learn more, please visit the official \n <a href={\"https://webiny.link/aacl\"} target={\"_blank\"} rel={\"noreferrer\"}>\n documentation\n </a>\n .\n </Alert>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEO,IAAME,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,SAArBA,kBAAkBA,CAAA,EAAS;EACpC,oBACIJ,MAAA,CAAAM,OAAA,CAAAC,aAAA,CAACJ,MAAA,CAAAK,KAAK;IAACC,KAAK,EAAE,oDAAqD;IAACC,IAAI,EAAE;EAAU,gBAChFV,MAAA,CAAAM,OAAA,CAAAC,aAAA,iBAAQ,eAAqB,CAAC,8FACC,eAAAP,MAAA,CAAAM,OAAA,CAAAC,aAAA,WAAK,CAAC,eACrCP,MAAA,CAAAM,OAAA,CAAAC,aAAA,WAAK,CAAC,gDAEN,eAAAP,MAAA,CAAAM,OAAA,CAAAC,aAAA;IAAGI,IAAI,EAAE,0BAA2B;IAACC,MAAM,EAAE,QAAS;IAACC,GAAG,EAAE;EAAa,GAAC,eAEvE,CAAC,KAED,CAAC;AAEhB,CAAC","ignoreList":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { BindComponentRenderProp } from "@webiny/form";
|
|
3
3
|
import { PermissionRendererPlugin } from "../../plugins/PermissionRendererPlugin";
|
|
4
4
|
interface PermissionsProps extends BindComponentRenderProp {
|
|
5
5
|
id: string;
|
|
6
6
|
plugins?: PermissionRendererPlugin[];
|
|
7
7
|
}
|
|
8
|
-
export declare const Permissions: ({ id, value, onChange, ...props }: PermissionsProps) => JSX.Element;
|
|
8
|
+
export declare const Permissions: ({ id, value, onChange, ...props }: PermissionsProps) => React.JSX.Element;
|
|
9
9
|
export {};
|
|
@@ -12,7 +12,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
12
12
|
var _Accordion = require("@webiny/ui/Accordion");
|
|
13
13
|
var _plugins = require("@webiny/plugins");
|
|
14
14
|
var _excluded = ["id", "value", "onChange"];
|
|
15
|
-
var Permissions = function Permissions(_ref) {
|
|
15
|
+
var Permissions = exports.Permissions = function Permissions(_ref) {
|
|
16
16
|
var id = _ref.id,
|
|
17
17
|
value = _ref.value,
|
|
18
18
|
onChange = _ref.onChange,
|
|
@@ -49,6 +49,5 @@ var Permissions = function Permissions(_ref) {
|
|
|
49
49
|
}));
|
|
50
50
|
}));
|
|
51
51
|
};
|
|
52
|
-
exports.Permissions = Permissions;
|
|
53
52
|
|
|
54
53
|
//# sourceMappingURL=Permissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_Accordion","_plugins","_excluded","Permissions","_ref","id","value","onChange","props","_objectWithoutProperties2","default","_useMemo","useMemo","plugins","permissionPlugins","systemPlugins","byType","reduce","acc","plugin","system","push","createElement","Accordion","elevation","concat","_toConsumableArray2","map","pl","Fragment","key","name","render"
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_Accordion","_plugins","_excluded","Permissions","exports","_ref","id","value","onChange","props","_objectWithoutProperties2","default","_useMemo","useMemo","plugins","permissionPlugins","systemPlugins","byType","reduce","acc","plugin","system","push","createElement","Accordion","elevation","concat","_toConsumableArray2","map","pl","Fragment","key","name","render"],"sources":["Permissions.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { AdminAppPermissionRendererPlugin } from \"~/types\";\nimport { Accordion } from \"@webiny/ui/Accordion\";\nimport { plugins } from \"@webiny/plugins\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { PermissionRendererPlugin } from \"~/plugins/PermissionRendererPlugin\";\n\ninterface PermissionsProps extends BindComponentRenderProp {\n id: string;\n plugins?: PermissionRendererPlugin[];\n}\n\ninterface PermissionPlugins {\n systemPlugins: (AdminAppPermissionRendererPlugin | PermissionRendererPlugin)[];\n permissionPlugins: (AdminAppPermissionRendererPlugin | PermissionRendererPlugin)[];\n}\n\nexport const Permissions = ({ id, value, onChange, ...props }: PermissionsProps) => {\n const { systemPlugins, permissionPlugins } = useMemo<PermissionPlugins>(() => {\n if (props.plugins) {\n return { permissionPlugins: props.plugins, systemPlugins: [] };\n }\n\n return plugins\n .byType<AdminAppPermissionRendererPlugin>(\"admin-app-permissions-renderer\")\n .reduce(\n (acc, plugin) => {\n if (plugin.system === true) {\n acc.systemPlugins.push(plugin);\n } else {\n acc.permissionPlugins.push(plugin);\n }\n return acc;\n },\n { systemPlugins: [], permissionPlugins: [] } as PermissionPlugins\n );\n }, []);\n\n return (\n <Accordion elevation={0}>\n {[...systemPlugins, ...permissionPlugins].map(pl => (\n <React.Fragment key={pl.name + \".\" + id}>\n {pl.render({\n value,\n onChange\n })}\n </React.Fragment>\n ))}\n </Accordion>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAA0C,IAAAG,SAAA;AAcnC,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,SAAdA,WAAWA,CAAAE,IAAA,EAA4D;EAAA,IAAtDC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAKC,KAAK,OAAAC,yBAAA,CAAAC,OAAA,EAAAN,IAAA,EAAAH,SAAA;EACvD,IAAAU,QAAA,GAA6C,IAAAC,cAAO,EAAoB,YAAM;MAC1E,IAAIJ,KAAK,CAACK,OAAO,EAAE;QACf,OAAO;UAAEC,iBAAiB,EAAEN,KAAK,CAACK,OAAO;UAAEE,aAAa,EAAE;QAAG,CAAC;MAClE;MAEA,OAAOF,gBAAO,CACTG,MAAM,CAAmC,gCAAgC,CAAC,CAC1EC,MAAM,CACH,UAACC,GAAG,EAAEC,MAAM,EAAK;QACb,IAAIA,MAAM,CAACC,MAAM,KAAK,IAAI,EAAE;UACxBF,GAAG,CAACH,aAAa,CAACM,IAAI,CAACF,MAAM,CAAC;QAClC,CAAC,MAAM;UACHD,GAAG,CAACJ,iBAAiB,CAACO,IAAI,CAACF,MAAM,CAAC;QACtC;QACA,OAAOD,GAAG;MACd,CAAC,EACD;QAAEH,aAAa,EAAE,EAAE;QAAED,iBAAiB,EAAE;MAAG,CAC/C,CAAC;IACT,CAAC,EAAE,EAAE,CAAC;IAlBEC,aAAa,GAAAJ,QAAA,CAAbI,aAAa;IAAED,iBAAiB,GAAAH,QAAA,CAAjBG,iBAAiB;EAoBxC,oBACIlB,MAAA,CAAAc,OAAA,CAAAY,aAAA,CAACvB,UAAA,CAAAwB,SAAS;IAACC,SAAS,EAAE;EAAE,GACnB,GAAAC,MAAA,KAAAC,mBAAA,CAAAhB,OAAA,EAAIK,aAAa,OAAAW,mBAAA,CAAAhB,OAAA,EAAKI,iBAAiB,GAAEa,GAAG,CAAC,UAAAC,EAAE;IAAA,oBAC5ChC,MAAA,CAAAc,OAAA,CAAAY,aAAA,CAAC1B,MAAA,CAAAc,OAAK,CAACmB,QAAQ;MAACC,GAAG,EAAEF,EAAE,CAACG,IAAI,GAAG,GAAG,GAAG1B;IAAG,GACnCuB,EAAE,CAACI,MAAM,CAAC;MACP1B,KAAK,EAALA,KAAK;MACLC,QAAQ,EAARA;IACJ,CAAC,CACW,CAAC;EAAA,CACpB,CACM,CAAC;AAEpB,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
export declare const flexClass: string;
|
|
3
3
|
export declare const gridNoPaddingClass: string;
|
|
4
4
|
interface PermissionInfoProps {
|
|
5
5
|
title: string;
|
|
6
6
|
}
|
|
7
|
-
export declare const PermissionInfo: ({ title }: PermissionInfoProps) => JSX.Element;
|
|
7
|
+
export declare const PermissionInfo: ({ title }: PermissionInfoProps) => React.JSX.Element;
|
|
8
8
|
export {};
|
|
@@ -8,17 +8,15 @@ exports.gridNoPaddingClass = exports.flexClass = exports.PermissionInfo = void 0
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _emotion = require("emotion");
|
|
10
10
|
var _Typography = require("@webiny/ui/Typography");
|
|
11
|
-
var flexClass =
|
|
11
|
+
var flexClass = exports.flexClass = (0, _emotion.css)({
|
|
12
12
|
display: "flex",
|
|
13
13
|
alignItems: "center",
|
|
14
14
|
height: "100%"
|
|
15
|
-
}
|
|
16
|
-
exports.
|
|
17
|
-
var gridNoPaddingClass = /*#__PURE__*/(0, _emotion.css)({
|
|
15
|
+
});
|
|
16
|
+
var gridNoPaddingClass = exports.gridNoPaddingClass = (0, _emotion.css)({
|
|
18
17
|
padding: "0px !important"
|
|
19
|
-
}
|
|
20
|
-
exports.
|
|
21
|
-
var PermissionInfo = function PermissionInfo(_ref) {
|
|
18
|
+
});
|
|
19
|
+
var PermissionInfo = exports.PermissionInfo = function PermissionInfo(_ref) {
|
|
22
20
|
var title = _ref.title;
|
|
23
21
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
24
22
|
className: flexClass
|
|
@@ -26,6 +24,5 @@ var PermissionInfo = function PermissionInfo(_ref) {
|
|
|
26
24
|
use: "body2"
|
|
27
25
|
}, title));
|
|
28
26
|
};
|
|
29
|
-
exports.PermissionInfo = PermissionInfo;
|
|
30
27
|
|
|
31
28
|
//# sourceMappingURL=StyledComponents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_Typography","flexClass","css","display","alignItems","height","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_emotion","_Typography","flexClass","exports","css","display","alignItems","height","gridNoPaddingClass","padding","PermissionInfo","_ref","title","default","createElement","className","Typography","use"],"sources":["StyledComponents.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nexport const flexClass = css({\n display: \"flex\",\n alignItems: \"center\",\n height: \"100%\"\n});\n\nexport const gridNoPaddingClass = css({\n padding: \"0px !important\"\n});\n\ninterface PermissionInfoProps {\n title: string;\n}\nexport const PermissionInfo = ({ title }: PermissionInfoProps) => (\n <div className={flexClass}>\n <Typography use={\"body2\"}>{title}</Typography>\n </div>\n);\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEO,IAAMG,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,YAAG,EAAC;EACzBC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpBC,MAAM,EAAE;AACZ,CAAC,CAAC;AAEK,IAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAG,IAAAJ,YAAG,EAAC;EAClCK,OAAO,EAAE;AACb,CAAC,CAAC;AAKK,IAAMC,cAAc,GAAAP,OAAA,CAAAO,cAAA,GAAG,SAAjBA,cAAcA,CAAAC,IAAA;EAAA,IAAMC,KAAK,GAAAD,IAAA,CAALC,KAAK;EAAA,oBAClCf,MAAA,CAAAgB,OAAA,CAAAC,aAAA;IAAKC,SAAS,EAAEb;EAAU,gBACtBL,MAAA,CAAAgB,OAAA,CAAAC,aAAA,CAACb,WAAA,CAAAe,UAAU;IAACC,GAAG,EAAE;EAAQ,GAAEL,KAAkB,CAC5C,CAAC;AAAA,CACT","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_StyledComponents","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Permissions","_CannotUseAaclAlert"],"sources":["index.ts"],"sourcesContent":["export * from \"./StyledComponents\";\nexport { Permissions } from \"./Permissions\";\nexport { CannotUseAaclAlert } from \"./CannotUseAaclAlert\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,iBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,YAAA,GAAAb,OAAA;AACA,IAAAc,mBAAA,GAAAd,OAAA"}
|
|
1
|
+
{"version":3,"names":["_StyledComponents","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_Permissions","_CannotUseAaclAlert"],"sources":["index.ts"],"sourcesContent":["export * from \"./StyledComponents\";\nexport { Permissions } from \"./Permissions\";\nexport { CannotUseAaclAlert } from \"./CannotUseAaclAlert\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,iBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,YAAA,GAAAb,OAAA;AACA,IAAAc,mBAAA,GAAAd,OAAA","ignoreList":[]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { RichTextEditorProps } from "@webiny/ui/RichTextEditor";
|
|
3
|
-
export declare const RichTextEditor: (props: RichTextEditorProps) => JSX.Element;
|
|
3
|
+
export declare const RichTextEditor: (props: RichTextEditorProps) => React.JSX.Element;
|
|
@@ -9,7 +9,7 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
|
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _RichTextEditor = require("@webiny/ui/RichTextEditor");
|
|
11
11
|
var _ = require("./..");
|
|
12
|
-
var RichTextEditor = function RichTextEditor(props) {
|
|
12
|
+
var RichTextEditor = exports.RichTextEditor = function RichTextEditor(props) {
|
|
13
13
|
return /*#__PURE__*/_react.default.createElement(_.FileManager, null, function (_ref) {
|
|
14
14
|
var showFileManager = _ref.showFileManager;
|
|
15
15
|
return /*#__PURE__*/_react.default.createElement(_RichTextEditor.RichTextEditor, Object.assign({}, props, {
|
|
@@ -20,6 +20,5 @@ var RichTextEditor = function RichTextEditor(props) {
|
|
|
20
20
|
}));
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
-
exports.RichTextEditor = RichTextEditor;
|
|
24
23
|
|
|
25
24
|
//# sourceMappingURL=RichTextEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_RichTextEditor","_","RichTextEditor","props","default","createElement","FileManager","_ref","showFileManager","Object","assign","placeholder","context","_objectSpread2"
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_RichTextEditor","_","RichTextEditor","exports","props","default","createElement","FileManager","_ref","showFileManager","Object","assign","placeholder","context","_objectSpread2"],"sources":["RichTextEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { RichTextEditor as UiRichTextEditor, RichTextEditorProps } from \"@webiny/ui/RichTextEditor\";\nimport { FileManager } from \"~/components\";\n\nexport const RichTextEditor = (props: RichTextEditorProps) => {\n return (\n <FileManager>\n {({ showFileManager }) => (\n <UiRichTextEditor\n {...props}\n placeholder={props.placeholder || \"Click here to type\"}\n context={{ ...props.context, showFileManager }}\n />\n )}\n </FileManager>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,CAAA,GAAAF,OAAA;AAEO,IAAMG,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAIE,KAA0B,EAAK;EAC1D,oBACIP,MAAA,CAAAQ,OAAA,CAAAC,aAAA,CAACL,CAAA,CAAAM,WAAW,QACP,UAAAC,IAAA;IAAA,IAAGC,eAAe,GAAAD,IAAA,CAAfC,eAAe;IAAA,oBACfZ,MAAA,CAAAQ,OAAA,CAAAC,aAAA,CAACN,eAAA,CAAAE,cAAgB,EAAAQ,MAAA,CAAAC,MAAA,KACTP,KAAK;MACTQ,WAAW,EAAER,KAAK,CAACQ,WAAW,IAAI,oBAAqB;MACvDC,OAAO,MAAAC,cAAA,CAAAT,OAAA,MAAAS,cAAA,CAAAT,OAAA,MAAOD,KAAK,CAACS,OAAO;QAAEJ,eAAe,EAAfA;MAAe;IAAG,EAClD,CAAC;EAAA,CAEG,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_RichTextEditor","require","_RichTextEditor2"],"sources":["index.ts"],"sourcesContent":["export { RichTextEditor } from \"./RichTextEditor\";\nexport { createPropsFromConfig } from \"@webiny/ui/RichTextEditor\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA"}
|
|
1
|
+
{"version":3,"names":["_RichTextEditor","require","_RichTextEditor2"],"sources":["index.ts"],"sourcesContent":["export { RichTextEditor } from \"./RichTextEditor\";\nexport { createPropsFromConfig } from \"@webiny/ui/RichTextEditor\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA","ignoreList":[]}
|
|
@@ -84,7 +84,7 @@ var Header = /*#__PURE__*/function () {
|
|
|
84
84
|
* @returns {HeaderData}
|
|
85
85
|
* @private
|
|
86
86
|
*/
|
|
87
|
-
(0, _createClass2.default)(Header, [{
|
|
87
|
+
return (0, _createClass2.default)(Header, [{
|
|
88
88
|
key: "normalizeData",
|
|
89
89
|
value: function normalizeData(data) {
|
|
90
90
|
var newData = {};
|
|
@@ -675,9 +675,7 @@ var Header = /*#__PURE__*/function () {
|
|
|
675
675
|
};
|
|
676
676
|
}
|
|
677
677
|
}]);
|
|
678
|
-
return Header;
|
|
679
678
|
}();
|
|
680
|
-
var _default = Header;
|
|
681
|
-
exports.default = _default;
|
|
679
|
+
var _default = exports.default = Header;
|
|
682
680
|
|
|
683
681
|
//# sourceMappingURL=index.js.map
|
|
@@ -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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"}
|
|
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":[]}
|
|
@@ -19,7 +19,7 @@ var defaultGetFileSrc = function defaultGetFileSrc(file) {
|
|
|
19
19
|
var defaultOnSelectFile = function defaultOnSelectFile(file) {
|
|
20
20
|
return file.src;
|
|
21
21
|
};
|
|
22
|
-
var ImageTool = /*#__PURE__*/function () {
|
|
22
|
+
var ImageTool = exports.default = /*#__PURE__*/function () {
|
|
23
23
|
function ImageTool(_ref) {
|
|
24
24
|
var _this = this;
|
|
25
25
|
var data = _ref.data,
|
|
@@ -75,7 +75,7 @@ var ImageTool = /*#__PURE__*/function () {
|
|
|
75
75
|
*
|
|
76
76
|
* @returns {HTMLDivElement}
|
|
77
77
|
*/
|
|
78
|
-
(0, _createClass2.default)(ImageTool, [{
|
|
78
|
+
return (0, _createClass2.default)(ImageTool, [{
|
|
79
79
|
key: "render",
|
|
80
80
|
value: function render() {
|
|
81
81
|
return this.ui.render(this.data);
|
|
@@ -232,8 +232,6 @@ var ImageTool = /*#__PURE__*/function () {
|
|
|
232
232
|
};
|
|
233
233
|
}
|
|
234
234
|
}]);
|
|
235
|
-
return ImageTool;
|
|
236
235
|
}();
|
|
237
|
-
exports.default = ImageTool;
|
|
238
236
|
|
|
239
237
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ui","_interopRequireDefault","require","_tunes","_svgs","defaultGetFileSrc","file","src","defaultOnSelectFile","ImageTool","_ref","_this","data","config","api","readOnly","_classCallCheck2","default","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","exports"],"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;EA+B1B,SAAAA,UAAAC,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,CAAAC,OAAA,QAAAR,SAAA;IACrC,IAAI,CAACK,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IAExB,IAAI,CAACF,MAAM,GAAG;MACVK,UAAU,EAAEL,MAAM,CAACK,UAAU,IAAIb,iBAAiB;MAClDc,YAAY,EAAEN,MAAM,CAACM,YAAY,IAAIX,mBAAmB;MACxDY,OAAO,EAAEP,MAAM,CAACO,OAAO,IAAI,EAAE;MAC7BC,OAAO,EAAER,MAAM,CAACQ;IACpB,CAAC;;IAED;AACR;AACA;IACQ,IAAI,CAACC,EAAE,GAAG,IAAIC,WAAE,CAAC;MACbT,GAAG,EAAHA,GAAG;MACHD,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBM,YAAY,EAAE,SAAAA,aAAA,EAAM;QAChBR,KAAI,CAACE,MAAM,CAACQ,OAAO,CAACG,eAAe,CAAC,UAAClB,IAAU,EAAK;UAChDK,KAAI,CAACc,KAAK,GAAGd,KAAI,CAACE,MAAM,CAACM,YAAY,CAACb,IAAI,CAAC;QAC/C,CAAC,CAAC;MACN,CAAC;MACDS,QAAQ,EAARA;IACJ,CAAC,CAAC;;IAEF;AACR;AACA;IACQ,IAAI,CAACW,KAAK,GAAG,IAAIC,cAAK,CAAC;MACnBb,GAAG,EAAHA,GAAG;MACHM,OAAO,EAAE,IAAI,CAACP,MAAM,CAACO,OAAO;MAC5BQ,QAAQ,EAAE,SAAAA,SAACC,QAAgB;QAAA,OAAKlB,KAAI,CAACmB,WAAW,CAACD,QAAQ,CAAC;MAAA;IAC9D,CAAC,CAAC;;IAEF;AACR;AACA;IACQ,IAAI,CAACE,KAAK,GAAG,CAAC,CAAC;IACf,IAAI,CAACnB,IAAI,GAAGA,IAAI;EACpB;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI,IAAAoB,aAAA,CAAAf,OAAA,EAAAR,SAAA;IAAAwB,GAAA;IAAAC,KAAA,EAOA,SAAAC,OAAA,EAAS;MACL,OAAO,IAAI,CAACb,EAAE,CAACa,MAAM,CAAC,IAAI,CAACvB,IAAI,CAAC;IACpC;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAqB,GAAA;IAAAC,KAAA,EAOA,SAAAE,KAAA,EAAO;MACH,IAAMC,OAAO,GAAG,IAAI,CAACf,EAAE,CAACgB,KAAK,CAACD,OAAO;MAErC,IAAI,CAACN,KAAK,CAACM,OAAO,GAAGA,OAAO,CAACE,SAAS;MAEtC,OAAO,IAAI,CAAC3B,IAAI;IACpB;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAqB,GAAA;IAAAC,KAAA,EAOA,SAAAM,eAAA,EAAiB;MACb,OAAO,IAAI,CAACd,KAAK,CAACS,MAAM,CAAC,IAAI,CAACvB,IAAI,CAAC;IACvC;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EANI;IAAAqB,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,IAAS9B,IAAI,EAAE;MAAA,IAAA+B,MAAA;MACX,IAAI,CAAClB,KAAK,GAAGb,IAAI,CAACN,IAAI;MAEtB,IAAI,CAACyB,KAAK,CAACM,OAAO,GAAGzB,IAAI,CAACyB,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,GAAGrC,IAAI,CAACoC,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,IAAUpC,IAAmB,EAAE;MAC3B,IAAI,CAACyB,KAAK,CAACzB,IAAI,GAAGA,IAAI,IAAI,CAAC,CAAC;MAE5B,IAAIA,IAAI,EAAE;QACN,IAAI,CAACgB,EAAE,CAAC6B,SAAS,CAAC,IAAI,CAACtC,MAAM,CAACK,UAAU,CAACZ,IAAI,CAAC,CAAC;MACnD;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAPI;IAAA2B,GAAA;IAAAC,KAAA,EAQA,SAAAJ,YAAmBD,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,SAAAgB,QAAerB,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,CAACtC,GAAG,CAAC4C,MAAM,CAACC,oBAAoB,CAAC,CAAC;UAEtDP,MAAI,CAACtC,GAAG,CAAC4C,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,SAAA+B,WAAA,EAA6B;MACzB,OAAO,IAAI,CAAClD,QAAQ;IACxB;EAAC;IAAAkB,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;EAAA,OAAA5D,SAAA;AAAA;AAAA6D,OAAA,CAAArD,OAAA,GAAAR,SAAA"}
|
|
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":"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","ignoreList":[]}
|
|
@@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _default = {
|
|
7
|
+
var _default = exports.default = {
|
|
8
8
|
buttonIcon: "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.15 13.628A7.749 7.749 0 0 0 10 17.75a7.74 7.74 0 0 0 6.305-3.242l-2.387-2.127-2.765 2.244-4.389-4.496-3.614 3.5zm-.787-2.303l4.446-4.371 4.52 4.63 2.534-2.057 3.533 2.797c.23-.734.354-1.514.354-2.324a7.75 7.75 0 1 0-15.387 1.325zM10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10z\"/>",
|
|
9
9
|
stretched: "<svg width=\"17\" height=\"10\" viewBox=\"0 0 17 10\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.568 5.925H4.056l1.703 1.703a1.125 1.125 0 0 1-1.59 1.591L.962 6.014A1.069 1.069 0 0 1 .588 4.26L4.38.469a1.069 1.069 0 0 1 1.512 1.511L4.084 3.787h9.606l-1.85-1.85a1.069 1.069 0 1 1 1.512-1.51l3.792 3.791a1.069 1.069 0 0 1-.475 1.788L13.514 9.16a1.125 1.125 0 0 1-1.59-1.591l1.644-1.644z\"/></svg>",
|
|
10
10
|
toolbox: "<svg width=\"17\" height=\"15\" viewBox=\"0 0 336 276\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M291 150.242V79c0-18.778-15.222-34-34-34H79c-18.778 0-34 15.222-34 34v42.264l67.179-44.192 80.398 71.614 56.686-29.14L291 150.242zm-.345 51.622l-42.3-30.246-56.3 29.884-80.773-66.925L45 174.187V197c0 18.778 15.222 34 34 34h178c17.126 0 31.295-12.663 33.655-29.136zM79 0h178c43.63 0 79 35.37 79 79v118c0 43.63-35.37 79-79 79H79c-43.63 0-79-35.37-79-79V79C0 35.37 35.37 0 79 0z\"/></svg>"
|
|
11
11
|
};
|
|
12
|
-
exports.default = _default;
|
|
13
12
|
|
|
14
13
|
//# sourceMappingURL=svgs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["buttonIcon","stretched","toolbox"
|
|
1
|
+
{"version":3,"names":["buttonIcon","stretched","toolbox"],"sources":["svgs.ts"],"sourcesContent":["export default {\n buttonIcon: `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.15 13.628A7.749 7.749 0 0 0 10 17.75a7.74 7.74 0 0 0 6.305-3.242l-2.387-2.127-2.765 2.244-4.389-4.496-3.614 3.5zm-.787-2.303l4.446-4.371 4.52 4.63 2.534-2.057 3.533 2.797c.23-.734.354-1.514.354-2.324a7.75 7.75 0 1 0-15.387 1.325zM10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10z\"/>`,\n stretched: `<svg width=\"17\" height=\"10\" viewBox=\"0 0 17 10\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.568 5.925H4.056l1.703 1.703a1.125 1.125 0 0 1-1.59 1.591L.962 6.014A1.069 1.069 0 0 1 .588 4.26L4.38.469a1.069 1.069 0 0 1 1.512 1.511L4.084 3.787h9.606l-1.85-1.85a1.069 1.069 0 1 1 1.512-1.51l3.792 3.791a1.069 1.069 0 0 1-.475 1.788L13.514 9.16a1.125 1.125 0 0 1-1.59-1.591l1.644-1.644z\"/></svg>`,\n toolbox: `<svg width=\"17\" height=\"15\" viewBox=\"0 0 336 276\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M291 150.242V79c0-18.778-15.222-34-34-34H79c-18.778 0-34 15.222-34 34v42.264l67.179-44.192 80.398 71.614 56.686-29.14L291 150.242zm-.345 51.622l-42.3-30.246-56.3 29.884-80.773-66.925L45 174.187V197c0 18.778 15.222 34 34 34h178c17.126 0 31.295-12.663 33.655-29.136zM79 0h178c43.63 0 79 35.37 79 79v118c0 43.63-35.37 79-79 79H79c-43.63 0-79-35.37-79-79V79C0 35.37 35.37 0 79 0z\"/></svg>`\n};\n"],"mappings":";;;;;;iCAAe;EACXA,UAAU,8ZAAoZ;EAC9ZC,SAAS,sZAA4Y;EACrZC,OAAO;AACX,CAAC","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ var _svgs = _interopRequireDefault(require("./svgs"));
|
|
|
12
12
|
/**
|
|
13
13
|
* Working with Block Tunes
|
|
14
14
|
*/
|
|
15
|
-
var Tunes = /*#__PURE__*/function () {
|
|
15
|
+
var Tunes = exports.default = /*#__PURE__*/function () {
|
|
16
16
|
/**
|
|
17
17
|
* @param {object} tune - image tool Tunes managers
|
|
18
18
|
* @param {object} tune.api - Editor API
|
|
@@ -35,7 +35,7 @@ var Tunes = /*#__PURE__*/function () {
|
|
|
35
35
|
*
|
|
36
36
|
* @returns {{name: string, icon: string, title: string}[]}
|
|
37
37
|
*/
|
|
38
|
-
(0, _createClass2.default)(Tunes, [{
|
|
38
|
+
return (0, _createClass2.default)(Tunes, [{
|
|
39
39
|
key: "CSS",
|
|
40
40
|
get:
|
|
41
41
|
/**
|
|
@@ -119,8 +119,6 @@ var Tunes = /*#__PURE__*/function () {
|
|
|
119
119
|
}];
|
|
120
120
|
}
|
|
121
121
|
}]);
|
|
122
|
-
return Tunes;
|
|
123
122
|
}();
|
|
124
|
-
exports.default = Tunes;
|
|
125
123
|
|
|
126
124
|
//# sourceMappingURL=tunes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ui","require","_svgs","_interopRequireDefault","Tunes","_ref","api","actions","onChange","_classCallCheck2","
|
|
1
|
+
{"version":3,"names":["_ui","require","_svgs","_interopRequireDefault","Tunes","exports","default","_ref","api","actions","onChange","_classCallCheck2","buttons","_createClass2","key","get","wrapper","buttonBase","styles","settingsButton","button","buttonActive","settingsButtonActive","value","render","toolData","_this","make","CSS","tunes","concat","forEach","tune","title","i18n","t","el","innerHTML","icon","addEventListener","tuneClicked","name","action","dataset","classList","toggle","push","tooltip","onHover","placement","appendChild","tuneName","customFunction","find","contains","svgs","stretched"],"sources":["tunes.ts"],"sourcesContent":["import { API } from \"@editorjs/editorjs\";\nimport { make } from \"./ui\";\nimport svgs from \"./svgs\";\nimport { ImageToolData, Tune, TuneOnChangeCallable } from \"./types\";\n\ninterface TunesParams {\n api: API;\n actions: Tune[];\n onChange: TuneOnChangeCallable;\n}\n/**\n * Working with Block Tunes\n */\nexport default class Tunes {\n private api: API;\n private readonly actions: Tune[];\n private readonly onChange: TuneOnChangeCallable;\n private buttons: Array<HTMLElement>;\n /**\n * @param {object} tune - image tool Tunes managers\n * @param {object} tune.api - Editor API\n * @param {object} tune.actions - list of user defined tunes\n * @param {Function} tune.onChange - tune toggling callback\n */\n constructor({ api, actions, onChange }: TunesParams) {\n this.api = api;\n this.actions = actions;\n this.onChange = onChange;\n this.buttons = [];\n }\n\n /**\n * Available Image tunes\n *\n * @returns {{name: string, icon: string, title: string}[]}\n */\n static get tunes(): Tune[] {\n return [\n {\n name: \"stretched\",\n icon: svgs.stretched,\n title: \"Stretch image\"\n }\n ];\n }\n\n /**\n * Styles\n *\n * @returns {{wrapper: string, buttonBase: *, button: string, buttonActive: *}}\n */\n get CSS() {\n return {\n wrapper: \"\",\n buttonBase: this.api.styles.settingsButton,\n button: \"image-tool__tune\",\n buttonActive: this.api.styles.settingsButtonActive\n };\n }\n\n /**\n * Makes buttons with tunes: stretch image\n *\n * @param {ImageToolData} toolData - generate Elements of tunes\n * @returns {Element}\n */\n render(toolData: ImageToolData): HTMLElement {\n const wrapper = make(\"div\", this.CSS.wrapper);\n\n this.buttons = [];\n\n const tunes = Tunes.tunes.concat(this.actions);\n\n tunes.forEach(tune => {\n const title = this.api.i18n.t(tune.title);\n const el = make(\"div\", [this.CSS.buttonBase, this.CSS.button], {\n innerHTML: tune.icon,\n title\n });\n\n el.addEventListener(\"click\", () => {\n this.tuneClicked(tune.name, tune.action);\n });\n\n el.dataset[\"tune\"] = tune.name;\n const name = tune.name as keyof ImageToolData;\n el.classList.toggle(this.CSS.buttonActive, !!toolData[name]);\n\n this.buttons.push(el);\n\n this.api.tooltip.onHover(el, title, {\n placement: \"top\"\n });\n\n wrapper.appendChild(el);\n });\n\n return wrapper;\n }\n\n /**\n * Clicks to one of the tunes\n *\n * @param {string} tuneName - clicked tune name\n * @param {Function} customFunction - function to execute on click\n */\n tuneClicked(tuneName: string, customFunction?: TuneOnChangeCallable): boolean {\n if (typeof customFunction === \"function\") {\n if (!customFunction(tuneName)) {\n return false;\n }\n }\n\n const button = this.buttons.find(el => el.dataset[\"tune\"] === tuneName);\n\n if (button) {\n button.classList.toggle(\n this.CSS.buttonActive,\n !button.classList.contains(this.CSS.buttonActive)\n );\n }\n\n this.onChange(tuneName);\n return true;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export interface TuneOnChangeCallable {\n (tune: string): boolean | void;\n}\nexport interface Tune {\n name: string;\n icon: string;\n title: string;\n action?: TuneOnChangeCallable;\n}\n\nexport interface ImageToolData {\n caption: string;\n file: string;\n}\nexport interface ImageToolFile {\n src: string;\n}\nexport interface GetFileSourceCallable {\n (file: ImageToolFile | string): string;\n}\nexport interface OnSelectFileCallable {\n (file: ImageToolFile): string;\n}\nexport interface ImageToolConfig {\n getFileSrc: GetFileSourceCallable;\n onSelectFile: OnSelectFileCallable;\n captionPlaceholder?: string;\n actions: Tune[];\n context: Record<string, any>;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export interface TuneOnChangeCallable {\n (tune: string): boolean | void;\n}\nexport interface Tune {\n name: string;\n icon: string;\n title: string;\n action?: TuneOnChangeCallable;\n}\n\nexport interface ImageToolData {\n caption: string;\n file: string;\n}\nexport interface ImageToolFile {\n src: string;\n}\nexport interface GetFileSourceCallable {\n (file: ImageToolFile | string): string;\n}\nexport interface OnSelectFileCallable {\n (file: ImageToolFile): string;\n}\nexport interface ImageToolConfig {\n getFileSrc: GetFileSourceCallable;\n onSelectFile: OnSelectFileCallable;\n captionPlaceholder?: string;\n actions: Tune[];\n context: Record<string, any>;\n}\n"],"mappings":"","ignoreList":[]}
|