@cuby-ui/core 0.0.227 → 0.0.231

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 (270) hide show
  1. package/components/button/button.component.d.ts +1 -1
  2. package/components/content-wrapper/content-wrapper.component.d.ts +11 -0
  3. package/components/content-wrapper/index.d.ts +1 -0
  4. package/components/empty-state/empty-state.component.d.ts +7 -0
  5. package/components/empty-state/index.d.ts +1 -0
  6. package/components/ghost-input/ghost-input.component.d.ts +6 -0
  7. package/components/ghost-input/index.d.ts +1 -0
  8. package/components/index.d.ts +3 -0
  9. package/components/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -1
  10. package/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.d.ts +1 -1
  11. package/editor/components/editor-attaches-tool/editor-attaches-tool.component.d.ts +44 -0
  12. package/editor/components/editor-attaches-tool/editor-attaches-tool.options.d.ts +17 -0
  13. package/editor/components/editor-attaches-tool/index.d.ts +2 -0
  14. package/editor/components/editor-image-tool/editor-image-tool.component.d.ts +14 -0
  15. package/editor/components/editor-image-tool/editor-image-tool.options.d.ts +26 -0
  16. package/editor/components/editor-image-tool/index.d.ts +2 -0
  17. package/editor/components/editor-tool/editor-tool.component.d.ts +22 -0
  18. package/editor/components/editor-tool-modal/editor-tool-modal.component.d.ts +24 -0
  19. package/editor/components/editor-tool-modal/editor-tool-modal.options.d.ts +8 -0
  20. package/editor/components/editor-tool-modal/index.d.ts +2 -0
  21. package/editor/components/editor-tooltip/editor-tooltip.component.d.ts +16 -0
  22. package/editor/components/editor-tooltip/editor-tooltip.options.d.ts +9 -0
  23. package/editor/components/editor-tooltip/index.d.ts +2 -0
  24. package/editor/components/editor-video-tool/editor-video-tool.component.d.ts +12 -0
  25. package/editor/components/editor-video-tool/editor-video-tool.options.d.ts +26 -0
  26. package/editor/components/editor-video-tool/index.d.ts +2 -0
  27. package/editor/components/index.d.ts +7 -0
  28. package/editor/components/marker-modal/index.d.ts +3 -0
  29. package/editor/components/marker-modal/marker-modal.component.d.ts +62 -0
  30. package/editor/components/marker-modal/marker-modal.interfaces.d.ts +7 -0
  31. package/editor/components/marker-modal/marker-modal.options.d.ts +1 -0
  32. package/editor/components/marker-select/component/select-item/select-option.component.d.ts +7 -0
  33. package/editor/components/marker-select/index.d.ts +2 -0
  34. package/editor/components/marker-select/marker-select.component.d.ts +40 -0
  35. package/editor/components/marker-select/marker-select.options.d.ts +1 -0
  36. package/editor/config/custom-elements.d.ts +2 -0
  37. package/editor/config/editor.config.d.ts +3 -0
  38. package/editor/config/editor.provider.d.ts +2 -0
  39. package/editor/config/index.d.ts +2 -0
  40. package/editor/constants/editor.constants.d.ts +15 -0
  41. package/editor/constants/index.d.ts +1 -0
  42. package/editor/editor.component.d.ts +71 -0
  43. package/editor/events/editor-drag.event.d.ts +2 -0
  44. package/editor/events/editor-keyboard.event.d.ts +2 -0
  45. package/editor/events/editor-modal.event.d.ts +3 -0
  46. package/editor/events/editor-tooltip.event.d.ts +2 -0
  47. package/editor/events/set-editor-events.d.ts +1 -0
  48. package/editor/index.d.ts +9 -0
  49. package/editor/interfaces/angular-element.d.ts +2 -0
  50. package/editor/interfaces/blocks-request-data.d.ts +6 -0
  51. package/editor/interfaces/combined-block-adding-event.d.ts +7 -0
  52. package/editor/interfaces/combined-block-data.d.ts +5 -0
  53. package/editor/interfaces/combined-part-block-data.d.ts +7 -0
  54. package/editor/interfaces/custom-element.d.ts +5 -0
  55. package/editor/interfaces/event-action-data.d.ts +5 -0
  56. package/editor/interfaces/file-response-data.d.ts +10 -0
  57. package/editor/interfaces/full-block-data.d.ts +8 -0
  58. package/editor/interfaces/index.d.ts +14 -0
  59. package/editor/interfaces/main-editor-config.d.ts +15 -0
  60. package/editor/interfaces/mutation-actions.d.ts +5 -0
  61. package/editor/interfaces/parent.d.ts +4 -0
  62. package/editor/interfaces/tools.d.ts +4 -0
  63. package/editor/interfaces/tune.d.ts +6 -0
  64. package/editor/pipes/file-size.pipe.d.ts +9 -0
  65. package/editor/services/editor-service.options.d.ts +8 -0
  66. package/editor/services/editor.service.d.ts +23 -0
  67. package/editor/services/index.d.ts +6 -0
  68. package/editor/services/jtext-api.options.d.ts +20 -0
  69. package/editor/services/jtext-api.service.d.ts +23 -0
  70. package/editor/services/markers-service.options.d.ts +4 -0
  71. package/editor/services/markers.service.d.ts +11 -0
  72. package/editor/tools/attaches.tool.d.ts +28 -0
  73. package/editor/tools/bold.tool.d.ts +11 -0
  74. package/editor/tools/combined-text-block.tool.d.ts +49 -0
  75. package/editor/tools/custom-marker.tool.d.ts +16 -0
  76. package/editor/tools/header.tool.d.ts +8 -0
  77. package/editor/tools/image.tool.d.ts +37 -0
  78. package/editor/tools/index.d.ts +11 -0
  79. package/editor/tools/italic.tool.d.ts +12 -0
  80. package/editor/tools/link-marker.tool.d.ts +15 -0
  81. package/editor/tools/list.tool.d.ts +5 -0
  82. package/editor/tools/marker.tool.d.ts +36 -0
  83. package/editor/tools/role-marker.tool.d.ts +7 -0
  84. package/editor/tools/selection-base.tool.d.ts +24 -0
  85. package/editor/tools/tool-marker.tool.d.ts +7 -0
  86. package/editor/tools/video.tool.d.ts +32 -0
  87. package/editor/utils/create-link-modal.d.ts +3 -0
  88. package/editor/utils/create-tool-modal.d.ts +4 -0
  89. package/editor/utils/create-tooltip.d.ts +8 -0
  90. package/editor/utils/file-uploader.d.ts +26 -0
  91. package/editor/utils/generate-id.d.ts +1 -0
  92. package/editor/utils/index.d.ts +9 -0
  93. package/editor/utils/recalculate-indexes.d.ts +2 -0
  94. package/editor/utils/remove-element-tag-wrapper.d.ts +1 -0
  95. package/editor/utils/split-html.d.ts +1 -0
  96. package/editor/utils/url.validator.d.ts +2 -0
  97. package/editor/widgets/editor-block/editor-block.component.d.ts +22 -0
  98. package/editor/widgets/editor-block/index.d.ts +1 -0
  99. package/editor/widgets/editor-modal/editor-modal.component.d.ts +19 -0
  100. package/editor/widgets/editor-modal/index.d.ts +1 -0
  101. package/editor/widgets/editor-readonly/editor-readonly.component.d.ts +28 -0
  102. package/editor/widgets/editor-readonly/editor-readonly.options.d.ts +5 -0
  103. package/editor/widgets/editor-readonly/index.d.ts +2 -0
  104. package/editor/widgets/index.d.ts +3 -0
  105. package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +2 -2
  106. package/esm2022/components/content-wrapper/content-wrapper.component.mjs +29 -0
  107. package/esm2022/components/content-wrapper/index.mjs +2 -0
  108. package/esm2022/components/empty-state/empty-state.component.mjs +17 -0
  109. package/esm2022/components/empty-state/index.mjs +2 -0
  110. package/esm2022/components/ghost-input/ghost-input.component.mjs +16 -0
  111. package/esm2022/components/ghost-input/index.mjs +2 -0
  112. package/esm2022/components/index.mjs +4 -1
  113. package/esm2022/directives/tooltip/tooltip-describe.directive.mjs +5 -3
  114. package/esm2022/directives/tooltip/tooltip-position.directive.mjs +6 -3
  115. package/esm2022/directives/tooltip/tooltip.component.mjs +6 -3
  116. package/esm2022/editor/components/editor-attaches-tool/editor-attaches-tool.component.mjs +76 -0
  117. package/esm2022/editor/components/editor-attaches-tool/editor-attaches-tool.options.mjs +2 -0
  118. package/esm2022/editor/components/editor-attaches-tool/index.mjs +3 -0
  119. package/esm2022/editor/components/editor-image-tool/editor-image-tool.component.mjs +43 -0
  120. package/esm2022/editor/components/editor-image-tool/editor-image-tool.options.mjs +2 -0
  121. package/esm2022/editor/components/editor-image-tool/index.mjs +3 -0
  122. package/esm2022/editor/components/editor-tool/editor-tool.component.mjs +74 -0
  123. package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.component.mjs +69 -0
  124. package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.options.mjs +2 -0
  125. package/esm2022/editor/components/editor-tool-modal/index.mjs +3 -0
  126. package/esm2022/editor/components/editor-tooltip/editor-tooltip.component.mjs +45 -0
  127. package/esm2022/editor/components/editor-tooltip/editor-tooltip.options.mjs +2 -0
  128. package/esm2022/editor/components/editor-tooltip/index.mjs +3 -0
  129. package/esm2022/editor/components/editor-video-tool/editor-video-tool.component.mjs +41 -0
  130. package/esm2022/editor/components/editor-video-tool/editor-video-tool.options.mjs +2 -0
  131. package/esm2022/editor/components/editor-video-tool/index.mjs +3 -0
  132. package/esm2022/editor/components/index.mjs +8 -0
  133. package/esm2022/editor/components/marker-modal/index.mjs +3 -0
  134. package/esm2022/editor/components/marker-modal/marker-modal.component.mjs +261 -0
  135. package/esm2022/editor/components/marker-modal/marker-modal.interfaces.mjs +2 -0
  136. package/esm2022/editor/components/marker-modal/marker-modal.options.mjs +2 -0
  137. package/esm2022/editor/components/marker-select/component/select-item/select-option.component.mjs +15 -0
  138. package/esm2022/editor/components/marker-select/index.mjs +3 -0
  139. package/esm2022/editor/components/marker-select/marker-select.component.mjs +155 -0
  140. package/esm2022/editor/components/marker-select/marker-select.options.mjs +2 -0
  141. package/esm2022/editor/config/custom-elements.mjs +32 -0
  142. package/esm2022/editor/config/editor.config.mjs +30 -0
  143. package/esm2022/editor/config/editor.provider.mjs +19 -0
  144. package/esm2022/editor/config/index.mjs +3 -0
  145. package/esm2022/editor/constants/editor.constants.mjs +20 -0
  146. package/esm2022/editor/constants/index.mjs +2 -0
  147. package/esm2022/editor/editor.component.mjs +380 -0
  148. package/esm2022/editor/events/editor-drag.event.mjs +7 -0
  149. package/esm2022/editor/events/editor-keyboard.event.mjs +33 -0
  150. package/esm2022/editor/events/editor-modal.event.mjs +31 -0
  151. package/esm2022/editor/events/editor-tooltip.event.mjs +63 -0
  152. package/esm2022/editor/events/set-editor-events.mjs +11 -0
  153. package/esm2022/editor/i18n/en.json +14 -0
  154. package/esm2022/editor/index.mjs +8 -0
  155. package/esm2022/editor/interfaces/angular-element.mjs +2 -0
  156. package/esm2022/editor/interfaces/blocks-request-data.mjs +2 -0
  157. package/esm2022/editor/interfaces/combined-block-adding-event.mjs +2 -0
  158. package/esm2022/editor/interfaces/combined-block-data.mjs +2 -0
  159. package/esm2022/editor/interfaces/combined-part-block-data.mjs +2 -0
  160. package/esm2022/editor/interfaces/custom-element.mjs +2 -0
  161. package/esm2022/editor/interfaces/event-action-data.mjs +2 -0
  162. package/esm2022/editor/interfaces/file-response-data.mjs +2 -0
  163. package/esm2022/editor/interfaces/full-block-data.mjs +2 -0
  164. package/esm2022/editor/interfaces/index.mjs +14 -0
  165. package/esm2022/editor/interfaces/main-editor-config.mjs +2 -0
  166. package/esm2022/editor/interfaces/mutation-actions.mjs +2 -0
  167. package/esm2022/editor/interfaces/parent.mjs +2 -0
  168. package/esm2022/editor/interfaces/tools.mjs +2 -0
  169. package/esm2022/editor/interfaces/tune.mjs +2 -0
  170. package/esm2022/editor/pipes/file-size.pipe.mjs +25 -0
  171. package/esm2022/editor/services/editor-service.options.mjs +4 -0
  172. package/esm2022/editor/services/editor.service.mjs +138 -0
  173. package/esm2022/editor/services/index.mjs +7 -0
  174. package/esm2022/editor/services/jtext-api.options.mjs +2 -0
  175. package/esm2022/editor/services/jtext-api.service.mjs +50 -0
  176. package/esm2022/editor/services/markers-service.options.mjs +2 -0
  177. package/esm2022/editor/services/markers.service.mjs +79 -0
  178. package/esm2022/editor/tools/attaches.tool.mjs +96 -0
  179. package/esm2022/editor/tools/bold.tool.mjs +33 -0
  180. package/esm2022/editor/tools/combined-text-block.tool.mjs +380 -0
  181. package/esm2022/editor/tools/custom-marker.tool.mjs +88 -0
  182. package/esm2022/editor/tools/header.tool.mjs +16 -0
  183. package/esm2022/editor/tools/image.tool.mjs +157 -0
  184. package/esm2022/editor/tools/index.mjs +12 -0
  185. package/esm2022/editor/tools/italic.tool.mjs +35 -0
  186. package/esm2022/editor/tools/link-marker.tool.mjs +80 -0
  187. package/esm2022/editor/tools/list.tool.mjs +10 -0
  188. package/esm2022/editor/tools/marker.tool.mjs +144 -0
  189. package/esm2022/editor/tools/role-marker.tool.mjs +17 -0
  190. package/esm2022/editor/tools/selection-base.tool.mjs +92 -0
  191. package/esm2022/editor/tools/tool-marker.tool.mjs +14 -0
  192. package/esm2022/editor/tools/video.tool.mjs +132 -0
  193. package/esm2022/editor/utils/create-link-modal.mjs +22 -0
  194. package/esm2022/editor/utils/create-tool-modal.mjs +45 -0
  195. package/esm2022/editor/utils/create-tooltip.mjs +44 -0
  196. package/esm2022/editor/utils/file-uploader.mjs +57 -0
  197. package/esm2022/editor/utils/generate-id.mjs +4 -0
  198. package/esm2022/editor/utils/index.mjs +10 -0
  199. package/esm2022/editor/utils/recalculate-indexes.mjs +32 -0
  200. package/esm2022/editor/utils/remove-element-tag-wrapper.mjs +11 -0
  201. package/esm2022/editor/utils/split-html.mjs +128 -0
  202. package/esm2022/editor/utils/url.validator.mjs +12 -0
  203. package/esm2022/editor/widgets/editor-block/editor-block.component.mjs +63 -0
  204. package/esm2022/editor/widgets/editor-block/index.mjs +2 -0
  205. package/esm2022/editor/widgets/editor-modal/editor-modal.component.mjs +47 -0
  206. package/esm2022/editor/widgets/editor-modal/index.mjs +2 -0
  207. package/esm2022/editor/widgets/editor-readonly/editor-readonly.component.mjs +40 -0
  208. package/esm2022/editor/widgets/editor-readonly/editor-readonly.options.mjs +2 -0
  209. package/esm2022/editor/widgets/editor-readonly/index.mjs +2 -0
  210. package/esm2022/editor/widgets/index.mjs +4 -0
  211. package/esm2022/index.mjs +3 -1
  212. package/esm2022/interceptors/loader.interceptor.mjs +3 -3
  213. package/esm2022/services/loader.options.mjs +2 -2
  214. package/esm2022/services/loader.service.mjs +11 -11
  215. package/esm2022/utils/default-validators/create-default-validators.mjs +12 -0
  216. package/esm2022/utils/default-validators/extra-spaces.options.mjs +11 -0
  217. package/esm2022/utils/default-validators/extra-spaces.validators.mjs +16 -0
  218. package/esm2022/utils/default-validators/index.mjs +2 -0
  219. package/esm2022/utils/index.mjs +2 -1
  220. package/esm2022/widgets/categories/categories.component.mjs +75 -0
  221. package/esm2022/widgets/categories/components/categories-list/categories-list.component.mjs +16 -0
  222. package/esm2022/widgets/categories/components/categories-list/index.mjs +2 -0
  223. package/esm2022/widgets/categories/components/category-form/category-form.component.mjs +79 -0
  224. package/esm2022/widgets/categories/components/category-form/index.mjs +2 -0
  225. package/esm2022/widgets/categories/components/category-item/category-item.component.mjs +123 -0
  226. package/esm2022/widgets/categories/components/category-item/index.mjs +2 -0
  227. package/esm2022/widgets/categories/components/create-category-item/create-category-item.component.mjs +25 -0
  228. package/esm2022/widgets/categories/components/create-category-item/index.mjs +2 -0
  229. package/esm2022/widgets/categories/components/index.mjs +3 -0
  230. package/esm2022/widgets/categories/index.mjs +3 -0
  231. package/esm2022/widgets/categories/services/index.mjs +2 -0
  232. package/esm2022/widgets/categories/services/selected-category.service.mjs +38 -0
  233. package/esm2022/widgets/general-control-error-hint/general-control-error-hint.component.mjs +21 -0
  234. package/esm2022/widgets/general-control-error-hint/index.mjs +2 -0
  235. package/esm2022/widgets/index.mjs +3 -0
  236. package/esm2022/widgets/utility-info/index.mjs +2 -0
  237. package/esm2022/widgets/utility-info/utility-info.component.mjs +246 -0
  238. package/esm2022/widgets/utility-info/utility-info.options.mjs +2 -0
  239. package/fesm2022/cuby-ui-core-en-D3DnyYmu.mjs +29 -0
  240. package/fesm2022/cuby-ui-core-en-D3DnyYmu.mjs.map +1 -0
  241. package/fesm2022/cuby-ui-core.mjs +4069 -67
  242. package/fesm2022/cuby-ui-core.mjs.map +1 -1
  243. package/index.d.ts +2 -0
  244. package/package.json +11 -4
  245. package/services/loader.options.d.ts +2 -2
  246. package/services/loader.service.d.ts +7 -7
  247. package/utils/default-validators/create-default-validators.d.ts +5 -0
  248. package/utils/default-validators/extra-spaces.options.d.ts +2 -0
  249. package/utils/default-validators/extra-spaces.validators.d.ts +3 -0
  250. package/utils/default-validators/index.d.ts +1 -0
  251. package/utils/index.d.ts +1 -0
  252. package/widgets/categories/categories.component.d.ts +24 -0
  253. package/widgets/categories/components/categories-list/categories-list.component.d.ts +7 -0
  254. package/widgets/categories/components/categories-list/index.d.ts +1 -0
  255. package/widgets/categories/components/category-form/category-form.component.d.ts +28 -0
  256. package/widgets/categories/components/category-form/index.d.ts +1 -0
  257. package/widgets/categories/components/category-item/category-item.component.d.ts +40 -0
  258. package/widgets/categories/components/category-item/index.d.ts +1 -0
  259. package/widgets/categories/components/create-category-item/create-category-item.component.d.ts +10 -0
  260. package/widgets/categories/components/create-category-item/index.d.ts +1 -0
  261. package/widgets/categories/components/index.d.ts +2 -0
  262. package/widgets/categories/index.d.ts +2 -0
  263. package/widgets/categories/services/index.d.ts +1 -0
  264. package/widgets/categories/services/selected-category.service.d.ts +18 -0
  265. package/widgets/general-control-error-hint/general-control-error-hint.component.d.ts +9 -0
  266. package/widgets/general-control-error-hint/index.d.ts +1 -0
  267. package/widgets/index.d.ts +2 -0
  268. package/widgets/utility-info/index.d.ts +1 -0
  269. package/widgets/utility-info/utility-info.component.d.ts +53 -0
  270. package/widgets/utility-info/utility-info.options.d.ts +9 -0
