@leanix/components 0.2.228 → 0.2.231

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) 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} +453 -638
  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/lib/core-ui/functions/core-css.helpers.d.ts +7 -0
  119. package/package.json +23 -9
  120. package/bundles/leanix-components.umd.js +0 -7352
  121. package/bundles/leanix-components.umd.js.map +0 -1
  122. package/esm2015/index.js +0 -119
  123. package/esm2015/index.js.map +0 -1
  124. package/esm2015/leanix-components.js +0 -5
  125. package/esm2015/leanix-components.js.map +0 -1
  126. package/esm2015/lib/core-ui/annotations/required.js +0 -33
  127. package/esm2015/lib/core-ui/annotations/required.js.map +0 -1
  128. package/esm2015/lib/core-ui/components/badge/badge.component.js +0 -29
  129. package/esm2015/lib/core-ui/components/badge/badge.component.js.map +0 -1
  130. package/esm2015/lib/core-ui/components/button/button.component.js +0 -78
  131. package/esm2015/lib/core-ui/components/button/button.component.js.map +0 -1
  132. package/esm2015/lib/core-ui/components/button-group/button-group.component.js +0 -32
  133. package/esm2015/lib/core-ui/components/button-group/button-group.component.js.map +0 -1
  134. package/esm2015/lib/core-ui/components/card/card.component.js +0 -23
  135. package/esm2015/lib/core-ui/components/card/card.component.js.map +0 -1
  136. package/esm2015/lib/core-ui/components/collapsible/collapsible.component.js +0 -58
  137. package/esm2015/lib/core-ui/components/collapsible/collapsible.component.js.map +0 -1
  138. package/esm2015/lib/core-ui/components/colored-label/colored-label.component.js +0 -39
  139. package/esm2015/lib/core-ui/components/colored-label/colored-label.component.js.map +0 -1
  140. package/esm2015/lib/core-ui/components/ellipsis/ellipsis.component.js +0 -74
  141. package/esm2015/lib/core-ui/components/ellipsis/ellipsis.component.js.map +0 -1
  142. package/esm2015/lib/core-ui/components/icon-scale/icon-scale.component.js +0 -46
  143. package/esm2015/lib/core-ui/components/icon-scale/icon-scale.component.js.map +0 -1
  144. package/esm2015/lib/core-ui/components/spinner/spinner.component.js +0 -30
  145. package/esm2015/lib/core-ui/components/spinner/spinner.component.js.map +0 -1
  146. package/esm2015/lib/core-ui/components/table/table-header/table-header.component.js +0 -60
  147. package/esm2015/lib/core-ui/components/table/table-header/table-header.component.js.map +0 -1
  148. package/esm2015/lib/core-ui/components/table/table.component.js +0 -70
  149. package/esm2015/lib/core-ui/components/table/table.component.js.map +0 -1
  150. package/esm2015/lib/core-ui/components/tiny-spinner/tiny-spinner.component.js +0 -14
  151. package/esm2015/lib/core-ui/components/tiny-spinner/tiny-spinner.component.js.map +0 -1
  152. package/esm2015/lib/core-ui/core-ui.constants.js +0 -13
  153. package/esm2015/lib/core-ui/core-ui.constants.js.map +0 -1
  154. package/esm2015/lib/core-ui/core-ui.module.js +0 -177
  155. package/esm2015/lib/core-ui/core-ui.module.js.map +0 -1
  156. package/esm2015/lib/core-ui/directives/after-view-init.directive.js +0 -30
  157. package/esm2015/lib/core-ui/directives/after-view-init.directive.js.map +0 -1
  158. package/esm2015/lib/core-ui/directives/autoclose-group.service.js +0 -38
  159. package/esm2015/lib/core-ui/directives/autoclose-group.service.js.map +0 -1
  160. package/esm2015/lib/core-ui/directives/autoclose.directive.js +0 -40
  161. package/esm2015/lib/core-ui/directives/autoclose.directive.js.map +0 -1
  162. package/esm2015/lib/core-ui/directives/autofocus.directive.js +0 -27
  163. package/esm2015/lib/core-ui/directives/autofocus.directive.js.map +0 -1
  164. package/esm2015/lib/core-ui/directives/html.directive.js +0 -30
  165. package/esm2015/lib/core-ui/directives/html.directive.js.map +0 -1
  166. package/esm2015/lib/core-ui/functions/core-css.helpers.js +0 -23
  167. package/esm2015/lib/core-ui/functions/core-css.helpers.js.map +0 -1
  168. package/esm2015/lib/core-ui/pipes/br.pipe.js +0 -23
  169. package/esm2015/lib/core-ui/pipes/br.pipe.js.map +0 -1
  170. package/esm2015/lib/core-ui/pipes/contrast-color.pipe.js +0 -20
  171. package/esm2015/lib/core-ui/pipes/contrast-color.pipe.js.map +0 -1
  172. package/esm2015/lib/core-ui/pipes/custom-date.pipe.js +0 -27
  173. package/esm2015/lib/core-ui/pipes/custom-date.pipe.js.map +0 -1
  174. package/esm2015/lib/core-ui/pipes/highlight-range.pipe.js +0 -21
  175. package/esm2015/lib/core-ui/pipes/highlight-range.pipe.js.map +0 -1
  176. package/esm2015/lib/core-ui/pipes/highlight-term.pipe.js +0 -38
  177. package/esm2015/lib/core-ui/pipes/highlight-term.pipe.js.map +0 -1
  178. package/esm2015/lib/core-ui/pipes/lx-is-uuid.pipe.js +0 -21
  179. package/esm2015/lib/core-ui/pipes/lx-is-uuid.pipe.js.map +0 -1
  180. package/esm2015/lib/core-ui/pipes/lx-time-ago.pipe.js +0 -25
  181. package/esm2015/lib/core-ui/pipes/lx-time-ago.pipe.js.map +0 -1
  182. package/esm2015/lib/core-ui/pipes/lx-translate.pipe.js +0 -46
  183. package/esm2015/lib/core-ui/pipes/lx-translate.pipe.js.map +0 -1
  184. package/esm2015/lib/core-ui/pipes/markdown.pipe.js +0 -29
  185. package/esm2015/lib/core-ui/pipes/markdown.pipe.js.map +0 -1
  186. package/esm2015/lib/core-ui/pipes/nbsp.pipe.js +0 -14
  187. package/esm2015/lib/core-ui/pipes/nbsp.pipe.js.map +0 -1
  188. package/esm2015/lib/core-ui/pipes/sort.pipe.js +0 -52
  189. package/esm2015/lib/core-ui/pipes/sort.pipe.js.map +0 -1
  190. package/esm2015/lib/core-ui/pipes/translation-after.pipe.js +0 -28
  191. package/esm2015/lib/core-ui/pipes/translation-after.pipe.js.map +0 -1
  192. package/esm2015/lib/core-ui/pipes/translation-before.pipe.js +0 -53
  193. package/esm2015/lib/core-ui/pipes/translation-before.pipe.js.map +0 -1
  194. package/esm2015/lib/core-ui/pipes/translation-between.pipe.js +0 -67
  195. package/esm2015/lib/core-ui/pipes/translation-between.pipe.js.map +0 -1
  196. package/esm2015/lib/core-ui/pipes/unescape-curly-braces.pipe.js +0 -16
  197. package/esm2015/lib/core-ui/pipes/unescape-curly-braces.pipe.js.map +0 -1
  198. package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js +0 -74
  199. package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js.map +0 -1
  200. package/esm2015/lib/core-ui/tooltip/tooltip-position.interface.js +0 -7
  201. package/esm2015/lib/core-ui/tooltip/tooltip-position.interface.js.map +0 -1
  202. package/esm2015/lib/core-ui/tooltip/tooltip.component.js +0 -30
  203. package/esm2015/lib/core-ui/tooltip/tooltip.component.js.map +0 -1
  204. package/esm2015/lib/core-ui/tooltip/tooltip.directive.js +0 -107
  205. package/esm2015/lib/core-ui/tooltip/tooltip.directive.js.map +0 -1
  206. package/esm2015/lib/core-ui/tooltip/tooltip.module.js +0 -21
  207. package/esm2015/lib/core-ui/tooltip/tooltip.module.js.map +0 -1
  208. package/esm2015/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.js +0 -108
  209. package/esm2015/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.js.map +0 -1
  210. package/esm2015/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.js +0 -38
  211. package/esm2015/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.js.map +0 -1
  212. package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js +0 -223
  213. package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js.map +0 -1
  214. package/esm2015/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.js +0 -140
  215. package/esm2015/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.js.map +0 -1
  216. package/esm2015/lib/forms-ui/components/currency/currency-input.component.js +0 -147
  217. package/esm2015/lib/forms-ui/components/currency/currency-input.component.js.map +0 -1
  218. package/esm2015/lib/forms-ui/components/currency/currency-symbol-map.constant.js +0 -105
  219. package/esm2015/lib/forms-ui/components/currency/currency-symbol-map.constant.js.map +0 -1
  220. package/esm2015/lib/forms-ui/components/currency/currency-symbol.component.js +0 -28
  221. package/esm2015/lib/forms-ui/components/currency/currency-symbol.component.js.map +0 -1
  222. package/esm2015/lib/forms-ui/components/date-input/date-input.component.js +0 -276
  223. package/esm2015/lib/forms-ui/components/date-input/date-input.component.js.map +0 -1
  224. package/esm2015/lib/forms-ui/components/drag-and-drop-list/constants.js +0 -5
  225. package/esm2015/lib/forms-ui/components/drag-and-drop-list/constants.js.map +0 -1
  226. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.js +0 -54
  227. 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
  228. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js +0 -107
  229. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js.map +0 -1
  230. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.js +0 -25
  231. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.js.map +0 -1
  232. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.js +0 -133
  233. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.js.map +0 -1
  234. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.js +0 -37
  235. package/esm2015/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.js.map +0 -1
  236. package/esm2015/lib/forms-ui/components/error-message/error-message.component.js +0 -29
  237. package/esm2015/lib/forms-ui/components/error-message/error-message.component.js.map +0 -1
  238. package/esm2015/lib/forms-ui/components/form-error/form-error.component.js +0 -44
  239. package/esm2015/lib/forms-ui/components/form-error/form-error.component.js.map +0 -1
  240. package/esm2015/lib/forms-ui/components/icon/icon.component.js +0 -49
  241. package/esm2015/lib/forms-ui/components/icon/icon.component.js.map +0 -1
  242. package/esm2015/lib/forms-ui/components/input/input.component.js +0 -51
  243. package/esm2015/lib/forms-ui/components/input/input.component.js.map +0 -1
  244. package/esm2015/lib/forms-ui/components/keyboard-select.directive.js +0 -117
  245. package/esm2015/lib/forms-ui/components/keyboard-select.directive.js.map +0 -1
  246. package/esm2015/lib/forms-ui/components/multi-select/multi-select.component.js +0 -257
  247. package/esm2015/lib/forms-ui/components/multi-select/multi-select.component.js.map +0 -1
  248. package/esm2015/lib/forms-ui/components/option/option.component.js +0 -85
  249. package/esm2015/lib/forms-ui/components/option/option.component.js.map +0 -1
  250. package/esm2015/lib/forms-ui/components/option-group/option-group.component.js +0 -34
  251. package/esm2015/lib/forms-ui/components/option-group/option-group.component.js.map +0 -1
  252. package/esm2015/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.js +0 -105
  253. package/esm2015/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.js.map +0 -1
  254. package/esm2015/lib/forms-ui/components/options-dropdown/options-dropdown.component.js +0 -169
  255. package/esm2015/lib/forms-ui/components/options-dropdown/options-dropdown.component.js.map +0 -1
  256. package/esm2015/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.js +0 -96
  257. package/esm2015/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.js.map +0 -1
  258. package/esm2015/lib/forms-ui/components/picker/picker-trigger.directive.js +0 -36
  259. package/esm2015/lib/forms-ui/components/picker/picker-trigger.directive.js.map +0 -1
  260. package/esm2015/lib/forms-ui/components/picker/picker.component.js +0 -210
  261. package/esm2015/lib/forms-ui/components/picker/picker.component.js.map +0 -1
  262. package/esm2015/lib/forms-ui/components/picker-option/picker-option.component.js +0 -124
  263. package/esm2015/lib/forms-ui/components/picker-option/picker-option.component.js.map +0 -1
  264. package/esm2015/lib/forms-ui/components/pill-item/pill-item.component.js +0 -37
  265. package/esm2015/lib/forms-ui/components/pill-item/pill-item.component.js.map +0 -1
  266. package/esm2015/lib/forms-ui/components/pill-list/pill-list.component.js +0 -64
  267. package/esm2015/lib/forms-ui/components/pill-list/pill-list.component.js.map +0 -1
  268. package/esm2015/lib/forms-ui/components/responsive-input/responsive-input.component.js +0 -104
  269. package/esm2015/lib/forms-ui/components/responsive-input/responsive-input.component.js.map +0 -1
  270. package/esm2015/lib/forms-ui/components/single-select/single-select.component.js +0 -279
  271. package/esm2015/lib/forms-ui/components/single-select/single-select.component.js.map +0 -1
  272. package/esm2015/lib/forms-ui/components/slider-toggle/slider-toggle.component.js +0 -47
  273. package/esm2015/lib/forms-ui/components/slider-toggle/slider-toggle.component.js.map +0 -1
  274. package/esm2015/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.js +0 -56
  275. package/esm2015/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.js.map +0 -1
  276. package/esm2015/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.js +0 -25
  277. package/esm2015/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.js.map +0 -1
  278. package/esm2015/lib/forms-ui/directives/form-error.directive.js +0 -111
  279. package/esm2015/lib/forms-ui/directives/form-error.directive.js.map +0 -1
  280. package/esm2015/lib/forms-ui/directives/form-submit.directive.js +0 -28
  281. package/esm2015/lib/forms-ui/directives/form-submit.directive.js.map +0 -1
  282. package/esm2015/lib/forms-ui/directives/keyboard-action-source.directive.js +0 -53
  283. package/esm2015/lib/forms-ui/directives/keyboard-action-source.directive.js.map +0 -1
  284. package/esm2015/lib/forms-ui/directives/mark-invalid.directive.js +0 -38
  285. package/esm2015/lib/forms-ui/directives/mark-invalid.directive.js.map +0 -1
  286. package/esm2015/lib/forms-ui/directives/select-dropdown.directive.js +0 -31
  287. package/esm2015/lib/forms-ui/directives/select-dropdown.directive.js.map +0 -1
  288. package/esm2015/lib/forms-ui/directives/selectable-item.directive.js +0 -33
  289. package/esm2015/lib/forms-ui/directives/selectable-item.directive.js.map +0 -1
  290. package/esm2015/lib/forms-ui/directives/selected-option.directive.js +0 -26
  291. package/esm2015/lib/forms-ui/directives/selected-option.directive.js.map +0 -1
  292. package/esm2015/lib/forms-ui/forms-ui.module.js +0 -236
  293. package/esm2015/lib/forms-ui/forms-ui.module.js.map +0 -1
  294. package/esm2015/lib/forms-ui/helpers/key-codes.constants.js +0 -11
  295. package/esm2015/lib/forms-ui/helpers/key-codes.constants.js.map +0 -1
  296. package/esm2015/lib/forms-ui/helpers/keyboard-navigation.helpers.js +0 -38
  297. package/esm2015/lib/forms-ui/helpers/keyboard-navigation.helpers.js.map +0 -1
  298. package/esm2015/lib/forms-ui/models/base-select.directive.js +0 -148
  299. package/esm2015/lib/forms-ui/models/base-select.directive.js.map +0 -1
  300. package/esm2015/lib/forms-ui/models/dropdown-item.interface.js +0 -2
  301. package/esm2015/lib/forms-ui/models/dropdown-item.interface.js.map +0 -1
  302. package/esm2015/lib/forms-ui/models/single-select-padding.interface.js +0 -2
  303. package/esm2015/lib/forms-ui/models/single-select-padding.interface.js.map +0 -1
  304. package/esm2015/lib/forms-ui/models/sorting.interface.js +0 -7
  305. package/esm2015/lib/forms-ui/models/sorting.interface.js.map +0 -1
  306. package/esm2015/lib/forms-ui/pipes/filter-selection.pipe.js +0 -30
  307. package/esm2015/lib/forms-ui/pipes/filter-selection.pipe.js.map +0 -1
  308. package/esm2015/lib/forms-ui/pipes/filter-term.pipe.js +0 -26
  309. package/esm2015/lib/forms-ui/pipes/filter-term.pipe.js.map +0 -1
  310. package/esm2015/lib/forms-ui/pipes/format-number.pipe.js +0 -65
  311. package/esm2015/lib/forms-ui/pipes/format-number.pipe.js.map +0 -1
  312. package/esm2015/lib/forms-ui/validators/date-in-foreseeable-future.validator.js +0 -26
  313. package/esm2015/lib/forms-ui/validators/date-in-foreseeable-future.validator.js.map +0 -1
  314. package/esm2015/lib/modal-ui/components/modal/modal.component.js +0 -214
  315. package/esm2015/lib/modal-ui/components/modal/modal.component.js.map +0 -1
  316. package/esm2015/lib/modal-ui/components/modal-footer/modal-footer.component.js +0 -15
  317. package/esm2015/lib/modal-ui/components/modal-footer/modal-footer.component.js.map +0 -1
  318. package/esm2015/lib/modal-ui/components/modal-header/modal-header.component.js +0 -27
  319. package/esm2015/lib/modal-ui/components/modal-header/modal-header.component.js.map +0 -1
  320. package/esm2015/lib/modal-ui/directives/modal-content.directive.js +0 -13
  321. package/esm2015/lib/modal-ui/directives/modal-content.directive.js.map +0 -1
  322. package/esm2015/lib/modal-ui/modal.constants.js +0 -3
  323. package/esm2015/lib/modal-ui/modal.constants.js.map +0 -1
  324. package/esm2015/lib/modal-ui/modal.module.js +0 -26
  325. package/esm2015/lib/modal-ui/modal.module.js.map +0 -1
  326. package/esm2015/lib/popover-ui/components/popover/popover.component.js +0 -203
  327. package/esm2015/lib/popover-ui/components/popover/popover.component.js.map +0 -1
  328. package/esm2015/lib/popover-ui/directives/popover-click.directive.js +0 -51
  329. package/esm2015/lib/popover-ui/directives/popover-click.directive.js.map +0 -1
  330. package/esm2015/lib/popover-ui/directives/popover-content.directive.js +0 -16
  331. package/esm2015/lib/popover-ui/directives/popover-content.directive.js.map +0 -1
  332. package/esm2015/lib/popover-ui/directives/popover-hover.directive.js +0 -87
  333. package/esm2015/lib/popover-ui/directives/popover-hover.directive.js.map +0 -1
  334. package/esm2015/lib/popover-ui/popover-ui.module.js +0 -22
  335. package/esm2015/lib/popover-ui/popover-ui.module.js.map +0 -1
  336. package/esm2015/lib/shared/date-helpers.js +0 -35
  337. package/esm2015/lib/shared/date-helpers.js.map +0 -1
  338. package/esm2015/lib/shared/misc-helpers.js +0 -34
  339. package/esm2015/lib/shared/misc-helpers.js.map +0 -1
  340. package/esm2015/lib/shared/observe.js +0 -40
  341. package/esm2015/lib/shared/observe.js.map +0 -1
  342. package/esm2015/lib/tab-ui/components/tab/tab.component.js +0 -75
  343. package/esm2015/lib/tab-ui/components/tab/tab.component.js.map +0 -1
  344. package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js +0 -78
  345. package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js.map +0 -1
  346. package/esm2015/lib/tab-ui/tab-ui.module.js +0 -22
  347. package/esm2015/lib/tab-ui/tab-ui.module.js.map +0 -1
  348. package/fesm2015/leanix-components.js.map +0 -1
