@worktile/theia 13.0.0-next.1 → 13.0.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 (626) hide show
  1. package/README.md +11 -11
  2. package/components/color-select/color-select.component.d.ts +32 -32
  3. package/components/color-select/color-select.component.scss +107 -107
  4. package/components/column-resize/column-resize-notifier.d.ts +35 -35
  5. package/components/column-resize/column-resize.directive.d.ts +26 -26
  6. package/components/column-resize/column-resize.module.d.ts +14 -14
  7. package/components/column-resize/event-dispatcher.d.ts +31 -31
  8. package/components/column-resize/overlay-handle.component.d.ts +33 -33
  9. package/components/column-resize/resize-ref.d.ts +25 -25
  10. package/components/column-resize/resizing.store.d.ts +28 -28
  11. package/components/column-resize/selectors.d.ts +3 -3
  12. package/components/contextmenu/contextmenu.component.d.ts +22 -22
  13. package/components/conversion-hint/conversion-hint.component.d.ts +18 -18
  14. package/components/conversion-hint/conversion-hint.component.scss +11 -11
  15. package/components/element/element.component.d.ts +7 -7
  16. package/components/inline-toolbar/inline-toolbar.component.d.ts +26 -26
  17. package/components/nav-split-line/nav-split-line.component.d.ts +13 -13
  18. package/components/table-select/table-select.component.d.ts +20 -20
  19. package/components/table-select/table-select.component.scss +35 -35
  20. package/components/template/template.component.d.ts +15 -15
  21. package/components/text/text.component.d.ts +14 -14
  22. package/components/toolbar/toolbar.component.d.ts +64 -64
  23. package/components/toolbar-dropdown/toolbar-dropdown.component.d.ts +33 -33
  24. package/components/toolbar-group/toolbar-group.component.d.ts +33 -33
  25. package/components/toolbar-group/toolbar-group.component.scss +17 -17
  26. package/components/toolbar-item/toolbar-item.component.d.ts +17 -17
  27. package/constants/auto-format-rules.d.ts +2 -2
  28. package/constants/code.d.ts +9 -9
  29. package/constants/color-select.d.ts +14 -14
  30. package/constants/default.d.ts +9 -9
  31. package/constants/error.d.ts +5 -5
  32. package/constants/index.d.ts +5 -5
  33. package/constants/node-types.d.ts +99 -99
  34. package/constants/selector.d.ts +2 -2
  35. package/constants/toolbar.d.ts +17 -17
  36. package/core/create-plugin.d.ts +2 -2
  37. package/core/create-toolbar.d.ts +5 -5
  38. package/core/index.d.ts +4 -4
  39. package/core/toolbar-item/base-toolbar-item.d.ts +29 -29
  40. package/core/utils/combine-plugins.d.ts +2 -2
  41. package/core/utils/flatten-deep-plugins.d.ts +6 -6
  42. package/core/utils/get-plugin-options.d.ts +2 -2
  43. package/core/utils/get-plugin.d.ts +2 -2
  44. package/core/utils/get-plugins.d.ts +2 -2
  45. package/core/utils/index.d.ts +10 -10
  46. package/core/utils/merge-array.d.ts +1 -1
  47. package/core/utils/merge-deep-plugins.d.ts +2 -2
  48. package/core/utils/merge-options.d.ts +2 -2
  49. package/core/utils/nested-structure-by-key.d.ts +2 -2
  50. package/core/utils/plugins-by-key.d.ts +2 -2
  51. package/core/with-theia.d.ts +4 -4
  52. package/custom-types.d.ts +131 -131
  53. package/editor.component.d.ts +92 -92
  54. package/editor.module.d.ts +100 -98
  55. package/esm2020/components/color-select/color-select.component.mjs +108 -108
  56. package/esm2020/components/column-resize/column-resize-notifier.mjs +31 -31
  57. package/esm2020/components/column-resize/column-resize.directive.mjs +98 -98
  58. package/esm2020/components/column-resize/column-resize.module.mjs +32 -32
  59. package/esm2020/components/column-resize/event-dispatcher.mjs +55 -55
  60. package/esm2020/components/column-resize/overlay-handle.component.mjs +139 -139
  61. package/esm2020/components/column-resize/resize-ref.mjs +25 -25
  62. package/esm2020/components/column-resize/resizing.store.mjs +154 -154
  63. package/esm2020/components/column-resize/selectors.mjs +4 -4
  64. package/esm2020/components/contextmenu/contextmenu.component.mjs +61 -61
  65. package/esm2020/components/conversion-hint/conversion-hint.component.mjs +54 -54
  66. package/esm2020/components/element/element.component.mjs +22 -22
  67. package/esm2020/components/inline-toolbar/inline-toolbar.component.mjs +125 -125
  68. package/esm2020/components/nav-split-line/nav-split-line.component.mjs +36 -36
  69. package/esm2020/components/table-select/table-select.component.mjs +49 -49
  70. package/esm2020/components/template/template.component.mjs +62 -62
  71. package/esm2020/components/text/text.component.mjs +57 -57
  72. package/esm2020/components/toolbar/toolbar.component.mjs +241 -241
  73. package/esm2020/components/toolbar-dropdown/toolbar-dropdown.component.mjs +128 -128
  74. package/esm2020/components/toolbar-group/toolbar-group.component.mjs +110 -110
  75. package/esm2020/components/toolbar-item/toolbar-item.component.mjs +60 -60
  76. package/esm2020/constants/auto-format-rules.mjs +166 -166
  77. package/esm2020/constants/code.mjs +88 -88
  78. package/esm2020/constants/color-select.mjs +61 -61
  79. package/esm2020/constants/default.mjs +9 -9
  80. package/esm2020/constants/error.mjs +7 -7
  81. package/esm2020/constants/index.mjs +5 -5
  82. package/esm2020/constants/node-types.mjs +132 -132
  83. package/esm2020/constants/selector.mjs +3 -3
  84. package/esm2020/constants/toolbar.mjs +69 -69
  85. package/esm2020/core/create-plugin.mjs +4 -4
  86. package/esm2020/core/create-toolbar.mjs +55 -55
  87. package/esm2020/core/index.mjs +4 -4
  88. package/esm2020/core/toolbar-item/base-toolbar-item.mjs +89 -89
  89. package/esm2020/core/utils/combine-plugins.mjs +9 -9
  90. package/esm2020/core/utils/flatten-deep-plugins.mjs +18 -18
  91. package/esm2020/core/utils/get-plugin-options.mjs +2 -2
  92. package/esm2020/core/utils/get-plugin.mjs +1 -1
  93. package/esm2020/core/utils/get-plugins.mjs +3 -3
  94. package/esm2020/core/utils/index.mjs +10 -10
  95. package/esm2020/core/utils/merge-array.mjs +17 -17
  96. package/esm2020/core/utils/merge-deep-plugins.mjs +13 -13
  97. package/esm2020/core/utils/merge-options.mjs +19 -19
  98. package/esm2020/core/utils/nested-structure-by-key.mjs +10 -10
  99. package/esm2020/core/utils/plugins-by-key.mjs +9 -9
  100. package/esm2020/core/with-theia.mjs +22 -22
  101. package/esm2020/custom-types.mjs +1 -1
  102. package/esm2020/editor.component.mjs +430 -430
  103. package/esm2020/editor.module.mjs +207 -201
  104. package/esm2020/interfaces/auto-format.mjs +1 -1
  105. package/esm2020/interfaces/editor.mjs +24 -24
  106. package/esm2020/interfaces/element.mjs +1 -1
  107. package/esm2020/interfaces/image.mjs +2 -2
  108. package/esm2020/interfaces/index.mjs +8 -8
  109. package/esm2020/interfaces/plugins/index.mjs +4 -4
  110. package/esm2020/interfaces/plugins/no-infer.mjs +1 -1
  111. package/esm2020/interfaces/plugins/plugin-key.mjs +39 -39
  112. package/esm2020/interfaces/plugins/plugins.mjs +1 -1
  113. package/esm2020/interfaces/plugins/with-override.mjs +1 -1
  114. package/esm2020/interfaces/reset-block-type-plugin-options.mjs +2 -2
  115. package/esm2020/interfaces/toolbar.mjs +11 -11
  116. package/esm2020/interfaces/upload.mjs +1 -1
  117. package/esm2020/interfaces/utility/index.mjs +3 -3
  118. package/esm2020/interfaces/utility/nested-structure-by-key.mjs +1 -1
  119. package/esm2020/interfaces/utility/override-by-key.mjs +1 -1
  120. package/esm2020/interfaces/utility/types.mjs +1 -1
  121. package/esm2020/interfaces/valid-children-types.mjs +35 -35
  122. package/esm2020/interfaces/view-base.mjs +21 -21
  123. package/esm2020/pipes.mjs +42 -42
  124. package/esm2020/plugins/align/align.editor.mjs +46 -46
  125. package/esm2020/plugins/align/align.plugin.mjs +63 -63
  126. package/esm2020/plugins/autoformat/autoformat.plugin.mjs +108 -108
  127. package/esm2020/plugins/autoformat/transforms/auto-format-block.mjs +14 -14
  128. package/esm2020/plugins/autoformat/transforms/auto-format-inline.mjs +77 -77
  129. package/esm2020/plugins/blockquote/blockquote.component.mjs +21 -21
  130. package/esm2020/plugins/blockquote/blockquote.editor.mjs +19 -19
  131. package/esm2020/plugins/blockquote/blockquote.plugin.mjs +70 -70
  132. package/esm2020/plugins/code/code.component.mjs +240 -240
  133. package/esm2020/plugins/code/code.editor.mjs +47 -47
  134. package/esm2020/plugins/code/code.plugin.mjs +41 -41
  135. package/esm2020/plugins/color/color.editor.mjs +43 -43
  136. package/esm2020/plugins/color/color.plugin.mjs +27 -27
  137. package/esm2020/plugins/color/toolbar-item.component.mjs +78 -78
  138. package/esm2020/plugins/common/auto-insert-data..mjs +76 -76
  139. package/esm2020/plugins/common/block-card.plugin.mjs +286 -286
  140. package/esm2020/plugins/common/get-fragment.plugin.mjs +23 -23
  141. package/esm2020/plugins/common/history.plugin.mjs +30 -30
  142. package/esm2020/plugins/common/move-selection.plugin.mjs +89 -89
  143. package/esm2020/plugins/common/remove-empty.plugin.mjs +59 -59
  144. package/esm2020/plugins/common/remove-void.plugin.mjs +56 -56
  145. package/esm2020/plugins/common/reset-type.plugin.mjs +34 -34
  146. package/esm2020/plugins/common/transforms.plugin.mjs +17 -17
  147. package/esm2020/plugins/deserializers/deserialize-html.plugin.mjs +38 -38
  148. package/esm2020/plugins/deserializers/deserialize-md.plugin.mjs +121 -121
  149. package/esm2020/plugins/font-size/font-size.editor.mjs +97 -97
  150. package/esm2020/plugins/heading/heading.editor.mjs +53 -53
  151. package/esm2020/plugins/heading/heading.plugin.mjs +84 -84
  152. package/esm2020/plugins/hr/hr.component.mjs +40 -40
  153. package/esm2020/plugins/hr/hr.editor.mjs +7 -7
  154. package/esm2020/plugins/hr/hr.plugin.mjs +41 -41
  155. package/esm2020/plugins/image/image.component.mjs +385 -365
  156. package/esm2020/plugins/image/image.editor.mjs +57 -57
  157. package/esm2020/plugins/image/image.plugin.mjs +56 -56
  158. package/esm2020/plugins/indent/indent.editor.mjs +70 -70
  159. package/esm2020/plugins/indent/indent.plugin.mjs +57 -57
  160. package/esm2020/plugins/indent/on-keydown-indent.mjs +53 -53
  161. package/esm2020/plugins/index.mjs +70 -70
  162. package/esm2020/plugins/inline-code/inline-code.component.mjs +21 -21
  163. package/esm2020/plugins/inline-code/inline-code.editor.mjs +47 -47
  164. package/esm2020/plugins/inline-code/inline-code.plugin.mjs +65 -65
  165. package/esm2020/plugins/link/edit/link-edit.component.mjs +105 -105
  166. package/esm2020/plugins/link/hover/link-hover.component.mjs +36 -36
  167. package/esm2020/plugins/link/link.component.mjs +162 -162
  168. package/esm2020/plugins/link/link.editor.mjs +66 -66
  169. package/esm2020/plugins/link/link.plugin.mjs +58 -58
  170. package/esm2020/plugins/link/link.types.mjs +12 -12
  171. package/esm2020/plugins/list/components/bulleted-list.component.mjs +32 -32
  172. package/esm2020/plugins/list/components/list-item.component.mjs +92 -92
  173. package/esm2020/plugins/list/components/numbered-list.component.mjs +38 -38
  174. package/esm2020/plugins/list/list.editor.mjs +125 -125
  175. package/esm2020/plugins/list/list.plugin.mjs +285 -285
  176. package/esm2020/plugins/list/normalizers/get-list-normalizer.mjs +39 -39
  177. package/esm2020/plugins/list/normalizers/normalize-list-item.mjs +18 -18
  178. package/esm2020/plugins/list/normalizers/normalize-no.mjs +42 -42
  179. package/esm2020/plugins/list/on-key-down-list.mjs +32 -32
  180. package/esm2020/plugins/list/queries/get-list-item-entry.mjs +27 -27
  181. package/esm2020/plugins/list/queries/get-list-item-sublist.mjs +12 -12
  182. package/esm2020/plugins/list/queries/get-list-types.mjs +5 -5
  183. package/esm2020/plugins/list/queries/get-start-list-item.mjs +26 -26
  184. package/esm2020/plugins/list/queries/has-list-in-list-item.mjs +27 -27
  185. package/esm2020/plugins/list/queries/is-in-list.mjs +5 -5
  186. package/esm2020/plugins/list/queries/is-list-nested.mjs +10 -10
  187. package/esm2020/plugins/list/queries/is-list.mjs +5 -5
  188. package/esm2020/plugins/list/queries/is-node-type-list.mjs +4 -4
  189. package/esm2020/plugins/list/queries/is-selection-at-list-item-start.mjs +12 -12
  190. package/esm2020/plugins/list/queries/is-selection-in-same-list-item.mjs +16 -16
  191. package/esm2020/plugins/list/queries/is-single-list-item.mjs +9 -9
  192. package/esm2020/plugins/list/transforms/insert-list-data.mjs +71 -71
  193. package/esm2020/plugins/list/transforms/insert-list-item.mjs +72 -72
  194. package/esm2020/plugins/list/transforms/move-list-item-down.mjs +41 -41
  195. package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +42 -42
  196. package/esm2020/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +29 -29
  197. package/esm2020/plugins/list/transforms/move-list-item-up.mjs +77 -77
  198. package/esm2020/plugins/list/transforms/unwrap-list.mjs +9 -9
  199. package/esm2020/plugins/list/types.mjs +2 -2
  200. package/esm2020/plugins/mark/mark.editor.mjs +27 -27
  201. package/esm2020/plugins/mark/mark.plugin.mjs +104 -104
  202. package/esm2020/plugins/node-id/node-id.plugin.mjs +77 -77
  203. package/esm2020/plugins/normalizers/insert-paragraph-nodes.mjs +27 -27
  204. package/esm2020/plugins/normalizers/remove-empty-nodes.mjs +17 -17
  205. package/esm2020/plugins/normalizers/trailing-node.plugin.mjs +32 -32
  206. package/esm2020/plugins/paint-format/paint-format.editor.mjs +122 -122
  207. package/esm2020/plugins/public-api.mjs +15 -15
  208. package/esm2020/plugins/quick-insert/components/quick-insert.component.mjs +95 -95
  209. package/esm2020/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.mjs +79 -79
  210. package/esm2020/plugins/quick-insert/quick-insert.editor.mjs +52 -52
  211. package/esm2020/plugins/quick-insert/quick-insert.plugin.mjs +73 -73
  212. package/esm2020/plugins/soft-break/soft-break.plugin.mjs +35 -35
  213. package/esm2020/plugins/soft-break/soft-break.types.mjs +1 -1
  214. package/esm2020/plugins/table/components/insert-mark/insert-mark.component.mjs +99 -99
  215. package/esm2020/plugins/table/components/row/row.component.mjs +46 -46
  216. package/esm2020/plugins/table/components/table.component.mjs +460 -460
  217. package/esm2020/plugins/table/components/td/td.component.mjs +696 -696
  218. package/esm2020/plugins/table/components/toolbar/table-options.component.mjs +70 -70
  219. package/esm2020/plugins/table/components/toolbar/table-toolbar.component.mjs +158 -158
  220. package/esm2020/plugins/table/table.editor.mjs +182 -182
  221. package/esm2020/plugins/table/table.plugin.mjs +426 -426
  222. package/esm2020/plugins/table/table.service.mjs +102 -102
  223. package/esm2020/plugins/table/table.store.mjs +483 -483
  224. package/esm2020/plugins/table/table.types.mjs +33 -33
  225. package/esm2020/plugins/table/toolbar-item.component.mjs +60 -60
  226. package/esm2020/plugins/table/transforms/clear-cell.mjs +14 -14
  227. package/esm2020/plugins/table/transforms/clear-table-node.mjs +27 -27
  228. package/esm2020/plugins/table/transforms/insert-column.mjs +57 -57
  229. package/esm2020/plugins/table/transforms/insert-row.mjs +42 -42
  230. package/esm2020/plugins/table/transforms/insert-table.mjs +14 -14
  231. package/esm2020/plugins/table/transforms/remove-column.mjs +51 -51
  232. package/esm2020/plugins/table/transforms/remove-row.mjs +50 -50
  233. package/esm2020/plugins/table/transforms/remove-table.mjs +49 -49
  234. package/esm2020/plugins/table/utils/add-columns.mjs +28 -28
  235. package/esm2020/plugins/table/utils/calc-anchor-position.mjs +24 -24
  236. package/esm2020/plugins/table/utils/calc-span.mjs +72 -72
  237. package/esm2020/plugins/table/utils/create-cell.mjs +19 -19
  238. package/esm2020/plugins/table/utils/create-row.mjs +12 -12
  239. package/esm2020/plugins/table/utils/create-table.mjs +13 -13
  240. package/esm2020/plugins/table/utils/get-base-height.mjs +22 -22
  241. package/esm2020/plugins/table/utils/get-select-cell-node.mjs +19 -19
  242. package/esm2020/plugins/table/utils/index.mjs +8 -8
  243. package/esm2020/plugins/table/utils/is-range-in-table.mjs +16 -16
  244. package/esm2020/plugins/table/utils/is-selection-in-table.mjs +11 -11
  245. package/esm2020/plugins/table/utils/is-virtual-key.mjs +12 -12
  246. package/esm2020/plugins/table/utils/merge-cell.mjs +90 -90
  247. package/esm2020/plugins/table/utils/next-path.mjs +5 -5
  248. package/esm2020/plugins/table/utils/normalize-table.mjs +30 -30
  249. package/esm2020/plugins/table/utils/remove-columns.mjs +23 -23
  250. package/esm2020/plugins/table/utils/set-menu-cell-invisibility.mjs +15 -15
  251. package/esm2020/plugins/table/utils/split-cell.mjs +31 -31
  252. package/esm2020/plugins/table/utils/table-position.mjs +242 -242
  253. package/esm2020/plugins/todo-item/todo-item.component.mjs +53 -53
  254. package/esm2020/plugins/todo-item/todo-item.editor.mjs +31 -31
  255. package/esm2020/plugins/todo-item/todo-item.plugin.mjs +78 -78
  256. package/esm2020/plugins/vertical-align/toolbar-item.component.mjs +82 -82
  257. package/esm2020/plugins/vertical-align/vertical-align.editor.mjs +54 -54
  258. package/esm2020/public-api.mjs +23 -23
  259. package/esm2020/queries/anchor-block-entry.mjs +13 -13
  260. package/esm2020/queries/anchor-block.mjs +6 -6
  261. package/esm2020/queries/anchor-inline-entry.mjs +10 -10
  262. package/esm2020/queries/find-descendant.mjs +47 -47
  263. package/esm2020/queries/find-node.mjs +45 -45
  264. package/esm2020/queries/find-path.mjs +28 -28
  265. package/esm2020/queries/get-above-by-type.mjs +13 -13
  266. package/esm2020/queries/get-above.mjs +9 -9
  267. package/esm2020/queries/get-anchor-block-entry.mjs +8 -8
  268. package/esm2020/queries/get-block-above.mjs +10 -10
  269. package/esm2020/queries/get-block-card-above.mjs +10 -10
  270. package/esm2020/queries/get-block-card-cursor.mjs +5 -5
  271. package/esm2020/queries/get-container-blocks.mjs +11 -11
  272. package/esm2020/queries/get-directly-parent.mjs +11 -11
  273. package/esm2020/queries/get-insert-elements-path.mjs +43 -43
  274. package/esm2020/queries/get-last-child-path.mjs +9 -9
  275. package/esm2020/queries/get-last-node.mjs +17 -17
  276. package/esm2020/queries/get-next-sibling-nodes.mjs +17 -17
  277. package/esm2020/queries/get-node.mjs +10 -10
  278. package/esm2020/queries/get-nodes-by-type.mjs +15 -15
  279. package/esm2020/queries/get-nodes.mjs +7 -7
  280. package/esm2020/queries/get-parent.mjs +12 -12
  281. package/esm2020/queries/get-plain-text.mjs +16 -16
  282. package/esm2020/queries/get-plugin-by-toolbar.mjs +12 -12
  283. package/esm2020/queries/get-point-before.mjs +61 -61
  284. package/esm2020/queries/get-point-from-location.mjs +15 -15
  285. package/esm2020/queries/get-previous-path.mjs +9 -9
  286. package/esm2020/queries/get-rang-from-block-start.mjs +16 -16
  287. package/esm2020/queries/get-range-before.mjs +17 -17
  288. package/esm2020/queries/get-selection-marks.mjs +18 -18
  289. package/esm2020/queries/get-selection-nodes-by-type.mjs +29 -29
  290. package/esm2020/queries/get-text.mjs +9 -9
  291. package/esm2020/queries/get-toolbar-disabled.mjs +12 -12
  292. package/esm2020/queries/index.mjs +58 -58
  293. package/esm2020/queries/is-across-blocks.mjs +7 -7
  294. package/esm2020/queries/is-ancestor-empty.mjs +6 -6
  295. package/esm2020/queries/is-ancestor.mjs +3 -3
  296. package/esm2020/queries/is-block-above-empty.mjs +11 -11
  297. package/esm2020/queries/is-block-active.mjs +7 -7
  298. package/esm2020/queries/is-block-card-cursor.mjs +4 -4
  299. package/esm2020/queries/is-block-text-empty-after-selection.mjs +31 -31
  300. package/esm2020/queries/is-collapsed.mjs +7 -7
  301. package/esm2020/queries/is-contain-nested-type.mjs +28 -28
  302. package/esm2020/queries/is-container-type.mjs +2 -2
  303. package/esm2020/queries/is-descendant.mjs +3 -3
  304. package/esm2020/queries/is-empty-content.mjs +14 -14
  305. package/esm2020/queries/is-empty-paragraph-by-path.mjs +7 -7
  306. package/esm2020/queries/is-empty-paragraph.mjs +11 -11
  307. package/esm2020/queries/is-first-child.mjs +5 -5
  308. package/esm2020/queries/is-include-types.mjs +11 -11
  309. package/esm2020/queries/is-node-type-in.mjs +9 -9
  310. package/esm2020/queries/is-node-type.mjs +15 -15
  311. package/esm2020/queries/is-paragraph.mjs +9 -9
  312. package/esm2020/queries/is-point-at-root.mjs +2 -2
  313. package/esm2020/queries/is-range-across-blocks.mjs +22 -22
  314. package/esm2020/queries/is-range-at-root.mjs +3 -3
  315. package/esm2020/queries/is-start.mjs +6 -6
  316. package/esm2020/queries/some-node.mjs +9 -9
  317. package/esm2020/services/color-select.service.mjs +49 -49
  318. package/esm2020/services/context.service.mjs +58 -58
  319. package/esm2020/services/table-contextmenu.service.mjs +189 -189
  320. package/esm2020/services/toolbar.service.mjs +47 -47
  321. package/esm2020/shortcuts/index.mjs +5 -5
  322. package/esm2020/shortcuts/mark.mjs +24 -24
  323. package/esm2020/transforms/apply-deep-to-nodes.mjs +21 -21
  324. package/esm2020/transforms/clear-marks.mjs +23 -23
  325. package/esm2020/transforms/close-conversion-hint.mjs +8 -8
  326. package/esm2020/transforms/delete-element.mjs +11 -11
  327. package/esm2020/transforms/handle-continual-delete-backward.mjs +17 -17
  328. package/esm2020/transforms/handle-continual-insert-break.mjs +19 -19
  329. package/esm2020/transforms/index.mjs +18 -18
  330. package/esm2020/transforms/insert-elements.mjs +33 -33
  331. package/esm2020/transforms/insert-paragraph.mjs +6 -6
  332. package/esm2020/transforms/merge-deep-to-nodes.mjs +8 -8
  333. package/esm2020/transforms/move-children.mjs +21 -21
  334. package/esm2020/transforms/on-keydown-reset-block-type.mjs +22 -22
  335. package/esm2020/transforms/set-end-selection.mjs +10 -10
  336. package/esm2020/transforms/set-marks.mjs +9 -9
  337. package/esm2020/transforms/set-node.mjs +5 -5
  338. package/esm2020/transforms/split-node.mjs +31 -31
  339. package/esm2020/transforms/un-hang-range.mjs +11 -11
  340. package/esm2020/transforms/un-wrap.mjs +11 -11
  341. package/esm2020/transforms/unwrap-nodes-by-type.mjs +14 -14
  342. package/esm2020/utils/auto-focus.mjs +13 -13
  343. package/esm2020/utils/auto-scroll-view.mjs +24 -24
  344. package/esm2020/utils/cast-array.mjs +7 -7
  345. package/esm2020/utils/common.mjs +2 -2
  346. package/esm2020/utils/create-empty-paragraph.mjs +14 -14
  347. package/esm2020/utils/data-transform.mjs +48 -48
  348. package/esm2020/utils/dom.mjs +46 -46
  349. package/esm2020/utils/editor-uuid.mjs +8 -8
  350. package/esm2020/utils/fragment.mjs +65 -65
  351. package/esm2020/utils/get-all-nodes-by-type.mjs +5 -0
  352. package/esm2020/utils/get-editable-element-height.mjs +6 -6
  353. package/esm2020/utils/get-toolbar-class.mjs +6 -6
  354. package/esm2020/utils/id-creator.mjs +11 -11
  355. package/esm2020/utils/index.mjs +13 -13
  356. package/esm2020/utils/is-clean-empty-paragraph.mjs +36 -36
  357. package/esm2020/utils/is-inline.mjs +8 -8
  358. package/esm2020/utils/lodash.mjs +2 -2
  359. package/esm2020/utils/match.mjs +32 -32
  360. package/esm2020/utils/merge-element-options.mjs +19 -19
  361. package/esm2020/utils/weak-maps.mjs +3 -3
  362. package/esm2020/worktile-theia.mjs +4 -4
  363. package/fesm2015/worktile-theia.mjs +13131 -13097
  364. package/fesm2015/worktile-theia.mjs.map +1 -1
  365. package/fesm2020/worktile-theia.mjs +13150 -13120
  366. package/fesm2020/worktile-theia.mjs.map +1 -1
  367. package/interfaces/auto-format.d.ts +64 -64
  368. package/interfaces/editor.d.ts +146 -146
  369. package/interfaces/element.d.ts +9 -9
  370. package/interfaces/image.d.ts +25 -25
  371. package/interfaces/index.d.ts +8 -8
  372. package/interfaces/plugins/index.d.ts +4 -4
  373. package/interfaces/plugins/no-infer.d.ts +1 -1
  374. package/interfaces/plugins/plugin-key.d.ts +48 -48
  375. package/interfaces/plugins/plugins.d.ts +45 -45
  376. package/interfaces/plugins/with-override.d.ts +7 -7
  377. package/interfaces/reset-block-type-plugin-options.d.ts +23 -23
  378. package/interfaces/toolbar.d.ts +64 -64
  379. package/interfaces/upload.d.ts +11 -11
  380. package/interfaces/utility/index.d.ts +3 -3
  381. package/interfaces/utility/nested-structure-by-key.d.ts +3 -3
  382. package/interfaces/utility/override-by-key.d.ts +3 -3
  383. package/interfaces/utility/types.d.ts +1 -1
  384. package/interfaces/valid-children-types.d.ts +9 -9
  385. package/interfaces/view-base.d.ts +9 -9
  386. package/package.json +5 -4
  387. package/pipes.d.ts +16 -16
  388. package/plugins/align/align.editor.d.ts +7 -7
  389. package/plugins/align/align.plugin.d.ts +2 -2
  390. package/plugins/autoformat/autoformat.plugin.d.ts +6 -6
  391. package/plugins/autoformat/transforms/auto-format-block.d.ts +5 -5
  392. package/plugins/autoformat/transforms/auto-format-inline.d.ts +9 -9
  393. package/plugins/blockquote/blockquote.component.d.ts +11 -11
  394. package/plugins/blockquote/blockquote.editor.d.ts +4 -4
  395. package/plugins/blockquote/blockquote.plugin.d.ts +2 -2
  396. package/plugins/code/code.component.d.ts +65 -65
  397. package/plugins/code/code.editor.d.ts +8 -8
  398. package/plugins/code/code.plugin.d.ts +2 -2
  399. package/plugins/color/color.editor.d.ts +8 -8
  400. package/plugins/color/color.plugin.d.ts +1 -1
  401. package/plugins/color/toolbar-item.component.d.ts +16 -16
  402. package/plugins/common/auto-insert-data..d.ts +2 -2
  403. package/plugins/common/block-card.plugin.d.ts +2 -2
  404. package/plugins/common/get-fragment.plugin.d.ts +6 -6
  405. package/plugins/common/history.plugin.d.ts +9 -9
  406. package/plugins/common/move-selection.plugin.d.ts +2 -2
  407. package/plugins/common/remove-empty.plugin.d.ts +2 -2
  408. package/plugins/common/remove-void.plugin.d.ts +2 -2
  409. package/plugins/common/reset-type.plugin.d.ts +2 -2
  410. package/plugins/common/transforms.plugin.d.ts +8 -8
  411. package/plugins/deserializers/deserialize-html.plugin.d.ts +2 -2
  412. package/plugins/deserializers/deserialize-md.plugin.d.ts +2 -2
  413. package/plugins/font-size/font-size.editor.d.ts +10 -10
  414. package/plugins/heading/heading.editor.d.ts +9 -9
  415. package/plugins/heading/heading.plugin.d.ts +7 -7
  416. package/plugins/hr/hr.component.d.ts +12 -12
  417. package/plugins/hr/hr.editor.d.ts +4 -4
  418. package/plugins/hr/hr.plugin.d.ts +2 -2
  419. package/plugins/image/image.component.d.ts +77 -74
  420. package/plugins/image/image.editor.d.ts +12 -12
  421. package/plugins/image/image.plugin.d.ts +7 -7
  422. package/plugins/indent/indent.editor.d.ts +10 -10
  423. package/plugins/indent/indent.plugin.d.ts +8 -8
  424. package/plugins/indent/on-keydown-indent.d.ts +3 -3
  425. package/plugins/index.d.ts +1 -1
  426. package/plugins/inline-code/inline-code.component.d.ts +9 -9
  427. package/plugins/inline-code/inline-code.editor.d.ts +7 -7
  428. package/plugins/inline-code/inline-code.plugin.d.ts +2 -2
  429. package/plugins/link/edit/link-edit.component.d.ts +36 -36
  430. package/plugins/link/hover/link-hover.component.d.ts +15 -15
  431. package/plugins/link/link.component.d.ts +39 -39
  432. package/plugins/link/link.editor.d.ts +7 -7
  433. package/plugins/link/link.plugin.d.ts +2 -2
  434. package/plugins/link/link.types.d.ts +9 -9
  435. package/plugins/list/components/bulleted-list.component.d.ts +15 -15
  436. package/plugins/list/components/list-item.component.d.ts +20 -20
  437. package/plugins/list/components/numbered-list.component.d.ts +16 -16
  438. package/plugins/list/list.editor.d.ts +12 -12
  439. package/plugins/list/list.plugin.d.ts +3 -3
  440. package/plugins/list/normalizers/get-list-normalizer.d.ts +6 -6
  441. package/plugins/list/normalizers/normalize-list-item.d.ts +5 -5
  442. package/plugins/list/normalizers/normalize-no.d.ts +2 -2
  443. package/plugins/list/on-key-down-list.d.ts +2 -2
  444. package/plugins/list/queries/get-list-item-entry.d.ts +10 -10
  445. package/plugins/list/queries/get-list-item-sublist.d.ts +6 -6
  446. package/plugins/list/queries/get-list-types.d.ts +2 -2
  447. package/plugins/list/queries/get-start-list-item.d.ts +8 -8
  448. package/plugins/list/queries/has-list-in-list-item.d.ts +15 -15
  449. package/plugins/list/queries/is-in-list.d.ts +2 -2
  450. package/plugins/list/queries/is-list-nested.d.ts +5 -5
  451. package/plugins/list/queries/is-list.d.ts +2 -2
  452. package/plugins/list/queries/is-node-type-list.d.ts +2 -2
  453. package/plugins/list/queries/is-selection-at-list-item-start.d.ts +5 -5
  454. package/plugins/list/queries/is-selection-in-same-list-item.d.ts +5 -5
  455. package/plugins/list/queries/is-single-list-item.d.ts +5 -5
  456. package/plugins/list/transforms/insert-list-data.d.ts +12 -12
  457. package/plugins/list/transforms/insert-list-item.d.ts +5 -5
  458. package/plugins/list/transforms/move-list-item-down.d.ts +6 -6
  459. package/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.d.ts +20 -20
  460. package/plugins/list/transforms/move-list-item-sublist-items-to-list.d.ts +19 -19
  461. package/plugins/list/transforms/move-list-item-up.d.ts +10 -10
  462. package/plugins/list/transforms/unwrap-list.d.ts +2 -2
  463. package/plugins/list/types.d.ts +7 -7
  464. package/plugins/mark/mark.editor.d.ts +8 -8
  465. package/plugins/mark/mark.plugin.d.ts +3 -3
  466. package/plugins/node-id/node-id.plugin.d.ts +8 -8
  467. package/plugins/normalizers/insert-paragraph-nodes.d.ts +7 -7
  468. package/plugins/normalizers/remove-empty-nodes.d.ts +7 -7
  469. package/plugins/normalizers/trailing-node.plugin.d.ts +9 -9
  470. package/plugins/paint-format/paint-format.editor.d.ts +8 -8
  471. package/plugins/public-api.d.ts +15 -15
  472. package/plugins/quick-insert/components/quick-insert.component.d.ts +28 -28
  473. package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +28 -28
  474. package/plugins/quick-insert/quick-insert.editor.d.ts +7 -7
  475. package/plugins/quick-insert/quick-insert.plugin.d.ts +10 -10
  476. package/plugins/soft-break/soft-break.plugin.d.ts +5 -5
  477. package/plugins/soft-break/soft-break.types.d.ts +8 -8
  478. package/plugins/table/components/insert-mark/insert-mark.component.d.ts +24 -24
  479. package/plugins/table/components/row/row.component.d.ts +14 -14
  480. package/plugins/table/components/table.component.d.ts +79 -79
  481. package/plugins/table/components/td/td.component.d.ts +95 -95
  482. package/plugins/table/components/toolbar/table-options.component.d.ts +20 -20
  483. package/plugins/table/components/toolbar/table-toolbar.component.d.ts +38 -38
  484. package/plugins/table/table.editor.d.ts +25 -25
  485. package/plugins/table/table.plugin.d.ts +3 -3
  486. package/plugins/table/table.service.d.ts +30 -30
  487. package/plugins/table/table.store.d.ts +71 -71
  488. package/plugins/table/table.types.d.ts +67 -67
  489. package/plugins/table/toolbar-item.component.d.ts +17 -17
  490. package/plugins/table/transforms/clear-cell.d.ts +6 -6
  491. package/plugins/table/transforms/clear-table-node.d.ts +6 -6
  492. package/plugins/table/transforms/insert-column.d.ts +12 -12
  493. package/plugins/table/transforms/insert-row.d.ts +6 -6
  494. package/plugins/table/transforms/insert-table.d.ts +6 -6
  495. package/plugins/table/transforms/remove-column.d.ts +3 -3
  496. package/plugins/table/transforms/remove-row.d.ts +3 -3
  497. package/plugins/table/transforms/remove-table.d.ts +3 -3
  498. package/plugins/table/utils/add-columns.d.ts +2 -2
  499. package/plugins/table/utils/calc-anchor-position.d.ts +6 -6
  500. package/plugins/table/utils/calc-span.d.ts +11 -11
  501. package/plugins/table/utils/create-cell.d.ts +16 -16
  502. package/plugins/table/utils/create-row.d.ts +7 -7
  503. package/plugins/table/utils/create-table.d.ts +7 -7
  504. package/plugins/table/utils/get-base-height.d.ts +9 -9
  505. package/plugins/table/utils/get-select-cell-node.d.ts +7 -7
  506. package/plugins/table/utils/index.d.ts +7 -7
  507. package/plugins/table/utils/is-range-in-table.d.ts +6 -6
  508. package/plugins/table/utils/is-selection-in-table.d.ts +6 -6
  509. package/plugins/table/utils/is-virtual-key.d.ts +1 -1
  510. package/plugins/table/utils/merge-cell.d.ts +21 -21
  511. package/plugins/table/utils/next-path.d.ts +2 -2
  512. package/plugins/table/utils/normalize-table.d.ts +2 -2
  513. package/plugins/table/utils/remove-columns.d.ts +2 -2
  514. package/plugins/table/utils/set-menu-cell-invisibility.d.ts +3 -3
  515. package/plugins/table/utils/split-cell.d.ts +4 -4
  516. package/plugins/table/utils/table-position.d.ts +97 -97
  517. package/plugins/todo-item/todo-item.component.d.ts +21 -21
  518. package/plugins/todo-item/todo-item.editor.d.ts +5 -5
  519. package/plugins/todo-item/todo-item.plugin.d.ts +5 -5
  520. package/plugins/vertical-align/toolbar-item.component.d.ts +25 -25
  521. package/plugins/vertical-align/vertical-align.editor.d.ts +7 -7
  522. package/public-api.d.ts +20 -20
  523. package/queries/anchor-block-entry.d.ts +2 -2
  524. package/queries/anchor-block.d.ts +2 -2
  525. package/queries/anchor-inline-entry.d.ts +2 -2
  526. package/queries/find-descendant.d.ts +10 -10
  527. package/queries/find-node.d.ts +15 -15
  528. package/queries/find-path.d.ts +6 -6
  529. package/queries/get-above-by-type.d.ts +6 -6
  530. package/queries/get-above.d.ts +6 -6
  531. package/queries/get-anchor-block-entry.d.ts +2 -2
  532. package/queries/get-block-above.d.ts +7 -7
  533. package/queries/get-block-card-above.d.ts +7 -7
  534. package/queries/get-block-card-cursor.d.ts +2 -2
  535. package/queries/get-container-blocks.d.ts +2 -2
  536. package/queries/get-directly-parent.d.ts +2 -2
  537. package/queries/get-insert-elements-path.d.ts +7 -7
  538. package/queries/get-last-child-path.d.ts +6 -6
  539. package/queries/get-last-node.d.ts +2 -2
  540. package/queries/get-next-sibling-nodes.d.ts +7 -7
  541. package/queries/get-node.d.ts +2 -2
  542. package/queries/get-nodes-by-type.d.ts +6 -6
  543. package/queries/get-nodes.d.ts +4 -4
  544. package/queries/get-parent.d.ts +7 -7
  545. package/queries/get-plain-text.d.ts +6 -6
  546. package/queries/get-plugin-by-toolbar.d.ts +3 -3
  547. package/queries/get-point-before.d.ts +38 -38
  548. package/queries/get-point-from-location.d.ts +5 -5
  549. package/queries/get-previous-path.d.ts +2 -2
  550. package/queries/get-rang-from-block-start.d.ts +9 -9
  551. package/queries/get-range-before.d.ts +7 -7
  552. package/queries/get-selection-marks.d.ts +12 -12
  553. package/queries/get-selection-nodes-by-type.d.ts +3 -3
  554. package/queries/get-text.d.ts +6 -6
  555. package/queries/get-toolbar-disabled.d.ts +4 -4
  556. package/queries/index.d.ts +58 -58
  557. package/queries/is-across-blocks.d.ts +2 -2
  558. package/queries/is-ancestor-empty.d.ts +5 -5
  559. package/queries/is-ancestor.d.ts +2 -2
  560. package/queries/is-block-above-empty.d.ts +5 -5
  561. package/queries/is-block-active.d.ts +3 -3
  562. package/queries/is-block-card-cursor.d.ts +2 -2
  563. package/queries/is-block-text-empty-after-selection.d.ts +7 -7
  564. package/queries/is-collapsed.d.ts +6 -6
  565. package/queries/is-contain-nested-type.d.ts +2 -2
  566. package/queries/is-container-type.d.ts +2 -2
  567. package/queries/is-descendant.d.ts +2 -2
  568. package/queries/is-empty-content.d.ts +2 -2
  569. package/queries/is-empty-paragraph-by-path.d.ts +2 -2
  570. package/queries/is-empty-paragraph.d.ts +2 -2
  571. package/queries/is-first-child.d.ts +5 -5
  572. package/queries/is-include-types.d.ts +3 -3
  573. package/queries/is-node-type-in.d.ts +6 -6
  574. package/queries/is-node-type.d.ts +6 -6
  575. package/queries/is-paragraph.d.ts +2 -2
  576. package/queries/is-point-at-root.d.ts +2 -2
  577. package/queries/is-range-across-blocks.d.ts +8 -8
  578. package/queries/is-range-at-root.d.ts +2 -2
  579. package/queries/is-start.d.ts +5 -5
  580. package/queries/some-node.d.ts +7 -7
  581. package/services/color-select.service.d.ts +20 -20
  582. package/services/context.service.d.ts +49 -49
  583. package/services/table-contextmenu.service.d.ts +25 -25
  584. package/services/toolbar.service.d.ts +9 -9
  585. package/shortcuts/index.d.ts +2 -2
  586. package/shortcuts/mark.d.ts +2 -2
  587. package/transforms/apply-deep-to-nodes.d.ts +12 -12
  588. package/transforms/clear-marks.d.ts +2 -2
  589. package/transforms/close-conversion-hint.d.ts +2 -2
  590. package/transforms/delete-element.d.ts +2 -2
  591. package/transforms/handle-continual-delete-backward.d.ts +3 -3
  592. package/transforms/handle-continual-insert-break.d.ts +3 -3
  593. package/transforms/index.d.ts +18 -18
  594. package/transforms/insert-elements.d.ts +2 -2
  595. package/transforms/insert-paragraph.d.ts +2 -2
  596. package/transforms/merge-deep-to-nodes.d.ts +5 -5
  597. package/transforms/move-children.d.ts +24 -24
  598. package/transforms/on-keydown-reset-block-type.d.ts +3 -3
  599. package/transforms/set-end-selection.d.ts +2 -2
  600. package/transforms/set-marks.d.ts +12 -12
  601. package/transforms/set-node.d.ts +2 -2
  602. package/transforms/split-node.d.ts +3 -3
  603. package/transforms/un-hang-range.d.ts +10 -10
  604. package/transforms/un-wrap.d.ts +3 -3
  605. package/transforms/unwrap-nodes-by-type.d.ts +6 -6
  606. package/utils/auto-focus.d.ts +2 -2
  607. package/utils/auto-scroll-view.d.ts +6 -6
  608. package/utils/cast-array.d.ts +1 -1
  609. package/utils/common.d.ts +2 -2
  610. package/utils/create-empty-paragraph.d.ts +2 -2
  611. package/utils/data-transform.d.ts +6 -6
  612. package/utils/dom.d.ts +10 -10
  613. package/utils/editor-uuid.d.ts +3 -3
  614. package/utils/fragment.d.ts +10 -10
  615. package/utils/get-all-nodes-by-type.d.ts +3 -0
  616. package/utils/get-editable-element-height.d.ts +2 -2
  617. package/utils/get-toolbar-class.d.ts +2 -2
  618. package/utils/id-creator.d.ts +1 -1
  619. package/utils/index.d.ts +13 -13
  620. package/utils/is-clean-empty-paragraph.d.ts +9 -9
  621. package/utils/is-inline.d.ts +2 -2
  622. package/utils/lodash.d.ts +2 -2
  623. package/utils/match.d.ts +18 -18
  624. package/utils/merge-element-options.d.ts +2 -2
  625. package/utils/weak-maps.d.ts +5 -5
  626. package/worktile-theia.d.ts +5 -5
