@leanix/components 0.2.227 → 0.2.230

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} +681 -692
  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/index.d.ts +1 -0
  119. package/lib/core-ui/functions/core-css.helpers.d.ts +7 -0
  120. package/lib/forms-ui/components/drag-and-drop-list/constants.d.ts +4 -0
  121. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.d.ts +7 -6
  122. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.d.ts +23 -17
  123. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.d.ts +14 -0
  124. package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.d.ts +36 -0
  125. package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.d.ts +14 -0
  126. package/lib/forms-ui/forms-ui.module.d.ts +41 -43
  127. package/package.json +23 -9
  128. package/bundles/leanix-components.umd.js +0 -7162
  129. package/bundles/leanix-components.umd.js.map +0 -1
  130. package/esm2015/index.js +0 -117
  131. package/esm2015/index.js.map +0 -1
  132. package/esm2015/leanix-components.js +0 -5
  133. package/esm2015/leanix-components.js.map +0 -1
  134. package/esm2015/lib/core-ui/annotations/required.js +0 -33
  135. package/esm2015/lib/core-ui/annotations/required.js.map +0 -1
  136. package/esm2015/lib/core-ui/components/badge/badge.component.js +0 -29
  137. package/esm2015/lib/core-ui/components/badge/badge.component.js.map +0 -1
  138. package/esm2015/lib/core-ui/components/button/button.component.js +0 -78
  139. package/esm2015/lib/core-ui/components/button/button.component.js.map +0 -1
  140. package/esm2015/lib/core-ui/components/button-group/button-group.component.js +0 -32
  141. package/esm2015/lib/core-ui/components/button-group/button-group.component.js.map +0 -1
  142. package/esm2015/lib/core-ui/components/card/card.component.js +0 -23
  143. package/esm2015/lib/core-ui/components/card/card.component.js.map +0 -1
  144. package/esm2015/lib/core-ui/components/collapsible/collapsible.component.js +0 -58
  145. package/esm2015/lib/core-ui/components/collapsible/collapsible.component.js.map +0 -1
  146. package/esm2015/lib/core-ui/components/colored-label/colored-label.component.js +0 -39
  147. package/esm2015/lib/core-ui/components/colored-label/colored-label.component.js.map +0 -1
  148. package/esm2015/lib/core-ui/components/ellipsis/ellipsis.component.js +0 -74
  149. package/esm2015/lib/core-ui/components/ellipsis/ellipsis.component.js.map +0 -1
  150. package/esm2015/lib/core-ui/components/icon-scale/icon-scale.component.js +0 -46
  151. package/esm2015/lib/core-ui/components/icon-scale/icon-scale.component.js.map +0 -1
  152. package/esm2015/lib/core-ui/components/spinner/spinner.component.js +0 -30
  153. package/esm2015/lib/core-ui/components/spinner/spinner.component.js.map +0 -1
  154. package/esm2015/lib/core-ui/components/table/table-header/table-header.component.js +0 -60
  155. package/esm2015/lib/core-ui/components/table/table-header/table-header.component.js.map +0 -1
  156. package/esm2015/lib/core-ui/components/table/table.component.js +0 -70
  157. package/esm2015/lib/core-ui/components/table/table.component.js.map +0 -1
  158. package/esm2015/lib/core-ui/components/tiny-spinner/tiny-spinner.component.js +0 -14
  159. package/esm2015/lib/core-ui/components/tiny-spinner/tiny-spinner.component.js.map +0 -1
  160. package/esm2015/lib/core-ui/core-ui.constants.js +0 -13
  161. package/esm2015/lib/core-ui/core-ui.constants.js.map +0 -1
  162. package/esm2015/lib/core-ui/core-ui.module.js +0 -177
  163. package/esm2015/lib/core-ui/core-ui.module.js.map +0 -1
  164. package/esm2015/lib/core-ui/directives/after-view-init.directive.js +0 -30
  165. package/esm2015/lib/core-ui/directives/after-view-init.directive.js.map +0 -1
  166. package/esm2015/lib/core-ui/directives/autoclose-group.service.js +0 -38
  167. package/esm2015/lib/core-ui/directives/autoclose-group.service.js.map +0 -1
  168. package/esm2015/lib/core-ui/directives/autoclose.directive.js +0 -40
  169. package/esm2015/lib/core-ui/directives/autoclose.directive.js.map +0 -1
  170. package/esm2015/lib/core-ui/directives/autofocus.directive.js +0 -27
  171. package/esm2015/lib/core-ui/directives/autofocus.directive.js.map +0 -1
  172. package/esm2015/lib/core-ui/directives/html.directive.js +0 -30
  173. package/esm2015/lib/core-ui/directives/html.directive.js.map +0 -1
  174. package/esm2015/lib/core-ui/functions/core-css.helpers.js +0 -23
  175. package/esm2015/lib/core-ui/functions/core-css.helpers.js.map +0 -1
  176. package/esm2015/lib/core-ui/pipes/br.pipe.js +0 -23
  177. package/esm2015/lib/core-ui/pipes/br.pipe.js.map +0 -1
  178. package/esm2015/lib/core-ui/pipes/contrast-color.pipe.js +0 -20
  179. package/esm2015/lib/core-ui/pipes/contrast-color.pipe.js.map +0 -1
  180. package/esm2015/lib/core-ui/pipes/custom-date.pipe.js +0 -27
  181. package/esm2015/lib/core-ui/pipes/custom-date.pipe.js.map +0 -1
  182. package/esm2015/lib/core-ui/pipes/highlight-range.pipe.js +0 -21
  183. package/esm2015/lib/core-ui/pipes/highlight-range.pipe.js.map +0 -1
  184. package/esm2015/lib/core-ui/pipes/highlight-term.pipe.js +0 -38
  185. package/esm2015/lib/core-ui/pipes/highlight-term.pipe.js.map +0 -1
  186. package/esm2015/lib/core-ui/pipes/lx-is-uuid.pipe.js +0 -21
  187. package/esm2015/lib/core-ui/pipes/lx-is-uuid.pipe.js.map +0 -1
  188. package/esm2015/lib/core-ui/pipes/lx-time-ago.pipe.js +0 -25
  189. package/esm2015/lib/core-ui/pipes/lx-time-ago.pipe.js.map +0 -1
  190. package/esm2015/lib/core-ui/pipes/lx-translate.pipe.js +0 -46
  191. package/esm2015/lib/core-ui/pipes/lx-translate.pipe.js.map +0 -1
  192. package/esm2015/lib/core-ui/pipes/markdown.pipe.js +0 -29
  193. package/esm2015/lib/core-ui/pipes/markdown.pipe.js.map +0 -1
  194. package/esm2015/lib/core-ui/pipes/nbsp.pipe.js +0 -14
  195. package/esm2015/lib/core-ui/pipes/nbsp.pipe.js.map +0 -1
  196. package/esm2015/lib/core-ui/pipes/sort.pipe.js +0 -52
  197. package/esm2015/lib/core-ui/pipes/sort.pipe.js.map +0 -1
  198. package/esm2015/lib/core-ui/pipes/translation-after.pipe.js +0 -28
  199. package/esm2015/lib/core-ui/pipes/translation-after.pipe.js.map +0 -1
  200. package/esm2015/lib/core-ui/pipes/translation-before.pipe.js +0 -53
  201. package/esm2015/lib/core-ui/pipes/translation-before.pipe.js.map +0 -1
  202. package/esm2015/lib/core-ui/pipes/translation-between.pipe.js +0 -67
  203. package/esm2015/lib/core-ui/pipes/translation-between.pipe.js.map +0 -1
  204. package/esm2015/lib/core-ui/pipes/unescape-curly-braces.pipe.js +0 -16
  205. package/esm2015/lib/core-ui/pipes/unescape-curly-braces.pipe.js.map +0 -1
  206. package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js +0 -74
  207. package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js.map +0 -1
  208. package/esm2015/lib/core-ui/tooltip/tooltip-position.interface.js +0 -7
  209. package/esm2015/lib/core-ui/tooltip/tooltip-position.interface.js.map +0 -1
  210. package/esm2015/lib/core-ui/tooltip/tooltip.component.js +0 -30
  211. package/esm2015/lib/core-ui/tooltip/tooltip.component.js.map +0 -1
  212. package/esm2015/lib/core-ui/tooltip/tooltip.directive.js +0 -107
  213. package/esm2015/lib/core-ui/tooltip/tooltip.directive.js.map +0 -1
  214. package/esm2015/lib/core-ui/tooltip/tooltip.module.js +0 -21
  215. package/esm2015/lib/core-ui/tooltip/tooltip.module.js.map +0 -1
  216. package/esm2015/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.js +0 -108
  217. package/esm2015/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.js.map +0 -1
  218. package/esm2015/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.js +0 -38
  219. package/esm2015/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.js.map +0 -1
  220. package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js +0 -223
  221. package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js.map +0 -1
  222. package/esm2015/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.js +0 -140
  223. package/esm2015/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.js.map +0 -1
  224. package/esm2015/lib/forms-ui/components/currency/currency-input.component.js +0 -147
  225. package/esm2015/lib/forms-ui/components/currency/currency-input.component.js.map +0 -1
  226. package/esm2015/lib/forms-ui/components/currency/currency-symbol-map.constant.js +0 -105
  227. package/esm2015/lib/forms-ui/components/currency/currency-symbol-map.constant.js.map +0 -1
  228. package/esm2015/lib/forms-ui/components/currency/currency-symbol.component.js +0 -28
  229. package/esm2015/lib/forms-ui/components/currency/currency-symbol.component.js.map +0 -1
  230. package/esm2015/lib/forms-ui/components/date-input/date-input.component.js +0 -276
  231. package/esm2015/lib/forms-ui/components/date-input/date-input.component.js.map +0 -1
  232. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.js +0 -57
  233. 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
  234. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js +0 -99
  235. package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.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 -244
  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,102 @@
