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