@leanix/components 0.2.229 → 0.2.230

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. package/esm2020/index.mjs +119 -0
  2. package/esm2020/leanix-components.mjs +5 -0
  3. package/esm2020/lib/core-ui/annotations/required.mjs +33 -0
  4. package/esm2020/lib/core-ui/components/badge/badge.component.mjs +25 -0
  5. package/esm2020/lib/core-ui/components/button/button.component.mjs +72 -0
  6. package/esm2020/lib/core-ui/components/button-group/button-group.component.mjs +28 -0
  7. package/esm2020/lib/core-ui/components/card/card.component.mjs +19 -0
  8. package/esm2020/lib/core-ui/components/collapsible/collapsible.component.mjs +53 -0
  9. package/esm2020/lib/core-ui/components/colored-label/colored-label.component.mjs +34 -0
  10. package/esm2020/lib/core-ui/components/ellipsis/ellipsis.component.mjs +70 -0
  11. package/esm2020/lib/core-ui/components/icon-scale/icon-scale.component.mjs +40 -0
  12. package/esm2020/lib/core-ui/components/spinner/spinner.component.mjs +26 -0
  13. package/esm2020/lib/core-ui/components/table/table-header/table-header.component.mjs +55 -0
  14. package/esm2020/lib/core-ui/components/table/table.component.mjs +69 -0
  15. package/esm2020/lib/core-ui/components/tiny-spinner/tiny-spinner.component.mjs +11 -0
  16. package/esm2020/lib/core-ui/core-ui.constants.mjs +13 -0
  17. package/esm2020/lib/core-ui/core-ui.module.mjs +177 -0
  18. package/esm2020/lib/core-ui/directives/after-view-init.directive.mjs +30 -0
  19. package/esm2020/lib/core-ui/directives/autoclose-group.service.mjs +38 -0
  20. package/esm2020/lib/core-ui/directives/autoclose.directive.mjs +40 -0
  21. package/esm2020/lib/core-ui/directives/autofocus.directive.mjs +27 -0
  22. package/esm2020/lib/core-ui/directives/html.directive.mjs +29 -0
  23. package/esm2020/lib/core-ui/functions/core-css.helpers.mjs +35 -0
  24. package/esm2020/lib/core-ui/pipes/br.pipe.mjs +23 -0
  25. package/esm2020/lib/core-ui/pipes/contrast-color.pipe.mjs +20 -0
  26. package/esm2020/lib/core-ui/pipes/custom-date.pipe.mjs +27 -0
  27. package/esm2020/lib/core-ui/pipes/highlight-range.pipe.mjs +21 -0
  28. package/esm2020/lib/core-ui/pipes/highlight-term.pipe.mjs +38 -0
  29. package/esm2020/lib/core-ui/pipes/lx-is-uuid.pipe.mjs +21 -0
  30. package/esm2020/lib/core-ui/pipes/lx-time-ago.pipe.mjs +25 -0
  31. package/esm2020/lib/core-ui/pipes/lx-translate.pipe.mjs +45 -0
  32. package/esm2020/lib/core-ui/pipes/markdown.pipe.mjs +29 -0
  33. package/esm2020/lib/core-ui/pipes/nbsp.pipe.mjs +14 -0
  34. package/esm2020/lib/core-ui/pipes/sort.pipe.mjs +52 -0
  35. package/esm2020/lib/core-ui/pipes/translation-after.pipe.mjs +28 -0
  36. package/esm2020/lib/core-ui/pipes/translation-before.pipe.mjs +53 -0
  37. package/esm2020/lib/core-ui/pipes/translation-between.pipe.mjs +67 -0
  38. package/esm2020/lib/core-ui/pipes/unescape-curly-braces.pipe.mjs +16 -0
  39. package/esm2020/lib/core-ui/tooltip/to-cdk-position.function.mjs +74 -0
  40. package/esm2020/lib/core-ui/tooltip/tooltip-position.interface.mjs +7 -0
  41. package/esm2020/lib/core-ui/tooltip/tooltip.component.mjs +26 -0
  42. package/esm2020/lib/core-ui/tooltip/tooltip.directive.mjs +102 -0
  43. package/esm2020/lib/core-ui/tooltip/tooltip.module.mjs +21 -0
  44. package/esm2020/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.mjs +103 -0
  45. package/esm2020/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.mjs +33 -0
  46. package/esm2020/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.mjs +216 -0
  47. package/esm2020/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.mjs +136 -0
  48. package/esm2020/lib/forms-ui/components/currency/currency-input.component.mjs +141 -0
  49. package/esm2020/lib/forms-ui/components/currency/currency-symbol-map.constant.mjs +105 -0
  50. package/esm2020/lib/forms-ui/components/currency/currency-symbol.component.mjs +25 -0
  51. package/esm2020/lib/forms-ui/components/date-input/date-input.component.mjs +270 -0
  52. package/esm2020/lib/forms-ui/components/drag-and-drop-list/constants.mjs +5 -0
  53. package/esm2020/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.mjs +49 -0
  54. package/esm2020/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.mjs +102 -0
  55. package/esm2020/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.mjs +25 -0
  56. package/esm2020/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.mjs +133 -0
  57. package/esm2020/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.mjs +37 -0
  58. package/esm2020/lib/forms-ui/components/error-message/error-message.component.mjs +24 -0
  59. package/esm2020/lib/forms-ui/components/form-error/form-error.component.mjs +40 -0
  60. package/esm2020/lib/forms-ui/components/icon/icon.component.mjs +44 -0
  61. package/esm2020/lib/forms-ui/components/input/input.component.mjs +44 -0
  62. package/esm2020/lib/forms-ui/components/keyboard-select.directive.mjs +116 -0
  63. package/esm2020/lib/forms-ui/components/multi-select/multi-select.component.mjs +251 -0
  64. package/esm2020/lib/forms-ui/components/option/option.component.mjs +81 -0
  65. package/esm2020/lib/forms-ui/components/option-group/option-group.component.mjs +29 -0
  66. package/esm2020/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.mjs +100 -0
  67. package/esm2020/lib/forms-ui/components/options-dropdown/options-dropdown.component.mjs +163 -0
  68. package/esm2020/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.mjs +92 -0
  69. package/esm2020/lib/forms-ui/components/picker/picker-trigger.directive.mjs +36 -0
  70. package/esm2020/lib/forms-ui/components/picker/picker.component.mjs +201 -0
  71. package/esm2020/lib/forms-ui/components/picker-option/picker-option.component.mjs +118 -0
  72. package/esm2020/lib/forms-ui/components/pill-item/pill-item.component.mjs +33 -0
  73. package/esm2020/lib/forms-ui/components/pill-list/pill-list.component.mjs +59 -0
  74. package/esm2020/lib/forms-ui/components/responsive-input/responsive-input.component.mjs +97 -0
  75. package/esm2020/lib/forms-ui/components/single-select/single-select.component.mjs +274 -0
  76. package/esm2020/lib/forms-ui/components/slider-toggle/slider-toggle.component.mjs +42 -0
  77. package/esm2020/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.mjs +52 -0
  78. package/esm2020/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.mjs +21 -0
  79. package/esm2020/lib/forms-ui/directives/form-error.directive.mjs +109 -0
  80. package/esm2020/lib/forms-ui/directives/form-submit.directive.mjs +28 -0
  81. package/esm2020/lib/forms-ui/directives/keyboard-action-source.directive.mjs +53 -0
  82. package/esm2020/lib/forms-ui/directives/mark-invalid.directive.mjs +38 -0
  83. package/esm2020/lib/forms-ui/directives/select-dropdown.directive.mjs +31 -0
  84. package/esm2020/lib/forms-ui/directives/selectable-item.directive.mjs +33 -0
  85. package/esm2020/lib/forms-ui/directives/selected-option.directive.mjs +26 -0
  86. package/esm2020/lib/forms-ui/forms-ui.module.mjs +236 -0
  87. package/esm2020/lib/forms-ui/helpers/key-codes.constants.mjs +11 -0
  88. package/esm2020/lib/forms-ui/helpers/keyboard-navigation.helpers.mjs +38 -0
  89. package/esm2020/lib/forms-ui/models/base-select.directive.mjs +148 -0
  90. package/esm2020/lib/forms-ui/models/dropdown-item.interface.mjs +2 -0
  91. package/esm2020/lib/forms-ui/models/single-select-padding.interface.mjs +2 -0
  92. package/esm2020/lib/forms-ui/models/sorting.interface.mjs +7 -0
  93. package/esm2020/lib/forms-ui/pipes/filter-selection.pipe.mjs +30 -0
  94. package/esm2020/lib/forms-ui/pipes/filter-term.pipe.mjs +26 -0
  95. package/esm2020/lib/forms-ui/pipes/format-number.pipe.mjs +65 -0
  96. package/esm2020/lib/forms-ui/validators/date-in-foreseeable-future.validator.mjs +26 -0
  97. package/esm2020/lib/modal-ui/components/modal/modal.component.mjs +205 -0
  98. package/esm2020/lib/modal-ui/components/modal-footer/modal-footer.component.mjs +11 -0
  99. package/esm2020/lib/modal-ui/components/modal-header/modal-header.component.mjs +23 -0
  100. package/esm2020/lib/modal-ui/directives/modal-content.directive.mjs +13 -0
  101. package/esm2020/lib/modal-ui/modal.constants.mjs +3 -0
  102. package/esm2020/lib/modal-ui/modal.module.mjs +26 -0
  103. package/esm2020/lib/popover-ui/components/popover/popover.component.mjs +199 -0
  104. package/esm2020/lib/popover-ui/directives/popover-click.directive.mjs +51 -0
  105. package/esm2020/lib/popover-ui/directives/popover-content.directive.mjs +16 -0
  106. package/esm2020/lib/popover-ui/directives/popover-hover.directive.mjs +87 -0
  107. package/esm2020/lib/popover-ui/popover-ui.module.mjs +22 -0
  108. package/esm2020/lib/shared/date-helpers.mjs +35 -0
  109. package/esm2020/lib/shared/misc-helpers.mjs +34 -0
  110. package/esm2020/lib/shared/observe.mjs +40 -0
  111. package/esm2020/lib/tab-ui/components/tab/tab.component.mjs +70 -0
  112. package/esm2020/lib/tab-ui/components/tab-group/tab-group.component.mjs +71 -0
  113. package/esm2020/lib/tab-ui/tab-ui.module.mjs +22 -0
  114. package/fesm2015/{leanix-components.js → leanix-components.mjs} +436 -633
  115. package/fesm2015/leanix-components.mjs.map +1 -0
  116. package/fesm2020/leanix-components.mjs +6207 -0
  117. package/fesm2020/leanix-components.mjs.map +1 -0
  118. package/package.json +23 -9
  119. package/bundles/leanix-components.umd.js +0 -7364
  120. package/bundles/leanix-components.umd.js.map +0 -1
  121. package/esm2015/index.js +0 -119
  122. package/esm2015/index.js.map +0 -1
  123. package/esm2015/leanix-components.js +0 -5
  124. package/esm2015/leanix-components.js.map +0 -1
  125. package/esm2015/lib/core-ui/annotations/required.js +0 -33
  126. package/esm2015/lib/core-ui/annotations/required.js.map +0 -1
  127. package/esm2015/lib/core-ui/components/badge/badge.component.js +0 -29
  128. package/esm2015/lib/core-ui/components/badge/badge.component.js.map +0 -1
  129. package/esm2015/lib/core-ui/components/button/button.component.js +0 -78
  130. package/esm2015/lib/core-ui/components/button/button.component.js.map +0 -1
  131. package/esm2015/lib/core-ui/components/button-group/button-group.component.js +0 -32
  132. package/esm2015/lib/core-ui/components/button-group/button-group.component.js.map +0 -1
  133. package/esm2015/lib/core-ui/components/card/card.component.js +0 -23
  134. package/esm2015/lib/core-ui/components/card/card.component.js.map +0 -1
  135. package/esm2015/lib/core-ui/components/collapsible/collapsible.component.js +0 -58
  136. package/esm2015/lib/core-ui/components/collapsible/collapsible.component.js.map +0 -1
  137. package/esm2015/lib/core-ui/components/colored-label/colored-label.component.js +0 -39
  138. package/esm2015/lib/core-ui/components/colored-label/colored-label.component.js.map +0 -1
  139. package/esm2015/lib/core-ui/components/ellipsis/ellipsis.component.js +0 -74
  140. package/esm2015/lib/core-ui/components/ellipsis/ellipsis.component.js.map +0 -1
  141. package/esm2015/lib/core-ui/components/icon-scale/icon-scale.component.js +0 -46
  142. package/esm2015/lib/core-ui/components/icon-scale/icon-scale.component.js.map +0 -1
  143. package/esm2015/lib/core-ui/components/spinner/spinner.component.js +0 -30
  144. package/esm2015/lib/core-ui/components/spinner/spinner.component.js.map +0 -1
  145. package/esm2015/lib/core-ui/components/table/table-header/table-header.component.js +0 -60
  146. package/esm2015/lib/core-ui/components/table/table-header/table-header.component.js.map +0 -1
  147. package/esm2015/lib/core-ui/components/table/table.component.js +0 -70
  148. package/esm2015/lib/core-ui/components/table/table.component.js.map +0 -1
  149. package/esm2015/lib/core-ui/components/tiny-spinner/tiny-spinner.component.js +0 -14
  150. package/esm2015/lib/core-ui/components/tiny-spinner/tiny-spinner.component.js.map +0 -1
  151. package/esm2015/lib/core-ui/core-ui.constants.js +0 -13
  152. package/esm2015/lib/core-ui/core-ui.constants.js.map +0 -1
  153. package/esm2015/lib/core-ui/core-ui.module.js +0 -177
  154. package/esm2015/lib/core-ui/core-ui.module.js.map +0 -1
  155. package/esm2015/lib/core-ui/directives/after-view-init.directive.js +0 -30
  156. package/esm2015/lib/core-ui/directives/after-view-init.directive.js.map +0 -1
  157. package/esm2015/lib/core-ui/directives/autoclose-group.service.js +0 -38
  158. package/esm2015/lib/core-ui/directives/autoclose-group.service.js.map +0 -1
  159. package/esm2015/lib/core-ui/directives/autoclose.directive.js +0 -40
  160. package/esm2015/lib/core-ui/directives/autoclose.directive.js.map +0 -1
  161. package/esm2015/lib/core-ui/directives/autofocus.directive.js +0 -27
  162. package/esm2015/lib/core-ui/directives/autofocus.directive.js.map +0 -1
  163. package/esm2015/lib/core-ui/directives/html.directive.js +0 -30
  164. package/esm2015/lib/core-ui/directives/html.directive.js.map +0 -1
  165. package/esm2015/lib/core-ui/functions/core-css.helpers.js +0 -35
  166. package/esm2015/lib/core-ui/functions/core-css.helpers.js.map +0 -1
  167. package/esm2015/lib/core-ui/pipes/br.pipe.js +0 -23
  168. package/esm2015/lib/core-ui/pipes/br.pipe.js.map +0 -1
  169. package/esm2015/lib/core-ui/pipes/contrast-color.pipe.js +0 -20
  170. package/esm2015/lib/core-ui/pipes/contrast-color.pipe.js.map +0 -1
  171. package/esm2015/lib/core-ui/pipes/custom-date.pipe.js +0 -27
  172. package/esm2015/lib/core-ui/pipes/custom-date.pipe.js.map +0 -1
  173. package/esm2015/lib/core-ui/pipes/highlight-range.pipe.js +0 -21
  174. package/esm2015/lib/core-ui/pipes/highlight-range.pipe.js.map +0 -1
  175. package/esm2015/lib/core-ui/pipes/highlight-term.pipe.js +0 -38
  176. package/esm2015/lib/core-ui/pipes/highlight-term.pipe.js.map +0 -1
  177. package/esm2015/lib/core-ui/pipes/lx-is-uuid.pipe.js +0 -21
  178. package/esm2015/lib/core-ui/pipes/lx-is-uuid.pipe.js.map +0 -1
  179. package/esm2015/lib/core-ui/pipes/lx-time-ago.pipe.js +0 -25
  180. package/esm2015/lib/core-ui/pipes/lx-time-ago.pipe.js.map +0 -1
  181. package/esm2015/lib/core-ui/pipes/lx-translate.pipe.js +0 -46
  182. package/esm2015/lib/core-ui/pipes/lx-translate.pipe.js.map +0 -1
  183. package/esm2015/lib/core-ui/pipes/markdown.pipe.js +0 -29
  184. package/esm2015/lib/core-ui/pipes/markdown.pipe.js.map +0 -1
  185. package/esm2015/lib/core-ui/pipes/nbsp.pipe.js +0 -14
  186. package/esm2015/lib/core-ui/pipes/nbsp.pipe.js.map +0 -1
  187. package/esm2015/lib/core-ui/pipes/sort.pipe.js +0 -52
  188. package/esm2015/lib/core-ui/pipes/sort.pipe.js.map +0 -1
  189. package/esm2015/lib/core-ui/pipes/translation-after.pipe.js +0 -28
  190. package/esm2015/lib/core-ui/pipes/translation-after.pipe.js.map +0 -1
  191. package/esm2015/lib/core-ui/pipes/translation-before.pipe.js +0 -53
  192. package/esm2015/lib/core-ui/pipes/translation-before.pipe.js.map +0 -1
  193. package/esm2015/lib/core-ui/pipes/translation-between.pipe.js +0 -67
  194. package/esm2015/lib/core-ui/pipes/translation-between.pipe.js.map +0 -1
  195. package/esm2015/lib/core-ui/pipes/unescape-curly-braces.pipe.js +0 -16
  196. package/esm2015/lib/core-ui/pipes/unescape-curly-braces.pipe.js.map +0 -1
  197. package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js +0 -74
  198. package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js.map +0 -1
  199. package/esm2015/lib/core-ui/tooltip/tooltip-position.interface.js +0 -7
  200. package/esm2015/lib/core-ui/tooltip/tooltip-position.interface.js.map +0 -1
  201. package/esm2015/lib/core-ui/tooltip/tooltip.component.js +0 -30
  202. package/esm2015/lib/core-ui/tooltip/tooltip.component.js.map +0 -1
  203. package/esm2015/lib/core-ui/tooltip/tooltip.directive.js +0 -107
  204. package/esm2015/lib/core-ui/tooltip/tooltip.directive.js.map +0 -1
  205. package/esm2015/lib/core-ui/tooltip/tooltip.module.js +0 -21
  206. package/esm2015/lib/core-ui/tooltip/tooltip.module.js.map +0 -1
  207. package/esm2015/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.js +0 -108
  208. package/esm2015/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.js.map +0 -1
  209. package/esm2015/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.js +0 -38
  210. package/esm2015/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.js.map +0 -1
  211. package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js +0 -223
  212. package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js.map +0 -1
  213. package/esm2015/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.js +0 -140
  214. package/esm2015/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.js.map +0 -1
  215. package/esm2015/lib/forms-ui/components/currency/currency-input.component.js +0 -147
  216. package/esm2015/lib/forms-ui/components/currency/currency-input.component.js.map +0 -1
  217. package/esm2015/lib/forms-ui/components/currency/currency-symbol-map.constant.js +0 -105
  218. package/esm2015/lib/forms-ui/components/currency/currency-symbol-map.constant.js.map +0 -1
  219. package/esm2015/lib/forms-ui/components/currency/currency-symbol.component.js +0 -28
  220. package/esm2015/lib/forms-ui/components/currency/currency-symbol.component.js.map +0 -1
  221. package/esm2015/lib/forms-ui/components/date-input/date-input.component.js +0 -276
  222. package/esm2015/lib/forms-ui/components/date-input/date-input.component.js.map +0 -1
  223. package/esm2015/lib/forms-ui/components/drag-and-drop-list/constants.js +0 -5
  224. package/esm2015/lib/forms-ui/components/drag-and-drop-list/constants.js.map +0 -1
  225. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.js +0 -54
  226. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.js.map +0 -1
  227. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js +0 -107
  228. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js.map +0 -1
  229. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.js +0 -25
  230. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.js.map +0 -1
  231. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.js +0 -133
  232. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.js.map +0 -1
  233. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.js +0 -37
  234. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.js.map +0 -1
  235. package/esm2015/lib/forms-ui/components/error-message/error-message.component.js +0 -29
  236. package/esm2015/lib/forms-ui/components/error-message/error-message.component.js.map +0 -1
  237. package/esm2015/lib/forms-ui/components/form-error/form-error.component.js +0 -44
  238. package/esm2015/lib/forms-ui/components/form-error/form-error.component.js.map +0 -1
  239. package/esm2015/lib/forms-ui/components/icon/icon.component.js +0 -49
  240. package/esm2015/lib/forms-ui/components/icon/icon.component.js.map +0 -1
  241. package/esm2015/lib/forms-ui/components/input/input.component.js +0 -51
  242. package/esm2015/lib/forms-ui/components/input/input.component.js.map +0 -1
  243. package/esm2015/lib/forms-ui/components/keyboard-select.directive.js +0 -117
  244. package/esm2015/lib/forms-ui/components/keyboard-select.directive.js.map +0 -1
  245. package/esm2015/lib/forms-ui/components/multi-select/multi-select.component.js +0 -257
  246. package/esm2015/lib/forms-ui/components/multi-select/multi-select.component.js.map +0 -1
  247. package/esm2015/lib/forms-ui/components/option/option.component.js +0 -85
  248. package/esm2015/lib/forms-ui/components/option/option.component.js.map +0 -1
  249. package/esm2015/lib/forms-ui/components/option-group/option-group.component.js +0 -34
  250. package/esm2015/lib/forms-ui/components/option-group/option-group.component.js.map +0 -1
  251. package/esm2015/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.js +0 -105
  252. package/esm2015/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.js.map +0 -1
  253. package/esm2015/lib/forms-ui/components/options-dropdown/options-dropdown.component.js +0 -169
  254. package/esm2015/lib/forms-ui/components/options-dropdown/options-dropdown.component.js.map +0 -1
  255. package/esm2015/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.js +0 -96
  256. package/esm2015/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.js.map +0 -1
  257. package/esm2015/lib/forms-ui/components/picker/picker-trigger.directive.js +0 -36
  258. package/esm2015/lib/forms-ui/components/picker/picker-trigger.directive.js.map +0 -1
  259. package/esm2015/lib/forms-ui/components/picker/picker.component.js +0 -210
  260. package/esm2015/lib/forms-ui/components/picker/picker.component.js.map +0 -1
  261. package/esm2015/lib/forms-ui/components/picker-option/picker-option.component.js +0 -124
  262. package/esm2015/lib/forms-ui/components/picker-option/picker-option.component.js.map +0 -1
  263. package/esm2015/lib/forms-ui/components/pill-item/pill-item.component.js +0 -37
  264. package/esm2015/lib/forms-ui/components/pill-item/pill-item.component.js.map +0 -1
  265. package/esm2015/lib/forms-ui/components/pill-list/pill-list.component.js +0 -64
  266. package/esm2015/lib/forms-ui/components/pill-list/pill-list.component.js.map +0 -1
  267. package/esm2015/lib/forms-ui/components/responsive-input/responsive-input.component.js +0 -104
  268. package/esm2015/lib/forms-ui/components/responsive-input/responsive-input.component.js.map +0 -1
  269. package/esm2015/lib/forms-ui/components/single-select/single-select.component.js +0 -279
  270. package/esm2015/lib/forms-ui/components/single-select/single-select.component.js.map +0 -1
  271. package/esm2015/lib/forms-ui/components/slider-toggle/slider-toggle.component.js +0 -47
  272. package/esm2015/lib/forms-ui/components/slider-toggle/slider-toggle.component.js.map +0 -1
  273. package/esm2015/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.js +0 -56
  274. package/esm2015/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.js.map +0 -1
  275. package/esm2015/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.js +0 -25
  276. package/esm2015/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.js.map +0 -1
  277. package/esm2015/lib/forms-ui/directives/form-error.directive.js +0 -111
  278. package/esm2015/lib/forms-ui/directives/form-error.directive.js.map +0 -1
  279. package/esm2015/lib/forms-ui/directives/form-submit.directive.js +0 -28
  280. package/esm2015/lib/forms-ui/directives/form-submit.directive.js.map +0 -1
  281. package/esm2015/lib/forms-ui/directives/keyboard-action-source.directive.js +0 -53
  282. package/esm2015/lib/forms-ui/directives/keyboard-action-source.directive.js.map +0 -1
  283. package/esm2015/lib/forms-ui/directives/mark-invalid.directive.js +0 -38
  284. package/esm2015/lib/forms-ui/directives/mark-invalid.directive.js.map +0 -1
  285. package/esm2015/lib/forms-ui/directives/select-dropdown.directive.js +0 -31
  286. package/esm2015/lib/forms-ui/directives/select-dropdown.directive.js.map +0 -1
  287. package/esm2015/lib/forms-ui/directives/selectable-item.directive.js +0 -33
  288. package/esm2015/lib/forms-ui/directives/selectable-item.directive.js.map +0 -1
  289. package/esm2015/lib/forms-ui/directives/selected-option.directive.js +0 -26
  290. package/esm2015/lib/forms-ui/directives/selected-option.directive.js.map +0 -1
  291. package/esm2015/lib/forms-ui/forms-ui.module.js +0 -236
  292. package/esm2015/lib/forms-ui/forms-ui.module.js.map +0 -1
  293. package/esm2015/lib/forms-ui/helpers/key-codes.constants.js +0 -11
  294. package/esm2015/lib/forms-ui/helpers/key-codes.constants.js.map +0 -1
  295. package/esm2015/lib/forms-ui/helpers/keyboard-navigation.helpers.js +0 -38
  296. package/esm2015/lib/forms-ui/helpers/keyboard-navigation.helpers.js.map +0 -1
  297. package/esm2015/lib/forms-ui/models/base-select.directive.js +0 -148
  298. package/esm2015/lib/forms-ui/models/base-select.directive.js.map +0 -1
  299. package/esm2015/lib/forms-ui/models/dropdown-item.interface.js +0 -2
  300. package/esm2015/lib/forms-ui/models/dropdown-item.interface.js.map +0 -1
  301. package/esm2015/lib/forms-ui/models/single-select-padding.interface.js +0 -2
  302. package/esm2015/lib/forms-ui/models/single-select-padding.interface.js.map +0 -1
  303. package/esm2015/lib/forms-ui/models/sorting.interface.js +0 -7
  304. package/esm2015/lib/forms-ui/models/sorting.interface.js.map +0 -1
  305. package/esm2015/lib/forms-ui/pipes/filter-selection.pipe.js +0 -30
  306. package/esm2015/lib/forms-ui/pipes/filter-selection.pipe.js.map +0 -1
  307. package/esm2015/lib/forms-ui/pipes/filter-term.pipe.js +0 -26
  308. package/esm2015/lib/forms-ui/pipes/filter-term.pipe.js.map +0 -1
  309. package/esm2015/lib/forms-ui/pipes/format-number.pipe.js +0 -65
  310. package/esm2015/lib/forms-ui/pipes/format-number.pipe.js.map +0 -1
  311. package/esm2015/lib/forms-ui/validators/date-in-foreseeable-future.validator.js +0 -26
  312. package/esm2015/lib/forms-ui/validators/date-in-foreseeable-future.validator.js.map +0 -1
  313. package/esm2015/lib/modal-ui/components/modal/modal.component.js +0 -214
  314. package/esm2015/lib/modal-ui/components/modal/modal.component.js.map +0 -1
  315. package/esm2015/lib/modal-ui/components/modal-footer/modal-footer.component.js +0 -15
  316. package/esm2015/lib/modal-ui/components/modal-footer/modal-footer.component.js.map +0 -1
  317. package/esm2015/lib/modal-ui/components/modal-header/modal-header.component.js +0 -27
  318. package/esm2015/lib/modal-ui/components/modal-header/modal-header.component.js.map +0 -1
  319. package/esm2015/lib/modal-ui/directives/modal-content.directive.js +0 -13
  320. package/esm2015/lib/modal-ui/directives/modal-content.directive.js.map +0 -1
  321. package/esm2015/lib/modal-ui/modal.constants.js +0 -3
  322. package/esm2015/lib/modal-ui/modal.constants.js.map +0 -1
  323. package/esm2015/lib/modal-ui/modal.module.js +0 -26
  324. package/esm2015/lib/modal-ui/modal.module.js.map +0 -1
  325. package/esm2015/lib/popover-ui/components/popover/popover.component.js +0 -203
  326. package/esm2015/lib/popover-ui/components/popover/popover.component.js.map +0 -1
  327. package/esm2015/lib/popover-ui/directives/popover-click.directive.js +0 -51
  328. package/esm2015/lib/popover-ui/directives/popover-click.directive.js.map +0 -1
  329. package/esm2015/lib/popover-ui/directives/popover-content.directive.js +0 -16
  330. package/esm2015/lib/popover-ui/directives/popover-content.directive.js.map +0 -1
  331. package/esm2015/lib/popover-ui/directives/popover-hover.directive.js +0 -87
  332. package/esm2015/lib/popover-ui/directives/popover-hover.directive.js.map +0 -1
  333. package/esm2015/lib/popover-ui/popover-ui.module.js +0 -22
  334. package/esm2015/lib/popover-ui/popover-ui.module.js.map +0 -1
  335. package/esm2015/lib/shared/date-helpers.js +0 -35
  336. package/esm2015/lib/shared/date-helpers.js.map +0 -1
  337. package/esm2015/lib/shared/misc-helpers.js +0 -34
  338. package/esm2015/lib/shared/misc-helpers.js.map +0 -1
  339. package/esm2015/lib/shared/observe.js +0 -40
  340. package/esm2015/lib/shared/observe.js.map +0 -1
  341. package/esm2015/lib/tab-ui/components/tab/tab.component.js +0 -75
  342. package/esm2015/lib/tab-ui/components/tab/tab.component.js.map +0 -1
  343. package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js +0 -78
  344. package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js.map +0 -1
  345. package/esm2015/lib/tab-ui/tab-ui.module.js +0 -22
  346. package/esm2015/lib/tab-ui/tab-ui.module.js.map +0 -1
  347. package/fesm2015/leanix-components.js.map +0 -1
