qms-angular 1.0.55 → 1.0.56

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 (411) hide show
  1. package/bundles/qms-angular.umd.js +4003 -12241
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/app-icon/app-icon.module.js +16 -29
  4. package/esm2015/lib/components/app-icon/icon-registry.service.js +7 -9
  5. package/esm2015/lib/components/badges/qms-badges.component.js +15 -24
  6. package/esm2015/lib/components/badges/qms-badges.module.js +18 -33
  7. package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +16 -28
  8. package/esm2015/lib/components/banner/qms-banner/qms-banner.module.js +19 -36
  9. package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +16 -28
  10. package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.js +19 -36
  11. package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.component.js +13 -19
  12. package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.module.js +17 -30
  13. package/esm2015/lib/components/breadcrumb/breadcrumb-direction-icon.directive.js +10 -11
  14. package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +17 -20
  15. package/esm2015/lib/components/breadcrumb/breadcrumb.js +28 -40
  16. package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +26 -50
  17. package/esm2015/lib/components/button/button-toggle.js +85 -120
  18. package/esm2015/lib/components/button/button.js +78 -86
  19. package/esm2015/lib/components/button/button.module.js +27 -51
  20. package/esm2015/lib/components/comment/comment.js +18 -29
  21. package/esm2015/lib/components/dialog/dialog.js +28 -38
  22. package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +16 -24
  23. package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.js +31 -71
  24. package/esm2015/lib/components/list/list.js +89 -101
  25. package/esm2015/lib/components/list/list.module.js +50 -94
  26. package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +29 -55
  27. package/esm2015/lib/components/qms-app-bar/qms-app-bar.module.js +20 -39
  28. package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +22 -32
  29. package/esm2015/lib/components/qms-stepper/qms-stepper.module.js +25 -35
  30. package/esm2015/lib/components/related/content/related-content.component.js +12 -19
  31. package/esm2015/lib/components/related/list-other-related/list-related.component.js +25 -29
  32. package/esm2015/lib/components/related/popup/related-popup.component.js +33 -50
  33. package/esm2015/lib/components/related/related.module.js +43 -96
  34. package/esm2015/lib/components/related/risk/analysis/analysis.component.js +17 -23
  35. package/esm2015/lib/components/related/risk/list/list.component.js +18 -22
  36. package/esm2015/lib/components/related/risk/result/result.component.js +16 -23
  37. package/esm2015/lib/components/related/service/related-global.service.js +6 -7
  38. package/esm2015/lib/components/related/sidenav/sidenav.component.js +12 -21
  39. package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +18 -22
  40. package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +18 -22
  41. package/esm2015/lib/components/reports/qms-reports.module.js +20 -29
  42. package/esm2015/lib/components/rich-text/rich-text.js +32 -47
  43. package/esm2015/lib/components/rich-text/rich-text.module.js +21 -35
  44. package/esm2015/lib/components/select-dialog/select-dialog.js +16 -31
  45. package/esm2015/lib/components/select-include-children/select-include-children.component.js +33 -47
  46. package/esm2015/lib/components/select-include-children/select-include-children.module.js +33 -78
  47. package/esm2015/lib/components/select-include-children/services/select-global.service.js +6 -7
  48. package/esm2015/lib/components/suffix-field/suffix-field.directive.js +21 -22
  49. package/esm2015/lib/components/table/table-action.js +31 -31
  50. package/esm2015/lib/components/table/table.module.js +21 -37
  51. package/esm2015/lib/components/test-only/test-only.component.js +11 -14
  52. package/esm2015/lib/components/tooltip/tooltip.js +19 -24
  53. package/esm2015/lib/components/tooltip/tooltip.module.js +20 -38
  54. package/esm2015/lib/components/tree/tree.component.js +33 -46
  55. package/esm2015/lib/components/tree/tree.module.js +30 -69
  56. package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +16 -22
  57. package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.js +31 -71
  58. package/esm2015/lib/directives/chip-input/chip-input-chip-list.directive.js +13 -13
  59. package/esm2015/lib/directives/chip-input/chip-input-field.directive.js +10 -11
  60. package/esm2015/lib/directives/chip-input/chip-input-select-dropdown.directive.js +10 -11
  61. package/esm2015/lib/directives/chip-input/chip-input-select-field.directive.js +14 -17
  62. package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +13 -14
  63. package/esm2015/lib/directives/chips/chip-body.directive.js +10 -11
  64. package/esm2015/lib/directives/chips/chip.directive.js +13 -13
  65. package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +14 -16
  66. package/esm2015/lib/directives/file-upload/file-upload-attachment-list.directive.js +10 -11
  67. package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +16 -19
  68. package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +14 -16
  69. package/esm2015/lib/directives/file-upload/file-upload-multiple-selector.directive.js +20 -26
  70. package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +15 -19
  71. package/esm2015/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.js +10 -11
  72. package/esm2015/lib/directives/file-upload/file-upload-selector.directive.js +18 -25
  73. package/esm2015/lib/directives/file-upload/file-upload.directive.js +20 -24
  74. package/esm2015/lib/directives/form.directive.js +51 -48
  75. package/esm2015/lib/directives/margin.directive.js +14 -15
  76. package/esm2015/lib/directives/range-slider/range-slider-lockup.directive.js +10 -11
  77. package/esm2015/lib/directives/range-slider/range-slider.directive.js +14 -17
  78. package/esm2015/lib/directives/scroll-selected/scroll-to-selected.directive.js +15 -16
  79. package/esm2015/lib/directives/scrollbar/scrollbar.directive.js +13 -13
  80. package/esm2015/lib/directives/search-field.directive.js +22 -21
  81. package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +10 -11
  82. package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +10 -11
  83. package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +10 -11
  84. package/esm2015/lib/directives/side-sheet/drawer.directive.js +10 -11
  85. package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +14 -15
  86. package/esm2015/lib/directives/tab/tab-group.directive.js +10 -11
  87. package/esm2015/lib/directives/tab/tab-label.directive.js +10 -11
  88. package/esm2015/lib/directives/text-block/text-block-line.directive.js +16 -20
  89. package/esm2015/lib/directives/text-block/text-block.directive.js +14 -17
  90. package/esm2015/lib/directives/tooltip/tooltip-image.directive.js +13 -14
  91. package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +22 -35
  92. package/esm2015/lib/material-module.js +16 -35
  93. package/esm2015/lib/model/en.js +4 -35
  94. package/esm2015/lib/model/no.js +3 -34
  95. package/esm2015/lib/pipe/dateFormat.pipe.js +10 -11
  96. package/esm2015/lib/qms-angular.component.js +11 -13
  97. package/esm2015/lib/qms-angular.module.js +121 -232
  98. package/esm2015/lib/qms-angular.service.js +8 -9
  99. package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +12 -32
  100. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +1 -5
  101. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +1 -10
  102. package/esm2015/lib/qms-ckeditor-components/common/enums/document-type.enum.js +1 -2
  103. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
  104. package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +16 -23
  105. package/esm2015/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.js +19 -34
  106. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +53 -577
  107. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +35 -69
  108. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.js +8 -12
  109. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +30 -39
  110. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +18 -22
  111. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +20 -29
  112. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +18 -22
  113. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +23 -35
  114. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +20 -30
  115. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +18 -27
  116. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor-base.component.js +4 -7
  117. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +44 -118
  118. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +55 -131
  119. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.js +10 -10
  120. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.js +9 -9
  121. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +26 -66
  122. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.js +8 -9
  123. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.js +9 -9
  124. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +9 -9
  125. package/esm2015/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.js +9 -9
  126. package/esm2015/lib/services/translation-registry.service.js +8 -9
  127. package/esm2015/lib/shared.module.js +4 -9
  128. package/esm2015/public-api.js +1 -16
  129. package/esm2015/qms-angular.js +9 -1
  130. package/fesm2015/qms-angular.js +3031 -11134
  131. package/fesm2015/qms-angular.js.map +1 -1
  132. package/lib/components/app-icon/app-icon.module.d.ts +0 -7
  133. package/lib/components/app-icon/icon-registry.service.d.ts +0 -3
  134. package/lib/components/badges/qms-badges.component.d.ts +0 -3
  135. package/lib/components/badges/qms-badges.module.d.ts +0 -9
  136. package/lib/components/banner/qms-banner/qms-banner.component.d.ts +0 -3
  137. package/lib/components/banner/qms-banner/qms-banner.module.d.ts +0 -10
  138. package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.d.ts +0 -3
  139. package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.d.ts +0 -10
  140. package/lib/components/banner/qms-banner-loading/qms-banner-loading.component.d.ts +0 -3
  141. package/lib/components/banner/qms-banner-loading/qms-banner-loading.module.d.ts +0 -8
  142. package/lib/components/breadcrumb/breadcrumb-direction-icon.directive.d.ts +0 -3
  143. package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +0 -3
  144. package/lib/components/breadcrumb/breadcrumb.d.ts +0 -3
  145. package/lib/components/breadcrumb/breadcrumb.module.d.ts +0 -13
  146. package/lib/components/button/button-toggle.d.ts +0 -5
  147. package/lib/components/button/button.d.ts +0 -7
  148. package/lib/components/button/button.module.d.ts +0 -9
  149. package/lib/components/comment/comment.d.ts +0 -3
  150. package/lib/components/dialog/dialog.d.ts +0 -5
  151. package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +0 -3
  152. package/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.d.ts +0 -16
  153. package/lib/components/list/list.d.ts +0 -15
  154. package/lib/components/list/list.module.d.ts +0 -11
  155. package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +0 -3
  156. package/lib/components/qms-app-bar/qms-app-bar.module.d.ts +0 -12
  157. package/lib/components/qms-stepper/qms-stepper.component.d.ts +0 -3
  158. package/lib/components/qms-stepper/qms-stepper.module.d.ts +0 -8
  159. package/lib/components/related/content/related-content.component.d.ts +0 -3
  160. package/lib/components/related/list-other-related/list-related.component.d.ts +0 -3
  161. package/lib/components/related/popup/related-popup.component.d.ts +0 -3
  162. package/lib/components/related/related.module.d.ts +0 -29
  163. package/lib/components/related/risk/analysis/analysis.component.d.ts +0 -3
  164. package/lib/components/related/risk/list/list.component.d.ts +0 -3
  165. package/lib/components/related/risk/result/result.component.d.ts +0 -3
  166. package/lib/components/related/service/related-global.service.d.ts +0 -3
  167. package/lib/components/related/sidenav/sidenav.component.d.ts +0 -3
  168. package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +0 -3
  169. package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +0 -3
  170. package/lib/components/reports/qms-reports.module.d.ts +0 -7
  171. package/lib/components/rich-text/rich-text.d.ts +0 -3
  172. package/lib/components/rich-text/rich-text.module.d.ts +0 -8
  173. package/lib/components/select-dialog/select-dialog.d.ts +0 -3
  174. package/lib/components/select-include-children/select-include-children.component.d.ts +0 -3
  175. package/lib/components/select-include-children/select-include-children.module.d.ts +0 -25
  176. package/lib/components/select-include-children/services/select-global.service.d.ts +0 -3
  177. package/lib/components/suffix-field/suffix-field.directive.d.ts +0 -5
  178. package/lib/components/table/table-action.d.ts +0 -5
  179. package/lib/components/table/table.module.d.ts +0 -8
  180. package/lib/components/test-only/test-only.component.d.ts +0 -3
  181. package/lib/components/tooltip/tooltip.d.ts +0 -3
  182. package/lib/components/tooltip/tooltip.module.d.ts +0 -9
  183. package/lib/components/tree/tree.component.d.ts +0 -3
  184. package/lib/components/tree/tree.module.d.ts +0 -22
  185. package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +0 -3
  186. package/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.d.ts +0 -16
  187. package/lib/directives/chip-input/chip-input-chip-list.directive.d.ts +0 -3
  188. package/lib/directives/chip-input/chip-input-field.directive.d.ts +0 -3
  189. package/lib/directives/chip-input/chip-input-select-dropdown.directive.d.ts +0 -3
  190. package/lib/directives/chip-input/chip-input-select-field.directive.d.ts +0 -3
  191. package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +0 -3
  192. package/lib/directives/chips/chip-body.directive.d.ts +0 -3
  193. package/lib/directives/chips/chip.directive.d.ts +0 -3
  194. package/lib/directives/dropdown-menu/dropdown-item.directive.d.ts +0 -3
  195. package/lib/directives/file-upload/file-upload-attachment-list.directive.d.ts +0 -3
  196. package/lib/directives/file-upload/file-upload-display.directive.d.ts +0 -3
  197. package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +0 -3
  198. package/lib/directives/file-upload/file-upload-multiple-selector.directive.d.ts +0 -3
  199. package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +0 -3
  200. package/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.d.ts +0 -3
  201. package/lib/directives/file-upload/file-upload-selector.directive.d.ts +0 -3
  202. package/lib/directives/file-upload/file-upload.directive.d.ts +0 -5
  203. package/lib/directives/form.directive.d.ts +0 -11
  204. package/lib/directives/margin.directive.d.ts +0 -3
  205. package/lib/directives/range-slider/range-slider-lockup.directive.d.ts +0 -3
  206. package/lib/directives/range-slider/range-slider.directive.d.ts +0 -3
  207. package/lib/directives/scroll-selected/scroll-to-selected.directive.d.ts +0 -3
  208. package/lib/directives/scrollbar/scrollbar.directive.d.ts +0 -3
  209. package/lib/directives/search-field.directive.d.ts +0 -5
  210. package/lib/directives/side-sheet/drawer-content.directive.d.ts +0 -3
  211. package/lib/directives/side-sheet/drawer-header-action.directive.d.ts +0 -3
  212. package/lib/directives/side-sheet/drawer-header.directive.d.ts +0 -3
  213. package/lib/directives/side-sheet/drawer.directive.d.ts +0 -3
  214. package/lib/directives/tab/tab-group-advanced.directive.d.ts +0 -3
  215. package/lib/directives/tab/tab-group.directive.d.ts +0 -3
  216. package/lib/directives/tab/tab-label.directive.d.ts +0 -3
  217. package/lib/directives/text-block/text-block-line.directive.d.ts +0 -3
  218. package/lib/directives/text-block/text-block.directive.d.ts +0 -3
  219. package/lib/directives/tooltip/tooltip-image.directive.d.ts +0 -3
  220. package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +0 -3
  221. package/lib/material-module.d.ts +0 -12
  222. package/lib/model/en.d.ts +0 -31
  223. package/lib/model/no.d.ts +0 -31
  224. package/lib/pipe/dateFormat.pipe.d.ts +0 -3
  225. package/lib/qms-angular.component.d.ts +0 -3
  226. package/lib/qms-angular.module.d.ts +0 -49
  227. package/lib/qms-angular.service.d.ts +0 -3
  228. package/lib/qms-ckeditor-components/common/bpmn/toolbar.function.d.ts +2 -2
  229. package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +0 -4
  230. package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +0 -9
  231. package/lib/qms-ckeditor-components/common/enums/document-type.enum.d.ts +0 -1
  232. package/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.d.ts +0 -3
  233. package/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.d.ts +0 -3
  234. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -88
  235. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +2 -11
  236. package/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.d.ts +0 -3
  237. package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +0 -3
  238. package/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.d.ts +0 -3
  239. package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +0 -3
  240. package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +0 -3
  241. package/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.d.ts +0 -4
  242. package/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.d.ts +0 -3
  243. package/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.d.ts +0 -3
  244. package/lib/qms-ckeditor-components/qms-ckeditor-base.component.d.ts +0 -3
  245. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +0 -8
  246. package/lib/qms-ckeditor-components/qms-ckeditor.module.d.ts +0 -44
  247. package/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.d.ts +0 -3
  248. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.d.ts +0 -3
  249. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +0 -4
  250. package/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.d.ts +0 -3
  251. package/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.d.ts +0 -3
  252. package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +0 -3
  253. package/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.d.ts +0 -3
  254. package/lib/services/translation-registry.service.d.ts +0 -3
  255. package/lib/shared.module.d.ts +0 -4
  256. package/lib.theme.scss +0 -8
  257. package/package.json +2 -1
  258. package/public-api.d.ts +0 -14
  259. package/qms-angular.d.ts +8 -1
  260. package/qms-angular.metadata.json +1 -0
  261. package/src/assets/jointjs/scss/bpmn.scss +35 -36
  262. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  263. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  264. package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
  265. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
  266. package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
  267. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
  268. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
  269. package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
  270. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
  271. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
  272. package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
  273. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
  274. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
  275. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
  276. package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
  277. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
  278. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
  279. package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
  280. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
  281. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
  282. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
  283. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
  284. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
  285. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
  286. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
  287. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
  288. package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
  289. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
  290. package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
  291. package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
  292. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
  293. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
  294. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
  295. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
  296. package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
  297. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
  298. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
  299. package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
  300. package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
  301. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
  302. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
  303. package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
  304. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
  305. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
  306. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
  307. package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
  308. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
  309. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
  310. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
  311. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
  312. package/src/assets/qms-ckeditor-plugin/package-lock.json +12177 -17
  313. package/src/assets/qms-ckeditor-plugin/package.json +0 -1
  314. package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +3 -22
  315. package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +173 -0
  316. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +5 -24
  317. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +1 -7
  318. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +0 -20
  319. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/dist/qmsCKEditorFullscreenPlugin.dev.js +87 -0
  320. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapediting.js +43 -47
  321. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +1 -1
  322. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +108 -72
  323. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +3 -4
  324. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +0 -13
  325. package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +8 -8
  326. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +24 -23
  327. package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +50 -1
  328. package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
  329. package/src/lib/components/tree/tree.component.scss +1 -1
  330. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +1 -15
  331. package/src/lib/qms-ckeditor-components/styles/_layout.scss +0 -24
  332. package/src/lib/qms-ckeditor-components/styles/_modules.scss +0 -8
  333. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.js +0 -7
  334. package/esm2015/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.js +0 -8
  335. package/esm2015/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.js +0 -16
  336. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/halo-service.js +0 -105
  337. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.js +0 -3762
  338. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.js +0 -68
  339. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +0 -372
  340. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.js +0 -1041
  341. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.js +0 -326
  342. package/esm2015/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.js +0 -318
  343. package/esm2015/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.js +0 -80
  344. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.js +0 -9
  345. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.js +0 -9
  346. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +0 -3
  347. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +0 -43
  348. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +0 -322
  349. package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.js +0 -8
  350. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.js +0 -26
  351. package/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.d.ts +0 -6
  352. package/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.d.ts +0 -6
  353. package/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.d.ts +0 -14
  354. package/lib/qms-ckeditor-components/common/flowchart/service/halo-service.d.ts +0 -48
  355. package/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.d.ts +0 -18
  356. package/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.d.ts +0 -17
  357. package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +0 -62
  358. package/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.d.ts +0 -1183
  359. package/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.d.ts +0 -216
  360. package/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.d.ts +0 -61
  361. package/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.d.ts +0 -36
  362. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.d.ts +0 -7
  363. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.d.ts +0 -7
  364. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +0 -7
  365. package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +0 -18
  366. package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +0 -44
  367. package/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.d.ts +0 -7
  368. package/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.d.ts +0 -13
  369. package/src/assets/images/ckeditor5.svg +0 -1
  370. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Bold.ttf +0 -0
  371. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Light.ttf +0 -0
  372. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Regular.ttf +0 -0
  373. package/src/assets/jointjs/fonts/Alegreya_Sans/OFL.txt +0 -92
  374. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Bold.ttf +0 -0
  375. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Light.ttf +0 -0
  376. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Regular.ttf +0 -0
  377. package/src/assets/jointjs/fonts/Averia_Libre/OFL.txt +0 -93
  378. package/src/assets/jointjs/fonts/Roboto_Condensed/LICENSE.txt +0 -202
  379. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf +0 -0
  380. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Light.ttf +0 -0
  381. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf +0 -0
  382. package/src/assets/jointjs/images/delete-icon-modern.png +0 -0
  383. package/src/assets/jointjs/images/image-icon1.svg +0 -1
  384. package/src/assets/jointjs/images/image-icon2.svg +0 -6
  385. package/src/assets/jointjs/images/image-icon3.svg +0 -11
  386. package/src/assets/jointjs/images/image-icon4.svg +0 -8
  387. package/src/assets/jointjs/images/member-female.png +0 -0
  388. package/src/assets/jointjs/images/member-male.png +0 -0
  389. package/src/assets/jointjs/images/no-color-icon.svg +0 -72
  390. package/src/assets/jointjs/images/reset-icon-modern.png +0 -0
  391. package/src/assets/jointjs/images/save-icon-modern.png +0 -0
  392. package/src/assets/jointjs/images/to-front-icon-modern.png +0 -0
  393. package/src/assets/jointjs/images/toback-icon-modern.png +0 -0
  394. package/src/assets/jointjs/images/toolbar-icons-dark.woff +0 -0
  395. package/src/assets/jointjs/images/toolbar-icons-material.png +0 -0
  396. package/src/assets/jointjs/images/toolbar-icons-modern.png +0 -0
  397. package/src/assets/jointjs/images/transparent-icon.svg +0 -50
  398. package/src/assets/jointjs/scss/style.dark.scss +0 -233
  399. package/src/assets/jointjs/scss/style.material.scss +0 -234
  400. package/src/assets/jointjs/scss/style.modern.scss +0 -225
  401. package/src/assets/jointjs/scss/style.scss +0 -216
  402. package/src/assets/jointjs/scss/theme-picker.scss +0 -21
  403. package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +0 -28
  404. package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/qmsCKEditorFlowchartPlugin.js +0 -63
  405. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/openimagemapcommand.js +0 -58
  406. package/src/assets/qms-ckeditor-plugin/src/themes/icons/flowchart.svg +0 -507
  407. package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +0 -1
  408. package/src/lib/components/select-one/select-one.component.scss +0 -240
  409. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +0 -16
  410. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.scss +0 -5
  411. package/src/themes/_non-bg-srcollbar.scss +0 -4
