@worktile/theia 18.0.16 → 18.1.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 (369) hide show
  1. package/constants/node-types.d.ts +1 -0
  2. package/core/toolbar-item/base-toolbar-item.d.ts +2 -2
  3. package/fesm2022/worktile-theia.mjs +297 -310
  4. package/fesm2022/worktile-theia.mjs.map +1 -1
  5. package/interfaces/view-base.d.ts +1 -1
  6. package/package.json +2 -4
  7. package/plugins/code/code.component.scss +1 -2
  8. package/plugins/image/image.component.d.ts +1 -1
  9. package/plugins/link/link.component.d.ts +1 -1
  10. package/plugins/mention/suggestion.component.d.ts +1 -1
  11. package/esm2022/components/action/prevent-default.mjs +0 -21
  12. package/esm2022/components/column-resize/column-resize-notifier.mjs +0 -31
  13. package/esm2022/components/column-resize/column-resize.directive.mjs +0 -124
  14. package/esm2022/components/column-resize/event-dispatcher.mjs +0 -56
  15. package/esm2022/components/column-resize/overlay-handle.component.mjs +0 -144
  16. package/esm2022/components/column-resize/resize-ref.mjs +0 -26
  17. package/esm2022/components/column-resize/resizing.store.mjs +0 -92
  18. package/esm2022/components/column-resize/selectors.mjs +0 -4
  19. package/esm2022/components/contextmenu/contextmenu.component.mjs +0 -99
  20. package/esm2022/components/conversion-hint/conversion-hint.component.mjs +0 -56
  21. package/esm2022/components/element/element.component.mjs +0 -23
  22. package/esm2022/components/index.mjs +0 -24
  23. package/esm2022/components/inline-toolbar/inline-toolbar.component.mjs +0 -131
  24. package/esm2022/components/listbox/listbox.mjs +0 -380
  25. package/esm2022/components/listbox/listbox.type.mjs +0 -5
  26. package/esm2022/components/plugin-menu/plugin-menu.component.mjs +0 -272
  27. package/esm2022/components/table-select/table-select.component.mjs +0 -49
  28. package/esm2022/components/template/template.component.mjs +0 -62
  29. package/esm2022/components/text/text.component.mjs +0 -57
  30. package/esm2022/components/toolbar/toolbar.component.mjs +0 -262
  31. package/esm2022/components/toolbar-dropdown/toolbar-dropdown.component.mjs +0 -137
  32. package/esm2022/components/toolbar-group/toolbar-group.component.mjs +0 -125
  33. package/esm2022/components/toolbar-item/toolbar-item.component.mjs +0 -80
  34. package/esm2022/constants/auto-format-rules.mjs +0 -167
  35. package/esm2022/constants/code.mjs +0 -85
  36. package/esm2022/constants/color-select.mjs +0 -3
  37. package/esm2022/constants/default.mjs +0 -11
  38. package/esm2022/constants/error.mjs +0 -7
  39. package/esm2022/constants/index.mjs +0 -9
  40. package/esm2022/constants/node-types.mjs +0 -136
  41. package/esm2022/constants/plugin-menu.mjs +0 -311
  42. package/esm2022/constants/selector.mjs +0 -3
  43. package/esm2022/constants/toolbar.mjs +0 -53
  44. package/esm2022/core/create-plugin.mjs +0 -5
  45. package/esm2022/core/create-toolbar.mjs +0 -55
  46. package/esm2022/core/index.mjs +0 -6
  47. package/esm2022/core/toolbar-item/base-toolbar-item.mjs +0 -95
  48. package/esm2022/core/utils/combine-plugins.mjs +0 -10
  49. package/esm2022/core/utils/flatten-deep-plugins.mjs +0 -19
  50. package/esm2022/core/utils/get-plugin-options.mjs +0 -3
  51. package/esm2022/core/utils/get-plugin.mjs +0 -2
  52. package/esm2022/core/utils/get-plugins.mjs +0 -4
  53. package/esm2022/core/utils/index.mjs +0 -12
  54. package/esm2022/core/utils/merge-array.mjs +0 -18
  55. package/esm2022/core/utils/merge-deep-plugins.mjs +0 -14
  56. package/esm2022/core/utils/merge-options.mjs +0 -25
  57. package/esm2022/core/utils/nested-structure-by-key.mjs +0 -11
  58. package/esm2022/core/utils/plugin-menu.mjs +0 -63
  59. package/esm2022/core/utils/plugins-by-key.mjs +0 -10
  60. package/esm2022/core/with-theia.mjs +0 -25
  61. package/esm2022/custom-types.mjs +0 -2
  62. package/esm2022/editor.component.mjs +0 -488
  63. package/esm2022/editor.module.mjs +0 -18
  64. package/esm2022/i18n/i18n.mjs +0 -10
  65. package/esm2022/i18n/i18n.service.mjs +0 -46
  66. package/esm2022/i18n/i18n.token.mjs +0 -9
  67. package/esm2022/i18n/index.mjs +0 -10
  68. package/esm2022/i18n/locales/de-de.mjs +0 -102
  69. package/esm2022/i18n/locales/en-us.mjs +0 -102
  70. package/esm2022/i18n/locales/ja-jp.mjs +0 -102
  71. package/esm2022/i18n/locales/ru-ru.mjs +0 -102
  72. package/esm2022/i18n/locales/zh-hans.mjs +0 -102
  73. package/esm2022/i18n/locales/zh-hant.mjs +0 -102
  74. package/esm2022/interfaces/auto-format.mjs +0 -2
  75. package/esm2022/interfaces/editor.mjs +0 -26
  76. package/esm2022/interfaces/element.mjs +0 -2
  77. package/esm2022/interfaces/image.mjs +0 -3
  78. package/esm2022/interfaces/index.mjs +0 -11
  79. package/esm2022/interfaces/plugins/index.mjs +0 -6
  80. package/esm2022/interfaces/plugins/no-infer.mjs +0 -2
  81. package/esm2022/interfaces/plugins/plugin-key.mjs +0 -42
  82. package/esm2022/interfaces/plugins/plugin-menu.mjs +0 -19
  83. package/esm2022/interfaces/plugins/plugins.mjs +0 -2
  84. package/esm2022/interfaces/plugins/with-override.mjs +0 -2
  85. package/esm2022/interfaces/preset.mjs +0 -3
  86. package/esm2022/interfaces/reset-block-type-plugin-options.mjs +0 -2
  87. package/esm2022/interfaces/toolbar.mjs +0 -12
  88. package/esm2022/interfaces/upload.mjs +0 -2
  89. package/esm2022/interfaces/utility/index.mjs +0 -4
  90. package/esm2022/interfaces/utility/nested-structure-by-key.mjs +0 -2
  91. package/esm2022/interfaces/utility/override-by-key.mjs +0 -2
  92. package/esm2022/interfaces/utility/types.mjs +0 -2
  93. package/esm2022/interfaces/valid-children-types.mjs +0 -36
  94. package/esm2022/interfaces/view-base.mjs +0 -38
  95. package/esm2022/pipes.mjs +0 -61
  96. package/esm2022/plugins/align/align.editor.mjs +0 -41
  97. package/esm2022/plugins/align/align.plugin.mjs +0 -64
  98. package/esm2022/plugins/autoformat/autoformat.plugin.mjs +0 -109
  99. package/esm2022/plugins/autoformat/transforms/auto-format-block.mjs +0 -14
  100. package/esm2022/plugins/autoformat/transforms/auto-format-inline.mjs +0 -78
  101. package/esm2022/plugins/blockquote/blockquote.component.mjs +0 -16
  102. package/esm2022/plugins/blockquote/blockquote.editor.mjs +0 -20
  103. package/esm2022/plugins/blockquote/blockquote.plugin.mjs +0 -84
  104. package/esm2022/plugins/code/code.component.mjs +0 -255
  105. package/esm2022/plugins/code/code.editor.mjs +0 -59
  106. package/esm2022/plugins/code/code.plugin.mjs +0 -67
  107. package/esm2022/plugins/color/color.editor.mjs +0 -27
  108. package/esm2022/plugins/color/color.plugin.mjs +0 -32
  109. package/esm2022/plugins/color/toolbar-item.component.mjs +0 -99
  110. package/esm2022/plugins/common/block-card.plugin.mjs +0 -330
  111. package/esm2022/plugins/common/common.plugin.mjs +0 -49
  112. package/esm2022/plugins/common/get-fragment.plugin.mjs +0 -24
  113. package/esm2022/plugins/common/history.plugin.mjs +0 -31
  114. package/esm2022/plugins/common/insert-data-by-invalid-type.mjs +0 -23
  115. package/esm2022/plugins/common/move-selection.plugin.mjs +0 -105
  116. package/esm2022/plugins/common/remove-empty.plugin.mjs +0 -61
  117. package/esm2022/plugins/common/remove-void.plugin.mjs +0 -60
  118. package/esm2022/plugins/common/reset-type.plugin.mjs +0 -35
  119. package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +0 -61
  120. package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +0 -142
  121. package/esm2022/plugins/font-size/font-size.editor.mjs +0 -98
  122. package/esm2022/plugins/heading/heading.editor.mjs +0 -54
  123. package/esm2022/plugins/heading/heading.plugin.mjs +0 -136
  124. package/esm2022/plugins/hr/hr.component.mjs +0 -37
  125. package/esm2022/plugins/hr/hr.editor.mjs +0 -16
  126. package/esm2022/plugins/hr/hr.plugin.mjs +0 -56
  127. package/esm2022/plugins/image/image.component.mjs +0 -474
  128. package/esm2022/plugins/image/image.editor.mjs +0 -116
  129. package/esm2022/plugins/image/image.plugin.mjs +0 -90
  130. package/esm2022/plugins/indent/indent.editor.mjs +0 -78
  131. package/esm2022/plugins/indent/indent.plugin.mjs +0 -59
  132. package/esm2022/plugins/indent/on-keydown-indent.mjs +0 -59
  133. package/esm2022/plugins/index.mjs +0 -73
  134. package/esm2022/plugins/inline-code/inline-code.component.mjs +0 -28
  135. package/esm2022/plugins/inline-code/inline-code.editor.mjs +0 -49
  136. package/esm2022/plugins/inline-code/inline-code.plugin.mjs +0 -67
  137. package/esm2022/plugins/link/edit/link-edit.component.mjs +0 -104
  138. package/esm2022/plugins/link/hover/link-hover.component.mjs +0 -38
  139. package/esm2022/plugins/link/link.component.mjs +0 -170
  140. package/esm2022/plugins/link/link.editor.mjs +0 -87
  141. package/esm2022/plugins/link/link.plugin.mjs +0 -89
  142. package/esm2022/plugins/link/link.types.mjs +0 -12
  143. package/esm2022/plugins/list/components/bulleted-list.component.mjs +0 -28
  144. package/esm2022/plugins/list/components/list-item.component.mjs +0 -88
  145. package/esm2022/plugins/list/components/numbered-list.component.mjs +0 -37
  146. package/esm2022/plugins/list/list.editor.mjs +0 -128
  147. package/esm2022/plugins/list/list.plugin.mjs +0 -302
  148. package/esm2022/plugins/list/normalizers/get-list-normalizer.mjs +0 -39
  149. package/esm2022/plugins/list/normalizers/normalize-list-item.mjs +0 -18
  150. package/esm2022/plugins/list/normalizers/normalize-no.mjs +0 -43
  151. package/esm2022/plugins/list/on-key-down-list.mjs +0 -33
  152. package/esm2022/plugins/list/queries/get-list-item-entry.mjs +0 -28
  153. package/esm2022/plugins/list/queries/get-list-item-sublist.mjs +0 -12
  154. package/esm2022/plugins/list/queries/get-list-types.mjs +0 -5
  155. package/esm2022/plugins/list/queries/get-start-list-item.mjs +0 -27
  156. package/esm2022/plugins/list/queries/has-list-in-list-item.mjs +0 -27
  157. package/esm2022/plugins/list/queries/is-in-list.mjs +0 -6
  158. package/esm2022/plugins/list/queries/is-list-nested.mjs +0 -10
  159. package/esm2022/plugins/list/queries/is-list.mjs +0 -5
  160. package/esm2022/plugins/list/queries/is-node-type-list.mjs +0 -5
  161. package/esm2022/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -13
  162. package/esm2022/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -17
  163. package/esm2022/plugins/list/queries/is-single-list-item.mjs +0 -9
  164. package/esm2022/plugins/list/transforms/insert-list-data.mjs +0 -72
  165. package/esm2022/plugins/list/transforms/insert-list-item.mjs +0 -73
  166. package/esm2022/plugins/list/transforms/move-list-item-down.mjs +0 -41
  167. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -43
  168. package/esm2022/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -30
  169. package/esm2022/plugins/list/transforms/move-list-item-up.mjs +0 -78
  170. package/esm2022/plugins/list/transforms/unwrap-list.mjs +0 -10
  171. package/esm2022/plugins/list/types.mjs +0 -2
  172. package/esm2022/plugins/mark/mark.editor.mjs +0 -28
  173. package/esm2022/plugins/mark/mark.plugin.mjs +0 -105
  174. package/esm2022/plugins/mention/index.mjs +0 -5
  175. package/esm2022/plugins/mention/mention.editor.mjs +0 -179
  176. package/esm2022/plugins/mention/mention.plugin.mjs +0 -92
  177. package/esm2022/plugins/mention/mention.type.mjs +0 -2
  178. package/esm2022/plugins/mention/suggestion.component.mjs +0 -22
  179. package/esm2022/plugins/node-id/node-id.plugin.mjs +0 -78
  180. package/esm2022/plugins/normalizers/insert-paragraph-nodes.mjs +0 -28
  181. package/esm2022/plugins/normalizers/remove-empty-nodes.mjs +0 -18
  182. package/esm2022/plugins/normalizers/trailing-node.plugin.mjs +0 -33
  183. package/esm2022/plugins/paint-format/paint-format.editor.mjs +0 -126
  184. package/esm2022/plugins/public-api.mjs +0 -20
  185. package/esm2022/plugins/quick-insert/components/quick-insert.component.mjs +0 -126
  186. package/esm2022/plugins/quick-insert/index.mjs +0 -4
  187. package/esm2022/plugins/quick-insert/quick-insert.editor.mjs +0 -70
  188. package/esm2022/plugins/quick-insert/quick-insert.plugin.mjs +0 -109
  189. package/esm2022/plugins/soft-break/soft-break.plugin.mjs +0 -36
  190. package/esm2022/plugins/soft-break/soft-break.types.mjs +0 -2
  191. package/esm2022/plugins/table/components/insert-mark/insert-mark.component.mjs +0 -132
  192. package/esm2022/plugins/table/components/row/row.component.mjs +0 -93
  193. package/esm2022/plugins/table/components/table.component.mjs +0 -887
  194. package/esm2022/plugins/table/components/td/td.component.mjs +0 -610
  195. package/esm2022/plugins/table/components/toolbar/table-options.component.mjs +0 -102
  196. package/esm2022/plugins/table/components/toolbar/table-toolbar.component.mjs +0 -179
  197. package/esm2022/plugins/table/table.editor.mjs +0 -301
  198. package/esm2022/plugins/table/table.pipe.mjs +0 -66
  199. package/esm2022/plugins/table/table.plugin.mjs +0 -556
  200. package/esm2022/plugins/table/table.service.mjs +0 -122
  201. package/esm2022/plugins/table/table.store.mjs +0 -417
  202. package/esm2022/plugins/table/table.types.mjs +0 -68
  203. package/esm2022/plugins/table/toolbar-item.component.mjs +0 -95
  204. package/esm2022/plugins/table/transforms/clear-cell.mjs +0 -14
  205. package/esm2022/plugins/table/transforms/clear-table-node.mjs +0 -27
  206. package/esm2022/plugins/table/transforms/index.mjs +0 -8
  207. package/esm2022/plugins/table/transforms/insert-column.mjs +0 -69
  208. package/esm2022/plugins/table/transforms/insert-row.mjs +0 -50
  209. package/esm2022/plugins/table/transforms/insert-table.mjs +0 -15
  210. package/esm2022/plugins/table/transforms/move-selection-from-cell.mjs +0 -91
  211. package/esm2022/plugins/table/transforms/remove-column.mjs +0 -51
  212. package/esm2022/plugins/table/transforms/remove-row.mjs +0 -48
  213. package/esm2022/plugins/table/transforms/remove-table.mjs +0 -49
  214. package/esm2022/plugins/table/utils/add-columns.mjs +0 -38
  215. package/esm2022/plugins/table/utils/calc-anchor-position.mjs +0 -26
  216. package/esm2022/plugins/table/utils/calc-span.mjs +0 -73
  217. package/esm2022/plugins/table/utils/calculate-table.mjs +0 -116
  218. package/esm2022/plugins/table/utils/cell-position.mjs +0 -57
  219. package/esm2022/plugins/table/utils/create-cell.mjs +0 -19
  220. package/esm2022/plugins/table/utils/create-row.mjs +0 -12
  221. package/esm2022/plugins/table/utils/create-table-position.mjs +0 -10
  222. package/esm2022/plugins/table/utils/create-table.mjs +0 -15
  223. package/esm2022/plugins/table/utils/get-grid-columns.mjs +0 -79
  224. package/esm2022/plugins/table/utils/get-min-max-cell-index.mjs +0 -69
  225. package/esm2022/plugins/table/utils/get-next-cell.mjs +0 -44
  226. package/esm2022/plugins/table/utils/get-select-cell-node.mjs +0 -16
  227. package/esm2022/plugins/table/utils/handle-cell.mjs +0 -25
  228. package/esm2022/plugins/table/utils/index.mjs +0 -16
  229. package/esm2022/plugins/table/utils/is-header-row.mjs +0 -15
  230. package/esm2022/plugins/table/utils/is-legal-table.mjs +0 -26
  231. package/esm2022/plugins/table/utils/is-range-in-table.mjs +0 -16
  232. package/esm2022/plugins/table/utils/is-selection-in-table.mjs +0 -51
  233. package/esm2022/plugins/table/utils/is-virtual-key.mjs +0 -13
  234. package/esm2022/plugins/table/utils/merge-cell.mjs +0 -110
  235. package/esm2022/plugins/table/utils/next-path.mjs +0 -5
  236. package/esm2022/plugins/table/utils/normalize-table.mjs +0 -31
  237. package/esm2022/plugins/table/utils/remove-columns.mjs +0 -23
  238. package/esm2022/plugins/table/utils/remove-row-column.mjs +0 -45
  239. package/esm2022/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -45
  240. package/esm2022/plugins/table/utils/split-cell.mjs +0 -29
  241. package/esm2022/plugins/table/utils/table-entry.mjs +0 -21
  242. package/esm2022/plugins/table/utils/table-position.mjs +0 -251
  243. package/esm2022/plugins/table/utils/table-viewport.mjs +0 -41
  244. package/esm2022/plugins/todo-item/todo-item.component.mjs +0 -65
  245. package/esm2022/plugins/todo-item/todo-item.editor.mjs +0 -32
  246. package/esm2022/plugins/todo-item/todo-item.plugin.mjs +0 -93
  247. package/esm2022/plugins/vertical-align/toolbar-item.component.mjs +0 -95
  248. package/esm2022/plugins/vertical-align/vertical-align.editor.mjs +0 -59
  249. package/esm2022/public-api.mjs +0 -22
  250. package/esm2022/queries/anchor-block-entry.mjs +0 -13
  251. package/esm2022/queries/anchor-block.mjs +0 -6
  252. package/esm2022/queries/anchor-inline-entry.mjs +0 -10
  253. package/esm2022/queries/find-descendant.mjs +0 -47
  254. package/esm2022/queries/find-node.mjs +0 -45
  255. package/esm2022/queries/find-path.mjs +0 -28
  256. package/esm2022/queries/get-above-by-type.mjs +0 -14
  257. package/esm2022/queries/get-above.mjs +0 -9
  258. package/esm2022/queries/get-anchor-block-entry.mjs +0 -8
  259. package/esm2022/queries/get-block-above.mjs +0 -10
  260. package/esm2022/queries/get-block-card-above.mjs +0 -10
  261. package/esm2022/queries/get-block-card-cursor.mjs +0 -9
  262. package/esm2022/queries/get-container-blocks.mjs +0 -12
  263. package/esm2022/queries/get-directly-parent.mjs +0 -12
  264. package/esm2022/queries/get-insert-elements-path.mjs +0 -46
  265. package/esm2022/queries/get-last-child-path.mjs +0 -9
  266. package/esm2022/queries/get-last-node.mjs +0 -17
  267. package/esm2022/queries/get-next-sibling-nodes.mjs +0 -17
  268. package/esm2022/queries/get-node.mjs +0 -10
  269. package/esm2022/queries/get-nodes-by-type.mjs +0 -15
  270. package/esm2022/queries/get-nodes.mjs +0 -7
  271. package/esm2022/queries/get-parent.mjs +0 -12
  272. package/esm2022/queries/get-plain-text.mjs +0 -16
  273. package/esm2022/queries/get-plugin-by-toolbar.mjs +0 -13
  274. package/esm2022/queries/get-point-before.mjs +0 -62
  275. package/esm2022/queries/get-point-from-location.mjs +0 -15
  276. package/esm2022/queries/get-previous-path.mjs +0 -9
  277. package/esm2022/queries/get-rang-from-block-start.mjs +0 -16
  278. package/esm2022/queries/get-range-before.mjs +0 -17
  279. package/esm2022/queries/get-selection-marks.mjs +0 -18
  280. package/esm2022/queries/get-selection-nodes-by-type.mjs +0 -30
  281. package/esm2022/queries/get-text.mjs +0 -9
  282. package/esm2022/queries/get-toolbar-disabled.mjs +0 -13
  283. package/esm2022/queries/index.mjs +0 -62
  284. package/esm2022/queries/is-across-blocks.mjs +0 -7
  285. package/esm2022/queries/is-ancestor-empty.mjs +0 -6
  286. package/esm2022/queries/is-ancestor.mjs +0 -3
  287. package/esm2022/queries/is-block-above-empty.mjs +0 -11
  288. package/esm2022/queries/is-block-active.mjs +0 -8
  289. package/esm2022/queries/is-block-card-cursor.mjs +0 -16
  290. package/esm2022/queries/is-block-text-empty-after-selection.mjs +0 -31
  291. package/esm2022/queries/is-collapsed.mjs +0 -7
  292. package/esm2022/queries/is-contain-nested-type.mjs +0 -29
  293. package/esm2022/queries/is-container-type.mjs +0 -3
  294. package/esm2022/queries/is-descendant.mjs +0 -3
  295. package/esm2022/queries/is-empty-content-filter.mjs +0 -22
  296. package/esm2022/queries/is-empty-content.mjs +0 -15
  297. package/esm2022/queries/is-empty-paragraph-by-path.mjs +0 -7
  298. package/esm2022/queries/is-empty-paragraph.mjs +0 -28
  299. package/esm2022/queries/is-first-child.mjs +0 -5
  300. package/esm2022/queries/is-global-collapsed.mjs +0 -5
  301. package/esm2022/queries/is-include-types.mjs +0 -12
  302. package/esm2022/queries/is-node-type-in.mjs +0 -9
  303. package/esm2022/queries/is-node-type.mjs +0 -15
  304. package/esm2022/queries/is-paragraph.mjs +0 -9
  305. package/esm2022/queries/is-point-at-root.mjs +0 -2
  306. package/esm2022/queries/is-range-across-blocks.mjs +0 -22
  307. package/esm2022/queries/is-range-at-root.mjs +0 -3
  308. package/esm2022/queries/is-root-path.mjs +0 -2
  309. package/esm2022/queries/is-start.mjs +0 -6
  310. package/esm2022/queries/some-node.mjs +0 -9
  311. package/esm2022/services/context.service.mjs +0 -140
  312. package/esm2022/services/table-contextmenu.service.mjs +0 -288
  313. package/esm2022/services/toolbar.service.mjs +0 -47
  314. package/esm2022/shortcuts/index.mjs +0 -5
  315. package/esm2022/shortcuts/mark.mjs +0 -25
  316. package/esm2022/test/basic/basic.component.mjs +0 -61
  317. package/esm2022/test/faker/data-transfer-faker.mjs +0 -13
  318. package/esm2022/test/faker/tethys-icon-faker.mjs +0 -22
  319. package/esm2022/test/index.mjs +0 -7
  320. package/esm2022/test/utils/mock-plugins.mjs +0 -104
  321. package/esm2022/test/utils/preset-config.mjs +0 -17
  322. package/esm2022/test/utils/with-plugin.mjs +0 -11
  323. package/esm2022/transforms/apply-deep-to-nodes.mjs +0 -22
  324. package/esm2022/transforms/clear-marks.mjs +0 -23
  325. package/esm2022/transforms/delete-element.mjs +0 -12
  326. package/esm2022/transforms/delete-node-by-type.mjs +0 -10
  327. package/esm2022/transforms/handle-continual-delete-backward.mjs +0 -18
  328. package/esm2022/transforms/handle-continual-insert-break.mjs +0 -20
  329. package/esm2022/transforms/index.mjs +0 -19
  330. package/esm2022/transforms/insert-elements.mjs +0 -55
  331. package/esm2022/transforms/insert-paragraph.mjs +0 -6
  332. package/esm2022/transforms/merge-deep-to-nodes.mjs +0 -9
  333. package/esm2022/transforms/move-children.mjs +0 -22
  334. package/esm2022/transforms/on-keydown-reset-block-type.mjs +0 -23
  335. package/esm2022/transforms/set-end-selection.mjs +0 -10
  336. package/esm2022/transforms/set-marks.mjs +0 -9
  337. package/esm2022/transforms/set-node-by-type.mjs +0 -10
  338. package/esm2022/transforms/set-node.mjs +0 -6
  339. package/esm2022/transforms/un-hang-range.mjs +0 -11
  340. package/esm2022/transforms/un-wrap.mjs +0 -12
  341. package/esm2022/transforms/unwrap-nodes-by-type.mjs +0 -14
  342. package/esm2022/utils/auto-focus.mjs +0 -24
  343. package/esm2022/utils/blob.mjs +0 -16
  344. package/esm2022/utils/cast-array.mjs +0 -7
  345. package/esm2022/utils/color-picker.mjs +0 -15
  346. package/esm2022/utils/common.mjs +0 -11
  347. package/esm2022/utils/copy-node.mjs +0 -38
  348. package/esm2022/utils/create-empty-paragraph.mjs +0 -14
  349. package/esm2022/utils/data-transform.mjs +0 -48
  350. package/esm2022/utils/dom.mjs +0 -56
  351. package/esm2022/utils/editor-uuid.mjs +0 -8
  352. package/esm2022/utils/fragment.mjs +0 -82
  353. package/esm2022/utils/get-editable-element-height.mjs +0 -6
  354. package/esm2022/utils/get-mode.mjs +0 -14
  355. package/esm2022/utils/get-toolbar-class.mjs +0 -6
  356. package/esm2022/utils/id-creator.mjs +0 -11
  357. package/esm2022/utils/index.mjs +0 -23
  358. package/esm2022/utils/insert-data-by-invalid-type.mjs +0 -70
  359. package/esm2022/utils/is-clean-empty-paragraph.mjs +0 -37
  360. package/esm2022/utils/is-inline.mjs +0 -9
  361. package/esm2022/utils/lodash.mjs +0 -3
  362. package/esm2022/utils/match.mjs +0 -32
  363. package/esm2022/utils/merge-element-options.mjs +0 -19
  364. package/esm2022/utils/normalize.mjs +0 -61
  365. package/esm2022/utils/refocus.mjs +0 -47
  366. package/esm2022/utils/scrolling.mjs +0 -43
  367. package/esm2022/utils/update-popover-position.mjs +0 -26
  368. package/esm2022/utils/weak-maps.mjs +0 -9
  369. package/esm2022/worktile-theia.mjs +0 -5
