slick-components 5.0.28 → 17.0.2

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 (303) hide show
  1. package/{esm2020 → esm2022}/public-api.mjs +44 -44
  2. package/{esm2020 → esm2022}/slick-accordion/slick-accordion-item-header.component.mjs +14 -14
  3. package/esm2022/slick-accordion/slick-accordion-item.component.mjs +92 -0
  4. package/{esm2020 → esm2022}/slick-accordion/slick-accordion.component.mjs +80 -80
  5. package/{esm2020 → esm2022}/slick-accordion/slick-accordion.module.mjs +23 -23
  6. package/{esm2020 → esm2022}/slick-auto-complete/slick-auto-complete-list-item-template.directive.mjs +22 -22
  7. package/esm2022/slick-auto-complete/slick-auto-complete.component.mjs +388 -0
  8. package/{esm2020 → esm2022}/slick-auto-complete/slick-auto-complete.module.mjs +25 -25
  9. package/esm2022/slick-button-spinner/slick-button-spinner.component.mjs +175 -0
  10. package/{esm2020 → esm2022}/slick-button-spinner/slick-button-spinner.module.mjs +19 -19
  11. package/esm2022/slick-calendar/slick-calendar.component.mjs +271 -0
  12. package/{esm2020 → esm2022}/slick-calendar/slick-calendar.module.mjs +19 -19
  13. package/{esm2020 → esm2022}/slick-card/slick-card-header.component.mjs +14 -14
  14. package/esm2022/slick-card/slick-card.component.mjs +42 -0
  15. package/{esm2020 → esm2022}/slick-card/slick-card.module.mjs +20 -20
  16. package/{esm2020 → esm2022}/slick-components.mjs +4 -4
  17. package/{esm2020 → esm2022}/slick-confirm-dialog/slick-confirm-dialog.component.mjs +65 -65
  18. package/{esm2020 → esm2022}/slick-confirm-dialog/slick-confirm-dialog.module.mjs +20 -20
  19. package/{esm2020 → esm2022}/slick-container/slick-container-body.component.mjs +24 -24
  20. package/{esm2020 → esm2022}/slick-container/slick-container-footer.component.mjs +20 -20
  21. package/{esm2020 → esm2022}/slick-container/slick-container-header.component.mjs +20 -20
  22. package/{esm2020 → esm2022}/slick-container/slick-container.component.mjs +21 -21
  23. package/{esm2020 → esm2022}/slick-container/slick-container.module.mjs +25 -25
  24. package/{esm2020 → esm2022}/slick-context-menu/slick-context-menu-item.component.mjs +14 -14
  25. package/esm2022/slick-context-menu/slick-context-menu.component.mjs +48 -0
  26. package/{esm2020 → esm2022}/slick-context-menu/slick-context-menu.module.mjs +20 -20
  27. package/{esm2020 → esm2022}/slick-currency-mask/slick-currency-mask-options.model.mjs +11 -11
  28. package/esm2022/slick-currency-mask/slick-currency-mask.directive.mjs +233 -0
  29. package/{esm2020 → esm2022}/slick-currency-mask/slick-currency-mask.module.mjs +19 -19
  30. package/esm2022/slick-date-picker/slick-date-picker.component.mjs +278 -0
  31. package/{esm2020 → esm2022}/slick-date-picker/slick-date-picker.module.mjs +21 -21
  32. package/{esm2020 → esm2022}/slick-dialog/slick-dialog-footer.component.mjs +24 -24
  33. package/esm2022/slick-dialog/slick-dialog.component.mjs +294 -0
  34. package/{esm2020 → esm2022}/slick-dialog/slick-dialog.module.mjs +23 -23
  35. package/esm2022/slick-dialog/slick-dialog.service.mjs +68 -0
  36. package/{esm2020 → esm2022}/slick-drag-drop/slick-drag-drop.directive.mjs +13 -13
  37. package/{esm2020 → esm2022}/slick-drag-drop/slick-drag-drop.module.mjs +21 -21
  38. package/{esm2020 → esm2022}/slick-drag-drop/slick-draggable.directive.mjs +13 -13
  39. package/{esm2020 → esm2022}/slick-drop-down/slick-drop-down-button.model.mjs +7 -7
  40. package/esm2022/slick-drop-down/slick-drop-down.component.mjs +447 -0
  41. package/{esm2020 → esm2022}/slick-drop-down/slick-drop-down.module.mjs +24 -24
  42. package/esm2022/slick-drop-down/slick-drop-down.service.mjs +55 -0
  43. package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list-grab.directive.mjs +18 -18
  44. package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list-item.directive.mjs +18 -18
  45. package/esm2022/slick-drop-list/slick-drop-list.directive.mjs +215 -0
  46. package/{esm2020 → esm2022}/slick-drop-list/slick-drop-list.module.mjs +23 -23
  47. package/{esm2020 → esm2022}/slick-email-viewer/slick-email-viewer-dialog.component.mjs +62 -62
  48. package/esm2022/slick-email-viewer/slick-email-viewer.component.mjs +42 -0
  49. package/{esm2020 → esm2022}/slick-email-viewer/slick-email-viewer.module.mjs +26 -26
  50. package/{esm2020 → esm2022}/slick-emailer/slick-emailer-address.model.mjs +2 -2
  51. package/esm2022/slick-emailer/slick-emailer-dialog.component.mjs +153 -0
  52. package/esm2022/slick-emailer/slick-emailer.component.mjs +235 -0
  53. package/{esm2020 → esm2022}/slick-emailer/slick-emailer.model.mjs +2 -2
  54. package/{esm2020 → esm2022}/slick-emailer/slick-emailer.module.mjs +29 -29
  55. package/esm2022/slick-file-drop/slick-file-drop.component.mjs +156 -0
  56. package/{esm2020 → esm2022}/slick-file-drop/slick-file-drop.module.mjs +20 -20
  57. package/esm2022/slick-file-list/slick-file-list-item.component.mjs +190 -0
  58. package/esm2022/slick-file-list/slick-file-list.component.mjs +130 -0
  59. package/{esm2020 → esm2022}/slick-file-list/slick-file-list.module.mjs +23 -23
  60. package/{esm2020 → esm2022}/slick-file-model/slick-file.model.mjs +2 -2
  61. package/esm2022/slick-google-address-search/slick-google-address-search.directive.mjs +78 -0
  62. package/{esm2020 → esm2022}/slick-google-address-search/slick-google-address-search.module.mjs +19 -19
  63. package/esm2022/slick-google-map/slick-google-map-dialog.component.mjs +50 -0
  64. package/esm2022/slick-google-map/slick-google-map.component.mjs +48 -0
  65. package/{esm2020 → esm2022}/slick-google-map/slick-google-map.module.mjs +22 -22
  66. package/{esm2020 → esm2022}/slick-grid/slick-grid-column-template.directive.mjs +19 -19
  67. package/{esm2020 → esm2022}/slick-grid/slick-grid-column.model.mjs +66 -66
  68. package/{esm2020 → esm2022}/slick-grid/slick-grid-favorite.model.mjs +2 -2
  69. package/{esm2020 → esm2022}/slick-grid/slick-grid-request.model.mjs +2 -2
  70. package/{esm2020 → esm2022}/slick-grid/slick-grid-response.model.mjs +2 -2
  71. package/{esm2020 → esm2022}/slick-grid/slick-grid-sanitize.pipe.mjs +20 -20
  72. package/esm2022/slick-grid/slick-grid.component.mjs +793 -0
  73. package/{esm2020 → esm2022}/slick-grid/slick-grid.module.mjs +43 -43
  74. package/{esm2020 → esm2022}/slick-grid/slick-grid.options.mjs +11 -11
  75. package/esm2022/slick-grid/slick-grid.service.mjs +66 -0
  76. package/esm2022/slick-multi-select/slick-multi-select.component.mjs +415 -0
  77. package/{esm2020 → esm2022}/slick-multi-select/slick-multi-select.module.mjs +20 -20
  78. package/esm2022/slick-multi-select/slick-multi-select.service.mjs +78 -0
  79. package/esm2022/slick-ordered-list/slick-ordered-list.component.mjs +200 -0
  80. package/{esm2020 → esm2022}/slick-ordered-list/slick-ordered-list.module.mjs +20 -20
  81. package/esm2022/slick-paging/slick-paging.component.mjs +185 -0
  82. package/{esm2020 → esm2022}/slick-paging/slick-paging.module.mjs +19 -19
  83. package/esm2022/slick-photo-gallery/slick-photo-gallery.component.mjs +98 -0
  84. package/{esm2020 → esm2022}/slick-photo-gallery/slick-photo-gallery.model.mjs +2 -2
  85. package/{esm2020 → esm2022}/slick-photo-gallery/slick-photo-gallery.module.mjs +21 -21
  86. package/{esm2020 → esm2022}/slick-pick-list/slick-pick-list.component.mjs +84 -84
  87. package/{esm2020 → esm2022}/slick-pick-list/slick-pick-list.module.mjs +20 -20
  88. package/esm2022/slick-popover/slick-popover.component.mjs +204 -0
  89. package/{esm2020 → esm2022}/slick-popover/slick-popover.module.mjs +19 -19
  90. package/esm2022/slick-profile-picture/slick-profile-picture.component.mjs +267 -0
  91. package/{esm2020 → esm2022}/slick-profile-picture/slick-profile-picture.module.mjs +20 -20
  92. package/{esm2020 → esm2022}/slick-progress-bar/slick-progress-bar.module.mjs +18 -18
  93. package/esm2022/slick-progress-bar/slick-progress-bar.service.mjs +53 -0
  94. package/{esm2020 → esm2022}/slick-screen-blocker/slick-screen-blocker.module.mjs +18 -18
  95. package/esm2022/slick-screen-blocker/slick-screen-blocker.service.mjs +83 -0
  96. package/esm2022/slick-search-bar/slick-search-bar.component.mjs +130 -0
  97. package/{esm2020 → esm2022}/slick-search-bar/slick-search-bar.module.mjs +20 -20
  98. package/{esm2020 → esm2022}/slick-slider/slick-slider-tick.model.mjs +2 -2
  99. package/esm2022/slick-slider/slick-slider.component.mjs +90 -0
  100. package/{esm2020 → esm2022}/slick-slider/slick-slider.module.mjs +20 -20
  101. package/{esm2020 → esm2022}/slick-split-screen/slick-screen-split-left-content.component.mjs +15 -15
  102. package/{esm2020 → esm2022}/slick-split-screen/slick-screen-split-right-content.component.mjs +15 -15
  103. package/esm2022/slick-split-screen/slick-split-screen.component.mjs +159 -0
  104. package/{esm2020 → esm2022}/slick-split-screen/slick-split-screen.module.mjs +21 -21
  105. package/esm2022/slick-star-rating/slick-star-rating.component.mjs +91 -0
  106. package/{esm2020 → esm2022}/slick-star-rating/slick-star-rating.module.mjs +21 -21
  107. package/{esm2020 → esm2022}/slick-tabs/slick-tab-header.component.mjs +28 -28
  108. package/esm2022/slick-tabs/slick-tab.component.mjs +63 -0
  109. package/{esm2020 → esm2022}/slick-tabs/slick-tab.model.mjs +2 -2
  110. package/esm2022/slick-tabs/slick-tabs.component.mjs +107 -0
  111. package/{esm2020 → esm2022}/slick-tabs/slick-tabs.module.mjs +23 -23
  112. package/{esm2020 → esm2022}/slick-toast/slick-toast.module.mjs +18 -18
  113. package/esm2022/slick-toast/slick-toast.service.mjs +88 -0
  114. package/esm2022/slick-tree-view/slick-tree-node.model.mjs +18 -0
  115. package/esm2022/slick-tree-view/slick-tree-view.component.mjs +293 -0
  116. package/{esm2020 → esm2022}/slick-tree-view/slick-tree-view.module.mjs +22 -22
  117. package/esm2022/slick-type-ahead/slick-type-ahead.directive.mjs +164 -0
  118. package/{esm2020 → esm2022}/slick-type-ahead/slick-type-ahead.module.mjs +18 -18
  119. package/esm2022/slick-validation-indicator/slick-validation-indicator.directive.mjs +66 -0
  120. package/{esm2020 → esm2022}/slick-validation-indicator/slick-validation-indicator.module.mjs +19 -19
  121. package/esm2022/utils/slick-function-lock.service.mjs +55 -0
  122. package/esm2022/utils/slick-init.service.mjs +49 -0
  123. package/{esm2020 → esm2022}/utils/slick-log.service.mjs +23 -23
  124. package/{esm2020 → esm2022}/utils/slick-sleep.service.mjs +14 -14
  125. package/esm2022/utils/slick-utils.service.mjs +247 -0
  126. package/{fesm2020 → fesm2022}/slick-components.mjs +8495 -8495
  127. package/fesm2022/slick-components.mjs.map +1 -0
  128. package/index.d.ts +5 -5
  129. package/package.json +11 -17
  130. package/public-api.d.ts +41 -41
  131. package/slick-accordion/slick-accordion-item-header.component.d.ts +5 -5
  132. package/slick-accordion/slick-accordion-item.component.d.ts +24 -24
  133. package/slick-accordion/slick-accordion.component.d.ts +22 -22
  134. package/slick-accordion/slick-accordion.module.d.ts +16 -16
  135. package/slick-auto-complete/slick-auto-complete-list-item-template.directive.d.ts +10 -10
  136. package/slick-auto-complete/slick-auto-complete.component.d.ts +60 -60
  137. package/slick-auto-complete/slick-auto-complete.module.d.ts +15 -15
  138. package/slick-button-spinner/slick-button-spinner.component.d.ts +28 -28
  139. package/slick-button-spinner/slick-button-spinner.module.d.ts +10 -10
  140. package/slick-calendar/slick-calendar.component.d.ts +53 -53
  141. package/slick-calendar/slick-calendar.module.d.ts +10 -10
  142. package/slick-card/slick-card-header.component.d.ts +5 -5
  143. package/slick-card/slick-card.component.d.ts +13 -13
  144. package/slick-card/slick-card.module.d.ts +12 -12
  145. package/slick-confirm-dialog/slick-confirm-dialog.component.d.ts +26 -26
  146. package/slick-confirm-dialog/slick-confirm-dialog.module.d.ts +11 -11
  147. package/slick-container/slick-container-body.component.d.ts +7 -7
  148. package/slick-container/slick-container-footer.component.d.ts +6 -6
  149. package/slick-container/slick-container-header.component.d.ts +6 -6
  150. package/slick-container/slick-container.component.d.ts +8 -8
  151. package/slick-container/slick-container.module.d.ts +19 -19
  152. package/slick-context-menu/slick-context-menu-item.component.d.ts +5 -5
  153. package/slick-context-menu/slick-context-menu.component.d.ts +13 -13
  154. package/slick-context-menu/slick-context-menu.module.d.ts +12 -12
  155. package/slick-currency-mask/slick-currency-mask-options.model.d.ts +10 -10
  156. package/slick-currency-mask/slick-currency-mask.directive.d.ts +29 -29
  157. package/slick-currency-mask/slick-currency-mask.module.d.ts +10 -10
  158. package/slick-date-picker/slick-date-picker.component.d.ts +45 -45
  159. package/slick-date-picker/slick-date-picker.module.d.ts +12 -12
  160. package/slick-dialog/slick-dialog-footer.component.d.ts +7 -7
  161. package/slick-dialog/slick-dialog.component.d.ts +56 -56
  162. package/slick-dialog/slick-dialog.module.d.ts +13 -13
  163. package/slick-dialog/slick-dialog.service.d.ts +17 -17
  164. package/slick-drag-drop/slick-drag-drop.directive.d.ts +5 -5
  165. package/slick-drag-drop/slick-drag-drop.module.d.ts +13 -13
  166. package/slick-drag-drop/slick-draggable.directive.d.ts +5 -5
  167. package/slick-drop-down/slick-drop-down-button.model.d.ts +13 -13
  168. package/slick-drop-down/slick-drop-down.component.d.ts +78 -78
  169. package/slick-drop-down/slick-drop-down.module.d.ts +14 -14
  170. package/slick-drop-down/slick-drop-down.service.d.ts +12 -12
  171. package/slick-drop-list/slick-drop-list-grab.directive.d.ts +7 -7
  172. package/slick-drop-list/slick-drop-list-item.directive.d.ts +7 -7
  173. package/slick-drop-list/slick-drop-list.directive.d.ts +33 -33
  174. package/slick-drop-list/slick-drop-list.module.d.ts +16 -16
  175. package/slick-email-viewer/slick-email-viewer-dialog.component.d.ts +19 -19
  176. package/slick-email-viewer/slick-email-viewer.component.d.ts +13 -13
  177. package/slick-email-viewer/slick-email-viewer.module.d.ts +18 -18
  178. package/slick-emailer/slick-emailer-address.model.d.ts +10 -10
  179. package/slick-emailer/slick-emailer-dialog.component.d.ts +33 -33
  180. package/slick-emailer/slick-emailer.component.d.ts +50 -50
  181. package/slick-emailer/slick-emailer.model.d.ts +16 -16
  182. package/slick-emailer/slick-emailer.module.d.ts +21 -21
  183. package/slick-file-drop/slick-file-drop.component.d.ts +25 -25
  184. package/slick-file-drop/slick-file-drop.module.d.ts +11 -11
  185. package/slick-file-list/slick-file-list-item.component.d.ts +37 -37
  186. package/slick-file-list/slick-file-list.component.d.ts +31 -31
  187. package/slick-file-list/slick-file-list.module.d.ts +14 -14
  188. package/slick-file-model/slick-file.model.d.ts +28 -28
  189. package/slick-google-address-search/slick-google-address-search.directive.d.ts +16 -17
  190. package/slick-google-address-search/slick-google-address-search.module.d.ts +10 -10
  191. package/slick-google-map/slick-google-map-dialog.component.d.ts +15 -16
  192. package/slick-google-map/slick-google-map.component.d.ts +17 -18
  193. package/slick-google-map/slick-google-map.module.d.ts +14 -14
  194. package/slick-grid/slick-grid-column-template.directive.d.ts +9 -9
  195. package/slick-grid/slick-grid-column.model.d.ts +64 -64
  196. package/slick-grid/slick-grid-favorite.model.d.ts +9 -9
  197. package/slick-grid/slick-grid-request.model.d.ts +33 -33
  198. package/slick-grid/slick-grid-response.model.d.ts +8 -8
  199. package/slick-grid/slick-grid-sanitize.pipe.d.ts +10 -10
  200. package/slick-grid/slick-grid.component.d.ts +119 -119
  201. package/slick-grid/slick-grid.module.d.ts +32 -32
  202. package/slick-grid/slick-grid.options.d.ts +35 -35
  203. package/slick-grid/slick-grid.service.d.ts +12 -12
  204. package/slick-multi-select/slick-multi-select.component.d.ts +69 -69
  205. package/slick-multi-select/slick-multi-select.module.d.ts +11 -11
  206. package/slick-multi-select/slick-multi-select.service.d.ts +9 -9
  207. package/slick-ordered-list/slick-ordered-list.component.d.ts +28 -28
  208. package/slick-ordered-list/slick-ordered-list.module.d.ts +11 -11
  209. package/slick-paging/slick-paging.component.d.ts +31 -31
  210. package/slick-paging/slick-paging.module.d.ts +10 -10
  211. package/slick-photo-gallery/slick-photo-gallery.component.d.ts +26 -26
  212. package/slick-photo-gallery/slick-photo-gallery.model.d.ts +8 -8
  213. package/slick-photo-gallery/slick-photo-gallery.module.d.ts +12 -12
  214. package/slick-pick-list/slick-pick-list.component.d.ts +24 -24
  215. package/slick-pick-list/slick-pick-list.module.d.ts +11 -11
  216. package/slick-popover/slick-popover.component.d.ts +39 -39
  217. package/slick-popover/slick-popover.module.d.ts +10 -10
  218. package/slick-profile-picture/slick-profile-picture.component.d.ts +29 -29
  219. package/slick-profile-picture/slick-profile-picture.module.d.ts +11 -11
  220. package/slick-progress-bar/slick-progress-bar.module.d.ts +9 -9
  221. package/slick-progress-bar/slick-progress-bar.service.d.ts +12 -12
  222. package/slick-screen-blocker/slick-screen-blocker.module.d.ts +9 -9
  223. package/slick-screen-blocker/slick-screen-blocker.service.d.ts +16 -16
  224. package/slick-search-bar/slick-search-bar.component.d.ts +37 -37
  225. package/slick-search-bar/slick-search-bar.module.d.ts +11 -11
  226. package/slick-slider/slick-slider-tick.model.d.ts +10 -10
  227. package/slick-slider/slick-slider.component.d.ts +29 -29
  228. package/slick-slider/slick-slider.module.d.ts +11 -11
  229. package/slick-split-screen/slick-screen-split-left-content.component.d.ts +6 -6
  230. package/slick-split-screen/slick-screen-split-right-content.component.d.ts +6 -6
  231. package/slick-split-screen/slick-split-screen.component.d.ts +40 -40
  232. package/slick-split-screen/slick-split-screen.module.d.ts +14 -14
  233. package/slick-star-rating/slick-star-rating.component.d.ts +28 -28
  234. package/slick-star-rating/slick-star-rating.module.d.ts +12 -12
  235. package/slick-tabs/slick-tab-header.component.d.ts +12 -12
  236. package/slick-tabs/slick-tab.component.d.ts +22 -22
  237. package/slick-tabs/slick-tab.model.d.ts +10 -10
  238. package/slick-tabs/slick-tabs.component.d.ts +25 -25
  239. package/slick-tabs/slick-tabs.module.d.ts +16 -16
  240. package/slick-toast/slick-toast.module.d.ts +9 -9
  241. package/slick-toast/slick-toast.service.d.ts +16 -16
  242. package/slick-tree-view/slick-tree-node.model.d.ts +30 -30
  243. package/slick-tree-view/slick-tree-view.component.d.ts +62 -62
  244. package/slick-tree-view/slick-tree-view.module.d.ts +13 -13
  245. package/slick-type-ahead/slick-type-ahead.directive.d.ts +25 -25
  246. package/slick-type-ahead/slick-type-ahead.module.d.ts +9 -9
  247. package/slick-validation-indicator/slick-validation-indicator.directive.d.ts +22 -22
  248. package/slick-validation-indicator/slick-validation-indicator.module.d.ts +10 -10
  249. package/utils/slick-function-lock.service.d.ts +9 -9
  250. package/utils/slick-init.service.d.ts +21 -21
  251. package/utils/slick-log.service.d.ts +9 -9
  252. package/utils/slick-sleep.service.d.ts +6 -6
  253. package/utils/slick-utils.service.d.ts +24 -24
  254. package/esm2020/slick-accordion/slick-accordion-item.component.mjs +0 -92
  255. package/esm2020/slick-auto-complete/slick-auto-complete.component.mjs +0 -388
  256. package/esm2020/slick-button-spinner/slick-button-spinner.component.mjs +0 -175
  257. package/esm2020/slick-calendar/slick-calendar.component.mjs +0 -271
  258. package/esm2020/slick-card/slick-card.component.mjs +0 -42
  259. package/esm2020/slick-context-menu/slick-context-menu.component.mjs +0 -48
  260. package/esm2020/slick-currency-mask/slick-currency-mask.directive.mjs +0 -233
  261. package/esm2020/slick-date-picker/slick-date-picker.component.mjs +0 -278
  262. package/esm2020/slick-dialog/slick-dialog.component.mjs +0 -294
  263. package/esm2020/slick-dialog/slick-dialog.service.mjs +0 -68
  264. package/esm2020/slick-drop-down/slick-drop-down.component.mjs +0 -447
  265. package/esm2020/slick-drop-down/slick-drop-down.service.mjs +0 -55
  266. package/esm2020/slick-drop-list/slick-drop-list.directive.mjs +0 -215
  267. package/esm2020/slick-email-viewer/slick-email-viewer.component.mjs +0 -42
  268. package/esm2020/slick-emailer/slick-emailer-dialog.component.mjs +0 -153
  269. package/esm2020/slick-emailer/slick-emailer.component.mjs +0 -235
  270. package/esm2020/slick-file-drop/slick-file-drop.component.mjs +0 -156
  271. package/esm2020/slick-file-list/slick-file-list-item.component.mjs +0 -190
  272. package/esm2020/slick-file-list/slick-file-list.component.mjs +0 -130
  273. package/esm2020/slick-google-address-search/slick-google-address-search.directive.mjs +0 -78
  274. package/esm2020/slick-google-map/slick-google-map-dialog.component.mjs +0 -50
  275. package/esm2020/slick-google-map/slick-google-map.component.mjs +0 -48
  276. package/esm2020/slick-grid/slick-grid.component.mjs +0 -793
  277. package/esm2020/slick-grid/slick-grid.service.mjs +0 -66
  278. package/esm2020/slick-multi-select/slick-multi-select.component.mjs +0 -415
  279. package/esm2020/slick-multi-select/slick-multi-select.service.mjs +0 -78
  280. package/esm2020/slick-ordered-list/slick-ordered-list.component.mjs +0 -200
  281. package/esm2020/slick-paging/slick-paging.component.mjs +0 -185
  282. package/esm2020/slick-photo-gallery/slick-photo-gallery.component.mjs +0 -98
  283. package/esm2020/slick-popover/slick-popover.component.mjs +0 -204
  284. package/esm2020/slick-profile-picture/slick-profile-picture.component.mjs +0 -267
  285. package/esm2020/slick-progress-bar/slick-progress-bar.service.mjs +0 -53
  286. package/esm2020/slick-screen-blocker/slick-screen-blocker.service.mjs +0 -83
  287. package/esm2020/slick-search-bar/slick-search-bar.component.mjs +0 -130
  288. package/esm2020/slick-slider/slick-slider.component.mjs +0 -90
  289. package/esm2020/slick-split-screen/slick-split-screen.component.mjs +0 -159
  290. package/esm2020/slick-star-rating/slick-star-rating.component.mjs +0 -91
  291. package/esm2020/slick-tabs/slick-tab.component.mjs +0 -63
  292. package/esm2020/slick-tabs/slick-tabs.component.mjs +0 -107
  293. package/esm2020/slick-toast/slick-toast.service.mjs +0 -88
  294. package/esm2020/slick-tree-view/slick-tree-node.model.mjs +0 -18
  295. package/esm2020/slick-tree-view/slick-tree-view.component.mjs +0 -293
  296. package/esm2020/slick-type-ahead/slick-type-ahead.directive.mjs +0 -164
  297. package/esm2020/slick-validation-indicator/slick-validation-indicator.directive.mjs +0 -66
  298. package/esm2020/utils/slick-function-lock.service.mjs +0 -55
  299. package/esm2020/utils/slick-init.service.mjs +0 -49
  300. package/esm2020/utils/slick-utils.service.mjs +0 -247
  301. package/fesm2015/slick-components.mjs +0 -9084
  302. package/fesm2015/slick-components.mjs.map +0 -1
  303. package/fesm2020/slick-components.mjs.map +0 -1
