@leanix/components 0.2.229 → 0.2.232

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,11 @@
1
+ // We can only use 'keyCode' because 'key' depends on the browser and does not work for IE11
2
+ export const BACKSPACE = 8;
3
+ export const TAB = 9;
4
+ export const ARROW_DOWN = 40;
5
+ export const ARROW_UP = 38;
6
+ export const ARROW_LEFT = 37;
7
+ export const ARROW_RIGHT = 39;
8
+ export const ENTER = 13;
9
+ export const ESCAPE = 27;
10
+ export const SPACE = 32;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWNvZGVzLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2hlbHBlcnMva2V5LWNvZGVzLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0RkFBNEY7QUFDNUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDN0IsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUN4QixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXZSBjYW4gb25seSB1c2UgJ2tleUNvZGUnIGJlY2F1c2UgJ2tleScgZGVwZW5kcyBvbiB0aGUgYnJvd3NlciBhbmQgZG9lcyBub3Qgd29yayBmb3IgSUUxMVxuZXhwb3J0IGNvbnN0IEJBQ0tTUEFDRSA9IDg7XG5leHBvcnQgY29uc3QgVEFCID0gOTtcbmV4cG9ydCBjb25zdCBBUlJPV19ET1dOID0gNDA7XG5leHBvcnQgY29uc3QgQVJST1dfVVAgPSAzODtcbmV4cG9ydCBjb25zdCBBUlJPV19MRUZUID0gMzc7XG5leHBvcnQgY29uc3QgQVJST1dfUklHSFQgPSAzOTtcbmV4cG9ydCBjb25zdCBFTlRFUiA9IDEzO1xuZXhwb3J0IGNvbnN0IEVTQ0FQRSA9IDI3O1xuZXhwb3J0IGNvbnN0IFNQQUNFID0gMzI7XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { includes } from 'lodash/fp';
2
+ import { fromEvent } from 'rxjs';
3
+ import { filter, map, takeUntil } from 'rxjs/operators';
4
+ import { KeyboardSelectAction } from '../components/keyboard-select.directive';
5
+ import { ARROW_DOWN, ARROW_UP, ENTER, ESCAPE, SPACE, TAB } from './key-codes.constants';
6
+ export function getKeyboardNavigationEvents(sourceElement, destroyed$) {
7
+ const inputKeyboardEvents$ = fromEvent(sourceElement, 'keydown').pipe(takeUntil(destroyed$));
8
+ const verticalNavigation$ = inputKeyboardEvents$.pipe(filter((event) => includes(event.keyCode, [ARROW_UP, ARROW_DOWN])));
9
+ const close$ = inputKeyboardEvents$.pipe(filter((event) => event.keyCode === ESCAPE || event.keyCode === TAB));
10
+ const dropdownKeyboardEvent$ = inputKeyboardEvents$.pipe(filter((event) => includes(event.keyCode, [ENTER, ARROW_UP, ARROW_DOWN])), map((event) => {
11
+ switch (event.keyCode) {
12
+ case ENTER:
13
+ return KeyboardSelectAction.EXECUTE;
14
+ case ARROW_UP:
15
+ return KeyboardSelectAction.PREV;
16
+ case ARROW_DOWN:
17
+ return KeyboardSelectAction.NEXT;
18
+ default:
19
+ return null;
20
+ }
21
+ }));
22
+ const enter$ = inputKeyboardEvents$.pipe(filter((event) => event.keyCode === ENTER));
23
+ const space$ = inputKeyboardEvents$.pipe(filter((event) => event.keyCode === SPACE));
24
+ const openOnArrowDown$ = inputKeyboardEvents$.pipe(filter((event) => event.keyCode === ARROW_DOWN));
25
+ return {
26
+ verticalNavigation$,
27
+ close$,
28
+ dropdownKeyboardEvent$,
29
+ enter$,
30
+ space$,
31
+ openOnArrowDown$
32
+ };
33
+ }
34
+ export function stopKeyboardEventPropagation(evt) {
35
+ evt.preventDefault();
36
+ evt.stopImmediatePropagation();
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtbmF2aWdhdGlvbi5oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvaGVscGVycy9rZXlib2FyZC1uYXZpZ2F0aW9uLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBV3hGLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxhQUEwQixFQUFFLFVBQTRCO0lBQ2xHLE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFnQixhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRTVHLE1BQU0sbUJBQW1CLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFMUgsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRS9HLE1BQU0sc0JBQXNCLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUN0RCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQ3pFLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ1osUUFBUSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ3JCLEtBQUssS0FBSztnQkFDUixPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztZQUN0QyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDbkMsS0FBSyxVQUFVO2dCQUNiLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQ25DO2dCQUNFLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUVyRixNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztJQUVwRyxPQUFPO1FBQ0wsbUJBQW1CO1FBQ25CLE1BQU07UUFDTixzQkFBc0I7UUFDdEIsTUFBTTtRQUNOLE1BQU07UUFDTixnQkFBZ0I7S0FDakIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsR0FBVTtJQUNyRCxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDckIsR0FBRyxDQUFDLHdCQUF3QixFQUFFLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluY2x1ZGVzIH0gZnJvbSAnbG9kYXNoL2ZwJztcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9rZXlib2FyZC1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFSUk9XX0RPV04sIEFSUk9XX1VQLCBFTlRFUiwgRVNDQVBFLCBTUEFDRSwgVEFCIH0gZnJvbSAnLi9rZXktY29kZXMuY29uc3RhbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBLZXlib2FyZE5hdmlnYXRpb25FdmVudHMge1xuICB2ZXJ0aWNhbE5hdmlnYXRpb24kOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+O1xuICBjbG9zZSQ6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD47XG4gIGRyb3Bkb3duS2V5Ym9hcmRFdmVudCQ6IE9ic2VydmFibGU8S2V5Ym9hcmRTZWxlY3RBY3Rpb24gfCBudWxsPjtcbiAgZW50ZXIkOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+O1xuICBzcGFjZSQ6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD47XG4gIG9wZW5PbkFycm93RG93biQ6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlib2FyZE5hdmlnYXRpb25FdmVudHMoc291cmNlRWxlbWVudDogSFRNTEVsZW1lbnQsIGRlc3Ryb3llZCQ6IE9ic2VydmFibGU8dm9pZD4pOiBLZXlib2FyZE5hdmlnYXRpb25FdmVudHMge1xuICBjb25zdCBpbnB1dEtleWJvYXJkRXZlbnRzJCA9IGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihzb3VyY2VFbGVtZW50LCAna2V5ZG93bicpLnBpcGUodGFrZVVudGlsKGRlc3Ryb3llZCQpKTtcblxuICBjb25zdCB2ZXJ0aWNhbE5hdmlnYXRpb24kID0gaW5wdXRLZXlib2FyZEV2ZW50cyQucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbQVJST1dfVVAsIEFSUk9XX0RPV05dKSkpO1xuXG4gIGNvbnN0IGNsb3NlJCA9IGlucHV0S2V5Ym9hcmRFdmVudHMkLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFIHx8IGV2ZW50LmtleUNvZGUgPT09IFRBQikpO1xuXG4gIGNvbnN0IGRyb3Bkb3duS2V5Ym9hcmRFdmVudCQgPSBpbnB1dEtleWJvYXJkRXZlbnRzJC5waXBlKFxuICAgIGZpbHRlcigoZXZlbnQpID0+IGluY2x1ZGVzKGV2ZW50LmtleUNvZGUsIFtFTlRFUiwgQVJST1dfVVAsIEFSUk9XX0RPV05dKSksXG4gICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICAgIGNhc2UgRU5URVI6XG4gICAgICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLkVYRUNVVEU7XG4gICAgICAgIGNhc2UgQVJST1dfVVA6XG4gICAgICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVY7XG4gICAgICAgIGNhc2UgQVJST1dfRE9XTjpcbiAgICAgICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTkVYVDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIGNvbnN0IGVudGVyJCA9IGlucHV0S2V5Ym9hcmRFdmVudHMkLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRU5URVIpKTtcbiAgY29uc3Qgc3BhY2UkID0gaW5wdXRLZXlib2FyZEV2ZW50cyQucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC5rZXlDb2RlID09PSBTUEFDRSkpO1xuXG4gIGNvbnN0IG9wZW5PbkFycm93RG93biQgPSBpbnB1dEtleWJvYXJkRXZlbnRzJC5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LmtleUNvZGUgPT09IEFSUk9XX0RPV04pKTtcblxuICByZXR1cm4ge1xuICAgIHZlcnRpY2FsTmF2aWdhdGlvbiQsXG4gICAgY2xvc2UkLFxuICAgIGRyb3Bkb3duS2V5Ym9hcmRFdmVudCQsXG4gICAgZW50ZXIkLFxuICAgIHNwYWNlJCxcbiAgICBvcGVuT25BcnJvd0Rvd24kXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wS2V5Ym9hcmRFdmVudFByb3BhZ2F0aW9uKGV2dDogRXZlbnQpIHtcbiAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gIGV2dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbn1cbiJdfQ==
@@ -0,0 +1,148 @@
1
+ import { Directive, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
4
+ import { distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';
5
+ import { KeyboardSelectAction } from '../components/keyboard-select.directive';
6
+ import * as i0 from "@angular/core";
7
+ export class BaseSelectDirective {
8
+ constructor() {
9
+ this.disabled = false;
10
+ this.focusOnInit = false;
11
+ this.dropdownMaxHeight = 250;
12
+ this.allowQuery = true;
13
+ this.query = new EventEmitter();
14
+ this.close = new EventEmitter();
15
+ this.open = new EventEmitter();
16
+ this.query$ = this.query.asObservable();
17
+ this.dropdownDirection$ = new BehaviorSubject('BOTTOM');
18
+ this.dropdownOpen = false;
19
+ // an axis, where the negative range represents the selected item in the selection
20
+ this.selectionKeyboardSelectAction$ = new Subject();
21
+ this.optionsKeyboardSelectAction$ = new Subject();
22
+ this.virtualCursorPosition = 0;
23
+ this.inputWasFocused = false;
24
+ this.queryControl = new FormControl();
25
+ this.isInputFocused = false;
26
+ this.destroyed$ = new Subject();
27
+ }
28
+ ngAfterViewInit() {
29
+ this.queryControl.valueChanges
30
+ .pipe(filter(() => this.allowQuery), takeUntil(this.destroyed$))
31
+ .subscribe((value) => {
32
+ if (value && value.length > 0) {
33
+ this.open.next(true);
34
+ }
35
+ this.query.emit(value);
36
+ this.selectFirstOption();
37
+ });
38
+ this.open
39
+ .pipe(filter(() => !this.disabled), distinctUntilChanged(), takeUntil(this.destroyed$))
40
+ .subscribe((isOpen) => {
41
+ this.dropdownOpen = isOpen;
42
+ if (isOpen) {
43
+ this.setOpenDirection();
44
+ }
45
+ else {
46
+ this.resetSelectState();
47
+ this.close.emit();
48
+ }
49
+ });
50
+ if (this.focusOnInit) {
51
+ setTimeout(() => this.focus());
52
+ }
53
+ }
54
+ ngOnChanges(changes) {
55
+ if ('disabled' in changes) {
56
+ if (this.disabled) {
57
+ this.queryControl.disable();
58
+ }
59
+ else {
60
+ this.queryControl.enable();
61
+ }
62
+ }
63
+ }
64
+ ngOnDestroy() {
65
+ this.destroyed$.next();
66
+ }
67
+ /**
68
+ * @param toggle is true when the caret to the right in a select component was clicked
69
+ */
70
+ handleClick(toggle) {
71
+ if (toggle || !this.dropdownOpen || !this.allowQuery) {
72
+ this.open.next(!this.dropdownOpen);
73
+ }
74
+ this.focus();
75
+ }
76
+ handleBackdropClick(event) {
77
+ event.stopPropagation();
78
+ this.closeInput();
79
+ }
80
+ closeInput() {
81
+ this.open.next(false);
82
+ this.resetInput();
83
+ this.query.emit('');
84
+ }
85
+ setOpenDirection() {
86
+ const dropdownRect = this.optionsContainer.nativeElement.getBoundingClientRect();
87
+ const spaceAtTheBottom = document.documentElement.clientHeight - dropdownRect.top - dropdownRect.height - this.dropdownMaxHeight;
88
+ const spaceAtTheTop = dropdownRect.top - this.dropdownMaxHeight;
89
+ const isTop = spaceAtTheBottom < 0 && spaceAtTheTop > spaceAtTheBottom;
90
+ this.dropdownDirection$.next(isTop ? 'TOP' : 'BOTTOM');
91
+ }
92
+ resetSelectState() {
93
+ this.virtualCursorPosition = 0;
94
+ this.selectionKeyboardSelectAction$.next(KeyboardSelectAction.UNSELECT);
95
+ this.optionsKeyboardSelectAction$.next(KeyboardSelectAction.UNSELECT);
96
+ this.resetInput();
97
+ this.query.emit('');
98
+ }
99
+ mapToEventSet(event, input, virtualCursorPosition, selectionLength) {
100
+ return {
101
+ event,
102
+ inputCursorPosition: this.doGetCaretPosition(input),
103
+ virtualCursorPosition,
104
+ selectionLength
105
+ };
106
+ }
107
+ /*
108
+ * Returns the caret (cursor) position of the specified text field.
109
+ * Return value range is 0-oField.value.length.
110
+ * https://stackoverflow.com/questions/2897155/get-cursor-position-in-characters-within-a-text-input-field
111
+ */
112
+ doGetCaretPosition(oField) {
113
+ let iCaretPos = 0;
114
+ if (oField.selectionStart || parseInt(oField.selectionStart, 10) === 0) {
115
+ // Check when range selection using null we prevent deleting on
116
+ iCaretPos = oField.selectionStart === oField.selectionEnd ? oField.selectionStart : null;
117
+ }
118
+ return iCaretPos;
119
+ }
120
+ selectFirstOption() {
121
+ this.optionsKeyboardSelectAction$.next(KeyboardSelectAction.FIRST);
122
+ }
123
+ }
124
+ BaseSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BaseSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
125
+ BaseSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: BaseSelectDirective, inputs: { placeholder: "placeholder", disabled: "disabled", focusOnInit: "focusOnInit", dropdownMaxHeight: "dropdownMaxHeight", allowQuery: "allowQuery" }, outputs: { query: "query", close: "close", open: "open" }, viewQueries: [{ propertyName: "optionsContainer", first: true, predicate: ["optionsContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0 });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BaseSelectDirective, decorators: [{
127
+ type: Directive
128
+ }], propDecorators: { placeholder: [{
129
+ type: Input
130
+ }], disabled: [{
131
+ type: Input
132
+ }], focusOnInit: [{
133
+ type: Input
134
+ }], dropdownMaxHeight: [{
135
+ type: Input
136
+ }], allowQuery: [{
137
+ type: Input
138
+ }], query: [{
139
+ type: Output
140
+ }], close: [{
141
+ type: Output
142
+ }], open: [{
143
+ type: Output
144
+ }], optionsContainer: [{
145
+ type: ViewChild,
146
+ args: ['optionsContainer', { static: true }]
147
+ }] } });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvbW9kZWxzL2Jhc2Utc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFVL0UsTUFBTSxPQUFnQixtQkFBbUI7SUFEekM7UUFHVyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLHNCQUFpQixHQUFXLEdBQUcsQ0FBQztRQUNoQyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25DLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBTzdCLFdBQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ25DLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUFtQixRQUFRLENBQUMsQ0FBQztRQUM5RSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUc1QixrRkFBa0Y7UUFDbEUsbUNBQThCLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7UUFDckUs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LENBQUMsTUFBVztRQUN0QyxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsSUFBSSxNQUFNLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0RSwrREFBK0Q7WUFDL0QsU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQzFGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JFLENBQUM7O2dIQTVKbUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzs4QkFFQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFFMEMsZ0JBQWdCO3NCQUFoRSxTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9rZXlib2FyZC1zZWxlY3QuZGlyZWN0aXZlJztcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFNldCB7XG4gIGV2ZW50OiBLZXlib2FyZEV2ZW50O1xuICBpbnB1dEN1cnNvclBvc2l0aW9uOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHZpcnR1YWxDdXJzb3JQb3NpdGlvbjogbnVtYmVyO1xuICBzZWxlY3Rpb25MZW5ndGg/OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmb2N1c09uSW5pdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkcm9wZG93bk1heEhlaWdodDogbnVtYmVyID0gMjUwO1xuICBASW5wdXQoKSBhbGxvd1F1ZXJ5OiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgcXVlcnkgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgb3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdvcHRpb25zQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSkgb3B0aW9uc0NvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGFic3RyYWN0IHNlbGVjdGlvbj86IGFueTtcbiAgYWJzdHJhY3Qgc2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgcXVlcnkkID0gdGhpcy5xdWVyeS5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIHJlYWRvbmx5IGRyb3Bkb3duRGlyZWN0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8J1RPUCcgfCAnQk9UVE9NJz4oJ0JPVFRPTScpO1xuICBwdWJsaWMgZHJvcGRvd25PcGVuID0gZmFsc2U7XG5cbiAgcHVibGljIGFjdGl2ZUVsZW1lbnQhOiBFbGVtZW50O1xuICAvLyBhbiBheGlzLCB3aGVyZSB0aGUgbmVnYXRpdmUgcmFuZ2UgcmVwcmVzZW50cyB0aGUgc2VsZWN0ZWQgaXRlbSBpbiB0aGUgc2VsZWN0aW9uXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25LZXlib2FyZFNlbGVjdEFjdGlvbiQgPSBuZXcgU3ViamVjdDxLZXlib2FyZFNlbGVjdEFjdGlvbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IG9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQgPSBuZXcgU3ViamVjdDxLZXlib2FyZFNlbGVjdEFjdGlvbiB8IG51bGw+KCk7XG4gIHB1YmxpYyB2aXJ0dWFsQ3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGlucHV0V2FzRm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBxdWVyeUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcblxuICBwdWJsaWMgaXNJbnB1dEZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBhYnN0cmFjdCByZXNldElucHV0KCk6IHZvaWQ7XG5cbiAgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5xdWVyeUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuYWxsb3dRdWVyeSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMub3Blbi5uZXh0KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucXVlcnkuZW1pdCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0Rmlyc3RPcHRpb24oKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vcGVuXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmRpc2FibGVkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGlzT3BlbikgPT4ge1xuICAgICAgICB0aGlzLmRyb3Bkb3duT3BlbiA9IGlzT3BlbjtcblxuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy5zZXRPcGVuRGlyZWN0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZXNldFNlbGVjdFN0YXRlKCk7XG4gICAgICAgICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZm9jdXNPbkluaXQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1cygpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKCdkaXNhYmxlZCcgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5xdWVyeUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdG9nZ2xlIGlzIHRydWUgd2hlbiB0aGUgY2FyZXQgdG8gdGhlIHJpZ2h0IGluIGEgc2VsZWN0IGNvbXBvbmVudCB3YXMgY2xpY2tlZFxuICAgKi9cbiAgcHVibGljIGhhbmRsZUNsaWNrKHRvZ2dsZTogYm9vbGVhbikge1xuICAgIGlmICh0b2dnbGUgfHwgIXRoaXMuZHJvcGRvd25PcGVuIHx8ICF0aGlzLmFsbG93UXVlcnkpIHtcbiAgICAgIHRoaXMub3Blbi5uZXh0KCF0aGlzLmRyb3Bkb3duT3Blbik7XG4gICAgfVxuICAgIHRoaXMuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCYWNrZHJvcENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbG9zZUlucHV0KCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VJbnB1dCgpIHtcbiAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgdGhpcy5xdWVyeS5lbWl0KCcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRPcGVuRGlyZWN0aW9uKCkge1xuICAgIGNvbnN0IGRyb3Bkb3duUmVjdCA9IHRoaXMub3B0aW9uc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHNwYWNlQXRUaGVCb3R0b20gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gZHJvcGRvd25SZWN0LnRvcCAtIGRyb3Bkb3duUmVjdC5oZWlnaHQgLSB0aGlzLmRyb3Bkb3duTWF4SGVpZ2h0O1xuICAgIGNvbnN0IHNwYWNlQXRUaGVUb3AgPSBkcm9wZG93blJlY3QudG9wIC0gdGhpcy5kcm9wZG93bk1heEhlaWdodDtcbiAgICBjb25zdCBpc1RvcCA9IHNwYWNlQXRUaGVCb3R0b20gPCAwICYmIHNwYWNlQXRUaGVUb3AgPiBzcGFjZUF0VGhlQm90dG9tO1xuXG4gICAgdGhpcy5kcm9wZG93bkRpcmVjdGlvbiQubmV4dChpc1RvcCA/ICdUT1AnIDogJ0JPVFRPTScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlc2V0U2VsZWN0U3RhdGUoKSB7XG4gICAgdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPSAwO1xuICAgIHRoaXMuc2VsZWN0aW9uS2V5Ym9hcmRTZWxlY3RBY3Rpb24kLm5leHQoS2V5Ym9hcmRTZWxlY3RBY3Rpb24uVU5TRUxFQ1QpO1xuICAgIHRoaXMub3B0aW9uc0tleWJvYXJkU2VsZWN0QWN0aW9uJC5uZXh0KEtleWJvYXJkU2VsZWN0QWN0aW9uLlVOU0VMRUNUKTtcbiAgICB0aGlzLnJlc2V0SW5wdXQoKTtcbiAgICB0aGlzLnF1ZXJ5LmVtaXQoJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcFRvRXZlbnRTZXQoXG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQsXG4gICAgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsXG4gICAgdmlydHVhbEN1cnNvclBvc2l0aW9uOiBudW1iZXIsXG4gICAgc2VsZWN0aW9uTGVuZ3RoPzogbnVtYmVyXG4gICk6IEV2ZW50U2V0IHtcbiAgICByZXR1cm4ge1xuICAgICAgZXZlbnQsXG4gICAgICBpbnB1dEN1cnNvclBvc2l0aW9uOiB0aGlzLmRvR2V0Q2FyZXRQb3NpdGlvbihpbnB1dCksXG4gICAgICB2aXJ0dWFsQ3Vyc29yUG9zaXRpb24sXG4gICAgICBzZWxlY3Rpb25MZW5ndGhcbiAgICB9O1xuICB9XG5cbiAgLypcbiAgICogUmV0dXJucyB0aGUgY2FyZXQgKGN1cnNvcikgcG9zaXRpb24gb2YgdGhlIHNwZWNpZmllZCB0ZXh0IGZpZWxkLlxuICAgKiBSZXR1cm4gdmFsdWUgcmFuZ2UgaXMgMC1vRmllbGQudmFsdWUubGVuZ3RoLlxuICAgKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yODk3MTU1L2dldC1jdXJzb3ItcG9zaXRpb24taW4tY2hhcmFjdGVycy13aXRoaW4tYS10ZXh0LWlucHV0LWZpZWxkXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9HZXRDYXJldFBvc2l0aW9uKG9GaWVsZDogYW55KSB7XG4gICAgbGV0IGlDYXJldFBvcyA9IDA7XG4gICAgaWYgKG9GaWVsZC5zZWxlY3Rpb25TdGFydCB8fCBwYXJzZUludChvRmllbGQuc2VsZWN0aW9uU3RhcnQsIDEwKSA9PT0gMCkge1xuICAgICAgLy8gQ2hlY2sgd2hlbiByYW5nZSBzZWxlY3Rpb24gdXNpbmcgbnVsbCB3ZSBwcmV2ZW50IGRlbGV0aW5nIG9uXG4gICAgICBpQ2FyZXRQb3MgPSBvRmllbGQuc2VsZWN0aW9uU3RhcnQgPT09IG9GaWVsZC5zZWxlY3Rpb25FbmQgPyBvRmllbGQuc2VsZWN0aW9uU3RhcnQgOiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gaUNhcmV0UG9zO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEZpcnN0T3B0aW9uKCkge1xuICAgIHRoaXMub3B0aW9uc0tleWJvYXJkU2VsZWN0QWN0aW9uJC5uZXh0KEtleWJvYXJkU2VsZWN0QWN0aW9uLkZJUlNUKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24taXRlbS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9tb2RlbHMvZHJvcGRvd24taXRlbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSXRlbSB7XG4gIHNlbGVjdD86IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBzY3JvbGxUb0l0ZW0oKTogdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC1wYWRkaW5nLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL21vZGVscy9zaW5nbGUtc2VsZWN0LXBhZGRpbmcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTaW5nbGVTZWxlY3RQYWRkaW5nID0gJ2RlZmF1bHQnIHwgJ25hcnJvdyc7XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export class Sorting {
2
+ constructor() {
3
+ this.key = '';
4
+ this.order = 'asc';
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9tb2RlbHMvc29ydGluZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLE9BQU87SUFBcEI7UUFDRSxRQUFHLEdBQVcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBaUIsS0FBSyxDQUFDO0lBQzlCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNvcnRpbmdPcmRlciA9ICdhc2MnIHwgJ2Rlc2MnO1xuZXhwb3J0IGNsYXNzIFNvcnRpbmcge1xuICBrZXk6IHN0cmluZyA9ICcnO1xuICBvcmRlcjogU29ydGluZ09yZGVyID0gJ2FzYyc7XG59XG4iXX0=
@@ -0,0 +1,30 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { filter, find, includes, isEqual, isObject } from 'lodash/fp';
3
+ import * as i0 from "@angular/core";
4
+ export class FilterSelectionPipe {
5
+ transform(items, selection, itemKey) {
6
+ const isArray = Array.isArray(selection);
7
+ return filter((item) => {
8
+ if (isArray) {
9
+ if (isObject(item)) {
10
+ return itemKey
11
+ ? !find((selectedItem) => selectedItem?.[itemKey] === item?.[itemKey], selection)
12
+ : !find(item, selection);
13
+ }
14
+ else {
15
+ return !includes(item, selection);
16
+ }
17
+ }
18
+ else {
19
+ return !isEqual(item, selection);
20
+ }
21
+ }, items);
22
+ }
23
+ }
24
+ FilterSelectionPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FilterSelectionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
25
+ FilterSelectionPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FilterSelectionPipe, name: "lxFilterBySelection" });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FilterSelectionPipe, decorators: [{
27
+ type: Pipe,
28
+ args: [{ name: 'lxFilterBySelection' }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvcGlwZXMvZmlsdGVyLXNlbGVjdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUd0RSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFNBQVMsQ0FBQyxLQUErQixFQUFFLFNBQWMsRUFBRSxPQUFnQjtRQUN6RSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDckIsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ2xCLE9BQU8sT0FBTzt3QkFDWixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFNLElBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsQ0FBQzt3QkFDMUYsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDNUI7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQ25DO2FBQ0Y7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDbEM7UUFDSCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDWixDQUFDOztnSEFoQlUsbUJBQW1COzhHQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbHRlciwgZmluZCwgaW5jbHVkZXMsIGlzRXF1YWwsIGlzT2JqZWN0IH0gZnJvbSAnbG9kYXNoL2ZwJztcblxuQFBpcGUoeyBuYW1lOiAnbHhGaWx0ZXJCeVNlbGVjdGlvbicgfSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZWxlY3Rpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShpdGVtczogYW55W10gfCBudWxsIHwgdW5kZWZpbmVkLCBzZWxlY3Rpb246IGFueSwgaXRlbUtleT86IHN0cmluZyk6IGFueVtdIHtcbiAgICBjb25zdCBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShzZWxlY3Rpb24pO1xuICAgIHJldHVybiBmaWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpc0FycmF5KSB7XG4gICAgICAgIGlmIChpc09iamVjdChpdGVtKSkge1xuICAgICAgICAgIHJldHVybiBpdGVtS2V5XG4gICAgICAgICAgICA/ICFmaW5kKChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbT8uW2l0ZW1LZXldID09PSAoaXRlbSBhcyBhbnkpPy5baXRlbUtleV0sIHNlbGVjdGlvbilcbiAgICAgICAgICAgIDogIWZpbmQoaXRlbSwgc2VsZWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gIWluY2x1ZGVzKGl0ZW0sIHNlbGVjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAhaXNFcXVhbChpdGVtLCBzZWxlY3Rpb24pO1xuICAgICAgfVxuICAgIH0sIGl0ZW1zKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { filter, toLower } from 'lodash/fp';
3
+ import * as i0 from "@angular/core";
4
+ export class FilterTermPipe {
5
+ transform(items, options) {
6
+ if (items === null) {
7
+ return [];
8
+ }
9
+ if (options.term) {
10
+ return filter((item) => {
11
+ const value = options.key ? item[options.key] : item;
12
+ return toLower(value).indexOf(toLower(options.term)) > -1;
13
+ }, items);
14
+ }
15
+ else {
16
+ return items;
17
+ }
18
+ }
19
+ }
20
+ FilterTermPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FilterTermPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
21
+ FilterTermPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FilterTermPipe, name: "lxFilterByTerm" });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FilterTermPipe, decorators: [{
23
+ type: Pipe,
24
+ args: [{ name: 'lxFilterByTerm' }]
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXRlcm0ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL3BpcGVzL2ZpbHRlci10ZXJtLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRzVDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFNBQVMsQ0FBQyxLQUFtQixFQUFFLE9BQStDO1FBQzVFLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ2hCLE9BQU8sTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3RCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDWDthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7OzJHQWJVLGNBQWM7eUdBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCB0b0xvd2VyIH0gZnJvbSAnbG9kYXNoL2ZwJztcblxuQFBpcGUoeyBuYW1lOiAnbHhGaWx0ZXJCeVRlcm0nIH0pXG5leHBvcnQgY2xhc3MgRmlsdGVyVGVybVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGl0ZW1zOiBhbnlbXSB8IG51bGwsIG9wdGlvbnM6IHsgdGVybT86IHN0cmluZyB8IG51bGw7IGtleT86IHN0cmluZyB9KTogYW55W10ge1xuICAgIGlmIChpdGVtcyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50ZXJtKSB7XG4gICAgICByZXR1cm4gZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9ucy5rZXkgPyBpdGVtW29wdGlvbnMua2V5XSA6IGl0ZW07XG4gICAgICAgIHJldHVybiB0b0xvd2VyKHZhbHVlKS5pbmRleE9mKHRvTG93ZXIob3B0aW9ucy50ZXJtISkpID4gLTE7XG4gICAgICB9LCBpdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { Inject, Pipe } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { LOCALE_FN } from '../../core-ui/core-ui.constants';
4
+ import { CURRENCY_SYMBOL_MAP } from '../components/currency/currency-symbol-map.constant';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Reformats numbers into a short format.
8
+ * @example {{ 1000 | lxFormatNumber | async }} prints 1K
9
+ *
10
+ * If the parameter currency is set, a currency sign is inserted based on the value and the current locale.
11
+ * In this case, the pipe must be used with an innerHtml attribute.
12
+ * @example [lxHtml]="1000 | lxFormatNumber: 'USD' | async" prints $1K
13
+ */
14
+ export class FormatNumberPipe {
15
+ constructor(getLocale) {
16
+ this.getLocale = getLocale;
17
+ }
18
+ transform(number, currency) {
19
+ const locale$ = this.getLocale();
20
+ return locale$.pipe(map((locale) => {
21
+ if (number === null || number === undefined) {
22
+ return null;
23
+ }
24
+ const options = {
25
+ notation: 'compact',
26
+ compactDisplay: 'short'
27
+ };
28
+ if (currency) {
29
+ try {
30
+ const currencyOptions = { ...options, currency, style: 'currency' };
31
+ const formatedNumberWithCurrency = new Intl.NumberFormat(locale, currencyOptions).format(number);
32
+ return this.getFormatedCurrency(formatedNumberWithCurrency, currency);
33
+ }
34
+ catch (_error) {
35
+ console.warn(`FormatNumberPipe: Invalid currency code: ${currency}`);
36
+ return new Intl.NumberFormat(locale, options).format(number);
37
+ }
38
+ }
39
+ return new Intl.NumberFormat(locale, options).format(number);
40
+ }));
41
+ }
42
+ /**
43
+ * Use custom currency symbol, when the currency in the formated number doesn't match the
44
+ * symbol in the CURRENCY_SYMBOL_MAP.
45
+ */
46
+ getFormatedCurrency(formatedNumberWitCurrency, currency) {
47
+ const currencyMapping = CURRENCY_SYMBOL_MAP[currency];
48
+ if (currencyMapping && currencyMapping !== currency && !formatedNumberWitCurrency.includes(currencyMapping)) {
49
+ return formatedNumberWitCurrency.replace(currency, currencyMapping);
50
+ }
51
+ return formatedNumberWitCurrency;
52
+ }
53
+ }
54
+ FormatNumberPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FormatNumberPipe, deps: [{ token: LOCALE_FN }], target: i0.ɵɵFactoryTarget.Pipe });
55
+ FormatNumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FormatNumberPipe, name: "lxFormatNumber" });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FormatNumberPipe, decorators: [{
57
+ type: Pipe,
58
+ args: [{
59
+ name: 'lxFormatNumber'
60
+ }]
61
+ }], ctorParameters: function () { return [{ type: Function, decorators: [{
62
+ type: Inject,
63
+ args: [LOCALE_FN]
64
+ }] }]; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LW51bWJlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvcGlwZXMvZm9ybWF0LW51bWJlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOztBQUUxRjs7Ozs7OztHQU9HO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUF1QyxTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQUcsQ0FBQztJQUU5RCxTQUFTLENBQUMsTUFBaUMsRUFBRSxRQUFpQjtRQUM1RCxNQUFNLE9BQU8sR0FBdUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDYixJQUFJLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDM0MsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUNELE1BQU0sT0FBTyxHQUFRO2dCQUNuQixRQUFRLEVBQUUsU0FBUztnQkFDbkIsY0FBYyxFQUFFLE9BQU87YUFDeEIsQ0FBQztZQUNGLElBQUksUUFBUSxFQUFFO2dCQUNaLElBQUk7b0JBQ0YsTUFBTSxlQUFlLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO29CQUNwRSxNQUFNLDBCQUEwQixHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNqRyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsRUFBRSxRQUFRLENBQUMsQ0FBQztpQkFDdkU7Z0JBQUMsT0FBTyxNQUFNLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyw0Q0FBNEMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDckUsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDOUQ7YUFDRjtZQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUIsQ0FBQyx5QkFBaUMsRUFBRSxRQUFnQjtRQUM3RSxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxJQUFJLGVBQWUsSUFBSSxlQUFlLEtBQUssUUFBUSxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQzNHLE9BQU8seUJBQXlCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztTQUNyRTtRQUNELE9BQU8seUJBQXlCLENBQUM7SUFDbkMsQ0FBQzs7NkdBdkNVLGdCQUFnQixrQkFDUCxTQUFTOzJHQURsQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFINUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZ0JBQWdCO2lCQUN2QjswREFFbUQsUUFBUTswQkFBN0MsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMT0NBTEVfRk4gfSBmcm9tICcuLi8uLi9jb3JlLXVpL2NvcmUtdWkuY29uc3RhbnRzJztcbmltcG9ydCB7IENVUlJFTkNZX1NZTUJPTF9NQVAgfSBmcm9tICcuLi9jb21wb25lbnRzL2N1cnJlbmN5L2N1cnJlbmN5LXN5bWJvbC1tYXAuY29uc3RhbnQnO1xuXG4vKipcbiAqIFJlZm9ybWF0cyBudW1iZXJzIGludG8gYSBzaG9ydCBmb3JtYXQuXG4gKiBAZXhhbXBsZSB7eyAxMDAwIHwgbHhGb3JtYXROdW1iZXIgfCBhc3luYyB9fSBwcmludHMgMUtcbiAqXG4gKiBJZiB0aGUgcGFyYW1ldGVyIGN1cnJlbmN5IGlzIHNldCwgYSBjdXJyZW5jeSBzaWduIGlzIGluc2VydGVkIGJhc2VkIG9uIHRoZSB2YWx1ZSBhbmQgdGhlIGN1cnJlbnQgbG9jYWxlLlxuICogSW4gdGhpcyBjYXNlLCB0aGUgcGlwZSBtdXN0IGJlIHVzZWQgd2l0aCBhbiBpbm5lckh0bWwgYXR0cmlidXRlLlxuICogQGV4YW1wbGUgW2x4SHRtbF09XCIxMDAwIHwgbHhGb3JtYXROdW1iZXI6ICdVU0QnIHwgYXN5bmNcIiBwcmludHMgJDFLXG4gKi9cbkBQaXBlKHtcbiAgbmFtZTogJ2x4Rm9ybWF0TnVtYmVyJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtYXROdW1iZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxFX0ZOKSBwcml2YXRlIGdldExvY2FsZTogRnVuY3Rpb24pIHt9XG5cbiAgdHJhbnNmb3JtKG51bWJlcjogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgY3VycmVuY3k/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBsb2NhbGUkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmdldExvY2FsZSgpO1xuICAgIHJldHVybiBsb2NhbGUkLnBpcGUoXG4gICAgICBtYXAoKGxvY2FsZSkgPT4ge1xuICAgICAgICBpZiAobnVtYmVyID09PSBudWxsIHx8IG51bWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgICAgIG5vdGF0aW9uOiAnY29tcGFjdCcsXG4gICAgICAgICAgY29tcGFjdERpc3BsYXk6ICdzaG9ydCdcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGN1cnJlbmN5KSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbmN5T3B0aW9ucyA9IHsgLi4ub3B0aW9ucywgY3VycmVuY3ksIHN0eWxlOiAnY3VycmVuY3knIH07XG4gICAgICAgICAgICBjb25zdCBmb3JtYXRlZE51bWJlcldpdGhDdXJyZW5jeSA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIGN1cnJlbmN5T3B0aW9ucykuZm9ybWF0KG51bWJlcik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXRlZEN1cnJlbmN5KGZvcm1hdGVkTnVtYmVyV2l0aEN1cnJlbmN5LCBjdXJyZW5jeSk7XG4gICAgICAgICAgfSBjYXRjaCAoX2Vycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYEZvcm1hdE51bWJlclBpcGU6IEludmFsaWQgY3VycmVuY3kgY29kZTogJHtjdXJyZW5jeX1gKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jYWxlLCBvcHRpb25zKS5mb3JtYXQobnVtYmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIG9wdGlvbnMpLmZvcm1hdChudW1iZXIpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBjdXN0b20gY3VycmVuY3kgc3ltYm9sLCB3aGVuIHRoZSBjdXJyZW5jeSBpbiB0aGUgZm9ybWF0ZWQgbnVtYmVyIGRvZXNuJ3QgbWF0Y2ggdGhlXG4gICAqIHN5bWJvbCBpbiB0aGUgQ1VSUkVOQ1lfU1lNQk9MX01BUC5cbiAgICovXG4gIHByaXZhdGUgZ2V0Rm9ybWF0ZWRDdXJyZW5jeShmb3JtYXRlZE51bWJlcldpdEN1cnJlbmN5OiBzdHJpbmcsIGN1cnJlbmN5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbmN5TWFwcGluZyA9IENVUlJFTkNZX1NZTUJPTF9NQVBbY3VycmVuY3ldO1xuICAgIGlmIChjdXJyZW5jeU1hcHBpbmcgJiYgY3VycmVuY3lNYXBwaW5nICE9PSBjdXJyZW5jeSAmJiAhZm9ybWF0ZWROdW1iZXJXaXRDdXJyZW5jeS5pbmNsdWRlcyhjdXJyZW5jeU1hcHBpbmcpKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ZWROdW1iZXJXaXRDdXJyZW5jeS5yZXBsYWNlKGN1cnJlbmN5LCBjdXJyZW5jeU1hcHBpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0ZWROdW1iZXJXaXRDdXJyZW5jeTtcbiAgfVxufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { formatDate } from '@angular/common';
2
+ /**
3
+ * Due to limitations of the native html datepicker this validator is needed:
4
+ * In the datepicker the min and max values only apply if the date is altered e.g. via scrolling.
5
+ * It is still possible to manually input a value lower or higher than min and max value.
6
+ */
7
+ export function ValidateDateInForeseeableFuture(control) {
8
+ // matches yyyy-mm-dd
9
+ const dateRegex = /^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/;
10
+ if (control.value && dateRegex.test(control.value)) {
11
+ const today = formatDate(new Date(), 'yyyy-MM-dd', 'en');
12
+ const maxDate = '2999-12-31';
13
+ if (control.value < today || control.value > maxDate) {
14
+ return {
15
+ dateInForseeableFuture: {
16
+ valid: false
17
+ }
18
+ };
19
+ }
20
+ else {
21
+ return null;
22
+ }
23
+ }
24
+ return null;
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbi1mb3Jlc2VlYWJsZS1mdXR1cmUudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvdmFsaWRhdG9ycy9kYXRlLWluLWZvcmVzZWVhYmxlLWZ1dHVyZS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzdDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBQUMsT0FBd0I7SUFDdEUscUJBQXFCO0lBQ3JCLE1BQU0sU0FBUyxHQUFHLG9EQUFvRCxDQUFDO0lBRXZFLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNsRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFekQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO1FBQzdCLElBQUksT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLEVBQUU7WUFDcEQsT0FBTztnQkFDTCxzQkFBc0IsRUFBRTtvQkFDdEIsS0FBSyxFQUFFLEtBQUs7aUJBQ2I7YUFDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdERhdGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIER1ZSB0byBsaW1pdGF0aW9ucyBvZiB0aGUgbmF0aXZlIGh0bWwgZGF0ZXBpY2tlciB0aGlzIHZhbGlkYXRvciBpcyBuZWVkZWQ6XG4gKiBJbiB0aGUgZGF0ZXBpY2tlciB0aGUgbWluIGFuZCBtYXggdmFsdWVzIG9ubHkgYXBwbHkgaWYgdGhlIGRhdGUgaXMgYWx0ZXJlZCBlLmcuIHZpYSBzY3JvbGxpbmcuXG4gKiBJdCBpcyBzdGlsbCBwb3NzaWJsZSB0byBtYW51YWxseSBpbnB1dCBhIHZhbHVlIGxvd2VyIG9yIGhpZ2hlciB0aGFuIG1pbiBhbmQgbWF4IHZhbHVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVmFsaWRhdGVEYXRlSW5Gb3Jlc2VlYWJsZUZ1dHVyZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgLy8gbWF0Y2hlcyB5eXl5LW1tLWRkXG4gIGNvbnN0IGRhdGVSZWdleCA9IC9eXFxkezR9XFwtKDBbMS05XXwxWzAxMl0pXFwtKDBbMS05XXxbMTJdWzAtOV18M1swMV0pJC87XG5cbiAgaWYgKGNvbnRyb2wudmFsdWUgJiYgZGF0ZVJlZ2V4LnRlc3QoY29udHJvbC52YWx1ZSkpIHtcbiAgICBjb25zdCB0b2RheSA9IGZvcm1hdERhdGUobmV3IERhdGUoKSwgJ3l5eXktTU0tZGQnLCAnZW4nKTtcblxuICAgIGNvbnN0IG1heERhdGUgPSAnMjk5OS0xMi0zMSc7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPCB0b2RheSB8fCBjb250cm9sLnZhbHVlID4gbWF4RGF0ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0ZUluRm9yc2VlYWJsZUZ1dHVyZToge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iXX0=