@@ -1,92 +0,0 @@
1
- import { coerceCssPixelValue } from '@angular/cdk/coercion';
2
- import { Injectable } from '@angular/core';
3
- import { coercePixelsFromCssValue, getColsTotalWidth, getElementWidth } from '../../utils/dom';
4
- import * as i0 from "@angular/core";
5
- export class ColumnResizingStore {
6
- constructor() {
7
- this.resizeCols = [];
8
- }
9
- storeResizingCol(colElement) {
10
- if (this.resizeCols.some(cache => cache.colElement === colElement)) {
11
- return;
12
- }
13
- this.resizeCols.push({ colElement, baseWidth: getElementWidth(colElement) });
14
- }
15
- storeTableWidth(cols) {
16
- if (!this.tableCols) {
17
- this.tableCols = { cols, baseWidth: getColsTotalWidth(cols) };
18
- }
19
- }
20
- cleanResizing() {
21
- this.tableCols = null;
22
- this.resizeCols = [];
23
- this.direction = null;
24
- }
25
- restoreLeftCols(deltaX) {
26
- let index = this.resizeCols.length - 1;
27
- while (index >= 0 && deltaX > 0) {
28
- const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
29
- if (this.resizeCols[index].baseWidth > currentWidth) {
30
- if (this.resizeCols[index].baseWidth > currentWidth + deltaX) {
31
- this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + deltaX);
32
- deltaX = 0;
33
- }
34
- else {
35
- deltaX -= this.resizeCols[index].baseWidth - currentWidth;
36
- this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
37
- this.popCol();
38
- }
39
- }
40
- index--;
41
- }
42
- return deltaX;
43
- }
44
- restoreRightCols(deltaX) {
45
- let index = this.resizeCols.length - 1;
46
- while (index >= 0 && deltaX < 0) {
47
- const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
48
- if (this.resizeCols[index].baseWidth > currentWidth) {
49
- if (this.resizeCols[index].baseWidth > currentWidth + Math.abs(deltaX)) {
50
- this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + Math.abs(deltaX));
51
- deltaX = 0;
52
- }
53
- else {
54
- deltaX += this.resizeCols[index].baseWidth - currentWidth;
55
- this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
56
- this.popCol();
57
- }
58
- }
59
- index--;
60
- }
61
- return deltaX;
62
- }
63
- getScrollWidth(deltaX) {
64
- if (this.tableCols) {
65
- return getColsTotalWidth(this.tableCols.cols) - this.tableCols.baseWidth - Math.abs(deltaX);
66
- }
67
- }
68
- isRestoring(deltaValue, isXAxis = true) {
69
- return !this.isResizing(deltaValue, isXAxis);
70
- }
71
- isResizing(deltaValue, isXAxis = true) {
72
- return this.direction === this.getDirection(deltaValue, isXAxis);
73
- }
74
- initDirection(deltaValue, isXAxis = true) {
75
- if (this.resizeCols.length > 0) {
76
- return;
77
- }
78
- this.direction = this.getDirection(deltaValue, isXAxis);
79
- }
80
- getDirection(deltaValue, isXAxis = true) {
81
- return isXAxis ? (deltaValue > 0 ? 'right' : 'left') : deltaValue > 0 ? 'bottom' : 'top';
82
- }
83
- popCol() {
84
- this.resizeCols.pop();
85
- }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizingStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizingStore }); }
88
- }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ColumnResizingStore, decorators: [{
90
- type: Injectable
91
- }], ctorParameters: () => [] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXppbmcuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9jb2x1bW4tcmVzaXplL3Jlc2l6aW5nLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUcvRixNQUFNLE9BQU8sbUJBQW1CO0lBQzVCO1FBQ0ksSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUtELGdCQUFnQixDQUFDLFVBQStCO1FBQzVDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakUsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQTJCO1FBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsRSxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJ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O1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQTVGUSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlLCBnZXRDb2xzVG90YWxXaWR0aCwgZ2V0RWxlbWVudFdpZHRoIH0gZnJvbSAnLi4vLi4vdXRpbHMvZG9tJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbHVtblJlc2l6aW5nU3RvcmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUNvbHMgPSBbXTtcbiAgICB9XG4gICAgcHJpdmF0ZSBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nO1xuICAgIHByaXZhdGUgcmVzaXplQ29sczogeyBjb2xFbGVtZW50OiBIVE1MVGFibGVDb2xFbGVtZW50OyBiYXNlV2lkdGg6IG51bWJlciB9W107XG4gICAgcHJpdmF0ZSB0YWJsZUNvbHM6IHsgY29sczogSFRNTFRhYmxlQ29sRWxlbWVudFtdOyBiYXNlV2lkdGg6IG51bWJlciB9O1xuXG4gICAgc3RvcmVSZXNpemluZ0NvbChjb2xFbGVtZW50OiBIVE1MVGFibGVDb2xFbGVtZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUNvbHMuc29tZShjYWNoZSA9PiBjYWNoZS5jb2xFbGVtZW50ID09PSBjb2xFbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzaXplQ29scy5wdXNoKHsgY29sRWxlbWVudCwgYmFzZVdpZHRoOiBnZXRFbGVtZW50V2lkdGgoY29sRWxlbWVudCkgfSk7XG4gICAgfVxuXG4gICAgc3RvcmVUYWJsZVdpZHRoKGNvbHM6IEhUTUxUYWJsZUNvbEVsZW1lbnRbXSkge1xuICAgICAgICBpZiAoIXRoaXMudGFibGVDb2xzKSB7XG4gICAgICAgICAgICB0aGlzLnRhYmxlQ29scyA9IHsgY29scywgYmFzZVdpZHRoOiBnZXRDb2xzVG90YWxXaWR0aChjb2xzKSB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYW5SZXNpemluZygpIHtcbiAgICAgICAgdGhpcy50YWJsZUNvbHMgPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZUNvbHMgPSBbXTtcbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSBudWxsO1xuICAgIH1cblxuICAgIHJlc3RvcmVMZWZ0Q29scyhkZWx0YVg6IG51bWJlcikge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlc2l6ZUNvbHMubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgZGVsdGFYID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFdpZHRoID0gY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlKHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCk7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGggPiBjdXJyZW50V2lkdGgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGggPiBjdXJyZW50V2lkdGggKyBkZWx0YVgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVDb2xzW2luZGV4XS5jb2xFbGVtZW50LnN0eWxlLndpZHRoID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZShjdXJyZW50V2lkdGggKyBkZWx0YVgpO1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVggPSAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbHRhWCAtPSB0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmJhc2VXaWR0aCAtIGN1cnJlbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVDb2xzW2luZGV4XS5jb2xFbGVtZW50LnN0eWxlLndpZHRoID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmJhc2VXaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wQ29sKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXgtLTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVsdGFYO1xuICAgIH1cblxuICAgIHJlc3RvcmVSaWdodENvbHMoZGVsdGFYOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5yZXNpemVDb2xzLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlIChpbmRleCA+PSAwICYmIGRlbHRhWCA8IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IGNvZXJjZVBpeGVsc0Zyb21Dc3NWYWx1ZSh0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmNvbEVsZW1lbnQuc3R5bGUud2lkdGgpO1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoID4gY3VycmVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoID4gY3VycmVudFdpZHRoICsgTWF0aC5hYnMoZGVsdGFYKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmNvbEVsZW1lbnQuc3R5bGUud2lkdGggPSBjb2VyY2VDc3NQaXhlbFZhbHVlKGN1cnJlbnRXaWR0aCArIE1hdGguYWJzKGRlbHRhWCkpO1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVggPSAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbHRhWCArPSB0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmJhc2VXaWR0aCAtIGN1cnJlbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVDb2xzW2luZGV4XS5jb2xFbGVtZW50LnN0eWxlLndpZHRoID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmJhc2VXaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9wQ29sKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5kZXgtLTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVsdGFYO1xuICAgIH1cblxuICAgIGdldFNjcm9sbFdpZHRoKGRlbHRhWDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnRhYmxlQ29scykge1xuICAgICAgICAgICAgcmV0dXJuIGdldENvbHNUb3RhbFdpZHRoKHRoaXMudGFibGVDb2xzLmNvbHMpIC0gdGhpcy50YWJsZUNvbHMuYmFzZVdpZHRoIC0gTWF0aC5hYnMoZGVsdGFYKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzUmVzdG9yaW5nKGRlbHRhVmFsdWUsIGlzWEF4aXMgPSB0cnVlKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc1Jlc2l6aW5nKGRlbHRhVmFsdWUsIGlzWEF4aXMpO1xuICAgIH1cblxuICAgIGlzUmVzaXppbmcoZGVsdGFWYWx1ZSwgaXNYQXhpcyA9IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uID09PSB0aGlzLmdldERpcmVjdGlvbihkZWx0YVZhbHVlLCBpc1hBeGlzKTtcbiAgICB9XG5cbiAgICBpbml0RGlyZWN0aW9uKGRlbHRhVmFsdWU6IG51bWJlciwgaXNYQXhpcyA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplQ29scy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXJlY3Rpb24gPSB0aGlzLmdldERpcmVjdGlvbihkZWx0YVZhbHVlLCBpc1hBeGlzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERpcmVjdGlvbihkZWx0YVZhbHVlLCBpc1hBeGlzID0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gaXNYQXhpcyA/IChkZWx0YVZhbHVlID4gMCA/ICdyaWdodCcgOiAnbGVmdCcpIDogZGVsdGFWYWx1ZSA+IDAgPyAnYm90dG9tJyA6ICd0b3AnO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wQ29sKCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUNvbHMucG9wKCk7XG4gICAgfVxufVxuIl19
@@ -1,4 +0,0 @@
1
- export const TABLE_SELECTOR = '.the-table';
2
- export const TABLE_WRAPPER_SELECTOR = '.the-table-wrapper';
3
- export const RESIZE_OVERLAY_SELECTOR = '.the-table-resize-overlay-thumb';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29sdW1uLXJlc2l6ZS9zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxvQkFBb0IsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUQUJMRV9TRUxFQ1RPUiA9ICcudGhlLXRhYmxlJztcblxuZXhwb3J0IGNvbnN0IFRBQkxFX1dSQVBQRVJfU0VMRUNUT1IgPSAnLnRoZS10YWJsZS13cmFwcGVyJztcblxuZXhwb3J0IGNvbnN0IFJFU0laRV9PVkVSTEFZX1NFTEVDVE9SID0gJy50aGUtdGFibGUtcmVzaXplLW92ZXJsYXktdGh1bWInO1xuIl19
@@ -1,99 +0,0 @@
1
- import { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { Component, HostBinding, HostListener, Input } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { ThyColorPickerDirective } from 'ngx-tethys/color-picker';
5
- import { ThyDropdownMenuDivider, ThyDropdownMenuItemDirective, ThyDropdownMenuItemExtendIconDirective, ThyDropdownMenuItemIconDirective, ThyDropdownMenuItemNameDirective } from 'ngx-tethys/dropdown';
6
- import { ThyIcon } from 'ngx-tethys/icon';
7
- import { ThyInputNumber } from 'ngx-tethys/input-number';
8
- import { ThyEnterDirective, ThyStopPropagationDirective } from 'ngx-tethys/shared';
9
- import { isColorPanel } from '../../utils/color-picker';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "ngx-tethys/popover";
12
- import * as i2 from "@angular/forms";
13
- export class TheContextMenu {
14
- handleDocumentMouseDown(event) {
15
- if (isColorPanel(event.target)) {
16
- return;
17
- }
18
- if (!this.elementRef.nativeElement.contains(event.target) && event.button !== 2) {
19
- this.thyPopoverRef.close();
20
- }
21
- }
22
- handleMouseDown(event) {
23
- event.preventDefault();
24
- event.stopPropagation();
25
- }
26
- constructor(elementRef, cdr, thyPopoverRef) {
27
- this.elementRef = elementRef;
28
- this.cdr = cdr;
29
- this.thyPopoverRef = thyPopoverRef;
30
- this.menuEntities = [];
31
- this.wrap = true;
32
- }
33
- ngOnInit() { }
34
- itemMousedown(event, entity) {
35
- event.preventDefault();
36
- this.actionHandle(entity);
37
- this.thyPopoverRef.close();
38
- }
39
- itemMouseleave(event, entity) {
40
- event.preventDefault();
41
- this.deactivateHandle(event, entity);
42
- }
43
- itemMouseenter(event, entity) {
44
- event.preventDefault();
45
- this.activeHandle(event, entity);
46
- }
47
- inputNumberFocus(e) {
48
- e.target.focus();
49
- }
50
- itemEnterHandle(e, entity) {
51
- e.preventDefault();
52
- e.stopPropagation();
53
- this.actionHandle(entity);
54
- this.thyPopoverRef.close();
55
- }
56
- changeColor(color, item) {
57
- item.backgroundColor = color;
58
- item.activeHandle(undefined, item);
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheContextMenu, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheContextMenu, isStandalone: true, selector: "the-contextmenu", inputs: { menuEntities: "menuEntities", actionHandle: "actionHandle", activeHandle: "activeHandle", deactivateHandle: "deactivateHandle" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)", "mousedown": "handleMouseDown($event)" }, properties: { "class.the-overlay-menu-wrap": "this.wrap" } }, ngImport: i0, template: "<div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <ng-container *ngIf=\"menuItem.visibility && !menuItem?.isInputNumber && menuItem.key !== 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"defaultMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem.key === 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"backgroundColorTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem?.isInputNumber\">\n <ng-template [ngTemplateOutlet]=\"inputNumberMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <thy-dropdown-menu-divider *ngIf=\"menuItem.divider && menuItem.visibility\"></thy-dropdown-menu-divider>\n </ng-container>\n</div>\n\n<ng-template #defaultMenuTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n (mousedown)=\"itemMousedown($event, item)\"\n (mouseenter)=\"itemMouseenter($event, item)\"\n (mouseleave)=\"itemMouseleave($event, item)\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #backgroundColorTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n thyColorPicker\n thyTrigger=\"hover\"\n thyPlacement=\"rightTop\"\n [(ngModel)]=\"item.backgroundColor\"\n (ngModelChange)=\"changeColor($event, item)\"\n [thyHasBackdrop]=\"false\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\" thyIconType=\"twotone\" [thyTwotoneColor]=\"item.backgroundColor\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #inputNumberMenuTemplate let-item>\n <a href=\"javascript:;\" class=\"the-input-number-menu\" thyDropdownMenuItem (click)=\"itemMousedown($event, item)\">\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName class=\"d-flex align-items-center\">\n {{ item.name }}\n <thy-input-number\n #inputNumber\n class=\"mx-2\"\n thySize=\"sm\"\n [(ngModel)]=\"item.count\"\n [thyStep]=\"1\"\n [thyMin]=\"1\"\n (click)=\"inputNumberFocus($event)\"\n (thyEnter)=\"itemEnterHandle($event, item)\"\n thyStopPropagation\n ></thy-input-number>\n {{ item.nameSuffix }}\n </span>\n </a>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }, { kind: "component", type: ThyDropdownMenuDivider, selector: "thy-dropdown-menu-divider" }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "directive", type: ThyColorPickerDirective, selector: "[thyColorPicker]", inputs: ["thyOffset", "thyHasBackdrop", "thyDefaultColor", "thyTransparentColorSelectable", "thyPresetColors", "thyPlacement", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyDisabled"], outputs: ["thyPanelOpen", "thyPanelClose"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemExtendIconDirective, selector: "[thyDropdownMenuItemExtendIcon]" }] }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheContextMenu, decorators: [{
64
- type: Component,
65
- args: [{ selector: 'the-contextmenu', standalone: true, imports: [
66
- FormsModule,
67
- NgFor,
68
- NgIf,
69
- NgTemplateOutlet,
70
- ThyIcon,
71
- ThyInputNumber,
72
- ThyDropdownMenuDivider,
73
- ThyEnterDirective,
74
- ThyColorPickerDirective,
75
- ThyStopPropagationDirective,
76
- ThyDropdownMenuItemDirective,
77
- ThyDropdownMenuItemIconDirective,
78
- ThyDropdownMenuItemNameDirective,
79
- ThyDropdownMenuItemExtendIconDirective
80
- ], template: "<div class=\"thy-dropdown-menu\">\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <ng-container *ngIf=\"menuItem.visibility && !menuItem?.isInputNumber && menuItem.key !== 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"defaultMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem.key === 'background-color'\">\n <ng-template [ngTemplateOutlet]=\"backgroundColorTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"menuItem.visibility && menuItem?.isInputNumber\">\n <ng-template [ngTemplateOutlet]=\"inputNumberMenuTemplate\" [ngTemplateOutletContext]=\"{ $implicit: menuItem }\"></ng-template>\n </ng-container>\n <thy-dropdown-menu-divider *ngIf=\"menuItem.divider && menuItem.visibility\"></thy-dropdown-menu-divider>\n </ng-container>\n</div>\n\n<ng-template #defaultMenuTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n (mousedown)=\"itemMousedown($event, item)\"\n (mouseenter)=\"itemMouseenter($event, item)\"\n (mouseleave)=\"itemMouseleave($event, item)\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #backgroundColorTemplate let-item>\n <a\n href=\"javascript:;\"\n thyDropdownMenuItem\n thyColorPicker\n thyTrigger=\"hover\"\n thyPlacement=\"rightTop\"\n [(ngModel)]=\"item.backgroundColor\"\n (ngModelChange)=\"changeColor($event, item)\"\n [thyHasBackdrop]=\"false\"\n >\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\" thyIconType=\"twotone\" [thyTwotoneColor]=\"item.backgroundColor\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n <span *ngIf=\"item.extendIcon\" thyDropdownMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ item.extendIcon }}\"></thy-icon>\n </span>\n </a>\n</ng-template>\n\n<ng-template #inputNumberMenuTemplate let-item>\n <a href=\"javascript:;\" class=\"the-input-number-menu\" thyDropdownMenuItem (click)=\"itemMousedown($event, item)\">\n <span thyDropdownMenuItemIcon>\n <thy-icon [thyIconName]=\"item.icon\"></thy-icon>\n </span>\n <span thyDropdownMenuItemName class=\"d-flex align-items-center\">\n {{ item.name }}\n <thy-input-number\n #inputNumber\n class=\"mx-2\"\n thySize=\"sm\"\n [(ngModel)]=\"item.count\"\n [thyStep]=\"1\"\n [thyMin]=\"1\"\n (click)=\"inputNumberFocus($event)\"\n (thyEnter)=\"itemEnterHandle($event, item)\"\n thyStopPropagation\n ></thy-input-number>\n {{ item.nameSuffix }}\n </span>\n </a>\n</ng-template>\n" }]
81
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ThyPopoverRef }], propDecorators: { menuEntities: [{
82
- type: Input
83
- }], actionHandle: [{
84
- type: Input
85
- }], activeHandle: [{
86
- type: Input
87
- }], deactivateHandle: [{
88
- type: Input
89
- }], wrap: [{
90
- type: HostBinding,
91
- args: ['class.the-overlay-menu-wrap']
92
- }], handleDocumentMouseDown: [{
93
- type: HostListener,
94
- args: ['document: mousedown', ['$event']]
95
- }], handleMouseDown: [{
96
- type: HostListener,
97
- args: ['mousedown', ['$event']]
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUNILHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsc0NBQXNDLEVBQ3RDLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDbkMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQXVCeEQsTUFBTSxPQUFPLGNBQWM7SUFpQnZCLHVCQUF1QixDQUFDLEtBQWlCO1FBQ3JDLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFxQixDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FB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QWdCO3NCQURmLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxXQUFXO3VCQUFDLDZCQUE2QjtnQkFJMUMsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVcvQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlDb2xvclBpY2tlckRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvY29sb3ItcGlja2VyJztcbmltcG9ydCB7XG4gICAgVGh5RHJvcGRvd25NZW51RGl2aWRlcixcbiAgICBUaHlEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1FeHRlbmRJY29uRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1JY29uRGlyZWN0aXZlLFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1OYW1lRGlyZWN0aXZlXG59IGZyb20gJ25neC10ZXRoeXMvZHJvcGRvd24nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbnB1dE51bWJlciB9IGZyb20gJ25neC10ZXRoeXMvaW5wdXQtbnVtYmVyJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVGh5RW50ZXJEaXJlY3RpdmUsIFRoeVN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IE1lbnVFbnRpdHkgfSBmcm9tICcuLi8uLi9wbHVnaW5zL3RhYmxlL3RhYmxlLnR5cGVzJztcbmltcG9ydCB7IGlzQ29sb3JQYW5lbCB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9yLXBpY2tlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWNvbnRleHRtZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NvbnRleHRtZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE5nRm9yLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBUaHlJY29uLFxuICAgICAgICBUaHlJbnB1dE51bWJlcixcbiAgICAgICAgVGh5RHJvcGRvd25NZW51RGl2aWRlcixcbiAgICAgICAgVGh5RW50ZXJEaXJlY3RpdmUsXG4gICAgICAgIFRoeUNvbG9yUGlja2VyRGlyZWN0aXZlLFxuICAgICAgICBUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1JY29uRGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtTmFtZURpcmVjdGl2ZSxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51SXRlbUV4dGVuZEljb25EaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUNvbnRleHRNZW51IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKVxuICAgIG1lbnVFbnRpdGllczogTWVudUVudGl0eVtdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIGFjdGlvbkhhbmRsZTogKGVudGl0eTogTWVudUVudGl0eSkgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgYWN0aXZlSGFuZGxlOiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkgPT4gdm9pZDtcblxuICAgIEBJbnB1dCgpXG4gICAgZGVhY3RpdmF0ZUhhbmRsZTogKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHZvaWQ7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoZS1vdmVybGF5LW1lbnUtd3JhcCcpXG4gICAgd3JhcCA9IHRydWU7XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDogbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVEb2N1bWVudE1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAoaXNDb2xvclBhbmVsKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiYgZXZlbnQuYnV0dG9uICE9PSAyKSB7XG4gICAgICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgdGh5UG9wb3ZlclJlZjogVGh5UG9wb3ZlclJlZjxUaGVDb250ZXh0TWVudT5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBpdGVtTW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5hY3Rpb25IYW5kbGUoZW50aXR5KTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgaXRlbU1vdXNlbGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmRlYWN0aXZhdGVIYW5kbGUoZXZlbnQsIGVudGl0eSk7XG4gICAgfVxuXG4gICAgaXRlbU1vdXNlZW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZUhhbmRsZShldmVudCwgZW50aXR5KTtcbiAgICB9XG5cbiAgICBpbnB1dE51bWJlckZvY3VzKGU6IEV2ZW50KSB7XG4gICAgICAgIChlLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBpdGVtRW50ZXJIYW5kbGUoZTogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5hY3Rpb25IYW5kbGUoZW50aXR5KTtcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgY2hhbmdlQ29sb3IoY29sb3I6IHN0cmluZywgaXRlbTogTWVudUVudGl0eSkge1xuICAgICAgICBpdGVtLmJhY2tncm91bmRDb2xvciA9IGNvbG9yO1xuICAgICAgICBpdGVtLmFjdGl2ZUhhbmRsZSh1bmRlZmluZWQsIGl0ZW0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktZHJvcGRvd24tbWVudVwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51SXRlbSBvZiBtZW51RW50aXRpZXNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiAhbWVudUl0ZW0/LmlzSW5wdXROdW1iZXIgJiYgbWVudUl0ZW0ua2V5ICE9PSAnYmFja2dyb3VuZC1jb2xvcidcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0TWVudVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiBtZW51SXRlbS5rZXkgPT09ICdiYWNrZ3JvdW5kLWNvbG9yJ1wiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJhY2tncm91bmRDb2xvclRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW0udmlzaWJpbGl0eSAmJiBtZW51SXRlbT8uaXNJbnB1dE51bWJlclwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0TnVtYmVyTWVudVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBtZW51SXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8dGh5LWRyb3Bkb3duLW1lbnUtZGl2aWRlciAqbmdJZj1cIm1lbnVJdGVtLmRpdmlkZXIgJiYgbWVudUl0ZW0udmlzaWJpbGl0eVwiPjwvdGh5LWRyb3Bkb3duLW1lbnUtZGl2aWRlcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TWVudVRlbXBsYXRlIGxldC1pdGVtPlxuICA8YVxuICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgIHRoeURyb3Bkb3duTWVudUl0ZW1cbiAgICAobW91c2Vkb3duKT1cIml0ZW1Nb3VzZWRvd24oJGV2ZW50LCBpdGVtKVwiXG4gICAgKG1vdXNlZW50ZXIpPVwiaXRlbU1vdXNlZW50ZXIoJGV2ZW50LCBpdGVtKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwiaXRlbU1vdXNlbGVhdmUoJGV2ZW50LCBpdGVtKVwiXG4gID5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtSWNvbj5cbiAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5pY29uXCI+PC90aHktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbU5hbWU+e3sgaXRlbS5uYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5leHRlbmRJY29uXCIgdGh5RHJvcGRvd25NZW51SXRlbUV4dGVuZEljb24+XG4gICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJ7eyBpdGVtLmV4dGVuZEljb24gfX1cIj48L3RoeS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNiYWNrZ3JvdW5kQ29sb3JUZW1wbGF0ZSBsZXQtaXRlbT5cbiAgPGFcbiAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICB0aHlEcm9wZG93bk1lbnVJdGVtXG4gICAgdGh5Q29sb3JQaWNrZXJcbiAgICB0aHlUcmlnZ2VyPVwiaG92ZXJcIlxuICAgIHRoeVBsYWNlbWVudD1cInJpZ2h0VG9wXCJcbiAgICBbKG5nTW9kZWwpXT1cIml0ZW0uYmFja2dyb3VuZENvbG9yXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VDb2xvcigkZXZlbnQsIGl0ZW0pXCJcbiAgICBbdGh5SGFzQmFja2Ryb3BdPVwiZmFsc2VcIlxuICA+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbUljb24+XG4gICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cIml0ZW0uaWNvblwiIHRoeUljb25UeXBlPVwidHdvdG9uZVwiIFt0aHlUd290b25lQ29sb3JdPVwiaXRlbS5iYWNrZ3JvdW5kQ29sb3JcIj48L3RoeS1pY29uPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtTmFtZT57eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJpdGVtLmV4dGVuZEljb25cIiB0aHlEcm9wZG93bk1lbnVJdGVtRXh0ZW5kSWNvbj5cbiAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInt7IGl0ZW0uZXh0ZW5kSWNvbiB9fVwiPjwvdGh5LWljb24+XG4gICAgPC9zcGFuPlxuICA8L2E+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0TnVtYmVyTWVudVRlbXBsYXRlIGxldC1pdGVtPlxuICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgY2xhc3M9XCJ0aGUtaW5wdXQtbnVtYmVyLW1lbnVcIiB0aHlEcm9wZG93bk1lbnVJdGVtIChjbGljayk9XCJpdGVtTW91c2Vkb3duKCRldmVudCwgaXRlbSlcIj5cbiAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtSWNvbj5cbiAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5pY29uXCI+PC90aHktaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gdGh5RHJvcGRvd25NZW51SXRlbU5hbWUgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgIDx0aHktaW5wdXQtbnVtYmVyXG4gICAgICAgICNpbnB1dE51bWJlclxuICAgICAgICBjbGFzcz1cIm14LTJcIlxuICAgICAgICB0aHlTaXplPVwic21cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uY291bnRcIlxuICAgICAgICBbdGh5U3RlcF09XCIxXCJcbiAgICAgICAgW3RoeU1pbl09XCIxXCJcbiAgICAgICAgKGNsaWNrKT1cImlucHV0TnVtYmVyRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICh0aHlFbnRlcik9XCJpdGVtRW50ZXJIYW5kbGUoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgIHRoeVN0b3BQcm9wYWdhdGlvblxuICAgICAgPjwvdGh5LWlucHV0LW51bWJlcj5cbiAgICAgIHt7IGl0ZW0ubmFtZVN1ZmZpeCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,56 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostListener, inject, Input } from '@angular/core';
2
- import { ThyAlert, ThyAlertActionItemDirective } from 'ngx-tethys/alert';
3
- import { closeConversionHint } from '../../plugins/deserialize/deserialize-md.plugin';
4
- import { injectTranslations, TheI18nService } from '../../i18n';
5
- import * as i0 from "@angular/core";
6
- export class TheConversionHint {
7
- constructor() {
8
- this.locale = injectTranslations(inject(TheI18nService));
9
- this.duration = 10000;
10
- this.pauseOnHover = true;
11
- }
12
- mouseenter() {
13
- if (this.pauseOnHover) {
14
- this.clearCloseTimer();
15
- }
16
- }
17
- mouseleave() {
18
- if (this.pauseOnHover) {
19
- this.createCloseTimer();
20
- }
21
- }
22
- ngOnInit() {
23
- this.createCloseTimer();
24
- }
25
- ngOnDestroy() {
26
- this.clearCloseTimer();
27
- }
28
- createCloseTimer() {
29
- this.closeTimer = setInterval(() => {
30
- clearInterval(this.closeTimer);
31
- closeConversionHint(this.editor);
32
- }, this.duration);
33
- }
34
- clearCloseTimer() {
35
- clearInterval(this.closeTimer);
36
- }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheConversionHint, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheConversionHint, isStandalone: true, selector: "the-conversion-hint", inputs: { editor: "editor", conversion: "conversion" }, host: { listeners: { "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, classAttribute: "the-conversion-hint" }, ngImport: i0, template: "<ng-container>\n <thy-alert thyType=\"primary-weak\" thyIcon=\"info-circle-fill\" thyCloseable=\"true\" [thyMessage]=\"locale().conversionHint\">\n <ng-template #operation>\n <a href=\"javascript:;\" thyAlertActionItem (click)=\"conversion()\"> {{ locale().conversion }} </a>\n </ng-template>\n </thy-alert>\n</ng-container>\n", dependencies: [{ kind: "component", type: ThyAlert, selector: "thy-alert", inputs: ["thyType", "thyTheme", "thyMessage", "thyIcon", "thyCloseable"] }, { kind: "directive", type: ThyAlertActionItemDirective, selector: "[thyAlertActionItem]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
- }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheConversionHint, decorators: [{
41
- type: Component,
42
- args: [{ selector: 'the-conversion-hint', host: {
43
- class: 'the-conversion-hint'
44
- }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ThyAlert, ThyAlertActionItemDirective], template: "<ng-container>\n <thy-alert thyType=\"primary-weak\" thyIcon=\"info-circle-fill\" thyCloseable=\"true\" [thyMessage]=\"locale().conversionHint\">\n <ng-template #operation>\n <a href=\"javascript:;\" thyAlertActionItem (click)=\"conversion()\"> {{ locale().conversion }} </a>\n </ng-template>\n </thy-alert>\n</ng-container>\n" }]
45
- }], propDecorators: { editor: [{
46
- type: Input
47
- }], conversion: [{
48
- type: Input
49
- }], mouseenter: [{
50
- type: HostListener,
51
- args: ['mouseenter']
52
- }], mouseleave: [{
53
- type: HostListener,
54
- args: ['mouseleave']
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2lvbi1oaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9jb21wb25lbnRzL2NvbnZlcnNpb24taGludC9jb252ZXJzaW9uLWhpbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udmVyc2lvbi1oaW50L2NvbnZlcnNpb24taGludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBc0IsTUFBTSxZQUFZLENBQUM7O0FBWXBGLE1BQU0sT0FBTyxpQkFBaUI7SUFWOUI7UUFlSSxXQUFNLEdBQStCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRWhGLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxJQUFJLENBQUM7S0FpQ3ZCO0lBOUIrQixVQUFVO1FBQ2xDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0wsQ0FBQztJQUUyQixVQUFVO1FBQ2xDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvQixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZTtRQUNYLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0F4Q1EsaUJBQWlCO21HQUFqQixpQkFBaUIsbVFDaEI5QixxVkFPQSw0Q0RPYyxRQUFRLGdJQUFFLDJCQUEyQjs7NEZBRXRDLGlCQUFpQjtrQkFWN0IsU0FBUzsrQkFDSSxxQkFBcUIsUUFFekI7d0JBQ0YsS0FBSyxFQUFFLHFCQUFxQjtxQkFDL0IsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsUUFBUSxFQUFFLDJCQUEyQixDQUFDOzhCQUd2QyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFRc0IsVUFBVTtzQkFBckMsWUFBWTt1QkFBQyxZQUFZO2dCQU1FLFVBQVU7c0JBQXJDLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5QWxlcnQsIFRoeUFsZXJ0QWN0aW9uSXRlbURpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvYWxlcnQnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgY2xvc2VDb252ZXJzaW9uSGludCB9IGZyb20gJy4uLy4uL3BsdWdpbnMvZGVzZXJpYWxpemUvZGVzZXJpYWxpemUtbWQucGx1Z2luJztcbmltcG9ydCB7IGluamVjdFRyYW5zbGF0aW9ucywgVGhlSTE4blNlcnZpY2UsIFRoZUkxOG5UcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uL2kxOG4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoZS1jb252ZXJzaW9uLWhpbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnY29udmVyc2lvbi1oaW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLWNvbnZlcnNpb24taGludCdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUFsZXJ0LCBUaHlBbGVydEFjdGlvbkl0ZW1EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUNvbnZlcnNpb25IaW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGVkaXRvcjogRWRpdG9yO1xuXG4gICAgQElucHV0KCkgY29udmVyc2lvbjogKCkgPT4gdm9pZDtcblxuICAgIGxvY2FsZTogU2lnbmFsPFRoZUkxOG5UcmFuc2xhdGlvbj4gPSBpbmplY3RUcmFuc2xhdGlvbnMoaW5qZWN0KFRoZUkxOG5TZXJ2aWNlKSk7XG5cbiAgICBkdXJhdGlvbiA9IDEwMDAwO1xuICAgIHBhdXNlT25Ib3ZlciA9IHRydWU7XG4gICAgY2xvc2VUaW1lcjogYW55O1xuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG1vdXNlZW50ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnBhdXNlT25Ib3Zlcikge1xuICAgICAgICAgICAgdGhpcy5jbGVhckNsb3NlVGltZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBtb3VzZWxlYXZlKCkge1xuICAgICAgICBpZiAodGhpcy5wYXVzZU9uSG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQ2xvc2VUaW1lcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlQ2xvc2VUaW1lcigpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsZWFyQ2xvc2VUaW1lcigpO1xuICAgIH1cblxuICAgIGNyZWF0ZUNsb3NlVGltZXIoKSB7XG4gICAgICAgIHRoaXMuY2xvc2VUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5jbG9zZVRpbWVyKTtcbiAgICAgICAgICAgIGNsb3NlQ29udmVyc2lvbkhpbnQodGhpcy5lZGl0b3IpO1xuICAgICAgICB9LCB0aGlzLmR1cmF0aW9uKTtcbiAgICB9XG5cbiAgICBjbGVhckNsb3NlVGltZXIoKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5jbG9zZVRpbWVyKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8dGh5LWFsZXJ0IHRoeVR5cGU9XCJwcmltYXJ5LXdlYWtcIiB0aHlJY29uPVwiaW5mby1jaXJjbGUtZmlsbFwiIHRoeUNsb3NlYWJsZT1cInRydWVcIiBbdGh5TWVzc2FnZV09XCJsb2NhbGUoKS5jb252ZXJzaW9uSGludFwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjb3BlcmF0aW9uPlxuICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIHRoeUFsZXJ0QWN0aW9uSXRlbSAoY2xpY2spPVwiY29udmVyc2lvbigpXCI+IHt7IGxvY2FsZSgpLmNvbnZlcnNpb24gfX0gPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvdGh5LWFsZXJ0PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,23 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';
2
- import { TheBaseElement } from '../../interfaces';
3
- import * as i0 from "@angular/core";
4
- export class TheDefaultElement extends TheBaseElement {
5
- get indent() {
6
- return this.element?.indent;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheDefaultElement, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheDefaultElement, isStandalone: true, selector: "[theDefaultElement]", host: { properties: { "attr.the-indent": "this.indent" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheDefaultElement, decorators: [{
12
- type: Component,
13
- args: [{
14
- selector: '[theDefaultElement]',
15
- template: '',
16
- changeDetection: ChangeDetectionStrategy.OnPush,
17
- standalone: true
18
- }]
19
- }], propDecorators: { indent: [{
20
- type: HostBinding,
21
- args: ['attr.the-indent']
22
- }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFRbEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGNBQWM7SUFDakQsSUFDSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQyxDQUFDOytHQUpRLGlCQUFpQjttR0FBakIsaUJBQWlCLGtLQUpoQixFQUFFOzs0RkFJSCxpQkFBaUI7a0JBTjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFHTyxNQUFNO3NCQURULFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoZUJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3RoZURlZmF1bHRFbGVtZW50XScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGhlRGVmYXVsdEVsZW1lbnQgZXh0ZW5kcyBUaGVCYXNlRWxlbWVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRoZS1pbmRlbnQnKVxuICAgIGdldCBpbmRlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQ/LmluZGVudDtcbiAgICB9XG59XG4iXX0=
@@ -1,24 +0,0 @@
1
- export * from './toolbar/toolbar.component';
2
- export * from './toolbar-dropdown/toolbar-dropdown.component';
3
- export * from './toolbar-group/toolbar-group.component';
4
- export * from './toolbar-item/toolbar-item.component';
5
- export * from './element/element.component';
6
- export * from './listbox/listbox';
7
- export * from './listbox/listbox.type';
8
- export * from './action/prevent-default';
9
- export * from './plugin-menu/plugin-menu.component';
10
- export * from './column-resize/column-resize-notifier';
11
- export * from './column-resize/event-dispatcher';
12
- export * from './template/template.component';
13
- export * from './text/text.component';
14
- export * from './action/prevent-default';
15
- export * from './inline-toolbar/inline-toolbar.component';
16
- export * from './conversion-hint/conversion-hint.component';
17
- export * from './contextmenu/contextmenu.component';
18
- export * from './table-select/table-select.component';
19
- export * from './column-resize/overlay-handle.component';
20
- export * from './column-resize/event-dispatcher';
21
- export * from './column-resize/resize-ref';
22
- export * from './column-resize/resizing.store';
23
- export * from './column-resize/column-resize.directive';
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rvb2xiYXIvdG9vbGJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90b29sYmFyLWRyb3Bkb3duL3Rvb2xiYXItZHJvcGRvd24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbGJhci1ncm91cC90b29sYmFyLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xiYXItaXRlbS90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudC9lbGVtZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3Rib3gvbGlzdGJveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3Rib3gvbGlzdGJveC50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uL3ByZXZlbnQtZGVmYXVsdCc7XG5leHBvcnQgKiBmcm9tICcuL3BsdWdpbi1tZW51L3BsdWdpbi1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbi1yZXNpemUvY29sdW1uLXJlc2l6ZS1ub3RpZmllcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbi1yZXNpemUvZXZlbnQtZGlzcGF0Y2hlcic7XG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHQvdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24vcHJldmVudC1kZWZhdWx0JztcbmV4cG9ydCAqIGZyb20gJy4vaW5saW5lLXRvb2xiYXIvaW5saW5lLXRvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29udmVyc2lvbi1oaW50L2NvbnZlcnNpb24taGludC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0bWVudS9jb250ZXh0bWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1zZWxlY3QvdGFibGUtc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbi1yZXNpemUvb3ZlcmxheS1oYW5kbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1uLXJlc2l6ZS9ldmVudC1kaXNwYXRjaGVyJztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1uLXJlc2l6ZS9yZXNpemUtcmVmJztcbmV4cG9ydCAqIGZyb20gJy4vY29sdW1uLXJlc2l6ZS9yZXNpemluZy5zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbi1yZXNpemUvY29sdW1uLXJlc2l6ZS5kaXJlY3RpdmUnO1xuIl19
@@ -1,131 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
2
- import { Subject, fromEvent, merge } from 'rxjs';
3
- import { debounceTime, filter, takeUntil } from 'rxjs/operators';
4
- import { Editor, Range as slateRange } from 'slate';
5
- import { AngularEditor } from 'slate-angular';
6
- import { TheToolbarComponent } from '../toolbar/toolbar.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/overlay";
9
- import * as i2 from "../../services/context.service";
10
- export class TheInlineToolbar {
11
- constructor(elementRef, scrollDispatcher, cdr, ngZone, contextService) {
12
- this.elementRef = elementRef;
13
- this.scrollDispatcher = scrollDispatcher;
14
- this.cdr = cdr;
15
- this.ngZone = ngZone;
16
- this.contextService = contextService;
17
- this.destroy$ = new Subject();
18
- }
19
- ngOnInit() {
20
- this.scrollDispatcher
21
- .scrolled()
22
- .pipe(takeUntil(this.destroy$))
23
- .subscribe(() => {
24
- this.updateInlineToolbar();
25
- this.cdr.detectChanges();
26
- });
27
- this.ngZone.runOutsideAngular(() => {
28
- merge(fromEvent(document, 'mouseup').pipe(filter((e) => e.button !== 2)), fromEvent(document, 'keyup').pipe(filter((e) => !e.shiftKey)))
29
- .pipe(debounceTime(200), takeUntil(this.destroy$))
30
- .subscribe(() => {
31
- this.updateInlineToolbar();
32
- });
33
- });
34
- }
35
- updateInlineToolbar() {
36
- const inlineToolbar = this.elementRef.nativeElement.firstElementChild;
37
- if (!inlineToolbar) {
38
- return;
39
- }
40
- const { selection } = this.editor;
41
- if (!selection ||
42
- (selection &&
43
- (!AngularEditor.isFocused(this.editor) ||
44
- slateRange.isCollapsed(selection) ||
45
- Editor.string(this.editor, selection) === ''))) {
46
- inlineToolbar.removeAttribute('style');
47
- return;
48
- }
49
- const native = window.getSelection();
50
- if (native.type !== 'None') {
51
- const range = native.getRangeAt(0);
52
- this.updatePosition(inlineToolbar, range);
53
- this.inlineToolbar?.selectionChange(this.editor);
54
- this.cdr.markForCheck();
55
- }
56
- }
57
- updatePosition(toolbarElement, range) {
58
- let boundary = range.getBoundingClientRect();
59
- const startContainer = range.startContainer;
60
- if (!boundary || (boundary.height === 0 && boundary.width === 0 && startContainer === range.endContainer)) {
61
- if (startContainer.nodeType === 1 && startContainer.querySelector('img')) {
62
- boundary = startContainer.querySelector('img').getBoundingClientRect();
63
- }
64
- else {
65
- boundary = startContainer.getBoundingClientRect();
66
- }
67
- }
68
- const editableElement = this.contextService.getEditableElement();
69
- const editableRect = editableElement.getBoundingClientRect();
70
- const toolbarHeight = toolbarElement.offsetHeight;
71
- const toolbarWidth = toolbarElement.offsetWidth;
72
- const halfOffsetWidth = toolbarWidth / 2;
73
- const defaultLeft = -halfOffsetWidth;
74
- const offsetLeft = boundary.left - editableRect.left;
75
- const isTopLeft = offsetLeft - 30 > halfOffsetWidth; // 30: editable padding left
76
- const isTopRight = editableRect.width - offsetLeft - boundary.width / 2 < halfOffsetWidth;
77
- const positions = {};
78
- positions.top = boundary.top - toolbarHeight;
79
- positions.right = 'initial';
80
- positions.left = boundary.left;
81
- if (isTopLeft) {
82
- positions.left = boundary.left + boundary.width / 2 + defaultLeft;
83
- }
84
- if (isTopRight) {
85
- positions.left = boundary.right - toolbarWidth;
86
- }
87
- for (let key of Object.keys(positions)) {
88
- toolbarElement.style[key] = positions[key] + (isNaN(positions[key]) ? '' : 'px');
89
- }
90
- toolbarElement.style.opacity = '1';
91
- }
92
- ngOnDestroy() {
93
- this.destroy$.next();
94
- this.destroy$.complete();
95
- }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheInlineToolbar, deps: [{ token: i0.ElementRef }, { token: i1.ScrollDispatcher }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i2.TheContextService }], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TheInlineToolbar, isStandalone: true, selector: "the-inline-toolbar", inputs: { editor: "editor", toolbarItems: "toolbarItems" }, host: { properties: { "class.hide": "toolbarItems.length === 0" } }, viewQueries: [{ propertyName: "inlineToolbar", first: true, predicate: ["inlineToolbar"], descendants: true }], ngImport: i0, template: `<the-toolbar
98
- #inlineToolbar
99
- class="the-inline-toolbar"
100
- [editor]="editor"
101
- [toolbarItems]="toolbarItems"
102
- [isMore]="false"
103
- ></the-toolbar> `, isInline: true, dependencies: [{ kind: "component", type: TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
- }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TheInlineToolbar, decorators: [{
106
- type: Component,
107
- args: [{
108
- selector: 'the-inline-toolbar',
109
- template: `<the-toolbar
110
- #inlineToolbar
111
- class="the-inline-toolbar"
112
- [editor]="editor"
113
- [toolbarItems]="toolbarItems"
114
- [isMore]="false"
115
- ></the-toolbar> `,
116
- host: {
117
- '[class.hide]': 'toolbarItems.length === 0'
118
- },
119
- changeDetection: ChangeDetectionStrategy.OnPush,
120
- standalone: true,
121
- imports: [TheToolbarComponent]
122
- }]
123
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ScrollDispatcher }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i2.TheContextService }], propDecorators: { editor: [{
124
- type: Input
125
- }], toolbarItems: [{
126
- type: Input
127
- }], inlineToolbar: [{
128
- type: ViewChild,
129
- args: ['inlineToolbar']
130
- }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvaW5saW5lLXRvb2xiYXIvaW5saW5lLXRvb2xiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssRUFJTCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBa0JuRSxNQUFNLE9BQU8sZ0JBQWdCO0lBU3pCLFlBQ1ksVUFBMkIsRUFDM0IsZ0JBQWtDLEVBQ2xDLEdBQXNCLEVBQ3RCLE1BQWMsRUFDZCxjQUFpQztRQUpqQyxlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFQN0MsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFRNUIsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCO2FBQ2hCLFFBQVEsRUFBRTthQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsS0FBSyxDQUNELFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUM5RSxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUMvRTtpQkFDSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2pELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUI7UUFDZixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQUN0RSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNYLENBQUM7UUFDRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUNJLENBQUMsU0FBUztZQUNWLENBQUMsU0FBUztnQkFDTixDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO29CQUNsQyxVQUFVLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztvQkFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQ3hELENBQUM7WUFDQyxhQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLGNBQTJCLEVBQUUsS0FBWTtRQUNwRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBNkIsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3hHLElBQUksY0FBYyxDQUFDLFFBQVEsS0FBSyxDQUFDLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2RSxRQUFRLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzNFLENBQUM7aUJBQU0sQ0FBQztnQkFDSixRQUFRLEdBQUcsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDdEQsQ0FBQztRQUNMLENBQUM7UUFDRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDakUsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0QsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUNsRCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDckMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQ3JELE1BQU0sU0FBUyxHQUFHLFVBQVUsR0FBRyxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUMsNEJBQTRCO1FBQ2pGLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLGVBQWUsQ0FBQztRQUMxRixNQUFNLFNBQVMsR0FBUSxFQUFFLENBQUM7UUFFMUIsU0FBUyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQztRQUM3QyxTQUFTLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUM1QixTQUFTLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFFL0IsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDdEUsQ0FBQztRQUVELElBQUksVUFBVSxFQUFFLENBQUM7WUFDYixTQUFTLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1FBQ25ELENBQUM7UUFFRCxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBQ0QsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7K0dBekdRLGdCQUFnQjttR0FBaEIsZ0JBQWdCLCtUQWRmOzs7Ozs7cUJBTU8sNERBTVAsbUJBQW1COzs0RkFFcEIsZ0JBQWdCO2tCQWhCNUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7OztxQkFNTztvQkFDakIsSUFBSSxFQUFFO3dCQUNGLGNBQWMsRUFBRSwyQkFBMkI7cUJBQzlDO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDO21NQUVZLE1BQU07c0JBQWQsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVzQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3JvbGxEaXNwYXRjaGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSBhcyBzbGF0ZVJhbmdlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVG9vbGJhckl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFRoZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuLi90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0aGUtaW5saW5lLXRvb2xiYXInLFxuICAgIHRlbXBsYXRlOiBgPHRoZS10b29sYmFyXG4gICAgICAgICNpbmxpbmVUb29sYmFyXG4gICAgICAgIGNsYXNzPVwidGhlLWlubGluZS10b29sYmFyXCJcbiAgICAgICAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICAgICAgICBbdG9vbGJhckl0ZW1zXT1cInRvb2xiYXJJdGVtc1wiXG4gICAgICAgIFtpc01vcmVdPVwiZmFsc2VcIlxuICAgID48L3RoZS10b29sYmFyPiBgLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5oaWRlXSc6ICd0b29sYmFySXRlbXMubGVuZ3RoID09PSAwJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGhlVG9vbGJhckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlSW5saW5lVG9vbGJhciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBlZGl0b3I6IEVkaXRvcjtcblxuICAgIEBJbnB1dCgpIHRvb2xiYXJJdGVtczogVG9vbGJhckl0ZW1bXTtcblxuICAgIEBWaWV3Q2hpbGQoJ2lubGluZVRvb2xiYXInKSBpbmxpbmVUb29sYmFyOiBUaGVUb29sYmFyQ29tcG9uZW50O1xuXG4gICAgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxhbnk+LFxuICAgICAgICBwcml2YXRlIHNjcm9sbERpc3BhdGNoZXI6IFNjcm9sbERpc3BhdGNoZXIsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogVGhlQ29udGV4dFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyXG4gICAgICAgICAgICAuc2Nyb2xsZWQoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJbmxpbmVUb29sYmFyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNldXAnKS5waXBlKGZpbHRlcigoZTogTW91c2VFdmVudCkgPT4gZS5idXR0b24gIT09IDIpKSxcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdrZXl1cCcpLnBpcGUoZmlsdGVyKChlOiBLZXlib2FyZEV2ZW50KSA9PiAhZS5zaGlmdEtleSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJbmxpbmVUb29sYmFyKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZUlubGluZVRvb2xiYXIoKSB7XG4gICAgICAgIGNvbnN0IGlubGluZVRvb2xiYXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgaWYgKCFpbmxpbmVUb29sYmFyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IHRoaXMuZWRpdG9yO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhc2VsZWN0aW9uIHx8XG4gICAgICAgICAgICAoc2VsZWN0aW9uICYmXG4gICAgICAgICAgICAgICAgKCFBbmd1bGFyRWRpdG9yLmlzRm9jdXNlZCh0aGlzLmVkaXRvcikgfHxcbiAgICAgICAgICAgICAgICAgICAgc2xhdGVSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pIHx8XG4gICAgICAgICAgICAgICAgICAgIEVkaXRvci5zdHJpbmcodGhpcy5lZGl0b3IsIHNlbGVjdGlvbikgPT09ICcnKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpbmxpbmVUb29sYmFyLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5hdGl2ZSA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKG5hdGl2ZS50eXBlICE9PSAnTm9uZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gbmF0aXZlLmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKGlubGluZVRvb2xiYXIsIHJhbmdlKTtcbiAgICAgICAgICAgIHRoaXMuaW5saW5lVG9vbGJhcj8uc2VsZWN0aW9uQ2hhbmdlKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlUG9zaXRpb24odG9vbGJhckVsZW1lbnQ6IEhUTUxFbGVtZW50LCByYW5nZTogUmFuZ2UpIHtcbiAgICAgICAgbGV0IGJvdW5kYXJ5ID0gcmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHN0YXJ0Q29udGFpbmVyID0gcmFuZ2Uuc3RhcnRDb250YWluZXIgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICghYm91bmRhcnkgfHwgKGJvdW5kYXJ5LmhlaWdodCA9PT0gMCAmJiBib3VuZGFyeS53aWR0aCA9PT0gMCAmJiBzdGFydENvbnRhaW5lciA9PT0gcmFuZ2UuZW5kQ29udGFpbmVyKSkge1xuICAgICAgICAgICAgaWYgKHN0YXJ0Q29udGFpbmVyLm5vZGVUeXBlID09PSAxICYmIHN0YXJ0Q29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2ltZycpKSB7XG4gICAgICAgICAgICAgICAgYm91bmRhcnkgPSBzdGFydENvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdpbWcnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYm91bmRhcnkgPSBzdGFydENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlZGl0YWJsZUVsZW1lbnQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldEVkaXRhYmxlRWxlbWVudCgpO1xuICAgICAgICBjb25zdCBlZGl0YWJsZVJlY3QgPSBlZGl0YWJsZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJIZWlnaHQgPSB0b29sYmFyRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IHRvb2xiYXJXaWR0aCA9IHRvb2xiYXJFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICBjb25zdCBoYWxmT2Zmc2V0V2lkdGggPSB0b29sYmFyV2lkdGggLyAyO1xuICAgICAgICBjb25zdCBkZWZhdWx0TGVmdCA9IC1oYWxmT2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IG9mZnNldExlZnQgPSBib3VuZGFyeS5sZWZ0IC0gZWRpdGFibGVSZWN0LmxlZnQ7XG4gICAgICAgIGNvbnN0IGlzVG9wTGVmdCA9IG9mZnNldExlZnQgLSAzMCA+IGhhbGZPZmZzZXRXaWR0aDsgLy8gMzA6IGVkaXRhYmxlIHBhZGRpbmcgbGVmdFxuICAgICAgICBjb25zdCBpc1RvcFJpZ2h0ID0gZWRpdGFibGVSZWN0LndpZHRoIC0gb2Zmc2V0TGVmdCAtIGJvdW5kYXJ5LndpZHRoIC8gMiA8IGhhbGZPZmZzZXRXaWR0aDtcbiAgICAgICAgY29uc3QgcG9zaXRpb25zOiBhbnkgPSB7fTtcblxuICAgICAgICBwb3NpdGlvbnMudG9wID0gYm91bmRhcnkudG9wIC0gdG9vbGJhckhlaWdodDtcbiAgICAgICAgcG9zaXRpb25zLnJpZ2h0ID0gJ2luaXRpYWwnO1xuICAgICAgICBwb3NpdGlvbnMubGVmdCA9IGJvdW5kYXJ5LmxlZnQ7XG5cbiAgICAgICAgaWYgKGlzVG9wTGVmdCkge1xuICAgICAgICAgICAgcG9zaXRpb25zLmxlZnQgPSBib3VuZGFyeS5sZWZ0ICsgYm91bmRhcnkud2lkdGggLyAyICsgZGVmYXVsdExlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNUb3BSaWdodCkge1xuICAgICAgICAgICAgcG9zaXRpb25zLmxlZnQgPSBib3VuZGFyeS5yaWdodCAtIHRvb2xiYXJXaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyhwb3NpdGlvbnMpKSB7XG4gICAgICAgICAgICB0b29sYmFyRWxlbWVudC5zdHlsZVtrZXldID0gcG9zaXRpb25zW2tleV0gKyAoaXNOYU4ocG9zaXRpb25zW2tleV0pID8gJycgOiAncHgnKTtcbiAgICAgICAgfVxuICAgICAgICB0b29sYmFyRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gJzEnO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==