qms-angular 1.0.68 → 1.0.72

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 (325) hide show
  1. package/README.md +21 -2
  2. package/bundles/qms-angular.umd.js +2269 -551
  3. package/bundles/qms-angular.umd.js.map +1 -1
  4. package/esm2015/lib/components/badges/qms-badges.component.js +5 -4
  5. package/esm2015/lib/components/banner/index.js +2 -0
  6. package/esm2015/lib/components/banner/public_api.js +8 -0
  7. package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +2 -2
  8. package/esm2015/lib/components/button/button.js +6 -6
  9. package/esm2015/lib/components/comment/comment-log.model.js +2 -0
  10. package/esm2015/lib/components/comment/comment.js +6 -2
  11. package/esm2015/lib/components/qms-app-bar/index.js +2 -0
  12. package/esm2015/lib/components/qms-app-bar/models/qms-app-bar.model.js +10 -0
  13. package/esm2015/lib/components/qms-app-bar/public_api.js +3 -0
  14. package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +2 -2
  15. package/esm2015/lib/components/qms-navigation-drawer/index.js +2 -0
  16. package/esm2015/lib/components/qms-navigation-drawer/models/qms-navigation-drawer.model.js +3 -0
  17. package/esm2015/lib/components/qms-navigation-drawer/public_api.js +3 -0
  18. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.js +350 -0
  19. package/esm2015/lib/components/qms-navigation-drawer/qms-navigation-drawer.module.js +33 -0
  20. package/esm2015/lib/components/qms-paginator/index.js +2 -0
  21. package/esm2015/lib/components/qms-paginator/public_api.js +3 -0
  22. package/esm2015/lib/components/qms-paginator/qms-paginator.component.js +173 -0
  23. package/esm2015/lib/components/qms-paginator/qms-paginator.module.js +34 -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 +3 -3
  32. package/esm2015/lib/components/range-slider/directives/range-slider-lockup.directive.js +20 -0
  33. package/esm2015/lib/components/range-slider/directives/range-slider.directive.js +34 -0
  34. package/esm2015/lib/components/range-slider/index.js +2 -0
  35. package/esm2015/lib/components/range-slider/public-api.js +4 -0
  36. package/esm2015/lib/components/range-slider/range-slider.module.js +22 -0
  37. package/esm2015/lib/components/related/popup/related-popup.component.js +2 -2
  38. package/esm2015/lib/components/select-include-children/model/select-popup-data.model.js +2 -1
  39. package/esm2015/lib/components/select-include-children/select-include-children.component.js +45 -45
  40. package/esm2015/lib/components/select-one/select-one.component.js +50 -3
  41. package/esm2015/lib/components/tab/directive/tab-group-advanced.directive.js +30 -0
  42. package/esm2015/lib/components/tab/directive/tab-group.directive.js +20 -0
  43. package/esm2015/lib/components/tab/directive/tab-label.directive.js +20 -0
  44. package/esm2015/lib/components/tab/index.js +2 -0
  45. package/esm2015/lib/components/tab/public-api.js +5 -0
  46. package/esm2015/lib/components/tab/tab.module.js +25 -0
  47. package/esm2015/lib/components/tree/tree.component.js +13 -10
  48. package/esm2015/lib/components/treeNew/tree.component.js +6 -3
  49. package/esm2015/lib/directives/table/table.directive.js +201 -0
  50. package/esm2015/lib/model/en.js +21 -3
  51. package/esm2015/lib/model/no.js +20 -2
  52. package/esm2015/lib/qms-angular.module.js +17 -20
  53. package/esm2015/lib/qms-ckeditor-components/common/bpmn/inspector.function.js +68 -16
  54. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +5 -1
  55. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +10 -1
  56. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.js +7 -0
  57. package/esm2015/lib/qms-ckeditor-components/common/enums/document-type.enum.js +2 -1
  58. package/esm2015/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.js +8 -0
  59. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
  60. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.js +1 -1
  61. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.js +9 -0
  62. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.js +9 -0
  63. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +3 -0
  64. package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +1 -1
  65. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +545 -34
  66. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +46 -18
  67. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.js +1 -46
  68. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +1 -1
  69. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +1 -1
  70. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +1 -1
  71. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +1 -1
  72. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +1 -1
  73. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +1 -1
  74. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +1 -1
  75. package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.js +8 -0
  76. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +26 -20
  77. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +4 -2
  78. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +58 -20
  79. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.js +26 -0
  80. package/esm2015/public-api.js +17 -20
  81. package/esm2015/qms-angular.js +2 -1
  82. package/fesm2015/qms-angular.js +1987 -415
  83. package/fesm2015/qms-angular.js.map +1 -1
  84. package/lib/components/badges/qms-badges.component.d.ts +1 -1
  85. package/lib/components/banner/index.d.ts +1 -0
  86. package/lib/components/banner/public_api.d.ts +7 -0
  87. package/lib/components/banner/qms-banner/qms-banner.component.d.ts +2 -2
  88. package/lib/components/button/button.d.ts +1 -1
  89. package/lib/components/comment/comment-log.model.d.ts +10 -0
  90. package/lib/components/comment/comment.d.ts +5 -11
  91. package/lib/components/qms-app-bar/index.d.ts +1 -0
  92. package/lib/components/qms-app-bar/{qms-app-bar.model.d.ts → models/qms-app-bar.model.d.ts} +0 -0
  93. package/lib/components/qms-app-bar/public_api.d.ts +2 -0
  94. package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +1 -1
  95. package/lib/components/qms-navigation-drawer/index.d.ts +1 -0
  96. package/lib/components/qms-navigation-drawer/models/qms-navigation-drawer.model.d.ts +19 -0
  97. package/lib/components/qms-navigation-drawer/public_api.d.ts +2 -0
  98. package/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.d.ts +106 -0
  99. package/lib/components/qms-navigation-drawer/qms-navigation-drawer.module.d.ts +2 -0
  100. package/lib/components/qms-paginator/index.d.ts +1 -0
  101. package/lib/components/qms-paginator/public_api.d.ts +2 -0
  102. package/lib/components/qms-paginator/qms-paginator.component.d.ts +51 -0
  103. package/lib/components/qms-paginator/qms-paginator.module.d.ts +2 -0
  104. package/lib/components/qms-status-dropdown/index.d.ts +3 -0
  105. package/lib/components/qms-status-dropdown/qms-status-dropdown.component.d.ts +10 -0
  106. package/lib/components/qms-status-dropdown/qms-status-dropdown.model.d.ts +10 -0
  107. package/lib/components/qms-status-dropdown/qms-status-dropdown.module.d.ts +2 -0
  108. package/lib/components/qms-stepper/index.d.ts +1 -0
  109. package/lib/components/qms-stepper/{qms-stepper.model.d.ts → models/qms-stepper.model.d.ts} +0 -0
  110. package/lib/components/qms-stepper/public_api.d.ts +2 -0
  111. package/lib/components/qms-stepper/qms-stepper.component.d.ts +1 -1
  112. package/lib/{directives/range-slider → components/range-slider/directives}/range-slider-lockup.directive.d.ts +0 -0
  113. package/lib/{directives/range-slider → components/range-slider/directives}/range-slider.directive.d.ts +0 -0
  114. package/lib/components/range-slider/index.d.ts +1 -0
  115. package/lib/components/range-slider/public-api.d.ts +3 -0
  116. package/lib/components/range-slider/range-slider.module.d.ts +2 -0
  117. package/lib/components/select-include-children/model/select-popup-data.model.d.ts +1 -0
  118. package/lib/components/select-include-children/select-include-children.component.d.ts +3 -2
  119. package/lib/components/select-one/select-one.component.d.ts +4 -0
  120. package/lib/{directives/tab → components/tab/directive}/tab-group-advanced.directive.d.ts +0 -0
  121. package/lib/{directives/tab → components/tab/directive}/tab-group.directive.d.ts +0 -0
  122. package/lib/{directives/tab → components/tab/directive}/tab-label.directive.d.ts +0 -0
  123. package/lib/components/tab/index.d.ts +1 -0
  124. package/lib/components/tab/public-api.d.ts +4 -0
  125. package/lib/components/tab/tab.module.d.ts +2 -0
  126. package/lib/directives/table/table.directive.d.ts +50 -0
  127. package/lib/model/en.d.ts +18 -0
  128. package/lib/model/no.d.ts +18 -0
  129. package/lib/qms-ckeditor-components/common/bpmn/inspector.function.d.ts +28 -0
  130. package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +4 -0
  131. package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +9 -0
  132. package/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.d.ts +6 -0
  133. package/lib/qms-ckeditor-components/common/enums/document-type.enum.d.ts +1 -0
  134. package/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.d.ts +6 -0
  135. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-data.model.d.ts +1 -0
  136. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.d.ts +7 -0
  137. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.d.ts +7 -0
  138. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +5 -0
  139. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +85 -4
  140. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +8 -2
  141. package/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.d.ts +7 -0
  142. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +2 -4
  143. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +1 -0
  144. package/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.d.ts +10 -0
  145. package/lib.theme.scss +2 -0
  146. package/package.json +4 -2
  147. package/public-api.d.ts +13 -19
  148. package/qms-angular.d.ts +1 -0
  149. package/qms-angular.metadata.json +1 -1
  150. package/src/assets/fonts/icomoon.eot +0 -0
  151. package/src/assets/fonts/icomoon.svg +203 -0
  152. package/src/assets/fonts/icomoon.ttf +0 -0
  153. package/src/assets/fonts/icomoon.woff +0 -0
  154. package/src/assets/jointjs/js/rappid.js +55919 -55836
  155. package/src/assets/jointjs/scss/bpmn.scss +2 -1
  156. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +2 -2
  157. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  158. package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
  159. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
  160. package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
  161. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
  162. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
  163. package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
  164. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
  165. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
  166. package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
  167. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
  168. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
  169. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
  170. package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
  171. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
  172. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
  173. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
  174. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
  175. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
  176. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
  177. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
  178. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
  179. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
  180. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
  181. package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
  182. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
  183. package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
  184. package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
  185. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
  186. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
  187. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
  188. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
  189. package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
  190. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
  191. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
  192. package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
  193. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
  194. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
  195. package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
  196. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
  197. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
  198. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
  199. package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
  200. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
  201. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
  202. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
  203. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
  204. package/src/assets/qms-ckeditor-plugin/package-lock.json +38 -12178
  205. package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +6 -0
  206. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +31 -6
  207. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +7 -1
  208. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorUtil.js +29 -7
  209. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/qmsCKEditorFullscreenPlugin.js +23 -12
  210. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/converters.js +93 -92
  211. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemap.js +4 -4
  212. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapcommand.js +92 -0
  213. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapdialogcommand.js +59 -0
  214. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapediting.js +92 -87
  215. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +13 -14
  216. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +25 -24
  217. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +40 -49
  218. package/src/assets/qms-ckeditor-plugin/src/themes/icons/fullscreen_exit.svg +1 -0
  219. package/src/assets/svg-icons/acutely-toxic.svg +19 -0
  220. package/src/assets/svg-icons/add-column.svg +4 -0
  221. package/src/assets/svg-icons/add-tooltip.svg +6 -0
  222. package/src/assets/svg-icons/admin.svg +3 -0
  223. package/src/assets/svg-icons/annual-cycle.svg +10 -0
  224. package/src/assets/svg-icons/assignment-repete.svg +4 -0
  225. package/src/assets/svg-icons/barrier-add.svg +7 -0
  226. package/src/assets/svg-icons/barrier-edit.svg +7 -0
  227. package/src/assets/svg-icons/barrier-view.svg +3 -0
  228. package/src/assets/svg-icons/button-group.svg +5 -0
  229. package/src/assets/svg-icons/checklist.svg +8 -0
  230. package/src/assets/svg-icons/chemical-manager.svg +5 -0
  231. package/src/assets/svg-icons/chronic-health-hazard.svg +17 -0
  232. package/src/assets/svg-icons/contingency.svg +3 -0
  233. package/src/assets/svg-icons/corrosive.svg +23 -0
  234. package/src/assets/svg-icons/dashboard.svg +3 -0
  235. package/src/assets/svg-icons/database-sds.svg +4 -0
  236. package/src/assets/svg-icons/department-document.svg +4 -0
  237. package/src/assets/svg-icons/department-folder-closed.svg +4 -0
  238. package/src/assets/svg-icons/department-folder-open.svg +4 -0
  239. package/src/assets/svg-icons/description-add.svg +6 -0
  240. package/src/assets/svg-icons/description-edit.svg +6 -0
  241. package/src/assets/svg-icons/description-view.svg +3 -0
  242. package/src/assets/svg-icons/deviation.svg +3 -0
  243. package/src/assets/svg-icons/document-read.svg +5 -0
  244. package/src/assets/svg-icons/draft.svg +7 -0
  245. package/src/assets/svg-icons/dropdown-folder.svg +4 -0
  246. package/src/assets/svg-icons/enterprise-document.svg +4 -0
  247. package/src/assets/svg-icons/enterprise-folder-closed.svg +4 -0
  248. package/src/assets/svg-icons/enterprise-folder-open.svg +4 -0
  249. package/src/assets/svg-icons/expired-off.svg +3 -0
  250. package/src/assets/svg-icons/expired-on.svg +5 -0
  251. package/src/assets/svg-icons/explosive.svg +48 -0
  252. package/src/assets/svg-icons/file-excel.svg +3 -0
  253. package/src/assets/svg-icons/file-pdf-verified.svg +5 -0
  254. package/src/assets/svg-icons/file-pdf.svg +3 -0
  255. package/src/assets/svg-icons/file-word.svg +3 -0
  256. package/src/assets/svg-icons/filter-alt.svg +3 -0
  257. package/src/assets/svg-icons/flammable.svg +5 -0
  258. package/src/assets/svg-icons/flowchart-BPMN.svg +9 -0
  259. package/src/assets/svg-icons/folder-closed.svg +3 -0
  260. package/src/assets/svg-icons/folder-open.svg +3 -0
  261. package/src/assets/svg-icons/gas-under-pressure.svg +4 -0
  262. package/src/assets/svg-icons/health-hazard.svg +4 -0
  263. package/src/assets/svg-icons/keyboard_arrow_down.svg +1 -0
  264. package/src/assets/svg-icons/keyboard_arrow_up.svg +1 -0
  265. package/src/assets/svg-icons/line-break.svg +7 -0
  266. package/src/assets/svg-icons/local-document.svg +4 -0
  267. package/src/assets/svg-icons/local-folder-closed.svg +4 -0
  268. package/src/assets/svg-icons/local-folder-open.svg +4 -0
  269. package/src/assets/svg-icons/location.svg +3 -0
  270. package/src/assets/svg-icons/measure-add.svg +5 -0
  271. package/src/assets/svg-icons/measure-edit.svg +5 -0
  272. package/src/assets/svg-icons/measure-view.svg +3 -0
  273. package/src/assets/svg-icons/messages.svg +3 -0
  274. package/src/assets/svg-icons/monitoring.svg +5 -0
  275. package/src/assets/svg-icons/move.svg +3 -0
  276. package/src/assets/svg-icons/oxidizing.svg +6 -0
  277. package/src/assets/svg-icons/process-area-closed.svg +4 -0
  278. package/src/assets/svg-icons/process-area-open.svg +4 -0
  279. package/src/assets/svg-icons/process-linked.svg +4 -0
  280. package/src/assets/svg-icons/process.svg +3 -0
  281. package/src/assets/svg-icons/regional-document.svg +4 -0
  282. package/src/assets/svg-icons/regional-folder-closed.svg +4 -0
  283. package/src/assets/svg-icons/regional-folder-open.svg +4 -0
  284. package/src/assets/svg-icons/risk.svg +3 -0
  285. package/src/assets/svg-icons/search-in-file.svg +4 -0
  286. package/src/assets/svg-icons/sort-ascending.svg +3 -0
  287. package/src/assets/svg-icons/sort-descending.svg +3 -0
  288. package/src/assets/svg-icons/subscript.svg +4 -0
  289. package/src/assets/svg-icons/superscript.svg +4 -0
  290. package/src/assets/svg-icons/syncronice-favorites.svg +5 -0
  291. package/src/assets/svg-icons/system-settings.svg +3 -0
  292. package/src/assets/svg-icons/view-three-outlined.svg +5 -0
  293. package/src/assets/svg-icons/wiris.svg +9 -0
  294. package/src/assets/svg-icons/workplace-safety.svg +5 -0
  295. package/src/lib/components/badges/_qms-badges-base.scss +8 -7
  296. package/src/lib/components/badges/qms-badges.component.scss +1 -1
  297. package/src/lib/components/button/button-icon.scss +5 -1
  298. package/src/lib/components/qms-app-bar/qms-app-bar.component.scss +10 -0
  299. package/src/lib/components/qms-navigation-drawer/qms-navigation-drawer.component.scss +182 -0
  300. package/src/lib/components/qms-paginator/qms-paginator.component.scss +128 -0
  301. package/src/lib/components/qms-status-dropdown/qms-status-dropdown.component.scss +152 -0
  302. package/src/lib/components/tree/tree.component.scss +3 -1
  303. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +69 -17
  304. package/src/lib/qms-ckeditor-components/qms-ckeditor.component.scss +24 -0
  305. package/src/lib/qms-ckeditor-components/styles/_modules.scss +9 -1
  306. package/src/themes/_qms-icon-font.scss +894 -0
  307. package/src/themes/core/_colors.scss +1 -0
  308. package/src/themes/core/_qms-label.scss +32 -0
  309. package/src/themes/core/_range-slider.scss +60 -35
  310. package/src/themes/core/_tab.scss +42 -1
  311. package/src/themes/core/_table.scss +55 -0
  312. package/esm2015/lib/components/qms-app-bar/qms-app-bar.model.js +0 -10
  313. package/esm2015/lib/components/qms-stepper/qms-stepper.model.js +0 -9
  314. package/esm2015/lib/components/test-only/test-only.component.js +0 -17
  315. package/esm2015/lib/directives/range-slider/range-slider-lockup.directive.js +0 -20
  316. package/esm2015/lib/directives/range-slider/range-slider.directive.js +0 -36
  317. package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +0 -30
  318. package/esm2015/lib/directives/tab/tab-group.directive.js +0 -20
  319. package/esm2015/lib/directives/tab/tab-label.directive.js +0 -20
  320. package/lib/components/test-only/test-only.component.d.ts +0 -3
  321. package/src/assets/jointjs/scss/dist/bpmn.css +0 -854
  322. package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +0 -173
  323. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/dist/qmsCKEditorFullscreenPlugin.dev.js +0 -87
  324. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +0 -128
  325. package/src/lib/components/test-only/test-only.component.scss +0 -10