@@ -0,0 +1,92 @@
1
+ import { COMBINED_TEXT_BLOCK_PART } from '../constants/editor.constants';
2
+ export class CuiSelectionBase {
3
+ static get isInline() {
4
+ return true;
5
+ }
6
+ get state() {
7
+ return this._state;
8
+ }
9
+ set state(state) {
10
+ this._state = state;
11
+ this.button?.classList.toggle(this.api.styles.inlineToolButtonActive, state);
12
+ }
13
+ constructor(data) {
14
+ this.LIST_CLASS = 'cdx-list__item';
15
+ this.SELECTED_TEXT_CLASS = '_selected';
16
+ this.TAG = 'B';
17
+ this.COMMAND = 'bold';
18
+ this._state = false;
19
+ this.api = data.api;
20
+ }
21
+ wrap(range) {
22
+ const { startContainer, endContainer } = range;
23
+ this.addSelectionToDOM(range, startContainer, endContainer);
24
+ }
25
+ unwrap() {
26
+ document.execCommand(this.COMMAND);
27
+ }
28
+ checkState() {
29
+ this.state = document.queryCommandState(this.COMMAND);
30
+ return this.state;
31
+ }
32
+ surround(range) {
33
+ if (this.state) {
34
+ this.unwrap();
35
+ return;
36
+ }
37
+ this.wrap(range);
38
+ }
39
+ createElement(text = '') {
40
+ const element = document.createElement(this.TAG);
41
+ element.textContent = text;
42
+ return element;
43
+ }
44
+ addSelectionToDOM(range, startBlock, endBlock) {
45
+ const classes = [this.LIST_CLASS, COMBINED_TEXT_BLOCK_PART];
46
+ const { className, parent: startParent } = this.getClosestParentWithClass(startBlock, classes);
47
+ const { parent: endParent } = this.getClosestParentWithClass(endBlock, classes);
48
+ if (!className || startParent === endParent) {
49
+ this.addSelectionForOnlyChild(range);
50
+ return;
51
+ }
52
+ this.addSelectionForChildren(startParent, endParent);
53
+ }
54
+ addSelectionForOnlyChild(range) {
55
+ const selectedText = range.extractContents();
56
+ const selection = this.createElement();
57
+ selection.appendChild(selectedText);
58
+ range.insertNode(selection);
59
+ }
60
+ addSelectionForChildren(startParent, endParent) {
61
+ const nodes = this.getSelectedNodesFromDOM(startParent, endParent);
62
+ nodes.forEach((node) => node.classList.add(this.SELECTED_TEXT_CLASS));
63
+ document.execCommand(this.COMMAND);
64
+ nodes.forEach((node) => node.classList.remove(this.SELECTED_TEXT_CLASS));
65
+ }
66
+ getSelectedNodesFromDOM(startParent, endParent) {
67
+ const nodes = [startParent];
68
+ let next = startParent.nextSibling;
69
+ while (next && next !== endParent) {
70
+ nodes.push(next);
71
+ next = next?.nextSibling || null;
72
+ }
73
+ nodes.push(endParent);
74
+ return nodes;
75
+ }
76
+ getClosestParentWithClass(node, classes) {
77
+ const nodeParent = node.parentElement;
78
+ let parent = nodeParent;
79
+ let resultClassName = '';
80
+ for (const className of classes) {
81
+ const parentWithClass = parent.closest('.' + className);
82
+ if (!parentWithClass) {
83
+ continue;
84
+ }
85
+ parent = parentWithClass;
86
+ resultClassName = className;
87
+ break;
88
+ }
89
+ return { className: resultClassName, parent };
90
+ }
91
+ }
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJhc2UudG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL3NlbGVjdGlvbi1iYXNlLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHekUsTUFBTSxPQUFPLGdCQUFnQjtJQVdwQixNQUFNLEtBQUssUUFBUTtRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxZQUFZLElBQWtDO1FBeEI3QixlQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFDOUIsd0JBQW1CLEdBQUcsV0FBVyxDQUFDO1FBRTVDLFFBQUcsR0FBRyxHQUFHLENBQUM7UUFDVixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBSWQsV0FBTSxHQUFHLEtBQUssQ0FBQztRQWlCdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBWTtRQUN0QixNQUFNLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUUvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sTUFBTTtRQUNYLFFBQVEsQ0FBQyxXQUFXLENBQUMs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QUNuQyxDQUFDO1FBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxJQUFVLEVBQUUsT0FBaUI7UUFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQXdCLENBQUM7UUFDakQsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUV6QixLQUFLLE1BQU0sU0FBUyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBRXhELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDckIsU0FBUztZQUNYLENBQUM7WUFFRCxNQUFNLEdBQUcsZUFBZSxDQUFDO1lBQ3pCLGVBQWUsR0FBRyxTQUFTLENBQUM7WUFDNUIsTUFBTTtRQUNSLENBQUM7UUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFQSSwgSW5saW5lVG9vbENvbnN0cnVjdG9yT3B0aW9ucyB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XHJcblxyXG5pbXBvcnQgeyBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQgfSBmcm9tICcuLi9jb25zdGFudHMvZWRpdG9yLmNvbnN0YW50cyc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpUGFyZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wYXJlbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEN1aVNlbGVjdGlvbkJhc2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgTElTVF9DTEFTUyA9ICdjZHgtbGlzdF9faXRlbSc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBTRUxFQ1RFRF9URVhUX0NMQVNTID0gJ19zZWxlY3RlZCc7XHJcblxyXG4gIHB1YmxpYyBUQUcgPSAnQic7XHJcbiAgcHVibGljIENPTU1BTkQgPSAnYm9sZCc7XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBhcGkhOiBBUEk7XHJcbiAgcHJvdGVjdGVkIGJ1dHRvbiE6IEhUTUxCdXR0b25FbGVtZW50O1xyXG4gIHByb3RlY3RlZCBfc3RhdGUgPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXQgaXNJbmxpbmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc3RhdGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3RhdGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHN0YXRlKHN0YXRlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zdGF0ZSA9IHN0YXRlO1xyXG5cclxuICAgIHRoaXMuYnV0dG9uPy5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuYXBpLnN0eWxlcy5pbmxpbmVUb29sQnV0dG9uQWN0aXZlLCBzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhOiBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zKSB7XHJcbiAgICB0aGlzLmFwaSA9IGRhdGEuYXBpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyYXAocmFuZ2U6IFJhbmdlKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHN0YXJ0Q29udGFpbmVyLCBlbmRDb250YWluZXIgfSA9IHJhbmdlO1xyXG5cclxuICAgIHRoaXMuYWRkU2VsZWN0aW9uVG9ET00ocmFuZ2UsIHN0YXJ0Q29udGFpbmVyLCBlbmRDb250YWluZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVud3JhcCgpOiB2b2lkIHtcclxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKHRoaXMuQ09NTUFORCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tTdGF0ZSgpOiBib29sZWFuIHtcclxuICAgIHRoaXMuc3RhdGUgPSBkb2N1bWVudC5xdWVyeUNvbW1hbmRTdGF0ZSh0aGlzLkNPTU1BTkQpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnN0YXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1cnJvdW5kKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3RhdGUpIHtcclxuICAgICAgdGhpcy51bndyYXAoKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndyYXAocmFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNyZWF0ZUVsZW1lbnQodGV4dCA9ICcnKTogSFRNTEVsZW1lbnQge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5UQUcpO1xyXG5cclxuICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0O1xyXG5cclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFNlbGVjdGlvblRvRE9NKHJhbmdlOiBSYW5nZSwgc3RhcnRCbG9jazogTm9kZSwgZW5kQmxvY2s6IE5vZGUpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsYXNzZXMgPSBbdGhpcy5MSVNUX0NMQVNTLCBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlRdO1xyXG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHBhcmVudDogc3RhcnRQYXJlbnQgfSA9IHRoaXMuZ2V0Q2xvc2VzdFBhcmVudFdpdGhDbGFzcyhzdGFydEJsb2NrLCBjbGFzc2VzKTtcclxuICAgIGNvbnN0IHsgcGFyZW50OiBlbmRQYXJlbnQgfSA9IHRoaXMuZ2V0Q2xvc2VzdFBhcmVudFdpdGhDbGFzcyhlbmRCbG9jaywgY2xhc3Nlcyk7XHJcblxyXG4gICAgaWYgKCFjbGFzc05hbWUgfHwgc3RhcnRQYXJlbnQgPT09IGVuZFBhcmVudCkge1xyXG4gICAgICB0aGlzLmFkZFNlbGVjdGlvbkZvck9ubHlDaGlsZChyYW5nZSk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hZGRTZWxlY3Rpb25Gb3JDaGlsZHJlbihzdGFydFBhcmVudCwgZW5kUGFyZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU2VsZWN0aW9uRm9yT25seUNoaWxkKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRUZXh0ID0gcmFuZ2UuZXh0cmFjdENvbnRlbnRzKCk7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmNyZWF0ZUVsZW1lbnQoKTtcclxuXHJcbiAgICBzZWxlY3Rpb24uYXBwZW5kQ2hpbGQoc2VsZWN0ZWRUZXh0KTtcclxuICAgIHJhbmdlLmluc2VydE5vZGUoc2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU2VsZWN0aW9uRm9yQ2hpbGRyZW4oc3RhcnRQYXJlbnQ6IEVsZW1lbnQsIGVuZFBhcmVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLmdldFNlbGVjdGVkTm9kZXNGcm9tRE9NKHN0YXJ0UGFyZW50LCBlbmRQYXJlbnQpO1xyXG5cclxuICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IChub2RlIGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuYWRkKHRoaXMuU0VMRUNURURfVEVYVF9DTEFTUykpO1xyXG5cclxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKHRoaXMuQ09NTUFORCk7XHJcblxyXG4gICAgbm9kZXMuZm9yRWFjaCgobm9kZSkgPT4gKG5vZGUgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5yZW1vdmUodGhpcy5TRUxFQ1RFRF9URVhUX0NMQVNTKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNlbGVjdGVkTm9kZXNGcm9tRE9NKHN0YXJ0UGFyZW50OiBFbGVtZW50LCBlbmRQYXJlbnQ6IEVsZW1lbnQpOiBFbGVtZW50W10ge1xyXG4gICAgY29uc3Qgbm9kZXMgPSBbc3RhcnRQYXJlbnRdO1xyXG4gICAgbGV0IG5leHQgPSBzdGFydFBhcmVudC5uZXh0U2libGluZztcclxuXHJcbiAgICB3aGlsZSAobmV4dCAmJiBuZXh0ICE9PSBlbmRQYXJlbnQpIHtcclxuICAgICAgbm9kZXMucHVzaChuZXh0IGFzIEVsZW1lbnQpO1xyXG5cclxuICAgICAgbmV4dCA9IG5leHQ/Lm5leHRTaWJsaW5nIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbm9kZXMucHVzaChlbmRQYXJlbnQpO1xyXG5cclxuICAgIHJldHVybiBub2RlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2xvc2VzdFBhcmVudFdpdGhDbGFzcyhub2RlOiBOb2RlLCBjbGFzc2VzOiBzdHJpbmdbXSk6IEN1aVBhcmVudCB7XHJcbiAgICBjb25zdCBub2RlUGFyZW50ID0gbm9kZS5wYXJlbnRFbGVtZW50IGFzIEVsZW1lbnQ7XHJcbiAgICBsZXQgcGFyZW50ID0gbm9kZVBhcmVudDtcclxuICAgIGxldCByZXN1bHRDbGFzc05hbWUgPSAnJztcclxuXHJcbiAgICBmb3IgKGNvbnN0IGNsYXNzTmFtZSBvZiBjbGFzc2VzKSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudFdpdGhDbGFzcyA9IHBhcmVudC5jbG9zZXN0KCcuJyArIGNsYXNzTmFtZSk7XHJcblxyXG4gICAgICBpZiAoIXBhcmVudFdpdGhDbGFzcykge1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBwYXJlbnQgPSBwYXJlbnRXaXRoQ2xhc3M7XHJcbiAgICAgIHJlc3VsdENsYXNzTmFtZSA9IGNsYXNzTmFtZTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgY2xhc3NOYW1lOiByZXN1bHRDbGFzc05hbWUsIHBhcmVudCB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { CuiCustomMarkerTool } from './custom-marker.tool';
2
+ export class CuiToolMarker extends CuiCustomMarkerTool {
3
+ constructor(data) {
4
+ super(data);
5
+ this.CLASS = 'tool-marker';
6
+ }
7
+ render() {
8
+ super.render();
9
+ this.button.innerHTML =
10
+ '<svg width="20" height="20" viewBox="-2 -3 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="technologies-tools"><path id="Vector" d="M16.3581 15.3966L16.3581 11.4729C16.3581 11.4158 16.3469 11.3592 16.325 11.3064C16.3031 11.2536 16.2711 11.2056 16.2307 11.1652C16.1903 11.1248 16.1423 11.0928 16.0895 11.0709C16.0368 11.0491 15.9802 11.0378 15.923 11.0378H13.2574L13.2593 11.0372C13.2007 11.0348 13.1422 11.0443 13.0874 11.0651C13.0326 11.0859 12.9825 11.1176 12.9402 11.1582C12.898 11.1989 12.8643 11.2476 12.8414 11.3016C12.8184 11.3556 12.8066 11.4136 12.8067 11.4723L12.8067 15.3972M14.584 11.0334V5.8334M16.3582 15.1022L16.3582 17.0647C16.3583 17.1234 16.3465 17.1814 16.3235 17.2354C16.3006 17.2893 16.2669 17.3381 16.2247 17.3787C16.1824 17.4194 16.1323 17.4511 16.0775 17.4719C16.0227 17.4927 15.9642 17.5022 15.9056 17.4998L15.9075 17.4992H13.2419C13.1847 17.4992 13.1282 17.4879 13.0754 17.466C13.0226 17.4442 12.9746 17.4121 12.9342 17.3717C12.8938 17.3313 12.8618 17.2834 12.8399 17.2306C12.818 17.1778 12.8068 17.1212 12.8068 17.0641L12.8068 15.1022M5.59636 9.88719L5.59636 15.9284C5.59627 16.0872 5.62748 16.2445 5.68821 16.3912C5.74895 16.5379 5.838 16.6713 5.9503 16.7836C6.06259 16.8959 6.19591 16.9849 6.34265 17.0456C6.48938 17.1064 6.64665 17.1376 6.80545 17.1375C7.12589 17.1375 7.43318 17.0101 7.65976 16.7836C7.88634 16.557 8.01365 16.2497 8.0137 15.9293L8.01284 9.88719C9.29329 9.32793 10.4298 8.05047 10.4298 6.56367C10.4302 5.07729 9.22194 3.54264 8.01284 3.241L8.01327 5.83907L6.8046 7.2887L5.59636 5.83864L5.59636 3.241C4.38769 3.54306 3.17902 5.07729 3.17902 6.5641C3.17944 8.05048 4.31591 9.32793 5.59636 9.88719ZM14.9916 5.56545L14.1253 5.56545L13.2589 4.69909L13.6921 2.5332L15.4248 2.5332L15.858 4.69909L14.9916 5.56545Z" stroke="#595E6A" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></g></svg>';
11
+ return this.button;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1tYXJrZXIudG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL3Rvb2wtbWFya2VyLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxtQkFBbUI7SUFHbEQsWUFBWSxJQUFrQztRQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFIWSxVQUFLLEdBQUcsYUFBYSxDQUFDO0lBSWxELENBQUM7SUFFZSxNQUFNO1FBQ2xCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVmLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUztZQUNqQix1MERBQXUwRCxDQUFDO1FBRTUwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcclxuXHJcbmltcG9ydCB7IEN1aUN1c3RvbU1hcmtlclRvb2wgfSBmcm9tICcuL2N1c3RvbS1tYXJrZXIudG9vbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VpVG9vbE1hcmtlciBleHRlbmRzIEN1aUN1c3RvbU1hcmtlclRvb2wge1xyXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IENMQVNTID0gJ3Rvb2wtbWFya2VyJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBJbmxpbmVUb29sQ29uc3RydWN0b3JPcHRpb25zKSB7XHJcbiAgICAgICAgc3VwZXIoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIHJlbmRlcigpOiBIVE1MQnV0dG9uRWxlbWVudCB7XHJcbiAgICAgICAgc3VwZXIucmVuZGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuYnV0dG9uLmlubmVySFRNTCA9XHJcbiAgICAgICAgICAgICc8c3ZnIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCItMiAtMyAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxnIGlkPVwidGVjaG5vbG9naWVzLXRvb2xzXCI+PHBhdGggaWQ9XCJWZWN0b3JcIiBkPVwiTTE2LjM1ODEgMTUuMzk2NkwxNi4zNTgxIDExLjQ3MjlDMTYuMzU4MSAxMS40MTU4IDE2LjM0NjkgMTEuMzU5MiAxNi4zMjUgMTEuMzA2NEMxNi4zMDMxIDExLjI1MzYgMTYuMjcxMSAxMS4yMDU2IDE2LjIzMDcgMTEuMTY1MkMxNi4xOTAzIDExLjEyNDggMTYuMTQyMyAxMS4wOTI4IDE2LjA4OTUgMTEuMDcwOUMxNi4wMzY4IDExLjA0OTEgMTUuOTgwMiAxMS4wMzc4IDE1LjkyMyAxMS4wMzc4SDEzLjI1NzRMMTMuMjU5MyAxMS4wMzcyQzEzLjIwMDcgMTEuMDM0OCAxMy4xNDIyIDExLjA0NDMgMTMuMDg3NCAxMS4wNjUxQzEzLjAzMjYgMTEuMDg1OSAxMi45ODI1IDExLjExNzYgMTIuOTQwMiAxMS4xNTgyQzEyLjg5OCAxMS4xOTg5IDEyLjg2NDMgMTEuMjQ3NiAxMi44NDE0IDExLjMwMTZDMTIuODE4NCAxMS4zNTU2IDEyLjgwNjYgMTEuNDEzNiAxMi44MDY3IDExLjQ3MjNMMTIuODA2NyAxNS4zOTcyTTE0LjU4NCAxMS4wMzM0VjUuODMzNE0xNi4zNTgyIDE1LjEwMjJMMTYuMzU4MiAxNy4wNjQ3QzE2LjM1ODMgMTcuMTIzNCAxNi4zNDY1IDE3LjE4MTQgMTYuMzIzNSAxNy4yMzU0QzE2LjMwMDYgMTcuMjg5MyAxNi4yNjY5IDE3LjMzODEgMTYuMjI0NyAxNy4zNzg3QzE2LjE4MjQgMTcuNDE5NCAxNi4xMzIzIDE3LjQ1MTEgMTYuMDc3NSAxNy40NzE5QzE2LjAyMjcgMTcuNDkyNyAxNS45NjQyIDE3LjUwMjIgMTUuOTA1NiAxNy40OTk4TDE1LjkwNzUgMTcuNDk5MkgxMy4yNDE5QzEzLjE4NDcgMTcuNDk5MiAxMy4xMjgyIDE3LjQ4NzkgMTMuMDc1NCAxNy40NjZDMTMuMDIyNiAxNy40NDQyIDEyLjk3NDYgMTcuNDEyMSAxMi45MzQyIDE3LjM3MTdDMTIuODkzOCAxNy4zMzEzIDEyLjg2MTggMTcuMjgzNCAxMi44Mzk5IDE3LjIzMDZDMTIuODE4IDE3LjE3NzggMTIuODA2OCAxNy4xMjEyIDEyLjgwNjggMTcuMDY0MUwxMi44MDY4IDE1LjEwMjJNNS41OTYzNiA5Ljg4NzE5TDUuNTk2MzYgMTUuOTI4NEM1LjU5NjI3IDE2LjA4NzIgNS42Mjc0OCAxNi4yNDQ1IDUuNjg4MjEgMTYuMzkxMkM1Ljc0ODk1IDE2LjUzNzkgNS44MzggMTYuNjcxMyA1Ljk1MDMgMTYuNzgzNkM2LjA2MjU5IDE2Ljg5NTkgNi4xOTU5MSAxNi45ODQ5IDYuMzQyNjUgMTcuMDQ1NkM2LjQ4OTM4IDE3LjEwNjQgNi42NDY2NSAxNy4xMzc2IDYuODA1NDUgMTcuMTM3NUM3LjEyNTg5IDE3LjEzNzUgNy40MzMxOCAxNy4wMTAxIDcuNjU5NzYgMTYuNzgzNkM3Ljg4NjM0IDE2LjU1NyA4LjAxMzY1IDE2LjI0OTcgOC4wMTM3IDE1LjkyOTNMOC4wMTI4NCA5Ljg4NzE5QzkuMjkzMjkgOS4zMjc5MyAxMC40Mjk4IDguMDUwNDcgMTAuNDI5OCA2LjU2MzY3QzEwLjQzMDIgNS4wNzcyOSA5LjIyMTk0IDMuNTQyNjQgOC4wMTI4NCAzLjI0MUw4LjAxMzI3IDUuODM5MDdMNi44MDQ2IDcuMjg4N0w1LjU5NjM2IDUuODM4NjRMNS41OTYzNiAzLjI0MUM0LjM4NzY5IDMuNTQzMDYgMy4xNzkwMiA1LjA3NzI5IDMuMTc5MDIgNi41NjQxQzMuMTc5NDQgOC4wNTA0OCA0LjMxNTkxIDkuMzI3OTMgNS41OTYzNiA5Ljg4NzE5Wk0xNC45OTE2IDUuNTY1NDVMMTQuMTI1MyA1LjU2NTQ1TDEzLjI1ODkgNC42OTkwOUwxMy42OTIxIDIuNTMzMkwxNS40MjQ4IDIuNTMzMkwxNS44NTggNC42OTkwOUwxNC45OTE2IDUuNTY1NDVaXCIgc3Ryb2tlPVwiIzU5NUU2QVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L2c+PC9zdmc+JztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,132 @@
1
+ import { CUI_ICONS } from '@cuby-ui/icons';
2
+ import { EDITOR_VIDEO_TOOL_SELECTOR } from '../components/editor-video-tool/editor-video-tool.options';
3
+ import { CuiFileUploader } from '../utils/file-uploader';
4
+ export class CuiVideoTool {
5
+ static get isReadOnlySupported() {
6
+ return true;
7
+ }
8
+ static get toolbox() {
9
+ return {
10
+ icon: CUI_ICONS.cuiIconPlayCircle,
11
+ title: 'Video'
12
+ };
13
+ }
14
+ static get pasteConfig() {
15
+ return {
16
+ tags: ['video'],
17
+ patterns: {
18
+ video: /https?:\/\/\S+\.(mp4)$/i
19
+ },
20
+ files: {
21
+ mimeTypes: ['video/*']
22
+ }
23
+ };
24
+ }
25
+ constructor(options) {
26
+ this.selectedFile = null;
27
+ this.onSelectFile = () => {
28
+ return this.uploader.selectFile({
29
+ fileSelected: (file) => {
30
+ const url = URL.createObjectURL(file);
31
+ this.getCaptureFromVideo(url);
32
+ this.videoTool.isLoading = true;
33
+ this.selectedFile = file;
34
+ this.uploader.uploadFile(file);
35
+ }
36
+ });
37
+ };
38
+ const { api, readOnly, config, data, block } = options;
39
+ this.blockApi = block;
40
+ this.api = api;
41
+ this.readOnly = readOnly;
42
+ this.config = {
43
+ load: config?.load ?? (() => { }),
44
+ field: config?.field ?? 'video',
45
+ types: config?.types ?? 'video/*',
46
+ endpoint: config?.endpoint ?? '',
47
+ buttonContent: config?.buttonContent ?? this.api.i18n.t('Select a Video'),
48
+ additionalRequestHeaders: config?.additionalRequestHeaders ?? {},
49
+ };
50
+ this.uploader = new CuiFileUploader(this.config, this.onUpload.bind(this), this.uploadingFailed.bind(this));
51
+ this.data = data;
52
+ }
53
+ async onPaste(event) {
54
+ if (event.type !== 'file') {
55
+ return;
56
+ }
57
+ const file = event.detail.file;
58
+ this.videoTool.isLoading = true;
59
+ this.selectedFile = file;
60
+ this.uploader.uploadFile(file);
61
+ }
62
+ appendCallback() {
63
+ this.onSelectFile();
64
+ }
65
+ render() {
66
+ this.videoTool = document.createElement(EDITOR_VIDEO_TOOL_SELECTOR);
67
+ this.videoTool.api = this.api;
68
+ this.videoTool.video = this.data.file?.url || '';
69
+ this.videoTool.caption = this.data.caption || '';
70
+ this.videoTool.readOnly = this.readOnly;
71
+ this.videoTool.buttonContent = this.config.buttonContent;
72
+ this.videoTool.addEventListener('fileSelected', this.onSelectFile);
73
+ this.videoTool.addEventListener('captionChanged', this.changeCaption.bind(this));
74
+ return this.videoTool;
75
+ }
76
+ save() {
77
+ return this.data;
78
+ }
79
+ removed() {
80
+ this.videoTool.removeEventListener('fileSelected', this.onSelectFile);
81
+ this.videoTool.removeEventListener('captionChanged', this.changeCaption);
82
+ }
83
+ changeCaption(event) {
84
+ const customEvent = event;
85
+ const value = customEvent.detail;
86
+ this.data.caption = value;
87
+ this.blockApi?.dispatchChange();
88
+ }
89
+ set video(file) {
90
+ this.data.file = file || {};
91
+ if (file && file.url) {
92
+ this.videoTool.video = file.url;
93
+ }
94
+ }
95
+ onUpload(response) {
96
+ if (!response.success || !response.file || !this.selectedFile) {
97
+ this.uploadingFailed();
98
+ return;
99
+ }
100
+ const url = this.selectedFile instanceof File ? window.URL.createObjectURL(this.selectedFile) : this.selectedFile;
101
+ this.data.file = response.file;
102
+ this.videoTool.video = url;
103
+ this.videoTool.isLoading = false;
104
+ }
105
+ uploadingFailed() {
106
+ this.videoTool.video = '';
107
+ this.videoTool.isLoading = false;
108
+ }
109
+ getCaptureFromVideo(url) {
110
+ const canvas = document.createElement('canvas');
111
+ const video = document.createElement('video');
112
+ video.src = url;
113
+ video.currentTime = 1;
114
+ canvas.width = 120;
115
+ canvas.height = 120;
116
+ video.onloadeddata = () => {
117
+ const context = canvas.getContext('2d');
118
+ if (!context) {
119
+ return;
120
+ }
121
+ context.drawImage(video, 0, 0, canvas.width, canvas.height);
122
+ canvas.toBlob((blob) => {
123
+ if (!blob) {
124
+ return;
125
+ }
126
+ this.videoTool.preview = URL.createObjectURL(blob);
127
+ });
128
+ };
129
+ video.load();
130
+ }
131
+ }
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8udG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3Rvb2xzL3ZpZGVvLnRvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBRXZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RCxNQUFNLE9BQU8sWUFBWTtJQUdoQixNQUFNLEtBQUssbUJBQW1CO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE1BQU0sS0FBSyxPQUFPO1FBQ3ZCLE9BQU87WUFDTCxJQUFJLEVBQUUsU0FBUyxDQUFDLGlCQUFpQjtZQUNqQyxLQUFLLEVBQUUsT0FBTztTQUNmLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxLQUFLLFdBQVc7UUFDM0IsT0FBTztZQUNMLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUNmLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUseUJBQXlCO2FBQ2pDO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQzthQUN2QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBVUQsWUFBWSxPQUFxQjtRQWpDekIsaUJBQVksR0FBK0IsSUFBSSxDQUFDO1FBb0RqRCxpQkFBWSxHQUFHLEdBQVMsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUM5QixZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDckIsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM5QixJQUFJLENBQUMs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QUM7WUFFNUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ1YsT0FBTztnQkFDVCxDQUFDO2dCQUVELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgQ1VJX0lDT05TIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xyXG5pbXBvcnQgdHlwZSB7IEFQSSwgQmxvY2tBUEksIEJsb2NrVG9vbENvbnN0cnVjdG9yT3B0aW9ucywgUGFzdGVDb25maWcsIFRvb2xib3hDb25maWcgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlBbmd1bGFyRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlWaWRlb1Rvb2xDb25maWcsIEVkaXRvclZpZGVvVG9vbENvbXBvbmVudCwgQ3VpVmlkZW9Ub29sRGF0YSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRpdG9yLXZpZGVvLXRvb2wnO1xyXG5pbXBvcnQgeyBFRElUT1JfVklERU9fVE9PTF9TRUxFQ1RPUiB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRpdG9yLXZpZGVvLXRvb2wvZWRpdG9yLXZpZGVvLXRvb2wub3B0aW9ucyc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpRmlsZURhdGEsIEN1aUZpbGVSZXNwb25zZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ZpbGUtcmVzcG9uc2UtZGF0YSc7XHJcbmltcG9ydCB7IEN1aUZpbGVVcGxvYWRlciB9IGZyb20gJy4uL3V0aWxzL2ZpbGUtdXBsb2FkZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIEN1aVZpZGVvVG9vbCB7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZEZpbGU6IEN1aU51bGxhYmxlPHN0cmluZyB8IEZpbGU+ID0gbnVsbDtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXQgaXNSZWFkT25seVN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXQgdG9vbGJveCgpOiBUb29sYm94Q29uZmlnIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGljb246IENVSV9JQ09OUy5jdWlJY29uUGxheUNpcmNsZSxcclxuICAgICAgdGl0bGU6ICdWaWRlbydcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldCBwYXN0ZUNvbmZpZygpOiBQYXN0ZUNvbmZpZyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0YWdzOiBbJ3ZpZGVvJ10sXHJcbiAgICAgIHBhdHRlcm5zOiB7XHJcbiAgICAgICAgdmlkZW86IC9odHRwcz86XFwvXFwvXFxTK1xcLihtcDQpJC9pXHJcbiAgICAgIH0sXHJcbiAgICAgIGZpbGVzOiB7XHJcbiAgICAgICAgbWltZVR5cGVzOiBbJ3ZpZGVvLyonXVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwaTogQVBJO1xyXG4gIHB1YmxpYyBjb25maWc6IEN1aVZpZGVvVG9vbENvbmZpZztcclxuICBwdWJsaWMgYmxvY2tBcGk/OiBCbG9ja0FQSTtcclxuICBwdWJsaWMgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgcHVibGljIGRhdGE6IEN1aVZpZGVvVG9vbERhdGE7XHJcbiAgcHVibGljIHZpZGVvVG9vbCE6IEN1aUFuZ3VsYXJFbGVtZW50PEVkaXRvclZpZGVvVG9vbENvbXBvbmVudD47XHJcbiAgcHVibGljIHVwbG9hZGVyOiBDdWlGaWxlVXBsb2FkZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHsgYXBpOiBBUEkgfSkge1xyXG4gICAgY29uc3QgeyBhcGksIHJlYWRPbmx5LCBjb25maWcsIGRhdGEsIGJsb2NrIH0gPSBvcHRpb25zIGFzIEJsb2NrVG9vbENvbnN0cnVjdG9yT3B0aW9uczxDdWlWaWRlb1Rvb2xEYXRhLCBDdWlWaWRlb1Rvb2xDb25maWc+O1xyXG5cclxuICAgIHRoaXMuYmxvY2tBcGkgPSBibG9jaztcclxuICAgIHRoaXMuYXBpID0gYXBpO1xyXG4gICAgdGhpcy5yZWFkT25seSA9IHJlYWRPbmx5O1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIGxvYWQ6IGNvbmZpZz8ubG9hZCA/PyAoKCkgPT4geyB9KSxcclxuICAgICAgZmllbGQ6IGNvbmZpZz8uZmllbGQgPz8gJ3ZpZGVvJyxcclxuICAgICAgdHlwZXM6IGNvbmZpZz8udHlwZXMgPz8gJ3ZpZGVvLyonLFxyXG4gICAgICBlbmRwb2ludDogY29uZmlnPy5lbmRwb2ludCA/PyAnJyxcclxuICAgICAgYnV0dG9uQ29udGVudDogY29uZmlnPy5idXR0b25Db250ZW50ID8/IHRoaXMuYXBpLmkxOG4udCgnU2VsZWN0IGEgVmlkZW8nKSxcclxuICAgICAgYWRkaXRpb25hbFJlcXVlc3RIZWFkZXJzOiBjb25maWc/LmFkZGl0aW9uYWxSZXF1ZXN0SGVhZGVycyA/PyB7fSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy51cGxvYWRlciA9IG5ldyBDdWlGaWxlVXBsb2FkZXIodGhpcy5jb25maWcsIHRoaXMub25VcGxvYWQuYmluZCh0aGlzKSwgdGhpcy51cGxvYWRpbmdGYWlsZWQuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0RmlsZSA9ICgpOiB2b2lkID0+IHtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZGVyLnNlbGVjdEZpbGUoe1xyXG4gICAgICBmaWxlU2VsZWN0ZWQ6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcclxuXHJcbiAgICAgICAgdGhpcy5nZXRDYXB0dXJlRnJvbVZpZGVvKHVybCk7XHJcbiAgICAgICAgdGhpcy52aWRlb1Rvb2wuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGZpbGU7XHJcblxyXG4gICAgICAgIHRoaXMudXBsb2FkZXIudXBsb2FkRmlsZShmaWxlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGFzeW5jIG9uUGFzdGUoZXZlbnQ6IEN1c3RvbUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ2ZpbGUnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZGV0YWlsLmZpbGU7XHJcblxyXG4gICAgdGhpcy52aWRlb1Rvb2wuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZTtcclxuICAgIHRoaXMudXBsb2FkZXIudXBsb2FkRmlsZShmaWxlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBlbmRDYWxsYmFjaygpOiB2b2lkIHtcclxuICAgIHRoaXMub25TZWxlY3RGaWxlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVuZGVyKCk6IEhUTUxFbGVtZW50IHtcclxuICAgIHRoaXMudmlkZW9Ub29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChFRElUT1JfVklERU9fVE9PTF9TRUxFQ1RPUikgYXMgQ3VpQW5ndWxhckVsZW1lbnQ8RWRpdG9yVmlkZW9Ub29sQ29tcG9uZW50PjtcclxuXHJcbiAgICB0aGlzLnZpZGVvVG9vbC5hcGkgPSB0aGlzLmFwaTtcclxuICAgIHRoaXMudmlkZW9Ub29sLnZpZGVvID0gdGhpcy5kYXRhLmZpbGU/LnVybCB8fCAnJztcclxuICAgIHRoaXMudmlkZW9Ub29sLmNhcHRpb24gPSB0aGlzLmRhdGEuY2FwdGlvbiB8fCAnJztcclxuICAgIHRoaXMudmlkZW9Ub29sLnJlYWRPbmx5ID0gdGhpcy5yZWFkT25seTtcclxuICAgIHRoaXMudmlkZW9Ub29sLmJ1dHRvbkNvbnRlbnQgPSB0aGlzLmNvbmZpZy5idXR0b25Db250ZW50O1xyXG5cclxuICAgIHRoaXMudmlkZW9Ub29sLmFkZEV2ZW50TGlzdGVuZXIoJ2ZpbGVTZWxlY3RlZCcsIHRoaXMub25TZWxlY3RGaWxlKTtcclxuICAgIHRoaXMudmlkZW9Ub29sLmFkZEV2ZW50TGlzdGVuZXIoJ2NhcHRpb25DaGFuZ2VkJywgdGhpcy5jaGFuZ2VDYXB0aW9uLmJpbmQodGhpcykpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnZpZGVvVG9vbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlKCk6IEN1aVZpZGVvVG9vbERhdGEge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWRlb1Rvb2wucmVtb3ZlRXZlbnRMaXN0ZW5lcignZmlsZVNlbGVjdGVkJywgdGhpcy5vblNlbGVjdEZpbGUpO1xyXG4gICAgdGhpcy52aWRlb1Rvb2wucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2FwdGlvbkNoYW5nZWQnLCB0aGlzLmNoYW5nZUNhcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUNhcHRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXN0b21FdmVudCA9IGV2ZW50IGFzIEN1c3RvbUV2ZW50O1xyXG4gICAgY29uc3QgdmFsdWUgPSBjdXN0b21FdmVudC5kZXRhaWw7XHJcbiAgICB0aGlzLmRhdGEuY2FwdGlvbiA9IHZhbHVlO1xyXG5cclxuICAgIHRoaXMuYmxvY2tBcGk/LmRpc3BhdGNoQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHZpZGVvKGZpbGU6IEN1aUZpbGVEYXRhKSB7XHJcbiAgICB0aGlzLmRhdGEuZmlsZSA9IGZpbGUgfHwge307XHJcblxyXG4gICAgaWYgKGZpbGUgJiYgZmlsZS51cmwpIHtcclxuICAgICAgdGhpcy52aWRlb1Rvb2wudmlkZW8gPSBmaWxlLnVybDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25VcGxvYWQocmVzcG9uc2U6IEN1aUZpbGVSZXNwb25zZURhdGEpOiB2b2lkIHtcclxuICAgIGlmICghcmVzcG9uc2Uuc3VjY2VzcyB8fCAhcmVzcG9uc2UuZmlsZSB8fCAhdGhpcy5zZWxlY3RlZEZpbGUpIHtcclxuICAgICAgdGhpcy51cGxvYWRpbmdGYWlsZWQoKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZSBpbnN0YW5jZW9mIEZpbGUgPyB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLnNlbGVjdGVkRmlsZSkgOiB0aGlzLnNlbGVjdGVkRmlsZTtcclxuXHJcbiAgICB0aGlzLmRhdGEuZmlsZSA9IHJlc3BvbnNlLmZpbGU7XHJcbiAgICB0aGlzLnZpZGVvVG9vbC52aWRlbyA9IHVybDtcclxuICAgIHRoaXMudmlkZW9Ub29sLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGxvYWRpbmdGYWlsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZGVvVG9vbC52aWRlbyA9ICcnO1xyXG4gICAgdGhpcy52aWRlb1Rvb2wuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENhcHR1cmVGcm9tVmlkZW8odXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpIGFzIEhUTUxDYW52YXNFbGVtZW50O1xyXG4gICAgY29uc3QgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpIGFzIEhUTUxWaWRlb0VsZW1lbnQ7XHJcblxyXG4gICAgdmlkZW8uc3JjID0gdXJsO1xyXG4gICAgdmlkZW8uY3VycmVudFRpbWUgPSAxO1xyXG4gICAgY2FudmFzLndpZHRoID0gMTIwO1xyXG4gICAgY2FudmFzLmhlaWdodCA9IDEyMDtcclxuXHJcbiAgICB2aWRlby5vbmxvYWRlZGRhdGEgPSAoKTogdm9pZCA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHJcbiAgICAgIGlmICghY29udGV4dCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29udGV4dC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XHJcblxyXG4gICAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XHJcbiAgICAgICAgaWYgKCFibG9iKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnZpZGVvVG9vbC5wcmV2aWV3ID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHZpZGVvLmxvYWQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,22 @@
1
+ import { MARKER_MODAL_SELECTOR } from '../components/marker-modal';
2
+ export function createLinkModal(tooltip, link) {
3
+ const linkModal = document.createElement(MARKER_MODAL_SELECTOR);
4
+ const button = tooltip.querySelector('.edit');
5
+ linkModal.url = link.href;
6
+ linkModal.title = link.innerText;
7
+ linkModal.target = button;
8
+ linkModal.space = 15;
9
+ linkModal.addEventListener('saveClicked', (event) => {
10
+ const customEvent = event;
11
+ if (typeof customEvent.detail.data === 'string') {
12
+ link.setAttribute('href', customEvent.detail.data);
13
+ }
14
+ link.innerHTML = customEvent.detail.title;
15
+ tooltip.remove();
16
+ });
17
+ linkModal.addEventListener('cancelClicked', () => {
18
+ tooltip.remove();
19
+ });
20
+ return linkModal;
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWxpbmstbW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9jcmVhdGUtbGluay1tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVuRSxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQW9CLEVBQUUsSUFBcUI7SUFDdkUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBNEMsQ0FBQztJQUMzRyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBc0IsQ0FBQztJQUVuRSxTQUFTLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDMUIsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ2pDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQzFCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXJCLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtRQUN2RCxNQUFNLFdBQVcsR0FBRyxLQUFnQyxDQUFDO1FBRXJELElBQUksT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1FBQzdDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdWlBbmd1bGFyRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgdHlwZSB7IE1hcmtlckRhdGEsIE1hcmtlck1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9tYXJrZXItbW9kYWwnO1xyXG5pbXBvcnQgeyBNQVJLRVJfTU9EQUxfU0VMRUNUT1IgfSBmcm9tICcuLi9jb21wb25lbnRzL21hcmtlci1tb2RhbCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlua01vZGFsKHRvb2x0aXA6IEhUTUxFbGVtZW50LCBsaW5rOiBIVE1MTGlua0VsZW1lbnQpOiBDdWlBbmd1bGFyRWxlbWVudDxNYXJrZXJNb2RhbENvbXBvbmVudD4ge1xyXG4gICAgY29uc3QgbGlua01vZGFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChNQVJLRVJfTU9EQUxfU0VMRUNUT1IpIGFzIEN1aUFuZ3VsYXJFbGVtZW50PE1hcmtlck1vZGFsQ29tcG9uZW50PjtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IHRvb2x0aXAucXVlcnlTZWxlY3RvcignLmVkaXQnKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcclxuXHJcbiAgICBsaW5rTW9kYWwudXJsID0gbGluay5ocmVmO1xyXG4gICAgbGlua01vZGFsLnRpdGxlID0gbGluay5pbm5lclRleHQ7XHJcbiAgICBsaW5rTW9kYWwudGFyZ2V0ID0gYnV0dG9uO1xyXG4gICAgbGlua01vZGFsLnNwYWNlID0gMTU7XHJcblxyXG4gICAgbGlua01vZGFsLmFkZEV2ZW50TGlzdGVuZXIoJ3NhdmVDbGlja2VkJywgKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGN1c3RvbUV2ZW50ID0gZXZlbnQgYXMgQ3VzdG9tRXZlbnQ8TWFya2VyRGF0YT47XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgY3VzdG9tRXZlbnQuZGV0YWlsLmRhdGEgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgY3VzdG9tRXZlbnQuZGV0YWlsLmRhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGluay5pbm5lckhUTUwgPSBjdXN0b21FdmVudC5kZXRhaWwudGl0bGU7XHJcblxyXG4gICAgICAgIHRvb2x0aXAucmVtb3ZlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBsaW5rTW9kYWwuYWRkRXZlbnRMaXN0ZW5lcignY2FuY2VsQ2xpY2tlZCcsICgpID0+IHtcclxuICAgICAgICB0b29sdGlwLnJlbW92ZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGxpbmtNb2RhbDtcclxufVxyXG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { MARKER_MODAL_SELECTOR, MARKER_SELECT_SELECTOR } from '../components';
2
+ export function createSelect(marker, tooltip) {
3
+ const select = document.createElement(MARKER_SELECT_SELECTOR);
4
+ const button = tooltip.querySelector('.edit');
5
+ select.space = 8;
6
+ select.target = button;
7
+ select.addEventListener('toolClick', (event) => onToolClick(marker, tooltip, event));
8
+ return select;
9
+ }
10
+ export function createToolModal(marker, tooltip) {
11
+ const toolModal = document.createElement(MARKER_MODAL_SELECTOR);
12
+ const button = tooltip.querySelector('.edit');
13
+ const toolId = marker.dataset['id'];
14
+ const toolType = marker.dataset['type'];
15
+ toolModal.title = marker.innerText;
16
+ toolModal.target = button;
17
+ toolModal.isTool = true;
18
+ toolModal.tool = {
19
+ id: toolId,
20
+ type: toolType
21
+ };
22
+ toolModal.space = 8;
23
+ toolModal.addEventListener('saveClicked', (event) => {
24
+ const customEvent = event;
25
+ const data = customEvent.detail.data;
26
+ if (data && typeof data !== 'string') {
27
+ marker.setAttribute('data-id', data.id);
28
+ marker.setAttribute('data-type', data.type);
29
+ }
30
+ marker.innerHTML = customEvent.detail.title;
31
+ tooltip.remove();
32
+ });
33
+ toolModal.addEventListener('cancelClicked', () => {
34
+ tooltip.remove();
35
+ });
36
+ return toolModal;
37
+ }
38
+ function onToolClick(marker, tooltip, event) {
39
+ event.stopPropagation();
40
+ const customEvent = event;
41
+ const tool = customEvent.detail;
42
+ marker.dataset['id'] = tool.id;
43
+ tooltip.remove();
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRvb2wtbW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9jcmVhdGUtdG9vbC1tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHOUUsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFtQixFQUFFLE9BQW9CO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQTZDLENBQUM7SUFDMUcsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQXNCLENBQUM7SUFFbkUsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDakIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVyRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFtQixFQUFFLE9BQW9CO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQTRDLENBQUM7SUFDM0csTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQXNCLENBQUM7SUFDbkUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUUsQ0FBQztJQUNyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBZSxDQUFDO0lBRXRELFNBQVMsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxTQUFTLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUMxQixTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN4QixTQUFTLENBQUMsSUFBSSxHQUFHO1FBQ2IsRUFBRSxFQUFFLE1BQU07UUFDVixJQUFJLEVBQUUsUUFBUTtLQUNqQixDQUFDO0lBQ0YsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFcEIsU0FBUyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLEtBQWdDLENBQUM7UUFDckQsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFFckMsSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsTUFBTSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUU1QyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtRQUM3QyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsTUFBbUIsRUFBRSxPQUFvQixFQUFFLEtBQVk7SUFDeEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBRXhCLE1BQU0sV0FBVyxHQUFHLEtBQTBCLENBQUM7SUFDL0MsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUVoQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFL0IsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEN1aUFuZ3VsYXJFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB0eXBlIHsgTWFya2VyRGF0YSwgVG9vbCwgTWFya2VyU2VsZWN0Q29tcG9uZW50LCBNYXJrZXJNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBNQVJLRVJfTU9EQUxfU0VMRUNUT1IsIE1BUktFUl9TRUxFQ1RfU0VMRUNUT1IgfSBmcm9tICcuLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHR5cGUgeyBNYXJrZXJUeXBlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdChtYXJrZXI6IEhUTUxFbGVtZW50LCB0b29sdGlwOiBIVE1MRWxlbWVudCk6IEN1aUFuZ3VsYXJFbGVtZW50PE1hcmtlclNlbGVjdENvbXBvbmVudD4ge1xyXG4gICAgY29uc3Qgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChNQVJLRVJfU0VMRUNUX1NFTEVDVE9SKSBhcyBDdWlBbmd1bGFyRWxlbWVudDxNYXJrZXJTZWxlY3RDb21wb25lbnQ+O1xyXG4gICAgY29uc3QgYnV0dG9uID0gdG9vbHRpcC5xdWVyeVNlbGVjdG9yKCcuZWRpdCcpIGFzIEhUTUxCdXR0b25FbGVtZW50O1xyXG5cclxuICAgIHNlbGVjdC5zcGFjZSA9IDg7XHJcbiAgICBzZWxlY3QudGFyZ2V0ID0gYnV0dG9uO1xyXG4gICAgc2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ3Rvb2xDbGljaycsIChldmVudCkgPT4gb25Ub29sQ2xpY2sobWFya2VyLCB0b29sdGlwLCBldmVudCkpO1xyXG5cclxuICAgIHJldHVybiBzZWxlY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sTW9kYWwobWFya2VyOiBIVE1MRWxlbWVudCwgdG9vbHRpcDogSFRNTEVsZW1lbnQpOiBDdWlBbmd1bGFyRWxlbWVudDxNYXJrZXJNb2RhbENvbXBvbmVudD4ge1xyXG4gICAgY29uc3QgdG9vbE1vZGFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChNQVJLRVJfTU9EQUxfU0VMRUNUT1IpIGFzIEN1aUFuZ3VsYXJFbGVtZW50PE1hcmtlck1vZGFsQ29tcG9uZW50PjtcclxuICAgIGNvbnN0IGJ1dHRvbiA9IHRvb2x0aXAucXVlcnlTZWxlY3RvcignLmVkaXQnKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcclxuICAgIGNvbnN0IHRvb2xJZCA9IG1hcmtlci5kYXRhc2V0WydpZCddITtcclxuICAgIGNvbnN0IHRvb2xUeXBlID0gbWFya2VyLmRhdGFzZXRbJ3R5cGUnXSBhcyBNYXJrZXJUeXBlO1xyXG5cclxuICAgIHRvb2xNb2RhbC50aXRsZSA9IG1hcmtlci5pbm5lclRleHQ7XHJcbiAgICB0b29sTW9kYWwudGFyZ2V0ID0gYnV0dG9uO1xyXG4gICAgdG9vbE1vZGFsLmlzVG9vbCA9IHRydWU7XHJcbiAgICB0b29sTW9kYWwudG9vbCA9IHtcclxuICAgICAgICBpZDogdG9vbElkLFxyXG4gICAgICAgIHR5cGU6IHRvb2xUeXBlXHJcbiAgICB9O1xyXG4gICAgdG9vbE1vZGFsLnNwYWNlID0gODtcclxuXHJcbiAgICB0b29sTW9kYWwuYWRkRXZlbnRMaXN0ZW5lcignc2F2ZUNsaWNrZWQnLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tRXZlbnQgPSBldmVudCBhcyBDdXN0b21FdmVudDxNYXJrZXJEYXRhPjtcclxuICAgICAgICBjb25zdCBkYXRhID0gY3VzdG9tRXZlbnQuZGV0YWlsLmRhdGE7XHJcblxyXG4gICAgICAgIGlmIChkYXRhICYmIHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBtYXJrZXIuc2V0QXR0cmlidXRlKCdkYXRhLWlkJywgZGF0YS5pZCk7XHJcbiAgICAgICAgICAgIG1hcmtlci5zZXRBdHRyaWJ1dGUoJ2RhdGEtdHlwZScsIGRhdGEudHlwZSEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbWFya2VyLmlubmVySFRNTCA9IGN1c3RvbUV2ZW50LmRldGFpbC50aXRsZTtcclxuXHJcbiAgICAgICAgdG9vbHRpcC5yZW1vdmUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRvb2xNb2RhbC5hZGRFdmVudExpc3RlbmVyKCdjYW5jZWxDbGlja2VkJywgKCkgPT4ge1xyXG4gICAgICAgIHRvb2x0aXAucmVtb3ZlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdG9vbE1vZGFsO1xyXG59XHJcblxyXG5mdW5jdGlvbiBvblRvb2xDbGljayhtYXJrZXI6IEhUTUxFbGVtZW50LCB0b29sdGlwOiBIVE1MRWxlbWVudCwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBjb25zdCBjdXN0b21FdmVudCA9IGV2ZW50IGFzIEN1c3RvbUV2ZW50PFRvb2w+O1xyXG4gICAgY29uc3QgdG9vbCA9IGN1c3RvbUV2ZW50LmRldGFpbDtcclxuXHJcbiAgICBtYXJrZXIuZGF0YXNldFsnaWQnXSA9IHRvb2wuaWQ7XHJcblxyXG4gICAgdG9vbHRpcC5yZW1vdmUoKTtcclxufVxyXG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { EDITOR_TOOLTIP_SELECTOR } from '../components';
2
+ import { createLinkModal } from './create-link-modal';
3
+ import { createToolModal } from './create-tool-modal';
4
+ import { removeElementTagWrapper } from './remove-element-tag-wrapper';
5
+ export const tooltipMap = {
6
+ MARK: createMarkerTooltip,
7
+ A: createLinkTooltip
8
+ };
9
+ export function createMarkerTooltip(marker) {
10
+ const tooltip = createTooltip(marker, marker.innerText);
11
+ setTimeout(() => {
12
+ const select = createToolModal(marker, tooltip);
13
+ tooltip.append(select);
14
+ });
15
+ return tooltip;
16
+ }
17
+ export function createLinkTooltip(link) {
18
+ const linkElement = link;
19
+ const options = ['copy', 'edit', 'delete'];
20
+ const linkUrl = linkElement.href;
21
+ const tooltip = createTooltip(linkElement, linkUrl, options);
22
+ tooltip.addEventListener('copyClicked', () => {
23
+ window?.navigator.clipboard.writeText(linkUrl);
24
+ });
25
+ setTimeout(() => {
26
+ const linkModal = createLinkModal(tooltip, linkElement);
27
+ tooltip.append(linkModal);
28
+ });
29
+ return tooltip;
30
+ }
31
+ export function createTooltip(element, title, options) {
32
+ const tooltip = document.createElement(EDITOR_TOOLTIP_SELECTOR);
33
+ tooltip.title = title;
34
+ if (options) {
35
+ tooltip.options = options;
36
+ }
37
+ tooltip.addEventListener('deleteClicked', (event) => {
38
+ event.stopPropagation();
39
+ removeElementTagWrapper(element);
40
+ tooltip.remove();
41
+ });
42
+ return tooltip;
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRvb2x0aXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9jcmVhdGUtdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixDQUFDLEVBQUUsaUJBQWlCO0NBQ3ZCLENBQUM7QUFFRixNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBbUI7SUFDbkQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNaLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFaEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBaUI7SUFDL0MsTUFBTSxXQUFXLEdBQUcsSUFBdUIsQ0FBQztJQUM1QyxNQUFNLE9BQU8sR0FBeUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDakMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFN0QsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDekMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25ELENBQUMsQ0FBQyxDQUFDO0lBRUgsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNaLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFeEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQW9CLEVBQUUsS0FBYSxFQUFFLE9BQThCO0lBQzdGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQThDLENBQUM7SUFFN0csT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFdEIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7UUFDdkQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEN1aUFuZ3VsYXJFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB0eXBlIHsgRWRpdG9yVG9vbHRpcENvbXBvbmVudCwgRWRpdG9yVG9vbHRpcE9wdGlvbnMgfSBmcm9tICcuLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRURJVE9SX1RPT0xUSVBfU0VMRUNUT1IgfSBmcm9tICcuLi9jb21wb25lbnRzJztcclxuXHJcbmltcG9ydCB7IGNyZWF0ZUxpbmtNb2RhbCB9IGZyb20gJy4vY3JlYXRlLWxpbmstbW9kYWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVUb29sTW9kYWwgfSBmcm9tICcuL2NyZWF0ZS10b29sLW1vZGFsJztcclxuaW1wb3J0IHsgcmVtb3ZlRWxlbWVudFRhZ1dyYXBwZXIgfSBmcm9tICcuL3JlbW92ZS1lbGVtZW50LXRhZy13cmFwcGVyJztcclxuXHJcbmV4cG9ydCBjb25zdCB0b29sdGlwTWFwID0ge1xyXG4gICAgTUFSSzogY3JlYXRlTWFya2VyVG9vbHRpcCxcclxuICAgIEE6IGNyZWF0ZUxpbmtUb29sdGlwXHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWFya2VyVG9vbHRpcChtYXJrZXI6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xyXG4gICAgY29uc3QgdG9vbHRpcCA9IGNyZWF0ZVRvb2x0aXAobWFya2VyLCBtYXJrZXIuaW5uZXJUZXh0KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzZWxlY3QgPSBjcmVhdGVUb29sTW9kYWwobWFya2VyLCB0b29sdGlwKTtcclxuXHJcbiAgICAgICAgdG9vbHRpcC5hcHBlbmQoc2VsZWN0KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0b29sdGlwO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlua1Rvb2x0aXAobGluazogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XHJcbiAgICBjb25zdCBsaW5rRWxlbWVudCA9IGxpbmsgYXMgSFRNTExpbmtFbGVtZW50O1xyXG4gICAgY29uc3Qgb3B0aW9uczogRWRpdG9yVG9vbHRpcE9wdGlvbnMgPSBbJ2NvcHknLCAnZWRpdCcsICdkZWxldGUnXTtcclxuICAgIGNvbnN0IGxpbmtVcmwgPSBsaW5rRWxlbWVudC5ocmVmO1xyXG4gICAgY29uc3QgdG9vbHRpcCA9IGNyZWF0ZVRvb2x0aXAobGlua0VsZW1lbnQsIGxpbmtVcmwsIG9wdGlvbnMpO1xyXG5cclxuICAgIHRvb2x0aXAuYWRkRXZlbnRMaXN0ZW5lcignY29weUNsaWNrZWQnLCAoKSA9PiB7XHJcbiAgICAgICAgd2luZG93Py5uYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChsaW5rVXJsKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGxpbmtNb2RhbCA9IGNyZWF0ZUxpbmtNb2RhbCh0b29sdGlwLCBsaW5rRWxlbWVudCk7XHJcblxyXG4gICAgICAgIHRvb2x0aXAuYXBwZW5kKGxpbmtNb2RhbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdG9vbHRpcDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2x0aXAoZWxlbWVudDogSFRNTEVsZW1lbnQsIHRpdGxlOiBzdHJpbmcsIG9wdGlvbnM/OiBFZGl0b3JUb29sdGlwT3B0aW9ucyk6IEhUTUxFbGVtZW50IHtcclxuICAgIGNvbnN0IHRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KEVESVRPUl9UT09MVElQX1NFTEVDVE9SKSBhcyBDdWlBbmd1bGFyRWxlbWVudDxFZGl0b3JUb29sdGlwQ29tcG9uZW50PjtcclxuXHJcbiAgICB0b29sdGlwLnRpdGxlID0gdGl0bGU7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgICB0b29sdGlwLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHRvb2x0aXAuYWRkRXZlbnRMaXN0ZW5lcignZGVsZXRlQ2xpY2tlZCcsIChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgICAgcmVtb3ZlRWxlbWVudFRhZ1dyYXBwZXIoZWxlbWVudCk7XHJcblxyXG4gICAgICAgIHRvb2x0aXAucmVtb3ZlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gdG9vbHRpcDtcclxufVxyXG4iXX0=
@@ -0,0 +1,57 @@
1
+ export var CuiFileUploaderStatus;
2
+ (function (CuiFileUploaderStatus) {
3
+ CuiFileUploaderStatus["Loading"] = "loading";
4
+ CuiFileUploaderStatus["Completed"] = "completed";
5
+ })(CuiFileUploaderStatus || (CuiFileUploaderStatus = {}));
6
+ export class CuiFileUploader {
7
+ constructor(config, onUpload, onError) {
8
+ this.REQUEST_METHOD = 'POST';
9
+ this.selectFile = ({ fileSelected }) => {
10
+ const input = document.createElement('input');
11
+ const types = this.config?.types || '*';
12
+ input.type = 'file';
13
+ input.accept = types;
14
+ input.onchange = () => {
15
+ const files = input.files;
16
+ if (!files?.length) {
17
+ return;
18
+ }
19
+ this.getFile(files, fileSelected);
20
+ };
21
+ input.click();
22
+ };
23
+ this.config = config;
24
+ this.onUpload = onUpload;
25
+ this.onError = onError;
26
+ }
27
+ getFile(files, fileSelected) {
28
+ const file = files.item(0);
29
+ if (!file) {
30
+ return;
31
+ }
32
+ fileSelected(file);
33
+ }
34
+ uploadFile(file) {
35
+ const formData = new FormData();
36
+ const formField = this.config.field || 'file';
37
+ formData.append(formField, file);
38
+ if (!this.config.endpoint) {
39
+ return;
40
+ }
41
+ this.config.load(CuiFileUploaderStatus.Loading);
42
+ const upload = fetch(this.config.endpoint, {
43
+ headers: this.config.additionalRequestHeaders,
44
+ method: this.REQUEST_METHOD,
45
+ body: formData
46
+ });
47
+ upload
48
+ .then((response) => response.json())
49
+ .then((response) => this.onUpload(response, file))
50
+ .catch(() => this.onError())
51
+ .finally(() => this.config.load(CuiFileUploaderStatus.Completed));
52
+ }
53
+ uploadByUrl(url) {
54
+ this.onUpload({ success: 1, file: { url } });
55
+ }
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3V0aWxzL2ZpbGUtdXBsb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVkscUJBR1g7QUFIRCxXQUFZLHFCQUFxQjtJQUMvQiw0Q0FBbUIsQ0FBQTtJQUNuQixnREFBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUdoQztBQVlELE1BQU0sT0FBTyxlQUFlO0lBTXhCLFlBQVksTUFBNkIsRUFBRSxRQUFrQixFQUFFLE9BQW1CO1FBTGpFLG1CQUFjLEdBQUcsTUFBTSxDQUFDO1FBV2xDLGVBQVUsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUEwQyxFQUFRLEVBQUU7WUFDbkYsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxHQUFHLENBQUM7WUFDeEMsS0FBSyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDcEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFFckIsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFTLEVBQUU7Z0JBQ3hCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBRTFCLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2pCLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUM7WUFFRixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDO1FBdEJFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFxQk0sT0FBTyxDQUFDLEtBQWUsRUFBRSxZQUFrQztRQUM5RCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE9BQU87UUFDWCxDQUFDO1FBRUQsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBVTtRQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQztRQUM5QyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWhELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUN2QyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0I7WUFDN0MsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzNCLElBQUksRUFBRSxRQUFRO1NBQ2pCLENBQUMsQ0FBQztRQUVILE1BQU07YUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNuQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2pELEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDM0IsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFXO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEN1aUZpbGVSZXNwb25zZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBlbnVtIEN1aUZpbGVVcGxvYWRlclN0YXR1cyB7XHJcbiAgTG9hZGluZyA9ICdsb2FkaW5nJyxcclxuICBDb21wbGV0ZWQgPSAnY29tcGxldGVkJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1aUZpbGVVcGxvYWRlckNvbmZpZyB7XHJcbiAgICByZWFkb25seSBlbmRwb2ludDogc3RyaW5nO1xyXG4gICAgcmVhZG9ubHkgdHlwZXM6IHN0cmluZztcclxuICAgIHJlYWRvbmx5IGZpZWxkOiBzdHJpbmc7XHJcbiAgICByZWFkb25seSBhZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnM6IEhlYWRlcnNJbml0O1xyXG4gICAgcmVhZG9ubHkgbG9hZDogKHN0YXR1czogQ3VpRmlsZVVwbG9hZGVyU3RhdHVzKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPblVwbG9hZCA9IChyZXNwb25zZTogQ3VpRmlsZVJlc3BvbnNlRGF0YSwgZmlsZT86IEZpbGUpID0+IHZvaWQ7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VpRmlsZVVwbG9hZGVyIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgUkVRVUVTVF9NRVRIT0QgPSAnUE9TVCc7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogQ3VpRmlsZVVwbG9hZGVyQ29uZmlnO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBvblVwbG9hZDogT25VcGxvYWQ7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uRXJyb3I6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBDdWlGaWxlVXBsb2FkZXJDb25maWcsIG9uVXBsb2FkOiBPblVwbG9hZCwgb25FcnJvcjogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xyXG4gICAgICAgIHRoaXMub25VcGxvYWQgPSBvblVwbG9hZDtcclxuICAgICAgICB0aGlzLm9uRXJyb3IgPSBvbkVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZWxlY3RGaWxlID0gKHsgZmlsZVNlbGVjdGVkIH06IHsgZmlsZVNlbGVjdGVkOiAoZmlsZTogRmlsZSkgPT4gdm9pZCB9KTogdm9pZCA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgICAgIGNvbnN0IHR5cGVzID0gdGhpcy5jb25maWc/LnR5cGVzIHx8ICcqJztcclxuICAgICAgICBpbnB1dC50eXBlID0gJ2ZpbGUnO1xyXG4gICAgICAgIGlucHV0LmFjY2VwdCA9IHR5cGVzO1xyXG5cclxuICAgICAgICBpbnB1dC5vbmNoYW5nZSA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBpbnB1dC5maWxlcztcclxuXHJcbiAgICAgICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdldEZpbGUoZmlsZXMsIGZpbGVTZWxlY3RlZCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaW5wdXQuY2xpY2soKTtcclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGdldEZpbGUoZmlsZXM6IEZpbGVMaXN0LCBmaWxlU2VsZWN0ZWQ6IChmaWxlOiBGaWxlKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGZpbGVzLml0ZW0oMCk7XHJcblxyXG4gICAgICAgIGlmICghZmlsZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmaWxlU2VsZWN0ZWQoZmlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5jb25maWcuZmllbGQgfHwgJ2ZpbGUnO1xyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChmb3JtRmllbGQsIGZpbGUpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmVuZHBvaW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY29uZmlnLmxvYWQoQ3VpRmlsZVVwbG9hZGVyU3RhdHVzLkxvYWRpbmcpO1xyXG5cclxuICAgICAgICBjb25zdCB1cGxvYWQgPSBmZXRjaCh0aGlzLmNvbmZpZy5lbmRwb2ludCwge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmNvbmZpZy5hZGRpdGlvbmFsUmVxdWVzdEhlYWRlcnMsXHJcbiAgICAgICAgICAgIG1ldGhvZDogdGhpcy5SRVFVRVNUX01FVEhPRCxcclxuICAgICAgICAgICAgYm9keTogZm9ybURhdGFcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdXBsb2FkXHJcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuanNvbigpKVxyXG4gICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHRoaXMub25VcGxvYWQocmVzcG9uc2UsIGZpbGUpKVxyXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5vbkVycm9yKCkpXHJcbiAgICAgICAgICAgIC5maW5hbGx5KCgpID0+IHRoaXMuY29uZmlnLmxvYWQoQ3VpRmlsZVVwbG9hZGVyU3RhdHVzLkNvbXBsZXRlZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGxvYWRCeVVybCh1cmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25VcGxvYWQoeyBzdWNjZXNzOiAxLCBmaWxlOiB7IHVybCB9IH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export function generateId() {
2
+ return '_' + Math.random().toString(36).substring(2, 9);
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9nZW5lcmF0ZS1pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsVUFBVTtJQUN0QixPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gJ18nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export * from './create-link-modal';
2
+ export * from './create-tool-modal';
3
+ export * from './create-tooltip';
4
+ export * from './file-uploader';
5
+ export * from './generate-id';
6
+ export * from './recalculate-indexes';
7
+ export * from './remove-element-tag-wrapper';
8
+ export * from './split-html';
9
+ export * from './url.validator';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtbGluay1tb2RhbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXRvb2wtbW9kYWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS10b29sdGlwJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWxlLXVwbG9hZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0ZS1pZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVjYWxjdWxhdGUtaW5kZXhlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlLWVsZW1lbnQtdGFnLXdyYXBwZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3NwbGl0LWh0bWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VybC52YWxpZGF0b3InO1xyXG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { COMBINED_TEXT_BLOCK_PART } from '../constants';
2
+ export function recalculateIndexes(blocksApi) {
3
+ if (!blocksApi) {
4
+ return;
5
+ }
6
+ const blocks = blocksApi.getBlocksCount();
7
+ let index = 0;
8
+ for (let i = 0; i < blocks; i++) {
9
+ const block = blocksApi.getBlockByIndex(i);
10
+ if (!block) {
11
+ continue;
12
+ }
13
+ const blockElement = block?.holder;
14
+ const subblocks = blockElement.querySelectorAll('.' + COMBINED_TEXT_BLOCK_PART);
15
+ blockElement.setAttribute('data-index', String(index));
16
+ if (!subblocks.length) {
17
+ index++;
18
+ continue;
19
+ }
20
+ subblocks.forEach((subblock) => {
21
+ const subBlockIndex = subblock.getAttribute('data-index');
22
+ const indexAsNumber = subBlockIndex ? Number(subBlockIndex) : null;
23
+ if (indexAsNumber !== null && indexAsNumber === index) {
24
+ index++;
25
+ return;
26
+ }
27
+ subblock.setAttribute('data-index', String(index));
28
+ index++;
29
+ });
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYWxjdWxhdGUtaW5kZXhlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3V0aWxzL3JlY2FsY3VsYXRlLWluZGV4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXhELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQjtJQUNoRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDYixPQUFPO0lBQ1gsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxTQUFTO1FBQ2IsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRyx3QkFBd0IsQ0FBQyxDQUFDO1FBRWhGLFlBQVksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsS0FBSyxFQUFFLENBQUM7WUFFUixTQUFTO1FBQ2IsQ0FBQztRQUVELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMzQixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFELE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFbkUsSUFBSSxhQUFhLEtBQUssSUFBSSxJQUFJLGFBQWEsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLENBQUM7Z0JBRVIsT0FBTztZQUNYLENBQUM7WUFFRCxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRCxLQUFLLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJsb2NrcyB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcy90eXBlcy9hcGknO1xyXG5cclxuaW1wb3J0IHsgQ09NQklORURfVEVYVF9CTE9DS19QQVJUIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWNhbGN1bGF0ZUluZGV4ZXMoYmxvY2tzQXBpOiBCbG9ja3MpOiB2b2lkIHtcclxuICAgIGlmICghYmxvY2tzQXBpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJsb2NrcyA9IGJsb2Nrc0FwaS5nZXRCbG9ja3NDb3VudCgpO1xyXG4gICAgbGV0IGluZGV4ID0gMDtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJsb2NrczsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgYmxvY2sgPSBibG9ja3NBcGkuZ2V0QmxvY2tCeUluZGV4KGkpO1xyXG5cclxuICAgICAgICBpZiAoIWJsb2NrKSB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYmxvY2tFbGVtZW50ID0gYmxvY2s/LmhvbGRlcjtcclxuICAgICAgICBjb25zdCBzdWJibG9ja3MgPSBibG9ja0VsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyBDT01CSU5FRF9URVhUX0JMT0NLX1BBUlQpO1xyXG5cclxuICAgICAgICBibG9ja0VsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLWluZGV4JywgU3RyaW5nKGluZGV4KSk7XHJcblxyXG4gICAgICAgIGlmICghc3ViYmxvY2tzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBpbmRleCsrO1xyXG5cclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzdWJibG9ja3MuZm9yRWFjaCgoc3ViYmxvY2spID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc3ViQmxvY2tJbmRleCA9IHN1YmJsb2NrLmdldEF0dHJpYnV0ZSgnZGF0YS1pbmRleCcpO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleEFzTnVtYmVyID0gc3ViQmxvY2tJbmRleCA/IE51bWJlcihzdWJCbG9ja0luZGV4KSA6IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAoaW5kZXhBc051bWJlciAhPT0gbnVsbCAmJiBpbmRleEFzTnVtYmVyID09PSBpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgaW5kZXgrKztcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHN1YmJsb2NrLnNldEF0dHJpYnV0ZSgnZGF0YS1pbmRleCcsIFN0cmluZyhpbmRleCkpO1xyXG4gICAgICAgICAgICBpbmRleCsrO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ export function removeElementTagWrapper(element) {
2
+ const parent = element.parentElement;
3
+ const innerElementNodes = element.childNodes;
4
+ let node;
5
+ while (innerElementNodes.length) {
6
+ node = innerElementNodes.item(0);
7
+ parent?.insertBefore(node, element);
8
+ }
9
+ element.remove();
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWVsZW1lbnQtdGFnLXdyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci91dGlscy9yZW1vdmUtZWxlbWVudC10YWctd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FBb0I7SUFDeEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUNyQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFFN0MsSUFBSSxJQUFVLENBQUM7SUFFZixPQUFPLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakMsTUFBTSxFQUFFLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVsZW1lbnRUYWdXcmFwcGVyKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCBpbm5lckVsZW1lbnROb2RlcyA9IGVsZW1lbnQuY2hpbGROb2RlcztcclxuXHJcbiAgICBsZXQgbm9kZTogTm9kZTtcclxuXHJcbiAgICB3aGlsZSAoaW5uZXJFbGVtZW50Tm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgbm9kZSA9IGlubmVyRWxlbWVudE5vZGVzLml0ZW0oMCk7XHJcblxyXG4gICAgICAgIHBhcmVudD8uaW5zZXJ0QmVmb3JlKG5vZGUsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGVsZW1lbnQucmVtb3ZlKCk7XHJcbn1cclxuIl19