@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.
- package/esm2020/index.mjs +119 -0
- package/esm2020/leanix-components.mjs +5 -0
- package/esm2020/lib/core-ui/annotations/required.mjs +33 -0
- package/esm2020/lib/core-ui/components/badge/badge.component.mjs +25 -0
- package/esm2020/lib/core-ui/components/button/button.component.mjs +72 -0
- package/esm2020/lib/core-ui/components/button-group/button-group.component.mjs +28 -0
- package/esm2020/lib/core-ui/components/card/card.component.mjs +19 -0
- package/esm2020/lib/core-ui/components/collapsible/collapsible.component.mjs +53 -0
- package/esm2020/lib/core-ui/components/colored-label/colored-label.component.mjs +34 -0
- package/esm2020/lib/core-ui/components/ellipsis/ellipsis.component.mjs +70 -0
- package/esm2020/lib/core-ui/components/icon-scale/icon-scale.component.mjs +40 -0
- package/esm2020/lib/core-ui/components/spinner/spinner.component.mjs +26 -0
- package/esm2020/lib/core-ui/components/table/table-header/table-header.component.mjs +55 -0
- package/esm2020/lib/core-ui/components/table/table.component.mjs +69 -0
- package/esm2020/lib/core-ui/components/tiny-spinner/tiny-spinner.component.mjs +11 -0
- package/esm2020/lib/core-ui/core-ui.constants.mjs +13 -0
- package/esm2020/lib/core-ui/core-ui.module.mjs +177 -0
- package/esm2020/lib/core-ui/directives/after-view-init.directive.mjs +30 -0
- package/esm2020/lib/core-ui/directives/autoclose-group.service.mjs +38 -0
- package/esm2020/lib/core-ui/directives/autoclose.directive.mjs +40 -0
- package/esm2020/lib/core-ui/directives/autofocus.directive.mjs +27 -0
- package/esm2020/lib/core-ui/directives/html.directive.mjs +29 -0
- package/esm2020/lib/core-ui/functions/core-css.helpers.mjs +35 -0
- package/esm2020/lib/core-ui/pipes/br.pipe.mjs +23 -0
- package/esm2020/lib/core-ui/pipes/contrast-color.pipe.mjs +20 -0
- package/esm2020/lib/core-ui/pipes/custom-date.pipe.mjs +27 -0
- package/esm2020/lib/core-ui/pipes/highlight-range.pipe.mjs +21 -0
- package/esm2020/lib/core-ui/pipes/highlight-term.pipe.mjs +38 -0
- package/esm2020/lib/core-ui/pipes/lx-is-uuid.pipe.mjs +21 -0
- package/esm2020/lib/core-ui/pipes/lx-time-ago.pipe.mjs +25 -0
- package/esm2020/lib/core-ui/pipes/lx-translate.pipe.mjs +45 -0
- package/esm2020/lib/core-ui/pipes/markdown.pipe.mjs +29 -0
- package/esm2020/lib/core-ui/pipes/nbsp.pipe.mjs +14 -0
- package/esm2020/lib/core-ui/pipes/sort.pipe.mjs +52 -0
- package/esm2020/lib/core-ui/pipes/translation-after.pipe.mjs +28 -0
- package/esm2020/lib/core-ui/pipes/translation-before.pipe.mjs +53 -0
- package/esm2020/lib/core-ui/pipes/translation-between.pipe.mjs +67 -0
- package/esm2020/lib/core-ui/pipes/unescape-curly-braces.pipe.mjs +16 -0
- package/esm2020/lib/core-ui/tooltip/to-cdk-position.function.mjs +74 -0
- package/esm2020/lib/core-ui/tooltip/tooltip-position.interface.mjs +7 -0
- package/esm2020/lib/core-ui/tooltip/tooltip.component.mjs +26 -0
- package/esm2020/lib/core-ui/tooltip/tooltip.directive.mjs +102 -0
- package/esm2020/lib/core-ui/tooltip/tooltip.module.mjs +21 -0
- package/esm2020/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.mjs +103 -0
- package/esm2020/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.mjs +33 -0
- package/esm2020/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.mjs +216 -0
- package/esm2020/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.mjs +136 -0
- package/esm2020/lib/forms-ui/components/currency/currency-input.component.mjs +141 -0
- package/esm2020/lib/forms-ui/components/currency/currency-symbol-map.constant.mjs +105 -0
- package/esm2020/lib/forms-ui/components/currency/currency-symbol.component.mjs +25 -0
- package/esm2020/lib/forms-ui/components/date-input/date-input.component.mjs +270 -0
- package/esm2020/lib/forms-ui/components/drag-and-drop-list/constants.mjs +5 -0
- package/esm2020/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.mjs +49 -0
- package/esm2020/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.mjs +102 -0
- package/esm2020/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.mjs +25 -0
- package/esm2020/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.mjs +133 -0
- package/esm2020/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.mjs +37 -0
- package/esm2020/lib/forms-ui/components/error-message/error-message.component.mjs +24 -0
- package/esm2020/lib/forms-ui/components/form-error/form-error.component.mjs +40 -0
- package/esm2020/lib/forms-ui/components/icon/icon.component.mjs +44 -0
- package/esm2020/lib/forms-ui/components/input/input.component.mjs +44 -0
- package/esm2020/lib/forms-ui/components/keyboard-select.directive.mjs +116 -0
- package/esm2020/lib/forms-ui/components/multi-select/multi-select.component.mjs +251 -0
- package/esm2020/lib/forms-ui/components/option/option.component.mjs +81 -0
- package/esm2020/lib/forms-ui/components/option-group/option-group.component.mjs +29 -0
- package/esm2020/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.mjs +100 -0
- package/esm2020/lib/forms-ui/components/options-dropdown/options-dropdown.component.mjs +163 -0
- package/esm2020/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.mjs +92 -0
- package/esm2020/lib/forms-ui/components/picker/picker-trigger.directive.mjs +36 -0
- package/esm2020/lib/forms-ui/components/picker/picker.component.mjs +201 -0
- package/esm2020/lib/forms-ui/components/picker-option/picker-option.component.mjs +118 -0
- package/esm2020/lib/forms-ui/components/pill-item/pill-item.component.mjs +33 -0
- package/esm2020/lib/forms-ui/components/pill-list/pill-list.component.mjs +59 -0
- package/esm2020/lib/forms-ui/components/responsive-input/responsive-input.component.mjs +97 -0
- package/esm2020/lib/forms-ui/components/single-select/single-select.component.mjs +274 -0
- package/esm2020/lib/forms-ui/components/slider-toggle/slider-toggle.component.mjs +42 -0
- package/esm2020/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.mjs +52 -0
- package/esm2020/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.mjs +21 -0
- package/esm2020/lib/forms-ui/directives/form-error.directive.mjs +109 -0
- package/esm2020/lib/forms-ui/directives/form-submit.directive.mjs +28 -0
- package/esm2020/lib/forms-ui/directives/keyboard-action-source.directive.mjs +53 -0
- package/esm2020/lib/forms-ui/directives/mark-invalid.directive.mjs +38 -0
- package/esm2020/lib/forms-ui/directives/select-dropdown.directive.mjs +31 -0
- package/esm2020/lib/forms-ui/directives/selectable-item.directive.mjs +33 -0
- package/esm2020/lib/forms-ui/directives/selected-option.directive.mjs +26 -0
- package/esm2020/lib/forms-ui/forms-ui.module.mjs +236 -0
- package/esm2020/lib/forms-ui/helpers/key-codes.constants.mjs +11 -0
- package/esm2020/lib/forms-ui/helpers/keyboard-navigation.helpers.mjs +38 -0
- package/esm2020/lib/forms-ui/models/base-select.directive.mjs +148 -0
- package/esm2020/lib/forms-ui/models/dropdown-item.interface.mjs +2 -0
- package/esm2020/lib/forms-ui/models/single-select-padding.interface.mjs +2 -0
- package/esm2020/lib/forms-ui/models/sorting.interface.mjs +7 -0
- package/esm2020/lib/forms-ui/pipes/filter-selection.pipe.mjs +30 -0
- package/esm2020/lib/forms-ui/pipes/filter-term.pipe.mjs +26 -0
- package/esm2020/lib/forms-ui/pipes/format-number.pipe.mjs +65 -0
- package/esm2020/lib/forms-ui/validators/date-in-foreseeable-future.validator.mjs +26 -0
- package/esm2020/lib/modal-ui/components/modal/modal.component.mjs +205 -0
- package/esm2020/lib/modal-ui/components/modal-footer/modal-footer.component.mjs +11 -0
- package/esm2020/lib/modal-ui/components/modal-header/modal-header.component.mjs +23 -0
- package/esm2020/lib/modal-ui/directives/modal-content.directive.mjs +13 -0
- package/esm2020/lib/modal-ui/modal.constants.mjs +3 -0
- package/esm2020/lib/modal-ui/modal.module.mjs +26 -0
- package/esm2020/lib/popover-ui/components/popover/popover.component.mjs +199 -0
- package/esm2020/lib/popover-ui/directives/popover-click.directive.mjs +51 -0
- package/esm2020/lib/popover-ui/directives/popover-content.directive.mjs +16 -0
- package/esm2020/lib/popover-ui/directives/popover-hover.directive.mjs +87 -0
- package/esm2020/lib/popover-ui/popover-ui.module.mjs +22 -0
- package/esm2020/lib/shared/date-helpers.mjs +35 -0
- package/esm2020/lib/shared/misc-helpers.mjs +34 -0
- package/esm2020/lib/shared/observe.mjs +40 -0
- package/esm2020/lib/tab-ui/components/tab/tab.component.mjs +70 -0
- package/esm2020/lib/tab-ui/components/tab-group/tab-group.component.mjs +71 -0
- package/esm2020/lib/tab-ui/tab-ui.module.mjs +22 -0
- package/fesm2015/{leanix-components.js → leanix-components.mjs} +681 -692
- package/fesm2015/leanix-components.mjs.map +1 -0
- package/fesm2020/leanix-components.mjs +6207 -0
- package/fesm2020/leanix-components.mjs.map +1 -0
- package/index.d.ts +1 -0
- package/lib/core-ui/functions/core-css.helpers.d.ts +7 -0
- package/lib/forms-ui/components/drag-and-drop-list/constants.d.ts +4 -0
- package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.d.ts +7 -6
- package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.d.ts +23 -17
- package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.d.ts +14 -0
- package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.d.ts +36 -0
- package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.d.ts +14 -0
- package/lib/forms-ui/forms-ui.module.d.ts +41 -43
- package/package.json +23 -9
- package/bundles/leanix-components.umd.js +0 -7162
- package/bundles/leanix-components.umd.js.map +0 -1
- package/esm2015/index.js +0 -117
- package/esm2015/index.js.map +0 -1
- package/esm2015/leanix-components.js +0 -5
- package/esm2015/leanix-components.js.map +0 -1
- package/esm2015/lib/core-ui/annotations/required.js +0 -33
- package/esm2015/lib/core-ui/annotations/required.js.map +0 -1
- package/esm2015/lib/core-ui/components/badge/badge.component.js +0 -29
- package/esm2015/lib/core-ui/components/badge/badge.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/button/button.component.js +0 -78
- package/esm2015/lib/core-ui/components/button/button.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/button-group/button-group.component.js +0 -32
- package/esm2015/lib/core-ui/components/button-group/button-group.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/card/card.component.js +0 -23
- package/esm2015/lib/core-ui/components/card/card.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/collapsible/collapsible.component.js +0 -58
- package/esm2015/lib/core-ui/components/collapsible/collapsible.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/colored-label/colored-label.component.js +0 -39
- package/esm2015/lib/core-ui/components/colored-label/colored-label.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/ellipsis/ellipsis.component.js +0 -74
- package/esm2015/lib/core-ui/components/ellipsis/ellipsis.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/icon-scale/icon-scale.component.js +0 -46
- package/esm2015/lib/core-ui/components/icon-scale/icon-scale.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/spinner/spinner.component.js +0 -30
- package/esm2015/lib/core-ui/components/spinner/spinner.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/table/table-header/table-header.component.js +0 -60
- package/esm2015/lib/core-ui/components/table/table-header/table-header.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/table/table.component.js +0 -70
- package/esm2015/lib/core-ui/components/table/table.component.js.map +0 -1
- package/esm2015/lib/core-ui/components/tiny-spinner/tiny-spinner.component.js +0 -14
- package/esm2015/lib/core-ui/components/tiny-spinner/tiny-spinner.component.js.map +0 -1
- package/esm2015/lib/core-ui/core-ui.constants.js +0 -13
- package/esm2015/lib/core-ui/core-ui.constants.js.map +0 -1
- package/esm2015/lib/core-ui/core-ui.module.js +0 -177
- package/esm2015/lib/core-ui/core-ui.module.js.map +0 -1
- package/esm2015/lib/core-ui/directives/after-view-init.directive.js +0 -30
- package/esm2015/lib/core-ui/directives/after-view-init.directive.js.map +0 -1
- package/esm2015/lib/core-ui/directives/autoclose-group.service.js +0 -38
- package/esm2015/lib/core-ui/directives/autoclose-group.service.js.map +0 -1
- package/esm2015/lib/core-ui/directives/autoclose.directive.js +0 -40
- package/esm2015/lib/core-ui/directives/autoclose.directive.js.map +0 -1
- package/esm2015/lib/core-ui/directives/autofocus.directive.js +0 -27
- package/esm2015/lib/core-ui/directives/autofocus.directive.js.map +0 -1
- package/esm2015/lib/core-ui/directives/html.directive.js +0 -30
- package/esm2015/lib/core-ui/directives/html.directive.js.map +0 -1
- package/esm2015/lib/core-ui/functions/core-css.helpers.js +0 -23
- package/esm2015/lib/core-ui/functions/core-css.helpers.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/br.pipe.js +0 -23
- package/esm2015/lib/core-ui/pipes/br.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/contrast-color.pipe.js +0 -20
- package/esm2015/lib/core-ui/pipes/contrast-color.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/custom-date.pipe.js +0 -27
- package/esm2015/lib/core-ui/pipes/custom-date.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/highlight-range.pipe.js +0 -21
- package/esm2015/lib/core-ui/pipes/highlight-range.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/highlight-term.pipe.js +0 -38
- package/esm2015/lib/core-ui/pipes/highlight-term.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/lx-is-uuid.pipe.js +0 -21
- package/esm2015/lib/core-ui/pipes/lx-is-uuid.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/lx-time-ago.pipe.js +0 -25
- package/esm2015/lib/core-ui/pipes/lx-time-ago.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/lx-translate.pipe.js +0 -46
- package/esm2015/lib/core-ui/pipes/lx-translate.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/markdown.pipe.js +0 -29
- package/esm2015/lib/core-ui/pipes/markdown.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/nbsp.pipe.js +0 -14
- package/esm2015/lib/core-ui/pipes/nbsp.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/sort.pipe.js +0 -52
- package/esm2015/lib/core-ui/pipes/sort.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/translation-after.pipe.js +0 -28
- package/esm2015/lib/core-ui/pipes/translation-after.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/translation-before.pipe.js +0 -53
- package/esm2015/lib/core-ui/pipes/translation-before.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/translation-between.pipe.js +0 -67
- package/esm2015/lib/core-ui/pipes/translation-between.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/pipes/unescape-curly-braces.pipe.js +0 -16
- package/esm2015/lib/core-ui/pipes/unescape-curly-braces.pipe.js.map +0 -1
- package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js +0 -74
- package/esm2015/lib/core-ui/tooltip/to-cdk-position.function.js.map +0 -1
- package/esm2015/lib/core-ui/tooltip/tooltip-position.interface.js +0 -7
- package/esm2015/lib/core-ui/tooltip/tooltip-position.interface.js.map +0 -1
- package/esm2015/lib/core-ui/tooltip/tooltip.component.js +0 -30
- package/esm2015/lib/core-ui/tooltip/tooltip.component.js.map +0 -1
- package/esm2015/lib/core-ui/tooltip/tooltip.directive.js +0 -107
- package/esm2015/lib/core-ui/tooltip/tooltip.directive.js.map +0 -1
- package/esm2015/lib/core-ui/tooltip/tooltip.module.js +0 -21
- package/esm2015/lib/core-ui/tooltip/tooltip.module.js.map +0 -1
- package/esm2015/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.js +0 -108
- package/esm2015/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.js +0 -38
- package/esm2015/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js +0 -223
- package/esm2015/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.js +0 -140
- package/esm2015/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/currency/currency-input.component.js +0 -147
- package/esm2015/lib/forms-ui/components/currency/currency-input.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/currency/currency-symbol-map.constant.js +0 -105
- package/esm2015/lib/forms-ui/components/currency/currency-symbol-map.constant.js.map +0 -1
- package/esm2015/lib/forms-ui/components/currency/currency-symbol.component.js +0 -28
- package/esm2015/lib/forms-ui/components/currency/currency-symbol.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/date-input/date-input.component.js +0 -276
- package/esm2015/lib/forms-ui/components/date-input/date-input.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.js +0 -57
- 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
- package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js +0 -99
- package/esm2015/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/error-message/error-message.component.js +0 -29
- package/esm2015/lib/forms-ui/components/error-message/error-message.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/form-error/form-error.component.js +0 -44
- package/esm2015/lib/forms-ui/components/form-error/form-error.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/icon/icon.component.js +0 -49
- package/esm2015/lib/forms-ui/components/icon/icon.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/input/input.component.js +0 -51
- package/esm2015/lib/forms-ui/components/input/input.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/keyboard-select.directive.js +0 -117
- package/esm2015/lib/forms-ui/components/keyboard-select.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/components/multi-select/multi-select.component.js +0 -257
- package/esm2015/lib/forms-ui/components/multi-select/multi-select.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/option/option.component.js +0 -85
- package/esm2015/lib/forms-ui/components/option/option.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/option-group/option-group.component.js +0 -34
- package/esm2015/lib/forms-ui/components/option-group/option-group.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.js +0 -105
- package/esm2015/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/options-dropdown/options-dropdown.component.js +0 -169
- package/esm2015/lib/forms-ui/components/options-dropdown/options-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.js +0 -96
- package/esm2015/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/picker/picker-trigger.directive.js +0 -36
- package/esm2015/lib/forms-ui/components/picker/picker-trigger.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/components/picker/picker.component.js +0 -210
- package/esm2015/lib/forms-ui/components/picker/picker.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/picker-option/picker-option.component.js +0 -124
- package/esm2015/lib/forms-ui/components/picker-option/picker-option.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/pill-item/pill-item.component.js +0 -37
- package/esm2015/lib/forms-ui/components/pill-item/pill-item.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/pill-list/pill-list.component.js +0 -64
- package/esm2015/lib/forms-ui/components/pill-list/pill-list.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/responsive-input/responsive-input.component.js +0 -104
- package/esm2015/lib/forms-ui/components/responsive-input/responsive-input.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/single-select/single-select.component.js +0 -279
- package/esm2015/lib/forms-ui/components/single-select/single-select.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/slider-toggle/slider-toggle.component.js +0 -47
- package/esm2015/lib/forms-ui/components/slider-toggle/slider-toggle.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.js +0 -56
- package/esm2015/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.js.map +0 -1
- package/esm2015/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.js +0 -25
- package/esm2015/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.js.map +0 -1
- package/esm2015/lib/forms-ui/directives/form-error.directive.js +0 -111
- package/esm2015/lib/forms-ui/directives/form-error.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/directives/form-submit.directive.js +0 -28
- package/esm2015/lib/forms-ui/directives/form-submit.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/directives/keyboard-action-source.directive.js +0 -53
- package/esm2015/lib/forms-ui/directives/keyboard-action-source.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/directives/mark-invalid.directive.js +0 -38
- package/esm2015/lib/forms-ui/directives/mark-invalid.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/directives/select-dropdown.directive.js +0 -31
- package/esm2015/lib/forms-ui/directives/select-dropdown.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/directives/selectable-item.directive.js +0 -33
- package/esm2015/lib/forms-ui/directives/selectable-item.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/directives/selected-option.directive.js +0 -26
- package/esm2015/lib/forms-ui/directives/selected-option.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/forms-ui.module.js +0 -244
- package/esm2015/lib/forms-ui/forms-ui.module.js.map +0 -1
- package/esm2015/lib/forms-ui/helpers/key-codes.constants.js +0 -11
- package/esm2015/lib/forms-ui/helpers/key-codes.constants.js.map +0 -1
- package/esm2015/lib/forms-ui/helpers/keyboard-navigation.helpers.js +0 -38
- package/esm2015/lib/forms-ui/helpers/keyboard-navigation.helpers.js.map +0 -1
- package/esm2015/lib/forms-ui/models/base-select.directive.js +0 -148
- package/esm2015/lib/forms-ui/models/base-select.directive.js.map +0 -1
- package/esm2015/lib/forms-ui/models/dropdown-item.interface.js +0 -2
- package/esm2015/lib/forms-ui/models/dropdown-item.interface.js.map +0 -1
- package/esm2015/lib/forms-ui/models/single-select-padding.interface.js +0 -2
- package/esm2015/lib/forms-ui/models/single-select-padding.interface.js.map +0 -1
- package/esm2015/lib/forms-ui/models/sorting.interface.js +0 -7
- package/esm2015/lib/forms-ui/models/sorting.interface.js.map +0 -1
- package/esm2015/lib/forms-ui/pipes/filter-selection.pipe.js +0 -30
- package/esm2015/lib/forms-ui/pipes/filter-selection.pipe.js.map +0 -1
- package/esm2015/lib/forms-ui/pipes/filter-term.pipe.js +0 -26
- package/esm2015/lib/forms-ui/pipes/filter-term.pipe.js.map +0 -1
- package/esm2015/lib/forms-ui/pipes/format-number.pipe.js +0 -65
- package/esm2015/lib/forms-ui/pipes/format-number.pipe.js.map +0 -1
- package/esm2015/lib/forms-ui/validators/date-in-foreseeable-future.validator.js +0 -26
- package/esm2015/lib/forms-ui/validators/date-in-foreseeable-future.validator.js.map +0 -1
- package/esm2015/lib/modal-ui/components/modal/modal.component.js +0 -214
- package/esm2015/lib/modal-ui/components/modal/modal.component.js.map +0 -1
- package/esm2015/lib/modal-ui/components/modal-footer/modal-footer.component.js +0 -15
- package/esm2015/lib/modal-ui/components/modal-footer/modal-footer.component.js.map +0 -1
- package/esm2015/lib/modal-ui/components/modal-header/modal-header.component.js +0 -27
- package/esm2015/lib/modal-ui/components/modal-header/modal-header.component.js.map +0 -1
- package/esm2015/lib/modal-ui/directives/modal-content.directive.js +0 -13
- package/esm2015/lib/modal-ui/directives/modal-content.directive.js.map +0 -1
- package/esm2015/lib/modal-ui/modal.constants.js +0 -3
- package/esm2015/lib/modal-ui/modal.constants.js.map +0 -1
- package/esm2015/lib/modal-ui/modal.module.js +0 -26
- package/esm2015/lib/modal-ui/modal.module.js.map +0 -1
- package/esm2015/lib/popover-ui/components/popover/popover.component.js +0 -203
- package/esm2015/lib/popover-ui/components/popover/popover.component.js.map +0 -1
- package/esm2015/lib/popover-ui/directives/popover-click.directive.js +0 -51
- package/esm2015/lib/popover-ui/directives/popover-click.directive.js.map +0 -1
- package/esm2015/lib/popover-ui/directives/popover-content.directive.js +0 -16
- package/esm2015/lib/popover-ui/directives/popover-content.directive.js.map +0 -1
- package/esm2015/lib/popover-ui/directives/popover-hover.directive.js +0 -87
- package/esm2015/lib/popover-ui/directives/popover-hover.directive.js.map +0 -1
- package/esm2015/lib/popover-ui/popover-ui.module.js +0 -22
- package/esm2015/lib/popover-ui/popover-ui.module.js.map +0 -1
- package/esm2015/lib/shared/date-helpers.js +0 -35
- package/esm2015/lib/shared/date-helpers.js.map +0 -1
- package/esm2015/lib/shared/misc-helpers.js +0 -34
- package/esm2015/lib/shared/misc-helpers.js.map +0 -1
- package/esm2015/lib/shared/observe.js +0 -40
- package/esm2015/lib/shared/observe.js.map +0 -1
- package/esm2015/lib/tab-ui/components/tab/tab.component.js +0 -75
- package/esm2015/lib/tab-ui/components/tab/tab.component.js.map +0 -1
- package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js +0 -78
- package/esm2015/lib/tab-ui/components/tab-group/tab-group.component.js.map +0 -1
- package/esm2015/lib/tab-ui/tab-ui.module.js +0 -22
- package/esm2015/lib/tab-ui/tab-ui.module.js.map +0 -1
- 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=
|