@@ -0,0 +1,350 @@
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.activeNode = '';
29
+ this.hasChild = (_, node) => node.expandable;
30
+ this.dataSource.data = this.treeData;
31
+ }
32
+ _transformer(node, level) {
33
+ return {
34
+ expandable: !!node.children && node.children.length > 0,
35
+ name: node.name,
36
+ level,
37
+ id: node.id,
38
+ isReadOnly: node.isReadOnly,
39
+ favorite: node.favorite,
40
+ disabled: node.disabled
41
+ };
42
+ }
43
+ ngOnInit() {
44
+ this.openNodes.forEach(item => {
45
+ this.treeControl.expand(this.treeControl.dataNodes.find(p => p.id.toString() === item));
46
+ });
47
+ }
48
+ ngOnChanges(changes) {
49
+ this.dataSource.data = this.treeData;
50
+ if (this.filterText) {
51
+ this.expandNodeSearched(this.treeData, this.filterText);
52
+ }
53
+ if (changes.openNodes) {
54
+ this.openNodes.forEach(item => {
55
+ this.treeControl.expand(this.treeControl.dataNodes.find(p => p.id.toString() === item));
56
+ });
57
+ }
58
+ }
59
+ expandNodeSearched(nodesOrigin, txtSearch) {
60
+ nodesOrigin.forEach(item => {
61
+ if (!item.name.toLocaleLowerCase().includes(txtSearch.toLocaleLowerCase())) {
62
+ this.treeControl.expand(this.treeControl.dataNodes.find(p => p.id.toString() === item.id));
63
+ if (item.children.length > 0) {
64
+ this.expandNodeSearched(item.children, txtSearch);
65
+ }
66
+ }
67
+ });
68
+ }
69
+ onClickNode(nodeId) {
70
+ this.activeNode = nodeId;
71
+ this.onClickNodeEvent.emit(nodeId);
72
+ }
73
+ onOver(node) {
74
+ this.hoverNode = node;
75
+ }
76
+ addNewNode(nodeId, event) {
77
+ event.stopPropagation();
78
+ event.preventDefault();
79
+ this.addNodeEvent.emit(nodeId);
80
+ }
81
+ addFavoriteNode(nodeId, event) {
82
+ event.stopPropagation();
83
+ event.preventDefault();
84
+ this.addFavoriteEvent.emit(nodeId);
85
+ }
86
+ ngOnDestroy() {
87
+ if (this.activeNodeLocation) {
88
+ this.activeNodeLocation.unsubscribe();
89
+ }
90
+ }
91
+ /**
92
+ * This constructs an array of nodes that matches the DOM,
93
+ * and calls rememberExpandedTreeNodes to persist expand state
94
+ */
95
+ visibleNodes() {
96
+ this.rememberExpandedTreeNodes(this.treeControl, this.expandedNodeSet);
97
+ const result = [];
98
+ function addExpandedChildren(node, expanded) {
99
+ result.push(node);
100
+ if (expanded.has(node.id)) {
101
+ node.children.map(child => addExpandedChildren(child, expanded));
102
+ }
103
+ }
104
+ this.dataSource.data.forEach(node => {
105
+ addExpandedChildren(node, this.expandedNodeSet);
106
+ });
107
+ return result;
108
+ }
109
+ /**
110
+ * Handle the drop - here we rearrange the data based on the drop event,
111
+ * then rebuild the tree.
112
+ * */
113
+ drop(event) {
114
+ // Save data for backup
115
+ const node = event.item.data;
116
+ const backupChangedNode = JSON.parse(JSON.stringify(node));
117
+ const backupData = JSON.parse(JSON.stringify(this.dataSource.data));
118
+ // ignore drops outside of the tree
119
+ if (!event.isPointerOverContainer) {
120
+ return;
121
+ }
122
+ // construct a list of visible nodes, this will match the DOM.
123
+ // the cdkDragDrop event.currentIndex jives with visible nodes.
124
+ // it calls rememberExpandedTreeNodes to persist expand state
125
+ const visibleNodes = this.visibleNodes();
126
+ // deep clone the data source so we can mutate it
127
+ const changedData = JSON.parse(JSON.stringify(this.dataSource.data));
128
+ // recursive find function to find siblings of node
129
+ function findNodeSiblings(arr, id) {
130
+ let result, subResult;
131
+ arr.forEach(item => {
132
+ if (item.id === id) {
133
+ result = arr;
134
+ }
135
+ else if (item.children) {
136
+ subResult = findNodeSiblings(item.children, id);
137
+ if (subResult) {
138
+ result = subResult;
139
+ }
140
+ }
141
+ });
142
+ return result;
143
+ }
144
+ // remove the node from its old place
145
+ const siblings = findNodeSiblings(changedData, node.id);
146
+ const siblingIndex = siblings.findIndex(n => n.id === node.id);
147
+ // const nodeToInsert: TreeNode = siblings.splice(siblingIndex, 1)[0];
148
+ const nodeToInsert = siblings.splice(siblingIndex, 1)[0];
149
+ // determine where to insert the node
150
+ const nodeAtDest = visibleNodes[event.currentIndex];
151
+ if (nodeAtDest.id === nodeToInsert.id) {
152
+ return;
153
+ }
154
+ // determine drop index relative to destination array
155
+ let relativeIndex = event.currentIndex; // default if no parent
156
+ const nodeAtDestFlatNode = this.treeControl.dataNodes.find(n => nodeAtDest.id === n.id);
157
+ const parent = this.getParentNode(nodeAtDestFlatNode);
158
+ if (parent) {
159
+ const parentIndex = visibleNodes.findIndex(n => n.id === parent.id) + 1;
160
+ relativeIndex = event.currentIndex - parentIndex;
161
+ // update parentId for nodeToInsert
162
+ nodeToInsert.parentId = parent.id;
163
+ }
164
+ else {
165
+ nodeToInsert.parentId = guidHelper.empty;
166
+ }
167
+ // update new order for nodeToInsert
168
+ nodeToInsert.order = relativeIndex;
169
+ // insert node
170
+ const newSiblings = findNodeSiblings(changedData, nodeAtDest.id);
171
+ if (!newSiblings) {
172
+ return;
173
+ }
174
+ newSiblings.splice(relativeIndex, 0, nodeToInsert);
175
+ // rebuild tree with mutated data
176
+ this.rebuildTreeForData(changedData);
177
+ // update New Location Order for new insert node
178
+ this.updateNewOrderForNodeSiblings(newSiblings);
179
+ this.drogLocationEvent.emit({
180
+ newSiblings: newSiblings,
181
+ changedNode: backupChangedNode,
182
+ oldDataSource: backupData
183
+ });
184
+ }
185
+ updateNewOrderForNodeSiblings(newSiblings) {
186
+ let newOrder = 0;
187
+ newSiblings.forEach(item => {
188
+ item.order = newOrder;
189
+ newOrder = newOrder + 1;
190
+ });
191
+ }
192
+ /**
193
+ * Experimental - opening tree nodes as you drag over them
194
+ */
195
+ dragStart() {
196
+ this.dragging = true;
197
+ }
198
+ dragEnd() {
199
+ this.dragging = false;
200
+ }
201
+ dragHover(node) {
202
+ this.isHover = true;
203
+ if (this.dragging) {
204
+ clearTimeout(this.expandTimeout);
205
+ this.expandTimeout = setTimeout(() => {
206
+ this.treeControl.expand(node);
207
+ }, this.expandDelay);
208
+ }
209
+ }
210
+ dragHoverEnd() {
211
+ this.isHover = false;
212
+ if (this.dragging) {
213
+ clearTimeout(this.expandTimeout);
214
+ }
215
+ }
216
+ /**
217
+ * The following methods are for persisting the tree expand state
218
+ * after being rebuilt
219
+ */
220
+ rebuildTreeForData(data) {
221
+ this.rememberExpandedTreeNodes(this.treeControl, this.expandedNodeSet);
222
+ this.treeData = data;
223
+ this.dataSource.data = data;
224
+ this.forgetMissingExpandedNodes(this.treeControl, this.expandedNodeSet);
225
+ this.expandNodesById(this.treeControl.dataNodes, Array.from(this.expandedNodeSet));
226
+ }
227
+ rememberExpandedTreeNodes(treeControl, expandedNodeSet) {
228
+ if (treeControl.dataNodes) {
229
+ treeControl.dataNodes.forEach((node) => {
230
+ if (treeControl.isExpandable(node) && treeControl.isExpanded(node)) {
231
+ // capture latest expanded state
232
+ expandedNodeSet.add(node.id.toString());
233
+ }
234
+ });
235
+ }
236
+ }
237
+ forgetMissingExpandedNodes(treeControl, expandedNodeSet) {
238
+ if (treeControl.dataNodes) {
239
+ expandedNodeSet.forEach((nodeId) => {
240
+ // maintain expanded node state
241
+ if (!treeControl.dataNodes.find((n) => n.id.toString() === nodeId)) {
242
+ // if the tree doesn't have the previous node, remove it from the expanded list
243
+ expandedNodeSet.delete(nodeId);
244
+ }
245
+ });
246
+ }
247
+ }
248
+ expandNodesById(flatNodes, ids) {
249
+ if (!flatNodes || flatNodes.length === 0) {
250
+ return;
251
+ }
252
+ const idSet = new Set(ids);
253
+ return flatNodes.forEach((node) => {
254
+ if (idSet.has(node.id.toString())) {
255
+ this.treeControl.expand(node);
256
+ this.expandingNodes.push(node);
257
+ let parent = this.getParentNode(node);
258
+ while (parent) {
259
+ this.treeControl.expand(parent);
260
+ this.expandingNodes.push(parent);
261
+ parent = this.getParentNode(parent);
262
+ }
263
+ }
264
+ });
265
+ }
266
+ getParentNode(node) {
267
+ const currentLevel = node.level;
268
+ if (currentLevel < 1) {
269
+ return null;
270
+ }
271
+ const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;
272
+ for (let i = startIndex; i >= 0; i--) {
273
+ const currentNode = this.treeControl.dataNodes[i];
274
+ if (currentNode.level < currentLevel) {
275
+ return currentNode;
276
+ }
277
+ }
278
+ return null;
279
+ }
280
+ onKeyDownNode(event, node) {
281
+ if (event.key == 'Enter') {
282
+ this.onClickToggleNode(node);
283
+ }
284
+ }
285
+ onClickToggleNode(node) {
286
+ if (this.treeControl.isExpanded(node)) {
287
+ this.treeControl.expand(node);
288
+ this._addExpandingNode(node);
289
+ }
290
+ else {
291
+ this.treeControl.collapse(node);
292
+ this._removeExpandingNodes(node.id);
293
+ }
294
+ this.nodesExpand.emit({ node, isExpand: this.treeControl.isExpanded(node) });
295
+ }
296
+ setHoverFavorite(id) {
297
+ this.hoverFavoriteNodeId = id;
298
+ }
299
+ expandNodes() {
300
+ this._expandNodesLoop(this.treeData);
301
+ }
302
+ _expandNodesLoop(data) {
303
+ data.forEach(node => {
304
+ const expandingNode = this.expandingNodes.some(x => x.id === node.id);
305
+ if (expandingNode) {
306
+ this.onClickToggleNode(expandingNode);
307
+ }
308
+ data.forEach(item => {
309
+ if (Array.isArray(item.children)) {
310
+ this._expandNodesLoop(item.children);
311
+ }
312
+ });
313
+ });
314
+ }
315
+ _addExpandingNode(node) {
316
+ if (!this.expandingNodes.some(x => x.id === node.id)) {
317
+ this.expandingNodes.push(node);
318
+ }
319
+ }
320
+ _removeExpandingNodes(nodeId) {
321
+ this.expandingNodes = this.expandingNodes.filter(x => x.id !== nodeId);
322
+ }
323
+ }
324
+ QMSNavigationDrawerComponent.decorators = [
325
+ { type: Component, args: [{
326
+ selector: 'app-qms-navigation-drawer',
327
+ 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\" (mouseover)=\"onOver(node)\" matTreeNodePadding matTreeNodePaddingIndent=\"34\"\r\n cdkDrag [cdkDragData]=\"node\" (mouseenter)=\"dragHover(node)\" (mouseleave)=\"dragHoverEnd()\"\r\n (cdkDragStarted)=\"dragStart()\" (cdkDragReleased)=\"dragEnd()\"\r\n [ngClass]=\"{'expand-node' : treeControl.isExpanded(node), 'collapse-node': !treeControl.isExpanded(node), 'active': activeNode == node.id}\">\r\n <div *ngIf=\"!node.isReadOnly\" (click)=\"onClickNode(node.id)\" 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 [class.not-favorite]=\"!node.favorite && node.id === hoverNode.id && isHover\">\r\n {{node.favorite && node.id === hoverNode.id && isHover ? 'star_rate_outline' : ''}}\r\n {{!node.favorite && node.id === hoverNode.id && isHover ? 'star_border' : ''}}\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\">\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\" (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]=\"\r\n {'expand-node' : treeControl.isExpanded(node), 'collapse-node': !treeControl.isExpanded(node), 'active': activeNode == node.id}\">\r\n <div *ngIf=\"!node.isReadOnly\" (click)=\"onClickNode(node.id)\" class=\"tree-content\"\r\n (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 [class.not-favorite]=\"!node.favorite && node.id === hoverNode.id && isHover\">\r\n {{node.favorite && node.id === hoverNode.id && isHover ? 'star_rate_outline' : ''}}\r\n {{!node.favorite && node.id === hoverNode.id && isHover ? 'star_border' : ''}}\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\">\r\n add\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </mat-tree-node>\r\n</mat-tree>",
328
+ 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.active{background-color:#f2f7fd}::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}::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 .not-favorite{color:rgba(0,0,0,.6)!important}::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}"]
329
+ },] }
330
+ ];
331
+ QMSNavigationDrawerComponent.ctorParameters = () => [];
332
+ QMSNavigationDrawerComponent.propDecorators = {
333
+ treeData: [{ type: Input }],
334
+ showFavoriteIcon: [{ type: Input }],
335
+ favoriteMode: [{ type: Input }],
336
+ addNodeEvent: [{ type: Output }],
337
+ addFavoriteEvent: [{ type: Output }],
338
+ drogLocationEvent: [{ type: Output }],
339
+ showAddIcon: [{ type: Input }],
340
+ openNodes: [{ type: Input }],
341
+ dragDropListDisabled: [{ type: Input }],
342
+ nodesExpand: [{ type: Output }],
343
+ filterText: [{ type: Input }],
344
+ faIconPath: [{ type: Input }],
345
+ onClickNodeEvent: [{ type: Output }],
346
+ addFavoriteTooltip: [{ type: Input }],
347
+ deleteFavoriteTooltip: [{ type: Input }],
348
+ addNodeTooltip: [{ type: Input }]
349
+ };
350
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdmlnYXRpb24tZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtbmF2aWdhdGlvbi1kcmF3ZXIvcW1zLW5hdmlnYXRpb24tZHJhd2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpGLE9BQU8sVUFBVSxNQUFNLHdEQUF3RCxDQUFDO0FBUWhGLE1BQU0sT0FBTyw0QkFBNEI7SUFDdkM7UUFHUyxhQUFRLEdBQW9CLEVBQUUsQ0FBQztRQUc5QixpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELHFCQUFnQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVELHNCQUFpQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHcEQscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0QsdUJBQWtCLEdBQVcsbUJBQW1CLENBQUM7UUFDakQsMEJBQXFCLEdBQVcsZ0JBQWdCLENBQUM7UUFDakQsbUJBQWMsR0FBVyxtQkFBbUIsQ0FBQztRQUd0RCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDcEMsYUFBUSxHQUFH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QUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUFDLE1BQWM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDekUsQ0FBQzs7O1lBL1dGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyw0MUpBQXFEOzthQUV0RDs7Ozt1QkFNRSxLQUFLOytCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxNQUFNOytCQUNOLE1BQU07Z0NBQ04sTUFBTTswQkFDTixLQUFLO3dCQUNMLEtBQUs7bUNBQ0wsS0FBSzswQkFDTCxNQUFNO3lCQUNOLEtBQUs7eUJBQ0wsS0FBSzsrQkFDTCxNQUFNO2lDQUNOLEtBQUs7b0NBQ0wsS0FBSzs2QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRUcmVlRmxhdERhdGFTb3VyY2UsIE1hdFRyZWVGbGF0dGVuZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90cmVlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBndWlkSGVscGVyIGZyb20gJy4uLy4uL3Ftcy1ja2VkaXRvci1jb21wb25lbnRzL2NvbW1vbi9oZWxwZXIvZ3VpZEhlbHBlcic7XHJcbmltcG9ydCB7IEZsYXROb2RlLCBUcmVlTm9kZSB9IGZyb20gJy4vbW9kZWxzL3Ftcy1uYXZpZ2F0aW9uLWRyYXdlci5tb2RlbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXFtcy1uYXZpZ2F0aW9uLWRyYXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Ftcy1uYXZpZ2F0aW9uLWRyYXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcW1zLW5hdmlnYXRpb24tZHJhd2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBRTVNOYXZpZ2F0aW9uRHJhd2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudHJlZURhdGE7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHRyZWVEYXRhOiBBcnJheTxUcmVlTm9kZT4gPSBbXTtcclxuICBASW5wdXQoKSBzaG93RmF2b3JpdGVJY29uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZhdm9yaXRlTW9kZTogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgYWRkTm9kZUV2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWRkRmF2b3JpdGVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRyb2dMb2NhdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBzaG93QWRkSWNvbiA9IHRydWU7XHJcbiAgQElucHV0KCkgb3Blbk5vZGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRyYWdEcm9wTGlzdERpc2FibGVkID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG5vZGVzRXhwYW5kOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBmaWx0ZXJUZXh0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmFJY29uUGF0aDogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBvbkNsaWNrTm9kZUV2ZW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBhZGRGYXZvcml0ZVRvb2x0aXA6IHN0cmluZyA9ICdMZWdnIHRpbCBmYXZvcml0dCc7XHJcbiAgQElucHV0KCkgZGVsZXRlRmF2b3JpdGVUb29sdGlwOiBzdHJpbmcgPSAnU2xldHQgZmF2b3JpdHQnO1xyXG4gIEBJbnB1dCgpIGFkZE5vZGVUb29sdGlwOiBzdHJpbmcgPSAnTGVnZyB0aWwgbG9rYXNqb24nO1xyXG5cclxuICBhY3RpdmVOb2RlTG9jYXRpb246IFN1YnNjcmlwdGlvbjtcclxuICBleHBhbmRlZE5vZGVTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICBkcmFnZ2luZyA9IGZhbHNlO1xyXG4gIGV4cGFuZFRpbWVvdXQ6IGFueTtcclxuICBleHBhbmREZWxheSA9IDEwMDA7XHJcbiAgaG92ZXJGYXZvcml0ZU5vZGVJZDogc3RyaW5nO1xyXG4gIGlzSG92ZXIgPSBmYWxzZTtcclxuICB0cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8RmxhdE5vZGU+KG5vZGUgPT4gbm9kZS5sZXZlbCwgbm9kZSA9PiBub2RlLmV4cGFuZGFibGUpO1xyXG4gIHRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcih0aGlzLl90cmFuc2Zvcm1lciwgbm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSwgbm9kZSA9PiBub2RlLmNoaWxkcmVuKTtcclxuICBkYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCB0aGlzLnRyZWVGbGF0dGVuZXIpO1xyXG4gIGhvdmVyTm9kZTogYW55ID0ge307XHJcbiAgZXhwYW5kaW5nTm9kZXM6IEZsYXROb2RlW10gPSBbXTtcclxuICBhY3RpdmVOb2RlOiBzdHJpbmcgPSAnJztcclxuICBfdHJhbnNmb3JtZXIobm9kZTogVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGV4cGFuZGFibGU6ICEhbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDAsXHJcbiAgICAgIG5hbWU6IG5vZGUubmFtZSxcclxuICAgICAgbGV2ZWwsXHJcbiAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICBpc1JlYWRPbmx5OiBub2RlLmlzUmVhZE9ubHksXHJcbiAgICAgIGZhdm9yaXRlOiBub2RlLmZhdm9yaXRlLFxyXG4gICAgICBkaXNhYmxlZDogbm9kZS5kaXNhYmxlZFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcGVuTm9kZXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZChwID0+IHAuaWQudG9TdHJpbmcoKSA9PT0gaXRlbSkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy50cmVlRGF0YTtcclxuICAgIGlmICh0aGlzLmZpbHRlclRleHQpIHtcclxuICAgICAgdGhpcy5leHBhbmROb2RlU2VhcmNoZWQodGhpcy50cmVlRGF0YSwgdGhpcy5maWx0ZXJUZXh0KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2hhbmdlcy5vcGVuTm9kZXMpIHtcclxuICAgICAgdGhpcy5vcGVuTm9kZXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKHAgPT4gcC5pZC50b1N0cmluZygpID09PSBpdGVtKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhwYW5kTm9kZVNlYXJjaGVkKG5vZGVzT3JpZ2luOiBUcmVlTm9kZVtdLCB0eHRTZWFyY2g6IHN0cmluZykge1xyXG4gICAgbm9kZXNPcmlnaW4uZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKCFpdGVtLm5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyh0eHRTZWFyY2gudG9Mb2NhbGVMb3dlckNhc2UoKSkpIHtcclxuICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKHAgPT4gcC5pZC50b1N0cmluZygpID09PSBpdGVtLmlkKSk7XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmROb2RlU2VhcmNoZWQoaXRlbS5jaGlsZHJlbiwgdHh0U2VhcmNoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja05vZGUobm9kZUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYWN0aXZlTm9kZSA9IG5vZGVJZDtcclxuICAgIHRoaXMub25DbGlja05vZGVFdmVudC5lbWl0KG5vZGVJZCk7XHJcbiAgfVxyXG5cclxuICBvbk92ZXIobm9kZTogYW55KSB7XHJcbiAgICB0aGlzLmhvdmVyTm9kZSA9IG5vZGU7XHJcbiAgfVxyXG5cclxuICBhZGROZXdOb2RlKG5vZGVJZDogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmFkZE5vZGVFdmVudC5lbWl0KG5vZGVJZCk7XHJcbiAgfVxyXG5cclxuICBhZGRGYXZvcml0ZU5vZGUobm9kZUlkOiBhbnksIGV2ZW50OiBhbnkpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuYWRkRmF2b3JpdGVFdmVudC5lbWl0KG5vZGVJZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZU5vZGVMb2NhdGlvbikge1xyXG4gICAgICB0aGlzLmFjdGl2ZU5vZGVMb2NhdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBjb25zdHJ1Y3RzIGFuIGFycmF5IG9mIG5vZGVzIHRoYXQgbWF0Y2hlcyB0aGUgRE9NLFxyXG4gICAqIGFuZCBjYWxscyByZW1lbWJlckV4cGFuZGVkVHJlZU5vZGVzIHRvIHBlcnNpc3QgZXhwYW5kIHN0YXRlXHJcbiAgICovXHJcbiAgdmlzaWJsZU5vZGVzKCk6IFRyZWVOb2RlW10ge1xyXG4gICAgdGhpcy5yZW1lbWJlckV4cGFuZGVkVHJlZU5vZGVzKHRoaXMudHJlZUNvbnRyb2wsIHRoaXMuZXhwYW5kZWROb2RlU2V0KTtcclxuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xyXG5cclxuICAgIGZ1bmN0aW9uIGFkZEV4cGFuZGVkQ2hpbGRyZW4obm9kZTogVHJlZU5vZGUsIGV4cGFuZGVkOiBTZXQ8c3RyaW5nPikge1xyXG4gICAgICByZXN1bHQucHVzaChub2RlKTtcclxuICAgICAgaWYgKGV4cGFuZGVkLmhhcyhub2RlLmlkKSkge1xyXG4gICAgICAgIG5vZGUuY2hpbGRyZW4ubWFwKGNoaWxkID0+IGFkZEV4cGFuZGVkQ2hpbGRyZW4oY2hpbGQsIGV4cGFuZGVkKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZvckVhY2gobm9kZSA9PiB7XHJcbiAgICAgIGFkZEV4cGFuZGVkQ2hpbGRyZW4obm9kZSwgdGhpcy5leHBhbmRlZE5vZGVTZXQpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIHRoZSBkcm9wIC0gaGVyZSB3ZSByZWFycmFuZ2UgdGhlIGRhdGEgYmFzZWQgb24gdGhlIGRyb3AgZXZlbnQsXHJcbiAgICogdGhlbiByZWJ1aWxkIHRoZSB0cmVlLlxyXG4gICAqICovXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICAvLyBTYXZlIGRhdGEgZm9yIGJhY2t1cFxyXG4gICAgY29uc3Qgbm9kZSA9IGV2ZW50Lml0ZW0uZGF0YTtcclxuICAgIGNvbnN0IGJhY2t1cENoYW5nZWROb2RlOiBUcmVlTm9kZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobm9kZSkpO1xyXG4gICAgY29uc3QgYmFja3VwRGF0YTogVHJlZU5vZGVbXSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhU291cmNlLmRhdGEpKTtcclxuXHJcbiAgICAvLyBpZ25vcmUgZHJvcHMgb3V0c2lkZSBvZiB0aGUgdHJlZVxyXG4gICAgaWYgKCFldmVudC5pc1BvaW50ZXJPdmVyQ29udGFpbmVyKSB7IHJldHVybjsgfVxyXG5cclxuICAgIC8vIGNvbnN0cnVjdCBhIGxpc3Qgb2YgdmlzaWJsZSBub2RlcywgdGhpcyB3aWxsIG1hdGNoIHRoZSBET00uXHJcbiAgICAvLyB0aGUgY2RrRHJhZ0Ryb3AgZXZlbnQuY3VycmVudEluZGV4IGppdmVzIHdpdGggdmlzaWJsZSBub2Rlcy5cclxuICAgIC8vIGl0IGNhbGxzIHJlbWVtYmVyRXhwYW5kZWRUcmVlTm9kZXMgdG8gcGVyc2lzdCBleHBhbmQgc3RhdGVcclxuICAgIGNvbnN0IHZpc2libGVOb2RlcyA9IHRoaXMudmlzaWJsZU5vZGVzKCk7XHJcblxyXG4gICAgLy8gZGVlcCBjbG9uZSB0aGUgZGF0YSBzb3VyY2Ugc28gd2UgY2FuIG11dGF0ZSBpdFxyXG4gICAgY29uc3QgY2hhbmdlZERhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YVNvdXJjZS5kYXRhKSk7XHJcblxyXG4gICAgLy8gcmVjdXJzaXZlIGZpbmQgZnVuY3Rpb24gdG8gZmluZCBzaWJsaW5ncyBvZiBub2RlXHJcbiAgICBmdW5jdGlvbiBmaW5kTm9kZVNpYmxpbmdzKGFycjogQXJyYXk8YW55PiwgaWQ6IHN0cmluZyk6IEFycmF5PGFueT4ge1xyXG4gICAgICBsZXQgcmVzdWx0LCBzdWJSZXN1bHQ7XHJcbiAgICAgIGFyci5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLmlkID09PSBpZCkge1xyXG4gICAgICAgICAgcmVzdWx0ID0gYXJyO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5jaGlsZHJlbikge1xyXG4gICAgICAgICAgc3ViUmVzdWx0ID0gZmluZE5vZGVTaWJsaW5ncyhpdGVtLmNoaWxkcmVuLCBpZCk7XHJcbiAgICAgICAgICBpZiAoc3ViUmVzdWx0KSB7IHJlc3VsdCA9IHN1YlJlc3VsdDsgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmVtb3ZlIHRoZSBub2RlIGZyb20gaXRzIG9sZCBwbGFjZVxyXG4gICAgY29uc3Qgc2libGluZ3MgPSBmaW5kTm9kZVNpYmxpbmdzKGNoYW5nZWREYXRhLCBub2RlLmlkKTtcclxuICAgIGNvbnN0IHNpYmxpbmdJbmRleCA9IHNpYmxpbmdzLmZpbmRJbmRleChuID0+IG4uaWQgPT09IG5vZGUuaWQpO1xyXG4gICAgLy8gY29uc3Qgbm9kZVRvSW5zZXJ0OiBUcmVlTm9kZSA9IHNpYmxpbmdzLnNwbGljZShzaWJsaW5nSW5kZXgsIDEpWzBdO1xyXG4gICAgY29uc3Qgbm9kZVRvSW5zZXJ0ID0gc2libGluZ3Muc3BsaWNlKHNpYmxpbmdJbmRleCwgMSlbMF07XHJcbiAgICAvLyBkZXRlcm1pbmUgd2hlcmUgdG8gaW5zZXJ0IHRoZSBub2RlXHJcbiAgICBjb25zdCBub2RlQXREZXN0ID0gdmlzaWJsZU5vZGVzW2V2ZW50LmN1cnJlbnRJbmRleF07XHJcbiAgICBpZiAobm9kZUF0RGVzdC5pZCA9PT0gbm9kZVRvSW5zZXJ0LmlkKSB7IHJldHVybjsgfVxyXG5cclxuICAgIC8vIGRldGVybWluZSBkcm9wIGluZGV4IHJlbGF0aXZlIHRvIGRlc3RpbmF0aW9uIGFycmF5XHJcbiAgICBsZXQgcmVsYXRpdmVJbmRleCA9IGV2ZW50LmN1cnJlbnRJbmRleDsgLy8gZGVmYXVsdCBpZiBubyBwYXJlbnRcclxuICAgIGNvbnN0IG5vZGVBdERlc3RGbGF0Tm9kZSA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQobiA9PiBub2RlQXREZXN0LmlkID09PSBuLmlkKTtcclxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50Tm9kZShub2RlQXREZXN0RmxhdE5vZGUpO1xyXG5cclxuICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgY29uc3QgcGFyZW50SW5kZXggPSB2aXNpYmxlTm9kZXMuZmluZEluZGV4KG4gPT4gbi5pZCA9PT0gcGFyZW50LmlkKSArIDE7XHJcbiAgICAgIHJlbGF0aXZlSW5kZXggPSBldmVudC5jdXJyZW50SW5kZXggLSBwYXJlbnRJbmRleDtcclxuICAgICAgLy8gdXBkYXRlIHBhcmVudElkIGZvciBub2RlVG9JbnNlcnRcclxuICAgICAgbm9kZVRvSW5zZXJ0LnBhcmVudElkID0gcGFyZW50LmlkO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5vZGVUb0luc2VydC5wYXJlbnRJZCA9IGd1aWRIZWxwZXIuZW1wdHk7XHJcbiAgICB9XHJcbiAgICAvLyB1cGRhdGUgbmV3IG9yZGVyIGZvciBub2RlVG9JbnNlcnRcclxuICAgIG5vZGVUb0luc2VydC5vcmRlciA9IHJlbGF0aXZlSW5kZXg7XHJcbiAgICAvLyBpbnNlcnQgbm9kZVxyXG4gICAgY29uc3QgbmV3U2libGluZ3MgPSBmaW5kTm9kZVNpYmxpbmdzKGNoYW5nZWREYXRhLCBub2RlQXREZXN0LmlkKTtcclxuICAgIGlmICghbmV3U2libGluZ3MpIHsgcmV0dXJuOyB9XHJcbiAgICBuZXdTaWJsaW5ncy5zcGxpY2UocmVsYXRpdmVJbmRleCwgMCwgbm9kZVRvSW5zZXJ0KTtcclxuXHJcbiAgICAvLyByZWJ1aWxkIHRyZWUgd2l0aCBtdXRhdGVkIGRhdGFcclxuICAgIHRoaXMucmVidWlsZFRyZWVGb3JEYXRhKGNoYW5nZWREYXRhKTtcclxuXHJcbiAgICAvLyB1cGRhdGUgTmV3IExvY2F0aW9uIE9yZGVyIGZvciBuZXcgaW5zZXJ0IG5vZGVcclxuICAgIHRoaXMudXBkYXRlTmV3T3JkZXJGb3JOb2RlU2libGluZ3MobmV3U2libGluZ3MpO1xyXG5cclxuICAgIHRoaXMuZHJvZ0xvY2F0aW9uRXZlbnQuZW1pdCh7XHJcbiAgICAgIG5ld1NpYmxpbmdzOiBuZXdTaWJsaW5ncyxcclxuICAgICAgY2hhbmdlZE5vZGU6IGJhY2t1cENoYW5nZWROb2RlLFxyXG4gICAgICBvbGREYXRhU291cmNlOiBiYWNrdXBEYXRhXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlTmV3T3JkZXJGb3JOb2RlU2libGluZ3MobmV3U2libGluZ3M6IGFueVtdKSB7XHJcbiAgICBsZXQgbmV3T3JkZXIgPSAwO1xyXG4gICAgbmV3U2libGluZ3MuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaXRlbS5vcmRlciA9IG5ld09yZGVyO1xyXG4gICAgICBuZXdPcmRlciA9IG5ld09yZGVyICsgMTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBFeHBlcmltZW50YWwgLSBvcGVuaW5nIHRyZWUgbm9kZXMgYXMgeW91IGRyYWcgb3ZlciB0aGVtXHJcbiAgKi9cclxuICBkcmFnU3RhcnQoKSB7XHJcbiAgICB0aGlzLmRyYWdnaW5nID0gdHJ1ZTtcclxuICB9XHJcbiAgZHJhZ0VuZCgpIHtcclxuICAgIHRoaXMuZHJhZ2dpbmcgPSBmYWxzZTtcclxuICB9XHJcbiAgZHJhZ0hvdmVyKG5vZGU6IEZsYXROb2RlKSB7XHJcbiAgICB0aGlzLmlzSG92ZXIgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZHJhZ2dpbmcpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZXhwYW5kVGltZW91dCk7XHJcbiAgICAgIHRoaXMuZXhwYW5kVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xyXG4gICAgICB9LCB0aGlzLmV4cGFuZERlbGF5KTtcclxuICAgIH1cclxuICB9XHJcbiAgZHJhZ0hvdmVyRW5kKCkge1xyXG4gICAgdGhpcy5pc0hvdmVyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5kcmFnZ2luZykge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5leHBhbmRUaW1lb3V0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgZm9yIHBlcnNpc3RpbmcgdGhlIHRyZWUgZXhwYW5kIHN0YXRlXHJcbiAgICogYWZ0ZXIgYmVpbmcgcmVidWlsdFxyXG4gICAqL1xyXG5cclxuICByZWJ1aWxkVHJlZUZvckRhdGEoZGF0YTogYW55KSB7XHJcbiAgICB0aGlzLnJlbWVtYmVyRXhwYW5kZWRUcmVlTm9kZXModGhpcy50cmVlQ29udHJvbCwgdGhpcy5leHBhbmRlZE5vZGVTZXQpO1xyXG4gICAgdGhpcy50cmVlRGF0YSA9IGRhdGE7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgICB0aGlzLmZvcmdldE1pc3NpbmdFeHBhbmRlZE5vZGVzKHRoaXMudHJlZUNvbnRyb2wsIHRoaXMuZXhwYW5kZWROb2RlU2V0KTtcclxuICAgIHRoaXMuZXhwYW5kTm9kZXNCeUlkKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLCBBcnJheS5mcm9tKHRoaXMuZXhwYW5kZWROb2RlU2V0KSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbWVtYmVyRXhwYW5kZWRUcmVlTm9kZXMoXHJcbiAgICB0cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPEZsYXROb2RlPixcclxuICAgIGV4cGFuZGVkTm9kZVNldDogU2V0PHN0cmluZz5cclxuICApIHtcclxuICAgIGlmICh0cmVlQ29udHJvbC5kYXRhTm9kZXMpIHtcclxuICAgICAgdHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgICBpZiAodHJlZUNvbnRyb2wuaXNFeHBhbmRhYmxlKG5vZGUpICYmIHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkpIHtcclxuICAgICAgICAgIC8vIGNhcHR1cmUgbGF0ZXN0IGV4cGFuZGVkIHN0YXRlXHJcbiAgICAgICAgICBleHBhbmRlZE5vZGVTZXQuYWRkKG5vZGUuaWQudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9yZ2V0TWlzc2luZ0V4cGFuZGVkTm9kZXMoXHJcbiAgICB0cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPEZsYXROb2RlPixcclxuICAgIGV4cGFuZGVkTm9kZVNldDogU2V0PHN0cmluZz5cclxuICApIHtcclxuICAgIGlmICh0cmVlQ29udHJvbC5kYXRhTm9kZXMpIHtcclxuICAgICAgZXhwYW5kZWROb2RlU2V0LmZvckVhY2goKG5vZGVJZCkgPT4ge1xyXG4gICAgICAgIC8vIG1haW50YWluIGV4cGFuZGVkIG5vZGUgc3RhdGVcclxuICAgICAgICBpZiAoIXRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKChuKSA9PiBuLmlkLnRvU3RyaW5nKCkgPT09IG5vZGVJZCkpIHtcclxuICAgICAgICAgIC8vIGlmIHRoZSB0cmVlIGRvZXNuJ3QgaGF2ZSB0aGUgcHJldmlvdXMgbm9kZSwgcmVtb3ZlIGl0IGZyb20gdGhlIGV4cGFuZGVkIGxpc3RcclxuICAgICAgICAgIGV4cGFuZGVkTm9kZVNldC5kZWxldGUobm9kZUlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHBhbmROb2Rlc0J5SWQoZmxhdE5vZGVzOiBGbGF0Tm9kZVtdLCBpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAoIWZsYXROb2RlcyB8fCBmbGF0Tm9kZXMubGVuZ3RoID09PSAwKSB7IHJldHVybjsgfVxyXG4gICAgY29uc3QgaWRTZXQgPSBuZXcgU2V0KGlkcyk7XHJcbiAgICByZXR1cm4gZmxhdE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgaWYgKGlkU2V0Lmhhcyhub2RlLmlkLnRvU3RyaW5nKCkpKSB7XHJcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQobm9kZSk7XHJcblxyXG4gICAgICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMucHVzaChub2RlKTtcclxuXHJcbiAgICAgICAgbGV0IHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50Tm9kZShub2RlKTtcclxuICAgICAgICB3aGlsZSAocGFyZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChwYXJlbnQpO1xyXG5cclxuICAgICAgICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMucHVzaChwYXJlbnQpO1xyXG5cclxuICAgICAgICAgIHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50Tm9kZShwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBhcmVudE5vZGUobm9kZTogRmxhdE5vZGUpOiBGbGF0Tm9kZSB8IG51bGwge1xyXG4gICAgY29uc3QgY3VycmVudExldmVsID0gbm9kZS5sZXZlbDtcclxuICAgIGlmIChjdXJyZW50TGV2ZWwgPCAxKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmluZGV4T2Yobm9kZSkgLSAxO1xyXG4gICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXg7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV07XHJcbiAgICAgIGlmIChjdXJyZW50Tm9kZS5sZXZlbCA8IGN1cnJlbnRMZXZlbCkge1xyXG4gICAgICAgIHJldHVybiBjdXJyZW50Tm9kZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBvbktleURvd25Ob2RlKGV2ZW50OiBhbnksIG5vZGUpIHtcclxuICAgIGlmIChldmVudC5rZXkgPT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLm9uQ2xpY2tUb2dnbGVOb2RlKG5vZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja1RvZ2dsZU5vZGUobm9kZSkge1xyXG4gICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSkge1xyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcclxuICAgICAgdGhpcy5fYWRkRXhwYW5kaW5nTm9kZShub2RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuY29sbGFwc2Uobm9kZSk7XHJcbiAgICAgIHRoaXMuX3JlbW92ZUV4cGFuZGluZ05vZGVzKG5vZGUuaWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub2Rlc0V4cGFuZC5lbWl0KHsgbm9kZSwgaXNFeHBhbmQ6IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSB9KTtcclxuICB9XHJcblxyXG4gIHNldEhvdmVyRmF2b3JpdGUoaWQpIHtcclxuICAgIHRoaXMuaG92ZXJGYXZvcml0ZU5vZGVJZCA9IGlkO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kTm9kZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9leHBhbmROb2Rlc0xvb3AodGhpcy50cmVlRGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9leHBhbmROb2Rlc0xvb3AoZGF0YTogVHJlZU5vZGVbXSk6IHZvaWQge1xyXG4gICAgZGF0YS5mb3JFYWNoKG5vZGUgPT4ge1xyXG4gICAgICBjb25zdCBleHBhbmRpbmdOb2RlID0gdGhpcy5leHBhbmRpbmdOb2Rlcy5zb21lKHggPT4geC5pZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgIGlmIChleHBhbmRpbmdOb2RlKSB7XHJcbiAgICAgICAgdGhpcy5vbkNsaWNrVG9nZ2xlTm9kZShleHBhbmRpbmdOb2RlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGF0YS5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0uY2hpbGRyZW4pKSB7XHJcbiAgICAgICAgICB0aGlzLl9leHBhbmROb2Rlc0xvb3AoaXRlbS5jaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYWRkRXhwYW5kaW5nTm9kZShub2RlOiBGbGF0Tm9kZSk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmV4cGFuZGluZ05vZGVzLnNvbWUoeCA9PiB4LmlkID09PSBub2RlLmlkKSkge1xyXG4gICAgICB0aGlzLmV4cGFuZGluZ05vZGVzLnB1c2gobm9kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZW1vdmVFeHBhbmRpbmdOb2Rlcyhub2RlSWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5leHBhbmRpbmdOb2RlcyA9IHRoaXMuZXhwYW5kaW5nTm9kZXMuZmlsdGVyKHggPT4geC5pZCAhPT0gbm9kZUlkKTtcclxuICB9XHJcbn0iXX0=
@@ -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,2 @@
1
+ export * from "./public_api";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcW1zLXBhZ2luYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3B1YmxpY19hcGlcIjsiXX0=
@@ -0,0 +1,3 @@
1
+ export * from "./qms-paginator.module";
2
+ export * from "./qms-paginator.component";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtcGFnaW5hdG9yL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcW1zLXBhZ2luYXRvci5tb2R1bGVcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vcW1zLXBhZ2luYXRvci5jb21wb25lbnRcIjsiXX0=