@webiny/app-admin 5.34.8 → 5.35.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/assets/icons/add-18px.svg +1 -1
  2. package/assets/icons/arrow_drop_down-24px.svg +1 -1
  3. package/assets/icons/filter-24px.svg +1 -1
  4. package/assets/icons/highlight-24px.svg +1 -1
  5. package/assets/icons/info.svg +1 -1
  6. package/assets/icons/insert_drive_file-24px.svg +1 -1
  7. package/assets/icons/insert_photo-24px.svg +1 -1
  8. package/assets/icons/label-24px.svg +1 -1
  9. package/assets/icons/round-account_circle-24px.svg +1 -1
  10. package/assets/icons/round-arrow_drop_down-24px.svg +1 -1
  11. package/assets/icons/round-help-24px.svg +1 -1
  12. package/assets/icons/round-settings-24px.svg +1 -1
  13. package/assets/icons/today-24px.svg +1 -1
  14. package/assets/icons/touch_app.svg +1 -1
  15. package/base/Admin.js +1 -15
  16. package/base/Admin.js.map +1 -1
  17. package/base/Base.js +6 -44
  18. package/base/Base.js.map +1 -1
  19. package/base/plugins/AddGraphQLQuerySelection.js +5 -9
  20. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  21. package/base/providers/ApolloProvider.js +0 -5
  22. package/base/providers/ApolloProvider.js.map +1 -1
  23. package/base/providers/TelemetryProvider.js +1 -7
  24. package/base/providers/TelemetryProvider.js.map +1 -1
  25. package/base/providers/UiStateProvider.js +0 -5
  26. package/base/providers/UiStateProvider.js.map +1 -1
  27. package/base/providers/ViewCompositionProvider.js +3 -16
  28. package/base/providers/ViewCompositionProvider.js.map +1 -1
  29. package/base/ui/Brand.js +0 -4
  30. package/base/ui/Brand.js.map +1 -1
  31. package/base/ui/CenteredView.js +2 -7
  32. package/base/ui/CenteredView.js.map +1 -1
  33. package/base/ui/Dashboard.js +0 -4
  34. package/base/ui/Dashboard.js.map +1 -1
  35. package/base/ui/FileManager.d.ts +67 -0
  36. package/base/ui/FileManager.js +61 -0
  37. package/base/ui/FileManager.js.map +1 -0
  38. package/base/ui/Layout.js +1 -6
  39. package/base/ui/Layout.js.map +1 -1
  40. package/base/ui/LocaleSelector.js +0 -4
  41. package/base/ui/LocaleSelector.js.map +1 -1
  42. package/base/ui/LoginScreen.js +0 -6
  43. package/base/ui/LoginScreen.js.map +1 -1
  44. package/base/ui/Logo.js +0 -6
  45. package/base/ui/Logo.js.map +1 -1
  46. package/base/ui/Menu.js +2 -31
  47. package/base/ui/Menu.js.map +1 -1
  48. package/base/ui/Navigation.js +11 -44
  49. package/base/ui/Navigation.js.map +1 -1
  50. package/base/ui/NotFound.js +0 -4
  51. package/base/ui/NotFound.js.map +1 -1
  52. package/base/ui/Search.js +5 -23
  53. package/base/ui/Search.js.map +1 -1
  54. package/base/ui/Tags.js +1 -8
  55. package/base/ui/Tags.js.map +1 -1
  56. package/base/ui/UserMenu.js +5 -29
  57. package/base/ui/UserMenu.js.map +1 -1
  58. package/components/AdminLayout.js +1 -6
  59. package/components/AdminLayout.js.map +1 -1
  60. package/components/AppInstaller/AppInstaller.js +18 -84
  61. package/components/AppInstaller/AppInstaller.js.map +1 -1
  62. package/components/AppInstaller/Sidebar.js +11 -44
  63. package/components/AppInstaller/Sidebar.js.map +1 -1
  64. package/components/AppInstaller/index.js +0 -7
  65. package/components/AppInstaller/index.js.map +1 -1
  66. package/components/AppInstaller/styled.d.ts +17 -5
  67. package/components/AppInstaller/styled.js +0 -4
  68. package/components/AppInstaller/styled.js.map +1 -1
  69. package/components/AppInstaller/useInstaller.d.ts +1 -7
  70. package/components/AppInstaller/useInstaller.js +72 -183
  71. package/components/AppInstaller/useInstaller.js.map +1 -1
  72. package/components/EmptyView.js +4 -12
  73. package/components/EmptyView.js.map +1 -1
  74. package/components/FloatingActionButton.js +2 -8
  75. package/components/FloatingActionButton.js.map +1 -1
  76. package/components/MultiImageUpload.js +1 -10
  77. package/components/MultiImageUpload.js.map +1 -1
  78. package/components/OverlayLayout/OverlayLayout.js +9 -38
  79. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  80. package/components/OverlayLayout/index.js +0 -2
  81. package/components/OverlayLayout/index.js.map +1 -1
  82. package/components/Permissions/Permissions.d.ts +2 -0
  83. package/components/Permissions/Permissions.js +25 -27
  84. package/components/Permissions/Permissions.js.map +1 -1
  85. package/components/Permissions/StyledComponents.js +0 -7
  86. package/components/Permissions/StyledComponents.js.map +1 -1
  87. package/components/Permissions/index.js +0 -3
  88. package/components/Permissions/index.js.map +1 -1
  89. package/components/RichTextEditor/RichTextEditor.js +0 -7
  90. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  91. package/components/RichTextEditor/index.js +0 -2
  92. package/components/RichTextEditor/index.js.map +1 -1
  93. package/components/RichTextEditor/tools/header/index.js +62 -102
  94. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  95. package/components/RichTextEditor/tools/image/index.js +15 -36
  96. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  97. package/components/RichTextEditor/tools/image/svgs.js.map +1 -1
  98. package/components/RichTextEditor/tools/image/tunes.js +5 -22
  99. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  100. package/components/RichTextEditor/tools/image/ui.js +16 -39
  101. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  102. package/components/RichTextEditor/tools/paragraph/index.js +55 -81
  103. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  104. package/components/RichTextEditor/tools/textColor/index.js +15 -41
  105. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  106. package/components/RichTextEditor/tools/utils.js +0 -2
  107. package/components/RichTextEditor/tools/utils.js.map +1 -1
  108. package/components/Routes.js +6 -13
  109. package/components/Routes.js.map +1 -1
  110. package/components/SearchUI.d.ts +1 -0
  111. package/components/SearchUI.js +14 -14
  112. package/components/SearchUI.js.map +1 -1
  113. package/components/SimpleForm/SimpleForm.js +3 -32
  114. package/components/SimpleForm/SimpleForm.js.map +1 -1
  115. package/components/SimpleForm/index.js +0 -1
  116. package/components/SimpleForm/index.js.map +1 -1
  117. package/components/SimpleUI/InputField.d.ts +2 -0
  118. package/components/SimpleUI/InputField.js +16 -30
  119. package/components/SimpleUI/InputField.js.map +1 -1
  120. package/components/SingleImageUpload.d.ts +1 -1
  121. package/components/SingleImageUpload.js +14 -30
  122. package/components/SingleImageUpload.js.map +1 -1
  123. package/components/SplitView/SplitView.js +1 -20
  124. package/components/SplitView/SplitView.js.map +1 -1
  125. package/components/SplitView/index.js +0 -1
  126. package/components/SplitView/index.js.map +1 -1
  127. package/components/index.d.ts +1 -1
  128. package/components/index.js +1 -2
  129. package/components/index.js.map +1 -1
  130. package/hooks/useConfirmationDialog.js +6 -18
  131. package/hooks/useConfirmationDialog.js.map +1 -1
  132. package/hooks/useDialog.js +0 -5
  133. package/hooks/useDialog.js.map +1 -1
  134. package/hooks/useSnackbar.js +0 -5
  135. package/hooks/useSnackbar.js.map +1 -1
  136. package/index.d.ts +2 -3
  137. package/index.js +1 -61
  138. package/index.js.map +1 -1
  139. package/package.json +22 -32
  140. package/plugins/MenuPlugin.js +0 -15
  141. package/plugins/MenuPlugin.js.map +1 -1
  142. package/plugins/PermissionRendererPlugin.js +0 -15
  143. package/plugins/PermissionRendererPlugin.js.map +1 -1
  144. package/plugins/globalSearch/SearchBar.js +5 -53
  145. package/plugins/globalSearch/SearchBar.js.map +1 -1
  146. package/plugins/globalSearch/SearchBarDropdown.js +15 -33
  147. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  148. package/plugins/globalSearch/index.js.map +1 -1
  149. package/plugins/globalSearch/styled.d.ts +13 -4
  150. package/plugins/globalSearch/styled.js +1 -5
  151. package/plugins/globalSearch/styled.js.map +1 -1
  152. package/plugins/uiLayoutRenderer/index.js +2 -16
  153. package/plugins/uiLayoutRenderer/index.js.map +1 -1
  154. package/styles/theme.scss +31 -1
  155. package/types.d.ts +23 -27
  156. package/types.js.map +1 -1
  157. package/ui/UIElement.js +0 -1
  158. package/ui/UIElement.js.map +1 -1
  159. package/ui/UILayout.js +0 -1
  160. package/ui/UILayout.js.map +1 -1
  161. package/ui/UIRenderer.js +0 -1
  162. package/ui/UIRenderer.js.map +1 -1
  163. package/ui/UIView.js +0 -1
  164. package/ui/UIView.js.map +1 -1
  165. package/ui/elements/AccordionElement.js +2 -28
  166. package/ui/elements/AccordionElement.js.map +1 -1
  167. package/ui/elements/ButtonElement.js +0 -19
  168. package/ui/elements/ButtonElement.js.map +1 -1
  169. package/ui/elements/ButtonGroupElement.js +0 -19
  170. package/ui/elements/ButtonGroupElement.js.map +1 -1
  171. package/ui/elements/GenericElement.js +0 -2
  172. package/ui/elements/GenericElement.js.map +1 -1
  173. package/ui/elements/LabelElement.js +0 -14
  174. package/ui/elements/LabelElement.js.map +1 -1
  175. package/ui/elements/NavigationMenuElement.js +3 -36
  176. package/ui/elements/NavigationMenuElement.js.map +1 -1
  177. package/ui/elements/PanelElement.js +0 -11
  178. package/ui/elements/PanelElement.js.map +1 -1
  179. package/ui/elements/PlaceholderElement.js +0 -11
  180. package/ui/elements/PlaceholderElement.js.map +1 -1
  181. package/ui/elements/SmallButtonElement.js +0 -19
  182. package/ui/elements/SmallButtonElement.js.map +1 -1
  183. package/ui/elements/TypographyElement.js +0 -19
  184. package/ui/elements/TypographyElement.js.map +1 -1
  185. package/ui/elements/ViewElement.js +0 -2
  186. package/ui/elements/ViewElement.js.map +1 -1
  187. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +0 -16
  188. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  189. package/ui/elements/form/DynamicFieldsetElement.js +11 -34
  190. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  191. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +0 -15
  192. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -1
  193. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -27
  194. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  195. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +4 -23
  196. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  197. package/ui/elements/form/FileManagerElement/styled.d.ts +23 -16
  198. package/ui/elements/form/FileManagerElement/styled.js +0 -5
  199. package/ui/elements/form/FileManagerElement/styled.js.map +1 -1
  200. package/ui/elements/form/FileManagerElement.js +0 -20
  201. package/ui/elements/form/FileManagerElement.js.map +1 -1
  202. package/ui/elements/form/FormElement.js +0 -21
  203. package/ui/elements/form/FormElement.js.map +1 -1
  204. package/ui/elements/form/FormFieldElement.js +0 -33
  205. package/ui/elements/form/FormFieldElement.js.map +1 -1
  206. package/ui/elements/form/HiddenElement.js +0 -17
  207. package/ui/elements/form/HiddenElement.js.map +1 -1
  208. package/ui/elements/form/InputElement.js +0 -18
  209. package/ui/elements/form/InputElement.js.map +1 -1
  210. package/ui/elements/form/PasswordElement.js +0 -15
  211. package/ui/elements/form/PasswordElement.js.map +1 -1
  212. package/ui/elements/form/SelectElement.js +1 -19
  213. package/ui/elements/form/SelectElement.js.map +1 -1
  214. package/ui/elements/form/TextareaElement.js +0 -17
  215. package/ui/elements/form/TextareaElement.js.map +1 -1
  216. package/ui/views/AdminView/ContentElement.js +1 -25
  217. package/ui/views/AdminView/ContentElement.js.map +1 -1
  218. package/ui/views/AdminView/HeaderElement.js +0 -40
  219. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  220. package/ui/views/AdminView/HeaderSectionCenterElement.js +0 -20
  221. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  222. package/ui/views/AdminView/HeaderSectionLeftElement.js +0 -20
  223. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  224. package/ui/views/AdminView/HeaderSectionRightElement.js +0 -20
  225. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  226. package/ui/views/AdminView/components/Dialog.js +10 -21
  227. package/ui/views/AdminView/components/Dialog.js.map +1 -1
  228. package/ui/views/AdminView/components/Hamburger.js +2 -10
  229. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  230. package/ui/views/AdminView/components/Snackbar.js +0 -9
  231. package/ui/views/AdminView/components/Snackbar.js.map +1 -1
  232. package/ui/views/FormView/FormContainerElement.js +0 -21
  233. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  234. package/ui/views/FormView/FormContentElement.js +0 -11
  235. package/ui/views/FormView/FormContentElement.js.map +1 -1
  236. package/ui/views/FormView/FormFooterElement.js +0 -19
  237. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  238. package/ui/views/FormView/FormHeaderElement.js +2 -24
  239. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  240. package/ui/views/FormView.js +0 -41
  241. package/ui/views/FormView.js.map +1 -1
  242. package/ui/views/OverlayView/ContentElement.js +0 -19
  243. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  244. package/ui/views/OverlayView/HeaderElement.js +4 -26
  245. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  246. package/ui/views/OverlayView/HeaderTitleElement.js +0 -22
  247. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  248. package/ui/views/OverlayView/useOverlayView.js +3 -13
  249. package/ui/views/OverlayView/useOverlayView.js.map +1 -1
  250. package/ui/views/OverlayView.js +4 -38
  251. package/ui/views/OverlayView.js.map +1 -1
  252. package/ui/views/SplitView/SplitViewPanelElement.js +2 -22
  253. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  254. package/ui/views/SplitView.js +0 -40
  255. package/ui/views/SplitView.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["Header","data","config","api","readOnly","alignments","ALIGNMENTS","typography","_CSS","block","styles","settingsButton","settingsButtonActive","wrapper","_settings","_data","normalizeData","settingsButtons","_element","getTag","newData","text","level","parseInt","defaultLevel","number","textAlign","TextAlign","START","holder","document","createElement","levels","length","forEach","selectTypeButton","classList","add","currentLevel","innerHTML","svg","dataset","addEventListener","setLevel","appendChild","push","alignment","currentAlignment","name","setAlignment","button","toggle","blockData","trim","toolsContent","getTextAlign","className","includes","undefined","parentNode","newHeader","replaceChild","tag","component","toLowerCase","typographyConfig","textAlignClass","remove","contentEditable","i18n","t","placeholder","find","levelItem","ALIGNMENT_ICONS","start","userSpecified","console","warn","availableLevels","filter","l","event","content","detail","tagName","reduce","prevLevel","currLevel","Math","abs","export","import","tags","icon","title"],"sources":["index.ts"],"sourcesContent":["import { API, HTMLPasteEvent } from \"@editorjs/editorjs\";\nimport { ALIGNMENTS, ALIGNMENT_ICONS, TextAlign, Alignment } from \"../utils\";\n\ninterface Typography {\n [key: string]: {\n label: string;\n component: string;\n className: string;\n };\n}\n\nexport interface HeaderData {\n text: string;\n level: number;\n textAlign?: TextAlign;\n alignment?: Alignment;\n className?: string;\n}\n\ninterface HeaderConfig {\n levels: number[];\n typography: Typography;\n placeholder?: string;\n defaultLevel?: number;\n}\n\ninterface HeaderArgs {\n data: HeaderData;\n config: HeaderConfig;\n api: any;\n readOnly: boolean;\n}\n\nclass Header {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly settingsButtons: any[];\n private readonly _CSS: any;\n private readonly _settings: HeaderConfig;\n private _data: HeaderData;\n private _element: any;\n private readonly alignments: Alignment[];\n private readonly typography: Typography;\n /**\n * Render plugin`s main Element and fill it with saved data\n *\n * @param {{data: HeaderData, config: HeaderConfig, api: object}}\n * data — previously saved data\n * config - user config for Tool\n * api - Editor.js API\n * readOnly - read only mode flag\n */\n constructor({ data, config, api, readOnly }: HeaderArgs) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.alignments = ALIGNMENTS;\n /**\n * Import typography from theme\n */\n this.typography = config.typography || null;\n\n /**\n * Styles\n *\n * @type {object}\n */\n this._CSS = {\n block: this.api.styles.block,\n settingsButton: this.api.styles.settingsButton,\n settingsButtonActive: this.api.styles.settingsButtonActive,\n wrapper: \"ce-header\"\n };\n\n /**\n * Tool's settings passed from Editor\n *\n * @type {HeaderConfig}\n * @private\n */\n this._settings = config;\n\n /**\n * Block's data\n *\n * @type {HeaderData}\n * @private\n */\n this._data = this.normalizeData(data);\n\n /**\n * List of settings buttons\n *\n * @type {HTMLElement[]}\n */\n this.settingsButtons = [];\n\n /**\n * Main Block wrapper\n *\n * @type {HTMLElement}\n * @private\n */\n this._element = this.getTag();\n }\n\n /**\n * Normalize input data\n *\n * @param {HeaderData} data - saved data to process\n *\n * @returns {HeaderData}\n * @private\n */\n normalizeData(data: Partial<HeaderData>): HeaderData {\n const newData: Partial<HeaderData> = {};\n\n if (typeof data !== \"object\") {\n data = {};\n }\n\n newData.text = data.text || \"\";\n newData.level = parseInt(data.level as unknown as string) || this.defaultLevel.number;\n newData.textAlign = data.textAlign || TextAlign.START;\n\n return newData as HeaderData;\n }\n\n /**\n * Return Tool's view\n *\n * @returns {HTMLHeadingElement}\n * @public\n */\n render() {\n return this._element;\n }\n\n /**\n * Create Block's settings block\n *\n * @returns {HTMLElement}\n */\n renderSettings() {\n const holder = document.createElement(\"DIV\");\n\n // do not add settings button, when only one level is configured\n if (this.levels.length <= 1) {\n return holder;\n }\n\n /** Add type selectors */\n this.levels.forEach(level => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentLevel.number === level.number) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = level.svg;\n\n /**\n * Save level to its button\n */\n selectTypeButton.dataset[\"level\"] = level.number + \"\";\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setLevel(level.number);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n /**\n * Add alignment selectors\n * */\n this.alignments.forEach(alignment => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentAlignment.name === alignment.name) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = alignment.svg;\n\n /**\n * Save alignment to its button\n */\n selectTypeButton.dataset[\"textAlign\"] = alignment.name;\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setAlignment(alignment);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n return holder;\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} level - level to set\n */\n setLevel(level: number): void {\n this.data = {\n level: level,\n text: this.data.text\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n parseInt(button.dataset.level) === level\n );\n });\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} alignment - level to set\n */\n setAlignment(alignment: Alignment) {\n this.data = {\n textAlign: alignment.name,\n text: this.data.text,\n level: this.data.level\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n button.dataset.textAlign === alignment.name\n );\n });\n }\n\n /**\n * Method that specified how to merge two Text blocks.\n * Called by Editor.js by backspace at the beginning of the Block\n *\n * @param {HeaderData} data - saved data to merger with current block\n * @public\n */\n merge(data: HeaderData): void {\n this.data = {\n text: this.data.text + data.text,\n level: this.data.level,\n alignment: this.data.alignment\n };\n }\n\n /**\n * Validate Text block data:\n * - check for emptiness\n *\n * @param {HeaderData} blockData — data received after saving\n * @returns {boolean} false if saved data is not correct, otherwise true\n * @public\n */\n validate(blockData: HeaderData): boolean {\n return blockData.text.trim() !== \"\";\n }\n\n /**\n * Extract Tool's data from the view\n *\n * @param {HTMLHeadingElement} toolsContent - Text tools rendered view\n * @returns {HeaderData} - saved data\n * @public\n */\n save(toolsContent: HTMLHeadingElement): HeaderData {\n return {\n text: toolsContent.innerHTML,\n level: this.currentLevel.number,\n textAlign: this.getTextAlign(toolsContent.className),\n className: toolsContent.className\n };\n }\n\n /**\n * Extract textAlign from className\n *\n * @param {string} className - heading element className\n * @returns {TextAlign} textAlign\n */\n getTextAlign(className: string): TextAlign {\n let textAlign = TextAlign.START;\n // Match className with alignment\n this.alignments.forEach(alignment => {\n if (className.includes(`ce-header-text--${alignment.name}`)) {\n textAlign = alignment.name;\n }\n });\n return textAlign;\n }\n\n /**\n * Allow Header to be converted to/from other blocks\n */\n static get conversionConfig() {\n return {\n export: \"text\", // use 'text' property for other blocks\n import: \"text\" // fill 'text' property from other block's export string\n };\n }\n\n /**\n * Sanitizer Rules\n */\n static get sanitize() {\n return {\n level: false,\n text: {}\n };\n }\n\n /**\n * Returns true to notify core that read-only is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get current Tools`s data\n *\n * @returns {HeaderData} Current data\n * @private\n */\n get data(): HeaderData {\n this._data.text = this._element.innerHTML;\n this._data.level = this.currentLevel.number;\n this._data.textAlign = this.currentAlignment.name;\n\n return this._data;\n }\n\n /**\n * Store data in plugin:\n * - at the this._data property\n * - at the HTML\n *\n * @param {HeaderData} data — data to set\n * @private\n */\n set data(data: HeaderData) {\n this._data = this.normalizeData(data);\n\n /**\n * If level is set and block in DOM\n * then replace it to a new block\n */\n if (data.level !== undefined && this._element.parentNode) {\n /**\n * Create a new tag\n *\n * @type {HTMLHeadingElement}\n */\n const newHeader = this.getTag();\n\n /**\n * Save Block's content\n */\n newHeader.innerHTML = this._element.innerHTML;\n\n /**\n * Replace blocks\n */\n this._element.parentNode.replaceChild(newHeader, this._element);\n\n /**\n * Save new block to private variable\n *\n * @type {HTMLHeadingElement}\n * @private\n */\n this._element = newHeader;\n }\n\n /**\n * If data.text was passed then update block's content\n */\n if (data.text !== undefined) {\n this._element.innerHTML = this._data.text || \"\";\n }\n }\n\n /**\n * Get tag for target level\n * By default returns second-leveled header\n *\n * @returns {HTMLElement}\n */\n getTag() {\n /**\n * Create element for current Block's level\n */\n const tag = document.createElement(this.currentLevel.tag);\n\n /**\n * Add text to block\n */\n tag.innerHTML = this._data.text || \"\";\n\n /**\n * Add styles class from typography\n */\n if (this.typography) {\n const component = this.currentLevel.tag.toLowerCase();\n const typographyConfig = this.typography[component];\n tag.classList.add(typographyConfig.className);\n } else {\n /**\n * Add styles class\n */\n tag.classList.add(this._CSS.wrapper);\n }\n\n /**\n * Add Alignment class\n */\n this.alignments.forEach(alignment => {\n const textAlignClass = `ce-header-text--${alignment.name}`;\n if (alignment.name === this._data.textAlign) {\n tag.classList.add(textAlignClass);\n } else {\n tag.classList.remove(textAlignClass);\n }\n });\n\n /**\n * Make tag editable\n */\n tag.contentEditable = this.readOnly ? \"false\" : \"true\";\n\n /**\n * Add Placeholder\n */\n tag.dataset[\"placeholder\"] = this.api.i18n.t(this._settings.placeholder || \"\");\n\n return tag;\n }\n\n /**\n * Get current level\n *\n * @returns {level}\n */\n get currentLevel() {\n let level = this.levels.find(levelItem => levelItem.number === this._data.level);\n\n if (!level) {\n level = this.defaultLevel;\n }\n\n return level;\n }\n\n /**\n * Get current alignment\n *\n * @returns {alignment}\n */\n get currentAlignment() {\n let alignment = this.alignments.find(alignment => alignment.name === this._data.textAlign);\n\n if (!alignment) {\n alignment = { name: TextAlign.START, svg: ALIGNMENT_ICONS.start };\n }\n\n return alignment;\n }\n\n /**\n * Return default level\n *\n * @returns {level}\n */\n get defaultLevel() {\n /**\n * User can specify own default level value\n */\n if (this._settings.defaultLevel) {\n const userSpecified = this.levels.find(levelItem => {\n return levelItem.number === this._settings.defaultLevel;\n });\n\n if (userSpecified) {\n return userSpecified;\n } else {\n console.warn(\n \"(ง'̀-'́)ง Heading Tool: the default level specified was not found in available levels\"\n );\n }\n }\n\n /**\n * With no additional options, there will be H2 by default\n *\n * @type {level}\n */\n return this.levels[1];\n }\n\n /**\n * @typedef {object} level\n * @property {number} number - level number\n * @property {string} tag - tag corresponds with level number\n * @property {string} svg - icon\n */\n\n /**\n * Available header levels\n *\n * @returns {level[]}\n */\n get levels() {\n const availableLevels = [\n {\n number: 1,\n tag: \"H1\",\n svg: '<svg width=\"16\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.14 1.494V4.98h4.62V1.494c0-.498.098-.871.293-1.12A.927.927 0 0 1 7.82 0c.322 0 .583.123.782.37.2.246.3.62.3 1.124v9.588c0 .503-.101.88-.303 1.128a.957.957 0 0 1-.779.374.921.921 0 0 1-.77-.378c-.193-.251-.29-.626-.29-1.124V6.989H2.14v4.093c0 .503-.1.88-.302 1.128a.957.957 0 0 1-.778.374.921.921 0 0 1-.772-.378C.096 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.285.374A.922.922 0 0 1 1.06 0c.321 0 .582.123.782.37.199.246.299.62.299 1.124zm11.653 9.985V5.27c-1.279.887-2.14 1.33-2.583 1.33a.802.802 0 0 1-.563-.228.703.703 0 0 1-.245-.529c0-.232.08-.402.241-.511.161-.11.446-.25.854-.424.61-.259 1.096-.532 1.462-.818a5.84 5.84 0 0 0 .97-.962c.282-.355.466-.573.552-.655.085-.082.246-.123.483-.123.267 0 .481.093.642.28.161.186.242.443.242.77v7.813c0 .914-.345 1.371-1.035 1.371-.307 0-.554-.093-.74-.28-.187-.186-.28-.461-.28-.825z\"/></svg>'\n },\n {\n number: 2,\n tag: \"H2\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm10.99 9.288h3.527c.351 0 .62.072.804.216.185.144.277.34.277.588 0 .22-.073.408-.22.56-.146.154-.368.23-.665.23h-4.972c-.338 0-.601-.093-.79-.28a.896.896 0 0 1-.284-.659c0-.162.06-.377.182-.645s.255-.478.399-.631a38.617 38.617 0 0 1 1.621-1.598c.482-.444.827-.735 1.034-.875.369-.261.676-.523.922-.787.245-.263.432-.534.56-.81.129-.278.193-.549.193-.815 0-.288-.069-.546-.206-.773a1.428 1.428 0 0 0-.56-.53 1.618 1.618 0 0 0-.774-.19c-.59 0-1.054.26-1.392.777-.045.068-.12.252-.226.554-.106.302-.225.534-.358.696-.133.162-.328.243-.585.243a.76.76 0 0 1-.56-.223c-.149-.148-.223-.351-.223-.608 0-.31.07-.635.21-.972.139-.338.347-.645.624-.92a3.093 3.093 0 0 1 1.054-.665c.426-.169.924-.253 1.496-.253.69 0 1.277.108 1.764.324.315.144.592.343.83.595.24.252.425.544.558.875.133.33.2.674.2 1.03 0 .558-.14 1.066-.416 1.523-.277.457-.56.815-.848 1.074-.288.26-.771.666-1.45 1.22-.677.554-1.142.984-1.394 1.29a3.836 3.836 0 0 0-.331.44z\"/></svg>'\n },\n {\n number: 3,\n tag: \"H3\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm11.61 4.919c.418 0 .778-.123 1.08-.368.301-.245.452-.597.452-1.055 0-.35-.12-.65-.36-.902-.241-.252-.566-.378-.974-.378-.277 0-.505.038-.684.116a1.1 1.1 0 0 0-.426.306 2.31 2.31 0 0 0-.296.49c-.093.2-.178.388-.255.565a.479.479 0 0 1-.245.225.965.965 0 0 1-.409.081.706.706 0 0 1-.5-.22c-.152-.148-.228-.345-.228-.59 0-.236.071-.484.214-.745a2.72 2.72 0 0 1 .627-.746 3.149 3.149 0 0 1 1.024-.568 4.122 4.122 0 0 1 1.368-.214c.44 0 .842.06 1.205.18.364.12.679.294.947.52.267.228.47.49.606.79.136.3.204.622.204.967 0 .454-.099.843-.296 1.168-.198.324-.48.64-.848.95.354.19.653.408.895.653.243.245.426.516.548.813.123.298.184.619.184.964 0 .413-.083.812-.248 1.198-.166.386-.41.73-.732 1.031a3.49 3.49 0 0 1-1.147.708c-.443.17-.932.256-1.467.256a3.512 3.512 0 0 1-1.464-.293 3.332 3.332 0 0 1-1.699-1.64c-.142-.314-.214-.573-.214-.777 0-.263.085-.475.255-.636a.89.89 0 0 1 .637-.242c.127 0 .25.037.367.112a.53.53 0 0 1 .232.27c.236.63.489 1.099.759 1.405.27.306.65.46 1.14.46a1.714 1.714 0 0 0 1.46-.824c.17-.273.256-.588.256-.947 0-.53-.145-.947-.436-1.249-.29-.302-.694-.453-1.212-.453-.09 0-.231.01-.422.028-.19.018-.313.027-.367.027-.25 0-.443-.062-.579-.187-.136-.125-.204-.299-.204-.521 0-.218.081-.394.245-.528.163-.134.406-.2.728-.2h.28z\"/></svg>'\n },\n {\n number: 4,\n tag: \"H4\",\n svg: '<svg width=\"20\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm13.003 10.09v-1.252h-3.38c-.427 0-.746-.097-.96-.29-.213-.193-.32-.456-.32-.788 0-.085.016-.171.048-.259.031-.088.078-.18.141-.276.063-.097.128-.19.195-.28.068-.09.15-.2.25-.33l3.568-4.774a5.44 5.44 0 0 1 .576-.683.763.763 0 0 1 .542-.212c.682 0 1.023.39 1.023 1.171v5.212h.29c.346 0 .623.047.832.142.208.094.313.3.313.62 0 .26-.086.45-.256.568-.17.12-.427.179-.768.179h-.41v1.252c0 .346-.077.603-.23.771-.152.168-.356.253-.612.253a.78.78 0 0 1-.61-.26c-.154-.173-.232-.427-.232-.764zm-2.895-2.76h2.895V4.91L12.26 8.823z\"/></svg>'\n },\n {\n number: 5,\n tag: \"H5\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm14.16 2.645h-3.234l-.388 2.205c.644-.344 1.239-.517 1.783-.517.436 0 .843.082 1.222.245.38.164.712.39.998.677.286.289.51.63.674 1.025.163.395.245.82.245 1.273 0 .658-.148 1.257-.443 1.797-.295.54-.72.97-1.276 1.287-.556.318-1.197.477-1.923.477-.813 0-1.472-.15-1.978-.45-.506-.3-.865-.643-1.076-1.031-.21-.388-.316-.727-.316-1.018 0-.177.073-.345.22-.504a.725.725 0 0 1 .556-.238c.381 0 .665.22.85.66.182.404.427.719.736.943.309.225.654.337 1.035.337.35 0 .656-.09.919-.272.263-.182.466-.431.61-.749.142-.318.214-.678.214-1.082 0-.436-.078-.808-.232-1.117a1.607 1.607 0 0 0-.62-.69 1.674 1.674 0 0 0-.864-.229c-.39 0-.67.048-.837.143-.168.095-.41.262-.725.5-.316.239-.576.358-.78.358a.843.843 0 0 1-.592-.242c-.173-.16-.259-.344-.259-.548 0-.022.025-.177.075-.463l.572-3.26c.063-.39.181-.675.354-.852.172-.177.454-.265.844-.265h3.595c.708 0 1.062.27 1.062.81a.711.711 0 0 1-.26.572c-.172.145-.426.218-.762.218z\"/></svg>'\n },\n {\n number: 6,\n tag: \"H6\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zM12.53 7.058a3.093 3.093 0 0 1 1.004-.814 2.734 2.734 0 0 1 1.214-.264c.43 0 .827.08 1.19.24.365.161.684.39.957.686.274.296.485.645.635 1.048a3.6 3.6 0 0 1 .223 1.262c0 .637-.145 1.216-.437 1.736-.292.52-.699.926-1.221 1.218-.522.292-1.114.438-1.774.438-.76 0-1.416-.186-1.967-.557-.552-.37-.974-.919-1.265-1.645-.292-.726-.438-1.613-.438-2.662 0-.855.088-1.62.265-2.293.176-.674.43-1.233.76-1.676.33-.443.73-.778 1.2-1.004.47-.226 1.006-.339 1.608-.339.579 0 1.089.113 1.53.34.44.225.773.506.997.84.224.335.335.656.335.964 0 .185-.07.354-.21.505a.698.698 0 0 1-.536.227.874.874 0 0 1-.529-.18 1.039 1.039 0 0 1-.36-.498 1.42 1.42 0 0 0-.495-.655 1.3 1.3 0 0 0-.786-.247c-.24 0-.479.069-.716.207a1.863 1.863 0 0 0-.6.56c-.33.479-.525 1.333-.584 2.563zm1.832 4.213c.456 0 .834-.186 1.133-.56.298-.373.447-.862.447-1.468 0-.412-.07-.766-.21-1.062a1.584 1.584 0 0 0-.577-.678 1.47 1.47 0 0 0-.807-.234c-.28 0-.548.074-.804.224-.255.149-.461.365-.617.647a2.024 2.024 0 0 0-.234.994c0 .61.158 1.12.475 1.527.316.407.714.61 1.194.61z\"/></svg>'\n }\n ];\n\n return this._settings.levels\n ? availableLevels.filter(l => this._settings.levels.includes(l.number))\n : availableLevels;\n }\n\n /**\n * Handle H1-H6 tags on paste to substitute it with header Tool\n *\n * @param {HTMLPasteEvent} event - event with pasted content\n */\n onPaste(event: HTMLPasteEvent) {\n const content = event.detail.data;\n\n /**\n * Define default level value\n *\n * @type {number}\n */\n let level = this.defaultLevel.number;\n\n switch (content.tagName) {\n case \"H1\":\n level = 1;\n break;\n case \"H2\":\n level = 2;\n break;\n case \"H3\":\n level = 3;\n break;\n case \"H4\":\n level = 4;\n break;\n case \"H5\":\n level = 5;\n break;\n case \"H6\":\n level = 6;\n break;\n }\n\n if (this._settings.levels) {\n // Fallback to nearest level when specified not available\n level = this._settings.levels.reduce((prevLevel, currLevel) => {\n return Math.abs(currLevel - level) < Math.abs(prevLevel - level)\n ? currLevel\n : prevLevel;\n });\n }\n\n this.data = {\n level,\n text: content.innerHTML\n };\n }\n\n /**\n * Used by Editor.js paste handling API.\n * Provides configuration to handle H1-H6 tags.\n *\n * @returns {{handler: (function(HTMLElement): {text: string}), tags: string[]}}\n */\n static get pasteConfig() {\n return {\n tags: [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"]\n };\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon:\n '<svg width=\"10\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 14\">\\n' +\n ' <path d=\"M7.6 8.15H2.25v4.525a1.125 1.125 0 0 1-2.25 0V1.125a1.125 1.125 0 1 1 2.25 0V5.9H7.6V1.125a1.125 1.125 0 0 1 2.25 0v11.55a1.125 1.125 0 0 1-2.25 0V8.15z\"/>\\n' +\n \"</svg>\",\n title: \"Heading\"\n };\n }\n}\n\nexport default Header;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Header","data","config","api","readOnly","alignments","ALIGNMENTS","typography","_CSS","block","styles","settingsButton","settingsButtonActive","wrapper","_settings","_data","normalizeData","settingsButtons","_element","getTag","newData","text","level","parseInt","defaultLevel","number","textAlign","TextAlign","START","holder","document","createElement","levels","length","forEach","selectTypeButton","classList","add","currentLevel","innerHTML","svg","dataset","addEventListener","setLevel","appendChild","push","alignment","currentAlignment","name","setAlignment","button","toggle","blockData","trim","toolsContent","getTextAlign","className","includes","undefined","parentNode","newHeader","replaceChild","tag","component","toLowerCase","typographyConfig","textAlignClass","remove","contentEditable","i18n","t","placeholder","find","levelItem","ALIGNMENT_ICONS","start","userSpecified","console","warn","availableLevels","filter","l","event","content","detail","tagName","reduce","prevLevel","currLevel","Math","abs","export","import","tags","icon","title"],"sources":["index.ts"],"sourcesContent":["import { API, HTMLPasteEvent } from \"@editorjs/editorjs\";\nimport { ALIGNMENTS, ALIGNMENT_ICONS, TextAlign, Alignment } from \"../utils\";\n\ninterface Typography {\n [key: string]: {\n label: string;\n component: string;\n className: string;\n };\n}\n\nexport interface HeaderData {\n text: string;\n level: number;\n textAlign?: TextAlign;\n alignment?: Alignment;\n className?: string;\n}\n\ninterface HeaderConfig {\n levels: number[];\n typography: Typography;\n placeholder?: string;\n defaultLevel?: number;\n}\n\ninterface HeaderArgs {\n data: HeaderData;\n config: HeaderConfig;\n api: any;\n readOnly: boolean;\n}\n\nclass Header {\n private readonly api: API;\n private readonly readOnly: boolean;\n private readonly settingsButtons: any[];\n private readonly _CSS: any;\n private readonly _settings: HeaderConfig;\n private _data: HeaderData;\n private _element: any;\n private readonly alignments: Alignment[];\n private readonly typography: Typography;\n /**\n * Render plugin`s main Element and fill it with saved data\n *\n * @param {{data: HeaderData, config: HeaderConfig, api: object}}\n * data — previously saved data\n * config - user config for Tool\n * api - Editor.js API\n * readOnly - read only mode flag\n */\n constructor({ data, config, api, readOnly }: HeaderArgs) {\n this.api = api;\n this.readOnly = readOnly;\n\n this.alignments = ALIGNMENTS;\n /**\n * Import typography from theme\n */\n this.typography = config.typography || null;\n\n /**\n * Styles\n *\n * @type {object}\n */\n this._CSS = {\n block: this.api.styles.block,\n settingsButton: this.api.styles.settingsButton,\n settingsButtonActive: this.api.styles.settingsButtonActive,\n wrapper: \"ce-header\"\n };\n\n /**\n * Tool's settings passed from Editor\n *\n * @type {HeaderConfig}\n * @private\n */\n this._settings = config;\n\n /**\n * Block's data\n *\n * @type {HeaderData}\n * @private\n */\n this._data = this.normalizeData(data);\n\n /**\n * List of settings buttons\n *\n * @type {HTMLElement[]}\n */\n this.settingsButtons = [];\n\n /**\n * Main Block wrapper\n *\n * @type {HTMLElement}\n * @private\n */\n this._element = this.getTag();\n }\n\n /**\n * Normalize input data\n *\n * @param {HeaderData} data - saved data to process\n *\n * @returns {HeaderData}\n * @private\n */\n normalizeData(data: Partial<HeaderData>): HeaderData {\n const newData: Partial<HeaderData> = {};\n\n if (typeof data !== \"object\") {\n data = {};\n }\n\n newData.text = data.text || \"\";\n newData.level = parseInt(data.level as unknown as string) || this.defaultLevel.number;\n newData.textAlign = data.textAlign || TextAlign.START;\n\n return newData as HeaderData;\n }\n\n /**\n * Return Tool's view\n *\n * @returns {HTMLHeadingElement}\n * @public\n */\n render() {\n return this._element;\n }\n\n /**\n * Create Block's settings block\n *\n * @returns {HTMLElement}\n */\n renderSettings() {\n const holder = document.createElement(\"DIV\");\n\n // do not add settings button, when only one level is configured\n if (this.levels.length <= 1) {\n return holder;\n }\n\n /** Add type selectors */\n this.levels.forEach(level => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentLevel.number === level.number) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = level.svg;\n\n /**\n * Save level to its button\n */\n selectTypeButton.dataset[\"level\"] = level.number + \"\";\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setLevel(level.number);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n /**\n * Add alignment selectors\n * */\n this.alignments.forEach(alignment => {\n const selectTypeButton = document.createElement(\"SPAN\");\n\n selectTypeButton.classList.add(this._CSS.settingsButton);\n\n /**\n * Highlight current level button\n */\n if (this.currentAlignment.name === alignment.name) {\n selectTypeButton.classList.add(this._CSS.settingsButtonActive);\n }\n\n /**\n * Add SVG icon\n */\n selectTypeButton.innerHTML = alignment.svg;\n\n /**\n * Save alignment to its button\n */\n selectTypeButton.dataset[\"textAlign\"] = alignment.name;\n\n /**\n * Set up click handler\n */\n selectTypeButton.addEventListener(\"click\", () => {\n this.setAlignment(alignment);\n });\n\n /**\n * Append settings button to holder\n */\n holder.appendChild(selectTypeButton);\n\n /**\n * Save settings buttons\n */\n this.settingsButtons.push(selectTypeButton);\n });\n\n return holder;\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} level - level to set\n */\n setLevel(level: number): void {\n this.data = {\n level: level,\n text: this.data.text\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n parseInt(button.dataset.level) === level\n );\n });\n }\n\n /**\n * Callback for Block's settings buttons\n *\n * @param {number} alignment - level to set\n */\n setAlignment(alignment: Alignment) {\n this.data = {\n textAlign: alignment.name,\n text: this.data.text,\n level: this.data.level\n };\n\n /**\n * Highlight button by selected level\n */\n this.settingsButtons.forEach(button => {\n button.classList.toggle(\n this._CSS.settingsButtonActive,\n button.dataset.textAlign === alignment.name\n );\n });\n }\n\n /**\n * Method that specified how to merge two Text blocks.\n * Called by Editor.js by backspace at the beginning of the Block\n *\n * @param {HeaderData} data - saved data to merger with current block\n * @public\n */\n merge(data: HeaderData): void {\n this.data = {\n text: this.data.text + data.text,\n level: this.data.level,\n alignment: this.data.alignment\n };\n }\n\n /**\n * Validate Text block data:\n * - check for emptiness\n *\n * @param {HeaderData} blockData — data received after saving\n * @returns {boolean} false if saved data is not correct, otherwise true\n * @public\n */\n validate(blockData: HeaderData): boolean {\n return blockData.text.trim() !== \"\";\n }\n\n /**\n * Extract Tool's data from the view\n *\n * @param {HTMLHeadingElement} toolsContent - Text tools rendered view\n * @returns {HeaderData} - saved data\n * @public\n */\n save(toolsContent: HTMLHeadingElement): HeaderData {\n return {\n text: toolsContent.innerHTML,\n level: this.currentLevel.number,\n textAlign: this.getTextAlign(toolsContent.className),\n className: toolsContent.className\n };\n }\n\n /**\n * Extract textAlign from className\n *\n * @param {string} className - heading element className\n * @returns {TextAlign} textAlign\n */\n getTextAlign(className: string): TextAlign {\n let textAlign = TextAlign.START;\n // Match className with alignment\n this.alignments.forEach(alignment => {\n if (className.includes(`ce-header-text--${alignment.name}`)) {\n textAlign = alignment.name;\n }\n });\n return textAlign;\n }\n\n /**\n * Allow Header to be converted to/from other blocks\n */\n static get conversionConfig() {\n return {\n export: \"text\", // use 'text' property for other blocks\n import: \"text\" // fill 'text' property from other block's export string\n };\n }\n\n /**\n * Sanitizer Rules\n */\n static get sanitize() {\n return {\n level: false,\n text: {}\n };\n }\n\n /**\n * Returns true to notify core that read-only is supported\n *\n * @returns {boolean}\n */\n static get isReadOnlySupported() {\n return true;\n }\n\n /**\n * Get current Tools`s data\n *\n * @returns {HeaderData} Current data\n * @private\n */\n get data(): HeaderData {\n this._data.text = this._element.innerHTML;\n this._data.level = this.currentLevel.number;\n this._data.textAlign = this.currentAlignment.name;\n\n return this._data;\n }\n\n /**\n * Store data in plugin:\n * - at the this._data property\n * - at the HTML\n *\n * @param {HeaderData} data — data to set\n * @private\n */\n set data(data: HeaderData) {\n this._data = this.normalizeData(data);\n\n /**\n * If level is set and block in DOM\n * then replace it to a new block\n */\n if (data.level !== undefined && this._element.parentNode) {\n /**\n * Create a new tag\n *\n * @type {HTMLHeadingElement}\n */\n const newHeader = this.getTag();\n\n /**\n * Save Block's content\n */\n newHeader.innerHTML = this._element.innerHTML;\n\n /**\n * Replace blocks\n */\n this._element.parentNode.replaceChild(newHeader, this._element);\n\n /**\n * Save new block to private variable\n *\n * @type {HTMLHeadingElement}\n * @private\n */\n this._element = newHeader;\n }\n\n /**\n * If data.text was passed then update block's content\n */\n if (data.text !== undefined) {\n this._element.innerHTML = this._data.text || \"\";\n }\n }\n\n /**\n * Get tag for target level\n * By default returns second-leveled header\n *\n * @returns {HTMLElement}\n */\n getTag() {\n /**\n * Create element for current Block's level\n */\n const tag = document.createElement(this.currentLevel.tag);\n\n /**\n * Add text to block\n */\n tag.innerHTML = this._data.text || \"\";\n\n /**\n * Add styles class from typography\n */\n if (this.typography) {\n const component = this.currentLevel.tag.toLowerCase();\n const typographyConfig = this.typography[component];\n tag.classList.add(typographyConfig.className);\n } else {\n /**\n * Add styles class\n */\n tag.classList.add(this._CSS.wrapper);\n }\n\n /**\n * Add Alignment class\n */\n this.alignments.forEach(alignment => {\n const textAlignClass = `ce-header-text--${alignment.name}`;\n if (alignment.name === this._data.textAlign) {\n tag.classList.add(textAlignClass);\n } else {\n tag.classList.remove(textAlignClass);\n }\n });\n\n /**\n * Make tag editable\n */\n tag.contentEditable = this.readOnly ? \"false\" : \"true\";\n\n /**\n * Add Placeholder\n */\n tag.dataset[\"placeholder\"] = this.api.i18n.t(this._settings.placeholder || \"\");\n\n return tag;\n }\n\n /**\n * Get current level\n *\n * @returns {level}\n */\n get currentLevel() {\n let level = this.levels.find(levelItem => levelItem.number === this._data.level);\n\n if (!level) {\n level = this.defaultLevel;\n }\n\n return level;\n }\n\n /**\n * Get current alignment\n *\n * @returns {alignment}\n */\n get currentAlignment() {\n let alignment = this.alignments.find(alignment => alignment.name === this._data.textAlign);\n\n if (!alignment) {\n alignment = { name: TextAlign.START, svg: ALIGNMENT_ICONS.start };\n }\n\n return alignment;\n }\n\n /**\n * Return default level\n *\n * @returns {level}\n */\n get defaultLevel() {\n /**\n * User can specify own default level value\n */\n if (this._settings.defaultLevel) {\n const userSpecified = this.levels.find(levelItem => {\n return levelItem.number === this._settings.defaultLevel;\n });\n\n if (userSpecified) {\n return userSpecified;\n } else {\n console.warn(\n \"(ง'̀-'́)ง Heading Tool: the default level specified was not found in available levels\"\n );\n }\n }\n\n /**\n * With no additional options, there will be H2 by default\n *\n * @type {level}\n */\n return this.levels[1];\n }\n\n /**\n * @typedef {object} level\n * @property {number} number - level number\n * @property {string} tag - tag corresponds with level number\n * @property {string} svg - icon\n */\n\n /**\n * Available header levels\n *\n * @returns {level[]}\n */\n get levels() {\n const availableLevels = [\n {\n number: 1,\n tag: \"H1\",\n svg: '<svg width=\"16\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.14 1.494V4.98h4.62V1.494c0-.498.098-.871.293-1.12A.927.927 0 0 1 7.82 0c.322 0 .583.123.782.37.2.246.3.62.3 1.124v9.588c0 .503-.101.88-.303 1.128a.957.957 0 0 1-.779.374.921.921 0 0 1-.77-.378c-.193-.251-.29-.626-.29-1.124V6.989H2.14v4.093c0 .503-.1.88-.302 1.128a.957.957 0 0 1-.778.374.921.921 0 0 1-.772-.378C.096 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.285.374A.922.922 0 0 1 1.06 0c.321 0 .582.123.782.37.199.246.299.62.299 1.124zm11.653 9.985V5.27c-1.279.887-2.14 1.33-2.583 1.33a.802.802 0 0 1-.563-.228.703.703 0 0 1-.245-.529c0-.232.08-.402.241-.511.161-.11.446-.25.854-.424.61-.259 1.096-.532 1.462-.818a5.84 5.84 0 0 0 .97-.962c.282-.355.466-.573.552-.655.085-.082.246-.123.483-.123.267 0 .481.093.642.28.161.186.242.443.242.77v7.813c0 .914-.345 1.371-1.035 1.371-.307 0-.554-.093-.74-.28-.187-.186-.28-.461-.28-.825z\"/></svg>'\n },\n {\n number: 2,\n tag: \"H2\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm10.99 9.288h3.527c.351 0 .62.072.804.216.185.144.277.34.277.588 0 .22-.073.408-.22.56-.146.154-.368.23-.665.23h-4.972c-.338 0-.601-.093-.79-.28a.896.896 0 0 1-.284-.659c0-.162.06-.377.182-.645s.255-.478.399-.631a38.617 38.617 0 0 1 1.621-1.598c.482-.444.827-.735 1.034-.875.369-.261.676-.523.922-.787.245-.263.432-.534.56-.81.129-.278.193-.549.193-.815 0-.288-.069-.546-.206-.773a1.428 1.428 0 0 0-.56-.53 1.618 1.618 0 0 0-.774-.19c-.59 0-1.054.26-1.392.777-.045.068-.12.252-.226.554-.106.302-.225.534-.358.696-.133.162-.328.243-.585.243a.76.76 0 0 1-.56-.223c-.149-.148-.223-.351-.223-.608 0-.31.07-.635.21-.972.139-.338.347-.645.624-.92a3.093 3.093 0 0 1 1.054-.665c.426-.169.924-.253 1.496-.253.69 0 1.277.108 1.764.324.315.144.592.343.83.595.24.252.425.544.558.875.133.33.2.674.2 1.03 0 .558-.14 1.066-.416 1.523-.277.457-.56.815-.848 1.074-.288.26-.771.666-1.45 1.22-.677.554-1.142.984-1.394 1.29a3.836 3.836 0 0 0-.331.44z\"/></svg>'\n },\n {\n number: 3,\n tag: \"H3\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm11.61 4.919c.418 0 .778-.123 1.08-.368.301-.245.452-.597.452-1.055 0-.35-.12-.65-.36-.902-.241-.252-.566-.378-.974-.378-.277 0-.505.038-.684.116a1.1 1.1 0 0 0-.426.306 2.31 2.31 0 0 0-.296.49c-.093.2-.178.388-.255.565a.479.479 0 0 1-.245.225.965.965 0 0 1-.409.081.706.706 0 0 1-.5-.22c-.152-.148-.228-.345-.228-.59 0-.236.071-.484.214-.745a2.72 2.72 0 0 1 .627-.746 3.149 3.149 0 0 1 1.024-.568 4.122 4.122 0 0 1 1.368-.214c.44 0 .842.06 1.205.18.364.12.679.294.947.52.267.228.47.49.606.79.136.3.204.622.204.967 0 .454-.099.843-.296 1.168-.198.324-.48.64-.848.95.354.19.653.408.895.653.243.245.426.516.548.813.123.298.184.619.184.964 0 .413-.083.812-.248 1.198-.166.386-.41.73-.732 1.031a3.49 3.49 0 0 1-1.147.708c-.443.17-.932.256-1.467.256a3.512 3.512 0 0 1-1.464-.293 3.332 3.332 0 0 1-1.699-1.64c-.142-.314-.214-.573-.214-.777 0-.263.085-.475.255-.636a.89.89 0 0 1 .637-.242c.127 0 .25.037.367.112a.53.53 0 0 1 .232.27c.236.63.489 1.099.759 1.405.27.306.65.46 1.14.46a1.714 1.714 0 0 0 1.46-.824c.17-.273.256-.588.256-.947 0-.53-.145-.947-.436-1.249-.29-.302-.694-.453-1.212-.453-.09 0-.231.01-.422.028-.19.018-.313.027-.367.027-.25 0-.443-.062-.579-.187-.136-.125-.204-.299-.204-.521 0-.218.081-.394.245-.528.163-.134.406-.2.728-.2h.28z\"/></svg>'\n },\n {\n number: 4,\n tag: \"H4\",\n svg: '<svg width=\"20\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm13.003 10.09v-1.252h-3.38c-.427 0-.746-.097-.96-.29-.213-.193-.32-.456-.32-.788 0-.085.016-.171.048-.259.031-.088.078-.18.141-.276.063-.097.128-.19.195-.28.068-.09.15-.2.25-.33l3.568-4.774a5.44 5.44 0 0 1 .576-.683.763.763 0 0 1 .542-.212c.682 0 1.023.39 1.023 1.171v5.212h.29c.346 0 .623.047.832.142.208.094.313.3.313.62 0 .26-.086.45-.256.568-.17.12-.427.179-.768.179h-.41v1.252c0 .346-.077.603-.23.771-.152.168-.356.253-.612.253a.78.78 0 0 1-.61-.26c-.154-.173-.232-.427-.232-.764zm-2.895-2.76h2.895V4.91L12.26 8.823z\"/></svg>'\n },\n {\n number: 5,\n tag: \"H5\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zm14.16 2.645h-3.234l-.388 2.205c.644-.344 1.239-.517 1.783-.517.436 0 .843.082 1.222.245.38.164.712.39.998.677.286.289.51.63.674 1.025.163.395.245.82.245 1.273 0 .658-.148 1.257-.443 1.797-.295.54-.72.97-1.276 1.287-.556.318-1.197.477-1.923.477-.813 0-1.472-.15-1.978-.45-.506-.3-.865-.643-1.076-1.031-.21-.388-.316-.727-.316-1.018 0-.177.073-.345.22-.504a.725.725 0 0 1 .556-.238c.381 0 .665.22.85.66.182.404.427.719.736.943.309.225.654.337 1.035.337.35 0 .656-.09.919-.272.263-.182.466-.431.61-.749.142-.318.214-.678.214-1.082 0-.436-.078-.808-.232-1.117a1.607 1.607 0 0 0-.62-.69 1.674 1.674 0 0 0-.864-.229c-.39 0-.67.048-.837.143-.168.095-.41.262-.725.5-.316.239-.576.358-.78.358a.843.843 0 0 1-.592-.242c-.173-.16-.259-.344-.259-.548 0-.022.025-.177.075-.463l.572-3.26c.063-.39.181-.675.354-.852.172-.177.454-.265.844-.265h3.595c.708 0 1.062.27 1.062.81a.711.711 0 0 1-.26.572c-.172.145-.426.218-.762.218z\"/></svg>'\n },\n {\n number: 6,\n tag: \"H6\",\n svg: '<svg width=\"18\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2.152 1.494V4.98h4.646V1.494c0-.498.097-.871.293-1.12A.934.934 0 0 1 7.863 0c.324 0 .586.123.786.37.2.246.301.62.301 1.124v9.588c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378c-.194-.251-.29-.626-.29-1.124V6.989H2.152v4.093c0 .503-.101.88-.304 1.128a.964.964 0 0 1-.783.374.928.928 0 0 1-.775-.378C.097 11.955 0 11.58 0 11.082V1.494C0 .996.095.623.286.374A.929.929 0 0 1 1.066 0c.323 0 .585.123.786.37.2.246.3.62.3 1.124zM12.53 7.058a3.093 3.093 0 0 1 1.004-.814 2.734 2.734 0 0 1 1.214-.264c.43 0 .827.08 1.19.24.365.161.684.39.957.686.274.296.485.645.635 1.048a3.6 3.6 0 0 1 .223 1.262c0 .637-.145 1.216-.437 1.736-.292.52-.699.926-1.221 1.218-.522.292-1.114.438-1.774.438-.76 0-1.416-.186-1.967-.557-.552-.37-.974-.919-1.265-1.645-.292-.726-.438-1.613-.438-2.662 0-.855.088-1.62.265-2.293.176-.674.43-1.233.76-1.676.33-.443.73-.778 1.2-1.004.47-.226 1.006-.339 1.608-.339.579 0 1.089.113 1.53.34.44.225.773.506.997.84.224.335.335.656.335.964 0 .185-.07.354-.21.505a.698.698 0 0 1-.536.227.874.874 0 0 1-.529-.18 1.039 1.039 0 0 1-.36-.498 1.42 1.42 0 0 0-.495-.655 1.3 1.3 0 0 0-.786-.247c-.24 0-.479.069-.716.207a1.863 1.863 0 0 0-.6.56c-.33.479-.525 1.333-.584 2.563zm1.832 4.213c.456 0 .834-.186 1.133-.56.298-.373.447-.862.447-1.468 0-.412-.07-.766-.21-1.062a1.584 1.584 0 0 0-.577-.678 1.47 1.47 0 0 0-.807-.234c-.28 0-.548.074-.804.224-.255.149-.461.365-.617.647a2.024 2.024 0 0 0-.234.994c0 .61.158 1.12.475 1.527.316.407.714.61 1.194.61z\"/></svg>'\n }\n ];\n\n return this._settings.levels\n ? availableLevels.filter(l => this._settings.levels.includes(l.number))\n : availableLevels;\n }\n\n /**\n * Handle H1-H6 tags on paste to substitute it with header Tool\n *\n * @param {HTMLPasteEvent} event - event with pasted content\n */\n onPaste(event: HTMLPasteEvent) {\n const content = event.detail.data;\n\n /**\n * Define default level value\n *\n * @type {number}\n */\n let level = this.defaultLevel.number;\n\n switch (content.tagName) {\n case \"H1\":\n level = 1;\n break;\n case \"H2\":\n level = 2;\n break;\n case \"H3\":\n level = 3;\n break;\n case \"H4\":\n level = 4;\n break;\n case \"H5\":\n level = 5;\n break;\n case \"H6\":\n level = 6;\n break;\n }\n\n if (this._settings.levels) {\n // Fallback to nearest level when specified not available\n level = this._settings.levels.reduce((prevLevel, currLevel) => {\n return Math.abs(currLevel - level) < Math.abs(prevLevel - level)\n ? currLevel\n : prevLevel;\n });\n }\n\n this.data = {\n level,\n text: content.innerHTML\n };\n }\n\n /**\n * Used by Editor.js paste handling API.\n * Provides configuration to handle H1-H6 tags.\n *\n * @returns {{handler: (function(HTMLElement): {text: string}), tags: string[]}}\n */\n static get pasteConfig() {\n return {\n tags: [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"]\n };\n }\n\n /**\n * Get Tool toolbox settings\n * icon - Tool icon's SVG\n * title - title to show in toolbox\n *\n * @returns {{icon: string, title: string}}\n */\n static get toolbox() {\n return {\n icon:\n '<svg width=\"10\" height=\"14\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 14\">\\n' +\n ' <path d=\"M7.6 8.15H2.25v4.525a1.125 1.125 0 0 1-2.25 0V1.125a1.125 1.125 0 1 1 2.25 0V5.9H7.6V1.125a1.125 1.125 0 0 1 2.25 0v11.55a1.125 1.125 0 0 1-2.25 0V8.15z\"/>\\n' +\n \"</svg>\",\n title: \"Heading\"\n };\n }\n}\n\nexport default Header;\n"],"mappings":"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"}
