@ptsecurity/mosaic 12.0.2 → 12.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_theming.scss +475 -101
- package/_visual.scss +131 -13
- package/bundles/ptsecurity-mosaic-autocomplete.umd.js +18 -20
- package/bundles/ptsecurity-mosaic-autocomplete.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-button-toggle.umd.js +15 -17
- package/bundles/ptsecurity-mosaic-button-toggle.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-button.umd.js +17 -19
- package/bundles/ptsecurity-mosaic-button.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-card.umd.js +11 -13
- package/bundles/ptsecurity-mosaic-card.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-checkbox.umd.js +14 -16
- package/bundles/ptsecurity-mosaic-checkbox.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-core.umd.js +259 -172
- package/bundles/ptsecurity-mosaic-core.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-datepicker.umd.js +47 -48
- package/bundles/ptsecurity-mosaic-datepicker.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-design-tokens.umd.js +231 -26
- package/bundles/ptsecurity-mosaic-design-tokens.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-divider.umd.js +11 -13
- package/bundles/ptsecurity-mosaic-divider.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-dropdown.umd.js +67 -59
- package/bundles/ptsecurity-mosaic-dropdown.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-form-field.umd.js +737 -738
- package/bundles/ptsecurity-mosaic-form-field.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-icon.umd.js +14 -16
- package/bundles/ptsecurity-mosaic-icon.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-input.umd.js +45 -33
- package/bundles/ptsecurity-mosaic-input.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-link.umd.js +11 -13
- package/bundles/ptsecurity-mosaic-link.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-list.umd.js +177 -89
- package/bundles/ptsecurity-mosaic-list.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-modal.umd.js +52 -44
- package/bundles/ptsecurity-mosaic-modal.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-navbar.umd.js +46 -43
- package/bundles/ptsecurity-mosaic-navbar.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-popover.umd.js +215 -34
- package/bundles/ptsecurity-mosaic-popover.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-progress-bar.umd.js +12 -14
- package/bundles/ptsecurity-mosaic-progress-bar.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-progress-spinner.umd.js +12 -14
- package/bundles/ptsecurity-mosaic-progress-spinner.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-radio.umd.js +14 -16
- package/bundles/ptsecurity-mosaic-radio.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-select.umd.js +22 -24
- package/bundles/ptsecurity-mosaic-select.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-sidebar.umd.js +17 -19
- package/bundles/ptsecurity-mosaic-sidebar.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-sidepanel.umd.js +62 -58
- package/bundles/ptsecurity-mosaic-sidepanel.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-splitter.umd.js +31 -21
- package/bundles/ptsecurity-mosaic-splitter.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-table.umd.js +11 -13
- package/bundles/ptsecurity-mosaic-table.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-tabs.umd.js +150 -74
- package/bundles/ptsecurity-mosaic-tabs.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-tags.umd.js +28 -29
- package/bundles/ptsecurity-mosaic-tags.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-textarea.umd.js +12 -14
- package/bundles/ptsecurity-mosaic-textarea.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-timepicker.umd.js +16 -17
- package/bundles/ptsecurity-mosaic-timepicker.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-toggle.umd.js +11 -13
- package/bundles/ptsecurity-mosaic-toggle.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-tooltip.umd.js +72 -23
- package/bundles/ptsecurity-mosaic-tooltip.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-tree-select.umd.js +24 -29
- package/bundles/ptsecurity-mosaic-tree-select.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic-tree.umd.js +1018 -261
- package/bundles/ptsecurity-mosaic-tree.umd.js.map +1 -1
- package/bundles/ptsecurity-mosaic.umd.js +2 -2
- package/core/option/action.d.ts +42 -0
- package/core/option/index.d.ts +1 -0
- package/core/option/option-module.d.ts +4 -3
- package/core/pop-up/pop-up-trigger.d.ts +9 -12
- package/design-tokens/style-dictionary/build.js +6 -0
- package/design-tokens/style-dictionary/configs/index.js +2 -1
- package/design-tokens/tokens/components/badge.json5 +177 -7
- package/design-tokens/tokens/components/list.json5 +0 -4
- package/design-tokens/tokens/components/tree.json5 +3 -3
- package/design-tokens/tokens/properties/globals.json5 +1 -1
- package/design-tokens/tokens/properties/typography.json5 +16 -0
- package/design-tokens/tokens.d.ts +115 -13
- package/dropdown/dropdown-item.component.d.ts +1 -0
- package/dropdown/dropdown-trigger.directive.d.ts +3 -8
- package/dropdown/dropdown.component.d.ts +1 -0
- package/esm2015/autocomplete/autocomplete-origin.directive.js +4 -4
- package/esm2015/autocomplete/autocomplete-trigger.directive.js +4 -4
- package/esm2015/autocomplete/autocomplete.component.js +4 -4
- package/esm2015/autocomplete/autocomplete.module.js +5 -5
- package/esm2015/button/button.component.js +10 -10
- package/esm2015/button/button.module.js +5 -5
- package/esm2015/button-toggle/button-toggle.component.js +7 -7
- package/esm2015/button-toggle/button-toggle.module.js +5 -5
- package/esm2015/card/card.component.js +4 -4
- package/esm2015/card/card.module.js +5 -5
- package/esm2015/checkbox/checkbox-module.js +5 -5
- package/esm2015/checkbox/checkbox-required-validator.js +4 -4
- package/esm2015/checkbox/checkbox.js +4 -4
- package/esm2015/core/common-behaviors/common-module.js +5 -5
- package/esm2015/core/error/error-options.js +7 -7
- package/esm2015/core/formatters/date/formatter.js +6 -5
- package/esm2015/core/formatters/index.js +5 -5
- package/esm2015/core/formatters/number/formatter.js +5 -5
- package/esm2015/core/forms/forms-module.js +5 -5
- package/esm2015/core/forms/forms.directive.js +7 -7
- package/esm2015/core/highlight/highlight.pipe.js +4 -4
- package/esm2015/core/highlight/index.js +5 -5
- package/esm2015/core/line/line.js +8 -8
- package/esm2015/core/option/action.js +131 -0
- package/esm2015/core/option/index.js +2 -1
- package/esm2015/core/option/optgroup.js +4 -4
- package/esm2015/core/option/option-module.js +8 -7
- package/esm2015/core/option/option.js +4 -4
- package/esm2015/core/pop-up/pop-up-trigger.js +32 -64
- package/esm2015/core/pop-up/pop-up.js +4 -4
- package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.js +4 -4
- package/esm2015/core/selection/pseudo-checkbox/pseudo-checkbox.module.js +5 -5
- package/esm2015/core/services/measure-scrollbar.service.js +4 -4
- package/esm2015/datepicker/calendar-body.component.js +4 -4
- package/esm2015/datepicker/calendar.component.js +7 -7
- package/esm2015/datepicker/datepicker-input.directive.js +6 -5
- package/esm2015/datepicker/datepicker-intl.js +4 -4
- package/esm2015/datepicker/datepicker-module.js +5 -5
- package/esm2015/datepicker/datepicker-toggle.component.js +7 -7
- package/esm2015/datepicker/datepicker.component.js +7 -7
- package/esm2015/datepicker/month-view.component.js +4 -4
- package/esm2015/datepicker/multi-year-view.component.js +4 -4
- package/esm2015/datepicker/year-view.component.js +4 -4
- package/esm2015/design-tokens/tokens.js +116 -14
- package/esm2015/divider/divider.component.js +4 -4
- package/esm2015/divider/divider.module.js +5 -5
- package/esm2015/dropdown/dropdown-content.directive.js +4 -4
- package/esm2015/dropdown/dropdown-item.component.js +11 -4
- package/esm2015/dropdown/dropdown-trigger.directive.js +39 -39
- package/esm2015/dropdown/dropdown.component.js +9 -5
- package/esm2015/dropdown/dropdown.module.js +5 -5
- package/esm2015/form-field/cleaner.js +9 -5
- package/esm2015/form-field/form-field.js +7 -7
- package/esm2015/form-field/form-field.module.js +5 -5
- package/esm2015/form-field/hint.js +4 -4
- package/esm2015/form-field/prefix.js +4 -4
- package/esm2015/form-field/stepper.js +4 -4
- package/esm2015/form-field/suffix.js +4 -4
- package/esm2015/icon/icon.component.js +7 -7
- package/esm2015/icon/icon.module.js +5 -5
- package/esm2015/input/input-number-validators.js +28 -14
- package/esm2015/input/input-number.js +4 -4
- package/esm2015/input/input.js +7 -7
- package/esm2015/input/input.module.js +5 -5
- package/esm2015/link/link.component.js +4 -4
- package/esm2015/link/link.module.js +5 -5
- package/esm2015/list/list-selection.component.js +155 -66
- package/esm2015/list/list.component.js +7 -7
- package/esm2015/list/list.module.js +5 -5
- package/esm2015/modal/css-unit.pipe.js +4 -4
- package/esm2015/modal/modal-control.service.js +4 -4
- package/esm2015/modal/modal.component.js +6 -4
- package/esm2015/modal/modal.directive.js +13 -13
- package/esm2015/modal/modal.module.js +9 -7
- package/esm2015/modal/modal.service.js +16 -9
- package/esm2015/navbar/navbar-item.component.js +21 -21
- package/esm2015/navbar/navbar.component.js +7 -7
- package/esm2015/navbar/navbar.module.js +5 -5
- package/esm2015/navbar/vertical-navbar.component.js +14 -9
- package/esm2015/popover/popover-confirm.component.js +116 -0
- package/esm2015/popover/popover.component.js +63 -20
- package/esm2015/popover/popover.module.js +13 -10
- package/esm2015/popover/public-api.js +2 -1
- package/esm2015/progress-bar/progress-bar.component.js +4 -4
- package/esm2015/progress-bar/progress-bar.module.js +5 -5
- package/esm2015/progress-spinner/progress-spinner.component.js +4 -4
- package/esm2015/progress-spinner/progress-spinner.module.js +5 -5
- package/esm2015/radio/radio.component.js +7 -7
- package/esm2015/radio/radio.module.js +5 -5
- package/esm2015/select/select.component.js +14 -14
- package/esm2015/select/select.module.js +5 -5
- package/esm2015/sidebar/sidebar.component.js +10 -10
- package/esm2015/sidebar/sidebar.module.js +5 -5
- package/esm2015/sidepanel/sidepanel-container.component.js +14 -13
- package/esm2015/sidepanel/sidepanel-directives.js +22 -18
- package/esm2015/sidepanel/sidepanel.module.js +12 -8
- package/esm2015/sidepanel/sidepanel.service.js +6 -5
- package/esm2015/splitter/splitter.component.js +24 -13
- package/esm2015/splitter/splitter.module.js +5 -5
- package/esm2015/table/table.component.js +4 -4
- package/esm2015/table/table.module.js +5 -5
- package/esm2015/tabs/paginated-tab-header.js +5 -5
- package/esm2015/tabs/tab-body.component.js +7 -7
- package/esm2015/tabs/tab-content.directive.js +4 -4
- package/esm2015/tabs/tab-group.component.js +56 -26
- package/esm2015/tabs/tab-header.component.js +4 -4
- package/esm2015/tabs/tab-label-wrapper.directive.js +21 -6
- package/esm2015/tabs/tab-label.directive.js +4 -4
- package/esm2015/tabs/tab-nav-bar/tab-nav-bar.js +7 -7
- package/esm2015/tabs/tab.component.js +36 -13
- package/esm2015/tabs/tabs.module.js +5 -5
- package/esm2015/tags/tag-input.js +4 -4
- package/esm2015/tags/tag-list.component.js +4 -4
- package/esm2015/tags/tag.component.js +14 -13
- package/esm2015/tags/tag.module.js +5 -5
- package/esm2015/textarea/textarea.component.js +4 -4
- package/esm2015/textarea/textarea.module.js +5 -5
- package/esm2015/timepicker/timepicker.directive.js +9 -8
- package/esm2015/timepicker/timepicker.module.js +5 -5
- package/esm2015/toggle/toggle.component.js +4 -4
- package/esm2015/toggle/toggle.module.js +5 -5
- package/esm2015/tooltip/tooltip.component.js +55 -16
- package/esm2015/tooltip/tooltip.module.js +5 -5
- package/esm2015/tree/control/base-tree-control.js +60 -0
- package/esm2015/tree/control/flat-tree-control.js +123 -0
- package/esm2015/tree/control/nested-tree-control.js +41 -0
- package/esm2015/tree/control/tree-control.js +2 -0
- package/esm2015/tree/data-source/flat-data-source.js +1 -1
- package/esm2015/tree/node.js +31 -0
- package/esm2015/tree/outlet.js +15 -0
- package/esm2015/tree/padding.directive.js +90 -23
- package/esm2015/tree/public-api.js +9 -2
- package/esm2015/tree/toggle.js +46 -52
- package/esm2015/tree/tree-base.js +243 -0
- package/esm2015/tree/tree-errors.js +36 -0
- package/esm2015/tree/tree-option.component.js +75 -32
- package/esm2015/tree/tree-selection.component.js +122 -73
- package/esm2015/tree/tree.js +23 -0
- package/esm2015/tree/tree.module.js +24 -13
- package/esm2015/tree-select/tree-select.component.js +11 -12
- package/esm2015/tree-select/tree-select.module.js +5 -9
- package/fesm2015/ptsecurity-mosaic-autocomplete.js +13 -13
- package/fesm2015/ptsecurity-mosaic-autocomplete.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button-toggle.js +10 -10
- package/fesm2015/ptsecurity-mosaic-button-toggle.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button.js +13 -13
- package/fesm2015/ptsecurity-mosaic-button.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-card.js +7 -7
- package/fesm2015/ptsecurity-mosaic-card.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-checkbox.js +10 -10
- package/fesm2015/ptsecurity-mosaic-checkbox.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-core.js +231 -140
- package/fesm2015/ptsecurity-mosaic-core.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.js +42 -41
- package/fesm2015/ptsecurity-mosaic-datepicker.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.js +116 -14
- package/fesm2015/ptsecurity-mosaic-design-tokens.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-divider.js +7 -7
- package/fesm2015/ptsecurity-mosaic-divider.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dropdown.js +63 -52
- package/fesm2015/ptsecurity-mosaic-dropdown.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-form-field.js +30 -27
- package/fesm2015/ptsecurity-mosaic-form-field.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-icon.js +10 -10
- package/fesm2015/ptsecurity-mosaic-icon.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-input.js +40 -26
- package/fesm2015/ptsecurity-mosaic-input.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-link.js +7 -7
- package/fesm2015/ptsecurity-mosaic-link.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-list.js +164 -76
- package/fesm2015/ptsecurity-mosaic-list.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-modal.js +46 -35
- package/fesm2015/ptsecurity-mosaic-modal.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.js +43 -38
- package/fesm2015/ptsecurity-mosaic-navbar.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-popover.js +179 -30
- package/fesm2015/ptsecurity-mosaic-popover.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-bar.js +7 -7
- package/fesm2015/ptsecurity-mosaic-progress-bar.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-spinner.js +7 -7
- package/fesm2015/ptsecurity-mosaic-progress-spinner.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-radio.js +10 -10
- package/fesm2015/ptsecurity-mosaic-radio.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-select.js +17 -17
- package/fesm2015/ptsecurity-mosaic-select.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidebar.js +13 -13
- package/fesm2015/ptsecurity-mosaic-sidebar.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidepanel.js +50 -41
- package/fesm2015/ptsecurity-mosaic-sidepanel.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-splitter.js +27 -16
- package/fesm2015/ptsecurity-mosaic-splitter.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-table.js +7 -7
- package/fesm2015/ptsecurity-mosaic-table.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tabs.js +240 -174
- package/fesm2015/ptsecurity-mosaic-tabs.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tags.js +23 -22
- package/fesm2015/ptsecurity-mosaic-tags.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-textarea.js +7 -7
- package/fesm2015/ptsecurity-mosaic-textarea.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timepicker.js +12 -11
- package/fesm2015/ptsecurity-mosaic-timepicker.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-toggle.js +7 -7
- package/fesm2015/ptsecurity-mosaic-toggle.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tooltip.js +57 -18
- package/fesm2015/ptsecurity-mosaic-tooltip.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree-select.js +14 -18
- package/fesm2015/ptsecurity-mosaic-tree-select.js.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree.js +874 -190
- package/fesm2015/ptsecurity-mosaic-tree.js.map +1 -1
- package/form-field/cleaner.d.ts +2 -0
- package/input/input-number-validators.d.ts +2 -2
- package/list/list-selection.component.d.ts +28 -6
- package/modal/modal.component.d.ts +2 -0
- package/modal/modal.module.d.ts +1 -1
- package/package.json +5 -5
- package/popover/popover-confirm.component.d.ts +33 -0
- package/popover/popover.component.d.ts +14 -4
- package/popover/popover.module.d.ts +6 -3
- package/popover/public-api.d.ts +1 -0
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/prebuilt-visual/default-visual.css +1 -1
- package/select/select.component.d.ts +2 -7
- package/sidepanel/sidepanel-directives.d.ts +2 -0
- package/sidepanel/sidepanel.module.d.ts +2 -1
- package/splitter/splitter.component.d.ts +6 -3
- package/tabs/tab-group.component.d.ts +11 -4
- package/tabs/tab-label-wrapper.directive.d.ts +7 -1
- package/tabs/tab.component.d.ts +10 -4
- package/tooltip/tooltip.component.d.ts +12 -3
- package/tree/control/base-tree-control.d.ts +40 -0
- package/tree/control/flat-tree-control.d.ts +48 -0
- package/tree/control/nested-tree-control.d.ts +19 -0
- package/tree/control/tree-control.d.ts +44 -0
- package/tree/data-source/flat-data-source.d.ts +2 -1
- package/tree/node.d.ts +34 -0
- package/tree/outlet.d.ts +9 -0
- package/tree/padding.directive.d.ts +35 -7
- package/tree/public-api.d.ts +8 -1
- package/tree/toggle.d.ts +17 -17
- package/tree/tree-base.d.ts +97 -0
- package/tree/tree-errors.d.ts +25 -0
- package/tree/tree-option.component.d.ts +13 -5
- package/tree/tree-selection.component.d.ts +32 -13
- package/tree/tree.d.ts +6 -0
- package/tree/tree.module.d.ts +10 -8
- package/tree-select/tree-select.component.d.ts +2 -7
- package/tree-select/tree-select.module.d.ts +5 -6
- package/esm2015/tree/node.directive.js +0 -19
- package/tree/node.directive.d.ts +0 -7
@@ -5,15 +5,15 @@ import { CdkPortalOutlet, CdkPortal, TemplatePortal, PortalModule } from '@angul
|
|
5
5
|
import * as i3$1 from '@angular/common';
|
6
6
|
import { CommonModule } from '@angular/common';
|
7
7
|
import * as i0 from '@angular/core';
|
8
|
-
import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Input, Output, ViewChild, forwardRef, Directive, Inject,
|
9
|
-
import { mixinDisabled, mixinTabIndex, McCommonModule } from '@ptsecurity/mosaic/core';
|
8
|
+
import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Input, Output, ViewChild, forwardRef, Directive, Inject, InjectionToken, TemplateRef, ContentChild, ContentChildren, Attribute, NgModule } from '@angular/core';
|
9
|
+
import { mixinDisabled, PopUpPlacements, mixinTabIndex, McCommonModule } from '@ptsecurity/mosaic/core';
|
10
10
|
import * as i4 from '@ptsecurity/mosaic/icon';
|
11
11
|
import { McIconModule } from '@ptsecurity/mosaic/icon';
|
12
12
|
import * as i6 from '@ptsecurity/mosaic/tooltip';
|
13
13
|
import { McToolTipModule } from '@ptsecurity/mosaic/tooltip';
|
14
14
|
import * as i3 from '@angular/cdk/bidi';
|
15
15
|
import { Subscription, Subject, fromEvent, of, merge, timer } from 'rxjs';
|
16
|
-
import { startWith, takeUntil, delay } from 'rxjs/operators';
|
16
|
+
import { startWith, takeUntil, debounceTime, delay } from 'rxjs/operators';
|
17
17
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
18
18
|
import { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';
|
19
19
|
import * as i2 from '@angular/cdk/platform';
|
@@ -141,9 +141,9 @@ class McTabBody {
|
|
141
141
|
return 'right-origin-center';
|
142
142
|
}
|
143
143
|
}
|
144
|
-
/** @nocollapse */ McTabBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
145
|
-
/** @nocollapse */ McTabBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
146
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
144
|
+
/** @nocollapse */ McTabBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabBody, deps: [{ token: i0.ElementRef }, { token: i3.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
145
|
+
/** @nocollapse */ McTabBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McTabBody, selector: "mc-tab-body", inputs: { position: "position", content: "content", origin: "origin", animationDuration: "animationDuration" }, outputs: { onCentering: "onCentering", beforeCentering: "beforeCentering", afterLeavingCenter: "afterLeavingCenter", onCentered: "onCentered" }, host: { classAttribute: "mc-tab-body" }, viewQueries: [{ propertyName: "portalHost", first: true, predicate: CdkPortalOutlet, descendants: true }], ngImport: i0, template: "<div class=\"mc-tab-body__content\"\n #content\n [@translateTab]=\"{\n value: bodyPosition,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"onTranslateTabStarted($event)\"\n (@translateTab.done)=\"onTranslateTabComplete($event)\">\n <ng-template mcTabBodyHost></ng-template>\n</div>\n", styles: [".mc-tab-body__content{height:100%;overflow:auto}.mc-tab-body__content .mc-tab-group_dynamic-height{overflow:hidden}\n"], directives: [{ type: i0.forwardRef(function () { return McTabBodyPortal; }), selector: "[mcTabBodyHost]" }], animations: [mcTabsAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabBody, decorators: [{
|
147
147
|
type: Component,
|
148
148
|
args: [{
|
149
149
|
selector: 'mc-tab-body',
|
@@ -212,9 +212,9 @@ class McTabBodyPortal extends CdkPortalOutlet {
|
|
212
212
|
this.leavingSub.unsubscribe();
|
213
213
|
}
|
214
214
|
}
|
215
|
-
/** @nocollapse */ McTabBodyPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
216
|
-
/** @nocollapse */ McTabBodyPortal.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
215
|
+
/** @nocollapse */ McTabBodyPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabBodyPortal, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: forwardRef(() => McTabBody) }], target: i0.ɵɵFactoryTarget.Directive });
|
216
|
+
/** @nocollapse */ McTabBodyPortal.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McTabBodyPortal, selector: "[mcTabBodyHost]", usesInheritance: true, ngImport: i0 });
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabBodyPortal, decorators: [{
|
218
218
|
type: Directive,
|
219
219
|
args: [{
|
220
220
|
selector: '[mcTabBodyHost]'
|
@@ -230,9 +230,9 @@ class McTabContent {
|
|
230
230
|
this.template = template;
|
231
231
|
}
|
232
232
|
}
|
233
|
-
/** @nocollapse */ McTabContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
234
|
-
/** @nocollapse */ McTabContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
235
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
233
|
+
/** @nocollapse */ McTabContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
234
|
+
/** @nocollapse */ McTabContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McTabContent, selector: "[mcTabContent]", ngImport: i0 });
|
235
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabContent, decorators: [{
|
236
236
|
type: Directive,
|
237
237
|
args: [{ selector: '[mcTabContent]' }]
|
238
238
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
@@ -596,7 +596,7 @@ class McPaginatedTabHeader {
|
|
596
596
|
* should be called sparingly.
|
597
597
|
*/
|
598
598
|
checkPaginationEnabled() {
|
599
|
-
if (this.disablePagination) {
|
599
|
+
if (this.disablePagination || this.vertical) {
|
600
600
|
this.showPaginationControls = false;
|
601
601
|
}
|
602
602
|
else {
|
@@ -689,9 +689,9 @@ class McPaginatedTabHeader {
|
|
689
689
|
return { maxScrollDistance, distance: this.scrollDistance };
|
690
690
|
}
|
691
691
|
}
|
692
|
-
/** @nocollapse */ McPaginatedTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
693
|
-
/** @nocollapse */ McPaginatedTabHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
694
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
692
|
+
/** @nocollapse */ McPaginatedTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McPaginatedTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i0.NgZone }, { token: i2.Platform }, { token: i3.Directionality, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
693
|
+
/** @nocollapse */ McPaginatedTabHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McPaginatedTabHeader, inputs: { disablePagination: "disablePagination" }, ngImport: i0 });
|
694
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McPaginatedTabHeader, decorators: [{
|
695
695
|
type: Directive
|
696
696
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i0.NgZone }, { type: i2.Platform }, { type: i3.Directionality, decorators: [{
|
697
697
|
type: Optional
|
@@ -704,6 +704,146 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
704
704
|
type: Input
|
705
705
|
}] } });
|
706
706
|
|
707
|
+
const MC_TAB_LABEL = new InjectionToken('McTabLabel');
|
708
|
+
/** Used to flag tab labels for use with the portal directive */
|
709
|
+
class McTabLabel extends CdkPortal {
|
710
|
+
}
|
711
|
+
/** @nocollapse */ McTabLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabLabel, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
712
|
+
/** @nocollapse */ McTabLabel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McTabLabel, selector: "[mc-tab-label], [mcTabLabel]", providers: [{ provide: MC_TAB_LABEL, useExisting: McTabLabel }], usesInheritance: true, ngImport: i0 });
|
713
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabLabel, decorators: [{
|
714
|
+
type: Directive,
|
715
|
+
args: [{
|
716
|
+
selector: '[mc-tab-label], [mcTabLabel]',
|
717
|
+
providers: [{ provide: MC_TAB_LABEL, useExisting: McTabLabel }]
|
718
|
+
}]
|
719
|
+
}] });
|
720
|
+
|
721
|
+
class McTabBase {
|
722
|
+
}
|
723
|
+
// tslint:disable-next-line:naming-convention
|
724
|
+
const McTabMixinBase = mixinDisabled(McTabBase);
|
725
|
+
class McTab extends McTabMixinBase {
|
726
|
+
constructor(viewContainerRef) {
|
727
|
+
super();
|
728
|
+
this.viewContainerRef = viewContainerRef;
|
729
|
+
this._tooltipTitle = '';
|
730
|
+
this.tooltipPlacement = PopUpPlacements.Right;
|
731
|
+
/** Plain text label for the tab, used when there is no template label. */
|
732
|
+
this.textLabel = '';
|
733
|
+
this.empty = false;
|
734
|
+
/** Emits whenever the internal state of the tab changes. */
|
735
|
+
this.stateChanges = new Subject();
|
736
|
+
/**
|
737
|
+
* The relatively indexed position where 0 represents the center, negative is left, and positive
|
738
|
+
* represents the right.
|
739
|
+
*/
|
740
|
+
this.position = null;
|
741
|
+
/**
|
742
|
+
* The initial relatively index origin of the tab if it was created and selected after there
|
743
|
+
* was already a selected tab. Provides context of what position the tab should originate from.
|
744
|
+
*/
|
745
|
+
this.origin = null;
|
746
|
+
/**
|
747
|
+
* Whether the tab is currently active.
|
748
|
+
*/
|
749
|
+
this.isActive = false;
|
750
|
+
this._overflowTooltipTitle = '';
|
751
|
+
/** Portal that will be the hosted content of the tab */
|
752
|
+
this.contentPortal = null;
|
753
|
+
}
|
754
|
+
/** @docs-private */
|
755
|
+
get content() {
|
756
|
+
return this.contentPortal;
|
757
|
+
}
|
758
|
+
get templateLabel() {
|
759
|
+
return this._templateLabel;
|
760
|
+
}
|
761
|
+
set templateLabel(value) {
|
762
|
+
this.setTemplateLabelInput(value);
|
763
|
+
}
|
764
|
+
get tooltipTitle() {
|
765
|
+
return this.overflowTooltipTitle + this._tooltipTitle;
|
766
|
+
}
|
767
|
+
set tooltipTitle(value) {
|
768
|
+
this._tooltipTitle = value;
|
769
|
+
}
|
770
|
+
get isOverflown() {
|
771
|
+
return !!this._overflowTooltipTitle;
|
772
|
+
}
|
773
|
+
get overflowTooltipTitle() {
|
774
|
+
if (this.isOverflown) {
|
775
|
+
return `${this._overflowTooltipTitle}\n`;
|
776
|
+
}
|
777
|
+
return '';
|
778
|
+
}
|
779
|
+
set overflowTooltipTitle(value) {
|
780
|
+
this._overflowTooltipTitle = value;
|
781
|
+
}
|
782
|
+
ngOnChanges(changes) {
|
783
|
+
if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {
|
784
|
+
this.stateChanges.next();
|
785
|
+
}
|
786
|
+
}
|
787
|
+
ngOnDestroy() {
|
788
|
+
this.stateChanges.complete();
|
789
|
+
}
|
790
|
+
ngOnInit() {
|
791
|
+
this.contentPortal = new TemplatePortal(this.explicitContent || this.implicitContent, this.viewContainerRef);
|
792
|
+
}
|
793
|
+
/**
|
794
|
+
* This has been extracted to a util because of TS 4 and VE.
|
795
|
+
* View Engine doesn't support property rename inheritance.
|
796
|
+
* TS 4.0 doesn't allow properties to override accessors or vice-versa.
|
797
|
+
* @docs-private
|
798
|
+
*/
|
799
|
+
setTemplateLabelInput(value) {
|
800
|
+
// Only update the templateLabel via query if there is actually
|
801
|
+
// a McTabLabel found. This works around an issue where a user may have
|
802
|
+
// manually set `templateLabel` during creation mode, which would then get clobbered
|
803
|
+
// by `undefined` when this query resolves.
|
804
|
+
if (value) {
|
805
|
+
this._templateLabel = value;
|
806
|
+
}
|
807
|
+
}
|
808
|
+
}
|
809
|
+
/** @nocollapse */ McTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTab, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
810
|
+
/** @nocollapse */ McTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McTab, selector: "mc-tab", inputs: { disabled: "disabled", tooltipTitle: "tooltipTitle", tooltipPlacement: "tooltipPlacement", textLabel: ["label", "textLabel"], empty: "empty", tabId: "tabId" }, queries: [{ propertyName: "templateLabel", first: true, predicate: MC_TAB_LABEL, descendants: true }, { propertyName: "explicitContent", first: true, predicate: McTabContent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["mcTab"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
811
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTab, decorators: [{
|
812
|
+
type: Component,
|
813
|
+
args: [{
|
814
|
+
selector: 'mc-tab',
|
815
|
+
exportAs: 'mcTab',
|
816
|
+
// Create a template for the content of the <mc-tab> so that we can grab a reference to this
|
817
|
+
// TemplateRef and use it in a Portal to render the tab content in the appropriate place in the
|
818
|
+
// tab-group.
|
819
|
+
template: '<ng-template><ng-content></ng-content></ng-template>',
|
820
|
+
inputs: ['disabled'],
|
821
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
822
|
+
encapsulation: ViewEncapsulation.None
|
823
|
+
}]
|
824
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { templateLabel: [{
|
825
|
+
type: ContentChild,
|
826
|
+
args: [MC_TAB_LABEL]
|
827
|
+
}], explicitContent: [{
|
828
|
+
type: ContentChild,
|
829
|
+
args: [McTabContent, { read: TemplateRef, static: true }]
|
830
|
+
}], implicitContent: [{
|
831
|
+
type: ViewChild,
|
832
|
+
args: [TemplateRef, { static: true }]
|
833
|
+
}], tooltipTitle: [{
|
834
|
+
type: Input
|
835
|
+
}], tooltipPlacement: [{
|
836
|
+
type: Input
|
837
|
+
}], textLabel: [{
|
838
|
+
type: Input,
|
839
|
+
args: ['label']
|
840
|
+
}], empty: [{
|
841
|
+
type: Input
|
842
|
+
}], tabId: [{
|
843
|
+
type: Input,
|
844
|
+
args: ['tabId']
|
845
|
+
}] } });
|
846
|
+
|
707
847
|
// Boilerplate for applying mixins to McTabLabelWrapper.
|
708
848
|
/** @docs-private */
|
709
849
|
class McTabLabelWrapperBase {
|
@@ -733,6 +873,15 @@ class McTabLabelWrapper extends McTabLabelWrapperMixinBase {
|
|
733
873
|
getOffsetWidth() {
|
734
874
|
return this.elementRef.nativeElement.offsetWidth;
|
735
875
|
}
|
876
|
+
checkOverflow() {
|
877
|
+
this.tab.overflowTooltipTitle = this.isOverflown() ? this.getInnerText() : '';
|
878
|
+
}
|
879
|
+
isOverflown() {
|
880
|
+
return this.labelContent.nativeElement.scrollWidth > this.labelContent.nativeElement.clientWidth;
|
881
|
+
}
|
882
|
+
getInnerText() {
|
883
|
+
return this.labelContent.nativeElement.innerText;
|
884
|
+
}
|
736
885
|
addClassModifierForIcons(icons) {
|
737
886
|
const twoIcons = 2;
|
738
887
|
const [firstIconElement, secondIconElement] = icons;
|
@@ -751,9 +900,9 @@ class McTabLabelWrapper extends McTabLabelWrapperMixinBase {
|
|
751
900
|
}
|
752
901
|
}
|
753
902
|
}
|
754
|
-
/** @nocollapse */ McTabLabelWrapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
755
|
-
/** @nocollapse */ McTabLabelWrapper.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
756
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
903
|
+
/** @nocollapse */ McTabLabelWrapper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabLabelWrapper, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
904
|
+
/** @nocollapse */ McTabLabelWrapper.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McTabLabelWrapper, selector: "[mcTabLabelWrapper]", inputs: { disabled: "disabled", tab: "tab" }, host: { properties: { "attr.disabled": "disabled || null" } }, queries: [{ propertyName: "labelContent", first: true, predicate: ["labelContent"], descendants: true }], usesInheritance: true, ngImport: i0 });
|
905
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabLabelWrapper, decorators: [{
|
757
906
|
type: Directive,
|
758
907
|
args: [{
|
759
908
|
selector: '[mcTabLabelWrapper]',
|
@@ -762,7 +911,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
762
911
|
'[attr.disabled]': 'disabled || null'
|
763
912
|
}
|
764
913
|
}]
|
765
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }
|
914
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { labelContent: [{
|
915
|
+
type: ContentChild,
|
916
|
+
args: ['labelContent']
|
917
|
+
}], tab: [{
|
918
|
+
type: Input
|
919
|
+
}] } });
|
766
920
|
|
767
921
|
/**
|
768
922
|
* The header of the tab group which displays a list of all the tabs in the tab group.
|
@@ -783,9 +937,9 @@ class McTabHeader extends McPaginatedTabHeader {
|
|
783
937
|
event.preventDefault();
|
784
938
|
}
|
785
939
|
}
|
786
|
-
/** @nocollapse */ McTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
787
|
-
/** @nocollapse */ McTabHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
788
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
940
|
+
/** @nocollapse */ McTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i0.NgZone }, { token: i2.Platform }, { token: i3.Directionality, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
941
|
+
/** @nocollapse */ McTabHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McTabHeader, selector: "mc-tab-header", inputs: { selectedIndex: "selectedIndex", vertical: "vertical" }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, host: { properties: { "class.mc-tab-header_vertical": "vertical", "class.mc-tab-header__pagination-controls_enabled": "showPaginationControls", "class.mc-tab-header_rtl": "getLayoutDirection() == 'rtl'" }, classAttribute: "mc-tab-header" }, queries: [{ propertyName: "items", predicate: McTabLabelWrapper }], viewQueries: [{ propertyName: "tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"mc-tab-header__pagination mc-tab-header__pagination_before\"\n #previousPaginator\n [class.mc-disabled]=\"disableScrollBefore\"\n (click)=\"handlePaginatorClick('before')\"\n (mousedown)=\"handlePaginatorPress('before', $event)\"\n (touchend)=\"stopInterval()\">\n\n <i mc-icon=\"mc-angle-left-M_16\"></i>\n</div>\n\n<div class=\"mc-tab-header__content\"\n #tabListContainer\n (keydown)=\"handleKeydown($event)\">\n\n <div class=\"mc-tab-list\"\n #tabList\n (cdkObserveContent)=\"onContentChanges()\">\n <div class=\"mc-tab-list__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<div class=\"mc-tab-header__pagination mc-tab-header__pagination_after\"\n #nextPaginator\n [class.mc-disabled]=\"disableScrollAfter\"\n (mousedown)=\"handlePaginatorPress('after', $event)\"\n (click)=\"handlePaginatorClick('after')\"\n (touchend)=\"stopInterval()\">\n\n <i mc-icon=\"mc-angle-right-M_16\"></i>\n</div>\n", styles: [".mc-tab-label.cdk-keyboard-focused:after{display:block;content:\"\";position:absolute;top:0;right:calc(-1 * 1px);right:calc(-1 * var(--mc-tabs-size-border-width, 1px));bottom:calc(-1 * 1px);bottom:calc(-1 * var(--mc-tabs-size-border-width, 1px));left:calc(-1 * 1px);left:calc(-1 * var(--mc-tabs-size-border-width, 1px))}.mc-tab-label_horizontal.cdk-keyboard-focused:after,.mc-tab-label_old.cdk-keyboard-focused:after{border-width:calc(1px * 2);border-width:calc(var(--mc-tabs-size-border-width, 1px) * 2);border-style:solid;border-top-left-radius:3px;border-top-left-radius:var(--mc-tabs-size-border-radius, 3px);border-top-right-radius:3px;border-top-right-radius:var(--mc-tabs-size-border-radius, 3px);border-bottom-color:transparent}.mc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mc-tab-list__content{display:flex}.mc-tab-group_align-labels-center .mc-tab-list__content{justify-content:center}.mc-tab-group_align-labels-end .mc-tab-list__content{justify-content:flex-end}.mc-tab-header_vertical .mc-tab-list__content{flex-direction:column}.mc-tab-header__pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none;padding-left:12px;padding-right:12px;border-bottom-style:solid;border-bottom-width:1px;border-bottom-width:var(--mc-tabs-size-border-width, 1px)}.mc-tab-header__pagination.mc-tab-header__pagination_before{border-right-style:solid;border-right-width:1px;border-right-width:var(--mc-tabs-size-border-width, 1px)}.mc-tab-header__pagination.mc-tab-header__pagination_after{border-left-style:solid;border-left-width:1px;border-left-width:var(--mc-tabs-size-border-width, 1px)}.mc-tab-header__pagination-controls_enabled .mc-tab-header__pagination{display:flex}.mc-tab-header__content{display:flex;flex-grow:1;z-index:1;overflow:hidden}.mc-tab-list{position:relative;width:100%;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mc-tab-label{position:relative;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;height:40px;height:var(--mc-tabs-size-height, 40px);text-align:center;white-space:nowrap;cursor:pointer;padding-right:16px;padding-right:var(--mc-tabs-size-padding-horizontal, 16px);padding-left:16px;padding-left:var(--mc-tabs-size-padding-horizontal, 16px);outline:none;-webkit-user-select:none;user-select:none}.mc-tab-label .mc-tab-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.mc-tab-label.mc-active{cursor:default}.mc-tab-label.mc-active:before{display:block;content:\"\";position:absolute}.mc-tab-label.mc-active[disabled] .mc-tab-overlay{bottom:-1px}.mc-tab-label.cdk-keyboard-focused{z-index:1}.mc-tab-label:first-child.cdk-keyboard-focused:after{left:0}.mc-tab-label:last-child.cdk-keyboard-focused:after{right:0}.mc-tab-label[disabled]{pointer-events:none}.mc-tab-label .mc-tab-label__content>.mc-icon.mc-icon_left{margin-right:8px;margin-right:var(--mc-tabs-size-label-icon-margin, 8px)}.mc-tab-label .mc-tab-label__content>.mc-icon.mc-icon_right{margin-left:8px;margin-left:var(--mc-tabs-size-label-icon-margin, 8px)}.mc-tab-label.mc-tab-label_vertical .mc-tab-label__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-tab-label_old{border-bottom-width:1px;border-bottom-width:var(--mc-tabs-size-border-width, 1px);border-bottom-style:solid;border-width:1px;border-width:var(--mc-tabs-size-border-width, 1px);border-style:solid;border-top-left-radius:3px;border-top-left-radius:var(--mc-tabs-size-border-radius, 3px);border-top-right-radius:3px;border-top-right-radius:var(--mc-tabs-size-border-radius, 3px);border-left:none;border-left-color:transparent;border-right:none;border-right-color:transparent}.mc-tab-label_old.mc-active{border-width:1px;border-width:var(--mc-tabs-size-border-width, 1px);border-style:solid;padding-right:calc(16px - 1px);padding-right:calc(var(--mc-tabs-size-padding-horizontal, 16px) - var(--mc-tabs-size-border-width, 1px));padding-left:calc(16px - 1px);padding-left:calc(var(--mc-tabs-size-padding-horizontal, 16px) - var(--mc-tabs-size-border-width, 1px))}.mc-tab-label_old.mc-active.cdk-keyboard-focused:after{right:calc(-2 * 1px);right:calc(-2 * var(--mc-tabs-size-border-width, 1px));left:calc(-2 * 1px);left:calc(-2 * var(--mc-tabs-size-border-width, 1px))}.mc-tab-label_old.cdk-keyboard-focused:after{top:-1px}.mc-tab-label_old .mc-tab-overlay{top:-1px;border-top-left-radius:3px;border-top-left-radius:var(--mc-tabs-size-border-radius, 3px);border-top-right-radius:3px;border-top-right-radius:var(--mc-tabs-size-border-radius, 3px)}.mc-tab-label_horizontal{border-bottom-width:1px;border-bottom-width:var(--mc-tabs-size-border-width, 1px);border-bottom-style:solid}.mc-tab-label_horizontal.mc-active:before{bottom:calc(-1 * 1px);bottom:calc(-1 * var(--mc-tabs-size-border-width, 1px));left:0;right:0;height:4px;height:var(--mc-tabs-size-highlight-height, 4px)}.mc-tab-label_vertical{justify-content:flex-start}.mc-tab-label_vertical.mc-active:before{top:0;bottom:0;left:calc(-1 * 1px);left:calc(-1 * var(--mc-tabs-size-border-width, 1px));width:5px;width:var(--mc-tabs-size-highlight-height, 5px)}.mc-tab-label_vertical.cdk-keyboard-focused:after{right:0;left:0;border-width:calc(1px * 2);border-width:calc(var(--mc-tabs-size-border-width, 1px) * 2);border-style:solid}.mc-tab-group_stretch-labels .mc-tab-label,.mc-tab-group_stretch-labels .mc-tab-label_old{flex-basis:0;flex-grow:1}\n"], components: [{ type: i4.McIcon, selector: "[mc-icon]", inputs: ["color"] }], directives: [{ type: i4.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
942
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabHeader, decorators: [{
|
789
943
|
type: Component,
|
790
944
|
args: [{
|
791
945
|
selector: 'mc-tab-header',
|
@@ -828,128 +982,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
828
982
|
args: ['previousPaginator']
|
829
983
|
}] } });
|
830
984
|
|
831
|
-
const MC_TAB_LABEL = new InjectionToken('McTabLabel');
|
832
|
-
/** Used to flag tab labels for use with the portal directive */
|
833
|
-
class McTabLabel extends CdkPortal {
|
834
|
-
}
|
835
|
-
/** @nocollapse */ McTabLabel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: McTabLabel, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
836
|
-
/** @nocollapse */ McTabLabel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.5", type: McTabLabel, selector: "[mc-tab-label], [mcTabLabel]", providers: [{ provide: MC_TAB_LABEL, useExisting: McTabLabel }], usesInheritance: true, ngImport: i0 });
|
837
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: McTabLabel, decorators: [{
|
838
|
-
type: Directive,
|
839
|
-
args: [{
|
840
|
-
selector: '[mc-tab-label], [mcTabLabel]',
|
841
|
-
providers: [{ provide: MC_TAB_LABEL, useExisting: McTabLabel }]
|
842
|
-
}]
|
843
|
-
}] });
|
844
|
-
|
845
|
-
class McTabBase {
|
846
|
-
}
|
847
|
-
// tslint:disable-next-line:naming-convention
|
848
|
-
const McTabMixinBase = mixinDisabled(McTabBase);
|
849
|
-
class McTab extends McTabMixinBase {
|
850
|
-
constructor(viewContainerRef) {
|
851
|
-
super();
|
852
|
-
this.viewContainerRef = viewContainerRef;
|
853
|
-
/** Plain text label for the tab, used when there is no template label. */
|
854
|
-
this.textLabel = '';
|
855
|
-
this.empty = false;
|
856
|
-
this.tooltipTitle = '';
|
857
|
-
this.tooltipPlacement = '';
|
858
|
-
/** Emits whenever the internal state of the tab changes. */
|
859
|
-
this.stateChanges = new Subject();
|
860
|
-
/**
|
861
|
-
* The relatively indexed position where 0 represents the center, negative is left, and positive
|
862
|
-
* represents the right.
|
863
|
-
*/
|
864
|
-
this.position = null;
|
865
|
-
/**
|
866
|
-
* The initial relatively index origin of the tab if it was created and selected after there
|
867
|
-
* was already a selected tab. Provides context of what position the tab should originate from.
|
868
|
-
*/
|
869
|
-
this.origin = null;
|
870
|
-
/**
|
871
|
-
* Whether the tab is currently active.
|
872
|
-
*/
|
873
|
-
this.isActive = false;
|
874
|
-
/** Portal that will be the hosted content of the tab */
|
875
|
-
this.contentPortal = null;
|
876
|
-
}
|
877
|
-
/** @docs-private */
|
878
|
-
get content() {
|
879
|
-
return this.contentPortal;
|
880
|
-
}
|
881
|
-
get templateLabel() { return this._templateLabel; }
|
882
|
-
set templateLabel(value) { this.setTemplateLabelInput(value); }
|
883
|
-
ngOnChanges(changes) {
|
884
|
-
if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {
|
885
|
-
this.stateChanges.next();
|
886
|
-
}
|
887
|
-
}
|
888
|
-
ngOnDestroy() {
|
889
|
-
this.stateChanges.complete();
|
890
|
-
}
|
891
|
-
ngOnInit() {
|
892
|
-
this.contentPortal = new TemplatePortal(this.explicitContent || this.implicitContent, this.viewContainerRef);
|
893
|
-
}
|
894
|
-
/**
|
895
|
-
* This has been extracted to a util because of TS 4 and VE.
|
896
|
-
* View Engine doesn't support property rename inheritance.
|
897
|
-
* TS 4.0 doesn't allow properties to override accessors or vice-versa.
|
898
|
-
* @docs-private
|
899
|
-
*/
|
900
|
-
setTemplateLabelInput(value) {
|
901
|
-
// Only update the templateLabel via query if there is actually
|
902
|
-
// a McTabLabel found. This works around an issue where a user may have
|
903
|
-
// manually set `templateLabel` during creation mode, which would then get clobbered
|
904
|
-
// by `undefined` when this query resolves.
|
905
|
-
if (value) {
|
906
|
-
this._templateLabel = value;
|
907
|
-
}
|
908
|
-
}
|
909
|
-
}
|
910
|
-
/** @nocollapse */ McTab.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: McTab, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
911
|
-
/** @nocollapse */ McTab.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: McTab, selector: "mc-tab", inputs: { disabled: "disabled", textLabel: ["label", "textLabel"], empty: "empty", tooltipTitle: "tooltipTitle", tooltipPlacement: "tooltipPlacement", tabId: "tabId" }, queries: [{ propertyName: "templateLabel", first: true, predicate: MC_TAB_LABEL, descendants: true }, { propertyName: "explicitContent", first: true, predicate: McTabContent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["mcTab"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-template><ng-content></ng-content></ng-template>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
912
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: McTab, decorators: [{
|
913
|
-
type: Component,
|
914
|
-
args: [{
|
915
|
-
selector: 'mc-tab',
|
916
|
-
exportAs: 'mcTab',
|
917
|
-
// Create a template for the content of the <mc-tab> so that we can grab a reference to this
|
918
|
-
// TemplateRef and use it in a Portal to render the tab content in the appropriate place in the
|
919
|
-
// tab-group.
|
920
|
-
template: '<ng-template><ng-content></ng-content></ng-template>',
|
921
|
-
inputs: ['disabled'],
|
922
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
923
|
-
encapsulation: ViewEncapsulation.None
|
924
|
-
}]
|
925
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { templateLabel: [{
|
926
|
-
type: ContentChild,
|
927
|
-
args: [MC_TAB_LABEL]
|
928
|
-
}], explicitContent: [{
|
929
|
-
type: ContentChild,
|
930
|
-
args: [McTabContent, { read: TemplateRef, static: true }]
|
931
|
-
}], implicitContent: [{
|
932
|
-
type: ViewChild,
|
933
|
-
args: [TemplateRef, { static: true }]
|
934
|
-
}], textLabel: [{
|
935
|
-
type: Input,
|
936
|
-
args: ['label']
|
937
|
-
}], empty: [{
|
938
|
-
type: Input
|
939
|
-
}], tooltipTitle: [{
|
940
|
-
type: Input
|
941
|
-
}], tooltipPlacement: [{
|
942
|
-
type: Input
|
943
|
-
}], tabId: [{
|
944
|
-
type: Input,
|
945
|
-
args: ['tabId']
|
946
|
-
}] } });
|
947
|
-
|
948
985
|
class McOldTabsCssStyler {
|
949
986
|
}
|
950
|
-
/** @nocollapse */ McOldTabsCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
951
|
-
/** @nocollapse */ McOldTabsCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
952
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
987
|
+
/** @nocollapse */ McOldTabsCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McOldTabsCssStyler, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
988
|
+
/** @nocollapse */ McOldTabsCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McOldTabsCssStyler, selector: "mc-tab-group[mc-old-tabs]", host: { classAttribute: "mc-tab-group_old" }, ngImport: i0 });
|
989
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McOldTabsCssStyler, decorators: [{
|
953
990
|
type: Directive,
|
954
991
|
args: [{
|
955
992
|
selector: 'mc-tab-group[mc-old-tabs]',
|
@@ -958,9 +995,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
958
995
|
}] });
|
959
996
|
class McAlignTabsCenterCssStyler {
|
960
997
|
}
|
961
|
-
/** @nocollapse */ McAlignTabsCenterCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
962
|
-
/** @nocollapse */ McAlignTabsCenterCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
963
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
998
|
+
/** @nocollapse */ McAlignTabsCenterCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McAlignTabsCenterCssStyler, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
999
|
+
/** @nocollapse */ McAlignTabsCenterCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McAlignTabsCenterCssStyler, selector: "mc-tab-group[mc-align-tabs-center], [mc-tab-nav-bar][mc-align-tabs-center]", host: { classAttribute: "mc-tab-group_align-labels-center" }, ngImport: i0 });
|
1000
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McAlignTabsCenterCssStyler, decorators: [{
|
964
1001
|
type: Directive,
|
965
1002
|
args: [{
|
966
1003
|
selector: 'mc-tab-group[mc-align-tabs-center], [mc-tab-nav-bar][mc-align-tabs-center]',
|
@@ -969,9 +1006,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
969
1006
|
}] });
|
970
1007
|
class McAlignTabsEndCssStyler {
|
971
1008
|
}
|
972
|
-
/** @nocollapse */ McAlignTabsEndCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
973
|
-
/** @nocollapse */ McAlignTabsEndCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
974
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
1009
|
+
/** @nocollapse */ McAlignTabsEndCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McAlignTabsEndCssStyler, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
1010
|
+
/** @nocollapse */ McAlignTabsEndCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McAlignTabsEndCssStyler, selector: "mc-tab-group[mc-align-tabs-end], [mc-tab-nav-bar][mc-align-tabs-end]", host: { classAttribute: "mc-tab-group_align-labels-end" }, ngImport: i0 });
|
1011
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McAlignTabsEndCssStyler, decorators: [{
|
975
1012
|
type: Directive,
|
976
1013
|
args: [{
|
977
1014
|
selector: 'mc-tab-group[mc-align-tabs-end], [mc-tab-nav-bar][mc-align-tabs-end]',
|
@@ -980,9 +1017,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
980
1017
|
}] });
|
981
1018
|
class McStretchTabsCssStyler {
|
982
1019
|
}
|
983
|
-
/** @nocollapse */ McStretchTabsCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
984
|
-
/** @nocollapse */ McStretchTabsCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
985
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
1020
|
+
/** @nocollapse */ McStretchTabsCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McStretchTabsCssStyler, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
1021
|
+
/** @nocollapse */ McStretchTabsCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McStretchTabsCssStyler, selector: "mc-tab-group[mc-stretch-tabs], [mc-tab-nav-bar][mc-stretch-tabs]", host: { classAttribute: "mc-tab-group_stretch-labels" }, ngImport: i0 });
|
1022
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McStretchTabsCssStyler, decorators: [{
|
986
1023
|
type: Directive,
|
987
1024
|
args: [{
|
988
1025
|
selector: 'mc-tab-group[mc-stretch-tabs], [mc-tab-nav-bar][mc-stretch-tabs]',
|
@@ -991,9 +1028,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
991
1028
|
}] });
|
992
1029
|
class McVerticalTabsCssStyler {
|
993
1030
|
}
|
994
|
-
/** @nocollapse */ McVerticalTabsCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
995
|
-
/** @nocollapse */ McVerticalTabsCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
996
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
1031
|
+
/** @nocollapse */ McVerticalTabsCssStyler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McVerticalTabsCssStyler, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
1032
|
+
/** @nocollapse */ McVerticalTabsCssStyler.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: McVerticalTabsCssStyler, selector: "mc-tab-group[vertical], [mc-tab-nav-bar][vertical]", host: { classAttribute: "mc-tab-group_vertical" }, ngImport: i0 });
|
1033
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McVerticalTabsCssStyler, decorators: [{
|
997
1034
|
type: Directive,
|
998
1035
|
args: [{
|
999
1036
|
selector: 'mc-tab-group[vertical], [mc-tab-nav-bar][vertical]',
|
@@ -1025,6 +1062,9 @@ class McTabGroup extends McTabGroupMixinBase {
|
|
1025
1062
|
constructor(elementRef, changeDetectorRef, lightTabs, vertical, defaultConfig) {
|
1026
1063
|
super(elementRef);
|
1027
1064
|
this.changeDetectorRef = changeDetectorRef;
|
1065
|
+
this.resizeStream = new Subject();
|
1066
|
+
this._dynamicHeight = false;
|
1067
|
+
this._selectedIndex = null;
|
1028
1068
|
/** Position of the tab header. */
|
1029
1069
|
this.headerPosition = 'above';
|
1030
1070
|
/** Output to enable support for two-way binding on `[(selectedIndex)]` */
|
@@ -1043,20 +1083,29 @@ class McTabGroup extends McTabGroupMixinBase {
|
|
1043
1083
|
this.tabsSubscription = Subscription.EMPTY;
|
1044
1084
|
/** Subscription to changes in the tab labels. */
|
1045
1085
|
this.tabLabelSubscription = Subscription.EMPTY;
|
1046
|
-
this.
|
1047
|
-
this.
|
1086
|
+
this.resizeSubscription = Subscription.EMPTY;
|
1087
|
+
this.resizeDebounceInterval = 100;
|
1088
|
+
this.checkOverflow = () => {
|
1089
|
+
this.tabHeader.items
|
1090
|
+
.forEach((headerTab) => headerTab.checkOverflow());
|
1091
|
+
};
|
1048
1092
|
this.oldTab = coerceBooleanProperty(lightTabs);
|
1049
1093
|
this.vertical = coerceBooleanProperty(vertical);
|
1050
1094
|
this.groupId = nextId++;
|
1051
1095
|
this.animationDuration = (defaultConfig === null || defaultConfig === void 0 ? void 0 : defaultConfig.animationDuration) || '0ms';
|
1096
|
+
this.subscribeToResize();
|
1052
1097
|
}
|
1053
1098
|
/** Whether the tab group should grow to the size of the active tab. */
|
1054
|
-
get dynamicHeight() {
|
1099
|
+
get dynamicHeight() {
|
1100
|
+
return this._dynamicHeight;
|
1101
|
+
}
|
1055
1102
|
set dynamicHeight(value) {
|
1056
1103
|
this._dynamicHeight = coerceBooleanProperty(value);
|
1057
1104
|
}
|
1058
1105
|
/** The index of the active tab. */
|
1059
|
-
get selectedIndex() {
|
1106
|
+
get selectedIndex() {
|
1107
|
+
return this._selectedIndex;
|
1108
|
+
}
|
1060
1109
|
set selectedIndex(value) {
|
1061
1110
|
this.indexToSelect = coerceNumberProperty(value, null);
|
1062
1111
|
}
|
@@ -1104,7 +1153,8 @@ class McTabGroup extends McTabGroupMixinBase {
|
|
1104
1153
|
this.subscribeToTabLabels();
|
1105
1154
|
// Subscribe to changes in the amount of tabs, in order to be
|
1106
1155
|
// able to re-render the content as new tabs are added or removed.
|
1107
|
-
this.tabsSubscription = this.tabs.changes
|
1156
|
+
this.tabsSubscription = this.tabs.changes
|
1157
|
+
.subscribe(() => {
|
1108
1158
|
const indexToSelect = this.clampTabIndex(this.indexToSelect);
|
1109
1159
|
// Maintain the previously-selected tab if a new tab is added or removed and there is no
|
1110
1160
|
// explicit change that selects a different tab.
|
@@ -1124,9 +1174,13 @@ class McTabGroup extends McTabGroupMixinBase {
|
|
1124
1174
|
this.changeDetectorRef.markForCheck();
|
1125
1175
|
});
|
1126
1176
|
}
|
1177
|
+
ngAfterViewInit() {
|
1178
|
+
this.checkOverflow();
|
1179
|
+
}
|
1127
1180
|
ngOnDestroy() {
|
1128
1181
|
this.tabsSubscription.unsubscribe();
|
1129
1182
|
this.tabLabelSubscription.unsubscribe();
|
1183
|
+
this.resizeSubscription.unsubscribe();
|
1130
1184
|
}
|
1131
1185
|
focusChanged(index) {
|
1132
1186
|
this.focusChange.emit(this.createChangeEvent(index));
|
@@ -1196,6 +1250,17 @@ class McTabGroup extends McTabGroupMixinBase {
|
|
1196
1250
|
this.tabLabelSubscription = merge(...this.tabs.map((tab) => tab.stateChanges))
|
1197
1251
|
.subscribe(() => this.changeDetectorRef.markForCheck());
|
1198
1252
|
}
|
1253
|
+
subscribeToResize() {
|
1254
|
+
if (!this.vertical) {
|
1255
|
+
return;
|
1256
|
+
}
|
1257
|
+
if (this.resizeSubscription) {
|
1258
|
+
this.resizeSubscription.unsubscribe();
|
1259
|
+
}
|
1260
|
+
this.resizeSubscription = this.resizeStream
|
1261
|
+
.pipe(debounceTime(this.resizeDebounceInterval))
|
1262
|
+
.subscribe(this.checkOverflow);
|
1263
|
+
}
|
1199
1264
|
/** Clamps the given index to the bounds of 0 and the tabs length. */
|
1200
1265
|
clampTabIndex(index) {
|
1201
1266
|
// Note the `|| 0`, which ensures that values like NaN can't get through
|
@@ -1204,9 +1269,9 @@ class McTabGroup extends McTabGroupMixinBase {
|
|
1204
1269
|
return Math.min(this.tabs.length - 1, Math.max(index || 0, 0));
|
1205
1270
|
}
|
1206
1271
|
}
|
1207
|
-
/** @nocollapse */ McTabGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
1208
|
-
/** @nocollapse */ McTabGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
1209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
1272
|
+
/** @nocollapse */ McTabGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabGroup, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: 'mc-old-tabs', attribute: true }, { token: 'vertical', attribute: true }, { token: MC_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
1273
|
+
/** @nocollapse */ McTabGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McTabGroup, selector: "mc-tab-group", inputs: { disabled: "disabled", dynamicHeight: "dynamicHeight", selectedIndex: "selectedIndex", headerPosition: "headerPosition", animationDuration: "animationDuration" }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", animationDone: "animationDone", selectedTabChange: "selectedTabChange" }, host: { listeners: { "window:resize": "resizeStream.next()" }, properties: { "class.mc-tab-group_dynamic-height": "dynamicHeight", "class.mc-tab-group_inverted-header": "headerPosition === \"below\"" }, classAttribute: "mc-tab-group" }, queries: [{ propertyName: "tabs", predicate: McTab }], viewQueries: [{ propertyName: "tabBodyWrapper", first: true, predicate: ["tabBodyWrapper"], descendants: true }, { propertyName: "tabHeader", first: true, predicate: ["tabHeader"], descendants: true }], exportAs: ["mcTabGroup"], usesInheritance: true, ngImport: i0, template: "<mc-tab-header\n #tabHeader\n [vertical]=\"vertical\"\n [selectedIndex]=\"selectedIndex\"\n (indexFocused)=\"focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n <div class=\"mc-tab-label\"\n mcTabLabelWrapper\n cdkMonitorElementFocus\n [attr.tabindex]=\"getTabIndex(tab, i)\"\n [class.mc-tab-label_old]=\"oldTab\"\n [class.mc-tab-label_horizontal]=\"!vertical && !oldTab\"\n [class.mc-tab-label_vertical]=\"vertical && !oldTab\"\n [class.mc-tab-label_empty]=\"tab.empty\"\n [class.mc-active]=\"selectedIndex == i\"\n *ngFor=\"let tab of tabs; let i = index\"\n [tab]=\"tab\"\n [id]=\"getTabLabelId(i)\"\n [disabled]=\"tab.disabled\"\n (click)=\"handleClick(tab, tabHeader, i)\"\n\n [mcTooltip]=\"tab.tooltipTitle\"\n [mcTooltipDisabled]=\"!tab.empty && !tab.isOverflown\"\n [mcTrigger]=\"'hover, focus'\"\n [mcPlacement]=\"tab.tooltipPlacement\">\n\n <div #labelContent class=\"mc-tab-label__content\"\n [class.mc-tab-label__template]=\"tab.templateLabel\">\n <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template [ngIf]=\"!tab.templateLabel\">{{ tab.textLabel }}</ng-template>\n </div>\n\n <div class=\"mc-tab-overlay\"></div>\n </div>\n</mc-tab-header>\n\n<div class=\"mc-tab-body__wrapper\" #tabBodyWrapper>\n <mc-tab-body\n *ngFor=\"let tab of tabs; let i = index\"\n [id]=\"getTabContentId(i)\"\n [class.mc-tab-body__active]=\"selectedIndex == i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin!\"\n [animationDuration]=\"animationDuration\"\n (onCentered)=\"removeTabBodyWrapperHeight()\"\n (onCentering)=\"setTabBodyWrapperHeight($event)\">\n </mc-tab-body>\n</div>\n", styles: [".mc-tab-group{display:flex;flex-direction:column;box-sizing:border-box;text-align:center;white-space:nowrap}.mc-tab-group.mc-tab-group_inverted-header{flex-direction:column-reverse}.mc-tab-group_vertical{flex-direction:row}.mc-tab-group_vertical .mc-tab-header__content{overflow-y:auto;padding-top:8px;padding-bottom:1px;border-right-width:1px;border-right-width:var(--mc-tabs-size-border-width, 1px);border-right-style:solid}.mc-tab-body__wrapper{display:flex;overflow:hidden;position:relative}.mc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;flex-basis:100%}.mc-tab-body.mc-tab-body__active{overflow-x:hidden;overflow-y:auto;position:relative;z-index:1;flex-grow:1}.mc-tab-group.mc-tab-group_dynamic-height .mc-tab-body.mc-tab-body__active{overflow-y:hidden}\n"], components: [{ type: McTabHeader, selector: "mc-tab-header", inputs: ["selectedIndex", "vertical"], outputs: ["selectFocusedIndex", "indexFocused"] }, { type: McTabBody, selector: "mc-tab-body", inputs: ["position", "content", "origin", "animationDuration"], outputs: ["onCentering", "beforeCentering", "afterLeavingCenter", "onCentered"] }], directives: [{ type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: McTabLabelWrapper, selector: "[mcTabLabelWrapper]", inputs: ["disabled", "tab"] }, { type: i1$1.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"] }, { type: i6.McTooltipTrigger, selector: "[mcTooltip]", inputs: ["mcVisible", "mcPlacement", "mcPlacementPriority", "mcTooltip", "mcTooltipDisabled", "mcEnterDelay", "mcLeaveDelay", "mcTrigger", "mcTooltipClass"], outputs: ["mcPlacementChange", "mcVisibleChange"], exportAs: ["mcTooltip"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
1274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabGroup, decorators: [{
|
1210
1275
|
type: Component,
|
1211
1276
|
args: [{
|
1212
1277
|
selector: 'mc-tab-group',
|
@@ -1219,7 +1284,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
1219
1284
|
host: {
|
1220
1285
|
class: 'mc-tab-group',
|
1221
1286
|
'[class.mc-tab-group_dynamic-height]': 'dynamicHeight',
|
1222
|
-
'[class.mc-tab-group_inverted-header]': 'headerPosition === "below"'
|
1287
|
+
'[class.mc-tab-group_inverted-header]': 'headerPosition === "below"',
|
1288
|
+
'(window:resize)': 'resizeStream.next()'
|
1223
1289
|
}
|
1224
1290
|
}]
|
1225
1291
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
@@ -1312,9 +1378,9 @@ class McTabLink extends McTabLinkMixinBase {
|
|
1312
1378
|
}
|
1313
1379
|
}
|
1314
1380
|
}
|
1315
|
-
/** @nocollapse */ McTabLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
1316
|
-
/** @nocollapse */ McTabLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
1317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
1381
|
+
/** @nocollapse */ McTabLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabLink, deps: [{ token: i0.ElementRef }, { token: i1$1.FocusMonitor }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
1382
|
+
/** @nocollapse */ McTabLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McTabLink, selector: "a[mc-tab-link], a[mcTabLink]", inputs: { disabled: "disabled", tabIndex: "tabIndex", active: "active" }, host: { properties: { "class.mc-active": "active", "class.mc-tab-label_vertical": "vertical", "class.mc-tab-label_horizontal": "!vertical", "attr.tabindex": "tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-tab-link" }, exportAs: ["mcTabLink"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content><div class="mc-tab-overlay"></div>', isInline: true });
|
1383
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabLink, decorators: [{
|
1318
1384
|
type: Component,
|
1319
1385
|
args: [{
|
1320
1386
|
selector: 'a[mc-tab-link], a[mcTabLink]',
|
@@ -1348,9 +1414,9 @@ class McTabNav {
|
|
1348
1414
|
this.links.notifyOnChanges();
|
1349
1415
|
}
|
1350
1416
|
}
|
1351
|
-
/** @nocollapse */ McTabNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
1352
|
-
/** @nocollapse */ McTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
1353
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
1417
|
+
/** @nocollapse */ McTabNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabNav, deps: [{ token: 'vertical', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
|
1418
|
+
/** @nocollapse */ McTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: McTabNav, selector: "[mc-tab-nav-bar]", host: { classAttribute: "mc-tab-nav-bar" }, queries: [{ propertyName: "links", predicate: McTabLink }], exportAs: ["mcTabNavBar", "mcTabNav"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".mc-tab-link.cdk-keyboard-focused:after{display:block;content:\"\";position:absolute;top:0;right:calc(-1 * 1px);right:calc(-1 * var(--mc-tabs-size-border-width, 1px));bottom:calc(-1 * 1px);bottom:calc(-1 * var(--mc-tabs-size-border-width, 1px));left:calc(-1 * 1px);left:calc(-1 * var(--mc-tabs-size-border-width, 1px))}.mc-tab-link{vertical-align:top;text-decoration:none;-webkit-tap-highlight-color:transparent;position:relative;box-sizing:border-box;display:inline-flex;justify-content:center;align-items:center;height:40px;height:var(--mc-tabs-size-height, 40px);text-align:center;white-space:nowrap;cursor:pointer;padding-right:16px;padding-right:var(--mc-tabs-size-padding-horizontal, 16px);padding-left:16px;padding-left:var(--mc-tabs-size-padding-horizontal, 16px);outline:none}.mc-tab-link .mc-tab-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.mc-tab-link.mc-active{cursor:default}.mc-tab-link.mc-active:before{display:block;content:\"\";position:absolute}.mc-tab-link.mc-active[disabled] .mc-tab-overlay{bottom:-1px}.mc-tab-link.cdk-keyboard-focused{z-index:1}.mc-tab-link:first-child.cdk-keyboard-focused:after{left:0}.mc-tab-link:last-child.cdk-keyboard-focused:after{right:0}.mc-tab-link[disabled]{pointer-events:none}.mc-tab-link .mc-tab-label__content>.mc-icon.mc-icon_left{margin-right:8px;margin-right:var(--mc-tabs-size-label-icon-margin, 8px)}.mc-tab-link .mc-tab-label__content>.mc-icon.mc-icon_right{margin-left:8px;margin-left:var(--mc-tabs-size-label-icon-margin, 8px)}.mc-tab-link.mc-tab-label_vertical .mc-tab-label__content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-tab-link .mc-tab-group_stretch-labels .mc-tab-link{flex-basis:0;flex-grow:1}.mc-tab-link>.mc-icon.mc-icon_left{margin-right:8px;margin-right:var(--mc-tabs-size-label-icon-margin, 8px)}.mc-tab-link>.mc-icon.mc-icon_right{margin-left:8px;margin-left:var(--mc-tabs-size-label-icon-margin, 8px)}.mc-tab-nav-bar{display:flex;flex-grow:1;position:relative;padding:1px 1px 0}.mc-tab-nav-bar .mc-tab-group_align-labels-center{justify-content:center}.mc-tab-nav-bar .mc-tab-group_align-labels-end{justify-content:flex-end}.mc-tab-nav-bar.mc-tab-group_vertical{flex-direction:column;flex-grow:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
1419
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabNav, decorators: [{
|
1354
1420
|
type: Component,
|
1355
1421
|
args: [{
|
1356
1422
|
selector: '[mc-tab-nav-bar]',
|
@@ -1373,8 +1439,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
1373
1439
|
|
1374
1440
|
class McTabsModule {
|
1375
1441
|
}
|
1376
|
-
/** @nocollapse */ McTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
1377
|
-
/** @nocollapse */ McTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
1442
|
+
/** @nocollapse */ McTabsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
1443
|
+
/** @nocollapse */ McTabsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabsModule, declarations: [McTabGroup,
|
1378
1444
|
McTabLabel,
|
1379
1445
|
McTab,
|
1380
1446
|
McTabLabelWrapper,
|
@@ -1405,7 +1471,7 @@ class McTabsModule {
|
|
1405
1471
|
McAlignTabsEndCssStyler,
|
1406
1472
|
McStretchTabsCssStyler,
|
1407
1473
|
McVerticalTabsCssStyler] });
|
1408
|
-
/** @nocollapse */ McTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
1474
|
+
/** @nocollapse */ McTabsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabsModule, imports: [[
|
1409
1475
|
CommonModule,
|
1410
1476
|
PortalModule,
|
1411
1477
|
A11yModule,
|
@@ -1413,7 +1479,7 @@ class McTabsModule {
|
|
1413
1479
|
McIconModule,
|
1414
1480
|
McToolTipModule
|
1415
1481
|
], McCommonModule] });
|
1416
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
1482
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: McTabsModule, decorators: [{
|
1417
1483
|
type: NgModule,
|
1418
1484
|
args: [{
|
1419
1485
|
imports: [
|