@talrace/ngx-noder 0.0.17 → 0.0.19

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 (305) hide show
  1. package/README.md +72 -9
  2. package/assets/i18n/noder.en.json +93 -0
  3. package/assets/i18n/noder.es.json +93 -0
  4. package/assets/i18n/noder.ru.json +93 -0
  5. package/fesm2022/talrace-ngx-noder.mjs +371 -298
  6. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  7. package/lib/apart-components/add-link-dialog/add-link-dialog.component.d.ts +1 -10
  8. package/lib/apart-components/editor-title/editor-title.component.d.ts +5 -3
  9. package/lib/apart-components/editor-toolbar/components/base-toolbar.component.d.ts +1 -1
  10. package/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.d.ts +3 -1
  11. package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +23 -23
  12. package/lib/editor/components/edges/edge.component.d.ts +10 -3
  13. package/lib/editor/components/edges/edges.d.ts +0 -2
  14. package/lib/editor/components/external-element/external.component.d.ts +1 -1
  15. package/lib/editor/components/external-element/models/external-element.model.d.ts +3 -3
  16. package/lib/editor/components/shared/abstract/base.component.d.ts +1 -1
  17. package/lib/editor/components/shared/abstract/destroy.component.d.ts +1 -1
  18. package/lib/editor/components/table/overlay-menu/overlay-menu.component.d.ts +3 -1
  19. package/lib/editor/editor.module.d.ts +2 -1
  20. package/lib/editor/gadgets/scrollbar.d.ts +1 -0
  21. package/lib/translate/noder-translate.loader.d.ts +11 -0
  22. package/package.json +3 -3
  23. package/public-api.d.ts +1 -0
  24. package/src/lib/apart-components/add-link-dialog/_add-link-dialog.theme.scss +3 -6
  25. package/src/lib/apart-components/add-link-mobile/_add-link-mobile.theme.scss +4 -7
  26. package/src/lib/apart-components/confirm-dialog/_theme.scss +6 -9
  27. package/src/lib/apart-components/editor-title/_editor-title.theme.scss +6 -9
  28. package/src/lib/apart-components/editor-title-mobile/_editor-title-mobile.theme.scss +9 -12
  29. package/src/lib/apart-components/editor-toolbar/_editor-toolbar.theme.scss +5 -8
  30. package/src/lib/apart-components/editor-toolbar/components/buttons/color-picker/_color-picker.theme.scss +1 -3
  31. package/src/lib/apart-components/editor-toolbar/components/buttons/font/_font.theme.scss +1 -3
  32. package/src/lib/apart-components/editor-toolbar/components/buttons/font-size/_font-size.theme.scss +2 -5
  33. package/src/lib/apart-components/editor-toolbar/components/buttons/font-style/_font-style.theme.scss +3 -6
  34. package/src/lib/apart-components/editor-toolbar/components/buttons/format/_format.theme.scss +3 -6
  35. package/src/lib/apart-components/editor-toolbar/components/buttons/numbering/_numbering.theme.scss +15 -18
  36. package/src/lib/apart-components/editor-toolbar/components/buttons/undo-redo/_undo-redo.theme.scss +2 -4
  37. package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns/_menu-dropdowns.theme.scss +5 -8
  38. package/src/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/_menu-dropdowns-mobile.theme.scss +6 -9
  39. package/src/lib/apart-components/editor-toolbar/components/toolbar-actions/_toolbar-actions.theme.scss +3 -6
  40. package/src/lib/apart-components/insert-table/_insert-table.theme.scss +6 -9
  41. package/src/lib/apart-components/insert-table-mobile/_insert-table-mobile.theme.scss +12 -15
  42. package/src/lib/apart-components/text-format-mobile/_text-format-mobile.theme.scss +22 -25
  43. package/src/lib/editor/components/_editor.theme.scss +25 -28
  44. package/esm2022/lib/apart-components/add-link-dialog/add-link-dialog.component.mjs +0 -73
  45. package/esm2022/lib/apart-components/add-link-dialog/validation.helper.mjs +0 -7
  46. package/esm2022/lib/apart-components/add-link-mobile/add-link-mobile.component.mjs +0 -47
  47. package/esm2022/lib/apart-components/confirm-dialog/confirm-dialog.component.mjs +0 -32
  48. package/esm2022/lib/apart-components/editor-search/editor-search-dialog.component.mjs +0 -64
  49. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +0 -92
  50. package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +0 -22
  51. package/esm2022/lib/apart-components/editor-toolbar/components/base-toolbar.component.mjs +0 -117
  52. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/color-picker/color-picker.component.mjs +0 -37
  53. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font/font.component.mjs +0 -49
  54. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-size/font-size.component.mjs +0 -90
  55. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/font-style/font-style.component.mjs +0 -81
  56. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/format/format.component.mjs +0 -28
  57. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.mjs +0 -22
  58. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/numbering/numbering.component.mjs +0 -53
  59. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/print/print.component.mjs +0 -18
  60. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/undo-redo/undo-redo.component.mjs +0 -27
  61. package/esm2022/lib/apart-components/editor-toolbar/components/buttons/zoom/zoom.component.mjs +0 -71
  62. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +0 -106
  63. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component.mjs +0 -24
  64. package/esm2022/lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component.mjs +0 -65
  65. package/esm2022/lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component.mjs +0 -84
  66. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +0 -90
  67. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +0 -127
  68. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/editor-toolbar-modes.const.mjs +0 -8
  69. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/numbering-templates.const.mjs +0 -1148
  70. package/esm2022/lib/apart-components/editor-toolbar/shared/constants/svg-icons.const.mjs +0 -157
  71. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/alignment.enum.mjs +0 -8
  72. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/editor-toolbar-mode.enum.mjs +0 -11
  73. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-template-type.enum.mjs +0 -16
  74. package/esm2022/lib/apart-components/editor-toolbar/shared/enums/numbering-type.enum.mjs +0 -6
  75. package/esm2022/lib/apart-components/editor-toolbar/shared/services/custom-icon.service.mjs +0 -34
  76. package/esm2022/lib/apart-components/editor-toolbar/shared/services/editor-toolbar.service.mjs +0 -26
  77. package/esm2022/lib/apart-components/editor-toolbar/shared/services/toolbar-core.service.mjs +0 -60
  78. package/esm2022/lib/apart-components/editor-toolbar/shared/toolbar-styles.helper.mjs +0 -48
  79. package/esm2022/lib/apart-components/insert-table/insert-table.component.mjs +0 -54
  80. package/esm2022/lib/apart-components/insert-table-mobile/insert-table-mobile.component.mjs +0 -84
  81. package/esm2022/lib/apart-components/text-format-mobile/text-format-mobile.component.mjs +0 -123
  82. package/esm2022/lib/editor/components/edges/edge-element.model.mjs +0 -38
  83. package/esm2022/lib/editor/components/edges/edge-type.enum.mjs +0 -6
  84. package/esm2022/lib/editor/components/edges/edge.component.mjs +0 -99
  85. package/esm2022/lib/editor/components/edges/edges.mjs +0 -142
  86. package/esm2022/lib/editor/components/edges/page-type.enum.mjs +0 -7
  87. package/esm2022/lib/editor/components/editor.component.mjs +0 -112
  88. package/esm2022/lib/editor/components/external-element/external-element.service.mjs +0 -6
  89. package/esm2022/lib/editor/components/external-element/external-elements.const.mjs +0 -4
  90. package/esm2022/lib/editor/components/external-element/external-sidenav.interface.mjs +0 -2
  91. package/esm2022/lib/editor/components/external-element/external.component.mjs +0 -41
  92. package/esm2022/lib/editor/components/external-element/models/element-data.model.mjs +0 -9
  93. package/esm2022/lib/editor/components/external-element/models/external-element.model.mjs +0 -11
  94. package/esm2022/lib/editor/components/external-element/models/external-sidenav.model.mjs +0 -15
  95. package/esm2022/lib/editor/components/image/components/image.component.mjs +0 -88
  96. package/esm2022/lib/editor/components/image/image-api.service.mjs +0 -36
  97. package/esm2022/lib/editor/components/image/input-handler/image-input.handler.mjs +0 -46
  98. package/esm2022/lib/editor/components/image/resizer/coordinate.mjs +0 -2
  99. package/esm2022/lib/editor/components/image/resizer/direction-wrapper.mjs +0 -19
  100. package/esm2022/lib/editor/components/image/resizer/direction.enum.mjs +0 -12
  101. package/esm2022/lib/editor/components/image/resizer/resizer.component.mjs +0 -106
  102. package/esm2022/lib/editor/components/image/resizer/size-delta.mjs +0 -2
  103. package/esm2022/lib/editor/components/image/resizer/size-wrapper.mjs +0 -52
  104. package/esm2022/lib/editor/components/image/size.mjs +0 -2
  105. package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +0 -60
  106. package/esm2022/lib/editor/components/shared/abstract/destroy.component.mjs +0 -18
  107. package/esm2022/lib/editor/components/shared/custom-component.hepler.mjs +0 -43
  108. package/esm2022/lib/editor/components/shared/custom-components.interface.mjs +0 -2
  109. package/esm2022/lib/editor/components/shared/custom-content-markers.const.mjs +0 -3
  110. package/esm2022/lib/editor/components/shared/custom-content.mjs +0 -2
  111. package/esm2022/lib/editor/components/shared/services/component.service.mjs +0 -52
  112. package/esm2022/lib/editor/components/shared/services/custom-content.service.mjs +0 -123
  113. package/esm2022/lib/editor/components/shared/services/overlay.service.mjs +0 -55
  114. package/esm2022/lib/editor/components/tab/tab.component.mjs +0 -44
  115. package/esm2022/lib/editor/components/tab/tab.helper.mjs +0 -6
  116. package/esm2022/lib/editor/components/table/cell-resizer/cell-resizer.mjs +0 -118
  117. package/esm2022/lib/editor/components/table/components/table-cell.component.mjs +0 -99
  118. package/esm2022/lib/editor/components/table/components/table.component.mjs +0 -412
  119. package/esm2022/lib/editor/components/table/enums/hrule.enum.mjs +0 -7
  120. package/esm2022/lib/editor/components/table/enums/reisizer-side.enum.mjs +0 -8
  121. package/esm2022/lib/editor/components/table/enums/vertical-merge.enum.mjs +0 -6
  122. package/esm2022/lib/editor/components/table/models/cell-data.model.mjs +0 -17
  123. package/esm2022/lib/editor/components/table/models/cell-resizer-parameters.model.mjs +0 -9
  124. package/esm2022/lib/editor/components/table/models/row-data.model.mjs +0 -8
  125. package/esm2022/lib/editor/components/table/models/selection-range.model.mjs +0 -7
  126. package/esm2022/lib/editor/components/table/overlay-menu/overlay-menu.component.mjs +0 -74
  127. package/esm2022/lib/editor/components/table/selection/table-selection.mjs +0 -383
  128. package/esm2022/lib/editor/content/constants/display-values.const.mjs +0 -8
  129. package/esm2022/lib/editor/content/constants/document-info.const.mjs +0 -13
  130. package/esm2022/lib/editor/content/constants/editor.const.mjs +0 -70
  131. package/esm2022/lib/editor/content/contents.interface.mjs +0 -2
  132. package/esm2022/lib/editor/content/display-data/display-data.mjs +0 -839
  133. package/esm2022/lib/editor/content/display-data/display-token.model.mjs +0 -12
  134. package/esm2022/lib/editor/content/display-data/format-ext.model.mjs +0 -10
  135. package/esm2022/lib/editor/content/display-data/general-properties.model.mjs +0 -11
  136. package/esm2022/lib/editor/content/display-data/indent.model.mjs +0 -9
  137. package/esm2022/lib/editor/content/display-data/line-info.model.mjs +0 -9
  138. package/esm2022/lib/editor/content/display-data/lines.mjs +0 -96
  139. package/esm2022/lib/editor/content/display-data/models/paragraph-info.model.mjs +0 -8
  140. package/esm2022/lib/editor/content/display-data/paragraph-info.interface.mjs +0 -2
  141. package/esm2022/lib/editor/content/display-data/paragraph.mjs +0 -56
  142. package/esm2022/lib/editor/content/display-data/text-line-info.mjs +0 -35
  143. package/esm2022/lib/editor/content/display-data/toolbar-styles.interface.mjs +0 -2
  144. package/esm2022/lib/editor/content/helpers/content-style.helper.mjs +0 -78
  145. package/esm2022/lib/editor/content/helpers/display-token.helper.mjs +0 -62
  146. package/esm2022/lib/editor/content/helpers/format.helper.mjs +0 -23
  147. package/esm2022/lib/editor/content/helpers/indexed-element.helper.mjs +0 -6
  148. package/esm2022/lib/editor/content/helpers/link.helper.mjs +0 -42
  149. package/esm2022/lib/editor/content/helpers/scaling.helper.mjs +0 -9
  150. package/esm2022/lib/editor/content/margin.model.mjs +0 -16
  151. package/esm2022/lib/editor/content/page-vertical-data.model.mjs +0 -9
  152. package/esm2022/lib/editor/content/vertical-alignment.enum.mjs +0 -11
  153. package/esm2022/lib/editor/core/event-emitting.mjs +0 -56
  154. package/esm2022/lib/editor/display/cell.interface.mjs +0 -2
  155. package/esm2022/lib/editor/display/event.helper.mjs +0 -18
  156. package/esm2022/lib/editor/display/layers/cursor.layer.mjs +0 -102
  157. package/esm2022/lib/editor/display/layers/layer.config.mjs +0 -2
  158. package/esm2022/lib/editor/display/layers/pages.layer.mjs +0 -109
  159. package/esm2022/lib/editor/display/layers/print.pages.layer.mjs +0 -7
  160. package/esm2022/lib/editor/display/layers/print.text.layer.mjs +0 -7
  161. package/esm2022/lib/editor/display/layers/selection.layer.mjs +0 -119
  162. package/esm2022/lib/editor/display/layers/text.layer.mjs +0 -226
  163. package/esm2022/lib/editor/display/print/print.helper.mjs +0 -40
  164. package/esm2022/lib/editor/display/print/print.renderer.mjs +0 -67
  165. package/esm2022/lib/editor/display/print/print.rendering.helper.mjs +0 -7
  166. package/esm2022/lib/editor/display/render-changes.interface.mjs +0 -2
  167. package/esm2022/lib/editor/display/render-changes.model.mjs +0 -25
  168. package/esm2022/lib/editor/display/renderer.mjs +0 -204
  169. package/esm2022/lib/editor/display/rendering.helper.mjs +0 -185
  170. package/esm2022/lib/editor/display/renderloop.mjs +0 -26
  171. package/esm2022/lib/editor/display/virtual.renderer.mjs +0 -284
  172. package/esm2022/lib/editor/display/visible-range.interface.mjs +0 -2
  173. package/esm2022/lib/editor/editor.module.mjs +0 -67
  174. package/esm2022/lib/editor/execution/distance.model.mjs +0 -10
  175. package/esm2022/lib/editor/execution/edit.session.mjs +0 -602
  176. package/esm2022/lib/editor/execution/editor.mjs +0 -1367
  177. package/esm2022/lib/editor/execution/helpers/dom.helper.mjs +0 -42
  178. package/esm2022/lib/editor/execution/helpers/format-style.helper.mjs +0 -73
  179. package/esm2022/lib/editor/execution/helpers/image.helpet.mjs +0 -12
  180. package/esm2022/lib/editor/execution/helpers/page.helper.mjs +0 -12
  181. package/esm2022/lib/editor/execution/helpers/paragraph-style.helper.mjs +0 -41
  182. package/esm2022/lib/editor/execution/helpers/paragraph.helper.mjs +0 -177
  183. package/esm2022/lib/editor/execution/regulator.service.mjs +0 -212
  184. package/esm2022/lib/editor/execution/targeting/cell-session-source.model.mjs +0 -18
  185. package/esm2022/lib/editor/execution/targeting/edge-session-source.model.mjs +0 -14
  186. package/esm2022/lib/editor/execution/targeting/main-session-source.model.mjs +0 -8
  187. package/esm2022/lib/editor/execution/targeting/session-source.model.mjs +0 -3
  188. package/esm2022/lib/editor/execution/targeting/session.model.mjs +0 -10
  189. package/esm2022/lib/editor/gadgets/font-metrics/editor-version.const.mjs +0 -2
  190. package/esm2022/lib/editor/gadgets/font-metrics/font-metric-size.interface.mjs +0 -2
  191. package/esm2022/lib/editor/gadgets/font-metrics/font-metrics.helper.mjs +0 -88
  192. package/esm2022/lib/editor/gadgets/history/operation-history.mjs +0 -208
  193. package/esm2022/lib/editor/gadgets/history/operation.type.mjs +0 -2
  194. package/esm2022/lib/editor/gadgets/history/operations-history-info.model.mjs +0 -7
  195. package/esm2022/lib/editor/gadgets/numbering/numbering-data.model.mjs +0 -9
  196. package/esm2022/lib/editor/gadgets/numbering/numbering-marker-type.enum.mjs +0 -12
  197. package/esm2022/lib/editor/gadgets/numbering/numbering-paragraph-style.model.mjs +0 -13
  198. package/esm2022/lib/editor/gadgets/numbering/numbering.helper.mjs +0 -149
  199. package/esm2022/lib/editor/gadgets/page-break/break-types.enum.mjs +0 -7
  200. package/esm2022/lib/editor/gadgets/page-break/break.helper.mjs +0 -18
  201. package/esm2022/lib/editor/gadgets/scrollbar.mjs +0 -81
  202. package/esm2022/lib/editor/gadgets/search/replace.interface.mjs +0 -2
  203. package/esm2022/lib/editor/gadgets/search/search-iteration.interface.mjs +0 -2
  204. package/esm2022/lib/editor/gadgets/search/search.mjs +0 -231
  205. package/esm2022/lib/editor/gadgets/unicode/unicode-chars.const.mjs +0 -5
  206. package/esm2022/lib/editor/gadgets/unicode/unicode.helper.mjs +0 -20
  207. package/esm2022/lib/editor/interaction/base.handler.mjs +0 -19
  208. package/esm2022/lib/editor/interaction/document.handler.mjs +0 -27
  209. package/esm2022/lib/editor/interaction/editor.service.mjs +0 -386
  210. package/esm2022/lib/editor/interaction/input.handler.mjs +0 -152
  211. package/esm2022/lib/editor/interaction/mode.enum.mjs +0 -7
  212. package/esm2022/lib/editor/interaction/mouse-button.enum.mjs +0 -7
  213. package/esm2022/lib/editor/interaction/mouse.handler.mjs +0 -50
  214. package/esm2022/lib/editor/interaction/text-input.mjs +0 -53
  215. package/esm2022/lib/editor/operations/commands.service.mjs +0 -20
  216. package/esm2022/lib/editor/operations/enums/command-type.enum.mjs +0 -32
  217. package/esm2022/lib/editor/operations/enums/target-type.enum.mjs +0 -7
  218. package/esm2022/lib/editor/operations/helpers/break-operations.helper.mjs +0 -9
  219. package/esm2022/lib/editor/operations/helpers/content-operations.helper.mjs +0 -15
  220. package/esm2022/lib/editor/operations/helpers/format-operations.helper.mjs +0 -85
  221. package/esm2022/lib/editor/operations/helpers/image-operations.helper.mjs +0 -19
  222. package/esm2022/lib/editor/operations/helpers/indexed-element-operations.helper.mjs +0 -43
  223. package/esm2022/lib/editor/operations/helpers/link-operations.helper.mjs +0 -136
  224. package/esm2022/lib/editor/operations/helpers/numbering-operations.helper.mjs +0 -55
  225. package/esm2022/lib/editor/operations/helpers/paragraph-operations.helper.mjs +0 -114
  226. package/esm2022/lib/editor/operations/helpers/tab-operations.helper.mjs +0 -16
  227. package/esm2022/lib/editor/operations/helpers/table-operations.helper.mjs +0 -374
  228. package/esm2022/lib/editor/operations/operations-helper.helper.mjs +0 -438
  229. package/esm2022/lib/editor/operations/save-commands.helper.mjs +0 -128
  230. package/esm2022/lib/editor/operations/target-operations.helper.mjs +0 -23
  231. package/esm2022/lib/editor/positioning/alignments.const.mjs +0 -8
  232. package/esm2022/lib/editor/positioning/content.helper.mjs +0 -45
  233. package/esm2022/lib/editor/positioning/cursor-paragraph.mjs +0 -13
  234. package/esm2022/lib/editor/positioning/cursor-position.interface.mjs +0 -2
  235. package/esm2022/lib/editor/positioning/insert-index.interface.mjs +0 -2
  236. package/esm2022/lib/editor/positioning/line-width.helper.mjs +0 -13
  237. package/esm2022/lib/editor/positioning/position.helper.mjs +0 -210
  238. package/esm2022/lib/editor/positioning/range.mjs +0 -94
  239. package/esm2022/lib/editor/positioning/selection.mjs +0 -351
  240. package/esm2022/lib/editor/revision.helper.mjs +0 -94
  241. package/esm2022/lib/models/generated/add-numbering.model.mjs +0 -8
  242. package/esm2022/lib/models/generated/apply-element-style.model.mjs +0 -8
  243. package/esm2022/lib/models/generated/apply-image-style.model.mjs +0 -8
  244. package/esm2022/lib/models/generated/apply-paragraph-style.model.mjs +0 -12
  245. package/esm2022/lib/models/generated/apply-text-style.model.mjs +0 -12
  246. package/esm2022/lib/models/generated/borders-style.model.mjs +0 -8
  247. package/esm2022/lib/models/generated/break.model.mjs +0 -8
  248. package/esm2022/lib/models/generated/cell.model.mjs +0 -12
  249. package/esm2022/lib/models/generated/column-section.model.mjs +0 -8
  250. package/esm2022/lib/models/generated/column.model.mjs +0 -8
  251. package/esm2022/lib/models/generated/command.model.mjs +0 -120
  252. package/esm2022/lib/models/generated/delete.model.mjs +0 -8
  253. package/esm2022/lib/models/generated/document-name.model.mjs +0 -8
  254. package/esm2022/lib/models/generated/document.model.mjs +0 -8
  255. package/esm2022/lib/models/generated/docx.model.mjs +0 -12
  256. package/esm2022/lib/models/generated/edge-target.model.mjs +0 -8
  257. package/esm2022/lib/models/generated/edge.model.mjs +0 -8
  258. package/esm2022/lib/models/generated/element.model.mjs +0 -8
  259. package/esm2022/lib/models/generated/file-source.model.mjs +0 -8
  260. package/esm2022/lib/models/generated/format.model.mjs +0 -12
  261. package/esm2022/lib/models/generated/heading.model.mjs +0 -16
  262. package/esm2022/lib/models/generated/image-data.model.mjs +0 -8
  263. package/esm2022/lib/models/generated/image.model.mjs +0 -12
  264. package/esm2022/lib/models/generated/insert-break.model.mjs +0 -8
  265. package/esm2022/lib/models/generated/insert-element.model.mjs +0 -12
  266. package/esm2022/lib/models/generated/insert-image.model.mjs +0 -12
  267. package/esm2022/lib/models/generated/insert-link.model.mjs +0 -12
  268. package/esm2022/lib/models/generated/insert-paragraph.model.mjs +0 -20
  269. package/esm2022/lib/models/generated/insert-styled-text.model.mjs +0 -12
  270. package/esm2022/lib/models/generated/insert-tab.model.mjs +0 -8
  271. package/esm2022/lib/models/generated/insert-table-columns.model.mjs +0 -8
  272. package/esm2022/lib/models/generated/insert-table-rows.model.mjs +0 -8
  273. package/esm2022/lib/models/generated/insert-table.model.mjs +0 -8
  274. package/esm2022/lib/models/generated/insert-text.model.mjs +0 -8
  275. package/esm2022/lib/models/generated/last-document-revision.model.mjs +0 -12
  276. package/esm2022/lib/models/generated/link-data.model.mjs +0 -8
  277. package/esm2022/lib/models/generated/link.model.mjs +0 -8
  278. package/esm2022/lib/models/generated/margins.model.mjs +0 -8
  279. package/esm2022/lib/models/generated/numbering-level.model.mjs +0 -12
  280. package/esm2022/lib/models/generated/numbering.model.mjs +0 -8
  281. package/esm2022/lib/models/generated/operation.model.mjs +0 -12
  282. package/esm2022/lib/models/generated/page-numbers.model.mjs +0 -8
  283. package/esm2022/lib/models/generated/paragraph-style.model.mjs +0 -8
  284. package/esm2022/lib/models/generated/paragraph.model.mjs +0 -12
  285. package/esm2022/lib/models/generated/remove-numberings.model.mjs +0 -8
  286. package/esm2022/lib/models/generated/remove-table-columns.model.mjs +0 -8
  287. package/esm2022/lib/models/generated/remove-table-rows.model.mjs +0 -8
  288. package/esm2022/lib/models/generated/replace-by-text.model.mjs +0 -8
  289. package/esm2022/lib/models/generated/replace.model.mjs +0 -44
  290. package/esm2022/lib/models/generated/resize-table-columns.model.mjs +0 -8
  291. package/esm2022/lib/models/generated/restore-numberings.model.mjs +0 -8
  292. package/esm2022/lib/models/generated/restore-paragraph-styles.model.mjs +0 -8
  293. package/esm2022/lib/models/generated/restore-table.model.mjs +0 -12
  294. package/esm2022/lib/models/generated/restore-text-styles.model.mjs +0 -8
  295. package/esm2022/lib/models/generated/restore.model.mjs +0 -8
  296. package/esm2022/lib/models/generated/revision.model.mjs +0 -12
  297. package/esm2022/lib/models/generated/row.model.mjs +0 -8
  298. package/esm2022/lib/models/generated/tab.model.mjs +0 -8
  299. package/esm2022/lib/models/generated/table-cell.model.mjs +0 -8
  300. package/esm2022/lib/models/generated/table.model.mjs +0 -12
  301. package/esm2022/lib/models/generated/target.model.mjs +0 -16
  302. package/esm2022/lib/models/generated/text-style.model.mjs +0 -8
  303. package/esm2022/public-api.mjs +0 -53
  304. package/esm2022/talrace-ngx-noder.mjs +0 -5
  305. package/lib/apart-components/editor-toolbar/components/buttons/heading/heading.component.d.ts +0 -8