@@ -1,98 +0,0 @@
1
- import { Component, Input, ViewChild, HostListener } from "@angular/core";
2
- import { SlickPhotoGalleryModel } from "./slick-photo-gallery.model";
3
- import { SlickSleepService } from "../utils/slick-sleep.service";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- export class SlickPhotoGalleryComponent {
7
- constructor(changeDetector) {
8
- this.changeDetector = changeDetector;
9
- this.isVisible = false;
10
- this.isPhotoGalleryVisible = false;
11
- this.selectedPhoto = null;
12
- this.visibleIndex = 0;
13
- }
14
- async onResize(e) {
15
- if (e.which === 39)
16
- this.nextPhoto();
17
- else if (e.which === 37)
18
- this.previousPhoto();
19
- else if (e.which === 27)
20
- this.closeWindow();
21
- }
22
- ngOnDestroy() {
23
- // It's fine if this fails. It just means it was removed elsewhere
24
- try {
25
- document.body.appendChild(this.containerRef.nativeElement);
26
- }
27
- catch { }
28
- }
29
- ngOnChanges(changes) {
30
- if (changes.files) {
31
- this.photos = [];
32
- if (changes.files.currentValue) {
33
- this.photos = changes.files.currentValue.map((f) => {
34
- let photoModel = new SlickPhotoGalleryModel();
35
- photoModel.photoUrl = f.base64Image || f.url;
36
- photoModel.title = f.title;
37
- return photoModel;
38
- });
39
- }
40
- }
41
- }
42
- async showPhotoGallery(visibleIndex = 0) {
43
- this.isVisible = true;
44
- this.changeDetector.detectChanges();
45
- document.body.appendChild(this.containerRef.nativeElement);
46
- await SlickSleepService.sleep();
47
- this.isPhotoGalleryVisible = true;
48
- this.visibleIndex = visibleIndex;
49
- if (this.photos && this.photos.length > 0)
50
- this.selectedPhoto = this.photos[this.visibleIndex];
51
- }
52
- hidePhotoGallery() {
53
- // It's fine if this fails. It just means it was removed elsewhere
54
- try {
55
- document.body.removeChild(this.containerRef.nativeElement);
56
- }
57
- catch { }
58
- this.isVisible = false;
59
- }
60
- previousPhoto() {
61
- if (this.visibleIndex === 0)
62
- this.visibleIndex = this.photos.length - 1;
63
- else
64
- this.visibleIndex--;
65
- this.selectedPhoto = this.photos[this.visibleIndex];
66
- }
67
- nextPhoto() {
68
- if (this.visibleIndex === this.photos.length - 1)
69
- this.visibleIndex = 0;
70
- else
71
- this.visibleIndex++;
72
- this.selectedPhoto = this.photos[this.visibleIndex];
73
- }
74
- setPosition(idx) {
75
- this.visibleIndex = idx;
76
- this.selectedPhoto = this.photos[this.visibleIndex];
77
- }
78
- closeWindow() {
79
- this.hidePhotoGallery();
80
- }
81
- }
82
- /** @nocollapse */ SlickPhotoGalleryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickPhotoGalleryComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
83
- /** @nocollapse */ SlickPhotoGalleryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SlickPhotoGalleryComponent, selector: "slick-photo-gallery", inputs: { photos: "photos", files: "files" }, host: { listeners: { "window:keydown": "onResize($event)" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["containerRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #containerRef *ngIf=\"isVisible === true\" class='slick-photo-gallery'>\r\n\t<div class=\"slick-photo-gallery_overlay\" (click)=\"closeWindow()\" [ngClass]=\"{'visible': isPhotoGalleryVisible === true}\"></div>\r\n\t<div class=\"modal-content slick-photo-gallery_content\" style=\"width: 90%; margin-left: 5%;\" *ngIf=\"isPhotoGalleryVisible === true\">\r\n\t\t<div class=\"modal-header slick-photo-gallery_header\"><div class=\"header-right\" (click)='closeWindow()'><i class=\"far fa-times\"></i></div></div>\r\n\t\t<div class=\"modal-body\">\r\n\t\t\t<div *ngIf=\"selectedPhoto\" class='slick-photo-gallery_photo-container'>\r\n\t\t\t\t<img class='slick-photo-gallery_photo' [src]='selectedPhoto.photoUrl' />\r\n\t\t\t</div>\r\n\t\t\t<div (click)='previousPhoto()' class='slick-photo-gallery_previous-photo'><i class='far fa-chevron-left'></i></div>\r\n\t\t\t<div (click)='nextPhoto()' class='slick-photo-gallery_next-photo'><i class='far fa-chevron-right'></i></div>\r\n\t\t\t<!--<div *ngIf=\"photos\" class='slick-photo-gallery_position-indicators'>\r\n\t\t\t\t<i (click)='setPosition(index)' *ngFor='let photo of photos; let index = index' [ngClass]='(index === visibleIndex) ? \"fas fa-circle\" : \"far fa-circle\"'></i>\r\n\t\t\t</div>-->\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickPhotoGalleryComponent, decorators: [{
85
- type: Component,
86
- args: [{ selector: "slick-photo-gallery", template: "<div #containerRef *ngIf=\"isVisible === true\" class='slick-photo-gallery'>\r\n\t<div class=\"slick-photo-gallery_overlay\" (click)=\"closeWindow()\" [ngClass]=\"{'visible': isPhotoGalleryVisible === true}\"></div>\r\n\t<div class=\"modal-content slick-photo-gallery_content\" style=\"width: 90%; margin-left: 5%;\" *ngIf=\"isPhotoGalleryVisible === true\">\r\n\t\t<div class=\"modal-header slick-photo-gallery_header\"><div class=\"header-right\" (click)='closeWindow()'><i class=\"far fa-times\"></i></div></div>\r\n\t\t<div class=\"modal-body\">\r\n\t\t\t<div *ngIf=\"selectedPhoto\" class='slick-photo-gallery_photo-container'>\r\n\t\t\t\t<img class='slick-photo-gallery_photo' [src]='selectedPhoto.photoUrl' />\r\n\t\t\t</div>\r\n\t\t\t<div (click)='previousPhoto()' class='slick-photo-gallery_previous-photo'><i class='far fa-chevron-left'></i></div>\r\n\t\t\t<div (click)='nextPhoto()' class='slick-photo-gallery_next-photo'><i class='far fa-chevron-right'></i></div>\r\n\t\t\t<!--<div *ngIf=\"photos\" class='slick-photo-gallery_position-indicators'>\r\n\t\t\t\t<i (click)='setPosition(index)' *ngFor='let photo of photos; let index = index' [ngClass]='(index === visibleIndex) ? \"fas fa-circle\" : \"far fa-circle\"'></i>\r\n\t\t\t</div>-->\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n" }]
87
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { photos: [{
88
- type: Input
89
- }], files: [{
90
- type: Input
91
- }], containerRef: [{
92
- type: ViewChild,
93
- args: ["containerRef"]
94
- }], onResize: [{
95
- type: HostListener,
96
- args: ['window:keydown', ['$event']]
97
- }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stcGhvdG8tZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1waG90by1nYWxsZXJ5L3NsaWNrLXBob3RvLWdhbGxlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stcGhvdG8tZ2FsbGVyeS9zbGljay1waG90by1nYWxsZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBbUQsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5SSxPQUFPLEVBQTJCLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQU1qRSxNQUFNLE9BQU8sMEJBQTBCO0lBcUJ0QyxZQUFvQixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFMckQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQiwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsa0JBQWEsR0FBNEIsSUFBSSxDQUFDO1FBQzlDLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO0lBRWdDLENBQUM7SUFkMUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFnQjtRQUM5QixJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDYixJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDakIsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFTRCxXQUFXO1FB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QUUsQ0FBQztJQUN6QixDQUFDOzswSUEvRlcsMEJBQTBCOzhIQUExQiwwQkFBMEIsMlNDVHZDLDZ3Q0FnQkE7MkZEUGEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNDLHFCQUFxQjt3R0FJdEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFcUIsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUduQixRQUFRO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT25EZXN0cm95LCBIb3N0TGlzdGVuZXIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSVNsaWNrUGhvdG9HYWxsZXJ5TW9kZWwsIFNsaWNrUGhvdG9HYWxsZXJ5TW9kZWwgfSBmcm9tIFwiLi9zbGljay1waG90by1nYWxsZXJ5Lm1vZGVsXCI7XHJcbmltcG9ydCB7IElTbGlja0ZpbGVNb2RlbCB9IGZyb20gXCIuLi9zbGljay1maWxlLW1vZGVsL3NsaWNrLWZpbGUubW9kZWxcIjtcclxuaW1wb3J0IHsgU2xpY2tTbGVlcFNlcnZpY2UgfSBmcm9tIFwiLi4vdXRpbHMvc2xpY2stc2xlZXAuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6IFwic2xpY2stcGhvdG8tZ2FsbGVyeVwiLFxyXG5cdHRlbXBsYXRlVXJsOiBcInNsaWNrLXBob3RvLWdhbGxlcnkuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tQaG90b0dhbGxlcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblx0QElucHV0KCkgcGhvdG9zOiBJU2xpY2tQaG90b0dhbGxlcnlNb2RlbFtdO1xyXG5cdEBJbnB1dCgpIGZpbGVzOiBJU2xpY2tGaWxlTW9kZWxbXTtcclxuXHJcblx0QFZpZXdDaGlsZChcImNvbnRhaW5lclJlZlwiKSBjb250YWluZXJSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcclxuXHRhc3luYyBvblJlc2l6ZShlOiBLZXlib2FyZEV2ZW50KSB7XHJcblx0XHRpZiAoZS53aGljaCA9PT0gMzkpXHJcblx0XHRcdHRoaXMubmV4dFBob3RvKCk7XHJcblx0XHRlbHNlIGlmIChlLndoaWNoID09PSAzNylcclxuXHRcdFx0dGhpcy5wcmV2aW91c1Bob3RvKCk7XHJcblx0XHRlbHNlIGlmIChlLndoaWNoID09PSAyNylcclxuXHRcdFx0dGhpcy5jbG9zZVdpbmRvdygpO1xyXG5cdH1cclxuXHJcblx0aXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblx0aXNQaG90b0dhbGxlcnlWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblx0c2VsZWN0ZWRQaG90bzogSVNsaWNrUGhvdG9HYWxsZXJ5TW9kZWwgPSBudWxsO1xyXG5cdHZpc2libGVJbmRleDogbnVtYmVyID0gMDtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdC8vIEl0J3MgZmluZSBpZiB0aGlzIGZhaWxzLiAgSXQganVzdCBtZWFucyBpdCB3YXMgcmVtb3ZlZCBlbHNld2hlcmVcclxuXHRcdHRyeSB7XHJcblx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudCk7XHJcblx0XHR9XHJcblx0XHRjYXRjaCB7IH1cclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdGlmIChjaGFuZ2VzLmZpbGVzKSB7XHJcblx0XHRcdHRoaXMucGhvdG9zID0gW107XHJcblx0XHRcdGlmIChjaGFuZ2VzLmZpbGVzLmN1cnJlbnRWYWx1ZSkge1xyXG5cdFx0XHRcdHRoaXMucGhvdG9zID0gY2hhbmdlcy5maWxlcy5jdXJyZW50VmFsdWUubWFwKChmKSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgcGhvdG9Nb2RlbCA9IG5ldyBTbGlja1Bob3RvR2FsbGVyeU1vZGVsKCk7XHJcblx0XHRcdFx0XHRwaG90b01vZGVsLnBob3RvVXJsID0gZi5iYXNlNjRJbWFnZSB8fCBmLnVybDtcclxuXHRcdFx0XHRcdHBob3RvTW9kZWwudGl0bGUgPSBmLnRpdGxlO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHBob3RvTW9kZWw7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFzeW5jIHNob3dQaG90b0dhbGxlcnkodmlzaWJsZUluZGV4OiBudW1iZXIgPSAwKSB7XHJcblx0XHR0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcblxyXG5cdFx0dGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG5cdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KTtcclxuXHJcblx0XHRhd2FpdCBTbGlja1NsZWVwU2VydmljZS5zbGVlcCgpO1xyXG5cdFx0dGhpcy5pc1Bob3RvR2FsbGVyeVZpc2libGUgPSB0cnVlO1xyXG5cclxuXHRcdHRoaXMudmlzaWJsZUluZGV4ID0gdmlzaWJsZUluZGV4O1xyXG5cdFx0aWYgKHRoaXMucGhvdG9zICYmIHRoaXMucGhvdG9zLmxlbmd0aCA+IDApXHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRQaG90byA9IHRoaXMucGhvdG9zW3RoaXMudmlzaWJsZUluZGV4XTtcclxuXHR9XHJcblxyXG5cdGhpZGVQaG90b0dhbGxlcnkoKSB7XHJcblx0XHQvLyBJdCdzIGZpbmUgaWYgdGhpcyBmYWlscy4gIEl0IGp1c3QgbWVhbnMgaXQgd2FzIHJlbW92ZWQgZWxzZXdoZXJlXHJcblx0XHR0cnkge1xyXG5cdFx0XHRkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0fVxyXG5cdFx0Y2F0Y2ggeyB9XHJcblxyXG5cdFx0dGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHByZXZpb3VzUGhvdG8oKSB7XHJcblx0XHRpZiAodGhpcy52aXNpYmxlSW5kZXggPT09IDApXHJcblx0XHRcdHRoaXMudmlzaWJsZUluZGV4ID0gdGhpcy5waG90b3MubGVuZ3RoIC0gMTtcclxuXHRcdGVsc2VcclxuXHRcdFx0dGhpcy52aXNpYmxlSW5kZXgtLTtcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkUGhvdG8gPSB0aGlzLnBob3Rvc1t0aGlzLnZpc2libGVJbmRleF07XHJcblx0fVxyXG5cclxuXHRuZXh0UGhvdG8oKSB7XHJcblx0XHRpZiAodGhpcy52aXNpYmxlSW5kZXggPT09IHRoaXMucGhvdG9zLmxlbmd0aCAtIDEpXHJcblx0XHRcdHRoaXMudmlzaWJsZUluZGV4ID0gMDtcclxuXHRcdGVsc2VcclxuXHRcdFx0dGhpcy52aXNpYmxlSW5kZXgrKztcclxuXHJcblx0XHR0aGlzLnNlbGVjdGVkUGhvdG8gPSB0aGlzLnBob3Rvc1t0aGlzLnZpc2libGVJbmRleF07XHJcblx0fVxyXG5cclxuXHRzZXRQb3NpdGlvbihpZHg6IG51bWJlcikge1xyXG5cdFx0dGhpcy52aXNpYmxlSW5kZXggPSBpZHg7XHJcblx0XHR0aGlzLnNlbGVjdGVkUGhvdG8gPSB0aGlzLnBob3Rvc1t0aGlzLnZpc2libGVJbmRleF07XHJcblx0fVxyXG5cclxuXHRjbG9zZVdpbmRvdygpIHtcclxuXHRcdHRoaXMuaGlkZVBob3RvR2FsbGVyeSgpO1xyXG5cdH1cclxufSIsIjxkaXYgI2NvbnRhaW5lclJlZiAqbmdJZj1cImlzVmlzaWJsZSA9PT0gdHJ1ZVwiIGNsYXNzPSdzbGljay1waG90by1nYWxsZXJ5Jz5cclxuXHQ8ZGl2IGNsYXNzPVwic2xpY2stcGhvdG8tZ2FsbGVyeV9vdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlV2luZG93KClcIiBbbmdDbGFzc109XCJ7J3Zpc2libGUnOiBpc1Bob3RvR2FsbGVyeVZpc2libGUgPT09IHRydWV9XCI+PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnQgc2xpY2stcGhvdG8tZ2FsbGVyeV9jb250ZW50XCIgc3R5bGU9XCJ3aWR0aDogOTAlOyBtYXJnaW4tbGVmdDogNSU7XCIgKm5nSWY9XCJpc1Bob3RvR2FsbGVyeVZpc2libGUgPT09IHRydWVcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgc2xpY2stcGhvdG8tZ2FsbGVyeV9oZWFkZXJcIj48ZGl2IGNsYXNzPVwiaGVhZGVyLXJpZ2h0XCIgKGNsaWNrKT0nY2xvc2VXaW5kb3coKSc+PGkgY2xhc3M9XCJmYXIgZmEtdGltZXNcIj48L2k+PC9kaXY+PC9kaXY+XHJcblx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG5cdFx0XHQ8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRQaG90b1wiIGNsYXNzPSdzbGljay1waG90by1nYWxsZXJ5X3Bob3RvLWNvbnRhaW5lcic+XHJcblx0XHRcdFx0PGltZyBjbGFzcz0nc2xpY2stcGhvdG8tZ2FsbGVyeV9waG90bycgW3NyY109J3NlbGVjdGVkUGhvdG8ucGhvdG9VcmwnIC8+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IChjbGljayk9J3ByZXZpb3VzUGhvdG8oKScgY2xhc3M9J3NsaWNrLXBob3RvLWdhbGxlcnlfcHJldmlvdXMtcGhvdG8nPjxpIGNsYXNzPSdmYXIgZmEtY2hldnJvbi1sZWZ0Jz48L2k+PC9kaXY+XHJcblx0XHRcdDxkaXYgKGNsaWNrKT0nbmV4dFBob3RvKCknIGNsYXNzPSdzbGljay1waG90by1nYWxsZXJ5X25leHQtcGhvdG8nPjxpIGNsYXNzPSdmYXIgZmEtY2hldnJvbi1yaWdodCc+PC9pPjwvZGl2PlxyXG5cdFx0XHQ8IS0tPGRpdiAqbmdJZj1cInBob3Rvc1wiIGNsYXNzPSdzbGljay1waG90by1nYWxsZXJ5X3Bvc2l0aW9uLWluZGljYXRvcnMnPlxyXG5cdFx0XHRcdDxpIChjbGljayk9J3NldFBvc2l0aW9uKGluZGV4KScgKm5nRm9yPSdsZXQgcGhvdG8gb2YgcGhvdG9zOyBsZXQgaW5kZXggPSBpbmRleCcgW25nQ2xhc3NdPScoaW5kZXggPT09IHZpc2libGVJbmRleCkgPyBcImZhcyBmYS1jaXJjbGVcIiA6IFwiZmFyIGZhLWNpcmNsZVwiJz48L2k+XHJcblx0XHRcdDwvZGl2Pi0tPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,204 +0,0 @@
1
- import { Component, Input, ViewChild } from "@angular/core";
2
- import { SlickSleepService } from "../utils/slick-sleep.service";
3
- import { SlickUtilsService } from "../utils/slick-utils.service";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- export class SlickPopoverComponent {
7
- constructor(el) {
8
- this.el = el;
9
- this.position = 'right';
10
- this.hoverDelay = 250;
11
- this.outDelay = 250;
12
- this.alignment = "left";
13
- this.topOffsetPx = 0;
14
- this.leftOffsetPx = 0;
15
- this.whiteBackground = false;
16
- this.showByClick = false;
17
- this.showArrow = true;
18
- this.fnReposition = () => this.reposition();
19
- this.fnDocumentClick = (e) => this.documentClick(e);
20
- this.fnMouseEnter = () => this.mouseEnter();
21
- this.fnMouseLeave = () => this.mouseLeave();
22
- this.isVisible = false;
23
- this.uuid = SlickUtilsService.newGuid();
24
- }
25
- async ngOnChanges(changes) {
26
- if (changes.topOffsetPx)
27
- this.topOffsetPx = parseFloat(changes.topOffsetPx.currentValue);
28
- if (changes.leftOffsetPx)
29
- this.leftOffsetPx = parseFloat(changes.leftOffsetPx.currentValue);
30
- if (changes.position) {
31
- this.containerDivRef.nativeElement.classList.add("hidden");
32
- this.containerDivRef.nativeElement.classList.remove("visible");
33
- }
34
- if (changes.showByClick)
35
- this.showByClick = (this.showByClick.toString().toLowerCase() === 'true') ? true : false;
36
- if (changes.whiteBackground && changes.whiteBackground.currentValue)
37
- this.whiteBackground = (changes.whiteBackground.currentValue.toString().toLowerCase() !== 'false');
38
- if (changes.showArrow && changes.showArrow.currentValue)
39
- this.showArrow = (changes.showArrow.currentValue.toString().toLowerCase() !== 'false');
40
- await SlickSleepService.sleep();
41
- this.reposition();
42
- }
43
- ngAfterViewInit() {
44
- this.containerDivRef.nativeElement.classList.add("hidden");
45
- this.containerDivRef.nativeElement.classList.add("showArrow");
46
- // Remove this from the inline version and put it on the body so that it doesn't hide behind the bottom
47
- // of a div when it expands beyond the bottom.
48
- //this.el.nativeElement.remove(this.el);
49
- document.body.appendChild(this.el.nativeElement);
50
- // This is necessary, otherwise `this` in the reposition function will be window
51
- // and not the component.
52
- // Since angular has no way to use the third parameter, I'm doing this in raw js
53
- if (this.showByClick === true) {
54
- document.addEventListener("click", this.fnDocumentClick, true);
55
- if (!this.element.getAttribute("id"))
56
- this.element.setAttribute('id', `slick-popover-element_${this.uuid}`);
57
- this.elementId = this.element.getAttribute("id");
58
- }
59
- else {
60
- this.el.nativeElement.addEventListener("mouseenter", this.fnMouseEnter);
61
- this.element.addEventListener("mouseenter", this.fnMouseEnter);
62
- this.el.nativeElement.addEventListener("mouseleave", this.fnMouseLeave);
63
- this.element.addEventListener("mouseleave", this.fnMouseLeave);
64
- }
65
- }
66
- ngOnDestroy() {
67
- document.removeEventListener("click", this.fnDocumentClick, true);
68
- this.el.nativeElement.removeEventListener("mouseenter", this.fnMouseEnter);
69
- this.element.removeEventListener("mouseenter", this.fnMouseEnter);
70
- this.el.nativeElement.removeEventListener("mouseleave", this.fnMouseLeave);
71
- try {
72
- this.element.removeEventListener("mouseleave", this.fnMouseLeave);
73
- document.body.removeChild(this.el.nativeElement);
74
- }
75
- catch { }
76
- }
77
- mouseEnter() {
78
- clearTimeout(this.displayTimeout);
79
- clearTimeout(this.leaveTimeout);
80
- this.displayTimeout = setTimeout(() => {
81
- this.reposition();
82
- this.containerDivRef.nativeElement.classList.remove("hidden");
83
- this.containerDivRef.nativeElement.classList.add("visible");
84
- }, this.hoverDelay);
85
- }
86
- mouseLeave() {
87
- clearTimeout(this.displayTimeout);
88
- clearTimeout(this.leaveTimeout);
89
- this.leaveTimeout = setTimeout(() => {
90
- this.containerDivRef.nativeElement.classList.add("hidden");
91
- this.containerDivRef.nativeElement.classList.remove("visible");
92
- }, this.outDelay);
93
- }
94
- async reposition() {
95
- if (!this.topOffsetPx)
96
- this.topOffsetPx = 0;
97
- if (!this.leftOffsetPx)
98
- this.leftOffsetPx = 0;
99
- if (this.showArrow === true)
100
- this.containerDivRef.nativeElement.classList.add("showArrow");
101
- else if (this.showArrow === false)
102
- this.containerDivRef.nativeElement.classList.remove("showArrow");
103
- if (this.whiteBackground === true)
104
- this.containerDivRef.nativeElement.classList.add("whiteBackground");
105
- else if (this.whiteBackground === false)
106
- this.containerDivRef.nativeElement.classList.remove("whiteBackground");
107
- let targetRect = this.element.getBoundingClientRect();
108
- let targetLeft = targetRect.left;
109
- let targetTop = targetRect.top;
110
- let targetHeight = this.element.offsetHeight;
111
- let targetWidth = targetRect.width;
112
- let popoverHeight = this.popoverContentRef.nativeElement.offsetHeight;
113
- let popoverWidth = this.popoverContentRef.nativeElement.getBoundingClientRect().width;
114
- if (this.showArrow) {
115
- popoverWidth += 5;
116
- }
117
- if (this.position === 'left') {
118
- this.top = (targetTop + this.topOffsetPx);
119
- this.left = (targetLeft - popoverWidth - 3 + this.leftOffsetPx);
120
- if (this.showArrow)
121
- this.left -= 2;
122
- }
123
- else if (this.position === 'right') {
124
- this.top = (targetTop + this.topOffsetPx);
125
- this.left = (targetLeft + targetWidth - 7 + this.leftOffsetPx);
126
- if (this.showArrow)
127
- this.left += 7;
128
- }
129
- else if (this.position === 'top') {
130
- this.top = (targetTop - popoverHeight - 3 + this.topOffsetPx);
131
- this.left = (targetLeft + this.leftOffsetPx);
132
- // default to left aligned
133
- this.left = (targetLeft + this.leftOffsetPx);
134
- if (this.alignment && this.alignment.toLowerCase() === 'right')
135
- this.left = targetLeft + targetWidth - popoverWidth - 4 + this.leftOffsetPx;
136
- if (this.showArrow)
137
- this.top -= 7;
138
- }
139
- else if (this.position === 'bottom') {
140
- this.top = (targetTop + targetHeight - 7 + this.topOffsetPx);
141
- // default to left aligned
142
- this.left = (targetLeft + this.leftOffsetPx);
143
- if (this.alignment && this.alignment.toLowerCase() === 'right')
144
- this.left = targetLeft + targetWidth - popoverWidth - 4 + this.leftOffsetPx;
145
- if (this.showArrow)
146
- this.top += 7;
147
- }
148
- }
149
- documentClick(e) {
150
- if (SlickUtilsService.checkParentIdExists(e.target, this.elementId) === true) {
151
- if (this.isVisible === true) {
152
- this.containerDivRef.nativeElement.classList.remove("visible");
153
- this.containerDivRef.nativeElement.classList.add("hidden");
154
- this.isVisible = false;
155
- }
156
- else {
157
- this.reposition();
158
- this.containerDivRef.nativeElement.classList.remove("hidden");
159
- this.containerDivRef.nativeElement.classList.add("visible");
160
- this.isVisible = true;
161
- }
162
- }
163
- else {
164
- if (this.isVisible === true) {
165
- this.containerDivRef.nativeElement.classList.remove("visible");
166
- this.containerDivRef.nativeElement.classList.add("hidden");
167
- this.isVisible = false;
168
- }
169
- }
170
- }
171
- }
172
- /** @nocollapse */ SlickPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickPopoverComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
173
- /** @nocollapse */ SlickPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: SlickPopoverComponent, selector: "slick-popover", inputs: { element: "element", position: "position", hoverDelay: "hoverDelay", outDelay: "outDelay", alignment: "alignment", topOffsetPx: "topOffsetPx", leftOffsetPx: "leftOffsetPx", whiteBackground: "whiteBackground", showByClick: "showByClick", showArrow: "showArrow" }, viewQueries: [{ propertyName: "containerDivRef", first: true, predicate: ["containerDivRef"], descendants: true, static: true }, { propertyName: "popoverContentRef", first: true, predicate: ["popoverContentRef"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #containerDivRef id=\"slick-popover_{{uuid}}\" class=\"slick-popover slick-popover_{{position}}\" [style.top.px]=\"top\" [style.left.px]=\"left\">\r\n\t<div #popoverContentRef class=\"popover fade bs-popover-{{position}} show\">\r\n\t\t<div *ngIf=\"showArrow === true\" class=\"arrow\"></div>\r\n\t\t<div class=\"popover-body\"><ng-content></ng-content></div>\r\n\t</div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: SlickPopoverComponent, decorators: [{
175
- type: Component,
176
- args: [{ selector: 'slick-popover', template: "<div #containerDivRef id=\"slick-popover_{{uuid}}\" class=\"slick-popover slick-popover_{{position}}\" [style.top.px]=\"top\" [style.left.px]=\"left\">\r\n\t<div #popoverContentRef class=\"popover fade bs-popover-{{position}} show\">\r\n\t\t<div *ngIf=\"showArrow === true\" class=\"arrow\"></div>\r\n\t\t<div class=\"popover-body\"><ng-content></ng-content></div>\r\n\t</div>\r\n</div>\r\n" }]
177
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { element: [{
178
- type: Input
179
- }], position: [{
180
- type: Input
181
- }], hoverDelay: [{
182
- type: Input
183
- }], outDelay: [{
184
- type: Input
185
- }], alignment: [{
186
- type: Input
187
- }], topOffsetPx: [{
188
- type: Input
189
- }], leftOffsetPx: [{
190
- type: Input
191
- }], whiteBackground: [{
192
- type: Input
193
- }], showByClick: [{
194
- type: Input
195
- }], showArrow: [{
196
- type: Input
197
- }], containerDivRef: [{
198
- type: ViewChild,
199
- args: ["containerDivRef", { static: true }]
200
- }], popoverContentRef: [{
201
- type: ViewChild,
202
- args: ["popoverContentRef", { static: true }]
203
- }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1wb3BvdmVyL3NsaWNrLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stcG9wb3Zlci9zbGljay1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF3QyxTQUFTLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFNakUsTUFBTSxPQUFPLHFCQUFxQjtJQTZCakMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUEzQnpCLGFBQVEsR0FBVyxPQUFPLENBQUM7UUFDM0IsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUN6QixhQUFRLEdBQVcsR0FBRyxDQUFDO1FBQ3ZCLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFDM0IsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUFZLElBQUksQ0FBQztRQVNuQyxpQkFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN2QyxvQkFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLGlCQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZDLGlCQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBSXZDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFJakIsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxXQUFXO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFakUsSUFBSSxPQUFPLENBQUMsWUFBWTtZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRW5FLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLE9BQU8sQ0FBQyxXQUFXO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUUxRixJQUFJLE9BQU8sQ0FBQyxlQUFlLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxZQUFZO1lBQ2xFLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQztRQUVwRyxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxZQUFZO1lBQ3RELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQztRQUV4RixNQUFNLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5RCx1R0FBdUc7UUFDdkcsOENBQThDO1FBQzlDLHdDQUF3QztRQUN4QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWpELGdGQUFnRjtRQUNoRix5QkFBeUI7UUFDekIsZ0ZBQWdGO1FBQ2hGLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDOUIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSx5QkFBeUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFFdkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqRDthQUNJO1lBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDL0Q7SUFDRixDQUFDO0lBRUQsV0FBVztRQUNWLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNFLElBQUk7WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEUsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNqRDtRQUNELE1BQU0sR0FBRztJQUNWLENBQUM7SUFFTyxVQUFVO1FBQ2pCLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxVQUFVO1FBQ2pCLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxVQUFVO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztZQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUk7WUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSztZQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWxFLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJO1lBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUNoRSxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssS0FBSztZQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFHeEUsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3RELElBQUksVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDakMsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUMvQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUM3QyxJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRW5DLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQ3RFLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFFdEYsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLFlBQVksSUFBSSxDQUFDLENBQUM7U0FDbEI7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFO1lBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLEdBQUcsWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEUsSUFBSSxJQUFJLENBQUMsU0FBUztnQkFDakIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7U0FDaEI7YUFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFO1lBQ25DLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLEdBQUcsV0FBVyxHQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDOUQsSUFBSSxJQUFJLENBQUMsU0FBUztnQkFDakIsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7U0FDaEI7YUFDSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxTQUFTLEdBQUcsYUFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLE9BQU87Z0JBQzdELElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxHQUFHLFdBQVcsR0FBRyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFFN0UsSUFBSSxJQUFJLENBQUMsU0FBUztnQkFDakIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDZjthQUNJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLFNBQVMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM3RCwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTztnQkFDN0QsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLEdBQUcsV0FBVyxHQUFHLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUU3RSxJQUFJLElBQUksQ0FBQyxTQUFTO2dCQUNqQixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUNmO0lBQ0YsQ0FBQztJQUVPLGFBQWEsQ0FBQyxDQUFhO1FBQ2xDLElBQUksaUJBQWlCLENBQUMsbUJBQW1CLENBQWMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzFGLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9ELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO2lCQUNJO2dCQUNKLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdEI7U0FDRDthQUNJO1lBQ0osSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7YUFDdkI7U0FDRDtJQUNGLENBQUM7O3FJQTVNVyxxQkFBcUI7eUhBQXJCLHFCQUFxQixtbEJDUmxDLHdZQU1BOzJGREVhLHFCQUFxQjtrQkFKakMsU0FBUzsrQkFDQyxlQUFlO2lHQUloQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRTBDLGVBQWU7c0JBQTlELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNJLGlCQUFpQjtzQkFBbEUsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnc2xpY2stcG9wb3ZlcicsXHJcblx0dGVtcGxhdGVVcmw6ICdzbGljay1wb3BvdmVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dCgpIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG5cdEBJbnB1dCgpIHBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHQnO1xyXG5cdEBJbnB1dCgpIGhvdmVyRGVsYXk6IG51bWJlciA9IDI1MDtcclxuXHRASW5wdXQoKSBvdXREZWxheTogbnVtYmVyID0gMjUwO1xyXG5cdEBJbnB1dCgpIGFsaWdubWVudDogc3RyaW5nID0gXCJsZWZ0XCI7XHJcblx0QElucHV0KCkgdG9wT2Zmc2V0UHg6IG51bWJlciA9IDA7XHJcblx0QElucHV0KCkgbGVmdE9mZnNldFB4OiBudW1iZXIgPSAwO1xyXG5cdEBJbnB1dCgpIHdoaXRlQmFja2dyb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdEBJbnB1dCgpIHNob3dCeUNsaWNrOiBib29sZWFuID0gZmFsc2U7XHJcblx0QElucHV0KCkgc2hvd0Fycm93OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0QFZpZXdDaGlsZChcImNvbnRhaW5lckRpdlJlZlwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250YWluZXJEaXZSZWY6IEVsZW1lbnRSZWY7XHJcblx0QFZpZXdDaGlsZChcInBvcG92ZXJDb250ZW50UmVmXCIsIHsgc3RhdGljOiB0cnVlIH0pIHBvcG92ZXJDb250ZW50UmVmOiBFbGVtZW50UmVmO1xyXG5cdFxyXG5cdHV1aWQ6IHN0cmluZztcclxuXHR0b3A6IG51bWJlcjtcclxuXHRsZWZ0OiBudW1iZXI7XHJcblxyXG5cdGZuUmVwb3NpdGlvbiA9ICgpID0+IHRoaXMucmVwb3NpdGlvbigpO1xyXG5cdGZuRG9jdW1lbnRDbGljayA9IChlKSA9PiB0aGlzLmRvY3VtZW50Q2xpY2soZSk7XHJcblx0Zm5Nb3VzZUVudGVyID0gKCkgPT4gdGhpcy5tb3VzZUVudGVyKCk7XHJcblx0Zm5Nb3VzZUxlYXZlID0gKCkgPT4gdGhpcy5tb3VzZUxlYXZlKCk7XHJcblxyXG5cdGRpc3BsYXlUaW1lb3V0OiBOb2RlSlMuVGltZXI7XHJcblx0bGVhdmVUaW1lb3V0OiBOb2RlSlMuVGltZXI7XHJcblx0aXNWaXNpYmxlID0gZmFsc2U7XHJcblx0ZWxlbWVudElkOiBzdHJpbmc7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcclxuXHRcdHRoaXMudXVpZCA9IFNsaWNrVXRpbHNTZXJ2aWNlLm5ld0d1aWQoKTtcdFx0XHJcblx0fVxyXG5cclxuXHRhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRpZiAoY2hhbmdlcy50b3BPZmZzZXRQeClcclxuXHRcdFx0dGhpcy50b3BPZmZzZXRQeCA9IHBhcnNlRmxvYXQoY2hhbmdlcy50b3BPZmZzZXRQeC5jdXJyZW50VmFsdWUpO1xyXG5cclxuXHRcdGlmIChjaGFuZ2VzLmxlZnRPZmZzZXRQeClcclxuXHRcdFx0dGhpcy5sZWZ0T2Zmc2V0UHggPSBwYXJzZUZsb2F0KGNoYW5nZXMubGVmdE9mZnNldFB4LmN1cnJlbnRWYWx1ZSk7XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMucG9zaXRpb24pIHtcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaGlkZGVuXCIpO1xyXG5cdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ2aXNpYmxlXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjaGFuZ2VzLnNob3dCeUNsaWNrKSBcclxuXHRcdFx0dGhpcy5zaG93QnlDbGljayA9ICh0aGlzLnNob3dCeUNsaWNrLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnKSA/IHRydWUgOiBmYWxzZTtcclxuXHJcblx0XHRpZiAoY2hhbmdlcy53aGl0ZUJhY2tncm91bmQgJiYgY2hhbmdlcy53aGl0ZUJhY2tncm91bmQuY3VycmVudFZhbHVlKVxyXG5cdFx0XHR0aGlzLndoaXRlQmFja2dyb3VuZCA9IChjaGFuZ2VzLndoaXRlQmFja2dyb3VuZC5jdXJyZW50VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpICE9PSAnZmFsc2UnKTtcdFx0XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMuc2hvd0Fycm93ICYmIGNoYW5nZXMuc2hvd0Fycm93LmN1cnJlbnRWYWx1ZSlcclxuXHRcdFx0dGhpcy5zaG93QXJyb3cgPSAoY2hhbmdlcy5zaG93QXJyb3cuY3VycmVudFZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSAhPT0gJ2ZhbHNlJyk7XHRcdFxyXG5cclxuXHRcdGF3YWl0IFNsaWNrU2xlZXBTZXJ2aWNlLnNsZWVwKCk7XHJcblx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMuY29udGFpbmVyRGl2UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhpZGRlblwiKTtcclxuXHRcdHRoaXMuY29udGFpbmVyRGl2UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInNob3dBcnJvd1wiKTtcclxuXHJcblx0XHQvLyBSZW1vdmUgdGhpcyBmcm9tIHRoZSBpbmxpbmUgdmVyc2lvbiBhbmQgcHV0IGl0IG9uIHRoZSBib2R5IHNvIHRoYXQgaXQgZG9lc24ndCBoaWRlIGJlaGluZCB0aGUgYm90dG9tXHJcblx0XHQvLyBvZiBhIGRpdiB3aGVuIGl0IGV4cGFuZHMgYmV5b25kIHRoZSBib3R0b20uXHJcblx0XHQvL3RoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmUodGhpcy5lbCk7XHJcblx0XHRkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcblxyXG5cdFx0Ly8gVGhpcyBpcyBuZWNlc3NhcnksIG90aGVyd2lzZSBgdGhpc2AgaW4gdGhlIHJlcG9zaXRpb24gZnVuY3Rpb24gd2lsbCBiZSB3aW5kb3dcclxuXHRcdC8vIGFuZCBub3QgdGhlIGNvbXBvbmVudC5cclxuXHRcdC8vIFNpbmNlIGFuZ3VsYXIgaGFzIG5vIHdheSB0byB1c2UgdGhlIHRoaXJkIHBhcmFtZXRlciwgSSdtIGRvaW5nIHRoaXMgaW4gcmF3IGpzXHJcblx0XHRpZiAodGhpcy5zaG93QnlDbGljayA9PT0gdHJ1ZSkge1xyXG5cdFx0XHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1xyXG5cdFx0XHRpZiAoIXRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJpZFwiKSlcclxuXHRcdFx0XHR0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsIGBzbGljay1wb3BvdmVyLWVsZW1lbnRfJHt0aGlzLnV1aWR9YCk7XHJcblxyXG5cdFx0XHR0aGlzLmVsZW1lbnRJZCA9IHRoaXMuZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJpZFwiKTtcclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgdGhpcy5mbk1vdXNlRW50ZXIpO1xyXG5cdFx0XHR0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgdGhpcy5mbk1vdXNlRW50ZXIpO1xyXG5cdFx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgdGhpcy5mbk1vdXNlTGVhdmUpO1xyXG5cdFx0XHR0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgdGhpcy5mbk1vdXNlTGVhdmUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5mbkRvY3VtZW50Q2xpY2ssIHRydWUpO1x0XHRcdFxyXG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWVudGVyXCIsIHRoaXMuZm5Nb3VzZUVudGVyKTtcclxuXHRcdHRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCB0aGlzLmZuTW91c2VFbnRlcik7XHJcblx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgdGhpcy5mbk1vdXNlTGVhdmUpO1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dGhpcy5lbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIHRoaXMuZm5Nb3VzZUxlYXZlKTtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0fVxyXG5cdFx0Y2F0Y2ggeyB9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG1vdXNlRW50ZXIoKSB7XHJcblx0XHRjbGVhclRpbWVvdXQodGhpcy5kaXNwbGF5VGltZW91dCk7XHJcblx0XHRjbGVhclRpbWVvdXQodGhpcy5sZWF2ZVRpbWVvdXQpO1xyXG5cdFx0dGhpcy5kaXNwbGF5VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiaGlkZGVuXCIpO1xyXG5cdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ2aXNpYmxlXCIpO1xyXG5cdFx0fSwgdGhpcy5ob3ZlckRlbGF5KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbW91c2VMZWF2ZSgpIHtcclxuXHRcdGNsZWFyVGltZW91dCh0aGlzLmRpc3BsYXlUaW1lb3V0KTtcclxuXHRcdGNsZWFyVGltZW91dCh0aGlzLmxlYXZlVGltZW91dCk7XHJcblxyXG5cdFx0dGhpcy5sZWF2ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiaGlkZGVuXCIpO1xyXG5cdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ2aXNpYmxlXCIpO1xyXG5cdFx0fSwgdGhpcy5vdXREZWxheSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHJlcG9zaXRpb24oKSB7XHJcblx0XHRpZiAoIXRoaXMudG9wT2Zmc2V0UHgpXHJcblx0XHRcdHRoaXMudG9wT2Zmc2V0UHggPSAwO1xyXG5cclxuXHRcdGlmICghdGhpcy5sZWZ0T2Zmc2V0UHgpXHJcblx0XHRcdHRoaXMubGVmdE9mZnNldFB4ID0gMDtcclxuXHJcblx0XHRpZiAodGhpcy5zaG93QXJyb3cgPT09IHRydWUpXHJcblx0XHRcdHRoaXMuY29udGFpbmVyRGl2UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInNob3dBcnJvd1wiKTtcclxuXHRcdGVsc2UgaWYgKHRoaXMuc2hvd0Fycm93ID09PSBmYWxzZSlcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwic2hvd0Fycm93XCIpO1xyXG5cclxuXHRcdGlmICh0aGlzLndoaXRlQmFja2dyb3VuZCA9PT0gdHJ1ZSlcclxuXHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwid2hpdGVCYWNrZ3JvdW5kXCIpO1xyXG5cdFx0ZWxzZSBpZiAodGhpcy53aGl0ZUJhY2tncm91bmQgPT09IGZhbHNlKVxyXG5cdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ3aGl0ZUJhY2tncm91bmRcIik7XHJcblxyXG5cclxuXHRcdGxldCB0YXJnZXRSZWN0ID0gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cdFx0bGV0IHRhcmdldExlZnQgPSB0YXJnZXRSZWN0LmxlZnQ7XHJcblx0XHRsZXQgdGFyZ2V0VG9wID0gdGFyZ2V0UmVjdC50b3A7XHJcblx0XHRsZXQgdGFyZ2V0SGVpZ2h0ID0gdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDtcclxuXHRcdGxldCB0YXJnZXRXaWR0aCA9IHRhcmdldFJlY3Qud2lkdGg7XHJcblxyXG5cdFx0bGV0IHBvcG92ZXJIZWlnaHQgPSB0aGlzLnBvcG92ZXJDb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG5cdFx0bGV0IHBvcG92ZXJXaWR0aCA9IHRoaXMucG9wb3ZlckNvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcclxuXHJcblx0XHRpZiAodGhpcy5zaG93QXJyb3cpIHtcclxuXHRcdFx0cG9wb3ZlcldpZHRoICs9IDU7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMucG9zaXRpb24gPT09ICdsZWZ0Jykge1xyXG5cdFx0XHR0aGlzLnRvcCA9ICh0YXJnZXRUb3AgKyB0aGlzLnRvcE9mZnNldFB4KTtcclxuXHRcdFx0dGhpcy5sZWZ0ID0gKHRhcmdldExlZnQgLSBwb3BvdmVyV2lkdGggLSAzICsgdGhpcy5sZWZ0T2Zmc2V0UHgpO1xyXG5cdFx0XHRpZiAodGhpcy5zaG93QXJyb3cpXHJcblx0XHRcdFx0dGhpcy5sZWZ0IC09IDI7XHJcblx0XHR9XHJcblx0XHRlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnKSB7XHJcblx0XHRcdHRoaXMudG9wID0gKHRhcmdldFRvcCArIHRoaXMudG9wT2Zmc2V0UHgpO1xyXG5cdFx0XHR0aGlzLmxlZnQgPSAodGFyZ2V0TGVmdCArIHRhcmdldFdpZHRoIC03ICsgdGhpcy5sZWZ0T2Zmc2V0UHgpO1xyXG5cdFx0XHRpZiAodGhpcy5zaG93QXJyb3cpXHJcblx0XHRcdFx0dGhpcy5sZWZ0ICs9IDc7XHJcblx0XHR9XHJcblx0XHRlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAndG9wJykge1xyXG5cdFx0XHR0aGlzLnRvcCA9ICh0YXJnZXRUb3AgLSBwb3BvdmVySGVpZ2h0IC0gMyArIHRoaXMudG9wT2Zmc2V0UHgpO1xyXG5cdFx0XHR0aGlzLmxlZnQgPSAodGFyZ2V0TGVmdCArIHRoaXMubGVmdE9mZnNldFB4KTtcclxuXHRcdFx0Ly8gZGVmYXVsdCB0byBsZWZ0IGFsaWduZWRcclxuXHRcdFx0dGhpcy5sZWZ0ID0gKHRhcmdldExlZnQgKyB0aGlzLmxlZnRPZmZzZXRQeCk7XHJcblx0XHRcdGlmICh0aGlzLmFsaWdubWVudCAmJiB0aGlzLmFsaWdubWVudC50b0xvd2VyQ2FzZSgpID09PSAncmlnaHQnKVxyXG5cdFx0XHRcdHRoaXMubGVmdCA9IHRhcmdldExlZnQgKyB0YXJnZXRXaWR0aCAtIHBvcG92ZXJXaWR0aCAtIDQgKyB0aGlzLmxlZnRPZmZzZXRQeDtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNob3dBcnJvdylcclxuXHRcdFx0XHR0aGlzLnRvcCAtPSA3O1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcdFx0XHRcclxuXHRcdFx0dGhpcy50b3AgPSAodGFyZ2V0VG9wICsgdGFyZ2V0SGVpZ2h0IC0gNyArIHRoaXMudG9wT2Zmc2V0UHgpO1xyXG5cdFx0XHQvLyBkZWZhdWx0IHRvIGxlZnQgYWxpZ25lZFxyXG5cdFx0XHR0aGlzLmxlZnQgPSAodGFyZ2V0TGVmdCArIHRoaXMubGVmdE9mZnNldFB4KTtcclxuXHRcdFx0aWYgKHRoaXMuYWxpZ25tZW50ICYmIHRoaXMuYWxpZ25tZW50LnRvTG93ZXJDYXNlKCkgPT09ICdyaWdodCcpXHJcblx0XHRcdFx0dGhpcy5sZWZ0ID0gdGFyZ2V0TGVmdCArIHRhcmdldFdpZHRoIC0gcG9wb3ZlcldpZHRoIC0gNCArIHRoaXMubGVmdE9mZnNldFB4O1xyXG5cdFx0XHRcclxuXHRcdFx0aWYgKHRoaXMuc2hvd0Fycm93KVxyXG5cdFx0XHRcdHRoaXMudG9wICs9IDc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGRvY3VtZW50Q2xpY2soZTogTW91c2VFdmVudCkge1xyXG5cdFx0aWYgKFNsaWNrVXRpbHNTZXJ2aWNlLmNoZWNrUGFyZW50SWRFeGlzdHMoPEhUTUxFbGVtZW50PmUudGFyZ2V0LCB0aGlzLmVsZW1lbnRJZCkgPT09IHRydWUpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNWaXNpYmxlID09PSB0cnVlKSB7XHJcblx0XHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwidmlzaWJsZVwiKTtcclxuXHRcdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJoaWRkZW5cIik7XHJcblx0XHRcdFx0dGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnJlcG9zaXRpb24oKTtcclxuXHRcdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJoaWRkZW5cIik7XHJcblx0XHRcdFx0dGhpcy5jb250YWluZXJEaXZSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwidmlzaWJsZVwiKTtcclxuXHRcdFx0XHR0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdGVsc2Uge1xyXG5cdFx0XHRpZiAodGhpcy5pc1Zpc2libGUgPT09IHRydWUpIHtcclxuXHRcdFx0XHR0aGlzLmNvbnRhaW5lckRpdlJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ2aXNpYmxlXCIpO1xyXG5cdFx0XHRcdHRoaXMuY29udGFpbmVyRGl2UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImhpZGRlblwiKTtcclxuXHRcdFx0XHR0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgI2NvbnRhaW5lckRpdlJlZiBpZD1cInNsaWNrLXBvcG92ZXJfe3t1dWlkfX1cIiBjbGFzcz1cInNsaWNrLXBvcG92ZXIgc2xpY2stcG9wb3Zlcl97e3Bvc2l0aW9ufX1cIiBbc3R5bGUudG9wLnB4XT1cInRvcFwiIFtzdHlsZS5sZWZ0LnB4XT1cImxlZnRcIj5cclxuXHQ8ZGl2ICNwb3BvdmVyQ29udGVudFJlZiBjbGFzcz1cInBvcG92ZXIgZmFkZSBicy1wb3BvdmVyLXt7cG9zaXRpb259fSBzaG93XCI+XHJcblx0XHQ8ZGl2ICpuZ0lmPVwic2hvd0Fycm93ID09PSB0cnVlXCIgY2xhc3M9XCJhcnJvd1wiPjwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==