@@ -1,44 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _ui = _interopRequireDefault(require("./ui"));
17
-
18
12
  var _tunes = _interopRequireDefault(require("./tunes"));
19
-
20
13
  var _svgs = _interopRequireDefault(require("./svgs"));
21
-
22
14
  var defaultGetFileSrc = function defaultGetFileSrc(file) {
23
15
  if (typeof file === "string") {
24
16
  return file;
25
17
  }
26
-
27
18
  return file.src;
28
19
  };
29
-
30
20
  var defaultOnSelectFile = function defaultOnSelectFile(file) {
31
21
  return file.src;
32
22
  };
33
-
34
23
  var ImageTool = /*#__PURE__*/function () {
35
24
  function ImageTool(_ref) {
36
25
  var _this = this;
37
-
38
26
  var data = _ref.data,
39
- config = _ref.config,
40
- api = _ref.api,
41
- readOnly = _ref.readOnly;
27
+ config = _ref.config,
28
+ api = _ref.api,
29
+ readOnly = _ref.readOnly;
42
30
  (0, _classCallCheck2.default)(this, ImageTool);
43
31
  (0, _defineProperty2.default)(this, "api", void 0);
44
32
  (0, _defineProperty2.default)(this, "readOnly", void 0);
@@ -54,10 +42,10 @@ var ImageTool = /*#__PURE__*/function () {
54
42
  actions: config.actions || [],
55
43
  context: config.context
56
44
  };
45
+
57
46
  /**
58
47
  * Module for working with UI
59
48
  */
60
-
61
49
  this.ui = new _ui.default({
62
50
  api: api,
63
51
  config: this.config,
@@ -68,10 +56,10 @@ var ImageTool = /*#__PURE__*/function () {
68
56
  },
69
57
  readOnly: readOnly
70
58
  });
59
+
71
60
  /**
72
61
  * Module for working with tunes
73
62
  */
74
-
75
63
  this.tunes = new _tunes.default({
76
64
  api: api,
77
65
  actions: this.config.actions,
@@ -79,13 +67,14 @@ var ImageTool = /*#__PURE__*/function () {
79
67
  return _this.tuneToggled(tuneName);
80
68
  }
81
69
  });
70
+
82
71
  /**
83
72
  * Set saved state
84
73
  */
85
-
86
74
  this._data = {};
87
75
  this.data = data;
88
76
  }
77
+
89
78
  /**
90
79
  * Renders Block content
91
80
  *
@@ -93,13 +82,12 @@ var ImageTool = /*#__PURE__*/function () {
93
82
  *
94
83
  * @returns {HTMLDivElement}
95
84
  */
96
-
97
-
98
85
  (0, _createClass2.default)(ImageTool, [{
99
86
  key: "render",
100
87
  value: function render() {
101
88
  return this.ui.render(this.data);
102
89
  }
90
+
103
91
  /**
104
92
  * Return Block data
105
93
  *
@@ -107,7 +95,6 @@ var ImageTool = /*#__PURE__*/function () {
107
95
  *
108
96
  * @returns {ImageToolData}
109
97
  */
110
-
111
98
  }, {
112
99
  key: "save",
113
100
  value: function save() {
@@ -115,6 +102,7 @@ var ImageTool = /*#__PURE__*/function () {
115
102
  this._data.caption = caption.innerHTML;
116
103
  return this.data;
117
104
  }
105
+
118
106
  /**
119
107
  * Makes buttons with tunes: stretch image
120
108
  *
@@ -122,12 +110,12 @@ var ImageTool = /*#__PURE__*/function () {
122
110
  *
123
111
  * @returns {Element}
124
112
  */
125
-
126
113
  }, {
127
114
  key: "renderSettings",
128
115
  value: function renderSettings() {
129
116
  return this.tunes.render(this.data);
130
117
  }
118
+
131
119
  /**
132
120
  * Stores all Tool's data
133
121
  *
@@ -135,7 +123,6 @@ var ImageTool = /*#__PURE__*/function () {
135
123
  *
136
124
  * @param {ImageToolData} data - data in Image Tool format
137
125
  */
138
-
139
126
  }, {
140
127
  key: "data",
141
128
  get:
@@ -149,27 +136,24 @@ var ImageTool = /*#__PURE__*/function () {
149
136
  function get() {
150
137
  return this._data;
151
138
  }
139
+
152
140
  /**
153
141
  * Set new image file
154
142
  *
155
143
  * @private
156
144
  *
157
145
  * @param {object} file - uploaded file data
158
- */
159
- ,
146
+ */,
160
147
  set: function set(data) {
161
148
  var _this2 = this;
162
-
163
149
  this.image = data.file;
164
150
  this._data.caption = data.caption || "";
165
151
  this.ui.fillCaption(this._data.caption);
166
-
167
152
  _tunes.default.tunes.forEach(function (_ref2) {
168
153
  var name = _ref2.name;
169
154
  var tune = name;
170
155
  var initialValue = data[tune];
171
156
  var value = initialValue === true || initialValue === "true";
172
-
173
157
  _this2.setTune(tune, value);
174
158
  });
175
159
  }
@@ -177,11 +161,11 @@ var ImageTool = /*#__PURE__*/function () {
177
161
  key: "image",
178
162
  set: function set(file) {
179
163
  this._data.file = file || {};
180
-
181
164
  if (file) {
182
165
  this.ui.fillImage(this.config.getFileSrc(file));
183
166
  }
184
167
  }
168
+
185
169
  /**
186
170
  * Callback fired when Block Tune is activated
187
171
  *
@@ -190,13 +174,13 @@ var ImageTool = /*#__PURE__*/function () {
190
174
  * @param {string} tuneName - tune that has been clicked
191
175
  * @returns {void}
192
176
  */
193
-
194
177
  }, {
195
178
  key: "tuneToggled",
196
179
  value: function tuneToggled(tuneName) {
197
180
  // inverse tune state
198
181
  this.setTune(tuneName, !this._data[tuneName]);
199
182
  }
183
+
200
184
  /**
201
185
  * Set one tune
202
186
  *
@@ -204,22 +188,18 @@ var ImageTool = /*#__PURE__*/function () {
204
188
  * @param {boolean} value - tune state
205
189
  * @returns {void}
206
190
  */
207
-
208
191
  }, {
209
192
  key: "setTune",
210
193
  value: function setTune(tuneName, value) {
211
194
  var _this3 = this;
212
-
213
195
  this._data[tuneName] = value;
214
196
  this.ui.applyTune(tuneName, value);
215
-
216
197
  if (tuneName === "stretched") {
217
198
  /**
218
199
  * Wait until the API is ready
219
200
  */
220
201
  Promise.resolve().then(function () {
221
202
  var blockId = _this3.api.blocks.getCurrentBlockIndex();
222
-
223
203
  _this3.api.blocks.stretchBlock(blockId, value);
224
204
  }).catch(function (err) {
225
205
  console.error(err);
@@ -242,6 +222,7 @@ var ImageTool = /*#__PURE__*/function () {
242
222
  function get() {
243
223
  return true;
244
224
  }
225
+
245
226
  /**
246
227
  * Get Tool toolbox settings
247
228
  * icon - Tool icon's SVG
@@ -249,7 +230,6 @@ var ImageTool = /*#__PURE__*/function () {
249
230
  *
250
231
  * @returns {{icon: string, title: string}}
251
232
  */
252
-
253
233
  }, {
254
234
  key: "toolbox",
255
235
  get: function get() {
@@ -261,5 +241,4 @@ var ImageTool = /*#__PURE__*/function () {
261
241
  }]);
262
242
  return ImageTool;
263
243
  }();
264
-
265
244
  exports.default = ImageTool;
@@ -1 +1 @@
1
- {"version":3,"names":["defaultGetFileSrc","file","src","defaultOnSelectFile","ImageTool","data","config","api","readOnly","getFileSrc","onSelectFile","actions","context","ui","Ui","showFileManager","image","tunes","Tunes","onChange","tuneName","tuneToggled","_data","render","caption","nodes","innerHTML","fillCaption","forEach","name","tune","initialValue","value","setTune","fillImage","applyTune","Promise","resolve","then","blockId","blocks","getCurrentBlockIndex","stretchBlock","catch","err","console","error","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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"}
1
+ {"version":3,"names":["defaultGetFileSrc","file","src","defaultOnSelectFile","ImageTool","data","config","api","readOnly","getFileSrc","onSelectFile","actions","context","ui","Ui","showFileManager","image","tunes","Tunes","onChange","tuneName","tuneToggled","_data","render","caption","nodes","innerHTML","fillCaption","forEach","name","tune","initialValue","value","setTune","fillImage","applyTune","Promise","resolve","then","blockId","blocks","getCurrentBlockIndex","stretchBlock","catch","err","console","error","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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"}
@@ -1 +1 @@
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":";;;;;;eAAe;EACXA,UAAU,8ZADC;EAEXC,SAAS,sZAFE;EAGXC,OAAO;AAHI,C"}
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":";;;;;;eAAe;EACXA,UAAU,8ZAAoZ;EAC9ZC,SAAS,sZAA4Y;EACrZC,OAAO;AACX,CAAC;AAAA"}
@@ -1,22 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _ui = require("./ui");
17
-
18
12
  var _svgs = _interopRequireDefault(require("./svgs"));
19
-
20
13
  /**
21
14
  * Working with Block Tunes
22
15
  */
@@ -29,8 +22,8 @@ var Tunes = /*#__PURE__*/function () {
29
22
  */
30
23
  function Tunes(_ref) {
31
24
  var api = _ref.api,
32
- actions = _ref.actions,
33
- onChange = _ref.onChange;
25
+ actions = _ref.actions,
26
+ onChange = _ref.onChange;
34
27
  (0, _classCallCheck2.default)(this, Tunes);
35
28
  (0, _defineProperty2.default)(this, "api", void 0);
36
29
  (0, _defineProperty2.default)(this, "actions", void 0);
@@ -41,13 +34,12 @@ var Tunes = /*#__PURE__*/function () {
41
34
  this.onChange = onChange;
42
35
  this.buttons = [];
43
36
  }
37
+
44
38
  /**
45
39
  * Available Image tunes
46
40
  *
47
41
  * @returns {{name: string, icon: string, title: string}[]}
48
42
  */
49
-
50
-
51
43
  (0, _createClass2.default)(Tunes, [{
52
44
  key: "CSS",
53
45
  get:
@@ -64,24 +56,22 @@ var Tunes = /*#__PURE__*/function () {
64
56
  buttonActive: this.api.styles.settingsButtonActive
65
57
  };
66
58
  }
59
+
67
60
  /**
68
61
  * Makes buttons with tunes: stretch image
69
62
  *
70
63
  * @param {ImageToolData} toolData - generate Elements of tunes
71
64
  * @returns {Element}
72
65
  */
73
-
74
66
  }, {
75
67
  key: "render",
76
68
  value: function render(toolData) {
77
69
  var _this = this;
78
-
79
70
  var wrapper = (0, _ui.make)("div", this.CSS.wrapper);
80
71
  this.buttons = [];
81
72
  var tunes = Tunes.tunes.concat(this.actions);
82
73
  tunes.forEach(function (tune) {
83
74
  var title = _this.api.i18n.t(tune.title);
84
-
85
75
  var el = (0, _ui.make)("div", [_this.CSS.buttonBase, _this.CSS.button], {
86
76
  innerHTML: tune.icon,
87
77
  title: title
@@ -92,24 +82,21 @@ var Tunes = /*#__PURE__*/function () {
92
82
  el.dataset["tune"] = tune.name;
93
83
  var name = tune.name;
94
84
  el.classList.toggle(_this.CSS.buttonActive, !!toolData[name]);
95
-
96
85
  _this.buttons.push(el);
97
-
98
86
  _this.api.tooltip.onHover(el, title, {
99
87
  placement: "top"
100
88
  });
101
-
102
89
  wrapper.appendChild(el);
103
90
  });
104
91
  return wrapper;
105
92
  }
93
+
106
94
  /**
107
95
  * Clicks to one of the tunes
108
96
  *
109
97
  * @param {string} tuneName - clicked tune name
110
98
  * @param {Function} customFunction - function to execute on click
111
99
  */
112
-
113
100
  }, {
114
101
  key: "tuneClicked",
115
102
  value: function tuneClicked(tuneName, customFunction) {
@@ -118,15 +105,12 @@ var Tunes = /*#__PURE__*/function () {
118
105
  return false;
119
106
  }
120
107
  }
121
-
122
108
  var button = this.buttons.find(function (el) {
123
109
  return el.dataset["tune"] === tuneName;
124
110
  });
125
-
126
111
  if (button) {
127
112
  button.classList.toggle(this.CSS.buttonActive, !button.classList.contains(this.CSS.buttonActive));
128
113
  }
129
-
130
114
  this.onChange(tuneName);
131
115
  return true;
132
116
  }
@@ -142,5 +126,4 @@ var Tunes = /*#__PURE__*/function () {
142
126
  }]);
143
127
  return Tunes;
144
128
  }();
145
-
146
129
  exports.default = Tunes;