@agorapulse/ui-components 0.0.3 → 1.0.0-SNAPSHOT

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 (548) hide show
  1. package/add-comment/add-comment.component.d.ts +21 -0
  2. package/add-comment/index.d.ts +5 -0
  3. package/add-comment/public_api.d.ts +1 -0
  4. package/agorapulse-ui-components-1.0.0-SNAPSHOT.tgz +0 -0
  5. package/autocomplete/autocomplete.component.d.ts +40 -0
  6. package/autocomplete/index.d.ts +5 -0
  7. package/autocomplete/public_api.d.ts +1 -0
  8. package/avatar/avatar.component.d.ts +47 -0
  9. package/avatar/index.d.ts +5 -0
  10. package/avatar/public_api.d.ts +1 -0
  11. package/badge/badge.component.d.ts +7 -0
  12. package/badge/index.d.ts +5 -0
  13. package/badge/public_api.d.ts +1 -0
  14. package/button/button.component.d.ts +49 -0
  15. package/button/index.d.ts +5 -0
  16. package/button/public_api.d.ts +1 -0
  17. package/checkbox/checkbox.component.d.ts +51 -0
  18. package/checkbox/index.d.ts +5 -0
  19. package/checkbox/public_api.d.ts +1 -0
  20. package/confirm-modal/confirm-modal.component.d.ts +20 -0
  21. package/confirm-modal/index.d.ts +5 -0
  22. package/confirm-modal/public_api.d.ts +2 -0
  23. package/counter/counter.component.d.ts +17 -0
  24. package/counter/index.d.ts +5 -0
  25. package/counter/public_api.d.ts +1 -0
  26. package/datepicker/datepicker.component.d.ts +84 -0
  27. package/datepicker/index.d.ts +5 -0
  28. package/datepicker/public_api.d.ts +1 -0
  29. package/{src/lib/directives → directives}/autosize-textarea.directive.d.ts +3 -0
  30. package/directives/base-button.directive.d.ts +13 -0
  31. package/directives/default-image.directive.d.ts +8 -0
  32. package/{src/lib/directives → directives}/ellipsis.directive.d.ts +3 -1
  33. package/directives/equal-validator.directive.d.ts +13 -0
  34. package/{src/lib/directives → directives}/frozen-gif.directive.d.ts +6 -3
  35. package/directives/index.d.ts +5 -0
  36. package/directives/multi-style-text.directive.d.ts +16 -0
  37. package/directives/public_api.d.ts +8 -0
  38. package/directives/truncate-tooltip.directive.d.ts +16 -0
  39. package/dots-stepper/dots-stepper.component.d.ts +16 -0
  40. package/dots-stepper/index.d.ts +5 -0
  41. package/dots-stepper/public_api.d.ts +1 -0
  42. package/esm2022/add-comment/add-comment.component.mjs +71 -0
  43. package/esm2022/add-comment/agorapulse-ui-components-add-comment.mjs +5 -0
  44. package/esm2022/add-comment/public_api.mjs +2 -0
  45. package/esm2022/agorapulse-ui-components.mjs +5 -0
  46. package/esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs +5 -0
  47. package/esm2022/autocomplete/autocomplete.component.mjs +128 -0
  48. package/esm2022/autocomplete/public_api.mjs +2 -0
  49. package/esm2022/avatar/agorapulse-ui-components-avatar.mjs +5 -0
  50. package/esm2022/avatar/avatar.component.mjs +222 -0
  51. package/esm2022/avatar/public_api.mjs +2 -0
  52. package/esm2022/badge/agorapulse-ui-components-badge.mjs +5 -0
  53. package/esm2022/badge/badge.component.mjs +17 -0
  54. package/esm2022/badge/public_api.mjs +2 -0
  55. package/esm2022/button/agorapulse-ui-components-button.mjs +5 -0
  56. package/esm2022/button/button.component.mjs +112 -0
  57. package/esm2022/button/public_api.mjs +2 -0
  58. package/esm2022/checkbox/agorapulse-ui-components-checkbox.mjs +5 -0
  59. package/esm2022/checkbox/checkbox.component.mjs +178 -0
  60. package/esm2022/checkbox/public_api.mjs +2 -0
  61. package/esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +5 -0
  62. package/esm2022/confirm-modal/confirm-modal-texts.model.mjs +2 -0
  63. package/esm2022/confirm-modal/confirm-modal.component.mjs +61 -0
  64. package/esm2022/confirm-modal/public_api.mjs +3 -0
  65. package/esm2022/counter/agorapulse-ui-components-counter.mjs +5 -0
  66. package/esm2022/counter/counter.component.mjs +59 -0
  67. package/esm2022/counter/public_api.mjs +2 -0
  68. package/esm2022/datepicker/agorapulse-ui-components-datepicker.mjs +5 -0
  69. package/esm2022/datepicker/datepicker.component.mjs +271 -0
  70. package/esm2022/datepicker/public_api.mjs +2 -0
  71. package/esm2022/directives/agorapulse-ui-components-directives.mjs +5 -0
  72. package/esm2022/directives/autosize-textarea.directive.mjs +45 -0
  73. package/esm2022/directives/base-button.directive.mjs +47 -0
  74. package/esm2022/directives/default-image.directive.mjs +37 -0
  75. package/esm2022/directives/ellipsis.directive.mjs +90 -0
  76. package/esm2022/directives/equal-validator.directive.mjs +73 -0
  77. package/esm2022/directives/frozen-gif.directive.mjs +125 -0
  78. package/esm2022/directives/multi-style-text.directive.mjs +61 -0
  79. package/esm2022/directives/public_api.mjs +9 -0
  80. package/esm2022/directives/truncate-tooltip.directive.mjs +43 -0
  81. package/esm2022/dots-stepper/agorapulse-ui-components-dots-stepper.mjs +5 -0
  82. package/esm2022/dots-stepper/dots-stepper.component.mjs +46 -0
  83. package/esm2022/dots-stepper/public_api.mjs +2 -0
  84. package/esm2022/form-field/agorapulse-ui-components-form-field.mjs +5 -0
  85. package/esm2022/form-field/form-field.component.mjs +11 -0
  86. package/esm2022/form-field/public_api.mjs +2 -0
  87. package/esm2022/form-message/agorapulse-ui-components-form-message.mjs +5 -0
  88. package/esm2022/form-message/form-message.component.mjs +34 -0
  89. package/esm2022/form-message/public_api.mjs +2 -0
  90. package/esm2022/icon-button/agorapulse-ui-components-icon-button.mjs +5 -0
  91. package/esm2022/icon-button/icon-button.component.mjs +121 -0
  92. package/esm2022/icon-button/public_api.mjs +2 -0
  93. package/esm2022/index.mjs +50 -0
  94. package/esm2022/infobox/agorapulse-ui-components-infobox.mjs +5 -0
  95. package/esm2022/infobox/infobox.component.mjs +78 -0
  96. package/esm2022/infobox/public_api.mjs +2 -0
  97. package/esm2022/input/agorapulse-ui-components-input.mjs +5 -0
  98. package/esm2022/input/input.directive.mjs +19 -0
  99. package/esm2022/input/public_api.mjs +2 -0
  100. package/esm2022/input-group/agorapulse-ui-components-input-group.mjs +5 -0
  101. package/esm2022/input-group/input-group.component.mjs +14 -0
  102. package/esm2022/input-group/public_api.mjs +2 -0
  103. package/esm2022/labels/agorapulse-ui-components-labels.mjs +5 -0
  104. package/esm2022/labels/label-list.component.mjs +109 -0
  105. package/esm2022/labels/label.component.mjs +57 -0
  106. package/esm2022/labels/public_api.mjs +3 -0
  107. package/esm2022/labels-selector/agorapulse-ui-components-labels-selector.mjs +5 -0
  108. package/esm2022/labels-selector/labels-selector.component.mjs +122 -0
  109. package/esm2022/labels-selector/public_api.mjs +2 -0
  110. package/esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs +5 -0
  111. package/esm2022/legacy/input/input.component.mjs +190 -0
  112. package/esm2022/legacy/input/public_api.mjs +2 -0
  113. package/esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs +5 -0
  114. package/esm2022/legacy/select/public_api.mjs +2 -0
  115. package/esm2022/legacy/select/select.component.mjs +453 -0
  116. package/esm2022/legacy/textarea/agorapulse-ui-components-legacy-textarea.mjs +5 -0
  117. package/esm2022/legacy/textarea/public_api.mjs +2 -0
  118. package/esm2022/legacy/textarea/textarea.component.mjs +155 -0
  119. package/esm2022/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +5 -0
  120. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +123 -0
  121. package/esm2022/media-display-overlay/public_api.mjs +2 -0
  122. package/esm2022/modal/agorapulse-ui-components-modal.mjs +5 -0
  123. package/esm2022/modal/modal.component.mjs +116 -0
  124. package/esm2022/modal/public_api.mjs +2 -0
  125. package/esm2022/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +5 -0
  126. package/esm2022/neo-datepicker/day-detail.model.mjs +2 -0
  127. package/esm2022/neo-datepicker/day-disabled.pipe.mjs +21 -0
  128. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +243 -0
  129. package/esm2022/neo-datepicker/public_api.mjs +4 -0
  130. package/esm2022/notification/agorapulse-ui-components-notification.mjs +5 -0
  131. package/esm2022/notification/notification.component.mjs +15 -0
  132. package/esm2022/notification/public_api.mjs +2 -0
  133. package/esm2022/paginator/agorapulse-ui-components-paginator.mjs +5 -0
  134. package/esm2022/paginator/paginator-button/paginator-button.component.mjs +51 -0
  135. package/esm2022/paginator/paginator.component.mjs +126 -0
  136. package/esm2022/paginator/public_api.mjs +3 -0
  137. package/esm2022/password-input/agorapulse-ui-components-password-input.mjs +5 -0
  138. package/esm2022/password-input/password-input.component.mjs +77 -0
  139. package/esm2022/password-input/public_api.mjs +2 -0
  140. package/esm2022/popmenu/agorapulse-ui-components-popmenu.mjs +5 -0
  141. package/esm2022/popmenu/options.mjs +17 -0
  142. package/esm2022/popmenu/popmenu-options.interface.mjs +2 -0
  143. package/esm2022/popmenu/popmenu-options.service.mjs +7 -0
  144. package/esm2022/popmenu/popmenu.component.mjs +384 -0
  145. package/esm2022/popmenu/popmenu.directive.mjs +292 -0
  146. package/esm2022/popmenu/popmenu.module.mjs +29 -0
  147. package/esm2022/popmenu/public_api.mjs +5 -0
  148. package/esm2022/radio/agorapulse-ui-components-radio.mjs +5 -0
  149. package/esm2022/radio/public_api.mjs +3 -0
  150. package/esm2022/radio/radio-control.registry.mjs +102 -0
  151. package/esm2022/radio/radio.component.mjs +224 -0
  152. package/esm2022/range-slider/agorapulse-ui-components-range-slider.mjs +5 -0
  153. package/esm2022/range-slider/public_api.mjs +2 -0
  154. package/esm2022/range-slider/range-slider.component.mjs +155 -0
  155. package/esm2022/select/agorapulse-ui-components-select.mjs +5 -0
  156. package/esm2022/select/ap-select.module.mjs +78 -0
  157. package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +52 -0
  158. package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +64 -0
  159. package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +68 -0
  160. package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +45 -0
  161. package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +49 -0
  162. package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +77 -0
  163. package/esm2022/select/public_api.mjs +13 -0
  164. package/esm2022/select/select-base.directive.mjs +69 -0
  165. package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +111 -0
  166. package/esm2022/select/select-label-single/select-label-single.component.mjs +30 -0
  167. package/esm2022/select/select-multiple.directive.mjs +35 -0
  168. package/esm2022/select/select-single.directive.mjs +34 -0
  169. package/esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +5 -0
  170. package/esm2022/slide-toggle/public_api.mjs +2 -0
  171. package/esm2022/slide-toggle/slide-toggle.component.mjs +66 -0
  172. package/esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +5 -0
  173. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +84 -0
  174. package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +44 -0
  175. package/esm2022/snackbars-thread/public_api.mjs +4 -0
  176. package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +46 -0
  177. package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +13 -0
  178. package/esm2022/social-button/agorapulse-ui-components-social-button.mjs +5 -0
  179. package/esm2022/social-button/public_api.mjs +2 -0
  180. package/esm2022/social-button/social-button.component.mjs +151 -0
  181. package/esm2022/split-button/agorapulse-ui-components-split-button.mjs +5 -0
  182. package/esm2022/split-button/public_api.mjs +2 -0
  183. package/esm2022/split-button/split-button.component.mjs +129 -0
  184. package/esm2022/src/lib/agorapulse-ui-components.module.mjs +204 -0
  185. package/esm2022/status/agorapulse-ui-components-status.mjs +5 -0
  186. package/esm2022/status/public_api.mjs +2 -0
  187. package/esm2022/status/status.component.mjs +22 -0
  188. package/esm2022/status-card/agorapulse-ui-components-status-card.mjs +5 -0
  189. package/esm2022/status-card/public_api.mjs +2 -0
  190. package/esm2022/status-card/status-card.component.mjs +25 -0
  191. package/esm2022/stepper/agorapulse-ui-components-stepper.mjs +5 -0
  192. package/esm2022/stepper/public_api.mjs +3 -0
  193. package/esm2022/stepper/step.model.mjs +2 -0
  194. package/esm2022/stepper/stepper.component.mjs +38 -0
  195. package/esm2022/tag/agorapulse-ui-components-tag.mjs +5 -0
  196. package/esm2022/tag/public_api.mjs +2 -0
  197. package/esm2022/tag/tag.component.mjs +36 -0
  198. package/esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs +5 -0
  199. package/esm2022/text-measurement/public_api.mjs +2 -0
  200. package/esm2022/text-measurement/text-measurement.service.mjs +29 -0
  201. package/esm2022/textarea/agorapulse-ui-components-textarea.mjs +5 -0
  202. package/esm2022/textarea/public_api.mjs +2 -0
  203. package/esm2022/textarea/textarea.directive.mjs +37 -0
  204. package/esm2022/toggle/agorapulse-ui-components-toggle.mjs +5 -0
  205. package/esm2022/toggle/public_api.mjs +2 -0
  206. package/esm2022/toggle/toggle.component.mjs +209 -0
  207. package/esm2022/tooltip/agorapulse-ui-components-tooltip.mjs +5 -0
  208. package/esm2022/tooltip/public_api.mjs +2 -0
  209. package/esm2022/tooltip/tooltip.directive.mjs +412 -0
  210. package/esm2022/tooltip/tooltip.service.mjs +29 -0
  211. package/fesm2022/agorapulse-ui-components-add-comment.mjs +78 -0
  212. package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -0
  213. package/fesm2022/agorapulse-ui-components-autocomplete.mjs +135 -0
  214. package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -0
  215. package/fesm2022/agorapulse-ui-components-avatar.mjs +229 -0
  216. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -0
  217. package/fesm2022/agorapulse-ui-components-badge.mjs +24 -0
  218. package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -0
  219. package/fesm2022/agorapulse-ui-components-button.mjs +119 -0
  220. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -0
  221. package/fesm2022/agorapulse-ui-components-checkbox.mjs +185 -0
  222. package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -0
  223. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +68 -0
  224. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -0
  225. package/fesm2022/agorapulse-ui-components-counter.mjs +66 -0
  226. package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -0
  227. package/fesm2022/agorapulse-ui-components-datepicker.mjs +278 -0
  228. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -0
  229. package/fesm2022/agorapulse-ui-components-directives.mjs +513 -0
  230. package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -0
  231. package/fesm2022/agorapulse-ui-components-dots-stepper.mjs +53 -0
  232. package/fesm2022/agorapulse-ui-components-dots-stepper.mjs.map +1 -0
  233. package/fesm2022/agorapulse-ui-components-form-field.mjs +18 -0
  234. package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -0
  235. package/fesm2022/agorapulse-ui-components-form-message.mjs +41 -0
  236. package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -0
  237. package/fesm2022/agorapulse-ui-components-icon-button.mjs +128 -0
  238. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -0
  239. package/fesm2022/agorapulse-ui-components-infobox.mjs +85 -0
  240. package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -0
  241. package/fesm2022/agorapulse-ui-components-input-group.mjs +21 -0
  242. package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -0
  243. package/fesm2022/agorapulse-ui-components-input.mjs +26 -0
  244. package/fesm2022/agorapulse-ui-components-input.mjs.map +1 -0
  245. package/fesm2022/agorapulse-ui-components-labels-selector.mjs +129 -0
  246. package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -0
  247. package/fesm2022/agorapulse-ui-components-labels.mjs +168 -0
  248. package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -0
  249. package/fesm2022/agorapulse-ui-components-legacy-input.mjs +197 -0
  250. package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -0
  251. package/fesm2022/agorapulse-ui-components-legacy-select.mjs +460 -0
  252. package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -0
  253. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +162 -0
  254. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -0
  255. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +130 -0
  256. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -0
  257. package/fesm2022/agorapulse-ui-components-modal.mjs +123 -0
  258. package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -0
  259. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +268 -0
  260. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -0
  261. package/fesm2022/agorapulse-ui-components-notification.mjs +22 -0
  262. package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -0
  263. package/fesm2022/agorapulse-ui-components-paginator.mjs +181 -0
  264. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -0
  265. package/fesm2022/agorapulse-ui-components-password-input.mjs +84 -0
  266. package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -0
  267. package/fesm2022/agorapulse-ui-components-popmenu.mjs +725 -0
  268. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -0
  269. package/fesm2022/agorapulse-ui-components-radio.mjs +328 -0
  270. package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -0
  271. package/fesm2022/agorapulse-ui-components-range-slider.mjs +162 -0
  272. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -0
  273. package/fesm2022/agorapulse-ui-components-select.mjs +651 -0
  274. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -0
  275. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +73 -0
  276. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -0
  277. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +190 -0
  278. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -0
  279. package/fesm2022/agorapulse-ui-components-social-button.mjs +158 -0
  280. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -0
  281. package/fesm2022/agorapulse-ui-components-split-button.mjs +136 -0
  282. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -0
  283. package/fesm2022/agorapulse-ui-components-status-card.mjs +32 -0
  284. package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -0
  285. package/fesm2022/agorapulse-ui-components-status.mjs +29 -0
  286. package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -0
  287. package/fesm2022/agorapulse-ui-components-stepper.mjs +45 -0
  288. package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -0
  289. package/fesm2022/agorapulse-ui-components-tag.mjs +43 -0
  290. package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -0
  291. package/fesm2022/agorapulse-ui-components-text-measurement.mjs +36 -0
  292. package/fesm2022/agorapulse-ui-components-text-measurement.mjs.map +1 -0
  293. package/fesm2022/agorapulse-ui-components-textarea.mjs +44 -0
  294. package/fesm2022/agorapulse-ui-components-textarea.mjs.map +1 -0
  295. package/fesm2022/agorapulse-ui-components-toggle.mjs +216 -0
  296. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -0
  297. package/fesm2022/agorapulse-ui-components-tooltip.mjs +445 -0
  298. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -0
  299. package/fesm2022/agorapulse-ui-components.mjs +251 -0
  300. package/fesm2022/agorapulse-ui-components.mjs.map +1 -0
  301. package/form-field/form-field.component.d.ts +5 -0
  302. package/form-field/index.d.ts +5 -0
  303. package/form-field/public_api.d.ts +1 -0
  304. package/form-message/form-message.component.d.ts +12 -0
  305. package/form-message/index.d.ts +5 -0
  306. package/form-message/public_api.d.ts +1 -0
  307. package/icon-button/icon-button.component.d.ts +39 -0
  308. package/icon-button/index.d.ts +5 -0
  309. package/icon-button/public_api.d.ts +1 -0
  310. package/index.d.ts +43 -53
  311. package/infobox/index.d.ts +5 -0
  312. package/infobox/infobox.component.d.ts +32 -0
  313. package/infobox/public_api.d.ts +1 -0
  314. package/input/index.d.ts +5 -0
  315. package/input/input.directive.d.ts +7 -0
  316. package/input/public_api.d.ts +1 -0
  317. package/input-group/index.d.ts +5 -0
  318. package/input-group/input-group.component.d.ts +6 -0
  319. package/input-group/public_api.d.ts +1 -0
  320. package/labels/index.d.ts +5 -0
  321. package/labels/label-list.component.d.ts +34 -0
  322. package/labels/label.component.d.ts +24 -0
  323. package/labels/public_api.d.ts +2 -0
  324. package/labels-selector/index.d.ts +5 -0
  325. package/labels-selector/labels-selector.component.d.ts +42 -0
  326. package/labels-selector/public_api.d.ts +1 -0
  327. package/legacy/input/index.d.ts +5 -0
  328. package/legacy/input/input.component.d.ts +64 -0
  329. package/legacy/input/public_api.d.ts +1 -0
  330. package/legacy/select/index.d.ts +5 -0
  331. package/legacy/select/public_api.d.ts +1 -0
  332. package/legacy/select/select.component.d.ts +122 -0
  333. package/legacy/textarea/index.d.ts +5 -0
  334. package/legacy/textarea/public_api.d.ts +1 -0
  335. package/legacy/textarea/textarea.component.d.ts +53 -0
  336. package/media-display-overlay/index.d.ts +5 -0
  337. package/media-display-overlay/media-display-overlay-dialog.component.d.ts +42 -0
  338. package/media-display-overlay/public_api.d.ts +1 -0
  339. package/modal/index.d.ts +5 -0
  340. package/modal/modal.component.d.ts +54 -0
  341. package/modal/public_api.d.ts +1 -0
  342. package/neo-datepicker/day-detail.model.d.ts +9 -0
  343. package/neo-datepicker/day-disabled.pipe.d.ts +8 -0
  344. package/neo-datepicker/index.d.ts +5 -0
  345. package/neo-datepicker/neo-datepicker.component.d.ts +61 -0
  346. package/neo-datepicker/public_api.d.ts +3 -0
  347. package/notification/index.d.ts +5 -0
  348. package/notification/notification.component.d.ts +6 -0
  349. package/notification/public_api.d.ts +1 -0
  350. package/package.json +291 -20
  351. package/paginator/index.d.ts +5 -0
  352. package/paginator/paginator-button/paginator-button.component.d.ts +17 -0
  353. package/paginator/paginator.component.d.ts +38 -0
  354. package/paginator/public_api.d.ts +2 -0
  355. package/password-input/index.d.ts +5 -0
  356. package/password-input/password-input.component.d.ts +33 -0
  357. package/password-input/public_api.d.ts +1 -0
  358. package/popmenu/index.d.ts +5 -0
  359. package/{src/lib/popmenu → popmenu}/options.d.ts +1 -0
  360. package/popmenu/popmenu-options.interface.d.ts +48 -0
  361. package/{src/lib/popmenu → popmenu}/popmenu.component.d.ts +17 -9
  362. package/popmenu/popmenu.directive.d.ts +84 -0
  363. package/popmenu/popmenu.module.d.ts +11 -0
  364. package/popmenu/public_api.d.ts +4 -0
  365. package/radio/index.d.ts +5 -0
  366. package/radio/public_api.d.ts +2 -0
  367. package/radio/radio-control.registry.d.ts +22 -0
  368. package/radio/radio.component.d.ts +59 -0
  369. package/range-slider/index.d.ts +5 -0
  370. package/range-slider/public_api.d.ts +1 -0
  371. package/range-slider/range-slider.component.d.ts +35 -0
  372. package/select/ap-select.module.d.ts +17 -0
  373. package/select/dropdown-group-item/dropdown-group-item.component.d.ts +16 -0
  374. package/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.d.ts +21 -0
  375. package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +22 -0
  376. package/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.d.ts +15 -0
  377. package/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.d.ts +16 -0
  378. package/select/dropdown-search-form/dropdown-search-form.component.d.ts +22 -0
  379. package/select/index.d.ts +5 -0
  380. package/select/public_api.d.ts +12 -0
  381. package/select/select-base.directive.d.ts +18 -0
  382. package/select/select-label-multiple/select-label-multiple.component.d.ts +29 -0
  383. package/select/select-label-single/select-label-single.component.d.ts +10 -0
  384. package/select/select-multiple.directive.d.ts +10 -0
  385. package/select/select-single.directive.d.ts +10 -0
  386. package/slide-toggle/index.d.ts +5 -0
  387. package/slide-toggle/public_api.d.ts +1 -0
  388. package/{src/lib/slide-toggle → slide-toggle}/slide-toggle.component.d.ts +4 -0
  389. package/snackbars-thread/component/snackbars-thread.component.d.ts +23 -0
  390. package/snackbars-thread/index.d.ts +5 -0
  391. package/{src/lib/snackbars-thread → snackbars-thread}/model/snackbars-thread.model.d.ts +9 -6
  392. package/snackbars-thread/public_api.d.ts +3 -0
  393. package/snackbars-thread/service/snackbars-thread.service.d.ts +15 -0
  394. package/{src/lib/snackbars-thread → snackbars-thread}/utils/const/snackbars-thread.const.d.ts +2 -4
  395. package/social-button/index.d.ts +5 -0
  396. package/social-button/public_api.d.ts +1 -0
  397. package/social-button/social-button.component.d.ts +32 -0
  398. package/split-button/index.d.ts +5 -0
  399. package/split-button/public_api.d.ts +1 -0
  400. package/split-button/split-button.component.d.ts +43 -0
  401. package/src/lib/agorapulse-ui-components.module.d.ts +27 -0
  402. package/status/index.d.ts +5 -0
  403. package/status/public_api.d.ts +1 -0
  404. package/status/status.component.d.ts +9 -0
  405. package/status-card/index.d.ts +5 -0
  406. package/status-card/public_api.d.ts +1 -0
  407. package/status-card/status-card.component.d.ts +13 -0
  408. package/stepper/index.d.ts +5 -0
  409. package/stepper/public_api.d.ts +2 -0
  410. package/{src/lib/stepper → stepper}/step.model.d.ts +1 -0
  411. package/stepper/stepper.component.d.ts +16 -0
  412. package/tag/index.d.ts +5 -0
  413. package/tag/public_api.d.ts +1 -0
  414. package/tag/tag.component.d.ts +18 -0
  415. package/text-measurement/index.d.ts +5 -0
  416. package/text-measurement/public_api.d.ts +1 -0
  417. package/text-measurement/text-measurement.service.d.ts +8 -0
  418. package/textarea/index.d.ts +5 -0
  419. package/textarea/public_api.d.ts +1 -0
  420. package/textarea/textarea.directive.d.ts +11 -0
  421. package/toggle/index.d.ts +5 -0
  422. package/toggle/public_api.d.ts +1 -0
  423. package/toggle/toggle.component.d.ts +52 -0
  424. package/tooltip/index.d.ts +5 -0
  425. package/tooltip/public_api.d.ts +1 -0
  426. package/tooltip/tooltip.directive.d.ts +58 -0
  427. package/tooltip/tooltip.service.d.ts +11 -0
  428. package/agorapulse-ui-components-0.0.3.tgz +0 -0
  429. package/agorapulse-ui-components.d.ts +0 -9
  430. package/agorapulse-ui-components.metadata.json +0 -1
  431. package/bundles/agorapulse-ui-components.umd.js +0 -4448
  432. package/bundles/agorapulse-ui-components.umd.js.map +0 -1
  433. package/esm2015/agorapulse-ui-components.js +0 -10
  434. package/esm2015/index.js +0 -57
  435. package/esm2015/src/lib/add-comment/add-comment.component.js +0 -54
  436. package/esm2015/src/lib/agorapulse-ui-components.module.js +0 -279
  437. package/esm2015/src/lib/avatar/avatar.component.js +0 -82
  438. package/esm2015/src/lib/confirm-modal/confirm-modal-texts.model.js +0 -2
  439. package/esm2015/src/lib/confirm-modal/confirm-modal.component.js +0 -59
  440. package/esm2015/src/lib/datepicker/datepicker.component.js +0 -213
  441. package/esm2015/src/lib/directives/autosize-textarea.directive.js +0 -43
  442. package/esm2015/src/lib/directives/default-image.directive.js +0 -25
  443. package/esm2015/src/lib/directives/ellipsis.directive.js +0 -82
  444. package/esm2015/src/lib/directives/equal-validator.directive.js +0 -53
  445. package/esm2015/src/lib/directives/frozen-gif.directive.js +0 -113
  446. package/esm2015/src/lib/directives/multi-style-text.directive.js +0 -103
  447. package/esm2015/src/lib/directives/truncate-tooltip.directive.js +0 -36
  448. package/esm2015/src/lib/dots-stepper/dots-stepper.component.js +0 -41
  449. package/esm2015/src/lib/edit-tag-modal/edit-tags-modal.component.js +0 -129
  450. package/esm2015/src/lib/edit-tag-modal/model/edit-tags-modal.model.js +0 -2
  451. package/esm2015/src/lib/feature-onboarding/feature-onboarding.component.js +0 -35
  452. package/esm2015/src/lib/image-carousel/image-carousel.component.js +0 -143
  453. package/esm2015/src/lib/lead-modal/lead-info.model.js +0 -2
  454. package/esm2015/src/lib/lead-modal/lead-modal.component.js +0 -47
  455. package/esm2015/src/lib/media-display-overlay/media-display-overlay-dialog.component.js +0 -87
  456. package/esm2015/src/lib/modal/modal.component.js +0 -88
  457. package/esm2015/src/lib/notification/notification.component.js +0 -18
  458. package/esm2015/src/lib/overlay/overlay-dialog-service.component.js +0 -62
  459. package/esm2015/src/lib/overlay/overlay-dialog.component.js +0 -33
  460. package/esm2015/src/lib/overlay-in-div/overlay-in-div.component.js +0 -23
  461. package/esm2015/src/lib/paginator/paginator-button/paginator-button.component.js +0 -22
  462. package/esm2015/src/lib/paginator/paginator.component.js +0 -47
  463. package/esm2015/src/lib/password-input/password-input.component.js +0 -65
  464. package/esm2015/src/lib/password-strength-bar/password-strength-bar.component.js +0 -82
  465. package/esm2015/src/lib/password-strength-display-bar/password-strength-display-bar.component.js +0 -41
  466. package/esm2015/src/lib/phone-number-input/phone-number-input.component.js +0 -123
  467. package/esm2015/src/lib/places/place-list.component.js +0 -12
  468. package/esm2015/src/lib/places/place.component.js +0 -15
  469. package/esm2015/src/lib/popmenu/options.js +0 -16
  470. package/esm2015/src/lib/popmenu/popmenu-options.interface.js +0 -2
  471. package/esm2015/src/lib/popmenu/popmenu-options.service.js +0 -7
  472. package/esm2015/src/lib/popmenu/popmenu.component.js +0 -322
  473. package/esm2015/src/lib/popmenu/popmenu.directive.js +0 -215
  474. package/esm2015/src/lib/popmenu/popmenu.module.js +0 -38
  475. package/esm2015/src/lib/slide-toggle/slide-toggle.component.js +0 -59
  476. package/esm2015/src/lib/snackbar/snackbar.component.js +0 -22
  477. package/esm2015/src/lib/snackbars-thread/component/snackbars-thread.component.js +0 -50
  478. package/esm2015/src/lib/snackbars-thread/model/snackbars-thread.model.js +0 -41
  479. package/esm2015/src/lib/snackbars-thread/service/snackbars-thread.service.js +0 -44
  480. package/esm2015/src/lib/snackbars-thread/utils/const/snackbars-thread.const.js +0 -13
  481. package/esm2015/src/lib/splashscreen/splashscreen.component.js +0 -37
  482. package/esm2015/src/lib/star-rating/star-rating.component.js +0 -38
  483. package/esm2015/src/lib/stepper/step.model.js +0 -2
  484. package/esm2015/src/lib/stepper/stepper.component.js +0 -37
  485. package/esm2015/src/lib/tags/tag-list.component.js +0 -12
  486. package/esm2015/src/lib/tags/tag.component.js +0 -20
  487. package/esm2015/src/lib/tags-selector/tags-selector.component.js +0 -73
  488. package/esm2015/src/lib/timepicker/timepicker.component.js +0 -375
  489. package/esm2015/src/lib/tooltip-neo/tooltip-neo.component.js +0 -46
  490. package/esm2015/src/lib/tooltip-neo/tooltip-neo.const.js +0 -67
  491. package/esm2015/src/lib/tooltip-neo/tooltip-neo.directive.js +0 -107
  492. package/esm2015/src/lib/tooltip-neo/tooltip-neo.model.js +0 -2
  493. package/esm2015/src/lib/tooltip-neo/tooltip-neo.service.js +0 -15
  494. package/esm2015/src/lib/try-popup/try-popup-texts.model.js +0 -2
  495. package/esm2015/src/lib/try-popup/try-popup.component.js +0 -33
  496. package/fesm2015/agorapulse-ui-components.js +0 -3805
  497. package/fesm2015/agorapulse-ui-components.js.map +0 -1
  498. package/src/lib/add-comment/add-comment.component.d.ts +0 -17
  499. package/src/lib/avatar/avatar.component.d.ts +0 -23
  500. package/src/lib/confirm-modal/confirm-modal.component.d.ts +0 -17
  501. package/src/lib/datepicker/datepicker.component.d.ts +0 -69
  502. package/src/lib/directives/default-image.directive.d.ts +0 -5
  503. package/src/lib/directives/equal-validator.directive.d.ts +0 -10
  504. package/src/lib/directives/multi-style-text.directive.d.ts +0 -15
  505. package/src/lib/directives/truncate-tooltip.directive.d.ts +0 -13
  506. package/src/lib/dots-stepper/dots-stepper.component.d.ts +0 -13
  507. package/src/lib/edit-tag-modal/edit-tags-modal.component.d.ts +0 -29
  508. package/src/lib/edit-tag-modal/model/edit-tags-modal.model.d.ts +0 -21
  509. package/src/lib/feature-onboarding/feature-onboarding.component.d.ts +0 -15
  510. package/src/lib/image-carousel/image-carousel.component.d.ts +0 -45
  511. package/src/lib/lead-modal/lead-info.model.d.ts +0 -7
  512. package/src/lib/lead-modal/lead-modal.component.d.ts +0 -28
  513. package/src/lib/media-display-overlay/media-display-overlay-dialog.component.d.ts +0 -28
  514. package/src/lib/modal/modal.component.d.ts +0 -47
  515. package/src/lib/notification/notification.component.d.ts +0 -3
  516. package/src/lib/overlay/overlay-dialog-service.component.d.ts +0 -20
  517. package/src/lib/overlay/overlay-dialog.component.d.ts +0 -17
  518. package/src/lib/overlay-in-div/overlay-in-div.component.d.ts +0 -8
  519. package/src/lib/paginator/paginator-button/paginator-button.component.d.ts +0 -6
  520. package/src/lib/paginator/paginator.component.d.ts +0 -14
  521. package/src/lib/password-input/password-input.component.d.ts +0 -28
  522. package/src/lib/password-strength-bar/password-strength-bar.component.d.ts +0 -21
  523. package/src/lib/password-strength-display-bar/password-strength-display-bar.component.d.ts +0 -14
  524. package/src/lib/phone-number-input/phone-number-input.component.d.ts +0 -42
  525. package/src/lib/places/place-list.component.d.ts +0 -2
  526. package/src/lib/places/place.component.d.ts +0 -3
  527. package/src/lib/popmenu/popmenu-options.interface.d.ts +0 -24
  528. package/src/lib/popmenu/popmenu.directive.d.ts +0 -69
  529. package/src/lib/popmenu/popmenu.module.d.ts +0 -5
  530. package/src/lib/snackbar/snackbar.component.d.ts +0 -6
  531. package/src/lib/snackbars-thread/component/snackbars-thread.component.d.ts +0 -18
  532. package/src/lib/snackbars-thread/service/snackbars-thread.service.d.ts +0 -12
  533. package/src/lib/splashscreen/splashscreen.component.d.ts +0 -15
  534. package/src/lib/star-rating/star-rating.component.d.ts +0 -10
  535. package/src/lib/stepper/stepper.component.d.ts +0 -14
  536. package/src/lib/tags/tag-list.component.d.ts +0 -2
  537. package/src/lib/tags/tag.component.d.ts +0 -4
  538. package/src/lib/tags-selector/tags-selector.component.d.ts +0 -29
  539. package/src/lib/timepicker/timepicker.component.d.ts +0 -68
  540. package/src/lib/tooltip-neo/tooltip-neo.component.d.ts +0 -12
  541. package/src/lib/tooltip-neo/tooltip-neo.const.d.ts +0 -4
  542. package/src/lib/tooltip-neo/tooltip-neo.directive.d.ts +0 -29
  543. package/src/lib/tooltip-neo/tooltip-neo.model.d.ts +0 -12
  544. package/src/lib/tooltip-neo/tooltip-neo.service.d.ts +0 -4
  545. package/src/lib/try-popup/try-popup-texts.model.d.ts +0 -4
  546. package/src/lib/try-popup/try-popup.component.d.ts +0 -12
  547. /package/{src/lib/confirm-modal → confirm-modal}/confirm-modal-texts.model.d.ts +0 -0
  548. /package/{src/lib/popmenu → popmenu}/popmenu-options.service.d.ts +0 -0