@@ -1,412 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { BaseNoderComponent } from '../../shared/abstract/base.component';
3
- import { CellDataModel } from '../models/cell-data.model';
4
- import { CellResizer } from '../cell-resizer/cell-resizer';
5
- import { HRule } from '../enums/hrule.enum';
6
- import { NoderTableCellComponent } from './table-cell.component';
7
- import { RowDataModel } from '../models/row-data.model';
8
- import { ScalingHelper } from '../../../content/helpers/scaling.helper';
9
- import { TableSelection } from '../selection/table-selection';
10
- import { VerticalMerge } from '../enums/vertical-merge.enum';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../../shared/services/component.service";
13
- import * as i2 from "../../../interaction/editor.service";
14
- import * as i3 from "../../shared/services/overlay.service";
15
- import * as i4 from "../../../execution/regulator.service";
16
- export class NoderTableComponent extends BaseNoderComponent {
17
- get table() {
18
- return this.content;
19
- }
20
- set table(val) {
21
- this.content = val;
22
- }
23
- constructor(componentService, editorService, el, overlayService, regulatorService) {
24
- super();
25
- this.componentService = componentService;
26
- this.editorService = editorService;
27
- this.el = el;
28
- this.overlayService = overlayService;
29
- this.regulatorService = regulatorService;
30
- this.rowMatrix = [];
31
- this.splits = [];
32
- this.minRowHeight = 19;
33
- this.borderSize = 1;
34
- this.startResizing = (cellResizerParameters) => {
35
- const splitRowIndex = this.getSplitRowIndex(cellResizerParameters.rowIndex);
36
- this.resizer.resizerHeight = this.getRowsHeightBetweenSplits(splitRowIndex);
37
- this.resizer.startY = this.getRowsHeightBefore(splitRowIndex);
38
- this.resizer.splitRowIndex = splitRowIndex;
39
- this.resizer.tableInsertIndex = this.insertIndex;
40
- this.resizer.onStartResizing(cellResizerParameters);
41
- };
42
- this.cellHeightChanged = (rowIndex, cellIndex, height) => {
43
- const tableRow = this.table.rows[rowIndex];
44
- this.rowMatrix[rowIndex].cells[cellIndex].cellContentHeight = height < this.minRowHeight ? this.minRowHeight : height;
45
- if (tableRow.hRule === HRule.Exact) {
46
- return;
47
- }
48
- const rowIndexWithSplit = this.getIndexIncludingSplitRows(this.rowMatrix[rowIndex].row);
49
- const row = this.tableEl.rows[rowIndexWithSplit];
50
- const currentHeight = row.offsetHeight;
51
- const cellHeights = this.rowMatrix[rowIndex].cells.map(x => x.cellContentHeight);
52
- const maxCellContentHeigh = Math.max(...cellHeights, height);
53
- if (maxCellContentHeigh > currentHeight ||
54
- (maxCellContentHeigh < currentHeight && (!tableRow.height || tableRow.height <= maxCellContentHeigh))) {
55
- row.style.height = `${maxCellContentHeigh}px`;
56
- this.rowMatrix[rowIndex].height = maxCellContentHeigh;
57
- this.setTableHeight();
58
- this.editorService.changedTableSize(this.insertIndex, this.sessionId);
59
- }
60
- };
61
- }
62
- ngOnDestroy() {
63
- super.ngOnDestroy();
64
- this.tableSelection?.destroy();
65
- }
66
- initialize() {
67
- this.createTable();
68
- this.calculateProperties();
69
- this.createResizer();
70
- this.el.nativeElement.appendChild(this.resizerEl);
71
- this.el.nativeElement.appendChild(this.tableEl);
72
- this.tableSelection = new TableSelection(this.editorService, this.overlayService, this.regulatorService, this.rowMatrix, this.table, this.tableEl, this.regulatorService.getSession(this.sessionId));
73
- }
74
- getCellSession(row, column) {
75
- return this.rowMatrix[row].cells[column].componentRef.instance.session;
76
- }
77
- getCellWidth(tableRow, cellIndex, absoluteCellIndex) {
78
- if (tableRow.cells[cellIndex].width) {
79
- return tableRow.cells[cellIndex].width;
80
- }
81
- let width = 0;
82
- let i = absoluteCellIndex;
83
- const cellSpanCount = absoluteCellIndex + tableRow.cells[cellIndex].horizontalMerge;
84
- do {
85
- width += this.table.columns[i].width;
86
- i++;
87
- } while (i < cellSpanCount);
88
- return width;
89
- }
90
- getAdjustedWidth(tableRow, cellIndex, absoluteCellIndex) {
91
- const cellWidth = this.getCellWidth(tableRow, cellIndex, absoluteCellIndex);
92
- if (tableRow.cells[cellIndex].widthType === 'pct') {
93
- tableRow.cells[cellIndex].widthType = 'dxa';
94
- return (cellWidth * this._width) / 5000; // 5000 is equal to 100% in docx units of measurement
95
- }
96
- return ScalingHelper.scale(cellWidth, this.generalProperties.scalingRatio);
97
- }
98
- createResizer() {
99
- this.resizerEl = document.createElement('div');
100
- this.resizerEl.className = 'resizer-border';
101
- this.resizerEl.setAttribute('style', `display:none;`);
102
- this.resizer = new CellResizer(this.table, this.tableEl, this.editorService, this.resizerEl);
103
- this.resizer.sessionId = this.sessionId;
104
- }
105
- createTable() {
106
- this.tableEl = document.createElement('table');
107
- this.setColgroup();
108
- this.insertRows(this.table.rows.length, 0);
109
- this.fillTableCells();
110
- }
111
- updateTable() {
112
- const cellRefs = new Set(this.rowMatrix.flatMap(row => row.cells).map(cell => cell.componentRef));
113
- cellRefs.forEach(cellRef => this.componentService.removeComponent(cellRef));
114
- this.tableSelection.destroy();
115
- this.rowMatrix = [];
116
- this.tableEl.remove();
117
- this.initialize();
118
- }
119
- insertRows(rowsCount, targetIndex) {
120
- this._width = this.getTableWidth();
121
- let rowIndex = 0;
122
- while (rowIndex < rowsCount) {
123
- const targetRowIndex = targetIndex + rowIndex;
124
- const row = this.tableEl.insertRow(targetRowIndex);
125
- this.rowMatrix.splice(targetRowIndex, 0, new RowDataModel(row, 0, []));
126
- this.insertCells(targetRowIndex, this.table.rows[targetRowIndex].cells.length, 0);
127
- rowIndex++;
128
- }
129
- this.fillTableRow();
130
- }
131
- insertCells(rowIndex, cellsCount, targetIndex) {
132
- let modelTargetIndex = this.getModelTargetIndex(rowIndex, targetIndex);
133
- this.addCells(rowIndex, cellsCount, targetIndex, modelTargetIndex);
134
- }
135
- getModelTargetIndex(rowIndex, targetIndex) {
136
- let absoluteModelCellCount = 0;
137
- let modelTargetIndex = 0;
138
- while (absoluteModelCellCount < targetIndex) {
139
- absoluteModelCellCount += this.table.rows[rowIndex].cells[modelTargetIndex].horizontalMerge ?? 1;
140
- if (absoluteModelCellCount > targetIndex) {
141
- break;
142
- }
143
- modelTargetIndex++;
144
- }
145
- return modelTargetIndex;
146
- }
147
- addCells(rowIndex, cellsCount, targetIndex, modelTargetIndex) {
148
- let i = 0;
149
- let currentTargetIndex = targetIndex;
150
- while (i < cellsCount) {
151
- const modelCellIndex = modelTargetIndex + i;
152
- if (this.table.rows[rowIndex].cells[modelCellIndex].verticalMerge === VerticalMerge.Merge) {
153
- const inheritCellData = this.rowMatrix[rowIndex - 1].cells[currentTargetIndex];
154
- const count = this.table.rows[rowIndex].cells[modelCellIndex].horizontalMerge ?? 1;
155
- this.addAdditionalCells(rowIndex, currentTargetIndex, count, inheritCellData);
156
- currentTargetIndex += count;
157
- i++;
158
- continue;
159
- }
160
- const cell = this.tableEl.rows[rowIndex].insertCell(currentTargetIndex);
161
- const componentRef = this.componentService.generateAndAttachComponent(cell, NoderTableCellComponent, {
162
- table: this.table,
163
- cell: this.table.rows[rowIndex].cells[modelCellIndex],
164
- parentSessionId: this.sessionId,
165
- rowIndex,
166
- cellIndex: modelCellIndex,
167
- columnIndex: currentTargetIndex,
168
- width: this.getAdjustedWidth(this.table.rows[rowIndex], modelCellIndex, currentTargetIndex),
169
- generalProperties: this.generalProperties,
170
- heightChanged: this.cellHeightChanged,
171
- startResizing: this.startResizing
172
- });
173
- const cellContentHeight = componentRef.instance.getCellContentHeight();
174
- const cellData = new CellDataModel(cell, cellContentHeight, componentRef);
175
- this.rowMatrix[rowIndex].cells.splice(currentTargetIndex, 0, cellData);
176
- currentTargetIndex++;
177
- if (this.table.rows[rowIndex].cells[modelCellIndex].horizontalMerge > 1) {
178
- const count = this.table.rows[rowIndex].cells[modelCellIndex].horizontalMerge - 1;
179
- this.addAdditionalCells(rowIndex, currentTargetIndex, count, cellData);
180
- currentTargetIndex += count;
181
- }
182
- i++;
183
- }
184
- }
185
- addAdditionalCells(rowIndex, cellIndex, cellsCount, originalCellData) {
186
- for (let j = 0; j < cellsCount; j++) {
187
- const additionalCell = this.tableEl.rows[rowIndex].insertCell(cellIndex);
188
- additionalCell.classList.add('hidden-cell');
189
- const cellData = new CellDataModel(originalCellData.cell, originalCellData.cellContentHeight, originalCellData.componentRef);
190
- this.rowMatrix[rowIndex].cells.splice(cellIndex, 0, cellData);
191
- }
192
- }
193
- setColgroup() {
194
- const oldColGroups = this.tableEl.getElementsByTagName('colgroup');
195
- if (oldColGroups.length) {
196
- this.tableEl.removeChild(oldColGroups[0]);
197
- }
198
- const colgroup = document.createElement('colgroup');
199
- let i = 0;
200
- while (i < this.table.columns.length) {
201
- const col = document.createElement('col');
202
- const scaledWidth = ScalingHelper.scale(this.table.columns[i].width, this.generalProperties.scalingRatio);
203
- col.style.width = `${scaledWidth}px`;
204
- colgroup.appendChild(col);
205
- i++;
206
- }
207
- this.tableEl.insertAdjacentElement('afterbegin', colgroup);
208
- }
209
- fillTableRow() {
210
- for (let i = 0; i < this.table.rows.length; i++) {
211
- switch (this.table.rows[i].hRule) {
212
- case HRule.AtLeast: {
213
- const rowHeight = this.getRowHeight(i);
214
- this.tableEl.rows[i].style.minHeight = `${this.table.rows[i].height}px`;
215
- this.tableEl.rows[i].style.height = `${rowHeight}px`;
216
- this.rowMatrix[i].height = rowHeight;
217
- break;
218
- }
219
- case HRule.Exact:
220
- this.tableEl.rows[i].style.height = `${this.table.rows[i].height}px`;
221
- this.rowMatrix[i].height = this.table.rows[i].height;
222
- break;
223
- default: {
224
- const rowHeight = this.getRowHeight(i);
225
- const minRowHeight = this.table.rows[i].height ?? this.minRowHeight;
226
- const resultHeight = minRowHeight > rowHeight ? minRowHeight : rowHeight;
227
- this.tableEl.rows[i].style.height = `${resultHeight}px`;
228
- this.rowMatrix[i].height = resultHeight;
229
- break;
230
- }
231
- }
232
- }
233
- }
234
- getRowHeight(rowIndex) {
235
- const cellHeights = this.rowMatrix[rowIndex].cells.map((x, index) => {
236
- if (x.componentRef.instance.cell.verticalMerge === VerticalMerge.Restart) {
237
- const isLastVerticalMergedCell = x.cell !== this.rowMatrix[rowIndex + 1]?.cells[index].cell;
238
- if (isLastVerticalMergedCell) {
239
- let i = rowIndex - 1;
240
- let currentHeight = x.cellContentHeight;
241
- while (x.cell === this.rowMatrix[i]?.cells[index].cell) {
242
- currentHeight -= this.rowMatrix[i].height;
243
- i--;
244
- }
245
- return currentHeight;
246
- }
247
- return 0;
248
- }
249
- return x.cellContentHeight;
250
- });
251
- return Math.max(...cellHeights);
252
- }
253
- fillTableCells() {
254
- for (let i = 0; i < this.rowMatrix.length; i++) {
255
- for (let j = 0; j < this.rowMatrix[i].cells.length; j++) {
256
- if (this.rowMatrix[i - 1]?.cells[j]?.cell === this.rowMatrix[i].cells[j].cell ||
257
- this.rowMatrix[i].cells[j].cell === this.rowMatrix[i].cells[j - 1]?.cell ||
258
- this.rowMatrix[i].cells[j].componentRef.instance.cell.verticalMerge === VerticalMerge.Merge) {
259
- continue;
260
- }
261
- this.rowMatrix[i].cells[j].cell.colSpan = this.rowMatrix[i].cells[j].componentRef.instance.cell.horizontalMerge;
262
- this.rowMatrix[i].cells[j].cell.style.backgroundColor =
263
- this.rowMatrix[i].cells[j].componentRef.instance.cell.backgroundColor;
264
- this.setCellRowSpan(i, j);
265
- }
266
- }
267
- }
268
- setCellRowSpan(rowIndex, absoluteCellIndex) {
269
- this.rowMatrix[rowIndex].cells[absoluteCellIndex].cell.rowSpan = 1;
270
- if (this.rowMatrix[rowIndex].cells[absoluteCellIndex].componentRef.instance.cell.verticalMerge !==
271
- VerticalMerge.Restart) {
272
- return;
273
- }
274
- for (let i = rowIndex + 1; i < this.rowMatrix.length; i++) {
275
- if (this.rowMatrix[i].cells[absoluteCellIndex].cell === this.rowMatrix[rowIndex].cells[absoluteCellIndex].cell) {
276
- this.rowMatrix[rowIndex].cells[absoluteCellIndex].cell.rowSpan++;
277
- }
278
- else {
279
- break;
280
- }
281
- }
282
- }
283
- setTableHeight() {
284
- let bordersHeight = 0;
285
- let rowsHeight = 1;
286
- for (let row of this.rowMatrix) {
287
- rowsHeight += row.height;
288
- if (row.cells.some(x => !x.componentRef.instance.cell.verticalMerge)) {
289
- bordersHeight += this.borderSize;
290
- }
291
- }
292
- this._height = rowsHeight + bordersHeight;
293
- }
294
- processSplit(leftSpaceOnPage, spaceBetweenPagesContent, contentHeight) {
295
- this.removeSplits();
296
- if (leftSpaceOnPage >= this.height) {
297
- return { splitsCount: 0, tableHeight: this.height, leftHeight: 0 };
298
- }
299
- if (leftSpaceOnPage < this.rowMatrix[0].height) {
300
- return { splitsCount: 1, tableHeight: this.height, leftHeight: this.height };
301
- }
302
- return this.splitTable(leftSpaceOnPage, spaceBetweenPagesContent, contentHeight);
303
- }
304
- splitTable(leftSpaceOnPage, spaceBetweenPagesContent, contentHeight) {
305
- let leftHeight = 0, tableHeightWithSplits = this.height, rowIndex = 0;
306
- while (rowIndex < this.rowMatrix.length) {
307
- let { index, rowsHeight } = this.getRowIndexByHeight(rowIndex, leftSpaceOnPage);
308
- rowIndex = index;
309
- if (index === this.rowMatrix.length) {
310
- break;
311
- }
312
- leftHeight = this.rowMatrix
313
- .slice(index)
314
- .map(x => x.height)
315
- .reduce((partialSum, curr) => partialSum + curr + this.borderSize);
316
- const splitRowHeight = spaceBetweenPagesContent + leftSpaceOnPage - rowsHeight;
317
- this.createSplitRow(index + this.splits.length, splitRowHeight);
318
- this.splits.push(index + this.splits.length);
319
- tableHeightWithSplits += splitRowHeight;
320
- leftSpaceOnPage = contentHeight;
321
- }
322
- return {
323
- splitsCount: this.splits.length,
324
- tableHeight: tableHeightWithSplits,
325
- leftHeight
326
- };
327
- }
328
- getRowIndexByHeight(startIndex, height) {
329
- if (startIndex >= this.rowMatrix.length) {
330
- return { index: this.rowMatrix.length, rowsHeight: 0 };
331
- }
332
- let tableHeight = this.rowMatrix[startIndex].height + this.borderSize, i = startIndex;
333
- while (tableHeight < height) {
334
- tableHeight += this.rowMatrix[i + 1]?.height + this.borderSize;
335
- i++;
336
- }
337
- return { index: i, rowsHeight: tableHeight - this.rowMatrix[i]?.height };
338
- }
339
- createSplitRow(index, height) {
340
- this.tableEl.insertRow(index);
341
- this.tableEl.rows[index].style.height = `${height}px`;
342
- this.tableEl.rows[index].classList.add('split-row');
343
- }
344
- removeSplits() {
345
- this.splits = [];
346
- while (this.tableEl.querySelector('.split-row')) {
347
- const el = this.tableEl.querySelector('.split-row');
348
- el.remove();
349
- }
350
- }
351
- calculateProperties() {
352
- if (!this.tableEl) {
353
- return;
354
- }
355
- this.setTableHeight();
356
- }
357
- getTableWidth() {
358
- return this.table.columns.reduce((prev, next) => prev + next.width + this.borderSize, 1);
359
- }
360
- getSplitRowIndex(rowIndex) {
361
- return this.getIndexIncludingSplitRows(this.rowMatrix[rowIndex].row);
362
- }
363
- getIndexIncludingSplitRows(row) {
364
- return Array.from(this.tableEl.rows).indexOf(row);
365
- }
366
- getRowsHeightBefore(rowIndex) {
367
- let index = 0;
368
- for (const element of this.splits) {
369
- if (rowIndex < element) {
370
- break;
371
- }
372
- index = element + 1;
373
- }
374
- return this.getRowsHeight(0, index);
375
- }
376
- getRowsHeightBetweenSplits(rowIndex) {
377
- let startIndex = 0;
378
- let endIndex = this.tableEl.rows.length;
379
- for (const element of this.splits) {
380
- if (rowIndex < element) {
381
- endIndex = element;
382
- break;
383
- }
384
- startIndex = element + 1;
385
- }
386
- return this.getRowsHeight(startIndex, endIndex);
387
- }
388
- getRowsHeight(start, end) {
389
- let sum = 0;
390
- for (let i = start; i < end; i++) {
391
- sum += this.tableEl.rows[i].offsetHeight;
392
- }
393
- return sum;
394
- }
395
- updateCells() {
396
- const rows = this.rowMatrix.length;
397
- const cols = rows > 0 ? this.rowMatrix[0].cells.length : 0;
398
- for (let i = 0; i < rows; i++) {
399
- for (let j = 0; j < cols; j++) {
400
- const cell = this.rowMatrix[i].cells[j];
401
- cell.componentRef.instance.session.displayData.updateNextLineIndexes(0, cell.componentRef.instance.session.displayData.paragraphs.length - 1);
402
- }
403
- }
404
- }
405
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableComponent, deps: [{ token: i1.ComponentService }, { token: i2.EditorService }, { token: i0.ElementRef }, { token: i3.OverlayService }, { token: i4.RegulatorService }], target: i0.ɵɵFactoryTarget.Component }); }
406
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderTableComponent, selector: "app-nod-table", usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [":host{position:relative}:host::ng-deep table{position:relative;border-collapse:collapse;background:transparent;empty-cells:show;border-spacing:0;overflow:visible;table-layout:fixed}:host::ng-deep td{position:relative;vertical-align:top;border:1px solid #000;margin:0;padding:0;height:inherit}:host::ng-deep .hidden-cell{display:none;cursor:not-allowed}:host::ng-deep .resizer-border{position:absolute;border:solid .5px blue;z-index:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
407
- }
408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderTableComponent, decorators: [{
409
- type: Component,
410
- args: [{ selector: 'app-nod-table', template: '', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{position:relative}:host::ng-deep table{position:relative;border-collapse:collapse;background:transparent;empty-cells:show;border-spacing:0;overflow:visible;table-layout:fixed}:host::ng-deep td{position:relative;vertical-align:top;border:1px solid #000;margin:0;padding:0;height:inherit}:host::ng-deep .hidden-cell{display:none;cursor:not-allowed}:host::ng-deep .resizer-border{position:absolute;border:solid .5px blue;z-index:1}\n"] }]
411
- }], ctorParameters: () => [{ type: i1.ComponentService }, { type: i2.EditorService }, { type: i0.ElementRef }, { type: i3.OverlayService }, { type: i4.RegulatorService }] });
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7OztBQVE3RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQWtCO0lBQ3ZELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQXFCLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEdBQWU7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdkIsQ0FBQztJQWtCRCxZQUNZLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixFQUFjLEVBQ2QsY0FBOEIsRUFDOUIsZ0JBQWtDO1FBRTFDLEtBQUssRUFBRSxDQUFDO1FB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QyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQ2hFLENBQUMsRUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN2RSxDQUFDO2FBQ0w7U0FDSjtJQUNMLENBQUM7K0dBbGdCUSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw0RUFKbEIsRUFBRTs7NEZBSUgsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGVBQWUsWUFDZixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VOb2RlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hYnN0cmFjdC9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZWxsRGF0YU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2NlbGwtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBDZWxsUmVzaXplciB9IGZyb20gJy4uL2NlbGwtcmVzaXplci9jZWxsLXJlc2l6ZXInO1xuaW1wb3J0IHsgQ2VsbFJlc2l6ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvY2VsbC1yZXNpemVyLXBhcmFtZXRlcnMubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9jb21wb25lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi8uLi8uLi9leGVjdXRpb24vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IEhSdWxlIH0gZnJvbSAnLi4vZW51bXMvaHJ1bGUuZW51bSc7XG5pbXBvcnQgeyBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvb3ZlcmxheS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlZ3VsYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9leGVjdXRpb24vcmVndWxhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgUm93RGF0YU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Jvdy1kYXRhLm1vZGVsJztcbmltcG9ydCB7IFJvd01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yb3cubW9kZWwnO1xuaW1wb3J0IHsgU2NhbGluZ0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL2NvbnRlbnQvaGVscGVycy9zY2FsaW5nLmhlbHBlcic7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBUYWJsZVNlbGVjdGlvbiB9IGZyb20gJy4uL3NlbGVjdGlvbi90YWJsZS1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgVmVydGljYWxNZXJnZSB9IGZyb20gJy4uL2VudW1zL3ZlcnRpY2FsLW1lcmdlLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1ub2QtdGFibGUnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVyVGFibGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlTm9kZXJDb21wb25lbnQge1xuICAgIGdldCB0YWJsZSgpOiBUYWJsZU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGVudCBhcyBUYWJsZU1vZGVsO1xuICAgIH1cbiAgICBzZXQgdGFibGUodmFsOiBUYWJsZU1vZGVsKSB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHZhbDtcbiAgICB9XG5cbiAgICB0YWJsZVNlbGVjdGlvbjogVGFibGVTZWxlY3Rpb247XG5cbiAgICB0YWJsZUVsOiBIVE1MVGFibGVFbGVtZW50O1xuXG4gICAgcmVzaXplcjogQ2VsbFJlc2l6ZXI7XG5cbiAgICByZXNpemVyRWw6IEhUTUxEaXZFbGVtZW50O1xuXG4gICAgcm93TWF0cml4OiBSb3dEYXRhTW9kZWxbXSA9IFtdO1xuXG4gICAgc3BsaXRzOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgcmVhZG9ubHkgbWluUm93SGVpZ2h0ID0gMTk7XG5cbiAgICByZWFkb25seSBib3JkZXJTaXplID0gMTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudFNlcnZpY2U6IENvbXBvbmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5U2VydmljZTogT3ZlcmxheVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVndWxhdG9yU2VydmljZTogUmVndWxhdG9yU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLnRhYmxlU2VsZWN0aW9uPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVUYWJsZSgpO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVByb3BlcnRpZXMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVSZXNpemVyKCk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnJlc2l6ZXJFbCk7XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlRWwpO1xuICAgICAgICB0aGlzLnRhYmxlU2VsZWN0aW9uID0gbmV3IFRhYmxlU2VsZWN0aW9uKFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZSxcbiAgICAgICAgICAgIHRoaXMucmVndWxhdG9yU2VydmljZSxcbiAgICAgICAgICAgIHRoaXMucm93TWF0cml4LFxuICAgICAgICAgICAgdGhpcy50YWJsZSxcbiAgICAgICAgICAgIHRoaXMudGFibGVFbCxcbiAgICAgICAgICAgIHRoaXMucmVndWxhdG9yU2VydmljZS5nZXRTZXNzaW9uKHRoaXMuc2Vzc2lvbklkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldENlbGxTZXNzaW9uKHJvdzogbnVtYmVyLCBjb2x1bW46IG51bWJlcik6IEVkaXRTZXNzaW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm93TWF0cml4W3Jvd10uY2VsbHNbY29sdW1uXS5jb21wb25lbnRSZWYuaW5zdGFuY2Uuc2Vzc2lvbjtcbiAgICB9XG5cbiAgICBnZXRDZWxsV2lkdGgodGFibGVSb3c6IFJvd01vZGVsLCBjZWxsSW5kZXg6IG51bWJlciwgYWJzb2x1dGVDZWxsSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGlmICh0YWJsZVJvdy5jZWxsc1tjZWxsSW5kZXhdLndpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFibGVSb3cuY2VsbHNbY2VsbEluZGV4XS53aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB3aWR0aCA9IDA7XG4gICAgICAgIGxldCBpID0gYWJzb2x1dGVDZWxsSW5kZXg7XG4gICAgICAgIGNvbnN0IGNlbGxTcGFuQ291bnQgPSBhYnNvbHV0ZUNlbGxJbmRleCArIHRhYmxlUm93LmNlbGxzW2NlbGxJbmRleF0uaG9yaXpvbnRhbE1lcmdlO1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHdpZHRoICs9IHRoaXMudGFibGUuY29sdW1uc1tpXS53aWR0aDtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfSB3aGlsZSAoaSA8IGNlbGxTcGFuQ291bnQpO1xuXG4gICAgICAgIHJldHVybiB3aWR0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFkanVzdGVkV2lkdGgodGFibGVSb3c6IFJvd01vZGVsLCBjZWxsSW5kZXg6IG51bWJlciwgYWJzb2x1dGVDZWxsSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNlbGxXaWR0aCA9IHRoaXMuZ2V0Q2VsbFdpZHRoKHRhYmxlUm93LCBjZWxsSW5kZXgsIGFic29sdXRlQ2VsbEluZGV4KTtcblxuICAgICAgICBpZiAodGFibGVSb3cuY2VsbHNbY2VsbEluZGV4XS53aWR0aFR5cGUgPT09ICdwY3QnKSB7XG4gICAgICAgICAgICB0YWJsZVJvdy5jZWxsc1tjZWxsSW5kZXhdLndpZHRoVHlwZSA9ICdkeGEnO1xuICAgICAgICAgICAgcmV0dXJuIChjZWxsV2lkdGggKiB0aGlzLl93aWR0aCkgLyA1MDAwOyAvLyA1MDAwIGlzIGVxdWFsIHRvIDEwMCUgaW4gZG9jeCB1bml0cyBvZiBtZWFzdXJlbWVudFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFNjYWxpbmdIZWxwZXIuc2NhbGUoY2VsbFdpZHRoLCB0aGlzLmdlbmVyYWxQcm9wZXJ0aWVzLnNjYWxpbmdSYXRpbyk7XG4gICAgfVxuXG4gICAgY3JlYXRlUmVzaXplcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemVyRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5yZXNpemVyRWwuY2xhc3NOYW1lID0gJ3Jlc2l6ZXItYm9yZGVyJztcbiAgICAgICAgdGhpcy5yZXNpemVyRWwuc2V0QXR0cmlidXRlKCdzdHlsZScsIGBkaXNwbGF5Om5vbmU7YCk7XG4gICAgICAgIHRoaXMucmVzaXplciA9IG5ldyBDZWxsUmVzaXplcih0aGlzLnRhYmxlLCB0aGlzLnRhYmxlRWwsIHRoaXMuZWRpdG9yU2VydmljZSwgdGhpcy5yZXNpemVyRWwpO1xuICAgICAgICB0aGlzLnJlc2l6ZXIuc2Vzc2lvbklkID0gdGhpcy5zZXNzaW9uSWQ7XG4gICAgfVxuXG4gICAgY3JlYXRlVGFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RhYmxlJyk7XG4gICAgICAgIHRoaXMuc2V0Q29sZ3JvdXAoKTtcbiAgICAgICAgdGhpcy5pbnNlcnRSb3dzKHRoaXMudGFibGUucm93cy5sZW5ndGgsIDApO1xuICAgICAgICB0aGlzLmZpbGxUYWJsZUNlbGxzKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVGFibGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNlbGxSZWZzID0gbmV3IFNldCh0aGlzLnJvd01hdHJpeC5mbGF0TWFwKHJvdyA9PiByb3cuY2VsbHMpLm1hcChjZWxsID0+IGNlbGwuY29tcG9uZW50UmVmKSk7XG4gICAgICAgIGNlbGxSZWZzLmZvckVhY2goY2VsbFJlZiA9PiB0aGlzLmNvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KGNlbGxSZWYpKTtcbiAgICAgICAgdGhpcy50YWJsZVNlbGVjdGlvbi5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMucm93TWF0cml4ID0gW107XG4gICAgICAgIHRoaXMudGFibGVFbC5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuXG4gICAgaW5zZXJ0Um93cyhyb3dzQ291bnQ6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl93aWR0aCA9IHRoaXMuZ2V0VGFibGVXaWR0aCgpO1xuICAgICAgICBsZXQgcm93SW5kZXggPSAwO1xuXG4gICAgICAgIHdoaWxlIChyb3dJbmRleCA8IHJvd3NDb3VudCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Um93SW5kZXggPSB0YXJnZXRJbmRleCArIHJvd0luZGV4O1xuICAgICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50YWJsZUVsLmluc2VydFJvdyh0YXJnZXRSb3dJbmRleCk7XG4gICAgICAgICAgICB0aGlzLnJvd01hdHJpeC5zcGxpY2UodGFyZ2V0Um93SW5kZXgsIDAsIG5ldyBSb3dEYXRhTW9kZWwocm93LCAwLCBbXSkpO1xuICAgICAgICAgICAgdGhpcy5pbnNlcnRDZWxscyh0YXJnZXRSb3dJbmRleCwgdGhpcy50YWJsZS5yb3dzW3RhcmdldFJvd0luZGV4XS5jZWxscy5sZW5ndGgsIDApO1xuICAgICAgICAgICAgcm93SW5kZXgrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsbFRhYmxlUm93KCk7XG4gICAgfVxuXG4gICAgaW5zZXJ0Q2VsbHMocm93SW5kZXg6IG51bWJlciwgY2VsbHNDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGxldCBtb2RlbFRhcmdldEluZGV4ID0gdGhpcy5nZXRNb2RlbFRhcmdldEluZGV4KHJvd0luZGV4LCB0YXJnZXRJbmRleCk7XG4gICAgICAgIHRoaXMuYWRkQ2VsbHMocm93SW5kZXgsIGNlbGxzQ291bnQsIHRhcmdldEluZGV4LCBtb2RlbFRhcmdldEluZGV4KTtcbiAgICB9XG5cbiAgICBnZXRNb2RlbFRhcmdldEluZGV4KHJvd0luZGV4OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgYWJzb2x1dGVNb2RlbENlbGxDb3VudCA9IDA7XG4gICAgICAgIGxldCBtb2RlbFRhcmdldEluZGV4ID0gMDtcblxuICAgICAgICB3aGlsZSAoYWJzb2x1dGVNb2RlbENlbGxDb3VudCA8IHRhcmdldEluZGV4KSB7XG4gICAgICAgICAgICBhYnNvbHV0ZU1vZGVsQ2VsbENvdW50ICs9IHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxUYXJnZXRJbmRleF0uaG9yaXpvbnRhbE1lcmdlID8/IDE7XG5cbiAgICAgICAgICAgIGlmIChhYnNvbHV0ZU1vZGVsQ2VsbENvdW50ID4gdGFyZ2V0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW9kZWxUYXJnZXRJbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1vZGVsVGFyZ2V0SW5kZXg7XG4gICAgfVxuXG4gICAgYWRkQ2VsbHMocm93SW5kZXg6IG51bWJlciwgY2VsbHNDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyLCBtb2RlbFRhcmdldEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBsZXQgY3VycmVudFRhcmdldEluZGV4ID0gdGFyZ2V0SW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKGkgPCBjZWxsc0NvdW50KSB7XG4gICAgICAgICAgICBjb25zdCBtb2RlbENlbGxJbmRleCA9IG1vZGVsVGFyZ2V0SW5kZXggKyBpO1xuXG4gICAgICAgICAgICBpZiAoKHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxDZWxsSW5kZXhdLnZlcnRpY2FsTWVyZ2UgYXMgVmVydGljYWxNZXJnZSkgPT09IFZlcnRpY2FsTWVyZ2UuTWVyZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmhlcml0Q2VsbERhdGEgPSB0aGlzLnJvd01hdHJpeFtyb3dJbmRleCAtIDFdLmNlbGxzW2N1cnJlbnRUYXJnZXRJbmRleF07XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLnRhYmxlLnJvd3Nbcm93SW5kZXhdLmNlbGxzW21vZGVsQ2VsbEluZGV4XS5ob3Jpem9udGFsTWVyZ2UgPz8gMTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEFkZGl0aW9uYWxDZWxscyhyb3dJbmRleCwgY3VycmVudFRhcmdldEluZGV4LCBjb3VudCwgaW5oZXJpdENlbGxEYXRhKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0SW5kZXggKz0gY291bnQ7XG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjZWxsID0gdGhpcy50YWJsZUVsLnJvd3Nbcm93SW5kZXhdLmluc2VydENlbGwoY3VycmVudFRhcmdldEluZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50U2VydmljZS5nZW5lcmF0ZUFuZEF0dGFjaENvbXBvbmVudChjZWxsLCBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIHRhYmxlOiB0aGlzLnRhYmxlLFxuICAgICAgICAgICAgICAgIGNlbGw6IHRoaXMudGFibGUucm93c1tyb3dJbmRleF0uY2VsbHNbbW9kZWxDZWxsSW5kZXhdLFxuICAgICAgICAgICAgICAgIHBhcmVudFNlc3Npb25JZDogdGhpcy5zZXNzaW9uSWQsXG4gICAgICAgICAgICAgICAgcm93SW5kZXgsXG4gICAgICAgICAgICAgICAgY2VsbEluZGV4OiBtb2RlbENlbGxJbmRleCxcbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleDogY3VycmVudFRhcmdldEluZGV4LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLmdldEFkanVzdGVkV2lkdGgodGhpcy50YWJsZS5yb3dzW3Jvd0luZGV4XSwgbW9kZWxDZWxsSW5kZXgsIGN1cnJlbnRUYXJnZXRJbmRleCksXG4gICAgICAgICAgICAgICAgZ2VuZXJhbFByb3BlcnRpZXM6IHRoaXMuZ2VuZXJhbFByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgaGVpZ2h0Q2hhbmdlZDogdGhpcy5jZWxsSGVpZ2h0Q2hhbmdlZCxcbiAgICAgICAgICAgICAgICBzdGFydFJlc2l6aW5nOiB0aGlzLnN0YXJ0UmVzaXppbmdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgY2VsbENvbnRlbnRIZWlnaHQgPSBjb21wb25lbnRSZWYuaW5zdGFuY2UuZ2V0Q2VsbENvbnRlbnRIZWlnaHQoKTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxEYXRhID0gbmV3IENlbGxEYXRhTW9kZWwoY2VsbCwgY2VsbENvbnRlbnRIZWlnaHQsIGNvbXBvbmVudFJlZik7XG4gICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0uY2VsbHMuc3BsaWNlKGN1cnJlbnRUYXJnZXRJbmRleCwgMCwgY2VsbERhdGEpO1xuICAgICAgICAgICAgY3VycmVudFRhcmdldEluZGV4Kys7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLnJvd3Nbcm93SW5kZXhdLmNlbGxzW21vZGVsQ2VsbEluZGV4XS5ob3Jpem9udGFsTWVyZ2UgPiAxKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLnRhYmxlLnJvd3Nbcm93SW5kZXhdLmNlbGxzW21vZGVsQ2VsbEluZGV4XS5ob3Jpem9udGFsTWVyZ2UgLSAxO1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQWRkaXRpb25hbENlbGxzKHJvd0luZGV4LCBjdXJyZW50VGFyZ2V0SW5kZXgsIGNvdW50LCBjZWxsRGF0YSk7XG4gICAgICAgICAgICAgICAgY3VycmVudFRhcmdldEluZGV4ICs9IGNvdW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRBZGRpdGlvbmFsQ2VsbHMocm93SW5kZXg6IG51bWJlciwgY2VsbEluZGV4OiBudW1iZXIsIGNlbGxzQ291bnQ6IG51bWJlciwgb3JpZ2luYWxDZWxsRGF0YTogQ2VsbERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNlbGxzQ291bnQ7IGorKykge1xuICAgICAgICAgICAgY29uc3QgYWRkaXRpb25hbENlbGwgPSB0aGlzLnRhYmxlRWwucm93c1tyb3dJbmRleF0uaW5zZXJ0Q2VsbChjZWxsSW5kZXgpO1xuICAgICAgICAgICAgYWRkaXRpb25hbENlbGwuY2xhc3NMaXN0LmFkZCgnaGlkZGVuLWNlbGwnKTtcbiAgICAgICAgICAgIGNvbnN0IGNlbGxEYXRhID0gbmV3IENlbGxEYXRhTW9kZWwob3JpZ2luYWxDZWxsRGF0YS5jZWxsLCBvcmlnaW5hbENlbGxEYXRhLmNlbGxDb250ZW50SGVpZ2h0LCBvcmlnaW5hbENlbGxEYXRhLmNvbXBvbmVudFJlZik7XG4gICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0uY2VsbHMuc3BsaWNlKGNlbGxJbmRleCwgMCwgY2VsbERhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0Q29sZ3JvdXAoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9sZENvbEdyb3VwcyA9IHRoaXMudGFibGVFbC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY29sZ3JvdXAnKTtcblxuICAgICAgICBpZiAob2xkQ29sR3JvdXBzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50YWJsZUVsLnJlbW92ZUNoaWxkKG9sZENvbEdyb3Vwc1swXSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb2xncm91cCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvbGdyb3VwJyk7XG4gICAgICAgIGxldCBpID0gMDtcblxuICAgICAgICB3aGlsZSAoaSA8IHRoaXMudGFibGUuY29sdW1ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NvbCcpO1xuICAgICAgICAgICAgY29uc3Qgc2NhbGVkV2lkdGggPSBTY2FsaW5nSGVscGVyLnNjYWxlKHRoaXMudGFibGUuY29sdW1uc1tpXS53aWR0aCwgdGhpcy5nZW5lcmFsUHJvcGVydGllcy5zY2FsaW5nUmF0aW8pO1xuICAgICAgICAgICAgY29sLnN0eWxlLndpZHRoID0gYCR7c2NhbGVkV2lkdGh9cHhgO1xuICAgICAgICAgICAgY29sZ3JvdXAuYXBwZW5kQ2hpbGQoY29sKTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFibGVFbC5pbnNlcnRBZGphY2VudEVsZW1lbnQoJ2FmdGVyYmVnaW4nLCBjb2xncm91cCk7XG4gICAgfVxuXG4gICAgZmlsbFRhYmxlUm93KCk6IHZvaWQge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGFibGUucm93cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnRhYmxlLnJvd3NbaV0uaFJ1bGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEhSdWxlLkF0TGVhc3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93SGVpZ2h0ID0gdGhpcy5nZXRSb3dIZWlnaHQoaSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVFbC5yb3dzW2ldLnN0eWxlLm1pbkhlaWdodCA9IGAke3RoaXMudGFibGUucm93c1tpXS5oZWlnaHR9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRWwucm93c1tpXS5zdHlsZS5oZWlnaHQgPSBgJHtyb3dIZWlnaHR9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5oZWlnaHQgPSByb3dIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIEhSdWxlLkV4YWN0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRWwucm93c1tpXS5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLnRhYmxlLnJvd3NbaV0uaGVpZ2h0fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbaV0uaGVpZ2h0ID0gdGhpcy50YWJsZS5yb3dzW2ldLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dIZWlnaHQgPSB0aGlzLmdldFJvd0hlaWdodChpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWluUm93SGVpZ2h0ID0gdGhpcy50YWJsZS5yb3dzW2ldLmhlaWdodCA/PyB0aGlzLm1pblJvd0hlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0SGVpZ2h0ID0gbWluUm93SGVpZ2h0ID4gcm93SGVpZ2h0ID8gbWluUm93SGVpZ2h0IDogcm93SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlRWwucm93c1tpXS5zdHlsZS5oZWlnaHQgPSBgJHtyZXN1bHRIZWlnaHR9cHhgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5oZWlnaHQgPSByZXN1bHRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFJvd0hlaWdodChyb3dJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY2VsbEhlaWdodHMgPSB0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0uY2VsbHMubWFwKCh4LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKCh4LmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jZWxsLnZlcnRpY2FsTWVyZ2UgYXMgVmVydGljYWxNZXJnZSkgPT09IFZlcnRpY2FsTWVyZ2UuUmVzdGFydCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzTGFzdFZlcnRpY2FsTWVyZ2VkQ2VsbCA9IHguY2VsbCAhPT0gdGhpcy5yb3dNYXRyaXhbcm93SW5kZXggKyAxXT8uY2VsbHNbaW5kZXhdLmNlbGw7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNMYXN0VmVydGljYWxNZXJnZWRDZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpID0gcm93SW5kZXggLSAxO1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudEhlaWdodCA9IHguY2VsbENvbnRlbnRIZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHguY2VsbCA9PT0gdGhpcy5yb3dNYXRyaXhbaV0/LmNlbGxzW2luZGV4XS5jZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50SGVpZ2h0IC09IHRoaXMucm93TWF0cml4W2ldLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGktLTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50SGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geC5jZWxsQ29udGVudEhlaWdodDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLmNlbGxIZWlnaHRzKTtcbiAgICB9XG5cbiAgICBmaWxsVGFibGVDZWxscygpOiB2b2lkIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJvd01hdHJpeC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLnJvd01hdHJpeFtpXS5jZWxscy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbaSAtIDFdPy5jZWxsc1tqXT8uY2VsbCA9PT0gdGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbal0uY2VsbCB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXS5jZWxsID09PSB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqIC0gMV0/LmNlbGwgfHxcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMucm93TWF0cml4W2ldLmNlbGxzW2pdLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jZWxsLnZlcnRpY2FsTWVyZ2UgYXMgVmVydGljYWxNZXJnZSkgPT09IFZlcnRpY2FsTWVyZ2UuTWVyZ2VcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbal0uY2VsbC5jb2xTcGFuID0gdGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbal0uY29tcG9uZW50UmVmLmluc3RhbmNlLmNlbGwuaG9yaXpvbnRhbE1lcmdlO1xuICAgICAgICAgICAgICAgIHRoaXMucm93TWF0cml4W2ldLmNlbGxzW2pdLmNlbGwuc3R5bGUuYmFja2dyb3VuZENvbG9yID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbal0uY29tcG9uZW50UmVmLmluc3RhbmNlLmNlbGwuYmFja2dyb3VuZENvbG9yO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q2VsbFJvd1NwYW4oaSwgaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRDZWxsUm93U3Bhbihyb3dJbmRleDogbnVtYmVyLCBhYnNvbHV0ZUNlbGxJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxsc1thYnNvbHV0ZUNlbGxJbmRleF0uY2VsbC5yb3dTcGFuID0gMTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLmNlbGxzW2Fic29sdXRlQ2VsbEluZGV4XS5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2VsbC52ZXJ0aWNhbE1lcmdlIGFzIFZlcnRpY2FsTWVyZ2UpICE9PVxuICAgICAgICAgICAgVmVydGljYWxNZXJnZS5SZXN0YXJ0XG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IHJvd0luZGV4ICsgMTsgaSA8IHRoaXMucm93TWF0cml4Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yb3dNYXRyaXhbaV0uY2VsbHNbYWJzb2x1dGVDZWxsSW5kZXhdLmNlbGwgPT09IHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxsc1thYnNvbHV0ZUNlbGxJbmRleF0uY2VsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxsc1thYnNvbHV0ZUNlbGxJbmRleF0uY2VsbC5yb3dTcGFuKys7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGFibGVIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIGxldCBib3JkZXJzSGVpZ2h0ID0gMDtcbiAgICAgICAgbGV0IHJvd3NIZWlnaHQgPSAxO1xuXG4gICAgICAgIGZvciAobGV0IHJvdyBvZiB0aGlzLnJvd01hdHJpeCkge1xuICAgICAgICAgICAgcm93c0hlaWdodCArPSByb3cuaGVpZ2h0O1xuXG4gICAgICAgICAgICBpZiAocm93LmNlbGxzLnNvbWUoeCA9PiAheC5jb21wb25lbnRSZWYuaW5zdGFuY2UuY2VsbC52ZXJ0aWNhbE1lcmdlKSkge1xuICAgICAgICAgICAgICAgIGJvcmRlcnNIZWlnaHQgKz0gdGhpcy5ib3JkZXJTaXplO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gcm93c0hlaWdodCArIGJvcmRlcnNIZWlnaHQ7XG4gICAgfVxuXG4gICAgc3RhcnRSZXNpemluZyA9IChjZWxsUmVzaXplclBhcmFtZXRlcnM6IENlbGxSZXNpemVyUGFyYW1ldGVyc01vZGVsKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHNwbGl0Um93SW5kZXggPSB0aGlzLmdldFNwbGl0Um93SW5kZXgoY2VsbFJlc2l6ZXJQYXJhbWV0ZXJzLnJvd0luZGV4KTtcbiAgICAgICAgdGhpcy5yZXNpemVyLnJlc2l6ZXJIZWlnaHQgPSB0aGlzLmdldFJvd3NIZWlnaHRCZXR3ZWVuU3BsaXRzKHNwbGl0Um93SW5kZXgpO1xuICAgICAgICB0aGlzLnJlc2l6ZXIuc3RhcnRZID0gdGhpcy5nZXRSb3dzSGVpZ2h0QmVmb3JlKHNwbGl0Um93SW5kZXgpO1xuICAgICAgICB0aGlzLnJlc2l6ZXIuc3BsaXRSb3dJbmRleCA9IHNwbGl0Um93SW5kZXg7XG4gICAgICAgIHRoaXMucmVzaXplci50YWJsZUluc2VydEluZGV4ID0gdGhpcy5pbnNlcnRJbmRleDtcbiAgICAgICAgdGhpcy5yZXNpemVyLm9uU3RhcnRSZXNpemluZyhjZWxsUmVzaXplclBhcmFtZXRlcnMpO1xuICAgIH07XG5cbiAgICBwcm9jZXNzU3BsaXQoXG4gICAgICAgIGxlZnRTcGFjZU9uUGFnZTogbnVtYmVyLFxuICAgICAgICBzcGFjZUJldHdlZW5QYWdlc0NvbnRlbnQ6IG51bWJlcixcbiAgICAgICAgY29udGVudEhlaWdodDogbnVtYmVyXG4gICAgKTogeyBzcGxpdHNDb3VudDogbnVtYmVyOyB0YWJsZUhlaWdodDogbnVtYmVyOyBsZWZ0SGVpZ2h0OiBudW1iZXIgfSB7XG4gICAgICAgIHRoaXMucmVtb3ZlU3BsaXRzKCk7XG5cbiAgICAgICAgaWYgKGxlZnRTcGFjZU9uUGFnZSA+PSB0aGlzLmhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3BsaXRzQ291bnQ6IDAsIHRhYmxlSGVpZ2h0OiB0aGlzLmhlaWdodCwgbGVmdEhlaWdodDogMCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxlZnRTcGFjZU9uUGFnZSA8IHRoaXMucm93TWF0cml4WzBdLmhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgc3BsaXRzQ291bnQ6IDEsIHRhYmxlSGVpZ2h0OiB0aGlzLmhlaWdodCwgbGVmdEhlaWdodDogdGhpcy5oZWlnaHQgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnNwbGl0VGFibGUobGVmdFNwYWNlT25QYWdlLCBzcGFjZUJldHdlZW5QYWdlc0NvbnRlbnQsIGNvbnRlbnRIZWlnaHQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3BsaXRUYWJsZShcbiAgICAgICAgbGVmdFNwYWNlT25QYWdlOiBudW1iZXIsXG4gICAgICAgIHNwYWNlQmV0d2VlblBhZ2VzQ29udGVudDogbnVtYmVyLFxuICAgICAgICBjb250ZW50SGVpZ2h0OiBudW1iZXJcbiAgICApOiB7IHNwbGl0c0NvdW50OiBudW1iZXI7IHRhYmxlSGVpZ2h0OiBudW1iZXI7IGxlZnRIZWlnaHQ6IG51bWJlciB9IHtcbiAgICAgICAgbGV0IGxlZnRIZWlnaHQgPSAwLFxuICAgICAgICAgICAgdGFibGVIZWlnaHRXaXRoU3BsaXRzID0gdGhpcy5oZWlnaHQsXG4gICAgICAgICAgICByb3dJbmRleCA9IDA7XG4gICAgICAgIHdoaWxlIChyb3dJbmRleCA8IHRoaXMucm93TWF0cml4Lmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IHsgaW5kZXgsIHJvd3NIZWlnaHQgfSA9IHRoaXMuZ2V0Um93SW5kZXhCeUhlaWdodChyb3dJbmRleCwgbGVmdFNwYWNlT25QYWdlKTtcbiAgICAgICAgICAgIHJvd0luZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMucm93TWF0cml4Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZWZ0SGVpZ2h0ID0gdGhpcy5yb3dNYXRyaXhcbiAgICAgICAgICAgICAgICAuc2xpY2UoaW5kZXgpXG4gICAgICAgICAgICAgICAgLm1hcCh4ID0+IHguaGVpZ2h0KVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHBhcnRpYWxTdW0sIGN1cnIpID0+IHBhcnRpYWxTdW0gKyBjdXJyICsgdGhpcy5ib3JkZXJTaXplKTtcblxuICAgICAgICAgICAgY29uc3Qgc3BsaXRSb3dIZWlnaHQgPSBzcGFjZUJldHdlZW5QYWdlc0NvbnRlbnQgKyBsZWZ0U3BhY2VPblBhZ2UgLSByb3dzSGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVTcGxpdFJvdyhpbmRleCArIHRoaXMuc3BsaXRzLmxlbmd0aCwgc3BsaXRSb3dIZWlnaHQpO1xuICAgICAgICAgICAgdGhpcy5zcGxpdHMucHVzaChpbmRleCArIHRoaXMuc3BsaXRzLmxlbmd0aCk7XG4gICAgICAgICAgICB0YWJsZUhlaWdodFdpdGhTcGxpdHMgKz0gc3BsaXRSb3dIZWlnaHQ7XG4gICAgICAgICAgICBsZWZ0U3BhY2VPblBhZ2UgPSBjb250ZW50SGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNwbGl0c0NvdW50OiB0aGlzLnNwbGl0cy5sZW5ndGgsXG4gICAgICAgICAgICB0YWJsZUhlaWdodDogdGFibGVIZWlnaHRXaXRoU3BsaXRzLFxuICAgICAgICAgICAgbGVmdEhlaWdodFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Um93SW5kZXhCeUhlaWdodChzdGFydEluZGV4OiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogeyBpbmRleDogbnVtYmVyOyByb3dzSGVpZ2h0OiBudW1iZXIgfSB7XG4gICAgICAgIGlmIChzdGFydEluZGV4ID49IHRoaXMucm93TWF0cml4Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgaW5kZXg6IHRoaXMucm93TWF0cml4Lmxlbmd0aCwgcm93c0hlaWdodDogMCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRhYmxlSGVpZ2h0ID0gdGhpcy5yb3dNYXRyaXhbc3RhcnRJbmRleF0uaGVpZ2h0ICsgdGhpcy5ib3JkZXJTaXplLFxuICAgICAgICAgICAgaSA9IHN0YXJ0SW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKHRhYmxlSGVpZ2h0IDwgaGVpZ2h0KSB7XG4gICAgICAgICAgICB0YWJsZUhlaWdodCArPSB0aGlzLnJvd01hdHJpeFtpICsgMV0/LmhlaWdodCArIHRoaXMuYm9yZGVyU2l6ZTtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGluZGV4OiBpLCByb3dzSGVpZ2h0OiB0YWJsZUhlaWdodCAtIHRoaXMucm93TWF0cml4W2ldPy5oZWlnaHQgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVNwbGl0Um93KGluZGV4OiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVFbC5pbnNlcnRSb3coaW5kZXgpO1xuICAgICAgICB0aGlzLnRhYmxlRWwucm93c1tpbmRleF0uc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcbiAgICAgICAgdGhpcy50YWJsZUVsLnJvd3NbaW5kZXhdLmNsYXNzTGlzdC5hZGQoJ3NwbGl0LXJvdycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlU3BsaXRzKCkge1xuICAgICAgICB0aGlzLnNwbGl0cyA9IFtdO1xuICAgICAgICB3aGlsZSAodGhpcy50YWJsZUVsLnF1ZXJ5U2VsZWN0b3IoJy5zcGxpdC1yb3cnKSkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLnRhYmxlRWwucXVlcnlTZWxlY3RvcignLnNwbGl0LXJvdycpO1xuICAgICAgICAgICAgZWwucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYmxlRWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0VGFibGVIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRhYmxlV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGUuY29sdW1ucy5yZWR1Y2UoKHByZXYsIG5leHQpID0+IHByZXYgKyBuZXh0LndpZHRoICsgdGhpcy5ib3JkZXJTaXplLCAxKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNlbGxIZWlnaHRDaGFuZ2VkID0gKHJvd0luZGV4OiBudW1iZXIsIGNlbGxJbmRleDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZVJvdyA9IHRoaXMudGFibGUucm93c1tyb3dJbmRleF07XG4gICAgICAgIHRoaXMucm93TWF0cml4W3Jvd0luZGV4XS5jZWxsc1tjZWxsSW5kZXhdLmNlbGxDb250ZW50SGVpZ2h0ID0gaGVpZ2h0IDwgdGhpcy5taW5Sb3dIZWlnaHQgPyB0aGlzLm1pblJvd0hlaWdodCA6IGhlaWdodDtcblxuICAgICAgICBpZiAodGFibGVSb3cuaFJ1bGUgPT09IEhSdWxlLkV4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb3dJbmRleFdpdGhTcGxpdCA9IHRoaXMuZ2V0SW5kZXhJbmNsdWRpbmdTcGxpdFJvd3ModGhpcy5yb3dNYXRyaXhbcm93SW5kZXhdLnJvdyk7XG5cbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy50YWJsZUVsLnJvd3Nbcm93SW5kZXhXaXRoU3BsaXRdO1xuICAgICAgICBjb25zdCBjdXJyZW50SGVpZ2h0ID0gcm93Lm9mZnNldEhlaWdodDtcbiAgICAgICAgY29uc3QgY2VsbEhlaWdodHMgPSB0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0uY2VsbHMubWFwKHggPT4geC5jZWxsQ29udGVudEhlaWdodCk7XG4gICAgICAgIGNvbnN0IG1heENlbGxDb250ZW50SGVpZ2ggPSBNYXRoLm1heCguLi5jZWxsSGVpZ2h0cywgaGVpZ2h0KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBtYXhDZWxsQ29udGVudEhlaWdoID4gY3VycmVudEhlaWdodCB8fFxuICAgICAgICAgICAgKG1heENlbGxDb250ZW50SGVpZ2ggPCBjdXJyZW50SGVpZ2h0ICYmICghdGFibGVSb3cuaGVpZ2h0IHx8IHRhYmxlUm93LmhlaWdodCA8PSBtYXhDZWxsQ29udGVudEhlaWdoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByb3cuc3R5bGUuaGVpZ2h0ID0gYCR7bWF4Q2VsbENvbnRlbnRIZWlnaH1weGA7XG4gICAgICAgICAgICB0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0uaGVpZ2h0ID0gbWF4Q2VsbENvbnRlbnRIZWlnaDtcbiAgICAgICAgICAgIHRoaXMuc2V0VGFibGVIZWlnaHQoKTtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VkVGFibGVTaXplKHRoaXMuaW5zZXJ0SW5kZXgsIHRoaXMuc2Vzc2lvbklkKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIGdldFNwbGl0Um93SW5kZXgocm93SW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbmRleEluY2x1ZGluZ1NwbGl0Um93cyh0aGlzLnJvd01hdHJpeFtyb3dJbmRleF0ucm93KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEluZGV4SW5jbHVkaW5nU3BsaXRSb3dzKHJvdzogSFRNTFRhYmxlUm93RWxlbWVudCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMudGFibGVFbC5yb3dzKS5pbmRleE9mKHJvdyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRSb3dzSGVpZ2h0QmVmb3JlKHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5zcGxpdHMpIHtcbiAgICAgICAgICAgIGlmIChyb3dJbmRleCA8IGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5kZXggPSBlbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvd3NIZWlnaHQoMCwgaW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Um93c0hlaWdodEJldHdlZW5TcGxpdHMocm93SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBzdGFydEluZGV4ID0gMDtcbiAgICAgICAgbGV0IGVuZEluZGV4ID0gdGhpcy50YWJsZUVsLnJvd3MubGVuZ3RoO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5zcGxpdHMpIHtcbiAgICAgICAgICAgIGlmIChyb3dJbmRleCA8IGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBlbmRJbmRleCA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0YXJ0SW5kZXggPSBlbGVtZW50ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvd3NIZWlnaHQoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Um93c0hlaWdodChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBzdW0gPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgICAgICAgc3VtICs9IHRoaXMudGFibGVFbC5yb3dzW2ldLm9mZnNldEhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdW07XG4gICAgfVxuXG4gICAgdXBkYXRlQ2VsbHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSB0aGlzLnJvd01hdHJpeC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGNvbHMgPSByb3dzID4gMCA/IHRoaXMucm93TWF0cml4WzBdLmNlbGxzLmxlbmd0aCA6IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93czsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbHM7IGorKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGwgPSB0aGlzLnJvd01hdHJpeFtpXS5jZWxsc1tqXTtcbiAgICAgICAgICAgICAgICBjZWxsLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZXNzaW9uLmRpc3BsYXlEYXRhLnVwZGF0ZU5leHRMaW5lSW5kZXhlcyhcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgY2VsbC5jb21wb25lbnRSZWYuaW5zdGFuY2Uuc2Vzc2lvbi5kaXNwbGF5RGF0YS5wYXJhZ3JhcGhzLmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,7 +0,0 @@
1
- export var HRule;
2
- (function (HRule) {
3
- HRule[HRule["Auto"] = 0] = "Auto";
4
- HRule[HRule["AtLeast"] = 1] = "AtLeast";
5
- HRule[HRule["Exact"] = 2] = "Exact";
6
- })(HRule || (HRule = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHJ1bGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL3RhYmxlL2VudW1zL2hydWxlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksS0FJWDtBQUpELFdBQVksS0FBSztJQUNiLGlDQUFJLENBQUE7SUFDSix1Q0FBTyxDQUFBO0lBQ1AsbUNBQUssQ0FBQTtBQUNULENBQUMsRUFKVyxLQUFLLEtBQUwsS0FBSyxRQUloQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEhSdWxlIHtcbiAgICBBdXRvLFxuICAgIEF0TGVhc3QsXG4gICAgRXhhY3Rcbn1cbiJdfQ==
@@ -1,8 +0,0 @@
1
- export var ResizerSide;
2
- (function (ResizerSide) {
3
- ResizerSide[ResizerSide["Left"] = 0] = "Left";
4
- ResizerSide[ResizerSide["Top"] = 1] = "Top";
5
- ResizerSide[ResizerSide["Right"] = 2] = "Right";
6
- ResizerSide[ResizerSide["Bottom"] = 3] = "Bottom";
7
- })(ResizerSide || (ResizerSide = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVpc2l6ZXItc2lkZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbXBvbmVudHMvdGFibGUvZW51bXMvcmVpc2l6ZXItc2lkZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDbkIsNkNBQUksQ0FBQTtJQUNKLDJDQUFHLENBQUE7SUFDSCwrQ0FBSyxDQUFBO0lBQ0wsaURBQU0sQ0FBQTtBQUNWLENBQUMsRUFMVyxXQUFXLEtBQVgsV0FBVyxRQUt0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFJlc2l6ZXJTaWRlIHtcbiAgICBMZWZ0LFxuICAgIFRvcCxcbiAgICBSaWdodCxcbiAgICBCb3R0b21cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export var VerticalMerge;
2
- (function (VerticalMerge) {
3
- VerticalMerge["Restart"] = "restart";
4
- VerticalMerge["Merge"] = "merge";
5
- })(VerticalMerge || (VerticalMerge = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtbWVyZ2UuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliL2VkaXRvci9jb21wb25lbnRzL3RhYmxlL2VudW1zL3ZlcnRpY2FsLW1lcmdlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFHWDtBQUhELFdBQVksYUFBYTtJQUNyQixvQ0FBbUIsQ0FBQTtJQUNuQixnQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFZlcnRpY2FsTWVyZ2Uge1xuICAgIFJlc3RhcnQgPSAncmVzdGFydCcsXG4gICAgTWVyZ2UgPSAnbWVyZ2UnXG59XG4iXX0=
@@ -1,17 +0,0 @@
1
- export class CellDataModel {
2
- constructor(cell, cellContentHeight, componentRef) {
3
- this.cell = cell;
4
- this.cellContentHeight = cellContentHeight;
5
- this.componentRef = componentRef;
6
- }
7
- highlightCell() {
8
- this.componentRef.instance.isHighlighted = true;
9
- }
10
- removeHighlightCell() {
11
- this.componentRef.instance.isHighlighted = false;
12
- }
13
- disableEditorSelection() {
14
- this.componentRef.instance.disableEditorSelection();
15
- }
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbXBvbmVudHMvdGFibGUvbW9kZWxzL2NlbGwtZGF0YS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUNXLElBQTBCLEVBQzFCLGlCQUF5QixFQUN6QixZQUFtRDtRQUZuRCxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUMxQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFDekIsaUJBQVksR0FBWixZQUFZLENBQXVDO0lBQzNELENBQUM7SUFFRyxhQUFhO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFFTSxzQkFBc0I7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTm9kZXJUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3RhYmxlLWNlbGwuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIENlbGxEYXRhTW9kZWwge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNlbGw6IEhUTUxUYWJsZUNlbGxFbGVtZW50LFxuICAgICAgICBwdWJsaWMgY2VsbENvbnRlbnRIZWlnaHQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPE5vZGVyVGFibGVDZWxsQ29tcG9uZW50PlxuICAgICkge31cblxuICAgIHB1YmxpYyBoaWdobGlnaHRDZWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5pc0hpZ2hsaWdodGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlSGlnaGxpZ2h0Q2VsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuaXNIaWdobGlnaHRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNhYmxlRWRpdG9yU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5kaXNhYmxlRWRpdG9yU2VsZWN0aW9uKCk7XG4gICAgfVxufVxuIl19
@@ -1,9 +0,0 @@
1
- export class CellResizerParametersModel {
2
- constructor(columnIndex, rowIndex, cellIndex, cellSide) {
3
- this.columnIndex = columnIndex;
4
- this.rowIndex = rowIndex;
5
- this.cellIndex = cellIndex;
6
- this.cellSide = cellSide;
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC1yZXNpemVyLXBhcmFtZXRlcnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy90YWJsZS9tb2RlbHMvY2VsbC1yZXNpemVyLXBhcmFtZXRlcnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDBCQUEwQjtJQUduQyxZQUEwQixXQUFtQixFQUFTLFFBQWdCLEVBQVMsU0FBaUIsRUFBUyxRQUFxQjtRQUFwRyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtJQUFHLENBQUM7Q0FDckkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNpemVyU2lkZSB9IGZyb20gJy4uL2VudW1zL3JlaXNpemVyLXNpZGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBDZWxsUmVzaXplclBhcmFtZXRlcnNNb2RlbCB7XG4gICAgcHVibGljIGRpc3RhbmNlOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIGNvbHVtbkluZGV4OiBudW1iZXIsIHB1YmxpYyByb3dJbmRleDogbnVtYmVyLCBwdWJsaWMgY2VsbEluZGV4OiBudW1iZXIsIHB1YmxpYyBjZWxsU2lkZTogUmVzaXplclNpZGUpIHt9XG59XG4iXX0=
@@ -1,8 +0,0 @@
1
- export class RowDataModel {
2
- constructor(row, height, cells) {
3
- this.row = row;
4
- this.height = height;
5
- this.cells = cells;
6
- }
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvY29tcG9uZW50cy90YWJsZS9tb2RlbHMvcm93LWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFBMEIsR0FBd0IsRUFBUyxNQUFjLEVBQVMsS0FBc0I7UUFBOUUsUUFBRyxHQUFILEdBQUcsQ0FBcUI7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBaUI7SUFBRyxDQUFDO0NBQy9HIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2VsbERhdGFNb2RlbCB9IGZyb20gJy4vY2VsbC1kYXRhLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFJvd0RhdGFNb2RlbCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByb3c6IEhUTUxUYWJsZVJvd0VsZW1lbnQsIHB1YmxpYyBoZWlnaHQ6IG51bWJlciwgcHVibGljIGNlbGxzOiBDZWxsRGF0YU1vZGVsW10pIHt9XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- export class SelectionRangeModel {
2
- constructor(rowIndexes, cellIndexes) {
3
- this.rowIndexes = rowIndexes;
4
- this.cellIndexes = cellIndexes;
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXJhbmdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvZWRpdG9yL2NvbXBvbmVudHMvdGFibGUvbW9kZWxzL3NlbGVjdGlvbi1yYW5nZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQ1csVUFBb0QsRUFDcEQsV0FBcUQ7UUFEckQsZUFBVSxHQUFWLFVBQVUsQ0FBMEM7UUFDcEQsZ0JBQVcsR0FBWCxXQUFXLENBQTBDO0lBQzdELENBQUM7Q0FDUCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTZWxlY3Rpb25SYW5nZU1vZGVsIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByb3dJbmRleGVzOiB7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlciB9LFxuICAgICAgICBwdWJsaWMgY2VsbEluZGV4ZXM6IHsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyIH1cbiAgICApIHt9XG59XG4iXX0=