qms-angular 1.0.50 → 1.0.54

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 (414) hide show
  1. package/bundles/qms-angular.umd.js +19558 -11339
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/app-icon/app-icon.module.js +29 -16
  4. package/esm2015/lib/components/app-icon/icon-registry.service.js +9 -7
  5. package/esm2015/lib/components/badges/index.js +2 -0
  6. package/esm2015/lib/components/badges/models/qms-badges.model.js +13 -0
  7. package/esm2015/lib/components/badges/public_api.js +3 -0
  8. package/esm2015/lib/components/badges/qms-badges.component.js +38 -0
  9. package/esm2015/lib/components/badges/qms-badges.module.js +41 -0
  10. package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +28 -16
  11. package/esm2015/lib/components/banner/qms-banner/qms-banner.module.js +36 -19
  12. package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +28 -16
  13. package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.js +36 -19
  14. package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.component.js +19 -13
  15. package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.module.js +30 -17
  16. package/esm2015/lib/components/breadcrumb/breadcrumb-direction-icon.directive.js +11 -10
  17. package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +20 -17
  18. package/esm2015/lib/components/breadcrumb/breadcrumb.js +40 -28
  19. package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +50 -26
  20. package/esm2015/lib/components/button/button-toggle.js +120 -85
  21. package/esm2015/lib/components/button/button.js +86 -78
  22. package/esm2015/lib/components/button/button.module.js +51 -27
  23. package/esm2015/lib/components/comment/comment.js +29 -18
  24. package/esm2015/lib/components/dialog/dialog.js +38 -28
  25. package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +24 -16
  26. package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.js +71 -31
  27. package/esm2015/lib/components/list/list.js +101 -89
  28. package/esm2015/lib/components/list/list.module.js +94 -50
  29. package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +55 -29
  30. package/esm2015/lib/components/qms-app-bar/qms-app-bar.module.js +39 -20
  31. package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +32 -22
  32. package/esm2015/lib/components/qms-stepper/qms-stepper.module.js +35 -25
  33. package/esm2015/lib/components/related/content/related-content.component.js +19 -12
  34. package/esm2015/lib/components/related/list-other-related/list-related.component.js +29 -25
  35. package/esm2015/lib/components/related/popup/related-popup.component.js +50 -33
  36. package/esm2015/lib/components/related/related.module.js +97 -44
  37. package/esm2015/lib/components/related/risk/analysis/analysis.component.js +23 -17
  38. package/esm2015/lib/components/related/risk/list/list.component.js +22 -18
  39. package/esm2015/lib/components/related/risk/result/result.component.js +23 -16
  40. package/esm2015/lib/components/related/service/related-global.service.js +7 -6
  41. package/esm2015/lib/components/related/sidenav/sidenav.component.js +21 -12
  42. package/esm2015/lib/components/related/tree/tree.component.js +54 -41
  43. package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +22 -18
  44. package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +22 -18
  45. package/esm2015/lib/components/reports/qms-reports.module.js +29 -20
  46. package/esm2015/lib/components/rich-text/rich-text.js +47 -32
  47. package/esm2015/lib/components/rich-text/rich-text.module.js +35 -21
  48. package/esm2015/lib/components/select-dialog/select-dialog.js +31 -16
  49. package/esm2015/lib/components/suffix-field/suffix-field.directive.js +22 -21
  50. package/esm2015/lib/components/table/table-action.js +31 -31
  51. package/esm2015/lib/components/table/table.module.js +37 -21
  52. package/esm2015/lib/components/test-only/test-only.component.js +14 -11
  53. package/esm2015/lib/components/tooltip/tooltip.js +24 -19
  54. package/esm2015/lib/components/tooltip/tooltip.module.js +38 -20
  55. package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +22 -16
  56. package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.js +71 -31
  57. package/esm2015/lib/directives/chip-input/chip-input-chip-list.directive.js +13 -13
  58. package/esm2015/lib/directives/chip-input/chip-input-field.directive.js +11 -10
  59. package/esm2015/lib/directives/chip-input/chip-input-select-dropdown.directive.js +11 -10
  60. package/esm2015/lib/directives/chip-input/chip-input-select-field.directive.js +17 -14
  61. package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +14 -13
  62. package/esm2015/lib/directives/chips/chip-body.directive.js +11 -10
  63. package/esm2015/lib/directives/chips/chip.directive.js +13 -13
  64. package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +16 -14
  65. package/esm2015/lib/directives/file-upload/file-upload-attachment-list.directive.js +11 -10
  66. package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +19 -16
  67. package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +16 -14
  68. package/esm2015/lib/directives/file-upload/file-upload-multiple-selector.directive.js +26 -20
  69. package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +19 -15
  70. package/esm2015/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.js +11 -10
  71. package/esm2015/lib/directives/file-upload/file-upload-selector.directive.js +25 -18
  72. package/esm2015/lib/directives/file-upload/file-upload.directive.js +24 -20
  73. package/esm2015/lib/directives/form.directive.js +48 -51
  74. package/esm2015/lib/directives/margin.directive.js +15 -14
  75. package/esm2015/lib/directives/range-slider/range-slider-lockup.directive.js +11 -10
  76. package/esm2015/lib/directives/range-slider/range-slider.directive.js +17 -14
  77. package/esm2015/lib/directives/scroll-selected/scroll-to-selected.directive.js +16 -15
  78. package/esm2015/lib/directives/scrollbar/scrollbar.directive.js +13 -13
  79. package/esm2015/lib/directives/search-field.directive.js +21 -22
  80. package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +11 -10
  81. package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +11 -10
  82. package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +11 -10
  83. package/esm2015/lib/directives/side-sheet/drawer.directive.js +11 -10
  84. package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +15 -14
  85. package/esm2015/lib/directives/tab/tab-group.directive.js +11 -10
  86. package/esm2015/lib/directives/tab/tab-label.directive.js +11 -10
  87. package/esm2015/lib/directives/text-block/text-block-line.directive.js +20 -16
  88. package/esm2015/lib/directives/text-block/text-block.directive.js +17 -14
  89. package/esm2015/lib/directives/tooltip/tooltip-image.directive.js +14 -13
  90. package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +35 -22
  91. package/esm2015/lib/material-module.js +35 -16
  92. package/esm2015/lib/model/en.js +35 -4
  93. package/esm2015/lib/model/no.js +34 -3
  94. package/esm2015/lib/pipe/dateFormat.pipe.js +11 -10
  95. package/esm2015/lib/qms-angular.component.js +13 -11
  96. package/esm2015/lib/qms-angular.module.js +232 -121
  97. package/esm2015/lib/qms-angular.service.js +9 -8
  98. package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +32 -12
  99. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +5 -1
  100. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +10 -1
  101. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.js +7 -0
  102. package/esm2015/lib/qms-ckeditor-components/common/enums/document-type.enum.js +2 -1
  103. package/esm2015/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.js +8 -0
  104. package/esm2015/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.js +16 -0
  105. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/halo-service.js +105 -0
  106. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.js +3762 -0
  107. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.js +68 -0
  108. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +372 -0
  109. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.js +1041 -0
  110. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.js +326 -0
  111. package/esm2015/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.js +318 -0
  112. package/esm2015/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.js +80 -0
  113. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
  114. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.js +9 -0
  115. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.js +9 -0
  116. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +3 -0
  117. package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +23 -16
  118. package/esm2015/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.js +34 -19
  119. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +43 -0
  120. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +577 -53
  121. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +69 -35
  122. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +322 -0
  123. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.js +12 -8
  124. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +39 -30
  125. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +22 -18
  126. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +29 -20
  127. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +22 -18
  128. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +35 -23
  129. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +30 -20
  130. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +27 -18
  131. package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.js +8 -0
  132. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor-base.component.js +7 -4
  133. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +118 -44
  134. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +131 -55
  135. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.js +10 -10
  136. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.js +9 -9
  137. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +66 -26
  138. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.js +26 -0
  139. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.js +9 -8
  140. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.js +9 -9
  141. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +9 -9
  142. package/esm2015/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.js +9 -9
  143. package/esm2015/lib/services/translation-registry.service.js +9 -8
  144. package/esm2015/lib/shared.module.js +9 -4
  145. package/esm2015/public-api.js +17 -1
  146. package/esm2015/qms-angular.js +1 -9
  147. package/fesm2015/qms-angular.js +10820 -2740
  148. package/fesm2015/qms-angular.js.map +1 -1
  149. package/lib/components/app-icon/app-icon.module.d.ts +7 -0
  150. package/lib/components/app-icon/icon-registry.service.d.ts +3 -0
  151. package/lib/components/badges/index.d.ts +1 -0
  152. package/lib/components/badges/models/qms-badges.model.d.ts +10 -0
  153. package/lib/components/badges/public_api.d.ts +2 -0
  154. package/lib/components/badges/qms-badges.component.d.ts +15 -0
  155. package/lib/components/badges/qms-badges.module.d.ts +11 -0
  156. package/lib/components/banner/qms-banner/qms-banner.component.d.ts +3 -0
  157. package/lib/components/banner/qms-banner/qms-banner.module.d.ts +10 -0
  158. package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.d.ts +3 -0
  159. package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.d.ts +10 -0
  160. package/lib/components/banner/qms-banner-loading/qms-banner-loading.component.d.ts +3 -0
  161. package/lib/components/banner/qms-banner-loading/qms-banner-loading.module.d.ts +8 -0
  162. package/lib/components/breadcrumb/breadcrumb-direction-icon.directive.d.ts +3 -0
  163. package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +3 -0
  164. package/lib/components/breadcrumb/breadcrumb.d.ts +3 -0
  165. package/lib/components/breadcrumb/breadcrumb.module.d.ts +13 -0
  166. package/lib/components/button/button-toggle.d.ts +5 -0
  167. package/lib/components/button/button.d.ts +7 -0
  168. package/lib/components/button/button.module.d.ts +9 -0
  169. package/lib/components/comment/comment.d.ts +3 -0
  170. package/lib/components/dialog/dialog.d.ts +5 -0
  171. package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +3 -0
  172. package/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.d.ts +16 -0
  173. package/lib/components/list/list.d.ts +15 -0
  174. package/lib/components/list/list.module.d.ts +11 -0
  175. package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +3 -0
  176. package/lib/components/qms-app-bar/qms-app-bar.module.d.ts +12 -0
  177. package/lib/components/qms-stepper/qms-stepper.component.d.ts +3 -0
  178. package/lib/components/qms-stepper/qms-stepper.module.d.ts +8 -0
  179. package/lib/components/related/content/related-content.component.d.ts +3 -0
  180. package/lib/components/related/list-other-related/list-related.component.d.ts +3 -0
  181. package/lib/components/related/popup/related-popup.component.d.ts +3 -0
  182. package/lib/components/related/related.module.d.ts +29 -0
  183. package/lib/components/related/risk/analysis/analysis.component.d.ts +3 -0
  184. package/lib/components/related/risk/list/list.component.d.ts +3 -0
  185. package/lib/components/related/risk/result/result.component.d.ts +3 -0
  186. package/lib/components/related/service/related-global.service.d.ts +3 -0
  187. package/lib/components/related/sidenav/sidenav.component.d.ts +3 -0
  188. package/lib/components/related/tree/tree.component.d.ts +3 -0
  189. package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +3 -0
  190. package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +3 -0
  191. package/lib/components/reports/qms-reports.module.d.ts +7 -0
  192. package/lib/components/rich-text/rich-text.d.ts +3 -0
  193. package/lib/components/rich-text/rich-text.module.d.ts +8 -0
  194. package/lib/components/select-dialog/select-dialog.d.ts +3 -0
  195. package/lib/components/suffix-field/suffix-field.directive.d.ts +5 -0
  196. package/lib/components/table/table-action.d.ts +5 -0
  197. package/lib/components/table/table.module.d.ts +8 -0
  198. package/lib/components/test-only/test-only.component.d.ts +3 -0
  199. package/lib/components/tooltip/tooltip.d.ts +3 -0
  200. package/lib/components/tooltip/tooltip.module.d.ts +9 -0
  201. package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +3 -0
  202. package/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.d.ts +16 -0
  203. package/lib/directives/chip-input/chip-input-chip-list.directive.d.ts +3 -0
  204. package/lib/directives/chip-input/chip-input-field.directive.d.ts +3 -0
  205. package/lib/directives/chip-input/chip-input-select-dropdown.directive.d.ts +3 -0
  206. package/lib/directives/chip-input/chip-input-select-field.directive.d.ts +3 -0
  207. package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +3 -0
  208. package/lib/directives/chips/chip-body.directive.d.ts +3 -0
  209. package/lib/directives/chips/chip.directive.d.ts +3 -0
  210. package/lib/directives/dropdown-menu/dropdown-item.directive.d.ts +3 -0
  211. package/lib/directives/file-upload/file-upload-attachment-list.directive.d.ts +3 -0
  212. package/lib/directives/file-upload/file-upload-display.directive.d.ts +3 -0
  213. package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +3 -0
  214. package/lib/directives/file-upload/file-upload-multiple-selector.directive.d.ts +3 -0
  215. package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +3 -0
  216. package/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.d.ts +3 -0
  217. package/lib/directives/file-upload/file-upload-selector.directive.d.ts +3 -0
  218. package/lib/directives/file-upload/file-upload.directive.d.ts +5 -0
  219. package/lib/directives/form.directive.d.ts +11 -0
  220. package/lib/directives/margin.directive.d.ts +3 -0
  221. package/lib/directives/range-slider/range-slider-lockup.directive.d.ts +3 -0
  222. package/lib/directives/range-slider/range-slider.directive.d.ts +3 -0
  223. package/lib/directives/scroll-selected/scroll-to-selected.directive.d.ts +3 -0
  224. package/lib/directives/scrollbar/scrollbar.directive.d.ts +3 -0
  225. package/lib/directives/search-field.directive.d.ts +5 -0
  226. package/lib/directives/side-sheet/drawer-content.directive.d.ts +3 -0
  227. package/lib/directives/side-sheet/drawer-header-action.directive.d.ts +3 -0
  228. package/lib/directives/side-sheet/drawer-header.directive.d.ts +3 -0
  229. package/lib/directives/side-sheet/drawer.directive.d.ts +3 -0
  230. package/lib/directives/tab/tab-group-advanced.directive.d.ts +3 -0
  231. package/lib/directives/tab/tab-group.directive.d.ts +3 -0
  232. package/lib/directives/tab/tab-label.directive.d.ts +3 -0
  233. package/lib/directives/text-block/text-block-line.directive.d.ts +3 -0
  234. package/lib/directives/text-block/text-block.directive.d.ts +3 -0
  235. package/lib/directives/tooltip/tooltip-image.directive.d.ts +3 -0
  236. package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +3 -0
  237. package/lib/material-module.d.ts +12 -0
  238. package/lib/model/en.d.ts +31 -0
  239. package/lib/model/no.d.ts +31 -0
  240. package/lib/pipe/dateFormat.pipe.d.ts +3 -0
  241. package/lib/qms-angular.component.d.ts +3 -0
  242. package/lib/qms-angular.module.d.ts +49 -0
  243. package/lib/qms-angular.service.d.ts +3 -0
  244. package/lib/qms-ckeditor-components/common/bpmn/toolbar.function.d.ts +2 -2
  245. package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +4 -0
  246. package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +9 -0
  247. package/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.d.ts +6 -0
  248. package/lib/qms-ckeditor-components/common/enums/document-type.enum.d.ts +1 -0
  249. package/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.d.ts +6 -0
  250. package/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.d.ts +14 -0
  251. package/lib/qms-ckeditor-components/common/flowchart/service/halo-service.d.ts +48 -0
  252. package/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.d.ts +18 -0
  253. package/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.d.ts +17 -0
  254. package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +62 -0
  255. package/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.d.ts +1183 -0
  256. package/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.d.ts +216 -0
  257. package/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.d.ts +61 -0
  258. package/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.d.ts +36 -0
  259. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.d.ts +7 -0
  260. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.d.ts +7 -0
  261. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +7 -0
  262. package/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.d.ts +3 -0
  263. package/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.d.ts +3 -0
  264. package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +18 -0
  265. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +88 -4
  266. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +11 -2
  267. package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +44 -0
  268. package/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.d.ts +3 -0
  269. package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +3 -0
  270. package/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.d.ts +3 -0
  271. package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +3 -0
  272. package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +3 -0
  273. package/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.d.ts +4 -0
  274. package/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.d.ts +3 -0
  275. package/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.d.ts +3 -0
  276. package/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.d.ts +7 -0
  277. package/lib/qms-ckeditor-components/qms-ckeditor-base.component.d.ts +3 -0
  278. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +8 -0
  279. package/lib/qms-ckeditor-components/qms-ckeditor.module.d.ts +44 -0
  280. package/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.d.ts +3 -0
  281. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.d.ts +3 -0
  282. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +4 -0
  283. package/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.d.ts +13 -0
  284. package/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.d.ts +3 -0
  285. package/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.d.ts +3 -0
  286. package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +3 -0
  287. package/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.d.ts +3 -0
  288. package/lib/services/translation-registry.service.d.ts +3 -0
  289. package/lib/shared.module.d.ts +4 -0
  290. package/lib.theme.scss +8 -0
  291. package/package.json +1 -2
  292. package/public-api.d.ts +15 -0
  293. package/qms-angular.d.ts +1 -8
  294. package/src/assets/images/ckeditor5.svg +1 -0
  295. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Bold.ttf +0 -0
  296. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Light.ttf +0 -0
  297. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Regular.ttf +0 -0
  298. package/src/assets/jointjs/fonts/Alegreya_Sans/OFL.txt +92 -0
  299. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Bold.ttf +0 -0
  300. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Light.ttf +0 -0
  301. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Regular.ttf +0 -0
  302. package/src/assets/jointjs/fonts/Averia_Libre/OFL.txt +93 -0
  303. package/src/assets/jointjs/fonts/Roboto_Condensed/LICENSE.txt +202 -0
  304. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf +0 -0
  305. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Light.ttf +0 -0
  306. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf +0 -0
  307. package/src/assets/jointjs/images/delete-icon-modern.png +0 -0
  308. package/src/assets/jointjs/images/image-icon1.svg +1 -0
  309. package/src/assets/jointjs/images/image-icon2.svg +6 -0
  310. package/src/assets/jointjs/images/image-icon3.svg +11 -0
  311. package/src/assets/jointjs/images/image-icon4.svg +8 -0
  312. package/src/assets/jointjs/images/member-female.png +0 -0
  313. package/src/assets/jointjs/images/member-male.png +0 -0
  314. package/src/assets/jointjs/images/no-color-icon.svg +72 -0
  315. package/src/assets/jointjs/images/reset-icon-modern.png +0 -0
  316. package/src/assets/jointjs/images/save-icon-modern.png +0 -0
  317. package/src/assets/jointjs/images/to-front-icon-modern.png +0 -0
  318. package/src/assets/jointjs/images/toback-icon-modern.png +0 -0
  319. package/src/assets/jointjs/images/toolbar-icons-dark.woff +0 -0
  320. package/src/assets/jointjs/images/toolbar-icons-material.png +0 -0
  321. package/src/assets/jointjs/images/toolbar-icons-modern.png +0 -0
  322. package/src/assets/jointjs/images/transparent-icon.svg +50 -0
  323. package/src/assets/jointjs/scss/bpmn.scss +36 -35
  324. package/src/assets/jointjs/scss/style.dark.scss +233 -0
  325. package/src/assets/jointjs/scss/style.material.scss +234 -0
  326. package/src/assets/jointjs/scss/style.modern.scss +225 -0
  327. package/src/assets/jointjs/scss/style.scss +216 -0
  328. package/src/assets/jointjs/scss/theme-picker.scss +21 -0
  329. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -2
  330. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  331. package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
  332. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
  333. package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
  334. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
  335. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
  336. package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
  337. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
  338. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
  339. package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
  340. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
  341. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
  342. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
  343. package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
  344. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
  345. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
  346. package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
  347. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
  348. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
  349. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
  350. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
  351. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
  352. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
  353. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
  354. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
  355. package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
  356. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
  357. package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
  358. package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
  359. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
  360. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
  361. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
  362. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
  363. package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
  364. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
  365. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
  366. package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
  367. package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
  368. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
  369. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
  370. package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
  371. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
  372. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
  373. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
  374. package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
  375. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
  376. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
  377. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
  378. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
  379. package/src/assets/qms-ckeditor-plugin/package-lock.json +12198 -9
  380. package/src/assets/qms-ckeditor-plugin/package.json +1 -0
  381. package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +22 -5
  382. package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +173 -0
  383. package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +28 -0
  384. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +24 -5
  385. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +7 -1
  386. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +20 -0
  387. package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/qmsCKEditorFlowchartPlugin.js +63 -0
  388. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/dist/qmsCKEditorFullscreenPlugin.dev.js +87 -0
  389. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapediting.js +47 -43
  390. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +1 -1
  391. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +72 -108
  392. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/openimagemapcommand.js +58 -0
  393. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +4 -3
  394. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +13 -0
  395. package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +8 -8
  396. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +23 -24
  397. package/src/assets/qms-ckeditor-plugin/src/themes/icons/flowchart.svg +507 -0
  398. package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +1 -50
  399. package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
  400. package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +1 -0
  401. package/src/lib/components/badges/_qms-badges-base.scss +122 -0
  402. package/src/lib/components/badges/qms-badges.component.scss +89 -0
  403. package/src/lib/components/list/_list-base.scss +1 -0
  404. package/src/lib/components/list/list.scss +2 -2
  405. package/src/lib/components/related/popup/related-popup.component.scss +1 -1
  406. package/src/lib/components/related/tree/tree.component.scss +1 -1
  407. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +16 -0
  408. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +15 -1
  409. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.scss +5 -0
  410. package/src/lib/qms-ckeditor-components/styles/_layout.scss +24 -0
  411. package/src/lib/qms-ckeditor-components/styles/_modules.scss +8 -0
  412. package/src/themes/_color.scss +1 -1
  413. package/src/themes/_scrollbar.scss +5 -5
  414. package/qms-angular.metadata.json +0 -1