@@ -1,26 +1,14 @@
1
1
  import { Component, Inject } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
4
4
  import { forkJoin } from 'rxjs';
5
5
  import { debounceTime, takeUntil } from 'rxjs/operators';
6
+ import { TranslateLibraryService } from '../../../services/translation-registry.service';
6
7
  import { QMSCKEditorDocumentType } from '../../common/enums/document-type.enum';
7
8
  import QMSCKEditorTreeFunctions from '../../common/functions/tree.function';
9
+ import { QMSCKEditorRelation } from '../../common/models/qms-ckeditor-relation.model';
8
10
  import { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';
9
- import { CKEditorLinkConst } from '../../common/constants/ckeditorLink.constant';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "../../services/qms-ckeditor-tree.service";
12
- import * as i2 from "../../../services/translation-registry.service";
13
- import * as i3 from "@angular/material/dialog";
14
- import * as i4 from "@angular/material/icon";
15
- import * as i5 from "@angular/material/autocomplete";
16
- import * as i6 from "@angular/cdk/scrolling";
17
- import * as i7 from "@angular/material/core";
18
- import * as i8 from "../../common/module/tree/qms-ckeditor-tree.component";
19
- import * as i9 from "@angular/material/button";
20
- import * as i10 from "@angular/common";
21
- import * as i11 from "@angular/material/input";
22
- import * as i12 from "@angular/forms";
23
- import * as i13 from "../../common/models/qms-ckeditor-relation.model";
11
+ import { QMSCKEditorTreeService } from '../../services/qms-ckeditor-tree.service';
24
12
  export class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent {
25
13
  constructor(treeService, translate, dialogRef, data) {
26
14
  super();
@@ -132,7 +120,7 @@ export class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent {
132
120
  }
133
121
  onAddDocumentProcess() {
134
122
  let data;
135
- this.linkUrl = { id: '', url: '', title: '', type: this.selectedNode.type };
123
+ this.linkUrl = { id: '', url: '', title: '' };
136
124
  switch (this.selectedNode.type) {
137
125
  case QMSCKEditorDocumentType.document:
138
126
  data = this.documentData.find((e) => {
@@ -140,7 +128,7 @@ export class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent {
140
128
  });
141
129
  if (data) {
142
130
  this.linkUrl.id = this.selectedNode.id;
143
- this.linkUrl.url = `${CKEditorLinkConst.DOCUMENT_PARTIAL_URL}${data.childId}`;
131
+ this.linkUrl.url = `/document/${data.childId}`;
144
132
  this.linkUrl.title = data.childName;
145
133
  }
146
134
  break;
@@ -150,7 +138,7 @@ export class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent {
150
138
  });
151
139
  if (data) {
152
140
  this.linkUrl.id = this.selectedNode.id;
153
- this.linkUrl.url = `${CKEditorLinkConst.PROCESS_PARTIAL_URL}${data.displayId}`;
141
+ this.linkUrl.url = `/process-detail/${data.displayId}`;
154
142
  this.linkUrl.title = data.childName;
155
143
  }
156
144
  break;
@@ -160,7 +148,7 @@ export class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent {
160
148
  });
161
149
  if (data) {
162
150
  this.linkUrl.id = this.selectedNode.id;
163
- this.linkUrl.url = `${CKEditorLinkConst.AREA_PARTIAL_URL}${data.rootId}`;
151
+ this.linkUrl.url = `/area/detail/${data.rootId}`;
164
152
  this.linkUrl.title = data.rootName;
165
153
  }
166
154
  break;
@@ -170,7 +158,7 @@ export class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent {
170
158
  });
171
159
  if (data) {
172
160
  this.linkUrl.id = this.selectedNode.id;
173
- this.linkUrl.url = `${CKEditorLinkConst.FOLDER_PARTIAL_URL}${data.rootId}`;
161
+ this.linkUrl.url = `/folder/${data.rootId}`;
174
162
  this.linkUrl.title = data.rootName;
175
163
  }
176
164
  break;
@@ -299,17 +287,17 @@ export class QMSCKEditorRelatedComponent extends QMSCKEditorBaseComponent {
299
287
  }
300
288
  }
301
289
  }
302
- QMSCKEditorRelatedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSCKEditorRelatedComponent, deps: [{ token: i1.QMSCKEditorTreeService }, { token: i2.TranslateLibraryService }, { token: i3.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
303
- QMSCKEditorRelatedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: QMSCKEditorRelatedComponent, selector: "app-dialog", usesInheritance: true, ngImport: i0, template: "<div id=\"qmsckeditor_tree\" class=\"qmsckeditor qmsckeditor__tree__containter\">\r\n <span\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor_tree_001\" mat-dialog-content>\r\n <h2 *ngIf=\"!isOnlyDocument\">\r\n {{ LANG.QMSCKEDITOR.ADD_DOCUMENT_PROCESS }}\r\n </h2>\r\n <h2 *ngIf=\"isOnlyDocument\">{{ LANG.QMSCKEDITOR.ADD_DOCUMENT }}</h2>\r\n </div>\r\n <div\r\n id=\"qmsckeditor_tree_002\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.QMSCKEDITOR.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n style=\"height: 50vh\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n style=\"height: 50vh\"\r\n >\r\n <mat-option\r\n *cdkVirtualFor=\"let option of filteredOptions\"\r\n [value]=\"option\"\r\n >\r\n <div\r\n *ngIf=\"option.type == 1\"\r\n class=\"col-12\"\r\n (click)=\"selectRelated(option.id, option.type)\"\r\n >\r\n <span\r\n ><img\r\n class=\"mat-icon\"\r\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAiElEQVR4AezOAQaAABQE0dDBuk2AjvCPGDrQb0GQ2NCqzDAAvOFP0ahLb7pvvjwBmn1ABrXqfhOqj/3KR+VBPioMOqPyIB+VB/moPMhH5UGdAk26rs6B/AABAgQIECBAgL4E2vcZpJFG+DA5DppPQweFk+MgHiAuB+L7VHTIeyDuBg9kDBcwCgBx1CcsdvijVwAAAABJRU5ErkJggg==\"\r\n /></span>\r\n <span>{{ option.name }}</span>\r\n </div>\r\n <div\r\n *ngIf=\"option.type == 2\"\r\n class=\"col-12\"\r\n (click)=\"selectRelated(option.id, option.type)\"\r\n >\r\n <span\r\n ><img\r\n class=\"mat-icon\"\r\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAQMAAADaua+7AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAAbHV9mFYLuQAAAAJ0Uk5TAP9bkSK1AAAAKUlEQVR4nGNgQALyjT/AWPL/DDCG8dmAclgx4w8wZgeqBWEGIBuMEQAAaJkRERdvY48AAAAASUVORK5CYII=\"\r\n /></span>\r\n <span>{{ option.name }}</span>\r\n </div>\r\n </mat-option>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n <div id=\"qmsckeditor_tree_003\" class=\"row ml-0 mr-0 mt20\">\r\n <div id=\"qmsckeditor_tree_003_001\" class=\"content-box\">\r\n <strong *ngIf=\"!isOnlyDocument\">{{ LANG.QMSCKEDITOR.PROCESSES }}</strong>\r\n <qms-ckeditor-tree\r\n *ngIf=\"!isOnlyDocument\"\r\n [areaOfCurrentProcess]=\"areaOfCurrentProcess\"\r\n [listParentObj]=\"listParentProcessId\"\r\n [treeData]=\"treeProcessData\"\r\n [rawData]=\"processData\"\r\n [docType]=\"2\"\r\n [useExpandFeature]=\"true\"\r\n [allowSelectFolder]=\"isEnableFolder\"\r\n (selectNodeEvent)=\"selectProcessNode($event)\"\r\n (selectFolderEvent)=\"selectAreaNode($event)\"\r\n ></qms-ckeditor-tree>\r\n <div *ngIf=\"!isOnlyDocument\" class=\"line-divider\"></div>\r\n <strong>{{ LANG.QMSCKEDITOR.DOCUMENTS }}</strong>\r\n <qms-ckeditor-tree\r\n [areaOfCurrentProcess]=\"areaOfCurrentProcess\"\r\n [listParentObj]=\"listParentDocumentId\"\r\n [treeData]=\"treeDocumentData\"\r\n [rawData]=\"documentData\"\r\n [useExpandFeature]=\"true\"\r\n [docType]=\"1\"\r\n [allowSelectFolder]=\"isEnableFolder\"\r\n (selectNodeEvent)=\"selectDocumentNode($event)\"\r\n (selectFolderEvent)=\"selectHandbookNode($event)\"\r\n ></qms-ckeditor-tree>\r\n </div>\r\n </div>\r\n <div\r\n id=\"qmsckeditor_tree_004\"\r\n class=\"qmsckeditor button__groups mt20 row ml-0 mr-0\"\r\n >\r\n <button\r\n type=\"button\"\r\n class=\"save col-12\"\r\n mat-flat-button\r\n (click)=\"onAddDocumentProcess()\"\r\n >\r\n {{ LANG.QMSCKEDITOR.ADD }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".mt-n4{margin-top:-4px!important}.mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt8{margin-top:8px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt24{margin-top:24px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.pa0{padding:0!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fs32{font-size:32px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:470px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}::ng-deep .qmsckeditor__tree__containter .input__field input{width:97%;padding:10px;outline:none;border:none;background:#eee}::ng-deep .qmsckeditor__tree__containter .input__field .mat-icon{margin-left:-35px;cursor:pointer;vertical-align:middle}::ng-deep .qmsckeditor__tree__containter .mat-tree{background:#00283a}::ng-deep .qmsckeditor__tree__containter .mat-tree-node{color:#fff;min-height:40px}::ng-deep .qmsckeditor__tree__containter .folder-icon{color:#a4b0de}::ng-deep .qmsckeditor__tree__containter .mat-icon{margin-bottom:5px}::ng-deep .qmsckeditor__tree__containter .content-box{min-width:375px;width:100%;height:435px;overflow-y:auto;background:#00283a;color:#fff}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item{width:100%;height:56px;border:1px solid #d4d5d6;padding:15px}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item:hover{background:#d8ddf0;cursor:pointer}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item .content-box-text{float:left;width:90%;height:26px;overflow:hidden}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item .content-box-icon{float:right}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item:not(:last-child){border-bottom:none}::ng-deep .qmsckeditor__tree__containter .content-box strong{text-transform:uppercase;margin:10px 0 0 2px}::ng-deep .qmsckeditor__tree__containter .line-divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px}::ng-deep .qmsckeditor__tree__containter .loading ::ng-deep .mat-progress-spinner{width:21px;height:21px;margin:0 auto;top:32px}::ng-deep .mat-autocomplete-panel.mat-autocomplete-visible{overflow:hidden;max-height:none}::ng-deep .mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden;display:none}"], components: [{ type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation"], outputs: ["scrolledIndexChange"] }, { type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i8.QMSCKEditorTreeComponent, selector: "qms-ckeditor-tree", inputs: ["rawData", "treeData", "useExpandFeature", "docType", "allowSelectFolder", "listParentObj", "areaOfCurrentProcess"], outputs: ["selectNodeEvent", "selectFolderEvent"] }, { type: i9.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: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.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: i12.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: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i12.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i6.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i6.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }] });
304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSCKEditorRelatedComponent, decorators: [{
305
- type: Component,
306
- args: [{
307
- selector: 'app-dialog',
308
- templateUrl: './qmsckeditor-related.component.html',
309
- styleUrls: ['./qmsckeditor-related.component.scss']
310
- }]
311
- }], ctorParameters: function () { return [{ type: i1.QMSCKEditorTreeService }, { type: i2.TranslateLibraryService }, { type: i3.MatDialogRef }, { type: i13.QMSCKEditorRelation, decorators: [{
312
- type: Inject,
313
- args: [MAT_DIALOG_DATA]
314
- }] }]; } });
315
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zY2tlZGl0b3ItcmVsYXRlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLXJlbGF0aW9uL3Ftc2NrZWRpdG9yLXJlbGF0ZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21wb25lbnRzL3Ftcy1ja2VkaXRvci1yZWxhdGlvbi9xbXNja2VkaXRvci1yZWxhdGVkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLHdCQUF3QixNQUFNLHNDQUFzQyxDQUFDO0FBSTVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUF5QmpGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx3QkFBd0I7SUF3QnZFLFlBQ1UsV0FBbUMsRUFDbkMsU0FBa0MsRUFDbEMsU0FBb0QsRUFDNUIsSUFBeUI7UUFF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LENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN4RSxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO2dCQUNyQyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFnQixDQUFDO2dCQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7Z0JBQzVCLGdFQUFnRTthQUNqRTtTQUNGO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUN2RCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN4RSxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO2dCQUNyQyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFnQixDQUFDO2dCQUMzQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRTtvQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO29CQUM3QiwrREFBK0Q7aUJBQ2hFO2FBQ0Y7U0FDRjtJQUNILENBQUM7O3dIQTFUVSwyQkFBMkIsMkhBNEI1QixlQUFlOzRHQTVCZCwyQkFBMkIseUVDdEN4Qyw0c0lBa0hBOzJGRDVFYSwyQkFBMkI7a0JBTHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2lCQUNwRDs7MEJBNkJJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24tcmVnaXN0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yRG9jdW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zL2RvY3VtZW50LXR5cGUuZW51bSc7XHJcbmltcG9ydCBRTVNDS0VkaXRvclRyZWVGdW5jdGlvbnMgZnJvbSAnLi4vLi4vY29tbW9uL2Z1bmN0aW9ucy90cmVlLmZ1bmN0aW9uJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXJlbGF0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci10cmVlLW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgUU1TQ0tFZGl0b3JUcmVlIGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXRyZWUubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRyZWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcW1zLWNrZWRpdG9yLXRyZWUuc2VydmljZSc7XHJcbmltcG9ydCB7IENLRWRpdG9yTGlua0NvbnN0IH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbnN0YW50cy9ja2VkaXRvckxpbmsuY29uc3RhbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZWxhdGVkIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0eXBlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0ZWROb2RlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHR5cGU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaW5rVXJsIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdHlwZTogbnVtYmVyO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXNja2VkaXRvci1yZWxhdGVkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xbXNja2VkaXRvci1yZWxhdGVkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yUmVsYXRlZENvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgTEFORzogYW55O1xyXG4gIHNlbGVjdGVkTm9kZTogU2VsZWN0ZWROb2RlO1xyXG4gIGxpbmtVcmw6IExpbmtVcmw7XHJcbiAgZG9jdW1lbnRUeXBlOiBRTVNDS0VkaXRvckRvY3VtZW50VHlwZTtcclxuICBwcm9jZXNzRGF0YTogUU1TQ0tFZGl0b3JUcmVlW107XHJcbiAgZG9jdW1lbnREYXRhOiBRTVNDS0VkaXRvclRyZWVbXTtcclxuICBmaWx0ZXJEYXRhOiBRTVNDS0VkaXRvclRyZWVbXTtcclxuICB0cmVlRGF0YUZpbGU6IG9iamVjdDtcclxuICB0cmVlUHJvY2Vzc0ZpbGU6IG9iamVjdDtcclxuICB0cmVlRG9jdW1lbnRGaWxlOiBvYmplY3Q7XHJcbiAgdHJlZVByb2Nlc3NEYXRhOiBUcmVlTm9kZVtdO1xyXG4gIHRyZWVEb2N1bWVudERhdGE6IFRyZWVOb2RlW107XHJcbiAgcHJvY2Vzc051bWJlciA9IC0xO1xyXG4gIGxpc3RQYXJlbnRQcm9jZXNzSWQgPSB7fTtcclxuICBsaXN0UGFyZW50RG9jdW1lbnRJZCA9IHt9O1xyXG5cclxuICBteUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBmaWx0ZXJlZE9wdGlvbnMgPSBbXTtcclxuICBpc0lucHV0VmFsdWUgPSBmYWxzZTtcclxuICBpc09ubHlEb2N1bWVudCA9IGZhbHNlO1xyXG4gIGlzRW5hYmxlRm9sZGVyID0gZmFsc2U7XHJcbiAgYXJlYU9mQ3VycmVudFByb2Nlc3M6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRyZWVTZXJ2aWNlOiBRTVNDS0VkaXRvclRyZWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxRTVNDS0VkaXRvclJlbGF0ZWRDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBRTVNDS0VkaXRvclJlbGF0aW9uXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5pc09ubHlEb2N1bWVudCA9IGRhdGEuaXNPbmx5RG9jdW1lbnQ7XHJcbiAgICB0aGlzLmlzRW5hYmxlRm9sZGVyID0gZGF0YS5pc0VuYWJsZUZvbGRlcjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB7IGlkOiAnJywgdHlwZTogMCB9O1xyXG4gICAgdGhpcy5nZXRQcm9jZXNzQW5kRG9jdW1lbnREYXRhKCk7XHJcbiAgICB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9uU2VhcmNoUmVsYXRlZCh2YWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9jZXNzQW5kRG9jdW1lbnREYXRhKCkge1xyXG4gICAgZm9ya0pvaW4oW3RoaXMuZ2V0UHJvY2Vzc0RhdGEoKSwgdGhpcy5nZXREb2N1bWVudERhdGEoKV0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKFtwLCBkXSkgPT4ge1xyXG4gICAgICAgIHRoaXMubWFwcGluZ0RhdGEocCwgMik7XHJcbiAgICAgICAgdGhpcy5tYXBwaW5nRGF0YShkLCAxKTtcclxuXHJcbiAgICAgICAgLy8gZm9yICBwcm9jZXNzXHJcbiAgICAgICAgdGhpcy5maWx0ZXJEYXRhID0gdGhpcy5wcm9jZXNzRGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LnBhcmVudElkID09PSAnJztcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhRmlsZSA9IFFNU0NLRWRpdG9yVHJlZUZ1bmN0aW9ucy5idWlsZE9iamVjdFRyZWUodGhpcy5maWx0ZXJEYXRhKTtcclxuICAgICAgICB0aGlzLnRyZWVQcm9jZXNzRGF0YSA9IFFNU0NLRWRpdG9yVHJlZUZ1bmN0aW9ucy5idWlsZEFycmF5VHJlZSh0aGlzLnRyZWVEYXRhRmlsZSwgMCk7XHJcbiAgICAgICAgLy8gZm9yIGRvY3VtZW50XHJcbiAgICAgICAgdGhpcy5maWx0ZXJEYXRhID0gdGhpcy5kb2N1bWVudERhdGEuZmlsdGVyKCh4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5wYXJlbnRJZCA9PT0gJyc7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YUZpbGUgPSBRTVNDS0VkaXRvclRyZWVGdW5jdGlvbnMuYnVpbGRPYmplY3RUcmVlKHRoaXMuZmlsdGVyRGF0YSk7XHJcbiAgICAgICAgdGhpcy50cmVlRG9jdW1lbnREYXRhID0gUU1TQ0tFZGl0b3JUcmVlRnVuY3Rpb25zLmJ1aWxkQXJyYXlUcmVlKHRoaXMudHJlZURhdGFGaWxlLCAwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9jZXNzRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyZWVTZXJ2aWNlLmdldFByb2Nlc3NMaXN0KCkucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKTtcclxuICB9XHJcblxyXG4gIGdldERvY3VtZW50RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyZWVTZXJ2aWNlLmdldERvY3VtZW50TGlzdCgpLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSk7XHJcbiAgfVxyXG5cclxuICBtYXBwaW5nRGF0YShhcnJheTogUU1TQ0tFZGl0b3JUcmVlW10sIGRhdGFUeXBlOiBudW1iZXIpIHtcclxuICAgIGlmIChhcnJheSkge1xyXG4gICAgICBpZiAoZGF0YVR5cGUgPT09IDEpIHtcclxuICAgICAgICB0aGlzLmRvY3VtZW50RGF0YSA9IGFycmF5Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCEhaXRlbS5wYXJlbnRJZCAmJiBpdGVtLnBhcmVudElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0UGFyZW50RG9jdW1lbnRJZFtpdGVtLnBhcmVudElkXSA9IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoISFpdGVtLmNoaWxkSWQgJiYgaXRlbS5jaGlsZElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0UGFyZW50RG9jdW1lbnRJZFtpdGVtLnJvb3RJZF0gPSAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcm9vdElkOiBpdGVtLnJvb3RJZCxcclxuICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgIHJvb3ROYW1lOiBpdGVtLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICBzdWJOYW1lOiBpdGVtLnN1Yk5hbWUsXHJcbiAgICAgICAgICAgIGNoaWxkSWQ6IGl0ZW0uY2hpbGRJZCxcclxuICAgICAgICAgICAgY2hpbGROYW1lOiBpdGVtLmNoaWxkTmFtZSxcclxuICAgICAgICAgICAgc3RhdHVzSWQ6IGl0ZW0uc3RhdHVzSWQsXHJcbiAgICAgICAgICAgIGRpc3BsYXlJZDogaXRlbS5kaXNwbGF5SWRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YVR5cGUgPT09IDIpIHtcclxuICAgICAgICB0aGlzLnByb2Nlc3NEYXRhID0gYXJyYXkuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICBpZiAoISFpdGVtLnBhcmVudElkICYmIGl0ZW0ucGFyZW50SWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RQYXJlbnRQcm9jZXNzSWRbaXRlbS5wYXJlbnRJZF0gPSAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW0uY2hpbGRJZCAmJiBpdGVtLmNoaWxkSWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RQYXJlbnRQcm9jZXNzSWRbaXRlbS5yb290SWRdID0gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChOdW1iZXIoaXRlbS5kaXNwbGF5SWQpID09PSB0aGlzLnByb2Nlc3NOdW1iZXIpIHtcclxuICAgICAgICAgICAgaXRlbS5jaGlsZElkID0gJyc7XHJcbiAgICAgICAgICAgIGl0ZW0uY2hpbGROYW1lID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuYXJlYU9mQ3VycmVudFByb2Nlc3MgPSBpdGVtLnJvb3RJZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHJvb3RJZDogaXRlbS5yb290SWQsXHJcbiAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICByb290TmFtZTogaXRlbS5yb290TmFtZSxcclxuICAgICAgICAgICAgc3ViTmFtZTogaXRlbS5zdWJOYW1lLFxyXG4gICAgICAgICAgICBjaGlsZElkOiBpdGVtLmNoaWxkSWQsXHJcbiAgICAgICAgICAgIGNoaWxkTmFtZTogaXRlbS5jaGlsZE5hbWUsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBpdGVtLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBkaXNwbGF5SWQ6IGl0ZW0uZGlzcGxheUlkXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb25BZGREb2N1bWVudFByb2Nlc3MoKSB7XHJcbiAgICBsZXQgZGF0YTogUU1TQ0tFZGl0b3JUcmVlO1xyXG4gICAgdGhpcy5saW5rVXJsID0geyBpZDogJycsIHVybDogJycsIHRpdGxlOiAnJywgdHlwZTogdGhpcy5zZWxlY3RlZE5vZGUudHlwZSB9O1xyXG4gICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkTm9kZS50eXBlKSB7XHJcbiAgICAgIGNhc2UgUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUuZG9jdW1lbnQ6XHJcbiAgICAgICAgZGF0YSA9IHRoaXMuZG9jdW1lbnREYXRhLmZpbmQoKGUpID0+IHtcclxuICAgICAgICAgIHJldHVybiBlLmNoaWxkSWQgPT09IHRoaXMuc2VsZWN0ZWROb2RlLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwuaWQgPSB0aGlzLnNlbGVjdGVkTm9kZS5pZDtcclxuICAgICAgICAgIHRoaXMubGlua1VybC51cmwgPSBgJHtDS0VkaXRvckxpbmtDb25zdC5ET0NVTUVOVF9QQVJUSUFMX1VSTH0ke2RhdGEuY2hpbGRJZH1gO1xyXG4gICAgICAgICAgdGhpcy5saW5rVXJsLnRpdGxlID0gZGF0YS5jaGlsZE5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFFNU0NLRWRpdG9yRG9jdW1lbnRUeXBlLnByb2Nlc3M6XHJcbiAgICAgICAgZGF0YSA9IHRoaXMucHJvY2Vzc0RhdGEuZmluZCgoZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGUuY2hpbGRJZCA9PT0gdGhpcy5zZWxlY3RlZE5vZGUuaWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMubGlua1VybC5pZCA9IHRoaXMuc2VsZWN0ZWROb2RlLmlkO1xyXG4gICAgICAgICAgdGhpcy5saW5rVXJsLnVybCA9IGAke0NLRWRpdG9yTGlua0NvbnN0LlBST0NFU1NfUEFSVElBTF9VUkx9JHtkYXRhLmRpc3BsYXlJZH1gO1xyXG4gICAgICAgICAgdGhpcy5saW5rVXJsLnRpdGxlID0gZGF0YS5jaGlsZE5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFFNU0NLRWRpdG9yRG9jdW1lbnRUeXBlLmFyZWE6XHJcbiAgICAgICAgZGF0YSA9IHRoaXMucHJvY2Vzc0RhdGEuZmluZCgoZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGUucm9vdElkID09PSB0aGlzLnNlbGVjdGVkTm9kZS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5saW5rVXJsLmlkID0gdGhpcy5zZWxlY3RlZE5vZGUuaWQ7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwudXJsID0gYCR7Q0tFZGl0b3JMaW5rQ29uc3QuQVJFQV9QQVJUSUFMX1VSTH0ke2RhdGEucm9vdElkfWA7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwudGl0bGUgPSBkYXRhLnJvb3ROYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBRTVNDS0VkaXRvckRvY3VtZW50VHlwZS5mb2xkZXI6XHJcbiAgICAgICAgZGF0YSA9IHRoaXMuZG9jdW1lbnREYXRhLmZpbmQoKGUpID0+IHtcclxuICAgICAgICAgIHJldHVybiBlLnJvb3RJZCA9PT0gdGhpcy5zZWxlY3RlZE5vZGUuaWQ7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwuaWQgPSB0aGlzLnNlbGVjdGVkTm9kZS5pZDtcclxuICAgICAgICAgIHRoaXMubGlua1VybC51cmwgPSBgJHtDS0VkaXRvckxpbmtDb25zdC5GT0xERVJfUEFSVElBTF9VUkx9JHtkYXRhLnJvb3RJZH1gO1xyXG4gICAgICAgICAgdGhpcy5saW5rVXJsLnRpdGxlID0gZGF0YS5yb290TmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmxpbmtVcmwpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QXJlYU5vZGUoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUuaWQgPSBpZDtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlLnR5cGUgPSBRTVNDS0VkaXRvckRvY3VtZW50VHlwZS5hcmVhO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UHJvY2Vzc05vZGUoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUuaWQgPSBpZDtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlLnR5cGUgPSBRTVNDS0VkaXRvckRvY3VtZW50VHlwZS5wcm9jZXNzO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0RG9jdW1lbnROb2RlKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlLmlkID0gaWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZS50eXBlID0gUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUuZG9jdW1lbnQ7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RIYW5kYm9va05vZGUoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUuaWQgPSBpZDtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlLnR5cGUgPSBRTVNDS0VkaXRvckRvY3VtZW50VHlwZS5mb2xkZXI7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGlzTWF0Y2hUcnVlKGFycjogYW55W10sIGFycjI6IGFueVtdKSB7XHJcbiAgICByZXR1cm4gYXJyLmV2ZXJ5KChpKSA9PiB7XHJcbiAgICAgIHJldHVybiBhcnIyLmluY2x1ZGVzKGkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaFJlbGF0ZWQoX3ZhbDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBhcnI6IFJlbGF0ZWRbXSA9IFtdO1xyXG4gICAgbGV0IGRhdGEgPSBbXTtcclxuICAgIGlmICh0eXBlb2YgX3ZhbCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuIGFycjtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbCA9IF92YWxcclxuICAgICAgLnRyaW0oKVxyXG4gICAgICAuc3BsaXQoJyAnKVxyXG4gICAgICAubWFwKCh2KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHYudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAoIXZhbCB8fCB2YWwubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBhcnI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLmlzT25seURvY3VtZW50KSB7XHJcbiAgICAgIGRhdGEgPSB0aGlzLnByb2Nlc3NEYXRhLmZpbHRlcigoaXRlbSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRlbXBBcnIgPSBpdGVtLmNoaWxkTmFtZS5zcGxpdCgnICcpLm1hcCgodikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHYudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc01hdGNoVHJ1ZSh2YWwsIHRlbXBBcnIpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgZGF0YS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICBhcnIucHVzaCh7XHJcbiAgICAgICAgICAgIGlkOiBlbGVtZW50LmNoaWxkSWQsXHJcbiAgICAgICAgICAgIG5hbWU6IGVsZW1lbnQuY2hpbGROYW1lLFxyXG4gICAgICAgICAgICB0eXBlOiAyXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRhdGEgPSB0aGlzLmRvY3VtZW50RGF0YS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgdGVtcEFyciA9IGl0ZW0uY2hpbGROYW1lLnNwbGl0KCcgJykubWFwKCh2KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHYudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0aGlzLmlzTWF0Y2hUcnVlKHZhbCwgdGVtcEFycik7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICBhcnIucHVzaCh7XHJcbiAgICAgICAgICBpZDogZWxlbWVudC5jaGlsZElkLFxyXG4gICAgICAgICAgbmFtZTogZWxlbWVudC5jaGlsZE5hbWUsXHJcbiAgICAgICAgICB0eXBlOiAxXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRSZXN1bHRIZWlnaHQoYXJyKTtcclxuICAgIHJldHVybiBhcnI7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5UmVsYXRlZChyZWxhdGVkPzogUmVsYXRlZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gcmVsYXRlZCA/IHJlbGF0ZWQubmFtZSA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHNlbGVjdFJlbGF0ZWQoaWQ6IHN0cmluZywgdHlwZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZSA9IHsgaWQsIHR5cGUgfTtcclxuICAgIHRoaXMub25BZGREb2N1bWVudFByb2Nlc3MoKTtcclxuICB9XHJcblxyXG4gIHNldFJlc3VsdEhlaWdodChhcnI/OiBSZWxhdGVkW10pIHtcclxuICAgIGNvbnN0IHZpZXdyZXBvcnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVsYXRlZC12aWV3cG9ydCcpO1xyXG4gICAgaWYgKHZpZXdyZXBvcnRzKSB7XHJcbiAgICAgIGxldCBpSGVpZ2h0ID0gMDtcclxuICAgICAgY29uc3QgdmlldyA9IHZpZXdyZXBvcnRzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBpZiAoYXJyLmxlbmd0aCAqIDUgPiA1MCkge1xyXG4gICAgICAgIGlIZWlnaHQgPSA1MTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpSGVpZ2h0ID0gYXJyLmxlbmd0aCAqIDUgKyAxO1xyXG4gICAgICAgIGlmIChpSGVpZ2h0ID4gMCkge1xyXG4gICAgICAgICAgLy8gd2luZG93W1Byb2Nlc3NSZWxhdGVkQ29uc3QuSVNfRElTUExBWV9TRUFSQ0hfUkVTVUxUXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHZpZXcuc3R5bGUuaGVpZ2h0ID0gYCR7aUhlaWdodH12aGA7XHJcbiAgICAgIHZpZXcuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlU2VhcmNoUmVzdWx0KCkge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRPcHRpb25zICYmIHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3Qgdmlld3JlcG9ydHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZWxhdGVkLXZpZXdwb3J0Jyk7XHJcbiAgICAgIGlmICh2aWV3cmVwb3J0cyAmJiB2aWV3cmVwb3J0cy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCB2aWV3ID0gdmlld3JlcG9ydHNbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgdmlldy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgIC8vIHdpbmRvd1tQcm9jZXNzUmVsYXRlZENvbnN0LklTX0RJU1BMQVlfU0VBUkNIX1JFU1VMVF0gPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2hvd1NlYXJjaFJlc3VsdCgpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlcmVkT3B0aW9ucyAmJiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgY29uc3Qgdmlld3JlcG9ydHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdyZWxhdGVkLXZpZXdwb3J0Jyk7XHJcbiAgICAgIGlmICh2aWV3cmVwb3J0cyAmJiB2aWV3cmVwb3J0cy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCB2aWV3ID0gdmlld3JlcG9ydHNbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgaWYgKHZpZXcuc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICB2aWV3LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgICAgLy8gd2luZG93W1Byb2Nlc3NSZWxhdGVkQ29uc3QuSVNfRElTUExBWV9TRUFSQ0hfUkVTVUxUXSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJxbXNja2VkaXRvcl90cmVlXCIgY2xhc3M9XCJxbXNja2VkaXRvciBxbXNja2VkaXRvcl9fdHJlZV9fY29udGFpbnRlclwiPlxyXG4gIDxzcGFuXHJcbiAgICBtYXQtaWNvbi1idXR0b25cclxuICAgIGNsYXNzPVwicW1zY2tlZGl0b3IgYnV0dG9uX19jbG9zZVwiXHJcbiAgICAoY2xpY2spPVwib25DbG9zZUNsaWNrKClcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPC9zcGFuPlxyXG4gIDxkaXYgaWQ9XCJxbXNja2VkaXRvcl90cmVlXzAwMVwiIG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxoMiAqbmdJZj1cIiFpc09ubHlEb2N1bWVudFwiPlxyXG4gICAgICB7eyBMQU5HLlFNU0NLRURJVE9SLkFERF9ET0NVTUVOVF9QUk9DRVNTIH19XHJcbiAgICA8L2gyPlxyXG4gICAgPGgyICpuZ0lmPVwiaXNPbmx5RG9jdW1lbnRcIj57eyBMQU5HLlFNU0NLRURJVE9SLkFERF9ET0NVTUVOVCB9fTwvaDI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgaWQ9XCJxbXNja2VkaXRvcl90cmVlXzAwMlwiXHJcbiAgICBjbGFzcz1cImlucHV0X19maWVsZFwiXHJcbiAgICAoY2xpY2spPVwic2hvd1NlYXJjaFJlc3VsdCgpXCJcclxuICA+XHJcbiAgICA8aW5wdXRcclxuICAgICAgI25hbWVcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cInt7IExBTkcuUU1TQ0tFRElUT1IuU0VBUkNIIH19XCJcclxuICAgICAgbWF0SW5wdXRcclxuICAgICAgW2Zvcm1Db250cm9sXT1cIm15Q29udHJvbFwiXHJcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAvPlxyXG4gICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcbiAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5UmVsYXRlZFwiXHJcbiAgICBzdHlsZT1cImhlaWdodDogNTB2aFwiXHJcbiAgPlxyXG4gICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxyXG4gICAgICBpdGVtU2l6ZT1cIjEwXCJcclxuICAgICAgY2xhc3M9XCJyZWxhdGVkLXZpZXdwb3J0XCJcclxuICAgICAgc3R5bGU9XCJoZWlnaHQ6IDUwdmhcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICpjZGtWaXJ0dWFsRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnNcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJvcHRpb24udHlwZSA9PSAxXCJcclxuICAgICAgICAgIGNsYXNzPVwiY29sLTEyXCJcclxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSZWxhdGVkKG9wdGlvbi5pZCwgb3B0aW9uLnR5cGUpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICA+PGltZ1xyXG4gICAgICAgICAgICAgIGNsYXNzPVwibWF0LWljb25cIlxyXG4gICAgICAgICAgICAgIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQ1FBQUFBa0NBWUFBQURoQUppWUFBQUFpRWxFUVZSNEFlek9BUWFBQUJRRTBkREJ1azJBanZDUEdEclFiMEdRMk5DcXpEQUF2T0ZQMGFoTGI3cHZ2andCbW4xQUJyWHFmaE9xai8zS1IrVkJQaW9NT3FQeUlCK1ZCL21vUE1oSDVVR2RBazI2cnM2Qi9BQUJBZ1FJRUNCQWdMNEUydmNacEpGRytEQTVEcHBQUXdlRmsrTWdIaUF1QitMN1ZIVElleUR1Qmc5a0RCY3dDZ0J4MUNjc2R2aWpWd0FBQUFCSlJVNUVya0pnZ2c9PVwiXHJcbiAgICAgICAgICAvPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbi5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwib3B0aW9uLnR5cGUgPT0gMlwiXHJcbiAgICAgICAgICBjbGFzcz1cImNvbC0xMlwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmVsYXRlZChvcHRpb24uaWQsIG9wdGlvbi50eXBlKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgPjxpbWdcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1pY29uXCJcclxuICAgICAgICAgICAgICBzcmM9XCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlBUU1BQUFEYXVhKzdBQUFBQVhOU1IwSUIyY2tzZndBQUFBbHdTRmx6QUFBTEV3QUFDeE1CQUpxY0dBQUFBQVpRVEZSRkFBQUFiSFY5bUZZTHVRQUFBQUowVWs1VEFQOWJrU0sxQUFBQUtVbEVRVlI0bkdOZ1FBTHlqVC9BV1BML0REQ0c4ZG1BY2xneDR3OHdaZ2VxQldFR0lCdU1FUUFBYUprUkVSZHZZNDhBQUFBQVNVVk9SSzVDWUlJPVwiXHJcbiAgICAgICAgICAvPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPnt7IG9wdGlvbi5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cclxuICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgPGRpdiBpZD1cInFtc2NrZWRpdG9yX3RyZWVfMDAzXCIgY2xhc3M9XCJyb3cgbWwtMCBtci0wIG10MjBcIj5cclxuICAgIDxkaXYgaWQ9XCJxbXNja2VkaXRvcl90cmVlXzAwM18wMDFcIiBjbGFzcz1cImNvbnRlbnQtYm94XCI+XHJcbiAgICAgIDxzdHJvbmcgKm5nSWY9XCIhaXNPbmx5RG9jdW1lbnRcIj57eyBMQU5HLlFNU0NLRURJVE9SLlBST0NFU1NFUyB9fTwvc3Ryb25nPlxyXG4gICAgICA8cW1zLWNrZWRpdG9yLXRyZWVcclxuICAgICAgICAqbmdJZj1cIiFpc09ubHlEb2N1bWVudFwiXHJcbiAgICAgICAgW2FyZWFPZkN1cnJlbnRQcm9jZXNzXT1cImFyZWFPZkN1cnJlbnRQcm9jZXNzXCJcclxuICAgICAgICBbbGlzdFBhcmVudE9ial09XCJsaXN0UGFyZW50UHJvY2Vzc0lkXCJcclxuICAgICAgICBbdHJlZURhdGFdPVwidHJlZVByb2Nlc3NEYXRhXCJcclxuICAgICAgICBbcmF3RGF0YV09XCJwcm9jZXNzRGF0YVwiXHJcbiAgICAgICAgW2RvY1R5cGVdPVwiMlwiXHJcbiAgICAgICAgW3VzZUV4cGFuZEZlYXR1cmVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2FsbG93U2VsZWN0Rm9sZGVyXT1cImlzRW5hYmxlRm9sZGVyXCJcclxuICAgICAgICAoc2VsZWN0Tm9kZUV2ZW50KT1cInNlbGVjdFByb2Nlc3NOb2RlKCRldmVudClcIlxyXG4gICAgICAgIChzZWxlY3RGb2xkZXJFdmVudCk9XCJzZWxlY3RBcmVhTm9kZSgkZXZlbnQpXCJcclxuICAgICAgPjwvcW1zLWNrZWRpdG9yLXRyZWU+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhaXNPbmx5RG9jdW1lbnRcIiBjbGFzcz1cImxpbmUtZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICA8c3Ryb25nPnt7IExBTkcuUU1TQ0tFRElUT1IuRE9DVU1FTlRTIH19PC9zdHJvbmc+XHJcbiAgICAgIDxxbXMtY2tlZGl0b3ItdHJlZVxyXG4gICAgICAgIFthcmVhT2ZDdXJyZW50UHJvY2Vzc109XCJhcmVhT2ZDdXJyZW50UHJvY2Vzc1wiXHJcbiAgICAgICAgW2xpc3RQYXJlbnRPYmpdPVwibGlzdFBhcmVudERvY3VtZW50SWRcIlxyXG4gICAgICAgIFt0cmVlRGF0YV09XCJ0cmVlRG9jdW1lbnREYXRhXCJcclxuICAgICAgICBbcmF3RGF0YV09XCJkb2N1bWVudERhdGFcIlxyXG4gICAgICAgIFt1c2VFeHBhbmRGZWF0dXJlXT1cInRydWVcIlxyXG4gICAgICAgIFtkb2NUeXBlXT1cIjFcIlxyXG4gICAgICAgIFthbGxvd1NlbGVjdEZvbGRlcl09XCJpc0VuYWJsZUZvbGRlclwiXHJcbiAgICAgICAgKHNlbGVjdE5vZGVFdmVudCk9XCJzZWxlY3REb2N1bWVudE5vZGUoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdEZvbGRlckV2ZW50KT1cInNlbGVjdEhhbmRib29rTm9kZSgkZXZlbnQpXCJcclxuICAgICAgPjwvcW1zLWNrZWRpdG9yLXRyZWU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICBpZD1cInFtc2NrZWRpdG9yX3RyZWVfMDA0XCJcclxuICAgIGNsYXNzPVwicW1zY2tlZGl0b3IgYnV0dG9uX19ncm91cHMgbXQyMCByb3cgbWwtMCBtci0wXCJcclxuICA+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cInNhdmUgY29sLTEyXCJcclxuICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgIChjbGljayk9XCJvbkFkZERvY3VtZW50UHJvY2VzcygpXCJcclxuICAgID5cclxuICAgICAge3sgTEFORy5RTVNDS0VESVRPUi5BREQgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
290
+ QMSCKEditorRelatedComponent.decorators = [
291
+ { type: Component, args: [{
292
+ selector: 'app-dialog',
293
+ template: "<div id=\"qmsckeditor_tree\" class=\"qmsckeditor qmsckeditor__tree__containter\">\r\n <span\r\n mat-icon-button\r\n class=\"qmsckeditor button__close\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmsckeditor_tree_001\" mat-dialog-content>\r\n <h2 *ngIf=\"!isOnlyDocument\">\r\n {{ LANG.QMSCKEDITOR.ADD_DOCUMENT_PROCESS }}\r\n </h2>\r\n <h2 *ngIf=\"isOnlyDocument\">{{ LANG.QMSCKEDITOR.ADD_DOCUMENT }}</h2>\r\n </div>\r\n <div\r\n id=\"qmsckeditor_tree_002\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.QMSCKEDITOR.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n style=\"height: 50vh\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n style=\"height: 50vh\"\r\n >\r\n <mat-option\r\n *cdkVirtualFor=\"let option of filteredOptions\"\r\n [value]=\"option\"\r\n >\r\n <div\r\n *ngIf=\"option.type == 1\"\r\n class=\"col-12\"\r\n (click)=\"selectRelated(option.id, option.type)\"\r\n >\r\n <span\r\n ><img\r\n class=\"mat-icon\"\r\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAiElEQVR4AezOAQaAABQE0dDBuk2AjvCPGDrQb0GQ2NCqzDAAvOFP0ahLb7pvvjwBmn1ABrXqfhOqj/3KR+VBPioMOqPyIB+VB/moPMhH5UGdAk26rs6B/AABAgQIECBAgL4E2vcZpJFG+DA5DppPQweFk+MgHiAuB+L7VHTIeyDuBg9kDBcwCgBx1CcsdvijVwAAAABJRU5ErkJggg==\"\r\n /></span>\r\n <span>{{ option.name }}</span>\r\n </div>\r\n <div\r\n *ngIf=\"option.type == 2\"\r\n class=\"col-12\"\r\n (click)=\"selectRelated(option.id, option.type)\"\r\n >\r\n <span\r\n ><img\r\n class=\"mat-icon\"\r\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAQMAAADaua+7AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAAbHV9mFYLuQAAAAJ0Uk5TAP9bkSK1AAAAKUlEQVR4nGNgQALyjT/AWPL/DDCG8dmAclgx4w8wZgeqBWEGIBuMEQAAaJkRERdvY48AAAAASUVORK5CYII=\"\r\n /></span>\r\n <span>{{ option.name }}</span>\r\n </div>\r\n </mat-option>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n <div id=\"qmsckeditor_tree_003\" class=\"row ml-0 mr-0 mt20\">\r\n <div id=\"qmsckeditor_tree_003_001\" class=\"content-box\">\r\n <strong *ngIf=\"!isOnlyDocument\">{{ LANG.QMSCKEDITOR.PROCESSES }}</strong>\r\n <qms-ckeditor-tree\r\n *ngIf=\"!isOnlyDocument\"\r\n [areaOfCurrentProcess]=\"areaOfCurrentProcess\"\r\n [listParentObj]=\"listParentProcessId\"\r\n [treeData]=\"treeProcessData\"\r\n [rawData]=\"processData\"\r\n [docType]=\"2\"\r\n [useExpandFeature]=\"true\"\r\n [allowSelectFolder]=\"isEnableFolder\"\r\n (selectNodeEvent)=\"selectProcessNode($event)\"\r\n (selectFolderEvent)=\"selectAreaNode($event)\"\r\n ></qms-ckeditor-tree>\r\n <div *ngIf=\"!isOnlyDocument\" class=\"line-divider\"></div>\r\n <strong>{{ LANG.QMSCKEDITOR.DOCUMENTS }}</strong>\r\n <qms-ckeditor-tree\r\n [areaOfCurrentProcess]=\"areaOfCurrentProcess\"\r\n [listParentObj]=\"listParentDocumentId\"\r\n [treeData]=\"treeDocumentData\"\r\n [rawData]=\"documentData\"\r\n [useExpandFeature]=\"true\"\r\n [docType]=\"1\"\r\n [allowSelectFolder]=\"isEnableFolder\"\r\n (selectNodeEvent)=\"selectDocumentNode($event)\"\r\n (selectFolderEvent)=\"selectHandbookNode($event)\"\r\n ></qms-ckeditor-tree>\r\n </div>\r\n </div>\r\n <div\r\n id=\"qmsckeditor_tree_004\"\r\n class=\"qmsckeditor button__groups mt20 row ml-0 mr-0\"\r\n >\r\n <button\r\n type=\"button\"\r\n class=\"save col-12\"\r\n mat-flat-button\r\n (click)=\"onAddDocumentProcess()\"\r\n >\r\n {{ LANG.QMSCKEDITOR.ADD }}\r\n </button>\r\n </div>\r\n</div>\r\n",
294
+ styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:470px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .page-break{width:100%}::ng-deep .qmsckeditor__tree__containter .input__field input{width:97%;padding:10px;outline:none;border:none;background:#eee}::ng-deep .qmsckeditor__tree__containter .input__field .mat-icon{margin-left:-35px;cursor:pointer;vertical-align:middle}::ng-deep .qmsckeditor__tree__containter .mat-tree{background:#00283a}::ng-deep .qmsckeditor__tree__containter .mat-tree-node{color:#fff;min-height:40px}::ng-deep .qmsckeditor__tree__containter .folder-icon{color:#a4b0de}::ng-deep .qmsckeditor__tree__containter .mat-icon{margin-bottom:5px}::ng-deep .qmsckeditor__tree__containter .content-box{min-width:375px;width:100%;height:435px;overflow-y:auto;background:#00283a;color:#fff}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item{width:100%;height:56px;border:1px solid #d4d5d6;padding:15px}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item:hover{background:#d8ddf0;cursor:pointer}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item .content-box-text{float:left;width:90%;height:26px;overflow:hidden}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item .content-box-icon{float:right}::ng-deep .qmsckeditor__tree__containter .content-box .content-box-item:not(:last-child){border-bottom:none}::ng-deep .qmsckeditor__tree__containter .content-box strong{text-transform:uppercase;margin:10px 0 0 2px}::ng-deep .qmsckeditor__tree__containter .line-divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px}::ng-deep .qmsckeditor__tree__containter .loading ::ng-deep .mat-progress-spinner{width:21px;height:21px;margin:0 auto;top:32px}::ng-deep .mat-autocomplete-panel.mat-autocomplete-visible{overflow:hidden;max-height:none}::ng-deep .mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden;display:none}"]
295
+ },] }
296
+ ];
297
+ QMSCKEditorRelatedComponent.ctorParameters = () => [
298
+ { type: QMSCKEditorTreeService },
299
+ { type: TranslateLibraryService },
300
+ { type: MatDialogRef },
301
+ { type: QMSCKEditorRelation, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
302
+ ];
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zY2tlZGl0b3ItcmVsYXRlZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbXBvbmVudHMvcW1zLWNrZWRpdG9yLXJlbGF0aW9uL3Ftc2NrZWRpdG9yLXJlbGF0ZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLHdCQUF3QixNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBR3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBd0JsRixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsd0JBQXdCO0lBd0J2RSxZQUNVLFdBQW1DLEVBQ25DLFNBQWtDLEVBQ2xDLFNBQW9ELEVBQzVCLElBQXlCO1FBRXpELEtBQUssRUFBRSxDQUFDO1FBTEEsZ0JBQVcsR0FBWCxXQUFXLENBQXdCO1FBQ25DLGNBQVMsR0FB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LEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUM1QixnRUFBZ0U7YUFDakU7U0FDRjtJQUNILENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7WUFDdkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDeEUsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtnQkFDckMsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztnQkFDM0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztvQkFDN0IsK0RBQStEO2lCQUNoRTthQUNGO1NBQ0Y7SUFDSCxDQUFDOzs7WUEvVEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixzdElBQW1EOzthQUVwRDs7O1lBdkJRLHNCQUFzQjtZQVB0Qix1QkFBdUI7WUFIdkIsWUFBWTtZQU1aLG1CQUFtQix1QkF3RHZCLE1BQU0sU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vZW51bXMvZG9jdW1lbnQtdHlwZS5lbnVtJztcclxuaW1wb3J0IFFNU0NLRWRpdG9yVHJlZUZ1bmN0aW9ucyBmcm9tICcuLi8uLi9jb21tb24vZnVuY3Rpb25zL3RyZWUuZnVuY3Rpb24nO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclJlbGF0aW9uIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItcmVsYXRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvcW1zLWNrZWRpdG9yLXRyZWUtbm9kZS5tb2RlbCc7XHJcbmltcG9ydCBRTVNDS0VkaXRvclRyZWUgZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItdHJlZS5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yVHJlZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xbXMtY2tlZGl0b3ItdHJlZS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVsYXRlZCB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGVkTm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0eXBlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGlua1VybCB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXNja2VkaXRvci1yZWxhdGVkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9xbXNja2VkaXRvci1yZWxhdGVkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yUmVsYXRlZENvbXBvbmVudCBleHRlbmRzIFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgTEFORzogYW55O1xyXG4gIHNlbGVjdGVkTm9kZTogU2VsZWN0ZWROb2RlO1xyXG4gIGxpbmtVcmw6IExpbmtVcmw7XHJcbiAgZG9jdW1lbnRUeXBlOiBRTVNDS0VkaXRvckRvY3VtZW50VHlwZTtcclxuICBwcm9jZXNzRGF0YTogUU1TQ0tFZGl0b3JUcmVlW107XHJcbiAgZG9jdW1lbnREYXRhOiBRTVNDS0VkaXRvclRyZWVbXTtcclxuICBmaWx0ZXJEYXRhOiBRTVNDS0VkaXRvclRyZWVbXTtcclxuICB0cmVlRGF0YUZpbGU6IG9iamVjdDtcclxuICB0cmVlUHJvY2Vzc0ZpbGU6IG9iamVjdDtcclxuICB0cmVlRG9jdW1lbnRGaWxlOiBvYmplY3Q7XHJcbiAgdHJlZVByb2Nlc3NEYXRhOiBUcmVlTm9kZVtdO1xyXG4gIHRyZWVEb2N1bWVudERhdGE6IFRyZWVOb2RlW107XHJcbiAgcHJvY2Vzc051bWJlciA9IC0xO1xyXG4gIGxpc3RQYXJlbnRQcm9jZXNzSWQgPSB7fTtcclxuICBsaXN0UGFyZW50RG9jdW1lbnRJZCA9IHt9O1xyXG5cclxuICBteUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBmaWx0ZXJlZE9wdGlvbnMgPSBbXTtcclxuICBpc0lucHV0VmFsdWUgPSBmYWxzZTtcclxuICBpc09ubHlEb2N1bWVudCA9IGZhbHNlO1xyXG4gIGlzRW5hYmxlRm9sZGVyID0gZmFsc2U7XHJcbiAgYXJlYU9mQ3VycmVudFByb2Nlc3M6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRyZWVTZXJ2aWNlOiBRTVNDS0VkaXRvclRyZWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxRTVNDS0VkaXRvclJlbGF0ZWRDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBRTVNDS0VkaXRvclJlbGF0aW9uXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5pc09ubHlEb2N1bWVudCA9IGRhdGEuaXNPbmx5RG9jdW1lbnQ7XHJcbiAgICB0aGlzLmlzRW5hYmxlRm9sZGVyID0gZGF0YS5pc0VuYWJsZUZvbGRlcjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0TGFuZ3VhZ2VTdWJqZWN0JC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB7IGlkOiAnJywgdHlwZTogMCB9O1xyXG4gICAgdGhpcy5nZXRQcm9jZXNzQW5kRG9jdW1lbnREYXRhKCk7XHJcbiAgICB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9uU2VhcmNoUmVsYXRlZCh2YWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9jZXNzQW5kRG9jdW1lbnREYXRhKCkge1xyXG4gICAgZm9ya0pvaW4oW3RoaXMuZ2V0UHJvY2Vzc0RhdGEoKSwgdGhpcy5nZXREb2N1bWVudERhdGEoKV0pXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKFtwLCBkXSkgPT4ge1xyXG4gICAgICAgIHRoaXMubWFwcGluZ0RhdGEocCwgMik7XHJcbiAgICAgICAgdGhpcy5tYXBwaW5nRGF0YShkLCAxKTtcclxuXHJcbiAgICAgICAgLy8gZm9yICBwcm9jZXNzXHJcbiAgICAgICAgdGhpcy5maWx0ZXJEYXRhID0gdGhpcy5wcm9jZXNzRGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB4LnBhcmVudElkID09PSAnJztcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhRmlsZSA9IFFNU0NLRWRpdG9yVHJlZUZ1bmN0aW9ucy5idWlsZE9iamVjdFRyZWUodGhpcy5maWx0ZXJEYXRhKTtcclxuICAgICAgICB0aGlzLnRyZWVQcm9jZXNzRGF0YSA9IFFNU0NLRWRpdG9yVHJlZUZ1bmN0aW9ucy5idWlsZEFycmF5VHJlZSh0aGlzLnRyZWVEYXRhRmlsZSwgMCk7XHJcbiAgICAgICAgLy8gZm9yIGRvY3VtZW50XHJcbiAgICAgICAgdGhpcy5maWx0ZXJEYXRhID0gdGhpcy5kb2N1bWVudERhdGEuZmlsdGVyKCh4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4geC5wYXJlbnRJZCA9PT0gJyc7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy50cmVlRGF0YUZpbGUgPSBRTVNDS0VkaXRvclRyZWVGdW5jdGlvbnMuYnVpbGRPYmplY3RUcmVlKHRoaXMuZmlsdGVyRGF0YSk7XHJcbiAgICAgICAgdGhpcy50cmVlRG9jdW1lbnREYXRhID0gUU1TQ0tFZGl0b3JUcmVlRnVuY3Rpb25zLmJ1aWxkQXJyYXlUcmVlKHRoaXMudHJlZURhdGFGaWxlLCAwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9jZXNzRGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyZWVTZXJ2aWNlLmdldFByb2Nlc3NMaXN0KCkucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKTtcclxuICB9XHJcblxyXG4gIGdldERvY3VtZW50RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnRyZWVTZXJ2aWNlLmdldERvY3VtZW50TGlzdCgpLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSk7XHJcbiAgfVxyXG5cclxuICBtYXBwaW5nRGF0YShhcnJheTogUU1TQ0tFZGl0b3JUcmVlW10sIGRhdGFUeXBlOiBudW1iZXIpIHtcclxuICAgIGlmIChhcnJheSkge1xyXG4gICAgICBpZiAoZGF0YVR5cGUgPT09IDEpIHtcclxuICAgICAgICB0aGlzLmRvY3VtZW50RGF0YSA9IGFycmF5Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCEhaXRlbS5wYXJlbnRJZCAmJiBpdGVtLnBhcmVudElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0UGFyZW50RG9jdW1lbnRJZFtpdGVtLnBhcmVudElkXSA9IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoISFpdGVtLmNoaWxkSWQgJiYgaXRlbS5jaGlsZElkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0UGFyZW50RG9jdW1lbnRJZFtpdGVtLnJvb3RJZF0gPSAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcm9vdElkOiBpdGVtLnJvb3RJZCxcclxuICAgICAgICAgICAgcGFyZW50SWQ6IGl0ZW0ucGFyZW50SWQsXHJcbiAgICAgICAgICAgIHJvb3ROYW1lOiBpdGVtLnJvb3ROYW1lLFxyXG4gICAgICAgICAgICBzdWJOYW1lOiBpdGVtLnN1Yk5hbWUsXHJcbiAgICAgICAgICAgIGNoaWxkSWQ6IGl0ZW0uY2hpbGRJZCxcclxuICAgICAgICAgICAgY2hpbGROYW1lOiBpdGVtLmNoaWxkTmFtZSxcclxuICAgICAgICAgICAgc3RhdHVzSWQ6IGl0ZW0uc3RhdHVzSWQsXHJcbiAgICAgICAgICAgIGRpc3BsYXlJZDogaXRlbS5kaXNwbGF5SWRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YVR5cGUgPT09IDIpIHtcclxuICAgICAgICB0aGlzLnByb2Nlc3NEYXRhID0gYXJyYXkuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICBpZiAoISFpdGVtLnBhcmVudElkICYmIGl0ZW0ucGFyZW50SWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RQYXJlbnRQcm9jZXNzSWRbaXRlbS5wYXJlbnRJZF0gPSAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGl0ZW0uY2hpbGRJZCAmJiBpdGVtLmNoaWxkSWQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RQYXJlbnRQcm9jZXNzSWRbaXRlbS5yb290SWRdID0gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChOdW1iZXIoaXRlbS5kaXNwbGF5SWQpID09PSB0aGlzLnByb2Nlc3NOdW1iZXIpIHtcclxuICAgICAgICAgICAgaXRlbS5jaGlsZElkID0gJyc7XHJcbiAgICAgICAgICAgIGl0ZW0uY2hpbGROYW1lID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuYXJlYU9mQ3VycmVudFByb2Nlc3MgPSBpdGVtLnJvb3RJZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHJvb3RJZDogaXRlbS5yb290SWQsXHJcbiAgICAgICAgICAgIHBhcmVudElkOiBpdGVtLnBhcmVudElkLFxyXG4gICAgICAgICAgICByb290TmFtZTogaXRlbS5yb290TmFtZSxcclxuICAgICAgICAgICAgc3ViTmFtZTogaXRlbS5zdWJOYW1lLFxyXG4gICAgICAgICAgICBjaGlsZElkOiBpdGVtLmNoaWxkSWQsXHJcbiAgICAgICAgICAgIGNoaWxkTmFtZTogaXRlbS5jaGlsZE5hbWUsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBpdGVtLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBkaXNwbGF5SWQ6IGl0ZW0uZGlzcGxheUlkXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb25BZGREb2N1bWVudFByb2Nlc3MoKSB7XHJcbiAgICBsZXQgZGF0YTogUU1TQ0tFZGl0b3JUcmVlO1xyXG4gICAgdGhpcy5saW5rVXJsID0geyBpZDogJycsIHVybDogJycsIHRpdGxlOiAnJyB9O1xyXG4gICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkTm9kZS50eXBlKSB7XHJcbiAgICAgIGNhc2UgUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUuZG9jdW1lbnQ6XHJcbiAgICAgICAgZGF0YSA9IHRoaXMuZG9jdW1lbnREYXRhLmZpbmQoKGUpID0+IHtcclxuICAgICAgICAgIHJldHVybiBlLmNoaWxkSWQgPT09IHRoaXMuc2VsZWN0ZWROb2RlLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwuaWQgPSB0aGlzLnNlbGVjdGVkTm9kZS5pZDtcclxuICAgICAgICAgIHRoaXMubGlua1VybC51cmwgPSBgL2RvY3VtZW50LyR7ZGF0YS5jaGlsZElkfWA7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwudGl0bGUgPSBkYXRhLmNoaWxkTmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUucHJvY2VzczpcclxuICAgICAgICBkYXRhID0gdGhpcy5wcm9jZXNzRGF0YS5maW5kKChlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZS5jaGlsZElkID09PSB0aGlzLnNlbGVjdGVkTm9kZS5pZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5saW5rVXJsLmlkID0gdGhpcy5zZWxlY3RlZE5vZGUuaWQ7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwudXJsID0gYC9wcm9jZXNzLWRldGFpbC8ke2RhdGEuZGlzcGxheUlkfWA7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwudGl0bGUgPSBkYXRhLmNoaWxkTmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUuYXJlYTpcclxuICAgICAgICBkYXRhID0gdGhpcy5wcm9jZXNzRGF0YS5maW5kKChlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZS5yb290SWQgPT09IHRoaXMuc2VsZWN0ZWROb2RlLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLmxpbmtVcmwuaWQgPSB0aGlzLnNlbGVjdGVkTm9kZS5pZDtcclxuICAgICAgICAgIHRoaXMubGlua1VybC51cmwgPSBgL2FyZWEvZGV0YWlsLyR7ZGF0YS5yb290SWR9YDtcclxuICAgICAgICAgIHRoaXMubGlua1VybC50aXRsZSA9IGRhdGEucm9vdE5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFFNU0NLRWRpdG9yRG9jdW1lbnRUeXBlLmZvbGRlcjpcclxuICAgICAgICBkYXRhID0gdGhpcy5kb2N1bWVudERhdGEuZmluZCgoZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGUucm9vdElkID09PSB0aGlzLnNlbGVjdGVkTm9kZS5pZDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMubGlua1VybC5pZCA9IHRoaXMuc2VsZWN0ZWROb2RlLmlkO1xyXG4gICAgICAgICAgdGhpcy5saW5rVXJsLnVybCA9IGAvZm9sZGVyLyR7ZGF0YS5yb290SWR9YDtcclxuICAgICAgICAgIHRoaXMubGlua1VybC50aXRsZSA9IGRhdGEucm9vdE5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5saW5rVXJsKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEFyZWFOb2RlKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlLmlkID0gaWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZS50eXBlID0gUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUuYXJlYTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFByb2Nlc3NOb2RlKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlLmlkID0gaWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZS50eXBlID0gUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUucHJvY2VzcztcclxuICB9XHJcblxyXG4gIHNlbGVjdERvY3VtZW50Tm9kZShpZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZS5pZCA9IGlkO1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUudHlwZSA9IFFNU0NLRWRpdG9yRG9jdW1lbnRUeXBlLmRvY3VtZW50O1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SGFuZGJvb2tOb2RlKGlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlLmlkID0gaWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkTm9kZS50eXBlID0gUU1TQ0tFZGl0b3JEb2N1bWVudFR5cGUuZm9sZGVyO1xyXG4gIH1cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBpc01hdGNoVHJ1ZShhcnI6IGFueVtdLCBhcnIyOiBhbnlbXSkge1xyXG4gICAgcmV0dXJuIGFyci5ldmVyeSgoaSkgPT4ge1xyXG4gICAgICByZXR1cm4gYXJyMi5pbmNsdWRlcyhpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hSZWxhdGVkKF92YWw6IHN0cmluZykge1xyXG4gICAgY29uc3QgYXJyOiBSZWxhdGVkW10gPSBbXTtcclxuICAgIGxldCBkYXRhID0gW107XHJcbiAgICBpZiAodHlwZW9mIF92YWwgIT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiBhcnI7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWwgPSBfdmFsXHJcbiAgICAgIC50cmltKClcclxuICAgICAgLnNwbGl0KCcgJylcclxuICAgICAgLm1hcCgodikgPT4ge1xyXG4gICAgICAgIHJldHVybiB2LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKCF2YWwgfHwgdmFsLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gYXJyO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5pc09ubHlEb2N1bWVudCkge1xyXG4gICAgICBkYXRhID0gdGhpcy5wcm9jZXNzRGF0YS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICBjb25zdCB0ZW1wQXJyID0gaXRlbS5jaGlsZE5hbWUuc3BsaXQoJyAnKS5tYXAoKHYpID0+IHtcclxuICAgICAgICAgIHJldHVybiB2LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNNYXRjaFRydWUodmFsLCB0ZW1wQXJyKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgIGRhdGEuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgYXJyLnB1c2goe1xyXG4gICAgICAgICAgICBpZDogZWxlbWVudC5jaGlsZElkLFxyXG4gICAgICAgICAgICBuYW1lOiBlbGVtZW50LmNoaWxkTmFtZSxcclxuICAgICAgICAgICAgdHlwZTogMlxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkYXRhID0gdGhpcy5kb2N1bWVudERhdGEuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRlbXBBcnIgPSBpdGVtLmNoaWxkTmFtZS5zcGxpdCgnICcpLm1hcCgodikgPT4ge1xyXG4gICAgICAgIHJldHVybiB2LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdGhpcy5pc01hdGNoVHJ1ZSh2YWwsIHRlbXBBcnIpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGRhdGEpIHtcclxuICAgICAgZGF0YS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgYXJyLnB1c2goe1xyXG4gICAgICAgICAgaWQ6IGVsZW1lbnQuY2hpbGRJZCxcclxuICAgICAgICAgIG5hbWU6IGVsZW1lbnQuY2hpbGROYW1lLFxyXG4gICAgICAgICAgdHlwZTogMVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0UmVzdWx0SGVpZ2h0KGFycik7XHJcbiAgICByZXR1cm4gYXJyO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheVJlbGF0ZWQocmVsYXRlZD86IFJlbGF0ZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHJlbGF0ZWQgPyByZWxhdGVkLm5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSZWxhdGVkKGlkOiBzdHJpbmcsIHR5cGU6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSB7IGlkLCB0eXBlIH07XHJcbiAgICB0aGlzLm9uQWRkRG9jdW1lbnRQcm9jZXNzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRSZXN1bHRIZWlnaHQoYXJyPzogUmVsYXRlZFtdKSB7XHJcbiAgICBjb25zdCB2aWV3cmVwb3J0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3JlbGF0ZWQtdmlld3BvcnQnKTtcclxuICAgIGlmICh2aWV3cmVwb3J0cykge1xyXG4gICAgICBsZXQgaUhlaWdodCA9IDA7XHJcbiAgICAgIGNvbnN0IHZpZXcgPSB2aWV3cmVwb3J0c1swXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgaWYgKGFyci5sZW5ndGggKiA1ID4gNTApIHtcclxuICAgICAgICBpSGVpZ2h0ID0gNTE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaUhlaWdodCA9IGFyci5sZW5ndGggKiA1ICsgMTtcclxuICAgICAgICBpZiAoaUhlaWdodCA+IDApIHtcclxuICAgICAgICAgIC8vIHdpbmRvd1tQcm9jZXNzUmVsYXRlZENvbnN0LklTX0RJU1BMQVlfU0VBUkNIX1JFU1VMVF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB2aWV3LnN0eWxlLmhlaWdodCA9IGAke2lIZWlnaHR9dmhgO1xyXG4gICAgICB2aWV3LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZVNlYXJjaFJlc3VsdCgpIHtcclxuICAgIGlmICh0aGlzLmZpbHRlcmVkT3B0aW9ucyAmJiB0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHZpZXdyZXBvcnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVsYXRlZC12aWV3cG9ydCcpO1xyXG4gICAgICBpZiAodmlld3JlcG9ydHMgJiYgdmlld3JlcG9ydHMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgdmlldyA9IHZpZXdyZXBvcnRzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIHZpZXcuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICAvLyB3aW5kb3dbUHJvY2Vzc1JlbGF0ZWRDb25zdC5JU19ESVNQTEFZX1NFQVJDSF9SRVNVTFRdID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dTZWFyY2hSZXN1bHQoKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJlZE9wdGlvbnMgJiYgdGhpcy5maWx0ZXJlZE9wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IHZpZXdyZXBvcnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncmVsYXRlZC12aWV3cG9ydCcpO1xyXG4gICAgICBpZiAodmlld3JlcG9ydHMgJiYgdmlld3JlcG9ydHMubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc3QgdmlldyA9IHZpZXdyZXBvcnRzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGlmICh2aWV3LnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xyXG4gICAgICAgICAgdmlldy5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgICAgICAgIC8vIHdpbmRvd1tQcm9jZXNzUmVsYXRlZENvbnN0LklTX0RJU1BMQVlfU0VBUkNIX1JFU1VMVF0gPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,26 +1,14 @@
1
- import { Component, Inject } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, Inject } from '@angular/core';
2
2
  import { FormControl, FormGroup, Validators } from '@angular/forms';
3
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
4
4
  import { takeUntil } from 'rxjs/operators';
5
+ import { TranslateLibraryService } from '../../../services/translation-registry.service';
5
6
  import { QMSCKEditorDialogData } from '../../common/models/qms-ckeditor-dialog.model';
6
7
  import { QMSCKEditorConfirmComponent } from '../../common/module/confirm/qms-ckeditor-confirm.component';
7
8
  import { QMSCKEditorToastService } from '../../common/toast/qms-ckeditor-toast.service';
8
9
  import { QMSCKEditorTemplate } from '../../models/qms-ckeditor-template.model';
9
10
  import { QMSCKEditorBaseComponent } from '../../qms-ckeditor-base.component';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/material/dialog";
12
- import * as i2 from "../../../services/translation-registry.service";
13
- import * as i3 from "../../services/qms-ckedtior-template.service";
14
- import * as i4 from "@angular/material/icon";
15
- import * as i5 from "@angular/material/expansion";
16
- import * as i6 from "@angular/material/form-field";
17
- import * as i7 from "@angular/material/select";
18
- import * as i8 from "@angular/material/core";
19
- import * as i9 from "@angular/material/button";
20
- import * as i10 from "@angular/common";
21
- import * as i11 from "@angular/forms";
22
- import * as i12 from "@angular/material/input";
23
- import * as i13 from "../../models/qms-ckeditor-template.model";
11
+ import { QMSCKEditorTemplateService } from '../../services/qms-ckedtior-template.service';
24
12
  export class QMSCKEditorTemplateComponent extends QMSCKEditorBaseComponent {
25
13
  constructor(cdr, dialog, translate, templateService, dialogRef, data) {
26
14
  super();
@@ -203,17 +191,19 @@ export class QMSCKEditorTemplateComponent extends QMSCKEditorBaseComponent {
203
191
  });
204
192
  }
205
193
  }
206
- QMSCKEditorTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSCKEditorTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.MatDialog }, { token: i2.TranslateLibraryService }, { token: i3.QMSCKEditorTemplateService }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
207
- QMSCKEditorTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: QMSCKEditorTemplateComponent, selector: "app-qmsck-template", usesInheritance: true, ngImport: i0, template: "<div\r\n id=\"qmsckeditor-template\"\r\n class=\"qmsckeditor qmsckeditor__template__container\"\r\n>\r\n <div id=\"qmsckeditor-template-header\">\r\n <span\r\n id=\"qmsckeditor-template-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\r\n id=\"qmsckeditor-template-header_002\"\r\n mat-dialog-content\r\n *ngIf=\"!isEdit\"\r\n >\r\n <h2 id=\"qmsckeditor-template_002_001\">\r\n {{ LANG.QMSCKEDITOR.CREATE_NEW_TEMPLATE }}\r\n </h2>\r\n </div>\r\n <div id=\"qmsckeditor-template-header_002\" mat-dialog-content *ngIf=\"isEdit\">\r\n <h2 id=\"qmsckeditor-template_002_001\">\r\n {{ LANG.QMSCKEDITOR.UPDATE_TEMPLATE }}\r\n </h2>\r\n </div>\r\n </div>\r\n\r\n <form [formGroup]=\"templateFormGroup\">\r\n <div\r\n id=\"qmsckeditor-template-content\"\r\n class=\"qmsckeditor template-content height\"\r\n >\r\n <div id=\"qmsckeditor-template-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor-template-panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <div id=\"qmsckeditor-template-panel_001\">\r\n <div id=\"qmsckeditor-template-panel_001_000\" class=\"mt-2\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TEMPLATE }}</mat-label>\r\n <mat-select\r\n formControlName=\"templateList\"\r\n [(ngModel)]=\"selectedId\"\r\n (ngModelChange)=\"onSelectChange()\"\r\n [disabled]=\"isEdit\"\r\n >\r\n <mat-option\r\n *ngFor=\"let template of templates\"\r\n [value]=\"template.id\"\r\n >\r\n {{ template.title }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor-template-panel_001_001\">\r\n <mat-form-field class=\"col-12 pl-0 pr-0\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TITLE }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"template.title\"\r\n formControlName=\"title\"\r\n />\r\n <mat-error\r\n *ngIf=\"templateFormGroup.get('title').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor-template-panel_001_002\">\r\n <mat-form-field class=\"col-12 pl-0 pr-0\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.DESCRIPTION }}</mat-label>\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"template.description\"\r\n formControlName=\"description\"\r\n ></textarea>\r\n <mat-error\r\n *ngIf=\"\r\n templateFormGroup.get('description').hasError('required')\r\n \"\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-template-panel_001_003\"\r\n class=\"qmsckeditor button__groups row mr-0 ml-0\"\r\n >\r\n <div class=\"col-6 pl-0\" *ngIf=\"!isEdit\">\r\n <button\r\n class=\"delete\"\r\n mat-flat-button\r\n (click)=\"deleteTemplate()\"\r\n [disabled]=\"selectedId === 0\"\r\n >\r\n {{ LANG.QMSCKEDITOR.DELETE }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pr-0\" *ngIf=\"!isEdit && selectedId === 0\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"saveTemplate()\"\r\n [disabled]=\"templateFormGroup.invalid\"\r\n >\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pl-0\" *ngIf=\"isEdit\">\r\n <button\r\n class=\"cancel\"\r\n mat-flat-button\r\n (click)=\"cancelTemplate()\"\r\n [disabled]=\"selectedId === 0\"\r\n >\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pr-0\" *ngIf=\"isEdit || selectedId !== 0\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"updateTemplate()\"\r\n [disabled]=\"templateFormGroup.invalid\"\r\n >\r\n {{ LANG.QMSCKEDITOR.UPDATE }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n </form>\r\n</div>\r\n", styles: [".mt-n4{margin-top:-4px!important}.mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt8{margin-top:8px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt24{margin-top:24px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.pa0{padding:0!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fs32{font-size:32px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:470px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .ck-horizontal-line,.ck-content .page-break{width:100%}.ck-content hr{background:#ccc}.qmsckeditor__template__container .mat-form-field{width:100%}.qmsckeditor__template__container textarea.mat-input-element{min-height:150px}.qmsckeditor__template__container .template-checkbox{padding-top:20px}"], components: [{ type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i9.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: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.MatLabel, selector: "mat-label" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.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: i11.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: i6.MatError, selector: "mat-error", inputs: ["id"] }] });
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSCKEditorTemplateComponent, decorators: [{
209
- type: Component,
210
- args: [{
211
- selector: 'app-qmsck-template',
212
- templateUrl: './qms-ckeditor-template.component.html',
213
- styleUrls: ['./qms-ckeditor-template.component.scss']
214
- }]
215
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.MatDialog }, { type: i2.TranslateLibraryService }, { type: i3.QMSCKEditorTemplateService }, { type: i1.MatDialogRef }, { type: i13.QMSCKEditorTemplate, decorators: [{
216
- type: Inject,
217
- args: [MAT_DIALOG_DATA]
218
- }] }]; } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItdGVtcGxhdGUvcW1zLWNrZWRpdG9yLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItdGVtcGxhdGUvcW1zLWNrZWRpdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUMsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBYTdFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSx3QkFBd0I7SUFleEUsWUFDVSxHQUFzQixFQUN0QixNQUFpQixFQUNqQixTQUFrQyxFQUNsQyxlQUEyQyxFQUM1QyxTQUFxRCxFQUM1QixJQUF5QjtRQUV6RCxLQUFLLEVBQUUsQ0FBQztRQVBBLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQTRDO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQXFCO1FBbkIzRCxzQkFBaUIsR0FBYyxJQUFJLFNBQVMsQ0FBQztZQUMzQyxZQUFZLEVBQUUsSUFBSSxXQUFXLEVBQUU7WUFDL0IsS0FBSyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxXQUFXLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hELENBQUMsQ0FBQztRQUNILGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIsaUJBQVksR0FBMEIsRUFBRSxDQUFDO1FBQ3pDLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBQzVCLGFBQVEsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDckMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFXYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN0RixJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQy9DO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxlQUFlO2FBQ2pCLFdBQVcsRUFBRTthQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDbEMsT0FBTzt3QkFDTCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7d0JBQ1IsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdEM7WUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFxQjtRQUNuQyxJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDNUIsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDZixFQUFFLEVBQUUsQ0FBQztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CO2FBQ2pELENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7U0FDN0I7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLElBQUksR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQztRQUNyRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUM5RCxLQUFLLEVBQUUsT0FBTztZQUNkLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLElBQUk7U0FDTCxDQUFDLENBQUM7UUFDSCxTQUFTO2FBQ04sV0FBVyxFQUFFO2FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGVBQWU7cUJBQ2pCLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO3FCQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztxQkFDbEMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ3RCLElBQUksUUFBUSxFQUFFO3dCQUNaLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDO3dCQUNsQyxDQUFDLENBQUMsQ0FBQzt3QkFDSCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO3lCQUNqQzt3QkFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQzt3QkFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUN0Qix1QkFBdUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ2hFO3lCQUFNO3dCQUNMLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFDcEU7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDTjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsZUFBZTthQUNqQixjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNsQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUMzQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO29CQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztpQkFDbkQ7Z0JBQ0QsdUJBQXVCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNMLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNsRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGVBQWU7YUFDakIsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNmLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDckM7cUJBQU07b0JBQ0wsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDekMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUNuQyxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7cUJBQ25EO29CQUNELEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUN4QyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ25DLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTt3QkFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztxQkFDbEU7aUJBQ0Y7Z0JBQ0QsdUJBQXVCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNMLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNsRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7eUhBN0xVLDRCQUE0Qix5TEFxQjdCLGVBQWU7NkdBckJkLDRCQUE0QixpRkN0QnpDLGczS0ErSUE7MkZEekhhLDRCQUE0QjtrQkFMeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsd0NBQXdDO29CQUNyRCxTQUFTLEVBQUUsQ0FBQyx3Q0FBd0MsQ0FBQztpQkFDdEQ7OzBCQXNCSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckRpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWxzL3Ftcy1ja2VkaXRvci1kaWFsb2cubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kdWxlL2NvbmZpcm0vcW1zLWNrZWRpdG9yLWNvbmZpcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vdG9hc3QvcW1zLWNrZWRpdG9yLXRvYXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Ftcy1ja2VkaXRvci10ZW1wbGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcW1zLWNrZWR0aW9yLXRlbXBsYXRlLnNlcnZpY2UnO1xyXG5cclxuaW50ZXJmYWNlIElUZW1wbGF0ZSB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICB0aXRsZTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1xbXNjay10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1ja2VkaXRvci10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcW1zLWNrZWRpdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gIExBTkc6IGFueTtcclxuICB0ZW1wbGF0ZUZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICB0ZW1wbGF0ZUxpc3Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgdGl0bGU6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcclxuICAgIGRlc2NyaXB0aW9uOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSlcclxuICB9KTtcclxuICBpc0V4cGFuZGVkID0gdHJ1ZTtcclxuICBjb250ZW50OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGVMaXN0OiBRTVNDS0VkaXRvclRlbXBsYXRlW10gPSBbXTtcclxuICB0ZW1wbGF0ZXM6IElUZW1wbGF0ZVtdID0gW107XHJcbiAgdGVtcGxhdGUgPSBuZXcgUU1TQ0tFZGl0b3JUZW1wbGF0ZSgpO1xyXG4gIHNlbGVjdGVkSWQgPSAwO1xyXG4gIGlzRWRpdCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlU2VydmljZTogUU1TQ0tFZGl0b3JUZW1wbGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UU1TQ0tFZGl0b3JUZW1wbGF0ZUNvbXBvbmVudD4sXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFFNU0NLRWRpdG9yVGVtcGxhdGVcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmNvbnRlbnQgPSBkYXRhLmNvbnRlbnQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkSWQgPSBkYXRhLmlkO1xyXG4gICAgdGhpcy5pc0VkaXQgPSBkYXRhLmVkaXQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlLmdldExhbmd1YWdlU3ViamVjdCQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgdGhpcy5MQU5HID0gdGhpcy50cmFuc2xhdGUuZ2V0T2JqZWN0TGFuZyhyZXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZ2V0VGVtcGxhdGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGUoKSB7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAuZ2V0VGVtcGxhdGUoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZUxpc3QgPSByZXNwb25zZTtcclxuICAgICAgICAgIHRoaXMudGVtcGxhdGVzID0gcmVzcG9uc2UubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgaWQ6IHguaWQsXHJcbiAgICAgICAgICAgICAgdGl0bGU6IHgudGl0bGVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5hZGROb25lVGVtcGxhdGUodGhpcy50ZW1wbGF0ZXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFkZE5vbmVUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0VkaXQgJiYgdGhpcy5zZWxlY3RlZElkICE9PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLm9uU2VsZWN0Q2hhbmdlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFkZE5vbmVUZW1wbGF0ZSh0ZW1wbGF0ZTogSVRlbXBsYXRlW10pIHtcclxuICAgIGlmICh0ZW1wbGF0ZSAmJiAhdGhpcy5pc0VkaXQpIHtcclxuICAgICAgdGVtcGxhdGUudW5zaGlmdCh7XHJcbiAgICAgICAgaWQ6IDAsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMuTEFORy5RTVNDS0VESVRPUi5DUkVBVEVfTkVXX1RFTVBMQVRFXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RDaGFuZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZElkID09PSAwKSB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUuaWQgPSB0aGlzLnNlbGVjdGVkSWQ7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUudGl0bGUgPSAnJztcclxuICAgICAgdGhpcy50ZW1wbGF0ZS5kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgICB0aGlzLnRlbXBsYXRlLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUuZGVsZXRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnRlbXBsYXRlLmNyZWF0ZWRCeSA9IDA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVtcGxhdGVMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRlbXBsYXRlTGlzdC5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgICByZXR1cm4geC5pZCA9PT0gdGhpcy5zZWxlY3RlZElkO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy50ZW1wbGF0ZS5pZCA9IHRoaXMudGVtcGxhdGVMaXN0W2luZGV4XS5pZDtcclxuICAgICAgdGhpcy50ZW1wbGF0ZS50aXRsZSA9IHRoaXMudGVtcGxhdGVMaXN0W2luZGV4XS50aXRsZTtcclxuICAgICAgdGhpcy50ZW1wbGF0ZS5kZXNjcmlwdGlvbiA9IHRoaXMudGVtcGxhdGVMaXN0W2luZGV4XS5kZXNjcmlwdGlvbjtcclxuICAgICAgdGhpcy50ZW1wbGF0ZS5jb250ZW50ID0gdGhpcy50ZW1wbGF0ZUxpc3RbaW5kZXhdLmNvbnRlbnQ7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUuZGVsZXRlZCA9IHRoaXMudGVtcGxhdGVMaXN0W2luZGV4XS5kZWxldGVkO1xyXG4gICAgICB0aGlzLnRlbXBsYXRlLmNyZWF0ZWRCeSA9IHRoaXMudGVtcGxhdGVMaXN0W2luZGV4XS5jcmVhdGVkQnk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZWxldGVUZW1wbGF0ZSgpIHtcclxuICAgIGNvbnN0IGRhdGE6IFFNU0NLRWRpdG9yRGlhbG9nRGF0YSA9IG5ldyBRTVNDS0VkaXRvckRpYWxvZ0RhdGEoKTtcclxuICAgIGRhdGEudGl0bGUgPSB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuREVMRVRFX1RFTVBMQVRFO1xyXG4gICAgZGF0YS5jb250ZW50ID0gdGhpcy5MQU5HLlFNU0NLRURJVE9SX01FU1NBR0UuQ09ORklSTV9ERUxFVEVfVEVNUExBVEU7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFFNU0NLRWRpdG9yQ29uZmlybUNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogJzUwMHB4JyxcclxuICAgICAgbWluSGVpZ2h0OiAnMTc1cHgnLFxyXG4gICAgICBkYXRhXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZlxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAgICAgICAuZGVsZXRlVGVtcGxhdGUodGhpcy5zZWxlY3RlZElkKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRlbXBsYXRlcy5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHguaWQgPT09IHRoaXMuc2VsZWN0ZWRJZDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZCA9IDA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0Q2hhbmdlKCk7XHJcbiAgICAgICAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMuTEFORy5RTVNDS0VESVRPUi5ERUxFVEVEKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgUU1TQ0tFZGl0b3JUb2FzdFNlcnZpY2UuZXJyb3IodGhpcy5MQU5HLlFNU0NLRURJVE9SLkRFTEVURV9GQUlMRUQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNhdmVUZW1wbGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkSWQgPT09IDApIHtcclxuICAgICAgdGhpcy50ZW1wbGF0ZS5jb250ZW50ID0gdGhpcy5jb250ZW50O1xyXG4gICAgfVxyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgLm1vZGlmeVRlbXBsYXRlKHRoaXMudGVtcGxhdGUpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50ZW1wbGF0ZXMuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB4LmlkID09PSB0aGlzLnNlbGVjdGVkSWQ7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChpbmRleCA+PSAwICYmIHRoaXMuc2VsZWN0ZWRJZCAhPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlc1tpbmRleF0udGl0bGUgPSB0aGlzLnRlbXBsYXRlLnRpdGxlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgUU1TQ0tFZGl0b3JUb2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLkxBTkcuUU1TQ0tFRElUT1IuU0FWRUQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5lcnJvcih0aGlzLkxBTkcuUU1TQ0tFRElUT1IuU0FWRV9GQUlMRUQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxUZW1wbGF0ZSgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUZW1wbGF0ZSgpIHtcclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlXHJcbiAgICAgIC5tb2RpZnlUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0VkaXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy50ZW1wbGF0ZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnRlbXBsYXRlcy5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geC5pZCA9PT0gdGhpcy50ZW1wbGF0ZS5pZDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZXNbaW5kZXhdLnRpdGxlID0gdGhpcy50ZW1wbGF0ZS50aXRsZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpbmRleCA9IHRoaXMudGVtcGxhdGVMaXN0LmZpbmRJbmRleCgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB4LmlkID09PSB0aGlzLnRlbXBsYXRlLmlkO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlTGlzdFtpbmRleF0uZGVzY3JpcHRpb24gPSB0aGlzLnRlbXBsYXRlLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5zdWNjZXNzKHRoaXMuTEFORy5RTVNDS0VESVRPUi5TQVZFRCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFFNU0NLRWRpdG9yVG9hc3RTZXJ2aWNlLmVycm9yKHRoaXMuTEFORy5RTVNDS0VESVRPUi5TQVZFX0ZBSUxFRCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGlkPVwicW1zY2tlZGl0b3ItdGVtcGxhdGVcIlxyXG4gIGNsYXNzPVwicW1zY2tlZGl0b3IgcW1zY2tlZGl0b3JfX3RlbXBsYXRlX19jb250YWluZXJcIlxyXG4+XHJcbiAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLXRlbXBsYXRlLWhlYWRlclwiPlxyXG4gICAgPHNwYW5cclxuICAgICAgaWQ9XCJxbXNja2VkaXRvci10ZW1wbGF0ZS1oZWFkZXJfMDAxXCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIGNsYXNzPVwicW1zY2tlZGl0b3IgYnV0dG9uX19jbG9zZVwiXHJcbiAgICAgIChjbGljayk9XCJvbkNsb3NlRGlhbG9nKClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGRpdlxyXG4gICAgICBpZD1cInFtc2NrZWRpdG9yLXRlbXBsYXRlLWhlYWRlcl8wMDJcIlxyXG4gICAgICBtYXQtZGlhbG9nLWNvbnRlbnRcclxuICAgICAgKm5nSWY9XCIhaXNFZGl0XCJcclxuICAgID5cclxuICAgICAgPGgyIGlkPVwicW1zY2tlZGl0b3ItdGVtcGxhdGVfMDAyXzAwMVwiPlxyXG4gICAgICAgIHt7IExBTkcuUU1TQ0tFRElUT1IuQ1JFQVRFX05FV19URU1QTEFURSB9fVxyXG4gICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGlkPVwicW1zY2tlZGl0b3ItdGVtcGxhdGUtaGVhZGVyXzAwMlwiIG1hdC1kaWFsb2ctY29udGVudCAqbmdJZj1cImlzRWRpdFwiPlxyXG4gICAgICA8aDIgaWQ9XCJxbXNja2VkaXRvci10ZW1wbGF0ZV8wMDJfMDAxXCI+XHJcbiAgICAgICAge3sgTEFORy5RTVNDS0VESVRPUi5VUERBVEVfVEVNUExBVEUgfX1cclxuICAgICAgPC9oMj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cInRlbXBsYXRlRm9ybUdyb3VwXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGlkPVwicW1zY2tlZGl0b3ItdGVtcGxhdGUtY29udGVudFwiXHJcbiAgICAgIGNsYXNzPVwicW1zY2tlZGl0b3IgdGVtcGxhdGUtY29udGVudCBoZWlnaHRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGlkPVwicW1zY2tlZGl0b3ItdGVtcGxhdGUtY29udGVudF8wMDFcIiBjbGFzcz1cImNvbC0xMiBtdC0xIHBsLTIgcHItMlwiPlxyXG4gICAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsXHJcbiAgICAgICAgICBpZD1cInFtc2NrZWRpdG9yLXRlbXBsYXRlLXBhbmVsXCJcclxuICAgICAgICAgIFtleHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcclxuICAgICAgICAgIChvcGVuZWQpPVwiaXNFeHBhbmRlZCA9IHRydWVcIlxyXG4gICAgICAgICAgKGNsb3NlZCk9XCJpc0V4cGFuZGVkID0gZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgaWQ9XCJxbXNja2VkaXRvci10ZW1wbGF0ZS1wYW5lbF8wMDFcIj5cclxuICAgICAgICAgICAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLXRlbXBsYXRlLXBhbmVsXzAwMV8wMDBcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgTEFORy5RTVNDS0VESVRPUi5URU1QTEFURSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGVtcGxhdGVMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZElkXCJcclxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWxlY3RDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0VkaXRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB0ZW1wbGF0ZSBvZiB0ZW1wbGF0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0ZW1wbGF0ZS5pZFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyB0ZW1wbGF0ZS50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJxbXNja2VkaXRvci10ZW1wbGF0ZS1wYW5lbF8wMDFfMDAxXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29sLTEyIHBsLTAgcHItMFwiIGFwcGVhcmFuY2U9XCJmaWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7IExBTkcuUU1TQ0tFRElUT1IuVElUTEUgfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRlbXBsYXRlLnRpdGxlXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0ZW1wbGF0ZUZvcm1Hcm91cC5nZXQoJ3RpdGxlJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm10NVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBpZD1cInFtc2NrZWRpdG9yLXRlbXBsYXRlLXBhbmVsXzAwMV8wMDJcIj5cclxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJjb2wtMTIgcGwtMCBwci0wXCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgTEFORy5RTVNDS0VESVRPUi5ERVNDUklQVElPTiB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGVtcGxhdGUuZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZUZvcm1Hcm91cC5nZXQoJ2Rlc2NyaXB0aW9uJykuaGFzRXJyb3IoJ3JlcXVpcmVkJylcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtdDVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBpZD1cInFtc2NrZWRpdG9yLXRlbXBsYXRlLXBhbmVsXzAwMV8wMDNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwicW1zY2tlZGl0b3IgYnV0dG9uX19ncm91cHMgcm93IG1yLTAgbWwtMFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgcGwtMFwiICpuZ0lmPVwiIWlzRWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImRlbGV0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlVGVtcGxhdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZElkID09PSAwXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgTEFORy5RTVNDS0VESVRPUi5ERUxFVEUgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBwci0wXCIgKm5nSWY9XCIhaXNFZGl0ICYmIHNlbGVjdGVkSWQgPT09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYXZlXCJcclxuICAgICAgICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlVGVtcGxhdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0ZW1wbGF0ZUZvcm1Hcm91cC5pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgTEFORy5RTVNDS0VESVRPUi5TQVZFIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgcGwtMFwiICpuZ0lmPVwiaXNFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FuY2VsXCJcclxuICAgICAgICAgICAgICAgICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWxUZW1wbGF0ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlbGVjdGVkSWQgPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBMQU5HLlFNU0NLRURJVE9SLkNBTkNFTCB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IHByLTBcIiAqbmdJZj1cImlzRWRpdCB8fCBzZWxlY3RlZElkICE9PSAwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2F2ZVwiXHJcbiAgICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlVGVtcGxhdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0ZW1wbGF0ZUZvcm1Hcm91cC5pbnZhbGlkXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgTEFORy5RTVNDS0VESVRPUi5VUERBVEUgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
194
+ QMSCKEditorTemplateComponent.decorators = [
195
+ { type: Component, args: [{
196
+ selector: 'app-qmsck-template',
197
+ template: "<div\r\n id=\"qmsckeditor-template\"\r\n class=\"qmsckeditor qmsckeditor__template__container\"\r\n>\r\n <div id=\"qmsckeditor-template-header\">\r\n <span\r\n id=\"qmsckeditor-template-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\r\n id=\"qmsckeditor-template-header_002\"\r\n mat-dialog-content\r\n *ngIf=\"!isEdit\"\r\n >\r\n <h2 id=\"qmsckeditor-template_002_001\">\r\n {{ LANG.QMSCKEDITOR.CREATE_NEW_TEMPLATE }}\r\n </h2>\r\n </div>\r\n <div id=\"qmsckeditor-template-header_002\" mat-dialog-content *ngIf=\"isEdit\">\r\n <h2 id=\"qmsckeditor-template_002_001\">\r\n {{ LANG.QMSCKEDITOR.UPDATE_TEMPLATE }}\r\n </h2>\r\n </div>\r\n </div>\r\n\r\n <form [formGroup]=\"templateFormGroup\">\r\n <div\r\n id=\"qmsckeditor-template-content\"\r\n class=\"qmsckeditor template-content height\"\r\n >\r\n <div id=\"qmsckeditor-template-content_001\" class=\"col-12 mt-1 pl-2 pr-2\">\r\n <mat-expansion-panel\r\n id=\"qmsckeditor-template-panel\"\r\n [expanded]=\"isExpanded\"\r\n (opened)=\"isExpanded = true\"\r\n (closed)=\"isExpanded = false\"\r\n >\r\n <div id=\"qmsckeditor-template-panel_001\">\r\n <div id=\"qmsckeditor-template-panel_001_000\" class=\"mt-2\">\r\n <mat-form-field appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TEMPLATE }}</mat-label>\r\n <mat-select\r\n formControlName=\"templateList\"\r\n [(ngModel)]=\"selectedId\"\r\n (ngModelChange)=\"onSelectChange()\"\r\n [disabled]=\"isEdit\"\r\n >\r\n <mat-option\r\n *ngFor=\"let template of templates\"\r\n [value]=\"template.id\"\r\n >\r\n {{ template.title }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor-template-panel_001_001\">\r\n <mat-form-field class=\"col-12 pl-0 pr-0\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.TITLE }}</mat-label>\r\n <input\r\n matInput\r\n [(ngModel)]=\"template.title\"\r\n formControlName=\"title\"\r\n />\r\n <mat-error\r\n *ngIf=\"templateFormGroup.get('title').hasError('required')\"\r\n class=\"mt5\"\r\n >\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div id=\"qmsckeditor-template-panel_001_002\">\r\n <mat-form-field class=\"col-12 pl-0 pr-0\" appearance=\"fill\">\r\n <mat-label>{{ LANG.QMSCKEDITOR.DESCRIPTION }}</mat-label>\r\n <textarea\r\n matInput\r\n [(ngModel)]=\"template.description\"\r\n formControlName=\"description\"\r\n ></textarea>\r\n <mat-error\r\n *ngIf=\"\r\n templateFormGroup.get('description').hasError('required')\r\n \"\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-template-panel_001_003\"\r\n class=\"qmsckeditor button__groups row mr-0 ml-0\"\r\n >\r\n <div class=\"col-6 pl-0\" *ngIf=\"!isEdit\">\r\n <button\r\n class=\"delete\"\r\n mat-flat-button\r\n (click)=\"deleteTemplate()\"\r\n [disabled]=\"selectedId === 0\"\r\n >\r\n {{ LANG.QMSCKEDITOR.DELETE }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pr-0\" *ngIf=\"!isEdit && selectedId === 0\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"saveTemplate()\"\r\n [disabled]=\"templateFormGroup.invalid\"\r\n >\r\n {{ LANG.QMSCKEDITOR.SAVE }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pl-0\" *ngIf=\"isEdit\">\r\n <button\r\n class=\"cancel\"\r\n mat-flat-button\r\n (click)=\"cancelTemplate()\"\r\n [disabled]=\"selectedId === 0\"\r\n >\r\n {{ LANG.QMSCKEDITOR.CANCEL }}\r\n </button>\r\n </div>\r\n <div class=\"col-6 pr-0\" *ngIf=\"isEdit || selectedId !== 0\">\r\n <button\r\n class=\"save\"\r\n mat-flat-button\r\n (click)=\"updateTemplate()\"\r\n [disabled]=\"templateFormGroup.invalid\"\r\n >\r\n {{ LANG.QMSCKEDITOR.UPDATE }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n </form>\r\n</div>\r\n",
198
+ styles: [".mt5{margin-top:5px!important}.mt10{margin-top:10px!important}.mt7{margin-top:7px!important}.mt15{margin-top:15px!important}.mt20{margin-top:20px!important}.mt30{margin-top:30px!important}.mt40{margin-top:40px!important}.ml2{margin-left:2px!important}.ml3{margin-left:3px!important}.ml5{margin-left:5px!important}.ml15{margin-left:15px!important}.ml10{margin-left:10px!important}.ml12{margin-left:12px!important}.ml16{margin-left:16px!important}.ml-auto{margin-left:auto!important}.ml-25{margin-left:-25px!important}.mr5{margin-right:5px!important}.mr12{margin-right:12px!important}.mr15{margin-right:15px!important}.mb5{margin-bottom:5px!important}.mb10{margin-bottom:10px!important}.mb15{margin-bottom:15px!important}.pt8{padding-top:8px!important}.pt10{padding-top:10px!important}.pt15{padding-top:15px!important}.pt16{padding-top:16px!important}.pl15{padding-left:15px!important}.pl0{padding-left:0!important}.pr0{padding-right:0!important}.pr15{padding-right:15px!important}.fs12{font-size:12px}.fs14{font-size:14px!important}.fs16{font-size:16px!important}.fs22{font-size:22px!important}.fw500{font-weight:500!important}.italic-text{font-style:italic}.display-flex{display:flex}.qmsckeditor{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.qmsckeditor h2{font-size:20px;font-weight:400}.qmsckeditor .mat-dialog-content{padding:0}.qmsckeditor .mat-icon{color:#909497}.qmsckeditor__fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff;overflow-y:auto;max-height:100vh;overflow-x:hidden}.qmsckeditor__cursor{cursor:pointer}.qmsckeditor__notallowed{cursor:not-allowed}.qmsckeditor.button__close,.qmsckeditor.button__done{float:right;top:-24px;right:-24px;cursor:pointer}.qmsckeditor.button__done{margin-right:20px}.qmsckeditor.button__done .mat-icon{color:#28a745;font-weight:700}.qmsckeditor.button__groups button{min-height:40px;width:100%;border-radius:4px;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px}.qmsckeditor.button__groups .save{background:#f8f9f9}.qmsckeditor.button__groups .save:hover{background:#e5e7e9}.qmsckeditor.button__groups .save:disabled{cursor:not-allowed}.qmsckeditor.button__groups .cancel{background:#f8f9f9}.qmsckeditor.button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.button__groups .cancel:disabled{cursor:not-allowed}.qmsckeditor.button__groups .delete{background:#f8f9f9}.qmsckeditor.button__groups .delete:hover{background:#e5e7e9}.qmsckeditor.button__groups .delete:disabled{cursor:not-allowed}.qmsckeditor.confirm__button__groups button{min-height:36px;border-radius:4px;width:auto;border:1px solid #c5c5c5;font-family:Open Sans;font-weight:600;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px}.qmsckeditor.confirm__button__groups .confirm{background:#f8f9f9}.qmsckeditor.confirm__button__groups .confirm:hover{background:#e5e7e9}.qmsckeditor.confirm__button__groups .cancel{background:#f8f9f9}.qmsckeditor.confirm__button__groups .cancel:hover{background:#e5e7e9}.qmsckeditor.template-content.height{min-height:420px;max-height:520px;overflow:auto}.qmsckeditor.template-content.title{margin-left:-9px}.qmsckeditor.link__content.height{min-height:400px;max-height:520px}.qmsckeditor.card{margin-bottom:10px;min-height:60px;box-shadow:none;border:1px solid #e5e5e5}.qmsckeditor.card .title{font-weight:700}.qmsckeditor.card .content{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.qmsckeditor.card .material-icons{font-size:20px}.qmsckeditor.tooltip-content.height{min-height:400px;max-height:470px;overflow:auto}.qmsckeditor.save__as__template.height{height:125px}.ck-content .page-break,.qmsckeditor__template__container .mat-form-field{width:100%}.qmsckeditor__template__container textarea.mat-input-element{min-height:150px}.qmsckeditor__template__container .template-checkbox{padding-top:20px}"]
199
+ },] }
200
+ ];
201
+ QMSCKEditorTemplateComponent.ctorParameters = () => [
202
+ { type: ChangeDetectorRef },
203
+ { type: MatDialog },
204
+ { type: TranslateLibraryService },
205
+ { type: QMSCKEditorTemplateService },
206
+ { type: MatDialogRef },
207
+ { type: QMSCKEditorTemplate, decorators: [{ type: Inject, args: [MAT_DIALOG_DATA,] }] }
208
+ ];
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tcG9uZW50cy9xbXMtY2tlZGl0b3ItdGVtcGxhdGUvcW1zLWNrZWRpdG9yLXRlbXBsYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBWTFGLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSx3QkFBd0I7SUFleEUsWUFDVSxHQUFzQixFQUN0QixNQUFpQixFQUNqQixTQUFrQyxFQUNsQyxlQUEyQyxFQUM1QyxTQUFxRCxF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QUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7cUJBQ25EO29CQUNELEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUN4QyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ25DLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTt3QkFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztxQkFDbEU7aUJBQ0Y7Z0JBQ0QsdUJBQXVCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNMLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNsRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7O1lBbE1GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QiwwM0tBQXFEOzthQUV0RDs7O1lBckIwQixpQkFBaUI7WUFFbkMsU0FBUztZQUVULHVCQUF1QjtZQU12QiwwQkFBMEI7WUFSZixZQUFZO1lBTXZCLG1CQUFtQix1QkFtQ3ZCLE1BQU0sU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JEaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9xbXMtY2tlZGl0b3ItZGlhbG9nLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZHVsZS9jb25maXJtL3Ftcy1ja2VkaXRvci1jb25maXJtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFFNU0NLRWRpdG9yVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3RvYXN0L3Ftcy1ja2VkaXRvci10b2FzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUU1TQ0tFZGl0b3JUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9xbXMtY2tlZGl0b3ItdGVtcGxhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvckJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRTVNDS0VkaXRvclRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Ftcy1ja2VkdGlvci10ZW1wbGF0ZS5zZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBJVGVtcGxhdGUge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcW1zY2stdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXMtY2tlZGl0b3ItdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Ftcy1ja2VkaXRvci10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNDS0VkaXRvclRlbXBsYXRlQ29tcG9uZW50IGV4dGVuZHMgUU1TQ0tFZGl0b3JCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICBMQU5HOiBhbnk7XHJcbiAgdGVtcGxhdGVGb3JtR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgdGVtcGxhdGVMaXN0OiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgIHRpdGxlOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXHJcbiAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXHJcbiAgfSk7XHJcbiAgaXNFeHBhbmRlZCA9IHRydWU7XHJcbiAgY29udGVudDogc3RyaW5nO1xyXG4gIHRlbXBsYXRlTGlzdDogUU1TQ0tFZGl0b3JUZW1wbGF0ZVtdID0gW107XHJcbiAgdGVtcGxhdGVzOiBJVGVtcGxhdGVbXSA9IFtdO1xyXG4gIHRlbXBsYXRlID0gbmV3IFFNU0NLRWRpdG9yVGVtcGxhdGUoKTtcclxuICBzZWxlY3RlZElkID0gMDtcclxuICBpc0VkaXQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZUxpYnJhcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2U6IFFNU0NLRWRpdG9yVGVtcGxhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFFNU0NLRWRpdG9yVGVtcGxhdGVDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBRTVNDS0VkaXRvclRlbXBsYXRlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5jb250ZW50ID0gZGF0YS5jb250ZW50O1xyXG4gICAgdGhpcy5zZWxlY3RlZElkID0gZGF0YS5pZDtcclxuICAgIHRoaXMuaXNFZGl0ID0gZGF0YS5lZGl0O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXRMYW5ndWFnZVN1YmplY3QkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHRoaXMuTEFORyA9IHRoaXMudHJhbnNsYXRlLmdldE9iamVjdExhbmcocmVzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmdldFRlbXBsYXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlRGlhbG9nKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGdldFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgLmdldFRlbXBsYXRlKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgIHRoaXMudGVtcGxhdGVMaXN0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICB0aGlzLnRlbXBsYXRlcyA9IHJlc3BvbnNlLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGlkOiB4LmlkLFxyXG4gICAgICAgICAgICAgIHRpdGxlOiB4LnRpdGxlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuYWRkTm9uZVRlbXBsYXRlKHRoaXMudGVtcGxhdGVzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hZGROb25lVGVtcGxhdGUodGhpcy50ZW1wbGF0ZXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNFZGl0ICYmIHRoaXMuc2VsZWN0ZWRJZCAhPT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5vblNlbGVjdENoYW5nZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGROb25lVGVtcGxhdGUodGVtcGxhdGU6IElUZW1wbGF0ZVtdKSB7XHJcbiAgICBpZiAodGVtcGxhdGUgJiYgIXRoaXMuaXNFZGl0KSB7XHJcbiAgICAgIHRlbXBsYXRlLnVuc2hpZnQoe1xyXG4gICAgICAgIGlkOiAwLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLkxBTkcuUU1TQ0tFRElUT1IuQ1JFQVRFX05FV19URU1QTEFURVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0Q2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJZCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnRlbXBsYXRlLmlkID0gdGhpcy5zZWxlY3RlZElkO1xyXG4gICAgICB0aGlzLnRlbXBsYXRlLnRpdGxlID0gJyc7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUuZGVzY3JpcHRpb24gPSAnJztcclxuICAgICAgdGhpcy50ZW1wbGF0ZS5jb250ZW50ID0gdGhpcy5jb250ZW50O1xyXG4gICAgICB0aGlzLnRlbXBsYXRlLmRlbGV0ZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy50ZW1wbGF0ZS5jcmVhdGVkQnkgPSAwO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnRlbXBsYXRlTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50ZW1wbGF0ZUxpc3QuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHguaWQgPT09IHRoaXMuc2VsZWN0ZWRJZDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUuaWQgPSB0aGlzLnRlbXBsYXRlTGlzdFtpbmRleF0uaWQ7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUudGl0bGUgPSB0aGlzLnRlbXBsYXRlTGlzdFtpbmRleF0udGl0bGU7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUuZGVzY3JpcHRpb24gPSB0aGlzLnRlbXBsYXRlTGlzdFtpbmRleF0uZGVzY3JpcHRpb247XHJcbiAgICAgIHRoaXMudGVtcGxhdGUuY29udGVudCA9IHRoaXMudGVtcGxhdGVMaXN0W2luZGV4XS5jb250ZW50O1xyXG4gICAgICB0aGlzLnRlbXBsYXRlLmRlbGV0ZWQgPSB0aGlzLnRlbXBsYXRlTGlzdFtpbmRleF0uZGVsZXRlZDtcclxuICAgICAgdGhpcy50ZW1wbGF0ZS5jcmVhdGVkQnkgPSB0aGlzLnRlbXBsYXRlTGlzdFtpbmRleF0uY3JlYXRlZEJ5O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlVGVtcGxhdGUoKSB7XHJcbiAgICBjb25zdCBkYXRhOiBRTVNDS0VkaXRvckRpYWxvZ0RhdGEgPSBuZXcgUU1TQ0tFZGl0b3JEaWFsb2dEYXRhKCk7XHJcbiAgICBkYXRhLnRpdGxlID0gdGhpcy5MQU5HLlFNU0NLRURJVE9SLkRFTEVURV9URU1QTEFURTtcclxuICAgIGRhdGEuY29udGVudCA9IHRoaXMuTEFORy5RTVNDS0VESVRPUl9NRVNTQUdFLkNPTkZJUk1fREVMRVRFX1RFTVBMQVRFO1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihRTVNDS0VkaXRvckNvbmZpcm1Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc1MDBweCcsXHJcbiAgICAgIG1pbkhlaWdodDogJzE3NXB4JyxcclxuICAgICAgZGF0YVxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWZcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2VcclxuICAgICAgICAgICAgLmRlbGV0ZVRlbXBsYXRlKHRoaXMuc2VsZWN0ZWRJZClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50ZW1wbGF0ZXMuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiB4LmlkID09PSB0aGlzLnNlbGVjdGVkSWQ7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSWQgPSAwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNlbGVjdENoYW5nZSgpO1xyXG4gICAgICAgICAgICAgICAgUU1TQ0tFZGl0b3JUb2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLkxBTkcuUU1TQ0tFRElUT1IuREVMRVRFRCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIFFNU0NLRWRpdG9yVG9hc3RTZXJ2aWNlLmVycm9yKHRoaXMuTEFORy5RTVNDS0VESVRPUi5ERUxFVEVfRkFJTEVEKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzYXZlVGVtcGxhdGUoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZElkID09PSAwKSB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGUuY29udGVudCA9IHRoaXMuY29udGVudDtcclxuICAgIH1cclxuICAgIHRoaXMudGVtcGxhdGVTZXJ2aWNlXHJcbiAgICAgIC5tb2RpZnlUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3ViY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudGVtcGxhdGVzLmZpbmRJbmRleCgoeCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4geC5pZCA9PT0gdGhpcy5zZWxlY3RlZElkO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiB0aGlzLnNlbGVjdGVkSWQgIT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZXNbaW5kZXhdLnRpdGxlID0gdGhpcy50ZW1wbGF0ZS50aXRsZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFFNU0NLRWRpdG9yVG9hc3RTZXJ2aWNlLnN1Y2Nlc3ModGhpcy5MQU5HLlFNU0NLRURJVE9SLlNBVkVEKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgUU1TQ0tFZGl0b3JUb2FzdFNlcnZpY2UuZXJyb3IodGhpcy5MQU5HLlFNU0NLRURJVE9SLlNBVkVfRkFJTEVEKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsVGVtcGxhdGUoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGVtcGxhdGUoKSB7XHJcbiAgICB0aGlzLnRlbXBsYXRlU2VydmljZVxyXG4gICAgICAubW9kaWZ5VGVtcGxhdGUodGhpcy50ZW1wbGF0ZSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YmNyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuaXNFZGl0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMudGVtcGxhdGUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy50ZW1wbGF0ZXMuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHguaWQgPT09IHRoaXMudGVtcGxhdGUuaWQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzW2luZGV4XS50aXRsZSA9IHRoaXMudGVtcGxhdGUudGl0bGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaW5kZXggPSB0aGlzLnRlbXBsYXRlTGlzdC5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geC5pZCA9PT0gdGhpcy50ZW1wbGF0ZS5pZDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZUxpc3RbaW5kZXhdLmRlc2NyaXB0aW9uID0gdGhpcy50ZW1wbGF0ZS5kZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgUU1TQ0tFZGl0b3JUb2FzdFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLkxBTkcuUU1TQ0tFRElUT1IuU0FWRUQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBRTVNDS0VkaXRvclRvYXN0U2VydmljZS5lcnJvcih0aGlzLkxBTkcuUU1TQ0tFRElUT1IuU0FWRV9GQUlMRUQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==