1
+ import { moveItemInArray } from '@angular/cdk/drag-drop';
2
+ import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output, ViewChildren } from '@angular/core';
3
+ import { map, startWith } from 'rxjs/operators';
4
+ import { DRAG_AND_DROP_LIST_TRANSLATION_NAME } from './constants';
5
+ import { DragAndDropListItemComponent } from './drag-and-drop-list-item/drag-and-drop-list-item.component';
6
+ import { KeyboardSortableItemDirective } from './keyboard-sortable-item/keyboard-sortable-item.directive';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./drag-and-drop-list-item/drag-and-drop-list-item.component";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/cdk/drag-drop";
11
+ import * as i4 from "./keyboard-sortable-list/keyboard-sortable-list.directive";
12
+ import * as i5 from "./keyboard-sortable-item/keyboard-sortable-item.directive";
13
+ import * as i6 from "@ngx-translate/core";
14
+ export class DragAndDropListComponent {
15
+ constructor() {
16
+ this.NAME = DRAG_AND_DROP_LIST_TRANSLATION_NAME;
17
+ /**
18
+ * Override the global label font weight of 700
19
+ */
20
+ this.labelFontWeight = 700;
21
+ this.color = 'light';
22
+ this.fontSize = 'normal';
23
+ /**
24
+ * Use the moveToIndex Output in favor of moveItem,
25
+ * when moving is restricted to one item through this.draggableItem.
26
+ */
27
+ this.moveToIndex = new EventEmitter();
28
+ this.moveItem = new EventEmitter();
29
+ /**
30
+ * TODO: extract state about keyboard sorting into KeyboardSortableListDirective
31
+ */
32
+ this.isSortingByKeyboard = false;
33
+ this.keyboardItemBeingSorted = undefined;
34
+ this.allItemsData = [];
35
+ }
36
+ ngAfterContentInit() {
37
+ this.items$ = this._items.changes.pipe(startWith(this._items), map((items) => items.toArray()));
38
+ this.allItemsData$ = this.items$.pipe(map((itemComponents) => itemComponents.map((itemComponent) => itemComponent.item)));
39
+ }
40
+ ngAfterViewInit() {
41
+ this.keyboardSortableItems$ = this._keyboardSortableItems.changes.pipe(startWith(this._keyboardSortableItems), map((items) => items.toArray()));
42
+ }
43
+ emitContentChildAction(action) {
44
+ this._items.find((itemComponent) => itemComponent.item === action.item)?.action.emit(action);
45
+ }
46
+ /**
47
+ * From the Angular cdk drag and drop documentation:
48
+ * Note that this will not update your data model;
49
+ * you can listen to the cdkDropListDropped event to update the data model
50
+ * once the user finishes dragging.
51
+ * https://material.angular.io/cdk/drag-drop/overview
52
+ *
53
+ * You're supposed to update the data in the parent and pass the new items as input.
54
+ */
55
+ drop(event) {
56
+ this.sortItems(event.container.data, event.item.data, event.previousIndex, event.currentIndex);
57
+ }
58
+ dropToIndexAfterArrowKey(item, previousIndex, currentIndex) {
59
+ if (this.isSortingByKeyboard) {
60
+ this.sortItems(this._items, item, previousIndex, currentIndex);
61
+ }
62
+ }
63
+ sortItems(items, item, previousIndex, currentIndex) {
64
+ moveItemInArray(items, previousIndex, currentIndex);
65
+ this.moveToIndex.emit({ index: currentIndex, previous: previousIndex });
66
+ this.moveItem.emit({ item, index: currentIndex });
67
+ }
68
+ trackByItem(_index, item) {
69
+ return item.item;
70
+ }
71
+ }
72
+ DragAndDropListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DragAndDropListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
+ DragAndDropListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: DragAndDropListComponent, selector: "lx-drag-and-drop-list", inputs: { label: "label", labelFontWeight: "labelFontWeight", color: "color", fontSize: "fontSize" }, outputs: { moveToIndex: "moveToIndex", moveItem: "moveItem" }, host: { properties: { "attr.color": "this.color", "attr.fontSize": "this.fontSize" } }, queries: [{ propertyName: "_items", predicate: DragAndDropListItemComponent }], viewQueries: [{ propertyName: "_keyboardSortableItems", predicate: KeyboardSortableItemDirective, descendants: true }], ngImport: i0, template: "<label *ngIf=\"label\" [style.font-weight]=\"labelFontWeight\">{{ label }}</label>\n<p class=\"sr-only\">{{ NAME + '.helpTooltip' | translate }}</p>\n<ul\n cdkDropList\n class=\"list\"\n role=\"listbox\"\n lxKeyboardSortableList\n [keyboardSortableItems]=\"keyboardSortableItems$ | async\"\n [cdkDropListData]=\"items$ | async\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <li\n *ngFor=\"let itemComponent of items$ | async; trackBy: trackByItem\"\n #listItemParent\n class=\"item\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n [cdkDragData]=\"itemComponent.item\"\n [cdkDragDisabled]=\"!itemComponent.draggable\"\n [class.dark]=\"color === 'dark'\"\n [class.big]=\"fontSize === 'big'\"\n [tabIndex]=\"itemComponent.draggable === false ? -1 : 0\"\n [lxKeyboardSortableItem]=\"allItemsData$ | async\"\n [lxKeyboardItemData]=\"itemComponent.item\"\n [(isSortingByKeyboard)]=\"isSortingByKeyboard\"\n [(lxKeyboardItemBeingSorted)]=\"keyboardItemBeingSorted\"\n (sortItemsWithKeyboard)=\"dropToIndexAfterArrowKey(itemComponent.item, $event.previousIndex, $event.currentIndex)\"\n >\n <lx-drag-and-drop-list-item\n class=\"dragAndDropItem\"\n [item]=\"itemComponent.item\"\n [draggable]=\"itemComponent.draggable\"\n [actions]=\"itemComponent.actions\"\n (action)=\"emitContentChildAction($event)\"\n >\n <ng-template *ngIf=\"itemComponent.customTemplateRef\" #customTemplate>\n <ng-container *ngTemplateOutlet=\"itemComponent.customTemplateRef\"></ng-container>\n </ng-template>\n </lx-drag-and-drop-list-item>\n </li>\n</ul>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}:host{display:block}.list{list-style-type:none;width:100%;display:block;padding:0;color:#526179}.item.cdk-drag-disabled{background:#eaedf1;cursor:default}.item{position:relative;cursor:move;border:solid 1px #99a5bb;margin-bottom:4px;border-radius:3px}.item:focus{outline:1px auto #1666ee}.cdk-drag-preview{box-sizing:border-box;border-radius:3px;list-style:none;border:solid 1px #99a5bb!important;box-shadow:0 3px 4px #7474744d}.cdk-drag-placeholder{opacity:.5}.cdk-drag-placeholder i{opacity:0}.cdk-drag-animating{transition:transform .18s;transition-delay:0s;transition-timing-function:ease}.list.cdk-drop-list-dragging .item:not(.cdk-drag-placeholder){transition:transform .18s;transition-delay:0s;transition-timing-function:ease}:host[color=dark] lx-drag-and-drop-list-item{background-color:#f0f2f5;color:#526179;border-radius:3px}:host[color=dark] .list,:host[color=dark] .item{border:0}:host[color=dark] .item.cdk-drag-disabled lx-drag-and-drop-list-item{background:#fff;color:#99a5bb;border:1px solid #99a5bb}:host[fontSize=big] .item{text-transform:uppercase;font-weight:700}.cdk-drag-preview.dark{border:0!important}.cdk-drag-preview.dark lx-drag-and-drop-list-item{background-color:#f0f2f5;color:#526179;border-radius:3px}.cdk-drag-preview.big{text-transform:uppercase;font-weight:700}.isBeingSortedByKeyboard{box-shadow:0 6px 24px #b2bccc;z-index:1}\n"], components: [{ type: i1.DragAndDropListItemComponent, selector: "lx-drag-and-drop-list-item", inputs: ["item", "draggable", "actions"], outputs: ["action"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i4.KeyboardSortableListDirective, selector: "[lxKeyboardSortableList]", inputs: ["keyboardSortableItems"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i5.KeyboardSortableItemDirective, selector: "[lxKeyboardSortableItem]", inputs: ["lxKeyboardSortableItem", "lxKeyboardItemData", "isSortingByKeyboard", "lxKeyboardItemBeingSorted"], outputs: ["isSortingByKeyboardChange", "lxKeyboardItemBeingSortedChange", "sortItemsWithKeyboard", "focusWithKeyboard"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i6.TranslatePipe, "async": i2.AsyncPipe } });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DragAndDropListComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ selector: 'lx-drag-and-drop-list', template: "<label *ngIf=\"label\" [style.font-weight]=\"labelFontWeight\">{{ label }}</label>\n<p class=\"sr-only\">{{ NAME + '.helpTooltip' | translate }}</p>\n<ul\n cdkDropList\n class=\"list\"\n role=\"listbox\"\n lxKeyboardSortableList\n [keyboardSortableItems]=\"keyboardSortableItems$ | async\"\n [cdkDropListData]=\"items$ | async\"\n (cdkDropListDropped)=\"drop($event)\"\n>\n <li\n *ngFor=\"let itemComponent of items$ | async; trackBy: trackByItem\"\n #listItemParent\n class=\"item\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n [cdkDragData]=\"itemComponent.item\"\n [cdkDragDisabled]=\"!itemComponent.draggable\"\n [class.dark]=\"color === 'dark'\"\n [class.big]=\"fontSize === 'big'\"\n [tabIndex]=\"itemComponent.draggable === false ? -1 : 0\"\n [lxKeyboardSortableItem]=\"allItemsData$ | async\"\n [lxKeyboardItemData]=\"itemComponent.item\"\n [(isSortingByKeyboard)]=\"isSortingByKeyboard\"\n [(lxKeyboardItemBeingSorted)]=\"keyboardItemBeingSorted\"\n (sortItemsWithKeyboard)=\"dropToIndexAfterArrowKey(itemComponent.item, $event.previousIndex, $event.currentIndex)\"\n >\n <lx-drag-and-drop-list-item\n class=\"dragAndDropItem\"\n [item]=\"itemComponent.item\"\n [draggable]=\"itemComponent.draggable\"\n [actions]=\"itemComponent.actions\"\n (action)=\"emitContentChildAction($event)\"\n >\n <ng-template *ngIf=\"itemComponent.customTemplateRef\" #customTemplate>\n <ng-container *ngTemplateOutlet=\"itemComponent.customTemplateRef\"></ng-container>\n </ng-template>\n </lx-drag-and-drop-list-item>\n </li>\n</ul>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}:host{display:block}.list{list-style-type:none;width:100%;display:block;padding:0;color:#526179}.item.cdk-drag-disabled{background:#eaedf1;cursor:default}.item{position:relative;cursor:move;border:solid 1px #99a5bb;margin-bottom:4px;border-radius:3px}.item:focus{outline:1px auto #1666ee}.cdk-drag-preview{box-sizing:border-box;border-radius:3px;list-style:none;border:solid 1px #99a5bb!important;box-shadow:0 3px 4px #7474744d}.cdk-drag-placeholder{opacity:.5}.cdk-drag-placeholder i{opacity:0}.cdk-drag-animating{transition:transform .18s;transition-delay:0s;transition-timing-function:ease}.list.cdk-drop-list-dragging .item:not(.cdk-drag-placeholder){transition:transform .18s;transition-delay:0s;transition-timing-function:ease}:host[color=dark] lx-drag-and-drop-list-item{background-color:#f0f2f5;color:#526179;border-radius:3px}:host[color=dark] .list,:host[color=dark] .item{border:0}:host[color=dark] .item.cdk-drag-disabled lx-drag-and-drop-list-item{background:#fff;color:#99a5bb;border:1px solid #99a5bb}:host[fontSize=big] .item{text-transform:uppercase;font-weight:700}.cdk-drag-preview.dark{border:0!important}.cdk-drag-preview.dark lx-drag-and-drop-list-item{background-color:#f0f2f5;color:#526179;border-radius:3px}.cdk-drag-preview.big{text-transform:uppercase;font-weight:700}.isBeingSortedByKeyboard{box-shadow:0 6px 24px #b2bccc;z-index:1}\n"] }]
77
+ }], propDecorators: { label: [{
78
+ type: Input
79
+ }], labelFontWeight: [{
80
+ type: Input
81
+ }], color: [{
82
+ type: Input
83
+ }, {
84
+ type: HostBinding,
85
+ args: ['attr.color']
86
+ }], fontSize: [{
87
+ type: Input
88
+ }, {
89
+ type: HostBinding,
90
+ args: ['attr.fontSize']
91
+ }], moveToIndex: [{
92
+ type: Output
93
+ }], moveItem: [{
94
+ type: Output
95
+ }], _items: [{
96
+ type: ContentChildren,
97
+ args: [DragAndDropListItemComponent]
98
+ }], _keyboardSortableItems: [{
99
+ type: ViewChildren,
100
+ args: [KeyboardSortableItemDirective]
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvZHJhZy1hbmQtZHJvcC1saXN0L2RyYWctYW5kLWRyb3AtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RyYWctYW5kLWRyb3AtbGlzdC9kcmFnLWFuZC1kcm9wLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFHTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFFTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEUsT0FBTyxFQUE4Qiw0QkFBNEIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDOzs7Ozs7OztBQWlCMUcsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU1XLFNBQUksR0FBRyxtQ0FBbUMsQ0FBQztRQVNwRDs7V0FFRztRQUNNLG9CQUFlLEdBQVksR0FBRyxDQUFDO1FBRUosVUFBSyxHQUFzQixPQUFPLENBQUM7UUFDaEMsYUFBUSxHQUFzQixRQUFRLENBQUM7UUFFOUU7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUNoRSxhQUFRLEdBQUcs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OUMsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxlQUFlO2dCQU0zQixXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRWdELE1BQU07c0JBQTVELGVBQWU7dUJBQUMsNEJBQTRCO2dCQUdyQyxzQkFBc0I7c0JBRDdCLFlBQVk7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEUkFHX0FORF9EUk9QX0xJU1RfVFJBTlNMQVRJT05fTkFNRSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IERyYWdBbmREcm9wTGlzdEFjdGlvbkV2ZW50LCBEcmFnQW5kRHJvcExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kcmFnLWFuZC1kcm9wLWxpc3QtaXRlbS9kcmFnLWFuZC1kcm9wLWxpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2V5Ym9hcmRTb3J0YWJsZUl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2tleWJvYXJkLXNvcnRhYmxlLWl0ZW0va2V5Ym9hcmQtc29ydGFibGUtaXRlbS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyYWdBbmREcm9wTGlzdE1vdmVFdmVudCB7XG4gIGl0ZW06IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEcmFnQW5kRHJvcExpc3RNb3ZlSW5kZXhFdmVudCB7XG4gIGluZGV4OiBudW1iZXI7XG4gIHByZXZpb3VzOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWRyYWctYW5kLWRyb3AtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnZHJhZy1hbmQtZHJvcC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2RyYWctYW5kLWRyb3AtbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERyYWdBbmREcm9wTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICByZWFkb25seSBOQU1FID0gRFJBR19BTkRfRFJPUF9MSVNUX1RSQU5TTEFUSU9OX05BTUU7XG5cbiAgaXRlbXMkITogT2JzZXJ2YWJsZTxEcmFnQW5kRHJvcExpc3RJdGVtQ29tcG9uZW50W10+O1xuICBrZXlib2FyZFNvcnRhYmxlSXRlbXMkITogT2JzZXJ2YWJsZTxLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZVtdPjtcblxuICAvKipcbiAgICogQSBsYWJlbCBmb3IgZGVzY3JpYmluZyB0aGlzIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBnbG9iYWwgbGFiZWwgZm9udCB3ZWlnaHQgb2YgNzAwXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbEZvbnRXZWlnaHQ/OiBudW1iZXIgPSA3MDA7XG5cbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdhdHRyLmNvbG9yJykgY29sb3I/OiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdhdHRyLmZvbnRTaXplJykgZm9udFNpemU/OiAnbm9ybWFsJyB8ICdiaWcnID0gJ25vcm1hbCc7XG5cbiAgLyoqXG4gICAqIFVzZSB0aGUgbW92ZVRvSW5kZXggT3V0cHV0IGluIGZhdm9yIG9mIG1vdmVJdGVtLFxuICAgKiB3aGVuIG1vdmluZyBpcyByZXN0cmljdGVkIHRvIG9uZSBpdGVtIHRocm91Z2ggdGhpcy5kcmFnZ2FibGVJdGVtLlxuICAgKi9cbiAgQE91dHB1dCgpIG1vdmVUb0luZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnQW5kRHJvcExpc3RNb3ZlSW5kZXhFdmVudD4oKTtcbiAgQE91dHB1dCgpIG1vdmVJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnQW5kRHJvcExpc3RNb3ZlRXZlbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihEcmFnQW5kRHJvcExpc3RJdGVtQ29tcG9uZW50KSBwcml2YXRlIF9pdGVtcyE6IFF1ZXJ5TGlzdDxEcmFnQW5kRHJvcExpc3RJdGVtQ29tcG9uZW50PjtcblxuICBAVmlld0NoaWxkcmVuKEtleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlKVxuICBwcml2YXRlIF9rZXlib2FyZFNvcnRhYmxlSXRlbXMhOiBRdWVyeUxpc3Q8S2V5Ym9hcmRTb3J0YWJsZUl0ZW1EaXJlY3RpdmU+O1xuXG4gIC8qKlxuICAgKiBUT0RPOiBleHRyYWN0IHN0YXRlIGFib3V0IGtleWJvYXJkIHNvcnRpbmcgaW50byBLZXlib2FyZFNvcnRhYmxlTGlzdERpcmVjdGl2ZVxuICAgKi9cbiAgaXNTb3J0aW5nQnlLZXlib2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuICBrZXlib2FyZEl0ZW1CZWluZ1NvcnRlZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGFsbEl0ZW1zRGF0YTogc3RyaW5nW10gPSBbXTtcbiAgYWxsSXRlbXNEYXRhJCE6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLml0ZW1zJCA9IHRoaXMuX2l0ZW1zLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLl9pdGVtcyksXG4gICAgICBtYXAoKGl0ZW1zOiBRdWVyeUxpc3Q8RHJhZ0FuZERyb3BMaXN0SXRlbUNvbXBvbmVudD4pID0+IGl0ZW1zLnRvQXJyYXkoKSlcbiAgICApO1xuICAgIHRoaXMuYWxsSXRlbXNEYXRhJCA9IHRoaXMuaXRlbXMkLnBpcGUobWFwKChpdGVtQ29tcG9uZW50cykgPT4gaXRlbUNvbXBvbmVudHMubWFwKChpdGVtQ29tcG9uZW50KSA9PiBpdGVtQ29tcG9uZW50Lml0ZW0pKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5rZXlib2FyZFNvcnRhYmxlSXRlbXMkID0gdGhpcy5fa2V5Ym9hcmRTb3J0YWJsZUl0ZW1zLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLl9rZXlib2FyZFNvcnRhYmxlSXRlbXMpLFxuICAgICAgbWFwKChpdGVtczogUXVlcnlMaXN0PEtleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlPikgPT4gaXRlbXMudG9BcnJheSgpKVxuICAgICk7XG4gIH1cblxuICBlbWl0Q29udGVudENoaWxkQWN0aW9uKGFjdGlvbjogRHJhZ0FuZERyb3BMaXN0QWN0aW9uRXZlbnQpIHtcbiAgICB0aGlzLl9pdGVtcy5maW5kKChpdGVtQ29tcG9uZW50KSA9PiBpdGVtQ29tcG9uZW50Lml0ZW0gPT09IGFjdGlvbi5pdGVtKT8uYWN0aW9uLmVtaXQoYWN0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGcm9tIHRoZSBBbmd1bGFyIGNkayBkcmFnIGFuZCBkcm9wIGRvY3VtZW50YXRpb246XG4gICAqIE5vdGUgdGhhdCB0aGlzIHdpbGwgbm90IHVwZGF0ZSB5b3VyIGRhdGEgbW9kZWw7XG4gICAqIHlvdSBjYW4gbGlzdGVuIHRvIHRoZSBjZGtEcm9wTGlzdERyb3BwZWQgZXZlbnQgdG8gdXBkYXRlIHRoZSBkYXRhIG1vZGVsXG4gICAqIG9uY2UgdGhlIHVzZXIgZmluaXNoZXMgZHJhZ2dpbmcuXG4gICAqIGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9jZGsvZHJhZy1kcm9wL292ZXJ2aWV3XG4gICAqXG4gICAqIFlvdSdyZSBzdXBwb3NlZCB0byB1cGRhdGUgdGhlIGRhdGEgaW4gdGhlIHBhcmVudCBhbmQgcGFzcyB0aGUgbmV3IGl0ZW1zIGFzIGlucHV0LlxuICAgKi9cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8RHJhZ0FuZERyb3BMaXN0SXRlbUNvbXBvbmVudFtdIHwgbnVsbCwgc3RyaW5nW10+KSB7XG4gICAgdGhpcy5zb3J0SXRlbXMoZXZlbnQuY29udGFpbmVyLmRhdGEhLCBldmVudC5pdGVtLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBkcm9wVG9JbmRleEFmdGVyQXJyb3dLZXkoaXRlbTogYW55LCBwcmV2aW91c0luZGV4OiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuaXNTb3J0aW5nQnlLZXlib2FyZCkge1xuICAgICAgdGhpcy5zb3J0SXRlbXModGhpcy5faXRlbXMsIGl0ZW0sIHByZXZpb3VzSW5kZXgsIGN1cnJlbnRJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzb3J0SXRlbXMoaXRlbXM6IGFueSwgaXRlbTogc3RyaW5nLCBwcmV2aW91c0luZGV4OiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgbW92ZUl0ZW1JbkFycmF5KGl0ZW1zLCBwcmV2aW91c0luZGV4LCBjdXJyZW50SW5kZXgpO1xuICAgIHRoaXMubW92ZVRvSW5kZXguZW1pdCh7IGluZGV4OiBjdXJyZW50SW5kZXgsIHByZXZpb3VzOiBwcmV2aW91c0luZGV4IH0pO1xuICAgIHRoaXMubW92ZUl0ZW0uZW1pdCh7IGl0ZW0sIGluZGV4OiBjdXJyZW50SW5kZXggfSk7XG4gIH1cblxuICB0cmFja0J5SXRlbShfaW5kZXg6IG51bWJlciwgaXRlbTogRHJhZ0FuZERyb3BMaXN0SXRlbUNvbXBvbmVudCkge1xuICAgIHJldHVybiBpdGVtLml0ZW07XG4gIH1cbn1cbiIsIjxsYWJlbCAqbmdJZj1cImxhYmVsXCIgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cImxhYmVsRm9udFdlaWdodFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbjxwIGNsYXNzPVwic3Itb25seVwiPnt7IE5BTUUgKyAnLmhlbHBUb29sdGlwJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbjx1bFxuICBjZGtEcm9wTGlzdFxuICBjbGFzcz1cImxpc3RcIlxuICByb2xlPVwibGlzdGJveFwiXG4gIGx4S2V5Ym9hcmRTb3J0YWJsZUxpc3RcbiAgW2tleWJvYXJkU29ydGFibGVJdGVtc109XCJrZXlib2FyZFNvcnRhYmxlSXRlbXMkIHwgYXN5bmNcIlxuICBbY2RrRHJvcExpc3REYXRhXT1cIml0ZW1zJCB8IGFzeW5jXCJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuPlxuICA8bGlcbiAgICAqbmdGb3I9XCJsZXQgaXRlbUNvbXBvbmVudCBvZiBpdGVtcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUl0ZW1cIlxuICAgICNsaXN0SXRlbVBhcmVudFxuICAgIGNsYXNzPVwiaXRlbVwiXG4gICAgY2RrRHJhZ1xuICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxuICAgIFtjZGtEcmFnRGF0YV09XCJpdGVtQ29tcG9uZW50Lml0ZW1cIlxuICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWl0ZW1Db21wb25lbnQuZHJhZ2dhYmxlXCJcbiAgICBbY2xhc3MuZGFya109XCJjb2xvciA9PT0gJ2RhcmsnXCJcbiAgICBbY2xhc3MuYmlnXT1cImZvbnRTaXplID09PSAnYmlnJ1wiXG4gICAgW3RhYkluZGV4XT1cIml0ZW1Db21wb25lbnQuZHJhZ2dhYmxlID09PSBmYWxzZSA/IC0xIDogMFwiXG4gICAgW2x4S2V5Ym9hcmRTb3J0YWJsZUl0ZW1dPVwiYWxsSXRlbXNEYXRhJCB8IGFzeW5jXCJcbiAgICBbbHhLZXlib2FyZEl0ZW1EYXRhXT1cIml0ZW1Db21wb25lbnQuaXRlbVwiXG4gICAgWyhpc1NvcnRpbmdCeUtleWJvYXJkKV09XCJpc1NvcnRpbmdCeUtleWJvYXJkXCJcbiAgICBbKGx4S2V5Ym9hcmRJdGVtQmVpbmdTb3J0ZWQpXT1cImtleWJvYXJkSXRlbUJlaW5nU29ydGVkXCJcbiAgICAoc29ydEl0ZW1zV2l0aEtleWJvYXJkKT1cImRyb3BUb0luZGV4QWZ0ZXJBcnJvd0tleShpdGVtQ29tcG9uZW50Lml0ZW0sICRldmVudC5wcmV2aW91c0luZGV4LCAkZXZlbnQuY3VycmVudEluZGV4KVwiXG4gID5cbiAgICA8bHgtZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW1cbiAgICAgIGNsYXNzPVwiZHJhZ0FuZERyb3BJdGVtXCJcbiAgICAgIFtpdGVtXT1cIml0ZW1Db21wb25lbnQuaXRlbVwiXG4gICAgICBbZHJhZ2dhYmxlXT1cIml0ZW1Db21wb25lbnQuZHJhZ2dhYmxlXCJcbiAgICAgIFthY3Rpb25zXT1cIml0ZW1Db21wb25lbnQuYWN0aW9uc1wiXG4gICAgICAoYWN0aW9uKT1cImVtaXRDb250ZW50Q2hpbGRBY3Rpb24oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbUNvbXBvbmVudC5jdXN0b21UZW1wbGF0ZVJlZlwiICNjdXN0b21UZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1Db21wb25lbnQuY3VzdG9tVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9seC1kcmFnLWFuZC1kcm9wLWxpc3QtaXRlbT5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
@@ -0,0 +1,25 @@
1
+ import { DragDropModule } from '@angular/cdk/drag-drop';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { LxCoreUiModule } from '../../../core-ui/core-ui.module';
6
+ import { DragAndDropListItemComponent } from './drag-and-drop-list-item/drag-and-drop-list-item.component';
7
+ import { DragAndDropListComponent } from './drag-and-drop-list.component';
8
+ import { KeyboardSortableItemDirective } from './keyboard-sortable-item/keyboard-sortable-item.directive';
9
+ import { KeyboardSortableListDirective } from './keyboard-sortable-list/keyboard-sortable-list.directive';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ngx-translate/core";
12
+ export class LxDragAndDropListModule {
13
+ }
14
+ LxDragAndDropListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxDragAndDropListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ LxDragAndDropListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxDragAndDropListModule, declarations: [KeyboardSortableItemDirective, KeyboardSortableListDirective, DragAndDropListComponent, DragAndDropListItemComponent], imports: [CommonModule, DragDropModule, LxCoreUiModule, i1.TranslateModule], exports: [DragAndDropListComponent, DragAndDropListItemComponent] });
16
+ LxDragAndDropListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxDragAndDropListModule, imports: [[CommonModule, DragDropModule, LxCoreUiModule, TranslateModule.forChild()]] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxDragAndDropListModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ declarations: [KeyboardSortableItemDirective, KeyboardSortableListDirective, DragAndDropListComponent, DragAndDropListItemComponent],
21
+ imports: [CommonModule, DragDropModule, LxCoreUiModule, TranslateModule.forChild()],
22
+ exports: [DragAndDropListComponent, DragAndDropListItemComponent]
23
+ }]
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvZHJhZy1hbmQtZHJvcC1saXN0L2RyYWctYW5kLWRyb3AtbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDM0csT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDMUcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkRBQTJELENBQUM7OztBQU8xRyxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBSm5CLDZCQUE2QixFQUFFLDZCQUE2QixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixhQUN6SCxZQUFZLEVBQUUsY0FBYyxFQUFFLGNBQWMsaUNBQzVDLHdCQUF3QixFQUFFLDRCQUE0QjtxSEFFckQsdUJBQXVCLFlBSHpCLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDOzJGQUd4RSx1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsNkJBQTZCLEVBQUUsNkJBQTZCLEVBQUUsd0JBQXdCLEVBQUUsNEJBQTRCLENBQUM7b0JBQ3BJLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbkYsT0FBTyxFQUFFLENBQUMsd0JBQXdCLEVBQUUsNEJBQTRCLENBQUM7aUJBQ2xFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBMeENvcmVVaU1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvY29yZS11aS5tb2R1bGUnO1xuaW1wb3J0IHsgRHJhZ0FuZERyb3BMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0vZHJhZy1hbmQtZHJvcC1saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IERyYWdBbmREcm9wTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZHJhZy1hbmQtZHJvcC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4va2V5Ym9hcmQtc29ydGFibGUtaXRlbS9rZXlib2FyZC1zb3J0YWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBLZXlib2FyZFNvcnRhYmxlTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4va2V5Ym9hcmQtc29ydGFibGUtbGlzdC9rZXlib2FyZC1zb3J0YWJsZS1saXN0LmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0tleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlLCBLZXlib2FyZFNvcnRhYmxlTGlzdERpcmVjdGl2ZSwgRHJhZ0FuZERyb3BMaXN0Q29tcG9uZW50LCBEcmFnQW5kRHJvcExpc3RJdGVtQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRHJhZ0Ryb3BNb2R1bGUsIEx4Q29yZVVpTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKV0sXG4gIGV4cG9ydHM6IFtEcmFnQW5kRHJvcExpc3RDb21wb25lbnQsIERyYWdBbmREcm9wTGlzdEl0ZW1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEx4RHJhZ0FuZERyb3BMaXN0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,133 @@
1
+ import { Directive, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { TooltipDirective } from '../../../../core-ui/tooltip/tooltip.directive';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/drag-drop";
6
+ import * as i2 from "@angular/cdk/overlay";
7
+ export class KeyboardSortableItemDirective {
8
+ constructor(draggableItem, overlayPositionBuilder, element, overlay) {
9
+ this.draggableItem = draggableItem;
10
+ this.overlayPositionBuilder = overlayPositionBuilder;
11
+ this.element = element;
12
+ this.overlay = overlay;
13
+ this.isSortingByKeyboardChange = new EventEmitter();
14
+ this.itemBeingSortedChange = new EventEmitter();
15
+ this.sortItemsWithKeyboard = new EventEmitter();
16
+ this.tooltipDirective = new TooltipDirective(this.overlayPositionBuilder, this.element, this.overlay);
17
+ this.isBeingSorted = false;
18
+ this.preventBlur = false;
19
+ this.focusWithKeyboardReplaySubject$ = new ReplaySubject(1);
20
+ /**
21
+ * Using a ReplaySubject here so that the KeyboardSortableListDirective will also know
22
+ * about a focusWithKeyboard event when its copy of the KeyboardSortableItemDirective ContentChildren
23
+ * was just initialised after the event fired.
24
+ */
25
+ this.focusWithKeyboard = this.focusWithKeyboardReplaySubject$.asObservable();
26
+ }
27
+ get isSortable() {
28
+ return !this.draggableItem.disabled;
29
+ }
30
+ ngOnChanges() {
31
+ this.isBeingSorted = this.itemData === this.itemBeingSorted;
32
+ if (this.isBeingSorted) {
33
+ // focus always the pressed element
34
+ this.element.nativeElement.focus();
35
+ }
36
+ }
37
+ focusViaKeyboard() {
38
+ this.focusWithKeyboardReplaySubject$.next(this);
39
+ }
40
+ enterSortingModeEnabledByKeyboard($event) {
41
+ if ($event.target === this.element.nativeElement) {
42
+ if ($event.code === 'Enter' || $event.code === 'Space') {
43
+ $event.preventDefault();
44
+ this.tooltipDirective.hide();
45
+ this.itemBeingSortedChange.emit(!this.isSortingByKeyboard ? this.itemData : undefined);
46
+ this.isSortingByKeyboardChange.emit(!this.isSortingByKeyboard);
47
+ }
48
+ }
49
+ }
50
+ leaveSortingModeEnabledByKeyboard($event) {
51
+ if ($event.target === this.element.nativeElement) {
52
+ this.tooltipDirective.hide();
53
+ if (!this.preventBlur) {
54
+ this.isSortingByKeyboardChange.emit(false);
55
+ this.itemBeingSortedChange.emit(undefined);
56
+ }
57
+ }
58
+ }
59
+ sort($event) {
60
+ if ($event.target === this.element.nativeElement) {
61
+ this.tooltipDirective.hide();
62
+ if (this.isSortingByKeyboard) {
63
+ $event.preventDefault();
64
+ const previousIndex = this.allItemsData.findIndex((item) => item === this.itemData);
65
+ const currentIndex = $event.code === 'ArrowUp' ? previousIndex - 1 : previousIndex + 1;
66
+ if (currentIndex >= 0 && currentIndex <= this.allItemsData.length - 1) {
67
+ this.sortItemsWithKeyboard.emit({ previousIndex, currentIndex });
68
+ // When triggering a keyboard event, the DOM would "removeChildren" on the HTML element
69
+ // which specially for "ArrowUp" events would trigger a "blur" event since the element
70
+ // has been moved aboved the DOM tree and loses the focus state.
71
+ this.preventBlur = true;
72
+ setTimeout(() => (this.preventBlur = false), 0);
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ KeyboardSortableItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: KeyboardSortableItemDirective, deps: [{ token: i1.CdkDrag }, { token: i2.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i2.Overlay }], target: i0.ɵɵFactoryTarget.Directive });
79
+ KeyboardSortableItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: KeyboardSortableItemDirective, selector: "[lxKeyboardSortableItem]", inputs: { allItemsData: ["lxKeyboardSortableItem", "allItemsData"], itemData: ["lxKeyboardItemData", "itemData"], isSortingByKeyboard: "isSortingByKeyboard", itemBeingSorted: ["lxKeyboardItemBeingSorted", "itemBeingSorted"] }, outputs: { isSortingByKeyboardChange: "isSortingByKeyboardChange", itemBeingSortedChange: "lxKeyboardItemBeingSortedChange", sortItemsWithKeyboard: "sortItemsWithKeyboard", focusWithKeyboard: "focusWithKeyboard" }, host: { listeners: { "keyup.tab": "focusViaKeyboard()", "keydown.enter": "enterSortingModeEnabledByKeyboard($event)", "keydown.space": "enterSortingModeEnabledByKeyboard($event)", "blur": "leaveSortingModeEnabledByKeyboard($event)", "keydown.esc": "leaveSortingModeEnabledByKeyboard($event)", "keydown.arrowUp": "sort($event)", "keydown.arrowDown": "sort($event)" }, properties: { "attr.lxTooltip": "this.tooltipDirective", "class.isBeingSortedByKeyboard": "this.isBeingSorted" } }, usesOnChanges: true, ngImport: i0 });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: KeyboardSortableItemDirective, decorators: [{
81
+ type: Directive,
82
+ args: [{
83
+ selector: '[lxKeyboardSortableItem]'
84
+ }]
85
+ }], ctorParameters: function () { return [{ type: i1.CdkDrag }, { type: i2.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i2.Overlay }]; }, propDecorators: { allItemsData: [{
86
+ type: Input,
87
+ args: ['lxKeyboardSortableItem']
88
+ }], itemData: [{
89
+ type: Input,
90
+ args: ['lxKeyboardItemData']
91
+ }], isSortingByKeyboard: [{
92
+ type: Input
93
+ }], itemBeingSorted: [{
94
+ type: Input,
95
+ args: ['lxKeyboardItemBeingSorted']
96
+ }], isSortingByKeyboardChange: [{
97
+ type: Output
98
+ }], itemBeingSortedChange: [{
99
+ type: Output,
100
+ args: ['lxKeyboardItemBeingSortedChange']
101
+ }], sortItemsWithKeyboard: [{
102
+ type: Output
103
+ }], focusWithKeyboard: [{
104
+ type: Output
105
+ }], tooltipDirective: [{
106
+ type: HostBinding,
107
+ args: ['attr.lxTooltip']
108
+ }], isBeingSorted: [{
109
+ type: HostBinding,
110
+ args: ['class.isBeingSortedByKeyboard']
111
+ }], focusViaKeyboard: [{
112
+ type: HostListener,
113
+ args: ['keyup.tab']
114
+ }], enterSortingModeEnabledByKeyboard: [{
115
+ type: HostListener,
116
+ args: ['keydown.enter', ['$event']]
117
+ }, {
118
+ type: HostListener,
119
+ args: ['keydown.space', ['$event']]
120
+ }], leaveSortingModeEnabledByKeyboard: [{
121
+ type: HostListener,
122
+ args: ['blur', ['$event']]
123
+ }, {
124
+ type: HostListener,
125
+ args: ['keydown.esc', ['$event']]
126
+ }], sort: [{
127
+ type: HostListener,
128
+ args: ['keydown.arrowUp', ['$event']]
129
+ }, {
130
+ type: HostListener,
131
+ args: ['keydown.arrowDown', ['$event']]
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc29ydGFibGUtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RyYWctYW5kLWRyb3AtbGlzdC9rZXlib2FyZC1zb3J0YWJsZS1pdGVtL2tleWJvYXJkLXNvcnRhYmxlLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6SCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBS2pGLE1BQU0sT0FBTyw2QkFBNkI7SUFxQnhDLFlBQ1UsYUFBc0IsRUFDdEIsc0JBQThDLEVBQzlDLE9BQWdDLEVBQ2hDLE9BQWdCO1FBSGhCLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQ3RCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDaEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQW5CUCw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3ZCLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDN0YsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQW1ELENBQUM7UUFHdkUscUJBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEYsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFNckUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7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QUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZSAqL1xuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZSAqL1xuaW1wb3J0IHsgQ2RrRHJhZyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlLXVpL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbHhLZXlib2FyZFNvcnRhYmxlSXRlbV0nXG59KVxuZXhwb3J0IGNsYXNzIEtleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCdseEtleWJvYXJkU29ydGFibGVJdGVtJykgYWxsSXRlbXNEYXRhITogc3RyaW5nW107XG4gIEBJbnB1dCgnbHhLZXlib2FyZEl0ZW1EYXRhJykgaXRlbURhdGEhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzU29ydGluZ0J5S2V5Ym9hcmQhOiBib29sZWFuO1xuICBASW5wdXQoJ2x4S2V5Ym9hcmRJdGVtQmVpbmdTb3J0ZWQnKSBpdGVtQmVpbmdTb3J0ZWQhOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzU29ydGluZ0J5S2V5Ym9hcmRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoJ2x4S2V5Ym9hcmRJdGVtQmVpbmdTb3J0ZWRDaGFuZ2UnKSByZWFkb25seSBpdGVtQmVpbmdTb3J0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHNvcnRJdGVtc1dpdGhLZXlib2FyZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBwcmV2aW91c0luZGV4OiBudW1iZXI7IGN1cnJlbnRJbmRleDogbnVtYmVyIH0+KCk7XG4gIEBPdXRwdXQoKSBmb2N1c1dpdGhLZXlib2FyZCE6IE9ic2VydmFibGU8S2V5Ym9hcmRTb3J0YWJsZUl0ZW1EaXJlY3RpdmU+O1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5seFRvb2x0aXAnKSB0b29sdGlwRGlyZWN0aXZlID0gbmV3IFRvb2x0aXBEaXJlY3RpdmUodGhpcy5vdmVybGF5UG9zaXRpb25CdWlsZGVyLCB0aGlzLmVsZW1lbnQsIHRoaXMub3ZlcmxheSk7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXNCZWluZ1NvcnRlZEJ5S2V5Ym9hcmQnKSBpc0JlaW5nU29ydGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGlzU29ydGFibGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLmRyYWdnYWJsZUl0ZW0uZGlzYWJsZWQ7XG4gIH1cblxuICBwcml2YXRlIHByZXZlbnRCbHVyID0gZmFsc2U7XG4gIHByaXZhdGUgZm9jdXNXaXRoS2V5Ym9hcmRSZXBsYXlTdWJqZWN0JCA9IG5ldyBSZXBsYXlTdWJqZWN0PEtleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlPigxKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRyYWdnYWJsZUl0ZW06IENka0RyYWcsXG4gICAgcHJpdmF0ZSBvdmVybGF5UG9zaXRpb25CdWlsZGVyOiBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5XG4gICkge1xuICAgIC8qKlxuICAgICAqIFVzaW5nIGEgUmVwbGF5U3ViamVjdCBoZXJlIHNvIHRoYXQgdGhlIEtleWJvYXJkU29ydGFibGVMaXN0RGlyZWN0aXZlIHdpbGwgYWxzbyBrbm93XG4gICAgICogYWJvdXQgYSBmb2N1c1dpdGhLZXlib2FyZCBldmVudCB3aGVuIGl0cyBjb3B5IG9mIHRoZSBLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZSBDb250ZW50Q2hpbGRyZW5cbiAgICAgKiB3YXMganVzdCBpbml0aWFsaXNlZCBhZnRlciB0aGUgZXZlbnQgZmlyZWQuXG4gICAgICovXG4gICAgdGhpcy5mb2N1c1dpdGhLZXlib2FyZCA9IHRoaXMuZm9jdXNXaXRoS2V5Ym9hcmRSZXBsYXlTdWJqZWN0JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuaXNCZWluZ1NvcnRlZCA9IHRoaXMuaXRlbURhdGEgPT09IHRoaXMuaXRlbUJlaW5nU29ydGVkO1xuICAgIGlmICh0aGlzLmlzQmVpbmdTb3J0ZWQpIHtcbiAgICAgIC8vIGZvY3VzIGFsd2F5cyB0aGUgcHJlc3NlZCBlbGVtZW50XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwLnRhYicpXG4gIGZvY3VzVmlhS2V5Ym9hcmQoKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c1dpdGhLZXlib2FyZFJlcGxheVN1YmplY3QkLm5leHQodGhpcyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5zcGFjZScsIFsnJGV2ZW50J10pXG4gIGVudGVyU29ydGluZ01vZGVFbmFibGVkQnlLZXlib2FyZCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50LnRhcmdldCA9PT0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIGlmICgkZXZlbnQuY29kZSA9PT0gJ0VudGVyJyB8fCAkZXZlbnQuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy50b29sdGlwRGlyZWN0aXZlLmhpZGUoKTtcblxuICAgICAgICB0aGlzLml0ZW1CZWluZ1NvcnRlZENoYW5nZS5lbWl0KCF0aGlzLmlzU29ydGluZ0J5S2V5Ym9hcmQgPyB0aGlzLml0ZW1EYXRhIDogdW5kZWZpbmVkKTtcbiAgICAgICAgdGhpcy5pc1NvcnRpbmdCeUtleWJvYXJkQ2hhbmdlLmVtaXQoIXRoaXMuaXNTb3J0aW5nQnlLZXlib2FyZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjJywgWyckZXZlbnQnXSlcbiAgbGVhdmVTb3J0aW5nTW9kZUVuYWJsZWRCeUtleWJvYXJkKCRldmVudDogS2V5Ym9hcmRFdmVudCB8IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoJGV2ZW50LnRhcmdldCA9PT0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMudG9vbHRpcERpcmVjdGl2ZS5oaWRlKCk7XG4gICAgICBpZiAoIXRoaXMucHJldmVudEJsdXIpIHtcbiAgICAgICAgdGhpcy5pc1NvcnRpbmdCeUtleWJvYXJkQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICB0aGlzLml0ZW1CZWluZ1NvcnRlZENoYW5nZS5lbWl0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd1VwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0Rvd24nLCBbJyRldmVudCddKVxuICBzb3J0KCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgkZXZlbnQudGFyZ2V0ID09PSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xuICAgICAgdGhpcy50b29sdGlwRGlyZWN0aXZlLmhpZGUoKTtcbiAgICAgIGlmICh0aGlzLmlzU29ydGluZ0J5S2V5Ym9hcmQpIHtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IHRoaXMuYWxsSXRlbXNEYXRhLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbSA9PT0gdGhpcy5pdGVtRGF0YSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9ICRldmVudC5jb2RlID09PSAnQXJyb3dVcCcgPyBwcmV2aW91c0luZGV4IC0gMSA6IHByZXZpb3VzSW5kZXggKyAxO1xuXG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPj0gMCAmJiBjdXJyZW50SW5kZXggPD0gdGhpcy5hbGxJdGVtc0RhdGEubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHRoaXMuc29ydEl0ZW1zV2l0aEtleWJvYXJkLmVtaXQoeyBwcmV2aW91c0luZGV4LCBjdXJyZW50SW5kZXggfSk7XG5cbiAgICAgICAgICAvLyBXaGVuIHRyaWdnZXJpbmcgYSBrZXlib2FyZCBldmVudCwgdGhlIERPTSB3b3VsZCBcInJlbW92ZUNoaWxkcmVuXCIgb24gdGhlIEhUTUwgZWxlbWVudFxuICAgICAgICAgIC8vIHdoaWNoIHNwZWNpYWxseSBmb3IgXCJBcnJvd1VwXCIgZXZlbnRzIHdvdWxkIHRyaWdnZXIgYSBcImJsdXJcIiBldmVudCBzaW5jZSB0aGUgZWxlbWVudFxuICAgICAgICAgIC8vIGhhcyBiZWVuIG1vdmVkIGFib3ZlZCB0aGUgRE9NIHRyZWUgYW5kIGxvc2VzIHRoZSBmb2N1cyBzdGF0ZS5cbiAgICAgICAgICB0aGlzLnByZXZlbnRCbHVyID0gdHJ1ZTtcblxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMucHJldmVudEJsdXIgPSBmYWxzZSksIDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, Input } from '@angular/core';
3
+ import { merge } from 'rxjs';
4
+ import { filter, switchMap, take } from 'rxjs/operators';
5
+ import { Observe } from '../../../../shared/observe';
6
+ import { DRAG_AND_DROP_LIST_TRANSLATION_NAME } from '../constants';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngx-translate/core";
9
+ export class KeyboardSortableListDirective {
10
+ constructor(translateService) {
11
+ this.translateService = translateService;
12
+ }
13
+ ngAfterViewInit() {
14
+ this.setupControlsTooltipToBeShownOnFirstFocusedItem();
15
+ }
16
+ setupControlsTooltipToBeShownOnFirstFocusedItem() {
17
+ const firstFocusEventOnADraggableItem$ = this.keyboardSortableItems$.pipe(filter((items) => items && items.length > 0), switchMap((items) => merge(...items.filter((item) => item.isSortable).map((item) => item.focusWithKeyboard))), take(1));
18
+ firstFocusEventOnADraggableItem$.subscribe((item) => {
19
+ item.tooltipDirective.content = this.translateService.instant(`${DRAG_AND_DROP_LIST_TRANSLATION_NAME}.helpTooltip`);
20
+ item.tooltipDirective.show();
21
+ });
22
+ }
23
+ }
24
+ KeyboardSortableListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: KeyboardSortableListDirective, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
25
+ KeyboardSortableListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: KeyboardSortableListDirective, selector: "[lxKeyboardSortableList]", inputs: { keyboardSortableItems: "keyboardSortableItems" }, ngImport: i0 });
26
+ __decorate([
27
+ Observe('keyboardSortableItems')
28
+ ], KeyboardSortableListDirective.prototype, "keyboardSortableItems$", void 0);
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: KeyboardSortableListDirective, decorators: [{
30
+ type: Directive,
31
+ args: [{
32
+ selector: '[lxKeyboardSortableList]'
33
+ }]
34
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { keyboardSortableItems$: [], keyboardSortableItems: [{
35
+ type: Input
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc29ydGFibGUtbGlzdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RyYWctYW5kLWRyb3AtbGlzdC9rZXlib2FyZC1zb3J0YWJsZS1saXN0L2tleWJvYXJkLXNvcnRhYmxlLWxpc3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFNbkUsTUFBTSxPQUFPLDZCQUE2QjtJQUl4QyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQsZUFBZTtRQUNiLElBQUksQ0FBQywrQ0FBK0MsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFTywrQ0FBK0M7UUFDckQsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUN2RSxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUM1QyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFDN0csSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7UUFFRixnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxtQ0FBbUMsY0FBYyxDQUFDLENBQUM7WUFDcEgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MEhBckJVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCO0FBQ047SUFBakMsT0FBTyxDQUFDLHVCQUF1QixDQUFDOzZFQUE4RTsyRkFEcEcsNkJBQTZCO2tCQUh6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3JDO3VHQUUyQyxzQkFBc0IsTUFDdkQscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcbmltcG9ydCB7IERSQUdfQU5EX0RST1BfTElTVF9UUkFOU0xBVElPTl9OQU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEtleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4va2V5Ym9hcmQtc29ydGFibGUtaXRlbS9rZXlib2FyZC1zb3J0YWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tseEtleWJvYXJkU29ydGFibGVMaXN0XSdcbn0pXG5leHBvcnQgY2xhc3MgS2V5Ym9hcmRTb3J0YWJsZUxpc3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQE9ic2VydmUoJ2tleWJvYXJkU29ydGFibGVJdGVtcycpIHByaXZhdGUga2V5Ym9hcmRTb3J0YWJsZUl0ZW1zJCE6IE9ic2VydmFibGU8S2V5Ym9hcmRTb3J0YWJsZUl0ZW1EaXJlY3RpdmVbXT47XG4gIEBJbnB1dCgpIGtleWJvYXJkU29ydGFibGVJdGVtcyE6IEtleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwQ29udHJvbHNUb29sdGlwVG9CZVNob3duT25GaXJzdEZvY3VzZWRJdGVtKCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ29udHJvbHNUb29sdGlwVG9CZVNob3duT25GaXJzdEZvY3VzZWRJdGVtKCkge1xuICAgIGNvbnN0IGZpcnN0Rm9jdXNFdmVudE9uQURyYWdnYWJsZUl0ZW0kID0gdGhpcy5rZXlib2FyZFNvcnRhYmxlSXRlbXMkLnBpcGUoXG4gICAgICBmaWx0ZXIoKGl0ZW1zKSA9PiBpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwKSxcbiAgICAgIHN3aXRjaE1hcCgoaXRlbXMpID0+IG1lcmdlKC4uLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5pc1NvcnRhYmxlKS5tYXAoKGl0ZW0pID0+IGl0ZW0uZm9jdXNXaXRoS2V5Ym9hcmQpKSksXG4gICAgICB0YWtlKDEpXG4gICAgKTtcblxuICAgIGZpcnN0Rm9jdXNFdmVudE9uQURyYWdnYWJsZUl0ZW0kLnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS50b29sdGlwRGlyZWN0aXZlLmNvbnRlbnQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgJHtEUkFHX0FORF9EUk9QX0xJU1RfVFJBTlNMQVRJT05fTkFNRX0uaGVscFRvb2x0aXBgKTtcbiAgICAgIGl0ZW0udG9vbHRpcERpcmVjdGl2ZS5zaG93KCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@ngx-translate/core";
5
+ export class ErrorMessageComponent {
6
+ constructor(cd) {
7
+ this.cd = cd;
8
+ }
9
+ set key(value) {
10
+ if (value !== this._key) {
11
+ this._key = value;
12
+ this.cd.detectChanges();
13
+ }
14
+ }
15
+ }
16
+ ErrorMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ErrorMessageComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
17
+ ErrorMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ErrorMessageComponent, selector: "lx-error-message", inputs: { key: "key" }, ngImport: i0, template: `<div class="error" *ngIf="_key">{{ _key | translate }}</div>`, isInline: true, styles: [".error{color:#f96464;padding:4px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i2.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ErrorMessageComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'lx-error-message', template: `<div class="error" *ngIf="_key">{{ _key | translate }}</div>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".error{color:#f96464;padding:4px}\n"] }]
21
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { key: [{
22
+ type: Input
23
+ }] } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTdGLE1BQU0sT0FBTyxxQkFBcUI7SUFVaEMsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFBRyxDQUFDO0lBUDdDLElBQWEsR0FBRyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7O2tIQVJVLHFCQUFxQjtzR0FBckIscUJBQXFCLGdGQUp0Qiw4REFBOEQ7MkZBSTdELHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsOERBQThELG1CQUV2RCx1QkFBdUIsQ0FBQyxNQUFNO3dHQUtsQyxHQUFHO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtZXJyb3ItbWVzc2FnZScsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImVycm9yXCIgKm5nSWY9XCJfa2V5XCI+e3sgX2tleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PmAsXG4gIHN0eWxlVXJsczogWycuL2Vycm9yLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JNZXNzYWdlQ29tcG9uZW50IHtcbiAgX2tleT86IHN0cmluZztcblxuICBASW5wdXQoKSBzZXQga2V5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX2tleSkge1xuICAgICAgdGhpcy5fa2V5ID0gdmFsdWU7XG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@ngx-translate/core";
5
+ export class FormErrorComponent {
6
+ constructor() {
7
+ this.translationKeys = [];
8
+ }
9
+ ngOnInit() {
10
+ this.formSubscription = this.form.valueChanges.subscribe(() => {
11
+ this.translationKeys = this.getTranslationKeys();
12
+ });
13
+ }
14
+ ngOnChanges(_changes) {
15
+ this.translationKeys = this.getTranslationKeys();
16
+ }
17
+ ngOnDestroy() {
18
+ this.formSubscription.unsubscribe();
19
+ }
20
+ getTranslationKeys() {
21
+ const formControl = this.form.controls[this.controlName];
22
+ if (formControl && formControl.errors) {
23
+ return Object.keys(formControl.errors).map((errorKey) => `${this.namespace}.errors.${this.controlName}.${errorKey}`);
24
+ }
25
+ return [];
26
+ }
27
+ }
28
+ FormErrorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ FormErrorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: FormErrorComponent, selector: "lx-form-error", inputs: { namespace: "namespace", form: "form", controlName: "controlName" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"error\" *ngFor=\"let key of translationKeys\">\n {{ key | translate }}\n</div>\n", styles: [".error{color:#f96464;padding:4px}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i2.TranslatePipe } });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FormErrorComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'lx-form-error', template: "<div class=\"error\" *ngFor=\"let key of translationKeys\">\n {{ key | translate }}\n</div>\n", styles: [".error{color:#f96464;padding:4px}\n"] }]
33
+ }], propDecorators: { namespace: [{
34
+ type: Input
35
+ }], form: [{
36
+ type: Input
37
+ }], controlName: [{
38
+ type: Input
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7Ozs7QUFTOUYsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQVVFLG9CQUFlLEdBQWEsRUFBRSxDQUFDO0tBd0JoQztJQXJCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBdUI7UUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3JDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLFdBQVcsSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3RIO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzsrR0E1QlUsa0JBQWtCO21HQUFsQixrQkFBa0Isd0pDVC9CLGdHQUdBOzJGRE1hLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlOzhCQUtULFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWZvcm0tZXJyb3InLFxuICB0ZW1wbGF0ZVVybDogJ2Zvcm0tZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZm9ybS1lcnJvci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FcnJvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgbmFtZXNwYWNlITogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybSE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2xOYW1lITogc3RyaW5nO1xuXG4gIHRyYW5zbGF0aW9uS2V5czogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSBmb3JtU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybVN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudHJhbnNsYXRpb25LZXlzID0gdGhpcy5nZXRUcmFuc2xhdGlvbktleXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy50cmFuc2xhdGlvbktleXMgPSB0aGlzLmdldFRyYW5zbGF0aW9uS2V5cygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JtU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXRUcmFuc2xhdGlvbktleXMoKSB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5jb250cm9sTmFtZV07XG4gICAgaWYgKGZvcm1Db250cm9sICYmIGZvcm1Db250cm9sLmVycm9ycykge1xuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvcm1Db250cm9sLmVycm9ycykubWFwKChlcnJvcktleSkgPT4gYCR7dGhpcy5uYW1lc3BhY2V9LmVycm9ycy4ke3RoaXMuY29udHJvbE5hbWV9LiR7ZXJyb3JLZXl9YCk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVycm9yXCIgKm5nRm9yPVwibGV0IGtleSBvZiB0cmFuc2xhdGlvbktleXNcIj5cbiAge3sga2V5IHwgdHJhbnNsYXRlIH19XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Displays Font Awesome icons.
5
+ */
6
+ export class IconComponent {
7
+ constructor() {
8
+ this.NAME = 'IconComponent';
9
+ this.color = '#000';
10
+ this.fontAwsomeStyle = 'regular';
11
+ this.size = '14px';
12
+ this.iconStyleMap = {
13
+ solid: 'fas',
14
+ regular: 'far',
15
+ light: 'fal'
16
+ };
17
+ this.iconStyle = 'far';
18
+ }
19
+ ngOnChanges(changes) {
20
+ if ('fontAwsomeStyle' in changes) {
21
+ this.iconStyle = this.iconStyleMap[this.fontAwsomeStyle];
22
+ }
23
+ }
24
+ }
25
+ IconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
+ IconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: IconComponent, selector: "lx-icon", inputs: { name: "name", color: "color", fontAwsomeStyle: "fontAwsomeStyle", size: "size", title: "title" }, host: { properties: { "style.height": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<i [attr.title]=\"title\" [class]=\"iconStyle + ' fa-' + name\" [style.color]=\"color\" [style.fontSize]=\"size\"></i>\n", styles: [":host{display:inline-block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: IconComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'lx-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<i [attr.title]=\"title\" [class]=\"iconStyle + ' fa-' + name\" [style.color]=\"color\" [style.fontSize]=\"size\"></i>\n", styles: [":host{display:inline-block}\n"] }]
30
+ }], propDecorators: { name: [{
31
+ type: Input
32
+ }], color: [{
33
+ type: Input
34
+ }], fontAwsomeStyle: [{
35
+ type: Input
36
+ }], size: [{
37
+ type: Input
38
+ }, {
39
+ type: HostBinding,
40
+ args: ['style.height']
41
+ }], title: [{
42
+ type: Input
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDOztBQVNqSDs7R0FFRztBQU9ILE1BQU0sT0FBTyxhQUFhO0lBTjFCO1FBT1csU0FBSSxHQUFHLGVBQWUsQ0FBQztRQU12QixVQUFLLEdBQVcsTUFBTSxDQUFDO1FBQ3ZCLG9CQUFlLEdBQWtDLFNBQVMsQ0FBQztRQUM5QixTQUFJLEdBQVcsTUFBTSxDQUFDO1FBR3BELGlCQUFZLEdBQVU7WUFDNUIsS0FBSyxFQUFFLEtBQUs7WUFDWixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUVGLGNBQVMsR0FBeUIsS0FBSyxDQUFDO0tBT3pDO0lBTEMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksaUJBQWlCLElBQUksT0FBTyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDOzswR0F4QlUsYUFBYTs4RkFBYixhQUFhLHVPQ2xCMUIsMEhBQ0E7MkZEaUJhLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsU0FBUyxtQkFHRix1QkFBdUIsQ0FBQyxNQUFNOzhCQVF0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ2dDLElBQUk7c0JBQXpDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsY0FBYztnQkFDM0IsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBmYXMgaXMgc29saWQsXG4gKiBmYXIgaXMgcmVndWxhcixcbiAqIGZhbCBpcyBsaWdodFxuICovXG50eXBlIEZvbnRBd2Vzb21lSWNvblN0eWxlID0gJ2ZhcycgfCAnZmFyJyB8ICdmYWwnO1xuXG4vKipcbiAqIERpc3BsYXlzIEZvbnQgQXdlc29tZSBpY29ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtaWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydpY29uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICByZWFkb25seSBOQU1FID0gJ0ljb25Db21wb25lbnQnO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaWNvbiBpcyB0aGUgcGFydCB0aGF0IGNvbWVzIGFmdGVyIHRoZSBcImZhLVwiIGluIHRoZSBDU1MgY2xhc3MuXG4gICAqL1xuICBASW5wdXQoKSBuYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nID0gJyMwMDAnO1xuICBASW5wdXQoKSBmb250QXdzb21lU3R5bGU6ICdzb2xpZCcgfCAncmVndWxhcicgfCAnbGlnaHQnID0gJ3JlZ3VsYXInO1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIHNpemU6IHN0cmluZyA9ICcxNHB4JztcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBpY29uU3R5bGVNYXAgPSA8Y29uc3Q+e1xuICAgIHNvbGlkOiAnZmFzJyxcbiAgICByZWd1bGFyOiAnZmFyJyxcbiAgICBsaWdodDogJ2ZhbCdcbiAgfTtcblxuICBpY29uU3R5bGU6IEZvbnRBd2Vzb21lSWNvblN0eWxlID0gJ2Zhcic7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnZm9udEF3c29tZVN0eWxlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICB0aGlzLmljb25TdHlsZSA9IHRoaXMuaWNvblN0eWxlTWFwW3RoaXMuZm9udEF3c29tZVN0eWxlXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxpIFthdHRyLnRpdGxlXT1cInRpdGxlXCIgW2NsYXNzXT1cImljb25TdHlsZSArICcgZmEtJyArIG5hbWVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIiBbc3R5bGUuZm9udFNpemVdPVwic2l6ZVwiPjwvaT5cbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { Component, HostBinding, Input, Optional } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { startWith, takeUntil } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ export class InputComponent {
7
+ constructor(ngControl) {
8
+ this.ngControl = ngControl;
9
+ this.error = false;
10
+ this.disabled = false;
11
+ this.destory$ = new Subject();
12
+ }
13
+ ngOnInit() {
14
+ if (this.ngControl) {
15
+ this.ngControl.statusChanges?.pipe(startWith(null), takeUntil(this.destory$)).subscribe(() => this.updateStatus());
16
+ }
17
+ }
18
+ updateStatus() {
19
+ this.error = !!this.ngControl?.errors;
20
+ this.disabled = !!this.ngControl?.disabled;
21
+ }
22
+ ngOnDestroy() {
23
+ this.destory$.next();
24
+ }
25
+ }
26
+ InputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: InputComponent, deps: [{ token: i1.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Component });
27
+ InputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: InputComponent, selector: "input[lx-input]", inputs: { error: "error", disabled: "disabled" }, host: { properties: { "class.error": "this.error", "class.disabled": "this.disabled" } }, ngImport: i0, template: ``, isInline: true, styles: [":host{height:32px;padding:8px;border-radius:3px;border:solid 1px #99a5bb;outline:0;color:#2a303d}:host:focus{border-color:#59f}:host.error{border-color:#f96464}:host.disabled{background-color:#f0f2f5;color:#677a9a}\n"] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: InputComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'input[lx-input]', template: ``, styles: [":host{height:32px;padding:8px;border-radius:3px;border:solid 1px #99a5bb;outline:0;color:#2a303d}:host:focus{border-color:#59f}:host.error{border-color:#f96464}:host.disabled{background-color:#f0f2f5;color:#677a9a}\n"] }]
31
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
32
+ type: Optional
33
+ }] }]; }, propDecorators: { error: [{
34
+ type: Input
35
+ }, {
36
+ type: HostBinding,
37
+ args: ['class.error']
38
+ }], disabled: [{
39
+ type: Input
40
+ }, {
41
+ type: HostBinding,
42
+ args: ['class.disabled']
43
+ }] } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRdEQsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBK0IsU0FBcUI7UUFBckIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUxmLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRXNCLENBQUM7SUFFeEQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDcEg7SUFDSCxDQUFDO0lBRU8sWUFBWTtRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7MkdBckJVLGNBQWM7K0ZBQWQsY0FBYyxtTUFGZixFQUFFOzJGQUVELGNBQWM7a0JBTjFCLFNBQVM7K0JBRUUsaUJBQWlCLFlBRWpCLEVBQUU7OzBCQVFDLFFBQVE7NENBTGdCLEtBQUs7c0JBQXpDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsYUFBYTtnQkFDSyxRQUFRO3NCQUEvQyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdpbnB1dFtseC1pbnB1dF0nLFxuICBzdHlsZVVybHM6IFsnaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGBgXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmVycm9yJykgZXJyb3IgPSBmYWxzZTtcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBkZXN0b3J5JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIG5nQ29udHJvbD86IE5nQ29udHJvbCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXM/LnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwodGhpcy5kZXN0b3J5JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVN0YXR1cygpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0YXR1cygpIHtcbiAgICB0aGlzLmVycm9yID0gISF0aGlzLm5nQ29udHJvbD8uZXJyb3JzO1xuICAgIHRoaXMuZGlzYWJsZWQgPSAhIXRoaXMubmdDb250cm9sPy5kaXNhYmxlZDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdG9yeSQubmV4dCgpO1xuICB9XG59XG4iXX0=