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,22 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SlickAutoCompleteListItemTemplateDirective {
4
+ constructor(template) {
5
+ this.template = template;
6
+ }
7
+ }
8
+ /** @nocollapse */ SlickAutoCompleteListItemTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickAutoCompleteListItemTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ /** @nocollapse */ SlickAutoCompleteListItemTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.3", type: SlickAutoCompleteListItemTemplateDirective, selector: "[slickAutoCompleteListItemTemplate]", inputs: { type: "type", name: ["slickAutoCompleteListItemTemplate", "name"] }, ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickAutoCompleteListItemTemplateDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[slickAutoCompleteListItemTemplate]',
14
+ host: {}
15
+ }]
16
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { type: [{
17
+ type: Input
18
+ }], name: [{
19
+ type: Input,
20
+ args: ['slickAutoCompleteListItemTemplate']
21
+ }] } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYXV0by1jb21wbGV0ZS1saXN0LWl0ZW0tdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYXV0by1jb21wbGV0ZS9zbGljay1hdXRvLWNvbXBsZXRlLWxpc3QtaXRlbS10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFFLE1BQU0sZUFBZSxDQUFDOztBQVNwSCxNQUFNLE9BQU8sMENBQTBDO0lBSXRELFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUksQ0FBQzs7MEpBSnRDLDBDQUEwQzs4SUFBMUMsMENBQTBDOzJGQUExQywwQ0FBMEM7a0JBTHRELFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFDQUFxQztvQkFDL0MsSUFBSSxFQUFFLEVBQ0w7aUJBQ0Q7a0dBRVMsSUFBSTtzQkFBWixLQUFLO2dCQUNzQyxJQUFJO3NCQUEvQyxLQUFLO3VCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBPbkluaXQsIE9uRGVzdHJveSwgRW1iZWRkZWRWaWV3UmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6ICdbc2xpY2tBdXRvQ29tcGxldGVMaXN0SXRlbVRlbXBsYXRlXScsXHJcblx0aG9zdDoge1xyXG5cdH1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQXV0b0NvbXBsZXRlTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSB7XHJcblx0QElucHV0KCkgdHlwZTogc3RyaW5nO1xyXG5cdEBJbnB1dCgnc2xpY2tBdXRvQ29tcGxldGVMaXN0SXRlbVRlbXBsYXRlJykgbmFtZTogc3RyaW5nO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHsgfVxyXG59XHJcblxyXG4iXX0=
@@ -0,0 +1,375 @@
1
+ import { Component, ViewChild, ContentChild, Input, Output, EventEmitter, forwardRef } from "@angular/core";
2
+ import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import { SlickAutoCompleteListItemTemplateDirective } from "./slick-auto-complete-list-item-template.directive";
4
+ import { SlickUtilsService } from "../utils/slick-utils.service";
5
+ import { SlickSleepService } from "../utils/slick-sleep.service";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../utils/slick-function-lock.service";
8
+ import * as i2 from "@angular/common";
9
+ export class SlickAutoCompleteComponent {
10
+ constructor(slickFunctionLockService) {
11
+ this.slickFunctionLockService = slickFunctionLockService;
12
+ this.delay = 300;
13
+ this.selectFirst = true;
14
+ this.listHeight = "300px";
15
+ this.listWidth = '100%';
16
+ this.allowFreeformText = true;
17
+ this.showNoItemsFoundDisplay = true;
18
+ this.onRefresh = new EventEmitter();
19
+ this.onSelect = new EventEmitter();
20
+ this.onFreeformTextSelect = new EventEmitter();
21
+ this.fnDocumentClick = (e) => this.documentClick(e);
22
+ this.fnKeyDown = (e) => this.keyDown(e);
23
+ this.lastInputValue = "";
24
+ this.forcedCollapse = false;
25
+ // This is necessary so that the scroll and resize events can add and remove the event properly,
26
+ // as well as getting the correct ES6 function
27
+ this.fnReposition = () => this.reposition();
28
+ this.selectedIndex = -1;
29
+ this.showAutoComplete = false;
30
+ this.autoCompleteVisiblity = false;
31
+ this.expanded = true;
32
+ this.loading = false;
33
+ this.propagateChange = (_) => { };
34
+ this.uuid = SlickUtilsService.newGuid();
35
+ }
36
+ async ngOnInit() {
37
+ await SlickSleepService.sleep();
38
+ // Remove this from the inline version and put it on the body so that it doesn't hide behind the bottom
39
+ // of a div when it expands beyond the bottom.
40
+ this.autoCompleteRef.nativeElement.remove(this.autoCompleteRef);
41
+ document.body.appendChild(this.autoCompleteRef.nativeElement);
42
+ this.inputRef.addEventListener("keydown", this.fnKeyDown);
43
+ }
44
+ ngOnDestroy() {
45
+ // Since angular has no way to use the third parameter, I'm doing this in raw js
46
+ document.removeEventListener("click", this.fnDocumentClick, true);
47
+ this.inputRef.removeEventListener("keydown", this.fnKeyDown);
48
+ clearTimeout(this.delayTimeout);
49
+ this.delayTimeout = null;
50
+ this.collapse();
51
+ // Is okay if this fails. It just means it was already removed.
52
+ try {
53
+ document.body.removeChild(this.autoCompleteRef.nativeElement);
54
+ }
55
+ catch { }
56
+ }
57
+ ngOnChanges(changes) {
58
+ if (changes.allowFreeformText)
59
+ this.allowFreeformText = (this.allowFreeformText.toString().toLowerCase() === 'false') ? false : true;
60
+ if (changes.showNoItemsFoundDisplay)
61
+ this.showNoItemsFoundDisplay = (this.showNoItemsFoundDisplay.toString().toLowerCase() === 'false') ? false : true;
62
+ if (changes.items) {
63
+ if (this.items && this.items.length === 0 && this.showNoItemsFoundDisplay === false)
64
+ this.collapse();
65
+ }
66
+ }
67
+ documentClick(e) {
68
+ if (!this.expanded || !e.target)
69
+ return;
70
+ if (SlickUtilsService.checkParentIdExists(e.target, "slick-auto-complete_" + this.uuid) === false) {
71
+ clearInterval(this.waitForItemsInterval);
72
+ this.slickFunctionLockService.release("AUTO_COMPLETE_WAIT_FOR_ITEMS");
73
+ this.collapse();
74
+ }
75
+ if (this.allowFreeformText && this.onFreeformTextSelect)
76
+ this.onFreeformTextSelect.emit(this.inputRef.value);
77
+ }
78
+ onItemClick(index) {
79
+ this.selectItem(index);
80
+ this.collapse();
81
+ }
82
+ async keyDown(event) {
83
+ // alt
84
+ if (event.keyCode === 18)
85
+ return;
86
+ clearInterval(this.waitForItemsInterval);
87
+ this.slickFunctionLockService.release("AUTO_COMPLETE_WAIT_FOR_ITEMS");
88
+ // If we're just tabbing through, don't even do anything
89
+ if (!this.lastInputValue && (event.keyCode === 9 || event.keyCode === 13))
90
+ return;
91
+ await SlickSleepService.sleep();
92
+ if (this.lastInputValue !== this.inputRef.value) {
93
+ this.lastInputValue = this.inputRef.value;
94
+ this.forcedCollapse = false;
95
+ if (!this.lastInputValue) {
96
+ this.propagateChange(null);
97
+ this.collapse();
98
+ }
99
+ clearTimeout(this.delayTimeout);
100
+ this.delayTimeout = null;
101
+ if (this.inputRef.value === '') {
102
+ this.items = null;
103
+ this.collapse();
104
+ return true;
105
+ }
106
+ else {
107
+ this.delayTimeout = setTimeout(async () => {
108
+ (this.selectFirst === true) ? this.selectedIndex = 0 : this.selectedIndex = -1;
109
+ this.delayTimeout = null;
110
+ this.items = null;
111
+ this.expand();
112
+ await this.refreshItems(true);
113
+ }, this.delay);
114
+ }
115
+ }
116
+ if (event.keyCode === 9 || event.keyCode === 13) {
117
+ if (this.delayTimeout && this.selectFirst) {
118
+ clearTimeout(this.delayTimeout);
119
+ this.delayTimeout = null;
120
+ this.items = null;
121
+ this.collapse();
122
+ if (this.selectFirst === true && !this.forcedCollapse) {
123
+ await this.refreshItems(false);
124
+ this.selectedIndex = -1;
125
+ if (!this.items && !this.inputRef.value && this.onSelect) {
126
+ this.onSelect.emit(null);
127
+ }
128
+ else if (this.items && this.items.length > 0) {
129
+ this.selectedIndex = 0;
130
+ this.selectItem(this.selectedIndex);
131
+ }
132
+ else {
133
+ if (this.allowFreeformText && this.onFreeformTextSelect)
134
+ this.onFreeformTextSelect.emit(this.inputRef.value);
135
+ }
136
+ }
137
+ else {
138
+ if (this.allowFreeformText && this.onFreeformTextSelect)
139
+ this.onFreeformTextSelect.emit(this.inputRef.value);
140
+ }
141
+ }
142
+ else {
143
+ clearTimeout(this.delayTimeout);
144
+ if (!this.items && !this.inputRef.value && this.onSelect) {
145
+ this.onSelect.emit(null);
146
+ }
147
+ else if (this.items && this.items.length > 0 && this.expanded && !this.forcedCollapse) {
148
+ this.selectItem(this.selectedIndex);
149
+ }
150
+ else {
151
+ if (this.allowFreeformText && this.onFreeformTextSelect) {
152
+ this.onFreeformTextSelect.emit(this.inputRef.value);
153
+ }
154
+ }
155
+ this.collapse();
156
+ }
157
+ }
158
+ // Esc
159
+ if (event.which === 27) {
160
+ this.forcedCollapse = true;
161
+ this.collapse();
162
+ return false;
163
+ }
164
+ // Arrowup
165
+ if (event.which === 38) {
166
+ if (this.selectedIndex === null || this.selectedIndex === undefined)
167
+ this.selectedIndex = 0;
168
+ if (this.selectedIndex > 0)
169
+ this.selectedIndex--;
170
+ return false;
171
+ }
172
+ // Arrowdown
173
+ if (event.which === 40) {
174
+ event.stopPropagation();
175
+ if (this.selectedIndex === null || this.selectedIndex === undefined)
176
+ this.selectedIndex = -1;
177
+ if (!this.expanded) {
178
+ this.expand();
179
+ return false;
180
+ }
181
+ if (this.selectedIndex < this.items.length - 1)
182
+ this.selectedIndex++;
183
+ return false;
184
+ }
185
+ }
186
+ // this is the initial value set to the component
187
+ writeValue(obj) {
188
+ if (obj) {
189
+ }
190
+ }
191
+ // registers 'fn' that will be fired when changes are made
192
+ // this is how we emit the changes back to the form
193
+ registerOnChange(fn) {
194
+ this.propagateChange = fn;
195
+ }
196
+ // not used, used for touch input
197
+ registerOnTouched() { }
198
+ async selectItem(index) {
199
+ if (index < 0 || !this.items || this.items.length === 0) {
200
+ this.selectedItem = null;
201
+ }
202
+ else {
203
+ this.selectedItem = this.items[index];
204
+ if (this.displayTextFieldName) {
205
+ const text = SlickUtilsService.getDeepObject(this.selectedItem, this.displayTextFieldName);
206
+ if (text) {
207
+ this.inputRef.value = text;
208
+ this.lastInputValue = this.inputRef.value;
209
+ }
210
+ }
211
+ }
212
+ this.propagateChange(this.selectedItem);
213
+ if (this.onSelect)
214
+ this.onSelect.emit(this.selectedItem);
215
+ // Call to update the model for the textbox
216
+ await SlickSleepService.sleep();
217
+ let evt = document.createEvent('Event');
218
+ evt.initEvent('input', true, false);
219
+ this.inputRef.dispatchEvent(evt);
220
+ }
221
+ async expand() {
222
+ this.reposition();
223
+ // If the flag to show items is false, don't display "Loading..."
224
+ if (this.showNoItemsFoundDisplay === false && (!this.items || this.items.length === 0)) {
225
+ this.showAutoComplete = false;
226
+ this.autoCompleteVisiblity = false;
227
+ this.expanded = false;
228
+ return;
229
+ }
230
+ this.showAutoComplete = true;
231
+ this.autoCompleteRef.nativeElement.style.display = "inline-block";
232
+ await SlickSleepService.sleep();
233
+ this.autoCompleteVisiblity = true;
234
+ this.expanded = true;
235
+ this.inputRef.classList.add("slick-auto-complete_remove-bottom-left-border-radius");
236
+ this.inputRef.classList.add("slick-auto-complete_remove-bottom-right-border-radius");
237
+ // This is necessary, otherwise `this` in the reposition function will be window
238
+ // and not the component.
239
+ // Since angular has no way to use the third parameter, I'm doing this in raw js
240
+ document.addEventListener("click", this.fnDocumentClick, true);
241
+ }
242
+ collapse() {
243
+ let inputGroupPrepend = SlickUtilsService.getClosestSibling(this.inputRef, "input-group-prepend");
244
+ if (inputGroupPrepend)
245
+ inputGroupPrepend.classList.remove("slick-auto-complete_remove-bottom-left-border-radius");
246
+ this.inputRef.classList.remove("slick-auto-complete_remove-bottom-left-border-radius");
247
+ this.inputRef.classList.remove("slick-auto-complete_remove-bottom-right-border-radius");
248
+ this.autoCompleteVisiblity = false;
249
+ this.expanded = false;
250
+ this.autoCompleteRef.nativeElement.style.display = "none";
251
+ // Since angular has no way to use the third parameter, I'm doing this in raw js
252
+ document.removeEventListener("click", this.fnDocumentClick, true);
253
+ }
254
+ reposition() {
255
+ let rect = this.inputRef.getBoundingClientRect();
256
+ let inputLeft = rect.left;
257
+ let inputTop = rect.top;
258
+ let inputHeight = this.inputRef.offsetHeight;
259
+ let inputWidth = this.inputRef.offsetWidth;
260
+ let inputGroupPrepend = SlickUtilsService.getClosestSibling(this.inputRef, "input-group-prepend");
261
+ if (inputGroupPrepend) {
262
+ inputLeft = inputGroupPrepend.getBoundingClientRect().left;
263
+ inputWidth = inputWidth += inputGroupPrepend.offsetWidth;
264
+ inputGroupPrepend.classList.add("slick-auto-complete_remove-bottom-left-border-radius");
265
+ }
266
+ this.left = inputLeft + "px";
267
+ this.top = (inputTop + inputHeight + 1) + "px";
268
+ if (this.listWidth === '100%')
269
+ this.width = inputWidth + "px";
270
+ else if (this.listWidth === 'auto')
271
+ this.width = "auto";
272
+ else
273
+ this.width = this.listWidth;
274
+ }
275
+ async refreshItems(expand) {
276
+ return new Promise(async (resolve) => {
277
+ await this.slickFunctionLockService.lock("AUTO_COMPLETE_WAIT_FOR_ITEMS");
278
+ clearInterval(this.waitForItemsInterval);
279
+ this.items = null;
280
+ if (!this.onRefresh || !this.inputRef.value) {
281
+ this.items = [];
282
+ this.slickFunctionLockService.release("AUTO_COMPLETE_WAIT_FOR_ITEMS");
283
+ resolve();
284
+ }
285
+ else {
286
+ this.loading = true;
287
+ if (this.showNoItemsFoundDisplay === false)
288
+ this.collapse();
289
+ // Call the users refresh method to get a fresh list of items
290
+ this.onRefresh.emit(this.inputRef.value);
291
+ // Wait for the list to refresh
292
+ let timeoutCheck = 1000;
293
+ this.waitForItemsInterval = setInterval(() => {
294
+ // If we've timedout, got a response or they started typing something else, stop the interval
295
+ if (timeoutCheck <= 0 || this.items) {
296
+ clearInterval(this.waitForItemsInterval);
297
+ if (timeoutCheck <= 0) {
298
+ console.error("Timed out waiting for list in auto complete");
299
+ this.items = [];
300
+ if (this.showNoItemsFoundDisplay === false)
301
+ this.collapse();
302
+ }
303
+ this.loading = false;
304
+ if (expand)
305
+ this.expand();
306
+ this.slickFunctionLockService.release("AUTO_COMPLETE_WAIT_FOR_ITEMS");
307
+ resolve();
308
+ }
309
+ timeoutCheck--;
310
+ }, 100);
311
+ }
312
+ });
313
+ }
314
+ }
315
+ /** @nocollapse */ SlickAutoCompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickAutoCompleteComponent, deps: [{ token: i1.SlickFunctionLockService }], target: i0.ɵɵFactoryTarget.Component });
316
+ /** @nocollapse */ SlickAutoCompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: SlickAutoCompleteComponent, selector: "slick-auto-complete", inputs: { inputRef: "inputRef", items: "items", delay: "delay", selectFirst: "selectFirst", displayTextFieldName: "displayTextFieldName", listHeight: "listHeight", listWidth: "listWidth", allowFreeformText: "allowFreeformText", showNoItemsFoundDisplay: "showNoItemsFoundDisplay" }, outputs: { onRefresh: "onRefresh", onSelect: "onSelect", onFreeformTextSelect: "onFreeformTextSelect" }, providers: [
317
+ {
318
+ provide: NG_VALUE_ACCESSOR,
319
+ useExisting: forwardRef((() => SlickAutoCompleteComponent)),
320
+ multi: true
321
+ }
322
+ ], queries: [{ propertyName: "listItemTemplateRef", first: true, predicate: SlickAutoCompleteListItemTemplateDirective, descendants: true, static: true }], viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: ["autoCompleteRef"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #autoCompleteRef id=\"slick-auto-complete_{{uuid}}\" class='slick-auto-complete dropdown-menu' [style.width]=\"width\" [style.minWidth]=\"width\" [style.visibility]=\"(expanded === true) ? 'visible' : 'hidden'\" [style.opacity]=\"(expanded === true) ? '1' : '0'\" [style.max-height]=\"listHeight\" [style.left]=\"left\" [style.top]=\"top\">\r\n\t<div *ngIf=\"loading\" style=\"font-size: .8rem\" class=\"ml-3\">Loading...</div>\r\n\t<div *ngIf=\"!loading && items?.length === 0\" style=\"font-size: .8rem\" class=\"ml-3\">\r\n\t\tNo items found\r\n\t</div>\r\n\t<div *ngIf=\"!loading && items?.length > 0\">\r\n\t\t<div *ngFor=\"let item of items; let index = index;\" (click)=\"onItemClick(index)\" [class.card-header]=\"selectedIndex === index\" class=\"dropdown-item\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"listItemTemplateRef.template, context: { $implicit: item, index: index }\">\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickAutoCompleteComponent, decorators: [{
324
+ type: Component,
325
+ args: [{ selector: 'slick-auto-complete', providers: [
326
+ {
327
+ provide: NG_VALUE_ACCESSOR,
328
+ useExisting: forwardRef((() => SlickAutoCompleteComponent)),
329
+ multi: true
330
+ }
331
+ ], template: "<div #autoCompleteRef id=\"slick-auto-complete_{{uuid}}\" class='slick-auto-complete dropdown-menu' [style.width]=\"width\" [style.minWidth]=\"width\" [style.visibility]=\"(expanded === true) ? 'visible' : 'hidden'\" [style.opacity]=\"(expanded === true) ? '1' : '0'\" [style.max-height]=\"listHeight\" [style.left]=\"left\" [style.top]=\"top\">\r\n\t<div *ngIf=\"loading\" style=\"font-size: .8rem\" class=\"ml-3\">Loading...</div>\r\n\t<div *ngIf=\"!loading && items?.length === 0\" style=\"font-size: .8rem\" class=\"ml-3\">\r\n\t\tNo items found\r\n\t</div>\r\n\t<div *ngIf=\"!loading && items?.length > 0\">\r\n\t\t<div *ngFor=\"let item of items; let index = index;\" (click)=\"onItemClick(index)\" [class.card-header]=\"selectedIndex === index\" class=\"dropdown-item\">\r\n\t\t\t<ng-container *ngTemplateOutlet=\"listItemTemplateRef.template, context: { $implicit: item, index: index }\">\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n" }]
332
+ }], ctorParameters: function () { return [{ type: i1.SlickFunctionLockService }]; }, propDecorators: { inputRef: [{
333
+ type: Input,
334
+ args: ["inputRef"]
335
+ }], items: [{
336
+ type: Input,
337
+ args: ["items"]
338
+ }], delay: [{
339
+ type: Input,
340
+ args: ["delay"]
341
+ }], selectFirst: [{
342
+ type: Input,
343
+ args: ["selectFirst"]
344
+ }], displayTextFieldName: [{
345
+ type: Input,
346
+ args: ["displayTextFieldName"]
347
+ }], listHeight: [{
348
+ type: Input,
349
+ args: ["listHeight"]
350
+ }], listWidth: [{
351
+ type: Input,
352
+ args: ["listWidth"]
353
+ }], allowFreeformText: [{
354
+ type: Input,
355
+ args: ["allowFreeformText"]
356
+ }], showNoItemsFoundDisplay: [{
357
+ type: Input,
358
+ args: ["showNoItemsFoundDisplay"]
359
+ }], onRefresh: [{
360
+ type: Output,
361
+ args: ["onRefresh"]
362
+ }], onSelect: [{
363
+ type: Output,
364
+ args: ["onSelect"]
365
+ }], onFreeformTextSelect: [{
366
+ type: Output,
367
+ args: ["onFreeformTextSelect"]
368
+ }], autoCompleteRef: [{
369
+ type: ViewChild,
370
+ args: ["autoCompleteRef", { static: true }]
371
+ }], listItemTemplateRef: [{
372
+ type: ContentChild,
373
+ args: [SlickAutoCompleteListItemTemplateDirective, { static: true }]
374
+ }] } });
375
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYXV0by1jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1hdXRvLWNvbXBsZXRlL3NsaWNrLWF1dG8tY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stYXV0by1jb21wbGV0ZS9zbGljay1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9ELFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUEyQyxNQUFNLGVBQWUsQ0FBQztBQUN2TSxPQUFPLEVBQTJDLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFZakUsTUFBTSxPQUFPLDBCQUEwQjtJQXdDdEMsWUFBb0Isd0JBQWtEO1FBQWxELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFyQ3RELFVBQUssR0FBVyxHQUFHLENBQUM7UUFDZCxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUU3QixlQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFDbkIsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ25CLDRCQUF1QixHQUFHLElBQUksQ0FBQztRQUM1QyxjQUFTLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDOUQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLHlCQUFvQixH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LEVBQUUsSUFBSTt5QkFDWDtxQkFBQzsrR0FHZ0IsUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNELEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFDRSxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ1EsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNXLG9CQUFvQjtzQkFBbEQsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBQ1IsVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUNDLFNBQVM7c0JBQTVCLEtBQUs7dUJBQUMsV0FBVztnQkFDVSxpQkFBaUI7c0JBQTVDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNRLHVCQUF1QjtzQkFBeEQsS0FBSzt1QkFBQyx5QkFBeUI7Z0JBQ1gsU0FBUztzQkFBN0IsTUFBTTt1QkFBQyxXQUFXO2dCQUNDLFFBQVE7c0JBQTNCLE1BQU07dUJBQUMsVUFBVTtnQkFDYyxvQkFBb0I7c0JBQW5ELE1BQU07dUJBQUMsc0JBQXNCO2dCQUVrQixlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDOEIsbUJBQW1CO3NCQUE5RixZQUFZO3VCQUFDLDBDQUEwQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtLCBGb3Jtc01vZHVsZSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFNsaWNrQXV0b0NvbXBsZXRlTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gXCIuL3NsaWNrLWF1dG8tY29tcGxldGUtbGlzdC1pdGVtLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBTbGlja1V0aWxzU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay11dGlscy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1mdW5jdGlvbi1sb2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tTbGVlcFNlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stc2xlZXAuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdzbGljay1hdXRvLWNvbXBsZXRlJyxcclxuXHR0ZW1wbGF0ZVVybDogJ3NsaWNrLWF1dG8tY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpY2tBdXRvQ29tcGxldGVDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQXV0b0NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cdEBJbnB1dChcImlucHV0UmVmXCIpIGlucHV0UmVmOiBIVE1MSW5wdXRFbGVtZW50O1xyXG5cdEBJbnB1dChcIml0ZW1zXCIpIGl0ZW1zOiBhbnlbXTtcclxuXHRASW5wdXQoXCJkZWxheVwiKSBkZWxheTogbnVtYmVyID0gMzAwO1xyXG5cdEBJbnB1dChcInNlbGVjdEZpcnN0XCIpIHNlbGVjdEZpcnN0OiBib29sZWFuID0gdHJ1ZTtcclxuXHRASW5wdXQoXCJkaXNwbGF5VGV4dEZpZWxkTmFtZVwiKSBkaXNwbGF5VGV4dEZpZWxkTmFtZTogc3RyaW5nO1xyXG5cdEBJbnB1dChcImxpc3RIZWlnaHRcIikgbGlzdEhlaWdodCA9IFwiMzAwcHhcIjtcclxuXHRASW5wdXQoXCJsaXN0V2lkdGhcIikgbGlzdFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XHJcblx0QElucHV0KFwiYWxsb3dGcmVlZm9ybVRleHRcIikgYWxsb3dGcmVlZm9ybVRleHQgPSB0cnVlO1xyXG5cdEBJbnB1dChcInNob3dOb0l0ZW1zRm91bmREaXNwbGF5XCIpIHNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID0gdHJ1ZTtcclxuXHRAT3V0cHV0KFwib25SZWZyZXNoXCIpIG9uUmVmcmVzaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHRAT3V0cHV0KFwib25TZWxlY3RcIikgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblx0QE91dHB1dChcIm9uRnJlZWZvcm1UZXh0U2VsZWN0XCIpIG9uRnJlZWZvcm1UZXh0U2VsZWN0OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuXHRAVmlld0NoaWxkKFwiYXV0b0NvbXBsZXRlUmVmXCIsIHsgc3RhdGljOiB0cnVlIH0pIGF1dG9Db21wbGV0ZVJlZjogRWxlbWVudFJlZjtcclxuXHRAQ29udGVudENoaWxkKFNsaWNrQXV0b0NvbXBsZXRlTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgbGlzdEl0ZW1UZW1wbGF0ZVJlZjogU2xpY2tBdXRvQ29tcGxldGVMaXN0SXRlbVRlbXBsYXRlRGlyZWN0aXZlO1xyXG5cclxuXHRmbkRvY3VtZW50Q2xpY2sgPSAoZSkgPT4gdGhpcy5kb2N1bWVudENsaWNrKGUpO1xyXG5cdGZuS2V5RG93biA9IChlKSA9PiB0aGlzLmtleURvd24oZSk7XHJcblxyXG5cdHByaXZhdGUgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcblx0cHJpdmF0ZSBkZWxheVRpbWVvdXQ6IE5vZGVKUy5UaW1lcjtcclxuXHRwcml2YXRlIHdhaXRGb3JJdGVtc0ludGVydmFsOiBOb2RlSlMuVGltZXI7XHJcblx0cHJpdmF0ZSBsYXN0SW5wdXRWYWx1ZTogc3RyaW5nID0gXCJcIjtcclxuXHRwcml2YXRlIGZvcmNlZENvbGxhcHNlID0gZmFsc2U7XHJcblxyXG5cdC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHNvIHRoYXQgdGhlIHNjcm9sbCBhbmQgcmVzaXplIGV2ZW50cyBjYW4gYWRkIGFuZCByZW1vdmUgdGhlIGV2ZW50IHByb3Blcmx5LFxyXG5cdC8vIGFzIHdlbGwgYXMgZ2V0dGluZyB0aGUgY29ycmVjdCBFUzYgZnVuY3Rpb25cclxuXHRwcml2YXRlIGZuUmVwb3NpdGlvbiA9ICgpID0+IHRoaXMucmVwb3NpdGlvbigpO1xyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0bGVmdDogc3RyaW5nO1xyXG5cdHRvcDogc3RyaW5nO1xyXG5cdHdpZHRoOiBzdHJpbmc7XHJcblx0c2VsZWN0ZWRJbmRleDogbnVtYmVyID0gLTE7XHJcblx0c2hvd0F1dG9Db21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGF1dG9Db21wbGV0ZVZpc2libGl0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGV4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHRsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlOiBTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UpIHtcclxuXHRcdHRoaXMudXVpZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLm5ld0d1aWQoKTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIG5nT25Jbml0KCkge1xyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdC8vIFJlbW92ZSB0aGlzIGZyb20gdGhlIGlubGluZSB2ZXJzaW9uIGFuZCBwdXQgaXQgb24gdGhlIGJvZHkgc28gdGhhdCBpdCBkb2Vzbid0IGhpZGUgYmVoaW5kIHRoZSBib3R0b21cclxuXHRcdC8vIG9mIGEgZGl2IHdoZW4gaXQgZXhwYW5kcyBiZXlvbmQgdGhlIGJvdHRvbS5cclxuXHRcdHRoaXMuYXV0b0NvbXBsZXRlUmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlKHRoaXMuYXV0b0NvbXBsZXRlUmVmKTtcclxuXHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5hdXRvQ29tcGxldGVSZWYubmF0aXZlRWxlbWVudCk7XHJcblxyXG5cdFx0dGhpcy5pbnB1dFJlZi5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLmZuS2V5RG93bik7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCB0aGlzLmZuS2V5RG93bik7XHJcblxyXG5cdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHJcblx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0Ly8gSXMgb2theSBpZiB0aGlzIGZhaWxzLiAgSXQganVzdCBtZWFucyBpdCB3YXMgYWxyZWFkeSByZW1vdmVkLlxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50KTtcclxuXHRcdH1cclxuXHRcdGNhdGNoIHsgfVxyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1x0XHRcclxuXHRcdGlmIChjaGFuZ2VzLmFsbG93RnJlZWZvcm1UZXh0KSBcclxuXHRcdFx0dGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCA9ICh0aGlzLmFsbG93RnJlZWZvcm1UZXh0LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhbHNlJykgPyBmYWxzZSA6IHRydWU7XHRcdFxyXG5cclxuXHRcdGlmIChjaGFuZ2VzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5KVxyXG5cdFx0XHR0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID0gKHRoaXMuc2hvd05vSXRlbXNGb3VuZERpc3BsYXkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSAnZmFsc2UnKSA/IGZhbHNlIDogdHJ1ZTtcdFx0XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuaXRlbXMpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPT09IDAgJiYgdGhpcy5zaG93Tm9JdGVtc0ZvdW5kRGlzcGxheSA9PT0gZmFsc2UpXHJcblx0XHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkb2N1bWVudENsaWNrKGU6IE1vdXNlRXZlbnQpIHtcclxuXHRcdGlmICghdGhpcy5leHBhbmRlZCB8fCAhZS50YXJnZXQpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRpZiAoU2xpY2tVdGlsc1NlcnZpY2UuY2hlY2tQYXJlbnRJZEV4aXN0cyg8SFRNTEVsZW1lbnQ+ZS50YXJnZXQsIFwic2xpY2stYXV0by1jb21wbGV0ZV9cIiArIHRoaXMudXVpZCkgPT09IGZhbHNlKSB7XHJcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJBVVRPX0NPTVBMRVRFX1dBSVRfRk9SX0lURU1TXCIpO1xyXG5cdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuYWxsb3dGcmVlZm9ybVRleHQgJiYgdGhpcy5vbkZyZWVmb3JtVGV4dFNlbGVjdClcclxuXHRcdFx0dGhpcy5vbkZyZWVmb3JtVGV4dFNlbGVjdC5lbWl0KHRoaXMuaW5wdXRSZWYudmFsdWUpO1xyXG5cclxuXHR9XHJcblxyXG5cdG9uSXRlbUNsaWNrKGluZGV4KSB7XHJcblx0XHR0aGlzLnNlbGVjdEl0ZW0oaW5kZXgpO1xyXG5cdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBrZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcblx0XHQvLyBhbHRcclxuXHRcdGlmIChldmVudC5rZXlDb2RlID09PSAxOClcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHR0aGlzLnNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZS5yZWxlYXNlKFwiQVVUT19DT01QTEVURV9XQUlUX0ZPUl9JVEVNU1wiKTtcclxuXHJcblx0XHQvLyBJZiB3ZSdyZSBqdXN0IHRhYmJpbmcgdGhyb3VnaCwgZG9uJ3QgZXZlbiBkbyBhbnl0aGluZ1xyXG5cdFx0aWYgKCF0aGlzLmxhc3RJbnB1dFZhbHVlICYmIChldmVudC5rZXlDb2RlID09PSA5IHx8IGV2ZW50LmtleUNvZGUgPT09IDEzKSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblxyXG5cdFx0aWYgKHRoaXMubGFzdElucHV0VmFsdWUgIT09IHRoaXMuaW5wdXRSZWYudmFsdWUpIHtcclxuXHRcdFx0dGhpcy5sYXN0SW5wdXRWYWx1ZSA9IHRoaXMuaW5wdXRSZWYudmFsdWU7XHJcblx0XHRcdHRoaXMuZm9yY2VkQ29sbGFwc2UgPSBmYWxzZTtcclxuXHJcblx0XHRcdGlmICghdGhpcy5sYXN0SW5wdXRWYWx1ZSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cdFx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdFx0dGhpcy5kZWxheVRpbWVvdXQgPSBudWxsO1xyXG5cdFx0XHRpZiAodGhpcy5pbnB1dFJlZi52YWx1ZSA9PT0gJycpIHtcclxuXHRcdFx0XHR0aGlzLml0ZW1zID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5kZWxheVRpbWVvdXQgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuXHRcdFx0XHRcdCh0aGlzLnNlbGVjdEZpcnN0ID09PSB0cnVlKSA/IHRoaXMuc2VsZWN0ZWRJbmRleCA9IDAgOiB0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuXHRcdFx0XHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMuaXRlbXMgPSBudWxsO1xyXG5cdFx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdFx0XHRcdGF3YWl0IHRoaXMucmVmcmVzaEl0ZW1zKHRydWUpO1xyXG5cdFx0XHRcdH0sIHRoaXMuZGVsYXkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGV2ZW50LmtleUNvZGUgPT09IDkgfHwgZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcclxuXHRcdFx0aWYgKHRoaXMuZGVsYXlUaW1lb3V0ICYmIHRoaXMuc2VsZWN0Rmlyc3QpIHtcclxuXHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy5kZWxheVRpbWVvdXQpO1xyXG5cdFx0XHRcdHRoaXMuZGVsYXlUaW1lb3V0ID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLml0ZW1zID0gbnVsbDtcclxuXHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0XHRcdGlmICh0aGlzLnNlbGVjdEZpcnN0ID09PSB0cnVlICYmICF0aGlzLmZvcmNlZENvbGxhcHNlKSB7XHJcblx0XHRcdFx0XHRhd2FpdCB0aGlzLnJlZnJlc2hJdGVtcyhmYWxzZSk7XHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIXRoaXMuaXRlbXMgJiYgIXRoaXMuaW5wdXRSZWYudmFsdWUgJiYgdGhpcy5vblNlbGVjdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLm9uU2VsZWN0LmVtaXQobnVsbCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRlbHNlIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAwO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEluZGV4KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRpZiAodGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCAmJiB0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0KSBcclxuXHRcdFx0XHRcdFx0XHR0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0LmVtaXQodGhpcy5pbnB1dFJlZi52YWx1ZSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuYWxsb3dGcmVlZm9ybVRleHQgJiYgdGhpcy5vbkZyZWVmb3JtVGV4dFNlbGVjdCkgXHJcblx0XHRcdFx0XHRcdHRoaXMub25GcmVlZm9ybVRleHRTZWxlY3QuZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVsYXlUaW1lb3V0KTtcclxuXHRcdFx0XHRpZiAoIXRoaXMuaXRlbXMgJiYgIXRoaXMuaW5wdXRSZWYudmFsdWUgJiYgdGhpcy5vblNlbGVjdCkge1xyXG5cdFx0XHRcdFx0dGhpcy5vblNlbGVjdC5lbWl0KG51bGwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRlbHNlIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLmV4cGFuZGVkICYmICF0aGlzLmZvcmNlZENvbGxhcHNlKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEluZGV4KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5hbGxvd0ZyZWVmb3JtVGV4dCAmJiB0aGlzLm9uRnJlZWZvcm1UZXh0U2VsZWN0KSB7XHJcblx0XHRcdFx0XHRcdHRoaXMub25GcmVlZm9ybVRleHRTZWxlY3QuZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5jb2xsYXBzZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRXNjXHJcblx0XHRpZiAoZXZlbnQud2hpY2ggPT09IDI3KSB7XHJcblx0XHRcdHRoaXMuZm9yY2VkQ29sbGFwc2UgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQXJyb3d1cFxyXG5cdFx0aWYgKGV2ZW50LndoaWNoID09PSAzOCkge1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsIHx8IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkKVxyXG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XHJcblxyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ID4gMClcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXgtLTtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBBcnJvd2Rvd25cclxuXHRcdGlmIChldmVudC53aGljaCA9PT0gNDApIHtcclxuXHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGVkSW5kZXggPT09IG51bGwgfHwgdGhpcy5zZWxlY3RlZEluZGV4ID09PSB1bmRlZmluZWQpXHJcblx0XHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMuZXhwYW5kZWQpIHtcclxuXHRcdFx0XHR0aGlzLmV4cGFuZCgpO1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0ZWRJbmRleCA8IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSlcclxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXgrKztcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHdyaXRlVmFsdWUob2JqOiBhbnkpIHtcclxuXHRcdGlmIChvYmopIHtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIHJlZ2lzdGVycyAnZm4nIHRoYXQgd2lsbCBiZSBmaXJlZCB3aGVuIGNoYW5nZXMgYXJlIG1hZGVcclxuXHQvLyB0aGlzIGlzIGhvdyB3ZSBlbWl0IHRoZSBjaGFuZ2VzIGJhY2sgdG8gdGhlIGZvcm1cclxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHQvLyBub3QgdXNlZCwgdXNlZCBmb3IgdG91Y2ggaW5wdXRcclxuXHRyZWdpc3Rlck9uVG91Y2hlZCgpIHsgfVxyXG5cclxuXHRhc3luYyBzZWxlY3RJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuXHRcdGlmIChpbmRleCA8IDAgfHwgIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5pdGVtc1tpbmRleF07XHJcblx0XHRcdGlmICh0aGlzLmRpc3BsYXlUZXh0RmllbGROYW1lKSB7XHJcblx0XHRcdFx0Y29uc3QgdGV4dCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldERlZXBPYmplY3QodGhpcy5zZWxlY3RlZEl0ZW0sIHRoaXMuZGlzcGxheVRleHRGaWVsZE5hbWUpO1xyXG5cdFx0XHRcdGlmICh0ZXh0KSB7XHJcblx0XHRcdFx0XHR0aGlzLmlucHV0UmVmLnZhbHVlID0gdGV4dDtcclxuXHRcdFx0XHRcdHRoaXMubGFzdElucHV0VmFsdWUgPSB0aGlzLmlucHV0UmVmLnZhbHVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRJdGVtKTtcclxuXHRcdGlmICh0aGlzLm9uU2VsZWN0KVxyXG5cdFx0XHR0aGlzLm9uU2VsZWN0LmVtaXQodGhpcy5zZWxlY3RlZEl0ZW0pO1xyXG5cdFx0Ly8gQ2FsbCB0byB1cGRhdGUgdGhlIG1vZGVsIGZvciB0aGUgdGV4dGJveFxyXG5cdFx0YXdhaXQgU2xpY2tTbGVlcFNlcnZpY2Uuc2xlZXAoKTtcclxuXHRcdGxldCBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTtcclxuXHRcdGV2dC5pbml0RXZlbnQoJ2lucHV0JywgdHJ1ZSwgZmFsc2UpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5kaXNwYXRjaEV2ZW50KGV2dCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGV4cGFuZCgpIHtcclxuXHRcdHRoaXMucmVwb3NpdGlvbigpO1xyXG5cclxuXHRcdC8vIElmIHRoZSBmbGFnIHRvIHNob3cgaXRlbXMgaXMgZmFsc2UsIGRvbid0IGRpc3BsYXkgXCJMb2FkaW5nLi4uXCJcclxuXHRcdGlmICh0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID09PSBmYWxzZSAmJiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPT09IDApKSB7XHJcblx0XHRcdHRoaXMuc2hvd0F1dG9Db21wbGV0ZSA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmF1dG9Db21wbGV0ZVZpc2libGl0eSA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnNob3dBdXRvQ29tcGxldGUgPSB0cnVlO1xyXG5cdFx0dGhpcy5hdXRvQ29tcGxldGVSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHR0aGlzLmF1dG9Db21wbGV0ZVZpc2libGl0eSA9IHRydWU7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcclxuXHJcblx0XHR0aGlzLmlucHV0UmVmLmNsYXNzTGlzdC5hZGQoXCJzbGljay1hdXRvLWNvbXBsZXRlX3JlbW92ZS1ib3R0b20tbGVmdC1ib3JkZXItcmFkaXVzXCIpO1xyXG5cdFx0dGhpcy5pbnB1dFJlZi5jbGFzc0xpc3QuYWRkKFwic2xpY2stYXV0by1jb21wbGV0ZV9yZW1vdmUtYm90dG9tLXJpZ2h0LWJvcmRlci1yYWRpdXNcIik7XHJcblxyXG5cdFx0Ly8gVGhpcyBpcyBuZWNlc3NhcnksIG90aGVyd2lzZSBgdGhpc2AgaW4gdGhlIHJlcG9zaXRpb24gZnVuY3Rpb24gd2lsbCBiZSB3aW5kb3dcclxuXHRcdC8vIGFuZCBub3QgdGhlIGNvbXBvbmVudC5cclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb2xsYXBzZSgpIHtcclxuXHRcdGxldCBpbnB1dEdyb3VwUHJlcGVuZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldENsb3Nlc3RTaWJsaW5nKHRoaXMuaW5wdXRSZWYsIFwiaW5wdXQtZ3JvdXAtcHJlcGVuZFwiKTtcclxuXHRcdGlmIChpbnB1dEdyb3VwUHJlcGVuZClcclxuXHRcdFx0aW5wdXRHcm91cFByZXBlbmQuY2xhc3NMaXN0LnJlbW92ZShcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1sZWZ0LWJvcmRlci1yYWRpdXNcIik7XHJcblxyXG5cdFx0dGhpcy5pbnB1dFJlZi5jbGFzc0xpc3QucmVtb3ZlKFwic2xpY2stYXV0by1jb21wbGV0ZV9yZW1vdmUtYm90dG9tLWxlZnQtYm9yZGVyLXJhZGl1c1wiKTtcclxuXHRcdHRoaXMuaW5wdXRSZWYuY2xhc3NMaXN0LnJlbW92ZShcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1yaWdodC1ib3JkZXItcmFkaXVzXCIpO1xyXG5cclxuXHRcdHRoaXMuYXV0b0NvbXBsZXRlVmlzaWJsaXR5ID0gZmFsc2U7XHJcblx0XHR0aGlzLmV4cGFuZGVkID0gZmFsc2U7XHJcblx0XHR0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHJcblx0XHQvLyBTaW5jZSBhbmd1bGFyIGhhcyBubyB3YXkgdG8gdXNlIHRoZSB0aGlyZCBwYXJhbWV0ZXIsIEknbSBkb2luZyB0aGlzIGluIHJhdyBqc1xyXG5cdFx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuZm5Eb2N1bWVudENsaWNrLCB0cnVlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVwb3NpdGlvbigpIHtcclxuXHRcdGxldCByZWN0ID0gdGhpcy5pbnB1dFJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHRcdGxldCBpbnB1dExlZnQgPSByZWN0LmxlZnQ7XHJcblx0XHRsZXQgaW5wdXRUb3AgPSByZWN0LnRvcDtcclxuXHRcdGxldCBpbnB1dEhlaWdodCA9IHRoaXMuaW5wdXRSZWYub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0bGV0IGlucHV0V2lkdGggPSB0aGlzLmlucHV0UmVmLm9mZnNldFdpZHRoO1xyXG5cclxuXHRcdGxldCBpbnB1dEdyb3VwUHJlcGVuZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLmdldENsb3Nlc3RTaWJsaW5nKHRoaXMuaW5wdXRSZWYsIFwiaW5wdXQtZ3JvdXAtcHJlcGVuZFwiKTtcclxuXHRcdGlmIChpbnB1dEdyb3VwUHJlcGVuZCkge1xyXG5cdFx0XHRpbnB1dExlZnQgPSBpbnB1dEdyb3VwUHJlcGVuZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xyXG5cdFx0XHRpbnB1dFdpZHRoID0gaW5wdXRXaWR0aCArPSBpbnB1dEdyb3VwUHJlcGVuZC5vZmZzZXRXaWR0aDtcclxuXHRcdFx0aW5wdXRHcm91cFByZXBlbmQuY2xhc3NMaXN0LmFkZChcInNsaWNrLWF1dG8tY29tcGxldGVfcmVtb3ZlLWJvdHRvbS1sZWZ0LWJvcmRlci1yYWRpdXNcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5sZWZ0ID0gaW5wdXRMZWZ0ICsgXCJweFwiO1xyXG5cdFx0dGhpcy50b3AgPSAoaW5wdXRUb3AgKyBpbnB1dEhlaWdodCArIDEpICsgXCJweFwiO1xyXG5cdFx0aWYgKHRoaXMubGlzdFdpZHRoID09PSAnMTAwJScpXHJcblx0XHRcdHRoaXMud2lkdGggPSBpbnB1dFdpZHRoICsgXCJweFwiO1xyXG5cdFx0ZWxzZSBpZiAodGhpcy5saXN0V2lkdGggPT09ICdhdXRvJylcclxuXHRcdFx0dGhpcy53aWR0aCA9IFwiYXV0b1wiO1xyXG5cdFx0ZWxzZVxyXG5cdFx0XHR0aGlzLndpZHRoID0gdGhpcy5saXN0V2lkdGg7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHJlZnJlc2hJdGVtcyhleHBhbmQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihhc3luYyAocmVzb2x2ZSkgPT4ge1xyXG5cdFx0XHRhd2FpdCB0aGlzLnNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZS5sb2NrKFwiQVVUT19DT01QTEVURV9XQUlUX0ZPUl9JVEVNU1wiKTtcclxuXHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLndhaXRGb3JJdGVtc0ludGVydmFsKTtcclxuXHRcdFx0dGhpcy5pdGVtcyA9IG51bGw7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMub25SZWZyZXNoIHx8ICF0aGlzLmlucHV0UmVmLnZhbHVlKSB7XHJcblx0XHRcdFx0dGhpcy5pdGVtcyA9IFtdO1xyXG5cdFx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJBVVRPX0NPTVBMRVRFX1dBSVRfRk9SX0lURU1TXCIpO1xyXG5cdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdGlmICh0aGlzLnNob3dOb0l0ZW1zRm91bmREaXNwbGF5ID09PSBmYWxzZSlcclxuXHRcdFx0XHRcdHRoaXMuY29sbGFwc2UoKTtcclxuXHRcdFx0XHQvLyBDYWxsIHRoZSB1c2VycyByZWZyZXNoIG1ldGhvZCB0byBnZXQgYSBmcmVzaCBsaXN0IG9mIGl0ZW1zXHJcblx0XHRcdFx0dGhpcy5vblJlZnJlc2guZW1pdCh0aGlzLmlucHV0UmVmLnZhbHVlKTtcclxuXHJcblx0XHRcdFx0Ly8gV2FpdCBmb3IgdGhlIGxpc3QgdG8gcmVmcmVzaFxyXG5cdFx0XHRcdGxldCB0aW1lb3V0Q2hlY2sgPSAxMDAwO1xyXG5cdFx0XHRcdHRoaXMud2FpdEZvckl0ZW1zSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcblx0XHRcdFx0XHQvLyBJZiB3ZSd2ZSB0aW1lZG91dCwgZ290IGEgcmVzcG9uc2Ugb3IgdGhleSBzdGFydGVkIHR5cGluZyBzb21ldGhpbmcgZWxzZSwgc3RvcCB0aGUgaW50ZXJ2YWxcclxuXHRcdFx0XHRcdGlmICh0aW1lb3V0Q2hlY2sgPD0gMCB8fCB0aGlzLml0ZW1zKSB7XHJcblx0XHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy53YWl0Rm9ySXRlbXNJbnRlcnZhbCk7XHJcblx0XHRcdFx0XHRcdGlmICh0aW1lb3V0Q2hlY2sgPD0gMCkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgbGlzdCBpbiBhdXRvIGNvbXBsZXRlXCIpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuaXRlbXMgPSBbXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAodGhpcy5zaG93Tm9JdGVtc0ZvdW5kRGlzcGxheSA9PT0gZmFsc2UpXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmNvbGxhcHNlKCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdGlmIChleHBhbmQpXHJcblx0XHRcdFx0XHRcdFx0dGhpcy5leHBhbmQoKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5zbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UucmVsZWFzZShcIkFVVE9fQ09NUExFVEVfV0FJVF9GT1JfSVRFTVNcIik7XHJcblx0XHRcdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHR0aW1lb3V0Q2hlY2stLTtcclxuXHRcdFx0XHR9LCAxMDApO1xyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHJcbn0iLCI8ZGl2ICNhdXRvQ29tcGxldGVSZWYgaWQ9XCJzbGljay1hdXRvLWNvbXBsZXRlX3t7dXVpZH19XCIgY2xhc3M9J3NsaWNrLWF1dG8tY29tcGxldGUgZHJvcGRvd24tbWVudScgW3N0eWxlLndpZHRoXT1cIndpZHRoXCIgW3N0eWxlLm1pbldpZHRoXT1cIndpZHRoXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiKGV4cGFuZGVkID09PSB0cnVlKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCIgW3N0eWxlLm9wYWNpdHldPVwiKGV4cGFuZGVkID09PSB0cnVlKSA/ICcxJyA6ICcwJ1wiIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImxpc3RIZWlnaHRcIiBbc3R5bGUubGVmdF09XCJsZWZ0XCIgW3N0eWxlLnRvcF09XCJ0b3BcIj5cclxuXHQ8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIHN0eWxlPVwiZm9udC1zaXplOiAuOHJlbVwiIGNsYXNzPVwibWwtM1wiPkxvYWRpbmcuLi48L2Rpdj5cclxuXHQ8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgaXRlbXM/Lmxlbmd0aCA9PT0gMFwiIHN0eWxlPVwiZm9udC1zaXplOiAuOHJlbVwiIGNsYXNzPVwibWwtM1wiPlxyXG5cdFx0Tm8gaXRlbXMgZm91bmRcclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgaXRlbXM/Lmxlbmd0aCA+IDBcIj5cclxuXHRcdDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGxldCBpbmRleCA9IGluZGV4O1wiIChjbGljayk9XCJvbkl0ZW1DbGljayhpbmRleClcIiBbY2xhc3MuY2FyZC1oZWFkZXJdPVwic2VsZWN0ZWRJbmRleCA9PT0gaW5kZXhcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIj5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RJdGVtVGVtcGxhdGVSZWYudGVtcGxhdGUsIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpbmRleDogaW5kZXggfVwiPlxyXG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,24 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { FormsModule } from '@angular/forms';
4
+ import { SlickAutoCompleteComponent } from "./slick-auto-complete.component";
5
+ import { SlickAutoCompleteListItemTemplateDirective } from "./slick-auto-complete-list-item-template.directive";
6
+ import { SlickFunctionLockService } from "../utils/slick-function-lock.service";
7
+ import * as i0 from "@angular/core";
8
+ export class SlickAutoCompleteModule {
9
+ }
10
+ /** @nocollapse */ SlickAutoCompleteModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickAutoCompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ /** @nocollapse */ SlickAutoCompleteModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickAutoCompleteModule, declarations: [SlickAutoCompleteComponent, SlickAutoCompleteListItemTemplateDirective], imports: [CommonModule, FormsModule], exports: [SlickAutoCompleteComponent, SlickAutoCompleteListItemTemplateDirective] });
12
+ /** @nocollapse */ SlickAutoCompleteModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickAutoCompleteModule, providers: [SlickFunctionLockService], imports: [[CommonModule, FormsModule]] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: SlickAutoCompleteModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule, FormsModule],
17
+ declarations: [SlickAutoCompleteComponent, SlickAutoCompleteListItemTemplateDirective],
18
+ exports: [SlickAutoCompleteComponent, SlickAutoCompleteListItemTemplateDirective],
19
+ providers: [SlickFunctionLockService]
20
+ }]
21
+ }] });
22
+ export { SlickAutoCompleteComponent };
23
+ export { SlickAutoCompleteListItemTemplateDirective };
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stYXV0by1jb21wbGV0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1hdXRvLWNvbXBsZXRlL3NsaWNrLWF1dG8tY29tcGxldGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFRaEYsTUFBTSxPQUFPLHVCQUF1Qjs7dUlBQXZCLHVCQUF1Qjt3SUFBdkIsdUJBQXVCLGlCQUpwQiwwQkFBMEIsRUFBRSwwQ0FBMEMsYUFEM0UsWUFBWSxFQUFFLFdBQVcsYUFFekIsMEJBQTBCLEVBQUUsMENBQTBDO3dJQUdwRSx1QkFBdUIsYUFGeEIsQ0FBQyx3QkFBd0IsQ0FBQyxZQUg1QixDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7MkZBS3hCLHVCQUF1QjtrQkFObkMsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxZQUFZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSwwQ0FBMEMsQ0FBQztvQkFDdEYsT0FBTyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsMENBQTBDLENBQUM7b0JBQ2pGLFNBQVMsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUNyQzs7QUFHRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsMENBQTBDLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2xpY2tBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tIFwiLi9zbGljay1hdXRvLWNvbXBsZXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTbGlja0F1dG9Db21wbGV0ZUxpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tIFwiLi9zbGljay1hdXRvLWNvbXBsZXRlLWxpc3QtaXRlbS10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgU2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLWZ1bmN0aW9uLWxvY2suc2VydmljZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcblx0ZGVjbGFyYXRpb25zOiBbU2xpY2tBdXRvQ29tcGxldGVDb21wb25lbnQsIFNsaWNrQXV0b0NvbXBsZXRlTGlzdEl0ZW1UZW1wbGF0ZURpcmVjdGl2ZV0sXHJcblx0ZXhwb3J0czogW1NsaWNrQXV0b0NvbXBsZXRlQ29tcG9uZW50LCBTbGlja0F1dG9Db21wbGV0ZUxpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmVdLFxyXG5cdHByb3ZpZGVyczogW1NsaWNrRnVuY3Rpb25Mb2NrU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNsaWNrQXV0b0NvbXBsZXRlTW9kdWxlIHsgfVxyXG5cclxuZXhwb3J0IHsgU2xpY2tBdXRvQ29tcGxldGVDb21wb25lbnQgfVxyXG5leHBvcnQgeyBTbGlja0F1dG9Db21wbGV0ZUxpc3RJdGVtVGVtcGxhdGVEaXJlY3RpdmUgfSJdfQ==