@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,51 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
3
|
+
import { of, Subject } from 'rxjs';
|
4
|
+
import { delay, filter, switchMap, takeUntil } from 'rxjs/operators';
|
5
|
+
import { Observe } from '../../shared/observe';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "@ncstate/sat-popover";
|
8
|
+
/**
|
9
|
+
* @see PopoverComponent for usage documentation.
|
10
|
+
*/
|
11
|
+
export class PopoverClickDirective {
|
12
|
+
constructor(anchor) {
|
13
|
+
this.anchor = anchor;
|
14
|
+
this.lxPopoverPinned = false;
|
15
|
+
this.onPopoverShow = new Subject();
|
16
|
+
this.onMouseLeave = new Subject();
|
17
|
+
this.destroyed$ = new Subject();
|
18
|
+
}
|
19
|
+
ngAfterViewInit() {
|
20
|
+
this.onMouseLeave
|
21
|
+
.pipe(switchMap(() => this.pinned$), filter((pinned) => !pinned), switchMap(() => of(null).pipe(delay(300), takeUntil(this.onPopoverShow))), takeUntil(this.destroyed$))
|
22
|
+
.subscribe(() => this.anchor.popover.close());
|
23
|
+
}
|
24
|
+
ngOnDestroy() {
|
25
|
+
this.destroyed$.next();
|
26
|
+
}
|
27
|
+
showPopover() {
|
28
|
+
this.onPopoverShow.next();
|
29
|
+
}
|
30
|
+
closePopover() {
|
31
|
+
this.onMouseLeave.next();
|
32
|
+
}
|
33
|
+
}
|
34
|
+
PopoverClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverClickDirective, deps: [{ token: i1.SatPopoverAnchor }], target: i0.ɵɵFactoryTarget.Directive });
|
35
|
+
PopoverClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: PopoverClickDirective, selector: "[lxPopoverClick]", inputs: { lxPopoverPinned: "lxPopoverPinned" }, host: { listeners: { "mouseleave": "closePopover()" } }, exportAs: ["clickAnchor"], ngImport: i0 });
|
36
|
+
__decorate([
|
37
|
+
Observe('lxPopoverPinned')
|
38
|
+
], PopoverClickDirective.prototype, "pinned$", void 0);
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverClickDirective, decorators: [{
|
40
|
+
type: Directive,
|
41
|
+
args: [{
|
42
|
+
exportAs: 'clickAnchor',
|
43
|
+
selector: '[lxPopoverClick]'
|
44
|
+
}]
|
45
|
+
}], ctorParameters: function () { return [{ type: i1.SatPopoverAnchor }]; }, propDecorators: { lxPopoverPinned: [{
|
46
|
+
type: Input
|
47
|
+
}], pinned$: [], closePopover: [{
|
48
|
+
type: HostListener,
|
49
|
+
args: ['mouseleave']
|
50
|
+
}] } });
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jbGljay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL2RpcmVjdGl2ZXMvcG9wb3Zlci1jbGljay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFekYsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRy9DOztHQUVHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQVVoQyxZQUFtQixNQUF3QjtRQUF4QixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQVRsQyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUd6QixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWxDLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRUksQ0FBQztJQUUvQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVk7YUFDZCxJQUFJLENBQ0gsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDN0IsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUMzQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ3pFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBR0QsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7a0hBbENVLHFCQUFxQjtzR0FBckIscUJBQXFCO0FBRUo7SUFBM0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDO3NEQUErQjsyRkFGL0MscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjt1R0FFVSxlQUFlO3NCQUF2QixLQUFLO2dCQUNzQixPQUFPLE1BOEJuQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYXRQb3BvdmVyQW5jaG9yIH0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcbmltcG9ydCB7IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLWhvdmVyLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQHNlZSBQb3BvdmVyQ29tcG9uZW50IGZvciB1c2FnZSBkb2N1bWVudGF0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgZXhwb3J0QXM6ICdjbGlja0FuY2hvcicsXG4gIHNlbGVjdG9yOiAnW2x4UG9wb3ZlckNsaWNrXSdcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNsaWNrRGlyZWN0aXZlIGltcGxlbWVudHMgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGx4UG9wb3ZlclBpbm5lZCA9IGZhbHNlO1xuICBAT2JzZXJ2ZSgnbHhQb3BvdmVyUGlubmVkJykgcGlubmVkJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBvblBvcG92ZXJTaG93ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIG9uTW91c2VMZWF2ZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGFuY2hvcjogU2F0UG9wb3ZlckFuY2hvcikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5vbk1vdXNlTGVhdmVcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5waW5uZWQkKSxcbiAgICAgICAgZmlsdGVyKChwaW5uZWQpID0+ICFwaW5uZWQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gb2YobnVsbCkucGlwZShkZWxheSgzMDApLCB0YWtlVW50aWwodGhpcy5vblBvcG92ZXJTaG93KSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmFuY2hvci5wb3BvdmVyLmNsb3NlKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIHNob3dQb3BvdmVyKCkge1xuICAgIHRoaXMub25Qb3BvdmVyU2hvdy5uZXh0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgY2xvc2VQb3BvdmVyKCkge1xuICAgIHRoaXMub25Nb3VzZUxlYXZlLm5leHQoKTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Directive } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
/**
|
4
|
+
* @see PopoverComponent for usage documentation.
|
5
|
+
*/
|
6
|
+
export class PopoverContentDirective {
|
7
|
+
}
|
8
|
+
PopoverContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
9
|
+
PopoverContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: PopoverContentDirective, selector: "[lxPopoverContent]", ngImport: i0 });
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverContentDirective, decorators: [{
|
11
|
+
type: Directive,
|
12
|
+
args: [{
|
13
|
+
selector: '[lxPopoverContent]'
|
14
|
+
}]
|
15
|
+
}] });
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3BvcG92ZXItdWkvZGlyZWN0aXZlcy9wb3BvdmVyLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDOztHQUVHO0FBSUgsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAc2VlIFBvcG92ZXJDb21wb25lbnQgZm9yIHVzYWdlIGRvY3VtZW50YXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tseFBvcG92ZXJDb250ZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbnRlbnREaXJlY3RpdmUge31cbiJdfQ==
|
@@ -0,0 +1,87 @@
|
|
1
|
+
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
2
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
3
|
+
import { of, Subject } from 'rxjs';
|
4
|
+
import { delay, switchMap, takeUntil } from 'rxjs/operators';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@ncstate/sat-popover";
|
7
|
+
/**
|
8
|
+
* @see PopoverComponent for usage documentation.
|
9
|
+
*/
|
10
|
+
export class PopoverHoverDirective {
|
11
|
+
constructor(anchor) {
|
12
|
+
this.anchor = anchor;
|
13
|
+
/**
|
14
|
+
* Relevant for tooltip style.
|
15
|
+
*/
|
16
|
+
this.skipCloseDelay = false;
|
17
|
+
/** Emits when the user's mouse enters the element. */
|
18
|
+
this.onMouseEnter = new Subject();
|
19
|
+
/** Emits when the user's mouse leaves the element. */
|
20
|
+
this.onMouseLeave = new Subject();
|
21
|
+
this.destroyed$ = new Subject();
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* Amount of time to delay (ms) after hovering starts before
|
25
|
+
* the popover opens.
|
26
|
+
*/
|
27
|
+
get lxPopoverHover() {
|
28
|
+
return this._lxPopoverHover;
|
29
|
+
}
|
30
|
+
set lxPopoverHover(val) {
|
31
|
+
this._lxPopoverHover = coerceNumberProperty(val, 200);
|
32
|
+
}
|
33
|
+
ngAfterViewInit() {
|
34
|
+
// Whenever the user hovers this host element, delay the configured
|
35
|
+
// amount of time and open the popover. Terminate if the mouse leaves
|
36
|
+
// the host element before the delay is complete.
|
37
|
+
this.onMouseEnter
|
38
|
+
.pipe(switchMap(({ skipDelay }) => of(null).pipe(delay(skipDelay ? 0 : this._lxPopoverHover), takeUntil(this.onMouseLeave))), takeUntil(this.destroyed$))
|
39
|
+
.subscribe(() => this.anchor.popover.open());
|
40
|
+
// Whenever the user leaves this host element, delay the closing of the popover by the configured delay.
|
41
|
+
// Abort closing if during this delay another mouseEnter event occurs, for example by the popover itself.
|
42
|
+
this.onMouseLeave
|
43
|
+
.pipe(switchMap(({ skipDelay }) => of(null).pipe(delay(skipDelay ? 0 : 300), takeUntil(this.onMouseEnter))), takeUntil(this.destroyed$))
|
44
|
+
.subscribe(() => {
|
45
|
+
if (this.anchor.popover.isOpen()) {
|
46
|
+
// This is the default case: the popover was shown, now we want to close it.
|
47
|
+
this.anchor.popover.close();
|
48
|
+
}
|
49
|
+
else {
|
50
|
+
// This can happen if we have delayed the opening of the popover, but the mouse left the anchor before
|
51
|
+
// the popover was shown. In this case, this.anchor.popover.close() would not generate a closed event,
|
52
|
+
// which is why we generate it manually here. This behavior supports cases where a "dummy" anchor is
|
53
|
+
// dynamically created, like the Fact Sheet detail popover in Reporting or the relations diagram.
|
54
|
+
this.anchor.popover.closed.emit();
|
55
|
+
}
|
56
|
+
});
|
57
|
+
}
|
58
|
+
ngOnDestroy() {
|
59
|
+
this.destroyed$.next();
|
60
|
+
}
|
61
|
+
showPopover(skipDelay = false) {
|
62
|
+
this.onMouseEnter.next({ skipDelay });
|
63
|
+
}
|
64
|
+
closePopover(skipDelay = this.skipCloseDelay) {
|
65
|
+
this.onMouseLeave.next({ skipDelay });
|
66
|
+
}
|
67
|
+
}
|
68
|
+
PopoverHoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverHoverDirective, deps: [{ token: i1.SatPopoverAnchor }], target: i0.ɵɵFactoryTarget.Directive });
|
69
|
+
PopoverHoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: PopoverHoverDirective, selector: "[lxPopoverHover]", inputs: { lxPopoverHover: "lxPopoverHover", skipCloseDelay: "skipCloseDelay" }, host: { listeners: { "mouseenter": "showPopover()", "mouseleave": "closePopover()" } }, exportAs: ["hoverAnchor"], ngImport: i0 });
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PopoverHoverDirective, decorators: [{
|
71
|
+
type: Directive,
|
72
|
+
args: [{
|
73
|
+
exportAs: 'hoverAnchor',
|
74
|
+
selector: '[lxPopoverHover]'
|
75
|
+
}]
|
76
|
+
}], ctorParameters: function () { return [{ type: i1.SatPopoverAnchor }]; }, propDecorators: { lxPopoverHover: [{
|
77
|
+
type: Input
|
78
|
+
}], skipCloseDelay: [{
|
79
|
+
type: Input
|
80
|
+
}], showPopover: [{
|
81
|
+
type: HostListener,
|
82
|
+
args: ['mouseenter']
|
83
|
+
}], closePopover: [{
|
84
|
+
type: HostListener,
|
85
|
+
args: ['mouseleave']
|
86
|
+
}] } });
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1ob3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL2RpcmVjdGl2ZXMvcG9wb3Zlci1ob3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV6RixPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBUTdEOztHQUVHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQTRCaEMsWUFBbUIsTUFBd0I7UUFBeEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFkM0M7O1dBRUc7UUFFSCxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixzREFBc0Q7UUFDOUMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBMEIsQ0FBQztRQUU3RCxzREFBc0Q7UUFDOUMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBMEIsQ0FBQztRQUVwRCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVJLENBQUM7SUEzQi9DOzs7T0FHRztJQUNILElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEdBQVc7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQW1CRCxlQUFlO1FBQ2IsbUVBQW1FO1FBQ25FLHFFQUFxRTtRQUNyRSxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLFlBQVk7YUFDZCxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDdEgsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUvQyx3R0FBd0c7UUFDeEcseUdBQXlHO1FBQ3pHLElBQUksQ0FBQyxZQUFZO2FBQ2QsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDckcsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDaEMsNEVBQTRFO2dCQUM1RSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUM3QjtpQkFBTTtnQkFDTCxzR0FBc0c7Z0JBQ3RHLHNHQUFzRztnQkFDdEcsb0dBQW9HO2dCQUNwRyxpR0FBaUc7Z0JBQ2pHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNuQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFHRCxXQUFXLENBQUMsU0FBUyxHQUFHLEtBQUs7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFHRCxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDOztrSEExRVUscUJBQXFCO3NHQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7dUdBT0ssY0FBYztzQkFEakIsS0FBSztnQkFhTixjQUFjO3NCQURiLEtBQUs7Z0JBa0ROLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxZQUFZO2dCQU0xQixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYXRQb3BvdmVyQW5jaG9yIH0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGludGVyZmFjZSBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB7XG4gIGFuY2hvcjogU2F0UG9wb3ZlckFuY2hvcjtcbiAgc2hvd1BvcG92ZXIoc2tpcERlbGF5PzogYm9vbGVhbik6IHZvaWQ7XG4gIGNsb3NlUG9wb3Zlcihza2lwRGVsYXk/OiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBAc2VlIFBvcG92ZXJDb21wb25lbnQgZm9yIHVzYWdlIGRvY3VtZW50YXRpb24uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBleHBvcnRBczogJ2hvdmVyQW5jaG9yJyxcbiAgc2VsZWN0b3I6ICdbbHhQb3BvdmVySG92ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBQb3BvdmVySG92ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQW1vdW50IG9mIHRpbWUgdG8gZGVsYXkgKG1zKSBhZnRlciBob3ZlcmluZyBzdGFydHMgYmVmb3JlXG4gICAqIHRoZSBwb3BvdmVyIG9wZW5zLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGx4UG9wb3ZlckhvdmVyKCkge1xuICAgIHJldHVybiB0aGlzLl9seFBvcG92ZXJIb3ZlcjtcbiAgfVxuICBzZXQgbHhQb3BvdmVySG92ZXIodmFsOiBudW1iZXIpIHtcbiAgICB0aGlzLl9seFBvcG92ZXJIb3ZlciA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbCwgMjAwKTtcbiAgfVxuICBwcml2YXRlIF9seFBvcG92ZXJIb3ZlciE6IG51bWJlcjtcblxuICAvKipcbiAgICogUmVsZXZhbnQgZm9yIHRvb2x0aXAgc3R5bGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBza2lwQ2xvc2VEZWxheSA9IGZhbHNlO1xuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSB1c2VyJ3MgbW91c2UgZW50ZXJzIHRoZSBlbGVtZW50LiAqL1xuICBwcml2YXRlIG9uTW91c2VFbnRlciA9IG5ldyBTdWJqZWN0PHsgc2tpcERlbGF5OiBib29sZWFuIH0+KCk7XG5cbiAgLyoqIEVtaXRzIHdoZW4gdGhlIHVzZXIncyBtb3VzZSBsZWF2ZXMgdGhlIGVsZW1lbnQuICovXG4gIHByaXZhdGUgb25Nb3VzZUxlYXZlID0gbmV3IFN1YmplY3Q8eyBza2lwRGVsYXk6IGJvb2xlYW4gfT4oKTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYW5jaG9yOiBTYXRQb3BvdmVyQW5jaG9yKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBXaGVuZXZlciB0aGUgdXNlciBob3ZlcnMgdGhpcyBob3N0IGVsZW1lbnQsIGRlbGF5IHRoZSBjb25maWd1cmVkXG4gICAgLy8gYW1vdW50IG9mIHRpbWUgYW5kIG9wZW4gdGhlIHBvcG92ZXIuIFRlcm1pbmF0ZSBpZiB0aGUgbW91c2UgbGVhdmVzXG4gICAgLy8gdGhlIGhvc3QgZWxlbWVudCBiZWZvcmUgdGhlIGRlbGF5IGlzIGNvbXBsZXRlLlxuICAgIHRoaXMub25Nb3VzZUVudGVyXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh7IHNraXBEZWxheSB9KSA9PiBvZihudWxsKS5waXBlKGRlbGF5KHNraXBEZWxheSA/IDAgOiB0aGlzLl9seFBvcG92ZXJIb3ZlciksIHRha2VVbnRpbCh0aGlzLm9uTW91c2VMZWF2ZSkpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5hbmNob3IucG9wb3Zlci5vcGVuKCkpO1xuXG4gICAgLy8gV2hlbmV2ZXIgdGhlIHVzZXIgbGVhdmVzIHRoaXMgaG9zdCBlbGVtZW50LCBkZWxheSB0aGUgY2xvc2luZyBvZiB0aGUgcG9wb3ZlciBieSB0aGUgY29uZmlndXJlZCBkZWxheS5cbiAgICAvLyBBYm9ydCBjbG9zaW5nIGlmIGR1cmluZyB0aGlzIGRlbGF5IGFub3RoZXIgbW91c2VFbnRlciBldmVudCBvY2N1cnMsIGZvciBleGFtcGxlIGJ5IHRoZSBwb3BvdmVyIGl0c2VsZi5cbiAgICB0aGlzLm9uTW91c2VMZWF2ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoeyBza2lwRGVsYXkgfSkgPT4gb2YobnVsbCkucGlwZShkZWxheShza2lwRGVsYXkgPyAwIDogMzAwKSwgdGFrZVVudGlsKHRoaXMub25Nb3VzZUVudGVyKSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmFuY2hvci5wb3BvdmVyLmlzT3BlbigpKSB7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBjYXNlOiB0aGUgcG9wb3ZlciB3YXMgc2hvd24sIG5vdyB3ZSB3YW50IHRvIGNsb3NlIGl0LlxuICAgICAgICAgIHRoaXMuYW5jaG9yLnBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgd2UgaGF2ZSBkZWxheWVkIHRoZSBvcGVuaW5nIG9mIHRoZSBwb3BvdmVyLCBidXQgdGhlIG1vdXNlIGxlZnQgdGhlIGFuY2hvciBiZWZvcmVcbiAgICAgICAgICAvLyB0aGUgcG9wb3ZlciB3YXMgc2hvd24uIEluIHRoaXMgY2FzZSwgdGhpcy5hbmNob3IucG9wb3Zlci5jbG9zZSgpIHdvdWxkIG5vdCBnZW5lcmF0ZSBhIGNsb3NlZCBldmVudCxcbiAgICAgICAgICAvLyB3aGljaCBpcyB3aHkgd2UgZ2VuZXJhdGUgaXQgbWFudWFsbHkgaGVyZS4gVGhpcyBiZWhhdmlvciBzdXBwb3J0cyBjYXNlcyB3aGVyZSBhIFwiZHVtbXlcIiBhbmNob3IgaXNcbiAgICAgICAgICAvLyBkeW5hbWljYWxseSBjcmVhdGVkLCBsaWtlIHRoZSBGYWN0IFNoZWV0IGRldGFpbCBwb3BvdmVyIGluIFJlcG9ydGluZyBvciB0aGUgcmVsYXRpb25zIGRpYWdyYW0uXG4gICAgICAgICAgdGhpcy5hbmNob3IucG9wb3Zlci5jbG9zZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgc2hvd1BvcG92ZXIoc2tpcERlbGF5ID0gZmFsc2UpIHtcbiAgICB0aGlzLm9uTW91c2VFbnRlci5uZXh0KHsgc2tpcERlbGF5IH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIGNsb3NlUG9wb3Zlcihza2lwRGVsYXkgPSB0aGlzLnNraXBDbG9zZURlbGF5KSB7XG4gICAgdGhpcy5vbk1vdXNlTGVhdmUubmV4dCh7IHNraXBEZWxheSB9KTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { NgModule } from '@angular/core';
|
3
|
+
import { SatPopoverModule } from '@ncstate/sat-popover';
|
4
|
+
import { PopoverComponent } from './components/popover/popover.component';
|
5
|
+
import { PopoverClickDirective } from './directives/popover-click.directive';
|
6
|
+
import { PopoverContentDirective } from './directives/popover-content.directive';
|
7
|
+
import { PopoverHoverDirective } from './directives/popover-hover.directive';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
export class LxPopoverUiModule {
|
10
|
+
}
|
11
|
+
LxPopoverUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxPopoverUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
12
|
+
LxPopoverUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxPopoverUiModule, declarations: [PopoverHoverDirective, PopoverClickDirective, PopoverComponent, PopoverContentDirective], imports: [CommonModule, SatPopoverModule], exports: [SatPopoverModule, PopoverClickDirective, PopoverHoverDirective, PopoverComponent, PopoverContentDirective] });
|
13
|
+
LxPopoverUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxPopoverUiModule, imports: [[CommonModule, SatPopoverModule], SatPopoverModule] });
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxPopoverUiModule, decorators: [{
|
15
|
+
type: NgModule,
|
16
|
+
args: [{
|
17
|
+
declarations: [PopoverHoverDirective, PopoverClickDirective, PopoverComponent, PopoverContentDirective],
|
18
|
+
imports: [CommonModule, SatPopoverModule],
|
19
|
+
exports: [SatPopoverModule, PopoverClickDirective, PopoverHoverDirective, PopoverComponent, PopoverContentDirective]
|
20
|
+
}]
|
21
|
+
}] });
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL3BvcG92ZXItdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQU83RSxNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBSmIscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLGFBQzVGLFlBQVksRUFBRSxnQkFBZ0IsYUFDOUIsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCOytHQUV4RyxpQkFBaUIsWUFIbkIsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsRUFDL0IsZ0JBQWdCOzJGQUVmLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQztvQkFDdkcsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsQ0FBQztpQkFDckgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNhdFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAbmNzdGF0ZS9zYXQtcG9wb3Zlcic7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9wb3ZlckNsaWNrRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvcG92ZXItY2xpY2suZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvcG92ZXItY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUG9wb3ZlckhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvcG92ZXItaG92ZXIuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUG9wb3ZlckhvdmVyRGlyZWN0aXZlLCBQb3BvdmVyQ2xpY2tEaXJlY3RpdmUsIFBvcG92ZXJDb21wb25lbnQsIFBvcG92ZXJDb250ZW50RGlyZWN0aXZlXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2F0UG9wb3Zlck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTYXRQb3BvdmVyTW9kdWxlLCBQb3BvdmVyQ2xpY2tEaXJlY3RpdmUsIFBvcG92ZXJIb3ZlckRpcmVjdGl2ZSwgUG9wb3ZlckNvbXBvbmVudCwgUG9wb3ZlckNvbnRlbnREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIEx4UG9wb3ZlclVpTW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { isNaN as _isNaN, toString as _toString, padCharsStart, toNumber } from 'lodash/fp';
|
2
|
+
/**
|
3
|
+
* Converts a date into a string with format YYYY-MM-dd for the
|
4
|
+
* users current timezone.
|
5
|
+
*/
|
6
|
+
export function convertDateToLocaleDateString(date, separator = '-') {
|
7
|
+
const day = pad(date.getDate());
|
8
|
+
const currentMonth = date.getMonth() + 1;
|
9
|
+
const month = pad(currentMonth);
|
10
|
+
return `${date.getFullYear()}${separator}${month}${separator}${day}`;
|
11
|
+
}
|
12
|
+
// Pad to 2 digits
|
13
|
+
function pad(num) {
|
14
|
+
return padCharsStart('0', 2, _toString(num));
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* Use this whenever you want to create a Date instance from a dateString like "2017-12-06".
|
18
|
+
* Reason: When you call the Date Constructor like this `new Date("2017-12-06")`
|
19
|
+
* the date instance will be in the users current timezone (eg in EST GMT-0500 it will become "2017-12-05 19:00:00"),
|
20
|
+
* but at some places we handle the date only as date without time (e.g. date.getDate()) and there
|
21
|
+
* we would then get timezone issues, because `date.getDate()` returns day 5 instead of 6!
|
22
|
+
*
|
23
|
+
* So instead of doing `new Date("2017-12-06")` you should use this function instead!
|
24
|
+
*/
|
25
|
+
export function createDateFromDateString(dateString) {
|
26
|
+
if (!dateString || !isValidDateString(dateString)) {
|
27
|
+
return null;
|
28
|
+
}
|
29
|
+
const parts = dateString.split('-').map(toNumber);
|
30
|
+
return new Date(parts[0], parts[1] - 1, parts[2]);
|
31
|
+
}
|
32
|
+
export function isValidDateString(dateString) {
|
33
|
+
return dateString !== null && /^\d\d\d\d-\d\d-\d\d$/.test(dateString) && !_isNaN(Date.parse(dateString));
|
34
|
+
}
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2RhdGUtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFNUY7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QixDQUFDLElBQVUsRUFBRSxZQUFvQixHQUFHO0lBQy9FLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVoQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxrQkFBa0I7QUFDbEIsU0FBUyxHQUFHLENBQUMsR0FBVztJQUN0QixPQUFPLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxVQUF5QjtJQUNoRSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDakQsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxVQUF5QjtJQUN6RCxPQUFPLFVBQVUsS0FBSyxJQUFJLElBQUksc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUMzRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOYU4gYXMgX2lzTmFOLCB0b1N0cmluZyBhcyBfdG9TdHJpbmcsIHBhZENoYXJzU3RhcnQsIHRvTnVtYmVyIH0gZnJvbSAnbG9kYXNoL2ZwJztcblxuLyoqXG4gKiBDb252ZXJ0cyBhIGRhdGUgaW50byBhIHN0cmluZyB3aXRoIGZvcm1hdCBZWVlZLU1NLWRkIGZvciB0aGVcbiAqIHVzZXJzIGN1cnJlbnQgdGltZXpvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyhkYXRlOiBEYXRlLCBzZXBhcmF0b3I6IHN0cmluZyA9ICctJyk6IHN0cmluZyB7XG4gIGNvbnN0IGRheSA9IHBhZChkYXRlLmdldERhdGUoKSk7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7XG4gIGNvbnN0IG1vbnRoID0gcGFkKGN1cnJlbnRNb250aCk7XG5cbiAgcmV0dXJuIGAke2RhdGUuZ2V0RnVsbFllYXIoKX0ke3NlcGFyYXRvcn0ke21vbnRofSR7c2VwYXJhdG9yfSR7ZGF5fWA7XG59XG5cbi8vIFBhZCB0byAyIGRpZ2l0c1xuZnVuY3Rpb24gcGFkKG51bTogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhZENoYXJzU3RhcnQoJzAnLCAyLCBfdG9TdHJpbmcobnVtKSk7XG59XG5cbi8qKlxuICogVXNlIHRoaXMgd2hlbmV2ZXIgeW91IHdhbnQgdG8gY3JlYXRlIGEgRGF0ZSBpbnN0YW5jZSBmcm9tIGEgZGF0ZVN0cmluZyBsaWtlIFwiMjAxNy0xMi0wNlwiLlxuICogUmVhc29uOiBXaGVuIHlvdSBjYWxsIHRoZSBEYXRlIENvbnN0cnVjdG9yIGxpa2UgdGhpcyBgbmV3IERhdGUoXCIyMDE3LTEyLTA2XCIpYFxuICogdGhlIGRhdGUgaW5zdGFuY2Ugd2lsbCBiZSBpbiB0aGUgdXNlcnMgY3VycmVudCB0aW1lem9uZSAoZWcgaW4gRVNUIEdNVC0wNTAwIGl0IHdpbGwgYmVjb21lIFwiMjAxNy0xMi0wNSAxOTowMDowMFwiKSxcbiAqIGJ1dCBhdCBzb21lIHBsYWNlcyB3ZSBoYW5kbGUgdGhlIGRhdGUgb25seSBhcyBkYXRlIHdpdGhvdXQgdGltZSAoZS5nLiBkYXRlLmdldERhdGUoKSkgYW5kIHRoZXJlXG4gKiB3ZSB3b3VsZCB0aGVuIGdldCB0aW1lem9uZSBpc3N1ZXMsIGJlY2F1c2UgYGRhdGUuZ2V0RGF0ZSgpYCByZXR1cm5zIGRheSA1IGluc3RlYWQgb2YgNiFcbiAqXG4gKiBTbyBpbnN0ZWFkIG9mIGRvaW5nIGBuZXcgRGF0ZShcIjIwMTctMTItMDZcIilgIHlvdSBzaG91bGQgdXNlIHRoaXMgZnVuY3Rpb24gaW5zdGVhZCFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGVGcm9tRGF0ZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcgfCBudWxsKTogRGF0ZSB8IG51bGwge1xuICBpZiAoIWRhdGVTdHJpbmcgfHwgIWlzVmFsaWREYXRlU3RyaW5nKGRhdGVTdHJpbmcpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgcGFydHMgPSBkYXRlU3RyaW5nLnNwbGl0KCctJykubWFwKHRvTnVtYmVyKTtcbiAgcmV0dXJuIG5ldyBEYXRlKHBhcnRzWzBdISwgcGFydHNbMV0hIC0gMSwgcGFydHNbMl0hKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWREYXRlU3RyaW5nKGRhdGVTdHJpbmc6IHN0cmluZyB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuIGRhdGVTdHJpbmcgIT09IG51bGwgJiYgL15cXGRcXGRcXGRcXGQtXFxkXFxkLVxcZFxcZCQvLnRlc3QoZGF0ZVN0cmluZykgJiYgIV9pc05hTihEYXRlLnBhcnNlKGRhdGVTdHJpbmcpKTtcbn1cbiJdfQ==
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { first } from 'rxjs/operators';
|
2
|
+
/**
|
3
|
+
* Schedule and wait for another ZoneJS microTask.
|
4
|
+
* This should be preferred over setTimeout(), which
|
5
|
+
* schedules a macroTask & thus triggers full tree change detection.
|
6
|
+
*/
|
7
|
+
export function executeOnNextTick(fn) {
|
8
|
+
Promise.resolve(null).then(() => fn());
|
9
|
+
}
|
10
|
+
/**
|
11
|
+
*
|
12
|
+
* Returns the first value emitted by an observable. Can be removed when we are able to use RxJS7.
|
13
|
+
* https://github.com/leanix/leanix-pathfinder-web/pull/5988/#discussion_r633645224
|
14
|
+
*
|
15
|
+
*/
|
16
|
+
export function firstValueFrom(observable) {
|
17
|
+
return observable.pipe(first()).toPromise();
|
18
|
+
}
|
19
|
+
export function getCssVariable(cssVariableName) {
|
20
|
+
return getComputedStyle(document.documentElement).getPropertyValue(cssVariableName);
|
21
|
+
}
|
22
|
+
export function scrollTop(container, item) {
|
23
|
+
if (container && item) {
|
24
|
+
const scrollDownNeeded = item.offsetTop + item.clientHeight > container.clientHeight;
|
25
|
+
const scrollTopNeeded = item.offsetTop - item.clientHeight < container.scrollTop;
|
26
|
+
if (scrollDownNeeded || scrollTopNeeded) {
|
27
|
+
container.scrollTop = item.offsetTop - container.offsetTop;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
console.warn("Item or Container undefined, scrolling wasn't done.");
|
32
|
+
}
|
33
|
+
}
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL21pc2MtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkM7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxFQUFZO0lBQzVDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBSSxVQUF5QjtJQUN6RCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxlQUF1QjtJQUNwRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUFzQixFQUFFLElBQWlCO0lBQ2pFLElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtRQUNyQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ3JGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ2pGLElBQUksZ0JBQWdCLElBQUksZUFBZSxFQUFFO1lBQ3ZDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1NBQzVEO0tBQ0Y7U0FBTTtRQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQztLQUNyRTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBTY2hlZHVsZSBhbmQgd2FpdCBmb3IgYW5vdGhlciBab25lSlMgbWljcm9UYXNrLlxuICogVGhpcyBzaG91bGQgYmUgcHJlZmVycmVkIG92ZXIgc2V0VGltZW91dCgpLCB3aGljaFxuICogc2NoZWR1bGVzIGEgbWFjcm9UYXNrICYgdGh1cyB0cmlnZ2VycyBmdWxsIHRyZWUgY2hhbmdlIGRldGVjdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVPbk5leHRUaWNrKGZuOiBGdW5jdGlvbikge1xuICBQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbigoKSA9PiBmbigpKTtcbn1cblxuLyoqXG4gKlxuICogUmV0dXJucyB0aGUgZmlyc3QgdmFsdWUgZW1pdHRlZCBieSBhbiBvYnNlcnZhYmxlLiBDYW4gYmUgcmVtb3ZlZCB3aGVuIHdlIGFyZSBhYmxlIHRvIHVzZSBSeEpTNy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9sZWFuaXgvbGVhbml4LXBhdGhmaW5kZXItd2ViL3B1bGwvNTk4OC8jZGlzY3Vzc2lvbl9yNjMzNjQ1MjI0XG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlyc3RWYWx1ZUZyb208VD4ob2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUPik6IFByb21pc2U8VD4ge1xuICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKGZpcnN0KCkpLnRvUHJvbWlzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3NzVmFyaWFibGUoY3NzVmFyaWFibGVOYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKGNzc1ZhcmlhYmxlTmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzY3JvbGxUb3AoY29udGFpbmVyOiBIVE1MRWxlbWVudCwgaXRlbTogSFRNTEVsZW1lbnQpIHtcbiAgaWYgKGNvbnRhaW5lciAmJiBpdGVtKSB7XG4gICAgY29uc3Qgc2Nyb2xsRG93bk5lZWRlZCA9IGl0ZW0ub2Zmc2V0VG9wICsgaXRlbS5jbGllbnRIZWlnaHQgPiBjb250YWluZXIuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IHNjcm9sbFRvcE5lZWRlZCA9IGl0ZW0ub2Zmc2V0VG9wIC0gaXRlbS5jbGllbnRIZWlnaHQgPCBjb250YWluZXIuc2Nyb2xsVG9wO1xuICAgIGlmIChzY3JvbGxEb3duTmVlZGVkIHx8IHNjcm9sbFRvcE5lZWRlZCkge1xuICAgICAgY29udGFpbmVyLnNjcm9sbFRvcCA9IGl0ZW0ub2Zmc2V0VG9wIC0gY29udGFpbmVyLm9mZnNldFRvcDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS53YXJuKFwiSXRlbSBvciBDb250YWluZXIgdW5kZWZpbmVkLCBzY3JvbGxpbmcgd2Fzbid0IGRvbmUuXCIpO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,40 @@
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
2
|
+
import { map, skipWhile } from 'rxjs/operators';
|
3
|
+
/**
|
4
|
+
* Observe creates an Observable stream and notifies the changes from an observed property.
|
5
|
+
*
|
6
|
+
* @example
|
7
|
+
* Input() foo: string;
|
8
|
+
* @Observe('foo') foo$: Observable<string>;
|
9
|
+
*/
|
10
|
+
export function Observe(observedKey) {
|
11
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
12
|
+
return (target, key) => {
|
13
|
+
const subjects = new WeakMap();
|
14
|
+
const getSubject = (instance) => {
|
15
|
+
if (!subjects.has(instance)) {
|
16
|
+
subjects.set(instance, new BehaviorSubject(undefined));
|
17
|
+
}
|
18
|
+
return subjects.get(instance) || new BehaviorSubject(undefined);
|
19
|
+
};
|
20
|
+
Object.defineProperty(target, key, {
|
21
|
+
get() {
|
22
|
+
return getSubject(this).pipe(
|
23
|
+
// An initial `undefined` value is triggered above when initializing the subject for a given instance.
|
24
|
+
// This skips the initial `undefined` values, until a defined value is provided. Then, no values
|
25
|
+
// are removed from the stream.
|
26
|
+
skipWhile((value) => value === undefined), map((value) => value) // required for TS null check
|
27
|
+
);
|
28
|
+
}
|
29
|
+
});
|
30
|
+
Object.defineProperty(target, observedKey, {
|
31
|
+
get() {
|
32
|
+
return getSubject(this).getValue();
|
33
|
+
},
|
34
|
+
set(instanceNewValue) {
|
35
|
+
getSubject(this).next(instanceNewValue);
|
36
|
+
}
|
37
|
+
});
|
38
|
+
};
|
39
|
+
}
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9vYnNlcnZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFJLFdBQW1CO0lBQzVDLHdEQUF3RDtJQUN4RCxPQUFPLENBQUMsTUFBYyxFQUFFLEdBQW9CLEVBQVEsRUFBRTtRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBMkQsQ0FBQztRQUV4RixNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDdkU7WUFDRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNqQyxHQUFHO2dCQUNELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7Z0JBQzFCLHNHQUFzRztnQkFDdEcsZ0dBQWdHO2dCQUNoRywrQkFBK0I7Z0JBQy9CLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxFQUN6QyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQVUsQ0FBQyxDQUFDLDZCQUE2QjtpQkFDekQsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUU7WUFDekMsR0FBRztnQkFDRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsR0FBRyxDQUFDLGdCQUFtQjtnQkFDckIsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzFDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNraXBXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBPYnNlcnZlIGNyZWF0ZXMgYW4gT2JzZXJ2YWJsZSBzdHJlYW0gYW5kIG5vdGlmaWVzIHRoZSBjaGFuZ2VzIGZyb20gYW4gb2JzZXJ2ZWQgcHJvcGVydHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIElucHV0KCkgZm9vOiBzdHJpbmc7XG4gKiBAT2JzZXJ2ZSgnZm9vJykgZm9vJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICovXG5leHBvcnQgZnVuY3Rpb24gT2JzZXJ2ZTxUPihvYnNlcnZlZEtleTogc3RyaW5nKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICByZXR1cm4gKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHN1YmplY3RzID0gbmV3IFdlYWtNYXA8UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPj4oKTtcblxuICAgIGNvbnN0IGdldFN1YmplY3QgPSAoaW5zdGFuY2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBpZiAoIXN1YmplY3RzLmhhcyhpbnN0YW5jZSkpIHtcbiAgICAgICAgc3ViamVjdHMuc2V0KGluc3RhbmNlLCBuZXcgQmVoYXZpb3JTdWJqZWN0PFQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1YmplY3RzLmdldChpbnN0YW5jZSkgfHwgbmV3IEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIH07XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgIGdldCgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIGdldFN1YmplY3QodGhpcykucGlwZShcbiAgICAgICAgICAvLyBBbiBpbml0aWFsIGB1bmRlZmluZWRgIHZhbHVlIGlzIHRyaWdnZXJlZCBhYm92ZSB3aGVuIGluaXRpYWxpemluZyB0aGUgc3ViamVjdCBmb3IgYSBnaXZlbiBpbnN0YW5jZS5cbiAgICAgICAgICAvLyBUaGlzIHNraXBzIHRoZSBpbml0aWFsIGB1bmRlZmluZWRgIHZhbHVlcywgdW50aWwgYSBkZWZpbmVkIHZhbHVlIGlzIHByb3ZpZGVkLiBUaGVuLCBubyB2YWx1ZXNcbiAgICAgICAgICAvLyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBzdHJlYW0uXG4gICAgICAgICAgc2tpcFdoaWxlKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHVuZGVmaW5lZCksXG4gICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUgYXMgVCkgLy8gcmVxdWlyZWQgZm9yIFRTIG51bGwgY2hlY2tcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG9ic2VydmVkS2V5LCB7XG4gICAgICBnZXQoKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBnZXRTdWJqZWN0KHRoaXMpLmdldFZhbHVlKCk7XG4gICAgICB9LFxuICAgICAgc2V0KGluc3RhbmNlTmV3VmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgZ2V0U3ViamVjdCh0aGlzKS5uZXh0KGluc3RhbmNlTmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xufVxuIl19
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
2
|
+
import { RouterLinkActive } from '@angular/router';
|
3
|
+
import { uniqueId } from 'lodash/fp';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "../../../core-ui/components/badge/badge.component";
|
6
|
+
import * as i2 from "@angular/common";
|
7
|
+
import * as i3 from "@angular/router";
|
8
|
+
import * as i4 from "@angular/cdk/portal";
|
9
|
+
export class TabComponent {
|
10
|
+
constructor(cd) {
|
11
|
+
this.cd = cd;
|
12
|
+
this.label = '';
|
13
|
+
this.routerLinkActiveOptions = { exact: true };
|
14
|
+
this.counterBadgeSize = 'default';
|
15
|
+
this.noMargin = false;
|
16
|
+
this.noLeftMarginForFirstTab = false;
|
17
|
+
this.background = 'white';
|
18
|
+
this.disabled = false;
|
19
|
+
this.switch = new EventEmitter();
|
20
|
+
this._isActive = false;
|
21
|
+
this.tabPanelId = uniqueId('panelId');
|
22
|
+
}
|
23
|
+
set isActive(value) {
|
24
|
+
this._isActive = value;
|
25
|
+
this.cd.markForCheck();
|
26
|
+
}
|
27
|
+
get isActive() {
|
28
|
+
if (this.routerLinkActive) {
|
29
|
+
return this.routerLinkActive.isActive;
|
30
|
+
}
|
31
|
+
return this._isActive;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TabComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
35
|
+
TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: TabComponent, selector: "lx-tab", inputs: { icon: "icon", label: "label", title: "title", tabLink: "tabLink", counter: "counter", routerLinkActiveOptions: "routerLinkActiveOptions", counterBadgeSize: "counterBadgeSize", noMargin: "noMargin", noLeftMarginForFirstTab: "noLeftMarginForFirstTab", background: "background", disabled: "disabled" }, outputs: { switch: "switch" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true }], ngImport: i0, template: "<li\n class=\"tab\"\n [attr.tabindex]=\"isActive || disabled || tabLink ? '-1' : '0'\"\n [attr.aria-selected]=\"isActive\"\n [attr.aria-controls]=\"tabPanelId\"\n [class.active]=\"isActive\"\n [class.withIcon]=\"icon\"\n [class.noMargin]=\"noMargin\"\n [class.noLeftMarginForFirstTab]=\"noLeftMarginForFirstTab\"\n [class.backgroundGray]=\"background === 'gray'\"\n [class.disabled]=\"disabled\"\n [class.portalTab]=\"!tabLink\"\n [class.routerLinkTab]=\"tabLink\"\n [attr.title]=\"title\"\n role=\"tab\"\n (keyup.enter)=\"switch.emit()\"\n (click)=\"switch.emit()\"\n>\n <a *ngIf=\"tabLink; else portalTab\" [routerLink]=\"tabLink\" routerLinkActive [routerLinkActiveOptions]=\"routerLinkActiveOptions\">\n <ng-container *ngTemplateOutlet=\"portalTab\"></ng-container>\n </a>\n\n <ng-template #portalTab>\n <i *ngIf=\"icon\" class=\"icon {{ icon }}\"></i>\n <span *ngIf=\"label\" class=\"tabLabel\">{{ label }}</span>\n <lx-badge\n *ngIf=\"counter\"\n [size]=\"counterBadgeSize\"\n class=\"lx-margin-left\"\n [content]=\"counter\"\n [color]=\"isActive ? 'darkgray' : 'gray'\"\n ></lx-badge>\n </ng-template>\n\n <ng-template cdkPortal #contentTemplate=\"cdkPortal\">\n <div *ngIf=\"!tabLink\" class=\"content\" role=\"tabpanel\" [attr.id]=\"tabPanelId\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</li>\n", styles: [":host{display:inline-block}.tab{display:inline-block;margin:0 8px;text-align:center;border-bottom:solid 2px transparent;transition:border-bottom .5s;cursor:pointer}.tab:hover,.tab.active{border-bottom:solid 2px #2a303d;transition:border-bottom .1s;outline:0}.tab.active{cursor:default}.tab.disabled{opacity:.3;cursor:default}.tab:hover .tabLabel,.tab.active .tabLabel{color:#2a303d;transition:color .1s}.portalTab,.routerLinkTab a{display:inline-block;padding:8px 8px 12px;line-height:20px}.portalTab.withIcon,.routerLinkTab a.withIcon{padding:10px 14px;line-height:16px}.routerLinkTab.active a,.routerLinkTab.disabled a{cursor:default}.icon{font-size:16px;opacity:.6}.noMargin{margin:0}.noLeftMarginForFirstTab{margin-left:0}.backgroundGray{background-color:#c2c9d6}.backgroundGray:not(.active):not(.disabled){background-color:#cfd5df}.tabLabel{color:#677a9a;display:inline-block;font-size:13px;text-decoration:none}.content{height:100%}\n"], components: [{ type: i1.BadgeComponent, selector: "lx-badge", inputs: ["content", "size", "color"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TabComponent, decorators: [{
|
37
|
+
type: Component,
|
38
|
+
args: [{ selector: 'lx-tab', changeDetection: ChangeDetectionStrategy.OnPush, template: "<li\n class=\"tab\"\n [attr.tabindex]=\"isActive || disabled || tabLink ? '-1' : '0'\"\n [attr.aria-selected]=\"isActive\"\n [attr.aria-controls]=\"tabPanelId\"\n [class.active]=\"isActive\"\n [class.withIcon]=\"icon\"\n [class.noMargin]=\"noMargin\"\n [class.noLeftMarginForFirstTab]=\"noLeftMarginForFirstTab\"\n [class.backgroundGray]=\"background === 'gray'\"\n [class.disabled]=\"disabled\"\n [class.portalTab]=\"!tabLink\"\n [class.routerLinkTab]=\"tabLink\"\n [attr.title]=\"title\"\n role=\"tab\"\n (keyup.enter)=\"switch.emit()\"\n (click)=\"switch.emit()\"\n>\n <a *ngIf=\"tabLink; else portalTab\" [routerLink]=\"tabLink\" routerLinkActive [routerLinkActiveOptions]=\"routerLinkActiveOptions\">\n <ng-container *ngTemplateOutlet=\"portalTab\"></ng-container>\n </a>\n\n <ng-template #portalTab>\n <i *ngIf=\"icon\" class=\"icon {{ icon }}\"></i>\n <span *ngIf=\"label\" class=\"tabLabel\">{{ label }}</span>\n <lx-badge\n *ngIf=\"counter\"\n [size]=\"counterBadgeSize\"\n class=\"lx-margin-left\"\n [content]=\"counter\"\n [color]=\"isActive ? 'darkgray' : 'gray'\"\n ></lx-badge>\n </ng-template>\n\n <ng-template cdkPortal #contentTemplate=\"cdkPortal\">\n <div *ngIf=\"!tabLink\" class=\"content\" role=\"tabpanel\" [attr.id]=\"tabPanelId\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n</li>\n", styles: [":host{display:inline-block}.tab{display:inline-block;margin:0 8px;text-align:center;border-bottom:solid 2px transparent;transition:border-bottom .5s;cursor:pointer}.tab:hover,.tab.active{border-bottom:solid 2px #2a303d;transition:border-bottom .1s;outline:0}.tab.active{cursor:default}.tab.disabled{opacity:.3;cursor:default}.tab:hover .tabLabel,.tab.active .tabLabel{color:#2a303d;transition:color .1s}.portalTab,.routerLinkTab a{display:inline-block;padding:8px 8px 12px;line-height:20px}.portalTab.withIcon,.routerLinkTab a.withIcon{padding:10px 14px;line-height:16px}.routerLinkTab.active a,.routerLinkTab.disabled a{cursor:default}.icon{font-size:16px;opacity:.6}.noMargin{margin:0}.noLeftMarginForFirstTab{margin-left:0}.backgroundGray{background-color:#c2c9d6}.backgroundGray:not(.active):not(.disabled){background-color:#cfd5df}.tabLabel{color:#677a9a;display:inline-block;font-size:13px;text-decoration:none}.content{height:100%}\n"] }]
|
39
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { icon: [{
|
40
|
+
type: Input
|
41
|
+
}], label: [{
|
42
|
+
type: Input
|
43
|
+
}], title: [{
|
44
|
+
type: Input
|
45
|
+
}], tabLink: [{
|
46
|
+
type: Input
|
47
|
+
}], counter: [{
|
48
|
+
type: Input
|
49
|
+
}], routerLinkActiveOptions: [{
|
50
|
+
type: Input
|
51
|
+
}], counterBadgeSize: [{
|
52
|
+
type: Input
|
53
|
+
}], noMargin: [{
|
54
|
+
type: Input
|
55
|
+
}], noLeftMarginForFirstTab: [{
|
56
|
+
type: Input
|
57
|
+
}], background: [{
|
58
|
+
type: Input
|
59
|
+
}], disabled: [{
|
60
|
+
type: Input
|
61
|
+
}], switch: [{
|
62
|
+
type: Output
|
63
|
+
}], content: [{
|
64
|
+
type: ViewChild,
|
65
|
+
args: ['contentTemplate', { static: true }]
|
66
|
+
}], routerLinkActive: [{
|
67
|
+
type: ViewChild,
|
68
|
+
args: [RouterLinkActive]
|
69
|
+
}] } });
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi90YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBUXJDLE1BQU0sT0FBTyxZQUFZO0lBc0N2QixZQUFvQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWhDaEMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUluQiw0QkFBdUIsR0FBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDOUQscUJBQWdCLEdBQXdCLFNBQVMsQ0FBQztRQUNsRCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLDRCQUF1QixHQUFZLEtBQUssQ0FBQztRQUN6QyxlQUFVLEdBQXFCLE9BQU8sQ0FBQztRQUN2QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRXpCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBbUI5QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFkRCxJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOzt5R0FuQ1UsWUFBWTs2RkFBWixZQUFZLGdpQkF3QlosZ0JBQWdCLGdEQ25DN0IsaTNDQXdDQTsyRkQ3QmEsWUFBWTtrQkFOeEIsU0FBUzsrQkFDRSxRQUFRLG1CQUdELHVCQUF1QixDQUFDLE1BQU07d0dBT3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUtQLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR2pCLGdCQUFnQjtzQkFBNUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoL2ZwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtdGFiJyxcbiAgdGVtcGxhdGVVcmw6ICd0YWIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsndGFiLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgaWNvbiBpbnB1dCB0YWtlcyBhIGZvbnQgYXdlc29tZSBzZWxlY3RvclxuICAgKiBXQVJOSU5HOiBDdXJyZW50bHkgdGhpcyBjb21wb25lbnQgZG9lcyBub3Qgc3VwcG9ydCB1c2luZyBhbiBpY29uIHRvZ2V0aGVyIHdpdGggYSBsYWJlbCBvciBjb3VudGVyLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbj86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgdGFiTGluaz86IHN0cmluZztcbiAgQElucHV0KCkgY291bnRlcj86IG51bWJlcjtcbiAgQElucHV0KCkgcm91dGVyTGlua0FjdGl2ZU9wdGlvbnM6IHsgZXhhY3Q6IGJvb2xlYW4gfSA9IHsgZXhhY3Q6IHRydWUgfTtcbiAgQElucHV0KCkgY291bnRlckJhZGdlU2l6ZTogJ2RlZmF1bHQnIHwgJ3NtYWxsJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgbm9NYXJnaW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbm9MZWZ0TWFyZ2luRm9yRmlyc3RUYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYmFja2dyb3VuZDogJ3doaXRlJyB8ICdncmF5JyA9ICd3aGl0ZSc7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHN3aXRjaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB0YWJQYW5lbElkOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudFRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgY29udGVudD86IFRlbXBsYXRlUG9ydGFsPGFueT47XG5cbiAgQFZpZXdDaGlsZChSb3V0ZXJMaW5rQWN0aXZlKSByb3V0ZXJMaW5rQWN0aXZlPzogUm91dGVyTGlua0FjdGl2ZTtcblxuICBzZXQgaXNBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pc0FjdGl2ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgZ2V0IGlzQWN0aXZlKCkge1xuICAgIGlmICh0aGlzLnJvdXRlckxpbmtBY3RpdmUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9pc0FjdGl2ZTtcbiAgfVxuICBwcml2YXRlIF9pc0FjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy50YWJQYW5lbElkID0gdW5pcXVlSWQoJ3BhbmVsSWQnKTtcbiAgfVxufVxuIiwiPGxpXG4gIGNsYXNzPVwidGFiXCJcbiAgW2F0dHIudGFiaW5kZXhdPVwiaXNBY3RpdmUgfHwgZGlzYWJsZWQgfHwgdGFiTGluayA/ICctMScgOiAnMCdcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzQWN0aXZlXCJcbiAgW2F0dHIuYXJpYS1jb250cm9sc109XCJ0YWJQYW5lbElkXCJcbiAgW2NsYXNzLmFjdGl2ZV09XCJpc0FjdGl2ZVwiXG4gIFtjbGFzcy53aXRoSWNvbl09XCJpY29uXCJcbiAgW2NsYXNzLm5vTWFyZ2luXT1cIm5vTWFyZ2luXCJcbiAgW2NsYXNzLm5vTGVmdE1hcmdpbkZvckZpcnN0VGFiXT1cIm5vTGVmdE1hcmdpbkZvckZpcnN0VGFiXCJcbiAgW2NsYXNzLmJhY2tncm91bmRHcmF5XT1cImJhY2tncm91bmQgPT09ICdncmF5J1wiXG4gIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5wb3J0YWxUYWJdPVwiIXRhYkxpbmtcIlxuICBbY2xhc3Mucm91dGVyTGlua1RhYl09XCJ0YWJMaW5rXCJcbiAgW2F0dHIudGl0bGVdPVwidGl0bGVcIlxuICByb2xlPVwidGFiXCJcbiAgKGtleXVwLmVudGVyKT1cInN3aXRjaC5lbWl0KClcIlxuICAoY2xpY2spPVwic3dpdGNoLmVtaXQoKVwiXG4+XG4gIDxhICpuZ0lmPVwidGFiTGluazsgZWxzZSBwb3J0YWxUYWJcIiBbcm91dGVyTGlua109XCJ0YWJMaW5rXCIgcm91dGVyTGlua0FjdGl2ZSBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwicm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicG9ydGFsVGFiXCI+PC9uZy1jb250YWluZXI+XG4gIDwvYT5cblxuICA8bmctdGVtcGxhdGUgI3BvcnRhbFRhYj5cbiAgICA8aSAqbmdJZj1cImljb25cIiBjbGFzcz1cImljb24ge3sgaWNvbiB9fVwiPjwvaT5cbiAgICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJ0YWJMYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxseC1iYWRnZVxuICAgICAgKm5nSWY9XCJjb3VudGVyXCJcbiAgICAgIFtzaXplXT1cImNvdW50ZXJCYWRnZVNpemVcIlxuICAgICAgY2xhc3M9XCJseC1tYXJnaW4tbGVmdFwiXG4gICAgICBbY29udGVudF09XCJjb3VudGVyXCJcbiAgICAgIFtjb2xvcl09XCJpc0FjdGl2ZSA/ICdkYXJrZ3JheScgOiAnZ3JheSdcIlxuICAgID48L2x4LWJhZGdlPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWwgI2NvbnRlbnRUZW1wbGF0ZT1cImNka1BvcnRhbFwiPlxuICAgIDxkaXYgKm5nSWY9XCIhdGFiTGlua1wiIGNsYXNzPVwiY29udGVudFwiIHJvbGU9XCJ0YWJwYW5lbFwiIFthdHRyLmlkXT1cInRhYlBhbmVsSWRcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbGk+XG4iXX0=
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
|
2
|
+
import { merge, Subject } from 'rxjs';
|
3
|
+
import { map, startWith, switchMap, takeUntil } from 'rxjs/operators';
|
4
|
+
import { TabComponent } from '../tab/tab.component';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "@angular/cdk/portal";
|
7
|
+
export class TabGroupComponent {
|
8
|
+
constructor(cd) {
|
9
|
+
this.cd = cd;
|
10
|
+
this.isCentered = false;
|
11
|
+
this.selectedIndex = 0;
|
12
|
+
this.indexChange = new EventEmitter();
|
13
|
+
this.destroyed$ = new Subject();
|
14
|
+
}
|
15
|
+
get tabs() {
|
16
|
+
return this.tabsQueryList?.toArray() || [];
|
17
|
+
}
|
18
|
+
get activeTabPortal() {
|
19
|
+
return this.tabs[this.selectedIndex]?.content;
|
20
|
+
}
|
21
|
+
ngOnChanges(changes) {
|
22
|
+
const tab = this.tabs[this.selectedIndex];
|
23
|
+
if (changes['selectedIndex'] && !changes['selectedIndex'].isFirstChange() && tab) {
|
24
|
+
this.switchTo(tab);
|
25
|
+
}
|
26
|
+
}
|
27
|
+
ngAfterContentInit() {
|
28
|
+
if (this.tabs[0]) {
|
29
|
+
this.tabs[0].noLeftMarginForFirstTab = true;
|
30
|
+
}
|
31
|
+
const tab = this.tabs[this.selectedIndex];
|
32
|
+
if (tab) {
|
33
|
+
this.switchTo(tab);
|
34
|
+
}
|
35
|
+
const listenToTabsSwitch = (tabs) => merge(...tabs.map((tab) => tab.switch.asObservable().pipe(map(() => tab))));
|
36
|
+
this.tabsQueryList?.changes
|
37
|
+
.pipe(startWith(null), switchMap(() => listenToTabsSwitch(this.tabs)), takeUntil(this.destroyed$))
|
38
|
+
.subscribe((tab) => {
|
39
|
+
this.switchTo(tab);
|
40
|
+
});
|
41
|
+
}
|
42
|
+
ngOnDestroy() {
|
43
|
+
this.destroyed$.next();
|
44
|
+
}
|
45
|
+
switchTo(tab) {
|
46
|
+
this.tabsQueryList?.forEach((t, index) => {
|
47
|
+
t.isActive = t === tab;
|
48
|
+
if (t.isActive) {
|
49
|
+
this.selectedIndex = index;
|
50
|
+
this.indexChange.emit(index);
|
51
|
+
}
|
52
|
+
});
|
53
|
+
this.cd.markForCheck();
|
54
|
+
}
|
55
|
+
}
|
56
|
+
TabGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TabGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
57
|
+
TabGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: TabGroupComponent, selector: "lx-tab-group", inputs: { isCentered: "isCentered", selectedIndex: "selectedIndex" }, outputs: { indexChange: "indexChange" }, queries: [{ propertyName: "tabsQueryList", predicate: TabComponent }], usesOnChanges: true, ngImport: i0, template: "<ul class=\"tabs\" role=\"tablist\" [class.centered]=\"isCentered\">\n <ng-content></ng-content>\n</ul>\n\n<ng-template [cdkPortalOutlet]=\"activeTabPortal\"></ng-template>\n", styles: [".tabs{display:inline-block;list-style:none;border-bottom:solid 1px #cfd5df;width:100%;margin:0;padding:0}.tabs.centered{text-align:center}\n"], directives: [{ type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: TabGroupComponent, decorators: [{
|
59
|
+
type: Component,
|
60
|
+
args: [{ selector: 'lx-tab-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"tabs\" role=\"tablist\" [class.centered]=\"isCentered\">\n <ng-content></ng-content>\n</ul>\n\n<ng-template [cdkPortalOutlet]=\"activeTabPortal\"></ng-template>\n", styles: [".tabs{display:inline-block;list-style:none;border-bottom:solid 1px #cfd5df;width:100%;margin:0;padding:0}.tabs.centered{text-align:center}\n"] }]
|
61
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { isCentered: [{
|
62
|
+
type: Input
|
63
|
+
}], selectedIndex: [{
|
64
|
+
type: Input
|
65
|
+
}], indexChange: [{
|
66
|
+
type: Output
|
67
|
+
}], tabsQueryList: [{
|
68
|
+
type: ContentChildren,
|
69
|
+
args: [TabComponent]
|
70
|
+
}] } });
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBUXBELE1BQU0sT0FBTyxpQkFBaUI7SUFpQjVCLFlBQW9CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBaEJoQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVkxQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVFLENBQUM7SUFWN0MsSUFBWSxJQUFJO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ2hELENBQUM7SUFNRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztTQUM3QztRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQjtRQUVELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakksSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPO2FBQ3hCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFpQjtRQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN2QyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs4R0E3RFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsaU1BS1gsWUFBWSxrREM3Qi9CLGlMQUtBOzJGRG1CYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNO3dHQUd0QyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFd0IsYUFBYTtzQkFBM0MsZUFBZTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi90YWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtdGFiLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICd0YWItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsndGFiLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRhYkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpc0NlbnRlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSW5kZXg6IG51bWJlciA9IDA7XG4gIEBPdXRwdXQoKSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiQ29tcG9uZW50KSB0YWJzUXVlcnlMaXN0PzogUXVlcnlMaXN0PFRhYkNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBnZXQgdGFicygpOiBUYWJDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFic1F1ZXJ5TGlzdD8udG9BcnJheSgpIHx8IFtdO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVRhYlBvcnRhbCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF0/LmNvbnRlbnQ7XG4gIH1cblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkSW5kZXgnXSAmJiAhY2hhbmdlc1snc2VsZWN0ZWRJbmRleCddLmlzRmlyc3RDaGFuZ2UoKSAmJiB0YWIpIHtcbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKHRoaXMudGFic1swXSkge1xuICAgICAgdGhpcy50YWJzWzBdLm5vTGVmdE1hcmdpbkZvckZpcnN0VGFiID0gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFiID0gdGhpcy50YWJzW3RoaXMuc2VsZWN0ZWRJbmRleF07XG4gICAgaWYgKHRhYikge1xuICAgICAgdGhpcy5zd2l0Y2hUbyh0YWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlblRvVGFic1N3aXRjaCA9ICh0YWJzOiBUYWJDb21wb25lbnRbXSkgPT4gbWVyZ2UoLi4udGFicy5tYXAoKHRhYikgPT4gdGFiLnN3aXRjaC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoKSA9PiB0YWIpKSkpO1xuXG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbGlzdGVuVG9UYWJzU3dpdGNoKHRoaXMudGFicykpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodGFiKSA9PiB7XG4gICAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIHN3aXRjaFRvKHRhYjogVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xuICAgICAgdC5pc0FjdGl2ZSA9IHQgPT09IHRhYjtcbiAgICAgIGlmICh0LmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjx1bCBjbGFzcz1cInRhYnNcIiByb2xlPVwidGFibGlzdFwiIFtjbGFzcy5jZW50ZXJlZF09XCJpc0NlbnRlcmVkXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvdWw+XG5cbjxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImFjdGl2ZVRhYlBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4iXX0=
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { PortalModule } from '@angular/cdk/portal';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { NgModule } from '@angular/core';
|
4
|
+
import { RouterModule } from '@angular/router';
|
5
|
+
import { LxCoreUiModule } from '../core-ui/core-ui.module';
|
6
|
+
import { TabGroupComponent } from './components/tab-group/tab-group.component';
|
7
|
+
import { TabComponent } from './components/tab/tab.component';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
export class LxTabUiModule {
|
10
|
+
}
|
11
|
+
LxTabUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxTabUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
12
|
+
LxTabUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxTabUiModule, declarations: [TabGroupComponent, TabComponent], imports: [PortalModule, CommonModule, LxCoreUiModule, RouterModule], exports: [TabGroupComponent, TabComponent] });
|
13
|
+
LxTabUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxTabUiModule, imports: [[PortalModule, CommonModule, LxCoreUiModule, RouterModule]] });
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LxTabUiModule, decorators: [{
|
15
|
+
type: NgModule,
|
16
|
+
args: [{
|
17
|
+
declarations: [TabGroupComponent, TabComponent],
|
18
|
+
imports: [PortalModule, CommonModule, LxCoreUiModule, RouterModule],
|
19
|
+
exports: [TabGroupComponent, TabComponent]
|
20
|
+
}]
|
21
|
+
}] });
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS90YWItdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFKVCxpQkFBaUIsRUFBRSxZQUFZLGFBQ3BDLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFlBQVksYUFDeEQsaUJBQWlCLEVBQUUsWUFBWTsyR0FFOUIsYUFBYSxZQUhmLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDOzJGQUd4RCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQztvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsWUFBWSxDQUFDO29CQUNuRSxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMeENvcmVVaU1vZHVsZSB9IGZyb20gJy4uL2NvcmUtdWkvY29yZS11aS5tb2R1bGUnO1xuaW1wb3J0IHsgVGFiR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYi90YWIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVGFiR3JvdXBDb21wb25lbnQsIFRhYkNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIENvbW1vbk1vZHVsZSwgTHhDb3JlVWlNb2R1bGUsIFJvdXRlck1vZHVsZV0sXG4gIGV4cG9ydHM6IFtUYWJHcm91cENvbXBvbmVudCwgVGFiQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBMeFRhYlVpTW9kdWxlIHt9XG4iXX0=
|