@@ -1,155 +1,155 @@
1
- import { Injectable } from '@angular/core';
2
- import { getElementWidth, coercePixelsFromCssValue, getColsTotalWidth, getElementHeight, getRowsTotalHeight } from '../../utils/dom';
3
- import { coerceCssPixelValue } from '@angular/cdk/coercion';
4
- import * as i0 from "@angular/core";
5
- export class ColumnResizingStore {
6
- constructor() {
7
- this.resizeCols = [];
8
- this.resizeRows = [];
9
- }
10
- storeResizingCol(colElement) {
11
- if (this.resizeCols.some(cache => cache.colElement === colElement)) {
12
- return;
13
- }
14
- this.resizeCols.push({ colElement, baseWidth: getElementWidth(colElement) });
15
- }
16
- storeResizingRow(rowElement) {
17
- if (this.resizeRows.some(cache => cache.rowElement === rowElement)) {
18
- return;
19
- }
20
- this.resizeRows.push({ rowElement, baseHeight: getElementHeight(rowElement) });
21
- }
22
- storeTableWidth(cols) {
23
- if (!this.tableCols) {
24
- this.tableCols = { cols, baseWidth: getColsTotalWidth(cols) };
25
- }
26
- }
27
- storeTableHeight(rows) {
28
- if (!this.tableRows) {
29
- this.tableRows = { rows, baseHeight: getRowsTotalHeight(rows) };
30
- }
31
- }
32
- cleanResizing() {
33
- this.tableCols = null;
34
- this.tableRows = null;
35
- this.resizeCols = [];
36
- this.resizeRows = [];
37
- this.direction = null;
38
- }
39
- restoreLeftCols(deltaX) {
40
- let index = this.resizeCols.length - 1;
41
- while (index >= 0 && deltaX > 0) {
42
- const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
43
- if (this.resizeCols[index].baseWidth > currentWidth) {
44
- if (this.resizeCols[index].baseWidth > currentWidth + deltaX) {
45
- this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + deltaX);
46
- deltaX = 0;
47
- }
48
- else {
49
- deltaX -= this.resizeCols[index].baseWidth - currentWidth;
50
- this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
51
- this.popCol();
52
- }
53
- }
54
- index--;
55
- }
56
- return deltaX;
57
- }
58
- restoreTopRows(deltaY) {
59
- let index = this.resizeRows.length - 1;
60
- while (index >= 0 && deltaY > 0) {
61
- const currentHeight = this.resizeRows[index].rowElement.getBoundingClientRect().height;
62
- if (this.resizeRows[index].baseHeight > currentHeight) {
63
- if (this.resizeRows[index].baseHeight > currentHeight + deltaY) {
64
- this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(currentHeight + deltaY);
65
- deltaY = 0;
66
- }
67
- else {
68
- deltaY -= this.resizeRows[index].baseHeight - currentHeight;
69
- this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(this.resizeRows[index].baseHeight);
70
- this.popRow();
71
- }
72
- }
73
- index--;
74
- }
75
- return deltaY;
76
- }
77
- restoreBottomRows(deltaY) {
78
- let index = this.resizeRows.length - 1;
79
- while (index >= 0 && deltaY < 0) {
80
- const currentHeight = coercePixelsFromCssValue(this.resizeRows[index].rowElement.style.height);
81
- if (this.resizeRows[index].baseHeight > currentHeight) {
82
- if (this.resizeRows[index].baseHeight > currentHeight + Math.abs(deltaY)) {
83
- this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(currentHeight + Math.abs(deltaY));
84
- deltaY = 0;
85
- }
86
- else {
87
- deltaY += this.resizeRows[index].baseHeight - currentHeight;
88
- this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(this.resizeRows[index].baseHeight);
89
- this.popRow();
90
- }
91
- }
92
- index--;
93
- }
94
- return deltaY;
95
- }
96
- restoreRightCols(deltaX) {
97
- let index = this.resizeCols.length - 1;
98
- while (index >= 0 && deltaX < 0) {
99
- const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
100
- if (this.resizeCols[index].baseWidth > currentWidth) {
101
- if (this.resizeCols[index].baseWidth > currentWidth + Math.abs(deltaX)) {
102
- this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + Math.abs(deltaX));
103
- deltaX = 0;
104
- }
105
- else {
106
- deltaX += this.resizeCols[index].baseWidth - currentWidth;
107
- this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
108
- this.popCol();
109
- }
110
- }
111
- index--;
112
- }
113
- return deltaX;
114
- }
115
- getScrollWidth(deltaX) {
116
- if (this.tableCols) {
117
- return getColsTotalWidth(this.tableCols.cols) - this.tableCols.baseWidth - Math.abs(deltaX);
118
- }
119
- }
120
- getAddTableHeight(deltaY) {
121
- if (this.tableRows) {
122
- return getRowsTotalHeight(this.tableRows.rows) - this.tableRows.baseHeight - Math.abs(deltaY);
123
- }
124
- }
125
- isRestoring(deltaValue, isXAxis = true) {
126
- return !this.isResizing(deltaValue, isXAxis);
127
- }
128
- isResizing(deltaValue, isXAxis = true) {
129
- return this.direction === this.getDirection(deltaValue, isXAxis);
130
- }
131
- initDirection(deltaValue, isXAxis = true) {
132
- if (this.resizeCols.length > 0) {
133
- return;
134
- }
135
- if (this.resizeRows.length > 0) {
136
- return;
137
- }
138
- this.direction = this.getDirection(deltaValue, isXAxis);
139
- }
140
- getDirection(deltaValue, isXAxis = true) {
141
- return isXAxis ? (deltaValue > 0 ? 'right' : 'left') : deltaValue > 0 ? 'bottom' : 'top';
142
- }
143
- popCol() {
144
- this.resizeCols.pop();
145
- }
146
- popRow() {
147
- this.resizeRows.pop();
148
- }
149
- }
150
- ColumnResizingStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ColumnResizingStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
151
- ColumnResizingStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ColumnResizingStore });
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ColumnResizingStore, decorators: [{
153
- type: Injectable
154
- }], ctorParameters: function () { return []; } });
1
+ import { Injectable } from '@angular/core';
2
+ import { getElementWidth, coercePixelsFromCssValue, getColsTotalWidth, getElementHeight, getRowsTotalHeight } from '../../utils/dom';
3
+ import { coerceCssPixelValue } from '@angular/cdk/coercion';
4
+ import * as i0 from "@angular/core";
5
+ export class ColumnResizingStore {
6
+ constructor() {
7
+ this.resizeCols = [];
8
+ this.resizeRows = [];
9
+ }
10
+ storeResizingCol(colElement) {
11
+ if (this.resizeCols.some(cache => cache.colElement === colElement)) {
12
+ return;
13
+ }
14
+ this.resizeCols.push({ colElement, baseWidth: getElementWidth(colElement) });
15
+ }
16
+ storeResizingRow(rowElement) {
17
+ if (this.resizeRows.some(cache => cache.rowElement === rowElement)) {
18
+ return;
19
+ }
20
+ this.resizeRows.push({ rowElement, baseHeight: getElementHeight(rowElement) });
21
+ }
22
+ storeTableWidth(cols) {
23
+ if (!this.tableCols) {
24
+ this.tableCols = { cols, baseWidth: getColsTotalWidth(cols) };
25
+ }
26
+ }
27
+ storeTableHeight(rows) {
28
+ if (!this.tableRows) {
29
+ this.tableRows = { rows, baseHeight: getRowsTotalHeight(rows) };
30
+ }
31
+ }
32
+ cleanResizing() {
33
+ this.tableCols = null;
34
+ this.tableRows = null;
35
+ this.resizeCols = [];
36
+ this.resizeRows = [];
37
+ this.direction = null;
38
+ }
39
+ restoreLeftCols(deltaX) {
40
+ let index = this.resizeCols.length - 1;
41
+ while (index >= 0 && deltaX > 0) {
42
+ const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
43
+ if (this.resizeCols[index].baseWidth > currentWidth) {
44
+ if (this.resizeCols[index].baseWidth > currentWidth + deltaX) {
45
+ this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + deltaX);
46
+ deltaX = 0;
47
+ }
48
+ else {
49
+ deltaX -= this.resizeCols[index].baseWidth - currentWidth;
50
+ this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
51
+ this.popCol();
52
+ }
53
+ }
54
+ index--;
55
+ }
56
+ return deltaX;
57
+ }
58
+ restoreTopRows(deltaY) {
59
+ let index = this.resizeRows.length - 1;
60
+ while (index >= 0 && deltaY > 0) {
61
+ const currentHeight = this.resizeRows[index].rowElement.getBoundingClientRect().height;
62
+ if (this.resizeRows[index].baseHeight > currentHeight) {
63
+ if (this.resizeRows[index].baseHeight > currentHeight + deltaY) {
64
+ this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(currentHeight + deltaY);
65
+ deltaY = 0;
66
+ }
67
+ else {
68
+ deltaY -= this.resizeRows[index].baseHeight - currentHeight;
69
+ this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(this.resizeRows[index].baseHeight);
70
+ this.popRow();
71
+ }
72
+ }
73
+ index--;
74
+ }
75
+ return deltaY;
76
+ }
77
+ restoreBottomRows(deltaY) {
78
+ let index = this.resizeRows.length - 1;
79
+ while (index >= 0 && deltaY < 0) {
80
+ const currentHeight = coercePixelsFromCssValue(this.resizeRows[index].rowElement.style.height);
81
+ if (this.resizeRows[index].baseHeight > currentHeight) {
82
+ if (this.resizeRows[index].baseHeight > currentHeight + Math.abs(deltaY)) {
83
+ this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(currentHeight + Math.abs(deltaY));
84
+ deltaY = 0;
85
+ }
86
+ else {
87
+ deltaY += this.resizeRows[index].baseHeight - currentHeight;
88
+ this.resizeRows[index].rowElement.style.height = coerceCssPixelValue(this.resizeRows[index].baseHeight);
89
+ this.popRow();
90
+ }
91
+ }
92
+ index--;
93
+ }
94
+ return deltaY;
95
+ }
96
+ restoreRightCols(deltaX) {
97
+ let index = this.resizeCols.length - 1;
98
+ while (index >= 0 && deltaX < 0) {
99
+ const currentWidth = coercePixelsFromCssValue(this.resizeCols[index].colElement.style.width);
100
+ if (this.resizeCols[index].baseWidth > currentWidth) {
101
+ if (this.resizeCols[index].baseWidth > currentWidth + Math.abs(deltaX)) {
102
+ this.resizeCols[index].colElement.style.width = coerceCssPixelValue(currentWidth + Math.abs(deltaX));
103
+ deltaX = 0;
104
+ }
105
+ else {
106
+ deltaX += this.resizeCols[index].baseWidth - currentWidth;
107
+ this.resizeCols[index].colElement.style.width = coerceCssPixelValue(this.resizeCols[index].baseWidth);
108
+ this.popCol();
109
+ }
110
+ }
111
+ index--;
112
+ }
113
+ return deltaX;
114
+ }
115
+ getScrollWidth(deltaX) {
116
+ if (this.tableCols) {
117
+ return getColsTotalWidth(this.tableCols.cols) - this.tableCols.baseWidth - Math.abs(deltaX);
118
+ }
119
+ }
120
+ getAddTableHeight(deltaY) {
121
+ if (this.tableRows) {
122
+ return getRowsTotalHeight(this.tableRows.rows) - this.tableRows.baseHeight - Math.abs(deltaY);
123
+ }
124
+ }
125
+ isRestoring(deltaValue, isXAxis = true) {
126
+ return !this.isResizing(deltaValue, isXAxis);
127
+ }
128
+ isResizing(deltaValue, isXAxis = true) {
129
+ return this.direction === this.getDirection(deltaValue, isXAxis);
130
+ }
131
+ initDirection(deltaValue, isXAxis = true) {
132
+ if (this.resizeCols.length > 0) {
133
+ return;
134
+ }
135
+ if (this.resizeRows.length > 0) {
136
+ return;
137
+ }
138
+ this.direction = this.getDirection(deltaValue, isXAxis);
139
+ }
140
+ getDirection(deltaValue, isXAxis = true) {
141
+ return isXAxis ? (deltaValue > 0 ? 'right' : 'left') : deltaValue > 0 ? 'bottom' : 'top';
142
+ }
143
+ popCol() {
144
+ this.resizeCols.pop();
145
+ }
146
+ popRow() {
147
+ this.resizeRows.pop();
148
+ }
149
+ }
150
+ ColumnResizingStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ColumnResizingStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
151
+ ColumnResizingStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ColumnResizingStore });
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ColumnResizingStore, decorators: [{
153
+ type: Injectable
154
+ }], ctorParameters: function () { return []; } });
155
155
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXppbmcuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvY29tcG9uZW50cy9jb2x1bW4tcmVzaXplL3Jlc2l6aW5nLnN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUc1RCxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCO1FBQ0ksSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQU9ELGdCQUFnQixDQUFDLFVBQStCO1FBQzVDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxFQUFFO1lBQ2hFLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUErQjtRQUM1QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsRUFBRTtZQUNoRSxPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMs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STtRQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFrQixFQUFFLE9BQU8sR0FBRyxJQUFJO1FBQzVDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxHQUFHLElBQUk7UUFDM0MsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDN0YsQ0FBQztJQUVPLE1BQU07UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxNQUFNO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDOztnSEFqS1EsbUJBQW1CO29IQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldEVsZW1lbnRXaWR0aCwgY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlLCBnZXRDb2xzVG90YWxXaWR0aCwgZ2V0RWxlbWVudEhlaWdodCwgZ2V0Um93c1RvdGFsSGVpZ2h0IH0gZnJvbSAnLi4vLi4vdXRpbHMvZG9tJztcbmltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29sdW1uUmVzaXppbmdTdG9yZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucmVzaXplQ29scyA9IFtdO1xuICAgICAgICB0aGlzLnJlc2l6ZVJvd3MgPSBbXTtcbiAgICB9XG4gICAgcHJpdmF0ZSBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nO1xuICAgIHByaXZhdGUgcmVzaXplQ29sczogeyBjb2xFbGVtZW50OiBIVE1MVGFibGVDb2xFbGVtZW50OyBiYXNlV2lkdGg6IG51bWJlciB9W107XG4gICAgcHJpdmF0ZSByZXNpemVSb3dzOiB7IHJvd0VsZW1lbnQ6IEhUTUxUYWJsZVJvd0VsZW1lbnQ7IGJhc2VIZWlnaHQ6IG51bWJlciB9W107XG4gICAgcHJpdmF0ZSB0YWJsZUNvbHM6IHsgY29sczogSFRNTFRhYmxlQ29sRWxlbWVudFtdOyBiYXNlV2lkdGg6IG51bWJlciB9O1xuICAgIHByaXZhdGUgdGFibGVSb3dzOiB7IHJvd3M6IEhUTUxUYWJsZVJvd0VsZW1lbnRbXTsgYmFzZUhlaWdodDogbnVtYmVyIH07XG5cbiAgICBzdG9yZVJlc2l6aW5nQ29sKGNvbEVsZW1lbnQ6IEhUTUxUYWJsZUNvbEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplQ29scy5zb21lKGNhY2hlID0+IGNhY2hlLmNvbEVsZW1lbnQgPT09IGNvbEVsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNpemVDb2xzLnB1c2goeyBjb2xFbGVtZW50LCBiYXNlV2lkdGg6IGdldEVsZW1lbnRXaWR0aChjb2xFbGVtZW50KSB9KTtcbiAgICB9XG5cbiAgICBzdG9yZVJlc2l6aW5nUm93KHJvd0VsZW1lbnQ6IEhUTUxUYWJsZVJvd0VsZW1lbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplUm93cy5zb21lKGNhY2hlID0+IGNhY2hlLnJvd0VsZW1lbnQgPT09IHJvd0VsZW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNpemVSb3dzLnB1c2goeyByb3dFbGVtZW50LCBiYXNlSGVpZ2h0OiBnZXRFbGVtZW50SGVpZ2h0KHJvd0VsZW1lbnQpIH0pO1xuICAgIH1cblxuICAgIHN0b3JlVGFibGVXaWR0aChjb2xzOiBIVE1MVGFibGVDb2xFbGVtZW50W10pIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlQ29scykge1xuICAgICAgICAgICAgdGhpcy50YWJsZUNvbHMgPSB7IGNvbHMsIGJhc2VXaWR0aDogZ2V0Q29sc1RvdGFsV2lkdGgoY29scykgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0b3JlVGFibGVIZWlnaHQocm93czogSFRNTFRhYmxlUm93RWxlbWVudFtdKSB7XG4gICAgICAgIGlmICghdGhpcy50YWJsZVJvd3MpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVSb3dzID0geyByb3dzLCBiYXNlSGVpZ2h0OiBnZXRSb3dzVG90YWxIZWlnaHQocm93cykgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFuUmVzaXppbmcoKSB7XG4gICAgICAgIHRoaXMudGFibGVDb2xzID0gbnVsbDtcbiAgICAgICAgdGhpcy50YWJsZVJvd3MgPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZUNvbHMgPSBbXTtcbiAgICAgICAgdGhpcy5yZXNpemVSb3dzID0gW107XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXN0b3JlTGVmdENvbHMoZGVsdGFYOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5yZXNpemVDb2xzLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlIChpbmRleCA+PSAwICYmIGRlbHRhWCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aCA9IGNvZXJjZVBpeGVsc0Zyb21Dc3NWYWx1ZSh0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmNvbEVsZW1lbnQuc3R5bGUud2lkdGgpO1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoID4gY3VycmVudFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoID4gY3VycmVudFdpZHRoICsgZGVsdGFYKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUoY3VycmVudFdpZHRoICsgZGVsdGFYKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFYID0gMDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVggLT0gdGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGggLSBjdXJyZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUodGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcENvbCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlbHRhWDtcbiAgICB9XG5cbiAgICByZXN0b3JlVG9wUm93cyhkZWx0YVk6IG51bWJlcikge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlc2l6ZVJvd3MubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgZGVsdGFZID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IHRoaXMucmVzaXplUm93c1tpbmRleF0ucm93RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemVSb3dzW2luZGV4XS5iYXNlSGVpZ2h0ID4gY3VycmVudEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLmJhc2VIZWlnaHQgPiBjdXJyZW50SGVpZ2h0ICsgZGVsdGFZKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplUm93c1tpbmRleF0ucm93RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBjb2VyY2VDc3NQaXhlbFZhbHVlKGN1cnJlbnRIZWlnaHQgKyBkZWx0YVkpO1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVkgPSAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbHRhWSAtPSB0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLmJhc2VIZWlnaHQgLSBjdXJyZW50SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLnJvd0VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gY29lcmNlQ3NzUGl4ZWxWYWx1ZSh0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLmJhc2VIZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcFJvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlbHRhWTtcbiAgICB9XG5cbiAgICByZXN0b3JlQm90dG9tUm93cyhkZWx0YVk6IG51bWJlcikge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlc2l6ZVJvd3MubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgZGVsdGFZIDwgMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEhlaWdodCA9IGNvZXJjZVBpeGVsc0Zyb21Dc3NWYWx1ZSh0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLnJvd0VsZW1lbnQuc3R5bGUuaGVpZ2h0KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc2l6ZVJvd3NbaW5kZXhdLmJhc2VIZWlnaHQgPiBjdXJyZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucmVzaXplUm93c1tpbmRleF0uYmFzZUhlaWdodCA+IGN1cnJlbnRIZWlnaHQgKyBNYXRoLmFicyhkZWx0YVkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplUm93c1tpbmRleF0ucm93RWxlbWVudC5zdHlsZS5oZWlnaHQgPSBjb2VyY2VDc3NQaXhlbFZhbHVlKGN1cnJlbnRIZWlnaHQgKyBNYXRoLmFicyhkZWx0YVkpKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFZID0gMDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVkgKz0gdGhpcy5yZXNpemVSb3dzW2luZGV4XS5iYXNlSGVpZ2h0IC0gY3VycmVudEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNpemVSb3dzW2luZGV4XS5yb3dFbGVtZW50LnN0eWxlLmhlaWdodCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUodGhpcy5yZXNpemVSb3dzW2luZGV4XS5iYXNlSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BSb3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWx0YVk7XG4gICAgfVxuXG4gICAgcmVzdG9yZVJpZ2h0Q29scyhkZWx0YVg6IG51bWJlcikge1xuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnJlc2l6ZUNvbHMubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgZGVsdGFYIDwgMCkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFdpZHRoID0gY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlKHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCk7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGggPiBjdXJyZW50V2lkdGgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXNpemVDb2xzW2luZGV4XS5iYXNlV2lkdGggPiBjdXJyZW50V2lkdGggKyBNYXRoLmFicyhkZWx0YVgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplQ29sc1tpbmRleF0uY29sRWxlbWVudC5zdHlsZS53aWR0aCA9IGNvZXJjZUNzc1BpeGVsVmFsdWUoY3VycmVudFdpZHRoICsgTWF0aC5hYnMoZGVsdGFYKSk7XG4gICAgICAgICAgICAgICAgICAgIGRlbHRhWCA9IDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFYICs9IHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoIC0gY3VycmVudFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2l6ZUNvbHNbaW5kZXhdLmNvbEVsZW1lbnQuc3R5bGUud2lkdGggPSBjb2VyY2VDc3NQaXhlbFZhbHVlKHRoaXMucmVzaXplQ29sc1tpbmRleF0uYmFzZVdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BDb2woKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkZWx0YVg7XG4gICAgfVxuXG4gICAgZ2V0U2Nyb2xsV2lkdGgoZGVsdGFYOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudGFibGVDb2xzKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29sc1RvdGFsV2lkdGgodGhpcy50YWJsZUNvbHMuY29scykgLSB0aGlzLnRhYmxlQ29scy5iYXNlV2lkdGggLSBNYXRoLmFicyhkZWx0YVgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QWRkVGFibGVIZWlnaHQoZGVsdGFZOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudGFibGVSb3dzKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Um93c1RvdGFsSGVpZ2h0KHRoaXMudGFibGVSb3dzLnJvd3MpIC0gdGhpcy50YWJsZVJvd3MuYmFzZUhlaWdodCAtIE1hdGguYWJzKGRlbHRhWSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1Jlc3RvcmluZyhkZWx0YVZhbHVlLCBpc1hBeGlzID0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNSZXNpemluZyhkZWx0YVZhbHVlLCBpc1hBeGlzKTtcbiAgICB9XG5cbiAgICBpc1Jlc2l6aW5nKGRlbHRhVmFsdWUsIGlzWEF4aXMgPSB0cnVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gdGhpcy5nZXREaXJlY3Rpb24oZGVsdGFWYWx1ZSwgaXNYQXhpcyk7XG4gICAgfVxuXG4gICAgaW5pdERpcmVjdGlvbihkZWx0YVZhbHVlOiBudW1iZXIsIGlzWEF4aXMgPSB0cnVlKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUNvbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZVJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gdGhpcy5nZXREaXJlY3Rpb24oZGVsdGFWYWx1ZSwgaXNYQXhpcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREaXJlY3Rpb24oZGVsdGFWYWx1ZSwgaXNYQXhpcyA9IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGlzWEF4aXMgPyAoZGVsdGFWYWx1ZSA+IDAgPyAncmlnaHQnIDogJ2xlZnQnKSA6IGRlbHRhVmFsdWUgPiAwID8gJ2JvdHRvbScgOiAndG9wJztcbiAgICB9XG5cbiAgICBwcml2YXRlIHBvcENvbCgpIHtcbiAgICAgICAgdGhpcy5yZXNpemVDb2xzLnBvcCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wUm93KCkge1xuICAgICAgICB0aGlzLnJlc2l6ZVJvd3MucG9wKCk7XG4gICAgfVxufVxuIl19
@@ -1,4 +1,4 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29sdW1uLXJlc2l6ZS9zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxvQkFBb0IsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUQUJMRV9TRUxFQ1RPUiA9ICcudGhlLXRhYmxlJztcclxuXHJcbmV4cG9ydCBjb25zdCBUQUJMRV9XUkFQUEVSX1NFTEVDVE9SID0gJy50aGUtdGFibGUtd3JhcHBlcic7XHJcblxyXG5leHBvcnQgY29uc3QgUkVTSVpFX09WRVJMQVlfU0VMRUNUT1IgPSAnLnRoZS10YWJsZS1yZXNpemUtb3ZlcmxheS10aHVtYic7XHJcbiJdfQ==
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,61 +1,61 @@
1
- import { Component, Input, HostBinding, HostListener } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "ngx-tethys/popover";
4
- import * as i2 from "ngx-tethys/action-menu";
5
- import * as i3 from "ngx-tethys/icon";
6
- import * as i4 from "@angular/common";
7
- export class TheContextMenuComponent {
8
- constructor(elementRef, thyPopoverRef) {
9
- this.elementRef = elementRef;
10
- this.thyPopoverRef = thyPopoverRef;
11
- this.menuEntities = [];
12
- this.wrap = true;
13
- }
14
- handleDocumentMouseDown(event) {
15
- if (!this.elementRef.nativeElement.contains(event.target) && event.button !== 2) {
16
- this.thyPopoverRef.close();
17
- }
18
- }
19
- handleMouseDown(event) {
20
- event.preventDefault();
21
- event.stopPropagation();
22
- }
23
- itemMousedown(event, entity) {
24
- event.preventDefault();
25
- this.actionHandle(entity);
26
- this.thyPopoverRef.close();
27
- }
28
- itemMouseleave(event, entity) {
29
- event.preventDefault();
30
- this.deactiveHandle(event, entity);
31
- }
32
- itemMouseenter(event, entity) {
33
- event.preventDefault();
34
- this.activeHandle(event, entity);
35
- }
36
- ngOnInit() { }
37
- }
38
- TheContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheContextMenuComponent, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component });
39
- TheContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TheContextMenuComponent, selector: "the-contextmenu", inputs: { menuEntities: "menuEntities", actionHandle: "actionHandle", activeHandle: "activeHandle", deactiveHandle: "deactiveHandle" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)", "mousedown": "handleMouseDown($event)" }, properties: { "class.the-overlay-menu-wrap": "this.wrap" } }, ngImport: i0, template: "<thy-action-menu>\r\n <ng-container *ngFor=\"let menuItem of menuEntities\">\r\n <a\r\n thyActionMenuItem\r\n href=\"javascript:;\"\r\n *ngIf=\"!menuItem.invisibility\"\r\n (mousedown)=\"itemMousedown($event, menuItem)\"\r\n (mouseenter)=\"itemMouseenter($event, menuItem)\"\r\n (mouseleave)=\"itemMouseleave($event, menuItem)\"\r\n >\r\n <span thyActionMenuItemIcon>\r\n <thy-icon\r\n *ngIf=\"menuItem.backgroundColor; else elseIcon\"\r\n [thyIconName]=\"menuItem.icon\"\r\n thyIconType=\"twotone\"\r\n [thyTwotoneColor]=\"menuItem.backgroundColor\"\r\n ></thy-icon>\r\n <ng-template #elseIcon>\r\n <thy-icon [thyIconName]=\"menuItem.icon\"></thy-icon>\r\n </ng-template>\r\n </span>\r\n <span thyActionMenuItemName>{{ menuItem.name }}</span>\r\n <span *ngIf=\"menuItem.extendIcon\" thyActionMenuItemExtendIcon>\r\n <thy-icon thyIconName=\"{{ menuItem.extendIcon }}\"></thy-icon>\r\n </span>\r\n </a>\r\n <thy-action-menu-divider *ngIf=\"menuItem.divider\"></thy-action-menu-divider>\r\n </ng-container>\r\n</thy-action-menu>\r\n", components: [{ type: i2.ThyActionMenuComponent, selector: "thy-action-menu", inputs: ["thyTheme", "thyWidth"] }, { type: i3.ThyIconComponent, selector: "thy-icon", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { type: i2.ThyActionMenuDividerComponent, selector: "thy-action-menu-divider", inputs: ["thyTitle", "thyType"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ThyActionMenuItemDirective, selector: "[thyActionMenuItem]", inputs: ["thyDisabled", "thyType"] }, { type: i2.ThyActionMenuItemIconDirective, selector: "[thyActionMenuItemIcon]" }, { type: i2.ThyActionMenuItemNameDirective, selector: "[thyActionMenuItemName]" }, { type: i2.ThyActionMenuItemExtendIconDirective, selector: "[thyActionMenuItemExtendIcon]" }] });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheContextMenuComponent, decorators: [{
41
- type: Component,
42
- args: [{ selector: 'the-contextmenu', template: "<thy-action-menu>\r\n <ng-container *ngFor=\"let menuItem of menuEntities\">\r\n <a\r\n thyActionMenuItem\r\n href=\"javascript:;\"\r\n *ngIf=\"!menuItem.invisibility\"\r\n (mousedown)=\"itemMousedown($event, menuItem)\"\r\n (mouseenter)=\"itemMouseenter($event, menuItem)\"\r\n (mouseleave)=\"itemMouseleave($event, menuItem)\"\r\n >\r\n <span thyActionMenuItemIcon>\r\n <thy-icon\r\n *ngIf=\"menuItem.backgroundColor; else elseIcon\"\r\n [thyIconName]=\"menuItem.icon\"\r\n thyIconType=\"twotone\"\r\n [thyTwotoneColor]=\"menuItem.backgroundColor\"\r\n ></thy-icon>\r\n <ng-template #elseIcon>\r\n <thy-icon [thyIconName]=\"menuItem.icon\"></thy-icon>\r\n </ng-template>\r\n </span>\r\n <span thyActionMenuItemName>{{ menuItem.name }}</span>\r\n <span *ngIf=\"menuItem.extendIcon\" thyActionMenuItemExtendIcon>\r\n <thy-icon thyIconName=\"{{ menuItem.extendIcon }}\"></thy-icon>\r\n </span>\r\n </a>\r\n <thy-action-menu-divider *ngIf=\"menuItem.divider\"></thy-action-menu-divider>\r\n </ng-container>\r\n</thy-action-menu>\r\n" }]
43
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThyPopoverRef }]; }, propDecorators: { menuEntities: [{
44
- type: Input
45
- }], actionHandle: [{
46
- type: Input
47
- }], activeHandle: [{
48
- type: Input
49
- }], deactiveHandle: [{
50
- type: Input
51
- }], wrap: [{
52
- type: HostBinding,
53
- args: ['class.the-overlay-menu-wrap']
54
- }], handleDocumentMouseDown: [{
55
- type: HostListener,
56
- args: ['document: mousedown', ['$event']]
57
- }], handleMouseDown: [{
58
- type: HostListener,
59
- args: ['mousedown', ['$event']]
60
- }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBYyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUWhHLE1BQU0sT0FBTyx1QkFBdUI7SUE2Q2hDLFlBQW1CLFVBQXNCLEVBQVUsYUFBcUQ7UUFBckYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUF3QztRQTNDeEcsaUJBQVksR0FBaUIsRUFBRSxDQUFDO1FBWWhDLFNBQUksR0FBRyxJQUFJLENBQUM7SUErQitGLENBQUM7SUE1QjVHLHVCQUF1QixDQUFDLEtBQWlCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQXFCLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1RixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUdELGVBQWUsQ0FBQyxLQUFpQjtRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUIsRUFBRSxNQUFrQjtRQUMvQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBaUIsRUFBRSxNQUFrQjtRQUNoRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFpQixFQUFFLE1BQWtCO1FBQ2hELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsUUFBUSxLQUFJLENBQUM7O29IQS9DSix1QkFBdUI7d0dBQXZCLHVCQUF1QixzWENScEMsNjBDQTZCQTsyRkRyQmEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNJLGlCQUFpQjs2SEFLM0IsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLElBQUk7c0JBREgsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBSTFDLHVCQUF1QjtzQkFEdEIsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRL0MsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcclxuaW1wb3J0IHsgTWVudUVudGl0eSB9IGZyb20gJy4uLy4uL3BsdWdpbnMvdGFibGUvdGFibGUudHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RoZS1jb250ZXh0bWVudScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ2NvbnRleHRtZW51LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGhlQ29udGV4dE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KClcclxuICAgIG1lbnVFbnRpdGllczogTWVudUVudGl0eVtdID0gW107XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGFjdGlvbkhhbmRsZTogKGVudGl0eTogTWVudUVudGl0eSkgPT4gdm9pZDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgYWN0aXZlSGFuZGxlOiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkgPT4gdm9pZDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZGVhY3RpdmVIYW5kbGU6IChldmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSA9PiB2b2lkO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGhlLW92ZXJsYXktbWVudS13cmFwJylcclxuICAgIHdyYXAgPSB0cnVlO1xyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OiBtb3VzZWRvd24nLCBbJyRldmVudCddKVxyXG4gICAgaGFuZGxlRG9jdW1lbnRNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgJiYgZXZlbnQuYnV0dG9uICE9PSAyKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxyXG4gICAgaGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBpdGVtTW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uSGFuZGxlKGVudGl0eSk7XHJcbiAgICAgICAgdGhpcy50aHlQb3BvdmVyUmVmLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXRlbU1vdXNlbGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5kZWFjdGl2ZUhhbmRsZShldmVudCwgZW50aXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBpdGVtTW91c2VlbnRlcihldmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB0aGlzLmFjdGl2ZUhhbmRsZShldmVudCwgZW50aXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSB0aHlQb3BvdmVyUmVmOiBUaHlQb3BvdmVyUmVmPFRoZUNvbnRleHRNZW51Q29tcG9uZW50Pikge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHt9XHJcbn1cclxuIiwiPHRoeS1hY3Rpb24tbWVudT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lbnVJdGVtIG9mIG1lbnVFbnRpdGllc1wiPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICAgIHRoeUFjdGlvbk1lbnVJdGVtXHJcbiAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIiFtZW51SXRlbS5pbnZpc2liaWxpdHlcIlxyXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIml0ZW1Nb3VzZWRvd24oJGV2ZW50LCBtZW51SXRlbSlcIlxyXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJpdGVtTW91c2VlbnRlcigkZXZlbnQsIG1lbnVJdGVtKVwiXHJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIml0ZW1Nb3VzZWxlYXZlKCRldmVudCwgbWVudUl0ZW0pXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIHRoeUFjdGlvbk1lbnVJdGVtSWNvbj5cclxuICAgICAgICAgICAgICAgIDx0aHktaWNvblxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudUl0ZW0uYmFja2dyb3VuZENvbG9yOyBlbHNlIGVsc2VJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGh5SWNvbk5hbWVdPVwibWVudUl0ZW0uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGh5SWNvblR5cGU9XCJ0d290b25lXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGh5VHdvdG9uZUNvbG9yXT1cIm1lbnVJdGVtLmJhY2tncm91bmRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICA+PC90aHktaWNvbj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJtZW51SXRlbS5pY29uXCI+PC90aHktaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gdGh5QWN0aW9uTWVudUl0ZW1OYW1lPnt7IG1lbnVJdGVtLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWVudUl0ZW0uZXh0ZW5kSWNvblwiIHRoeUFjdGlvbk1lbnVJdGVtRXh0ZW5kSWNvbj5cclxuICAgICAgICAgICAgICAgIDx0aHktaWNvbiB0aHlJY29uTmFtZT1cInt7IG1lbnVJdGVtLmV4dGVuZEljb24gfX1cIj48L3RoeS1pY29uPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDx0aHktYWN0aW9uLW1lbnUtZGl2aWRlciAqbmdJZj1cIm1lbnVJdGVtLmRpdmlkZXJcIj48L3RoeS1hY3Rpb24tbWVudS1kaXZpZGVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvdGh5LWFjdGlvbi1tZW51PlxyXG4iXX0=
1
+ import { Component, Input, HostBinding, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "ngx-tethys/popover";
4
+ import * as i2 from "ngx-tethys/action-menu";
5
+ import * as i3 from "ngx-tethys/icon";
6
+ import * as i4 from "@angular/common";
7
+ export class TheContextMenuComponent {
8
+ constructor(elementRef, thyPopoverRef) {
9
+ this.elementRef = elementRef;
10
+ this.thyPopoverRef = thyPopoverRef;
11
+ this.menuEntities = [];
12
+ this.wrap = true;
13
+ }
14
+ handleDocumentMouseDown(event) {
15
+ if (!this.elementRef.nativeElement.contains(event.target) && event.button !== 2) {
16
+ this.thyPopoverRef.close();
17
+ }
18
+ }
19
+ handleMouseDown(event) {
20
+ event.preventDefault();
21
+ event.stopPropagation();
22
+ }
23
+ itemMousedown(event, entity) {
24
+ event.preventDefault();
25
+ this.actionHandle(entity);
26
+ this.thyPopoverRef.close();
27
+ }
28
+ itemMouseleave(event, entity) {
29
+ event.preventDefault();
30
+ this.deactiveHandle(event, entity);
31
+ }
32
+ itemMouseenter(event, entity) {
33
+ event.preventDefault();
34
+ this.activeHandle(event, entity);
35
+ }
36
+ ngOnInit() { }
37
+ }
38
+ TheContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheContextMenuComponent, deps: [{ token: i0.ElementRef }, { token: i1.ThyPopoverRef }], target: i0.ɵɵFactoryTarget.Component });
39
+ TheContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: TheContextMenuComponent, selector: "the-contextmenu", inputs: { menuEntities: "menuEntities", actionHandle: "actionHandle", activeHandle: "activeHandle", deactiveHandle: "deactiveHandle" }, host: { listeners: { "document: mousedown": "handleDocumentMouseDown($event)", "mousedown": "handleMouseDown($event)" }, properties: { "class.the-overlay-menu-wrap": "this.wrap" } }, ngImport: i0, template: "<thy-action-menu>\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <a\n thyActionMenuItem\n href=\"javascript:;\"\n *ngIf=\"!menuItem.invisibility\"\n (mousedown)=\"itemMousedown($event, menuItem)\"\n (mouseenter)=\"itemMouseenter($event, menuItem)\"\n (mouseleave)=\"itemMouseleave($event, menuItem)\"\n >\n <span thyActionMenuItemIcon>\n <thy-icon\n *ngIf=\"menuItem.backgroundColor; else elseIcon\"\n [thyIconName]=\"menuItem.icon\"\n thyIconType=\"twotone\"\n [thyTwotoneColor]=\"menuItem.backgroundColor\"\n ></thy-icon>\n <ng-template #elseIcon>\n <thy-icon [thyIconName]=\"menuItem.icon\"></thy-icon>\n </ng-template>\n </span>\n <span thyActionMenuItemName>{{ menuItem.name }}</span>\n <span *ngIf=\"menuItem.extendIcon\" thyActionMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ menuItem.extendIcon }}\"></thy-icon>\n </span>\n </a>\n <thy-action-menu-divider *ngIf=\"menuItem.divider\"></thy-action-menu-divider>\n </ng-container>\n</thy-action-menu>\n", components: [{ type: i2.ThyActionMenuComponent, selector: "thy-action-menu", inputs: ["thyTheme", "thyWidth"] }, { type: i3.ThyIconComponent, selector: "thy-icon", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { type: i2.ThyActionMenuDividerComponent, selector: "thy-action-menu-divider", inputs: ["thyTitle", "thyType"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ThyActionMenuItemDirective, selector: "[thyActionMenuItem]", inputs: ["thyDisabled", "thyType"] }, { type: i2.ThyActionMenuItemIconDirective, selector: "[thyActionMenuItemIcon]" }, { type: i2.ThyActionMenuItemNameDirective, selector: "[thyActionMenuItemName]" }, { type: i2.ThyActionMenuItemExtendIconDirective, selector: "[thyActionMenuItemExtendIcon]" }] });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TheContextMenuComponent, decorators: [{
41
+ type: Component,
42
+ args: [{ selector: 'the-contextmenu', template: "<thy-action-menu>\n <ng-container *ngFor=\"let menuItem of menuEntities\">\n <a\n thyActionMenuItem\n href=\"javascript:;\"\n *ngIf=\"!menuItem.invisibility\"\n (mousedown)=\"itemMousedown($event, menuItem)\"\n (mouseenter)=\"itemMouseenter($event, menuItem)\"\n (mouseleave)=\"itemMouseleave($event, menuItem)\"\n >\n <span thyActionMenuItemIcon>\n <thy-icon\n *ngIf=\"menuItem.backgroundColor; else elseIcon\"\n [thyIconName]=\"menuItem.icon\"\n thyIconType=\"twotone\"\n [thyTwotoneColor]=\"menuItem.backgroundColor\"\n ></thy-icon>\n <ng-template #elseIcon>\n <thy-icon [thyIconName]=\"menuItem.icon\"></thy-icon>\n </ng-template>\n </span>\n <span thyActionMenuItemName>{{ menuItem.name }}</span>\n <span *ngIf=\"menuItem.extendIcon\" thyActionMenuItemExtendIcon>\n <thy-icon thyIconName=\"{{ menuItem.extendIcon }}\"></thy-icon>\n </span>\n </a>\n <thy-action-menu-divider *ngIf=\"menuItem.divider\"></thy-action-menu-divider>\n </ng-container>\n</thy-action-menu>\n" }]
43
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ThyPopoverRef }]; }, propDecorators: { menuEntities: [{
44
+ type: Input
45
+ }], actionHandle: [{
46
+ type: Input
47
+ }], activeHandle: [{
48
+ type: Input
49
+ }], deactiveHandle: [{
50
+ type: Input
51
+ }], wrap: [{
52
+ type: HostBinding,
53
+ args: ['class.the-overlay-menu-wrap']
54
+ }], handleDocumentMouseDown: [{
55
+ type: HostListener,
56
+ args: ['document: mousedown', ['$event']]
57
+ }], handleMouseDown: [{
58
+ type: HostListener,
59
+ args: ['mousedown', ['$event']]
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dG1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBYyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUWhHLE1BQU0sT0FBTyx1QkFBdUI7SUE2Q2hDLFlBQW1CLFVBQXNCLEVBQVUsYUFBcUQ7UUFBckYsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUF3QztRQTNDeEcsaUJBQVksR0FBaUIsRUFBRSxDQUFDO1FBWWhDLFNBQUksR0FBRyxJQUFJLENBQUM7SUErQitGLENBQUM7SUE1QjVHLHVCQUF1QixDQUFDLEtBQWlCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQXFCLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1RixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUdELGVBQWUsQ0FBQyxLQUFpQjtRQUM3QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBaUIsRUFBRSxNQUFrQjtRQUMvQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBaUIsRUFBRSxNQUFrQjtRQUNoRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFpQixFQUFFLE1BQWtCO1FBQ2hELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBSUQsUUFBUSxLQUFJLENBQUM7O29IQS9DSix1QkFBdUI7d0dBQXZCLHVCQUF1QixzWENScEMsbXhDQTZCQTsyRkRyQmEsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNJLGlCQUFpQjs2SEFLM0IsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixLQUFLO2dCQUlOLElBQUk7c0JBREgsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBSTFDLHVCQUF1QjtzQkFEdEIsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRL0MsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBNZW51RW50aXR5IH0gZnJvbSAnLi4vLi4vcGx1Z2lucy90YWJsZS90YWJsZS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWNvbnRleHRtZW51JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NvbnRleHRtZW51LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUaGVDb250ZXh0TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBtZW51RW50aXRpZXM6IE1lbnVFbnRpdHlbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25IYW5kbGU6IChlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHZvaWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGFjdGl2ZUhhbmRsZTogKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHZvaWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGRlYWN0aXZlSGFuZGxlOiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGVudGl0eTogTWVudUVudGl0eSkgPT4gdm9pZDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGhlLW92ZXJsYXktbWVudS13cmFwJylcbiAgICB3cmFwID0gdHJ1ZTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OiBtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZURvY3VtZW50TW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJiBldmVudC5idXR0b24gIT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaXRlbU1vdXNlZG93bihldmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuYWN0aW9uSGFuZGxlKGVudGl0eSk7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIGl0ZW1Nb3VzZWxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5kZWFjdGl2ZUhhbmRsZShldmVudCwgZW50aXR5KTtcbiAgICB9XG5cbiAgICBpdGVtTW91c2VlbnRlcihldmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuYWN0aXZlSGFuZGxlKGV2ZW50LCBlbnRpdHkpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHRoeVBvcG92ZXJSZWY6IFRoeVBvcG92ZXJSZWY8VGhlQ29udGV4dE1lbnVDb21wb25lbnQ+KSB7fVxuXG4gICAgbmdPbkluaXQoKSB7fVxufVxuIiwiPHRoeS1hY3Rpb24tbWVudT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51SXRlbSBvZiBtZW51RW50aXRpZXNcIj5cbiAgICAgICAgPGFcbiAgICAgICAgICAgIHRoeUFjdGlvbk1lbnVJdGVtXG4gICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgICAgICpuZ0lmPVwiIW1lbnVJdGVtLmludmlzaWJpbGl0eVwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIml0ZW1Nb3VzZWRvd24oJGV2ZW50LCBtZW51SXRlbSlcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaXRlbU1vdXNlZW50ZXIoJGV2ZW50LCBtZW51SXRlbSlcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaXRlbU1vdXNlbGVhdmUoJGV2ZW50LCBtZW51SXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiB0aHlBY3Rpb25NZW51SXRlbUljb24+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibWVudUl0ZW0uYmFja2dyb3VuZENvbG9yOyBlbHNlIGVsc2VJY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW3RoeUljb25OYW1lXT1cIm1lbnVJdGVtLmljb25cIlxuICAgICAgICAgICAgICAgICAgICB0aHlJY29uVHlwZT1cInR3b3RvbmVcIlxuICAgICAgICAgICAgICAgICAgICBbdGh5VHdvdG9uZUNvbG9yXT1cIm1lbnVJdGVtLmJhY2tncm91bmRDb2xvclwiXG4gICAgICAgICAgICAgICAgPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHRoeS1pY29uIFt0aHlJY29uTmFtZV09XCJtZW51SXRlbS5pY29uXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gdGh5QWN0aW9uTWVudUl0ZW1OYW1lPnt7IG1lbnVJdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1lbnVJdGVtLmV4dGVuZEljb25cIiB0aHlBY3Rpb25NZW51SXRlbUV4dGVuZEljb24+XG4gICAgICAgICAgICAgICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwie3sgbWVudUl0ZW0uZXh0ZW5kSWNvbiB9fVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgICAgPHRoeS1hY3Rpb24tbWVudS1kaXZpZGVyICpuZ0lmPVwibWVudUl0ZW0uZGl2aWRlclwiPjwvdGh5LWFjdGlvbi1tZW51LWRpdmlkZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3RoeS1hY3Rpb24tbWVudT5cbiJdfQ==