@@ -0,0 +1,51 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, HostListener, Input } from '@angular/core';
3
+ import { of, Subject } from 'rxjs';
4
+ import { delay, filter, switchMap, takeUntil } from 'rxjs/operators';
5
+ import { Observe } from '../../shared/observe';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@ncstate/sat-popover";
8
+ /**
9
+ * @see PopoverComponent for usage documentation.
10
+ */
11
+ export class PopoverClickDirective {
12
+ constructor(anchor) {
13
+ this.anchor = anchor;
14
+ this.lxPopoverPinned = false;
15
+ this.onPopoverShow = new Subject();
16
+ this.onMouseLeave = new Subject();
17
+ this.destroyed$ = new Subject();
18
+ }
19
+ ngAfterViewInit() {
20
+ this.onMouseLeave
21
+ .pipe(switchMap(() => this.pinned$), filter((pinned) => !pinned), switchMap(() => of(null).pipe(delay(300), takeUntil(this.onPopoverShow))), takeUntil(this.destroyed$))
22
+ .subscribe(() => this.anchor.popover.close());
23
+ }
24
+ ngOnDestroy() {
25
+ this.destroyed$.next();
26
+ }
27
+ showPopover() {
28
+ this.onPopoverShow.next();
29
+ }
30
+ closePopover() {
31
+ this.onMouseLeave.next();
32
+ }
33
+ }
34
+ PopoverClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverClickDirective, deps: [{ token: i1.SatPopoverAnchor }], target: i0.ɵɵFactoryTarget.Directive });
35
+ PopoverClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: PopoverClickDirective, selector: "[lxPopoverClick]", inputs: { lxPopoverPinned: "lxPopoverPinned" }, host: { listeners: { "mouseleave": "closePopover()" } }, exportAs: ["clickAnchor"], ngImport: i0 });
36
+ __decorate([
37
+ Observe('lxPopoverPinned')
38
+ ], PopoverClickDirective.prototype, "pinned$", void 0);
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverClickDirective, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ exportAs: 'clickAnchor',
43
+ selector: '[lxPopoverClick]'
44
+ }]
45
+ }], ctorParameters: function () { return [{ type: i1.SatPopoverAnchor }]; }, propDecorators: { lxPopoverPinned: [{
46
+ type: Input
47
+ }], pinned$: [], closePopover: [{
48
+ type: HostListener,
49
+ args: ['mouseleave']
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jbGljay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL2RpcmVjdGl2ZXMvcG9wb3Zlci1jbGljay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRy9DOztHQUVHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQVVoQyxZQUFtQixNQUF3QjtRQUF4QixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQVRsQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUd6QixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWxDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRUksQ0FBQztJQUUvQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVk7YUFDZCxJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDN0IsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUMzQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ3pFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7a0hBbENVLHFCQUFxQjtzR0FBckIscUJBQXFCO0FBRUo7SUFBM0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDO3NEQUErQjsyRkFGL0MscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjt1R0FFVSxlQUFlO3NCQUF2QixLQUFLO2dCQUNzQixPQUFPLE1BOEJuQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYXRQb3BvdmVyQW5jaG9yIH0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcbmltcG9ydCB7IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLWhvdmVyLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQHNlZSBQb3BvdmVyQ29tcG9uZW50IGZvciB1c2FnZSBkb2N1bWVudGF0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgZXhwb3J0QXM6ICdjbGlja0FuY2hvcicsXG4gIHNlbGVjdG9yOiAnW2x4UG9wb3ZlckNsaWNrXSdcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNsaWNrRGlyZWN0aXZlIGltcGxlbWVudHMgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGx4UG9wb3ZlclBpbm5lZCA9IGZhbHNlO1xuICBAT2JzZXJ2ZSgnbHhQb3BvdmVyUGlubmVkJykgcGlubmVkJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBvblBvcG92ZXJTaG93ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIG9uTW91c2VMZWF2ZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGFuY2hvcjogU2F0UG9wb3ZlckFuY2hvcikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5vbk1vdXNlTGVhdmVcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5waW5uZWQkKSxcbiAgICAgICAgZmlsdGVyKChwaW5uZWQpID0+ICFwaW5uZWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gb2YobnVsbCkucGlwZShkZWxheSgzMDApLCB0YWtlVW50aWwodGhpcy5vblBvcG92ZXJTaG93KSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFuY2hvci5wb3BvdmVyLmNsb3NlKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIHNob3dQb3BvdmVyKCkge1xuICAgIHRoaXMub25Qb3BvdmVyU2hvdy5uZXh0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgY2xvc2VQb3BvdmVyKCkge1xuICAgIHRoaXMub25Nb3VzZUxlYXZlLm5leHQoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @see PopoverComponent for usage documentation.
5
+ */
6
+ export class PopoverContentDirective {
7
+ }
8
+ PopoverContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
9
+ PopoverContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: PopoverContentDirective, selector: "[lxPopoverContent]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverContentDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[lxPopoverContent]'
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3BvcG92ZXItdWkvZGlyZWN0aXZlcy9wb3BvdmVyLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAc2VlIFBvcG92ZXJDb21wb25lbnQgZm9yIHVzYWdlIGRvY3VtZW50YXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tseFBvcG92ZXJDb250ZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbnRlbnREaXJlY3RpdmUge31cbiJdfQ==
@@ -0,0 +1,87 @@
1
+ import { coerceNumberProperty } from '@angular/cdk/coercion';
2
+ import { Directive, HostListener, Input } from '@angular/core';
3
+ import { of, Subject } from 'rxjs';
4
+ import { delay, switchMap, takeUntil } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@ncstate/sat-popover";
7
+ /**
8
+ * @see PopoverComponent for usage documentation.
9
+ */
10
+ export class PopoverHoverDirective {
11
+ constructor(anchor) {
12
+ this.anchor = anchor;
13
+ /**
14
+ * Relevant for tooltip style.
15
+ */
16
+ this.skipCloseDelay = false;
17
+ /** Emits when the user's mouse enters the element. */
18
+ this.onMouseEnter = new Subject();
19
+ /** Emits when the user's mouse leaves the element. */
20
+ this.onMouseLeave = new Subject();
21
+ this.destroyed$ = new Subject();
22
+ }
23
+ /**
24
+ * Amount of time to delay (ms) after hovering starts before
25
+ * the popover opens.
26
+ */
27
+ get lxPopoverHover() {
28
+ return this._lxPopoverHover;
29
+ }
30
+ set lxPopoverHover(val) {
31
+ this._lxPopoverHover = coerceNumberProperty(val, 200);
32
+ }
33
+ ngAfterViewInit() {
34
+ // Whenever the user hovers this host element, delay the configured
35
+ // amount of time and open the popover. Terminate if the mouse leaves
36
+ // the host element before the delay is complete.
37
+ this.onMouseEnter
38
+ .pipe(switchMap(({ skipDelay }) => of(null).pipe(delay(skipDelay ? 0 : this._lxPopoverHover), takeUntil(this.onMouseLeave))), takeUntil(this.destroyed$))
39
+ .subscribe(() => this.anchor.popover.open());
40
+ // Whenever the user leaves this host element, delay the closing of the popover by the configured delay.
41
+ // Abort closing if during this delay another mouseEnter event occurs, for example by the popover itself.
42
+ this.onMouseLeave
43
+ .pipe(switchMap(({ skipDelay }) => of(null).pipe(delay(skipDelay ? 0 : 300), takeUntil(this.onMouseEnter))), takeUntil(this.destroyed$))
44
+ .subscribe(() => {
45
+ if (this.anchor.popover.isOpen()) {
46
+ // This is the default case: the popover was shown, now we want to close it.
47
+ this.anchor.popover.close();
48
+ }
49
+ else {
50
+ // This can happen if we have delayed the opening of the popover, but the mouse left the anchor before
51
+ // the popover was shown. In this case, this.anchor.popover.close() would not generate a closed event,
52
+ // which is why we generate it manually here. This behavior supports cases where a "dummy" anchor is
53
+ // dynamically created, like the Fact Sheet detail popover in Reporting or the relations diagram.
54
+ this.anchor.popover.closed.emit();
55
+ }
56
+ });
57
+ }
58
+ ngOnDestroy() {
59
+ this.destroyed$.next();
60
+ }
61
+ showPopover(skipDelay = false) {
62
+ this.onMouseEnter.next({ skipDelay });
63
+ }
64
+ closePopover(skipDelay = this.skipCloseDelay) {
65
+ this.onMouseLeave.next({ skipDelay });
66
+ }
67
+ }
68
+ PopoverHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverHoverDirective, deps: [{ token: i1.SatPopoverAnchor }], target: i0.ɵɵFactoryTarget.Directive });
69
+ PopoverHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: PopoverHoverDirective, selector: "[lxPopoverHover]", inputs: { lxPopoverHover: "lxPopoverHover", skipCloseDelay: "skipCloseDelay" }, host: { listeners: { "mouseenter": "showPopover()", "mouseleave": "closePopover()" } }, exportAs: ["hoverAnchor"], ngImport: i0 });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverHoverDirective, decorators: [{
71
+ type: Directive,
72
+ args: [{
73
+ exportAs: 'hoverAnchor',
74
+ selector: '[lxPopoverHover]'
75
+ }]
76
+ }], ctorParameters: function () { return [{ type: i1.SatPopoverAnchor }]; }, propDecorators: { lxPopoverHover: [{
77
+ type: Input
78
+ }], skipCloseDelay: [{
79
+ type: Input
80
+ }], showPopover: [{
81
+ type: HostListener,
82
+ args: ['mouseenter']
83
+ }], closePopover: [{
84
+ type: HostListener,
85
+ args: ['mouseleave']
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1ob3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL2RpcmVjdGl2ZXMvcG9wb3Zlci1ob3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV6RixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBUTdEOztHQUVHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQTRCaEMsWUFBbUIsTUFBd0I7UUFBeEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFkM0M7O1dBRUc7UUFFSCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixzREFBc0Q7UUFDOUMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBMEIsQ0FBQztRQUU3RCxzREFBc0Q7UUFDOUMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBMEIsQ0FBQztRQUVwRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVJLENBQUM7SUEzQi9DOzs7T0FHRztJQUNILElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEdBQVc7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQW1CRCxlQUFlO1FBQ2IsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLFlBQVk7YUFDZCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDdEgsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUvQyx3R0FBd0c7UUFDeEcseUdBQXlHO1FBQ3pHLElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDckcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDaEMsNEVBQTRFO2dCQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxzR0FBc0c7Z0JBQ3RHLHNHQUFzRztnQkFDdEcsb0dBQW9HO2dCQUNwRyxpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFHRCxXQUFXLENBQUMsU0FBUyxHQUFHLEtBQUs7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFHRCxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDOztrSEExRVUscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7dUdBT0ssY0FBYztzQkFEakIsS0FBSztnQkFhTixjQUFjO3NCQURiLEtBQUs7Z0JBa0ROLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxZQUFZO2dCQU0xQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYXRQb3BvdmVyQW5jaG9yIH0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB7XG4gIGFuY2hvcjogU2F0UG9wb3ZlckFuY2hvcjtcbiAgc2hvd1BvcG92ZXIoc2tpcERlbGF5PzogYm9vbGVhbik6IHZvaWQ7XG4gIGNsb3NlUG9wb3Zlcihza2lwRGVsYXk/OiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBAc2VlIFBvcG92ZXJDb21wb25lbnQgZm9yIHVzYWdlIGRvY3VtZW50YXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBleHBvcnRBczogJ2hvdmVyQW5jaG9yJyxcbiAgc2VsZWN0b3I6ICdbbHhQb3BvdmVySG92ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBQb3BvdmVySG92ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQW1vdW50IG9mIHRpbWUgdG8gZGVsYXkgKG1zKSBhZnRlciBob3ZlcmluZyBzdGFydHMgYmVmb3JlXG4gICAqIHRoZSBwb3BvdmVyIG9wZW5zLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGx4UG9wb3ZlckhvdmVyKCkge1xuICAgIHJldHVybiB0aGlzLl9seFBvcG92ZXJIb3ZlcjtcbiAgfVxuICBzZXQgbHhQb3BvdmVySG92ZXIodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLl9seFBvcG92ZXJIb3ZlciA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbCwgMjAwKTtcbiAgfVxuICBwcml2YXRlIF9seFBvcG92ZXJIb3ZlciE6IG51bWJlcjtcblxuICAvKipcbiAgICogUmVsZXZhbnQgZm9yIHRvb2x0aXAgc3R5bGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBza2lwQ2xvc2VEZWxheSA9IGZhbHNlO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSB1c2VyJ3MgbW91c2UgZW50ZXJzIHRoZSBlbGVtZW50LiAqL1xuICBwcml2YXRlIG9uTW91c2VFbnRlciA9IG5ldyBTdWJqZWN0PHsgc2tpcERlbGF5OiBib29sZWFuIH0+KCk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIHVzZXIncyBtb3VzZSBsZWF2ZXMgdGhlIGVsZW1lbnQuICovXG4gIHByaXZhdGUgb25Nb3VzZUxlYXZlID0gbmV3IFN1YmplY3Q8eyBza2lwRGVsYXk6IGJvb2xlYW4gfT4oKTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYW5jaG9yOiBTYXRQb3BvdmVyQW5jaG9yKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBXaGVuZXZlciB0aGUgdXNlciBob3ZlcnMgdGhpcyBob3N0IGVsZW1lbnQsIGRlbGF5IHRoZSBjb25maWd1cmVkXG4gICAgLy8gYW1vdW50IG9mIHRpbWUgYW5kIG9wZW4gdGhlIHBvcG92ZXIuIFRlcm1pbmF0ZSBpZiB0aGUgbW91c2UgbGVhdmVzXG4gICAgLy8gdGhlIGhvc3QgZWxlbWVudCBiZWZvcmUgdGhlIGRlbGF5IGlzIGNvbXBsZXRlLlxuICAgIHRoaXMub25Nb3VzZUVudGVyXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh7IHNraXBEZWxheSB9KSA9PiBvZihudWxsKS5waXBlKGRlbGF5KHNraXBEZWxheSA/IDAgOiB0aGlzLl9seFBvcG92ZXJIb3ZlciksIHRha2VVbnRpbCh0aGlzLm9uTW91c2VMZWF2ZSkpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5hbmNob3IucG9wb3Zlci5vcGVuKCkpO1xuXG4gICAgLy8gV2hlbmV2ZXIgdGhlIHVzZXIgbGVhdmVzIHRoaXMgaG9zdCBlbGVtZW50LCBkZWxheSB0aGUgY2xvc2luZyBvZiB0aGUgcG9wb3ZlciBieSB0aGUgY29uZmlndXJlZCBkZWxheS5cbiAgICAvLyBBYm9ydCBjbG9zaW5nIGlmIGR1cmluZyB0aGlzIGRlbGF5IGFub3RoZXIgbW91c2VFbnRlciBldmVudCBvY2N1cnMsIGZvciBleGFtcGxlIGJ5IHRoZSBwb3BvdmVyIGl0c2VsZi5cbiAgICB0aGlzLm9uTW91c2VMZWF2ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoeyBza2lwRGVsYXkgfSkgPT4gb2YobnVsbCkucGlwZShkZWxheShza2lwRGVsYXkgPyAwIDogMzAwKSwgdGFrZVVudGlsKHRoaXMub25Nb3VzZUVudGVyKSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmFuY2hvci5wb3BvdmVyLmlzT3BlbigpKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBjYXNlOiB0aGUgcG9wb3ZlciB3YXMgc2hvd24sIG5vdyB3ZSB3YW50IHRvIGNsb3NlIGl0LlxuICAgICAgICAgIHRoaXMuYW5jaG9yLnBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgd2UgaGF2ZSBkZWxheWVkIHRoZSBvcGVuaW5nIG9mIHRoZSBwb3BvdmVyLCBidXQgdGhlIG1vdXNlIGxlZnQgdGhlIGFuY2hvciBiZWZvcmVcbiAgICAgICAgICAvLyB0aGUgcG9wb3ZlciB3YXMgc2hvd24uIEluIHRoaXMgY2FzZSwgdGhpcy5hbmNob3IucG9wb3Zlci5jbG9zZSgpIHdvdWxkIG5vdCBnZW5lcmF0ZSBhIGNsb3NlZCBldmVudCxcbiAgICAgICAgICAvLyB3aGljaCBpcyB3aHkgd2UgZ2VuZXJhdGUgaXQgbWFudWFsbHkgaGVyZS4gVGhpcyBiZWhhdmlvciBzdXBwb3J0cyBjYXNlcyB3aGVyZSBhIFwiZHVtbXlcIiBhbmNob3IgaXNcbiAgICAgICAgICAvLyBkeW5hbWljYWxseSBjcmVhdGVkLCBsaWtlIHRoZSBGYWN0IFNoZWV0IGRldGFpbCBwb3BvdmVyIGluIFJlcG9ydGluZyBvciB0aGUgcmVsYXRpb25zIGRpYWdyYW0uXG4gICAgICAgICAgdGhpcy5hbmNob3IucG9wb3Zlci5jbG9zZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgc2hvd1BvcG92ZXIoc2tpcERlbGF5ID0gZmFsc2UpIHtcbiAgICB0aGlzLm9uTW91c2VFbnRlci5uZXh0KHsgc2tpcERlbGF5IH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIGNsb3NlUG9wb3Zlcihza2lwRGVsYXkgPSB0aGlzLnNraXBDbG9zZURlbGF5KSB7XG4gICAgdGhpcy5vbk1vdXNlTGVhdmUubmV4dCh7IHNraXBEZWxheSB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,22 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { SatPopoverModule } from '@ncstate/sat-popover';
4
+ import { PopoverComponent } from './components/popover/popover.component';
5
+ import { PopoverClickDirective } from './directives/popover-click.directive';
6
+ import { PopoverContentDirective } from './directives/popover-content.directive';
7
+ import { PopoverHoverDirective } from './directives/popover-hover.directive';
8
+ import * as i0 from "@angular/core";
9
+ export class LxPopoverUiModule {
10
+ }
11
+ LxPopoverUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxPopoverUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ LxPopoverUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxPopoverUiModule, declarations: [PopoverHoverDirective, PopoverClickDirective, PopoverComponent, PopoverContentDirective], imports: [CommonModule, SatPopoverModule], exports: [SatPopoverModule, PopoverClickDirective, PopoverHoverDirective, PopoverComponent, PopoverContentDirective] });
13
+ LxPopoverUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxPopoverUiModule, imports: [[CommonModule, SatPopoverModule], SatPopoverModule] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxPopoverUiModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [PopoverHoverDirective, PopoverClickDirective, PopoverComponent, PopoverContentDirective],
18
+ imports: [CommonModule, SatPopoverModule],
19
+ exports: [SatPopoverModule, PopoverClickDirective, PopoverHoverDirective, PopoverComponent, PopoverContentDirective]
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL3BvcG92ZXItdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQU83RSxNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBSmIscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLGFBQzVGLFlBQVksRUFBRSxnQkFBZ0IsYUFDOUIsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCOytHQUV4RyxpQkFBaUIsWUFIbkIsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsRUFDL0IsZ0JBQWdCOzJGQUVmLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQztvQkFDdkcsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQztpQkFDckgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhdFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAbmNzdGF0ZS9zYXQtcG9wb3Zlcic7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9wb3ZlckNsaWNrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvcG92ZXItY2xpY2suZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvcG92ZXItY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9wb3ZlckhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvcG92ZXItaG92ZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUG9wb3ZlckhvdmVyRGlyZWN0aXZlLCBQb3BvdmVyQ2xpY2tEaXJlY3RpdmUsIFBvcG92ZXJDb21wb25lbnQsIFBvcG92ZXJDb250ZW50RGlyZWN0aXZlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2F0UG9wb3Zlck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTYXRQb3BvdmVyTW9kdWxlLCBQb3BvdmVyQ2xpY2tEaXJlY3RpdmUsIFBvcG92ZXJIb3ZlckRpcmVjdGl2ZSwgUG9wb3ZlckNvbXBvbmVudCwgUG9wb3ZlckNvbnRlbnREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIEx4UG9wb3ZlclVpTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { isNaN as _isNaN, toString as _toString, padCharsStart, toNumber } from 'lodash/fp';
2
+ /**
3
+ * Converts a date into a string with format YYYY-MM-dd for the
4
+ * users current timezone.
5
+ */
6
+ export function convertDateToLocaleDateString(date, separator = '-') {
7
+ const day = pad(date.getDate());
8
+ const currentMonth = date.getMonth() + 1;
9
+ const month = pad(currentMonth);
10
+ return `${date.getFullYear()}${separator}${month}${separator}${day}`;
11
+ }
12
+ // Pad to 2 digits
13
+ function pad(num) {
14
+ return padCharsStart('0', 2, _toString(num));
15
+ }
16
+ /**
17
+ * Use this whenever you want to create a Date instance from a dateString like "2017-12-06".
18
+ * Reason: When you call the Date Constructor like this `new Date("2017-12-06")`
19
+ * the date instance will be in the users current timezone (eg in EST GMT-0500 it will become "2017-12-05 19:00:00"),
20
+ * but at some places we handle the date only as date without time (e.g. date.getDate()) and there
21
+ * we would then get timezone issues, because `date.getDate()` returns day 5 instead of 6!
22
+ *
23
+ * So instead of doing `new Date("2017-12-06")` you should use this function instead!
24
+ */
25
+ export function createDateFromDateString(dateString) {
26
+ if (!dateString || !isValidDateString(dateString)) {
27
+ return null;
28
+ }
29
+ const parts = dateString.split('-').map(toNumber);
30
+ return new Date(parts[0], parts[1] - 1, parts[2]);
31
+ }
32
+ export function isValidDateString(dateString) {
33
+ return dateString !== null && /^\d\d\d\d-\d\d-\d\d$/.test(dateString) && !_isNaN(Date.parse(dateString));
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2RhdGUtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFNUY7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QixDQUFDLElBQVUsRUFBRSxZQUFvQixHQUFHO0lBQy9FLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVoQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxrQkFBa0I7QUFDbEIsU0FBUyxHQUFHLENBQUMsR0FBVztJQUN0QixPQUFPLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxVQUF5QjtJQUNoRSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDakQsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxVQUF5QjtJQUN6RCxPQUFPLFVBQVUsS0FBSyxJQUFJLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUMzRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOYU4gYXMgX2lzTmFOLCB0b1N0cmluZyBhcyBfdG9TdHJpbmcsIHBhZENoYXJzU3RhcnQsIHRvTnVtYmVyIH0gZnJvbSAnbG9kYXNoL2ZwJztcblxuLyoqXG4gKiBDb252ZXJ0cyBhIGRhdGUgaW50byBhIHN0cmluZyB3aXRoIGZvcm1hdCBZWVlZLU1NLWRkIGZvciB0aGVcbiAqIHVzZXJzIGN1cnJlbnQgdGltZXpvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyhkYXRlOiBEYXRlLCBzZXBhcmF0b3I6IHN0cmluZyA9ICctJyk6IHN0cmluZyB7XG4gIGNvbnN0IGRheSA9IHBhZChkYXRlLmdldERhdGUoKSk7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gIGNvbnN0IG1vbnRoID0gcGFkKGN1cnJlbnRNb250aCk7XG5cbiAgcmV0dXJuIGAke2RhdGUuZ2V0RnVsbFllYXIoKX0ke3NlcGFyYXRvcn0ke21vbnRofSR7c2VwYXJhdG9yfSR7ZGF5fWA7XG59XG5cbi8vIFBhZCB0byAyIGRpZ2l0c1xuZnVuY3Rpb24gcGFkKG51bTogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhZENoYXJzU3RhcnQoJzAnLCAyLCBfdG9TdHJpbmcobnVtKSk7XG59XG5cbi8qKlxuICogVXNlIHRoaXMgd2hlbmV2ZXIgeW91IHdhbnQgdG8gY3JlYXRlIGEgRGF0ZSBpbnN0YW5jZSBmcm9tIGEgZGF0ZVN0cmluZyBsaWtlIFwiMjAxNy0xMi0wNlwiLlxuICogUmVhc29uOiBXaGVuIHlvdSBjYWxsIHRoZSBEYXRlIENvbnN0cnVjdG9yIGxpa2UgdGhpcyBgbmV3IERhdGUoXCIyMDE3LTEyLTA2XCIpYFxuICogdGhlIGRhdGUgaW5zdGFuY2Ugd2lsbCBiZSBpbiB0aGUgdXNlcnMgY3VycmVudCB0aW1lem9uZSAoZWcgaW4gRVNUIEdNVC0wNTAwIGl0IHdpbGwgYmVjb21lIFwiMjAxNy0xMi0wNSAxOTowMDowMFwiKSxcbiAqIGJ1dCBhdCBzb21lIHBsYWNlcyB3ZSBoYW5kbGUgdGhlIGRhdGUgb25seSBhcyBkYXRlIHdpdGhvdXQgdGltZSAoZS5nLiBkYXRlLmdldERhdGUoKSkgYW5kIHRoZXJlXG4gKiB3ZSB3b3VsZCB0aGVuIGdldCB0aW1lem9uZSBpc3N1ZXMsIGJlY2F1c2UgYGRhdGUuZ2V0RGF0ZSgpYCByZXR1cm5zIGRheSA1IGluc3RlYWQgb2YgNiFcbiAqXG4gKiBTbyBpbnN0ZWFkIG9mIGRvaW5nIGBuZXcgRGF0ZShcIjIwMTctMTItMDZcIilgIHlvdSBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGVGcm9tRGF0ZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcgfCBudWxsKTogRGF0ZSB8IG51bGwge1xuICBpZiAoIWRhdGVTdHJpbmcgfHwgIWlzVmFsaWREYXRlU3RyaW5nKGRhdGVTdHJpbmcpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgcGFydHMgPSBkYXRlU3RyaW5nLnNwbGl0KCctJykubWFwKHRvTnVtYmVyKTtcbiAgcmV0dXJuIG5ldyBEYXRlKHBhcnRzWzBdISwgcGFydHNbMV0hIC0gMSwgcGFydHNbMl0hKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWREYXRlU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRhdGVTdHJpbmcgIT09IG51bGwgJiYgL15cXGRcXGRcXGRcXGQtXFxkXFxkLVxcZFxcZCQvLnRlc3QoZGF0ZVN0cmluZykgJiYgIV9pc05hTihEYXRlLnBhcnNlKGRhdGVTdHJpbmcpKTtcbn1cbiJdfQ==
@@ -0,0 +1,34 @@
1
+ import { first } from 'rxjs/operators';
2
+ /**
3
+ * Schedule and wait for another ZoneJS microTask.
4
+ * This should be preferred over setTimeout(), which
5
+ * schedules a macroTask & thus triggers full tree change detection.
6
+ */
7
+ export function executeOnNextTick(fn) {
8
+ Promise.resolve(null).then(() => fn());
9
+ }
10
+ /**
11
+ *
12
+ * Returns the first value emitted by an observable. Can be removed when we are able to use RxJS7.
13
+ * https://github.com/leanix/leanix-pathfinder-web/pull/5988/#discussion_r633645224
14
+ *
15
+ */
16
+ export function firstValueFrom(observable) {
17
+ return observable.pipe(first()).toPromise();
18
+ }
19
+ export function getCssVariable(cssVariableName) {
20
+ return getComputedStyle(document.documentElement).getPropertyValue(cssVariableName);
21
+ }
22
+ export function scrollTop(container, item) {
23
+ if (container && item) {
24
+ const scrollDownNeeded = item.offsetTop + item.clientHeight > container.clientHeight;
25
+ const scrollTopNeeded = item.offsetTop - item.clientHeight < container.scrollTop;
26
+ if (scrollDownNeeded || scrollTopNeeded) {
27
+ container.scrollTop = item.offsetTop - container.offsetTop;
28
+ }
29
+ }
30
+ else {
31
+ console.warn("Item or Container undefined, scrolling wasn't done.");
32
+ }
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL21pc2MtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxFQUFZO0lBQzVDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBSSxVQUF5QjtJQUN6RCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxlQUF1QjtJQUNwRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFzQixFQUFFLElBQWlCO0lBQ2pFLElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtRQUNyQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3JGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ2pGLElBQUksZ0JBQWdCLElBQUksZUFBZSxFQUFFO1lBQ3ZDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1NBQzVEO0tBQ0Y7U0FBTTtRQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQztLQUNyRTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBTY2hlZHVsZSBhbmQgd2FpdCBmb3IgYW5vdGhlciBab25lSlMgbWljcm9UYXNrLlxuICogVGhpcyBzaG91bGQgYmUgcHJlZmVycmVkIG92ZXIgc2V0VGltZW91dCgpLCB3aGljaFxuICogc2NoZWR1bGVzIGEgbWFjcm9UYXNrICYgdGh1cyB0cmlnZ2VycyBmdWxsIHRyZWUgY2hhbmdlIGRldGVjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVPbk5leHRUaWNrKGZuOiBGdW5jdGlvbikge1xuICBQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKSA9PiBmbigpKTtcbn1cblxuLyoqXG4gKlxuICogUmV0dXJucyB0aGUgZmlyc3QgdmFsdWUgZW1pdHRlZCBieSBhbiBvYnNlcnZhYmxlLiBDYW4gYmUgcmVtb3ZlZCB3aGVuIHdlIGFyZSBhYmxlIHRvIHVzZSBSeEpTNy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9sZWFuaXgvbGVhbml4LXBhdGhmaW5kZXItd2ViL3B1bGwvNTk4OC8jZGlzY3Vzc2lvbl9yNjMzNjQ1MjI0XG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlyc3RWYWx1ZUZyb208VD4ob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPik6IFByb21pc2U8VD4ge1xuICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKGZpcnN0KCkpLnRvUHJvbWlzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3NzVmFyaWFibGUoY3NzVmFyaWFibGVOYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKGNzc1ZhcmlhYmxlTmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY3JvbGxUb3AoY29udGFpbmVyOiBIVE1MRWxlbWVudCwgaXRlbTogSFRNTEVsZW1lbnQpIHtcbiAgaWYgKGNvbnRhaW5lciAmJiBpdGVtKSB7XG4gICAgY29uc3Qgc2Nyb2xsRG93bk5lZWRlZCA9IGl0ZW0ub2Zmc2V0VG9wICsgaXRlbS5jbGllbnRIZWlnaHQgPiBjb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IHNjcm9sbFRvcE5lZWRlZCA9IGl0ZW0ub2Zmc2V0VG9wIC0gaXRlbS5jbGllbnRIZWlnaHQgPCBjb250YWluZXIuc2Nyb2xsVG9wO1xuICAgIGlmIChzY3JvbGxEb3duTmVlZGVkIHx8IHNjcm9sbFRvcE5lZWRlZCkge1xuICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGl0ZW0ub2Zmc2V0VG9wIC0gY29udGFpbmVyLm9mZnNldFRvcDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS53YXJuKFwiSXRlbSBvciBDb250YWluZXIgdW5kZWZpbmVkLCBzY3JvbGxpbmcgd2Fzbid0IGRvbmUuXCIpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { map, skipWhile } from 'rxjs/operators';
3
+ /**
4
+ * Observe creates an Observable stream and notifies the changes from an observed property.
5
+ *
6
+ * @example
7
+ * Input() foo: string;
8
+ * @Observe('foo') foo$: Observable<string>;
9
+ */
10
+ export function Observe(observedKey) {
11
+ // eslint-disable-next-line @typescript-eslint/ban-types
12
+ return (target, key) => {
13
+ const subjects = new WeakMap();
14
+ const getSubject = (instance) => {
15
+ if (!subjects.has(instance)) {
16
+ subjects.set(instance, new BehaviorSubject(undefined));
17
+ }
18
+ return subjects.get(instance) || new BehaviorSubject(undefined);
19
+ };
20
+ Object.defineProperty(target, key, {
21
+ get() {
22
+ return getSubject(this).pipe(
23
+ // An initial `undefined` value is triggered above when initializing the subject for a given instance.
24
+ // This skips the initial `undefined` values, until a defined value is provided. Then, no values
25
+ // are removed from the stream.
26
+ skipWhile((value) => value === undefined), map((value) => value) // required for TS null check
27
+ );
28
+ }
29
+ });
30
+ Object.defineProperty(target, observedKey, {
31
+ get() {
32
+ return getSubject(this).getValue();
33
+ },
34
+ set(instanceNewValue) {
35
+ getSubject(this).next(instanceNewValue);
36
+ }
37
+ });
38
+ };
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9vYnNlcnZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFJLFdBQW1CO0lBQzVDLHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsTUFBYyxFQUFFLEdBQW9CLEVBQVEsRUFBRTtRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBMkQsQ0FBQztRQUV4RixNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDdkU7WUFDRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNqQyxHQUFHO2dCQUNELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7Z0JBQzFCLHNHQUFzRztnQkFDdEcsZ0dBQWdHO2dCQUNoRywrQkFBK0I7Z0JBQy9CLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxFQUN6QyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQVUsQ0FBQyxDQUFDLDZCQUE2QjtpQkFDekQsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7WUFDekMsR0FBRztnQkFDRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsR0FBRyxDQUFDLGdCQUFtQjtnQkFDckIsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzFDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBPYnNlcnZlIGNyZWF0ZXMgYW4gT2JzZXJ2YWJsZSBzdHJlYW0gYW5kIG5vdGlmaWVzIHRoZSBjaGFuZ2VzIGZyb20gYW4gb2JzZXJ2ZWQgcHJvcGVydHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIElucHV0KCkgZm9vOiBzdHJpbmc7XG4gKiBAT2JzZXJ2ZSgnZm9vJykgZm9vJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICovXG5leHBvcnQgZnVuY3Rpb24gT2JzZXJ2ZTxUPihvYnNlcnZlZEtleTogc3RyaW5nKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICByZXR1cm4gKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHN1YmplY3RzID0gbmV3IFdlYWtNYXA8UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPj4oKTtcblxuICAgIGNvbnN0IGdldFN1YmplY3QgPSAoaW5zdGFuY2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBpZiAoIXN1YmplY3RzLmhhcyhpbnN0YW5jZSkpIHtcbiAgICAgICAgc3ViamVjdHMuc2V0KGluc3RhbmNlLCBuZXcgQmVoYXZpb3JTdWJqZWN0PFQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1YmplY3RzLmdldChpbnN0YW5jZSkgfHwgbmV3IEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIH07XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgIGdldCgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIGdldFN1YmplY3QodGhpcykucGlwZShcbiAgICAgICAgICAvLyBBbiBpbml0aWFsIGB1bmRlZmluZWRgIHZhbHVlIGlzIHRyaWdnZXJlZCBhYm92ZSB3aGVuIGluaXRpYWxpemluZyB0aGUgc3ViamVjdCBmb3IgYSBnaXZlbiBpbnN0YW5jZS5cbiAgICAgICAgICAvLyBUaGlzIHNraXBzIHRoZSBpbml0aWFsIGB1bmRlZmluZWRgIHZhbHVlcywgdW50aWwgYSBkZWZpbmVkIHZhbHVlIGlzIHByb3ZpZGVkLiBUaGVuLCBubyB2YWx1ZXNcbiAgICAgICAgICAvLyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBzdHJlYW0uXG4gICAgICAgICAgc2tpcFdoaWxlKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHVuZGVmaW5lZCksXG4gICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUgYXMgVCkgLy8gcmVxdWlyZWQgZm9yIFRTIG51bGwgY2hlY2tcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG9ic2VydmVkS2V5LCB7XG4gICAgICBnZXQoKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBnZXRTdWJqZWN0KHRoaXMpLmdldFZhbHVlKCk7XG4gICAgICB9LFxuICAgICAgc2V0KGluc3RhbmNlTmV3VmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgZ2V0U3ViamVjdCh0aGlzKS5uZXh0KGluc3RhbmNlTmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xufVxuIl19
@@ -0,0 +1,70 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { RouterLinkActive } from '@angular/router';
3
+ import { uniqueId } from 'lodash/fp';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../core-ui/components/badge/badge.component";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/router";
8
+ import * as i4 from "@angular/cdk/portal";
9
+ export class TabComponent {
10
+ constructor(cd) {
11
+ this.cd = cd;
12
+ this.label = '';
13
+ this.routerLinkActiveOptions = { exact: true };
14
+ this.counterBadgeSize = 'default';
15
+ this.noMargin = false;
16
+ this.noLeftMarginForFirstTab = false;
17
+ this.background = 'white';
18
+ this.disabled = false;
19
+ this.switch = new EventEmitter();
20
+ this._isActive = false;
21
+ this.tabPanelId = uniqueId('panelId');
22
+ }
23
+ set isActive(value) {
24
+ this._isActive = value;
25
+ this.cd.markForCheck();
26
+ }
27
+ get isActive() {
28
+ if (this.routerLinkActive) {
29
+ return this.routerLinkActive.isActive;
30
+ }
31
+ return this._isActive;
32
+ }
33
+ }
34
+ TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TabComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
35
+ TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: TabComponent, selector: "lx-tab", inputs: { icon: "icon", label: "label", title: "title", tabLink: "tabLink", counter: "counter", routerLinkActiveOptions: "routerLinkActiveOptions", counterBadgeSize: "counterBadgeSize", noMargin: "noMargin", noLeftMarginForFirstTab: "noLeftMarginForFirstTab", background: "background", disabled: "disabled" }, outputs: { switch: "switch" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true }], ngImport: i0, template: "<li\n class=\"tab\"\n [attr.tabindex]=\"isActive || disabled || tabLink ? '-1' : '0'\"\n [attr.aria-selected]=\"isActive\"\n [attr.aria-controls]=\"tabPanelId\"\n [class.active]=\"isActive\"\n [class.withIcon]=\"icon\"\n [class.noMargin]=\"noMargin\"\n [class.noLeftMarginForFirstTab]=\"noLeftMarginForFirstTab\"\n [class.backgroundGray]=\"background === 'gray'\"\n [class.disabled]=\"disabled\"\n [class.portalTab]=\"!tabLink\"\n [class.routerLinkTab]=\"tabLink\"\n [attr.title]=\"title\"\n role=\"tab\"\n (keyup.enter)=\"switch.emit()\"\n (click)=\"switch.emit()\"\n>\n <a *ngIf=\"tabLink; else portalTab\" [routerLink]=\"tabLink\" routerLinkActive [routerLinkActiveOptions]=\"routerLinkActiveOptions\">\n <ng-container *ngTemplateOutlet=\"portalTab\"></ng-container>\n </a>\n\n <ng-template #portalTab>\n <i *ngIf=\"icon\" class=\"icon {{ icon }}\"></i>\n <span *ngIf=\"label\" class=\"tabLabel\">{{ label }}</span>\n <lx-badge\n *ngIf=\"counter\"\n [size]=\"counterBadgeSize\"\n class=\"lx-margin-left\"\n [content]=\"counter\"\n [color]=\"isActive ? 'darkgray' : 'gray'\"\n ></lx-badge>\n </ng-template>\n\n <ng-template cdkPortal #contentTemplate=\"cdkPortal\">\n <div *ngIf=\"!tabLink\" class=\"content\" role=\"tabpanel\" [attr.id]=\"tabPanelId\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</li>\n", styles: [":host{display:inline-block}.tab{display:inline-block;margin:0 8px;text-align:center;border-bottom:solid 2px transparent;transition:border-bottom .5s;cursor:pointer}.tab:hover,.tab.active{border-bottom:solid 2px #2a303d;transition:border-bottom .1s;outline:0}.tab.active{cursor:default}.tab.disabled{opacity:.3;cursor:default}.tab:hover .tabLabel,.tab.active .tabLabel{color:#2a303d;transition:color .1s}.portalTab,.routerLinkTab a{display:inline-block;padding:8px 8px 12px;line-height:20px}.portalTab.withIcon,.routerLinkTab a.withIcon{padding:10px 14px;line-height:16px}.routerLinkTab.active a,.routerLinkTab.disabled a{cursor:default}.icon{font-size:16px;opacity:.6}.noMargin{margin:0}.noLeftMarginForFirstTab{margin-left:0}.backgroundGray{background-color:#c2c9d6}.backgroundGray:not(.active):not(.disabled){background-color:#cfd5df}.tabLabel{color:#677a9a;display:inline-block;font-size:13px;text-decoration:none}.content{height:100%}\n"], components: [{ type: i1.BadgeComponent, selector: "lx-badge", inputs: ["content", "size", "color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TabComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'lx-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<li\n class=\"tab\"\n [attr.tabindex]=\"isActive || disabled || tabLink ? '-1' : '0'\"\n [attr.aria-selected]=\"isActive\"\n [attr.aria-controls]=\"tabPanelId\"\n [class.active]=\"isActive\"\n [class.withIcon]=\"icon\"\n [class.noMargin]=\"noMargin\"\n [class.noLeftMarginForFirstTab]=\"noLeftMarginForFirstTab\"\n [class.backgroundGray]=\"background === 'gray'\"\n [class.disabled]=\"disabled\"\n [class.portalTab]=\"!tabLink\"\n [class.routerLinkTab]=\"tabLink\"\n [attr.title]=\"title\"\n role=\"tab\"\n (keyup.enter)=\"switch.emit()\"\n (click)=\"switch.emit()\"\n>\n <a *ngIf=\"tabLink; else portalTab\" [routerLink]=\"tabLink\" routerLinkActive [routerLinkActiveOptions]=\"routerLinkActiveOptions\">\n <ng-container *ngTemplateOutlet=\"portalTab\"></ng-container>\n </a>\n\n <ng-template #portalTab>\n <i *ngIf=\"icon\" class=\"icon {{ icon }}\"></i>\n <span *ngIf=\"label\" class=\"tabLabel\">{{ label }}</span>\n <lx-badge\n *ngIf=\"counter\"\n [size]=\"counterBadgeSize\"\n class=\"lx-margin-left\"\n [content]=\"counter\"\n [color]=\"isActive ? 'darkgray' : 'gray'\"\n ></lx-badge>\n </ng-template>\n\n <ng-template cdkPortal #contentTemplate=\"cdkPortal\">\n <div *ngIf=\"!tabLink\" class=\"content\" role=\"tabpanel\" [attr.id]=\"tabPanelId\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</li>\n", styles: [":host{display:inline-block}.tab{display:inline-block;margin:0 8px;text-align:center;border-bottom:solid 2px transparent;transition:border-bottom .5s;cursor:pointer}.tab:hover,.tab.active{border-bottom:solid 2px #2a303d;transition:border-bottom .1s;outline:0}.tab.active{cursor:default}.tab.disabled{opacity:.3;cursor:default}.tab:hover .tabLabel,.tab.active .tabLabel{color:#2a303d;transition:color .1s}.portalTab,.routerLinkTab a{display:inline-block;padding:8px 8px 12px;line-height:20px}.portalTab.withIcon,.routerLinkTab a.withIcon{padding:10px 14px;line-height:16px}.routerLinkTab.active a,.routerLinkTab.disabled a{cursor:default}.icon{font-size:16px;opacity:.6}.noMargin{margin:0}.noLeftMarginForFirstTab{margin-left:0}.backgroundGray{background-color:#c2c9d6}.backgroundGray:not(.active):not(.disabled){background-color:#cfd5df}.tabLabel{color:#677a9a;display:inline-block;font-size:13px;text-decoration:none}.content{height:100%}\n"] }]
39
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { icon: [{
40
+ type: Input
41
+ }], label: [{
42
+ type: Input
43
+ }], title: [{
44
+ type: Input
45
+ }], tabLink: [{
46
+ type: Input
47
+ }], counter: [{
48
+ type: Input
49
+ }], routerLinkActiveOptions: [{
50
+ type: Input
51
+ }], counterBadgeSize: [{
52
+ type: Input
53
+ }], noMargin: [{
54
+ type: Input
55
+ }], noLeftMarginForFirstTab: [{
56
+ type: Input
57
+ }], background: [{
58
+ type: Input
59
+ }], disabled: [{
60
+ type: Input
61
+ }], switch: [{
62
+ type: Output
63
+ }], content: [{
64
+ type: ViewChild,
65
+ args: ['contentTemplate', { static: true }]
66
+ }], routerLinkActive: [{
67
+ type: ViewChild,
68
+ args: [RouterLinkActive]
69
+ }] } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi90YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBUXJDLE1BQU0sT0FBTyxZQUFZO0lBc0N2QixZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWhDaEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUluQiw0QkFBdUIsR0FBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDOUQscUJBQWdCLEdBQXdCLFNBQVMsQ0FBQztRQUNsRCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLDRCQUF1QixHQUFZLEtBQUssQ0FBQztRQUN6QyxlQUFVLEdBQXFCLE9BQU8sQ0FBQztRQUN2QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRXpCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBbUI5QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFkRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOzt5R0FuQ1UsWUFBWTs2RkFBWixZQUFZLGdpQkF3QlosZ0JBQWdCLGdEQ25DN0IsaTNDQXdDQTsyRkQ3QmEsWUFBWTtrQkFOeEIsU0FBUzsrQkFDRSxRQUFRLG1CQUdELHVCQUF1QixDQUFDLE1BQU07d0dBT3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUtQLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR2pCLGdCQUFnQjtzQkFBNUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoL2ZwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICd0YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsndGFiLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgaWNvbiBpbnB1dCB0YWtlcyBhIGZvbnQgYXdlc29tZSBzZWxlY3RvclxuICAgKiBXQVJOSU5HOiBDdXJyZW50bHkgdGhpcyBjb21wb25lbnQgZG9lcyBub3Qgc3VwcG9ydCB1c2luZyBhbiBpY29uIHRvZ2V0aGVyIHdpdGggYSBsYWJlbCBvciBjb3VudGVyLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbj86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgdGFiTGluaz86IHN0cmluZztcbiAgQElucHV0KCkgY291bnRlcj86IG51bWJlcjtcbiAgQElucHV0KCkgcm91dGVyTGlua0FjdGl2ZU9wdGlvbnM6IHsgZXhhY3Q6IGJvb2xlYW4gfSA9IHsgZXhhY3Q6IHRydWUgfTtcbiAgQElucHV0KCkgY291bnRlckJhZGdlU2l6ZTogJ2RlZmF1bHQnIHwgJ3NtYWxsJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgbm9NYXJnaW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbm9MZWZ0TWFyZ2luRm9yRmlyc3RUYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYmFja2dyb3VuZDogJ3doaXRlJyB8ICdncmF5JyA9ICd3aGl0ZSc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHN3aXRjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB0YWJQYW5lbElkOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudFRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgY29udGVudD86IFRlbXBsYXRlUG9ydGFsPGFueT47XG5cbiAgQFZpZXdDaGlsZChSb3V0ZXJMaW5rQWN0aXZlKSByb3V0ZXJMaW5rQWN0aXZlPzogUm91dGVyTGlua0FjdGl2ZTtcblxuICBzZXQgaXNBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0FjdGl2ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgZ2V0IGlzQWN0aXZlKCkge1xuICAgIGlmICh0aGlzLnJvdXRlckxpbmtBY3RpdmUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pc0FjdGl2ZTtcbiAgfVxuICBwcml2YXRlIF9pc0FjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy50YWJQYW5lbElkID0gdW5pcXVlSWQoJ3BhbmVsSWQnKTtcbiAgfVxufVxuIiwiPGxpXG4gIGNsYXNzPVwidGFiXCJcbiAgW2F0dHIudGFiaW5kZXhdPVwiaXNBY3RpdmUgfHwgZGlzYWJsZWQgfHwgdGFiTGluayA/ICctMScgOiAnMCdcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzQWN0aXZlXCJcbiAgW2F0dHIuYXJpYS1jb250cm9sc109XCJ0YWJQYW5lbElkXCJcbiAgW2NsYXNzLmFjdGl2ZV09XCJpc0FjdGl2ZVwiXG4gIFtjbGFzcy53aXRoSWNvbl09XCJpY29uXCJcbiAgW2NsYXNzLm5vTWFyZ2luXT1cIm5vTWFyZ2luXCJcbiAgW2NsYXNzLm5vTGVmdE1hcmdpbkZvckZpcnN0VGFiXT1cIm5vTGVmdE1hcmdpbkZvckZpcnN0VGFiXCJcbiAgW2NsYXNzLmJhY2tncm91bmRHcmF5XT1cImJhY2tncm91bmQgPT09ICdncmF5J1wiXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5wb3J0YWxUYWJdPVwiIXRhYkxpbmtcIlxuICBbY2xhc3Mucm91dGVyTGlua1RhYl09XCJ0YWJMaW5rXCJcbiAgW2F0dHIudGl0bGVdPVwidGl0bGVcIlxuICByb2xlPVwidGFiXCJcbiAgKGtleXVwLmVudGVyKT1cInN3aXRjaC5lbWl0KClcIlxuICAoY2xpY2spPVwic3dpdGNoLmVtaXQoKVwiXG4+XG4gIDxhICpuZ0lmPVwidGFiTGluazsgZWxzZSBwb3J0YWxUYWJcIiBbcm91dGVyTGlua109XCJ0YWJMaW5rXCIgcm91dGVyTGlua0FjdGl2ZSBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwicm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicG9ydGFsVGFiXCI+PC9uZy1jb250YWluZXI+XG4gIDwvYT5cblxuICA8bmctdGVtcGxhdGUgI3BvcnRhbFRhYj5cbiAgICA8aSAqbmdJZj1cImljb25cIiBjbGFzcz1cImljb24ge3sgaWNvbiB9fVwiPjwvaT5cbiAgICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJ0YWJMYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxseC1iYWRnZVxuICAgICAgKm5nSWY9XCJjb3VudGVyXCJcbiAgICAgIFtzaXplXT1cImNvdW50ZXJCYWRnZVNpemVcIlxuICAgICAgY2xhc3M9XCJseC1tYXJnaW4tbGVmdFwiXG4gICAgICBbY29udGVudF09XCJjb3VudGVyXCJcbiAgICAgIFtjb2xvcl09XCJpc0FjdGl2ZSA/ICdkYXJrZ3JheScgOiAnZ3JheSdcIlxuICAgID48L2x4LWJhZGdlPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWwgI2NvbnRlbnRUZW1wbGF0ZT1cImNka1BvcnRhbFwiPlxuICAgIDxkaXYgKm5nSWY9XCIhdGFiTGlua1wiIGNsYXNzPVwiY29udGVudFwiIHJvbGU9XCJ0YWJwYW5lbFwiIFthdHRyLmlkXT1cInRhYlBhbmVsSWRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbGk+XG4iXX0=
@@ -0,0 +1,71 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
2
+ import { merge, Subject } from 'rxjs';
3
+ import { map, startWith, switchMap, takeUntil } from 'rxjs/operators';
4
+ import { TabComponent } from '../tab/tab.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/cdk/portal";
7
+ export class TabGroupComponent {
8
+ constructor(cd) {
9
+ this.cd = cd;
10
+ this.isCentered = false;
11
+ this.selectedIndex = 0;
12
+ this.indexChange = new EventEmitter();
13
+ this.destroyed$ = new Subject();
14
+ }
15
+ get tabs() {
16
+ return this.tabsQueryList?.toArray() || [];
17
+ }
18
+ get activeTabPortal() {
19
+ return this.tabs[this.selectedIndex]?.content;
20
+ }
21
+ ngOnChanges(changes) {
22
+ const tab = this.tabs[this.selectedIndex];
23
+ if (changes['selectedIndex'] && !changes['selectedIndex'].isFirstChange() && tab) {
24
+ this.switchTo(tab);
25
+ }
26
+ }
27
+ ngAfterContentInit() {
28
+ if (this.tabs[0]) {
29
+ this.tabs[0].noLeftMarginForFirstTab = true;
30
+ }
31
+ const tab = this.tabs[this.selectedIndex];
32
+ if (tab) {
33
+ this.switchTo(tab);
34
+ }
35
+ const listenToTabsSwitch = (tabs) => merge(...tabs.map((tab) => tab.switch.asObservable().pipe(map(() => tab))));
36
+ this.tabsQueryList?.changes
37
+ .pipe(startWith(null), switchMap(() => listenToTabsSwitch(this.tabs)), takeUntil(this.destroyed$))
38
+ .subscribe((tab) => {
39
+ this.switchTo(tab);
40
+ });
41
+ }
42
+ ngOnDestroy() {
43
+ this.destroyed$.next();
44
+ }
45
+ switchTo(tab) {
46
+ this.tabsQueryList?.forEach((t, index) => {
47
+ t.isActive = t === tab;
48
+ if (t.isActive) {
49
+ this.selectedIndex = index;
50
+ this.indexChange.emit(index);
51
+ }
52
+ });
53
+ this.cd.markForCheck();
54
+ }
55
+ }
56
+ TabGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TabGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
57
+ TabGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: TabGroupComponent, selector: "lx-tab-group", inputs: { isCentered: "isCentered", selectedIndex: "selectedIndex" }, outputs: { indexChange: "indexChange" }, queries: [{ propertyName: "tabsQueryList", predicate: TabComponent }], usesOnChanges: true, ngImport: i0, template: "<ul class=\"tabs\" role=\"tablist\" [class.centered]=\"isCentered\">\n <ng-content></ng-content>\n</ul>\n\n<ng-template [cdkPortalOutlet]=\"activeTabPortal\"></ng-template>\n", styles: [".tabs{display:inline-block;list-style:none;border-bottom:solid 1px #cfd5df;width:100%;margin:0;padding:0}.tabs.centered{text-align:center}\n"], directives: [{ type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TabGroupComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'lx-tab-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"tabs\" role=\"tablist\" [class.centered]=\"isCentered\">\n <ng-content></ng-content>\n</ul>\n\n<ng-template [cdkPortalOutlet]=\"activeTabPortal\"></ng-template>\n", styles: [".tabs{display:inline-block;list-style:none;border-bottom:solid 1px #cfd5df;width:100%;margin:0;padding:0}.tabs.centered{text-align:center}\n"] }]
61
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { isCentered: [{
62
+ type: Input
63
+ }], selectedIndex: [{
64
+ type: Input
65
+ }], indexChange: [{
66
+ type: Output
67
+ }], tabsQueryList: [{
68
+ type: ContentChildren,
69
+ args: [TabComponent]
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBUXBELE1BQU0sT0FBTyxpQkFBaUI7SUFpQjVCLFlBQW9CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBaEJoQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVkxQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVFLENBQUM7SUFWN0MsSUFBWSxJQUFJO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ2hELENBQUM7SUFNRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztTQUM3QztRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQjtRQUVELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakksSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPO2FBQ3hCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFpQjtRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN2QyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs4R0E3RFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsaU1BS1gsWUFBWSxrREM3Qi9CLGlMQUtBOzJGRG1CYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNO3dHQUd0QyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFd0IsYUFBYTtzQkFBM0MsZUFBZTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi90YWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtdGFiLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICd0YWItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsndGFiLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpc0NlbnRlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSW5kZXg6IG51bWJlciA9IDA7XG4gIEBPdXRwdXQoKSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiQ29tcG9uZW50KSB0YWJzUXVlcnlMaXN0PzogUXVlcnlMaXN0PFRhYkNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBnZXQgdGFicygpOiBUYWJDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFic1F1ZXJ5TGlzdD8udG9BcnJheSgpIHx8IFtdO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVRhYlBvcnRhbCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF0/LmNvbnRlbnQ7XG4gIH1cblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkSW5kZXgnXSAmJiAhY2hhbmdlc1snc2VsZWN0ZWRJbmRleCddLmlzRmlyc3RDaGFuZ2UoKSAmJiB0YWIpIHtcbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKHRoaXMudGFic1swXSkge1xuICAgICAgdGhpcy50YWJzWzBdLm5vTGVmdE1hcmdpbkZvckZpcnN0VGFiID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKHRhYikge1xuICAgICAgdGhpcy5zd2l0Y2hUbyh0YWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlblRvVGFic1N3aXRjaCA9ICh0YWJzOiBUYWJDb21wb25lbnRbXSkgPT4gbWVyZ2UoLi4udGFicy5tYXAoKHRhYikgPT4gdGFiLnN3aXRjaC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoKSA9PiB0YWIpKSkpO1xuXG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbGlzdGVuVG9UYWJzU3dpdGNoKHRoaXMudGFicykpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodGFiKSA9PiB7XG4gICAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIHN3aXRjaFRvKHRhYjogVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xuICAgICAgdC5pc0FjdGl2ZSA9IHQgPT09IHRhYjtcbiAgICAgIGlmICh0LmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjx1bCBjbGFzcz1cInRhYnNcIiByb2xlPVwidGFibGlzdFwiIFtjbGFzcy5jZW50ZXJlZF09XCJpc0NlbnRlcmVkXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvdWw+XG5cbjxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImFjdGl2ZVRhYlBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { PortalModule } from '@angular/cdk/portal';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
4
+ import { RouterModule } from '@angular/router';
5
+ import { LxCoreUiModule } from '../core-ui/core-ui.module';
6
+ import { TabGroupComponent } from './components/tab-group/tab-group.component';
7
+ import { TabComponent } from './components/tab/tab.component';
8
+ import * as i0 from "@angular/core";
9
+ export class LxTabUiModule {
10
+ }
11
+ LxTabUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxTabUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ LxTabUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxTabUiModule, declarations: [TabGroupComponent, TabComponent], imports: [PortalModule, CommonModule, LxCoreUiModule, RouterModule], exports: [TabGroupComponent, TabComponent] });
13
+ LxTabUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxTabUiModule, imports: [[PortalModule, CommonModule, LxCoreUiModule, RouterModule]] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxTabUiModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [TabGroupComponent, TabComponent],
18
+ imports: [PortalModule, CommonModule, LxCoreUiModule, RouterModule],
19
+ exports: [TabGroupComponent, TabComponent]
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS90YWItdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFKVCxpQkFBaUIsRUFBRSxZQUFZLGFBQ3BDLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFlBQVksYUFDeEQsaUJBQWlCLEVBQUUsWUFBWTsyR0FFOUIsYUFBYSxZQUhmLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDOzJGQUd4RCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQztvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDO29CQUNuRSxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMeENvcmVVaU1vZHVsZSB9IGZyb20gJy4uL2NvcmUtdWkvY29yZS11aS5tb2R1bGUnO1xuaW1wb3J0IHsgVGFiR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYi90YWIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVGFiR3JvdXBDb21wb25lbnQsIFRhYkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIENvbW1vbk1vZHVsZSwgTHhDb3JlVWlNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtUYWJHcm91cENvbXBvbmVudCwgVGFiQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBMeFRhYlVpTW9kdWxlIHt9XG4iXX0=