slick-components 4.4.13 → 4.4.16

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 (346) hide show
  1. package/css/slick-components.css +598 -365
  2. package/css/slick-components.min.css +1 -1
  3. package/esm2020/public-api.mjs +43 -0
  4. package/esm2020/slick-accordion/slick-accordion-item-header.component.mjs +14 -0
  5. package/esm2020/slick-accordion/slick-accordion-item.component.mjs +86 -0
  6. package/esm2020/slick-accordion/slick-accordion.component.mjs +75 -0
  7. package/esm2020/slick-accordion/slick-accordion.module.mjs +23 -0
  8. package/esm2020/slick-auto-complete/slick-auto-complete-list-item-template.directive.mjs +22 -0
  9. package/esm2020/slick-auto-complete/slick-auto-complete.component.mjs +375 -0
  10. package/esm2020/slick-auto-complete/slick-auto-complete.module.mjs +24 -0
  11. package/esm2020/slick-button-spinner/slick-button-spinner.component.mjs +175 -0
  12. package/esm2020/slick-button-spinner/slick-button-spinner.module.mjs +19 -0
  13. package/esm2020/slick-calendar/slick-calendar.component.mjs +246 -0
  14. package/esm2020/slick-calendar/slick-calendar.module.mjs +19 -0
  15. package/esm2020/slick-card/slick-card-header.component.mjs +14 -0
  16. package/esm2020/slick-card/slick-card.component.mjs +42 -0
  17. package/esm2020/slick-card/slick-card.module.mjs +20 -0
  18. package/esm2020/slick-components.mjs +5 -0
  19. package/esm2020/slick-confirm-dialog/slick-confirm-dialog.component.mjs +65 -0
  20. package/esm2020/slick-confirm-dialog/slick-confirm-dialog.module.mjs +20 -0
  21. package/esm2020/slick-container/slick-container-body.component.mjs +24 -0
  22. package/esm2020/slick-container/slick-container-footer.component.mjs +20 -0
  23. package/esm2020/slick-container/slick-container-header.component.mjs +20 -0
  24. package/esm2020/slick-container/slick-container.component.mjs +21 -0
  25. package/esm2020/slick-container/slick-container.module.mjs +25 -0
  26. package/esm2020/slick-context-menu/slick-context-menu-item.component.mjs +14 -0
  27. package/esm2020/slick-context-menu/slick-context-menu.component.mjs +48 -0
  28. package/esm2020/slick-context-menu/slick-context-menu.module.mjs +20 -0
  29. package/{esm2015/slick-currency-mask/slick-currency-mask-options.model.js → esm2020/slick-currency-mask/slick-currency-mask-options.model.mjs} +0 -0
  30. package/esm2020/slick-currency-mask/slick-currency-mask.directive.mjs +233 -0
  31. package/esm2020/slick-currency-mask/slick-currency-mask.module.mjs +19 -0
  32. package/esm2020/slick-date-picker/slick-date-picker.component.mjs +278 -0
  33. package/esm2020/slick-date-picker/slick-date-picker.module.mjs +21 -0
  34. package/esm2020/slick-dialog/slick-dialog-footer.component.mjs +24 -0
  35. package/esm2020/slick-dialog/slick-dialog.component.mjs +294 -0
  36. package/esm2020/slick-dialog/slick-dialog.module.mjs +23 -0
  37. package/esm2020/slick-dialog/slick-dialog.service.mjs +68 -0
  38. package/esm2020/slick-drag-drop/slick-drag-drop.directive.mjs +13 -0
  39. package/esm2020/slick-drag-drop/slick-drag-drop.module.mjs +21 -0
  40. package/esm2020/slick-drag-drop/slick-draggable.directive.mjs +13 -0
  41. package/{esm2015/slick-drop-down/slick-drop-down-button.model.js → esm2020/slick-drop-down/slick-drop-down-button.model.mjs} +0 -0
  42. package/esm2020/slick-drop-down/slick-drop-down.component.mjs +479 -0
  43. package/esm2020/slick-drop-down/slick-drop-down.module.mjs +24 -0
  44. package/esm2020/slick-drop-down/slick-drop-down.service.mjs +55 -0
  45. package/esm2020/slick-drop-list/slick-drop-list-grab.directive.mjs +18 -0
  46. package/esm2020/slick-drop-list/slick-drop-list-item.directive.mjs +18 -0
  47. package/esm2020/slick-drop-list/slick-drop-list.directive.mjs +215 -0
  48. package/esm2020/slick-drop-list/slick-drop-list.module.mjs +23 -0
  49. package/esm2020/slick-email-viewer/slick-email-viewer-dialog.component.mjs +81 -0
  50. package/esm2020/slick-email-viewer/slick-email-viewer.component.mjs +42 -0
  51. package/esm2020/slick-email-viewer/slick-email-viewer.module.mjs +26 -0
  52. package/{esm2015/slick-emailer/slick-emailer-address.model.js → esm2020/slick-emailer/slick-emailer-address.model.mjs} +0 -0
  53. package/esm2020/slick-emailer/slick-emailer-dialog.component.mjs +153 -0
  54. package/esm2020/slick-emailer/slick-emailer.component.mjs +235 -0
  55. package/{esm2015/slick-emailer/slick-emailer.model.js → esm2020/slick-emailer/slick-emailer.model.mjs} +0 -0
  56. package/esm2020/slick-emailer/slick-emailer.module.mjs +29 -0
  57. package/esm2020/slick-file-drop/slick-file-drop.component.mjs +156 -0
  58. package/esm2020/slick-file-drop/slick-file-drop.module.mjs +20 -0
  59. package/esm2020/slick-file-list/slick-file-list-item.component.mjs +173 -0
  60. package/esm2020/slick-file-list/slick-file-list.component.mjs +130 -0
  61. package/esm2020/slick-file-list/slick-file-list.module.mjs +23 -0
  62. package/{esm2015/slick-file-model/slick-file.model.js → esm2020/slick-file-model/slick-file.model.mjs} +0 -0
  63. package/esm2020/slick-google-address-search/slick-google-address-search.directive.mjs +75 -0
  64. package/esm2020/slick-google-address-search/slick-google-address-search.module.mjs +19 -0
  65. package/esm2020/slick-google-map/slick-google-map-dialog.component.mjs +50 -0
  66. package/esm2020/slick-google-map/slick-google-map.component.mjs +48 -0
  67. package/esm2020/slick-google-map/slick-google-map.module.mjs +22 -0
  68. package/esm2020/slick-grid/slick-grid-column-template.directive.mjs +19 -0
  69. package/{esm2015/slick-grid/slick-grid-column.model.js → esm2020/slick-grid/slick-grid-column.model.mjs} +0 -0
  70. package/{esm2015/slick-grid/slick-grid-favorite.model.js → esm2020/slick-grid/slick-grid-favorite.model.mjs} +0 -0
  71. package/{esm2015/slick-grid/slick-grid-request.model.js → esm2020/slick-grid/slick-grid-request.model.mjs} +0 -0
  72. package/{esm2015/slick-grid/slick-grid-response.model.js → esm2020/slick-grid/slick-grid-response.model.mjs} +0 -0
  73. package/esm2020/slick-grid/slick-grid-sanitize.pipe.mjs +20 -0
  74. package/esm2020/slick-grid/slick-grid.component.mjs +793 -0
  75. package/esm2020/slick-grid/slick-grid.module.mjs +43 -0
  76. package/{esm2015/slick-grid/slick-grid.options.js → esm2020/slick-grid/slick-grid.options.mjs} +0 -0
  77. package/esm2020/slick-grid/slick-grid.service.mjs +66 -0
  78. package/esm2020/slick-multi-select/slick-multi-select.component.mjs +362 -0
  79. package/esm2020/slick-multi-select/slick-multi-select.module.mjs +20 -0
  80. package/esm2020/slick-multi-select/slick-multi-select.service.mjs +77 -0
  81. package/esm2020/slick-ordered-list/slick-ordered-list.component.mjs +200 -0
  82. package/esm2020/slick-ordered-list/slick-ordered-list.module.mjs +20 -0
  83. package/esm2020/slick-paging/slick-paging.component.mjs +185 -0
  84. package/esm2020/slick-paging/slick-paging.module.mjs +19 -0
  85. package/esm2020/slick-photo-gallery/slick-photo-gallery.component.mjs +98 -0
  86. package/{esm2015/slick-photo-gallery/slick-photo-gallery.model.js → esm2020/slick-photo-gallery/slick-photo-gallery.model.mjs} +0 -0
  87. package/esm2020/slick-photo-gallery/slick-photo-gallery.module.mjs +21 -0
  88. package/esm2020/slick-pick-list/slick-pick-list.component.mjs +84 -0
  89. package/esm2020/slick-pick-list/slick-pick-list.module.mjs +20 -0
  90. package/esm2020/slick-popover/slick-popover.component.mjs +204 -0
  91. package/esm2020/slick-popover/slick-popover.module.mjs +19 -0
  92. package/esm2020/slick-profile-picture/slick-profile-picture.component.mjs +267 -0
  93. package/esm2020/slick-profile-picture/slick-profile-picture.module.mjs +20 -0
  94. package/esm2020/slick-progress-bar/slick-progress-bar.module.mjs +18 -0
  95. package/esm2020/slick-progress-bar/slick-progress-bar.service.mjs +53 -0
  96. package/esm2020/slick-screen-blocker/slick-screen-blocker.module.mjs +18 -0
  97. package/esm2020/slick-screen-blocker/slick-screen-blocker.service.mjs +83 -0
  98. package/{esm2015/slick-slider/slick-slider-tick.model.js → esm2020/slick-slider/slick-slider-tick.model.mjs} +0 -0
  99. package/esm2020/slick-slider/slick-slider.component.mjs +90 -0
  100. package/esm2020/slick-slider/slick-slider.module.mjs +20 -0
  101. package/esm2020/slick-split-screen/slick-screen-split-left-content.component.mjs +15 -0
  102. package/esm2020/slick-split-screen/slick-screen-split-right-content.component.mjs +15 -0
  103. package/esm2020/slick-split-screen/slick-split-screen.component.mjs +159 -0
  104. package/esm2020/slick-split-screen/slick-split-screen.module.mjs +21 -0
  105. package/esm2020/slick-tabs/slick-tab-header.component.mjs +28 -0
  106. package/esm2020/slick-tabs/slick-tab.component.mjs +63 -0
  107. package/{esm2015/slick-tabs/slick-tab.model.js → esm2020/slick-tabs/slick-tab.model.mjs} +0 -0
  108. package/esm2020/slick-tabs/slick-tabs.component.mjs +107 -0
  109. package/esm2020/slick-tabs/slick-tabs.module.mjs +23 -0
  110. package/esm2020/slick-toast/slick-toast.module.mjs +18 -0
  111. package/esm2020/slick-toast/slick-toast.service.mjs +88 -0
  112. package/{esm2015/slick-tree-view/slick-tree-node.model.js → esm2020/slick-tree-view/slick-tree-node.model.mjs} +0 -0
  113. package/esm2020/slick-tree-view/slick-tree-view.component.mjs +293 -0
  114. package/esm2020/slick-tree-view/slick-tree-view.module.mjs +22 -0
  115. package/esm2020/slick-type-ahead/slick-type-ahead.directive.mjs +164 -0
  116. package/esm2020/slick-type-ahead/slick-type-ahead.module.mjs +18 -0
  117. package/esm2020/slick-validation-indicator/slick-validation-indicator.directive.mjs +63 -0
  118. package/esm2020/slick-validation-indicator/slick-validation-indicator.module.mjs +19 -0
  119. package/esm2020/utils/slick-function-lock.service.mjs +55 -0
  120. package/esm2020/utils/slick-init.service.mjs +49 -0
  121. package/esm2020/utils/slick-log.service.mjs +23 -0
  122. package/esm2020/utils/slick-sleep.service.mjs +14 -0
  123. package/esm2020/utils/slick-utils.service.mjs +247 -0
  124. package/fesm2015/{slick-components.js → slick-components.mjs} +2779 -2070
  125. package/fesm2015/slick-components.mjs.map +1 -0
  126. package/fesm2020/slick-components.mjs +8467 -0
  127. package/fesm2020/slick-components.mjs.map +1 -0
  128. package/package.json +20 -8
  129. package/public-api.d.ts +8 -8
  130. package/slick-accordion/slick-accordion-item-header.component.d.ts +3 -0
  131. package/slick-accordion/slick-accordion-item.component.d.ts +3 -0
  132. package/slick-accordion/slick-accordion.component.d.ts +3 -0
  133. package/slick-accordion/slick-accordion.module.d.ts +8 -0
  134. package/slick-auto-complete/slick-auto-complete-list-item-template.directive.d.ts +3 -0
  135. package/slick-auto-complete/slick-auto-complete.component.d.ts +3 -0
  136. package/slick-auto-complete/slick-auto-complete.module.d.ts +8 -0
  137. package/slick-button-spinner/slick-button-spinner.component.d.ts +3 -0
  138. package/slick-button-spinner/slick-button-spinner.module.d.ts +6 -0
  139. package/slick-calendar/slick-calendar.component.d.ts +3 -0
  140. package/slick-calendar/slick-calendar.module.d.ts +6 -0
  141. package/slick-card/slick-card-header.component.d.ts +3 -0
  142. package/slick-card/slick-card.component.d.ts +3 -0
  143. package/slick-card/slick-card.module.d.ts +10 -0
  144. package/slick-components.d.ts +1 -22
  145. package/slick-confirm-dialog/slick-confirm-dialog.component.d.ts +3 -0
  146. package/slick-confirm-dialog/slick-confirm-dialog.module.d.ts +7 -0
  147. package/slick-container/slick-container-body.component.d.ts +3 -0
  148. package/slick-container/slick-container-footer.component.d.ts +3 -0
  149. package/slick-container/slick-container-header.component.d.ts +3 -0
  150. package/slick-container/slick-container.component.d.ts +3 -0
  151. package/slick-container/slick-container.module.d.ts +9 -0
  152. package/slick-context-menu/slick-context-menu-item.component.d.ts +3 -0
  153. package/slick-context-menu/slick-context-menu.component.d.ts +3 -0
  154. package/slick-context-menu/slick-context-menu.module.d.ts +7 -0
  155. package/slick-currency-mask/slick-currency-mask.directive.d.ts +3 -0
  156. package/slick-currency-mask/slick-currency-mask.module.d.ts +5 -0
  157. package/slick-date-picker/slick-date-picker.component.d.ts +3 -0
  158. package/slick-date-picker/slick-date-picker.module.d.ts +8 -0
  159. package/slick-dialog/slick-dialog-footer.component.d.ts +3 -0
  160. package/slick-dialog/slick-dialog.component.d.ts +3 -0
  161. package/slick-dialog/slick-dialog.module.d.ts +10 -1
  162. package/slick-dialog/slick-dialog.service.d.ts +3 -0
  163. package/slick-drag-drop/slick-drag-drop.directive.d.ts +3 -0
  164. package/slick-drag-drop/slick-drag-drop.module.d.ts +11 -0
  165. package/slick-drag-drop/slick-draggable.directive.d.ts +3 -0
  166. package/slick-drop-down/slick-drop-down.component.d.ts +3 -0
  167. package/slick-drop-down/slick-drop-down.module.d.ts +9 -0
  168. package/slick-drop-down/slick-drop-down.service.d.ts +3 -0
  169. package/slick-drop-list/slick-drop-list-grab.directive.d.ts +3 -0
  170. package/slick-drop-list/slick-drop-list-item.directive.d.ts +3 -0
  171. package/slick-drop-list/slick-drop-list.directive.d.ts +13 -7
  172. package/slick-drop-list/slick-drop-list.module.d.ts +14 -0
  173. package/slick-email-viewer/slick-email-viewer-dialog.component.d.ts +3 -0
  174. package/slick-email-viewer/slick-email-viewer.component.d.ts +3 -0
  175. package/slick-email-viewer/slick-email-viewer.module.d.ts +10 -0
  176. package/slick-emailer/slick-emailer-dialog.component.d.ts +3 -0
  177. package/slick-emailer/slick-emailer.component.d.ts +3 -0
  178. package/slick-emailer/slick-emailer.module.d.ts +13 -0
  179. package/slick-file-drop/slick-file-drop.component.d.ts +3 -0
  180. package/slick-file-drop/slick-file-drop.module.d.ts +7 -0
  181. package/slick-file-list/slick-file-list-item.component.d.ts +3 -0
  182. package/slick-file-list/slick-file-list.component.d.ts +3 -0
  183. package/slick-file-list/slick-file-list.module.d.ts +10 -0
  184. package/slick-google-address-search/slick-google-address-search.directive.d.ts +3 -0
  185. package/slick-google-address-search/slick-google-address-search.module.d.ts +6 -0
  186. package/slick-google-map/slick-google-map-dialog.component.d.ts +3 -0
  187. package/slick-google-map/slick-google-map.component.d.ts +3 -0
  188. package/slick-google-map/slick-google-map.module.d.ts +8 -0
  189. package/slick-grid/slick-grid-column-template.directive.d.ts +3 -0
  190. package/slick-grid/slick-grid-sanitize.pipe.d.ts +3 -0
  191. package/slick-grid/slick-grid.component.d.ts +3 -0
  192. package/slick-grid/slick-grid.module.d.ts +16 -0
  193. package/slick-grid/slick-grid.service.d.ts +3 -0
  194. package/slick-multi-select/slick-multi-select.component.d.ts +3 -0
  195. package/slick-multi-select/slick-multi-select.module.d.ts +7 -0
  196. package/slick-multi-select/slick-multi-select.service.d.ts +3 -0
  197. package/slick-ordered-list/slick-ordered-list.component.d.ts +3 -0
  198. package/slick-ordered-list/slick-ordered-list.module.d.ts +7 -0
  199. package/slick-paging/slick-paging.component.d.ts +3 -0
  200. package/slick-paging/slick-paging.module.d.ts +6 -0
  201. package/slick-photo-gallery/slick-photo-gallery.component.d.ts +3 -0
  202. package/slick-photo-gallery/slick-photo-gallery.module.d.ts +6 -0
  203. package/slick-pick-list/slick-pick-list.component.d.ts +3 -0
  204. package/slick-pick-list/slick-pick-list.module.d.ts +7 -0
  205. package/slick-popover/slick-popover.component.d.ts +3 -0
  206. package/slick-popover/slick-popover.module.d.ts +6 -0
  207. package/slick-profile-picture/slick-profile-picture.component.d.ts +3 -0
  208. package/slick-profile-picture/slick-profile-picture.module.d.ts +7 -0
  209. package/slick-progress-bar/slick-progress-bar.module.d.ts +5 -0
  210. package/slick-progress-bar/slick-progress-bar.service.d.ts +3 -0
  211. package/slick-screen-blocker/slick-screen-blocker.module.d.ts +5 -0
  212. package/slick-screen-blocker/slick-screen-blocker.service.d.ts +3 -0
  213. package/slick-slider/slick-slider.component.d.ts +3 -0
  214. package/slick-slider/slick-slider.module.d.ts +6 -0
  215. package/slick-split-screen/slick-screen-split-left-content.component.d.ts +3 -0
  216. package/slick-split-screen/slick-screen-split-right-content.component.d.ts +3 -0
  217. package/slick-split-screen/slick-split-screen.component.d.ts +3 -0
  218. package/slick-split-screen/slick-split-screen.module.d.ts +8 -0
  219. package/slick-tabs/slick-tab-header.component.d.ts +3 -0
  220. package/slick-tabs/slick-tab.component.d.ts +3 -0
  221. package/slick-tabs/slick-tabs.component.d.ts +3 -0
  222. package/slick-tabs/slick-tabs.module.d.ts +10 -0
  223. package/slick-toast/slick-toast.module.d.ts +5 -0
  224. package/slick-toast/slick-toast.service.d.ts +3 -0
  225. package/slick-tree-view/slick-tree-view.component.d.ts +3 -0
  226. package/slick-tree-view/slick-tree-view.module.d.ts +8 -0
  227. package/slick-type-ahead/slick-type-ahead.directive.d.ts +3 -0
  228. package/slick-type-ahead/slick-type-ahead.module.d.ts +5 -0
  229. package/slick-validation-indicator/slick-validation-indicator.directive.d.ts +3 -0
  230. package/slick-validation-indicator/slick-validation-indicator.module.d.ts +6 -0
  231. package/utils/slick-function-lock.service.d.ts +3 -0
  232. package/utils/slick-init.service.d.ts +3 -0
  233. package/utils/slick-log.service.d.ts +3 -0
  234. package/utils/slick-sleep.service.d.ts +3 -0
  235. package/utils/slick-utils.service.d.ts +5 -0
  236. package/bundles/slick-components.umd.js +0 -9777
  237. package/bundles/slick-components.umd.js.map +0 -1
  238. package/esm2015/public-api.js +0 -43
  239. package/esm2015/slick-accordion/slick-accordion-item-header.component.js +0 -10
  240. package/esm2015/slick-accordion/slick-accordion-item.component.js +0 -80
  241. package/esm2015/slick-accordion/slick-accordion.component.js +0 -77
  242. package/esm2015/slick-accordion/slick-accordion.module.js +0 -18
  243. package/esm2015/slick-auto-complete/slick-auto-complete-list-item-template.directive.js +0 -21
  244. package/esm2015/slick-auto-complete/slick-auto-complete.component.js +0 -352
  245. package/esm2015/slick-auto-complete/slick-auto-complete.module.js +0 -19
  246. package/esm2015/slick-button-spinner/slick-button-spinner.component.js +0 -186
  247. package/esm2015/slick-button-spinner/slick-button-spinner.module.js +0 -14
  248. package/esm2015/slick-calendar/slick-calendar.component.js +0 -233
  249. package/esm2015/slick-calendar/slick-calendar.module.js +0 -14
  250. package/esm2015/slick-card/slick-card-header.component.js +0 -10
  251. package/esm2015/slick-card/slick-card.component.js +0 -37
  252. package/esm2015/slick-card/slick-card.module.js +0 -14
  253. package/esm2015/slick-components.js +0 -27
  254. package/esm2015/slick-confirm-dialog/slick-confirm-dialog.component.js +0 -62
  255. package/esm2015/slick-confirm-dialog/slick-confirm-dialog.module.js +0 -15
  256. package/esm2015/slick-container/slick-container-body.component.js +0 -18
  257. package/esm2015/slick-container/slick-container-footer.component.js +0 -16
  258. package/esm2015/slick-container/slick-container-header.component.js +0 -16
  259. package/esm2015/slick-container/slick-container.component.js +0 -19
  260. package/esm2015/slick-container/slick-container.module.js +0 -20
  261. package/esm2015/slick-context-menu/slick-context-menu-item.component.js +0 -10
  262. package/esm2015/slick-context-menu/slick-context-menu.component.js +0 -43
  263. package/esm2015/slick-context-menu/slick-context-menu.module.js +0 -15
  264. package/esm2015/slick-currency-mask/slick-currency-mask.directive.js +0 -234
  265. package/esm2015/slick-currency-mask/slick-currency-mask.module.js +0 -14
  266. package/esm2015/slick-date-picker/slick-date-picker.component.js +0 -267
  267. package/esm2015/slick-date-picker/slick-date-picker.module.js +0 -16
  268. package/esm2015/slick-dialog/slick-dialog-footer.component.js +0 -18
  269. package/esm2015/slick-dialog/slick-dialog.component.js +0 -282
  270. package/esm2015/slick-dialog/slick-dialog.module.js +0 -18
  271. package/esm2015/slick-dialog/slick-dialog.service.js +0 -67
  272. package/esm2015/slick-drag-drop/slick-drag-drop.directive.js +0 -9
  273. package/esm2015/slick-drag-drop/slick-drag-drop.module.js +0 -14
  274. package/esm2015/slick-drag-drop/slick-draggable.directive.js +0 -9
  275. package/esm2015/slick-drop-down/slick-drop-down.component.js +0 -465
  276. package/esm2015/slick-drop-down/slick-drop-down.module.js +0 -19
  277. package/esm2015/slick-drop-down/slick-drop-down.service.js +0 -59
  278. package/esm2015/slick-drop-list/slick-drop-list-grab.directive.js +0 -18
  279. package/esm2015/slick-drop-list/slick-drop-list-item.directive.js +0 -18
  280. package/esm2015/slick-drop-list/slick-drop-list.directive.js +0 -162
  281. package/esm2015/slick-drop-list/slick-drop-list.module.js +0 -15
  282. package/esm2015/slick-email-viewer/slick-email-viewer-dialog.component.js +0 -61
  283. package/esm2015/slick-email-viewer/slick-email-viewer.component.js +0 -39
  284. package/esm2015/slick-email-viewer/slick-email-viewer.module.js +0 -21
  285. package/esm2015/slick-emailer/slick-emailer-dialog.component.js +0 -122
  286. package/esm2015/slick-emailer/slick-emailer.component.js +0 -226
  287. package/esm2015/slick-emailer/slick-emailer.module.js +0 -24
  288. package/esm2015/slick-file-drop/slick-file-drop.component.js +0 -144
  289. package/esm2015/slick-file-drop/slick-file-drop.module.js +0 -15
  290. package/esm2015/slick-file-list/slick-file-list-item.component.js +0 -156
  291. package/esm2015/slick-file-list/slick-file-list.component.js +0 -114
  292. package/esm2015/slick-file-list/slick-file-list.module.js +0 -18
  293. package/esm2015/slick-google-address-search/slick-google-address-search.directive.js +0 -75
  294. package/esm2015/slick-google-address-search/slick-google-address-search.module.js +0 -14
  295. package/esm2015/slick-google-map/slick-google-map-dialog.component.js +0 -45
  296. package/esm2015/slick-google-map/slick-google-map.component.js +0 -45
  297. package/esm2015/slick-google-map/slick-google-map.module.js +0 -17
  298. package/esm2015/slick-grid/slick-grid-column-template.directive.js +0 -19
  299. package/esm2015/slick-grid/slick-grid-sanitize.pipe.js +0 -20
  300. package/esm2015/slick-grid/slick-grid.component.js +0 -792
  301. package/esm2015/slick-grid/slick-grid.module.js +0 -38
  302. package/esm2015/slick-grid/slick-grid.service.js +0 -72
  303. package/esm2015/slick-multi-select/slick-multi-select.component.js +0 -356
  304. package/esm2015/slick-multi-select/slick-multi-select.module.js +0 -15
  305. package/esm2015/slick-multi-select/slick-multi-select.service.js +0 -74
  306. package/esm2015/slick-ordered-list/slick-ordered-list.component.js +0 -198
  307. package/esm2015/slick-ordered-list/slick-ordered-list.module.js +0 -15
  308. package/esm2015/slick-paging/slick-paging.component.js +0 -180
  309. package/esm2015/slick-paging/slick-paging.module.js +0 -14
  310. package/esm2015/slick-photo-gallery/slick-photo-gallery.component.js +0 -101
  311. package/esm2015/slick-photo-gallery/slick-photo-gallery.module.js +0 -16
  312. package/esm2015/slick-pick-list/slick-pick-list.component.js +0 -78
  313. package/esm2015/slick-pick-list/slick-pick-list.module.js +0 -15
  314. package/esm2015/slick-popover/slick-popover.component.js +0 -199
  315. package/esm2015/slick-popover/slick-popover.module.js +0 -14
  316. package/esm2015/slick-profile-picture/slick-profile-picture.component.js +0 -242
  317. package/esm2015/slick-profile-picture/slick-profile-picture.module.js +0 -15
  318. package/esm2015/slick-progress-bar/slick-progress-bar.module.js +0 -13
  319. package/esm2015/slick-progress-bar/slick-progress-bar.service.js +0 -50
  320. package/esm2015/slick-screen-blocker/slick-screen-blocker.module.js +0 -13
  321. package/esm2015/slick-screen-blocker/slick-screen-blocker.service.js +0 -80
  322. package/esm2015/slick-slider/slick-slider.component.js +0 -88
  323. package/esm2015/slick-slider/slick-slider.module.js +0 -15
  324. package/esm2015/slick-split-screen/slick-screen-split-left-content.component.js +0 -13
  325. package/esm2015/slick-split-screen/slick-screen-split-right-content.component.js +0 -13
  326. package/esm2015/slick-split-screen/slick-split-screen.component.js +0 -148
  327. package/esm2015/slick-split-screen/slick-split-screen.module.js +0 -16
  328. package/esm2015/slick-tabs/slick-tab-header.component.js +0 -25
  329. package/esm2015/slick-tabs/slick-tab.component.js +0 -67
  330. package/esm2015/slick-tabs/slick-tabs.component.js +0 -104
  331. package/esm2015/slick-tabs/slick-tabs.module.js +0 -17
  332. package/esm2015/slick-toast/slick-toast.module.js +0 -13
  333. package/esm2015/slick-toast/slick-toast.service.js +0 -91
  334. package/esm2015/slick-tree-view/slick-tree-view.component.js +0 -287
  335. package/esm2015/slick-tree-view/slick-tree-view.module.js +0 -17
  336. package/esm2015/slick-type-ahead/slick-type-ahead.directive.js +0 -155
  337. package/esm2015/slick-type-ahead/slick-type-ahead.module.js +0 -13
  338. package/esm2015/slick-validation-indicator/slick-validation-indicator.directive.js +0 -61
  339. package/esm2015/slick-validation-indicator/slick-validation-indicator.module.js +0 -14
  340. package/esm2015/utils/slick-function-lock.service.js +0 -54
  341. package/esm2015/utils/slick-init.service.js +0 -48
  342. package/esm2015/utils/slick-log.service.js +0 -27
  343. package/esm2015/utils/slick-sleep.service.js +0 -14
  344. package/esm2015/utils/slick-utils.service.js +0 -229
  345. package/fesm2015/slick-components.js.map +0 -1
  346. package/slick-components.metadata.json +0 -1
