qms-angular 1.0.65 → 1.0.70

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 (274) hide show
  1. package/README.md +21 -2
  2. package/bundles/qms-angular.umd.js +2905 -231
  3. package/bundles/qms-angular.umd.js.map +1 -1
  4. package/esm2015/lib/common/enum/data-type.enum.js +14 -0
  5. package/esm2015/lib/common/enum/document-node-type.enum.js +12 -0
  6. package/esm2015/lib/common/enum/module-type.enum.js +8 -0
  7. package/esm2015/lib/common/related.const.js +6 -0
  8. package/esm2015/lib/components/badges/qms-badges.component.js +9 -5
  9. package/esm2015/lib/components/banner/index.js +2 -0
  10. package/esm2015/lib/components/banner/public_api.js +8 -0
  11. package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +2 -2
  12. package/esm2015/lib/components/button/button.js +5 -5
  13. package/esm2015/lib/components/comment/comment-log.model.js +2 -0
  14. package/esm2015/lib/components/comment/comment.js +6 -2
  15. package/esm2015/lib/components/qms-app-bar/index.js +2 -0
  16. package/esm2015/lib/components/qms-app-bar/models/qms-app-bar.model.js +10 -0
  17. package/esm2015/lib/components/qms-app-bar/public_api.js +3 -0
  18. package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +2 -2
  19. package/esm2015/lib/components/qms-navigation-drawer/index.js +2 -0
  20. package/esm2015/lib/components/qms-navigation-drawer/models/qms-navigation-drawer.model.js +3 -0
  21. package/esm2015/lib/components/qms-navigation-drawer/public_api.js +3 -0
  22. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.js +348 -0
  23. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.module.js +33 -0
  24. package/esm2015/lib/components/qms-status-dropdown/index.js +4 -0
  25. package/esm2015/lib/components/qms-status-dropdown/qms-status-dropdown.component.js +33 -0
  26. package/esm2015/lib/components/qms-status-dropdown/qms-status-dropdown.model.js +10 -0
  27. package/esm2015/lib/components/qms-status-dropdown/qms-status-dropdown.module.js +28 -0
  28. package/esm2015/lib/components/qms-stepper/index.js +2 -0
  29. package/esm2015/lib/components/qms-stepper/models/qms-stepper.model.js +9 -0
  30. package/esm2015/lib/components/qms-stepper/public_api.js +3 -0
  31. package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +5 -4
  32. package/esm2015/lib/components/related/popup/related-popup.component.js +2 -2
  33. package/esm2015/lib/components/select-include-children/model/select-popup-data.model.js +2 -1
  34. package/esm2015/lib/components/select-include-children/select-include-children.component.js +45 -45
  35. package/esm2015/lib/components/select-process-document/index.js +2 -0
  36. package/esm2015/lib/components/select-process-document/models/pop-up-data.model.js +13 -0
  37. package/esm2015/lib/components/select-process-document/models/qms-process-document-item.model.js +3 -0
  38. package/esm2015/lib/components/select-process-document/models/selected-process-document-item.model.js +3 -0
  39. package/esm2015/lib/components/select-process-document/public-api.js +7 -0
  40. package/esm2015/lib/components/select-process-document/select-process-document.component.js +832 -0
  41. package/esm2015/lib/components/select-process-document/select-process-document.module.js +59 -0
  42. package/esm2015/lib/components/select-process-document/services/select-process-document-global.service.js +29 -0
  43. package/esm2015/lib/components/tab/directive/tab-group-advanced.directive.js +30 -0
  44. package/esm2015/lib/components/tab/directive/tab-group.directive.js +20 -0
  45. package/esm2015/lib/components/tab/directive/tab-label.directive.js +20 -0
  46. package/esm2015/lib/components/tab/index.js +2 -0
  47. package/esm2015/lib/components/tab/public-api.js +5 -0
  48. package/esm2015/lib/components/tab/tab.module.js +25 -0
  49. package/esm2015/lib/components/tree/tree.component.js +6 -3
  50. package/esm2015/lib/components/treeNew/index.js +2 -0
  51. package/esm2015/lib/components/treeNew/model/tree-node.model.js +3 -0
  52. package/esm2015/lib/components/treeNew/model/tree.model.js +3 -0
  53. package/esm2015/lib/components/treeNew/public-api.js +5 -0
  54. package/esm2015/lib/components/treeNew/tree.component.js +785 -0
  55. package/esm2015/lib/components/treeNew/tree.function.js +97 -0
  56. package/esm2015/lib/components/treeNew/tree.module.js +51 -0
  57. package/esm2015/lib/directives/app-bar/app-bar.directive.js +24 -0
  58. package/esm2015/lib/directives/table/table.directive.js +201 -0
  59. package/esm2015/lib/qms-angular.module.js +21 -15
  60. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
  61. package/esm2015/public-api.js +17 -18
  62. package/fesm2015/qms-angular.js +2814 -317
  63. package/fesm2015/qms-angular.js.map +1 -1
  64. package/lib/common/enum/data-type.enum.d.ts +12 -0
  65. package/lib/common/enum/document-node-type.enum.d.ts +10 -0
  66. package/lib/common/enum/module-type.enum.d.ts +6 -0
  67. package/lib/common/related.const.d.ts +5 -0
  68. package/lib/components/badges/qms-badges.component.d.ts +4 -1
  69. package/lib/components/banner/index.d.ts +1 -0
  70. package/lib/components/banner/public_api.d.ts +7 -0
  71. package/lib/components/banner/qms-banner/qms-banner.component.d.ts +2 -2
  72. package/lib/components/button/button.d.ts +1 -1
  73. package/lib/components/comment/comment-log.model.d.ts +10 -0
  74. package/lib/components/comment/comment.d.ts +5 -11
  75. package/lib/components/qms-app-bar/index.d.ts +1 -0
  76. package/lib/components/qms-app-bar/{qms-app-bar.model.d.ts → models/qms-app-bar.model.d.ts} +0 -0
  77. package/lib/components/qms-app-bar/public_api.d.ts +2 -0
  78. package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +1 -1
  79. package/lib/components/qms-navigation-drawer/index.d.ts +1 -0
  80. package/lib/components/qms-navigation-drawer/models/qms-navigation-drawer.model.d.ts +19 -0
  81. package/lib/components/qms-navigation-drawer/public_api.d.ts +2 -0
  82. package/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.d.ts +105 -0
  83. package/lib/components/qms-navigation-drawer/qms-navigation-drawer.module.d.ts +2 -0
  84. package/lib/components/qms-status-dropdown/index.d.ts +3 -0
  85. package/lib/components/qms-status-dropdown/qms-status-dropdown.component.d.ts +10 -0
  86. package/lib/components/qms-status-dropdown/qms-status-dropdown.model.d.ts +10 -0
  87. package/lib/components/qms-status-dropdown/qms-status-dropdown.module.d.ts +2 -0
  88. package/lib/components/qms-stepper/index.d.ts +1 -0
  89. package/lib/components/qms-stepper/{qms-stepper.model.d.ts → models/qms-stepper.model.d.ts} +0 -0
  90. package/lib/components/qms-stepper/public_api.d.ts +2 -0
  91. package/lib/components/qms-stepper/qms-stepper.component.d.ts +1 -1
  92. package/lib/components/select-include-children/model/select-popup-data.model.d.ts +1 -0
  93. package/lib/components/select-include-children/select-include-children.component.d.ts +3 -2
  94. package/lib/components/select-process-document/index.d.ts +1 -0
  95. package/lib/components/select-process-document/models/pop-up-data.model.d.ts +17 -0
  96. package/lib/components/select-process-document/models/qms-process-document-item.model.d.ts +13 -0
  97. package/lib/components/select-process-document/models/selected-process-document-item.model.d.ts +16 -0
  98. package/lib/components/select-process-document/public-api.d.ts +6 -0
  99. package/lib/components/select-process-document/select-process-document.component.d.ts +116 -0
  100. package/lib/components/select-process-document/select-process-document.module.d.ts +2 -0
  101. package/lib/components/select-process-document/services/select-process-document-global.service.d.ts +14 -0
  102. package/lib/{directives/tab → components/tab/directive}/tab-group-advanced.directive.d.ts +0 -0
  103. package/lib/{directives/tab → components/tab/directive}/tab-group.directive.d.ts +0 -0
  104. package/lib/{directives/tab → components/tab/directive}/tab-label.directive.d.ts +0 -0
  105. package/lib/components/tab/index.d.ts +1 -0
  106. package/lib/components/tab/public-api.d.ts +4 -0
  107. package/lib/components/tab/tab.module.d.ts +2 -0
  108. package/lib/components/treeNew/index.d.ts +1 -0
  109. package/lib/components/treeNew/model/tree-node.model.d.ts +8 -0
  110. package/lib/components/treeNew/model/tree.model.d.ts +11 -0
  111. package/lib/components/treeNew/public-api.d.ts +4 -0
  112. package/lib/components/treeNew/tree.component.d.ts +135 -0
  113. package/lib/components/treeNew/tree.function.d.ts +13 -0
  114. package/lib/components/treeNew/tree.module.d.ts +2 -0
  115. package/lib/directives/app-bar/app-bar.directive.d.ts +8 -0
  116. package/lib/directives/table/table.directive.d.ts +50 -0
  117. package/lib.theme.scss +3 -0
  118. package/package.json +4 -2
  119. package/public-api.d.ts +15 -17
  120. package/qms-angular.metadata.json +1 -1
  121. package/src/assets/fonts/icomoon.eot +0 -0
  122. package/src/assets/fonts/icomoon.svg +203 -0
  123. package/src/assets/fonts/icomoon.ttf +0 -0
  124. package/src/assets/fonts/icomoon.woff +0 -0
  125. package/src/assets/jointjs/scss/bpmn.scss +1 -9
  126. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +2 -2
  127. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  128. package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
  129. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
  130. package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
  131. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
  132. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
  133. package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
  134. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
  135. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
  136. package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
  137. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
  138. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
  139. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
  140. package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
  141. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
  142. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
  143. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
  144. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
  145. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
  146. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
  147. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
  148. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
  149. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
  150. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
  151. package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
  152. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
  153. package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
  154. package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
  155. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
  156. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
  157. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
  158. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
  159. package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
  160. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
  161. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
  162. package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
  163. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
  164. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
  165. package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
  166. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
  167. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
  168. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
  169. package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
  170. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
  171. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
  172. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
  173. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
  174. package/src/assets/qms-ckeditor-plugin/package-lock.json +29 -1
  175. package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +6 -0
  176. package/src/assets/svg-icons/acutely-toxic.svg +19 -0
  177. package/src/assets/svg-icons/add-column.svg +4 -0
  178. package/src/assets/svg-icons/add-tooltip.svg +6 -0
  179. package/src/assets/svg-icons/admin.svg +3 -0
  180. package/src/assets/svg-icons/annual-cycle.svg +10 -0
  181. package/src/assets/svg-icons/assignment-repete.svg +4 -0
  182. package/src/assets/svg-icons/barrier-add.svg +7 -0
  183. package/src/assets/svg-icons/barrier-edit.svg +7 -0
  184. package/src/assets/svg-icons/barrier-view.svg +3 -0
  185. package/src/assets/svg-icons/button-group.svg +5 -0
  186. package/src/assets/svg-icons/checklist.svg +8 -0
  187. package/src/assets/svg-icons/chemical-manager.svg +5 -0
  188. package/src/assets/svg-icons/chronic-health-hazard.svg +17 -0
  189. package/src/assets/svg-icons/contingency.svg +3 -0
  190. package/src/assets/svg-icons/corrosive.svg +23 -0
  191. package/src/assets/svg-icons/dashboard.svg +3 -0
  192. package/src/assets/svg-icons/database-sds.svg +4 -0
  193. package/src/assets/svg-icons/department-document.svg +4 -0
  194. package/src/assets/svg-icons/department-folder-closed.svg +4 -0
  195. package/src/assets/svg-icons/department-folder-open.svg +4 -0
  196. package/src/assets/svg-icons/description-add.svg +6 -0
  197. package/src/assets/svg-icons/description-edit.svg +6 -0
  198. package/src/assets/svg-icons/description-view.svg +3 -0
  199. package/src/assets/svg-icons/deviation.svg +3 -0
  200. package/src/assets/svg-icons/document-read.svg +5 -0
  201. package/src/assets/svg-icons/draft.svg +7 -0
  202. package/src/assets/svg-icons/dropdown-folder.svg +4 -0
  203. package/src/assets/svg-icons/enterprise-document.svg +4 -0
  204. package/src/assets/svg-icons/enterprise-folder-closed.svg +4 -0
  205. package/src/assets/svg-icons/enterprise-folder-open.svg +4 -0
  206. package/src/assets/svg-icons/expired-off.svg +3 -0
  207. package/src/assets/svg-icons/expired-on.svg +5 -0
  208. package/src/assets/svg-icons/explosive.svg +48 -0
  209. package/src/assets/svg-icons/file-excel.svg +3 -0
  210. package/src/assets/svg-icons/file-pdf-verified.svg +5 -0
  211. package/src/assets/svg-icons/file-pdf.svg +3 -0
  212. package/src/assets/svg-icons/file-word.svg +3 -0
  213. package/src/assets/svg-icons/filter-alt.svg +3 -0
  214. package/src/assets/svg-icons/flammable.svg +5 -0
  215. package/src/assets/svg-icons/flowchart-BPMN.svg +9 -0
  216. package/src/assets/svg-icons/folder-closed.svg +3 -0
  217. package/src/assets/svg-icons/folder-open.svg +3 -0
  218. package/src/assets/svg-icons/gas-under-pressure.svg +4 -0
  219. package/src/assets/svg-icons/health-hazard.svg +4 -0
  220. package/src/assets/svg-icons/keyboard_arrow_down.svg +1 -0
  221. package/src/assets/svg-icons/keyboard_arrow_up.svg +1 -0
  222. package/src/assets/svg-icons/line-break.svg +7 -0
  223. package/src/assets/svg-icons/local-document.svg +4 -0
  224. package/src/assets/svg-icons/local-folder-closed.svg +4 -0
  225. package/src/assets/svg-icons/local-folder-open.svg +4 -0
  226. package/src/assets/svg-icons/location.svg +3 -0
  227. package/src/assets/svg-icons/measure-add.svg +5 -0
  228. package/src/assets/svg-icons/measure-edit.svg +5 -0
  229. package/src/assets/svg-icons/measure-view.svg +3 -0
  230. package/src/assets/svg-icons/messages.svg +3 -0
  231. package/src/assets/svg-icons/monitoring.svg +5 -0
  232. package/src/assets/svg-icons/move.svg +3 -0
  233. package/src/assets/svg-icons/oxidizing.svg +6 -0
  234. package/src/assets/svg-icons/process-area-closed.svg +4 -0
  235. package/src/assets/svg-icons/process-area-open.svg +4 -0
  236. package/src/assets/svg-icons/process-linked.svg +4 -0
  237. package/src/assets/svg-icons/process.svg +3 -0
  238. package/src/assets/svg-icons/regional-document.svg +4 -0
  239. package/src/assets/svg-icons/regional-folder-closed.svg +4 -0
  240. package/src/assets/svg-icons/regional-folder-open.svg +4 -0
  241. package/src/assets/svg-icons/risk.svg +3 -0
  242. package/src/assets/svg-icons/search-in-file.svg +4 -0
  243. package/src/assets/svg-icons/sort-ascending.svg +3 -0
  244. package/src/assets/svg-icons/sort-descending.svg +3 -0
  245. package/src/assets/svg-icons/subscript.svg +4 -0
  246. package/src/assets/svg-icons/superscript.svg +4 -0
  247. package/src/assets/svg-icons/syncronice-favorites.svg +5 -0
  248. package/src/assets/svg-icons/system-settings.svg +3 -0
  249. package/src/assets/svg-icons/view-three-outlined.svg +5 -0
  250. package/src/assets/svg-icons/wiris.svg +9 -0
  251. package/src/assets/svg-icons/workplace-safety.svg +5 -0
  252. package/src/lib/components/badges/_qms-badges-base.scss +15 -9
  253. package/src/lib/components/badges/qms-badges.component.scss +1 -1
  254. package/src/lib/components/qms-app-bar/qms-app-bar.component.scss +10 -0
  255. package/src/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.scss +174 -0
  256. package/src/lib/components/qms-status-dropdown/qms-status-dropdown.component.scss +152 -0
  257. package/src/lib/components/select-process-document/select-process-document.component.scss +300 -0
  258. package/src/lib/components/tree/tree.component.scss +3 -1
  259. package/src/lib/components/treeNew/tree.component.scss +175 -0
  260. package/src/themes/_qms-icon-font.scss +894 -0
  261. package/src/themes/core/_app-bar.scss +14 -0
  262. package/src/themes/core/_colors.scss +1 -0
  263. package/src/themes/core/_qms-label.scss +32 -0
  264. package/src/themes/core/_range-slider.scss +6 -2
  265. package/src/themes/core/_tab.scss +42 -1
  266. package/src/themes/core/_table.scss +54 -0
  267. package/esm2015/lib/components/qms-app-bar/qms-app-bar.model.js +0 -10
  268. package/esm2015/lib/components/qms-stepper/qms-stepper.model.js +0 -9
  269. package/esm2015/lib/components/test-only/test-only.component.js +0 -17
  270. package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +0 -30
  271. package/esm2015/lib/directives/tab/tab-group.directive.js +0 -20
  272. package/esm2015/lib/directives/tab/tab-label.directive.js +0 -20
  273. package/lib/components/test-only/test-only.component.d.ts +0 -3
  274. package/src/lib/components/test-only/test-only.component.scss +0 -10