@@ -1,375 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild } from '@angular/core';
2
- import { OverlayContainer } from "@angular/cdk/overlay";
3
- import moment from 'moment';
4
- import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
5
- export var TimeFormat;
6
- (function (TimeFormat) {
7
- TimeFormat["Meridian"] = "Meridian";
8
- TimeFormat["Default"] = "Default";
9
- })(TimeFormat || (TimeFormat = {}));
10
- export class TimepickerComponent {
11
- constructor(changeDetectorRef, overlayContainer, renderer) {
12
- this.changeDetectorRef = changeDetectorRef;
13
- this.overlayContainer = overlayContainer;
14
- this.renderer = renderer;
15
- this.disabled = false;
16
- this.format = TimeFormat.Default;
17
- this.invalid = false;
18
- this.period = 15;
19
- this.placement = 'bottom';
20
- this.timeModelChange = new EventEmitter();
21
- this.closeMenu = false;
22
- this.openedMenu = false;
23
- this.position = null;
24
- this.previousTime = null;
25
- this.TimeFormat = TimeFormat;
26
- this.timeFormat12 = /(^[01]?\d)(:)([0-5]\d)(am|pm)+?$/i;
27
- this.timeFormat12anySeparator = /(^[01]?\d)([^0-9])([0-5]\d)(am|pm)+?$/i;
28
- this.timeFormat12WithoutMinute = /(^[01]?\d)(am|pm)+?$/i;
29
- this.timeFormat24 = /^([01]?[0-9]|2[0-3]):[0-5][0-9]$/;
30
- this.timeFormat24anySeparator = /^([01]?[0-9]|2[0-3])([^0-9])([0-5][0-9])$/;
31
- this.times = [];
32
- this.validated = false;
33
- this.listFocus = false;
34
- this.validationStarted = false;
35
- const disableAnimations = true;
36
- // get overlay container to set property that disables animations
37
- const overlayContainerElement = this.overlayContainer.getContainerElement();
38
- // angular animations renderer hooks up the logic to disable animations into setProperty
39
- this.renderer.setProperty(overlayContainerElement, "@.disabled", disableAnimations);
40
- }
41
- ngOnInit() {
42
- this.generateTimeSlots();
43
- }
44
- ngOnChanges(changes) {
45
- this.generateTimeSlots();
46
- if (changes.placement && changes.placement.currentValue) {
47
- if (changes.placement.currentValue === 'top') {
48
- this.position = {
49
- top: 179,
50
- left: this.inputBox.nativeElement.getBoundingClientRect().left
51
- };
52
- }
53
- else {
54
- this.position = { top: this.inputBox.nativeElement.getBoundingClientRect().top +
55
- this.inputBox.nativeElement.getBoundingClientRect().height,
56
- left: this.inputBox.nativeElement.getBoundingClientRect().left };
57
- }
58
- setTimeout(() => {
59
- this.changeDetectorRef.markForCheck();
60
- }, 200);
61
- }
62
- }
63
- emitChanges() {
64
- const time24Format = this.format === TimeFormat.Default ? this.timeModel : TimepickerComponent.convert12To24(this.timeModel);
65
- const time = {
66
- hours: this.getHoursFrom24(time24Format),
67
- minutes: this.getMinutesFrom24(time24Format),
68
- best: false,
69
- };
70
- this.timeModelChange.emit(time);
71
- this.closeMenu = true;
72
- this.changeDetectorRef.detectChanges();
73
- this.inputBox.nativeElement.focus();
74
- }
75
- getHoursFrom24(time24Format) {
76
- return +(time24Format.split(':')[0]);
77
- }
78
- getMinutesFrom24(time24Format) {
79
- return +(time24Format.split(':')[1]);
80
- }
81
- generateTimeSlots() {
82
- this.changeDetectorRef.detectChanges();
83
- this.times = Object.assign([], []);
84
- if (!this.timeModel) {
85
- this.timeModel = moment().format('HH:mm');
86
- }
87
- if (this.format === TimeFormat.Meridian) {
88
- if (!this.timeModel.includes('am') && !this.timeModel.includes('pm')) {
89
- this.timeModel = TimepickerComponent.convert24To12(this.timeModel);
90
- }
91
- }
92
- else {
93
- if (this.timeModel.includes('am') || this.timeModel.includes('pm')) {
94
- this.timeModel = TimepickerComponent.convert12To24(this.timeModel);
95
- }
96
- }
97
- for (let i = 0; i < 24; i++) {
98
- let hour = i;
99
- let meridian = '';
100
- if (this.format === TimeFormat.Meridian) {
101
- meridian = 'am';
102
- if (hour >= 12) {
103
- meridian = 'pm';
104
- if (hour > 12) {
105
- hour = hour - 12;
106
- }
107
- }
108
- if (hour === 0) {
109
- hour = 12;
110
- }
111
- }
112
- for (let j = 0; j < 60; j += this.period) {
113
- const time = hour + ':' + TimepickerComponent.toFixed(j, 10) + meridian;
114
- this.times = [...this.times, time];
115
- }
116
- }
117
- if (!this.timeModel) {
118
- this.timeModel = moment().format('HH:mm');
119
- if (this.format === TimeFormat.Meridian) {
120
- this.timeModel = moment().format('hh:mma');
121
- }
122
- }
123
- this.changeDetectorRef.detectChanges();
124
- }
125
- focusOnList(focusEnabled) {
126
- this.listFocus = focusEnabled;
127
- }
128
- onMenuClosed() {
129
- this.closeMenu = true;
130
- this.openedMenu = false;
131
- this.listFocus = false;
132
- if (!this.validationStarted) {
133
- this.validate(this.timeModel);
134
- }
135
- this.viewPort.setRenderedContentOffset(0);
136
- this.viewPort.scrollToIndex(0);
137
- this.validated = false;
138
- this.validationStarted = false;
139
- }
140
- onModelChange(time) {
141
- this.timeActive = null;
142
- if (!this.validated) {
143
- for (let i = 0; i < this.times.length; i++) {
144
- const checkTime = this.checkTime(time, this.times[i]);
145
- if (checkTime.match) {
146
- this.scrollToIndex(i);
147
- if (checkTime.exactMatch) {
148
- this.timeActive = i;
149
- }
150
- break;
151
- }
152
- }
153
- }
154
- this.validated = false;
155
- }
156
- openTimePicker() {
157
- this.previousTime = this.timeModel;
158
- this.closeMenu = false;
159
- if (this.placement === 'top') {
160
- this.position = {
161
- top: 179,
162
- left: this.inputBox.nativeElement.getBoundingClientRect().left
163
- };
164
- }
165
- else {
166
- this.position = { top: (this.inputBox.nativeElement.getBoundingClientRect().top - 1),
167
- left: this.inputBox.nativeElement.getBoundingClientRect().left };
168
- }
169
- if (!this.openedMenu && !this.validated) {
170
- this.openedMenu = true;
171
- setTimeout(() => {
172
- var _a, _b;
173
- this.onModelChange(this.timeModel);
174
- (_a = this.inputTime) === null || _a === void 0 ? void 0 : _a.nativeElement.focus();
175
- (_b = this.inputTime) === null || _b === void 0 ? void 0 : _b.nativeElement.select();
176
- }, 50);
177
- }
178
- this.validated = false;
179
- return false;
180
- }
181
- selectTime(time) {
182
- this.timeModel = time;
183
- this.emitChanges();
184
- }
185
- validate(time) {
186
- this.validationStarted = true;
187
- if (!this.listFocus) {
188
- if (this.timeFormat24anySeparator.test(time)) {
189
- time = time.replace(this.timeFormat24anySeparator, '$1:$3');
190
- }
191
- else if (this.timeFormat12anySeparator.test(time)) {
192
- time = time.replace(this.timeFormat12anySeparator, '$1:$3$4');
193
- }
194
- this.validated = true;
195
- let timeFound = false;
196
- for (let i = 0; i < this.times.length; i++) {
197
- const checkTime = this.checkTime(time, this.times[i]);
198
- if (checkTime.match && checkTime.exactMatch) {
199
- this.selectTime(this.times[i]);
200
- timeFound = true;
201
- break;
202
- }
203
- }
204
- if (!timeFound) {
205
- let validTime;
206
- if (this.format === TimeFormat.Meridian) {
207
- validTime = this.timeFormat12.test(time);
208
- if (!validTime) {
209
- validTime = this.timeFormat24.test(time);
210
- if (validTime) {
211
- time = TimepickerComponent.convert24To12(time);
212
- }
213
- else {
214
- validTime = this.timeFormat12WithoutMinute.test(time);
215
- if (validTime) {
216
- time = time.replace(this.timeFormat12WithoutMinute, '$1:00$2');
217
- }
218
- }
219
- }
220
- }
221
- else {
222
- validTime = this.timeFormat24.test(time);
223
- if (!validTime) {
224
- validTime = this.timeFormat12.test(time);
225
- if (validTime) {
226
- time = TimepickerComponent.convert12To24(time);
227
- }
228
- }
229
- }
230
- if (validTime) {
231
- this.selectTime(time);
232
- }
233
- else {
234
- this.selectTime(this.previousTime);
235
- }
236
- }
237
- }
238
- }
239
- scrollToIndex(i) {
240
- this.viewPort.scrollToIndex(i, 'smooth');
241
- }
242
- static formatTime(time, format) {
243
- let timeString = `${time.hours}` + ':' + `${time.minutes}`.padStart(2, '0');
244
- if (format === TimeFormat.Meridian) {
245
- timeString = TimepickerComponent.convert24To12(timeString);
246
- }
247
- return timeString;
248
- }
249
- checkTime(term, termToMatch) {
250
- var _a;
251
- let exactMatch = true;
252
- if (this.timeFormat24anySeparator.test(term)) {
253
- term = term.replace(this.timeFormat24anySeparator, '$1:$3');
254
- }
255
- else if (this.timeFormat12anySeparator.test(term)) {
256
- term = term.replace(this.timeFormat12anySeparator, '$1:$3$4');
257
- }
258
- if (term === '') {
259
- return { match: false, exactMatch: false };
260
- }
261
- const terms = term.split(':');
262
- if ((!isNaN(parseInt(terms[0]))) && ((_a = terms[1]) === null || _a === void 0 ? void 0 : _a.length) >= 2 && !isNaN(parseInt(terms[1].substring(0, 2)))) {
263
- const hour = parseInt(terms[0]);
264
- let newHour = hour;
265
- let newMinutes = terms[1].substring(0, 2);
266
- const minutes = parseInt(newMinutes);
267
- if (minutes !== 0) {
268
- if (minutes <= 15) {
269
- newMinutes = '15';
270
- }
271
- else if (minutes <= 30) {
272
- newMinutes = '30';
273
- }
274
- else if (minutes <= 45) {
275
- newMinutes = '45';
276
- }
277
- else {
278
- newHour += 1;
279
- newMinutes = '00';
280
- }
281
- }
282
- if (parseInt(newMinutes) !== minutes || newHour !== hour) {
283
- exactMatch = false;
284
- }
285
- term = newHour + ':' + newMinutes + terms[1].substring(2, terms[1].length);
286
- }
287
- let meridian = '';
288
- if (this.format === TimeFormat.Meridian) {
289
- if (terms[0]) {
290
- if (!isNaN(parseInt(terms[0]))) {
291
- let hour = parseInt(terms[0]);
292
- if (hour > 12) {
293
- hour = hour - 12;
294
- term = hour + ':' + (terms[1] ? terms[1].substring(0, 2) : '00');
295
- meridian = 'pm';
296
- }
297
- if (!term.endsWith('am') && !term.endsWith('pm')) {
298
- term += meridian;
299
- }
300
- }
301
- }
302
- if (this.timeFormat12WithoutMinute.test(term)) {
303
- term = term.substring(0, term.length - 2) + ':00' + term.substring(term.length - 2, term.length);
304
- }
305
- }
306
- return { match: termToMatch.startsWith(term), exactMatch };
307
- }
308
- static convert12To24(time) {
309
- const terms = time.split(':');
310
- const minutes = terms[1].substring(0, 2);
311
- const meridian = terms[1].substring(2, 4);
312
- let hour = parseInt(terms[0]);
313
- if (!isNaN(parseInt(terms[0]))) {
314
- if (meridian === 'pm' && hour < 12) {
315
- hour = hour + 12;
316
- }
317
- if (meridian === 'am' && hour === 12) {
318
- hour = 0;
319
- }
320
- }
321
- return hour + ':' + minutes;
322
- }
323
- static convert24To12(time) {
324
- const terms = time.split(':');
325
- let meridian = 'am';
326
- let hour = parseInt(terms[0]);
327
- if (!isNaN(parseInt(terms[0]))) {
328
- if (hour >= 12) {
329
- meridian = 'pm';
330
- if (hour > 12) {
331
- hour = hour - 12;
332
- }
333
- }
334
- if (hour === 0) {
335
- hour = 12;
336
- }
337
- }
338
- return hour + ':' + terms[1] + meridian;
339
- }
340
- static toFixed(num, fix) {
341
- let fixedNum = num;
342
- if (num < fix) {
343
- fixedNum = '0' + fixedNum;
344
- }
345
- return fixedNum;
346
- }
347
- }
348
- TimepickerComponent.decorators = [
349
- { type: Component, args: [{
350
- changeDetection: ChangeDetectionStrategy.OnPush,
351
- selector: 'ap-timepicker',
352
- template: "<div class=\"display-flex\" [class.meridian]=\"format === TimeFormat.Meridian\">\n <ng-template #timeOptionsTemplate >\n <input #inputTime\n *ngIf=\"placement == 'bottom'\"\n class=\"time-input menu\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"validate($event?.target?.value)\"\n (keydown.enter)=\"validate($event?.target?.value)\"\n (mouseenter)=\"focusOnList(false)\">\n <div class=\"time-options-container {{placement}}\"\n (mouseenter)=\"focusOnList(true)\"\n (mouseleave)=\"focusOnList(false)\">\n <cdk-virtual-scroll-viewport style=\"height: 100%\" itemSize=\"33\" class=\"scroll\" minBufferPx=\"200\" maxBufferPx=\"200\" autofocus>\n <div style=\"visibility: hidden;max-height: 0\">\u20AC</div>\n <div *cdkVirtualFor=\"let item of times;let i = index\" (click)=\"selectTime(item)\" id=\"_apTime_{{i}}\" class=\"time-line\" [class.selected]=\"timeActive === i\">\n <span class=\"hour\">{{item}}</span>\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n <input #inputTime\n *ngIf=\"placement == 'top'\"\n class=\"time-input menu\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"validate($event?.target?.value)\"\n (keydown.enter)=\"validate($event?.target?.value)\"\n (mouseenter)=\"focusOnList(false)\">\n\n </ng-template>\n\n <input #inputBox\n class=\"time-input\"\n [ngClass]=\"{'invalid': invalid}\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (click)=\"openTimePicker()\"\n [disabled]=\"disabled\"\n [apPopmenu]=\"timeOptionsTemplate\"\n [apTooltipNeo]=\"{content: invalidationMessage, display: invalidationMessage && invalid}\"\n [shadow]=\"false\"\n [apPopmenuBorder]=\"false\"\n [apPopmenuBackground]=\"false\"\n [hasBackdrop]=\"true\"\n [close]=\"closeMenu\"\n [pointer]=\"true\"\n [position]=\"position\"\n [placement]=\"placement\"\n [rounded]=\"true\"\n (menuClosed)=\"onMenuClosed()\"\n placement=\"bottom right\"\n color=\"secondary\"\n readonly>\n\n</div>\n",
353
- styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid red}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #fff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:#0000}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:initial}[border=transparent]{border:1px solid #0000}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}.time-options-container{background-color:#fff;border-radius:4px;box-shadow:0 7px 50px #00000014;z-index:999999;pointer-events:all;height:173px;width:170px;overflow-y:hidden;text-align:left;color:#344563}.time-options-container.bottom{margin-top:5px}.time-options-container.top{margin-bottom:5px}.time-options-container .scroll{overflow-x:hidden}.time-options-container .time-line{height:33px;min-width:165px;cursor:pointer;display:flex;align-items:center}.time-options-container .time-line.selected,.time-options-container .time-line:hover{background-color:#e8f4ff!important;color:#178dfe}.time-options-container .time-line span{padding-left:16px}.hidden{display:none!important}.time-input{color:#344563;font-family:inherit;font-weight:400;height:36px;line-height:24px;margin:0;min-width:0;width:80px;outline:none;z-index:0;cursor:text;border-radius:4px;border:1px solid #d6dae0;text-align:center;padding:0}.time-input.invalid{border:1px solid #e81313;border-radius:4px}.time-input[disabled]{color:#aeb5c1}.time-input[disabled]:hover{cursor:auto!important}.time-input:hover:not([disabled]){cursor:text}.time-input.menu,.time-input:active:not([disabled]),.time-input:focus:not([disabled]){border:1px solid #178dfe}.time-input.menu.top{padding-bottom:0}"]
354
- },] }
355
- ];
356
- /** @nocollapse */
357
- TimepickerComponent.ctorParameters = () => [
358
- { type: ChangeDetectorRef },
359
- { type: OverlayContainer },
360
- { type: Renderer2 }
361
- ];
362
- TimepickerComponent.propDecorators = {
363
- inputBox: [{ type: ViewChild, args: ['inputBox',] }],
364
- inputTime: [{ type: ViewChild, args: ['inputTime',] }],
365
- viewPort: [{ type: ViewChild, args: [CdkVirtualScrollViewport,] }],
366
- disabled: [{ type: Input }],
367
- format: [{ type: Input }],
368
- invalid: [{ type: Input }],
369
- invalidationMessage: [{ type: Input }],
370
- period: [{ type: Input }],
371
- placement: [{ type: Input }],
372
- timeModel: [{ type: Input }],
373
- timeModelChange: [{ type: Output }]
374
- };
375
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFXaEUsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNsQixtQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBbUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsVUFBVSxLQUFWLFVBQVUsUUFHckI7QUFRRCxNQUFNLE9BQU8sbUJBQW1CO0lBOEI1QixZQUFtQixpQkFBb0MsRUFBVSxnQkFBa0MsRUFBVSxRQUFtQjtRQUE3RyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF6QnZILGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsV0FBTSxHQUFlLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDeEMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUV6QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBVyxRQUFRLENBQUM7UUFFNUIsb0JBQWUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RSxjQUFTLEdBQVksS0FBSyxDQUFDO1FB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IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge092ZXJsYXlDb250YWluZXJ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnR9IGZyb20gXCJAYW5ndWxhci9jZGsvc2Nyb2xsaW5nXCI7XG5cbi8qKlxuICogVGltZSBpbiAyNGggZm9ybWF0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGltZSB7XG4gICAgaG91cnM6IG51bWJlcjtcbiAgICBtaW51dGVzOiBudW1iZXI7XG4gICAgYmVzdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIFRpbWVGb3JtYXQge1xuICAgIE1lcmlkaWFuID0gJ01lcmlkaWFuJyxcbiAgICBEZWZhdWx0ID0gJ0RlZmF1bHQnXG59XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXAtdGltZXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Qm94JykgaW5wdXRCb3g6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXRUaW1lJykgaW5wdXRUaW1lOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBmb3JtYXQ6IFRpbWVGb3JtYXQgPSBUaW1lRm9ybWF0LkRlZmF1bHQ7XG4gICAgQElucHV0KCkgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGludmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbiAgICBASW5wdXQoKSBwZXJpb2Q6IG51bWJlciA9IDE1O1xuICAgIEBJbnB1dCgpIHBsYWNlbWVudDogc3RyaW5nID0gJ2JvdHRvbSc7XG4gICAgQElucHV0KCkgdGltZU1vZGVsOiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIHRpbWVNb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPFRpbWU+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lPigpO1xuXG4gICAgY2xvc2VNZW51OiBib29sZWFuID0gZmFsc2U7XG4gICAgb3BlbmVkTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHBvc2l0aW9uOiB7dG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlcn0gPSBudWxsO1xuICAgIHByZXZpb3VzVGltZTogc3RyaW5nID0gbnVsbDtcbiAgICB0aW1lQWN0aXZlO1xuICAgIFRpbWVGb3JtYXQgPSBUaW1lRm9ybWF0O1xuICAgIHRpbWVGb3JtYXQxMiA9IC8oXlswMV0/XFxkKSg6KShbMC01XVxcZCkoYW18cG0pKz8kL2k7XG4gICAgdGltZUZvcm1hdDEyYW55U2VwYXJhdG9yID0gLyheWzAxXT9cXGQpKFteMC05XSkoWzAtNV1cXGQpKGFtfHBtKSs/JC9pO1xuICAgIHRpbWVGb3JtYXQxMldpdGhvdXRNaW51dGUgPSAvKF5bMDFdP1xcZCkoYW18cG0pKz8kL2k7XG4gICAgdGltZUZvcm1hdDI0ID0gL14oWzAxXT9bMC05XXwyWzAtM10pOlswLTVdWzAtOV0kLztcbiAgICB0aW1lRm9ybWF0MjRhbnlTZXBhcmF0b3IgPSAvXihbMDFdP1swLTldfDJbMC0zXSkoW14wLTldKShbMC01XVswLTldKSQvO1xuICAgIHRpbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHZhbGlkYXRlZCA9IGZhbHNlO1xuICAgIGxpc3RGb2N1cyA9IGZhbHNlO1xuICAgIHZhbGlkYXRpb25TdGFydGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG92ZXJsYXlDb250YWluZXI6IE92ZXJsYXlDb250YWluZXIsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgICAgICBjb25zdCBkaXNhYmxlQW5pbWF0aW9uczogYm9vbGVhbiA9IHRydWU7XG4gICAgICAgIC8vIGdldCBvdmVybGF5IGNvbnRhaW5lciB0byBzZXQgcHJvcGVydHkgdGhhdCBkaXNhYmxlcyBhbmltYXRpb25zXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMub3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCk7XG4gICAgICAgIC8vIGFuZ3VsYXIgYW5pbWF0aW9ucyByZW5kZXJlciBob29rcyB1cCB0aGUgbG9naWMgdG8gZGlzYWJsZSBhbmltYXRpb25zIGludG8gc2V0UHJvcGVydHlcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSggb3ZlcmxheUNvbnRhaW5lckVsZW1lbnQsIFwiQC5kaXNhYmxlZFwiLCBkaXNhYmxlQW5pbWF0aW9ucyApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdlbmVyYXRlVGltZVNsb3RzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVUaW1lU2xvdHMoKTtcbiAgICAgICAgaWYgKGNoYW5nZXMucGxhY2VtZW50ICYmIGNoYW5nZXMucGxhY2VtZW50LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMucGxhY2VtZW50LmN1cnJlbnRWYWx1ZSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDE3OSwgLy8gaGVpZ2h0IG9mIHBpY2tlclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB0aGlzLmlucHV0Qm94Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB7IHRvcDogdGhpcy5pbnB1dEJveC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRCb3gubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHRoaXMuaW5wdXRCb3gubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZW1pdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRpbWUyNEZvcm1hdCA9IHRoaXMuZm9ybWF0ID09PSBUaW1lRm9ybWF0LkRlZmF1bHQgPyB0aGlzLnRpbWVNb2RlbCA6IFRpbWVwaWNrZXJDb21wb25lbnQuY29udmVydDEyVG8yNCh0aGlzLnRpbWVNb2RlbCk7XG4gICAgICAgIGNvbnN0IHRpbWU6IFRpbWUgPSB7XG4gICAgICAgICAgICBob3VyczogdGhpcy5nZXRIb3Vyc0Zyb20yNCh0aW1lMjRGb3JtYXQpLFxuICAgICAgICAgICAgbWludXRlczogdGhpcy5nZXRNaW51dGVzRnJvbTI0KHRpbWUyNEZvcm1hdCksXG4gICAgICAgICAgICBiZXN0OiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50aW1lTW9kZWxDaGFuZ2UuZW1pdCh0aW1lKTtcbiAgICAgICAgdGhpcy5jbG9zZU1lbnUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pbnB1dEJveC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZ2V0SG91cnNGcm9tMjQodGltZTI0Rm9ybWF0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKyh0aW1lMjRGb3JtYXQuc3BsaXQoJzonKVswXSk7XG4gICAgfVxuXG4gICAgZ2V0TWludXRlc0Zyb20yNCh0aW1lMjRGb3JtYXQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiArKHRpbWUyNEZvcm1hdC5zcGxpdCgnOicpWzFdKTtcbiAgICB9XG5cbiAgICBnZW5lcmF0ZVRpbWVTbG90cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMudGltZXMgPSBPYmplY3QuYXNzaWduKFtdLCBbXSk7XG4gICAgICAgIGlmICghdGhpcy50aW1lTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMudGltZU1vZGVsID0gbW9tZW50KCkuZm9ybWF0KCdISDptbScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gVGltZUZvcm1hdC5NZXJpZGlhbikge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRpbWVNb2RlbC5pbmNsdWRlcygnYW0nKSAmJiAhdGhpcy50aW1lTW9kZWwuaW5jbHVkZXMoJ3BtJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVNb2RlbCA9IFRpbWVwaWNrZXJDb21wb25lbnQuY29udmVydDI0VG8xMih0aGlzLnRpbWVNb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lTW9kZWwuaW5jbHVkZXMoJ2FtJykgfHwgdGhpcy50aW1lTW9kZWwuaW5jbHVkZXMoJ3BtJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVNb2RlbCA9IFRpbWVwaWNrZXJDb21wb25lbnQuY29udmVydDEyVG8yNCh0aGlzLnRpbWVNb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyNDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgaG91ciA9IGk7XG4gICAgICAgICAgICBsZXQgbWVyaWRpYW4gPSAnJztcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gVGltZUZvcm1hdC5NZXJpZGlhbikge1xuICAgICAgICAgICAgICAgIG1lcmlkaWFuID0gJ2FtJztcbiAgICAgICAgICAgICAgICBpZiAoaG91ciA+PSAxMikge1xuICAgICAgICAgICAgICAgICAgICBtZXJpZGlhbiA9ICdwbSc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChob3VyID4gMTIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgPSBob3VyIC0gMTI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhvdXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaG91ciA9IDEyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgNjA7IGogKz0gdGhpcy5wZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gaG91ciArICc6JyArIFRpbWVwaWNrZXJDb21wb25lbnQudG9GaXhlZChqLCAxMCkgKyBtZXJpZGlhbjtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVzID0gWy4uLnRoaXMudGltZXMsIHRpbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnRpbWVNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy50aW1lTW9kZWwgPSBtb21lbnQoKS5mb3JtYXQoJ0hIOm1tJyk7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09IFRpbWVGb3JtYXQuTWVyaWRpYW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVNb2RlbCA9IG1vbWVudCgpLmZvcm1hdCgnaGg6bW1hJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNPbkxpc3QoZm9jdXNFbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdEZvY3VzID0gZm9jdXNFbmFibGVkO1xuXG4gICAgfVxuXG4gICAgb25NZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlTWVudSA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlbmVkTWVudSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpc3RGb2N1cyA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGlvblN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUodGhpcy50aW1lTW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlld1BvcnQuc2V0UmVuZGVyZWRDb250ZW50T2Zmc2V0KDApO1xuICAgICAgICB0aGlzLnZpZXdQb3J0LnNjcm9sbFRvSW5kZXgoMCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXJ0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHRpbWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lQWN0aXZlID0gbnVsbDtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlZCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRpbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tUaW1lID0gdGhpcy5jaGVja1RpbWUodGltZSwgdGhpcy50aW1lc1tpXSk7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrVGltZS5tYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvSW5kZXgoaSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVja1RpbWUuZXhhY3RNYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lQWN0aXZlID0gaTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbGlkYXRlZCA9IGZhbHNlO1xuXG4gICAgfVxuXG4gICAgb3BlblRpbWVQaWNrZXIoKSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNUaW1lID0gdGhpcy50aW1lTW9kZWw7XG4gICAgICAgIHRoaXMuY2xvc2VNZW51ID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxNzksICAvLyBoZWlnaHQgb2YgcGlja2VyXG4gICAgICAgICAgICAgICAgbGVmdDogdGhpcy5pbnB1dEJveC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0geyB0b3A6ICh0aGlzLmlucHV0Qm94Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gMSkgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogdGhpcy5pbnB1dEJveC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMub3BlbmVkTWVudSAmJiAhdGhpcy52YWxpZGF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbmVkTWVudSA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy50aW1lTW9kZWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRUaW1lPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFRpbWU/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgICAgICB9LCA1MCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWxpZGF0ZWQgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG5cbiAgICBzZWxlY3RUaW1lKHRpbWUpIHtcbiAgICAgICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUodGltZSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLmxpc3RGb2N1cykge1xuICAgICAgICAgICAgaWYgKHRoaXMudGltZUZvcm1hdDI0YW55U2VwYXJhdG9yLnRlc3QodGltZSkpIHtcbiAgICAgICAgICAgICAgICB0aW1lID0gdGltZS5yZXBsYWNlKHRoaXMudGltZUZvcm1hdDI0YW55U2VwYXJhdG9yLCAnJDE6JDMnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50aW1lRm9ybWF0MTJhbnlTZXBhcmF0b3IudGVzdCh0aW1lKSkge1xuICAgICAgICAgICAgICAgIHRpbWUgPSB0aW1lLnJlcGxhY2UodGhpcy50aW1lRm9ybWF0MTJhbnlTZXBhcmF0b3IsICckMTokMyQ0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICBsZXQgdGltZUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGltZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja1RpbWUgPSB0aGlzLmNoZWNrVGltZSh0aW1lLCB0aGlzLnRpbWVzW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tUaW1lLm1hdGNoICYmIGNoZWNrVGltZS5leGFjdE1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0VGltZSh0aGlzLnRpbWVzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgdGltZUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aW1lRm91bmQpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsaWRUaW1lOiBib29sZWFuO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gVGltZUZvcm1hdC5NZXJpZGlhbikge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZFRpbWUgPSB0aGlzLnRpbWVGb3JtYXQxMi50ZXN0KHRpbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbGlkVGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRUaW1lID0gdGhpcy50aW1lRm9ybWF0MjQudGVzdCh0aW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gVGltZXBpY2tlckNvbXBvbmVudC5jb252ZXJ0MjRUbzEyKHRpbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkVGltZSA9IHRoaXMudGltZUZvcm1hdDEyV2l0aG91dE1pbnV0ZS50ZXN0KHRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IHRpbWUucmVwbGFjZSh0aGlzLnRpbWVGb3JtYXQxMldpdGhvdXRNaW51dGUsICckMTowMCQyJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRUaW1lID0gdGhpcy50aW1lRm9ybWF0MjQudGVzdCh0aW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWxpZFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkVGltZSA9IHRoaXMudGltZUZvcm1hdDEyLnRlc3QodGltZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IFRpbWVwaWNrZXJDb21wb25lbnQuY29udmVydDEyVG8yNCh0aW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWxpZFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lKHRpbWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0VGltZSh0aGlzLnByZXZpb3VzVGltZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2Nyb2xsVG9JbmRleChpOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3UG9ydC5zY3JvbGxUb0luZGV4KCBpLCAnc21vb3RoJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvcm1hdFRpbWUodGltZTogVGltZSwgZm9ybWF0OiBUaW1lRm9ybWF0KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHRpbWVTdHJpbmcgPSBgJHt0aW1lLmhvdXJzfWAgKyAnOicgKyBgJHt0aW1lLm1pbnV0ZXN9YC5wYWRTdGFydCgyLCAnMCcpO1xuICAgICAgICBpZiAoZm9ybWF0ID09PSBUaW1lRm9ybWF0Lk1lcmlkaWFuKSB7XG4gICAgICAgICAgICB0aW1lU3RyaW5nID0gVGltZXBpY2tlckNvbXBvbmVudC5jb252ZXJ0MjRUbzEyKHRpbWVTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lU3RyaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tUaW1lKHRlcm06IHN0cmluZywgdGVybVRvTWF0Y2g6IHN0cmluZyk6IHsgbWF0Y2g6IGJvb2xlYW4sIGV4YWN0TWF0Y2g6IGJvb2xlYW4gfSB7XG4gICAgICAgIGxldCBleGFjdE1hdGNoID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMudGltZUZvcm1hdDI0YW55U2VwYXJhdG9yLnRlc3QodGVybSkpIHtcbiAgICAgICAgICAgIHRlcm0gPSB0ZXJtLnJlcGxhY2UodGhpcy50aW1lRm9ybWF0MjRhbnlTZXBhcmF0b3IsICckMTokMycpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGltZUZvcm1hdDEyYW55U2VwYXJhdG9yLnRlc3QodGVybSkpIHtcbiAgICAgICAgICAgIHRlcm0gPSB0ZXJtLnJlcGxhY2UodGhpcy50aW1lRm9ybWF0MTJhbnlTZXBhcmF0b3IsICckMTokMyQ0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRlcm0gPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4geyBtYXRjaDogZmFsc2UsIGV4YWN0TWF0Y2g6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGVybXMgPSB0ZXJtLnNwbGl0KCc6Jyk7XG4gICAgICAgIGlmICgoIWlzTmFOKHBhcnNlSW50KHRlcm1zWzBdKSkpICYmIHRlcm1zWzFdPy5sZW5ndGggPj0gMiAmJiAhaXNOYU4ocGFyc2VJbnQodGVybXNbMV0uc3Vic3RyaW5nKDAsIDIpKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGhvdXIgPSBwYXJzZUludCh0ZXJtc1swXSk7XG4gICAgICAgICAgICBsZXQgbmV3SG91ciA9IGhvdXI7XG4gICAgICAgICAgICBsZXQgbmV3TWludXRlcyA9IHRlcm1zWzFdLnN1YnN0cmluZygwLCAyKTtcbiAgICAgICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBwYXJzZUludChuZXdNaW51dGVzKTtcbiAgICAgICAgICAgIGlmIChtaW51dGVzICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbnV0ZXMgPD0gMTUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3TWludXRlcyA9ICcxNSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDMwKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld01pbnV0ZXMgPSAnMzAnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWludXRlcyA8PSA0NSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdNaW51dGVzID0gJzQ1JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXdIb3VyICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIG5ld01pbnV0ZXMgPSAnMDAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUludChuZXdNaW51dGVzKSAhPT0gbWludXRlcyB8fCBuZXdIb3VyICE9PSBob3VyKSB7XG4gICAgICAgICAgICAgICAgZXhhY3RNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGVybSA9IG5ld0hvdXIgKyAnOicgKyBuZXdNaW51dGVzICsgdGVybXNbMV0uc3Vic3RyaW5nKDIsIHRlcm1zWzFdLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1lcmlkaWFuID0gJyc7XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gVGltZUZvcm1hdC5NZXJpZGlhbikge1xuICAgICAgICAgICAgaWYgKHRlcm1zWzBdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludCh0ZXJtc1swXSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBob3VyID0gcGFyc2VJbnQodGVybXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaG91ciA+IDEyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBob3VyID0gaG91ciAtIDEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVybSA9IGhvdXIgKyAnOicgKyAodGVybXNbMV0gPyB0ZXJtc1sxXS5zdWJzdHJpbmcoMCwgMikgOiAnMDAnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lcmlkaWFuID0gJ3BtJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRlcm0uZW5kc1dpdGgoJ2FtJykgJiYgIXRlcm0uZW5kc1dpdGgoJ3BtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlcm0gKz0gbWVyaWRpYW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lRm9ybWF0MTJXaXRob3V0TWludXRlLnRlc3QodGVybSkpe1xuICAgICAgICAgICAgICAgIHRlcm0gPSB0ZXJtLnN1YnN0cmluZygwLCB0ZXJtLmxlbmd0aCAtIDIpICsgJzowMCcgKyB0ZXJtLnN1YnN0cmluZyh0ZXJtLmxlbmd0aCAtIDIsIHRlcm0ubGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge21hdGNoIDogdGVybVRvTWF0Y2guc3RhcnRzV2l0aCh0ZXJtKSwgZXhhY3RNYXRjaH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29udmVydDEyVG8yNCh0aW1lKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdGVybXMgPSB0aW1lLnNwbGl0KCc6Jyk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSB0ZXJtc1sxXS5zdWJzdHJpbmcoMCwgMik7XG4gICAgICAgIGNvbnN0IG1lcmlkaWFuID0gdGVybXNbMV0uc3Vic3RyaW5nKDIsIDQpO1xuICAgICAgICBsZXQgaG91ciA9IHBhcnNlSW50KHRlcm1zWzBdKTtcbiAgICAgICAgaWYgKCFpc05hTihwYXJzZUludCh0ZXJtc1swXSkpKSB7XG4gICAgICAgICAgICBpZiAobWVyaWRpYW4gPT09ICdwbScgJiYgaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGlhbiA9PT0gJ2FtJyAmJiBob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBob3VyICsgJzonICsgbWludXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0MjRUbzEyKHRpbWUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0ZXJtcyA9IHRpbWUuc3BsaXQoJzonKTtcbiAgICAgICAgbGV0IG1lcmlkaWFuID0gJ2FtJztcbiAgICAgICAgbGV0IGhvdXIgPSBwYXJzZUludCh0ZXJtc1swXSk7XG4gICAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQodGVybXNbMF0pKSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPj0gMTIpIHtcbiAgICAgICAgICAgICAgICBtZXJpZGlhbiA9ICdwbSc7XG4gICAgICAgICAgICAgICAgaWYgKGhvdXIgPiAxMikge1xuICAgICAgICAgICAgICAgICAgICBob3VyID0gaG91ciAtIDEyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChob3VyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBob3VyICsgJzonICsgdGVybXNbMV0gKyBtZXJpZGlhblxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHRvRml4ZWQobnVtLCBmaXgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgZml4ZWROdW06IHN0cmluZyA9IG51bTtcbiAgICAgICAgaWYgKG51bSA8IGZpeCkge1xuICAgICAgICAgICAgZml4ZWROdW0gPSAnMCcgKyBmaXhlZE51bTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZml4ZWROdW07XG4gICAgfVxufVxuIl19
@@ -1,46 +0,0 @@
1
- import { Component, Input, ChangeDetectionStrategy, HostListener, ElementRef, } from '@angular/core';
2
- import { animate, style, transition, trigger } from '@angular/animations';
3
- import { TooltipNeoService } from "./tooltip-neo.service";
4
- export class TooltipNeoComponent {
5
- constructor(_elementRef, _tooltipNeoService) {
6
- this._elementRef = _elementRef;
7
- this._tooltipNeoService = _tooltipNeoService;
8
- }
9
- ngOnInit() {
10
- this.params.borderColor
11
- ? this.border = `solid 1px ${this.params.borderColor}`
12
- : this.border = undefined;
13
- }
14
- onClickOutside(event) {
15
- if (!this._elementRef.nativeElement.contains(event.target)) {
16
- this._tooltipNeoService.clickOutside$.next();
17
- }
18
- }
19
- }
20
- TooltipNeoComponent.decorators = [
21
- { type: Component, args: [{
22
- selector: 'ap-tooltip-neo',
23
- changeDetection: ChangeDetectionStrategy.OnPush,
24
- template: "<div @neoTooltip [ngSwitch]=\"params.contentType\"\n class=\"tooltip {{params.maxWidth}}\"\n [style.background]=\"params.backgroundColor\"\n [style.border]=\"border\"\n >\n <div *ngIf=\"params.displayArrow\"\n class=\"arrow-tooltip {{params.position}}\"\n [class.border]=\"!!params.borderColor\"\n [style.background]=\"params.backgroundColor\"\n [style.borderTop]=\"border\"\n [style.borderRight]=\"border\"\n ></div>\n <ng-container *ngIf=\"params.title\">\n <div class=\"text title\">{{params.title}}</div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <ng-container *ngIf=\"params.content\">\n <div class=\"text content\">{{params.content}}</div>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container *ngTemplateOutlet=\"params.content\">\n </ng-container>\n </ng-container>\n</div>\n",
25
- animations: [
26
- trigger('neoTooltip', [
27
- transition(':enter', [
28
- style({ opacity: 0 }),
29
- animate(200, style({ opacity: 1 }))
30
- ]),
31
- transition(':leave', [animate(200, style({ opacity: 0 }))])
32
- ])
33
- ],
34
- styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid red}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #fff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:#0000}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:initial}[border=transparent]{border:1px solid #0000}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #a566a5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #c7ab82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #f2713c}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #ffd006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94c5aa}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2a9d8f}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78acd8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525a9e}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6a2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729e}.tooltip{border-radius:8px;filter:drop-shadow(0 0 10px rgba(0,0,0,.08));position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:18px}.tooltip .arrow-tooltip{position:absolute;height:12px;width:12px;border-top-right-radius:2px}.tooltip .arrow-tooltip.topLeft{left:12px;top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.top{left:calc(50% - 6px);top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.topRight{right:12px;top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.left{top:calc(50% - 6px);transform:rotate(45deg)}.tooltip .arrow-tooltip.left:not(.border){right:-6px}.tooltip .arrow-tooltip.left.border{right:-7px}.tooltip .arrow-tooltip.right{top:calc(50% - 6px);transform:rotate(-135deg)}.tooltip .arrow-tooltip.right:not(.border){left:-6px}.tooltip .arrow-tooltip.right.border{left:-7px}.tooltip .arrow-tooltip.bottomLeft{left:12px;transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottomLeft:not(.border){top:-6px}.tooltip .arrow-tooltip.bottomLeft.border{top:-7px}.tooltip .arrow-tooltip.bottom{left:calc(50% - 6px);transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottom:not(.border){top:-6px}.tooltip .arrow-tooltip.bottom.border{top:-7px}.tooltip .arrow-tooltip.bottomRight{right:12px;transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottomRight:not(.border){top:-6px}.tooltip .arrow-tooltip.bottomRight.border{top:-7px}.tooltip.full{max-width:350px}.tooltip.medium{max-width:300px}.tooltip .text{font-size:14px;color:#212e44}.tooltip .title{align-items:flex-start;font-weight:700;margin:8px 16px 0}.tooltip .content{padding:8px 16px;overflow-wrap:anywhere}"]
35
- },] }
36
- ];
37
- /** @nocollapse */
38
- TooltipNeoComponent.ctorParameters = () => [
39
- { type: ElementRef },
40
- { type: TooltipNeoService }
41
- ];
42
- TooltipNeoComponent.propDecorators = {
43
- params: [{ type: Input }],
44
- onClickOutside: [{ type: HostListener, args: ['document:click', ['$event'],] }]
45
- };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1uZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvdG9vbHRpcC1uZW8vdG9vbHRpcC1uZW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixZQUFZLEVBQ1osVUFBVSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWlCeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUs1QixZQUNZLFdBQXVCLEVBQ3ZCLGtCQUFxQztRQURyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO0lBRWpELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDdEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFHRCxjQUFjLENBQUMsS0FBSztRQUNoQixJQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2hEO0lBQ0wsQ0FBQzs7O1lBckNKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFFL0MsdzlCQUEyQztnQkFDM0MsVUFBVSxFQUFFO29CQUNSLE9BQU8sQ0FBQyxZQUFZLEVBQUU7d0JBQ2xCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ2pCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQzs0QkFDckIsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzt5QkFDdEMsQ0FBQzt3QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzlELENBQUM7aUJBQ0w7O2FBQ0o7Ozs7WUFyQkcsVUFBVTtZQUtOLGlCQUFpQjs7O3FCQWtCcEIsS0FBSzs2QkFnQkwsWUFBWSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBUb29sdGlwTmVvUGFyYW1zIH0gZnJvbSAnLi90b29sdGlwLW5lby5tb2RlbCc7XG5pbXBvcnQge1Rvb2x0aXBOZW9TZXJ2aWNlfSBmcm9tIFwiLi90b29sdGlwLW5lby5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXAtdG9vbHRpcC1uZW8nLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0eWxlVXJsczogWycuL3Rvb2x0aXAtbmVvLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2x0aXAtbmVvLmNvbXBvbmVudC5odG1sJyxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ25lb1Rvb2x0aXAnLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoMjAwLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKDIwMCwgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwTmVvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBwYXJhbXM6IFRvb2x0aXBOZW9QYXJhbXM7XG5cbiAgICBib3JkZXI6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF90b29sdGlwTmVvU2VydmljZTogVG9vbHRpcE5lb1NlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucGFyYW1zLmJvcmRlckNvbG9yXG4gICAgICAgICAgICA/IHRoaXMuYm9yZGVyID0gYHNvbGlkIDFweCAke3RoaXMucGFyYW1zLmJvcmRlckNvbG9yfWBcbiAgICAgICAgICAgIDogdGhpcy5ib3JkZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2tPdXRzaWRlKGV2ZW50KSB7XG4gICAgICAgIGlmKCF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5fdG9vbHRpcE5lb1NlcnZpY2UuY2xpY2tPdXRzaWRlJC5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,67 +0,0 @@
1
- const topLeftPosition = {
2
- originX: 'start',
3
- originY: 'top',
4
- overlayX: 'start',
5
- overlayY: 'bottom',
6
- offsetY: -12
7
- };
8
- const topPosition = {
9
- originX: 'center',
10
- originY: 'top',
11
- overlayX: 'center',
12
- overlayY: 'bottom',
13
- offsetY: -12
14
- };
15
- const topRightPosition = {
16
- originX: 'end',
17
- originY: 'top',
18
- overlayX: 'end',
19
- overlayY: 'bottom',
20
- offsetY: -12
21
- };
22
- const bottomLeftPosition = {
23
- originX: 'start',
24
- originY: 'bottom',
25
- overlayX: 'start',
26
- overlayY: 'top',
27
- offsetY: 12
28
- };
29
- const bottomPosition = {
30
- originX: 'center',
31
- originY: 'bottom',
32
- overlayX: 'center',
33
- overlayY: 'top',
34
- offsetY: 12
35
- };
36
- const bottomRightPosition = {
37
- originX: 'end',
38
- originY: 'bottom',
39
- overlayX: 'end',
40
- overlayY: 'top',
41
- offsetY: 12
42
- };
43
- const leftPostion = {
44
- originX: 'start',
45
- originY: 'center',
46
- overlayX: 'end',
47
- overlayY: 'center',
48
- offsetX: -12
49
- };
50
- const rightPosition = {
51
- originX: 'end',
52
- originY: 'center',
53
- overlayX: 'start',
54
- overlayY: 'center',
55
- offsetX: 12
56
- };
57
- export const tooltipNeoPositions = {
58
- topLeft: topLeftPosition,
59
- top: topPosition,
60
- topRight: topRightPosition,
61
- left: leftPostion,
62
- right: rightPosition,
63
- bottomLeft: bottomLeftPosition,
64
- bottom: bottomPosition,
65
- bottomRight: bottomRightPosition
66
- };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1uZW8uY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi90b29sdGlwLW5lby90b29sdGlwLW5lby5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGVBQWUsR0FBMkI7SUFDNUMsT0FBTyxFQUFFLE9BQU87SUFDaEIsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsT0FBTztJQUNqQixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsQ0FBQyxFQUFFO0NBQ2YsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUEyQjtJQUN4QyxPQUFPLEVBQUUsUUFBUTtJQUNqQixPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLEVBQUU7Q0FDZixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBMkI7SUFDN0MsT0FBTyxFQUFFLEtBQUs7SUFDZCxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLENBQUMsRUFBRTtDQUNmLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUEyQjtJQUMvQyxPQUFPLEVBQUUsT0FBTztJQUNoQixPQUFPLEVBQUUsUUFBUTtJQUNqQixRQUFRLEVBQUUsT0FBTztJQUNqQixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxFQUFFO0NBQ2QsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUEyQjtJQUMzQyxPQUFPLEVBQUUsUUFBUTtJQUNqQixPQUFPLEVBQUUsUUFBUTtJQUNqQixRQUFRLEVBQUUsUUFBUTtJQUNsQixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxFQUFFO0NBQ2QsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQTJCO0lBQ2hELE9BQU8sRUFBRSxLQUFLO0lBQ2QsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxFQUFFO0NBQ2QsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUEyQjtJQUN4QyxPQUFPLEVBQUUsT0FBTztJQUNoQixPQUFPLEVBQUUsUUFBUTtJQUNqQixRQUFRLEVBQUUsS0FBSztJQUNmLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLEVBQUU7Q0FDZixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQTJCO0lBQzFDLE9BQU8sRUFBRSxLQUFLO0lBQ2QsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLE9BQU87SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLEVBQUU7Q0FDZCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQThDO0lBQzFFLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsSUFBSSxFQUFFLFdBQVc7SUFDakIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsVUFBVSxFQUFFLGtCQUFrQjtJQUM5QixNQUFNLEVBQUUsY0FBYztJQUN0QixXQUFXLEVBQUUsbUJBQW1CO0NBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5jb25zdCB0b3BMZWZ0UG9zaXRpb246IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIgPSB7XG4gICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgb2Zmc2V0WTogLTEyXG59O1xuXG5jb25zdCB0b3BQb3NpdGlvbjogQ29ubmVjdGlvblBvc2l0aW9uUGFpciA9IHtcbiAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIG9mZnNldFk6IC0xMlxufTtcblxuY29uc3QgdG9wUmlnaHRQb3NpdGlvbjogQ29ubmVjdGlvblBvc2l0aW9uUGFpciA9IHtcbiAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgIG9mZnNldFk6IC0xMlxufTtcblxuY29uc3QgYm90dG9tTGVmdFBvc2l0aW9uOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyID0ge1xuICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIG9mZnNldFk6IDEyXG59O1xuXG5jb25zdCBib3R0b21Qb3NpdGlvbjogQ29ubmVjdGlvblBvc2l0aW9uUGFpciA9IHtcbiAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgIG9mZnNldFk6IDEyXG59O1xuXG5jb25zdCBib3R0b21SaWdodFBvc2l0aW9uOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyID0ge1xuICAgIG9yaWdpblg6ICdlbmQnLFxuICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgb2Zmc2V0WTogMTJcbn07XG5cbmNvbnN0IGxlZnRQb3N0aW9uOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyID0ge1xuICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgIG92ZXJsYXlZOiAnY2VudGVyJyxcbiAgICBvZmZzZXRYOiAtMTJcbn07XG5cbmNvbnN0IHJpZ2h0UG9zaXRpb246IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIgPSB7XG4gICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgb3ZlcmxheVk6ICdjZW50ZXInLFxuICAgIG9mZnNldFg6IDEyXG59O1xuXG5leHBvcnQgY29uc3QgdG9vbHRpcE5lb1Bvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyIH0gPSB7XG4gICAgdG9wTGVmdDogdG9wTGVmdFBvc2l0aW9uLFxuICAgIHRvcDogdG9wUG9zaXRpb24sXG4gICAgdG9wUmlnaHQ6IHRvcFJpZ2h0UG9zaXRpb24sXG4gICAgbGVmdDogbGVmdFBvc3Rpb24sXG4gICAgcmlnaHQ6IHJpZ2h0UG9zaXRpb24sXG4gICAgYm90dG9tTGVmdDogYm90dG9tTGVmdFBvc2l0aW9uLFxuICAgIGJvdHRvbTogYm90dG9tUG9zaXRpb24sXG4gICAgYm90dG9tUmlnaHQ6IGJvdHRvbVJpZ2h0UG9zaXRpb25cbn07XG4iXX0=