@@ -0,0 +1,293 @@
1
+ import { Component, Input, Output, EventEmitter, ViewChild } from "@angular/core";
2
+ import { SlickTreeNodeModel } from './slick-tree-node.model';
3
+ import { SlickSleepService } from "../utils/slick-sleep.service";
4
+ import { SlickUtilsService } from "../utils/slick-utils.service";
5
+ import { SlickConfirmDialogResults } from '../slick-confirm-dialog/slick-confirm-dialog.module';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../slick-confirm-dialog/slick-confirm-dialog.component";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@angular/forms";
10
+ class SlickTreeViewDisplayModel {
11
+ constructor(node, level) {
12
+ this.uuid = node.uuid;
13
+ this.parentUuid = node.parentUuid;
14
+ this.node = node;
15
+ this.text = node.text;
16
+ this.level = level;
17
+ this.expanded = node.expanded;
18
+ this.editingText = false;
19
+ this.indentArray = [];
20
+ for (let i = 0; i < this.level; i++)
21
+ this.indentArray.push(true);
22
+ }
23
+ }
24
+ export class SlickTreeViewComponent {
25
+ constructor() {
26
+ this.nodesChange = new EventEmitter();
27
+ this.showRootNode = true;
28
+ this.expandOnClick = true;
29
+ this.onNodeSelected = new EventEmitter();
30
+ this.onNodeChanged = new EventEmitter();
31
+ this.onNodeAdded = new EventEmitter();
32
+ this.onNodeDeleted = new EventEmitter();
33
+ this.fnDocumentClick = (e) => this.documentClick(e);
34
+ this.fnContextMenu = (e) => this.contextMenu(e);
35
+ this.uuid = SlickUtilsService.newGuid();
36
+ this.newUuid = null;
37
+ }
38
+ ngOnInit() {
39
+ document.addEventListener("click", this.fnDocumentClick, true);
40
+ this.slickTreeViewRef.nativeElement.addEventListener("contextmenu", this.fnContextMenu, true);
41
+ }
42
+ ngOnDestroy() {
43
+ document.removeEventListener("click", this.fnDocumentClick, true);
44
+ this.slickTreeViewRef.nativeElement.removeEventListener("contextmenu", this.fnContextMenu, true);
45
+ }
46
+ ngOnChanges(changes) {
47
+ this.expandOnClick = (this.expandOnClick.toString().toLowerCase() === 'false') ? false : true;
48
+ this.showRootNode = (this.showRootNode.toString().toLowerCase() === 'false') ? false : true;
49
+ this.rootNodeUuid = this.rootNodeUuid || null;
50
+ if (changes.nodes)
51
+ this.refreshDisplay();
52
+ }
53
+ async documentClick(e) {
54
+ if (e.target && SlickUtilsService.checkParentClassExists(e.target, "slick-tree-view_node-text-edit"))
55
+ return;
56
+ if (e.target && SlickUtilsService.checkParentClassExists(e.target, "slick-tree-view_context-menu"))
57
+ return;
58
+ const contextMenuElement = this.contextMenuRef.nativeElement;
59
+ contextMenuElement.classList.remove("menu-visible");
60
+ contextMenuElement.classList.add("menu-hidden");
61
+ this.processNewNode();
62
+ this.displayNodes = this.displayNodes.map(displayNode => {
63
+ if (displayNode.editingText) {
64
+ displayNode.editingText = false;
65
+ if (this.onNodeChanged && displayNode.text !== displayNode.node.text) {
66
+ displayNode.node.text = displayNode.text;
67
+ this.onNodeChanged.emit(displayNode.node);
68
+ }
69
+ }
70
+ return displayNode;
71
+ });
72
+ }
73
+ onTextKeydown(e, displayNode) {
74
+ // Esc
75
+ if (e.keyCode === 27) {
76
+ displayNode.editingText = false;
77
+ displayNode.node.text = displayNode.text;
78
+ this.processNewNode();
79
+ }
80
+ // Enter or tab
81
+ if (e.keyCode === 13 || e.keyCode === 9) {
82
+ displayNode.editingText = false;
83
+ this.processNewNode();
84
+ if (this.onNodeChanged && displayNode.text !== displayNode.node.text) {
85
+ displayNode.node.text = displayNode.text;
86
+ this.onNodeChanged.emit(displayNode.node);
87
+ }
88
+ }
89
+ }
90
+ contextMenu(e) {
91
+ if (!e || !e.target)
92
+ return;
93
+ if (!SlickUtilsService.checkParentIdExists(e.target, `slick-tree-view_${this.uuid}`))
94
+ return;
95
+ const contextNodeElement = SlickUtilsService.findParent(e.target, "slick-tree-view-node");
96
+ if (!contextNodeElement)
97
+ return;
98
+ e.preventDefault();
99
+ this.contextNodeUuid = contextNodeElement.getAttribute("data-uuid");
100
+ const node = this.nodes.find(x => x.uuid === this.contextNodeUuid);
101
+ this.contextMenuShowAdd = node.canAddChildren;
102
+ this.contextMenuShowDelete = node.canDelete;
103
+ this.contextMenuShowEditText = node.canEditText;
104
+ // If there's nothing to do, don't even show the context menu
105
+ if (this.contextMenuShowAdd === false && this.contextMenuShowDelete === false && this.contextMenuShowEditText === false)
106
+ return;
107
+ const contextMenuElement = this.contextMenuRef.nativeElement;
108
+ const top = (contextNodeElement.offsetTop + contextNodeElement.offsetHeight - 5);
109
+ const indentationElement = contextNodeElement.querySelector(".slick-tree-view_indentation");
110
+ const iconElement = contextNodeElement.querySelector(".slick-tree-view_icon");
111
+ const indentationWidth = (indentationElement) ? indentationElement.offsetWidth : 0;
112
+ const iconWidth = (iconElement) ? iconElement.offsetWidth : 0;
113
+ const left = indentationWidth + iconWidth + 2;
114
+ contextMenuElement.style.top = top + "px";
115
+ contextMenuElement.style.left = left + "px";
116
+ contextMenuElement.classList.add("menu-visible");
117
+ contextMenuElement.classList.remove("menu-hidden");
118
+ }
119
+ async addNode() {
120
+ // Hide the context menu
121
+ const contextMenuElement = this.contextMenuRef.nativeElement;
122
+ contextMenuElement.classList.remove("menu-visible");
123
+ contextMenuElement.classList.add("menu-hidden");
124
+ if (!this.contextNodeUuid)
125
+ return;
126
+ const parentNodeIdx = this.nodes.findIndex(x => x.uuid === this.contextNodeUuid);
127
+ const parentNode = this.nodes[parentNodeIdx];
128
+ // Since we want to add this one to the top, pass null as the parent
129
+ var newNode = new SlickTreeNodeModel(null, "New Folder");
130
+ newNode.parentUuid = parentNode.uuid;
131
+ parentNode.expanded = true;
132
+ this.nodes.splice(parentNodeIdx, 0, newNode);
133
+ this.refreshDisplay();
134
+ const displayNode = this.displayNodes.find(x => x.uuid === newNode.uuid);
135
+ this.editText(displayNode);
136
+ this.newUuid = newNode.uuid;
137
+ }
138
+ async deleteNode() {
139
+ // Hide the context menu
140
+ const contextMenuElement = this.contextMenuRef.nativeElement;
141
+ contextMenuElement.classList.remove("menu-visible");
142
+ contextMenuElement.classList.add("menu-hidden");
143
+ if (!this.contextNodeUuid)
144
+ return;
145
+ const node = this.nodes.find(x => x.uuid === this.contextNodeUuid);
146
+ this.deleteNodeName = node.text;
147
+ const confirmResult = await this.deleteNodeConfirmRef.confirm();
148
+ if (confirmResult === SlickConfirmDialogResults.Cancel)
149
+ return;
150
+ const removedNodes = this.deleteRecursive(node);
151
+ this.refreshDisplay();
152
+ if (this.onNodeDeleted)
153
+ this.onNodeDeleted.emit(removedNodes);
154
+ if (this.nodesChange)
155
+ this.nodesChange.emit(this.nodes);
156
+ }
157
+ editNodeText() {
158
+ // Hide the context menu
159
+ const contextMenuElement = this.contextMenuRef.nativeElement;
160
+ contextMenuElement.classList.remove("menu-visible");
161
+ contextMenuElement.classList.add("menu-hidden");
162
+ if (!this.contextNodeUuid)
163
+ return;
164
+ const displayNode = this.displayNodes.find(x => x.uuid === this.contextNodeUuid);
165
+ this.editText(displayNode);
166
+ if (this.nodesChange)
167
+ this.nodesChange.emit(this.nodes);
168
+ }
169
+ selectNode(displayNode) {
170
+ if (this.selectedUuid === displayNode.uuid)
171
+ return;
172
+ this.selectedUuid = displayNode.uuid;
173
+ if (displayNode.node.expandOnClick === true)
174
+ this.expandNode(displayNode);
175
+ if (this.onNodeSelected)
176
+ this.onNodeSelected.emit(displayNode.node);
177
+ }
178
+ expandNode(displayNode) {
179
+ displayNode.node.expanded = true;
180
+ this.refreshDisplay();
181
+ }
182
+ collapseNode(displayNode) {
183
+ displayNode.node.expanded = false;
184
+ this.refreshDisplay();
185
+ }
186
+ async editText(displayNode) {
187
+ if (!displayNode.node.canEditText)
188
+ return;
189
+ displayNode.editingText = true;
190
+ await SlickSleepService.sleep();
191
+ const textbox = document.querySelector(`.slick-tree-view_node-text-edit_${displayNode.uuid}`);
192
+ if (textbox) {
193
+ textbox.focus();
194
+ textbox.select();
195
+ }
196
+ }
197
+ refreshDisplay() {
198
+ this.displayNodes = [];
199
+ if (!this.nodes || this.nodes.length === 0)
200
+ return;
201
+ let rootNode;
202
+ if (this.rootNodeUuid)
203
+ rootNode = this.nodes.find(x => x.uuid === this.rootNodeUuid);
204
+ else
205
+ rootNode = this.nodes.find(x => x.parentUuid === null);
206
+ // Always expand the root node
207
+ rootNode.expanded = true;
208
+ // If we aren't showing the root node, start at -1 for the indent level
209
+ this.populateDisplayNodes(rootNode, (this.showRootNode) ? 0 : -1);
210
+ if (this.showRootNode === false)
211
+ this.displayNodes = this.displayNodes.filter(x => x.parentUuid !== null);
212
+ }
213
+ populateDisplayNodes(node, level) {
214
+ if (level >= 100) {
215
+ console.error("Exceeeded max of 100 levels deep. Possible infinite recursion.");
216
+ return;
217
+ }
218
+ const displayNode = new SlickTreeViewDisplayModel(node, level);
219
+ if (node.expandOnClick === null || node.expandOnClick === undefined)
220
+ node.expandOnClick = this.expandOnClick;
221
+ if (displayNode.parentUuid === null)
222
+ displayNode.node.canDelete = false;
223
+ if (displayNode.uuid === this.newUuid)
224
+ displayNode.editingText = true;
225
+ this.displayNodes.push(displayNode);
226
+ const childNodes = this.nodes.filter(x => x.parentUuid === node.uuid) || [];
227
+ displayNode.hasChildNodes = (childNodes.length > 0);
228
+ if (node.expanded === true)
229
+ childNodes.forEach(childNode => {
230
+ if (!childNode.hidden)
231
+ this.populateDisplayNodes(childNode, level + 1);
232
+ });
233
+ }
234
+ deleteRecursive(node) {
235
+ let removedNodes = [];
236
+ const childNodes = this.nodes.filter(x => x.parentUuid === node.uuid) || [];
237
+ childNodes.forEach(childNode => {
238
+ removedNodes = removedNodes.concat(this.deleteRecursive(childNode));
239
+ });
240
+ removedNodes.push(node);
241
+ this.nodes = this.nodes.filter(x => x.uuid !== node.uuid);
242
+ return removedNodes;
243
+ }
244
+ processNewNode() {
245
+ if (!this.newUuid)
246
+ return;
247
+ const newNode = this.nodes.find(x => x.uuid === this.newUuid);
248
+ const displayNode = this.displayNodes.find(x => x.uuid == this.newUuid);
249
+ // Do this so that we don't trigger the node update
250
+ newNode.text = displayNode.text;
251
+ this.newUuid = null;
252
+ if (!newNode)
253
+ return;
254
+ if (this.onNodeAdded)
255
+ this.onNodeAdded.emit(newNode);
256
+ if (this.nodesChange)
257
+ this.nodesChange.emit(this.nodes);
258
+ }
259
+ }
260
+ /** @nocollapse */ SlickTreeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
261
+ /** @nocollapse */ SlickTreeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SlickTreeViewComponent, selector: "slick-tree-view", inputs: { nodes: "nodes", showRootNode: "showRootNode", rootNodeUuid: "rootNodeUuid", expandOnClick: "expandOnClick" }, outputs: { nodesChange: "nodesChange", onNodeSelected: "onNodeSelected", onNodeChanged: "onNodeChanged", onNodeAdded: "onNodeAdded", onNodeDeleted: "onNodeDeleted" }, viewQueries: [{ propertyName: "slickTreeViewRef", first: true, predicate: ["slickTreeViewRef"], descendants: true, static: true }, { propertyName: "contextMenuRef", first: true, predicate: ["contextMenuRef"], descendants: true }, { propertyName: "deleteNodeConfirmRef", first: true, predicate: ["deleteNodeConfirmRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #slickTreeViewRef id=\"slick-tree-view_{{uuid}}\" class=\"slick-tree-view position-relative pr-2\">\r\n\t<div class=\"d-flex slick-tree-view-node\" [attr.data-uuid]=\"displayNode.uuid\" *ngFor=\"let displayNode of displayNodes\">\r\n\t\t<div class=\"slick-tree-view_indentation\">\r\n\t\t\t<i *ngFor=\"let indent of displayNode.indentArray\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"!displayNode.hasChildNodes\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && !displayNode.expanded\" class=\"far fa-caret-right mr-1\" style=\"cursor: pointer\" (click)=\"expandNode(displayNode)\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && displayNode.expanded\" class=\"far fa-caret-down mr-1\" style=\"cursor: pointer\" (click)=\"collapseNode(displayNode)\"></i>\r\n\t\t</div>\r\n\t\t<div class=\"d-flex px-1\" [ngClass]=\"{'bg-success text-white' : displayNode.uuid === selectedUuid }\">\r\n\t\t\t<div *ngIf=\"displayNode.node.iconClass || displayNode.node.iconUrl\" class=\"mr-1 slick-tree-view_icon\">\r\n\t\t\t\t<i *ngIf=\"displayNode.node.iconClass\" [style.color]=\"displayNode.node.iconColor\" [ngClass]=\"displayNode.node.iconClass\"></i>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!displayNode.editingText\" style=\"cursor: pointer\" (click)=\"selectNode(displayNode)\" (dblclick)=\"editText(displayNode)\">{{displayNode.text}}</div>\r\n\t\t\t<div *ngIf=\"displayNode.editingText\" class=\"slick-tree-view_node-text-edit\"><input type=\"text\" class=\"form-control slick-tree-view_node-text-edit_{{displayNode.uuid}}\" [(ngModel)]=\"displayNode.text\" (keydown)=\"onTextKeydown($event, displayNode)\" /></div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div #contextMenuRef class='slick-tree-view_context-menu dropdown-menu p-0 show menu-hidden'>\r\n\t\t<div *ngIf=\"contextMenuShowAdd\" class=\"px-2 dropdown-item\" (click)=\"addNode()\">Add</div>\r\n\t\t<div *ngIf=\"contextMenuShowDelete\" class=\"px-2 dropdown-item\" (click)=\"deleteNode()\">Delete</div>\r\n\t\t<div *ngIf=\"contextMenuShowEditText\" class=\"px-2 dropdown-item\" (click)=\"editNodeText()\">Edit Name</div>\r\n\t</div>\r\n</div>\r\n\r\n<slick-confirm-dialog #deleteNodeConfirmRef>\r\n\tAre you sure you want to delete {{deleteNodeName}}?\r\n</slick-confirm-dialog>", components: [{ type: i1.SlickConfirmDialogComponent, selector: "slick-confirm-dialog", inputs: ["width", "okButtonText", "cancelButtonText", "showOkButton", "showCancelButton"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewComponent, decorators: [{
263
+ type: Component,
264
+ args: [{ selector: 'slick-tree-view', template: "<div #slickTreeViewRef id=\"slick-tree-view_{{uuid}}\" class=\"slick-tree-view position-relative pr-2\">\r\n\t<div class=\"d-flex slick-tree-view-node\" [attr.data-uuid]=\"displayNode.uuid\" *ngFor=\"let displayNode of displayNodes\">\r\n\t\t<div class=\"slick-tree-view_indentation\">\r\n\t\t\t<i *ngFor=\"let indent of displayNode.indentArray\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"!displayNode.hasChildNodes\" class=\"far fa-caret-right mr-1\" style=\"opacity: 0\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && !displayNode.expanded\" class=\"far fa-caret-right mr-1\" style=\"cursor: pointer\" (click)=\"expandNode(displayNode)\"></i>\r\n\t\t\t<i *ngIf=\"displayNode.hasChildNodes && displayNode.expanded\" class=\"far fa-caret-down mr-1\" style=\"cursor: pointer\" (click)=\"collapseNode(displayNode)\"></i>\r\n\t\t</div>\r\n\t\t<div class=\"d-flex px-1\" [ngClass]=\"{'bg-success text-white' : displayNode.uuid === selectedUuid }\">\r\n\t\t\t<div *ngIf=\"displayNode.node.iconClass || displayNode.node.iconUrl\" class=\"mr-1 slick-tree-view_icon\">\r\n\t\t\t\t<i *ngIf=\"displayNode.node.iconClass\" [style.color]=\"displayNode.node.iconColor\" [ngClass]=\"displayNode.node.iconClass\"></i>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"!displayNode.editingText\" style=\"cursor: pointer\" (click)=\"selectNode(displayNode)\" (dblclick)=\"editText(displayNode)\">{{displayNode.text}}</div>\r\n\t\t\t<div *ngIf=\"displayNode.editingText\" class=\"slick-tree-view_node-text-edit\"><input type=\"text\" class=\"form-control slick-tree-view_node-text-edit_{{displayNode.uuid}}\" [(ngModel)]=\"displayNode.text\" (keydown)=\"onTextKeydown($event, displayNode)\" /></div>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<div #contextMenuRef class='slick-tree-view_context-menu dropdown-menu p-0 show menu-hidden'>\r\n\t\t<div *ngIf=\"contextMenuShowAdd\" class=\"px-2 dropdown-item\" (click)=\"addNode()\">Add</div>\r\n\t\t<div *ngIf=\"contextMenuShowDelete\" class=\"px-2 dropdown-item\" (click)=\"deleteNode()\">Delete</div>\r\n\t\t<div *ngIf=\"contextMenuShowEditText\" class=\"px-2 dropdown-item\" (click)=\"editNodeText()\">Edit Name</div>\r\n\t</div>\r\n</div>\r\n\r\n<slick-confirm-dialog #deleteNodeConfirmRef>\r\n\tAre you sure you want to delete {{deleteNodeName}}?\r\n</slick-confirm-dialog>" }]
265
+ }], ctorParameters: function () { return []; }, propDecorators: { nodes: [{
266
+ type: Input
267
+ }], nodesChange: [{
268
+ type: Output
269
+ }], showRootNode: [{
270
+ type: Input
271
+ }], rootNodeUuid: [{
272
+ type: Input
273
+ }], expandOnClick: [{
274
+ type: Input
275
+ }], onNodeSelected: [{
276
+ type: Output
277
+ }], onNodeChanged: [{
278
+ type: Output
279
+ }], onNodeAdded: [{
280
+ type: Output
281
+ }], onNodeDeleted: [{
282
+ type: Output
283
+ }], slickTreeViewRef: [{
284
+ type: ViewChild,
285
+ args: ["slickTreeViewRef", { static: true }]
286
+ }], contextMenuRef: [{
287
+ type: ViewChild,
288
+ args: ["contextMenuRef"]
289
+ }], deleteNodeConfirmRef: [{
290
+ type: ViewChild,
291
+ args: ["deleteNodeConfirmRef"]
292
+ }] } });
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXRyZWUtdmlldy9zbGljay10cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stdHJlZS12aWV3L3NsaWNrLXRyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxFQUFFLFlBQVksRUFBcUIsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBdUIsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQStCLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7O0FBRTdILE1BQU0seUJBQXlCO0lBQzlCLFlBQVksSUFBeUIsRUFBRSxLQUFhO1FBQ25ELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUMsV0FBVyxHQUFH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QUVSLElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsV0FBVztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7c0lBdlVXLHNCQUFzQjswSEFBdEIsc0JBQXNCLGlzQkNwQ25DLDh4RUEwQnVCOzJGRFVWLHNCQUFzQjtrQkFKbEMsU0FBUzsrQkFDQyxpQkFBaUI7MEVBSWxCLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBRTBDLGdCQUFnQjtzQkFBaEUsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2xCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNRLG9CQUFvQjtzQkFBdEQsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSVNsaWNrVHJlZU5vZGVNb2RlbCwgU2xpY2tUcmVlTm9kZU1vZGVsIH0gZnJvbSAnLi9zbGljay10cmVlLW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tDb25maXJtRGlhbG9nQ29tcG9uZW50LCBTbGlja0NvbmZpcm1EaWFsb2dSZXN1bHRzIH0gZnJvbSAnLi4vc2xpY2stY29uZmlybS1kaWFsb2cvc2xpY2stY29uZmlybS1kaWFsb2cubW9kdWxlJztcclxuXHJcbmNsYXNzIFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwge1xyXG5cdGNvbnN0cnVjdG9yKG5vZGU6IElTbGlja1RyZWVOb2RlTW9kZWwsIGxldmVsOiBudW1iZXIpIHtcclxuXHRcdHRoaXMudXVpZCA9IG5vZGUudXVpZDtcclxuXHRcdHRoaXMucGFyZW50VXVpZCA9IG5vZGUucGFyZW50VXVpZDtcclxuXHRcdHRoaXMubm9kZSA9IG5vZGU7XHJcblx0XHR0aGlzLnRleHQgPSBub2RlLnRleHQ7XHJcblx0XHR0aGlzLmxldmVsID0gbGV2ZWw7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gbm9kZS5leHBhbmRlZDtcclxuXHRcdHRoaXMuZWRpdGluZ1RleHQgPSBmYWxzZTtcclxuXHJcblx0XHR0aGlzLmluZGVudEFycmF5ID0gW107XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGV2ZWw7IGkrKylcclxuXHRcdFx0dGhpcy5pbmRlbnRBcnJheS5wdXNoKHRydWUpO1xyXG5cdH1cclxuXHJcblx0bm9kZTogSVNsaWNrVHJlZU5vZGVNb2RlbDtcclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0dGV4dDogc3RyaW5nO1xyXG5cdHBhcmVudFV1aWQ6IHN0cmluZztcclxuXHRsZXZlbDogbnVtYmVyO1xyXG5cdGluZGVudEFycmF5OiBib29sZWFuW107XHJcblx0ZXhwYW5kZWQ6IGJvb2xlYW47XHJcblx0aGFzQ2hpbGROb2RlczogYm9vbGVhbjtcclxuXHRlZGl0aW5nVGV4dDogYm9vbGVhbjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay10cmVlLXZpZXcnLFxyXG5cdHRlbXBsYXRlVXJsOiAnc2xpY2stdHJlZS12aWV3LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tUcmVlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dCgpIG5vZGVzOiBJU2xpY2tUcmVlTm9kZU1vZGVsW107XHJcblx0QE91dHB1dCgpIG5vZGVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRASW5wdXQoKSBzaG93Um9vdE5vZGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdEBJbnB1dCgpIHJvb3ROb2RlVXVpZDogc3RyaW5nO1xyXG5cdEBJbnB1dCgpIGV4cGFuZE9uQ2xpY2s6IGJvb2xlYW4gPSB0cnVlO1xyXG5cdEBPdXRwdXQoKSBvbk5vZGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbD4oKTtcclxuXHRAT3V0cHV0KCkgb25Ob2RlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SVNsaWNrVHJlZU5vZGVNb2RlbD4oKTtcclxuXHRAT3V0cHV0KCkgb25Ob2RlQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElTbGlja1RyZWVOb2RlTW9kZWw+KCk7XHJcblx0QE91dHB1dCgpIG9uTm9kZURlbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElTbGlja1RyZWVOb2RlTW9kZWxbXT4oKTtcclxuXHJcblx0QFZpZXdDaGlsZChcInNsaWNrVHJlZVZpZXdSZWZcIiwgeyBzdGF0aWM6IHRydWUgfSkgc2xpY2tUcmVlVmlld1JlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwiY29udGV4dE1lbnVSZWZcIikgY29udGV4dE1lbnVSZWY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcImRlbGV0ZU5vZGVDb25maXJtUmVmXCIpIGRlbGV0ZU5vZGVDb25maXJtUmVmOiBTbGlja0NvbmZpcm1EaWFsb2dDb21wb25lbnQ7XHJcblxyXG5cdGZuRG9jdW1lbnRDbGljayA9IChlKSA9PiB0aGlzLmRvY3VtZW50Q2xpY2soZSk7XHJcblx0Zm5Db250ZXh0TWVudSA9IChlKSA9PiB0aGlzLmNvbnRleHRNZW51KGUpO1xyXG5cclxuXHRjb250ZXh0Tm9kZVV1aWQ6IHN0cmluZztcclxuXHJcblx0dXVpZDogc3RyaW5nID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdGRpc3BsYXlOb2RlczogU2xpY2tUcmVlVmlld0Rpc3BsYXlNb2RlbFtdO1xyXG5cdHNlbGVjdGVkVXVpZDogc3RyaW5nO1xyXG5cdG5ld1V1aWQ6IHN0cmluZyA9IG51bGw7XHJcblx0ZGVsZXRlTm9kZU5hbWU6IHN0cmluZztcclxuXHJcblx0Y29udGV4dE1lbnVTaG93QWRkOiBib29sZWFuO1xyXG5cdGNvbnRleHRNZW51U2hvd0RlbGV0ZTogYm9vbGVhbjtcclxuXHRjb250ZXh0TWVudVNob3dFZGl0VGV4dDogYm9vbGVhbjtcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0dGhpcy5zbGlja1RyZWVWaWV3UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsIHRoaXMuZm5Db250ZXh0TWVudSwgdHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLmZuRG9jdW1lbnRDbGljaywgdHJ1ZSk7XHJcblx0XHR0aGlzLnNsaWNrVHJlZVZpZXdSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIiwgdGhpcy5mbkNvbnRleHRNZW51LCB0cnVlKTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdHRoaXMuZXhwYW5kT25DbGljayA9ICh0aGlzLmV4cGFuZE9uQ2xpY2sudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSA/IGZhbHNlIDogdHJ1ZTtcclxuXHRcdHRoaXMuc2hvd1Jvb3ROb2RlID0gKHRoaXMuc2hvd1Jvb3ROb2RlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykgPyBmYWxzZSA6IHRydWU7XHJcblx0XHR0aGlzLnJvb3ROb2RlVXVpZCA9IHRoaXMucm9vdE5vZGVVdWlkIHx8IG51bGw7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMubm9kZXMpXHJcblx0XHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGRvY3VtZW50Q2xpY2soZTogTW91c2VFdmVudCkge1xyXG5cdFx0aWYgKGUudGFyZ2V0ICYmIFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50Q2xhc3NFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCBcInNsaWNrLXRyZWUtdmlld19ub2RlLXRleHQtZWRpdFwiKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGlmIChlLnRhcmdldCAmJiBTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudENsYXNzRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay10cmVlLXZpZXdfY29udGV4dC1tZW51XCIpKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHR0aGlzLnByb2Nlc3NOZXdOb2RlKCk7XHJcblxyXG5cdFx0dGhpcy5kaXNwbGF5Tm9kZXMgPSB0aGlzLmRpc3BsYXlOb2Rlcy5tYXAoZGlzcGxheU5vZGUgPT4ge1xyXG5cdFx0XHRpZiAoZGlzcGxheU5vZGUuZWRpdGluZ1RleHQpIHtcclxuXHRcdFx0XHRkaXNwbGF5Tm9kZS5lZGl0aW5nVGV4dCA9IGZhbHNlO1xyXG5cdFx0XHRcdGlmICh0aGlzLm9uTm9kZUNoYW5nZWQgJiYgZGlzcGxheU5vZGUudGV4dCAhPT0gZGlzcGxheU5vZGUubm9kZS50ZXh0KSB7XHJcblx0XHRcdFx0XHRkaXNwbGF5Tm9kZS5ub2RlLnRleHQgPSBkaXNwbGF5Tm9kZS50ZXh0O1xyXG5cdFx0XHRcdFx0dGhpcy5vbk5vZGVDaGFuZ2VkLmVtaXQoZGlzcGxheU5vZGUubm9kZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gZGlzcGxheU5vZGU7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG9uVGV4dEtleWRvd24oZTogS2V5Ym9hcmRFdmVudCwgZGlzcGxheU5vZGU6IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwpIHtcclxuXHRcdC8vIEVzY1xyXG5cdFx0aWYgKGUua2V5Q29kZSA9PT0gMjcpIHtcclxuXHRcdFx0ZGlzcGxheU5vZGUuZWRpdGluZ1RleHQgPSBmYWxzZTtcclxuXHRcdFx0ZGlzcGxheU5vZGUubm9kZS50ZXh0ID0gZGlzcGxheU5vZGUudGV4dDtcclxuXHRcdFx0dGhpcy5wcm9jZXNzTmV3Tm9kZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEVudGVyIG9yIHRhYlxyXG5cdFx0aWYgKGUua2V5Q29kZSA9PT0gMTMgfHwgZS5rZXlDb2RlID09PSA5KSB7XHJcblx0XHRcdGRpc3BsYXlOb2RlLmVkaXRpbmdUZXh0ID0gZmFsc2U7XHJcblx0XHRcdHRoaXMucHJvY2Vzc05ld05vZGUoKTtcclxuXHRcdFx0aWYgKHRoaXMub25Ob2RlQ2hhbmdlZCAmJiBkaXNwbGF5Tm9kZS50ZXh0ICE9PSBkaXNwbGF5Tm9kZS5ub2RlLnRleHQpIHtcclxuXHRcdFx0XHRkaXNwbGF5Tm9kZS5ub2RlLnRleHQgPSBkaXNwbGF5Tm9kZS50ZXh0O1xyXG5cdFx0XHRcdHRoaXMub25Ob2RlQ2hhbmdlZC5lbWl0KGRpc3BsYXlOb2RlLm5vZGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XHJcblx0XHRpZiAoIWUgfHwgIWUudGFyZ2V0KVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0aWYgKCFTbGlja1V0aWxzU2VydmljZS5jaGVja1BhcmVudElkRXhpc3RzKDxIVE1MRWxlbWVudD5lLnRhcmdldCwgYHNsaWNrLXRyZWUtdmlld18ke3RoaXMudXVpZH1gKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IGNvbnRleHROb2RlRWxlbWVudCA9IDxIVE1MRGl2RWxlbWVudD5TbGlja1V0aWxzU2VydmljZS5maW5kUGFyZW50KDxIVE1MRWxlbWVudD5lLnRhcmdldCwgXCJzbGljay10cmVlLXZpZXctbm9kZVwiKTtcclxuXHRcdGlmICghY29udGV4dE5vZGVFbGVtZW50KVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuXHRcdHRoaXMuY29udGV4dE5vZGVVdWlkID0gY29udGV4dE5vZGVFbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtdXVpZFwiKTtcclxuXHJcblx0XHRjb25zdCBub2RlID0gdGhpcy5ub2Rlcy5maW5kKHggPT4geC51dWlkID09PSB0aGlzLmNvbnRleHROb2RlVXVpZCk7XHJcblx0XHR0aGlzLmNvbnRleHRNZW51U2hvd0FkZCA9IG5vZGUuY2FuQWRkQ2hpbGRyZW47XHJcblx0XHR0aGlzLmNvbnRleHRNZW51U2hvd0RlbGV0ZSA9IG5vZGUuY2FuRGVsZXRlO1xyXG5cdFx0dGhpcy5jb250ZXh0TWVudVNob3dFZGl0VGV4dCA9IG5vZGUuY2FuRWRpdFRleHQ7XHJcblxyXG5cdFx0Ly8gSWYgdGhlcmUncyBub3RoaW5nIHRvIGRvLCBkb24ndCBldmVuIHNob3cgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0aWYgKHRoaXMuY29udGV4dE1lbnVTaG93QWRkID09PSBmYWxzZSAmJiB0aGlzLmNvbnRleHRNZW51U2hvd0RlbGV0ZSA9PT0gZmFsc2UgJiYgdGhpcy5jb250ZXh0TWVudVNob3dFZGl0VGV4dCA9PT0gZmFsc2UpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRjb25zdCBjb250ZXh0TWVudUVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+dGhpcy5jb250ZXh0TWVudVJlZi5uYXRpdmVFbGVtZW50O1xyXG5cdFx0Y29uc3QgdG9wID0gKGNvbnRleHROb2RlRWxlbWVudC5vZmZzZXRUb3AgKyBjb250ZXh0Tm9kZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gNSk7XHJcblxyXG5cdFx0Y29uc3QgaW5kZW50YXRpb25FbGVtZW50ID0gPEhUTUxEaXZFbGVtZW50PmNvbnRleHROb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnNsaWNrLXRyZWUtdmlld19pbmRlbnRhdGlvblwiKTtcclxuXHRcdGNvbnN0IGljb25FbGVtZW50ID0gPEhUTUxEaXZFbGVtZW50PmNvbnRleHROb2RlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnNsaWNrLXRyZWUtdmlld19pY29uXCIpO1xyXG5cdFx0Y29uc3QgaW5kZW50YXRpb25XaWR0aCA9IChpbmRlbnRhdGlvbkVsZW1lbnQpID8gaW5kZW50YXRpb25FbGVtZW50Lm9mZnNldFdpZHRoIDogMDtcclxuXHRcdGNvbnN0IGljb25XaWR0aCA9IChpY29uRWxlbWVudCkgPyBpY29uRWxlbWVudC5vZmZzZXRXaWR0aCA6IDA7XHJcblx0XHRjb25zdCBsZWZ0ID0gaW5kZW50YXRpb25XaWR0aCArIGljb25XaWR0aCArIDI7XHJcblxyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LnN0eWxlLnRvcCA9IHRvcCArIFwicHhcIjtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArIFwicHhcIjtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJtZW51LWhpZGRlblwiKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGFkZE5vZGUoKSB7XHJcblx0XHQvLyBIaWRlIHRoZSBjb250ZXh0IG1lbnVcclxuXHRcdGNvbnN0IGNvbnRleHRNZW51RWxlbWVudCA9IDxIVE1MRWxlbWVudD50aGlzLmNvbnRleHRNZW51UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHRjb250ZXh0TWVudUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcIm1lbnUtdmlzaWJsZVwiKTtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibWVudS1oaWRkZW5cIik7XHJcblxyXG5cdFx0aWYgKCF0aGlzLmNvbnRleHROb2RlVXVpZClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHBhcmVudE5vZGVJZHggPSB0aGlzLm5vZGVzLmZpbmRJbmRleCh4ID0+IHgudXVpZCA9PT0gdGhpcy5jb250ZXh0Tm9kZVV1aWQpO1xyXG5cdFx0Y29uc3QgcGFyZW50Tm9kZSA9IHRoaXMubm9kZXNbcGFyZW50Tm9kZUlkeF1cclxuXHRcdC8vIFNpbmNlIHdlIHdhbnQgdG8gYWRkIHRoaXMgb25lIHRvIHRoZSB0b3AsIHBhc3MgbnVsbCBhcyB0aGUgcGFyZW50XHJcblx0XHR2YXIgbmV3Tm9kZSA9IG5ldyBTbGlja1RyZWVOb2RlTW9kZWwobnVsbCwgXCJOZXcgRm9sZGVyXCIpO1xyXG5cdFx0bmV3Tm9kZS5wYXJlbnRVdWlkID0gcGFyZW50Tm9kZS51dWlkO1xyXG5cdFx0cGFyZW50Tm9kZS5leHBhbmRlZCA9IHRydWU7XHJcblx0XHR0aGlzLm5vZGVzLnNwbGljZShwYXJlbnROb2RlSWR4LCAwLCBuZXdOb2RlKTtcclxuXHJcblx0XHR0aGlzLnJlZnJlc2hEaXNwbGF5KCk7XHJcblxyXG5cdFx0Y29uc3QgZGlzcGxheU5vZGUgPSB0aGlzLmRpc3BsYXlOb2Rlcy5maW5kKHggPT4geC51dWlkID09PSBuZXdOb2RlLnV1aWQpO1xyXG5cdFx0dGhpcy5lZGl0VGV4dChkaXNwbGF5Tm9kZSk7XHJcblxyXG5cdFx0dGhpcy5uZXdVdWlkID0gbmV3Tm9kZS51dWlkO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZGVsZXRlTm9kZSgpIHtcclxuXHRcdC8vIEhpZGUgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHRpZiAoIXRoaXMuY29udGV4dE5vZGVVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5jb250ZXh0Tm9kZVV1aWQpO1xyXG5cclxuXHRcdHRoaXMuZGVsZXRlTm9kZU5hbWUgPSBub2RlLnRleHQ7XHJcblxyXG5cdFx0Y29uc3QgY29uZmlybVJlc3VsdCA9IGF3YWl0IHRoaXMuZGVsZXRlTm9kZUNvbmZpcm1SZWYuY29uZmlybSgpO1xyXG5cclxuXHRcdGlmIChjb25maXJtUmVzdWx0ID09PSBTbGlja0NvbmZpcm1EaWFsb2dSZXN1bHRzLkNhbmNlbClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNvbnN0IHJlbW92ZWROb2RlcyA9IHRoaXMuZGVsZXRlUmVjdXJzaXZlKG5vZGUpO1xyXG5cclxuXHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHJcblx0XHRpZiAodGhpcy5vbk5vZGVEZWxldGVkKVxyXG5cdFx0XHR0aGlzLm9uTm9kZURlbGV0ZWQuZW1pdChyZW1vdmVkTm9kZXMpO1xyXG5cclxuXHRcdGlmICh0aGlzLm5vZGVzQ2hhbmdlKSBcclxuXHRcdFx0dGhpcy5ub2Rlc0NoYW5nZS5lbWl0KHRoaXMubm9kZXMpO1x0XHRcclxuXHR9XHJcblxyXG5cdGVkaXROb2RlVGV4dCgpIHtcclxuXHRcdC8vIEhpZGUgdGhlIGNvbnRleHQgbWVudVxyXG5cdFx0Y29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuY29udGV4dE1lbnVSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdGNvbnRleHRNZW51RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibWVudS12aXNpYmxlXCIpO1xyXG5cdFx0Y29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJtZW51LWhpZGRlblwiKTtcclxuXHJcblx0XHRpZiAoIXRoaXMuY29udGV4dE5vZGVVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgZGlzcGxheU5vZGUgPSB0aGlzLmRpc3BsYXlOb2Rlcy5maW5kKHggPT4geC51dWlkID09PSB0aGlzLmNvbnRleHROb2RlVXVpZCk7XHJcblx0XHR0aGlzLmVkaXRUZXh0KGRpc3BsYXlOb2RlKTtcclxuXHJcblx0XHRpZiAodGhpcy5ub2Rlc0NoYW5nZSkgXHJcblx0XHRcdHRoaXMubm9kZXNDaGFuZ2UuZW1pdCh0aGlzLm5vZGVzKTtcdFx0XHJcblx0fVxyXG5cclxuXHRzZWxlY3ROb2RlKGRpc3BsYXlOb2RlOiBTbGlja1RyZWVWaWV3RGlzcGxheU1vZGVsKSB7XHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZFV1aWQgPT09IGRpc3BsYXlOb2RlLnV1aWQpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkVXVpZCA9IGRpc3BsYXlOb2RlLnV1aWQ7XHJcblx0XHRpZiAoZGlzcGxheU5vZGUubm9kZS5leHBhbmRPbkNsaWNrID09PSB0cnVlKVxyXG5cdFx0XHR0aGlzLmV4cGFuZE5vZGUoZGlzcGxheU5vZGUpO1xyXG5cclxuXHRcdGlmICh0aGlzLm9uTm9kZVNlbGVjdGVkKVxyXG5cdFx0XHR0aGlzLm9uTm9kZVNlbGVjdGVkLmVtaXQoZGlzcGxheU5vZGUubm9kZSk7XHJcblx0fVxyXG5cclxuXHRleHBhbmROb2RlKGRpc3BsYXlOb2RlOiBTbGlja1RyZWVWaWV3RGlzcGxheU1vZGVsKSB7XHJcblx0XHRkaXNwbGF5Tm9kZS5ub2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHRcdHRoaXMucmVmcmVzaERpc3BsYXkoKTtcclxuXHR9XHJcblxyXG5cdGNvbGxhcHNlTm9kZShkaXNwbGF5Tm9kZTogU2xpY2tUcmVlVmlld0Rpc3BsYXlNb2RlbCkge1xyXG5cdFx0ZGlzcGxheU5vZGUubm9kZS5leHBhbmRlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5yZWZyZXNoRGlzcGxheSgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZWRpdFRleHQoZGlzcGxheU5vZGU6IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwpIHtcclxuXHRcdGlmICghZGlzcGxheU5vZGUubm9kZS5jYW5FZGl0VGV4dClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGRpc3BsYXlOb2RlLmVkaXRpbmdUZXh0ID0gdHJ1ZTtcclxuXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0Y29uc3QgdGV4dGJveCA9IDxIVE1MSW5wdXRFbGVtZW50PmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC5zbGljay10cmVlLXZpZXdfbm9kZS10ZXh0LWVkaXRfJHtkaXNwbGF5Tm9kZS51dWlkfWApO1xyXG5cdFx0aWYgKHRleHRib3gpIHtcclxuXHRcdFx0dGV4dGJveC5mb2N1cygpO1xyXG5cdFx0XHR0ZXh0Ym94LnNlbGVjdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWZyZXNoRGlzcGxheSgpIHtcclxuXHRcdHRoaXMuZGlzcGxheU5vZGVzID0gW107XHJcblxyXG5cdFx0aWYgKCF0aGlzLm5vZGVzIHx8IHRoaXMubm9kZXMubGVuZ3RoID09PSAwKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0bGV0IHJvb3ROb2RlOiBJU2xpY2tUcmVlTm9kZU1vZGVsO1xyXG5cdFx0aWYgKHRoaXMucm9vdE5vZGVVdWlkKVxyXG5cdFx0XHRyb290Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5yb290Tm9kZVV1aWQpO1xyXG5cdFx0ZWxzZVxyXG5cdFx0XHRyb290Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgucGFyZW50VXVpZCA9PT0gbnVsbCk7XHJcblx0XHQvLyBBbHdheXMgZXhwYW5kIHRoZSByb290IG5vZGVcclxuXHRcdHJvb3ROb2RlLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0XHQvLyBJZiB3ZSBhcmVuJ3Qgc2hvd2luZyB0aGUgcm9vdCBub2RlLCBzdGFydCBhdCAtMSBmb3IgdGhlIGluZGVudCBsZXZlbFxyXG5cdFx0dGhpcy5wb3B1bGF0ZURpc3BsYXlOb2Rlcyhyb290Tm9kZSwgKHRoaXMuc2hvd1Jvb3ROb2RlKSA/IDAgOiAtMSk7XHJcblxyXG5cdFx0aWYgKHRoaXMuc2hvd1Jvb3ROb2RlID09PSBmYWxzZSkgXHJcblx0XHRcdHRoaXMuZGlzcGxheU5vZGVzID0gdGhpcy5kaXNwbGF5Tm9kZXMuZmlsdGVyKHggPT4geC5wYXJlbnRVdWlkICE9PSBudWxsKTtcdFx0XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHBvcHVsYXRlRGlzcGxheU5vZGVzKG5vZGU6IElTbGlja1RyZWVOb2RlTW9kZWwsIGxldmVsOiBudW1iZXIpIHtcclxuXHRcdGlmIChsZXZlbCA+PSAxMDApIHtcclxuXHRcdFx0Y29uc29sZS5lcnJvcihcIkV4Y2VlZWRlZCBtYXggb2YgMTAwIGxldmVscyBkZWVwLiAgUG9zc2libGUgaW5maW5pdGUgcmVjdXJzaW9uLlwiKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRpc3BsYXlOb2RlID0gbmV3IFNsaWNrVHJlZVZpZXdEaXNwbGF5TW9kZWwobm9kZSwgbGV2ZWwpO1xyXG5cclxuXHRcdGlmIChub2RlLmV4cGFuZE9uQ2xpY2sgPT09IG51bGwgfHwgbm9kZS5leHBhbmRPbkNsaWNrID09PSB1bmRlZmluZWQpXHJcblx0XHRcdG5vZGUuZXhwYW5kT25DbGljayA9IHRoaXMuZXhwYW5kT25DbGljaztcclxuXHJcblx0XHRpZiAoZGlzcGxheU5vZGUucGFyZW50VXVpZCA9PT0gbnVsbClcclxuXHRcdFx0ZGlzcGxheU5vZGUubm9kZS5jYW5EZWxldGUgPSBmYWxzZTtcclxuXHJcblx0XHRpZiAoZGlzcGxheU5vZGUudXVpZCA9PT0gdGhpcy5uZXdVdWlkKSBcclxuXHRcdFx0ZGlzcGxheU5vZGUuZWRpdGluZ1RleHQgPSB0cnVlO1xyXG5cdFx0XHJcblx0XHR0aGlzLmRpc3BsYXlOb2Rlcy5wdXNoKGRpc3BsYXlOb2RlKTtcclxuXHJcblx0XHRjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5ub2Rlcy5maWx0ZXIoeCA9PiB4LnBhcmVudFV1aWQgPT09IG5vZGUudXVpZCkgfHwgW107XHJcblx0XHRkaXNwbGF5Tm9kZS5oYXNDaGlsZE5vZGVzID0gKGNoaWxkTm9kZXMubGVuZ3RoID4gMCk7XHJcblxyXG5cdFx0aWYgKG5vZGUuZXhwYW5kZWQgPT09IHRydWUpXHJcblx0XHRcdGNoaWxkTm9kZXMuZm9yRWFjaChjaGlsZE5vZGUgPT4ge1xyXG5cdFx0XHRcdGlmICghY2hpbGROb2RlLmhpZGRlbilcclxuXHRcdFx0XHRcdHRoaXMucG9wdWxhdGVEaXNwbGF5Tm9kZXMoY2hpbGROb2RlLCBsZXZlbCArIDEpXHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkZWxldGVSZWN1cnNpdmUobm9kZTogSVNsaWNrVHJlZU5vZGVNb2RlbCk6IElTbGlja1RyZWVOb2RlTW9kZWxbXSB7XHJcblx0XHRsZXQgcmVtb3ZlZE5vZGVzOiBJU2xpY2tUcmVlTm9kZU1vZGVsW10gPSBbXTtcclxuXHJcblx0XHRjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5ub2Rlcy5maWx0ZXIoeCA9PiB4LnBhcmVudFV1aWQgPT09IG5vZGUudXVpZCkgfHwgW107XHJcblxyXG5cdFx0Y2hpbGROb2Rlcy5mb3JFYWNoKGNoaWxkTm9kZSA9PiB7XHJcblx0XHRcdHJlbW92ZWROb2RlcyA9IHJlbW92ZWROb2Rlcy5jb25jYXQodGhpcy5kZWxldGVSZWN1cnNpdmUoY2hpbGROb2RlKSlcclxuXHRcdH0pO1xyXG5cclxuXHRcdHJlbW92ZWROb2Rlcy5wdXNoKG5vZGUpO1xyXG5cclxuXHRcdHRoaXMubm9kZXMgPSB0aGlzLm5vZGVzLmZpbHRlcih4ID0+IHgudXVpZCAhPT0gbm9kZS51dWlkKTtcclxuXHJcblx0XHRyZXR1cm4gcmVtb3ZlZE5vZGVzO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBwcm9jZXNzTmV3Tm9kZSgpIHtcclxuXHRcdGlmICghdGhpcy5uZXdVdWlkKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0Y29uc3QgbmV3Tm9kZSA9IHRoaXMubm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PT0gdGhpcy5uZXdVdWlkKTtcclxuXHRcdGNvbnN0IGRpc3BsYXlOb2RlID0gdGhpcy5kaXNwbGF5Tm9kZXMuZmluZCh4ID0+IHgudXVpZCA9PSB0aGlzLm5ld1V1aWQpO1xyXG5cdFx0Ly8gRG8gdGhpcyBzbyB0aGF0IHdlIGRvbid0IHRyaWdnZXIgdGhlIG5vZGUgdXBkYXRlXHJcblx0XHQgbmV3Tm9kZS50ZXh0ID0gZGlzcGxheU5vZGUudGV4dDtcclxuXHJcblx0XHR0aGlzLm5ld1V1aWQgPSBudWxsO1xyXG5cclxuXHRcdGlmICghbmV3Tm9kZSkgXHJcblx0XHRcdHJldHVybjtcdFx0XHJcblxyXG5cdFx0aWYgKHRoaXMub25Ob2RlQWRkZWQpXHJcblx0XHRcdHRoaXMub25Ob2RlQWRkZWQuZW1pdChuZXdOb2RlKTtcclxuXHJcblx0XHRpZiAodGhpcy5ub2Rlc0NoYW5nZSlcclxuXHRcdFx0dGhpcy5ub2Rlc0NoYW5nZS5lbWl0KHRoaXMubm9kZXMpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2ICNzbGlja1RyZWVWaWV3UmVmIGlkPVwic2xpY2stdHJlZS12aWV3X3t7dXVpZH19XCIgY2xhc3M9XCJzbGljay10cmVlLXZpZXcgcG9zaXRpb24tcmVsYXRpdmUgcHItMlwiPlxyXG5cdDxkaXYgY2xhc3M9XCJkLWZsZXggc2xpY2stdHJlZS12aWV3LW5vZGVcIiBbYXR0ci5kYXRhLXV1aWRdPVwiZGlzcGxheU5vZGUudXVpZFwiICpuZ0Zvcj1cImxldCBkaXNwbGF5Tm9kZSBvZiBkaXNwbGF5Tm9kZXNcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJzbGljay10cmVlLXZpZXdfaW5kZW50YXRpb25cIj5cclxuXHRcdFx0PGkgKm5nRm9yPVwibGV0IGluZGVudCBvZiBkaXNwbGF5Tm9kZS5pbmRlbnRBcnJheVwiIGNsYXNzPVwiZmFyIGZhLWNhcmV0LXJpZ2h0IG1yLTFcIiBzdHlsZT1cIm9wYWNpdHk6IDBcIj48L2k+XHJcblx0XHRcdDxpICpuZ0lmPVwiIWRpc3BsYXlOb2RlLmhhc0NoaWxkTm9kZXNcIiBjbGFzcz1cImZhciBmYS1jYXJldC1yaWdodCBtci0xXCIgc3R5bGU9XCJvcGFjaXR5OiAwXCI+PC9pPlxyXG5cdFx0XHQ8aSAqbmdJZj1cImRpc3BsYXlOb2RlLmhhc0NoaWxkTm9kZXMgJiYgIWRpc3BsYXlOb2RlLmV4cGFuZGVkXCIgY2xhc3M9XCJmYXIgZmEtY2FyZXQtcmlnaHQgbXItMVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgKGNsaWNrKT1cImV4cGFuZE5vZGUoZGlzcGxheU5vZGUpXCI+PC9pPlxyXG5cdFx0XHQ8aSAqbmdJZj1cImRpc3BsYXlOb2RlLmhhc0NoaWxkTm9kZXMgJiYgZGlzcGxheU5vZGUuZXhwYW5kZWRcIiBjbGFzcz1cImZhciBmYS1jYXJldC1kb3duIG1yLTFcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiIChjbGljayk9XCJjb2xsYXBzZU5vZGUoZGlzcGxheU5vZGUpXCI+PC9pPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiZC1mbGV4IHB4LTFcIiBbbmdDbGFzc109XCJ7J2JnLXN1Y2Nlc3MgdGV4dC13aGl0ZScgOiBkaXNwbGF5Tm9kZS51dWlkID09PSBzZWxlY3RlZFV1aWQgfVwiPlxyXG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiZGlzcGxheU5vZGUubm9kZS5pY29uQ2xhc3MgfHwgZGlzcGxheU5vZGUubm9kZS5pY29uVXJsXCIgY2xhc3M9XCJtci0xIHNsaWNrLXRyZWUtdmlld19pY29uXCI+XHJcblx0XHRcdFx0PGkgKm5nSWY9XCJkaXNwbGF5Tm9kZS5ub2RlLmljb25DbGFzc1wiIFtzdHlsZS5jb2xvcl09XCJkaXNwbGF5Tm9kZS5ub2RlLmljb25Db2xvclwiIFtuZ0NsYXNzXT1cImRpc3BsYXlOb2RlLm5vZGUuaWNvbkNsYXNzXCI+PC9pPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiAqbmdJZj1cIiFkaXNwbGF5Tm9kZS5lZGl0aW5nVGV4dFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgKGNsaWNrKT1cInNlbGVjdE5vZGUoZGlzcGxheU5vZGUpXCIgKGRibGNsaWNrKT1cImVkaXRUZXh0KGRpc3BsYXlOb2RlKVwiPnt7ZGlzcGxheU5vZGUudGV4dH19PC9kaXY+XHJcblx0XHRcdDxkaXYgKm5nSWY9XCJkaXNwbGF5Tm9kZS5lZGl0aW5nVGV4dFwiIGNsYXNzPVwic2xpY2stdHJlZS12aWV3X25vZGUtdGV4dC1lZGl0XCI+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2xpY2stdHJlZS12aWV3X25vZGUtdGV4dC1lZGl0X3t7ZGlzcGxheU5vZGUudXVpZH19XCIgWyhuZ01vZGVsKV09XCJkaXNwbGF5Tm9kZS50ZXh0XCIgKGtleWRvd24pPVwib25UZXh0S2V5ZG93bigkZXZlbnQsIGRpc3BsYXlOb2RlKVwiIC8+PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGRpdiAjY29udGV4dE1lbnVSZWYgY2xhc3M9J3NsaWNrLXRyZWUtdmlld19jb250ZXh0LW1lbnUgZHJvcGRvd24tbWVudSBwLTAgc2hvdyBtZW51LWhpZGRlbic+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiY29udGV4dE1lbnVTaG93QWRkXCIgY2xhc3M9XCJweC0yIGRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiYWRkTm9kZSgpXCI+QWRkPC9kaXY+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiY29udGV4dE1lbnVTaG93RGVsZXRlXCIgY2xhc3M9XCJweC0yIGRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiZGVsZXRlTm9kZSgpXCI+RGVsZXRlPC9kaXY+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwiY29udGV4dE1lbnVTaG93RWRpdFRleHRcIiBjbGFzcz1cInB4LTIgZHJvcGRvd24taXRlbVwiIChjbGljayk9XCJlZGl0Tm9kZVRleHQoKVwiPkVkaXQgTmFtZTwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxzbGljay1jb25maXJtLWRpYWxvZyAjZGVsZXRlTm9kZUNvbmZpcm1SZWY+XHJcblx0QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB7e2RlbGV0ZU5vZGVOYW1lfX0/XHJcbjwvc2xpY2stY29uZmlybS1kaWFsb2c+Il19
@@ -0,0 +1,22 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from "@angular/core";
3
+ import { FormsModule } from "@angular/forms";
4
+ import { SlickConfirmDialogModule } from "../slick-confirm-dialog/slick-confirm-dialog.module";
5
+ import { SlickTreeViewComponent } from "./slick-tree-view.component";
6
+ import * as i0 from "@angular/core";
7
+ export class SlickTreeViewModule {
8
+ }
9
+ /** @nocollapse */ SlickTreeViewModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ /** @nocollapse */ SlickTreeViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewModule, declarations: [SlickTreeViewComponent], imports: [CommonModule, FormsModule, SlickConfirmDialogModule], exports: [CommonModule, FormsModule, SlickTreeViewComponent] });
11
+ /** @nocollapse */ SlickTreeViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewModule, imports: [[CommonModule, FormsModule, SlickConfirmDialogModule], CommonModule, FormsModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTreeViewModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule, FormsModule, SlickConfirmDialogModule],
16
+ declarations: [SlickTreeViewComponent],
17
+ exports: [CommonModule, FormsModule, SlickTreeViewComponent]
18
+ }]
19
+ }] });
20
+ export { SlickTreeViewComponent };
21
+ export { SlickTreeNodeModel } from "./slick-tree-node.model";
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHJlZS12aWV3Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXRyZWUtdmlldy9zbGljay10cmVlLXZpZXcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPckUsTUFBTSxPQUFPLG1CQUFtQjs7bUlBQW5CLG1CQUFtQjtvSUFBbkIsbUJBQW1CLGlCQUhoQixzQkFBc0IsYUFEM0IsWUFBWSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsYUFFbkQsWUFBWSxFQUFFLFdBQVcsRUFBRSxzQkFBc0I7b0lBRS9DLG1CQUFtQixZQUp0QixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsd0JBQXdCLENBQUMsRUFFcEQsWUFBWSxFQUFFLFdBQVc7MkZBRXZCLG1CQUFtQjtrQkFML0IsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixDQUFDO29CQUM5RCxZQUFZLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsQ0FBQztpQkFDNUQ7O0FBR0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLENBQUE7QUFDakMsT0FBTyxFQUF1QixrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTbGlja0NvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tIFwiLi4vc2xpY2stY29uZmlybS1kaWFsb2cvc2xpY2stY29uZmlybS1kaWFsb2cubW9kdWxlXCI7XHJcbmltcG9ydCB7IFNsaWNrVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tIFwiLi9zbGljay10cmVlLXZpZXcuY29tcG9uZW50XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTbGlja0NvbmZpcm1EaWFsb2dNb2R1bGVdLFxyXG5cdGRlY2xhcmF0aW9uczogW1NsaWNrVHJlZVZpZXdDb21wb25lbnRdLFxyXG5cdGV4cG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTbGlja1RyZWVWaWV3Q29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tUcmVlVmlld01vZHVsZSB7IH1cclxuXHJcbmV4cG9ydCB7IFNsaWNrVHJlZVZpZXdDb21wb25lbnQgfVxyXG5leHBvcnQgeyBJU2xpY2tUcmVlTm9kZU1vZGVsLCBTbGlja1RyZWVOb2RlTW9kZWwgfSBmcm9tIFwiLi9zbGljay10cmVlLW5vZGUubW9kZWxcIjtcclxuIl19
@@ -0,0 +1,164 @@
1
+ import { Directive, Input, Output, EventEmitter, forwardRef } from "@angular/core";
2
+ import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import { SlickSleepService } from "../utils/slick-sleep.service";
4
+ import { SlickUtilsService } from "../utils/slick-utils.service";
5
+ import * as i0 from "@angular/core";
6
+ export class SlickTypeAheadDirective {
7
+ constructor(el) {
8
+ this.el = el;
9
+ this.slickTypeAheadChange = new EventEmitter();
10
+ this.fnKeyDown = (e) => this.keyDown(e);
11
+ this.propagateChange = (_) => { };
12
+ }
13
+ ngOnInit() {
14
+ this.el.nativeElement.addEventListener('keydown', this.fnKeyDown);
15
+ }
16
+ ngOnChanges() {
17
+ }
18
+ ngOnDestroy() {
19
+ this.el.nativeElement.removeEventListener('keydown', this.fnKeyDown);
20
+ }
21
+ async keyDown(e) {
22
+ if (e.altKey || e.ctrlKey)
23
+ return;
24
+ var valid = (e.keyCode > 47 && e.keyCode < 58) || // number keys
25
+ e.keyCode === 32 || e.keyCode === 13 ||
26
+ e.keyCode === 8 || e.keyCode === 9 || // spacebar, return & tab key(s) (if you want to allow carriage returns)
27
+ (e.keyCode > 64 && e.keyCode < 91) || // letter keys
28
+ (e.keyCode > 95 && e.keyCode < 112) || // numpad keys
29
+ (e.keyCode > 185 && e.keyCode < 193) || // ;=,-./` (in order)
30
+ (e.keyCode > 218 && e.keyCode < 223); // [\]' (in order)
31
+ if (!valid) {
32
+ return;
33
+ }
34
+ e.stopPropagation();
35
+ await SlickSleepService.sleep();
36
+ // Tab/enter
37
+ if (e.which === 9) {
38
+ this.propagateChange(this.suggestedItem);
39
+ this.createSelection(this.el.nativeElement, this.el.nativeElement.value, 0);
40
+ if (this.slickTypeAheadChange) {
41
+ if (this.filteredItems && this.filteredItems.length > 0)
42
+ this.slickTypeAheadChange.emit(this.filteredItems[0]);
43
+ else
44
+ this.slickTypeAheadChange.emit(this.el.nativeElement.value);
45
+ }
46
+ return false;
47
+ }
48
+ if (e.which === 8) {
49
+ if (this.el.nativeElement.value.length > 0) {
50
+ var cursorLoc = this.el.nativeElement.selectionStart;
51
+ if (cursorLoc > 0) {
52
+ var valSubstr = this.el.nativeElement.value.substring(0, cursorLoc - 1);
53
+ valSubstr += this.el.nativeElement.value.substring(cursorLoc);
54
+ this.el.nativeElement.value = valSubstr;
55
+ }
56
+ }
57
+ }
58
+ if (!this.el.nativeElement.value)
59
+ return;
60
+ // Esc
61
+ if (e.which === 27) {
62
+ this.filteredItems = null;
63
+ this.suggestedItem = null;
64
+ return false;
65
+ }
66
+ this.suggestedItem = null;
67
+ let val = this.el.nativeElement.value.toLowerCase();
68
+ if (!this.slickTypeAheadField && !this.slickTypeAheadFields) {
69
+ this.filteredItems = this.slickTypeAhead.filter(x => x.toLowerCase().indexOf(val) === 0);
70
+ if (this.filteredItems && this.filteredItems.length > 0)
71
+ this.suggestedItem = this.filteredItems[0];
72
+ }
73
+ else {
74
+ if (this.slickTypeAheadField) {
75
+ this.filteredItems = this.slickTypeAhead.filter(x => ((SlickUtilsService.getDeepObject(x, this.slickTypeAheadField)) ? SlickUtilsService.getDeepObject(x, this.slickTypeAheadField).toLowerCase().indexOf(val) === 0 : false));
76
+ if (this.filteredItems && this.filteredItems.length > 0)
77
+ this.suggestedItem = SlickUtilsService.getDeepObject(this.filteredItems[0], this.slickTypeAheadField);
78
+ }
79
+ else {
80
+ let fields = this.slickTypeAheadFields.split("|");
81
+ this.filteredItems = null;
82
+ fields.forEach(field => {
83
+ if (!this.filteredItems || this.filteredItems.length === 0) {
84
+ this.filteredItems = this.slickTypeAhead.filter(x => ((SlickUtilsService.getDeepObject(x, field)) ? SlickUtilsService.getDeepObject(x, field).toLowerCase().indexOf(val) === 0 : false));
85
+ if (this.filteredItems && this.filteredItems.length > 0) {
86
+ this.suggestedItem = SlickUtilsService.getDeepObject(this.filteredItems[0], field);
87
+ }
88
+ }
89
+ });
90
+ }
91
+ }
92
+ if (this.suggestedItem) {
93
+ var len = this.el.nativeElement.value.length;
94
+ this.el.nativeElement.value = this.suggestedItem;
95
+ this.createSelection(this.el.nativeElement, len, this.suggestedItem.length);
96
+ }
97
+ else {
98
+ this.suggestedItem = this.el.nativeElement.value;
99
+ }
100
+ }
101
+ createSelection(field, start, end) {
102
+ if (field.createTextRange) {
103
+ var selRange = field.createTextRange();
104
+ selRange.collapse(true);
105
+ selRange.moveStart('character', start);
106
+ selRange.moveEnd('character', end);
107
+ selRange.select();
108
+ field.focus();
109
+ }
110
+ else if (field.setSelectionRange) {
111
+ field.focus();
112
+ field.setSelectionRange(start, end);
113
+ }
114
+ else if (typeof field.selectionStart != 'undefined') {
115
+ field.selectionStart = start;
116
+ field.selectionEnd = end;
117
+ field.focus();
118
+ }
119
+ }
120
+ // this is the initial value set to the component
121
+ writeValue(obj) {
122
+ }
123
+ // registers 'fn' that will be fired when changes are made
124
+ // this is how we emit the changes back to the form
125
+ registerOnChange(fn) {
126
+ this.propagateChange = fn;
127
+ }
128
+ // not used, used for touch input
129
+ registerOnTouched() { }
130
+ }
131
+ /** @nocollapse */ SlickTypeAheadDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
132
+ /** @nocollapse */ SlickTypeAheadDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.3", type: SlickTypeAheadDirective, selector: "[slick-type-ahead]", inputs: { slickTypeAhead: ["slick-type-ahead", "slickTypeAhead"], slickTypeAheadField: ["slick-type-ahead-field-id", "slickTypeAheadField"], slickTypeAheadFields: ["slick-type-ahead-field-ids", "slickTypeAheadFields"] }, outputs: { slickTypeAheadChange: "slick-type-ahead-change" }, providers: [
133
+ {
134
+ provide: NG_VALUE_ACCESSOR,
135
+ useExisting: forwardRef((() => SlickTypeAheadDirective)),
136
+ multi: true,
137
+ }
138
+ ], usesOnChanges: true, ngImport: i0 });
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadDirective, decorators: [{
140
+ type: Directive,
141
+ args: [{
142
+ selector: '[slick-type-ahead]',
143
+ providers: [
144
+ {
145
+ provide: NG_VALUE_ACCESSOR,
146
+ useExisting: forwardRef((() => SlickTypeAheadDirective)),
147
+ multi: true,
148
+ }
149
+ ]
150
+ }]
151
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { slickTypeAhead: [{
152
+ type: Input,
153
+ args: ["slick-type-ahead"]
154
+ }], slickTypeAheadField: [{
155
+ type: Input,
156
+ args: ["slick-type-ahead-field-id"]
157
+ }], slickTypeAheadFields: [{
158
+ type: Input,
159
+ args: ["slick-type-ahead-field-ids"]
160
+ }], slickTypeAheadChange: [{
161
+ type: Output,
162
+ args: ["slick-type-ahead-change"]
163
+ }] } });
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHlwZS1haGVhZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay10eXBlLWFoZWFkL3NsaWNrLXR5cGUtYWhlYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRDLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBV2pFLE1BQU0sT0FBTyx1QkFBdUI7SUFXbkMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFQQyx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RixjQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUF1STNDLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQWhJbEMsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFD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QztZQUM3QixLQUFLLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztZQUN6QixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNGLENBQUM7SUFJRCxpREFBaUQ7SUFDMUMsVUFBVSxDQUFDLEdBQVE7SUFDMUIsQ0FBQztJQUVELDBEQUEwRDtJQUMxRCxtREFBbUQ7SUFDNUMsZ0JBQWdCLENBQUMsRUFBTztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsaUNBQWlDO0lBQzFCLGlCQUFpQixLQUFLLENBQUM7O3VJQTFKbEIsdUJBQXVCOzJIQUF2Qix1QkFBdUIsd1VBUHhCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLEVBQUM7WUFDdEQsS0FBSyxFQUFFLElBQUk7U0FDWDtLQUFDOzJGQUVTLHVCQUF1QjtrQkFUbkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsd0JBQXdCLEVBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNYO3FCQUFDO2lCQUNIO2lHQUUyQixjQUFjO3NCQUF4QyxLQUFLO3VCQUFDLGtCQUFrQjtnQkFDVyxtQkFBbUI7c0JBQXRELEtBQUs7dUJBQUMsMkJBQTJCO2dCQUNHLG9CQUFvQjtzQkFBeEQsS0FBSzt1QkFBQyw0QkFBNEI7Z0JBQ0Esb0JBQW9CO3NCQUF0RCxNQUFNO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFNsaWNrU2xlZXBTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXNsZWVwLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stdXRpbHMuc2VydmljZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6ICdbc2xpY2stdHlwZS1haGVhZF0nLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpY2tUeXBlQWhlYWREaXJlY3RpdmUpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZSxcclxuXHRcdH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja1R5cGVBaGVhZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cdEBJbnB1dChcInNsaWNrLXR5cGUtYWhlYWRcIikgc2xpY2tUeXBlQWhlYWQ6IGFueVtdO1xyXG5cdEBJbnB1dChcInNsaWNrLXR5cGUtYWhlYWQtZmllbGQtaWRcIikgc2xpY2tUeXBlQWhlYWRGaWVsZDogc3RyaW5nO1xyXG5cdEBJbnB1dChcInNsaWNrLXR5cGUtYWhlYWQtZmllbGQtaWRzXCIpIHNsaWNrVHlwZUFoZWFkRmllbGRzOiBzdHJpbmc7XHJcblx0QE91dHB1dChcInNsaWNrLXR5cGUtYWhlYWQtY2hhbmdlXCIpIHNsaWNrVHlwZUFoZWFkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0cHJpdmF0ZSBmbktleURvd24gPSAoZSkgPT4gdGhpcy5rZXlEb3duKGUpO1xyXG5cclxuXHRwcml2YXRlIGZpbHRlcmVkSXRlbXM6IHN0cmluZ1tdO1xyXG5cdHByaXZhdGUgc3VnZ2VzdGVkSXRlbTogc3RyaW5nO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcblxyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKSB7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuZm5LZXlEb3duKTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKCkge1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuZm5LZXlEb3duKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIGtleURvd24oZTogS2V5Ym9hcmRFdmVudCkge1xyXG5cdFx0aWYgKGUuYWx0S2V5IHx8IGUuY3RybEtleSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdHZhciB2YWxpZCA9XHJcblx0XHRcdChlLmtleUNvZGUgPiA0NyAmJiBlLmtleUNvZGUgPCA1OCkgfHwgLy8gbnVtYmVyIGtleXNcclxuXHRcdFx0ZS5rZXlDb2RlID09PSAzMiB8fCBlLmtleUNvZGUgPT09IDEzIHx8XHJcblx0XHRcdGUua2V5Q29kZSA9PT0gOCB8fCBlLmtleUNvZGUgPT09IDkgfHwgLy8gc3BhY2ViYXIsIHJldHVybiAmIHRhYiBrZXkocykgKGlmIHlvdSB3YW50IHRvIGFsbG93IGNhcnJpYWdlIHJldHVybnMpXHJcblx0XHRcdChlLmtleUNvZGUgPiA2NCAmJiBlLmtleUNvZGUgPCA5MSkgfHwgLy8gbGV0dGVyIGtleXNcclxuXHRcdFx0KGUua2V5Q29kZSA+IDk1ICYmIGUua2V5Q29kZSA8IDExMikgfHwgLy8gbnVtcGFkIGtleXNcclxuXHRcdFx0KGUua2V5Q29kZSA+IDE4NSAmJiBlLmtleUNvZGUgPCAxOTMpIHx8IC8vIDs9LC0uL2AgKGluIG9yZGVyKVxyXG5cdFx0XHQoZS5rZXlDb2RlID4gMjE4ICYmIGUua2V5Q29kZSA8IDIyMyk7ICAgLy8gW1xcXScgKGluIG9yZGVyKVxyXG5cclxuXHRcdGlmICghdmFsaWQpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdC8vIFRhYi9lbnRlclxyXG5cdFx0aWYgKGUud2hpY2ggPT09IDkpIHtcclxuXHRcdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5zdWdnZXN0ZWRJdGVtKTtcclxuXHRcdFx0dGhpcy5jcmVhdGVTZWxlY3Rpb24odGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUsIDApO1xyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2xpY2tUeXBlQWhlYWRDaGFuZ2UpIHtcclxuXHRcdFx0XHRpZiAodGhpcy5maWx0ZXJlZEl0ZW1zICYmIHRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGggPiAwKVxyXG5cdFx0XHRcdFx0dGhpcy5zbGlja1R5cGVBaGVhZENoYW5nZS5lbWl0KHRoaXMuZmlsdGVyZWRJdGVtc1swXSlcclxuXHRcdFx0XHRlbHNlXHJcblx0XHRcdFx0XHR0aGlzLnNsaWNrVHlwZUFoZWFkQ2hhbmdlLmVtaXQodGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChlLndoaWNoID09PSA4KSB7XHJcblx0XHRcdGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdHZhciBjdXJzb3JMb2MgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcblx0XHRcdFx0aWYgKGN1cnNvckxvYyA+IDApIHtcclxuXHRcdFx0XHRcdHZhciB2YWxTdWJzdHIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvckxvYyAtIDEpO1xyXG5cdFx0XHRcdFx0dmFsU3Vic3RyICs9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zdWJzdHJpbmcoY3Vyc29yTG9jKTtcclxuXHRcdFx0XHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbFN1YnN0cjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdC8vIEVzY1xyXG5cdFx0aWYgKGUud2hpY2ggPT09IDI3KSB7XHJcblx0XHRcdHRoaXMuZmlsdGVyZWRJdGVtcyA9IG51bGw7XHJcblx0XHRcdHRoaXMuc3VnZ2VzdGVkSXRlbSA9IG51bGw7XHJcblxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zdWdnZXN0ZWRJdGVtID0gbnVsbDtcclxuXHRcdGxldCB2YWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuXHRcdFxyXG5cdFx0aWYgKCF0aGlzLnNsaWNrVHlwZUFoZWFkRmllbGQgJiYgIXRoaXMuc2xpY2tUeXBlQWhlYWRGaWVsZHMpIHtcclxuXHRcdFx0dGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5zbGlja1R5cGVBaGVhZC5maWx0ZXIoeCA9PiB4LnRvTG93ZXJDYXNlKCkuaW5kZXhPZih2YWwpID09PSAwKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLmZpbHRlcmVkSXRlbXMgJiYgdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA+IDApXHJcblx0XHRcdFx0dGhpcy5zdWdnZXN0ZWRJdGVtID0gdGhpcy5maWx0ZXJlZEl0ZW1zWzBdO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdGlmICh0aGlzLnNsaWNrVHlwZUFoZWFkRmllbGQpIHtcclxuXHRcdFx0XHR0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnNsaWNrVHlwZUFoZWFkLmZpbHRlcih4ID0+ICgoU2xpY2tVdGlsc1NlcnZpY2UuZ2V0RGVlcE9iamVjdCh4LCB0aGlzLnNsaWNrVHlwZUFoZWFkRmllbGQpKSA/IFNsaWNrVXRpbHNTZXJ2aWNlLmdldERlZXBPYmplY3QoeCwgdGhpcy5zbGlja1R5cGVBaGVhZEZpZWxkKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodmFsKSA9PT0gMCA6IGZhbHNlKSlcclxuXHJcblx0XHRcdFx0aWYgKHRoaXMuZmlsdGVyZWRJdGVtcyAmJiB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID4gMClcclxuXHRcdFx0XHRcdHRoaXMuc3VnZ2VzdGVkSXRlbSA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldERlZXBPYmplY3QodGhpcy5maWx0ZXJlZEl0ZW1zWzBdLCB0aGlzLnNsaWNrVHlwZUFoZWFkRmllbGQpXHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0bGV0IGZpZWxkcyA9IHRoaXMuc2xpY2tUeXBlQWhlYWRGaWVsZHMuc3BsaXQoXCJ8XCIpO1xyXG5cdFx0XHRcdHRoaXMuZmlsdGVyZWRJdGVtcyA9IG51bGw7XHJcblx0XHRcdFx0ZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKCF0aGlzLmZpbHRlcmVkSXRlbXMgfHwgdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnNsaWNrVHlwZUFoZWFkLmZpbHRlcih4ID0+ICgoU2xpY2tVdGlsc1NlcnZpY2UuZ2V0RGVlcE9iamVjdCh4LCBmaWVsZCkpID8gU2xpY2tVdGlsc1NlcnZpY2UuZ2V0RGVlcE9iamVjdCh4LCBmaWVsZCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKHZhbCkgPT09IDAgOiBmYWxzZSkpXHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmZpbHRlcmVkSXRlbXMgJiYgdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnN1Z2dlc3RlZEl0ZW0gPSBTbGlja1V0aWxzU2VydmljZS5nZXREZWVwT2JqZWN0KHRoaXMuZmlsdGVyZWRJdGVtc1swXSwgZmllbGQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5zdWdnZXN0ZWRJdGVtKSB7XHJcblx0XHRcdHZhciBsZW4gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG5cdFx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnN1Z2dlc3RlZEl0ZW07XHJcblx0XHRcdHRoaXMuY3JlYXRlU2VsZWN0aW9uKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgbGVuLCB0aGlzLnN1Z2dlc3RlZEl0ZW0ubGVuZ3RoKVxyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMuc3VnZ2VzdGVkSXRlbSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY3JlYXRlU2VsZWN0aW9uKGZpZWxkOiBhbnksIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XHJcblx0XHRpZiAoZmllbGQuY3JlYXRlVGV4dFJhbmdlKSB7XHJcblx0XHRcdHZhciBzZWxSYW5nZSA9IGZpZWxkLmNyZWF0ZVRleHRSYW5nZSgpO1xyXG5cdFx0XHRzZWxSYW5nZS5jb2xsYXBzZSh0cnVlKTtcclxuXHRcdFx0c2VsUmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCBzdGFydCk7XHJcblx0XHRcdHNlbFJhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsIGVuZCk7XHJcblx0XHRcdHNlbFJhbmdlLnNlbGVjdCgpO1xyXG5cdFx0XHRmaWVsZC5mb2N1cygpO1xyXG5cdFx0fSBlbHNlIGlmIChmaWVsZC5zZXRTZWxlY3Rpb25SYW5nZSkge1xyXG5cdFx0XHRmaWVsZC5mb2N1cygpO1xyXG5cdFx0XHRmaWVsZC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTtcclxuXHRcdH0gZWxzZSBpZiAodHlwZW9mIGZpZWxkLnNlbGVjdGlvblN0YXJ0ICE9ICd1bmRlZmluZWQnKSB7XHJcblx0XHRcdGZpZWxkLnNlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7XHJcblx0XHRcdGZpZWxkLnNlbGVjdGlvbkVuZCA9IGVuZDtcclxuXHRcdFx0ZmllbGQuZm9jdXMoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHB1YmxpYyB3cml0ZVZhbHVlKG9iajogYW55KSB7XHJcblx0fVxyXG5cclxuXHQvLyByZWdpc3RlcnMgJ2ZuJyB0aGF0IHdpbGwgYmUgZmlyZWQgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlXHJcblx0Ly8gdGhpcyBpcyBob3cgd2UgZW1pdCB0aGUgY2hhbmdlcyBiYWNrIHRvIHRoZSBmb3JtXHJcblx0cHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG5cdFx0dGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuXHR9XHJcblxyXG5cdC8vIG5vdCB1c2VkLCB1c2VkIGZvciB0b3VjaCBpbnB1dFxyXG5cdHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZCgpIHsgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { SlickTypeAheadDirective } from "./slick-type-ahead.directive";
3
+ import * as i0 from "@angular/core";
4
+ export class SlickTypeAheadModule {
5
+ }
6
+ /** @nocollapse */ SlickTypeAheadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ /** @nocollapse */ SlickTypeAheadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadModule, declarations: [SlickTypeAheadDirective], exports: [SlickTypeAheadDirective] });
8
+ /** @nocollapse */ SlickTypeAheadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadModule, imports: [[]] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickTypeAheadModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [],
13
+ declarations: [SlickTypeAheadDirective],
14
+ exports: [SlickTypeAheadDirective]
15
+ }]
16
+ }] });
17
+ export { SlickTypeAheadDirective };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stdHlwZS1haGVhZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay10eXBlLWFoZWFkL3NsaWNrLXR5cGUtYWhlYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBT3ZFLE1BQU0sT0FBTyxvQkFBb0I7O29JQUFwQixvQkFBb0I7cUlBQXBCLG9CQUFvQixpQkFIakIsdUJBQXVCLGFBQzVCLHVCQUF1QjtxSUFFckIsb0JBQW9CLFlBSnZCLEVBQUU7MkZBSUMsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbEM7O0FBRUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrVHlwZUFoZWFkRGlyZWN0aXZlIH0gZnJvbSBcIi4vc2xpY2stdHlwZS1haGVhZC5kaXJlY3RpdmVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW10sXHJcblx0ZGVjbGFyYXRpb25zOiBbU2xpY2tUeXBlQWhlYWREaXJlY3RpdmVdLFxyXG5cdGV4cG9ydHM6IFtTbGlja1R5cGVBaGVhZERpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrVHlwZUFoZWFkTW9kdWxlIHsgfVxyXG5leHBvcnQgeyBTbGlja1R5cGVBaGVhZERpcmVjdGl2ZSB9XHJcbiJdfQ==