@@ -1,27 +1,44 @@
1
1
  import { Component, Inject } from "@angular/core";
2
2
  import { FormControl, FormGroup, Validators } from "@angular/forms";
3
- import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
3
+ import { MAT_DIALOG_DATA } from "@angular/material/dialog";
4
4
  import { takeUntil } from "rxjs/operators";
5
- import { TranslateLibraryService } from "../../../../services/translation-registry.service";
5
+ import { CKEditorEventConst } from "../../../common/constants/ckeditorEvent.constant";
6
6
  import { QMSCKEditorBpmn } from "../../../common/models/qms-ckeditor-bpmn.model";
7
+ import { QMSCKEditorFlowchart } from "../../../common/models/qms-ckeditor-flowchart.model";
7
8
  import { QMSCKEditorToastService } from "../../../common/toast/qms-ckeditor-toast.service";
8
9
  import { QMSCKEditorBaseComponent } from "../../../qms-ckeditor-base.component";
9
- import { QMSCKEditorBpmnApiService } from "../../../services/qms-ckeditor-bpmn-api.service";
10
- import { BpmnService } from "../../../services/qms-ckeditor-bpmn.service";
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../../../services/translation-registry.service";
12
+ import * as i2 from "../../../services/qms-ckeditor-bpmn.service";
13
+ import * as i3 from "../../../services/qms-ckeditor-bpmn-api.service";
14
+ import * as i4 from "../../../services/qms-ckeditor-flowchart.service";
15
+ import * as i5 from "@angular/material/dialog";
16
+ import * as i6 from "@angular/material/icon";
17
+ import * as i7 from "@angular/material/form-field";
18
+ import * as i8 from "@angular/material/button";
19
+ import * as i9 from "@angular/forms";
20
+ import * as i10 from "@angular/material/input";
21
+ import * as i11 from "@angular/common";
22
+ import * as i12 from "../../../common/models/qms-ckeditor-save-as-template.model";
11
23
  export class SaveTemplateComponent extends QMSCKEditorBaseComponent {
12
- constructor(translate, bmpnService, bpmnApiService, dialogRef, data) {
24
+ constructor(translate, bmpnService, bpmnApiService, flowchartService, dialogRef, data) {
13
25
  super();
14
26
  this.translate = translate;
15
27
  this.bmpnService = bmpnService;
16
28
  this.bpmnApiService = bpmnApiService;
29
+ this.flowchartService = flowchartService;
17
30
  this.dialogRef = dialogRef;
18
31
  this.data = data;
19
32
  this.saveFormGroup = new FormGroup({
20
33
  templateName: new FormControl('', [Validators.required])
21
34
  });
35
+ this.templateType = '';
22
36
  this.templateName = '';
23
37
  this.bpmn = new QMSCKEditorBpmn();
24
- this.bpmn = data;
38
+ this.flowchart = new QMSCKEditorFlowchart();
39
+ this.templateType = data.templateType;
40
+ this.bpmn = data.bpmn;
41
+ this.flowchart = data.flowchart;
25
42
  }
26
43
  ngOnInit() {
27
44
  this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
@@ -31,37 +48,54 @@ export class SaveTemplateComponent extends QMSCKEditorBaseComponent {
31
48
  });
32
49
  }
33
50
  saveTemplate() {
34
- this.bpmn.templateName = this.templateName;
35
- this.bpmnApiService
36
- .bpmnModifying(this.bpmn)
37
- .pipe(takeUntil(this.ngUnsubcribe))
38
- .subscribe((result) => {
39
- if (result) {
40
- this.bmpnService.addItemTemplate(result, this.bpmn);
41
- QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);
42
- this.onCloseDialog();
43
- }
44
- else {
45
- QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);
46
- }
47
- });
51
+ if (this.templateType === CKEditorEventConst.QMSCK_BPMN) {
52
+ this.bpmn.templateName = this.templateName;
53
+ this.bpmnApiService
54
+ .bpmnModifying(this.bpmn)
55
+ .pipe(takeUntil(this.ngUnsubcribe))
56
+ .subscribe((result) => {
57
+ if (result) {
58
+ this.bmpnService.addItemTemplate(result, this.bpmn);
59
+ QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);
60
+ this.onCloseDialog();
61
+ }
62
+ else {
63
+ QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);
64
+ }
65
+ });
66
+ }
67
+ else if (this.templateType === CKEditorEventConst.QMSCK_FLOWCHART) {
68
+ this.flowchart.templateName = this.templateName;
69
+ this.flowchartService
70
+ .flowchartModifying(this.flowchart)
71
+ .pipe(takeUntil(this.ngUnsubcribe))
72
+ .subscribe((result) => {
73
+ if (result) {
74
+ QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.SAVED);
75
+ this.flowchart.id = result;
76
+ this.dialogRef.close(this.flowchart);
77
+ }
78
+ else {
79
+ QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.SAVE_FAILED);
80
+ }
81
+ });
82
+ }
48
83
  }
