@talrace/ngx-noder 0.0.2

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 (515) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +274 -0
  3. package/esm2022/lib/+shared/abstract/base-api.service.mjs +99 -0
  4. package/esm2022/lib/+shared/abstract/observer.component.mjs +24 -0
  5. package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +28 -0
  6. package/esm2022/lib/+shared/constants/default-file-name.const.mjs +2 -0
  7. package/esm2022/lib/+shared/constants/paginator-sizes.const.mjs +3 -0
  8. package/esm2022/lib/+shared/editor/core/base/event-emitting.mjs +71 -0
  9. package/esm2022/lib/+shared/editor/core/components/edges/edge-type.enum.mjs +6 -0
  10. package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +100 -0
  11. package/esm2022/lib/+shared/editor/core/components/edges/edges.mjs +104 -0
  12. package/esm2022/lib/+shared/editor/core/constants/alignments.const.mjs +8 -0
  13. package/esm2022/lib/+shared/editor/core/constants/clipboardEventTypes.const.mjs +6 -0
  14. package/esm2022/lib/+shared/editor/core/constants/content-style-change.const.mjs +15 -0
  15. package/esm2022/lib/+shared/editor/core/constants/display-values.const.mjs +8 -0
  16. package/esm2022/lib/+shared/editor/core/constants/document-info.const.mjs +13 -0
  17. package/esm2022/lib/+shared/editor/core/constants/editor-version.const.mjs +2 -0
  18. package/esm2022/lib/+shared/editor/core/constants/editor.const.mjs +62 -0
  19. package/esm2022/lib/+shared/editor/core/constants/unicode-chars.const.mjs +5 -0
  20. package/esm2022/lib/+shared/editor/core/document.mjs +134 -0
  21. package/esm2022/lib/+shared/editor/core/edit.session.mjs +1102 -0
  22. package/esm2022/lib/+shared/editor/core/editor.mjs +1279 -0
  23. package/esm2022/lib/+shared/editor/core/enums/break-types.enum.mjs +7 -0
  24. package/esm2022/lib/+shared/editor/core/enums/hrule.enum.mjs +7 -0
  25. package/esm2022/lib/+shared/editor/core/enums/mouse-button.enum.mjs +7 -0
  26. package/esm2022/lib/+shared/editor/core/enums/numbering-marker-type.enum.mjs +12 -0
  27. package/esm2022/lib/+shared/editor/core/enums/page-type.enum.mjs +7 -0
  28. package/esm2022/lib/+shared/editor/core/enums/vertical-alignment.enum.mjs +11 -0
  29. package/esm2022/lib/+shared/editor/core/helpers/content-style.helper.mjs +156 -0
  30. package/esm2022/lib/+shared/editor/core/helpers/delta.helper.mjs +18 -0
  31. package/esm2022/lib/+shared/editor/core/helpers/dom.helper.mjs +42 -0
  32. package/esm2022/lib/+shared/editor/core/helpers/event.helper.mjs +18 -0
  33. package/esm2022/lib/+shared/editor/core/helpers/font-metrics.helper.mjs +88 -0
  34. package/esm2022/lib/+shared/editor/core/helpers/format-style.helper.mjs +72 -0
  35. package/esm2022/lib/+shared/editor/core/helpers/line-width.helper.mjs +13 -0
  36. package/esm2022/lib/+shared/editor/core/helpers/numbering.helper.mjs +83 -0
  37. package/esm2022/lib/+shared/editor/core/helpers/page.helper.mjs +12 -0
  38. package/esm2022/lib/+shared/editor/core/helpers/paragraph-style.helper.mjs +41 -0
  39. package/esm2022/lib/+shared/editor/core/helpers/paragraph.helper.mjs +132 -0
  40. package/esm2022/lib/+shared/editor/core/helpers/position.helper.mjs +191 -0
  41. package/esm2022/lib/+shared/editor/core/helpers/print.rendering.helper.mjs +7 -0
  42. package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +186 -0
  43. package/esm2022/lib/+shared/editor/core/helpers/unicode.helper.mjs +20 -0
  44. package/esm2022/lib/+shared/editor/core/interfaces/cell.interface.mjs +2 -0
  45. package/esm2022/lib/+shared/editor/core/interfaces/cursor-position.interface.mjs +2 -0
  46. package/esm2022/lib/+shared/editor/core/interfaces/font-metric-size.interface.mjs +2 -0
  47. package/esm2022/lib/+shared/editor/core/interfaces/layer.config.mjs +2 -0
  48. package/esm2022/lib/+shared/editor/core/interfaces/paragraph-info.interface.mjs +2 -0
  49. package/esm2022/lib/+shared/editor/core/interfaces/render-changes.interface.mjs +2 -0
  50. package/esm2022/lib/+shared/editor/core/interfaces/replace.interface.mjs +2 -0
  51. package/esm2022/lib/+shared/editor/core/interfaces/search-iteration.interface.mjs +2 -0
  52. package/esm2022/lib/+shared/editor/core/interfaces/toolbar-styles.interface.mjs +2 -0
  53. package/esm2022/lib/+shared/editor/core/interfaces/visible-line-info.interface.mjs +2 -0
  54. package/esm2022/lib/+shared/editor/core/interfaces/visible-range.interface.mjs +2 -0
  55. package/esm2022/lib/+shared/editor/core/keyboard/text-input.mjs +53 -0
  56. package/esm2022/lib/+shared/editor/core/layers/cursor.layer.mjs +103 -0
  57. package/esm2022/lib/+shared/editor/core/layers/edges.layer.mjs +99 -0
  58. package/esm2022/lib/+shared/editor/core/layers/lines.mjs +96 -0
  59. package/esm2022/lib/+shared/editor/core/layers/pages.layer.mjs +106 -0
  60. package/esm2022/lib/+shared/editor/core/layers/print.edges.layer.mjs +7 -0
  61. package/esm2022/lib/+shared/editor/core/layers/print.pages.layer.mjs +7 -0
  62. package/esm2022/lib/+shared/editor/core/layers/print.text.layer.mjs +7 -0
  63. package/esm2022/lib/+shared/editor/core/layers/renderloop.mjs +26 -0
  64. package/esm2022/lib/+shared/editor/core/layers/scrollbar.mjs +100 -0
  65. package/esm2022/lib/+shared/editor/core/layers/selection.layer.mjs +115 -0
  66. package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +124 -0
  67. package/esm2022/lib/+shared/editor/core/models/display-token.model.mjs +12 -0
  68. package/esm2022/lib/+shared/editor/core/models/distance.model.mjs +10 -0
  69. package/esm2022/lib/+shared/editor/core/models/edge-element.model.mjs +9 -0
  70. package/esm2022/lib/+shared/editor/core/models/format-ext.model.mjs +10 -0
  71. package/esm2022/lib/+shared/editor/core/models/indent.model.mjs +9 -0
  72. package/esm2022/lib/+shared/editor/core/models/line-info.model.mjs +9 -0
  73. package/esm2022/lib/+shared/editor/core/models/margin.model.mjs +16 -0
  74. package/esm2022/lib/+shared/editor/core/models/numbering-data.model.mjs +9 -0
  75. package/esm2022/lib/+shared/editor/core/models/render-changes.model.mjs +25 -0
  76. package/esm2022/lib/+shared/editor/core/paging/page-vertical-data.model.mjs +9 -0
  77. package/esm2022/lib/+shared/editor/core/paging/pages.wrap.mjs +219 -0
  78. package/esm2022/lib/+shared/editor/core/paging/paragraph.mjs +52 -0
  79. package/esm2022/lib/+shared/editor/core/paging/text-line-info.mjs +34 -0
  80. package/esm2022/lib/+shared/editor/core/point.mjs +13 -0
  81. package/esm2022/lib/+shared/editor/core/print.renderer.mjs +72 -0
  82. package/esm2022/lib/+shared/editor/core/range.mjs +94 -0
  83. package/esm2022/lib/+shared/editor/core/renderer.mjs +217 -0
  84. package/esm2022/lib/+shared/editor/core/search.mjs +231 -0
  85. package/esm2022/lib/+shared/editor/core/virtual.renderer.mjs +356 -0
  86. package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +35 -0
  87. package/esm2022/lib/+shared/editor/custom-components/external-element/external-element.service.mjs +6 -0
  88. package/esm2022/lib/+shared/editor/custom-components/external-element/external-elements.const.mjs +4 -0
  89. package/esm2022/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.mjs +2 -0
  90. package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +41 -0
  91. package/esm2022/lib/+shared/editor/custom-components/external-element/models/element-data.model.mjs +9 -0
  92. package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-element.model.mjs +10 -0
  93. package/esm2022/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.mjs +15 -0
  94. package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +87 -0
  95. package/esm2022/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.mjs +38 -0
  96. package/esm2022/lib/+shared/editor/custom-components/image/interfaces/size.mjs +2 -0
  97. package/esm2022/lib/+shared/editor/custom-components/image/resizer/coordinate.mjs +2 -0
  98. package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.mjs +19 -0
  99. package/esm2022/lib/+shared/editor/custom-components/image/resizer/direction.enum.mjs +12 -0
  100. package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +106 -0
  101. package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-delta.mjs +2 -0
  102. package/esm2022/lib/+shared/editor/custom-components/image/resizer/size-wrapper.mjs +52 -0
  103. package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +14 -0
  104. package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +57 -0
  105. package/esm2022/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.mjs +3 -0
  106. package/esm2022/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.mjs +43 -0
  107. package/esm2022/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.mjs +2 -0
  108. package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +64 -0
  109. package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +120 -0
  110. package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +55 -0
  111. package/esm2022/lib/+shared/editor/custom-components/shared/types/custom-content.mjs +2 -0
  112. package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +43 -0
  113. package/esm2022/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.mjs +118 -0
  114. package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +95 -0
  115. package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +293 -0
  116. package/esm2022/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.mjs +8 -0
  117. package/esm2022/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.mjs +6 -0
  118. package/esm2022/lib/+shared/editor/custom-components/table/models/cell-data.model.mjs +18 -0
  119. package/esm2022/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.mjs +9 -0
  120. package/esm2022/lib/+shared/editor/custom-components/table/models/row-data.model.mjs +8 -0
  121. package/esm2022/lib/+shared/editor/custom-components/table/models/selection-range.model.mjs +7 -0
  122. package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +74 -0
  123. package/esm2022/lib/+shared/editor/custom-components/table/selection/table-selection.mjs +358 -0
  124. package/esm2022/lib/+shared/editor/editor.component.mjs +103 -0
  125. package/esm2022/lib/+shared/editor/editor.module.mjs +85 -0
  126. package/esm2022/lib/+shared/editor/execution/models/cell-session-source.model.mjs +19 -0
  127. package/esm2022/lib/+shared/editor/execution/models/edge-session-source.model.mjs +15 -0
  128. package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +11 -0
  129. package/esm2022/lib/+shared/editor/execution/models/main-session-source.model.mjs +8 -0
  130. package/esm2022/lib/+shared/editor/execution/models/session-source.model.mjs +3 -0
  131. package/esm2022/lib/+shared/editor/execution/models/session.model.mjs +10 -0
  132. package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +193 -0
  133. package/esm2022/lib/+shared/editor/helpers/break.helper.mjs +18 -0
  134. package/esm2022/lib/+shared/editor/helpers/content.helper.mjs +30 -0
  135. package/esm2022/lib/+shared/editor/helpers/format.helper.mjs +23 -0
  136. package/esm2022/lib/+shared/editor/helpers/indexed-element.helper.mjs +6 -0
  137. package/esm2022/lib/+shared/editor/helpers/tab.helper.mjs +6 -0
  138. package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +309 -0
  139. package/esm2022/lib/+shared/editor/interaction/input.handler.mjs +160 -0
  140. package/esm2022/lib/+shared/editor/interaction/mouse.handler.mjs +49 -0
  141. package/esm2022/lib/+shared/editor/interfaces/contents.interface.mjs +2 -0
  142. package/esm2022/lib/+shared/editor/interfaces/insert-index.interface.mjs +2 -0
  143. package/esm2022/lib/+shared/editor/operation-history/operation-history.mjs +184 -0
  144. package/esm2022/lib/+shared/editor/operation-history/operation.type.mjs +2 -0
  145. package/esm2022/lib/+shared/editor/operation-history/operations-history-info.model.mjs +7 -0
  146. package/esm2022/lib/+shared/editor/operations/enums/command-type.enum.mjs +31 -0
  147. package/esm2022/lib/+shared/editor/operations/enums/target-type.enum.mjs +7 -0
  148. package/esm2022/lib/+shared/editor/operations/helpers/break-operations.helper.mjs +9 -0
  149. package/esm2022/lib/+shared/editor/operations/helpers/content-operations.helper.mjs +15 -0
  150. package/esm2022/lib/+shared/editor/operations/helpers/format-operations.helper.mjs +56 -0
  151. package/esm2022/lib/+shared/editor/operations/helpers/image-operations.helper.mjs +19 -0
  152. package/esm2022/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.mjs +43 -0
  153. package/esm2022/lib/+shared/editor/operations/helpers/link-operations.helper.mjs +28 -0
  154. package/esm2022/lib/+shared/editor/operations/helpers/numbering-operations.helper.mjs +55 -0
  155. package/esm2022/lib/+shared/editor/operations/helpers/operations-helper.helper.mjs +394 -0
  156. package/esm2022/lib/+shared/editor/operations/helpers/paragraph-operations.helper.mjs +83 -0
  157. package/esm2022/lib/+shared/editor/operations/helpers/save-commands.helper.mjs +118 -0
  158. package/esm2022/lib/+shared/editor/operations/helpers/tab-operations.helper.mjs +16 -0
  159. package/esm2022/lib/+shared/editor/operations/helpers/table-operations.helper.mjs +371 -0
  160. package/esm2022/lib/+shared/editor/operations/helpers/target-operations.helper.mjs +23 -0
  161. package/esm2022/lib/+shared/editor/positioning/selection.mjs +307 -0
  162. package/esm2022/lib/+shared/editor/store/editor.actions.mjs +13 -0
  163. package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +314 -0
  164. package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +71 -0
  165. package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +32 -0
  166. package/esm2022/lib/+shared/editor-toolbar/constants/numbering-templates.const.mjs +1148 -0
  167. package/esm2022/lib/+shared/editor-toolbar/constants/svg-icons.const.mjs +157 -0
  168. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +115 -0
  169. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +107 -0
  170. package/esm2022/lib/+shared/editor-toolbar/enums/alignment.enum.mjs +8 -0
  171. package/esm2022/lib/+shared/editor-toolbar/enums/numbering-template-type.enum.mjs +16 -0
  172. package/esm2022/lib/+shared/editor-toolbar/enums/numbering-type.enum.mjs +6 -0
  173. package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +45 -0
  174. package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +85 -0
  175. package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +80 -0
  176. package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +28 -0
  177. package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +23 -0
  178. package/esm2022/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.mjs +55 -0
  179. package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +53 -0
  180. package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +18 -0
  181. package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +27 -0
  182. package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +74 -0
  183. package/esm2022/lib/+shared/enums/mode.enum.mjs +7 -0
  184. package/esm2022/lib/+shared/helpers/print.helper.mjs +40 -0
  185. package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +54 -0
  186. package/esm2022/lib/+shared/services/commands.service.mjs +20 -0
  187. package/esm2022/lib/+shared/services/custom-icon.service.mjs +34 -0
  188. package/esm2022/lib/models/generated/add-numbering.model.mjs +8 -0
  189. package/esm2022/lib/models/generated/apply-element-style.model.mjs +8 -0
  190. package/esm2022/lib/models/generated/apply-image-style.model.mjs +8 -0
  191. package/esm2022/lib/models/generated/apply-paragraph-style.model.mjs +12 -0
  192. package/esm2022/lib/models/generated/apply-text-style.model.mjs +12 -0
  193. package/esm2022/lib/models/generated/borders-style.model.mjs +8 -0
  194. package/esm2022/lib/models/generated/break.model.mjs +8 -0
  195. package/esm2022/lib/models/generated/cell.model.mjs +12 -0
  196. package/esm2022/lib/models/generated/column-section.model.mjs +8 -0
  197. package/esm2022/lib/models/generated/column.model.mjs +8 -0
  198. package/esm2022/lib/models/generated/command.model.mjs +116 -0
  199. package/esm2022/lib/models/generated/delete.model.mjs +8 -0
  200. package/esm2022/lib/models/generated/document-name.model.mjs +8 -0
  201. package/esm2022/lib/models/generated/document.model.mjs +8 -0
  202. package/esm2022/lib/models/generated/docx.model.mjs +12 -0
  203. package/esm2022/lib/models/generated/edge-target.model.mjs +8 -0
  204. package/esm2022/lib/models/generated/edge.model.mjs +8 -0
  205. package/esm2022/lib/models/generated/element.model.mjs +8 -0
  206. package/esm2022/lib/models/generated/file-source.model.mjs +8 -0
  207. package/esm2022/lib/models/generated/format.model.mjs +12 -0
  208. package/esm2022/lib/models/generated/heading.model.mjs +16 -0
  209. package/esm2022/lib/models/generated/image-data.model.mjs +8 -0
  210. package/esm2022/lib/models/generated/image.model.mjs +12 -0
  211. package/esm2022/lib/models/generated/insert-break.model.mjs +8 -0
  212. package/esm2022/lib/models/generated/insert-element.model.mjs +12 -0
  213. package/esm2022/lib/models/generated/insert-image.model.mjs +12 -0
  214. package/esm2022/lib/models/generated/insert-link.model.mjs +12 -0
  215. package/esm2022/lib/models/generated/insert-styled-text.model.mjs +12 -0
  216. package/esm2022/lib/models/generated/insert-tab.model.mjs +8 -0
  217. package/esm2022/lib/models/generated/insert-table-columns.model.mjs +8 -0
  218. package/esm2022/lib/models/generated/insert-table-rows.model.mjs +8 -0
  219. package/esm2022/lib/models/generated/insert-table.model.mjs +8 -0
  220. package/esm2022/lib/models/generated/insert-text.model.mjs +8 -0
  221. package/esm2022/lib/models/generated/last-document-revision.model.mjs +12 -0
  222. package/esm2022/lib/models/generated/link-data.model.mjs +8 -0
  223. package/esm2022/lib/models/generated/link.model.mjs +8 -0
  224. package/esm2022/lib/models/generated/margins.model.mjs +8 -0
  225. package/esm2022/lib/models/generated/numbering-level.model.mjs +12 -0
  226. package/esm2022/lib/models/generated/numbering.model.mjs +8 -0
  227. package/esm2022/lib/models/generated/operation.model.mjs +12 -0
  228. package/esm2022/lib/models/generated/page-numbers.model.mjs +8 -0
  229. package/esm2022/lib/models/generated/paragraph-style.model.mjs +8 -0
  230. package/esm2022/lib/models/generated/paragraph.model.mjs +12 -0
  231. package/esm2022/lib/models/generated/remove-numberings.model.mjs +8 -0
  232. package/esm2022/lib/models/generated/remove-table-columns.model.mjs +8 -0
  233. package/esm2022/lib/models/generated/remove-table-rows.model.mjs +8 -0
  234. package/esm2022/lib/models/generated/replace-by-text.model.mjs +8 -0
  235. package/esm2022/lib/models/generated/replace.model.mjs +40 -0
  236. package/esm2022/lib/models/generated/resize-table-columns.model.mjs +8 -0
  237. package/esm2022/lib/models/generated/restore-numberings.model.mjs +8 -0
  238. package/esm2022/lib/models/generated/restore-paragraph-styles.model.mjs +8 -0
  239. package/esm2022/lib/models/generated/restore-table.model.mjs +12 -0
  240. package/esm2022/lib/models/generated/restore-text-styles.model.mjs +8 -0
  241. package/esm2022/lib/models/generated/restore.model.mjs +8 -0
  242. package/esm2022/lib/models/generated/revision.model.mjs +12 -0
  243. package/esm2022/lib/models/generated/row.model.mjs +8 -0
  244. package/esm2022/lib/models/generated/tab.model.mjs +8 -0
  245. package/esm2022/lib/models/generated/table-cell.model.mjs +8 -0
  246. package/esm2022/lib/models/generated/table.model.mjs +12 -0
  247. package/esm2022/lib/models/generated/target.model.mjs +16 -0
  248. package/esm2022/lib/models/generated/text-style.model.mjs +8 -0
  249. package/esm2022/public-api.mjs +43 -0
  250. package/esm2022/talrace-ngx-noder.mjs +5 -0
  251. package/fesm2022/talrace-ngx-noder.mjs +13736 -0
  252. package/fesm2022/talrace-ngx-noder.mjs.map +1 -0
  253. package/index.d.ts +5 -0
  254. package/lib/+shared/abstract/base-api.service.d.ts +23 -0
  255. package/lib/+shared/abstract/observer.component.d.ts +10 -0
  256. package/lib/+shared/confirm-dialog/confirm-dialog.component.d.ts +16 -0
  257. package/lib/+shared/constants/default-file-name.const.d.ts +1 -0
  258. package/lib/+shared/constants/paginator-sizes.const.d.ts +2 -0
  259. package/lib/+shared/editor/core/base/event-emitting.d.ts +17 -0
  260. package/lib/+shared/editor/core/components/edges/edge-type.enum.d.ts +4 -0
  261. package/lib/+shared/editor/core/components/edges/edge.component.d.ts +45 -0
  262. package/lib/+shared/editor/core/components/edges/edges.d.ts +26 -0
  263. package/lib/+shared/editor/core/constants/alignments.const.d.ts +7 -0
  264. package/lib/+shared/editor/core/constants/clipboardEventTypes.const.d.ts +5 -0
  265. package/lib/+shared/editor/core/constants/content-style-change.const.d.ts +14 -0
  266. package/lib/+shared/editor/core/constants/display-values.const.d.ts +7 -0
  267. package/lib/+shared/editor/core/constants/document-info.const.d.ts +12 -0
  268. package/lib/+shared/editor/core/constants/editor-version.const.d.ts +1 -0
  269. package/lib/+shared/editor/core/constants/editor.const.d.ts +16 -0
  270. package/lib/+shared/editor/core/constants/unicode-chars.const.d.ts +1 -0
  271. package/lib/+shared/editor/core/document.d.ts +56 -0
  272. package/lib/+shared/editor/core/edit.session.d.ts +159 -0
  273. package/lib/+shared/editor/core/editor.d.ts +206 -0
  274. package/lib/+shared/editor/core/enums/break-types.enum.d.ts +5 -0
  275. package/lib/+shared/editor/core/enums/hrule.enum.d.ts +5 -0
  276. package/lib/+shared/editor/core/enums/mouse-button.enum.d.ts +5 -0
  277. package/lib/+shared/editor/core/enums/numbering-marker-type.enum.d.ts +10 -0
  278. package/lib/+shared/editor/core/enums/page-type.enum.d.ts +5 -0
  279. package/lib/+shared/editor/core/enums/vertical-alignment.enum.d.ts +9 -0
  280. package/lib/+shared/editor/core/helpers/content-style.helper.d.ts +16 -0
  281. package/lib/+shared/editor/core/helpers/delta.helper.d.ts +6 -0
  282. package/lib/+shared/editor/core/helpers/dom.helper.d.ts +10 -0
  283. package/lib/+shared/editor/core/helpers/event.helper.d.ts +4 -0
  284. package/lib/+shared/editor/core/helpers/font-metrics.helper.d.ts +32 -0
  285. package/lib/+shared/editor/core/helpers/format-style.helper.d.ts +11 -0
  286. package/lib/+shared/editor/core/helpers/line-width.helper.d.ts +5 -0
  287. package/lib/+shared/editor/core/helpers/numbering.helper.d.ts +19 -0
  288. package/lib/+shared/editor/core/helpers/page.helper.d.ts +4 -0
  289. package/lib/+shared/editor/core/helpers/paragraph-style.helper.d.ts +6 -0
  290. package/lib/+shared/editor/core/helpers/paragraph.helper.d.ts +27 -0
  291. package/lib/+shared/editor/core/helpers/position.helper.d.ts +34 -0
  292. package/lib/+shared/editor/core/helpers/print.rendering.helper.d.ts +6 -0
  293. package/lib/+shared/editor/core/helpers/rendering.helper.d.ts +26 -0
  294. package/lib/+shared/editor/core/helpers/unicode.helper.d.ts +4 -0
  295. package/lib/+shared/editor/core/interfaces/cell.interface.d.ts +5 -0
  296. package/lib/+shared/editor/core/interfaces/cursor-position.interface.d.ts +11 -0
  297. package/lib/+shared/editor/core/interfaces/font-metric-size.interface.d.ts +11 -0
  298. package/lib/+shared/editor/core/interfaces/layer.config.d.ts +13 -0
  299. package/lib/+shared/editor/core/interfaces/paragraph-info.interface.d.ts +7 -0
  300. package/lib/+shared/editor/core/interfaces/render-changes.interface.d.ts +10 -0
  301. package/lib/+shared/editor/core/interfaces/replace.interface.d.ts +4 -0
  302. package/lib/+shared/editor/core/interfaces/search-iteration.interface.d.ts +4 -0
  303. package/lib/+shared/editor/core/interfaces/toolbar-styles.interface.d.ts +18 -0
  304. package/lib/+shared/editor/core/interfaces/visible-line-info.interface.d.ts +5 -0
  305. package/lib/+shared/editor/core/interfaces/visible-range.interface.d.ts +11 -0
  306. package/lib/+shared/editor/core/keyboard/text-input.d.ts +10 -0
  307. package/lib/+shared/editor/core/layers/cursor.layer.d.ts +24 -0
  308. package/lib/+shared/editor/core/layers/edges.layer.d.ts +24 -0
  309. package/lib/+shared/editor/core/layers/lines.d.ts +21 -0
  310. package/lib/+shared/editor/core/layers/pages.layer.d.ts +27 -0
  311. package/lib/+shared/editor/core/layers/print.edges.layer.d.ts +4 -0
  312. package/lib/+shared/editor/core/layers/print.pages.layer.d.ts +4 -0
  313. package/lib/+shared/editor/core/layers/print.text.layer.d.ts +5 -0
  314. package/lib/+shared/editor/core/layers/renderloop.d.ts +8 -0
  315. package/lib/+shared/editor/core/layers/scrollbar.d.ts +41 -0
  316. package/lib/+shared/editor/core/layers/selection.layer.d.ts +19 -0
  317. package/lib/+shared/editor/core/layers/text.layer.d.ts +22 -0
  318. package/lib/+shared/editor/core/models/display-token.model.d.ts +27 -0
  319. package/lib/+shared/editor/core/models/distance.model.d.ts +6 -0
  320. package/lib/+shared/editor/core/models/edge-element.model.d.ts +7 -0
  321. package/lib/+shared/editor/core/models/format-ext.model.d.ts +5 -0
  322. package/lib/+shared/editor/core/models/indent.model.d.ts +7 -0
  323. package/lib/+shared/editor/core/models/line-info.model.d.ts +14 -0
  324. package/lib/+shared/editor/core/models/margin.model.d.ts +9 -0
  325. package/lib/+shared/editor/core/models/numbering-data.model.d.ts +11 -0
  326. package/lib/+shared/editor/core/models/render-changes.model.d.ts +14 -0
  327. package/lib/+shared/editor/core/paging/page-vertical-data.model.d.ts +8 -0
  328. package/lib/+shared/editor/core/paging/pages.wrap.d.ts +41 -0
  329. package/lib/+shared/editor/core/paging/paragraph.d.ts +44 -0
  330. package/lib/+shared/editor/core/paging/text-line-info.d.ts +17 -0
  331. package/lib/+shared/editor/core/point.d.ts +7 -0
  332. package/lib/+shared/editor/core/print.renderer.d.ts +25 -0
  333. package/lib/+shared/editor/core/range.d.ts +32 -0
  334. package/lib/+shared/editor/core/renderer.d.ts +60 -0
  335. package/lib/+shared/editor/core/search.d.ts +32 -0
  336. package/lib/+shared/editor/core/virtual.renderer.d.ts +93 -0
  337. package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +14 -0
  338. package/lib/+shared/editor/custom-components/external-element/external-element.service.d.ts +7 -0
  339. package/lib/+shared/editor/custom-components/external-element/external-elements.const.d.ts +5 -0
  340. package/lib/+shared/editor/custom-components/external-element/external-sidenav.interface.d.ts +5 -0
  341. package/lib/+shared/editor/custom-components/external-element/external.component.d.ts +17 -0
  342. package/lib/+shared/editor/custom-components/external-element/models/element-data.model.d.ts +7 -0
  343. package/lib/+shared/editor/custom-components/external-element/models/external-element.model.d.ts +20 -0
  344. package/lib/+shared/editor/custom-components/external-element/models/external-sidenav.model.d.ts +7 -0
  345. package/lib/+shared/editor/custom-components/image/components/image.component.d.ts +31 -0
  346. package/lib/+shared/editor/custom-components/image/input-handler/image-input.handler.d.ts +13 -0
  347. package/lib/+shared/editor/custom-components/image/interfaces/size.d.ts +4 -0
  348. package/lib/+shared/editor/custom-components/image/resizer/coordinate.d.ts +4 -0
  349. package/lib/+shared/editor/custom-components/image/resizer/direction-wrapper.d.ts +9 -0
  350. package/lib/+shared/editor/custom-components/image/resizer/direction.enum.d.ts +10 -0
  351. package/lib/+shared/editor/custom-components/image/resizer/resizer.component.d.ts +26 -0
  352. package/lib/+shared/editor/custom-components/image/resizer/size-delta.d.ts +4 -0
  353. package/lib/+shared/editor/custom-components/image/resizer/size-wrapper.d.ts +19 -0
  354. package/lib/+shared/editor/custom-components/image/services/image-api.service.d.ts +8 -0
  355. package/lib/+shared/editor/custom-components/shared/abstract/base.component.d.ts +24 -0
  356. package/lib/+shared/editor/custom-components/shared/constants/custom-content-markers.const.d.ts +2 -0
  357. package/lib/+shared/editor/custom-components/shared/helpers/custom-component.hepler.d.ts +8 -0
  358. package/lib/+shared/editor/custom-components/shared/interfaces/custom-components.interface.d.ts +13 -0
  359. package/lib/+shared/editor/custom-components/shared/services/component/component.service.d.ts +21 -0
  360. package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +30 -0
  361. package/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.d.ts +18 -0
  362. package/lib/+shared/editor/custom-components/shared/types/custom-content.d.ts +5 -0
  363. package/lib/+shared/editor/custom-components/tab/tab.component.d.ts +15 -0
  364. package/lib/+shared/editor/custom-components/table/cell-resizer/cell-resizer.d.ts +31 -0
  365. package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +45 -0
  366. package/lib/+shared/editor/custom-components/table/components/table.component.d.ts +55 -0
  367. package/lib/+shared/editor/custom-components/table/enums/reisizer-side.enum.d.ts +6 -0
  368. package/lib/+shared/editor/custom-components/table/enums/vertical-merge.enum.d.ts +4 -0
  369. package/lib/+shared/editor/custom-components/table/models/cell-data.model.d.ts +11 -0
  370. package/lib/+shared/editor/custom-components/table/models/cell-resizer-parameters.model.d.ts +9 -0
  371. package/lib/+shared/editor/custom-components/table/models/row-data.model.d.ts +7 -0
  372. package/lib/+shared/editor/custom-components/table/models/selection-range.model.d.ts +17 -0
  373. package/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.d.ts +37 -0
  374. package/lib/+shared/editor/custom-components/table/selection/table-selection.d.ts +74 -0
  375. package/lib/+shared/editor/editor.component.d.ts +43 -0
  376. package/lib/+shared/editor/editor.module.d.ts +30 -0
  377. package/lib/+shared/editor/execution/models/cell-session-source.model.d.ts +11 -0
  378. package/lib/+shared/editor/execution/models/edge-session-source.model.d.ts +11 -0
  379. package/lib/+shared/editor/execution/models/general-properties.model.d.ts +7 -0
  380. package/lib/+shared/editor/execution/models/main-session-source.model.d.ts +5 -0
  381. package/lib/+shared/editor/execution/models/session-source.model.d.ts +5 -0
  382. package/lib/+shared/editor/execution/models/session.model.d.ts +12 -0
  383. package/lib/+shared/editor/execution/regulator.service.d.ts +45 -0
  384. package/lib/+shared/editor/helpers/break.helper.d.ts +7 -0
  385. package/lib/+shared/editor/helpers/content.helper.d.ts +9 -0
  386. package/lib/+shared/editor/helpers/format.helper.d.ts +4 -0
  387. package/lib/+shared/editor/helpers/indexed-element.helper.d.ts +4 -0
  388. package/lib/+shared/editor/helpers/tab.helper.d.ts +3 -0
  389. package/lib/+shared/editor/interaction/editor.service.d.ts +194 -0
  390. package/lib/+shared/editor/interaction/input.handler.d.ts +25 -0
  391. package/lib/+shared/editor/interaction/mouse.handler.d.ts +14 -0
  392. package/lib/+shared/editor/interfaces/contents.interface.d.ts +22 -0
  393. package/lib/+shared/editor/interfaces/insert-index.interface.d.ts +3 -0
  394. package/lib/+shared/editor/operation-history/operation-history.d.ts +65 -0
  395. package/lib/+shared/editor/operation-history/operation.type.d.ts +24 -0
  396. package/lib/+shared/editor/operation-history/operations-history-info.model.d.ts +5 -0
  397. package/lib/+shared/editor/operations/enums/command-type.enum.d.ts +29 -0
  398. package/lib/+shared/editor/operations/enums/target-type.enum.d.ts +5 -0
  399. package/lib/+shared/editor/operations/helpers/break-operations.helper.d.ts +5 -0
  400. package/lib/+shared/editor/operations/helpers/content-operations.helper.d.ts +5 -0
  401. package/lib/+shared/editor/operations/helpers/format-operations.helper.d.ts +11 -0
  402. package/lib/+shared/editor/operations/helpers/image-operations.helper.d.ts +7 -0
  403. package/lib/+shared/editor/operations/helpers/indexed-element-operations.helper.d.ts +8 -0
  404. package/lib/+shared/editor/operations/helpers/link-operations.helper.d.ts +6 -0
  405. package/lib/+shared/editor/operations/helpers/numbering-operations.helper.d.ts +11 -0
  406. package/lib/+shared/editor/operations/helpers/operations-helper.helper.d.ts +52 -0
  407. package/lib/+shared/editor/operations/helpers/paragraph-operations.helper.d.ts +13 -0
  408. package/lib/+shared/editor/operations/helpers/save-commands.helper.d.ts +43 -0
  409. package/lib/+shared/editor/operations/helpers/tab-operations.helper.d.ts +4 -0
  410. package/lib/+shared/editor/operations/helpers/table-operations.helper.d.ts +30 -0
  411. package/lib/+shared/editor/operations/helpers/target-operations.helper.d.ts +6 -0
  412. package/lib/+shared/editor/positioning/selection.d.ts +50 -0
  413. package/lib/+shared/editor/store/editor.actions.d.ts +11 -0
  414. package/lib/+shared/editor-header/editor-header.component.d.ts +101 -0
  415. package/lib/+shared/editor-search/editor-search-dialog.component.d.ts +24 -0
  416. package/lib/+shared/editor-toolbar/color-picker/color-picker.component.d.ts +12 -0
  417. package/lib/+shared/editor-toolbar/constants/numbering-templates.const.d.ts +6 -0
  418. package/lib/+shared/editor-toolbar/constants/svg-icons.const.d.ts +12 -0
  419. package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +44 -0
  420. package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +28 -0
  421. package/lib/+shared/editor-toolbar/enums/alignment.enum.d.ts +6 -0
  422. package/lib/+shared/editor-toolbar/enums/numbering-template-type.enum.d.ts +14 -0
  423. package/lib/+shared/editor-toolbar/enums/numbering-type.enum.d.ts +4 -0
  424. package/lib/+shared/editor-toolbar/font/font.component.d.ts +13 -0
  425. package/lib/+shared/editor-toolbar/font-size/font-size.component.d.ts +24 -0
  426. package/lib/+shared/editor-toolbar/font-style/font-style.component.d.ts +24 -0
  427. package/lib/+shared/editor-toolbar/format/format.component.d.ts +12 -0
  428. package/lib/+shared/editor-toolbar/heading/heading.component.d.ts +8 -0
  429. package/lib/+shared/editor-toolbar/helpers/toolbar-styles.helper.d.ts +6 -0
  430. package/lib/+shared/editor-toolbar/numbering/numbering.component.d.ts +18 -0
  431. package/lib/+shared/editor-toolbar/print/print.component.d.ts +7 -0
  432. package/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.d.ts +10 -0
  433. package/lib/+shared/editor-toolbar/zoom/zoom.component.d.ts +22 -0
  434. package/lib/+shared/enums/mode.enum.d.ts +5 -0
  435. package/lib/+shared/helpers/print.helper.d.ts +9 -0
  436. package/lib/+shared/insert-table/insert-table.component.d.ts +21 -0
  437. package/lib/+shared/services/commands.service.d.ts +10 -0
  438. package/lib/+shared/services/custom-icon.service.d.ts +11 -0
  439. package/lib/models/generated/add-numbering.model.d.ts +7 -0
  440. package/lib/models/generated/apply-element-style.model.d.ts +6 -0
  441. package/lib/models/generated/apply-image-style.model.d.ts +6 -0
  442. package/lib/models/generated/apply-paragraph-style.model.d.ts +7 -0
  443. package/lib/models/generated/apply-text-style.model.d.ts +7 -0
  444. package/lib/models/generated/borders-style.model.d.ts +8 -0
  445. package/lib/models/generated/break.model.d.ts +5 -0
  446. package/lib/models/generated/cell.model.d.ts +32 -0
  447. package/lib/models/generated/column-section.model.d.ts +7 -0
  448. package/lib/models/generated/column.model.d.ts +5 -0
  449. package/lib/models/generated/command.model.d.ts +60 -0
  450. package/lib/models/generated/delete.model.d.ts +5 -0
  451. package/lib/models/generated/document-name.model.d.ts +5 -0
  452. package/lib/models/generated/document.model.d.ts +7 -0
  453. package/lib/models/generated/docx.model.d.ts +43 -0
  454. package/lib/models/generated/edge-target.model.d.ts +5 -0
  455. package/lib/models/generated/edge.model.d.ts +24 -0
  456. package/lib/models/generated/element.model.d.ts +9 -0
  457. package/lib/models/generated/file-source.model.d.ts +4 -0
  458. package/lib/models/generated/format.model.d.ts +7 -0
  459. package/lib/models/generated/heading.model.d.ts +12 -0
  460. package/lib/models/generated/image-data.model.d.ts +6 -0
  461. package/lib/models/generated/image.model.d.ts +31 -0
  462. package/lib/models/generated/insert-break.model.d.ts +6 -0
  463. package/lib/models/generated/insert-element.model.d.ts +5 -0
  464. package/lib/models/generated/insert-image.model.d.ts +6 -0
  465. package/lib/models/generated/insert-link.model.d.ts +7 -0
  466. package/lib/models/generated/insert-styled-text.model.d.ts +7 -0
  467. package/lib/models/generated/insert-tab.model.d.ts +4 -0
  468. package/lib/models/generated/insert-table-columns.model.d.ts +7 -0
  469. package/lib/models/generated/insert-table-rows.model.d.ts +7 -0
  470. package/lib/models/generated/insert-table.model.d.ts +8 -0
  471. package/lib/models/generated/insert-text.model.d.ts +5 -0
  472. package/lib/models/generated/last-document-revision.model.d.ts +9 -0
  473. package/lib/models/generated/link-data.model.d.ts +5 -0
  474. package/lib/models/generated/link.model.d.ts +7 -0
  475. package/lib/models/generated/margins.model.d.ts +7 -0
  476. package/lib/models/generated/numbering-level.model.d.ts +14 -0
  477. package/lib/models/generated/numbering.model.d.ts +7 -0
  478. package/lib/models/generated/operation.model.d.ts +8 -0
  479. package/lib/models/generated/page-numbers.model.d.ts +8 -0
  480. package/lib/models/generated/paragraph-style.model.d.ts +18 -0
  481. package/lib/models/generated/paragraph.model.d.ts +6 -0
  482. package/lib/models/generated/remove-numberings.model.d.ts +5 -0
  483. package/lib/models/generated/remove-table-columns.model.d.ts +6 -0
  484. package/lib/models/generated/remove-table-rows.model.d.ts +6 -0
  485. package/lib/models/generated/replace-by-text.model.d.ts +6 -0
  486. package/lib/models/generated/replace.model.d.ts +19 -0
  487. package/lib/models/generated/resize-table-columns.model.d.ts +9 -0
  488. package/lib/models/generated/restore-numberings.model.d.ts +7 -0
  489. package/lib/models/generated/restore-paragraph-styles.model.d.ts +5 -0
  490. package/lib/models/generated/restore-table.model.d.ts +6 -0
  491. package/lib/models/generated/restore-text-styles.model.d.ts +5 -0
  492. package/lib/models/generated/restore.model.d.ts +22 -0
  493. package/lib/models/generated/revision.model.d.ts +9 -0
  494. package/lib/models/generated/row.model.d.ts +9 -0
  495. package/lib/models/generated/tab.model.d.ts +6 -0
  496. package/lib/models/generated/table-cell.model.d.ts +6 -0
  497. package/lib/models/generated/table.model.d.ts +18 -0
  498. package/lib/models/generated/target.model.d.ts +9 -0
  499. package/lib/models/generated/text-style.model.d.ts +14 -0
  500. package/package.json +35 -0
  501. package/public-api.d.ts +42 -0
  502. package/src/_ngx-noder.theme.scss +22 -0
  503. package/src/assets/fonts/nc-iconfont.css +333 -0
  504. package/src/assets/fonts/nc-iconfont.eot +0 -0
  505. package/src/assets/fonts/nc-iconfont.svg +110 -0
  506. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  507. package/src/assets/fonts/nc-iconfont.woff +0 -0
  508. package/src/lib/+shared/add-link-dialog/_add-link-dialog.theme.scss +21 -0
  509. package/src/lib/+shared/editor/_editor.theme.scss +35 -0
  510. package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +10 -0
  511. package/src/lib/+shared/editor-header/_editor-header.theme.scss +106 -0
  512. package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +33 -0
  513. package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +29 -0
  514. package/src/lib/+shared/insert-table/_insert-table.theme.scss +22 -0
  515. package/src/styles.scss +58 -0