@@ -0,0 +1,105 @@
1
+ // Currency symbol map extracted from: http://symbologic.info/currency.htm
2
+ // Using custom symbology since Angular 2 currency pipe does not support all currency symbols:
3
+ // https://github.com/angular/angular/issues/6724
4
+ export const CURRENCY_SYMBOL_MAP = {
5
+ AFA: '؋',
6
+ AWG: 'ƒ',
7
+ AUD: 'AU$',
8
+ ARS: 'ARS',
9
+ AZN: 'ман',
10
+ BSD: 'B$',
11
+ BDT: '৳',
12
+ BBD: 'Bds$',
13
+ BYR: 'Br',
14
+ BOB: 'Bs.',
15
+ BRL: 'R$',
16
+ GBP: '£',
17
+ BGN: 'лв',
18
+ KHR: '៛',
19
+ CAD: 'CA$',
20
+ KYD: 'KY$',
21
+ CLP: '$',
22
+ CNY: 'CN¥',
23
+ COP: 'COP',
24
+ CRC: '₡',
25
+ HRK: 'kn',
26
+ CPY: 'CPY',
27
+ CZK: 'Kč',
28
+ DKK: 'DKK',
29
+ DOP: 'RD$',
30
+ XCD: 'EC$',
31
+ EGP: 'E£',
32
+ ERN: 'Nfa',
33
+ EEK: 'EEK',
34
+ EUR: '€',
35
+ GEL: 'ლ',
36
+ GHC: 'GHC',
37
+ GIP: 'GIP',
38
+ GTQ: 'Q',
39
+ HNL: 'L',
40
+ HKD: 'HK$',
41
+ HUF: 'Ft',
42
+ ISK: 'ISK',
43
+ INR: '₹',
44
+ IDR: 'Rp',
45
+ ILS: '₪',
46
+ JMD: 'J$',
47
+ JPY: '¥',
48
+ KZT: '₸',
49
+ KES: 'KSh',
50
+ KWD: 'د.ك',
51
+ LVL: 'Ls',
52
+ LBP: 'L£',
53
+ LTL: 'Lt',
54
+ MOP: 'P',
55
+ MKD: 'ден',
56
+ MGA: 'Ar',
57
+ MYR: 'RM',
58
+ BAM: 'KM',
59
+ MUR: 'Ɍs',
60
+ MXN: 'MX$',
61
+ MZM: 'MT',
62
+ NPR: 'NɌs',
63
+ ANG: 'ƒ',
64
+ TWD: 'NT$',
65
+ NZD: 'NZ$',
66
+ NIO: 'C$',
67
+ NGN: '₦',
68
+ KPW: '₩',
69
+ NOK: 'NOK',
70
+ OMR: 'ر.ع.',
71
+ PKR: 'Ɍs',
72
+ PYG: '₲',
73
+ PEN: 'S/.',
74
+ PHP: '₱',
75
+ QAR: 'ر.ق',
76
+ RON: 'L',
77
+ RUB: 'руб',
78
+ SAR: 'ر.س',
79
+ CSD: 'CSD',
80
+ SCR: 'Ɍs',
81
+ SGD: 'S$',
82
+ SKK: 'SKK',
83
+ SIT: 'SIT',
84
+ ZAR: 'R',
85
+ KRW: 'KRW',
86
+ LKR: 'Ɍs',
87
+ SRD: '$',
88
+ SEK: 'SEK',
89
+ CHF: 'Fr',
90
+ TZS: 'TSh',
91
+ THB: '฿',
92
+ TTD: 'TT$',
93
+ TRY: 'TL',
94
+ AED: 'د.إ',
95
+ USD: '$',
96
+ UGX: 'USh',
97
+ UAH: '₴',
98
+ UYU: '$U',
99
+ UZS: 'лв',
100
+ VEB: 'VEB',
101
+ VND: '₫',
102
+ AMK: 'AMK',
103
+ ZWD: 'ZWD'
104
+ };
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3ltYm9sLW1hcC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvY3VycmVuY3kvY3VycmVuY3ktc3ltYm9sLW1hcC5jb25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7QUFDMUUsOEZBQThGO0FBQzlGLGlEQUFpRDtBQUNqRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBOEI7SUFDNUQsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsdUJBQXVCO0lBQzVCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsTUFBTTtJQUNYLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLGdCQUFnQjtJQUNyQixHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsT0FBTztJQUNaLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxVQUFVO0lBQ2YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxRQUFRO0lBQ2IsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsVUFBVTtJQUNmLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLGlCQUFpQjtJQUN0QixHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxVQUFVO0lBQ2YsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSx1QkFBdUI7SUFDNUIsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxJQUFJO0lBQ1QsR0FBRyxFQUFFLFVBQVU7SUFDZixHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxrQkFBa0I7SUFDdkIsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsR0FBRyxFQUFFLHVCQUF1QjtJQUM1QixHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsUUFBUTtJQUNiLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsR0FBRztJQUNSLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsT0FBTztJQUNaLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsSUFBSTtJQUNULEdBQUcsRUFBRSxpQkFBaUI7SUFDdEIsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFFBQVE7SUFDYixHQUFHLEVBQUUsZ0JBQWdCO0lBQ3JCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEdBQUc7SUFDUixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0NBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEN1cnJlbmN5IHN5bWJvbCBtYXAgZXh0cmFjdGVkIGZyb206IGh0dHA6Ly9zeW1ib2xvZ2ljLmluZm8vY3VycmVuY3kuaHRtXG4vLyBVc2luZyBjdXN0b20gc3ltYm9sb2d5IHNpbmNlIEFuZ3VsYXIgMiBjdXJyZW5jeSBwaXBlIGRvZXMgbm90IHN1cHBvcnQgYWxsIGN1cnJlbmN5IHN5bWJvbHM6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy82NzI0XG5leHBvcnQgY29uc3QgQ1VSUkVOQ1lfU1lNQk9MX01BUDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgQUZBOiAnJiN4NjBiOycsXG4gIEFXRzogJ8aSJyxcbiAgQVVEOiAnQVUkJyxcbiAgQVJTOiAnQVJTJyxcbiAgQVpOOiAnJiMxMDg0OyYjMTA3MjsmIzEwODU7JyxcbiAgQlNEOiAnQiQnLFxuICBCRFQ6ICcmIzI1NDc7JyxcbiAgQkJEOiAnQmRzJCcsXG4gIEJZUjogJ0JyJyxcbiAgQk9COiAnQnMuJyxcbiAgQlJMOiAnUiQnLFxuICBHQlA6ICfCoycsXG4gIEJHTjogJyYjMTA4MzsmIzEwNzQ7JyxcbiAgS0hSOiAnJiM2MTA3OycsXG4gIENBRDogJ0NBJCcsXG4gIEtZRDogJ0tZJiMzNjsnLFxuICBDTFA6ICcmIzM2OycsXG4gIENOWTogJ0NOwqUnLFxuICBDT1A6ICdDT1AnLFxuICBDUkM6ICcmIzgzNTM7JyxcbiAgSFJLOiAna24nLFxuICBDUFk6ICdDUFknLFxuICBDWks6ICdLJiMyNjk7JyxcbiAgREtLOiAnREtLJyxcbiAgRE9QOiAnUkQmIzM2OycsXG4gIFhDRDogJ0VDJCcsXG4gIEVHUDogJ0UmcG91bmQ7JyxcbiAgRVJOOiAnTmZhJyxcbiAgRUVLOiAnRUVLJyxcbiAgRVVSOiAnJmV1cm87JyxcbiAgR0VMOiAnJiM0MzE0OycsXG4gIEdIQzogJ0dIQycsXG4gIEdJUDogJ0dJUCcsXG4gIEdUUTogJ1EnLFxuICBITkw6ICdMJyxcbiAgSEtEOiAnSEskJyxcbiAgSFVGOiAnRnQnLFxuICBJU0s6ICdJU0snLFxuICBJTlI6ICfigrknLFxuICBJRFI6ICdScCcsXG4gIElMUzogJ+KCqicsXG4gIEpNRDogJ0okJyxcbiAgSlBZOiAnwqUnLFxuICBLWlQ6ICcmI3gyMGI4OycsXG4gIEtFUzogJ0tTaCcsXG4gIEtXRDogJyYjMTU4MzsuJiMxNjAzOycsXG4gIExWTDogJ0xzJyxcbiAgTEJQOiAnTCZwb3VuZDsnLFxuICBMVEw6ICdMdCcsXG4gIE1PUDogJ1AnLFxuICBNS0Q6ICcmIzEwNzY7JiMxMDc3OyYjMTA4NTsnLFxuICBNR0E6ICdBcicsXG4gIE1ZUjogJ1JNJyxcbiAgQkFNOiAnS00nLFxuICBNVVI6ICcmIzU4ODtzJyxcbiAgTVhOOiAnTVgkJyxcbiAgTVpNOiAnTVQnLFxuICBOUFI6ICdOJiM1ODg7cycsXG4gIEFORzogJyYjMTMxOycsXG4gIFRXRDogJ05UJCcsXG4gIE5aRDogJ05aJCcsXG4gIE5JTzogJ0MmIzM2OycsXG4gIE5HTjogJyYjODM1ODsnLFxuICBLUFc6ICcmIzgzNjE7JyxcbiAgTk9LOiAnTk9LJyxcbiAgT01SOiAnJiMxNTg1Oy4mIzE1OTM7LicsXG4gIFBLUjogJyYjNTg4O3MnLFxuICBQWUc6ICcmIzgzNzA7JyxcbiAgUEVOOiAnUy8uJyxcbiAgUEhQOiAnJiM4MzY5OycsXG4gIFFBUjogJyYjMTU4NTsuJiMxNjAyOycsXG4gIFJPTjogJ0wnLFxuICBSVUI6ICcmIzEwODg7JiMxMDkxOyYjMTA3MzsnLFxuICBTQVI6ICcmIzE1ODU7LiYjMTU4NzsnLFxuICBDU0Q6ICdDU0QnLFxuICBTQ1I6ICcmIzU4ODtzJyxcbiAgU0dEOiAnUyYjMzY7JyxcbiAgU0tLOiAnU0tLJyxcbiAgU0lUOiAnU0lUJyxcbiAgWkFSOiAnUicsXG4gIEtSVzogJ0tSVycsXG4gIExLUjogJyYjNTg4O3MnLFxuICBTUkQ6ICcmIzM2OycsXG4gIFNFSzogJ1NFSycsXG4gIENIRjogJ0ZyJyxcbiAgVFpTOiAnVFNoJyxcbiAgVEhCOiAnJiMzNjQ3OycsXG4gIFRURDogJ1RUJiMzNjsnLFxuICBUUlk6ICdUTCcsXG4gIEFFRDogJyYjMTU4MzsuJiMxNTczOycsXG4gIFVTRDogJyQnLFxuICBVR1g6ICdVU2gnLFxuICBVQUg6ICcmIzgzNzI7JyxcbiAgVVlVOiAnJiMzNjtVJyxcbiAgVVpTOiAnJiMxMDgzOyYjMTA3NDsnLFxuICBWRUI6ICdWRUInLFxuICBWTkQ6ICfigqsnLFxuICBBTUs6ICdBTUsnLFxuICBaV0Q6ICdaV0QnXG59O1xuIl19
@@ -0,0 +1,25 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, Input } from '@angular/core';
3
+ import { map } from 'rxjs/operators';
4
+ import { Observe } from '../../../shared/observe';
5
+ import { CURRENCY_SYMBOL_MAP } from './currency-symbol-map.constant';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../core-ui/directives/html.directive";
8
+ import * as i2 from "@angular/common";
9
+ export class CurrencySymbolComponent {
10
+ ngOnInit() {
11
+ this.currency$ = this.code$.pipe(map((code) => CURRENCY_SYMBOL_MAP[code] || code));
12
+ }
13
+ }
14
+ CurrencySymbolComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: CurrencySymbolComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ CurrencySymbolComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: CurrencySymbolComponent, selector: "lx-currency-symbol", inputs: { code: "code" }, ngImport: i0, template: "<span [lxHtml]=\"currency$ | async\"></span>\n", directives: [{ type: i1.HtmlDirective, selector: "[lxHtml]", inputs: ["lxHtml"] }], pipes: { "async": i2.AsyncPipe } });
16
+ __decorate([
17
+ Observe('code')
18
+ ], CurrencySymbolComponent.prototype, "code$", void 0);
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: CurrencySymbolComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'lx-currency-symbol', template: "<span [lxHtml]=\"currency$ | async\"></span>\n" }]
22
+ }], propDecorators: { code: [{
23
+ type: Input
24
+ }], code$: [] } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktc3ltYm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvY3VycmVuY3kvY3VycmVuY3ktc3ltYm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvY3VycmVuY3kvY3VycmVuY3ktc3ltYm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBTXJFLE1BQU0sT0FBTyx1QkFBdUI7SUFLbEMsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7O29IQVBVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLG9GQ1ZwQyxnREFDQTtBRFdtQjtJQUFoQixPQUFPLENBQUMsTUFBTSxDQUFDO3NEQUE0QjsyRkFGakMsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFJckIsSUFBSTtzQkFBWixLQUFLO2dCQUNXLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvb2JzZXJ2ZSc7XG5pbXBvcnQgeyBDVVJSRU5DWV9TWU1CT0xfTUFQIH0gZnJvbSAnLi9jdXJyZW5jeS1zeW1ib2wtbWFwLmNvbnN0YW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtY3VycmVuY3ktc3ltYm9sJyxcbiAgdGVtcGxhdGVVcmw6ICdjdXJyZW5jeS1zeW1ib2wuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5U3ltYm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY29kZSE6IHN0cmluZztcbiAgQE9ic2VydmUoJ2NvZGUnKSBjb2RlJCE6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgY3VycmVuY3kkITogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3VycmVuY3kkID0gdGhpcy5jb2RlJC5waXBlKG1hcCgoY29kZSkgPT4gQ1VSUkVOQ1lfU1lNQk9MX01BUFtjb2RlXSB8fCBjb2RlKSk7XG4gIH1cbn1cbiIsIjxzcGFuIFtseEh0bWxdPVwiY3VycmVuY3kkIHwgYXN5bmNcIj48L3NwYW4+XG4iXX0=
@@ -0,0 +1,270 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild } from '@angular/core';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { format, startOfDay } from 'date-fns';
5
+ import { DateFormatter, DatePickerComponent } from 'ngx-bootstrap/datepicker';
6
+ import { Subject } from 'rxjs';
7
+ import { takeUntil } from 'rxjs/operators';
8
+ import { DATE_FN_LOCALE, DATE_FORMATS } from '../../../core-ui/core-ui.constants';
9
+ import { convertDateToLocaleDateString, createDateFromDateString, isValidDateString } from '../../../shared/date-helpers';
10
+ import { Observe } from '../../../shared/observe';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "ngx-bootstrap/datepicker";
13
+ import * as i2 from "@angular/common";
14
+ import * as i3 from "@angular/forms";
15
+ import * as i4 from "../../../core-ui/pipes/custom-date.pipe";
16
+ const DEFAULT_MIN_DATE = new Date('0000-01-01');
17
+ const DEFAULT_MAX_DATE = new Date('9999-12-31');
18
+ export class DateInputComponent {
19
+ constructor(cd, dateFormatsProvider, getDateFnLocale) {
20
+ this.cd = cd;
21
+ this.dateFormatsProvider = dateFormatsProvider;
22
+ this.getDateFnLocale = getDateFnLocale;
23
+ this.date = null; // main date input; this is also the one used for ngModel & formControl!
24
+ this.dateChange = new EventEmitter(); // triggered whenever the date changes
25
+ this.dateString = null; // secondary, alternative input with date string
26
+ this.dateStringChange = new EventEmitter(); // triggered whenever the date changes
27
+ // Determine whether formGroup's value accessor is accessing the selected IDs or the selected objects
28
+ this.valueAccessor = 'date';
29
+ this.inputId = ''; // id to be set on input to correspond to outside label
30
+ this.renderingStyle = 'INPUT';
31
+ this.placeholder = 'yyyy-mm-dd';
32
+ //--- Inputs replicated from datepicker; (selectionDone) is not needed, as (dateChange) is equivalen
33
+ this.datepickerMode = 'day'; // sets datepicker mode, supports: day, month, year
34
+ this.minDate = DEFAULT_MIN_DATE; // oldest selectable date
35
+ this.maxDate = DEFAULT_MAX_DATE; // latest selectable date
36
+ this.minMode = 'day'; // set lower datepicker mode, supports: day, month, year
37
+ this.maxMode = 'year'; // sets upper datepicker mode, supports: day, month, year
38
+ this.showWeeks = true; // if false week numbers will be hidden
39
+ this.formatDay = 'DD'; // format of day in month
40
+ this.formatMonth = 'MMMM'; // format of month in year
41
+ this.formatYear = 'YYYY'; // format of year in year range
42
+ this.formatDayHeader = 'dd'; // format of day in week header
43
+ this.formatDayTitle = 'MMMM YYYY'; // format of title when selecting day
44
+ this.formatMonthTitle = 'YYYY'; // format of title when selecting month
45
+ this.startingDay = 0; // starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday) public
46
+ this.yearRange = 20; // number of years displayed in year selection
47
+ this.onlyCurrentMonth = false; // if true only dates from the currently displayed month will be shown
48
+ this.shortcutPropagation = false; // if true shortcut`s event propagation will be disabled
49
+ this.customClass = []; // array of custom css classes to be applied to
50
+ this.dateDisabled = []; // array of disabled dates if mode is day, or years, etc.
51
+ this.showDatepicker = false;
52
+ this.destroyed$ = new Subject();
53
+ this.hasError = false;
54
+ this.propagateChange = (_date) => { };
55
+ this.dateFormat = this.dateFormatsProvider.getDateFormat();
56
+ // Patch DatePicker until https://github.com/valor-software/ng2-bootstrap/issues/1385 is resolved
57
+ const writeValue = DatePickerComponent.prototype.writeValue;
58
+ DatePickerComponent.prototype.writeValue = function (value) {
59
+ if (value !== null) {
60
+ return writeValue.apply(this, arguments);
61
+ }
62
+ };
63
+ // Somehow datepicker does use a separate moment instance than we do. That one runs on locale en by default.
64
+ // So we patch the format function here to use our moment instance.
65
+ // Maybe it will be fixed with: https://github.com/valor-software/ngx-bootstrap/issues/455
66
+ const locale = this.getDateFnLocale ? this.getDateFnLocale() : null;
67
+ DateFormatter.prototype.format = function (date, f) {
68
+ return format(date, f, { locale });
69
+ };
70
+ }
71
+ ngOnInit() {
72
+ this.initDateString$.pipe(takeUntil(this.destroyed$)).subscribe((date) => {
73
+ this.initDate = createDateFromDateString(date) ?? startOfDay(new Date());
74
+ });
75
+ }
76
+ ngOnChanges(changes) {
77
+ if (changes['date']) {
78
+ this.dateString = this.date ? convertDateToLocaleDateString(this.date) : null;
79
+ }
80
+ else if (changes['dateString']) {
81
+ this.onDateStringChange(this.dateString, false);
82
+ }
83
+ }
84
+ ngOnDestroy() {
85
+ this.destroyed$.next();
86
+ }
87
+ focus() {
88
+ this.input.nativeElement.focus();
89
+ }
90
+ showPopup() {
91
+ this.showDatepicker = true;
92
+ this.cd.detectChanges();
93
+ }
94
+ togglePopup() {
95
+ this.showDatepicker = !this.showDatepicker;
96
+ }
97
+ hidePopup() {
98
+ if (this.showDatepicker) {
99
+ this.showDatepicker = false;
100
+ }
101
+ }
102
+ onTab(forward) {
103
+ if (forward && this.showDatepicker) {
104
+ this.hidePopup();
105
+ return false; // Prevent tab for now as ng2-bootstrap datepicker has a tabstop: 2 tabs needed to navigate for now
106
+ // TODO: Check again in new version
107
+ }
108
+ this.hidePopup();
109
+ return true;
110
+ }
111
+ onDateStringChange(newDateString, emit = true) {
112
+ if (isValidDateString(newDateString)) {
113
+ const date = createDateFromDateString(newDateString);
114
+ this.updateDate(date, emit);
115
+ }
116
+ else if (newDateString === null || newDateString === '') {
117
+ this.updateDate(null, emit);
118
+ }
119
+ else {
120
+ this.hasError = true;
121
+ if (this.formControl) {
122
+ this.formControl.updateValueAndValidity();
123
+ }
124
+ }
125
+ }
126
+ onSelectionDone(newDate) {
127
+ this.updateDate(newDate);
128
+ this.hidePopup();
129
+ }
130
+ onBlur() {
131
+ if (this.onTouched) {
132
+ this.onTouched();
133
+ }
134
+ }
135
+ updateDate(date, emit = true) {
136
+ this.date = date;
137
+ this.dateString = this.date ? convertDateToLocaleDateString(this.date) : '';
138
+ if (emit) {
139
+ this.dateChange.emit(date);
140
+ this.dateStringChange.emit(this.dateString);
141
+ }
142
+ this.propagateChange(date);
143
+ this.recheckErrors();
144
+ }
145
+ recheckErrors() {
146
+ this.hasError = false;
147
+ if (this.formControl) {
148
+ this.formControl.updateValueAndValidity();
149
+ }
150
+ }
151
+ //--- Implement ControlValueAccessor
152
+ /** Write a new value to the element. */
153
+ writeValue(newDate) {
154
+ if (this.valueAccessor === 'date') {
155
+ this.date = newDate;
156
+ this.dateString = convertDateToLocaleDateString(this.date);
157
+ }
158
+ else {
159
+ this.dateString = newDate;
160
+ this.onDateStringChange(this.dateString, false);
161
+ }
162
+ }
163
+ /** Set the function to be called when the control receives a change event. */
164
+ registerOnChange(fn) {
165
+ if (this.valueAccessor === 'date') {
166
+ this.dateChange.pipe(takeUntil(this.destroyed$)).subscribe(fn);
167
+ }
168
+ else if (this.valueAccessor === 'dateString') {
169
+ this.dateStringChange.pipe(takeUntil(this.destroyed$)).subscribe(fn);
170
+ }
171
+ }
172
+ /** Set the function to be called when the control receives a touch event. */
173
+ registerOnTouched(fn) {
174
+ this.onTouched = fn;
175
+ }
176
+ validate(c) {
177
+ this.formControl = c;
178
+ return this.hasError
179
+ ? {
180
+ dateFormatError: {
181
+ given: this.dateString,
182
+ format: 'yyyy-mm-dd'
183
+ }
184
+ }
185
+ : null;
186
+ }
187
+ }
188
+ DateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DateInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DATE_FORMATS }, { token: DATE_FN_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
189
+ DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: DateInputComponent, selector: "lx-date-input", inputs: { date: "date", dateString: "dateString", valueAccessor: "valueAccessor", inputId: "inputId", renderingStyle: "renderingStyle", placeholder: "placeholder", datepickerMode: "datepickerMode", initDateString: "initDateString", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", disabled: "disabled", dateDisabled: "dateDisabled" }, outputs: { dateChange: "dateChange", dateStringChange: "dateStringChange" }, providers: [
190
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
191
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
192
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n<span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"onTab(true)\"\n (keydown.shift.tab)=\"onTab(false)\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n</span>\n", styles: [".backdrop{position:fixed;top:0;right:0;bottom:0;left:0}.datepickerContainer{position:absolute;z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}\n"], components: [{ type: i1.DatePickerComponent, selector: "datepicker", inputs: ["datepickerMode", "showWeeks", "activeDate", "initDate", "minDate", "maxDate", "minMode", "maxMode", "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "startingDay", "yearRange", "onlyCurrentMonth", "shortcutPropagation", "monthColLimit", "yearColLimit", "customClass", "dateDisabled", "dayDisabled"], outputs: ["selectionDone", "activeDateChange"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "lxDate": i4.CustomDatePipe } });
193
+ __decorate([
194
+ Observe('initDateString')
195
+ ], DateInputComponent.prototype, "initDateString$", void 0);
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DateInputComponent, decorators: [{
197
+ type: Component,
198
+ args: [{ selector: 'lx-date-input', providers: [
199
+ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
200
+ { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
201
+ ], template: "<div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n<span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"onTab(true)\"\n (keydown.shift.tab)=\"onTab(false)\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n</span>\n", styles: [".backdrop{position:fixed;top:0;right:0;bottom:0;left:0}.datepickerContainer{position:absolute;z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}\n"] }]
202
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
203
+ type: Inject,
204
+ args: [DATE_FORMATS]
205
+ }] }, { type: Function, decorators: [{
206
+ type: Optional
207
+ }, {
208
+ type: Inject,
209
+ args: [DATE_FN_LOCALE]
210
+ }] }]; }, propDecorators: { date: [{
211
+ type: Input
212
+ }], dateChange: [{
213
+ type: Output
214
+ }], dateString: [{
215
+ type: Input
216
+ }], dateStringChange: [{
217
+ type: Output
218
+ }], valueAccessor: [{
219
+ type: Input
220
+ }], inputId: [{
221
+ type: Input
222
+ }], renderingStyle: [{
223
+ type: Input
224
+ }], placeholder: [{
225
+ type: Input
226
+ }], datepickerMode: [{
227
+ type: Input
228
+ }], initDateString: [{
229
+ type: Input
230
+ }], initDateString$: [], minDate: [{
231
+ type: Input
232
+ }], maxDate: [{
233
+ type: Input
234
+ }], minMode: [{
235
+ type: Input
236
+ }], maxMode: [{
237
+ type: Input
238
+ }], showWeeks: [{
239
+ type: Input
240
+ }], formatDay: [{
241
+ type: Input
242
+ }], formatMonth: [{
243
+ type: Input
244
+ }], formatYear: [{
245
+ type: Input
246
+ }], formatDayHeader: [{
247
+ type: Input
248
+ }], formatDayTitle: [{
249
+ type: Input
250
+ }], formatMonthTitle: [{
251
+ type: Input
252
+ }], startingDay: [{
253
+ type: Input
254
+ }], yearRange: [{
255
+ type: Input
256
+ }], onlyCurrentMonth: [{
257
+ type: Input
258
+ }], shortcutPropagation: [{
259
+ type: Input
260
+ }], customClass: [{
261
+ type: Input
262
+ }], disabled: [{
263
+ type: Input
264
+ }], dateDisabled: [{
265
+ type: Input
266
+ }], input: [{
267
+ type: ViewChild,
268
+ args: ['input']
269
+ }] } });
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFxQyxhQUFhLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQXVCLE1BQU0sb0NBQW9DLENBQUM7QUFDdkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFLbEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNoRCxNQUFN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QWdCO3NCQUEvQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsbUJBQW1CO3NCQUFsQyxLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBRVUsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVjLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZm9ybWF0LCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlciwgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEQVRFX0ZOX0xPQ0FMRSwgREFURV9GT1JNQVRTLCBEYXRlRm9ybWF0c1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9jb3JlLXVpLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZywgY3JlYXRlRGF0ZUZyb21EYXRlU3RyaW5nLCBpc1ZhbGlkRGF0ZVN0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlLWhlbHBlcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcblxuLy8gSW5wdXQgKyBuZzItYm9vdHN0cmFwIGRhdGVwaWNrZXJcbmV4cG9ydCB0eXBlIERhdGVJbnB1dFJlbmRlcmluZ1N0eWxlID0gJ0lOUFVUJyB8ICdMSU5LJztcblxuY29uc3QgREVGQVVMVF9NSU5fREFURSA9IG5ldyBEYXRlKCcwMDAwLTAxLTAxJyk7XG5jb25zdCBERUZBVUxUX01BWF9EQVRFID0gbmV3IERhdGUoJzk5OTktMTItMzEnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtZGF0ZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkYXRlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVJbnB1dENvbXBvbmVudCksIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlSW5wdXRDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7IC8vIG1haW4gZGF0ZSBpbnB1dDsgdGhpcyBpcyBhbHNvIHRoZSBvbmUgdXNlZCBmb3IgbmdNb2RlbCAmIGZvcm1Db250cm9sIVxuICBAT3V0cHV0KCkgZGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7IC8vIHRyaWdnZXJlZCB3aGVuZXZlciB0aGUgZGF0ZSBjaGFuZ2VzXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlU3RyaW5nOiBzdHJpbmcgfCBudWxsID0gbnVsbDsgLy8gc2Vjb25kYXJ5LCBhbHRlcm5hdGl2ZSBpbnB1dCB3aXRoIGRhdGUgc3RyaW5nXG4gIEBPdXRwdXQoKSBkYXRlU3RyaW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpOyAvLyB0cmlnZ2VyZWQgd2hlbmV2ZXIgdGhlIGRhdGUgY2hhbmdlc1xuICAvLyBEZXRlcm1pbmUgd2hldGhlciBmb3JtR3JvdXAncyB2YWx1ZSBhY2Nlc3NvciBpcyBhY2Nlc3NpbmcgdGhlIHNlbGVjdGVkIElEcyBvciB0aGUgc2VsZWN0ZWQgb2JqZWN0c1xuICBASW5wdXQoKSBwdWJsaWMgdmFsdWVBY2Nlc3NvcjogJ2RhdGUnIHwgJ2RhdGVTdHJpbmcnID0gJ2RhdGUnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnB1dElkOiBzdHJpbmcgPSAnJzsgLy8gaWQgdG8gYmUgc2V0IG9uIGlucHV0IHRvIGNvcnJlc3BvbmQgdG8gb3V0c2lkZSBsYWJlbFxuICBASW5wdXQoKSBwdWJsaWMgcmVuZGVyaW5nU3R5bGU6IERhdGVJbnB1dFJlbmRlcmluZ1N0eWxlID0gJ0lOUFVUJztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAneXl5eS1tbS1kZCc7XG5cbiAgLy8tLS0gSW5wdXRzIHJlcGxpY2F0ZWQgZnJvbSBkYXRlcGlja2VyOyAoc2VsZWN0aW9uRG9uZSkgaXMgbm90IG5lZWRlZCwgYXMgKGRhdGVDaGFuZ2UpIGlzIGVxdWl2YWxlblxuICBASW5wdXQoKSBwdWJsaWMgZGF0ZXBpY2tlck1vZGU6IHN0cmluZyA9ICdkYXknOyAvLyBzZXRzIGRhdGVwaWNrZXIgbW9kZSwgc3VwcG9ydHM6IGRheSwgbW9udGgsIHllYXJcbiAgQElucHV0KCkgaW5pdERhdGVTdHJpbmchOiBzdHJpbmc7IC8vIGRlZmF1bHQgZGF0ZSB0byBzaG93IGlmIG5nLW1vZGVsIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWRcbiAgQE9ic2VydmUoJ2luaXREYXRlU3RyaW5nJykgaW5pdERhdGVTdHJpbmckITogT2JzZXJ2YWJsZTxzdHJpbmc+OyAvLyBkZWZhdWx0IGRhdGUgdG8gc2hvdyBpZiBuZy1tb2RlbCB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5EYXRlID0gREVGQVVMVF9NSU5fREFURTsgLy8gb2xkZXN0IHNlbGVjdGFibGUgZGF0ZVxuICBASW5wdXQoKSBwdWJsaWMgbWF4RGF0ZSA9IERFRkFVTFRfTUFYX0RBVEU7IC8vIGxhdGVzdCBzZWxlY3RhYmxlIGRhdGVcbiAgQElucHV0KCkgcHVibGljIG1pbk1vZGU6IHN0cmluZyA9ICdkYXknOyAvLyBzZXQgbG93ZXIgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogZGF5LCBtb250aCwgeWVhclxuICBASW5wdXQoKSBwdWJsaWMgbWF4TW9kZTogc3RyaW5nID0gJ3llYXInOyAvLyBzZXRzIHVwcGVyIGRhdGVwaWNrZXIgbW9kZSwgc3VwcG9ydHM6IGRheSwgbW9udGgsIHllYXJcbiAgQElucHV0KCkgcHVibGljIHNob3dXZWVrczogYm9vbGVhbiA9IHRydWU7IC8vIGlmIGZhbHNlIHdlZWsgbnVtYmVycyB3aWxsIGJlIGhpZGRlblxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0RGF5OiBzdHJpbmcgPSAnREQnOyAvLyBmb3JtYXQgb2YgZGF5IGluIG1vbnRoXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXRNb250aDogc3RyaW5nID0gJ01NTU0nOyAvLyBmb3JtYXQgb2YgbW9udGggaW4geWVhclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0WWVhcjogc3RyaW5nID0gJ1lZWVknOyAvLyBmb3JtYXQgb2YgeWVhciBpbiB5ZWFyIHJhbmdlXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXlIZWFkZXI6IHN0cmluZyA9ICdkZCc7IC8vIGZvcm1hdCBvZiBkYXkgaW4gd2VlayBoZWFkZXJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdERheVRpdGxlOiBzdHJpbmcgPSAnTU1NTSBZWVlZJzsgLy8gZm9ybWF0IG9mIHRpdGxlIHdoZW4gc2VsZWN0aW5nIGRheVxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0TW9udGhUaXRsZTogc3RyaW5nID0gJ1lZWVknOyAvLyBmb3JtYXQgb2YgdGl0bGUgd2hlbiBzZWxlY3RpbmcgbW9udGhcbiAgQElucHV0KCkgc3RhcnRpbmdEYXk6IG51bWJlciA9IDA7IC8vIHN0YXJ0aW5nIGRheSBvZiB0aGUgd2VlayBmcm9tIDAtNiAoMD1TdW5kYXksIC4uLiwgNj1TYXR1cmRheSkgcHVibGljXG4gIEBJbnB1dCgpIHB1YmxpYyB5ZWFyUmFuZ2U6IG51bWJlciA9IDIwOyAvLyBudW1iZXIgb2YgeWVhcnMgZGlzcGxheWVkIGluIHllYXIgc2VsZWN0aW9uXG4gIEBJbnB1dCgpIHB1YmxpYyBvbmx5Q3VycmVudE1vbnRoOiBib29sZWFuID0gZmFsc2U7IC8vIGlmIHRydWUgb25seSBkYXRlcyBmcm9tIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoIHdpbGwgYmUgc2hvd25cbiAgQElucHV0KCkgcHVibGljIHNob3J0Y3V0UHJvcGFnYXRpb246IGJvb2xlYW4gPSBmYWxzZTsgLy8gIGlmIHRydWUgc2hvcnRjdXRgcyBldmVudCBwcm9wYWdhdGlvbiB3aWxsIGJlIGRpc2FibGVkXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzczogeyBkYXRlOiBEYXRlOyBtb2RlOiBzdHJpbmc7IGNsYXp6OiBzdHJpbmcgfVtdID0gW107IC8vIGFycmF5IG9mIGN1c3RvbSBjc3MgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvXG4gIC8vIHRhcmdldGVkIGRhdGVzXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlRGlzYWJsZWQ6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nIH1bXSA9IFtdOyAvLyBhcnJheSBvZiBkaXNhYmxlZCBkYXRlcyBpZiBtb2RlIGlzIGRheSwgb3IgeWVhcnMsIGV0Yy5cblxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBzaG93RGF0ZXBpY2tlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBkYXRlRm9ybWF0OiBzdHJpbmc7XG4gIGluaXREYXRlITogRGF0ZTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvLy0tIEltcGxlbWVudCBDb250cm9sVmFsdWVBY2Nlc3NvclxuICBwcml2YXRlIGZvcm1Db250cm9sITogRm9ybUNvbnRyb2w7XG4gIGhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIG9uVG91Y2hlZCE6ICgpID0+IHZvaWQ7XG5cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF9kYXRlOiBEYXRlIHwgbnVsbCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChEQVRFX0ZPUk1BVFMpIHByaXZhdGUgZGF0ZUZvcm1hdHNQcm92aWRlcjogRGF0ZUZvcm1hdHNQcm92aWRlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEVfRk5fTE9DQUxFKSBwcml2YXRlIGdldERhdGVGbkxvY2FsZT86IEZ1bmN0aW9uXG4gICkge1xuICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHRoaXMuZGF0ZUZvcm1hdHNQcm92aWRlci5nZXREYXRlRm9ybWF0KCk7XG4gICAgLy8gUGF0Y2ggRGF0ZVBpY2tlciB1bnRpbCBodHRwczovL2dpdGh1Yi5jb20vdmFsb3Itc29mdHdhcmUvbmcyLWJvb3RzdHJhcC9pc3N1ZXMvMTM4NSBpcyByZXNvbHZlZFxuICAgIGNvbnN0IHdyaXRlVmFsdWUgPSBEYXRlUGlja2VyQ29tcG9uZW50LnByb3RvdHlwZS53cml0ZVZhbHVlO1xuICAgIERhdGVQaWNrZXJDb21wb25lbnQucHJvdG90eXBlLndyaXRlVmFsdWUgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gd3JpdGVWYWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMgYXMgYW55KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gU29tZWhvdyBkYXRlcGlja2VyIGRvZXMgdXNlIGEgc2VwYXJhdGUgbW9tZW50IGluc3RhbmNlIHRoYW4gd2UgZG8uIFRoYXQgb25lIHJ1bnMgb24gbG9jYWxlIGVuIGJ5IGRlZmF1bHQuXG4gICAgLy8gU28gd2UgcGF0Y2ggdGhlIGZvcm1hdCBmdW5jdGlvbiBoZXJlIHRvIHVzZSBvdXIgbW9tZW50IGluc3RhbmNlLlxuICAgIC8vIE1heWJlIGl0IHdpbGwgYmUgZml4ZWQgd2l0aDogaHR0cHM6Ly9naXRodWIuY29tL3ZhbG9yLXNvZnR3YXJlL25neC1ib290c3RyYXAvaXNzdWVzLzQ1NVxuICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuZ2V0RGF0ZUZuTG9jYWxlID8gdGhpcy5nZXREYXRlRm5Mb2NhbGUoKSA6IG51bGw7XG4gICAgRGF0ZUZvcm1hdHRlci5wcm90b3R5cGUuZm9ybWF0ID0gZnVuY3Rpb24gKGRhdGU6IERhdGUsIGY6IHN0cmluZykge1xuICAgICAgcmV0dXJuIGZvcm1hdChkYXRlLCBmLCB7IGxvY2FsZSB9KTtcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0RGF0ZVN0cmluZyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKChkYXRlKSA9PiB7XG4gICAgICB0aGlzLmluaXREYXRlID0gY3JlYXRlRGF0ZUZyb21EYXRlU3RyaW5nKGRhdGUpID8/IHN0YXJ0T2ZEYXkobmV3IERhdGUoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydkYXRlJ10pIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9IHRoaXMuZGF0ZSA/IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuZGF0ZSkgOiBudWxsO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGF0ZVN0cmluZyddKSB7XG4gICAgICB0aGlzLm9uRGF0ZVN0cmluZ0NoYW5nZSh0aGlzLmRhdGVTdHJpbmcsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93UG9wdXAoKSB7XG4gICAgdGhpcy5zaG93RGF0ZXBpY2tlciA9IHRydWU7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUG9wdXAoKSB7XG4gICAgdGhpcy5zaG93RGF0ZXBpY2tlciA9ICF0aGlzLnNob3dEYXRlcGlja2VyO1xuICB9XG5cbiAgcHVibGljIGhpZGVQb3B1cCgpIHtcbiAgICBpZiAodGhpcy5zaG93RGF0ZXBpY2tlcikge1xuICAgICAgdGhpcy5zaG93RGF0ZXBpY2tlciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uVGFiKGZvcndhcmQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoZm9yd2FyZCAmJiB0aGlzLnNob3dEYXRlcGlja2VyKSB7XG4gICAgICB0aGlzLmhpZGVQb3B1cCgpO1xuICAgICAgcmV0dXJuIGZhbHNlOyAvLyBQcmV2ZW50IHRhYiBmb3Igbm93IGFzIG5nMi1ib290c3RyYXAgZGF0ZXBpY2tlciBoYXMgYSB0YWJzdG9wOiAyIHRhYnMgbmVlZGVkIHRvIG5hdmlnYXRlIGZvciBub3dcbiAgICAgIC8vIFRPRE86IENoZWNrIGFnYWluIGluIG5ldyB2ZXJzaW9uXG4gICAgfVxuICAgIHRoaXMuaGlkZVBvcHVwKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBvbkRhdGVTdHJpbmdDaGFuZ2UobmV3RGF0ZVN0cmluZzogc3RyaW5nIHwgbnVsbCwgZW1pdDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAoaXNWYWxpZERhdGVTdHJpbmcobmV3RGF0ZVN0cmluZykpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcobmV3RGF0ZVN0cmluZyk7XG4gICAgICB0aGlzLnVwZGF0ZURhdGUoZGF0ZSwgZW1pdCk7XG4gICAgfSBlbHNlIGlmIChuZXdEYXRlU3RyaW5nID09PSBudWxsIHx8IG5ld0RhdGVTdHJpbmcgPT09ICcnKSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGUobnVsbCwgZW1pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3Rpb25Eb25lKG5ld0RhdGU6IERhdGUpIHtcbiAgICB0aGlzLnVwZGF0ZURhdGUobmV3RGF0ZSk7XG4gICAgdGhpcy5oaWRlUG9wdXAoKTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRlKGRhdGU6IERhdGUgfCBudWxsLCBlbWl0OiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHRoaXMuZGF0ZSA9IGRhdGU7XG4gICAgdGhpcy5kYXRlU3RyaW5nID0gdGhpcy5kYXRlID8gY29udmVydERhdGVUb0xvY2FsZURhdGVTdHJpbmcodGhpcy5kYXRlKSA6ICcnO1xuICAgIGlmIChlbWl0KSB7XG4gICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZ0NoYW5nZS5lbWl0KHRoaXMuZGF0ZVN0cmluZyk7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGRhdGUpO1xuICAgIHRoaXMucmVjaGVja0Vycm9ycygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWNoZWNrRXJyb3JzKCkge1xuICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgLy8tLS0gSW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8qKiBXcml0ZSBhIG5ldyB2YWx1ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgd3JpdGVWYWx1ZShuZXdEYXRlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWVBY2Nlc3NvciA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLmRhdGUgPSBuZXdEYXRlIGFzIERhdGU7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBuZXdEYXRlIGFzIHN0cmluZztcbiAgICAgIHRoaXMub25EYXRlU3RyaW5nQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgY2hhbmdlIGV2ZW50LiAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICBpZiAodGhpcy52YWx1ZUFjY2Vzc29yID09PSAnZGF0ZScpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoZm4pO1xuICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZUFjY2Vzc29yID09PSAnZGF0ZVN0cmluZycpIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZ0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoZm4pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgdG91Y2ggZXZlbnQuICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKSB7XG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IGM7XG4gICAgcmV0dXJuIHRoaXMuaGFzRXJyb3JcbiAgICAgID8ge1xuICAgICAgICAgIGRhdGVGb3JtYXRFcnJvcjoge1xuICAgICAgICAgICAgZ2l2ZW46IHRoaXMuZGF0ZVN0cmluZyxcbiAgICAgICAgICAgIGZvcm1hdDogJ3l5eXktbW0tZGQnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA6IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiICpuZ0lmPVwic2hvd0RhdGVwaWNrZXJcIiAoY2xpY2spPVwiaGlkZVBvcHVwKClcIj48L2Rpdj5cbjxzcGFuIGNsYXNzPVwid3JhcHBlclwiIFtjbGFzcy5mb3JMaW5rXT1cInJlbmRlcmluZ1N0eWxlID09PSAnTElOSydcIiBbY2xhc3MuaGFzLWVycm9yXT1cImhhc0Vycm9yXCI+XG4gIDxpbnB1dFxuICAgICNpbnB1dFxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGRhdGVDb250cm9sXCJcbiAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgWyhuZ01vZGVsKV09XCJkYXRlU3RyaW5nXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRGF0ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwic2hvd1BvcHVwKClcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCJoaWRlUG9wdXAoKVwiXG4gICAgKGtleWRvd24uZXNjYXBlKT1cImhpZGVQb3B1cCgpXCJcbiAgICAoa2V5ZG93bi50YWIpPVwib25UYWIodHJ1ZSlcIlxuICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJvblRhYihmYWxzZSlcIlxuICAgIFtjbGFzcy50ZXh0LWRhbmdlcl09XCJoYXNFcnJvclwiXG4gICAgKm5nSWY9XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0lOUFVUJ1wiXG4gIC8+XG4gIDxhIGNsYXNzPVwiZGF0ZUNvbnRyb2xcIiAoY2xpY2spPVwidG9nZ2xlUG9wdXAoKVwiICpuZ0lmPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiPnt7IGRhdGUgfCBseERhdGU6IGRhdGVGb3JtYXQgfX08L2E+XG4gIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyQ29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyXCI+XG4gICAgICA8ZGF0ZXBpY2tlclxuICAgICAgICBjbGFzcz1cInBvcHVwXCJcbiAgICAgICAgKm5nSWY9XCJzaG93RGF0ZXBpY2tlclwiXG4gICAgICAgIChzZWxlY3Rpb25Eb25lKT1cIm9uU2VsZWN0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAgICAgW25nTW9kZWxdPVwiZGF0ZVwiXG4gICAgICAgIFtkYXRlcGlja2VyTW9kZV09XCJkYXRlcGlja2VyTW9kZVwiXG4gICAgICAgIFtpbml0RGF0ZV09XCJpbml0RGF0ZVwiXG4gICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgW21pbk1vZGVdPVwibWluTW9kZVwiXG4gICAgICAgIFttYXhNb2RlXT1cIm1heE1vZGVcIlxuICAgICAgICBbc2hvd1dlZWtzXT1cInNob3dXZWVrc1wiXG4gICAgICAgIFtmb3JtYXREYXldPVwiZm9ybWF0RGF5XCJcbiAgICAgICAgW2Zvcm1hdE1vbnRoXT1cImZvcm1hdE1vbnRoXCJcbiAgICAgICAgW2Zvcm1hdFllYXJdPVwiZm9ybWF0WWVhclwiXG4gICAgICAgIFtmb3JtYXREYXlIZWFkZXJdPVwiZm9ybWF0RGF5SGVhZGVyXCJcbiAgICAgICAgW2Zvcm1hdERheVRpdGxlXT1cImZvcm1hdERheVRpdGxlXCJcbiAgICAgICAgW2Zvcm1hdE1vbnRoVGl0bGVdPVwiZm9ybWF0TW9udGhUaXRsZVwiXG4gICAgICAgIFtzdGFydGluZ0RheV09XCJzdGFydGluZ0RheVwiXG4gICAgICAgIFt5ZWFyUmFuZ2VdPVwieWVhclJhbmdlXCJcbiAgICAgICAgW29ubHlDdXJyZW50TW9udGhdPVwib25seUN1cnJlbnRNb250aFwiXG4gICAgICAgIFtzaG9ydGN1dFByb3BhZ2F0aW9uXT1cInNob3J0Y3V0UHJvcGFnYXRpb25cIlxuICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiY3VzdG9tQ2xhc3NcIlxuICAgICAgICBbZGF0ZURpc2FibGVkXT1cImRhdGVEaXNhYmxlZFwiXG4gICAgICA+XG4gICAgICA8L2RhdGVwaWNrZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9zcGFuPlxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Used in the DragAndDropListComponent and KeyboardSortableListDirective
3
+ */
4
+ export const DRAG_AND_DROP_LIST_TRANSLATION_NAME = 'DragAndDropListComponent';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9kcmFnLWFuZC1kcm9wLWxpc3QvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZWQgaW4gdGhlIERyYWdBbmREcm9wTGlzdENvbXBvbmVudCBhbmQgS2V5Ym9hcmRTb3J0YWJsZUxpc3REaXJlY3RpdmVcbiAqL1xuZXhwb3J0IGNvbnN0IERSQUdfQU5EX0RST1BfTElTVF9UUkFOU0xBVElPTl9OQU1FID0gJ0RyYWdBbmREcm9wTGlzdENvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../../core-ui/components/button/button.component";
4
+ import * as i2 from "@angular/common";
5
+ export class DragAndDropListItemComponent {
6
+ constructor(element) {
7
+ this.element = element;
8
+ this.NAME = 'DragAndDropListItemComponent';
9
+ this.draggable = true;
10
+ this.action = new EventEmitter();
11
+ this.customTemplateRef = null;
12
+ }
13
+ get draggingDisabled() {
14
+ return !this.draggable;
15
+ }
16
+ get hasCustomTemplate() {
17
+ return !!this.customTemplateRef;
18
+ }
19
+ trackByAction(_index, action) {
20
+ return action.id;
21
+ }
22
+ focus() {
23
+ this.element.nativeElement.focus();
24
+ }
25
+ }
26
+ DragAndDropListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DragAndDropListItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
27
+ DragAndDropListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: DragAndDropListItemComponent, selector: "lx-drag-and-drop-list-item", inputs: { item: "item", draggable: "draggable", actions: "actions" }, outputs: { action: "action" }, host: { properties: { "class.draggingDisabled": "this.draggingDisabled", "class.customTemplate": "this.hasCustomTemplate" } }, queries: [{ propertyName: "customTemplateRef", first: true, predicate: ["customTemplate"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"customTemplateRef; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"customTemplateRef\"></ng-container>\n</ng-container>\n<ng-template #defaultTemplate>\n <div class=\"drag-item-wrappper\">\n <i *ngIf=\"draggable\" class=\"far fa-bars drag-handle\"></i>\n <span [attr.title]=\"item\" class=\"itemWrapperForTruncation truncate\">{{ item }}</span>\n </div>\n <div class=\"left-button-container\" align=\"left\">\n <div class=\"action-buttons-wrapper\" *ngIf=\"!!actions\">\n <button\n lx-button\n *ngFor=\"let act of actions; trackBy: trackByAction\"\n (click)=\"action.emit({ actionId: act.id, item: item })\"\n [title]=\"act.label\"\n [square]=\"true\"\n mode=\"ghost\"\n size=\"small\"\n class=\"action-button\"\n [class.show-on-hover-button]=\"act.showOnlyOnHover ? true : false\"\n >\n <i class=\"far {{ act.icon }} actionIcon\"></i>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [":host:not(.customTemplate){padding:6px 8px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;border-radius:3px}:host:not(.customTemplate):hover .show-on-hover-button{opacity:1}:host.draggingDisabled{background:#eaedf1}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-handle{padding-right:4px}.actionIcon{padding:0 2px}.drag-item-wrappper{display:flex;min-width:0;align-items:baseline}.left-button-container,.action-buttons-wrapper{display:flex;flex-direction:row;flex-wrap:nowrap}.show-on-hover-button{opacity:0}.show-on-hover-button:focus{opacity:1}lx-option i{margin-right:8px}\n"], components: [{ type: i1.ButtonComponent, selector: "button[lx-button]", inputs: ["size", "color", "mode", "pressed", "selected", "square", "circle", "disabled", "showSpinner"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DragAndDropListItemComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'lx-drag-and-drop-list-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"customTemplateRef; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"customTemplateRef\"></ng-container>\n</ng-container>\n<ng-template #defaultTemplate>\n <div class=\"drag-item-wrappper\">\n <i *ngIf=\"draggable\" class=\"far fa-bars drag-handle\"></i>\n <span [attr.title]=\"item\" class=\"itemWrapperForTruncation truncate\">{{ item }}</span>\n </div>\n <div class=\"left-button-container\" align=\"left\">\n <div class=\"action-buttons-wrapper\" *ngIf=\"!!actions\">\n <button\n lx-button\n *ngFor=\"let act of actions; trackBy: trackByAction\"\n (click)=\"action.emit({ actionId: act.id, item: item })\"\n [title]=\"act.label\"\n [square]=\"true\"\n mode=\"ghost\"\n size=\"small\"\n class=\"action-button\"\n [class.show-on-hover-button]=\"act.showOnlyOnHover ? true : false\"\n >\n <i class=\"far {{ act.icon }} actionIcon\"></i>\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [":host:not(.customTemplate){padding:6px 8px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;border-radius:3px}:host:not(.customTemplate):hover .show-on-hover-button{opacity:1}:host.draggingDisabled{background:#eaedf1}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-handle{padding-right:4px}.actionIcon{padding:0 2px}.drag-item-wrappper{display:flex;min-width:0;align-items:baseline}.left-button-container,.action-buttons-wrapper{display:flex;flex-direction:row;flex-wrap:nowrap}.show-on-hover-button{opacity:0}.show-on-hover-button:focus{opacity:1}lx-option i{margin-right:8px}\n"] }]
31
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { item: [{
32
+ type: Input
33
+ }], draggable: [{
34
+ type: Input
35
+ }], actions: [{
36
+ type: Input
37
+ }], action: [{
38
+ type: Output
39
+ }], draggingDisabled: [{
40
+ type: HostBinding,
41
+ args: ['class.draggingDisabled']
42
+ }], hasCustomTemplate: [{
43
+ type: HostBinding,
44
+ args: ['class.customTemplate']
45
+ }], customTemplateRef: [{
46
+ type: ContentChild,
47
+ args: ['customTemplate']
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9kcmFnLWFuZC1kcm9wLWxpc3QvZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0vZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9kcmFnLWFuZC1kcm9wLWxpc3QvZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0vZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQzs7OztBQW9CdkIsTUFBTSxPQUFPLDRCQUE0QjtJQXNCdkMsWUFBb0IsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQXJCOUIsU0FBSSxHQUFHLDhCQUE4QixDQUFDO1FBR3RDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFNekIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUE4QixDQUFDO1FBVWxDLHNCQUFpQixHQUE0QixJQUFJLENBQUM7SUFFeEMsQ0FBQztJQVYzQyxJQUEyQyxnQkFBZ0I7UUFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDekIsQ0FBQztJQUVELElBQXlDLGlCQUFpQjtRQUN4RCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQU1ELGFBQWEsQ0FBQyxNQUFjLEVBQUUsTUFBNkI7UUFDekQsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQzs7eUhBOUJVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLHVaQzlCekMsNi9CQTBCQTsyRkRJYSw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNO2lHQUt0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksTUFBTTtzQkFBZixNQUFNO2dCQUVvQyxnQkFBZ0I7c0JBQTFELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUlJLGlCQUFpQjtzQkFBekQsV0FBVzt1QkFBQyxzQkFBc0I7Z0JBSUgsaUJBQWlCO3NCQUFoRCxZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ0FuZERyb3BMaXN0QWN0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBzaG93T25seU9uSG92ZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyYWdBbmREcm9wTGlzdEFjdGlvbkV2ZW50IHtcbiAgYWN0aW9uSWQ6IHN0cmluZztcbiAgaXRlbTogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1kcmFnLWFuZC1kcm9wLWxpc3QtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ0FuZERyb3BMaXN0SXRlbUNvbXBvbmVudCB7XG4gIHJlYWRvbmx5IE5BTUUgPSAnRHJhZ0FuZERyb3BMaXN0SXRlbUNvbXBvbmVudCc7XG5cbiAgQElucHV0KCkgaXRlbSE6IHN0cmluZztcbiAgQElucHV0KCkgZHJhZ2dhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIERyYWdBbmREcm9wTGlzdEFjdGlvbnNcbiAgICogV2hlbiB0aGlzIGFycmF5IGlzIGRlZmluZWQsIHRoZSBkcmFnIGhhbmRsZSBpcyBzaG93biBhdCB0aGUgc3RhcnQgb2YgYW4gaXRlbSBhbmQgdGhlIGFjdGlvbiBidXR0b25zIGFyZSByZW5kZXJlZCBpbiB0aGVpciBwcm92aWRlZCBvcmRlciBhdCB0aGUgcmlnaHQgZW5kIG9mIGFuIGl0ZW0uXG4gICAqL1xuICBASW5wdXQoKSBhY3Rpb25zPzogRHJhZ0FuZERyb3BMaXN0QWN0aW9uW107XG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdBbmREcm9wTGlzdEFjdGlvbkV2ZW50PigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZHJhZ2dpbmdEaXNhYmxlZCcpIGdldCBkcmFnZ2luZ0Rpc2FibGVkKCkge1xuICAgIHJldHVybiAhdGhpcy5kcmFnZ2FibGU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmN1c3RvbVRlbXBsYXRlJykgZ2V0IGhhc0N1c3RvbVRlbXBsYXRlKCkge1xuICAgIHJldHVybiAhIXRoaXMuY3VzdG9tVGVtcGxhdGVSZWY7XG4gIH1cblxuICBAQ29udGVudENoaWxkKCdjdXN0b21UZW1wbGF0ZScpIGN1c3RvbVRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7fVxuXG4gIHRyYWNrQnlBY3Rpb24oX2luZGV4OiBudW1iZXIsIGFjdGlvbjogRHJhZ0FuZERyb3BMaXN0QWN0aW9uKSB7XG4gICAgcmV0dXJuIGFjdGlvbi5pZDtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21UZW1wbGF0ZVJlZjsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZHJhZy1pdGVtLXdyYXBwcGVyXCI+XG4gICAgPGkgKm5nSWY9XCJkcmFnZ2FibGVcIiBjbGFzcz1cImZhciBmYS1iYXJzIGRyYWctaGFuZGxlXCI+PC9pPlxuICAgIDxzcGFuIFthdHRyLnRpdGxlXT1cIml0ZW1cIiBjbGFzcz1cIml0ZW1XcmFwcGVyRm9yVHJ1bmNhdGlvbiB0cnVuY2F0ZVwiPnt7IGl0ZW0gfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGVmdC1idXR0b24tY29udGFpbmVyXCIgYWxpZ249XCJsZWZ0XCI+XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zLXdyYXBwZXJcIiAqbmdJZj1cIiEhYWN0aW9uc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBseC1idXR0b25cbiAgICAgICAgKm5nRm9yPVwibGV0IGFjdCBvZiBhY3Rpb25zOyB0cmFja0J5OiB0cmFja0J5QWN0aW9uXCJcbiAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5lbWl0KHsgYWN0aW9uSWQ6IGFjdC5pZCwgaXRlbTogaXRlbSB9KVwiXG4gICAgICAgIFt0aXRsZV09XCJhY3QubGFiZWxcIlxuICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICBtb2RlPVwiZ2hvc3RcIlxuICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICBjbGFzcz1cImFjdGlvbi1idXR0b25cIlxuICAgICAgICBbY2xhc3Muc2hvdy1vbi1ob3Zlci1idXR0b25dPVwiYWN0LnNob3dPbmx5T25Ib3ZlciA/IHRydWUgOiBmYWxzZVwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFyIHt7IGFjdC5pY29uIH19IGFjdGlvbkljb25cIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19