49
84
  onCloseDialog() {
50
85
  this.dialogRef.close();
51
86
  }
52
87
  }
53
- SaveTemplateComponent.decorators = [
54
- { type: Component, args: [{
55
- selector: 'save-template',
56
- template: "<div\r\n id=\"qmsckeditor-bpmn\"\r\n class=\"qmsckeditor qmsckeditor__savetemplate__container\"\r\n>\r\n <div id=\"qmsckeditor-load-template-header\">\r\n <span\r\n id=\"qmsckeditor-bpmn-header_001\"\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-load-template-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-template_002_001\">Save as template</h2>\r\n </div>\r\n\r\n <form [formGroup]=\"saveFormGroup\">\r\n <div\r\n id=\"qmsckeditor-save-as-content\"\r\n class=\"qmsckeditor save__as__template height\"\r\n >\r\n <div id=\"qmsckeditor-save-as-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <div id=\"qmsckeditor-save-as-panel_001\">\r\n <div id=\"qmsckeditor-save-as-panel_001_001\">\r\n <mat-form-field class=\"col-12 pl-0 pr-0\" appearance=\"fill\">\r\n <mat-label>{{ LANG.BPMN.TEMPLATE_NAME }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"templateName\"\r\n [(ngModel)]=\"templateName\"\r\n />\r\n <mat-error\r\n *ngIf=\"saveFormGroup.get('templateName').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n id=\"qmsckeditor-save-as-panel_001_003\"\r\n class=\"qmsckeditor button__groups row mr-0 ml-0\"\r\n >\r\n <div class=\"col-6 pr-0\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"saveTemplate()\"\r\n [disabled]=\"saveFormGroup.invalid\"\r\n >\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pl-0\">\r\n <button\r\n class=\"cancel\"\r\n mat-flat-button\r\n (click)=\"onCloseDialog()\"\r\n >\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n",
57
- styles: [""]
58
- },] }
59
- ];
60
- SaveTemplateComponent.ctorParameters = () => [
61
- { type: TranslateLibraryService },
62
- { type: BpmnService },
63
- { type: QMSCKEditorBpmnApiService },
64
- { type: MatDialogRef },
65
- { type: QMSCKEditorBpmn, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
66
- ];
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWJwbW4vc2F2ZS10ZW1wbGF0ZS9zYXZlLXRlbXBsYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBUTFFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx3QkFBd0I7SUFRakUsWUFDVSxTQUFrQyxFQUNsQyxXQUF3QixFQUN4QixjQUF5QyxFQUMxQyxTQUE4QyxFQUNyQixJQUFxQjtRQUVyRCxLQUFLLEVBQUUsQ0FBQztRQU5BLGNBQVMsR0FBVCxTQUFTLENBQXlCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQUMxQyxjQUFTLEdBQVQsU0FBUyxDQUFxQztRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQVh2RCxrQkFBYSxHQUFjLElBQUksU0FBUyxDQUFDO1lBQ3ZDLFlBQVksRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDekQsQ0FBQyxDQUFDO1FBQ0gsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBVTVDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3RGLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDL0M7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYzthQUNoQixhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwRCx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QjtpQkFBTTtnQkFDTCx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDbEU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7WUFuREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6Qix1OEVBQTZDOzthQUU5Qzs7O1lBWFEsdUJBQXVCO1lBS3ZCLFdBQVc7WUFEWCx5QkFBeUI7WUFOekIsWUFBWTtZQUdaLGVBQWUsdUJBeUJuQixNQUFNLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJwbW4gfSBmcm9tIFwiLi4vLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItYnBtbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRvYXN0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vdG9hc3QvcW1zLWNrZWRpdG9yLXRvYXN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJwbW5BcGlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci1icG1uLWFwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEJwbW5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3Ftcy1ja2VkaXRvci1icG1uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2F2ZS10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NhdmUtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NhdmUtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgTEFORzogYW55O1xyXG4gIHNhdmVGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgdGVtcGxhdGVOYW1lOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcclxuICB9KTtcclxuICB0ZW1wbGF0ZU5hbWUgPSAnJztcclxuICBicG1uOiBRTVNDS0VkaXRvckJwbW4gPSBuZXcgUU1TQ0tFZGl0b3JCcG1uKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBibXBuU2VydmljZTogQnBtblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJwbW5BcGlTZXJ2aWNlOiBRTVNDS0VkaXRvckJwbW5BcGlTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNhdmVUZW1wbGF0ZUNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFFNU0NLRWRpdG9yQnBtblxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuYnBtbiA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNhdmVUZW1wbGF0ZSgpIHtcclxuICAgIHRoaXMuYnBtbi50ZW1wbGF0ZU5hbWUgPSB0aGlzLnRlbXBsYXRlTmFtZTtcclxuICAgIHRoaXMuYnBtbkFwaVNlcnZpY2VcclxuICAgICAgLmJwbW5Nb2RpZnlpbmcodGhpcy5icG1uKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmJtcG5TZXJ2aWNlLmFkZEl0ZW1UZW1wbGF0ZShyZXN1bHQsIHRoaXMuYnBtbik7XHJcbiAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMuTEFORy5RTVNDS0VESVRPUi5TQVZFRCk7XHJcbiAgICAgICAgICB0aGlzLm9uQ2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgUU1TQ0tFZGl0b3JUb2FzdFNlcnZpY2UuZXJyb3IodGhpcy5MQU5HLlFNU0NLRURJVE9SLlNBVkVfRkFJTEVEKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
88
+ SaveTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SaveTemplateComponent, deps: [{ token: i1.TranslateLibraryService }, { token: i2.BpmnService }, { token: i3.QMSCKEditorBpmnApiService }, { token: i4.QMSCKEditorFlowchartService }, { token: i5.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
89
+ SaveTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: SaveTemplateComponent, selector: "save-template", usesInheritance: true, ngImport: i0, template: "<div\r\n id=\"qmsckeditor-bpmn\"\r\n class=\"qmsckeditor qmsckeditor__savetemplate__container\"\r\n>\r\n <div id=\"qmsckeditor-load-template-header\">\r\n <span\r\n id=\"qmsckeditor-bpmn-header_001\"\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-load-template-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-template_002_001\">Save as template</h2>\r\n </div>\r\n\r\n <form [formGroup]=\"saveFormGroup\">\r\n <div\r\n id=\"qmsckeditor-save-as-content\"\r\n class=\"qmsckeditor save__as__template height\"\r\n >\r\n <div id=\"qmsckeditor-save-as-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <div id=\"qmsckeditor-save-as-panel_001\">\r\n <div id=\"qmsckeditor-save-as-panel_001_001\">\r\n <mat-form-field class=\"col-12 pl-0 pr-0\" appearance=\"fill\">\r\n <mat-label>{{ LANG.BPMN.TEMPLATE_NAME }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"templateName\"\r\n [(ngModel)]=\"templateName\"\r\n />\r\n <mat-error\r\n *ngIf=\"saveFormGroup.get('templateName').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div\r\n id=\"qmsckeditor-save-as-panel_001_003\"\r\n class=\"qmsckeditor button__groups row mr-0 ml-0\"\r\n >\r\n <div class=\"col-6 pr-0\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"saveTemplate()\"\r\n [disabled]=\"saveFormGroup.invalid\"\r\n >\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pl-0\">\r\n <button\r\n class=\"cancel\"\r\n mat-flat-button\r\n (click)=\"onCloseDialog()\"\r\n >\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [""], components: [{ type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.MatLabel, selector: "mat-label" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatError, selector: "mat-error", inputs: ["id"] }] });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: SaveTemplateComponent, decorators: [{
91
+ type: Component,
92
+ args: [{
93
+ selector: 'save-template',
94
+ templateUrl: './save-template.component.html',
95
+ styleUrls: ['./save-template.component.scss']
96
+ }]
97
+ }], ctorParameters: function () { return [{ type: i1.TranslateLibraryService }, { type: i2.BpmnService }, { type: i3.QMSCKEditorBpmnApiService }, { type: i4.QMSCKEditorFlowchartService }, { type: i5.MatDialogRef }, { type: i12.QMSCKEditorSaveAsTemplate, decorators: [{
98
+ type: Inject,
99
+ args: [MAT_DIALOG_DATA]
100
+ }] }]; } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWJwbW4vc2F2ZS10ZW1wbGF0ZS9zYXZlLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItYnBtbi9zYXZlLXRlbXBsYXRlL3NhdmUtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUUzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFXaEYsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHdCQUF3QjtJQVVqRSxZQUNVLFNBQWtDLEVBQ2xDLFdBQXdC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LFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDO29CQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3RDO3FCQUFNO29CQUNMLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDbEU7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2tIQW5FVSxxQkFBcUIsb01BZ0J0QixlQUFlO3NHQWhCZCxxQkFBcUIsNEVDckJsQyw2N0VBcUVBOzJGRGhEYSxxQkFBcUI7a0JBTmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSxnQ0FBZ0M7b0JBQzdDLFNBQVMsRUFBRSxDQUFDLGdDQUFnQyxDQUFDO2lCQUM5Qzs7MEJBa0JJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ0tFZGl0b3JFdmVudENvbnN0IH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9jb25zdGFudHMvY2tlZGl0b3JFdmVudC5jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJwbW4gfSBmcm9tIFwiLi4vLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItYnBtbi5tb2RlbFwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckZsb3djaGFydCB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1mbG93Y2hhcnQubW9kZWxcIjtcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JTYXZlQXNUZW1wbGF0ZSB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1zYXZlLWFzLXRlbXBsYXRlLm1vZGVsXCI7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yVG9hc3RTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi90b2FzdC9xbXMtY2tlZGl0b3ItdG9hc3Quc2VydmljZVwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vLi4vcW1zLWNrZWRpdG9yLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yQnBtbkFwaVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWJwbW4tYXBpLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQnBtblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWJwbW4uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckZsb3djaGFydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWZsb3djaGFydC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhdmUtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zYXZlLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zYXZlLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIExBTkc6IGFueTtcclxuICBzYXZlRm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIHRlbXBsYXRlTmFtZTogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXHJcbiAgfSk7XHJcbiAgdGVtcGxhdGVUeXBlID0gJyc7XHJcbiAgdGVtcGxhdGVOYW1lID0gJyc7XHJcbiAgYnBtbjogUU1TQ0tFZGl0b3JCcG1uID0gbmV3IFFNU0NLRWRpdG9yQnBtbigpO1xyXG4gIGZsb3djaGFydDogUU1TQ0tFZGl0b3JGbG93Y2hhcnQgPSBuZXcgUU1TQ0tFZGl0b3JGbG93Y2hhcnQoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGJtcG5TZXJ2aWNlOiBCcG1uU2VydmljZSxcclxuICAgIHByaXZhdGUgYnBtbkFwaVNlcnZpY2U6IFFNU0NLRWRpdG9yQnBtbkFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZsb3djaGFydFNlcnZpY2U6IFFNU0NLRWRpdG9yRmxvd2NoYXJ0U2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTYXZlVGVtcGxhdGVDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBRTVNDS0VkaXRvclNhdmVBc1RlbXBsYXRlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy50ZW1wbGF0ZVR5cGUgPSBkYXRhLnRlbXBsYXRlVHlwZTtcclxuICAgIHRoaXMuYnBtbiA9IGRhdGEuYnBtbjtcclxuICAgIHRoaXMuZmxvd2NoYXJ0ID0gZGF0YS5mbG93Y2hhcnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNhdmVUZW1wbGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLnRlbXBsYXRlVHlwZSA9PT0gQ0tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0JQTU4pIHtcclxuICAgICAgdGhpcy5icG1uLnRlbXBsYXRlTmFtZSA9IHRoaXMudGVtcGxhdGVOYW1lO1xyXG4gICAgICB0aGlzLmJwbW5BcGlTZXJ2aWNlXHJcbiAgICAgICAgLmJwbW5Nb2RpZnlpbmcodGhpcy5icG1uKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYm1wblNlcnZpY2UuYWRkSXRlbVRlbXBsYXRlKHJlc3VsdCwgdGhpcy5icG1uKTtcclxuICAgICAgICAgICAgUU1TQ0tFZGl0b3JUb2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLkxBTkcuUU1TQ0tFRElUT1IuU0FWRUQpO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2xvc2VEaWFsb2coKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIFFNU0NLRWRpdG9yVG9hc3RTZXJ2aWNlLmVycm9yKHRoaXMuTEFORy5RTVNDS0VESVRPUi5TQVZFX0ZBSUxFRCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnRlbXBsYXRlVHlwZSA9PT0gQ0tFZGl0b3JFdmVudENvbnN0LlFNU0NLX0ZMT1dDSEFSVCkge1xyXG4gICAgICB0aGlzLmZsb3djaGFydC50ZW1wbGF0ZU5hbWUgPSB0aGlzLnRlbXBsYXRlTmFtZTtcclxuICAgICAgdGhpcy5mbG93Y2hhcnRTZXJ2aWNlXHJcbiAgICAgICAgLmZsb3djaGFydE1vZGlmeWluZyh0aGlzLmZsb3djaGFydClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMuTEFORy5RTVNDS0VESVRPUi5TQVZFRCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmxvd2NoYXJ0LmlkID0gcmVzdWx0O1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmZsb3djaGFydCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5lcnJvcih0aGlzLkxBTkcuUU1TQ0tFRElUT1IuU0FWRV9GQUlMRUQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBpZD1cInFtc2NrZWRpdG9yLWJwbW5cIlxyXG4gIGNsYXNzPVwicW1zY2tlZGl0b3IgcW1zY2tlZGl0b3JfX3NhdmV0ZW1wbGF0ZV9fY29udGFpbmVyXCJcclxuPlxyXG4gIDxkaXYgaWQ9XCJxbXNja2VkaXRvci1sb2FkLXRlbXBsYXRlLWhlYWRlclwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgaWQ9XCJxbXNja2VkaXRvci1icG1uLWhlYWRlcl8wMDFcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgY2xhc3M9XCJxbXNja2VkaXRvciBidXR0b25fX2Nsb3NlXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VEaWFsb2coKVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGlkPVwicW1zY2tlZGl0b3ItbG9hZC10ZW1wbGF0ZS1oZWFkZXJfMDAyXCIgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgICA8aDIgaWQ9XCJxbXNja2VkaXRvci10ZW1wbGF0ZV8wMDJfMDAxXCI+U2F2ZSBhcyB0ZW1wbGF0ZTwvaDI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInNhdmVGb3JtR3JvdXBcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGlkPVwicW1zY2tlZGl0b3Itc2F2ZS1hcy1jb250ZW50XCJcclxuICAgICAgICBjbGFzcz1cInFtc2NrZWRpdG9yIHNhdmVfX2FzX190ZW1wbGF0ZSBoZWlnaHRcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLXNhdmUtYXMtY29udGVudF8wMDFcIiBjbGFzcz1cImNvbC0xMiBtdC0xIHBsLTIgcHItMlwiPlxyXG4gICAgICAgICAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLXNhdmUtYXMtcGFuZWxfMDAxXCI+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJxbXNja2VkaXRvci1zYXZlLWFzLXBhbmVsXzAwMV8wMDFcIj5cclxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjb2wtMTIgcGwtMCBwci0wXCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgTEFORy5CUE1OLlRFTVBMQVRFX05BTUUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0ZW1wbGF0ZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBsYXRlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvclxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInNhdmVGb3JtR3JvdXAuZ2V0KCd0ZW1wbGF0ZU5hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXQ1XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgaWQ9XCJxbXNja2VkaXRvci1zYXZlLWFzLXBhbmVsXzAwMV8wMDNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwicW1zY2tlZGl0b3IgYnV0dG9uX19ncm91cHMgcm93IG1yLTAgbWwtMFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgcHItMFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNhdmVcIlxyXG4gICAgICAgICAgICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVUZW1wbGF0ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNhdmVGb3JtR3JvdXAuaW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IExBTkcuUU1TQ0tFRElUT1IuU0FWRSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IHBsLTBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICBtYXQtZmxhdC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VEaWFsb2coKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IExBTkcuUU1TQ0tFRElUT1IuQ0FOQ0VMIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,322 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component, HostListener, Inject } from "@angular/core";
3
+ import { MAT_DIALOG_DATA } from "@angular/material/dialog";
4
+ import { takeUntil } from "rxjs/operators";
5
+ import { CKEditorEventConst } from "../../common/constants/ckeditorEvent.constant";
6
+ import { FlowChartConst } from "../../common/constants/ckeditorFlowchart.const";
7
+ import { HaloService } from "../../common/flowchart/service/halo-service";
8
+ import { InspectorService } from "../../common/flowchart/service/inspector-service";
9
+ import { KeyboardService } from "../../common/flowchart/service/keyboard-service";
10
+ import RappidService from '../../common/flowchart/service/kitchensink-service';
11
+ import { StencilService } from "../../common/flowchart/service/stencil-service";
12
+ import { ToolbarService } from "../../common/flowchart/service/toolbar-service";
13
+ import { ThemePicker } from "../../common/flowchart/themes/theme-picker";
14
+ import guidHelper from "../../common/helper/guidHelper";
15
+ import { QMSCKEditorDialogData } from "../../common/models/qms-ckeditor-dialog.model";
16
+ import { QMSCKEditorFlowchart } from "../../common/models/qms-ckeditor-flowchart.model";
17
+ import { QMSCKEditorSaveAsTemplate } from "../../common/models/qms-ckeditor-save-as-template.model";
18
+ import { QMSCKEditorConfirmComponent } from "../../common/module/confirm/qms-ckeditor-confirm.component";
19
+ import { QMSCKEditorToastService } from "../../common/toast/qms-ckeditor-toast.service";
20
+ import { QMSCKEditorBaseComponent } from "../../qms-ckeditor-base.component";
21
+ import { SaveTemplateComponent } from "../qms-ckeditor-bpmn/save-template/save-template.component";
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "@angular/material/dialog";
24
+ import * as i2 from "../../../services/translation-registry.service";
25
+ import * as i3 from "../../services/qms-ckeditor-flowchart.service";
26
+ import * as i4 from "@angular/material/icon";
27
+ export class QMSCKEditorFlowchartComponent extends QMSCKEditorBaseComponent {
28
+ constructor(dialog, element, translate, flowchartService, dialogRef, data) {
29
+ super();
30
+ this.dialog = dialog;
31
+ this.element = element;
32
+ this.translate = translate;
33
+ this.flowchartService = flowchartService;
34
+ this.dialogRef = dialogRef;
35
+ this.data = data;
36
+ this.jsonContent = '';
37
+ this.id = '';
38
+ this.flowchart = new QMSCKEditorFlowchart();
39
+ this.flowchartTemplates = [];
40
+ this.id = data;
41
+ }
42
+ onMessage(event) {
43
+ if (event.data === FlowChartConst.KS_CHANGE_TEMPLATE) {
44
+ this.onChangeTemplate();
45
+ }
46
+ else if (event.data === FlowChartConst.KS_DELETE_TEMPLATE) {
47
+ this.onDeleteTemplate(this.LANG.BPMN.DELETE_TEMPLATE, this.LANG.QMSCKEDITOR_MESSAGE.CONFIRM_DELETE_TEMPLATE);
48
+ }
49
+ else if (event.data === FlowChartConst.MUST_SELECT_TEMPLATE) {
50
+ this.showInfoMessage(this.LANG.BPMN.SELECT_TEMPLATE, this.LANG.BPMN.SELECT_TEMPLATE_INFORMATION);
51
+ }
52
+ else if (event.data === FlowChartConst.KS_SAVE_AS_TEMPLATE) {
53
+ this.onSaveAsTemplate();
54
+ }
55
+ else if (event.data === FlowChartConst.KS_RESET_TEMPLATE) {
56
+ this.onResetTemplate();
57
+ }
58
+ }
59
+ ngOnInit() {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ this.translate.getLanguageSubject$.pipe(takeUntil(this.ngUnsubcribe)).subscribe((res) => {
62
+ if (res) {
63
+ this.LANG = this.translate.getObjectLang(res);
64
+ }
65
+ });
66
+ if (this.id) {
67
+ this.jsonContent = yield this.getJsonContent(this.id);
68
+ }
69
+ this.rappid = new RappidService(this.element.nativeElement, new StencilService(), new ToolbarService(this.LANG), new InspectorService(), new HaloService(), new KeyboardService());
70
+ this.rappid.startRappid();
71
+ const themePicker = new ThemePicker({ mainView: this.rappid });
72
+ themePicker.render().$el.appendTo(document.getElementById('themepicker'));
73
+ if (this.jsonContent) {
74
+ this.rappid.graph.fromJSON(JSON.parse(this.jsonContent));
75
+ }
76
+ });
77
+ }
78
+ ngAfterViewInit() {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ this.flowchartTemplates = yield this.getTemplates();
81
+ this.initializeTemplates(this.flowchartTemplates);
82
+ });
83
+ }
84
+ getJsonContent(id) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ return new Promise((resolve) => {
87
+ this.flowchartService
88
+ .getFlowchartById(id)
89
+ .pipe(takeUntil(this.ngUnsubcribe))
90
+ .subscribe((result) => {
91
+ if (result) {
92
+ resolve(result.jsonContent);
93
+ }
94
+ });
95
+ });
96
+ });
97
+ }
98
+ getTemplates() {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ return new Promise((resolve) => {
101
+ this.flowchartService
102
+ .flowchartGetTemplates()
103
+ .pipe(takeUntil(this.ngUnsubcribe))
104
+ .subscribe((result) => {
105
+ resolve(result);
106
+ });
107
+ });
108
+ });
109
+ }
110
+ initializeTemplates(templates) {
111
+ if (templates) {
112
+ this.toolbarConfig = this.rappid.toolbarService.toolbar;
113
+ const arrSelect = this.toolbarConfig.tools.filter((item) => {
114
+ return item.type === 'select-box';
115
+ });
116
+ if (arrSelect) {
117
+ templates.forEach((item) => {
118
+ const option = {
119
+ index: item.index,
120
+ content: item.templateName,
121
+ flowChartId: item.id,
122
+ name: item.templateName,
123
+ jsonContent: item.jsonContent,
124
+ selected: false
125
+ };
126
+ const index = arrSelect[0].options.findIndex((x) => {
127
+ return x.index === option.index;
128
+ });
129
+ if (index < 0) {
130
+ arrSelect[0].options.push(option);
131
+ }
132
+ });
133
+ }
134
+ }
135
+ }
136
+ addItem2Template(template) {
137
+ this.toolbarConfig = this.rappid.toolbarService.toolbar;
138
+ const arrSelect = this.toolbarConfig.tools.filter((item) => {
139
+ return item.type === 'select-box';
140
+ });
141
+ if (arrSelect) {
142
+ const option = {
143
+ index: 1,
144
+ content: template.templateName,
145
+ flowChartId: template.id,
146
+ name: template.templateName,
147
+ jsonContent: template.jsonContent,
148
+ selected: false
149
+ };
150
+ arrSelect[0].options.push(option);
151
+ }
152
+ }
153
+ removeSelectedValue(flowChartId) {
154
+ this.toolbarConfig = this.rappid.toolbarService.toolbar;
155
+ const arrSelect = this.toolbarConfig.tools.filter((item) => {
156
+ return item.type === 'select-box';
157
+ });
158
+ if (arrSelect) {
159
+ arrSelect[0].options.splice(arrSelect[0].options.findIndex((i) => {
160
+ return i.flowChartId === flowChartId;
161
+ }), 1);
162
+ }
163
+ }
164
+ setDefaultSelectedValue() {
165
+ this.toolbarConfig = this.rappid.toolbarService.toolbar;
166
+ const arrSelect = this.toolbarConfig.tools.filter((item) => {
167
+ return item.type === 'select-box';
168
+ });
169
+ if (arrSelect) {
170
+ arrSelect[0].options[0].selected = true;
171
+ const list = document.getElementsByClassName(`select-box-selection`)[0];
172
+ list.getElementsByClassName(`select-box-option-content`)[0].innerHTML = FlowChartConst.SELECT_TEMPLATE;
173
+ }
174
+ }
175
+ saveImageContent() {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ return new Promise((resolve) => {
178
+ const jsonContent = this.rappid.getJsonContent();
179
+ this.flowchart = {
180
+ id: this.id ? this.id : guidHelper.empty,
181
+ jsonContent: jsonContent,
182
+ isTemplate: false,
183
+ templateName: ''
184
+ };
185
+ this.flowchartService
186
+ .flowchartModifying(this.flowchart)
187
+ .pipe(takeUntil(this.ngUnsubcribe))
188
+ .subscribe((result) => {
189
+ if (result) {
190
+ resolve(result);
191
+ }
192
+ });
193
+ });
194
+ });
195
+ }
196
+ onInsertImage() {
197
+ return __awaiter(this, void 0, void 0, function* () {
198
+ const id = yield this.saveImageContent();
199
+ const imageContent = yield this.rappid.getImageContent();
200
+ const result = { key: `${CKEditorEventConst.QMSCK_FLOWCHART}#${id}`, values: imageContent };
201
+ this.dialogRef.close(result);
202
+ });
203
+ }
204
+ onChangeTemplate() {
205
+ const jsonTemplate = window[FlowChartConst.KS_SELECTED_JSONCONTENT] ? window[FlowChartConst.KS_SELECTED_JSONCONTENT] : '';
206
+ if (!window[FlowChartConst.KS_IS_SELECTED_TEMPLATE]) {
207
+ window[FlowChartConst.KS_ORG_JSONCONTENT] = JSON.stringify(this.rappid.graph.toJSON());
208
+ window[FlowChartConst.KS_IS_SELECTED_TEMPLATE] = true;
209
+ }
210
+ if (jsonTemplate) {
211
+ this.rappid.graph.fromJSON(JSON.parse(jsonTemplate));
212
+ }
213
+ }
214
+ onDeleteTemplate(title, content) {
215
+ const data = new QMSCKEditorDialogData();
216
+ data.title = title;
217
+ data.content = content;
218
+ const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {
219
+ width: '500px',
220
+ minHeight: '175px',
221
+ data
222
+ });
223
+ dialogRef
224
+ .afterClosed()
225
+ .pipe(takeUntil(this.ngUnsubcribe))
226
+ .subscribe((result) => {
227
+ if (result) {
228
+ const id = window[FlowChartConst.KS_SELECTED_FLOWCHART_ID];
229
+ this.flowchartService
230
+ .flowchartDeleteTemplate(id)
231
+ .pipe(takeUntil(this.ngUnsubcribe))
232
+ .subscribe((result) => {
233
+ if (result) {
234
+ this.removeSelectedValue(id);
235
+ this.setDefaultSelectedValue();
236
+ window[FlowChartConst.KS_IS_SELECTED_TEMPLATE] = false;
237
+ QMSCKEditorToastService.success(this.LANG.QMSCKEDITOR.DELETED);
238
+ }
239
+ else {
240
+ QMSCKEditorToastService.error(this.LANG.QMSCKEDITOR.DELETE_FAILED);
241
+ }
242
+ });
243
+ }
244
+ });
245
+ }
246
+ onSaveAsTemplate() {
247
+ const jsonContent = JSON.stringify(this.rappid.graph.toJSON());
248
+ let template = new QMSCKEditorFlowchart();
249
+ template = {
250
+ id: guidHelper.empty,
251
+ jsonContent: jsonContent,
252
+ isTemplate: true,
253
+ templateName: ''
254
+ };
255
+ let data = new QMSCKEditorSaveAsTemplate();
256
+ data.templateType = CKEditorEventConst.QMSCK_FLOWCHART;
257
+ data.flowchart = template;
258
+ const dialogTemplate = this.dialog.open(SaveTemplateComponent, {
259
+ width: '450px',
260
+ height: '220px',
261
+ data,
262
+ disableClose: true
263
+ });
264
+ dialogTemplate
265
+ .afterClosed()
266
+ .pipe(takeUntil(this.ngUnsubcribe))
267
+ .subscribe((result) => {
268
+ if (result) {
269
+ this.addItem2Template(result);
270
+ }
271
+ });
272
+ }
273
+ onResetTemplate() {
274
+ if (window[FlowChartConst.KS_IS_SELECTED_TEMPLATE]) {
275
+ const orgTemplate = window[FlowChartConst.KS_ORG_JSONCONTENT] ? window[FlowChartConst.KS_ORG_JSONCONTENT] : '';
276
+ if (orgTemplate) {
277
+ this.rappid.graph.fromJSON(JSON.parse(orgTemplate));
278
+ this.setDefaultSelectedValue();
279
+ window[FlowChartConst.KS_IS_SELECTED_TEMPLATE] = false;
280
+ }
281
+ }
282
+ }
283
+ showInfoMessage(title, content) {
284
+ const data = new QMSCKEditorDialogData();
285
+ data.title = title;
286
+ data.content = content;
287
+ data.isMessage = true;
288
+ const dialogRef = this.dialog.open(QMSCKEditorConfirmComponent, {
289
+ width: '500px',
290
+ minHeight: '175px',
291
+ data
292
+ });
293
+ dialogRef
294
+ .afterClosed()
295
+ .pipe(takeUntil(this.ngUnsubcribe))
296
+ .subscribe((result) => {
297
+ if (result) {
298
+ //TODO
299
+ }
300
+ });
301
+ }
302
+ onCloseDialog() {
303
+ this.dialogRef.close();
304
+ }
305
+ }
306
+ QMSCKEditorFlowchartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSCKEditorFlowchartComponent, deps: [{ token: i1.MatDialog }, { token: i0.ElementRef }, { token: i2.TranslateLibraryService }, { token: i3.QMSCKEditorFlowchartService }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
307
+ QMSCKEditorFlowchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: QMSCKEditorFlowchartComponent, selector: "qms-flowchart", host: { listeners: { "window:message": "onMessage($event)" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n id=\"qmsckeditor-flowchart\"\r\n class=\"qmsckeditor qmsckeditor__flowchart__container\"\r\n>\r\n <div id=\"qmsckeditor-flowchart-header\">\r\n <span\r\n id=\"qmsckeditor-flowchart-header_001\"\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseDialog()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <span\r\n id=\"qmsckeditor-flowchart-header_002\"\r\n mat-icon-button\r\n class=\"qmsckeditor button__done\"\r\n (click)=\"onInsertImage()\"\r\n >\r\n <mat-icon>done</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor-flowchart-header_002\" mat-dialog-content>\r\n <h2 id=\"qmsckeditor-flowchart_002_001\">{{ LANG.BPMN.FLOWCHART }}</h2>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"joint-app joint-theme-modern\">\r\n <div class=\"app-header\">\r\n <div class=\"app-title\">\r\n <h1>{{ LANG.BPMN.HANDBOOK }}</h1>\r\n </div>\r\n <div id=\"flowcharttoolbar\" class=\"toolbar-container\"></div>\r\n </div>\r\n <div class=\"app-body\">\r\n <div id=\"flowchartstencil\" class=\"stencil-container\"></div>\r\n <div class=\"paper-container\"></div>\r\n <div class=\"inspector-container\"></div>\r\n <div class=\"joint-navigator-container\"></div>\r\n <div id=\"themepicker\"></div>\r\n </div>\r\n</div>\r\n", styles: [".qmsckeditor__flowchart__container ::ng-deep .mat-dialog-content{padding:0}"], components: [{ type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSCKEditorFlowchartComponent, decorators: [{
309
+ type: Component,
310
+ args: [{
311
+ selector: 'qms-flowchart',
312
+ templateUrl: './qms-ckeditor-flowchart.component.html',
313
+ styleUrls: ['./qms-ckeditor-flowchart.component.scss']
314
+ }]
315
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i0.ElementRef }, { type: i2.TranslateLibraryService }, { type: i3.QMSCKEditorFlowchartService }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
316
+ type: Inject,
317
+ args: [MAT_DIALOG_DATA]
318
+ }] }]; }, propDecorators: { onMessage: [{
319
+ type: HostListener,
320
+ args: ['window:message', ['$event']]
321
+ }] } });
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLWZsb3djaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLWZsb3djaGFydC9xbXMtY2tlZGl0b3ItZmxvd2NoYXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItZmxvd2NoYXJ0L3Ftcy1ja2VkaXRvci1mbG93Y2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxhQUFhLE1BQU0sb0RBQW9ELENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRixPQUFP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RUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxPQUFlO1FBQzVDLE1BQU0sSUFBSSxHQUEwQixJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDOUQsS0FBSyxFQUFFLE9BQU87WUFDZCxTQUFTLEVBQUUsT0FBTztZQUNsQixJQUFJO1NBQ0wsQ0FBQyxDQUFDO1FBQ0gsU0FBUzthQUNOLFdBQVcsRUFBRTthQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BCLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU07YUFDUDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7OzBIQS9TVSw2QkFBNkIsbUxBZTlCLGVBQWU7OEdBZmQsNkJBQTZCLDRJQzlCMUMscTFDQXlDQTsyRkRYYSw2QkFBNkI7a0JBTnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSx5Q0FBeUM7b0JBQ3RELFNBQVMsRUFBRSxDQUFDLHlDQUF5QyxDQUFDO2lCQUN2RDs7MEJBaUJJLE1BQU07MkJBQUMsZUFBZTs0Q0FNekIsU0FBUztzQkFEUixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ0tFZGl0b3JFdmVudENvbnN0IH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9jb25zdGFudHMvY2tlZGl0b3JFdmVudC5jb25zdGFudFwiO1xyXG5pbXBvcnQgeyBGbG93Q2hhcnRDb25zdCB9IGZyb20gXCIuLi8uLi9jb21tb24vY29uc3RhbnRzL2NrZWRpdG9yRmxvd2NoYXJ0LmNvbnN0XCI7XHJcbmltcG9ydCB7IEhhbG9TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9mbG93Y2hhcnQvc2VydmljZS9oYWxvLXNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW5zcGVjdG9yU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb21tb24vZmxvd2NoYXJ0L3NlcnZpY2UvaW5zcGVjdG9yLXNlcnZpY2VcIjtcclxuaW1wb3J0IHsgS2V5Ym9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9mbG93Y2hhcnQvc2VydmljZS9rZXlib2FyZC1zZXJ2aWNlXCI7XHJcbmltcG9ydCBSYXBwaWRTZXJ2aWNlIGZyb20gJy4uLy4uL2NvbW1vbi9mbG93Y2hhcnQvc2VydmljZS9raXRjaGVuc2luay1zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RlbmNpbFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2Zsb3djaGFydC9zZXJ2aWNlL3N0ZW5jaWwtc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUb29sYmFyU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb21tb24vZmxvd2NoYXJ0L3NlcnZpY2UvdG9vbGJhci1zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRoZW1lUGlja2VyIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9mbG93Y2hhcnQvdGhlbWVzL3RoZW1lLXBpY2tlclwiO1xyXG5pbXBvcnQgZ3VpZEhlbHBlciBmcm9tIFwiLi4vLi4vY29tbW9uL2hlbHBlci9ndWlkSGVscGVyXCI7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yRGlhbG9nRGF0YSB9IGZyb20gXCIuLi8uLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1kaWFsb2cubW9kZWxcIjtcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JGbG93Y2hhcnRUZW1wbGF0ZSB9IGZyb20gXCIuLi8uLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1mbG93Y2hhcnQtdGVtcGxhdGUubW9kZWxcIjtcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JGbG93Y2hhcnQgfSBmcm9tIFwiLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItZmxvd2NoYXJ0Lm1vZGVsXCI7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yU2F2ZUFzVGVtcGxhdGUgfSBmcm9tIFwiLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3Itc2F2ZS1hcy10ZW1wbGF0ZS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckNvbmZpcm1Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tbW9uL21vZHVsZS9jb25maXJtL3Ftcy1ja2VkaXRvci1jb25maXJtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRvYXN0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb21tb24vdG9hc3QvcW1zLWNrZWRpdG9yLXRvYXN0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckZsb3djaGFydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLWZsb3djaGFydC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNhdmVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuLi9xbXMtY2tlZGl0b3ItYnBtbi9zYXZlLXRlbXBsYXRlL3NhdmUtdGVtcGxhdGUuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1mbG93Y2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXMtY2tlZGl0b3ItZmxvd2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xbXMtY2tlZGl0b3ItZmxvd2NoYXJ0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBRTVNDS0VkaXRvckZsb3djaGFydENvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgTEFORzogYW55O1xyXG4gIGpzb25Db250ZW50OiBzdHJpbmcgPSAnJztcclxuICByYXBwaWQ6IFJhcHBpZFNlcnZpY2U7XHJcbiAgaWQgPSAnJztcclxuICBmbG93Y2hhcnQ6IFFNU0NLRWRpdG9yRmxvd2NoYXJ0ID0gbmV3IFFNU0NLRWRpdG9yRmxvd2NoYXJ0KCk7XHJcbiAgZmxvd2NoYXJ0VGVtcGxhdGVzOiBRTVNDS0VkaXRvckZsb3djaGFydFRlbXBsYXRlW10gPSBbXTtcclxuICB0b29sYmFyQ29uZmlnOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgZmxvd2NoYXJ0U2VydmljZTogUU1TQ0tFZGl0b3JGbG93Y2hhcnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFFNU0NLRWRpdG9yRmxvd2NoYXJ0Q29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5pZCA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXHJcbiAgb25NZXNzYWdlKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuZGF0YSA9PT0gRmxvd0NoYXJ0Q29uc3QuS1NfQ0hBTkdFX1RFTVBMQVRFKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2VUZW1wbGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZXZlbnQuZGF0YSA9PT0gRmxvd0NoYXJ0Q29uc3QuS1NfREVMRVRFX1RFTVBMQVRFKSB7XHJcbiAgICAgIHRoaXMub25EZWxldGVUZW1wbGF0ZSh0aGlzLkxBTkcuQlBNTi5ERUxFVEVfVEVNUExBVEUsIHRoaXMuTEFORy5RTVNDS0VESVRPUl9NRVNTQUdFLkNPTkZJUk1fREVMRVRFX1RFTVBMQVRFKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZXZlbnQuZGF0YSA9PT0gRmxvd0NoYXJ0Q29uc3QuTVVTVF9TRUxFQ1RfVEVNUExBVEUpIHtcclxuICAgICAgdGhpcy5zaG93SW5mb01lc3NhZ2UodGhpcy5MQU5HLkJQTU4uU0VMRUNUX1RFTVBMQVRFLCB0aGlzLkxBTkcuQlBNTi5TRUxFQ1RfVEVNUExBVEVfSU5GT1JNQVRJT04pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZXZlbnQuZGF0YSA9PT0gRmxvd0NoYXJ0Q29uc3QuS1NfU0FWRV9BU19URU1QTEFURSkge1xyXG4gICAgICB0aGlzLm9uU2F2ZUFzVGVtcGxhdGUoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGV2ZW50LmRhdGEgPT09IEZsb3dDaGFydENvbnN0LktTX1JFU0VUX1RFTVBMQVRFKSB7XHJcbiAgICAgIHRoaXMub25SZXNldFRlbXBsYXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5pZCkge1xyXG4gICAgICB0aGlzLmpzb25Db250ZW50ID0gYXdhaXQgdGhpcy5nZXRKc29uQ29udGVudCh0aGlzLmlkKTtcclxuICAgIH1cclxuICAgIHRoaXMucmFwcGlkID0gbmV3IFJhcHBpZFNlcnZpY2UoXHJcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxyXG4gICAgICBuZXcgU3RlbmNpbFNlcnZpY2UoKSxcclxuICAgICAgbmV3IFRvb2xiYXJTZXJ2aWNlKHRoaXMuTEFORyksXHJcbiAgICAgIG5ldyBJbnNwZWN0b3JTZXJ2aWNlKCksXHJcbiAgICAgIG5ldyBIYWxvU2VydmljZSgpLFxyXG4gICAgICBuZXcgS2V5Ym9hcmRTZXJ2aWNlKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5yYXBwaWQuc3RhcnRSYXBwaWQoKTtcclxuXHJcbiAgICBjb25zdCB0aGVtZVBpY2tlciA9IG5ldyBUaGVtZVBpY2tlcih7IG1haW5WaWV3OiB0aGlzLnJhcHBpZCB9KTtcclxuICAgIHRoZW1lUGlja2VyLnJlbmRlcigpLiRlbC5hcHBlbmRUbyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlbWVwaWNrZXInKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuanNvbkNvbnRlbnQpIHtcclxuICAgICAgdGhpcy5yYXBwaWQuZ3JhcGguZnJvbUpTT04oSlNPTi5wYXJzZSh0aGlzLmpzb25Db250ZW50KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmZsb3djaGFydFRlbXBsYXRlcyA9IGF3YWl0IHRoaXMuZ2V0VGVtcGxhdGVzKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVUZW1wbGF0ZXModGhpcy5mbG93Y2hhcnRUZW1wbGF0ZXMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIGdldEpzb25Db250ZW50KGlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuZmxvd2NoYXJ0U2VydmljZVxyXG4gICAgICAgIC5nZXRGbG93Y2hhcnRCeUlkKGlkKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0Lmpzb25Db250ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRUZW1wbGF0ZXMoKTogUHJvbWlzZTxRTVNDS0VkaXRvckZsb3djaGFydFRlbXBsYXRlW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLmZsb3djaGFydFNlcnZpY2VcclxuICAgICAgICAuZmxvd2NoYXJ0R2V0VGVtcGxhdGVzKClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVRlbXBsYXRlcyh0ZW1wbGF0ZXM6IFFNU0NLRWRpdG9yRmxvd2NoYXJ0VGVtcGxhdGVbXSkge1xyXG4gICAgaWYgKHRlbXBsYXRlcykge1xyXG4gICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB0aGlzLnJhcHBpZC50b29sYmFyU2VydmljZS50b29sYmFyO1xyXG4gICAgICBjb25zdCBhcnJTZWxlY3QgPSB0aGlzLnRvb2xiYXJDb25maWcudG9vbHMuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gJ3NlbGVjdC1ib3gnO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGFyclNlbGVjdCkge1xyXG4gICAgICAgIHRlbXBsYXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBvcHRpb24gPSB7XHJcbiAgICAgICAgICAgIGluZGV4OiBpdGVtLmluZGV4LFxyXG4gICAgICAgICAgICBjb250ZW50OiBpdGVtLnRlbXBsYXRlTmFtZSxcclxuICAgICAgICAgICAgZmxvd0NoYXJ0SWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGl0ZW0udGVtcGxhdGVOYW1lLFxyXG4gICAgICAgICAgICBqc29uQ29udGVudDogaXRlbS5qc29uQ29udGVudCxcclxuICAgICAgICAgICAgc2VsZWN0ZWQ6IGZhbHNlXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSBhcnJTZWxlY3RbMF0ub3B0aW9ucy5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHguaW5kZXggPT09IG9wdGlvbi5pbmRleDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgICBhcnJTZWxlY3RbMF0ub3B0aW9ucy5wdXNoKG9wdGlvbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZEl0ZW0yVGVtcGxhdGUodGVtcGxhdGU/OiBRTVNDS0VkaXRvckZsb3djaGFydFRlbXBsYXRlKSB7XHJcbiAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB0aGlzLnJhcHBpZC50b29sYmFyU2VydmljZS50b29sYmFyO1xyXG4gICAgY29uc3QgYXJyU2VsZWN0ID0gdGhpcy50b29sYmFyQ29uZmlnLnRvb2xzLmZpbHRlcigoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbS50eXBlID09PSAnc2VsZWN0LWJveCc7XHJcbiAgICB9KTtcclxuICAgIGlmIChhcnJTZWxlY3QpIHtcclxuICAgICAgY29uc3Qgb3B0aW9uID0ge1xyXG4gICAgICAgIGluZGV4OiAxLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRlbXBsYXRlLnRlbXBsYXRlTmFtZSxcclxuICAgICAgICBmbG93Q2hhcnRJZDogdGVtcGxhdGUuaWQsXHJcbiAgICAgICAgbmFtZTogdGVtcGxhdGUudGVtcGxhdGVOYW1lLFxyXG4gICAgICAgIGpzb25Db250ZW50OiB0ZW1wbGF0ZS5qc29uQ29udGVudCxcclxuICAgICAgICBzZWxlY3RlZDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgYXJyU2VsZWN0WzBdLm9wdGlvbnMucHVzaChvcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlU2VsZWN0ZWRWYWx1ZShmbG93Q2hhcnRJZD86IHN0cmluZykge1xyXG4gICAgdGhpcy50b29sYmFyQ29uZmlnID0gdGhpcy5yYXBwaWQudG9vbGJhclNlcnZpY2UudG9vbGJhcjtcclxuICAgIGNvbnN0IGFyclNlbGVjdCA9IHRoaXMudG9vbGJhckNvbmZpZy50b29scy5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gJ3NlbGVjdC1ib3gnO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoYXJyU2VsZWN0KSB7XHJcbiAgICAgIGFyclNlbGVjdFswXS5vcHRpb25zLnNwbGljZShcclxuICAgICAgICBhcnJTZWxlY3RbMF0ub3B0aW9ucy5maW5kSW5kZXgoKGkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBpLmZsb3dDaGFydElkID09PSBmbG93Q2hhcnRJZDtcclxuICAgICAgICB9KSxcclxuICAgICAgICAxXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0U2VsZWN0ZWRWYWx1ZSgpIHtcclxuICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHRoaXMucmFwcGlkLnRvb2xiYXJTZXJ2aWNlLnRvb2xiYXI7XHJcbiAgICBjb25zdCBhcnJTZWxlY3QgPSB0aGlzLnRvb2xiYXJDb25maWcudG9vbHMuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgIHJldHVybiBpdGVtLnR5cGUgPT09ICdzZWxlY3QtYm94JztcclxuICAgIH0pO1xyXG4gICAgaWYgKGFyclNlbGVjdCkge1xyXG4gICAgICBhcnJTZWxlY3RbMF0ub3B0aW9uc1swXS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGBzZWxlY3QtYm94LXNlbGVjdGlvbmApWzBdO1xyXG4gICAgICBsaXN0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYHNlbGVjdC1ib3gtb3B0aW9uLWNvbnRlbnRgKVswXS5pbm5lckhUTUwgPSBGbG93Q2hhcnRDb25zdC5TRUxFQ1RfVEVNUExBVEU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlSW1hZ2VDb250ZW50KCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGpzb25Db250ZW50ID0gdGhpcy5yYXBwaWQuZ2V0SnNvbkNvbnRlbnQoKTtcclxuICAgICAgdGhpcy5mbG93Y2hhcnQgPSB7XHJcbiAgICAgICAgaWQ6IHRoaXMuaWQgPyB0aGlzLmlkIDogZ3VpZEhlbHBlci5lbXB0eSxcclxuICAgICAgICBqc29uQ29udGVudDoganNvbkNvbnRlbnQsXHJcbiAgICAgICAgaXNUZW1wbGF0ZTogZmFsc2UsXHJcbiAgICAgICAgdGVtcGxhdGVOYW1lOiAnJ1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmZsb3djaGFydFNlcnZpY2VcclxuICAgICAgICAuZmxvd2NoYXJ0TW9kaWZ5aW5nKHRoaXMuZmxvd2NoYXJ0KVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkluc2VydEltYWdlKCkge1xyXG4gICAgY29uc3QgaWQgPSBhd2FpdCB0aGlzLnNhdmVJbWFnZUNvbnRlbnQoKTtcclxuICAgIGNvbnN0IGltYWdlQ29udGVudCA9IGF3YWl0IHRoaXMucmFwcGlkLmdldEltYWdlQ29udGVudCgpO1xyXG4gICAgY29uc3QgcmVzdWx0ID0geyBrZXk6IGAke0NLRWRpdG9yRXZlbnRDb25zdC5RTVNDS19GTE9XQ0hBUlR9IyR7aWR9YCwgdmFsdWVzOiBpbWFnZUNvbnRlbnQgfVxyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlVGVtcGxhdGUoKSB7XHJcbiAgICBjb25zdCBqc29uVGVtcGxhdGUgPSB3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfU0VMRUNURURfSlNPTkNPTlRFTlRdID8gd2luZG93W0Zsb3dDaGFydENvbnN0LktTX1NFTEVDVEVEX0pTT05DT05URU5UXSA6ICcnO1xyXG4gICAgaWYgKCF3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfSVNfU0VMRUNURURfVEVNUExBVEVdKSB7XHJcbiAgICAgIHdpbmRvd1tGbG93Q2hhcnRDb25zdC5LU19PUkdfSlNPTkNPTlRFTlRdID0gSlNPTi5zdHJpbmdpZnkodGhpcy5yYXBwaWQuZ3JhcGgudG9KU09OKCkpO1xyXG4gICAgICB3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfSVNfU0VMRUNURURfVEVNUExBVEVdID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChqc29uVGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy5yYXBwaWQuZ3JhcGguZnJvbUpTT04oSlNPTi5wYXJzZShqc29uVGVtcGxhdGUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGVsZXRlVGVtcGxhdGUodGl0bGU6IHN0cmluZywgY29udGVudDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBkYXRhOiBRTVNDS0VkaXRvckRpYWxvZ0RhdGEgPSBuZXcgUU1TQ0tFZGl0b3JEaWFsb2dEYXRhKCk7XHJcbiAgICBkYXRhLnRpdGxlID0gdGl0bGU7XHJcbiAgICBkYXRhLmNvbnRlbnQgPSBjb250ZW50O1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckNvbmZpcm1Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc1MDBweCcsXHJcbiAgICAgIG1pbkhlaWdodDogJzE3NXB4JyxcclxuICAgICAgZGF0YVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWZcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgY29uc3QgaWQgPSB3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfU0VMRUNURURfRkxPV0NIQVJUX0lEXTtcclxuICAgICAgICAgIHRoaXMuZmxvd2NoYXJ0U2VydmljZVxyXG4gICAgICAgICAgICAuZmxvd2NoYXJ0RGVsZXRlVGVtcGxhdGUoaWQpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRWYWx1ZShpZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRTZWxlY3RlZFZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfSVNfU0VMRUNURURfVEVNUExBVEVdID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMuTEFORy5RTVNDS0VESVRPUi5ERUxFVEVEKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5lcnJvcih0aGlzLkxBTkcuUU1TQ0tFRElUT1IuREVMRVRFX0ZBSUxFRCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNhdmVBc1RlbXBsYXRlKCkge1xyXG4gICAgY29uc3QganNvbkNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeSh0aGlzLnJhcHBpZC5ncmFwaC50b0pTT04oKSk7XHJcbiAgICBsZXQgdGVtcGxhdGUgPSBuZXcgUU1TQ0tFZGl0b3JGbG93Y2hhcnQoKTtcclxuICAgIHRlbXBsYXRlID0ge1xyXG4gICAgICBpZDogZ3VpZEhlbHBlci5lbXB0eSxcclxuICAgICAganNvbkNvbnRlbnQ6IGpzb25Db250ZW50LFxyXG4gICAgICBpc1RlbXBsYXRlOiB0cnVlLFxyXG4gICAgICB0ZW1wbGF0ZU5hbWU6ICcnXHJcbiAgICB9XHJcbiAgICBsZXQgZGF0YSA9IG5ldyBRTVNDS0VkaXRvclNhdmVBc1RlbXBsYXRlKCk7XHJcbiAgICBkYXRhLnRlbXBsYXRlVHlwZSA9IENLRWRpdG9yRXZlbnRDb25zdC5RTVNDS19GTE9XQ0hBUlQ7XHJcbiAgICBkYXRhLmZsb3djaGFydCA9IHRlbXBsYXRlO1xyXG4gICAgY29uc3QgZGlhbG9nVGVtcGxhdGUgPSB0aGlzLmRpYWxvZy5vcGVuKFNhdmVUZW1wbGF0ZUNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzQ1MHB4JyxcclxuICAgICAgaGVpZ2h0OiAnMjIwcHgnLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nVGVtcGxhdGVcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy5hZGRJdGVtMlRlbXBsYXRlKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUmVzZXRUZW1wbGF0ZSgpIHtcclxuICAgIGlmICh3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfSVNfU0VMRUNURURfVEVNUExBVEVdKSB7XHJcbiAgICAgIGNvbnN0IG9yZ1RlbXBsYXRlID0gd2luZG93W0Zsb3dDaGFydENvbnN0LktTX09SR19KU09OQ09OVEVOVF0gPyB3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfT1JHX0pTT05DT05URU5UXSA6ICcnO1xyXG4gICAgICBpZiAob3JnVGVtcGxhdGUpIHtcclxuICAgICAgICB0aGlzLnJhcHBpZC5ncmFwaC5mcm9tSlNPTihKU09OLnBhcnNlKG9yZ1RlbXBsYXRlKSk7XHJcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0U2VsZWN0ZWRWYWx1ZSgpO1xyXG4gICAgICAgIHdpbmRvd1tGbG93Q2hhcnRDb25zdC5LU19JU19TRUxFQ1RFRF9URU1QTEFURV0gPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvd0luZm9NZXNzYWdlKHRpdGxlOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGF0YTogUU1TQ0tFZGl0b3JEaWFsb2dEYXRhID0gbmV3IFFNU0NLRWRpdG9yRGlhbG9nRGF0YSgpO1xyXG4gICAgZGF0YS50aXRsZSA9IHRpdGxlO1xyXG4gICAgZGF0YS5jb250ZW50ID0gY29udGVudDtcclxuICAgIGRhdGEuaXNNZXNzYWdlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUU1TQ0tFZGl0b3JDb25maXJtQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnNTAwcHgnLFxyXG4gICAgICBtaW5IZWlnaHQ6ICcxNzVweCcsXHJcbiAgICAgIGRhdGFcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmXHJcbiAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIC8vVE9ET1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlRGlhbG9nKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGlkPVwicW1zY2tlZGl0b3ItZmxvd2NoYXJ0XCJcclxuICBjbGFzcz1cInFtc2NrZWRpdG9yIHFtc2NrZWRpdG9yX19mbG93Y2hhcnRfX2NvbnRhaW5lclwiXHJcbj5cclxuICA8ZGl2IGlkPVwicW1zY2tlZGl0b3ItZmxvd2NoYXJ0LWhlYWRlclwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgaWQ9XCJxbXNja2VkaXRvci1mbG93Y2hhcnQtaGVhZGVyXzAwMVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjbGFzcz1cInFtc2NrZWRpdG9yIGJ1dHRvbl9fY2xvc2VcIlxyXG4gICAgICAoY2xpY2spPVwib25DbG9zZURpYWxvZygpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuXHJcbiAgICAgIGlkPVwicW1zY2tlZGl0b3ItZmxvd2NoYXJ0LWhlYWRlcl8wMDJcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgY2xhc3M9XCJxbXNja2VkaXRvciBidXR0b25fX2RvbmVcIlxyXG4gICAgICAoY2xpY2spPVwib25JbnNlcnRJbWFnZSgpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLWZsb3djaGFydC1oZWFkZXJfMDAyXCIgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgICA8aDIgaWQ9XCJxbXNja2VkaXRvci1mbG93Y2hhcnRfMDAyXzAwMVwiPnt7IExBTkcuQlBNTi5GTE9XQ0hBUlQgfX08L2gyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiam9pbnQtYXBwIGpvaW50LXRoZW1lLW1vZGVyblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJhcHAtaGVhZGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXBwLXRpdGxlXCI+XHJcbiAgICAgIDxoMT57eyBMQU5HLkJQTU4uSEFOREJPT0sgfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGlkPVwiZmxvd2NoYXJ0dG9vbGJhclwiIGNsYXNzPVwidG9vbGJhci1jb250YWluZXJcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYXBwLWJvZHlcIj5cclxuICAgIDxkaXYgaWQ9XCJmbG93Y2hhcnRzdGVuY2lsXCIgY2xhc3M9XCJzdGVuY2lsLWNvbnRhaW5lclwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBhcGVyLWNvbnRhaW5lclwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImluc3BlY3Rvci1jb250YWluZXJcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJqb2ludC1uYXZpZ2F0b3ItY29udGFpbmVyXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGlkPVwidGhlbWVwaWNrZXJcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==