@@ -0,0 +1,356 @@
1
+ import { DistanceModel } from './models/distance.model';
2
+ import { DomHelper } from './helpers/dom.helper';
3
+ import { EdgesLayer } from './layers/edges.layer';
4
+ import { EventEmitting } from './base/event-emitting';
5
+ import { PagesLayer } from './layers/pages.layer';
6
+ import { RenderChangesModel } from './models/render-changes.model';
7
+ import { Renderer } from './renderer';
8
+ import { RenderLoop } from './layers/renderloop';
9
+ import { ScrollBar } from './layers/scrollbar';
10
+ export class VirtualRenderer extends EventEmitting {
11
+ get isMousePressed() {
12
+ return this.renderer.isMousePressed;
13
+ }
14
+ set isMousePressed(val) {
15
+ this.renderer.isMousePressed = val;
16
+ }
17
+ get cursorLayer() {
18
+ return this.renderer.cursorLayer;
19
+ }
20
+ get loop() {
21
+ return this.renderer.loop;
22
+ }
23
+ set loop(val) {
24
+ this.renderer.loop = val;
25
+ }
26
+ get textarea() {
27
+ return this.renderer.textarea;
28
+ }
29
+ set textarea(val) {
30
+ this.renderer.textarea = val;
31
+ }
32
+ get layerConfig() {
33
+ return this.renderer.layerConfig;
34
+ }
35
+ set layerConfig(val) {
36
+ this.renderer.layerConfig = val;
37
+ }
38
+ constructor(parentContainer, editorService) {
39
+ super();
40
+ this.editorService = editorService;
41
+ this.scrollTop = 0;
42
+ this.changes = new RenderChangesModel();
43
+ this.size = {
44
+ width: 0,
45
+ height: 0,
46
+ scrollerHeight: 0,
47
+ scrollerWidth: 0,
48
+ dirty: true
49
+ };
50
+ this.container = parentContainer;
51
+ this.createScroller();
52
+ this.renderer = new Renderer(parentContainer, editorService);
53
+ this.renderer.layerConfig = this.getDefaultLayerConfig();
54
+ this.createLayers();
55
+ this.createScroll();
56
+ this.createRenderLoop();
57
+ }
58
+ renderChanges(changes, force) {
59
+ changes.apply(this.changes);
60
+ this.changes = new RenderChangesModel();
61
+ if (!this.renderer.session || !this.container.offsetWidth || (!changes.any && !force)) {
62
+ this.changes.apply(changes);
63
+ return;
64
+ }
65
+ if (this.size.dirty) {
66
+ this.changes.apply(changes);
67
+ this.onResize(true);
68
+ return;
69
+ }
70
+ // text, scrolling and resize changes can cause the view port size to change
71
+ if (changes.full || changes.size || changes.text || changes.lines || changes.scroll) {
72
+ changes.apply(this.computeLayerConfig());
73
+ this.updateScrollBar();
74
+ DomHelper.translate(this.renderer.content, 0, -this.layerConfig.offset);
75
+ DomHelper.setStyle(this.renderer.content.style, 'width', `${this.layerConfig.width}px`);
76
+ DomHelper.setStyle(this.renderer.content.style, 'height', `${this.layerConfig.height}px`);
77
+ }
78
+ // full
79
+ if (changes.full) {
80
+ this.renderFull();
81
+ return;
82
+ }
83
+ // scrolling
84
+ if (changes.scroll) {
85
+ this.renderScroll(changes);
86
+ }
87
+ if (changes.text) {
88
+ this.renderText();
89
+ }
90
+ if (changes.cursor) {
91
+ this.renderCursor();
92
+ }
93
+ if (changes.marker || changes.selection) {
94
+ this.renderSelection();
95
+ }
96
+ }
97
+ /**
98
+ * Triggers a resize of the editor
99
+ **/
100
+ onResize(force) {
101
+ const height = this.container.clientHeight || this.container.scrollHeight;
102
+ const width = this.container.clientWidth || this.container.scrollWidth;
103
+ const changes = this.updateCachedSize(force, width, height);
104
+ changes.apply(this.changes);
105
+ if (force) {
106
+ this.renderChanges(changes, true);
107
+ }
108
+ else {
109
+ this.loop.schedule(changes);
110
+ }
111
+ this.scrollBar.scrollTop = null;
112
+ }
113
+ /**
114
+ * Triggers a partial update of the text, from the range given by the two parameters.
115
+ **/
116
+ updateLines(firstRow, lastRow) {
117
+ this.renderer.updateLines(firstRow, lastRow);
118
+ }
119
+ updateCachedSize(force, width, height) {
120
+ if (width && (force || this.size.width !== width)) {
121
+ DomHelper.setStyle(this.scroller.style, 'left', 0);
122
+ this.size.scrollerWidth = Math.max(0, this.container.parentElement.clientWidth - this.scrollBar.width);
123
+ DomHelper.setStyle(this.scroller.style, 'right', 0);
124
+ }
125
+ let changes = new RenderChangesModel();
126
+ if (height && (force || this.size.height !== height)) {
127
+ this.size.height = height;
128
+ changes.size = true;
129
+ this.size.scrollerHeight = this.size.height;
130
+ changes.scroll = true;
131
+ }
132
+ if (width && (force || this.size.width !== width)) {
133
+ this.size.width = width;
134
+ changes.size = true;
135
+ }
136
+ this.size.dirty = !width || !height;
137
+ return changes;
138
+ }
139
+ moveTextAreaToCursor() {
140
+ if (this.isMousePressed || !this.textarea) {
141
+ return;
142
+ }
143
+ let cursorPosition = this.cursorLayer.cursorPosition;
144
+ if (!cursorPosition) {
145
+ return;
146
+ }
147
+ const posTop = cursorPosition.pageY - this.layerConfig.offset;
148
+ if (posTop < 0 || posTop > this.layerConfig.height - this.renderer.textareaSize.height) {
149
+ DomHelper.translate(this.textarea, 0, 0);
150
+ return;
151
+ }
152
+ DomHelper.setStyle(this.textarea.style, 'height', `${this.renderer.textareaSize.height}px`);
153
+ DomHelper.setStyle(this.textarea.style, 'width', `${this.renderer.textareaSize.width}px`);
154
+ DomHelper.translate(this.textarea, Math.min(cursorPosition.pageX, this.size.scrollerWidth - this.renderer.textareaSize.width), Math.min(posTop, this.size.height - this.renderer.textareaSize.height));
155
+ }
156
+ setSession(session) {
157
+ this.pagesLayer.setSession(session);
158
+ this.edgesLayer.setSession(session);
159
+ this.renderer.setSession(session);
160
+ this.scrollBar.scrollTop = null;
161
+ }
162
+ updateSelection(range) {
163
+ this.renderer.updateSelection(range);
164
+ }
165
+ /**
166
+ * Triggers a full update of the text, for all the rows.
167
+ **/
168
+ updateText() {
169
+ this.renderer.updateText();
170
+ }
171
+ /**
172
+ * Triggers a full update of all the layers, for all the rows.
173
+ **/
174
+ updateFull(force) {
175
+ this.renderer.updateFull(force);
176
+ }
177
+ updateCursor() {
178
+ this.renderer.updateCursor();
179
+ }
180
+ scrollSelectionIntoView(anchor, lead, offset) {
181
+ // first scroll anchor into view then scroll lead into view
182
+ this.scrollCursorIntoView(anchor, offset);
183
+ this.scrollCursorIntoView(lead, offset);
184
+ }
185
+ /**
186
+ * Scrolls the cursor into the first visibile area of the editor
187
+ **/
188
+ scrollCursorIntoView(cursor, offset) {
189
+ if (!this.size.scrollerHeight) {
190
+ return;
191
+ }
192
+ const position = this.cursorLayer.getPixelPosition(cursor);
193
+ let top = position.pageY + this.scrollTop;
194
+ if (this.scrollTop > top) {
195
+ if (offset) {
196
+ top -= offset * this.container.scrollHeight;
197
+ }
198
+ this.renderer.session.setScrollTop(top);
199
+ this.loop.schedule({ scroll: true });
200
+ }
201
+ else if (this.scrollTop + this.container.scrollHeight < top + position.lineHeight) {
202
+ if (offset) {
203
+ top += offset * this.container.scrollHeight;
204
+ }
205
+ this.renderer.session.setScrollTop(top + position.lineHeight - this.container.scrollHeight);
206
+ this.loop.schedule({ scroll: true });
207
+ }
208
+ }
209
+ /**
210
+ * Scrolls the editor to the y pixel indicated.
211
+ **/
212
+ scrollTo(scrollTop) {
213
+ // after calling scrollBar.setScrollTop
214
+ // scrollbar sends us event with same scrollTop. ignore it
215
+ if (this.scrollTop === scrollTop) {
216
+ return;
217
+ }
218
+ this.loop.schedule({ scroll: true });
219
+ this.scrollTop = scrollTop;
220
+ }
221
+ /**
222
+ * Scrolls the editor across y-axe.
223
+ **/
224
+ scrollBy(deltaY) {
225
+ if (!deltaY || !this.scrollBar.isVisible) {
226
+ return;
227
+ }
228
+ this.renderer.session.setScrollTop(this.renderer.session.scrollTop + deltaY);
229
+ }
230
+ screenToTextCoordinates(x, y) {
231
+ return this.renderer.screenToTextCoordinates(x, y);
232
+ }
233
+ showCursor() {
234
+ this.renderer.showCursor();
235
+ }
236
+ hideCursor() {
237
+ this.renderer.hideCursor();
238
+ }
239
+ destroy() {
240
+ this.scrollBar.removeAllListeners('scroll');
241
+ DomHelper.removeElement(this.scrollBar.element);
242
+ this.pagesLayer.destroy();
243
+ this.edgesLayer.destroy();
244
+ this.renderer.destroy();
245
+ }
246
+ computeLayerConfig() {
247
+ const pagesWrap = this.renderer.session.pagesWrap;
248
+ const maxHeight = pagesWrap.allPagesHeight;
249
+ const minHeight = pagesWrap.minHeight;
250
+ const scrollHidden = maxHeight < this.size.scrollerHeight;
251
+ const newScrollTop = Math.max(Math.min(this.scrollTop, maxHeight - this.size.scrollerHeight), 0);
252
+ this.renderer.session.scrollTop = newScrollTop;
253
+ this.scrollTop = newScrollTop;
254
+ const canScroll = !scrollHidden && this.size.scrollerHeight - maxHeight < 0;
255
+ const scrollChanged = this.canScroll !== canScroll;
256
+ if (scrollChanged) {
257
+ this.canScroll = canScroll;
258
+ this.scrollBar.setVisible(canScroll);
259
+ }
260
+ const changes = scrollChanged
261
+ ? this.updateCachedSize(true, this.size.width, this.size.height)
262
+ : new RenderChangesModel({ scroll: true });
263
+ const visibleRange = pagesWrap.getVisibleRange(this.scrollTop, this.size.scrollerHeight);
264
+ this.layerConfig = {
265
+ width: this.renderer.textLayer.element.clientWidth + pagesWrap.documentMargin.left + pagesWrap.documentMargin.right,
266
+ height: this.size.scrollerHeight,
267
+ contentRange: new DistanceModel({ start: visibleRange.startParagraph, end: visibleRange.endParagraph }),
268
+ minHeight,
269
+ maxHeight,
270
+ offset: 0,
271
+ visibleRange,
272
+ scrollTop: this.renderer.session.scrollTop,
273
+ pages: visibleRange.pages
274
+ };
275
+ return changes;
276
+ }
277
+ updateScrollBar() {
278
+ this.scrollBar.scrollHeight = this.layerConfig.maxHeight;
279
+ this.scrollBar.setScrollTop(this.scrollTop);
280
+ }
281
+ createScroller() {
282
+ this.scroller = document.createElement('div');
283
+ this.scroller.className = 'ace-scroller';
284
+ this.container.appendChild(this.scroller);
285
+ }
286
+ createLayers() {
287
+ this.edgesLayer = new EdgesLayer(this.renderer.content, this.editorService);
288
+ this.pagesLayer = new PagesLayer(this.renderer.content);
289
+ }
290
+ createScroll() {
291
+ this.scrollBar = new ScrollBar(this.container.parentElement);
292
+ this.scrollBar.addEventListener('scroll', (event) => {
293
+ this.renderer.session.setScrollTop(event.data);
294
+ });
295
+ }
296
+ createRenderLoop() {
297
+ this.loop = new RenderLoop(changes => this.renderChanges(changes));
298
+ this.renderer.loop = this.loop;
299
+ this.loop.schedule({ full: true });
300
+ }
301
+ renderScroll(changes) {
302
+ this.pagesLayer.update(this.layerConfig);
303
+ if (changes.text || changes.lines) {
304
+ this.edgesLayer.update(this.layerConfig);
305
+ this.renderer.textLayer.update(this.layerConfig);
306
+ }
307
+ else {
308
+ this.edgesLayer.scrollPages(this.layerConfig);
309
+ this.renderer.textLayer.scrollLines(this.layerConfig);
310
+ }
311
+ this.renderer.selectionLayer.update(this.layerConfig);
312
+ if (!this.renderer.cursorLayer.isVisible) {
313
+ return;
314
+ }
315
+ this.cursorLayer.update(this.layerConfig);
316
+ this.moveTextAreaToCursor();
317
+ }
318
+ renderFull() {
319
+ this.pagesLayer.update(this.layerConfig);
320
+ this.edgesLayer.update(this.layerConfig);
321
+ this.renderer.renderFull();
322
+ }
323
+ renderText() {
324
+ this.pagesLayer.update(this.layerConfig);
325
+ this.renderer.renderText();
326
+ }
327
+ renderCursor() {
328
+ this.renderer.renderCursor();
329
+ }
330
+ renderSelection() {
331
+ this.renderer.renderSelection();
332
+ }
333
+ getDefaultLayerConfig() {
334
+ return {
335
+ width: 1,
336
+ contentRange: new DistanceModel({ start: 0, end: 0 }),
337
+ minHeight: 1,
338
+ maxHeight: 1,
339
+ offset: 0,
340
+ height: 1,
341
+ scrollTop: 0,
342
+ pages: [],
343
+ visibleRange: {
344
+ startParagraph: 0,
345
+ startLine: 0,
346
+ startScreenLine: 0,
347
+ startScreenFullLine: 0,
348
+ endParagraph: 0,
349
+ endLine: 0,
350
+ endScreenLine: 0,
351
+ endScreenFullLine: 0
352
+ }
353
+ };
354
+ }
355
+ }
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC5yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvdmlydHVhbC5yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBQzlDLElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEdBQVk7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FB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LFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxZQUFZO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLE9BQU87WUFDSCxLQUFLLEVBQUUsQ0FBQztZQUNSLFlBQVksRUFBRSxJQUFJLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3JELFNBQVMsRUFBRSxDQUFDO1lBQ1osU0FBUyxFQUFFLENBQUM7WUFDWixNQUFNLEVBQUUsQ0FBQztZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsU0FBUyxFQUFFLENBQUM7WUFDWixLQUFLLEVBQUUsRUFBRTtZQUNULFlBQVksRUFBRTtnQkFDVixjQUFjLEVBQUUsQ0FBQztnQkFDakIsU0FBUyxFQUFFLENBQUM7Z0JBQ1osZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3RCLFlBQVksRUFBRSxDQUFDO2dCQUNmLE9BQU8sRUFBRSxDQUFDO2dCQUNWLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixpQkFBaUIsRUFBRSxDQUFDO2FBQ3ZCO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnNvckxheWVyIH0gZnJvbSAnLi9sYXllcnMvY3Vyc29yLmxheWVyJztcbmltcG9ydCB7IERpc3RhbmNlTW9kZWwgfSBmcm9tICcuL21vZGVscy9kaXN0YW5jZS5tb2RlbCc7XG5pbXBvcnQgeyBEb21IZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMvZG9tLmhlbHBlcic7XG5pbXBvcnQgeyBFZGdlc0xheWVyIH0gZnJvbSAnLi9sYXllcnMvZWRnZXMubGF5ZXInO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGluZyB9IGZyb20gJy4vYmFzZS9ldmVudC1lbWl0dGluZyc7XG5pbXBvcnQgeyBJTGF5ZXJDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IFBhZ2VzTGF5ZXIgfSBmcm9tICcuL2xheWVycy9wYWdlcy5sYXllcic7XG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4vcG9pbnQnO1xuaW1wb3J0IHsgUmFuZ2UgfSBmcm9tICcuL3JhbmdlJztcbmltcG9ydCB7IFJlbmRlckNoYW5nZXNNb2RlbCB9IGZyb20gJy4vbW9kZWxzL3JlbmRlci1jaGFuZ2VzLm1vZGVsJztcbmltcG9ydCB7IFJlbmRlcmVyIH0gZnJvbSAnLi9yZW5kZXJlcic7XG5pbXBvcnQgeyBSZW5kZXJMb29wIH0gZnJvbSAnLi9sYXllcnMvcmVuZGVybG9vcCc7XG5pbXBvcnQgeyBTY3JvbGxCYXIgfSBmcm9tICcuL2xheWVycy9zY3JvbGxiYXInO1xuXG5leHBvcnQgY2xhc3MgVmlydHVhbFJlbmRlcmVyIGV4dGVuZHMgRXZlbnRFbWl0dGluZyB7XG4gICAgZ2V0IGlzTW91c2VQcmVzc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5pc01vdXNlUHJlc3NlZDtcbiAgICB9XG4gICAgc2V0IGlzTW91c2VQcmVzc2VkKHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmlzTW91c2VQcmVzc2VkID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBjdXJzb3JMYXllcigpOiBDdXJzb3JMYXllciB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLmN1cnNvckxheWVyO1xuICAgIH1cblxuICAgIGdldCBsb29wKCk6IFJlbmRlckxvb3Age1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5sb29wO1xuICAgIH1cbiAgICBzZXQgbG9vcCh2YWw6IFJlbmRlckxvb3ApIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5sb29wID0gdmFsO1xuICAgIH1cblxuICAgIGdldCB0ZXh0YXJlYSgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbmRlcmVyLnRleHRhcmVhO1xuICAgIH1cbiAgICBzZXQgdGV4dGFyZWEodmFsOiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnRleHRhcmVhID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBsYXllckNvbmZpZygpOiBJTGF5ZXJDb25maWcge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5sYXllckNvbmZpZztcbiAgICB9XG4gICAgc2V0IGxheWVyQ29uZmlnKHZhbDogSUxheWVyQ29uZmlnKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubGF5ZXJDb25maWcgPSB2YWw7XG4gICAgfVxuXG4gICAgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcblxuICAgIHNjcm9sbGVyOiBIVE1MRWxlbWVudDtcblxuICAgIGVkZ2VzTGF5ZXI6IEVkZ2VzTGF5ZXI7XG5cbiAgICBwYWdlc0xheWVyOiBQYWdlc0xheWVyO1xuXG4gICAgc2Nyb2xsQmFyOiBTY3JvbGxCYXI7XG5cbiAgICBjYW5TY3JvbGw6IGJvb2xlYW47XG5cbiAgICBzY3JvbGxUb3AgPSAwO1xuXG4gICAgcmVuZGVyZXIhOiBSZW5kZXJlcjtcblxuICAgIGNoYW5nZXMgPSBuZXcgUmVuZGVyQ2hhbmdlc01vZGVsKCk7XG5cbiAgICBzaXplID0ge1xuICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICBzY3JvbGxlckhlaWdodDogMCxcbiAgICAgICAgc2Nyb2xsZXJXaWR0aDogMCxcbiAgICAgICAgZGlydHk6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocGFyZW50Q29udGFpbmVyOiBIVE1MRWxlbWVudCwgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gcGFyZW50Q29udGFpbmVyO1xuICAgICAgICB0aGlzLmNyZWF0ZVNjcm9sbGVyKCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIgPSBuZXcgUmVuZGVyZXIocGFyZW50Q29udGFpbmVyLCBlZGl0b3JTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5sYXllckNvbmZpZyA9IHRoaXMuZ2V0RGVmYXVsdExheWVyQ29uZmlnKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlTGF5ZXJzKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlU2Nyb2xsKCk7XG4gICAgICAgIHRoaXMuY3JlYXRlUmVuZGVyTG9vcCgpO1xuICAgIH1cblxuICAgIHJlbmRlckNoYW5nZXMoY2hhbmdlczogUmVuZGVyQ2hhbmdlc01vZGVsLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY2hhbmdlcy5hcHBseSh0aGlzLmNoYW5nZXMpO1xuICAgICAgICB0aGlzLmNoYW5nZXMgPSBuZXcgUmVuZGVyQ2hhbmdlc01vZGVsKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnJlbmRlcmVyLnNlc3Npb24gfHwgIXRoaXMuY29udGFpbmVyLm9mZnNldFdpZHRoIHx8ICghY2hhbmdlcy5hbnkgJiYgIWZvcmNlKSkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLmFwcGx5KGNoYW5nZXMpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaXplLmRpcnR5KSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXMuYXBwbHkoY2hhbmdlcyk7XG4gICAgICAgICAgICB0aGlzLm9uUmVzaXplKHRydWUpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyB0ZXh0LCBzY3JvbGxpbmcgYW5kIHJlc2l6ZSBjaGFuZ2VzIGNhbiBjYXVzZSB0aGUgdmlldyBwb3J0IHNpemUgdG8gY2hhbmdlXG4gICAgICAgIGlmIChjaGFuZ2VzLmZ1bGwgfHwgY2hhbmdlcy5zaXplIHx8IGNoYW5nZXMudGV4dCB8fCBjaGFuZ2VzLmxpbmVzIHx8IGNoYW5nZXMuc2Nyb2xsKSB7XG4gICAgICAgICAgICBjaGFuZ2VzLmFwcGx5KHRoaXMuY29tcHV0ZUxheWVyQ29uZmlnKCkpO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbEJhcigpO1xuXG4gICAgICAgICAgICBEb21IZWxwZXIudHJhbnNsYXRlKHRoaXMucmVuZGVyZXIuY29udGVudCwgMCwgLXRoaXMubGF5ZXJDb25maWcub2Zmc2V0KTtcblxuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucmVuZGVyZXIuY29udGVudC5zdHlsZSwgJ3dpZHRoJywgYCR7dGhpcy5sYXllckNvbmZpZy53aWR0aH1weGApO1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMucmVuZGVyZXIuY29udGVudC5zdHlsZSwgJ2hlaWdodCcsIGAke3RoaXMubGF5ZXJDb25maWcuaGVpZ2h0fXB4YCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBmdWxsXG4gICAgICAgIGlmIChjaGFuZ2VzLmZ1bGwpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyRnVsbCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzY3JvbGxpbmdcbiAgICAgICAgaWYgKGNoYW5nZXMuc2Nyb2xsKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlclNjcm9sbChjaGFuZ2VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyVGV4dCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuY3Vyc29yKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckN1cnNvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubWFya2VyIHx8IGNoYW5nZXMuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlclNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgYSByZXNpemUgb2YgdGhlIGVkaXRvclxuICAgICAqKi9cbiAgICBvblJlc2l6ZShmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5jb250YWluZXIuY2xpZW50SGVpZ2h0IHx8IHRoaXMuY29udGFpbmVyLnNjcm9sbEhlaWdodDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmNvbnRhaW5lci5jbGllbnRXaWR0aCB8fCB0aGlzLmNvbnRhaW5lci5zY3JvbGxXaWR0aDtcbiAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMudXBkYXRlQ2FjaGVkU2l6ZShmb3JjZSwgd2lkdGgsIGhlaWdodCk7XG4gICAgICAgIGNoYW5nZXMuYXBwbHkodGhpcy5jaGFuZ2VzKTtcblxuICAgICAgICBpZiAoZm9yY2UpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyQ2hhbmdlcyhjaGFuZ2VzLCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9vcC5zY2hlZHVsZShjaGFuZ2VzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbEJhci5zY3JvbGxUb3AgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJzIGEgcGFydGlhbCB1cGRhdGUgb2YgdGhlIHRleHQsIGZyb20gdGhlIHJhbmdlIGdpdmVuIGJ5IHRoZSB0d28gcGFyYW1ldGVycy5cbiAgICAgKiovXG4gICAgdXBkYXRlTGluZXMoZmlyc3RSb3c6IG51bWJlciwgbGFzdFJvdzogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIudXBkYXRlTGluZXMoZmlyc3RSb3csIGxhc3RSb3cpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNhY2hlZFNpemUoZm9yY2U6IGJvb2xlYW4sIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogUmVuZGVyQ2hhbmdlc01vZGVsIHtcbiAgICAgICAgaWYgKHdpZHRoICYmIChmb3JjZSB8fCB0aGlzLnNpemUud2lkdGggIT09IHdpZHRoKSkge1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMuc2Nyb2xsZXIuc3R5bGUsICdsZWZ0JywgMCk7XG4gICAgICAgICAgICB0aGlzLnNpemUuc2Nyb2xsZXJXaWR0aCA9IE1hdGgubWF4KDAsIHRoaXMuY29udGFpbmVyLnBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGggLSB0aGlzLnNjcm9sbEJhci53aWR0aCk7XG4gICAgICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUodGhpcy5zY3JvbGxlci5zdHlsZSwgJ3JpZ2h0JywgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2hhbmdlcyA9IG5ldyBSZW5kZXJDaGFuZ2VzTW9kZWwoKTtcbiAgICAgICAgaWYgKGhlaWdodCAmJiAoZm9yY2UgfHwgdGhpcy5zaXplLmhlaWdodCAhPT0gaGVpZ2h0KSkge1xuICAgICAgICAgICAgdGhpcy5zaXplLmhlaWdodCA9IGhlaWdodDtcbiAgICAgICAgICAgIGNoYW5nZXMuc2l6ZSA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuc2l6ZS5zY3JvbGxlckhlaWdodCA9IHRoaXMuc2l6ZS5oZWlnaHQ7XG4gICAgICAgICAgICBjaGFuZ2VzLnNjcm9sbCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAod2lkdGggJiYgKGZvcmNlIHx8IHRoaXMuc2l6ZS53aWR0aCAhPT0gd2lkdGgpKSB7XG4gICAgICAgICAgICB0aGlzLnNpemUud2lkdGggPSB3aWR0aDtcbiAgICAgICAgICAgIGNoYW5nZXMuc2l6ZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNpemUuZGlydHkgPSAhd2lkdGggfHwgIWhlaWdodDtcblxuICAgICAgICByZXR1cm4gY2hhbmdlcztcbiAgICB9XG5cbiAgICBtb3ZlVGV4dEFyZWFUb0N1cnNvcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNNb3VzZVByZXNzZWQgfHwgIXRoaXMudGV4dGFyZWEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjdXJzb3JQb3NpdGlvbiA9IHRoaXMuY3Vyc29yTGF5ZXIuY3Vyc29yUG9zaXRpb247XG4gICAgICAgIGlmICghY3Vyc29yUG9zaXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBvc1RvcCA9IGN1cnNvclBvc2l0aW9uLnBhZ2VZIC0gdGhpcy5sYXllckNvbmZpZy5vZmZzZXQ7XG4gICAgICAgIGlmIChwb3NUb3AgPCAwIHx8IHBvc1RvcCA+IHRoaXMubGF5ZXJDb25maWcuaGVpZ2h0IC0gdGhpcy5yZW5kZXJlci50ZXh0YXJlYVNpemUuaGVpZ2h0KSB7XG4gICAgICAgICAgICBEb21IZWxwZXIudHJhbnNsYXRlKHRoaXMudGV4dGFyZWEsIDAsIDApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMudGV4dGFyZWEuc3R5bGUsICdoZWlnaHQnLCBgJHt0aGlzLnJlbmRlcmVyLnRleHRhcmVhU2l6ZS5oZWlnaHR9cHhgKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHRoaXMudGV4dGFyZWEuc3R5bGUsICd3aWR0aCcsIGAke3RoaXMucmVuZGVyZXIudGV4dGFyZWFTaXplLndpZHRofXB4YCk7XG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUoXG4gICAgICAgICAgICB0aGlzLnRleHRhcmVhLFxuICAgICAgICAgICAgTWF0aC5taW4oY3Vyc29yUG9zaXRpb24ucGFnZVgsIHRoaXMuc2l6ZS5zY3JvbGxlcldpZHRoIC0gdGhpcy5yZW5kZXJlci50ZXh0YXJlYVNpemUud2lkdGgpLFxuICAgICAgICAgICAgTWF0aC5taW4ocG9zVG9wLCB0aGlzLnNpemUuaGVpZ2h0IC0gdGhpcy5yZW5kZXJlci50ZXh0YXJlYVNpemUuaGVpZ2h0KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldFNlc3Npb24oc2Vzc2lvbjogRWRpdFNlc3Npb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLnNldFNlc3Npb24oc2Vzc2lvbik7XG4gICAgICAgIHRoaXMuZWRnZXNMYXllci5zZXRTZXNzaW9uKHNlc3Npb24pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFNlc3Npb24oc2Vzc2lvbik7XG4gICAgICAgIHRoaXMuc2Nyb2xsQmFyLnNjcm9sbFRvcCA9IG51bGw7XG4gICAgfVxuXG4gICAgdXBkYXRlU2VsZWN0aW9uKHJhbmdlOiBSYW5nZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnVwZGF0ZVNlbGVjdGlvbihyYW5nZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgYSBmdWxsIHVwZGF0ZSBvZiB0aGUgdGV4dCwgZm9yIGFsbCB0aGUgcm93cy5cbiAgICAgKiovXG4gICAgdXBkYXRlVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci51cGRhdGVUZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcnMgYSBmdWxsIHVwZGF0ZSBvZiBhbGwgdGhlIGxheWVycywgZm9yIGFsbCB0aGUgcm93cy5cbiAgICAgKiovXG4gICAgdXBkYXRlRnVsbChmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci51cGRhdGVGdWxsKGZvcmNlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIudXBkYXRlQ3Vyc29yKCk7XG4gICAgfVxuXG4gICAgc2Nyb2xsU2VsZWN0aW9uSW50b1ZpZXcoYW5jaG9yOiBQb2ludCwgbGVhZDogUG9pbnQsIG9mZnNldD86IG51bWJlcik6IHZvaWQge1xuICAgICAgICAvLyBmaXJzdCBzY3JvbGwgYW5jaG9yIGludG8gdmlldyB0aGVuIHNjcm9sbCBsZWFkIGludG8gdmlld1xuICAgICAgICB0aGlzLnNjcm9sbEN1cnNvckludG9WaWV3KGFuY2hvciwgb2Zmc2V0KTtcbiAgICAgICAgdGhpcy5zY3JvbGxDdXJzb3JJbnRvVmlldyhsZWFkLCBvZmZzZXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNjcm9sbHMgdGhlIGN1cnNvciBpbnRvIHRoZSBmaXJzdCB2aXNpYmlsZSBhcmVhIG9mIHRoZSBlZGl0b3JcbiAgICAgKiovXG4gICAgc2Nyb2xsQ3Vyc29ySW50b1ZpZXcoY3Vyc29yPzogUG9pbnQsIG9mZnNldD86IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuc2l6ZS5zY3JvbGxlckhlaWdodCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmN1cnNvckxheWVyLmdldFBpeGVsUG9zaXRpb24oY3Vyc29yKTtcbiAgICAgICAgbGV0IHRvcCA9IHBvc2l0aW9uLnBhZ2VZICsgdGhpcy5zY3JvbGxUb3A7XG5cbiAgICAgICAgaWYgKHRoaXMuc2Nyb2xsVG9wID4gdG9wKSB7XG4gICAgICAgICAgICBpZiAob2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgdG9wIC09IG9mZnNldCAqIHRoaXMuY29udGFpbmVyLnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXNzaW9uLnNldFNjcm9sbFRvcCh0b3ApO1xuICAgICAgICAgICAgdGhpcy5sb29wLnNjaGVkdWxlKHsgc2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2Nyb2xsVG9wICsgdGhpcy5jb250YWluZXIuc2Nyb2xsSGVpZ2h0IDwgdG9wICsgcG9zaXRpb24ubGluZUhlaWdodCkge1xuICAgICAgICAgICAgaWYgKG9mZnNldCkge1xuICAgICAgICAgICAgICAgIHRvcCArPSBvZmZzZXQgKiB0aGlzLmNvbnRhaW5lci5zY3JvbGxIZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2Vzc2lvbi5zZXRTY3JvbGxUb3AodG9wICsgcG9zaXRpb24ubGluZUhlaWdodCAtIHRoaXMuY29udGFpbmVyLnNjcm9sbEhlaWdodCk7XG4gICAgICAgICAgICB0aGlzLmxvb3Auc2NoZWR1bGUoeyBzY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTY3JvbGxzIHRoZSBlZGl0b3IgdG8gdGhlIHkgcGl4ZWwgaW5kaWNhdGVkLlxuICAgICAqKi9cbiAgICBzY3JvbGxUbyhzY3JvbGxUb3A6IG51bWJlcik6IHZvaWQge1xuICAgICAgICAvLyBhZnRlciBjYWxsaW5nIHNjcm9sbEJhci5zZXRTY3JvbGxUb3BcbiAgICAgICAgLy8gc2Nyb2xsYmFyIHNlbmRzIHVzIGV2ZW50IHdpdGggc2FtZSBzY3JvbGxUb3AuIGlnbm9yZSBpdFxuICAgICAgICBpZiAodGhpcy5zY3JvbGxUb3AgPT09IHNjcm9sbFRvcCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb29wLnNjaGVkdWxlKHsgc2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTY3JvbGxzIHRoZSBlZGl0b3IgYWNyb3NzIHktYXhlLlxuICAgICAqKi9cbiAgICBzY3JvbGxCeShkZWx0YVk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIWRlbHRhWSB8fCAhdGhpcy5zY3JvbGxCYXIuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNlc3Npb24uc2V0U2Nyb2xsVG9wKHRoaXMucmVuZGVyZXIuc2Vzc2lvbi5zY3JvbGxUb3AgKyBkZWx0YVkpO1xuICAgIH1cblxuICAgIHNjcmVlblRvVGV4dENvb3JkaW5hdGVzKHg6IG51bWJlciwgeTogbnVtYmVyKTogUG9pbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci5zY3JlZW5Ub1RleHRDb29yZGluYXRlcyh4LCB5KTtcbiAgICB9XG5cbiAgICBzaG93Q3Vyc29yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNob3dDdXJzb3IoKTtcbiAgICB9XG5cbiAgICBoaWRlQ3Vyc29yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmhpZGVDdXJzb3IoKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbEJhci5yZW1vdmVBbGxMaXN0ZW5lcnMoJ3Njcm9sbCcpO1xuICAgICAgICBEb21IZWxwZXIucmVtb3ZlRWxlbWVudCh0aGlzLnNjcm9sbEJhci5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5lZGdlc0xheWVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlTGF5ZXJDb25maWcoKTogUmVuZGVyQ2hhbmdlc01vZGVsIHtcbiAgICAgICAgY29uc3QgcGFnZXNXcmFwID0gdGhpcy5yZW5kZXJlci5zZXNzaW9uLnBhZ2VzV3JhcDtcbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gcGFnZXNXcmFwLmFsbFBhZ2VzSGVpZ2h0O1xuICAgICAgICBjb25zdCBtaW5IZWlnaHQgPSBwYWdlc1dyYXAubWluSGVpZ2h0O1xuICAgICAgICBjb25zdCBzY3JvbGxIaWRkZW4gPSBtYXhIZWlnaHQgPCB0aGlzLnNpemUuc2Nyb2xsZXJIZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgbmV3U2Nyb2xsVG9wID0gTWF0aC5tYXgoTWF0aC5taW4odGhpcy5zY3JvbGxUb3AsIG1heEhlaWdodCAtIHRoaXMuc2l6ZS5zY3JvbGxlckhlaWdodCksIDApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNlc3Npb24uc2Nyb2xsVG9wID0gbmV3U2Nyb2xsVG9wO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IG5ld1Njcm9sbFRvcDtcblxuICAgICAgICBjb25zdCBjYW5TY3JvbGwgPSAhc2Nyb2xsSGlkZGVuICYmIHRoaXMuc2l6ZS5zY3JvbGxlckhlaWdodCAtIG1heEhlaWdodCA8IDA7XG4gICAgICAgIGNvbnN0IHNjcm9sbENoYW5nZWQgPSB0aGlzLmNhblNjcm9sbCAhPT0gY2FuU2Nyb2xsO1xuICAgICAgICBpZiAoc2Nyb2xsQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5jYW5TY3JvbGwgPSBjYW5TY3JvbGw7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJhci5zZXRWaXNpYmxlKGNhblNjcm9sbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGFuZ2VzID0gc2Nyb2xsQ2hhbmdlZFxuICAgICAgICAgICAgPyB0aGlzLnVwZGF0ZUNhY2hlZFNpemUodHJ1ZSwgdGhpcy5zaXplLndpZHRoLCB0aGlzLnNpemUuaGVpZ2h0KVxuICAgICAgICAgICAgOiBuZXcgUmVuZGVyQ2hhbmdlc01vZGVsKHsgc2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICBjb25zdCB2aXNpYmxlUmFuZ2UgPSBwYWdlc1dyYXAuZ2V0VmlzaWJsZVJhbmdlKHRoaXMuc2Nyb2xsVG9wLCB0aGlzLnNpemUuc2Nyb2xsZXJIZWlnaHQpO1xuICAgICAgICB0aGlzLmxheWVyQ29uZmlnID0ge1xuICAgICAgICAgICAgd2lkdGg6IHRoaXMucmVuZGVyZXIudGV4dExheWVyLmVsZW1lbnQuY2xpZW50V2lkdGggKyBwYWdlc1dyYXAuZG9jdW1lbnRNYXJnaW4ubGVmdCArIHBhZ2VzV3JhcC5kb2N1bWVudE1hcmdpbi5yaWdodCxcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5zaXplLnNjcm9sbGVySGVpZ2h0LFxuICAgICAgICAgICAgY29udGVudFJhbmdlOiBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiB2aXNpYmxlUmFuZ2Uuc3RhcnRQYXJhZ3JhcGgsIGVuZDogdmlzaWJsZVJhbmdlLmVuZFBhcmFncmFwaCB9KSxcbiAgICAgICAgICAgIG1pbkhlaWdodCxcbiAgICAgICAgICAgIG1heEhlaWdodCxcbiAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgIHZpc2libGVSYW5nZSxcbiAgICAgICAgICAgIHNjcm9sbFRvcDogdGhpcy5yZW5kZXJlci5zZXNzaW9uLnNjcm9sbFRvcCxcbiAgICAgICAgICAgIHBhZ2VzOiB2aXNpYmxlUmFuZ2UucGFnZXNcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gY2hhbmdlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNjcm9sbEJhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY3JvbGxCYXIuc2Nyb2xsSGVpZ2h0ID0gdGhpcy5sYXllckNvbmZpZy5tYXhIZWlnaHQ7XG4gICAgICAgIHRoaXMuc2Nyb2xsQmFyLnNldFNjcm9sbFRvcCh0aGlzLnNjcm9sbFRvcCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVTY3JvbGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zY3JvbGxlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLnNjcm9sbGVyLmNsYXNzTmFtZSA9ICdhY2Utc2Nyb2xsZXInO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnNjcm9sbGVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUxheWVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGdlc0xheWVyID0gbmV3IEVkZ2VzTGF5ZXIodGhpcy5yZW5kZXJlci5jb250ZW50LCB0aGlzLmVkaXRvclNlcnZpY2UpO1xuICAgICAgICB0aGlzLnBhZ2VzTGF5ZXIgPSBuZXcgUGFnZXNMYXllcih0aGlzLnJlbmRlcmVyLmNvbnRlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbEJhciA9IG5ldyBTY3JvbGxCYXIodGhpcy5jb250YWluZXIucGFyZW50RWxlbWVudCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsQmFyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIChldmVudDogeyBkYXRhOiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXNzaW9uLnNldFNjcm9sbFRvcChldmVudC5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVSZW5kZXJMb29wKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvb3AgPSBuZXcgUmVuZGVyTG9vcChjaGFuZ2VzID0+IHRoaXMucmVuZGVyQ2hhbmdlcyhjaGFuZ2VzKSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIubG9vcCA9IHRoaXMubG9vcDtcbiAgICAgICAgdGhpcy5sb29wLnNjaGVkdWxlKHsgZnVsbDogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlclNjcm9sbChjaGFuZ2VzOiBSZW5kZXJDaGFuZ2VzTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLnVwZGF0ZSh0aGlzLmxheWVyQ29uZmlnKTtcbiAgICAgICAgaWYgKGNoYW5nZXMudGV4dCB8fCBjaGFuZ2VzLmxpbmVzKSB7XG4gICAgICAgICAgICB0aGlzLmVkZ2VzTGF5ZXIudXBkYXRlKHRoaXMubGF5ZXJDb25maWcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci50ZXh0TGF5ZXIudXBkYXRlKHRoaXMubGF5ZXJDb25maWcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lZGdlc0xheWVyLnNjcm9sbFBhZ2VzKHRoaXMubGF5ZXJDb25maWcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci50ZXh0TGF5ZXIuc2Nyb2xsTGluZXModGhpcy5sYXllckNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNlbGVjdGlvbkxheWVyLnVwZGF0ZSh0aGlzLmxheWVyQ29uZmlnKTtcbiAgICAgICAgaWYgKCF0aGlzLnJlbmRlcmVyLmN1cnNvckxheWVyLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJzb3JMYXllci51cGRhdGUodGhpcy5sYXllckNvbmZpZyk7XG4gICAgICAgIHRoaXMubW92ZVRleHRBcmVhVG9DdXJzb3IoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckZ1bGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZXNMYXllci51cGRhdGUodGhpcy5sYXllckNvbmZpZyk7XG4gICAgICAgIHRoaXMuZWRnZXNMYXllci51cGRhdGUodGhpcy5sYXllckNvbmZpZyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyRnVsbCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyVGV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlc0xheWVyLnVwZGF0ZSh0aGlzLmxheWVyQ29uZmlnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW5kZXJUZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJDdXJzb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyQ3Vyc29yKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVuZGVyU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0TGF5ZXJDb25maWcoKTogSUxheWVyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLFxuICAgICAgICAgICAgY29udGVudFJhbmdlOiBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiAwLCBlbmQ6IDAgfSksXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IDEsXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IDEsXG4gICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDEsXG4gICAgICAgICAgICBzY3JvbGxUb3A6IDAsXG4gICAgICAgICAgICBwYWdlczogW10sXG4gICAgICAgICAgICB2aXNpYmxlUmFuZ2U6IHtcbiAgICAgICAgICAgICAgICBzdGFydFBhcmFncmFwaDogMCxcbiAgICAgICAgICAgICAgICBzdGFydExpbmU6IDAsXG4gICAgICAgICAgICAgICAgc3RhcnRTY3JlZW5MaW5lOiAwLFxuICAgICAgICAgICAgICAgIHN0YXJ0U2NyZWVuRnVsbExpbmU6IDAsXG4gICAgICAgICAgICAgICAgZW5kUGFyYWdyYXBoOiAwLFxuICAgICAgICAgICAgICAgIGVuZExpbmU6IDAsXG4gICAgICAgICAgICAgICAgZW5kU2NyZWVuTGluZTogMCxcbiAgICAgICAgICAgICAgICBlbmRTY3JlZW5GdWxsTGluZTogMFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ElementDataModel } from '../models/element-data.model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "@angular/material/tooltip";
8
+ export class ElementToolbarComponent {
9
+ constructor() {
10
+ this.isDisabled = false;
11
+ this.createElement = new EventEmitter();
12
+ this.isHide = false;
13
+ }
14
+ changeVisibility() {
15
+ this.isHide = !this.isHide;
16
+ }
17
+ async create(model) {
18
+ const data = await model.factoryMethod();
19
+ const element = new ElementDataModel(model.type, data.width, data.height, data.guid);
20
+ this.createElement.emit(element);
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ElementToolbarComponent, selector: "app-element-toolbar", inputs: { isDisabled: "isDisabled", elements: "elements" }, outputs: { createElement: "createElement" }, ngImport: i0, template: "<button\n class=\"menu\"\n mat-raised-button\n (click)=\"changeVisibility()\">\n <div class=\"icon\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-menu-circle\"></mat-icon>\n </div>\n</button>\n<div\n class=\"menu-items\"\n *ngIf=\"!isHide\">\n <div class=\"empty-place\"></div>\n <button\n *ngFor=\"let element of elements\"\n mat-icon-button\n matTooltip=\"{{ element.name }}\"\n matTooltipPosition=\"left\"\n (click)=\"create(element)\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{position:absolute}.mat-mdc-button.mat-mdc-button-base,.mat-mdc-raised-button.mat-mdc-button-base,.mat-mdc-unelevated-button.mat-mdc-button-base,.mat-mdc-outlined-button.mat-mdc-button-base{padding-right:21px}.menu-items{z-index:1;top:24px;position:absolute;max-width:50px;display:flex;flex-direction:column;border-radius:0 0 20px 20px;box-shadow:1px 2px 5px #0000001a}.menu-items .empty-place{height:24px}.menu{border-radius:30px 0 0 30px;min-width:56px;width:56px;height:48px;z-index:2}.menu .icon mat-icon{height:22px;width:24px;font-size:24px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementToolbarComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'app-element-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n class=\"menu\"\n mat-raised-button\n (click)=\"changeVisibility()\">\n <div class=\"icon\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"icon-menu-circle\"></mat-icon>\n </div>\n</button>\n<div\n class=\"menu-items\"\n *ngIf=\"!isHide\">\n <div class=\"empty-place\"></div>\n <button\n *ngFor=\"let element of elements\"\n mat-icon-button\n matTooltip=\"{{ element.name }}\"\n matTooltipPosition=\"left\"\n (click)=\"create(element)\"\n [disabled]=\"isDisabled\">\n <mat-icon\n fontSet=\"nc-icon\"\n fontIcon=\"{{ element.icon }}\"></mat-icon>\n </button>\n</div>\n", styles: [":host{position:absolute}.mat-mdc-button.mat-mdc-button-base,.mat-mdc-raised-button.mat-mdc-button-base,.mat-mdc-unelevated-button.mat-mdc-button-base,.mat-mdc-outlined-button.mat-mdc-button-base{padding-right:21px}.menu-items{z-index:1;top:24px;position:absolute;max-width:50px;display:flex;flex-direction:column;border-radius:0 0 20px 20px;box-shadow:1px 2px 5px #0000001a}.menu-items .empty-place{height:24px}.menu{border-radius:30px 0 0 30px;min-width:56px;width:56px;height:48px;z-index:2}.menu .icon mat-icon{height:22px;width:24px;font-size:24px}\n"] }]
28
+ }], propDecorators: { isDisabled: [{
29
+ type: Input
30
+ }], elements: [{
31
+ type: Input
32
+ }], createElement: [{
33
+ type: Output
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZWxlbWVudC10b29sYmFyL2VsZW1lbnQtdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2VsZW1lbnQtdG9vbGJhci9lbGVtZW50LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBU2hFLE1BQU0sT0FBTyx1QkFBdUI7SUFOcEM7UUFPYSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSWxCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFFL0QsV0FBTSxHQUFHLEtBQUssQ0FBQztLQVdsQjtJQVRHLGdCQUFnQjtRQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQTJCO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OEdBakJRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG9LQ1hwQyxxc0JBMEJBOzsyRkRmYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVsZW1lbnREYXRhTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZWxlbWVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEV4dGVybmFsRWxlbWVudE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1lbGVtZW50LXRvb2xiYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGVtZW50LXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VsZW1lbnQtdG9vbGJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRUb29sYmFyQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBlbGVtZW50czogRXh0ZXJuYWxFbGVtZW50TW9kZWxbXTtcblxuICAgIEBPdXRwdXQoKSBjcmVhdGVFbGVtZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxFbGVtZW50RGF0YU1vZGVsPigpO1xuXG4gICAgaXNIaWRlID0gZmFsc2U7XG5cbiAgICBjaGFuZ2VWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSGlkZSA9ICF0aGlzLmlzSGlkZTtcbiAgICB9XG5cbiAgICBhc3luYyBjcmVhdGUobW9kZWw6IEV4dGVybmFsRWxlbWVudE1vZGVsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBtb2RlbC5mYWN0b3J5TWV0aG9kKCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBuZXcgRWxlbWVudERhdGFNb2RlbChtb2RlbC50eXBlLCBkYXRhLndpZHRoLCBkYXRhLmhlaWdodCwgZGF0YS5ndWlkKTtcbiAgICAgICAgdGhpcy5jcmVhdGVFbGVtZW50LmVtaXQoZWxlbWVudCk7XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIGNsYXNzPVwibWVudVwiXG4gICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAoY2xpY2spPVwiY2hhbmdlVmlzaWJpbGl0eSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImljb25cIj5cbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBmb250U2V0PVwibmMtaWNvblwiXG4gICAgICAgICAgICBmb250SWNvbj1cImljb24tbWVudS1jaXJjbGVcIj48L21hdC1pY29uPlxuICAgIDwvZGl2PlxuPC9idXR0b24+XG48ZGl2XG4gICAgY2xhc3M9XCJtZW51LWl0ZW1zXCJcbiAgICAqbmdJZj1cIiFpc0hpZGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHktcGxhY2VcIj48L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIGVsZW1lbnRzXCJcbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIG1hdFRvb2x0aXA9XCJ7eyBlbGVtZW50Lm5hbWUgfX1cIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgKGNsaWNrKT1cImNyZWF0ZShlbGVtZW50KVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCI+XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgZm9udFNldD1cIm5jLWljb25cIlxuICAgICAgICAgICAgZm9udEljb249XCJ7eyBlbGVtZW50Lmljb24gfX1cIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,6 @@
1
+ export class ExternalElementService {
2
+ constructor() {
3
+ this.elements = [];
4
+ }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtZWxlbWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC1lbGVtZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLHNCQUFzQjtJQUFuQztRQUNJLGFBQVEsR0FBMkIsRUFBRSxDQUFDO0lBQzFDLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4dGVybmFsRWxlbWVudE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZXh0ZXJuYWwtZWxlbWVudC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxFbGVtZW50SW50ZXJmYWNlIHtcbiAgICBlbGVtZW50czogRXh0ZXJuYWxFbGVtZW50TW9kZWxbXTtcbn1cblxuZXhwb3J0IGNsYXNzIEV4dGVybmFsRWxlbWVudFNlcnZpY2UgaW1wbGVtZW50cyBFeHRlcm5hbEVsZW1lbnRJbnRlcmZhY2Uge1xuICAgIGVsZW1lbnRzOiBFeHRlcm5hbEVsZW1lbnRNb2RlbFtdID0gW107XG59XG4iXX0=
@@ -0,0 +1,4 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const EXTERNAL_ELEMENT_SIDENAV = new InjectionToken('EXTERNAL_ELEMENT_SIDENAV');
3
+ export const EXTERNAL_ELEMENT_SERVICE = new InjectionToken('EXTERNAL_ELEMENT_SERVICE');
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtZWxlbWVudHMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLWVsZW1lbnRzLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLL0MsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXVCLDBCQUEwQixDQUFDLENBQUM7QUFFN0csTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQTJCLDBCQUEwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFeHRlcm5hbEVsZW1lbnRJbnRlcmZhY2UgfSBmcm9tICcuL2V4dGVybmFsLWVsZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlcm5hbFNpZGVuYXZNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2V4dGVybmFsLXNpZGVuYXYubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgRVhURVJOQUxfRUxFTUVOVF9TSURFTkFWID0gbmV3IEluamVjdGlvblRva2VuPEV4dGVybmFsU2lkZW5hdk1vZGVsPignRVhURVJOQUxfRUxFTUVOVF9TSURFTkFWJyk7XG5cbmV4cG9ydCBjb25zdCBFWFRFUk5BTF9FTEVNRU5UX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXh0ZXJuYWxFbGVtZW50SW50ZXJmYWNlPignRVhURVJOQUxfRUxFTUVOVF9TRVJWSUNFJyk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtc2lkZW5hdi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLXNpZGVuYXYuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVybmFsU2lkZW5hdkludGVyZmFjZSB7XG4gICAgbW9kZWw6IEVsZW1lbnRNb2RlbDtcblxuICAgIGNvbnRlbnRXaWR0aDogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,41 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { BaseNoderComponent } from '../shared/abstract/base.component';
3
+ import { EditorService } from '../../interaction/editor.service';
4
+ import { ElementModel } from '../../../../models/generated/element.model';
5
+ import * as i0 from "@angular/core";
6
+ export class NoderExternalComponent extends BaseNoderComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.editorService = inject(EditorService);
10
+ }
11
+ focus() {
12
+ super.focus();
13
+ if (this.editorService.isViewOnly) {
14
+ return;
15
+ }
16
+ this.editorService.toggleSidenav(true, this.sidenavComponent, this.content, this.contentWidth);
17
+ }
18
+ blur() {
19
+ super.blur();
20
+ if (this.editorService.isViewOnly) {
21
+ return;
22
+ }
23
+ this.editorService.toggleSidenav(false, this.sidenavComponent, this.content, this.contentWidth);
24
+ }
25
+ changeElementHeight(height) {
26
+ if (this._height !== height) {
27
+ this.editorService.changeElementStyle(new ElementModel({ ...this.content, height }));
28
+ }
29
+ }
30
+ changeElementWidth(width) {
31
+ if (this._width !== width) {
32
+ this.editorService.changeElementStyle(new ElementModel({ ...this.content, width }));
33
+ }
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NoderExternalComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: NoderExternalComponent, usesInheritance: true, ngImport: i0 }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NoderExternalComponent, decorators: [{
39
+ type: Directive
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFJMUUsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxrQkFBa0I7SUFEdkU7O1FBTXVCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBNkI1RDtJQTNCWSxLQUFLO1FBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFUSxJQUFJO1FBQ1QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEY7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxZQUFZLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGO0lBQ0wsQ0FBQzs4R0FqQ2lCLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZU5vZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRXh0ZXJuYWxTaWRlbmF2SW50ZXJmYWNlIH0gZnJvbSAnLi9leHRlcm5hbC1zaWRlbmF2LmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5vZGVyRXh0ZXJuYWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlTm9kZXJDb21wb25lbnQge1xuICAgIG92ZXJyaWRlIGNvbnRlbnQ6IEVsZW1lbnRNb2RlbDtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBzaWRlbmF2Q29tcG9uZW50OiBUeXBlPEV4dGVybmFsU2lkZW5hdkludGVyZmFjZT47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yU2VydmljZSA9IGluamVjdChFZGl0b3JTZXJ2aWNlKTtcblxuICAgIG92ZXJyaWRlIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5mb2N1cygpO1xuICAgICAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmlzVmlld09ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UudG9nZ2xlU2lkZW5hdih0cnVlLCB0aGlzLnNpZGVuYXZDb21wb25lbnQsIHRoaXMuY29udGVudCwgdGhpcy5jb250ZW50V2lkdGgpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmJsdXIoKTtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5pc1ZpZXdPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoZmFsc2UsIHRoaXMuc2lkZW5hdkNvbXBvbmVudCwgdGhpcy5jb250ZW50LCB0aGlzLmNvbnRlbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgY2hhbmdlRWxlbWVudEhlaWdodChoZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faGVpZ2h0ICE9PSBoZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VFbGVtZW50U3R5bGUobmV3IEVsZW1lbnRNb2RlbCh7IC4uLnRoaXMuY29udGVudCwgaGVpZ2h0IH0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUVsZW1lbnRXaWR0aCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl93aWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VFbGVtZW50U3R5bGUobmV3IEVsZW1lbnRNb2RlbCh7IC4uLnRoaXMuY29udGVudCwgd2lkdGggfSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ export class ElementDataModel {
2
+ constructor(type, width, height, guid) {
3
+ this.type = type;
4
+ this.width = width;
5
+ this.height = height;
6
+ this.guid = guid;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9tb2RlbHMvZWxlbWVudC1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFBbUIsSUFBWSxFQUFTLEtBQWEsRUFBUyxNQUFjLEVBQVMsSUFBWTtRQUE5RSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUcsQ0FBQztDQUN4RyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFbGVtZW50RGF0YU1vZGVsIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdHlwZTogbnVtYmVyLCBwdWJsaWMgd2lkdGg6IG51bWJlciwgcHVibGljIGhlaWdodDogbnVtYmVyLCBwdWJsaWMgZ3VpZDogc3RyaW5nKSB7fVxufVxuIl19
@@ -0,0 +1,10 @@
1
+ export class ExternalElementModel {
2
+ constructor(name, icon, type, componentType, factoryMethod) {
3
+ this.name = name;
4
+ this.icon = icon;
5
+ this.type = type;
6
+ this.componentType = componentType;
7
+ this.factoryMethod = factoryMethod;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtZWxlbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLWVsZW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUNXLElBQVksRUFDWixJQUFZLEVBQ1osSUFBWSxFQUNaLGFBQXVDLEVBQ3ZDLGFBQTJGO1FBSjNGLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxrQkFBYSxHQUFiLGFBQWEsQ0FBOEU7SUFDbkcsQ0FBQztDQUNQIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlTm9kZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWJzdHJhY3QvYmFzZS5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxFbGVtZW50TW9kZWwge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgaWNvbjogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgdHlwZTogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgY29tcG9uZW50VHlwZTogVHlwZTxCYXNlTm9kZXJDb21wb25lbnQ+LFxuICAgICAgICBwdWJsaWMgZmFjdG9yeU1ldGhvZDogKCkgPT4gUHJvbWlzZTx7IGd1aWQ6IHN0cmluZzsgdHlwZTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9PlxuICAgICkge31cbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ export class ExternalSidenavModel {
2
+ constructor(fields) {
3
+ this.autoFocus = false;
4
+ this.hasBackdrop = false;
5
+ this.position = 'end';
6
+ this.mode = 'over';
7
+ if (fields) {
8
+ this.autoFocus = fields.autoFocus ?? this.autoFocus;
9
+ this.hasBackdrop = fields.hasBackdrop ?? this.hasBackdrop;
10
+ this.position = fields.position ?? this.position;
11
+ this.mode = fields.mode ?? this.mode;
12
+ }
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtc2lkZW5hdi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2N1c3RvbS1jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2V4dGVybmFsLXNpZGVuYXYubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLG9CQUFvQjtJQVM3QixZQUFtQixNQUFzQztRQVJ6RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGFBQVEsR0FBb0IsS0FBSyxDQUFDO1FBRWxDLFNBQUksR0FBb0IsTUFBTSxDQUFDO1FBRzNCLElBQUksTUFBTSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDeEM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXh0ZXJuYWxTaWRlbmF2TW9kZWwge1xuICAgIGF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gICAgaGFzQmFja2Ryb3AgPSBmYWxzZTtcblxuICAgIHBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgPSAnZW5kJztcblxuICAgIG1vZGU6ICdvdmVyJyB8ICdzaWRlJyA9ICdvdmVyJztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmaWVsZHM/OiBQYXJ0aWFsPEV4dGVybmFsU2lkZW5hdk1vZGVsPikge1xuICAgICAgICBpZiAoZmllbGRzKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9Gb2N1cyA9IGZpZWxkcy5hdXRvRm9jdXMgPz8gdGhpcy5hdXRvRm9jdXM7XG4gICAgICAgICAgICB0aGlzLmhhc0JhY2tkcm9wID0gZmllbGRzLmhhc0JhY2tkcm9wID8/IHRoaXMuaGFzQmFja2Ryb3A7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gZmllbGRzLnBvc2l0aW9uID8/IHRoaXMucG9zaXRpb247XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBmaWVsZHMubW9kZSA/PyB0aGlzLm1vZGU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=