@angular/material 17.0.2 → 17.1.0-next.1
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/autocomplete/index.d.ts +14 -10
- package/badge/index.d.ts +5 -5
- package/bottom-sheet/index.d.ts +6 -6
- package/button/_fab-theme.scss +65 -32
- package/button/_icon-button-theme.scss +91 -54
- package/button/index.d.ts +13 -13
- package/button-toggle/index.d.ts +5 -5
- package/card/index.d.ts +18 -18
- package/card/testing/index.d.ts +1 -1
- package/checkbox/index.d.ts +7 -7
- package/chips/index.d.ts +103 -126
- package/core/index.d.ts +51 -32
- package/core/tokens/m2/_index.scss +10 -0
- package/datepicker/index.d.ts +109 -109
- package/datepicker/testing/index.d.ts +1 -1
- package/dialog/index.d.ts +1 -1
- package/dialog/testing/index.d.ts +1 -1
- package/divider/index.d.ts +4 -4
- package/esm2022/autocomplete/autocomplete-origin.mjs +3 -2
- package/esm2022/autocomplete/autocomplete-trigger.mjs +11 -4
- package/esm2022/autocomplete/autocomplete.mjs +4 -4
- package/esm2022/autocomplete/module.mjs +21 -5
- package/esm2022/autocomplete/public-api.mjs +3 -1
- package/esm2022/badge/badge-module.mjs +3 -4
- package/esm2022/badge/badge.mjs +3 -2
- package/esm2022/bottom-sheet/bottom-sheet-container.mjs +4 -4
- package/esm2022/bottom-sheet/bottom-sheet-module.mjs +6 -5
- package/esm2022/bottom-sheet/bottom-sheet.mjs +3 -4
- package/esm2022/button/button.mjs +5 -5
- package/esm2022/button/fab.mjs +9 -9
- package/esm2022/button/icon-button.mjs +5 -5
- package/esm2022/button/module.mjs +14 -10
- package/esm2022/button-toggle/button-toggle-module.mjs +3 -4
- package/esm2022/button-toggle/button-toggle.mjs +6 -5
- package/esm2022/card/card.mjs +29 -18
- package/esm2022/card/module.mjs +4 -5
- package/esm2022/card/testing/card-harness.mjs +9 -1
- package/esm2022/checkbox/checkbox-required-validator.mjs +4 -2
- package/esm2022/checkbox/checkbox.mjs +31 -17
- package/esm2022/checkbox/module.mjs +5 -6
- package/esm2022/chips/chip-action.mjs +15 -13
- package/esm2022/chips/chip-edit-input.mjs +3 -2
- package/esm2022/chips/chip-grid.mjs +41 -40
- package/esm2022/chips/chip-icons.mjs +7 -4
- package/esm2022/chips/chip-input.mjs +15 -17
- package/esm2022/chips/chip-listbox.mjs +20 -23
- package/esm2022/chips/chip-option.mjs +13 -12
- package/esm2022/chips/chip-row.mjs +6 -7
- package/esm2022/chips/chip-set.mjs +20 -19
- package/esm2022/chips/chip.mjs +50 -44
- package/esm2022/chips/module.mjs +4 -5
- package/esm2022/chips/tokens.mjs +8 -2
- package/esm2022/core/common-behaviors/error-state.mjs +50 -11
- package/esm2022/core/common-behaviors/index.mjs +2 -2
- package/esm2022/core/line/line.mjs +5 -5
- package/esm2022/core/option/index.mjs +3 -4
- package/esm2022/core/option/optgroup.mjs +3 -3
- package/esm2022/core/option/option.mjs +7 -7
- package/esm2022/core/ripple/index.mjs +3 -4
- package/esm2022/core/ripple/ripple-ref.mjs +10 -2
- package/esm2022/core/ripple/ripple-renderer.mjs +11 -11
- package/esm2022/core/ripple/ripple.mjs +3 -2
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +3 -4
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +3 -3
- package/esm2022/core/version.mjs +1 -1
- package/esm2022/datepicker/calendar-body.mjs +4 -4
- package/esm2022/datepicker/calendar.mjs +8 -12
- package/esm2022/datepicker/date-range-input-parts.mjs +35 -14
- package/esm2022/datepicker/date-range-input.mjs +13 -13
- package/esm2022/datepicker/date-range-picker.mjs +3 -2
- package/esm2022/datepicker/datepicker-actions.mjs +7 -5
- package/esm2022/datepicker/datepicker-base.mjs +57 -62
- package/esm2022/datepicker/datepicker-input-base.mjs +8 -7
- package/esm2022/datepicker/datepicker-input.mjs +3 -2
- package/esm2022/datepicker/datepicker-module.mjs +15 -13
- package/esm2022/datepicker/datepicker-toggle.mjs +10 -10
- package/esm2022/datepicker/datepicker.mjs +3 -2
- package/esm2022/datepicker/month-view.mjs +3 -4
- package/esm2022/datepicker/multi-year-view.mjs +3 -4
- package/esm2022/datepicker/testing/calendar-harness.mjs +11 -4
- package/esm2022/datepicker/year-view.mjs +3 -4
- package/esm2022/dialog/dialog-container.mjs +5 -6
- package/esm2022/dialog/dialog-ref.mjs +10 -4
- package/esm2022/dialog/module.mjs +2 -2
- package/esm2022/dialog/testing/dialog-harness.mjs +11 -4
- package/esm2022/dialog/testing/dialog-opener.mjs +3 -3
- package/esm2022/dialog/testing/public-api.mjs +2 -2
- package/esm2022/divider/divider-module.mjs +3 -4
- package/esm2022/divider/divider.mjs +3 -3
- package/esm2022/expansion/accordion.mjs +8 -13
- package/esm2022/expansion/expansion-module.mjs +14 -7
- package/esm2022/expansion/expansion-panel-content.mjs +3 -2
- package/esm2022/expansion/expansion-panel-header.mjs +18 -16
- package/esm2022/expansion/expansion-panel.mjs +11 -11
- package/esm2022/expansion/testing/expansion-harness.mjs +14 -6
- package/esm2022/form-field/directives/error.mjs +3 -2
- package/esm2022/form-field/directives/floating-label.mjs +3 -2
- package/esm2022/form-field/directives/hint.mjs +3 -2
- package/esm2022/form-field/directives/label.mjs +3 -2
- package/esm2022/form-field/directives/line-ripple.mjs +3 -2
- package/esm2022/form-field/directives/notched-outline.mjs +3 -3
- package/esm2022/form-field/directives/prefix.mjs +3 -2
- package/esm2022/form-field/directives/suffix.mjs +3 -2
- package/esm2022/form-field/form-field.mjs +12 -11
- package/esm2022/form-field/module.mjs +14 -16
- package/esm2022/grid-list/grid-list-module.mjs +13 -9
- package/esm2022/grid-list/grid-list.mjs +3 -3
- package/esm2022/grid-list/grid-tile.mjs +11 -8
- package/esm2022/grid-list/testing/grid-tile-harness.mjs +9 -3
- package/esm2022/grid-list/tile-coordinator.mjs +1 -1
- package/esm2022/icon/icon-module.mjs +3 -4
- package/esm2022/icon/icon.mjs +25 -29
- package/esm2022/icon/testing/icon-harness-filters.mjs +7 -2
- package/esm2022/icon/testing/icon-harness.mjs +4 -3
- package/esm2022/input/input.mjs +26 -28
- package/esm2022/input/module.mjs +3 -4
- package/esm2022/input/public-api.mjs +3 -1
- package/esm2022/list/action-list.mjs +3 -3
- package/esm2022/list/list-base.mjs +5 -3
- package/esm2022/list/list-item-sections.mjs +13 -7
- package/esm2022/list/list-module.mjs +12 -13
- package/esm2022/list/list-option.mjs +6 -6
- package/esm2022/list/list.mjs +6 -6
- package/esm2022/list/nav-list.mjs +3 -3
- package/esm2022/list/selection-list.mjs +3 -3
- package/esm2022/list/subheader.mjs +3 -2
- package/esm2022/list/testing/list-item-harness-base.mjs +18 -6
- package/esm2022/list/testing/public-api.mjs +2 -2
- package/esm2022/menu/menu-content.mjs +3 -2
- package/esm2022/menu/menu-item.mjs +4 -4
- package/esm2022/menu/menu-trigger.mjs +10 -3
- package/esm2022/menu/menu.mjs +4 -4
- package/esm2022/menu/module.mjs +23 -5
- package/esm2022/paginator/module.mjs +4 -5
- package/esm2022/paginator/paginator.mjs +37 -41
- package/esm2022/progress-bar/module.mjs +3 -3
- package/esm2022/progress-bar/progress-bar.mjs +25 -20
- package/esm2022/progress-spinner/module.mjs +3 -4
- package/esm2022/progress-spinner/progress-spinner.mjs +35 -34
- package/esm2022/radio/module.mjs +3 -4
- package/esm2022/radio/radio.mjs +42 -35
- package/esm2022/select/module.mjs +19 -5
- package/esm2022/select/public-api.mjs +5 -1
- package/esm2022/select/select.mjs +83 -66
- package/esm2022/sidenav/drawer.mjs +7 -6
- package/esm2022/sidenav/sidenav-module.mjs +12 -8
- package/esm2022/sidenav/sidenav.mjs +7 -6
- package/esm2022/slide-toggle/module.mjs +15 -7
- package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +3 -2
- package/esm2022/slide-toggle/slide-toggle.mjs +4 -4
- package/esm2022/slider/module.mjs +17 -5
- package/esm2022/slider/slider-input.mjs +26 -23
- package/esm2022/slider/slider-interface.mjs +16 -1
- package/esm2022/slider/slider-thumb.mjs +8 -9
- package/esm2022/slider/slider.mjs +74 -73
- package/esm2022/slider/testing/slider-harness-filters.mjs +7 -2
- package/esm2022/slider/testing/slider-harness.mjs +4 -3
- package/esm2022/slider/testing/slider-thumb-harness.mjs +3 -2
- package/esm2022/snack-bar/module.mjs +2 -2
- package/esm2022/snack-bar/simple-snack-bar.mjs +4 -6
- package/esm2022/snack-bar/snack-bar-container.mjs +5 -6
- package/esm2022/snack-bar/snack-bar-ref.mjs +1 -1
- package/esm2022/sort/sort-header.mjs +17 -25
- package/esm2022/sort/sort-module.mjs +3 -4
- package/esm2022/sort/sort.mjs +13 -19
- package/esm2022/stepper/step-content.mjs +3 -2
- package/esm2022/stepper/step-header.mjs +11 -16
- package/esm2022/stepper/step-label.mjs +3 -2
- package/esm2022/stepper/stepper-button.mjs +5 -3
- package/esm2022/stepper/stepper-icon.mjs +3 -2
- package/esm2022/stepper/stepper-module.mjs +14 -13
- package/esm2022/stepper/stepper.mjs +11 -13
- package/esm2022/stepper/testing/step-harness-filters.mjs +7 -2
- package/esm2022/stepper/testing/stepper-harness.mjs +4 -3
- package/esm2022/table/cell.mjs +15 -8
- package/esm2022/table/module.mjs +4 -5
- package/esm2022/table/row.mjs +19 -10
- package/esm2022/table/table.mjs +7 -7
- package/esm2022/table/text-column.mjs +6 -4
- package/esm2022/tabs/module.mjs +8 -41
- package/esm2022/tabs/paginated-tab-header.mjs +12 -18
- package/esm2022/tabs/tab-body.mjs +6 -4
- package/esm2022/tabs/tab-content.mjs +3 -2
- package/esm2022/tabs/tab-group.mjs +69 -78
- package/esm2022/tabs/tab-header.mjs +10 -16
- package/esm2022/tabs/tab-label-wrapper.mjs +13 -8
- package/esm2022/tabs/tab-label.mjs +3 -2
- package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +51 -45
- package/esm2022/tabs/tab.mjs +12 -12
- package/esm2022/toolbar/testing/toolbar-harness.mjs +7 -2
- package/esm2022/toolbar/toolbar-module.mjs +3 -4
- package/esm2022/toolbar/toolbar.mjs +14 -18
- package/esm2022/tooltip/module.mjs +3 -4
- package/esm2022/tooltip/tooltip.mjs +14 -8
- package/esm2022/tree/node.mjs +24 -21
- package/esm2022/tree/outlet.mjs +3 -2
- package/esm2022/tree/padding.mjs +12 -4
- package/esm2022/tree/toggle.mjs +3 -2
- package/esm2022/tree/tree-module.mjs +4 -5
- package/esm2022/tree/tree.mjs +3 -4
- package/expansion/_expansion-theme.scss +56 -22
- package/expansion/index.d.ts +25 -33
- package/expansion/testing/index.d.ts +1 -1
- package/fesm2022/autocomplete.mjs +39 -15
- package/fesm2022/autocomplete.mjs.map +1 -1
- package/fesm2022/badge.mjs +4 -4
- package/fesm2022/badge.mjs.map +1 -1
- package/fesm2022/bottom-sheet.mjs +21 -22
- package/fesm2022/bottom-sheet.mjs.map +1 -1
- package/fesm2022/button-toggle.mjs +7 -8
- package/fesm2022/button-toggle.mjs.map +1 -1
- package/fesm2022/button.mjs +29 -25
- package/fesm2022/button.mjs.map +1 -1
- package/fesm2022/card/testing.mjs +9 -1
- package/fesm2022/card/testing.mjs.map +1 -1
- package/fesm2022/card.mjs +31 -21
- package/fesm2022/card.mjs.map +1 -1
- package/fesm2022/checkbox.mjs +38 -23
- package/fesm2022/checkbox.mjs.map +1 -1
- package/fesm2022/chips.mjs +179 -156
- package/fesm2022/chips.mjs.map +1 -1
- package/fesm2022/core.mjs +87 -42
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/datepicker/testing.mjs +11 -4
- package/fesm2022/datepicker/testing.mjs.map +1 -1
- package/fesm2022/datepicker.mjs +183 -156
- package/fesm2022/datepicker.mjs.map +1 -1
- package/fesm2022/dialog/testing.mjs +13 -6
- package/fesm2022/dialog/testing.mjs.map +1 -1
- package/fesm2022/dialog.mjs +15 -10
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/divider.mjs +4 -5
- package/fesm2022/divider.mjs.map +1 -1
- package/fesm2022/expansion/testing.mjs +14 -6
- package/fesm2022/expansion/testing.mjs.map +1 -1
- package/fesm2022/expansion.mjs +51 -44
- package/fesm2022/expansion.mjs.map +1 -1
- package/fesm2022/form-field.mjs +38 -25
- package/fesm2022/form-field.mjs.map +1 -1
- package/fesm2022/grid-list/testing.mjs +9 -3
- package/fesm2022/grid-list/testing.mjs.map +1 -1
- package/fesm2022/grid-list.mjs +24 -17
- package/fesm2022/grid-list.mjs.map +1 -1
- package/fesm2022/icon/testing.mjs +10 -3
- package/fesm2022/icon/testing.mjs.map +1 -1
- package/fesm2022/icon.mjs +27 -31
- package/fesm2022/icon.mjs.map +1 -1
- package/fesm2022/input.mjs +28 -30
- package/fesm2022/input.mjs.map +1 -1
- package/fesm2022/list/testing.mjs +18 -6
- package/fesm2022/list/testing.mjs.map +1 -1
- package/fesm2022/list.mjs +44 -38
- package/fesm2022/list.mjs.map +1 -1
- package/fesm2022/menu.mjs +42 -18
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/paginator.mjs +39 -47
- package/fesm2022/paginator.mjs.map +1 -1
- package/fesm2022/progress-bar.mjs +27 -21
- package/fesm2022/progress-bar.mjs.map +1 -1
- package/fesm2022/progress-spinner.mjs +37 -37
- package/fesm2022/progress-spinner.mjs.map +1 -1
- package/fesm2022/radio.mjs +43 -37
- package/fesm2022/radio.mjs.map +1 -1
- package/fesm2022/select.mjs +102 -70
- package/fesm2022/select.mjs.map +1 -1
- package/fesm2022/sidenav.mjs +23 -17
- package/fesm2022/sidenav.mjs.map +1 -1
- package/fesm2022/slide-toggle.mjs +19 -11
- package/fesm2022/slide-toggle.mjs.map +1 -1
- package/fesm2022/slider/testing.mjs +11 -4
- package/fesm2022/slider/testing.mjs.map +1 -1
- package/fesm2022/slider.mjs +133 -102
- package/fesm2022/slider.mjs.map +1 -1
- package/fesm2022/snack-bar.mjs +13 -15
- package/fesm2022/snack-bar.mjs.map +1 -1
- package/fesm2022/sort.mjs +29 -42
- package/fesm2022/sort.mjs.map +1 -1
- package/fesm2022/stepper/testing.mjs +10 -3
- package/fesm2022/stepper/testing.mjs.map +1 -1
- package/fesm2022/stepper.mjs +42 -43
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/table.mjs +44 -26
- package/fesm2022/table.mjs.map +1 -1
- package/fesm2022/tabs.mjs +594 -621
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar/testing.mjs +7 -2
- package/fesm2022/toolbar/testing.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +16 -20
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tooltip.mjs +15 -10
- package/fesm2022/tooltip.mjs.map +1 -1
- package/fesm2022/tree.mjs +36 -30
- package/fesm2022/tree.mjs.map +1 -1
- package/form-field/index.d.ts +33 -45
- package/grid-list/index.d.ts +10 -10
- package/grid-list/testing/index.d.ts +1 -1
- package/icon/index.d.ts +14 -20
- package/icon/testing/index.d.ts +1 -1
- package/input/index.d.ts +33 -32
- package/list/index.d.ts +36 -36
- package/list/testing/index.d.ts +2 -2
- package/menu/index.d.ts +12 -12
- package/package.json +7 -7
- package/paginator/index.d.ts +21 -22
- package/prebuilt-themes/deeppurple-amber.css +1 -1
- package/prebuilt-themes/indigo-pink.css +1 -1
- package/prebuilt-themes/pink-bluegrey.css +1 -1
- package/prebuilt-themes/purple-green.css +1 -1
- package/progress-bar/index.d.ts +14 -17
- package/progress-spinner/index.d.ts +18 -19
- package/radio/index.d.ts +25 -27
- package/schematics/ng-add/index.js +2 -2
- package/schematics/ng-add/index.mjs +2 -2
- package/schematics/ng-generate/mdc-migration/index_bundled.js +11 -4
- package/schematics/ng-generate/mdc-migration/index_bundled.js.map +3 -3
- package/select/index.d.ts +66 -49
- package/sidenav/index.d.ts +11 -11
- package/slide-toggle/index.d.ts +6 -6
- package/slider/index.d.ts +38 -38
- package/slider/testing/index.d.ts +1 -1
- package/sort/index.d.ts +19 -24
- package/stepper/index.d.ts +33 -43
- package/stepper/testing/index.d.ts +1 -1
- package/table/index.d.ts +24 -24
- package/tabs/index.d.ts +75 -103
- package/toolbar/index.d.ts +10 -17
- package/toolbar/testing/index.d.ts +1 -1
- package/tooltip/index.d.ts +8 -8
- package/tree/index.d.ts +26 -28
package/fesm2022/tabs.mjs
CHANGED
|
@@ -1,250 +1,22 @@
|
|
|
1
|
-
import * as i1$1 from '@angular/common';
|
|
2
|
-
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
3
1
|
import * as i0 from '@angular/core';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import * as i5 from '@angular/cdk/observers';
|
|
10
|
-
import { ObserversModule } from '@angular/cdk/observers';
|
|
11
|
-
import * as i6 from '@angular/cdk/a11y';
|
|
12
|
-
import { FocusKeyManager, A11yModule } from '@angular/cdk/a11y';
|
|
13
|
-
import * as i2 from '@angular/cdk/bidi';
|
|
14
|
-
import { Subscription, Subject, fromEvent, of, merge, EMPTY, Observable, timer, BehaviorSubject } from 'rxjs';
|
|
15
|
-
import { startWith, distinctUntilChanged, takeUntil, take, switchMap, skip, filter } from 'rxjs/operators';
|
|
16
|
-
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
17
|
-
import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
2
|
+
import { InjectionToken, Directive, Inject, Optional, booleanAttribute, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ContentChild, ViewChild, numberAttribute, EventEmitter, ContentChildren, forwardRef, Output, QueryList, Attribute, NgModule } from '@angular/core';
|
|
3
|
+
import { MatRipple, MAT_RIPPLE_GLOBAL_OPTIONS, MatCommonModule } from '@angular/material/core';
|
|
4
|
+
import { CdkPortal, TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';
|
|
5
|
+
import { Subject, fromEvent, of, merge, EMPTY, Observable, timer, Subscription, BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';
|
|
18
7
|
import * as i1 from '@angular/cdk/scrolling';
|
|
8
|
+
import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
19
9
|
import * as i3 from '@angular/cdk/platform';
|
|
20
10
|
import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
|
|
21
|
-
import
|
|
11
|
+
import * as i2 from '@angular/cdk/bidi';
|
|
12
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
13
|
+
import * as i4 from '@angular/cdk/a11y';
|
|
14
|
+
import { FocusKeyManager, CdkMonitorFocus } from '@angular/cdk/a11y';
|
|
22
15
|
import { hasModifierKey, SPACE, ENTER } from '@angular/cdk/keycodes';
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
*/
|
|
28
|
-
const matTabsAnimations = {
|
|
29
|
-
/** Animation translates a tab along the X axis. */
|
|
30
|
-
translateTab: trigger('translateTab', [
|
|
31
|
-
// Transitions to `none` instead of 0, because some browsers might blur the content.
|
|
32
|
-
state('center, void, left-origin-center, right-origin-center', style({ transform: 'none' })),
|
|
33
|
-
// If the tab is either on the left or right, we additionally add a `min-height` of 1px
|
|
34
|
-
// in order to ensure that the element has a height before its state changes. This is
|
|
35
|
-
// necessary because Chrome does seem to skip the transition in RTL mode if the element does
|
|
36
|
-
// not have a static height and is not rendered. See related issue: #9465
|
|
37
|
-
state('left', style({
|
|
38
|
-
transform: 'translate3d(-100%, 0, 0)',
|
|
39
|
-
minHeight: '1px',
|
|
40
|
-
// Normally this is redundant since we detach the content from the DOM, but if the user
|
|
41
|
-
// opted into keeping the content in the DOM, we have to hide it so it isn't focusable.
|
|
42
|
-
visibility: 'hidden',
|
|
43
|
-
})),
|
|
44
|
-
state('right', style({
|
|
45
|
-
transform: 'translate3d(100%, 0, 0)',
|
|
46
|
-
minHeight: '1px',
|
|
47
|
-
visibility: 'hidden',
|
|
48
|
-
})),
|
|
49
|
-
transition('* => left, * => right, left => center, right => center', animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')),
|
|
50
|
-
transition('void => left-origin-center', [
|
|
51
|
-
style({ transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden' }),
|
|
52
|
-
animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),
|
|
53
|
-
]),
|
|
54
|
-
transition('void => right-origin-center', [
|
|
55
|
-
style({ transform: 'translate3d(100%, 0, 0)', visibility: 'hidden' }),
|
|
56
|
-
animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),
|
|
57
|
-
]),
|
|
58
|
-
]),
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* The portal host directive for the contents of the tab.
|
|
63
|
-
* @docs-private
|
|
64
|
-
*/
|
|
65
|
-
class MatTabBodyPortal extends CdkPortalOutlet {
|
|
66
|
-
constructor(componentFactoryResolver, viewContainerRef, _host, _document) {
|
|
67
|
-
super(componentFactoryResolver, viewContainerRef, _document);
|
|
68
|
-
this._host = _host;
|
|
69
|
-
/** Subscription to events for when the tab body begins centering. */
|
|
70
|
-
this._centeringSub = Subscription.EMPTY;
|
|
71
|
-
/** Subscription to events for when the tab body finishes leaving from center position. */
|
|
72
|
-
this._leavingSub = Subscription.EMPTY;
|
|
73
|
-
}
|
|
74
|
-
/** Set initial visibility or set up subscription for changing visibility. */
|
|
75
|
-
ngOnInit() {
|
|
76
|
-
super.ngOnInit();
|
|
77
|
-
this._centeringSub = this._host._beforeCentering
|
|
78
|
-
.pipe(startWith(this._host._isCenterPosition(this._host._position)))
|
|
79
|
-
.subscribe((isCentering) => {
|
|
80
|
-
if (isCentering && !this.hasAttached()) {
|
|
81
|
-
this.attach(this._host._content);
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
this._leavingSub = this._host._afterLeavingCenter.subscribe(() => {
|
|
85
|
-
if (!this._host.preserveContent) {
|
|
86
|
-
this.detach();
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
/** Clean up centering subscription. */
|
|
91
|
-
ngOnDestroy() {
|
|
92
|
-
super.ngOnDestroy();
|
|
93
|
-
this._centeringSub.unsubscribe();
|
|
94
|
-
this._leavingSub.unsubscribe();
|
|
95
|
-
}
|
|
96
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabBodyPortal, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: forwardRef(() => MatTabBody) }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
97
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatTabBodyPortal, selector: "[matTabBodyHost]", usesInheritance: true, ngImport: i0 }); }
|
|
98
|
-
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabBodyPortal, decorators: [{
|
|
100
|
-
type: Directive,
|
|
101
|
-
args: [{
|
|
102
|
-
selector: '[matTabBodyHost]',
|
|
103
|
-
}]
|
|
104
|
-
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: MatTabBody, decorators: [{
|
|
105
|
-
type: Inject,
|
|
106
|
-
args: [forwardRef(() => MatTabBody)]
|
|
107
|
-
}] }, { type: undefined, decorators: [{
|
|
108
|
-
type: Inject,
|
|
109
|
-
args: [DOCUMENT]
|
|
110
|
-
}] }] });
|
|
111
|
-
/**
|
|
112
|
-
* Wrapper for the contents of a tab.
|
|
113
|
-
* @docs-private
|
|
114
|
-
*/
|
|
115
|
-
class MatTabBody {
|
|
116
|
-
/** The shifted index position of the tab body, where zero represents the active center tab. */
|
|
117
|
-
set position(position) {
|
|
118
|
-
this._positionIndex = position;
|
|
119
|
-
this._computePositionAnimationState();
|
|
120
|
-
}
|
|
121
|
-
constructor(_elementRef, _dir, changeDetectorRef) {
|
|
122
|
-
this._elementRef = _elementRef;
|
|
123
|
-
this._dir = _dir;
|
|
124
|
-
/** Subscription to the directionality change observable. */
|
|
125
|
-
this._dirChangeSubscription = Subscription.EMPTY;
|
|
126
|
-
/** Emits when an animation on the tab is complete. */
|
|
127
|
-
this._translateTabComplete = new Subject();
|
|
128
|
-
/** Event emitted when the tab begins to animate towards the center as the active tab. */
|
|
129
|
-
this._onCentering = new EventEmitter();
|
|
130
|
-
/** Event emitted before the centering of the tab begins. */
|
|
131
|
-
this._beforeCentering = new EventEmitter();
|
|
132
|
-
/** Event emitted before the centering of the tab begins. */
|
|
133
|
-
this._afterLeavingCenter = new EventEmitter();
|
|
134
|
-
/** Event emitted when the tab completes its animation towards the center. */
|
|
135
|
-
this._onCentered = new EventEmitter(true);
|
|
136
|
-
// Note that the default value will always be overwritten by `MatTabBody`, but we need one
|
|
137
|
-
// anyway to prevent the animations module from throwing an error if the body is used on its own.
|
|
138
|
-
/** Duration for the tab's animation. */
|
|
139
|
-
this.animationDuration = '500ms';
|
|
140
|
-
/** Whether the tab's content should be kept in the DOM while it's off-screen. */
|
|
141
|
-
this.preserveContent = false;
|
|
142
|
-
if (_dir) {
|
|
143
|
-
this._dirChangeSubscription = _dir.change.subscribe((dir) => {
|
|
144
|
-
this._computePositionAnimationState(dir);
|
|
145
|
-
changeDetectorRef.markForCheck();
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
// Ensure that we get unique animation events, because the `.done` callback can get
|
|
149
|
-
// invoked twice in some browsers. See https://github.com/angular/angular/issues/24084.
|
|
150
|
-
this._translateTabComplete
|
|
151
|
-
.pipe(distinctUntilChanged((x, y) => {
|
|
152
|
-
return x.fromState === y.fromState && x.toState === y.toState;
|
|
153
|
-
}))
|
|
154
|
-
.subscribe(event => {
|
|
155
|
-
// If the transition to the center is complete, emit an event.
|
|
156
|
-
if (this._isCenterPosition(event.toState) && this._isCenterPosition(this._position)) {
|
|
157
|
-
this._onCentered.emit();
|
|
158
|
-
}
|
|
159
|
-
if (this._isCenterPosition(event.fromState) && !this._isCenterPosition(this._position)) {
|
|
160
|
-
this._afterLeavingCenter.emit();
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* After initialized, check if the content is centered and has an origin. If so, set the
|
|
166
|
-
* special position states that transition the tab from the left or right before centering.
|
|
167
|
-
*/
|
|
168
|
-
ngOnInit() {
|
|
169
|
-
if (this._position == 'center' && this.origin != null) {
|
|
170
|
-
this._position = this._computePositionFromOrigin(this.origin);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
ngOnDestroy() {
|
|
174
|
-
this._dirChangeSubscription.unsubscribe();
|
|
175
|
-
this._translateTabComplete.complete();
|
|
176
|
-
}
|
|
177
|
-
_onTranslateTabStarted(event) {
|
|
178
|
-
const isCentering = this._isCenterPosition(event.toState);
|
|
179
|
-
this._beforeCentering.emit(isCentering);
|
|
180
|
-
if (isCentering) {
|
|
181
|
-
this._onCentering.emit(this._elementRef.nativeElement.clientHeight);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
/** The text direction of the containing app. */
|
|
185
|
-
_getLayoutDirection() {
|
|
186
|
-
return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
|
|
187
|
-
}
|
|
188
|
-
/** Whether the provided position state is considered center, regardless of origin. */
|
|
189
|
-
_isCenterPosition(position) {
|
|
190
|
-
return (position == 'center' || position == 'left-origin-center' || position == 'right-origin-center');
|
|
191
|
-
}
|
|
192
|
-
/** Computes the position state that will be used for the tab-body animation trigger. */
|
|
193
|
-
_computePositionAnimationState(dir = this._getLayoutDirection()) {
|
|
194
|
-
if (this._positionIndex < 0) {
|
|
195
|
-
this._position = dir == 'ltr' ? 'left' : 'right';
|
|
196
|
-
}
|
|
197
|
-
else if (this._positionIndex > 0) {
|
|
198
|
-
this._position = dir == 'ltr' ? 'right' : 'left';
|
|
199
|
-
}
|
|
200
|
-
else {
|
|
201
|
-
this._position = 'center';
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Computes the position state based on the specified origin position. This is used if the
|
|
206
|
-
* tab is becoming visible immediately after creation.
|
|
207
|
-
*/
|
|
208
|
-
_computePositionFromOrigin(origin) {
|
|
209
|
-
const dir = this._getLayoutDirection();
|
|
210
|
-
if ((dir == 'ltr' && origin <= 0) || (dir == 'rtl' && origin > 0)) {
|
|
211
|
-
return 'left-origin-center';
|
|
212
|
-
}
|
|
213
|
-
return 'right-origin-center';
|
|
214
|
-
}
|
|
215
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabBody, deps: [{ token: i0.ElementRef }, { token: i2.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MatTabBody, selector: "mat-tab-body", inputs: { _content: ["content", "_content"], origin: "origin", animationDuration: "animationDuration", preserveContent: "preserveContent", position: "position" }, outputs: { _onCentering: "_onCentering", _beforeCentering: "_beforeCentering", _afterLeavingCenter: "_afterLeavingCenter", _onCentered: "_onCentered" }, host: { classAttribute: "mat-mdc-tab-body" }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: CdkPortalOutlet, descendants: true }], ngImport: i0, template: "<div class=\"mat-mdc-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n", styles: [".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*=\"visibility: hidden\"]{display:none}"], dependencies: [{ kind: "directive", type: MatTabBodyPortal, selector: "[matTabBodyHost]" }], animations: [matTabsAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
217
|
-
}
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabBody, decorators: [{
|
|
219
|
-
type: Component,
|
|
220
|
-
args: [{ selector: 'mat-tab-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [matTabsAnimations.translateTab], host: {
|
|
221
|
-
'class': 'mat-mdc-tab-body',
|
|
222
|
-
}, template: "<div class=\"mat-mdc-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n", styles: [".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*=\"visibility: hidden\"]{display:none}"] }]
|
|
223
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2.Directionality, decorators: [{
|
|
224
|
-
type: Optional
|
|
225
|
-
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { _onCentering: [{
|
|
226
|
-
type: Output
|
|
227
|
-
}], _beforeCentering: [{
|
|
228
|
-
type: Output
|
|
229
|
-
}], _afterLeavingCenter: [{
|
|
230
|
-
type: Output
|
|
231
|
-
}], _onCentered: [{
|
|
232
|
-
type: Output
|
|
233
|
-
}], _portalHost: [{
|
|
234
|
-
type: ViewChild,
|
|
235
|
-
args: [CdkPortalOutlet]
|
|
236
|
-
}], _content: [{
|
|
237
|
-
type: Input,
|
|
238
|
-
args: ['content']
|
|
239
|
-
}], origin: [{
|
|
240
|
-
type: Input
|
|
241
|
-
}], animationDuration: [{
|
|
242
|
-
type: Input
|
|
243
|
-
}], preserveContent: [{
|
|
244
|
-
type: Input
|
|
245
|
-
}], position: [{
|
|
246
|
-
type: Input
|
|
247
|
-
}] } });
|
|
16
|
+
import { takeUntil, take, startWith, switchMap, skip, filter, distinctUntilChanged } from 'rxjs/operators';
|
|
17
|
+
import { CdkObserveContent } from '@angular/cdk/observers';
|
|
18
|
+
import { DOCUMENT, NgClass } from '@angular/common';
|
|
19
|
+
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
248
20
|
|
|
249
21
|
/**
|
|
250
22
|
* Injection token that can be used to reference instances of `MatTabContent`. It serves as
|
|
@@ -258,13 +30,14 @@ class MatTabContent {
|
|
|
258
30
|
this.template = template;
|
|
259
31
|
}
|
|
260
32
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabContent, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
261
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatTabContent, selector: "[matTabContent]", providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }], ngImport: i0 }); }
|
|
33
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatTabContent, isStandalone: true, selector: "[matTabContent]", providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }], ngImport: i0 }); }
|
|
262
34
|
}
|
|
263
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabContent, decorators: [{
|
|
264
36
|
type: Directive,
|
|
265
37
|
args: [{
|
|
266
38
|
selector: '[matTabContent]',
|
|
267
39
|
providers: [{ provide: MAT_TAB_CONTENT, useExisting: MatTabContent }],
|
|
40
|
+
standalone: true,
|
|
268
41
|
}]
|
|
269
42
|
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
270
43
|
|
|
@@ -286,13 +59,14 @@ class MatTabLabel extends CdkPortal {
|
|
|
286
59
|
this._closestTab = _closestTab;
|
|
287
60
|
}
|
|
288
61
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLabel, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: MAT_TAB, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
289
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatTabLabel, selector: "[mat-tab-label], [matTabLabel]", providers: [{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }], usesInheritance: true, ngImport: i0 }); }
|
|
62
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatTabLabel, isStandalone: true, selector: "[mat-tab-label], [matTabLabel]", providers: [{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }], usesInheritance: true, ngImport: i0 }); }
|
|
290
63
|
}
|
|
291
64
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLabel, decorators: [{
|
|
292
65
|
type: Directive,
|
|
293
66
|
args: [{
|
|
294
67
|
selector: '[mat-tab-label], [matTabLabel]',
|
|
295
68
|
providers: [{ provide: MAT_TAB_LABEL, useExisting: MatTabLabel }],
|
|
69
|
+
standalone: true,
|
|
296
70
|
}]
|
|
297
71
|
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
298
72
|
type: Inject,
|
|
@@ -301,6 +75,117 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
301
75
|
type: Optional
|
|
302
76
|
}] }] });
|
|
303
77
|
|
|
78
|
+
/**
|
|
79
|
+
* Used to provide a tab group to a tab without causing a circular dependency.
|
|
80
|
+
* @docs-private
|
|
81
|
+
*/
|
|
82
|
+
const MAT_TAB_GROUP = new InjectionToken('MAT_TAB_GROUP');
|
|
83
|
+
class MatTab {
|
|
84
|
+
/** Content for the tab label given by `<ng-template mat-tab-label>`. */
|
|
85
|
+
get templateLabel() {
|
|
86
|
+
return this._templateLabel;
|
|
87
|
+
}
|
|
88
|
+
set templateLabel(value) {
|
|
89
|
+
this._setTemplateLabelInput(value);
|
|
90
|
+
}
|
|
91
|
+
/** @docs-private */
|
|
92
|
+
get content() {
|
|
93
|
+
return this._contentPortal;
|
|
94
|
+
}
|
|
95
|
+
constructor(_viewContainerRef, _closestTabGroup) {
|
|
96
|
+
this._viewContainerRef = _viewContainerRef;
|
|
97
|
+
this._closestTabGroup = _closestTabGroup;
|
|
98
|
+
/** whether the tab is disabled. */
|
|
99
|
+
this.disabled = false;
|
|
100
|
+
/**
|
|
101
|
+
* Template provided in the tab content that will be used if present, used to enable lazy-loading
|
|
102
|
+
*/
|
|
103
|
+
this._explicitContent = undefined;
|
|
104
|
+
/** Plain text label for the tab, used when there is no template label. */
|
|
105
|
+
this.textLabel = '';
|
|
106
|
+
/** Portal that will be the hosted content of the tab */
|
|
107
|
+
this._contentPortal = null;
|
|
108
|
+
/** Emits whenever the internal state of the tab changes. */
|
|
109
|
+
this._stateChanges = new Subject();
|
|
110
|
+
/**
|
|
111
|
+
* The relatively indexed position where 0 represents the center, negative is left, and positive
|
|
112
|
+
* represents the right.
|
|
113
|
+
*/
|
|
114
|
+
this.position = null;
|
|
115
|
+
/**
|
|
116
|
+
* The initial relatively index origin of the tab if it was created and selected after there
|
|
117
|
+
* was already a selected tab. Provides context of what position the tab should originate from.
|
|
118
|
+
*/
|
|
119
|
+
this.origin = null;
|
|
120
|
+
/**
|
|
121
|
+
* Whether the tab is currently active.
|
|
122
|
+
*/
|
|
123
|
+
this.isActive = false;
|
|
124
|
+
}
|
|
125
|
+
ngOnChanges(changes) {
|
|
126
|
+
if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {
|
|
127
|
+
this._stateChanges.next();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
ngOnDestroy() {
|
|
131
|
+
this._stateChanges.complete();
|
|
132
|
+
}
|
|
133
|
+
ngOnInit() {
|
|
134
|
+
this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* This has been extracted to a util because of TS 4 and VE.
|
|
138
|
+
* View Engine doesn't support property rename inheritance.
|
|
139
|
+
* TS 4.0 doesn't allow properties to override accessors or vice-versa.
|
|
140
|
+
* @docs-private
|
|
141
|
+
*/
|
|
142
|
+
_setTemplateLabelInput(value) {
|
|
143
|
+
// Only update the label if the query managed to find one. This works around an issue where a
|
|
144
|
+
// user may have manually set `templateLabel` during creation mode, which would then get
|
|
145
|
+
// clobbered by `undefined` when the query resolves. Also note that we check that the closest
|
|
146
|
+
// tab matches the current one so that we don't pick up labels from nested tabs.
|
|
147
|
+
if (value && value._closestTab === this) {
|
|
148
|
+
this._templateLabel = value;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTab, deps: [{ token: i0.ViewContainerRef }, { token: MAT_TAB_GROUP, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.4", type: MatTab, isStandalone: true, selector: "mat-tab", inputs: { disabled: ["disabled", "disabled", booleanAttribute], textLabel: ["label", "textLabel"], ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], labelClass: "labelClass", bodyClass: "bodyClass" }, providers: [{ provide: MAT_TAB, useExisting: MatTab }], queries: [{ propertyName: "templateLabel", first: true, predicate: MatTabLabel, descendants: true }, { propertyName: "_explicitContent", first: true, predicate: MatTabContent, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "_implicitContent", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["matTab"], usesOnChanges: true, ngImport: i0, template: "<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template><ng-content></ng-content></ng-template>\n", changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
153
|
+
}
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTab, decorators: [{
|
|
155
|
+
type: Component,
|
|
156
|
+
args: [{ selector: 'mat-tab', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, exportAs: 'matTab', providers: [{ provide: MAT_TAB, useExisting: MatTab }], standalone: true, template: "<!-- Create a template for the content of the <mat-tab> so that we can grab a reference to this\n TemplateRef and use it in a Portal to render the tab content in the appropriate place in the\n tab-group. -->\n<ng-template><ng-content></ng-content></ng-template>\n" }]
|
|
157
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
158
|
+
type: Inject,
|
|
159
|
+
args: [MAT_TAB_GROUP]
|
|
160
|
+
}, {
|
|
161
|
+
type: Optional
|
|
162
|
+
}] }], propDecorators: { disabled: [{
|
|
163
|
+
type: Input,
|
|
164
|
+
args: [{ transform: booleanAttribute }]
|
|
165
|
+
}], templateLabel: [{
|
|
166
|
+
type: ContentChild,
|
|
167
|
+
args: [MatTabLabel]
|
|
168
|
+
}], _explicitContent: [{
|
|
169
|
+
type: ContentChild,
|
|
170
|
+
args: [MatTabContent, { read: TemplateRef, static: true }]
|
|
171
|
+
}], _implicitContent: [{
|
|
172
|
+
type: ViewChild,
|
|
173
|
+
args: [TemplateRef, { static: true }]
|
|
174
|
+
}], textLabel: [{
|
|
175
|
+
type: Input,
|
|
176
|
+
args: ['label']
|
|
177
|
+
}], ariaLabel: [{
|
|
178
|
+
type: Input,
|
|
179
|
+
args: ['aria-label']
|
|
180
|
+
}], ariaLabelledby: [{
|
|
181
|
+
type: Input,
|
|
182
|
+
args: ['aria-labelledby']
|
|
183
|
+
}], labelClass: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], bodyClass: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}] } });
|
|
188
|
+
|
|
304
189
|
/** Class that is applied when a tab indicator is active. */
|
|
305
190
|
const ACTIVE_CLASS = 'mdc-tab-indicator--active';
|
|
306
191
|
/** Class that is applied when the tab indicator should not transition. */
|
|
@@ -444,8 +329,8 @@ const _MAT_INK_BAR_POSITIONER = new InjectionToken('MatInkBarPositioner', {
|
|
|
444
329
|
|
|
445
330
|
// Boilerplate for applying mixins to MatTabLabelWrapper.
|
|
446
331
|
/** @docs-private */
|
|
447
|
-
const _MatTabLabelWrapperMixinBase = mixinInkBarItem(
|
|
448
|
-
})
|
|
332
|
+
const _MatTabLabelWrapperMixinBase = mixinInkBarItem(class {
|
|
333
|
+
});
|
|
449
334
|
/**
|
|
450
335
|
* Used in the `mat-tab-group` view to display tab labels.
|
|
451
336
|
* @docs-private
|
|
@@ -454,140 +339,36 @@ class MatTabLabelWrapper extends _MatTabLabelWrapperMixinBase {
|
|
|
454
339
|
constructor(elementRef) {
|
|
455
340
|
super();
|
|
456
341
|
this.elementRef = elementRef;
|
|
342
|
+
/** Whether the tab is disabled. */
|
|
343
|
+
this.disabled = false;
|
|
457
344
|
}
|
|
458
345
|
/** Sets focus on the wrapper element */
|
|
459
|
-
focus() {
|
|
460
|
-
this.elementRef.nativeElement.focus();
|
|
461
|
-
}
|
|
462
|
-
getOffsetLeft() {
|
|
463
|
-
return this.elementRef.nativeElement.offsetLeft;
|
|
464
|
-
}
|
|
465
|
-
getOffsetWidth() {
|
|
466
|
-
return this.elementRef.nativeElement.offsetWidth;
|
|
467
|
-
}
|
|
468
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLabelWrapper, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
469
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatTabLabelWrapper, selector: "[matTabLabelWrapper]", inputs: { disabled: "disabled", fitInkBarToContent: "fitInkBarToContent" }, host: { properties: { "class.mat-mdc-tab-disabled": "disabled", "attr.aria-disabled": "!!disabled" } }, usesInheritance: true, ngImport: i0 }); }
|
|
470
|
-
}
|
|
471
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLabelWrapper, decorators: [{
|
|
472
|
-
type: Directive,
|
|
473
|
-
args: [{
|
|
474
|
-
selector: '[matTabLabelWrapper]',
|
|
475
|
-
inputs: ['disabled', 'fitInkBarToContent'],
|
|
476
|
-
host: {
|
|
477
|
-
'[class.mat-mdc-tab-disabled]': 'disabled',
|
|
478
|
-
'[attr.aria-disabled]': '!!disabled',
|
|
479
|
-
},
|
|
480
|
-
}]
|
|
481
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
482
|
-
|
|
483
|
-
// Boilerplate for applying mixins to MatTab.
|
|
484
|
-
/** @docs-private */
|
|
485
|
-
const _MatTabMixinBase = mixinDisabled(class {
|
|
486
|
-
});
|
|
487
|
-
/**
|
|
488
|
-
* Used to provide a tab group to a tab without causing a circular dependency.
|
|
489
|
-
* @docs-private
|
|
490
|
-
*/
|
|
491
|
-
const MAT_TAB_GROUP = new InjectionToken('MAT_TAB_GROUP');
|
|
492
|
-
class MatTab extends _MatTabMixinBase {
|
|
493
|
-
get templateLabel() {
|
|
494
|
-
return this._templateLabel;
|
|
495
|
-
}
|
|
496
|
-
set templateLabel(value) {
|
|
497
|
-
this._setTemplateLabelInput(value);
|
|
498
|
-
}
|
|
499
|
-
/** @docs-private */
|
|
500
|
-
get content() {
|
|
501
|
-
return this._contentPortal;
|
|
502
|
-
}
|
|
503
|
-
constructor(_viewContainerRef, _closestTabGroup) {
|
|
504
|
-
super();
|
|
505
|
-
this._viewContainerRef = _viewContainerRef;
|
|
506
|
-
this._closestTabGroup = _closestTabGroup;
|
|
507
|
-
/**
|
|
508
|
-
* Template provided in the tab content that will be used if present, used to enable lazy-loading
|
|
509
|
-
*/
|
|
510
|
-
this._explicitContent = undefined;
|
|
511
|
-
/** Plain text label for the tab, used when there is no template label. */
|
|
512
|
-
this.textLabel = '';
|
|
513
|
-
/** Portal that will be the hosted content of the tab */
|
|
514
|
-
this._contentPortal = null;
|
|
515
|
-
/** Emits whenever the internal state of the tab changes. */
|
|
516
|
-
this._stateChanges = new Subject();
|
|
517
|
-
/**
|
|
518
|
-
* The relatively indexed position where 0 represents the center, negative is left, and positive
|
|
519
|
-
* represents the right.
|
|
520
|
-
*/
|
|
521
|
-
this.position = null;
|
|
522
|
-
/**
|
|
523
|
-
* The initial relatively index origin of the tab if it was created and selected after there
|
|
524
|
-
* was already a selected tab. Provides context of what position the tab should originate from.
|
|
525
|
-
*/
|
|
526
|
-
this.origin = null;
|
|
527
|
-
/**
|
|
528
|
-
* Whether the tab is currently active.
|
|
529
|
-
*/
|
|
530
|
-
this.isActive = false;
|
|
531
|
-
}
|
|
532
|
-
ngOnChanges(changes) {
|
|
533
|
-
if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {
|
|
534
|
-
this._stateChanges.next();
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
ngOnDestroy() {
|
|
538
|
-
this._stateChanges.complete();
|
|
539
|
-
}
|
|
540
|
-
ngOnInit() {
|
|
541
|
-
this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);
|
|
542
|
-
}
|
|
543
|
-
/**
|
|
544
|
-
* This has been extracted to a util because of TS 4 and VE.
|
|
545
|
-
* View Engine doesn't support property rename inheritance.
|
|
546
|
-
* TS 4.0 doesn't allow properties to override accessors or vice-versa.
|
|
547
|
-
* @docs-private
|
|
548
|
-
*/
|
|
549
|
-
_setTemplateLabelInput(value) {
|
|
550
|
-
// Only update the label if the query managed to find one. This works around an issue where a
|
|
551
|
-
// user may have manually set `templateLabel` during creation mode, which would then get
|
|
552
|
-
// clobbered by `undefined` when the query resolves. Also note that we check that the closest
|
|
553
|
-
// tab matches the current one so that we don't pick up labels from nested tabs.
|
|
554
|
-
if (value && value._closestTab === this) {
|
|
555
|
-
this._templateLabel = value;
|
|
556
|
-
}
|
|
346
|
+
focus() {
|
|
347
|
+
this.elementRef.nativeElement.focus();
|
|
557
348
|
}
|
|
558
|
-
|
|
559
|
-
|
|
349
|
+
getOffsetLeft() {
|
|
350
|
+
return this.elementRef.nativeElement.offsetLeft;
|
|
351
|
+
}
|
|
352
|
+
getOffsetWidth() {
|
|
353
|
+
return this.elementRef.nativeElement.offsetWidth;
|
|
354
|
+
}
|
|
355
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLabelWrapper, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
356
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.4", type: MatTabLabelWrapper, isStandalone: true, selector: "[matTabLabelWrapper]", inputs: { fitInkBarToContent: "fitInkBarToContent", disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "class.mat-mdc-tab-disabled": "disabled", "attr.aria-disabled": "!!disabled" } }, usesInheritance: true, ngImport: i0 }); }
|
|
560
357
|
}
|
|
561
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type:
|
|
562
|
-
type:
|
|
563
|
-
args: [{
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
type: ContentChild,
|
|
574
|
-
args: [MatTabContent, { read: TemplateRef, static: true }]
|
|
575
|
-
}], _implicitContent: [{
|
|
576
|
-
type: ViewChild,
|
|
577
|
-
args: [TemplateRef, { static: true }]
|
|
578
|
-
}], textLabel: [{
|
|
579
|
-
type: Input,
|
|
580
|
-
args: ['label']
|
|
581
|
-
}], ariaLabel: [{
|
|
582
|
-
type: Input,
|
|
583
|
-
args: ['aria-label']
|
|
584
|
-
}], ariaLabelledby: [{
|
|
358
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLabelWrapper, decorators: [{
|
|
359
|
+
type: Directive,
|
|
360
|
+
args: [{
|
|
361
|
+
selector: '[matTabLabelWrapper]',
|
|
362
|
+
inputs: ['fitInkBarToContent'],
|
|
363
|
+
host: {
|
|
364
|
+
'[class.mat-mdc-tab-disabled]': 'disabled',
|
|
365
|
+
'[attr.aria-disabled]': '!!disabled',
|
|
366
|
+
},
|
|
367
|
+
standalone: true,
|
|
368
|
+
}]
|
|
369
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { disabled: [{
|
|
585
370
|
type: Input,
|
|
586
|
-
args: [
|
|
587
|
-
}], labelClass: [{
|
|
588
|
-
type: Input
|
|
589
|
-
}], bodyClass: [{
|
|
590
|
-
type: Input
|
|
371
|
+
args: [{ transform: booleanAttribute }]
|
|
591
372
|
}] } });
|
|
592
373
|
|
|
593
374
|
/** Config used to bind passive event listeners */
|
|
@@ -609,22 +390,12 @@ const HEADER_SCROLL_INTERVAL = 100;
|
|
|
609
390
|
* @docs-private
|
|
610
391
|
*/
|
|
611
392
|
class MatPaginatedTabHeader {
|
|
612
|
-
/**
|
|
613
|
-
* Whether pagination should be disabled. This can be used to avoid unnecessary
|
|
614
|
-
* layout recalculations if it's known that pagination won't be required.
|
|
615
|
-
*/
|
|
616
|
-
get disablePagination() {
|
|
617
|
-
return this._disablePagination;
|
|
618
|
-
}
|
|
619
|
-
set disablePagination(value) {
|
|
620
|
-
this._disablePagination = coerceBooleanProperty(value);
|
|
621
|
-
}
|
|
622
393
|
/** The index of the active tab. */
|
|
623
394
|
get selectedIndex() {
|
|
624
395
|
return this._selectedIndex;
|
|
625
396
|
}
|
|
626
|
-
set selectedIndex(
|
|
627
|
-
value =
|
|
397
|
+
set selectedIndex(v) {
|
|
398
|
+
const value = numberAttribute(v, 0);
|
|
628
399
|
if (this._selectedIndex != value) {
|
|
629
400
|
this._selectedIndexChanged = true;
|
|
630
401
|
this._selectedIndex = value;
|
|
@@ -655,7 +426,11 @@ class MatPaginatedTabHeader {
|
|
|
655
426
|
this._disableScrollBefore = true;
|
|
656
427
|
/** Stream that will stop the automated scrolling. */
|
|
657
428
|
this._stopScrolling = new Subject();
|
|
658
|
-
|
|
429
|
+
/**
|
|
430
|
+
* Whether pagination should be disabled. This can be used to avoid unnecessary
|
|
431
|
+
* layout recalculations if it's known that pagination won't be required.
|
|
432
|
+
*/
|
|
433
|
+
this.disablePagination = false;
|
|
659
434
|
this._selectedIndex = 0;
|
|
660
435
|
/** Event emitted when the option is selected. */
|
|
661
436
|
this.selectFocusedIndex = new EventEmitter();
|
|
@@ -1039,171 +814,373 @@ class MatPaginatedTabHeader {
|
|
|
1039
814
|
if (mouseEvent && mouseEvent.button != null && mouseEvent.button !== 0) {
|
|
1040
815
|
return;
|
|
1041
816
|
}
|
|
1042
|
-
// Avoid overlapping timers.
|
|
1043
|
-
this._stopInterval();
|
|
1044
|
-
// Start a timer after the delay and keep firing based on the interval.
|
|
1045
|
-
timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)
|
|
1046
|
-
// Keep the timer going until something tells it to stop or the component is destroyed.
|
|
1047
|
-
.pipe(takeUntil(merge(this._stopScrolling, this._destroyed)))
|
|
1048
|
-
.subscribe(() => {
|
|
1049
|
-
const { maxScrollDistance, distance } = this._scrollHeader(direction);
|
|
1050
|
-
// Stop the timer if we've reached the start or the end.
|
|
1051
|
-
if (distance === 0 || distance >= maxScrollDistance) {
|
|
1052
|
-
this._stopInterval();
|
|
817
|
+
// Avoid overlapping timers.
|
|
818
|
+
this._stopInterval();
|
|
819
|
+
// Start a timer after the delay and keep firing based on the interval.
|
|
820
|
+
timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)
|
|
821
|
+
// Keep the timer going until something tells it to stop or the component is destroyed.
|
|
822
|
+
.pipe(takeUntil(merge(this._stopScrolling, this._destroyed)))
|
|
823
|
+
.subscribe(() => {
|
|
824
|
+
const { maxScrollDistance, distance } = this._scrollHeader(direction);
|
|
825
|
+
// Stop the timer if we've reached the start or the end.
|
|
826
|
+
if (distance === 0 || distance >= maxScrollDistance) {
|
|
827
|
+
this._stopInterval();
|
|
828
|
+
}
|
|
829
|
+
});
|
|
830
|
+
}
|
|
831
|
+
/**
|
|
832
|
+
* Scrolls the header to a given position.
|
|
833
|
+
* @param position Position to which to scroll.
|
|
834
|
+
* @returns Information on the current scroll distance and the maximum.
|
|
835
|
+
*/
|
|
836
|
+
_scrollTo(position) {
|
|
837
|
+
if (this.disablePagination) {
|
|
838
|
+
return { maxScrollDistance: 0, distance: 0 };
|
|
839
|
+
}
|
|
840
|
+
const maxScrollDistance = this._getMaxScrollDistance();
|
|
841
|
+
this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));
|
|
842
|
+
// Mark that the scroll distance has changed so that after the view is checked, the CSS
|
|
843
|
+
// transformation can move the header.
|
|
844
|
+
this._scrollDistanceChanged = true;
|
|
845
|
+
this._checkScrollingControls();
|
|
846
|
+
return { maxScrollDistance, distance: this._scrollDistance };
|
|
847
|
+
}
|
|
848
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatPaginatedTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i2.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
849
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.4", type: MatPaginatedTabHeader, inputs: { disablePagination: ["disablePagination", "disablePagination", booleanAttribute] }, ngImport: i0 }); }
|
|
850
|
+
}
|
|
851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatPaginatedTabHeader, decorators: [{
|
|
852
|
+
type: Directive
|
|
853
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i2.Directionality, decorators: [{
|
|
854
|
+
type: Optional
|
|
855
|
+
}] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{
|
|
856
|
+
type: Optional
|
|
857
|
+
}, {
|
|
858
|
+
type: Inject,
|
|
859
|
+
args: [ANIMATION_MODULE_TYPE]
|
|
860
|
+
}] }], propDecorators: { disablePagination: [{
|
|
861
|
+
type: Input,
|
|
862
|
+
args: [{ transform: booleanAttribute }]
|
|
863
|
+
}] } });
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* The header of the tab group which displays a list of all the tabs in the tab group. Includes
|
|
867
|
+
* an ink bar that follows the currently selected tab. When the tabs list's width exceeds the
|
|
868
|
+
* width of the header container, then arrows will be displayed to allow the user to scroll
|
|
869
|
+
* left and right across the header.
|
|
870
|
+
* @docs-private
|
|
871
|
+
*/
|
|
872
|
+
class MatTabHeader extends MatPaginatedTabHeader {
|
|
873
|
+
constructor(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) {
|
|
874
|
+
super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);
|
|
875
|
+
/** Whether the ripple effect is disabled or not. */
|
|
876
|
+
this.disableRipple = false;
|
|
877
|
+
}
|
|
878
|
+
ngAfterContentInit() {
|
|
879
|
+
this._inkBar = new MatInkBar(this._items);
|
|
880
|
+
super.ngAfterContentInit();
|
|
881
|
+
}
|
|
882
|
+
_itemSelected(event) {
|
|
883
|
+
event.preventDefault();
|
|
884
|
+
}
|
|
885
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i2.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
886
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.4", type: MatTabHeader, isStandalone: true, selector: "mat-tab-header", inputs: { selectedIndex: "selectedIndex", disableRipple: ["disableRipple", "disableRipple", booleanAttribute] }, outputs: { selectFocusedIndex: "selectFocusedIndex", indexFocused: "indexFocused" }, host: { properties: { "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'" }, classAttribute: "mat-mdc-tab-header" }, queries: [{ propertyName: "_items", predicate: MatTabLabelWrapper }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], 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: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n\n<div\n class=\"mat-mdc-tab-label-container\"\n #tabListContainer\n (keydown)=\"_handleKeydown($event)\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\">\n <div\n #tabList\n class=\"mat-mdc-tab-list\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
887
|
+
}
|
|
888
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabHeader, decorators: [{
|
|
889
|
+
type: Component,
|
|
890
|
+
args: [{ selector: 'mat-tab-header', inputs: ['selectedIndex'], outputs: ['selectFocusedIndex', 'indexFocused'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, host: {
|
|
891
|
+
'class': 'mat-mdc-tab-header',
|
|
892
|
+
'[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',
|
|
893
|
+
'[class.mat-mdc-tab-header-rtl]': "_getLayoutDirection() == 'rtl'",
|
|
894
|
+
}, standalone: true, imports: [MatRipple, CdkObserveContent], template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n\n<div\n class=\"mat-mdc-tab-label-container\"\n #tabListContainer\n (keydown)=\"_handleKeydown($event)\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\">\n <div\n #tabList\n class=\"mat-mdc-tab-list\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"] }]
|
|
895
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i2.Directionality, decorators: [{
|
|
896
|
+
type: Optional
|
|
897
|
+
}] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{
|
|
898
|
+
type: Optional
|
|
899
|
+
}, {
|
|
900
|
+
type: Inject,
|
|
901
|
+
args: [ANIMATION_MODULE_TYPE]
|
|
902
|
+
}] }], propDecorators: { _items: [{
|
|
903
|
+
type: ContentChildren,
|
|
904
|
+
args: [MatTabLabelWrapper, { descendants: false }]
|
|
905
|
+
}], _tabListContainer: [{
|
|
906
|
+
type: ViewChild,
|
|
907
|
+
args: ['tabListContainer', { static: true }]
|
|
908
|
+
}], _tabList: [{
|
|
909
|
+
type: ViewChild,
|
|
910
|
+
args: ['tabList', { static: true }]
|
|
911
|
+
}], _tabListInner: [{
|
|
912
|
+
type: ViewChild,
|
|
913
|
+
args: ['tabListInner', { static: true }]
|
|
914
|
+
}], _nextPaginator: [{
|
|
915
|
+
type: ViewChild,
|
|
916
|
+
args: ['nextPaginator']
|
|
917
|
+
}], _previousPaginator: [{
|
|
918
|
+
type: ViewChild,
|
|
919
|
+
args: ['previousPaginator']
|
|
920
|
+
}], disableRipple: [{
|
|
921
|
+
type: Input,
|
|
922
|
+
args: [{ transform: booleanAttribute }]
|
|
923
|
+
}] } });
|
|
924
|
+
|
|
925
|
+
/** Injection token that can be used to provide the default options the tabs module. */
|
|
926
|
+
const MAT_TABS_CONFIG = new InjectionToken('MAT_TABS_CONFIG');
|
|
927
|
+
|
|
928
|
+
/**
|
|
929
|
+
* Animations used by the Material tabs.
|
|
930
|
+
* @docs-private
|
|
931
|
+
*/
|
|
932
|
+
const matTabsAnimations = {
|
|
933
|
+
/** Animation translates a tab along the X axis. */
|
|
934
|
+
translateTab: trigger('translateTab', [
|
|
935
|
+
// Transitions to `none` instead of 0, because some browsers might blur the content.
|
|
936
|
+
state('center, void, left-origin-center, right-origin-center', style({ transform: 'none' })),
|
|
937
|
+
// If the tab is either on the left or right, we additionally add a `min-height` of 1px
|
|
938
|
+
// in order to ensure that the element has a height before its state changes. This is
|
|
939
|
+
// necessary because Chrome does seem to skip the transition in RTL mode if the element does
|
|
940
|
+
// not have a static height and is not rendered. See related issue: #9465
|
|
941
|
+
state('left', style({
|
|
942
|
+
transform: 'translate3d(-100%, 0, 0)',
|
|
943
|
+
minHeight: '1px',
|
|
944
|
+
// Normally this is redundant since we detach the content from the DOM, but if the user
|
|
945
|
+
// opted into keeping the content in the DOM, we have to hide it so it isn't focusable.
|
|
946
|
+
visibility: 'hidden',
|
|
947
|
+
})),
|
|
948
|
+
state('right', style({
|
|
949
|
+
transform: 'translate3d(100%, 0, 0)',
|
|
950
|
+
minHeight: '1px',
|
|
951
|
+
visibility: 'hidden',
|
|
952
|
+
})),
|
|
953
|
+
transition('* => left, * => right, left => center, right => center', animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')),
|
|
954
|
+
transition('void => left-origin-center', [
|
|
955
|
+
style({ transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden' }),
|
|
956
|
+
animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),
|
|
957
|
+
]),
|
|
958
|
+
transition('void => right-origin-center', [
|
|
959
|
+
style({ transform: 'translate3d(100%, 0, 0)', visibility: 'hidden' }),
|
|
960
|
+
animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)'),
|
|
961
|
+
]),
|
|
962
|
+
]),
|
|
963
|
+
};
|
|
964
|
+
|
|
965
|
+
/**
|
|
966
|
+
* The portal host directive for the contents of the tab.
|
|
967
|
+
* @docs-private
|
|
968
|
+
*/
|
|
969
|
+
class MatTabBodyPortal extends CdkPortalOutlet {
|
|
970
|
+
constructor(componentFactoryResolver, viewContainerRef, _host, _document) {
|
|
971
|
+
super(componentFactoryResolver, viewContainerRef, _document);
|
|
972
|
+
this._host = _host;
|
|
973
|
+
/** Subscription to events for when the tab body begins centering. */
|
|
974
|
+
this._centeringSub = Subscription.EMPTY;
|
|
975
|
+
/** Subscription to events for when the tab body finishes leaving from center position. */
|
|
976
|
+
this._leavingSub = Subscription.EMPTY;
|
|
977
|
+
}
|
|
978
|
+
/** Set initial visibility or set up subscription for changing visibility. */
|
|
979
|
+
ngOnInit() {
|
|
980
|
+
super.ngOnInit();
|
|
981
|
+
this._centeringSub = this._host._beforeCentering
|
|
982
|
+
.pipe(startWith(this._host._isCenterPosition(this._host._position)))
|
|
983
|
+
.subscribe((isCentering) => {
|
|
984
|
+
if (isCentering && !this.hasAttached()) {
|
|
985
|
+
this.attach(this._host._content);
|
|
986
|
+
}
|
|
987
|
+
});
|
|
988
|
+
this._leavingSub = this._host._afterLeavingCenter.subscribe(() => {
|
|
989
|
+
if (!this._host.preserveContent) {
|
|
990
|
+
this.detach();
|
|
991
|
+
}
|
|
992
|
+
});
|
|
993
|
+
}
|
|
994
|
+
/** Clean up centering subscription. */
|
|
995
|
+
ngOnDestroy() {
|
|
996
|
+
super.ngOnDestroy();
|
|
997
|
+
this._centeringSub.unsubscribe();
|
|
998
|
+
this._leavingSub.unsubscribe();
|
|
999
|
+
}
|
|
1000
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabBodyPortal, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: forwardRef(() => MatTabBody) }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1001
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: MatTabBodyPortal, isStandalone: true, selector: "[matTabBodyHost]", usesInheritance: true, ngImport: i0 }); }
|
|
1002
|
+
}
|
|
1003
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabBodyPortal, decorators: [{
|
|
1004
|
+
type: Directive,
|
|
1005
|
+
args: [{
|
|
1006
|
+
selector: '[matTabBodyHost]',
|
|
1007
|
+
standalone: true,
|
|
1008
|
+
}]
|
|
1009
|
+
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: MatTabBody, decorators: [{
|
|
1010
|
+
type: Inject,
|
|
1011
|
+
args: [forwardRef(() => MatTabBody)]
|
|
1012
|
+
}] }, { type: undefined, decorators: [{
|
|
1013
|
+
type: Inject,
|
|
1014
|
+
args: [DOCUMENT]
|
|
1015
|
+
}] }] });
|
|
1016
|
+
/**
|
|
1017
|
+
* Wrapper for the contents of a tab.
|
|
1018
|
+
* @docs-private
|
|
1019
|
+
*/
|
|
1020
|
+
class MatTabBody {
|
|
1021
|
+
/** The shifted index position of the tab body, where zero represents the active center tab. */
|
|
1022
|
+
set position(position) {
|
|
1023
|
+
this._positionIndex = position;
|
|
1024
|
+
this._computePositionAnimationState();
|
|
1025
|
+
}
|
|
1026
|
+
constructor(_elementRef, _dir, changeDetectorRef) {
|
|
1027
|
+
this._elementRef = _elementRef;
|
|
1028
|
+
this._dir = _dir;
|
|
1029
|
+
/** Subscription to the directionality change observable. */
|
|
1030
|
+
this._dirChangeSubscription = Subscription.EMPTY;
|
|
1031
|
+
/** Emits when an animation on the tab is complete. */
|
|
1032
|
+
this._translateTabComplete = new Subject();
|
|
1033
|
+
/** Event emitted when the tab begins to animate towards the center as the active tab. */
|
|
1034
|
+
this._onCentering = new EventEmitter();
|
|
1035
|
+
/** Event emitted before the centering of the tab begins. */
|
|
1036
|
+
this._beforeCentering = new EventEmitter();
|
|
1037
|
+
/** Event emitted before the centering of the tab begins. */
|
|
1038
|
+
this._afterLeavingCenter = new EventEmitter();
|
|
1039
|
+
/** Event emitted when the tab completes its animation towards the center. */
|
|
1040
|
+
this._onCentered = new EventEmitter(true);
|
|
1041
|
+
// Note that the default value will always be overwritten by `MatTabBody`, but we need one
|
|
1042
|
+
// anyway to prevent the animations module from throwing an error if the body is used on its own.
|
|
1043
|
+
/** Duration for the tab's animation. */
|
|
1044
|
+
this.animationDuration = '500ms';
|
|
1045
|
+
/** Whether the tab's content should be kept in the DOM while it's off-screen. */
|
|
1046
|
+
this.preserveContent = false;
|
|
1047
|
+
if (_dir) {
|
|
1048
|
+
this._dirChangeSubscription = _dir.change.subscribe((dir) => {
|
|
1049
|
+
this._computePositionAnimationState(dir);
|
|
1050
|
+
changeDetectorRef.markForCheck();
|
|
1051
|
+
});
|
|
1052
|
+
}
|
|
1053
|
+
// Ensure that we get unique animation events, because the `.done` callback can get
|
|
1054
|
+
// invoked twice in some browsers. See https://github.com/angular/angular/issues/24084.
|
|
1055
|
+
this._translateTabComplete
|
|
1056
|
+
.pipe(distinctUntilChanged((x, y) => {
|
|
1057
|
+
return x.fromState === y.fromState && x.toState === y.toState;
|
|
1058
|
+
}))
|
|
1059
|
+
.subscribe(event => {
|
|
1060
|
+
// If the transition to the center is complete, emit an event.
|
|
1061
|
+
if (this._isCenterPosition(event.toState) && this._isCenterPosition(this._position)) {
|
|
1062
|
+
this._onCentered.emit();
|
|
1063
|
+
}
|
|
1064
|
+
if (this._isCenterPosition(event.fromState) && !this._isCenterPosition(this._position)) {
|
|
1065
|
+
this._afterLeavingCenter.emit();
|
|
1053
1066
|
}
|
|
1054
1067
|
});
|
|
1055
1068
|
}
|
|
1056
1069
|
/**
|
|
1057
|
-
*
|
|
1058
|
-
*
|
|
1059
|
-
* @returns Information on the current scroll distance and the maximum.
|
|
1070
|
+
* After initialized, check if the content is centered and has an origin. If so, set the
|
|
1071
|
+
* special position states that transition the tab from the left or right before centering.
|
|
1060
1072
|
*/
|
|
1061
|
-
|
|
1062
|
-
if (this.
|
|
1063
|
-
|
|
1073
|
+
ngOnInit() {
|
|
1074
|
+
if (this._position == 'center' && this.origin != null) {
|
|
1075
|
+
this._position = this._computePositionFromOrigin(this.origin);
|
|
1064
1076
|
}
|
|
1065
|
-
const maxScrollDistance = this._getMaxScrollDistance();
|
|
1066
|
-
this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));
|
|
1067
|
-
// Mark that the scroll distance has changed so that after the view is checked, the CSS
|
|
1068
|
-
// transformation can move the header.
|
|
1069
|
-
this._scrollDistanceChanged = true;
|
|
1070
|
-
this._checkScrollingControls();
|
|
1071
|
-
return { maxScrollDistance, distance: this._scrollDistance };
|
|
1072
1077
|
}
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatPaginatedTabHeader, decorators: [{
|
|
1077
|
-
type: Directive
|
|
1078
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i2.Directionality, decorators: [{
|
|
1079
|
-
type: Optional
|
|
1080
|
-
}] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{
|
|
1081
|
-
type: Optional
|
|
1082
|
-
}, {
|
|
1083
|
-
type: Inject,
|
|
1084
|
-
args: [ANIMATION_MODULE_TYPE]
|
|
1085
|
-
}] }], propDecorators: { disablePagination: [{
|
|
1086
|
-
type: Input
|
|
1087
|
-
}] } });
|
|
1088
|
-
|
|
1089
|
-
/**
|
|
1090
|
-
* The header of the tab group which displays a list of all the tabs in the tab group. Includes
|
|
1091
|
-
* an ink bar that follows the currently selected tab. When the tabs list's width exceeds the
|
|
1092
|
-
* width of the header container, then arrows will be displayed to allow the user to scroll
|
|
1093
|
-
* left and right across the header.
|
|
1094
|
-
* @docs-private
|
|
1095
|
-
*/
|
|
1096
|
-
class MatTabHeader extends MatPaginatedTabHeader {
|
|
1097
|
-
/** Whether the ripple effect is disabled or not. */
|
|
1098
|
-
get disableRipple() {
|
|
1099
|
-
return this._disableRipple;
|
|
1078
|
+
ngOnDestroy() {
|
|
1079
|
+
this._dirChangeSubscription.unsubscribe();
|
|
1080
|
+
this._translateTabComplete.complete();
|
|
1100
1081
|
}
|
|
1101
|
-
|
|
1102
|
-
|
|
1082
|
+
_onTranslateTabStarted(event) {
|
|
1083
|
+
const isCentering = this._isCenterPosition(event.toState);
|
|
1084
|
+
this._beforeCentering.emit(isCentering);
|
|
1085
|
+
if (isCentering) {
|
|
1086
|
+
this._onCentering.emit(this._elementRef.nativeElement.clientHeight);
|
|
1087
|
+
}
|
|
1103
1088
|
}
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
this.
|
|
1089
|
+
/** The text direction of the containing app. */
|
|
1090
|
+
_getLayoutDirection() {
|
|
1091
|
+
return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';
|
|
1107
1092
|
}
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1093
|
+
/** Whether the provided position state is considered center, regardless of origin. */
|
|
1094
|
+
_isCenterPosition(position) {
|
|
1095
|
+
return (position == 'center' || position == 'left-origin-center' || position == 'right-origin-center');
|
|
1111
1096
|
}
|
|
1112
|
-
|
|
1113
|
-
|
|
1097
|
+
/** Computes the position state that will be used for the tab-body animation trigger. */
|
|
1098
|
+
_computePositionAnimationState(dir = this._getLayoutDirection()) {
|
|
1099
|
+
if (this._positionIndex < 0) {
|
|
1100
|
+
this._position = dir == 'ltr' ? 'left' : 'right';
|
|
1101
|
+
}
|
|
1102
|
+
else if (this._positionIndex > 0) {
|
|
1103
|
+
this._position = dir == 'ltr' ? 'right' : 'left';
|
|
1104
|
+
}
|
|
1105
|
+
else {
|
|
1106
|
+
this._position = 'center';
|
|
1107
|
+
}
|
|
1114
1108
|
}
|
|
1115
|
-
|
|
1116
|
-
|
|
1109
|
+
/**
|
|
1110
|
+
* Computes the position state based on the specified origin position. This is used if the
|
|
1111
|
+
* tab is becoming visible immediately after creation.
|
|
1112
|
+
*/
|
|
1113
|
+
_computePositionFromOrigin(origin) {
|
|
1114
|
+
const dir = this._getLayoutDirection();
|
|
1115
|
+
if ((dir == 'ltr' && origin <= 0) || (dir == 'rtl' && origin > 0)) {
|
|
1116
|
+
return 'left-origin-center';
|
|
1117
|
+
}
|
|
1118
|
+
return 'right-origin-center';
|
|
1119
|
+
}
|
|
1120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabBody, deps: [{ token: i0.ElementRef }, { token: i2.Directionality, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1121
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MatTabBody, isStandalone: true, selector: "mat-tab-body", inputs: { _content: ["content", "_content"], origin: "origin", animationDuration: "animationDuration", preserveContent: "preserveContent", position: "position" }, outputs: { _onCentering: "_onCentering", _beforeCentering: "_beforeCentering", _afterLeavingCenter: "_afterLeavingCenter", _onCentered: "_onCentered" }, host: { classAttribute: "mat-mdc-tab-body" }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: CdkPortalOutlet, descendants: true }], ngImport: i0, template: "<div class=\"mat-mdc-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n", styles: [".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*=\"visibility: hidden\"]{display:none}"], dependencies: [{ kind: "directive", type: MatTabBodyPortal, selector: "[matTabBodyHost]" }, { kind: "directive", type: CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }], animations: [matTabsAnimations.translateTab], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1117
1122
|
}
|
|
1118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type:
|
|
1123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabBody, decorators: [{
|
|
1119
1124
|
type: Component,
|
|
1120
|
-
args: [{ selector: 'mat-tab-
|
|
1121
|
-
'class': 'mat-mdc-tab-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
}, template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n\n<div\n class=\"mat-mdc-tab-label-container\"\n #tabListContainer\n (keydown)=\"_handleKeydown($event)\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\">\n <div\n #tabList\n class=\"mat-mdc-tab-list\"\n role=\"tablist\"\n (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-labels\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-labels{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-header .mat-mdc-tab-labels{justify-content:flex-end}.mat-mdc-tab::before{margin:5px}.cdk-high-contrast-active .mat-mdc-tab[aria-disabled=true]{color:GrayText}"] }]
|
|
1125
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i2.Directionality, decorators: [{
|
|
1126
|
-
type: Optional
|
|
1127
|
-
}] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{
|
|
1125
|
+
args: [{ selector: 'mat-tab-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, animations: [matTabsAnimations.translateTab], host: {
|
|
1126
|
+
'class': 'mat-mdc-tab-body',
|
|
1127
|
+
}, standalone: true, imports: [MatTabBodyPortal, CdkScrollable], template: "<div class=\"mat-mdc-tab-body-content\" #content\n [@translateTab]=\"{\n value: _position,\n params: {animationDuration: animationDuration}\n }\"\n (@translateTab.start)=\"_onTranslateTabStarted($event)\"\n (@translateTab.done)=\"_translateTabComplete.next($event)\"\n cdkScrollable>\n <ng-template matTabBodyHost></ng-template>\n</div>\n", styles: [".mat-mdc-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;outline:0;flex-basis:100%}.mat-mdc-tab-body.mat-mdc-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-mdc-tab-group.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body.mat-mdc-tab-body-active{overflow-y:hidden}.mat-mdc-tab-body-content{height:100%;overflow:auto}.mat-mdc-tab-group-dynamic-height .mat-mdc-tab-body-content{overflow:hidden}.mat-mdc-tab-body-content[style*=\"visibility: hidden\"]{display:none}"] }]
|
|
1128
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2.Directionality, decorators: [{
|
|
1128
1129
|
type: Optional
|
|
1129
|
-
}, {
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
}],
|
|
1136
|
-
type:
|
|
1137
|
-
|
|
1138
|
-
}], _tabList: [{
|
|
1139
|
-
type: ViewChild,
|
|
1140
|
-
args: ['tabList', { static: true }]
|
|
1141
|
-
}], _tabListInner: [{
|
|
1142
|
-
type: ViewChild,
|
|
1143
|
-
args: ['tabListInner', { static: true }]
|
|
1144
|
-
}], _nextPaginator: [{
|
|
1145
|
-
type: ViewChild,
|
|
1146
|
-
args: ['nextPaginator']
|
|
1147
|
-
}], _previousPaginator: [{
|
|
1130
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { _onCentering: [{
|
|
1131
|
+
type: Output
|
|
1132
|
+
}], _beforeCentering: [{
|
|
1133
|
+
type: Output
|
|
1134
|
+
}], _afterLeavingCenter: [{
|
|
1135
|
+
type: Output
|
|
1136
|
+
}], _onCentered: [{
|
|
1137
|
+
type: Output
|
|
1138
|
+
}], _portalHost: [{
|
|
1148
1139
|
type: ViewChild,
|
|
1149
|
-
args: [
|
|
1150
|
-
}],
|
|
1140
|
+
args: [CdkPortalOutlet]
|
|
1141
|
+
}], _content: [{
|
|
1142
|
+
type: Input,
|
|
1143
|
+
args: ['content']
|
|
1144
|
+
}], origin: [{
|
|
1145
|
+
type: Input
|
|
1146
|
+
}], animationDuration: [{
|
|
1147
|
+
type: Input
|
|
1148
|
+
}], preserveContent: [{
|
|
1149
|
+
type: Input
|
|
1150
|
+
}], position: [{
|
|
1151
1151
|
type: Input
|
|
1152
1152
|
}] } });
|
|
1153
1153
|
|
|
1154
|
-
/** Injection token that can be used to provide the default options the tabs module. */
|
|
1155
|
-
const MAT_TABS_CONFIG = new InjectionToken('MAT_TABS_CONFIG');
|
|
1156
|
-
|
|
1157
1154
|
/** Used to generate unique ID's for each tab component */
|
|
1158
1155
|
let nextId = 0;
|
|
1159
|
-
// Boilerplate for applying mixins to MatTabGroup.
|
|
1160
|
-
/** @docs-private */
|
|
1161
|
-
const _MatTabGroupMixinBase = mixinColor(mixinDisableRipple(class {
|
|
1162
|
-
constructor(_elementRef) {
|
|
1163
|
-
this._elementRef = _elementRef;
|
|
1164
|
-
}
|
|
1165
|
-
}), 'primary');
|
|
1166
1156
|
/**
|
|
1167
1157
|
* Material design tab-group component. Supports basic tab pairs (label + content) and includes
|
|
1168
1158
|
* animated ink-bar, keyboard navigation, and screen reader.
|
|
1169
1159
|
* See: https://material.io/design/components/tabs.html
|
|
1170
1160
|
*/
|
|
1171
|
-
class MatTabGroup
|
|
1161
|
+
class MatTabGroup {
|
|
1172
1162
|
/** Whether the ink bar should fit its width to the size of the tab label content. */
|
|
1173
1163
|
get fitInkBarToContent() {
|
|
1174
1164
|
return this._fitInkBarToContent;
|
|
1175
1165
|
}
|
|
1176
|
-
set fitInkBarToContent(
|
|
1177
|
-
this._fitInkBarToContent =
|
|
1166
|
+
set fitInkBarToContent(value) {
|
|
1167
|
+
this._fitInkBarToContent = value;
|
|
1178
1168
|
this._changeDetectorRef.markForCheck();
|
|
1179
1169
|
}
|
|
1180
|
-
/** Whether tabs should be stretched to fill the header. */
|
|
1181
|
-
get stretchTabs() {
|
|
1182
|
-
return this._stretchTabs;
|
|
1183
|
-
}
|
|
1184
|
-
set stretchTabs(v) {
|
|
1185
|
-
this._stretchTabs = coerceBooleanProperty(v);
|
|
1186
|
-
}
|
|
1187
|
-
/** Whether the tab group should grow to the size of the active tab. */
|
|
1188
|
-
get dynamicHeight() {
|
|
1189
|
-
return this._dynamicHeight;
|
|
1190
|
-
}
|
|
1191
|
-
set dynamicHeight(value) {
|
|
1192
|
-
this._dynamicHeight = coerceBooleanProperty(value);
|
|
1193
|
-
}
|
|
1194
1170
|
/** The index of the active tab. */
|
|
1195
1171
|
get selectedIndex() {
|
|
1196
1172
|
return this._selectedIndex;
|
|
1197
1173
|
}
|
|
1198
1174
|
set selectedIndex(value) {
|
|
1199
|
-
this._indexToSelect =
|
|
1175
|
+
this._indexToSelect = isNaN(value) ? null : value;
|
|
1200
1176
|
}
|
|
1201
1177
|
/** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */
|
|
1202
1178
|
get animationDuration() {
|
|
1203
1179
|
return this._animationDuration;
|
|
1204
1180
|
}
|
|
1205
1181
|
set animationDuration(value) {
|
|
1206
|
-
|
|
1182
|
+
const stringValue = value + '';
|
|
1183
|
+
this._animationDuration = /^\d+$/.test(stringValue) ? value + 'ms' : stringValue;
|
|
1207
1184
|
}
|
|
1208
1185
|
/**
|
|
1209
1186
|
* `tabindex` to be set on the inner element that wraps the tab content. Can be used for improved
|
|
@@ -1215,28 +1192,7 @@ class MatTabGroup extends _MatTabGroupMixinBase {
|
|
|
1215
1192
|
return this._contentTabIndex;
|
|
1216
1193
|
}
|
|
1217
1194
|
set contentTabIndex(value) {
|
|
1218
|
-
this._contentTabIndex =
|
|
1219
|
-
}
|
|
1220
|
-
/**
|
|
1221
|
-
* Whether pagination should be disabled. This can be used to avoid unnecessary
|
|
1222
|
-
* layout recalculations if it's known that pagination won't be required.
|
|
1223
|
-
*/
|
|
1224
|
-
get disablePagination() {
|
|
1225
|
-
return this._disablePagination;
|
|
1226
|
-
}
|
|
1227
|
-
set disablePagination(value) {
|
|
1228
|
-
this._disablePagination = coerceBooleanProperty(value);
|
|
1229
|
-
}
|
|
1230
|
-
/**
|
|
1231
|
-
* By default tabs remove their content from the DOM while it's off-screen.
|
|
1232
|
-
* Setting this to `true` will keep it in the DOM which will prevent elements
|
|
1233
|
-
* like iframes and videos from reloading next time it comes back into the view.
|
|
1234
|
-
*/
|
|
1235
|
-
get preserveContent() {
|
|
1236
|
-
return this._preserveContent;
|
|
1237
|
-
}
|
|
1238
|
-
set preserveContent(value) {
|
|
1239
|
-
this._preserveContent = coerceBooleanProperty(value);
|
|
1195
|
+
this._contentTabIndex = isNaN(value) ? null : value;
|
|
1240
1196
|
}
|
|
1241
1197
|
/** Background color of the tab group. */
|
|
1242
1198
|
get backgroundColor() {
|
|
@@ -1250,8 +1206,8 @@ class MatTabGroup extends _MatTabGroupMixinBase {
|
|
|
1250
1206
|
}
|
|
1251
1207
|
this._backgroundColor = value;
|
|
1252
1208
|
}
|
|
1253
|
-
constructor(
|
|
1254
|
-
|
|
1209
|
+
constructor(_elementRef, _changeDetectorRef, defaultConfig, _animationMode) {
|
|
1210
|
+
this._elementRef = _elementRef;
|
|
1255
1211
|
this._changeDetectorRef = _changeDetectorRef;
|
|
1256
1212
|
this._animationMode = _animationMode;
|
|
1257
1213
|
/** All of the tabs that belong to the group. */
|
|
@@ -1267,13 +1223,26 @@ class MatTabGroup extends _MatTabGroupMixinBase {
|
|
|
1267
1223
|
/** Subscription to changes in the tab labels. */
|
|
1268
1224
|
this._tabLabelSubscription = Subscription.EMPTY;
|
|
1269
1225
|
this._fitInkBarToContent = false;
|
|
1270
|
-
|
|
1271
|
-
this.
|
|
1226
|
+
/** Whether tabs should be stretched to fill the header. */
|
|
1227
|
+
this.stretchTabs = true;
|
|
1228
|
+
/** Whether the tab group should grow to the size of the active tab. */
|
|
1229
|
+
this.dynamicHeight = false;
|
|
1272
1230
|
this._selectedIndex = null;
|
|
1273
1231
|
/** Position of the tab header. */
|
|
1274
1232
|
this.headerPosition = 'above';
|
|
1275
|
-
|
|
1276
|
-
|
|
1233
|
+
/**
|
|
1234
|
+
* Whether pagination should be disabled. This can be used to avoid unnecessary
|
|
1235
|
+
* layout recalculations if it's known that pagination won't be required.
|
|
1236
|
+
*/
|
|
1237
|
+
this.disablePagination = false;
|
|
1238
|
+
/** Whether ripples in the tab group are disabled. */
|
|
1239
|
+
this.disableRipple = false;
|
|
1240
|
+
/**
|
|
1241
|
+
* By default tabs remove their content from the DOM while it's off-screen.
|
|
1242
|
+
* Setting this to `true` will keep it in the DOM which will prevent elements
|
|
1243
|
+
* like iframes and videos from reloading next time it comes back into the view.
|
|
1244
|
+
*/
|
|
1245
|
+
this.preserveContent = false;
|
|
1277
1246
|
/** Output to enable support for two-way binding on `[(selectedIndex)]` */
|
|
1278
1247
|
this.selectedIndexChange = new EventEmitter();
|
|
1279
1248
|
/** Event emitted when focus has changed within a tab group. */
|
|
@@ -1291,7 +1260,9 @@ class MatTabGroup extends _MatTabGroupMixinBase {
|
|
|
1291
1260
|
: false;
|
|
1292
1261
|
this.dynamicHeight =
|
|
1293
1262
|
defaultConfig && defaultConfig.dynamicHeight != null ? defaultConfig.dynamicHeight : false;
|
|
1294
|
-
|
|
1263
|
+
if (defaultConfig?.contentTabIndex != null) {
|
|
1264
|
+
this.contentTabIndex = defaultConfig.contentTabIndex;
|
|
1265
|
+
}
|
|
1295
1266
|
this.preserveContent = !!defaultConfig?.preserveContent;
|
|
1296
1267
|
this.fitInkBarToContent =
|
|
1297
1268
|
defaultConfig && defaultConfig.fitInkBarToContent != null
|
|
@@ -1473,7 +1444,7 @@ class MatTabGroup extends _MatTabGroupMixinBase {
|
|
|
1473
1444
|
* height property is true.
|
|
1474
1445
|
*/
|
|
1475
1446
|
_setTabBodyWrapperHeight(tabHeight) {
|
|
1476
|
-
if (!this.
|
|
1447
|
+
if (!this.dynamicHeight || !this._tabBodyWrapperHeight) {
|
|
1477
1448
|
return;
|
|
1478
1449
|
}
|
|
1479
1450
|
const wrapper = this._tabBodyWrapper.nativeElement;
|
|
@@ -1514,16 +1485,16 @@ class MatTabGroup extends _MatTabGroupMixinBase {
|
|
|
1514
1485
|
}
|
|
1515
1486
|
}
|
|
1516
1487
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabGroup, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MAT_TABS_CONFIG, optional: true }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1517
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: MatTabGroup, selector: "mat-tab-group", inputs: { color: "color",
|
|
1488
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: MatTabGroup, isStandalone: true, selector: "mat-tab-group", inputs: { color: "color", fitInkBarToContent: ["fitInkBarToContent", "fitInkBarToContent", booleanAttribute], stretchTabs: ["mat-stretch-tabs", "stretchTabs", booleanAttribute], dynamicHeight: ["dynamicHeight", "dynamicHeight", booleanAttribute], selectedIndex: ["selectedIndex", "selectedIndex", numberAttribute], headerPosition: "headerPosition", animationDuration: "animationDuration", contentTabIndex: ["contentTabIndex", "contentTabIndex", numberAttribute], disablePagination: ["disablePagination", "disablePagination", booleanAttribute], disableRipple: ["disableRipple", "disableRipple", booleanAttribute], preserveContent: ["preserveContent", "preserveContent", booleanAttribute], backgroundColor: "backgroundColor" }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", animationDone: "animationDone", selectedTabChange: "selectedTabChange" }, host: { attributes: { "ngSkipHydration": "" }, properties: { "class": "\"mat-\" + (color || \"primary\")", "class.mat-mdc-tab-group-dynamic-height": "dynamicHeight", "class.mat-mdc-tab-group-inverted-header": "headerPosition === \"below\"", "class.mat-mdc-tab-group-stretch-tabs": "stretchTabs", "style.--mat-tab-animation-duration": "animationDuration" }, classAttribute: "mat-mdc-tab-group" }, providers: [
|
|
1518
1489
|
{
|
|
1519
1490
|
provide: MAT_TAB_GROUP,
|
|
1520
1491
|
useExisting: MatTabGroup,
|
|
1521
1492
|
},
|
|
1522
|
-
], queries: [{ propertyName: "_allTabs", predicate: MatTab, descendants: true }], viewQueries: [{ propertyName: "_tabBodyWrapper", first: true, predicate: ["tabBodyWrapper"], descendants: true }, { propertyName: "_tabHeader", first: true, predicate: ["tabHeader"], descendants: true }], exportAs: ["matTabGroup"], usesInheritance: true, ngImport: i0, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n @for (tab of _tabs; track tab; let i = $index) {\n <div class=\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mdc-tab--active]=\"selectedIndex === i\"\n [ngClass]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [fitInkBarToContent]=\"fitInkBarToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n <span class=\"mdc-tab__ripple\"></span>\n\n <!-- Needs to be a separate element, because we can't put\n `overflow: hidden` on tab due to the ink bar. -->\n <div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"tabNode\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"></div>\n\n <span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <!--\n If there is a label template, use it, otherwise fall back to the text label.\n Note that we don't have indentation around the text label, because it adds\n whitespace around the text which breaks some internal tests.\n -->\n @if (tab.templateLabel) {\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n } @else {{{tab.textLabel}}}\n </span>\n </span>\n </div>\n }\n</mat-tab-header>\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n @for (tab of _tabs; track tab; let i = $index) {\n <mat-tab-body role=\"tabpanel\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [attr.aria-hidden]=\"selectedIndex !== i\"\n [class.mat-mdc-tab-body-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n }\n</div>\n", styles: [".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i6.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: MatTabBody, selector: "mat-tab-body", inputs: ["content", "origin", "animationDuration", "preserveContent", "position"], outputs: ["_onCentering", "_beforeCentering", "_afterLeavingCenter", "_onCentered"] }, { kind: "directive", type: MatTabLabelWrapper, selector: "[matTabLabelWrapper]", inputs: ["disabled", "fitInkBarToContent"] }, { kind: "component", type: MatTabHeader, selector: "mat-tab-header", inputs: ["selectedIndex", "disableRipple"], outputs: ["selectFocusedIndex", "indexFocused"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1493
|
+
], queries: [{ propertyName: "_allTabs", predicate: MatTab, descendants: true }], viewQueries: [{ propertyName: "_tabBodyWrapper", first: true, predicate: ["tabBodyWrapper"], descendants: true }, { propertyName: "_tabHeader", first: true, predicate: ["tabHeader"], descendants: true }], exportAs: ["matTabGroup"], ngImport: i0, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n @for (tab of _tabs; track tab; let i = $index) {\n <div class=\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mdc-tab--active]=\"selectedIndex === i\"\n [ngClass]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [fitInkBarToContent]=\"fitInkBarToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n <span class=\"mdc-tab__ripple\"></span>\n\n <!-- Needs to be a separate element, because we can't put\n `overflow: hidden` on tab due to the ink bar. -->\n <div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"tabNode\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"></div>\n\n <span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <!--\n If there is a label template, use it, otherwise fall back to the text label.\n Note that we don't have indentation around the text label, because it adds\n whitespace around the text which breaks some internal tests.\n -->\n @if (tab.templateLabel) {\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n } @else {{{tab.textLabel}}}\n </span>\n </span>\n </div>\n }\n</mat-tab-header>\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n @for (tab of _tabs; track tab; let i = $index) {\n <mat-tab-body role=\"tabpanel\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [attr.aria-hidden]=\"selectedIndex !== i\"\n [class.mat-mdc-tab-body-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n }\n</div>\n", styles: [".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}"], dependencies: [{ kind: "component", type: MatTabHeader, selector: "mat-tab-header", inputs: ["selectedIndex", "disableRipple"], outputs: ["selectFocusedIndex", "indexFocused"] }, { kind: "directive", type: MatTabLabelWrapper, selector: "[matTabLabelWrapper]", inputs: ["fitInkBarToContent", "disabled"] }, { kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: MatTabBody, selector: "mat-tab-body", inputs: ["content", "origin", "animationDuration", "preserveContent", "position"], outputs: ["_onCentering", "_beforeCentering", "_afterLeavingCenter", "_onCentered"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1523
1494
|
}
|
|
1524
1495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabGroup, decorators: [{
|
|
1525
1496
|
type: Component,
|
|
1526
|
-
args: [{ selector: 'mat-tab-group', exportAs: 'matTabGroup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default,
|
|
1497
|
+
args: [{ selector: 'mat-tab-group', exportAs: 'matTabGroup', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, providers: [
|
|
1527
1498
|
{
|
|
1528
1499
|
provide: MAT_TAB_GROUP,
|
|
1529
1500
|
useExisting: MatTabGroup,
|
|
@@ -1531,11 +1502,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1531
1502
|
], host: {
|
|
1532
1503
|
'ngSkipHydration': '',
|
|
1533
1504
|
'class': 'mat-mdc-tab-group',
|
|
1505
|
+
'[class]': '"mat-" + (color || "primary")',
|
|
1534
1506
|
'[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',
|
|
1535
1507
|
'[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === "below"',
|
|
1536
1508
|
'[class.mat-mdc-tab-group-stretch-tabs]': 'stretchTabs',
|
|
1537
1509
|
'[style.--mat-tab-animation-duration]': 'animationDuration',
|
|
1538
|
-
}, template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n @for (tab of _tabs; track tab; let i = $index) {\n <div class=\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mdc-tab--active]=\"selectedIndex === i\"\n [ngClass]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [fitInkBarToContent]=\"fitInkBarToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n <span class=\"mdc-tab__ripple\"></span>\n\n <!-- Needs to be a separate element, because we can't put\n `overflow: hidden` on tab due to the ink bar. -->\n <div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"tabNode\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"></div>\n\n <span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <!--\n If there is a label template, use it, otherwise fall back to the text label.\n Note that we don't have indentation around the text label, because it adds\n whitespace around the text which breaks some internal tests.\n -->\n @if (tab.templateLabel) {\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n } @else {{{tab.textLabel}}}\n </span>\n </span>\n </div>\n }\n</mat-tab-header>\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n @for (tab of _tabs; track tab; let i = $index) {\n <mat-tab-body role=\"tabpanel\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [attr.aria-hidden]=\"selectedIndex !== i\"\n [class.mat-mdc-tab-body-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n }\n</div>\n", styles: [".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}"] }]
|
|
1510
|
+
}, standalone: true, imports: [
|
|
1511
|
+
MatTabHeader,
|
|
1512
|
+
MatTabLabelWrapper,
|
|
1513
|
+
CdkMonitorFocus,
|
|
1514
|
+
NgClass,
|
|
1515
|
+
MatRipple,
|
|
1516
|
+
CdkPortalOutlet,
|
|
1517
|
+
MatTabBody,
|
|
1518
|
+
], template: "<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n [disablePagination]=\"disablePagination\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n @for (tab of _tabs; track tab; let i = $index) {\n <div class=\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!tab.ariaLabel && tab.ariaLabelledby) ? tab.ariaLabelledby : null\"\n [class.mdc-tab--active]=\"selectedIndex === i\"\n [ngClass]=\"tab.labelClass\"\n [disabled]=\"tab.disabled\"\n [fitInkBarToContent]=\"fitInkBarToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\">\n <span class=\"mdc-tab__ripple\"></span>\n\n <!-- Needs to be a separate element, because we can't put\n `overflow: hidden` on tab due to the ink bar. -->\n <div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"tabNode\"\n [matRippleDisabled]=\"tab.disabled || disableRipple\"></div>\n\n <span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <!--\n If there is a label template, use it, otherwise fall back to the text label.\n Note that we don't have indentation around the text label, because it adds\n whitespace around the text which breaks some internal tests.\n -->\n @if (tab.templateLabel) {\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n } @else {{{tab.textLabel}}}\n </span>\n </span>\n </div>\n }\n</mat-tab-header>\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n @for (tab of _tabs; track tab; let i = $index) {\n <mat-tab-body role=\"tabpanel\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [attr.aria-hidden]=\"selectedIndex !== i\"\n [class.mat-mdc-tab-body-active]=\"selectedIndex === i\"\n [ngClass]=\"tab.bodyClass\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [animationDuration]=\"animationDuration\"\n [preserveContent]=\"preserveContent\"\n (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n </mat-tab-body>\n }\n</div>\n", styles: [".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab.mdc-tab{flex-grow:0}.mat-mdc-tab:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-group.mat-mdc-tab-group-stretch-tabs>.mat-mdc-tab-header .mat-mdc-tab{flex-grow:1}.mat-mdc-tab-group{display:flex;flex-direction:column;max-width:100%}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mat-mdc-tab .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background.mat-primary>.mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-header .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-focus-indicator::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mdc-tab__ripple::before,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-group.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header{flex-direction:column-reverse}.mat-mdc-tab-group.mat-mdc-tab-group-inverted-header .mdc-tab-indicator__content--underline{align-self:flex-start}.mat-mdc-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height 500ms cubic-bezier(0.35, 0, 0.25, 1)}.mat-mdc-tab-body-wrapper._mat-animation-noopable{transition:none !important;animation:none !important}"] }]
|
|
1539
1519
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
1540
1520
|
type: Inject,
|
|
1541
1521
|
args: [MAT_TABS_CONFIG]
|
|
@@ -1555,25 +1535,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1555
1535
|
}], _tabHeader: [{
|
|
1556
1536
|
type: ViewChild,
|
|
1557
1537
|
args: ['tabHeader']
|
|
1558
|
-
}],
|
|
1538
|
+
}], color: [{
|
|
1559
1539
|
type: Input
|
|
1540
|
+
}], fitInkBarToContent: [{
|
|
1541
|
+
type: Input,
|
|
1542
|
+
args: [{ transform: booleanAttribute }]
|
|
1560
1543
|
}], stretchTabs: [{
|
|
1561
1544
|
type: Input,
|
|
1562
|
-
args: ['mat-stretch-tabs']
|
|
1545
|
+
args: [{ alias: 'mat-stretch-tabs', transform: booleanAttribute }]
|
|
1563
1546
|
}], dynamicHeight: [{
|
|
1564
|
-
type: Input
|
|
1547
|
+
type: Input,
|
|
1548
|
+
args: [{ transform: booleanAttribute }]
|
|
1565
1549
|
}], selectedIndex: [{
|
|
1566
|
-
type: Input
|
|
1550
|
+
type: Input,
|
|
1551
|
+
args: [{ transform: numberAttribute }]
|
|
1567
1552
|
}], headerPosition: [{
|
|
1568
1553
|
type: Input
|
|
1569
1554
|
}], animationDuration: [{
|
|
1570
1555
|
type: Input
|
|
1571
1556
|
}], contentTabIndex: [{
|
|
1572
|
-
type: Input
|
|
1557
|
+
type: Input,
|
|
1558
|
+
args: [{ transform: numberAttribute }]
|
|
1573
1559
|
}], disablePagination: [{
|
|
1574
|
-
type: Input
|
|
1560
|
+
type: Input,
|
|
1561
|
+
args: [{ transform: booleanAttribute }]
|
|
1562
|
+
}], disableRipple: [{
|
|
1563
|
+
type: Input,
|
|
1564
|
+
args: [{ transform: booleanAttribute }]
|
|
1575
1565
|
}], preserveContent: [{
|
|
1576
|
-
type: Input
|
|
1566
|
+
type: Input,
|
|
1567
|
+
args: [{ transform: booleanAttribute }]
|
|
1577
1568
|
}], backgroundColor: [{
|
|
1578
1569
|
type: Input
|
|
1579
1570
|
}], selectedIndexChange: [{
|
|
@@ -1600,22 +1591,16 @@ class MatTabNav extends MatPaginatedTabHeader {
|
|
|
1600
1591
|
get fitInkBarToContent() {
|
|
1601
1592
|
return this._fitInkBarToContent.value;
|
|
1602
1593
|
}
|
|
1603
|
-
set fitInkBarToContent(
|
|
1604
|
-
this._fitInkBarToContent.next(
|
|
1594
|
+
set fitInkBarToContent(value) {
|
|
1595
|
+
this._fitInkBarToContent.next(value);
|
|
1605
1596
|
this._changeDetectorRef.markForCheck();
|
|
1606
1597
|
}
|
|
1607
|
-
/** Whether tabs should be stretched to fill the header. */
|
|
1608
|
-
get stretchTabs() {
|
|
1609
|
-
return this._stretchTabs;
|
|
1610
|
-
}
|
|
1611
|
-
set stretchTabs(v) {
|
|
1612
|
-
this._stretchTabs = coerceBooleanProperty(v);
|
|
1613
|
-
}
|
|
1614
1598
|
get animationDuration() {
|
|
1615
1599
|
return this._animationDuration;
|
|
1616
1600
|
}
|
|
1617
1601
|
set animationDuration(value) {
|
|
1618
|
-
|
|
1602
|
+
const stringValue = value + '';
|
|
1603
|
+
this._animationDuration = /^\d+$/.test(stringValue) ? value + 'ms' : stringValue;
|
|
1619
1604
|
}
|
|
1620
1605
|
/** Background color of the tab nav. */
|
|
1621
1606
|
get backgroundColor() {
|
|
@@ -1629,18 +1614,13 @@ class MatTabNav extends MatPaginatedTabHeader {
|
|
|
1629
1614
|
}
|
|
1630
1615
|
this._backgroundColor = value;
|
|
1631
1616
|
}
|
|
1632
|
-
/** Whether the ripple effect is disabled or not. */
|
|
1633
|
-
get disableRipple() {
|
|
1634
|
-
return this._disableRipple;
|
|
1635
|
-
}
|
|
1636
|
-
set disableRipple(value) {
|
|
1637
|
-
this._disableRipple = coerceBooleanProperty(value);
|
|
1638
|
-
}
|
|
1639
1617
|
constructor(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode, defaultConfig) {
|
|
1640
1618
|
super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);
|
|
1641
1619
|
this._fitInkBarToContent = new BehaviorSubject(false);
|
|
1642
|
-
|
|
1643
|
-
this.
|
|
1620
|
+
/** Whether tabs should be stretched to fill the header. */
|
|
1621
|
+
this.stretchTabs = true;
|
|
1622
|
+
/** Whether the ripple effect is disabled or not. */
|
|
1623
|
+
this.disableRipple = false;
|
|
1644
1624
|
/** Theme color of the nav bar. */
|
|
1645
1625
|
this.color = 'primary';
|
|
1646
1626
|
this.disablePagination =
|
|
@@ -1696,11 +1676,11 @@ class MatTabNav extends MatPaginatedTabHeader {
|
|
|
1696
1676
|
return this.tabPanel ? 'tablist' : this._elementRef.nativeElement.getAttribute('role');
|
|
1697
1677
|
}
|
|
1698
1678
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabNav, deps: [{ token: i0.ElementRef }, { token: i2.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1699
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MatTabNav, selector: "[mat-tab-nav-bar]", inputs: { color: "color", fitInkBarToContent: "fitInkBarToContent", stretchTabs: ["mat-stretch-tabs", "stretchTabs"], animationDuration: "animationDuration", backgroundColor: "backgroundColor", disableRipple: "disableRipple", tabPanel: "tabPanel" }, host: { properties: { "attr.role": "_getRole()", "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'", "class.mat-mdc-tab-nav-bar-stretch-tabs": "stretchTabs", "class.mat-primary": "color !== \"warn\" && color !== \"accent\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "class._mat-animation-noopable": "_animationMode === \"NoopAnimations\"", "style.--mat-tab-animation-duration": "animationDuration" }, classAttribute: "mat-mdc-tab-nav-bar mat-mdc-tab-header" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(() => MatTabLink), descendants: true }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], exportAs: ["matTabNavBar", "matTabNav"], usesInheritance: true, ngImport: i0, template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-mdc-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div class=\"mat-mdc-tab-list\" #tabList (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-focus-indicator::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab__ripple::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}"], dependencies: [{ kind: "directive", type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1679
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.4", type: MatTabNav, isStandalone: true, selector: "[mat-tab-nav-bar]", inputs: { fitInkBarToContent: ["fitInkBarToContent", "fitInkBarToContent", booleanAttribute], stretchTabs: ["mat-stretch-tabs", "stretchTabs", booleanAttribute], animationDuration: "animationDuration", backgroundColor: "backgroundColor", disableRipple: ["disableRipple", "disableRipple", booleanAttribute], color: "color", tabPanel: "tabPanel" }, host: { properties: { "attr.role": "_getRole()", "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'", "class.mat-mdc-tab-nav-bar-stretch-tabs": "stretchTabs", "class.mat-primary": "color !== \"warn\" && color !== \"accent\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "class._mat-animation-noopable": "_animationMode === \"NoopAnimations\"", "style.--mat-tab-animation-duration": "animationDuration" }, classAttribute: "mat-mdc-tab-nav-bar mat-mdc-tab-header" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(() => MatTabLink), descendants: true }], viewQueries: [{ propertyName: "_tabListContainer", first: true, predicate: ["tabListContainer"], descendants: true, static: true }, { propertyName: "_tabList", first: true, predicate: ["tabList"], descendants: true, static: true }, { propertyName: "_tabListInner", first: true, predicate: ["tabListInner"], descendants: true, static: true }, { propertyName: "_nextPaginator", first: true, predicate: ["nextPaginator"], descendants: true }, { propertyName: "_previousPaginator", first: true, predicate: ["previousPaginator"], descendants: true }], exportAs: ["matTabNavBar", "matTabNav"], usesInheritance: true, ngImport: i0, template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-mdc-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div class=\"mat-mdc-tab-list\" #tabList (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-focus-indicator::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab__ripple::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1700
1680
|
}
|
|
1701
1681
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabNav, decorators: [{
|
|
1702
1682
|
type: Component,
|
|
1703
|
-
args: [{ selector: '[mat-tab-nav-bar]', exportAs: 'matTabNavBar, matTabNav',
|
|
1683
|
+
args: [{ selector: '[mat-tab-nav-bar]', exportAs: 'matTabNavBar, matTabNav', host: {
|
|
1704
1684
|
'[attr.role]': '_getRole()',
|
|
1705
1685
|
'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',
|
|
1706
1686
|
'[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',
|
|
@@ -1711,7 +1691,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1711
1691
|
'[class.mat-warn]': 'color === "warn"',
|
|
1712
1692
|
'[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"',
|
|
1713
1693
|
'[style.--mat-tab-animation-duration]': 'animationDuration',
|
|
1714
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-mdc-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div class=\"mat-mdc-tab-list\" #tabList (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-focus-indicator::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab__ripple::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}"] }]
|
|
1694
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, standalone: true, imports: [MatRipple, CdkObserveContent], template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n tabindex=\"-1\"\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n [disabled]=\"_disableScrollBefore || null\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n\n<div class=\"mat-mdc-tab-link-container\" #tabListContainer (keydown)=\"_handleKeydown($event)\">\n <div class=\"mat-mdc-tab-list\" #tabList (cdkObserveContent)=\"_onContentChanges()\">\n <div class=\"mat-mdc-tab-links\" #tabListInner>\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<button class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n type=\"button\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n [disabled]=\"_disableScrollAfter || null\"\n tabindex=\"-1\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</button>\n", styles: [".mdc-tab{min-width:90px;padding-right:24px;padding-left:24px;display:flex;flex:1 0 auto;justify-content:center;box-sizing:border-box;margin:0;padding-top:0;padding-bottom:0;border:none;outline:none;text-align:center;white-space:nowrap;cursor:pointer;-webkit-appearance:none;z-index:1}.mdc-tab::-moz-focus-inner{padding:0;border:0}.mdc-tab[hidden]{display:none}.mdc-tab--min-width{flex:0 1 auto}.mdc-tab__content{display:flex;align-items:center;justify-content:center;height:inherit;pointer-events:none}.mdc-tab__text-label{transition:150ms color linear;display:inline-block;line-height:1;z-index:2}.mdc-tab__icon{transition:150ms color linear;z-index:2}.mdc-tab--stacked .mdc-tab__content{flex-direction:column;align-items:center;justify-content:center}.mdc-tab--stacked .mdc-tab__text-label{padding-top:6px;padding-bottom:4px}.mdc-tab--active .mdc-tab__text-label,.mdc-tab--active .mdc-tab__icon{transition-delay:100ms}.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label{padding-left:8px;padding-right:0}[dir=rtl] .mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label,.mdc-tab:not(.mdc-tab--stacked) .mdc-tab__icon+.mdc-tab__text-label[dir=rtl]{padding-left:0;padding-right:8px}.mdc-tab-indicator{display:flex;position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;pointer-events:none;z-index:1}.mdc-tab-indicator__content{transform-origin:left;opacity:0}.mdc-tab-indicator__content--underline{align-self:flex-end;box-sizing:border-box;width:100%;border-top-style:solid}.mdc-tab-indicator__content--icon{align-self:center;margin:0 auto}.mdc-tab-indicator--active .mdc-tab-indicator__content{opacity:1}.mdc-tab-indicator .mdc-tab-indicator__content{transition:250ms transform cubic-bezier(0.4, 0, 0.2, 1)}.mdc-tab-indicator--no-transition .mdc-tab-indicator__content{transition:none}.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition:150ms opacity linear}.mdc-tab-indicator--active.mdc-tab-indicator--fade .mdc-tab-indicator__content{transition-delay:100ms}.mat-mdc-tab-ripple{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.mat-mdc-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mdc-tab-indicator .mdc-tab-indicator__content{transition-duration:var(--mat-tab-animation-duration, 250ms)}.mat-mdc-tab-header-pagination{-webkit-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:rgba(0,0,0,0);touch-action:none;box-sizing:content-box;background:none;border:none;outline:0;padding:0}.mat-mdc-tab-header-pagination::-moz-focus-inner{border:0}.mat-mdc-tab-header-pagination .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header-pagination-controls-enabled .mat-mdc-tab-header-pagination{display:flex}.mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after{padding-left:4px}.mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before,.mat-mdc-tab-header-pagination-after{padding-right:4px}.mat-mdc-tab-header-rtl .mat-mdc-tab-header-pagination-before .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-header-pagination-after .mat-mdc-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-mdc-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;height:8px;width:8px;border-color:var(--mat-tab-header-pagination-icon-color)}.mat-mdc-tab-header-pagination-disabled{box-shadow:none;cursor:default;pointer-events:none}.mat-mdc-tab-header-pagination-disabled .mat-mdc-tab-header-pagination-chevron{opacity:.4}.mat-mdc-tab-list{flex-grow:1;position:relative;transition:transform 500ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-mdc-tab-list{transition:none}._mat-animation-noopable span.mdc-tab-indicator__content,._mat-animation-noopable span.mdc-tab__text-label{transition:none}.mat-mdc-tab-links{display:flex;flex:1 0 auto}[mat-align-tabs=center]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:center}[mat-align-tabs=end]>.mat-mdc-tab-link-container .mat-mdc-tab-links{justify-content:flex-end}.mat-mdc-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination{background-color:var(--mat-tab-header-with-background-background-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background.mat-primary>.mat-mdc-tab-link-container .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab__text-label{color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background:not(.mat-primary)>.mat-mdc-tab-link-container .mat-mdc-tab-link:not(.mdc-tab--active) .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-focus-indicator::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-focus-indicator::before{border-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mdc-tab__ripple::before,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-ripple-element,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mdc-tab__ripple::before{background-color:var(--mat-tab-header-with-background-foreground-color)}.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-link-container .mat-mdc-tab-header-pagination-chevron,.mat-mdc-tab-nav-bar.mat-tabs-with-background>.mat-mdc-tab-header-pagination .mat-mdc-tab-header-pagination-chevron{color:var(--mat-tab-header-with-background-foreground-color)}"] }]
|
|
1715
1695
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2.Directionality, decorators: [{
|
|
1716
1696
|
type: Optional
|
|
1717
1697
|
}] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.ViewportRuler }, { type: i3.Platform }, { type: undefined, decorators: [{
|
|
@@ -1725,10 +1705,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1725
1705
|
type: Inject,
|
|
1726
1706
|
args: [MAT_TABS_CONFIG]
|
|
1727
1707
|
}] }], propDecorators: { fitInkBarToContent: [{
|
|
1728
|
-
type: Input
|
|
1708
|
+
type: Input,
|
|
1709
|
+
args: [{ transform: booleanAttribute }]
|
|
1729
1710
|
}], stretchTabs: [{
|
|
1730
1711
|
type: Input,
|
|
1731
|
-
args: ['mat-stretch-tabs']
|
|
1712
|
+
args: [{ alias: 'mat-stretch-tabs', transform: booleanAttribute }]
|
|
1732
1713
|
}], animationDuration: [{
|
|
1733
1714
|
type: Input
|
|
1734
1715
|
}], _items: [{
|
|
@@ -1737,7 +1718,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1737
1718
|
}], backgroundColor: [{
|
|
1738
1719
|
type: Input
|
|
1739
1720
|
}], disableRipple: [{
|
|
1740
|
-
type: Input
|
|
1721
|
+
type: Input,
|
|
1722
|
+
args: [{ transform: booleanAttribute }]
|
|
1741
1723
|
}], color: [{
|
|
1742
1724
|
type: Input
|
|
1743
1725
|
}], tabPanel: [{
|
|
@@ -1759,8 +1741,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1759
1741
|
args: ['previousPaginator']
|
|
1760
1742
|
}] } });
|
|
1761
1743
|
// Boilerplate for applying mixins to MatTabLink.
|
|
1762
|
-
const _MatTabLinkMixinBase = mixinInkBarItem(
|
|
1763
|
-
})
|
|
1744
|
+
const _MatTabLinkMixinBase = mixinInkBarItem(class {
|
|
1745
|
+
});
|
|
1764
1746
|
/**
|
|
1765
1747
|
* Link inside a `mat-tab-nav-bar`.
|
|
1766
1748
|
*/
|
|
@@ -1770,9 +1752,8 @@ class MatTabLink extends _MatTabLinkMixinBase {
|
|
|
1770
1752
|
return this._isActive;
|
|
1771
1753
|
}
|
|
1772
1754
|
set active(value) {
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
this._isActive = newValue;
|
|
1755
|
+
if (value !== this._isActive) {
|
|
1756
|
+
this._isActive = value;
|
|
1776
1757
|
this._tabNavBar.updateActiveLink();
|
|
1777
1758
|
}
|
|
1778
1759
|
}
|
|
@@ -1795,6 +1776,11 @@ class MatTabLink extends _MatTabLinkMixinBase {
|
|
|
1795
1776
|
this._destroyed = new Subject();
|
|
1796
1777
|
/** Whether the tab link is active or not. */
|
|
1797
1778
|
this._isActive = false;
|
|
1779
|
+
/** Whether the tab link is disabled. */
|
|
1780
|
+
this.disabled = false;
|
|
1781
|
+
/** Whether ripples are disabled on the tab link. */
|
|
1782
|
+
this.disableRipple = false;
|
|
1783
|
+
this.tabIndex = 0;
|
|
1798
1784
|
/** Unique id for the tab. */
|
|
1799
1785
|
this.id = `mat-tab-link-${nextUniqueId++}`;
|
|
1800
1786
|
this.rippleConfig = globalRippleOptions || {};
|
|
@@ -1860,15 +1846,15 @@ class MatTabLink extends _MatTabLinkMixinBase {
|
|
|
1860
1846
|
return this._isActive && !this.disabled ? 0 : -1;
|
|
1861
1847
|
}
|
|
1862
1848
|
else {
|
|
1863
|
-
return this.tabIndex;
|
|
1849
|
+
return this.disabled ? -1 : this.tabIndex;
|
|
1864
1850
|
}
|
|
1865
1851
|
}
|
|
1866
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLink, deps: [{ token: MatTabNav }, { token: i0.ElementRef }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }, { token:
|
|
1867
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1852
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLink, deps: [{ token: MatTabNav }, { token: i0.ElementRef }, { token: MAT_RIPPLE_GLOBAL_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }, { token: i4.FocusMonitor }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1853
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.4", type: MatTabLink, isStandalone: true, selector: "[mat-tab-link], [matTabLink]", inputs: { active: ["active", "active", booleanAttribute], id: "id", disabled: ["disabled", "disabled", booleanAttribute], disableRipple: ["disableRipple", "disableRipple", booleanAttribute], tabIndex: ["tabIndex", "tabIndex", (value) => (value == null ? 0 : numberAttribute(value))] }, host: { listeners: { "focus": "_handleFocus()", "keydown": "_handleKeydown($event)" }, properties: { "attr.aria-controls": "_getAriaControls()", "attr.aria-current": "_getAriaCurrent()", "attr.aria-disabled": "disabled", "attr.aria-selected": "_getAriaSelected()", "attr.id": "id", "attr.tabIndex": "_getTabIndex()", "attr.role": "_getRole()", "class.mat-mdc-tab-disabled": "disabled", "class.mdc-tab--active": "active" }, classAttribute: "mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator" }, exportAs: ["matTabLink"], usesInheritance: true, ngImport: i0, template: "<span class=\"mdc-tab__ripple\"></span>\n\n<div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"elementRef.nativeElement\"\n [matRippleDisabled]=\"rippleDisabled\"></div>\n\n<span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <ng-content></ng-content>\n </span>\n</span>\n\n", styles: [".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab-link:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab-link:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link.mdc-tab{flex-grow:0}.mat-mdc-tab-link:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab-link:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab-link.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab-link.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab-link.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab-link .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab-link .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab-link:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab-link.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab-link.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab-link .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header.mat-mdc-tab-nav-bar-stretch-tabs .mat-mdc-tab-link{flex-grow:1}.mat-mdc-tab-link::before{margin:5px}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}"], dependencies: [{ kind: "directive", type: MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1868
1854
|
}
|
|
1869
1855
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabLink, decorators: [{
|
|
1870
1856
|
type: Component,
|
|
1871
|
-
args: [{ selector: '[mat-tab-link], [matTabLink]', exportAs: 'matTabLink', inputs: ['
|
|
1857
|
+
args: [{ selector: '[mat-tab-link], [matTabLink]', exportAs: 'matTabLink', inputs: ['active', 'id'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1872
1858
|
'class': 'mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator',
|
|
1873
1859
|
'[attr.aria-controls]': '_getAriaControls()',
|
|
1874
1860
|
'[attr.aria-current]': '_getAriaCurrent()',
|
|
@@ -1881,7 +1867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1881
1867
|
'[class.mdc-tab--active]': 'active',
|
|
1882
1868
|
'(focus)': '_handleFocus()',
|
|
1883
1869
|
'(keydown)': '_handleKeydown($event)',
|
|
1884
|
-
}, template: "<span class=\"mdc-tab__ripple\"></span>\n\n<div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"elementRef.nativeElement\"\n [matRippleDisabled]=\"rippleDisabled\"></div>\n\n<span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <ng-content></ng-content>\n </span>\n</span>\n\n", styles: [".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab-link:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab-link:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link.mdc-tab{flex-grow:0}.mat-mdc-tab-link:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab-link:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab-link.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab-link.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab-link.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab-link .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab-link .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab-link:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab-link.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab-link.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab-link .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header.mat-mdc-tab-nav-bar-stretch-tabs .mat-mdc-tab-link{flex-grow:1}.mat-mdc-tab-link::before{margin:5px}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}"] }]
|
|
1870
|
+
}, standalone: true, imports: [MatRipple], template: "<span class=\"mdc-tab__ripple\"></span>\n\n<div\n class=\"mat-mdc-tab-ripple\"\n mat-ripple\n [matRippleTrigger]=\"elementRef.nativeElement\"\n [matRippleDisabled]=\"rippleDisabled\"></div>\n\n<span class=\"mdc-tab__content\">\n <span class=\"mdc-tab__text-label\">\n <ng-content></ng-content>\n </span>\n</span>\n\n", styles: [".mat-mdc-tab-link{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none;background:none;font-family:var(--mat-tab-header-label-text-font);font-size:var(--mat-tab-header-label-text-size);letter-spacing:var(--mat-tab-header-label-text-tracking);line-height:var(--mat-tab-header-label-text-line-height);font-weight:var(--mat-tab-header-label-text-weight)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-color:var(--mdc-tab-indicator-active-indicator-color)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-top-width:var(--mdc-tab-indicator-active-indicator-height)}.mat-mdc-tab-link .mdc-tab-indicator__content--underline{border-radius:var(--mdc-tab-indicator-active-indicator-shape)}.mat-mdc-tab-link:not(.mdc-tab--stacked){height:var(--mdc-secondary-navigation-tab-container-height)}.mat-mdc-tab-link:not(:disabled).mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled.mdc-tab--active .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):hover:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):focus:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:not(:disabled):active:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link:disabled:not(.mdc-tab--active) .mdc-tab__icon{fill:currentColor}.mat-mdc-tab-link.mdc-tab{flex-grow:0}.mat-mdc-tab-link:hover .mdc-tab__text-label{color:var(--mat-tab-header-inactive-hover-label-text-color)}.mat-mdc-tab-link:focus .mdc-tab__text-label{color:var(--mat-tab-header-inactive-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__text-label{color:var(--mat-tab-header-active-label-text-color)}.mat-mdc-tab-link.mdc-tab--active .mdc-tab__ripple::before,.mat-mdc-tab-link.mdc-tab--active .mat-ripple-element{background-color:var(--mat-tab-header-active-ripple-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab__text-label{color:var(--mat-tab-header-active-hover-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:hover .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-hover-indicator-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab__text-label{color:var(--mat-tab-header-active-focus-label-text-color)}.mat-mdc-tab-link.mdc-tab--active:focus .mdc-tab-indicator__content--underline{border-color:var(--mat-tab-header-active-focus-indicator-color)}.mat-mdc-tab-link.mat-mdc-tab-disabled{opacity:.4;pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__content{pointer-events:none}.mat-mdc-tab-link.mat-mdc-tab-disabled .mdc-tab__ripple::before,.mat-mdc-tab-link.mat-mdc-tab-disabled .mat-ripple-element{background-color:var(--mat-tab-header-disabled-ripple-color)}.mat-mdc-tab-link .mdc-tab__ripple::before{content:\"\";display:block;position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;pointer-events:none;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-link .mdc-tab__text-label{color:var(--mat-tab-header-inactive-label-text-color);display:inline-flex;align-items:center}.mat-mdc-tab-link .mdc-tab__content{position:relative;pointer-events:auto}.mat-mdc-tab-link:hover .mdc-tab__ripple::before{opacity:.04}.mat-mdc-tab-link.cdk-program-focused .mdc-tab__ripple::before,.mat-mdc-tab-link.cdk-keyboard-focused .mdc-tab__ripple::before{opacity:.12}.mat-mdc-tab-link .mat-ripple-element{opacity:.12;background-color:var(--mat-tab-header-inactive-ripple-color)}.mat-mdc-tab-header.mat-mdc-tab-nav-bar-stretch-tabs .mat-mdc-tab-link{flex-grow:1}.mat-mdc-tab-link::before{margin:5px}@media(max-width: 599px){.mat-mdc-tab-link{min-width:72px}}"] }]
|
|
1885
1871
|
}], ctorParameters: () => [{ type: MatTabNav }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
1886
1872
|
type: Optional
|
|
1887
1873
|
}, {
|
|
@@ -1890,13 +1876,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1890
1876
|
}] }, { type: undefined, decorators: [{
|
|
1891
1877
|
type: Attribute,
|
|
1892
1878
|
args: ['tabindex']
|
|
1893
|
-
}] }, { type:
|
|
1879
|
+
}] }, { type: i4.FocusMonitor }, { type: undefined, decorators: [{
|
|
1894
1880
|
type: Optional
|
|
1895
1881
|
}, {
|
|
1896
1882
|
type: Inject,
|
|
1897
1883
|
args: [ANIMATION_MODULE_TYPE]
|
|
1898
1884
|
}] }], propDecorators: { active: [{
|
|
1899
|
-
type: Input
|
|
1885
|
+
type: Input,
|
|
1886
|
+
args: [{ transform: booleanAttribute }]
|
|
1887
|
+
}], disabled: [{
|
|
1888
|
+
type: Input,
|
|
1889
|
+
args: [{ transform: booleanAttribute }]
|
|
1890
|
+
}], disableRipple: [{
|
|
1891
|
+
type: Input,
|
|
1892
|
+
args: [{ transform: booleanAttribute }]
|
|
1893
|
+
}], tabIndex: [{
|
|
1894
|
+
type: Input,
|
|
1895
|
+
args: [{
|
|
1896
|
+
transform: (value) => (value == null ? 0 : numberAttribute(value)),
|
|
1897
|
+
}]
|
|
1900
1898
|
}], id: [{
|
|
1901
1899
|
type: Input
|
|
1902
1900
|
}] } });
|
|
@@ -1909,7 +1907,7 @@ class MatTabNavPanel {
|
|
|
1909
1907
|
this.id = `mat-tab-nav-panel-${nextUniqueId++}`;
|
|
1910
1908
|
}
|
|
1911
1909
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabNavPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1912
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: { id: "id" }, host: { attributes: { "role": "tabpanel" }, properties: { "attr.aria-labelledby": "_activeTabId", "attr.id": "id" }, classAttribute: "mat-mdc-tab-nav-panel" }, exportAs: ["matTabNavPanel"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1910
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MatTabNavPanel, isStandalone: true, selector: "mat-tab-nav-panel", inputs: { id: "id" }, host: { attributes: { "role": "tabpanel" }, properties: { "attr.aria-labelledby": "_activeTabId", "attr.id": "id" }, classAttribute: "mat-mdc-tab-nav-panel" }, exportAs: ["matTabNavPanel"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
1913
1911
|
}
|
|
1914
1912
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabNavPanel, decorators: [{
|
|
1915
1913
|
type: Component,
|
|
@@ -1925,6 +1923,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1925
1923
|
},
|
|
1926
1924
|
encapsulation: ViewEncapsulation.None,
|
|
1927
1925
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1926
|
+
standalone: true,
|
|
1928
1927
|
}]
|
|
1929
1928
|
}], propDecorators: { id: [{
|
|
1930
1929
|
type: Input
|
|
@@ -1932,23 +1931,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1932
1931
|
|
|
1933
1932
|
class MatTabsModule {
|
|
1934
1933
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1935
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: MatTabsModule,
|
|
1934
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: MatTabsModule, imports: [MatCommonModule,
|
|
1935
|
+
MatTabContent,
|
|
1936
1936
|
MatTabLabel,
|
|
1937
1937
|
MatTab,
|
|
1938
1938
|
MatTabGroup,
|
|
1939
1939
|
MatTabNav,
|
|
1940
1940
|
MatTabNavPanel,
|
|
1941
|
-
MatTabLink,
|
|
1942
|
-
// Private directives, should not be exported.
|
|
1943
|
-
MatTabBody,
|
|
1944
|
-
MatTabBodyPortal,
|
|
1945
|
-
MatTabLabelWrapper,
|
|
1946
|
-
MatTabHeader], imports: [CommonModule,
|
|
1947
|
-
MatCommonModule,
|
|
1948
|
-
PortalModule,
|
|
1949
|
-
MatRippleModule,
|
|
1950
|
-
ObserversModule,
|
|
1951
|
-
A11yModule], exports: [MatCommonModule,
|
|
1941
|
+
MatTabLink], exports: [MatCommonModule,
|
|
1952
1942
|
MatTabContent,
|
|
1953
1943
|
MatTabLabel,
|
|
1954
1944
|
MatTab,
|
|
@@ -1956,25 +1946,12 @@ class MatTabsModule {
|
|
|
1956
1946
|
MatTabNav,
|
|
1957
1947
|
MatTabNavPanel,
|
|
1958
1948
|
MatTabLink] }); }
|
|
1959
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabsModule, imports: [
|
|
1960
|
-
MatCommonModule,
|
|
1961
|
-
PortalModule,
|
|
1962
|
-
MatRippleModule,
|
|
1963
|
-
ObserversModule,
|
|
1964
|
-
A11yModule, MatCommonModule] }); }
|
|
1949
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabsModule, imports: [MatCommonModule, MatCommonModule] }); }
|
|
1965
1950
|
}
|
|
1966
1951
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MatTabsModule, decorators: [{
|
|
1967
1952
|
type: NgModule,
|
|
1968
1953
|
args: [{
|
|
1969
1954
|
imports: [
|
|
1970
|
-
CommonModule,
|
|
1971
|
-
MatCommonModule,
|
|
1972
|
-
PortalModule,
|
|
1973
|
-
MatRippleModule,
|
|
1974
|
-
ObserversModule,
|
|
1975
|
-
A11yModule,
|
|
1976
|
-
],
|
|
1977
|
-
exports: [
|
|
1978
1955
|
MatCommonModule,
|
|
1979
1956
|
MatTabContent,
|
|
1980
1957
|
MatTabLabel,
|
|
@@ -1984,7 +1961,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1984
1961
|
MatTabNavPanel,
|
|
1985
1962
|
MatTabLink,
|
|
1986
1963
|
],
|
|
1987
|
-
|
|
1964
|
+
exports: [
|
|
1965
|
+
MatCommonModule,
|
|
1988
1966
|
MatTabContent,
|
|
1989
1967
|
MatTabLabel,
|
|
1990
1968
|
MatTab,
|
|
@@ -1992,11 +1970,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
|
|
|
1992
1970
|
MatTabNav,
|
|
1993
1971
|
MatTabNavPanel,
|
|
1994
1972
|
MatTabLink,
|
|
1995
|
-
// Private directives, should not be exported.
|
|
1996
|
-
MatTabBody,
|
|
1997
|
-
MatTabBodyPortal,
|
|
1998
|
-
MatTabLabelWrapper,
|
|
1999
|
-
MatTabHeader,
|
|
2000
1973
|
],
|
|
2001
1974
|
}]
|
|
2002
1975
|
}] });
|