@@ -0,0 +1,348 @@
1
+ import { FlatTreeControl } from '@angular/cdk/tree';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
4
+ import guidHelper from '../../qms-ckeditor-components/common/helper/guidHelper';
5
+ export class QMSNavigationDrawerComponent {
6
+ constructor() {
7
+ this.treeData = [];
8
+ this.addNodeEvent = new EventEmitter();
9
+ this.addFavoriteEvent = new EventEmitter();
10
+ this.drogLocationEvent = new EventEmitter();
11
+ this.showAddIcon = true;
12
+ this.openNodes = [];
13
+ this.dragDropListDisabled = false;
14
+ this.nodesExpand = new EventEmitter();
15
+ this.onClickNodeEvent = new EventEmitter();
16
+ this.addFavoriteTooltip = 'Legg til favoritt';
17
+ this.deleteFavoriteTooltip = 'Slett favoritt';
18
+ this.addNodeTooltip = 'Legg til lokasjon';
19
+ this.expandedNodeSet = new Set();
20
+ this.dragging = false;
21
+ this.expandDelay = 1000;
22
+ this.isHover = false;
23
+ this.treeControl = new FlatTreeControl(node => node.level, node => node.expandable);
24
+ this.treeFlattener = new MatTreeFlattener(this._transformer, node => node.level, node => node.expandable, node => node.children);
25
+ this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);
26
+ this.hoverNode = {};
27
+ this.expandingNodes = [];
28
+ this.hasChild = (_, node) => node.expandable;
29
+ this.dataSource.data = this.treeData;
30
+ }
31
+ _transformer(node, level) {
32
+ return {
33
+ expandable: !!node.children && node.children.length > 0,
34
+ name: node.name,
35
+ level,
36
+ id: node.id,
37
+ isReadOnly: node.isReadOnly,
38
+ favorite: node.favorite,
39
+ disabled: node.disabled
40
+ };
41
+ }
42
+ ngOnInit() {
43
+ this.openNodes.forEach(item => {
44
+ this.treeControl.expand(this.treeControl.dataNodes.find(p => p.id.toString() === item));
45
+ });
46
+ }
47
+ ngOnChanges(changes) {
48
+ this.dataSource.data = this.treeData;
49
+ if (this.filterText) {
50
+ this.expandNodeSearched(this.treeData, this.filterText);
51
+ }
52
+ if (changes.openNodes) {
53
+ this.openNodes.forEach(item => {
54
+ this.treeControl.expand(this.treeControl.dataNodes.find(p => p.id.toString() === item));
55
+ });
56
+ }
57
+ }
58
+ expandNodeSearched(nodesOrigin, txtSearch) {
59
+ nodesOrigin.forEach(item => {
60
+ if (!item.name.toLocaleLowerCase().includes(txtSearch.toLocaleLowerCase())) {
61
+ this.treeControl.expand(this.treeControl.dataNodes.find(p => p.id.toString() === item.id));
62
+ if (item.children.length > 0) {
63
+ this.expandNodeSearched(item.children, txtSearch);
64
+ }
65
+ }
66
+ });
67
+ }
68
+ onClickNode(nodeId) {
69
+ this.onClickNodeEvent.emit(nodeId);
70
+ }
71
+ onOver(node) {
72
+ this.hoverNode = node;
73
+ }
74
+ addNewNode(nodeId, event) {
75
+ event.stopPropagation();
76
+ event.preventDefault();
77
+ this.addNodeEvent.emit(nodeId);
78
+ }
79
+ addFavoriteNode(nodeId, event) {
80
+ event.stopPropagation();
81
+ event.preventDefault();
82
+ this.addFavoriteEvent.emit(nodeId);
83
+ }
84
+ ngOnDestroy() {
85
+ if (this.activeNodeLocation) {
86
+ this.activeNodeLocation.unsubscribe();
87
+ }
88
+ }
89
+ /**
90
+ * This constructs an array of nodes that matches the DOM,
91
+ * and calls rememberExpandedTreeNodes to persist expand state
92
+ */
93
+ visibleNodes() {
94
+ this.rememberExpandedTreeNodes(this.treeControl, this.expandedNodeSet);
95
+ const result = [];
96
+ function addExpandedChildren(node, expanded) {
97
+ result.push(node);
98
+ if (expanded.has(node.id)) {
99
+ node.children.map(child => addExpandedChildren(child, expanded));
100
+ }
101
+ }
102
+ this.dataSource.data.forEach(node => {
103
+ addExpandedChildren(node, this.expandedNodeSet);
104
+ });
105
+ return result;
106
+ }
107
+ /**
108
+ * Handle the drop - here we rearrange the data based on the drop event,
109
+ * then rebuild the tree.
110
+ * */
111
+ drop(event) {
112
+ // Save data for backup
113
+ const node = event.item.data;
114
+ const backupChangedNode = JSON.parse(JSON.stringify(node));
115
+ const backupData = JSON.parse(JSON.stringify(this.dataSource.data));
116
+ // ignore drops outside of the tree
117
+ if (!event.isPointerOverContainer) {
118
+ return;
119
+ }
120
+ // construct a list of visible nodes, this will match the DOM.
121
+ // the cdkDragDrop event.currentIndex jives with visible nodes.
122
+ // it calls rememberExpandedTreeNodes to persist expand state
123
+ const visibleNodes = this.visibleNodes();
124
+ // deep clone the data source so we can mutate it
125
+ const changedData = JSON.parse(JSON.stringify(this.dataSource.data));
126
+ // recursive find function to find siblings of node
127
+ function findNodeSiblings(arr, id) {
128
+ let result, subResult;
129
+ arr.forEach(item => {
130
+ if (item.id === id) {
131
+ result = arr;
132
+ }
133
+ else if (item.children) {
134
+ subResult = findNodeSiblings(item.children, id);
135
+ if (subResult) {
136
+ result = subResult;
137
+ }
138
+ }
139
+ });
140
+ return result;
141
+ }
142
+ // remove the node from its old place
143
+ const siblings = findNodeSiblings(changedData, node.id);
144
+ const siblingIndex = siblings.findIndex(n => n.id === node.id);
145
+ // const nodeToInsert: TreeNode = siblings.splice(siblingIndex, 1)[0];
146
+ const nodeToInsert = siblings.splice(siblingIndex, 1)[0];
147
+ // determine where to insert the node
148
+ const nodeAtDest = visibleNodes[event.currentIndex];
149
+ if (nodeAtDest.id === nodeToInsert.id) {
150
+ return;
151
+ }
152
+ // determine drop index relative to destination array
153
+ let relativeIndex = event.currentIndex; // default if no parent
154
+ const nodeAtDestFlatNode = this.treeControl.dataNodes.find(n => nodeAtDest.id === n.id);
155
+ const parent = this.getParentNode(nodeAtDestFlatNode);
156
+ if (parent) {
157
+ const parentIndex = visibleNodes.findIndex(n => n.id === parent.id) + 1;
158
+ relativeIndex = event.currentIndex - parentIndex;
159
+ // update parentId for nodeToInsert
160
+ nodeToInsert.parentId = parent.id;
161
+ }
162
+ else {
163
+ nodeToInsert.parentId = guidHelper.empty;
164
+ }
165
+ // update new order for nodeToInsert
166
+ nodeToInsert.order = relativeIndex;
167
+ // insert node
168
+ const newSiblings = findNodeSiblings(changedData, nodeAtDest.id);
169
+ if (!newSiblings) {
170
+ return;
171
+ }
172
+ newSiblings.splice(relativeIndex, 0, nodeToInsert);
173
+ // rebuild tree with mutated data
174
+ this.rebuildTreeForData(changedData);
175
+ // update New Location Order for new insert node
176
+ this.updateNewOrderForNodeSiblings(newSiblings);
177
+ this.drogLocationEvent.emit({
178
+ newSiblings: newSiblings,
179
+ changedNode: backupChangedNode,
180
+ oldDataSource: backupData
181
+ });
182
+ }
183
+ updateNewOrderForNodeSiblings(newSiblings) {
184
+ let newOrder = 0;
185
+ newSiblings.forEach(item => {
186
+ item.order = newOrder;
187
+ newOrder = newOrder + 1;
188
+ });
189
+ }
190
+ /**
191
+ * Experimental - opening tree nodes as you drag over them
192
+ */
193
+ dragStart() {
194
+ this.dragging = true;
195
+ }
196
+ dragEnd() {
197
+ this.dragging = false;
198
+ }
199
+ dragHover(node) {
200
+ this.isHover = true;
201
+ if (this.dragging) {
202
+ clearTimeout(this.expandTimeout);
203
+ this.expandTimeout = setTimeout(() => {
204
+ this.treeControl.expand(node);
205
+ }, this.expandDelay);
206
+ }
207
+ }
208
+ dragHoverEnd() {
209
+ this.isHover = false;
210
+ if (this.dragging) {
211
+ clearTimeout(this.expandTimeout);
212
+ }
213
+ }
214
+ /**
215
+ * The following methods are for persisting the tree expand state
216
+ * after being rebuilt
217
+ */
218
+ rebuildTreeForData(data) {
219
+ this.rememberExpandedTreeNodes(this.treeControl, this.expandedNodeSet);
220
+ this.treeData = data;
221
+ this.dataSource.data = data;
222
+ this.forgetMissingExpandedNodes(this.treeControl, this.expandedNodeSet);
223
+ this.expandNodesById(this.treeControl.dataNodes, Array.from(this.expandedNodeSet));
224
+ }
225
+ rememberExpandedTreeNodes(treeControl, expandedNodeSet) {
226
+ if (treeControl.dataNodes) {
227
+ treeControl.dataNodes.forEach((node) => {
228
+ if (treeControl.isExpandable(node) && treeControl.isExpanded(node)) {
229
+ // capture latest expanded state
230
+ expandedNodeSet.add(node.id.toString());
231
+ }
232
+ });
233
+ }
234
+ }
235
+ forgetMissingExpandedNodes(treeControl, expandedNodeSet) {
236
+ if (treeControl.dataNodes) {
237
+ expandedNodeSet.forEach((nodeId) => {
238
+ // maintain expanded node state
239
+ if (!treeControl.dataNodes.find((n) => n.id.toString() === nodeId)) {
240
+ // if the tree doesn't have the previous node, remove it from the expanded list
241
+ expandedNodeSet.delete(nodeId);
242
+ }
243
+ });
244
+ }
245
+ }
246
+ expandNodesById(flatNodes, ids) {
247
+ if (!flatNodes || flatNodes.length === 0) {
248
+ return;
249
+ }
250
+ const idSet = new Set(ids);
251
+ return flatNodes.forEach((node) => {
252
+ if (idSet.has(node.id.toString())) {
253
+ this.treeControl.expand(node);
254
+ this.expandingNodes.push(node);
255
+ let parent = this.getParentNode(node);
256
+ while (parent) {
257
+ this.treeControl.expand(parent);
258
+ this.expandingNodes.push(parent);
259
+ parent = this.getParentNode(parent);
260
+ }
261
+ }
262
+ });
263
+ }
264
+ getParentNode(node) {
265
+ const currentLevel = node.level;
266
+ if (currentLevel < 1) {
267
+ return null;
268
+ }
269
+ const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;
270
+ for (let i = startIndex; i >= 0; i--) {
271
+ const currentNode = this.treeControl.dataNodes[i];
272
+ if (currentNode.level < currentLevel) {
273
+ return currentNode;
274
+ }
275
+ }
276
+ return null;
277
+ }
278
+ onKeyDownNode(event, node) {
279
+ if (event.key == 'Enter') {
280
+ this.onClickToggleNode(node);
281
+ }
282
+ }
283
+ onClickToggleNode(node) {
284
+ if (this.treeControl.isExpanded(node)) {
285
+ this.treeControl.expand(node);
286
+ this._addExpandingNode(node);
287
+ }
288
+ else {
289
+ this.treeControl.collapse(node);
290
+ this._removeExpandingNodes(node.id);
291
+ }
292
+ this.nodesExpand.emit({ node, isExpand: this.treeControl.isExpanded(node) });
293
+ }
294
+ setHoverFavorite(id) {
295
+ this.hoverFavoriteNodeId = id;
296
+ }
297
+ expandNodes() {
298
+ this._expandNodesLoop(this.treeData);
299
+ }
300
+ _expandNodesLoop(data) {
301
+ data.forEach(node => {
302
+ const expandingNode = this.expandingNodes.some(x => x.id === node.id);
303
+ if (expandingNode) {
304
+ this.onClickToggleNode(expandingNode);
305
+ }
306
+ data.forEach(item => {
307
+ if (Array.isArray(item.children)) {
308
+ this._expandNodesLoop(item.children);
309
+ }
310
+ });
311
+ });
312
+ }
313
+ _addExpandingNode(node) {
314
+ if (!this.expandingNodes.some(x => x.id === node.id)) {
315
+ this.expandingNodes.push(node);
316
+ }
317
+ }
318
+ _removeExpandingNodes(nodeId) {
319
+ this.expandingNodes = this.expandingNodes.filter(x => x.id !== nodeId);
320
+ }
321
+ }
322
+ QMSNavigationDrawerComponent.decorators = [
323
+ { type: Component, args: [{
324
+ selector: 'app-qms-navigation-drawer',
325
+ template: "<mat-tree class=\"qms-navigation-drawer-container\" [dataSource]=\"dataSource\" [treeControl]=\"treeControl\" cdkDropList\r\n (cdkDropListDropped)=\"drop($event)\" [cdkDropListDisabled]=\"dragDropListDisabled\">\r\n <!-- This is the tree node template for leaf nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node\" routerLinkActive=\"active\" (mouseover)=\"onOver(node)\" matTreeNodePadding\r\n matTreeNodePaddingIndent=\"34\" cdkDrag [cdkDragData]=\"node\" (mouseenter)=\"dragHover(node)\"\r\n (mouseleave)=\"dragHoverEnd()\" (cdkDragStarted)=\"dragStart()\" (cdkDragReleased)=\"dragEnd()\"\r\n [ngClass]=\"{'expand-node' : treeControl.isExpanded(node), 'collapse-node': !treeControl.isExpanded(node)}\">\r\n <div *ngIf=\"!node.isReadOnly\" (click)=\"onClickNode(node.id)\"\r\n class=\"tree-content\">\r\n <div class=\"span-text\" mode=\"dark\" position=\"below\">{{ node.name }}</div>\r\n <button tabindex=\"-1\" class=\"button-icon collapse-expand-icon space-icon\" mat-icon-button>\r\n <img class=\"img-icon\" [src]=\"faIconPath\" alt=\"\" />\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\"\r\n *ngIf=\"showFavoriteIcon && (node.id === hoverNode.id || node.favorite)\"\r\n (click)=\"addFavoriteNode(node.id, $event)\" (mouseenter)=\"setHoverFavorite(node.id)\"\r\n (mouseleave)=\"setHoverFavorite(null)\" [ngClass]=\"{'btn-favorite': (node.id === hoverNode.id && showAddIcon)}\"\r\n matTooltip=\"{{!node.favorite ? addFavoriteTooltip : deleteFavoriteTooltip}}\" mode=\"dark\" position=\"below\"\r\n mat-icon-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror blur-icon\" [class.favorite]=\"true\">\r\n {{node.favorite && node.id !== hoverFavoriteNodeId && !favoriteMode\r\n ? 'star_rate_outline' :\r\n (hoverFavoriteNodeId !== null || (isHover && node.id === hoverNode.id)) && !favoriteMode ? 'star_border' : ''\r\n }}\r\n {{node.id === hoverNode.id && favoriteMode && isHover ? 'close' : ''}}\r\n </mat-icon>\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\" *ngIf=\"node.id === hoverNode.id && showAddIcon\"\r\n matTooltip=\"{{addNodeTooltip}}\" (click)=\"addNewNode(node.id, $event)\" mode=\"dark\" position=\"below\"\r\n mat-icon-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror add-icon\">\r\n add\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </mat-tree-node>\r\n <!-- This is the tree node template for expandable nodes -->\r\n <mat-tree-node *matTreeNodeDef=\"let node;when: hasChild\" routerLinkActive=\"active\" (mouseover)=\"onOver(node)\"\r\n matTreeNodePadding matTreeNodePaddingIndent=\"34\" cdkDrag [cdkDragData]=\"node\" (mouseenter)=\"dragHover(node)\"\r\n (mouseleave)=\"dragHoverEnd()\" (cdkDragStarted)=\"dragStart()\" (cdkDragReleased)=\"dragEnd()\" [ngClass]=\"\r\n {'expand-node' : treeControl.isExpanded(node), 'collapse-node': !treeControl.isExpanded(node)}\">\r\n <div *ngIf=\"!node.isReadOnly\" (click)=\"onClickNode(node.id)\"\r\n class=\"tree-content\" (keydown)=\"onKeyDownNode($event, node)\">\r\n <span class=\"span-text\" mode=\"dark\" position=\"below\">{{ node.name }}</span>\r\n <button tabindex=\"-1\" class=\"button-icon space-icon collapse-expand-icon\" mat-icon-button matTreeNodeToggle\r\n [attr.aria-label]=\"'toggle ' + node.name\" (click)=\"onClickToggleNode(node)\">\r\n <mat-icon class=\"mat-icon-rtl-mirror arrow-icon left-icon\">\r\n {{treeControl.isExpanded(node) ? 'expand_less' : 'expand_more'}}\r\n </mat-icon>\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\"\r\n matTooltip=\"{{!node.favorite ? addFavoriteTooltip : deleteFavoriteTooltip}}\"\r\n *ngIf=\"showFavoriteIcon && (node.id === hoverNode.id || node.favorite)\"\r\n (click)=\"addFavoriteNode(node.id, $event)\"\r\n [ngClass]=\"{'btn-favorite': (node.id === hoverNode.id && showAddIcon)}\" (mouseenter)=\"setHoverFavorite(node.id)\"\r\n (mouseleave)=\"setHoverFavorite(null)\" mode=\"dark\" position=\"below\" mat-icon-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror blur-icon\" [class.favorite]=\"true\">\r\n {{node.favorite && node.id !== hoverFavoriteNodeId && !favoriteMode\r\n ? 'star_rate_outline' :\r\n (hoverFavoriteNodeId !== null || (isHover && node.id === hoverNode.id)) && !favoriteMode ? 'star_border' : ''\r\n }}\r\n {{node.id === hoverNode.id && favoriteMode && isHover ? 'close' : ''}}\r\n </mat-icon>\r\n </button>\r\n <button tabindex=\"-1\" class=\"button-icon add-icon\" *ngIf=\"node.id === hoverNode.id && showAddIcon\"\r\n matTooltip=\"{{addNodeTooltip}}\" (click)=\"addNewNode(node.id, $event)\" mat-icon-button>\r\n <mat-icon class=\"mat-icon-rtl-mirror add-icon\">\r\n add\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </mat-tree-node>\r\n</mat-tree>",
326
+ styles: ["::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node{width:272px!important;height:48px!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node{min-height:34px;margin:16px 0;padding-right:34px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content{width:100%;position:relative;cursor:pointer}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .arrow-icon{color:#00324e}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .collapse-expand-icon{color:#3e57b7}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .collapse-expand-icon:hover{background:rgba(0,0,0,.08)}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .add-icon{color:#3e57b7}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .add-icon:hover{background:rgba(0,0,0,.08)}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .left-icon{color:#919191}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node{padding-left:0;position:static;height:32px;left:calc(50% - 216px/2);top:0;font-family:Open Sans;font-style:normal;font-weight:400;font-size:14px;line-height:19px;display:flex;align-items:center;color:#1954a9;flex:none;order:0;align-self:stretch;flex-grow:1}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node ::ng-deep mat-icon{color:#1954a9!important}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node{position:static;height:32px;left:calc(50% - 176px/2);top:0;font-family:Open Sans;font-style:normal;font-weight:400;font-size:14px;line-height:19px;display:flex;align-items:center;color:#323232;flex:none;order:0;align-self:stretch;flex-grow:1}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .button-icon{width:30px;height:30px;line-height:30px!important;border-radius:50%}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .button-icon:hover{border-radius:50%}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .img-icon{max-height:25px;max-width:25px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .add-icon{position:absolute;top:-2px;right:-34px}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .add-icon mat-icon{top:3px;right:3px;border-radius:50%}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .favorite{color:#b13514}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .btn-favorite{right:-5px;color:unset}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .space-icon{position:absolute;top:-5px;left:0}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .span-text{position:relative;overflow:hidden;text-overflow:ellipsis;padding-left:42px;max-width:calc(100% - 56px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node .tree-content .span-text:after{content:\"\";display:block;clear:both}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node:first-child{margin:0}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node:hover{background:#00000014}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.collapse-node:active{background:#0000001f}::ng-deep mat-tree.qms-navigation-drawer-container .mat-tree-node.expand-node:active{background:#f2f7fd}"]
327
+ },] }
328
+ ];
329
+ QMSNavigationDrawerComponent.ctorParameters = () => [];
330
+ QMSNavigationDrawerComponent.propDecorators = {
331
+ treeData: [{ type: Input }],
332
+ showFavoriteIcon: [{ type: Input }],
333
+ favoriteMode: [{ type: Input }],
334
+ addNodeEvent: [{ type: Output }],
335
+ addFavoriteEvent: [{ type: Output }],
336
+ drogLocationEvent: [{ type: Output }],
337
+ showAddIcon: [{ type: Input }],
338
+ openNodes: [{ type: Input }],
339
+ dragDropListDisabled: [{ type: Input }],
340
+ nodesExpand: [{ type: Output }],
341
+ filterText: [{ type: Input }],
342
+ faIconPath: [{ type: Input }],
343
+ onClickNodeEvent: [{ type: Output }],
344
+ addFavoriteTooltip: [{ type: Input }],
345
+ deleteFavoriteTooltip: [{ type: Input }],
346
+ addNodeTooltip: [{ type: Input }]
347
+ };
348
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdmlnYXRpb24tZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtbmF2aWdhdGlvbi1kcmF3ZXIvcW1zLW5hdmlnYXRpb24tZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpGLE9BQU8sVUFBVSxNQUFNLHdEQUF3RCxDQUFDO0FBUWhGLE1BQU0sT0FBTyw0QkFBNEI7SUFDdkM7UUFHUyxhQUFRLEdBQW9CLEVBQUUsQ0FBQztRQUc5QixpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELHFCQUFnQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVELHNCQUFpQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHcEQscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0QsdUJBQWtCLEdBQVcsbUJBQW1CLENBQUM7UUFDakQsMEJBQXFCLEdBQVcsZ0JBQWdCLENBQUM7UUFDakQsbUJBQWMsR0FBVyxtQkFBbUIsQ0FBQztRQUd0RCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDcEMsYUFBUSxHQUFH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LEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OztZQTdXRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsODlKQUFxRDs7YUFFdEQ7Ozs7dUJBTUUsS0FBSzsrQkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsTUFBTTsrQkFDTixNQUFNO2dDQUNOLE1BQU07MEJBQ04sS0FBSzt3QkFDTCxLQUFLO21DQUNMLEtBQUs7MEJBQ0wsTUFBTTt5QkFDTixLQUFLO3lCQUNMLEtBQUs7K0JBQ0wsTUFBTTtpQ0FDTixLQUFLO29DQUNMLEtBQUs7NkJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VHJlZUZsYXREYXRhU291cmNlLCBNYXRUcmVlRmxhdHRlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgZ3VpZEhlbHBlciBmcm9tICcuLi8uLi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vaGVscGVyL2d1aWRIZWxwZXInO1xyXG5pbXBvcnQgeyBGbGF0Tm9kZSwgVHJlZU5vZGUgfSBmcm9tICcuL21vZGVscy9xbXMtbmF2aWdhdGlvbi1kcmF3ZXIubW9kZWwnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1xbXMtbmF2aWdhdGlvbi1kcmF3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXMtbmF2aWdhdGlvbi1kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Ftcy1uYXZpZ2F0aW9uLWRyYXdlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgUU1TTmF2aWdhdGlvbkRyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnRyZWVEYXRhO1xyXG4gIH1cclxuICBASW5wdXQoKSB0cmVlRGF0YTogQXJyYXk8VHJlZU5vZGU+ID0gW107XHJcbiAgQElucHV0KCkgc2hvd0Zhdm9yaXRlSWNvbjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmYXZvcml0ZU1vZGU6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGFkZE5vZGVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGFkZEZhdm9yaXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkcm9nTG9jYXRpb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2hvd0FkZEljb24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG9wZW5Ob2Rlczogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBkcmFnRHJvcExpc3REaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBub2Rlc0V4cGFuZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgZmlsdGVyVGV4dDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZhSWNvblBhdGg6IHN0cmluZztcclxuICBAT3V0cHV0KCkgb25DbGlja05vZGVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgYWRkRmF2b3JpdGVUb29sdGlwOiBzdHJpbmcgPSAnTGVnZyB0aWwgZmF2b3JpdHQnO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZUZhdm9yaXRlVG9vbHRpcDogc3RyaW5nID0gJ1NsZXR0IGZhdm9yaXR0JztcclxuICBASW5wdXQoKSBhZGROb2RlVG9vbHRpcDogc3RyaW5nID0gJ0xlZ2cgdGlsIGxva2Fzam9uJztcclxuXHJcbiAgYWN0aXZlTm9kZUxvY2F0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgZXhwYW5kZWROb2RlU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcbiAgZHJhZ2dpbmcgPSBmYWxzZTtcclxuICBleHBhbmRUaW1lb3V0OiBhbnk7XHJcbiAgZXhwYW5kRGVsYXkgPSAxMDAwO1xyXG4gIGhvdmVyRmF2b3JpdGVOb2RlSWQ6IHN0cmluZztcclxuICBpc0hvdmVyID0gZmFsc2U7XHJcbiAgdHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPEZsYXROb2RlPihub2RlID0+IG5vZGUubGV2ZWwsIG5vZGUgPT4gbm9kZS5leHBhbmRhYmxlKTtcclxuICB0cmVlRmxhdHRlbmVyID0gbmV3IE1hdFRyZWVGbGF0dGVuZXIodGhpcy5fdHJhbnNmb3JtZXIsIG5vZGUgPT4gbm9kZS5sZXZlbCwgbm9kZSA9PiBub2RlLmV4cGFuZGFibGUsIG5vZGUgPT4gbm9kZS5jaGlsZHJlbik7XHJcbiAgZGF0YVNvdXJjZSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UodGhpcy50cmVlQ29udHJvbCwgdGhpcy50cmVlRmxhdHRlbmVyKTtcclxuICBob3Zlck5vZGU6IGFueSA9IHt9O1xyXG4gIGV4cGFuZGluZ05vZGVzOiBGbGF0Tm9kZVtdID0gW107XHJcbiAgX3RyYW5zZm9ybWVyKG5vZGU6IFRyZWVOb2RlLCBsZXZlbDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBleHBhbmRhYmxlOiAhIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwLFxyXG4gICAgICBuYW1lOiBub2RlLm5hbWUsXHJcbiAgICAgIGxldmVsLFxyXG4gICAgICBpZDogbm9kZS5pZCxcclxuICAgICAgaXNSZWFkT25seTogbm9kZS5pc1JlYWRPbmx5LFxyXG4gICAgICBmYXZvcml0ZTogbm9kZS5mYXZvcml0ZSxcclxuICAgICAgZGlzYWJsZWQ6IG5vZGUuZGlzYWJsZWRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMub3Blbk5vZGVzLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQocCA9PiBwLmlkLnRvU3RyaW5nKCkgPT09IGl0ZW0pKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGQgPSAoXzogbnVtYmVyLCBub2RlOiBGbGF0Tm9kZSkgPT4gbm9kZS5leHBhbmRhYmxlO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudHJlZURhdGE7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJUZXh0KSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kTm9kZVNlYXJjaGVkKHRoaXMudHJlZURhdGEsIHRoaXMuZmlsdGVyVGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMub3Blbk5vZGVzKSB7XHJcbiAgICAgIHRoaXMub3Blbk5vZGVzLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChwID0+IHAuaWQudG9TdHJpbmcoKSA9PT0gaXRlbSkpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV4cGFuZE5vZGVTZWFyY2hlZChub2Rlc09yaWdpbjogVHJlZU5vZGVbXSwgdHh0U2VhcmNoOiBzdHJpbmcpIHtcclxuICAgIG5vZGVzT3JpZ2luLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmICghaXRlbS5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXModHh0U2VhcmNoLnRvTG9jYWxlTG93ZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChwID0+IHAuaWQudG9TdHJpbmcoKSA9PT0gaXRlbS5pZCkpO1xyXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuZXhwYW5kTm9kZVNlYXJjaGVkKGl0ZW0uY2hpbGRyZW4sIHR4dFNlYXJjaCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tOb2RlKG5vZGVJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9uQ2xpY2tOb2RlRXZlbnQuZW1pdChub2RlSWQpO1xyXG4gIH1cclxuXHJcbiAgb25PdmVyKG5vZGU6IGFueSkge1xyXG4gICAgdGhpcy5ob3Zlck5vZGUgPSBub2RlO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3Tm9kZShub2RlSWQ6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5hZGROb2RlRXZlbnQuZW1pdChub2RlSWQpO1xyXG4gIH1cclxuXHJcbiAgYWRkRmF2b3JpdGVOb2RlKG5vZGVJZDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmFkZEZhdm9yaXRlRXZlbnQuZW1pdChub2RlSWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVOb2RlTG9jYXRpb24pIHtcclxuICAgICAgdGhpcy5hY3RpdmVOb2RlTG9jYXRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgY29uc3RydWN0cyBhbiBhcnJheSBvZiBub2RlcyB0aGF0IG1hdGNoZXMgdGhlIERPTSxcclxuICAgKiBhbmQgY2FsbHMgcmVtZW1iZXJFeHBhbmRlZFRyZWVOb2RlcyB0byBwZXJzaXN0IGV4cGFuZCBzdGF0ZVxyXG4gICAqL1xyXG4gIHZpc2libGVOb2RlcygpOiBUcmVlTm9kZVtdIHtcclxuICAgIHRoaXMucmVtZW1iZXJFeHBhbmRlZFRyZWVOb2Rlcyh0aGlzLnRyZWVDb250cm9sLCB0aGlzLmV4cGFuZGVkTm9kZVNldCk7XHJcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuXHJcbiAgICBmdW5jdGlvbiBhZGRFeHBhbmRlZENoaWxkcmVuKG5vZGU6IFRyZWVOb2RlLCBleHBhbmRlZDogU2V0PHN0cmluZz4pIHtcclxuICAgICAgcmVzdWx0LnB1c2gobm9kZSk7XHJcbiAgICAgIGlmIChleHBhbmRlZC5oYXMobm9kZS5pZCkpIHtcclxuICAgICAgICBub2RlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiBhZGRFeHBhbmRlZENoaWxkcmVuKGNoaWxkLCBleHBhbmRlZCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YS5mb3JFYWNoKG5vZGUgPT4ge1xyXG4gICAgICBhZGRFeHBhbmRlZENoaWxkcmVuKG5vZGUsIHRoaXMuZXhwYW5kZWROb2RlU2V0KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSB0aGUgZHJvcCAtIGhlcmUgd2UgcmVhcnJhbmdlIHRoZSBkYXRhIGJhc2VkIG9uIHRoZSBkcm9wIGV2ZW50LFxyXG4gICAqIHRoZW4gcmVidWlsZCB0aGUgdHJlZS5cclxuICAgKiAqL1xyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgLy8gU2F2ZSBkYXRhIGZvciBiYWNrdXBcclxuICAgIGNvbnN0IG5vZGUgPSBldmVudC5pdGVtLmRhdGE7XHJcbiAgICBjb25zdCBiYWNrdXBDaGFuZ2VkTm9kZTogVHJlZU5vZGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5vZGUpKTtcclxuICAgIGNvbnN0IGJhY2t1cERhdGE6IFRyZWVOb2RlW10gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YVNvdXJjZS5kYXRhKSk7XHJcblxyXG4gICAgLy8gaWdub3JlIGRyb3BzIG91dHNpZGUgb2YgdGhlIHRyZWVcclxuICAgIGlmICghZXZlbnQuaXNQb2ludGVyT3ZlckNvbnRhaW5lcikgeyByZXR1cm47IH1cclxuXHJcbiAgICAvLyBjb25zdHJ1Y3QgYSBsaXN0IG9mIHZpc2libGUgbm9kZXMsIHRoaXMgd2lsbCBtYXRjaCB0aGUgRE9NLlxyXG4gICAgLy8gdGhlIGNka0RyYWdEcm9wIGV2ZW50LmN1cnJlbnRJbmRleCBqaXZlcyB3aXRoIHZpc2libGUgbm9kZXMuXHJcbiAgICAvLyBpdCBjYWxscyByZW1lbWJlckV4cGFuZGVkVHJlZU5vZGVzIHRvIHBlcnNpc3QgZXhwYW5kIHN0YXRlXHJcbiAgICBjb25zdCB2aXNpYmxlTm9kZXMgPSB0aGlzLnZpc2libGVOb2RlcygpO1xyXG5cclxuICAgIC8vIGRlZXAgY2xvbmUgdGhlIGRhdGEgc291cmNlIHNvIHdlIGNhbiBtdXRhdGUgaXRcclxuICAgIGNvbnN0IGNoYW5nZWREYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFTb3VyY2UuZGF0YSkpO1xyXG5cclxuICAgIC8vIHJlY3Vyc2l2ZSBmaW5kIGZ1bmN0aW9uIHRvIGZpbmQgc2libGluZ3Mgb2Ygbm9kZVxyXG4gICAgZnVuY3Rpb24gZmluZE5vZGVTaWJsaW5ncyhhcnI6IEFycmF5PGFueT4sIGlkOiBzdHJpbmcpOiBBcnJheTxhbnk+IHtcclxuICAgICAgbGV0IHJlc3VsdCwgc3ViUmVzdWx0O1xyXG4gICAgICBhcnIuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5pZCA9PT0gaWQpIHtcclxuICAgICAgICAgIHJlc3VsdCA9IGFycjtcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcclxuICAgICAgICAgIHN1YlJlc3VsdCA9IGZpbmROb2RlU2libGluZ3MoaXRlbS5jaGlsZHJlbiwgaWQpO1xyXG4gICAgICAgICAgaWYgKHN1YlJlc3VsdCkgeyByZXN1bHQgPSBzdWJSZXN1bHQ7IH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHJlbW92ZSB0aGUgbm9kZSBmcm9tIGl0cyBvbGQgcGxhY2VcclxuICAgIGNvbnN0IHNpYmxpbmdzID0gZmluZE5vZGVTaWJsaW5ncyhjaGFuZ2VkRGF0YSwgbm9kZS5pZCk7XHJcbiAgICBjb25zdCBzaWJsaW5nSW5kZXggPSBzaWJsaW5ncy5maW5kSW5kZXgobiA9PiBuLmlkID09PSBub2RlLmlkKTtcclxuICAgIC8vIGNvbnN0IG5vZGVUb0luc2VydDogVHJlZU5vZGUgPSBzaWJsaW5ncy5zcGxpY2Uoc2libGluZ0luZGV4LCAxKVswXTtcclxuICAgIGNvbnN0IG5vZGVUb0luc2VydCA9IHNpYmxpbmdzLnNwbGljZShzaWJsaW5nSW5kZXgsIDEpWzBdO1xyXG4gICAgLy8gZGV0ZXJtaW5lIHdoZXJlIHRvIGluc2VydCB0aGUgbm9kZVxyXG4gICAgY29uc3Qgbm9kZUF0RGVzdCA9IHZpc2libGVOb2Rlc1tldmVudC5jdXJyZW50SW5kZXhdO1xyXG4gICAgaWYgKG5vZGVBdERlc3QuaWQgPT09IG5vZGVUb0luc2VydC5pZCkgeyByZXR1cm47IH1cclxuXHJcbiAgICAvLyBkZXRlcm1pbmUgZHJvcCBpbmRleCByZWxhdGl2ZSB0byBkZXN0aW5hdGlvbiBhcnJheVxyXG4gICAgbGV0IHJlbGF0aXZlSW5kZXggPSBldmVudC5jdXJyZW50SW5kZXg7IC8vIGRlZmF1bHQgaWYgbm8gcGFyZW50XHJcbiAgICBjb25zdCBub2RlQXREZXN0RmxhdE5vZGUgPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKG4gPT4gbm9kZUF0RGVzdC5pZCA9PT0gbi5pZCk7XHJcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUobm9kZUF0RGVzdEZsYXROb2RlKTtcclxuXHJcbiAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudEluZGV4ID0gdmlzaWJsZU5vZGVzLmZpbmRJbmRleChuID0+IG4uaWQgPT09IHBhcmVudC5pZCkgKyAxO1xyXG4gICAgICByZWxhdGl2ZUluZGV4ID0gZXZlbnQuY3VycmVudEluZGV4IC0gcGFyZW50SW5kZXg7XHJcbiAgICAgIC8vIHVwZGF0ZSBwYXJlbnRJZCBmb3Igbm9kZVRvSW5zZXJ0XHJcbiAgICAgIG5vZGVUb0luc2VydC5wYXJlbnRJZCA9IHBhcmVudC5pZDtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBub2RlVG9JbnNlcnQucGFyZW50SWQgPSBndWlkSGVscGVyLmVtcHR5O1xyXG4gICAgfVxyXG4gICAgLy8gdXBkYXRlIG5ldyBvcmRlciBmb3Igbm9kZVRvSW5zZXJ0XHJcbiAgICBub2RlVG9JbnNlcnQub3JkZXIgPSByZWxhdGl2ZUluZGV4O1xyXG4gICAgLy8gaW5zZXJ0IG5vZGVcclxuICAgIGNvbnN0IG5ld1NpYmxpbmdzID0gZmluZE5vZGVTaWJsaW5ncyhjaGFuZ2VkRGF0YSwgbm9kZUF0RGVzdC5pZCk7XHJcbiAgICBpZiAoIW5ld1NpYmxpbmdzKSB7IHJldHVybjsgfVxyXG4gICAgbmV3U2libGluZ3Muc3BsaWNlKHJlbGF0aXZlSW5kZXgsIDAsIG5vZGVUb0luc2VydCk7XHJcblxyXG4gICAgLy8gcmVidWlsZCB0cmVlIHdpdGggbXV0YXRlZCBkYXRhXHJcbiAgICB0aGlzLnJlYnVpbGRUcmVlRm9yRGF0YShjaGFuZ2VkRGF0YSk7XHJcblxyXG4gICAgLy8gdXBkYXRlIE5ldyBMb2NhdGlvbiBPcmRlciBmb3IgbmV3IGluc2VydCBub2RlXHJcbiAgICB0aGlzLnVwZGF0ZU5ld09yZGVyRm9yTm9kZVNpYmxpbmdzKG5ld1NpYmxpbmdzKTtcclxuXHJcbiAgICB0aGlzLmRyb2dMb2NhdGlvbkV2ZW50LmVtaXQoe1xyXG4gICAgICBuZXdTaWJsaW5nczogbmV3U2libGluZ3MsXHJcbiAgICAgIGNoYW5nZWROb2RlOiBiYWNrdXBDaGFuZ2VkTm9kZSxcclxuICAgICAgb2xkRGF0YVNvdXJjZTogYmFja3VwRGF0YVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZU5ld09yZGVyRm9yTm9kZVNpYmxpbmdzKG5ld1NpYmxpbmdzOiBhbnlbXSkge1xyXG4gICAgbGV0IG5ld09yZGVyID0gMDtcclxuICAgIG5ld1NpYmxpbmdzLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGl0ZW0ub3JkZXIgPSBuZXdPcmRlcjtcclxuICAgICAgbmV3T3JkZXIgPSBuZXdPcmRlciArIDE7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRXhwZXJpbWVudGFsIC0gb3BlbmluZyB0cmVlIG5vZGVzIGFzIHlvdSBkcmFnIG92ZXIgdGhlbVxyXG4gICovXHJcbiAgZHJhZ1N0YXJ0KCkge1xyXG4gICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XHJcbiAgfVxyXG4gIGRyYWdFbmQoKSB7XHJcbiAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgfVxyXG4gIGRyYWdIb3Zlcihub2RlOiBGbGF0Tm9kZSkge1xyXG4gICAgdGhpcy5pc0hvdmVyID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmV4cGFuZFRpbWVvdXQpO1xyXG4gICAgICB0aGlzLmV4cGFuZFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcclxuICAgICAgfSwgdGhpcy5leHBhbmREZWxheSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRyYWdIb3ZlckVuZCgpIHtcclxuICAgIHRoaXMuaXNIb3ZlciA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuZHJhZ2dpbmcpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZXhwYW5kVGltZW91dCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIGZvciBwZXJzaXN0aW5nIHRoZSB0cmVlIGV4cGFuZCBzdGF0ZVxyXG4gICAqIGFmdGVyIGJlaW5nIHJlYnVpbHRcclxuICAgKi9cclxuXHJcbiAgcmVidWlsZFRyZWVGb3JEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5yZW1lbWJlckV4cGFuZGVkVHJlZU5vZGVzKHRoaXMudHJlZUNvbnRyb2wsIHRoaXMuZXhwYW5kZWROb2RlU2V0KTtcclxuICAgIHRoaXMudHJlZURhdGEgPSBkYXRhO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG4gICAgdGhpcy5mb3JnZXRNaXNzaW5nRXhwYW5kZWROb2Rlcyh0aGlzLnRyZWVDb250cm9sLCB0aGlzLmV4cGFuZGVkTm9kZVNldCk7XHJcbiAgICB0aGlzLmV4cGFuZE5vZGVzQnlJZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2RlcywgQXJyYXkuZnJvbSh0aGlzLmV4cGFuZGVkTm9kZVNldCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1lbWJlckV4cGFuZGVkVHJlZU5vZGVzKFxyXG4gICAgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZT4sXHJcbiAgICBleHBhbmRlZE5vZGVTZXQ6IFNldDxzdHJpbmc+XHJcbiAgKSB7XHJcbiAgICBpZiAodHJlZUNvbnRyb2wuZGF0YU5vZGVzKSB7XHJcbiAgICAgIHRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgICAgaWYgKHRyZWVDb250cm9sLmlzRXhwYW5kYWJsZShub2RlKSAmJiB0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpKSB7XHJcbiAgICAgICAgICAvLyBjYXB0dXJlIGxhdGVzdCBleHBhbmRlZCBzdGF0ZVxyXG4gICAgICAgICAgZXhwYW5kZWROb2RlU2V0LmFkZChub2RlLmlkLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcmdldE1pc3NpbmdFeHBhbmRlZE5vZGVzKFxyXG4gICAgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZT4sXHJcbiAgICBleHBhbmRlZE5vZGVTZXQ6IFNldDxzdHJpbmc+XHJcbiAgKSB7XHJcbiAgICBpZiAodHJlZUNvbnRyb2wuZGF0YU5vZGVzKSB7XHJcbiAgICAgIGV4cGFuZGVkTm9kZVNldC5mb3JFYWNoKChub2RlSWQpID0+IHtcclxuICAgICAgICAvLyBtYWludGFpbiBleHBhbmRlZCBub2RlIHN0YXRlXHJcbiAgICAgICAgaWYgKCF0cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZCgobikgPT4gbi5pZC50b1N0cmluZygpID09PSBub2RlSWQpKSB7XHJcbiAgICAgICAgICAvLyBpZiB0aGUgdHJlZSBkb2Vzbid0IGhhdmUgdGhlIHByZXZpb3VzIG5vZGUsIHJlbW92ZSBpdCBmcm9tIHRoZSBleHBhbmRlZCBsaXN0XHJcbiAgICAgICAgICBleHBhbmRlZE5vZGVTZXQuZGVsZXRlKG5vZGVJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhwYW5kTm9kZXNCeUlkKGZsYXROb2RlczogRmxhdE5vZGVbXSwgaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKCFmbGF0Tm9kZXMgfHwgZmxhdE5vZGVzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm47IH1cclxuICAgIGNvbnN0IGlkU2V0ID0gbmV3IFNldChpZHMpO1xyXG4gICAgcmV0dXJuIGZsYXROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIGlmIChpZFNldC5oYXMobm9kZS5pZC50b1N0cmluZygpKSkge1xyXG4gICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xyXG5cclxuICAgICAgICB0aGlzLmV4cGFuZGluZ05vZGVzLnB1c2gobm9kZSk7XHJcblxyXG4gICAgICAgIGxldCBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUobm9kZSk7XHJcbiAgICAgICAgd2hpbGUgKHBhcmVudCkge1xyXG4gICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQocGFyZW50KTtcclxuXHJcbiAgICAgICAgICB0aGlzLmV4cGFuZGluZ05vZGVzLnB1c2gocGFyZW50KTtcclxuXHJcbiAgICAgICAgICBwYXJlbnQgPSB0aGlzLmdldFBhcmVudE5vZGUocGFyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYXJlbnROb2RlKG5vZGU6IEZsYXROb2RlKTogRmxhdE5vZGUgfCBudWxsIHtcclxuICAgIGNvbnN0IGN1cnJlbnRMZXZlbCA9IG5vZGUubGV2ZWw7XHJcbiAgICBpZiAoY3VycmVudExldmVsIDwgMSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5pbmRleE9mKG5vZGUpIC0gMTtcclxuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpID49IDA7IGktLSkge1xyXG4gICAgICBjb25zdCBjdXJyZW50Tm9kZSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldO1xyXG4gICAgICBpZiAoY3VycmVudE5vZGUubGV2ZWwgPCBjdXJyZW50TGV2ZWwpIHtcclxuICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgb25LZXlEb3duTm9kZShldmVudDogYW55LCBub2RlKSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5vbkNsaWNrVG9nZ2xlTm9kZShub2RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tUb2dnbGVOb2RlKG5vZGUpIHtcclxuICAgIGlmICh0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkpIHtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQobm9kZSk7XHJcbiAgICAgIHRoaXMuX2FkZEV4cGFuZGluZ05vZGUobm9kZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmNvbGxhcHNlKG5vZGUpO1xyXG4gICAgICB0aGlzLl9yZW1vdmVFeHBhbmRpbmdOb2Rlcyhub2RlLmlkKTtcclxuICAgIH1cclxuICAgIHRoaXMubm9kZXNFeHBhbmQuZW1pdCh7IG5vZGUsIGlzRXhwYW5kOiB0aGlzLnRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRIb3ZlckZhdm9yaXRlKGlkKSB7XHJcbiAgICB0aGlzLmhvdmVyRmF2b3JpdGVOb2RlSWQgPSBpZDtcclxuICB9XHJcblxyXG4gIGV4cGFuZE5vZGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZXhwYW5kTm9kZXNMb29wKHRoaXMudHJlZURhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZXhwYW5kTm9kZXNMb29wKGRhdGE6IFRyZWVOb2RlW10pOiB2b2lkIHtcclxuICAgIGRhdGEuZm9yRWFjaChub2RlID0+IHtcclxuICAgICAgY29uc3QgZXhwYW5kaW5nTm9kZSA9IHRoaXMuZXhwYW5kaW5nTm9kZXMuc29tZSh4ID0+IHguaWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICBpZiAoZXhwYW5kaW5nTm9kZSkge1xyXG4gICAgICAgIHRoaXMub25DbGlja1RvZ2dsZU5vZGUoZXhwYW5kaW5nTm9kZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGRhdGEuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLmNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgdGhpcy5fZXhwYW5kTm9kZXNMb29wKGl0ZW0uY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZEV4cGFuZGluZ05vZGUobm9kZTogRmxhdE5vZGUpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5leHBhbmRpbmdOb2Rlcy5zb21lKHggPT4geC5pZCA9PT0gbm9kZS5pZCkpIHtcclxuICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlRXhwYW5kaW5nTm9kZXMobm9kZUlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMgPSB0aGlzLmV4cGFuZGluZ05vZGVzLmZpbHRlcih4ID0+IHguaWQgIT09IG5vZGVJZCk7XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,33 @@
1
+ import { DragDropModule } from '@angular/cdk/drag-drop';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { MatToolbarModule } from '@angular/material/toolbar';
7
+ import { MatTooltipModule } from '@angular/material/tooltip';
8
+ import { MatTreeModule } from '@angular/material/tree';
9
+ import { QMSButtonModule } from '../button/button.module';
10
+ import { QMSNavigationDrawerComponent } from './qms-navigation-drawer.component';
11
+ export class QMSNavigationDrawerModule {
12
+ }
13
+ QMSNavigationDrawerModule.decorators = [
14
+ { type: NgModule, args: [{
15
+ declarations: [
16
+ QMSNavigationDrawerComponent
17
+ ],
18
+ imports: [
19
+ CommonModule,
20
+ MatIconModule,
21
+ MatToolbarModule,
22
+ MatButtonModule,
23
+ QMSButtonModule,
24
+ MatTooltipModule,
25
+ DragDropModule,
26
+ MatTreeModule
27
+ ],
28
+ exports: [
29
+ QMSNavigationDrawerComponent
30
+ ]
31
+ },] }
32
+ ];
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdmlnYXRpb24tZHJhd2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtbmF2aWdhdGlvbi1kcmF3ZXIvcW1zLW5hdmlnYXRpb24tZHJhd2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBc0JqRixNQUFNLE9BQU8seUJBQXlCOzs7WUFyQnJDLFFBQVEsU0FDUDtnQkFDRSxZQUFZLEVBQUU7b0JBQ1osNEJBQTRCO2lCQUM3QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixhQUFhO29CQUNiLGdCQUFnQjtvQkFDaEIsZUFBZTtvQkFDZixlQUFlO29CQUNmLGdCQUFnQjtvQkFDaEIsY0FBYztvQkFDZCxhQUFhO2lCQUNkO2dCQUNELE9BQU8sRUFBRTtvQkFDUCw0QkFBNEI7aUJBQzdCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFRvb2xiYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRUcmVlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcbmltcG9ydCB7IFFNU0J1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcclxuaW1wb3J0IHsgUU1TTmF2aWdhdGlvbkRyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vcW1zLW5hdmlnYXRpb24tZHJhd2VyLmNvbXBvbmVudCc7XHJcbkBOZ01vZHVsZShcclxuICB7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgUU1TTmF2aWdhdGlvbkRyYXdlckNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgICBNYXRUb29sYmFyTW9kdWxlLFxyXG4gICAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICAgIFFNU0J1dHRvbk1vZHVsZSxcclxuICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICAgIE1hdFRyZWVNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgIFFNU05hdmlnYXRpb25EcmF3ZXJDb21wb25lbnRcclxuICAgIF1cclxuICB9XHJcbilcclxuXHJcbmV4cG9ydCBjbGFzcyBRTVNOYXZpZ2F0aW9uRHJhd2VyTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from "./qms-status-dropdown.module";
2
+ export * from "./qms-status-dropdown.component";
3
+ export * from "./qms-status-dropdown.model";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLXN0YXR1cy1kcm9wZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3Ftcy1zdGF0dXMtZHJvcGRvd24ubW9kdWxlXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3Ftcy1zdGF0dXMtZHJvcGRvd24uY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL3Ftcy1zdGF0dXMtZHJvcGRvd24ubW9kZWxcIjsiXX0=
@@ -0,0 +1,33 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ const QmsStatusDropdownClassTypeMapping = {
3
+ 1: 'light',
4
+ 2: 'warning',
5
+ 3: 'success',
6
+ 4: 'danger'
7
+ };
8
+ export class QmsStatusDropdownComponent {
9
+ constructor() {
10
+ this.options = [];
11
+ this.valueChange = new EventEmitter();
12
+ }
13
+ getClassType(type) {
14
+ return QmsStatusDropdownClassTypeMapping[type];
15
+ }
16
+ onModelChange() {
17
+ this.valueChange.emit(this.value);
18
+ }
19
+ }
20
+ QmsStatusDropdownComponent.decorators = [
21
+ { type: Component, args: [{
22
+ selector: 'qms-status-dropdown',
23
+ template: "<div id=\"qms-status-dropdown-container\" class=\"qms-status-dropdown-container {{ getClassType(value) }}\">\r\n <mat-form-field class=\"material-custom-multiselect height-40\" [style.width]=\"width\">\r\n <mat-select [(ngModel)]=\"value\" (ngModelChange)=\"onModelChange()\">\r\n <ng-container *ngIf=\"options\">\r\n <mat-option *ngFor=\"let option of options\" [value]=\"option.type\">\r\n <label class=\"qms-label qms-label-{{ getClassType(option.type) }}\">{{ option.text }}</label>\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>",
24
+ styles: [".qms-status-dropdown-container ::ng-deep .material-custom-multiselect{height:40px}.qms-status-dropdown-container ::ng-deep .material-custom-multiselect.mat-focused{outline:1px solid #1954a9;border-radius:2px}.qms-status-dropdown-container ::ng-deep .material-custom-multiselect .mat-form-field-flex{border-radius:2px;padding:0 17.5px 0 16px;width:100%;height:40px}.qms-status-dropdown-container ::ng-deep .material-custom-multiselect .mat-form-field-flex .mat-select-min-line{font-family:Open Sans;font-size:14px;font-weight:600;line-height:16px;letter-spacing:1px}.qms-status-dropdown-container ::ng-deep .material-custom-multiselect .mat-form-field-infix{padding-top:0;border-top:10px solid transparent}.qms-status-dropdown-container ::ng-deep .material-custom-multiselect .mat-form-field-infix .mat-select-value-text{line-height:16px}.qms-status-dropdown-container ::ng-deep .material-custom-multiselect .mat-form-field-wrapper .mat-form-field-underline{display:none}.qms-status-dropdown-container.warning ::ng-deep .material-custom-multiselect .mat-form-field-flex{background-color:#e4cf53}.qms-status-dropdown-container.warning ::ng-deep .material-custom-multiselect .mat-form-field-flex .mat-select-arrow-wrapper .mat-select-arrow{color:rgba(0,0,0,.6)}.qms-status-dropdown-container.warning ::ng-deep .material-custom-multiselect .mat-select-value{color:#323232}.qms-status-dropdown-container.warning ::ng-deep .material-custom-multiselect .mat-select-arrow{color:#323232}.qms-status-dropdown-container.light ::ng-deep .material-custom-multiselect .mat-form-field-flex{background-color:rgba(0,0,0,.1)}.qms-status-dropdown-container.light ::ng-deep .material-custom-multiselect .mat-form-field-flex .mat-select-arrow-wrapper .mat-select-arrow{color:rgba(0,0,0,.6)}.qms-status-dropdown-container.light ::ng-deep .material-custom-multiselect .mat-select-value{color:#323232}.qms-status-dropdown-container.light ::ng-deep .material-custom-multiselect .mat-select-arrow{color:#323232}.qms-status-dropdown-container.danger ::ng-deep .material-custom-multiselect .mat-form-field-flex{background-color:#9e360f}.qms-status-dropdown-container.danger ::ng-deep .material-custom-multiselect .mat-form-field-flex .mat-select-arrow-wrapper .mat-select-arrow{color:hsla(0,0%,100%,.6)}.qms-status-dropdown-container.danger ::ng-deep .material-custom-multiselect .mat-select-value{color:#fff}.qms-status-dropdown-container.danger ::ng-deep .material-custom-multiselect .mat-select-arrow{color:#fff}.qms-status-dropdown-container.success ::ng-deep .material-custom-multiselect .mat-form-field-flex{background-color:#005832}.qms-status-dropdown-container.success ::ng-deep .material-custom-multiselect .mat-select-value{color:#fff}.qms-status-dropdown-container.success ::ng-deep .material-custom-multiselect .mat-select-arrow{color:#fff}.qms-status-dropdown-container.success ::ng-deep .material-custom-multiselect .mat-select-arrow-wrapper .mat-select-arrow{color:hsla(0,0%,100%,.6)}.qms-status-dropdown-container ::ng-deep mat-select .mat-select-value{font-size:14px;line-height:16px;color:#323232;font-weight:500}.qms-status-dropdown-container ::ng-deep mat-select .mat-select-arrow-wrapper{padding-top:17.5px}.qms-status-dropdown-container ::ng-deep mat-select .mat-select-arrow-wrapper .mat-select-arrow{border-top:4px solid}.qms-status-dropdown-container ::ng-deep mat-option .mat-option-custom .mat-pseudo-checkbox-checked:after{top:3px;width:11px;height:5px;border-left:3px solid}"]
25
+ },] }
26
+ ];
27
+ QmsStatusDropdownComponent.propDecorators = {
28
+ options: [{ type: Input }],
29
+ value: [{ type: Input }],
30
+ width: [{ type: Input }],
31
+ valueChange: [{ type: Output }]
32
+ };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXN0YXR1cy1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLXN0YXR1cy1kcm9wZG93bi9xbXMtc3RhdHVzLWRyb3Bkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZFLE1BQU0saUNBQWlDLEdBQUc7SUFDdEMsQ0FBQyxFQUFFLE9BQU87SUFDVixDQUFDLEVBQUUsU0FBUztJQUNaLENBQUMsRUFBRSxTQUFTO0lBQ1osQ0FBQyxFQUFFLFFBQVE7Q0FDZCxDQUFBO0FBT0QsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU1hLFlBQU8sR0FBOEIsRUFBRSxDQUFDO1FBSXZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFTdEUsQ0FBQztJQVBHLFlBQVksQ0FBQyxJQUEyQjtRQUNwQyxPQUFPLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OztZQWxCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IscXFCQUFtRDs7YUFFdEQ7OztzQkFFSSxLQUFLO29CQUNMLEtBQUs7b0JBQ0wsS0FBSzswQkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUW1zU3RhdHVzRHJvcGRvd25PcHRpb24sIFFtc1N0YXR1c0Ryb3Bkb3duVHlwZSB9IGZyb20gJy4vcW1zLXN0YXR1cy1kcm9wZG93bi5tb2RlbCc7XHJcblxyXG5jb25zdCBRbXNTdGF0dXNEcm9wZG93bkNsYXNzVHlwZU1hcHBpbmcgPSB7XHJcbiAgICAxOiAnbGlnaHQnLFxyXG4gICAgMjogJ3dhcm5pbmcnLFxyXG4gICAgMzogJ3N1Y2Nlc3MnLFxyXG4gICAgNDogJ2RhbmdlcidcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Ftcy1zdGF0dXMtZHJvcGRvd24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1zdGF0dXMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcW1zLXN0YXR1cy1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRbXNTdGF0dXNEcm9wZG93bkNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBvcHRpb25zOiBRbXNTdGF0dXNEcm9wZG93bk9wdGlvbltdID0gW107XHJcbiAgICBASW5wdXQoKSB2YWx1ZTogUW1zU3RhdHVzRHJvcGRvd25UeXBlO1xyXG4gICAgQElucHV0KCkgd2lkdGg6IHN0cmluZztcclxuXHJcbiAgICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFFtc1N0YXR1c0Ryb3Bkb3duVHlwZT4oKTtcclxuXHJcbiAgICBnZXRDbGFzc1R5cGUodHlwZTogUW1zU3RhdHVzRHJvcGRvd25UeXBlKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gUW1zU3RhdHVzRHJvcGRvd25DbGFzc1R5cGVNYXBwaW5nW3R5cGVdO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW9kZWxDaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export var QmsStatusDropdownType;
2
+ (function (QmsStatusDropdownType) {
3
+ QmsStatusDropdownType[QmsStatusDropdownType["Light"] = 1] = "Light";
4
+ QmsStatusDropdownType[QmsStatusDropdownType["Warning"] = 2] = "Warning";
5
+ QmsStatusDropdownType[QmsStatusDropdownType["Success"] = 3] = "Success";
6
+ QmsStatusDropdownType[QmsStatusDropdownType["Danger"] = 4] = "Danger";
7
+ })(QmsStatusDropdownType || (QmsStatusDropdownType = {}));
8
+ export class QmsStatusDropdownOption {
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXN0YXR1cy1kcm9wZG93bi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtc3RhdHVzLWRyb3Bkb3duL3Ftcy1zdGF0dXMtZHJvcGRvd24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUM3QixtRUFBUyxDQUFBO0lBQ1QsdUVBQVcsQ0FBQTtJQUNYLHVFQUFXLENBQUE7SUFDWCxxRUFBVSxDQUFBO0FBQ2QsQ0FBQyxFQUxXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFLaEM7QUFFRCxNQUFNLE9BQU8sdUJBQXVCO0NBR25DIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUW1zU3RhdHVzRHJvcGRvd25UeXBlIHtcclxuICAgIExpZ2h0ID0gMSxcclxuICAgIFdhcm5pbmcgPSAyLFxyXG4gICAgU3VjY2VzcyA9IDMsXHJcbiAgICBEYW5nZXIgPSA0XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBRbXNTdGF0dXNEcm9wZG93bk9wdGlvbiB7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICB0eXBlOiBRbXNTdGF0dXNEcm9wZG93blR5cGU7XHJcbn0iXX0=
@@ -0,0 +1,28 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { QmsStatusDropdownComponent } from './qms-status-dropdown.component';
4
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { MatSelectModule } from '@angular/material/select';
6
+ import { MatOptionModule } from '@angular/material/core';
7
+ import { MatFormFieldModule } from '@angular/material/form-field';
8
+ export class QmsStatusDropdownModule {
9
+ }
10
+ QmsStatusDropdownModule.decorators = [
11
+ { type: NgModule, args: [{
12
+ declarations: [
13
+ QmsStatusDropdownComponent
14
+ ],
15
+ imports: [
16
+ CommonModule,
17
+ FormsModule,
18
+ ReactiveFormsModule,
19
+ MatSelectModule,
20
+ MatOptionModule,
21
+ MatFormFieldModule
22
+ ],
23
+ exports: [
24
+ QmsStatusDropdownComponent
25
+ ]
26
+ },] }
27
+ ];
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXN0YXR1cy1kcm9wZG93bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLXN0YXR1cy1kcm9wZG93bi9xbXMtc3RhdHVzLWRyb3Bkb3duLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQWtCbEUsTUFBTSxPQUFPLHVCQUF1Qjs7O1lBaEJuQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLDBCQUEwQjtpQkFDM0I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixrQkFBa0I7aUJBQ25CO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7aUJBQzNCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBRbXNTdGF0dXNEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vcW1zLXN0YXR1cy1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFFtc1N0YXR1c0Ryb3Bkb3duQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFFtc1N0YXR1c0Ryb3Bkb3duQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUW1zU3RhdHVzRHJvcGRvd25Nb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from "./public_api";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLXN0ZXBwZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9wdWJsaWNfYXBpXCI7Il19
@@ -0,0 +1,9 @@
1
+ export class StepModel {
2
+ constructor(id, name, disabled, selected) {
3
+ this.id = id;
4
+ this.disabled = disabled;
5
+ this.name = name;
6
+ this.selected = selected;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLXN0ZXBwZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLXN0ZXBwZXIvbW9kZWxzL3Ftcy1zdGVwcGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxTQUFTO0lBS3BCLFlBQVksRUFBVSxFQUFFLElBQVksRUFBRSxRQUFpQixFQUFFLFFBQWlCO1FBQ3RFLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0ZXBNb2RlbCB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nLCBkaXNhYmxlZDogYm9vbGVhbiwgc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgdGhpcy5pZCA9IGlkO1xyXG4gICAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcclxuICB9XHJcbn0iXX0=
@@ -0,0 +1,3 @@
1
+ export * from "./qms-stepper.module";
2
+ export * from "./qms-stepper.component";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtc3RlcHBlci9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3Ftcy1zdGVwcGVyLm1vZHVsZVwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9xbXMtc3RlcHBlci5jb21wb25lbnRcIjsiXX0=