@angular/material-experimental 14.0.0-next.3 → 14.0.0-next.4
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/esm2020/mdc-autocomplete/autocomplete-trigger.mjs +3 -3
- package/esm2020/mdc-card/card.mjs +2 -2
- package/esm2020/mdc-checkbox/checkbox.mjs +4 -2
- package/esm2020/mdc-chips/chip-grid.mjs +13 -2
- package/esm2020/mdc-dialog/dialog-container.mjs +4 -4
- package/esm2020/mdc-form-field/directives/floating-label.mjs +3 -8
- package/esm2020/mdc-form-field/form-field.mjs +45 -36
- package/esm2020/mdc-list/action-list.mjs +3 -3
- package/esm2020/mdc-list/list.mjs +15 -3
- package/esm2020/mdc-menu/menu.mjs +3 -3
- package/esm2020/mdc-paginator/paginator.mjs +2 -2
- package/esm2020/mdc-progress-bar/progress-bar.mjs +2 -2
- package/esm2020/mdc-select/select.mjs +3 -3
- package/esm2020/mdc-slider/slider.mjs +3 -3
- package/esm2020/mdc-snack-bar/snack-bar-container.mjs +2 -2
- package/esm2020/mdc-table/table.mjs +2 -2
- package/esm2020/mdc-tabs/tab-header.mjs +3 -3
- package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +3 -3
- package/esm2020/version.mjs +1 -1
- package/fesm2015/material-experimental.mjs +1 -1
- package/fesm2015/material-experimental.mjs.map +1 -1
- package/fesm2015/mdc-autocomplete.mjs +2 -2
- package/fesm2015/mdc-autocomplete.mjs.map +1 -1
- package/fesm2015/mdc-card.mjs +2 -2
- package/fesm2015/mdc-checkbox.mjs +3 -1
- package/fesm2015/mdc-checkbox.mjs.map +1 -1
- package/fesm2015/mdc-chips.mjs +11 -1
- package/fesm2015/mdc-chips.mjs.map +1 -1
- package/fesm2015/mdc-dialog.mjs +3 -3
- package/fesm2015/mdc-dialog.mjs.map +1 -1
- package/fesm2015/mdc-form-field.mjs +47 -43
- package/fesm2015/mdc-form-field.mjs.map +1 -1
- package/fesm2015/mdc-list.mjs +14 -3
- package/fesm2015/mdc-list.mjs.map +1 -1
- package/fesm2015/mdc-menu.mjs +2 -2
- package/fesm2015/mdc-menu.mjs.map +1 -1
- package/fesm2015/mdc-paginator.mjs +2 -2
- package/fesm2015/mdc-progress-bar.mjs +2 -2
- package/fesm2015/mdc-select.mjs +2 -2
- package/fesm2015/mdc-select.mjs.map +1 -1
- package/fesm2015/mdc-slider.mjs +2 -2
- package/fesm2015/mdc-slider.mjs.map +1 -1
- package/fesm2015/mdc-snack-bar.mjs +2 -2
- package/fesm2015/mdc-table.mjs +2 -2
- package/fesm2015/mdc-tabs.mjs +4 -4
- package/fesm2015/mdc-tabs.mjs.map +1 -1
- package/fesm2020/material-experimental.mjs +1 -1
- package/fesm2020/material-experimental.mjs.map +1 -1
- package/fesm2020/mdc-autocomplete.mjs +2 -2
- package/fesm2020/mdc-autocomplete.mjs.map +1 -1
- package/fesm2020/mdc-card.mjs +2 -2
- package/fesm2020/mdc-checkbox.mjs +3 -1
- package/fesm2020/mdc-checkbox.mjs.map +1 -1
- package/fesm2020/mdc-chips.mjs +11 -1
- package/fesm2020/mdc-chips.mjs.map +1 -1
- package/fesm2020/mdc-dialog.mjs +3 -3
- package/fesm2020/mdc-dialog.mjs.map +1 -1
- package/fesm2020/mdc-form-field.mjs +46 -42
- package/fesm2020/mdc-form-field.mjs.map +1 -1
- package/fesm2020/mdc-list.mjs +14 -3
- package/fesm2020/mdc-list.mjs.map +1 -1
- package/fesm2020/mdc-menu.mjs +2 -2
- package/fesm2020/mdc-menu.mjs.map +1 -1
- package/fesm2020/mdc-paginator.mjs +2 -2
- package/fesm2020/mdc-progress-bar.mjs +2 -2
- package/fesm2020/mdc-select.mjs +2 -2
- package/fesm2020/mdc-select.mjs.map +1 -1
- package/fesm2020/mdc-slider.mjs +2 -2
- package/fesm2020/mdc-slider.mjs.map +1 -1
- package/fesm2020/mdc-snack-bar.mjs +2 -2
- package/fesm2020/mdc-table.mjs +2 -2
- package/fesm2020/mdc-tabs.mjs +4 -4
- package/fesm2020/mdc-tabs.mjs.map +1 -1
- package/mdc-chips/chip-grid.d.ts +17 -3
- package/mdc-form-field/_form-field-density.scss +2 -2
- package/mdc-form-field/_form-field-high-contrast.scss +14 -5
- package/mdc-form-field/_form-field-theme.scss +1 -1
- package/mdc-form-field/_mdc-text-field-structure-overrides.scss +2 -2
- package/mdc-form-field/directives/floating-label.d.ts +1 -3
- package/mdc-form-field/form-field.d.ts +17 -8
- package/mdc-list/_list-theme.scss +9 -0
- package/mdc-list/list.d.ts +5 -1
- package/mdc-select/_select-theme.scss +1 -1
- package/mdc-table/_table-theme.scss +2 -9
- package/mdc-tabs/_tabs-common.scss +9 -0
- package/mdc-theming/prebuilt/deeppurple-amber.css +1 -1
- package/mdc-theming/prebuilt/indigo-pink.css +1 -1
- package/mdc-theming/prebuilt/pink-bluegrey.css +1 -1
- package/mdc-theming/prebuilt/purple-green.css +1 -1
- package/package.json +3 -3
package/fesm2020/mdc-tabs.mjs
CHANGED
|
@@ -361,14 +361,14 @@ class MatTabHeader extends _MatTabHeaderBase {
|
|
|
361
361
|
}
|
|
362
362
|
}
|
|
363
363
|
MatTabHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabHeader, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
364
|
-
MatTabHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabHeader, selector: "mat-tab-header", inputs: { selectedIndex: "selectedIndex" }, 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<
|
|
364
|
+
MatTabHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabHeader, selector: "mat-tab-header", inputs: { selectedIndex: "selectedIndex" }, 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-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}.mat-mdc-tab-header-pagination{-webkit-user-select:none;-moz-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:transparent;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}.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}.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{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}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
365
365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabHeader, decorators: [{
|
|
366
366
|
type: Component,
|
|
367
367
|
args: [{ selector: 'mat-tab-header', inputs: ['selectedIndex'], outputs: ['selectFocusedIndex', 'indexFocused'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, host: {
|
|
368
368
|
'class': 'mat-mdc-tab-header',
|
|
369
369
|
'[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',
|
|
370
370
|
'[class.mat-mdc-tab-header-rtl]': "_getLayoutDirection() == 'rtl'",
|
|
371
|
-
}, template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<
|
|
371
|
+
}, 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-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}.mat-mdc-tab-header-pagination{-webkit-user-select:none;-moz-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:transparent;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}.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}.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{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}\n"] }]
|
|
372
372
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i1.Directionality, decorators: [{
|
|
373
373
|
type: Optional
|
|
374
374
|
}] }, { type: i0.NgZone }, { type: i3.Platform }, { type: undefined, decorators: [{
|
|
@@ -506,7 +506,7 @@ class MatTabNav extends _MatTabNavBase {
|
|
|
506
506
|
}
|
|
507
507
|
}
|
|
508
508
|
MatTabNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabNav, deps: [{ token: i0.ElementRef }, { token: i1.Directionality, optional: true }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1$1.ViewportRuler }, { token: i3.Platform }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_TABS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
509
|
-
MatTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabNav, selector: "[mat-tab-nav-bar]", inputs: { color: "color", fitInkBarToContent: "fitInkBarToContent" }, host: { properties: { "attr.role": "_getRole()", "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'", "class.mat-primary": "color !== \"warn\" && color !== \"accent\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "class._mat-animation-noopable": "_animationMode === \"NoopAnimations\"" }, classAttribute: "mat-mdc-tab-nav-bar mat-mdc-tab-header" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(function () { return 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<
|
|
509
|
+
MatTabNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MatTabNav, selector: "[mat-tab-nav-bar]", inputs: { color: "color", fitInkBarToContent: "fitInkBarToContent" }, host: { properties: { "attr.role": "_getRole()", "class.mat-mdc-tab-header-pagination-controls-enabled": "_showPaginationControls", "class.mat-mdc-tab-header-rtl": "_getLayoutDirection() == 'rtl'", "class.mat-primary": "color !== \"warn\" && color !== \"accent\"", "class.mat-accent": "color === \"accent\"", "class.mat-warn": "color === \"warn\"", "class._mat-animation-noopable": "_animationMode === \"NoopAnimations\"" }, classAttribute: "mat-mdc-tab-nav-bar mat-mdc-tab-header" }, queries: [{ propertyName: "_items", predicate: i0.forwardRef(function () { return 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--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 .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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}.mat-mdc-tab-header-pagination{-webkit-user-select:none;-moz-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:transparent;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}.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}.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{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}\n"], directives: [{ type: i4.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
510
510
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MatTabNav, decorators: [{
|
|
511
511
|
type: Component,
|
|
512
512
|
args: [{ selector: '[mat-tab-nav-bar]', exportAs: 'matTabNavBar, matTabNav', inputs: ['color'], host: {
|
|
@@ -518,7 +518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
|
|
|
518
518
|
'[class.mat-accent]': 'color === "accent"',
|
|
519
519
|
'[class.mat-warn]': 'color === "warn"',
|
|
520
520
|
'[class._mat-animation-noopable]': '_animationMode === "NoopAnimations"',
|
|
521
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<
|
|
521
|
+
}, 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--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 .mdc-tab-indicator__content--underline{border-top-width:2px}.mdc-tab-indicator .mdc-tab-indicator__content--icon{height:34px;font-size:34px}.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}.mat-mdc-tab-header-pagination{-webkit-user-select:none;-moz-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:transparent;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}.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}.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{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}\n"] }]
|
|
522
522
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Directionality, decorators: [{
|
|
523
523
|
type: Optional
|
|
524
524
|
}] }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1$1.ViewportRuler }, { type: i3.Platform }, { type: undefined, decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdc-tabs.mjs","sources":["../../../../../../src/material-experimental/mdc-tabs/tab-body.ts","../../../../../../src/material-experimental/mdc-tabs/tab-body.html","../../../../../../src/material-experimental/mdc-tabs/tab-content.ts","../../../../../../src/material-experimental/mdc-tabs/tab-label.ts","../../../../../../src/material-experimental/mdc-tabs/ink-bar.ts","../../../../../../src/material-experimental/mdc-tabs/tab-label-wrapper.ts","../../../../../../src/material-experimental/mdc-tabs/tab.ts","../../../../../../src/material-experimental/mdc-tabs/tab.html","../../../../../../src/material-experimental/mdc-tabs/tab-header.ts","../../../../../../src/material-experimental/mdc-tabs/tab-header.html","../../../../../../src/material-experimental/mdc-tabs/tab-group.ts","../../../../../../src/material-experimental/mdc-tabs/tab-group.html","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.ts","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.html","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-link.html","../../../../../../src/material-experimental/mdc-tabs/module.ts","../../../../../../src/material-experimental/mdc-tabs/public-api.ts","../../../../../../src/material-experimental/mdc-tabs/index.ts","../../../../../../src/material-experimental/mdc-tabs/mdc-tabs_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n Component,\n Directive,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ViewChild,\n ComponentFactoryResolver,\n ViewContainerRef,\n Inject,\n forwardRef,\n ChangeDetectorRef,\n Optional,\n ElementRef,\n} from '@angular/core';\nimport {\n MatTabBodyPortal as BaseMatTabBodyPortal,\n matTabsAnimations,\n _MatTabBodyBase,\n} from '@angular/material/tabs';\nimport {CdkPortalOutlet} from '@angular/cdk/portal';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DOCUMENT} from '@angular/common';\n\n/**\n * The portal host directive for the contents of the tab.\n * @docs-private\n */\n@Directive({\n selector: '[matTabBodyHost]',\n})\nexport class MatTabBodyPortal extends BaseMatTabBodyPortal {\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n @Inject(forwardRef(() => MatTabBody)) host: MatTabBody,\n @Inject(DOCUMENT) _document: any,\n ) {\n super(componentFactoryResolver, viewContainerRef, host, _document);\n }\n}\n\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\n@Component({\n selector: 'mat-tab-body',\n templateUrl: 'tab-body.html',\n styleUrls: ['tab-body.css'],\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [matTabsAnimations.translateTab],\n host: {\n 'class': 'mat-mdc-tab-body',\n },\n})\nexport class MatTabBody extends _MatTabBodyBase {\n @ViewChild(CdkPortalOutlet) _portalHost: CdkPortalOutlet;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n @Optional() dir: Directionality,\n changeDetectorRef: ChangeDetectorRef,\n ) {\n super(elementRef, dir, changeDetectorRef);\n }\n}\n","<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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {MatTabContent as BaseMatTabContent} from '@angular/material/tabs';\n\n/** Decorates the `ng-template` tags and reads out the template from it. */\n@Directive({selector: '[matTabContent]'})\nexport class MatTabContent extends BaseMatTabContent {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {MatTabLabel as BaseMatTabLabel} from '@angular/material/tabs';\n\n/** Used to flag tab labels for use with the portal directive */\n@Directive({\n selector: '[mat-tab-label], [matTabLabel]',\n})\nexport class MatTabLabel extends BaseMatTabLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, QueryList} from '@angular/core';\nimport {\n MDCSlidingTabIndicatorFoundation,\n MDCTabIndicatorAdapter,\n MDCTabIndicatorFoundation,\n} from '@material/tab-indicator';\n\n/**\n * Item inside a tab header relative to which the ink bar can be aligned.\n * @docs-private\n */\nexport interface MatInkBarItem {\n _foundation: MatInkBarFoundation;\n elementRef: ElementRef<HTMLElement>;\n}\n\n/**\n * Abstraction around the MDC tab indicator that acts as the tab header's ink bar.\n * @docs-private\n */\nexport class MatInkBar {\n /** Item to which the ink bar is aligned currently. */\n private _currentItem: MatInkBarItem | undefined;\n\n constructor(private _items: QueryList<MatInkBarItem>) {}\n\n /** Hides the ink bar. */\n hide() {\n this._items.forEach(item => item._foundation.deactivate());\n }\n\n /** Aligns the ink bar to a DOM node. */\n alignToElement(element: HTMLElement) {\n const correspondingItem = this._items.find(item => item.elementRef.nativeElement === element);\n const currentItem = this._currentItem;\n\n if (currentItem) {\n currentItem._foundation.deactivate();\n }\n\n if (correspondingItem) {\n const clientRect = currentItem\n ? currentItem._foundation.computeContentClientRect()\n : undefined;\n\n // The ink bar won't animate unless we give it the `ClientRect` of the previous item.\n correspondingItem._foundation.activate(clientRect);\n this._currentItem = correspondingItem;\n }\n }\n}\n\n/**\n * Implementation of MDC's sliding tab indicator (ink bar) foundation.\n * @docs-private\n */\nexport class MatInkBarFoundation {\n private _destroyed: boolean;\n private _foundation: MDCTabIndicatorFoundation;\n private _inkBarElement: HTMLElement;\n private _inkBarContentElement: HTMLElement;\n private _fitToContent = false;\n private _adapter: MDCTabIndicatorAdapter = {\n addClass: className => {\n if (!this._destroyed) {\n this._hostElement.classList.add(className);\n }\n },\n removeClass: className => {\n if (!this._destroyed) {\n this._hostElement.classList.remove(className);\n }\n },\n setContentStyleProperty: (propName, value) => {\n this._inkBarContentElement.style.setProperty(propName, value);\n },\n computeContentClientRect: () => {\n // `getBoundingClientRect` isn't available on the server.\n return this._destroyed || !this._inkBarContentElement.getBoundingClientRect\n ? ({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n x: 0,\n y: 0,\n } as ClientRect)\n : this._inkBarContentElement.getBoundingClientRect();\n },\n };\n\n constructor(private _hostElement: HTMLElement, private _document: Document) {\n this._foundation = new MDCSlidingTabIndicatorFoundation(this._adapter);\n }\n\n /** Aligns the ink bar to the current item. */\n activate(clientRect?: ClientRect) {\n this._foundation.activate(clientRect);\n }\n\n /** Removes the ink bar from the current item. */\n deactivate() {\n this._foundation.deactivate();\n }\n\n /** Gets the ClientRect of the ink bar. */\n computeContentClientRect() {\n return this._foundation.computeContentClientRect();\n }\n\n /** Initializes the foundation. */\n init() {\n this._createInkBarElement();\n this._foundation.init();\n }\n\n /** Destroys the foundation. */\n destroy() {\n this._inkBarElement.remove();\n this._hostElement = this._inkBarElement = this._inkBarContentElement = null!;\n this._foundation.destroy();\n this._destroyed = true;\n }\n\n /**\n * Sets whether the ink bar should be appended to the content, which will cause the ink bar\n * to match the width of the content rather than the tab host element.\n */\n setFitToContent(fitToContent: boolean) {\n if (this._fitToContent !== fitToContent) {\n this._fitToContent = fitToContent;\n if (this._inkBarElement) {\n this._appendInkBarElement();\n }\n }\n }\n\n /**\n * Gets whether the ink bar should be appended to the content, which will cause the ink bar\n * to match the width of the content rather than the tab host element.\n */\n getFitToContent(): boolean {\n return this._fitToContent;\n }\n\n /** Creates and appends the ink bar element. */\n private _createInkBarElement() {\n this._inkBarElement = this._document.createElement('span');\n this._inkBarContentElement = this._document.createElement('span');\n\n this._inkBarElement.className = 'mdc-tab-indicator';\n this._inkBarContentElement.className =\n 'mdc-tab-indicator__content' + ' mdc-tab-indicator__content--underline';\n\n this._inkBarElement.appendChild(this._inkBarContentElement);\n this._appendInkBarElement();\n }\n\n /**\n * Appends the ink bar to the tab host element or content, depending on whether\n * the ink bar should fit to content.\n */\n private _appendInkBarElement() {\n if (!this._inkBarElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Ink bar element has not been created and cannot be appended');\n }\n\n const parentElement = this._fitToContent\n ? this._hostElement.querySelector('.mdc-tab__content')\n : this._hostElement;\n\n if (!parentElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Missing element to host the ink bar');\n }\n\n parentElement!.appendChild(this._inkBarElement);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {MatTabLabelWrapper as BaseMatTabLabelWrapper} from '@angular/material/tabs';\nimport {MatInkBarFoundation, MatInkBarItem} from './ink-bar';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\n@Directive({\n selector: '[matTabLabelWrapper]',\n inputs: ['disabled'],\n host: {\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled',\n },\n})\nexport class MatTabLabelWrapper\n extends BaseMatTabLabelWrapper\n implements MatInkBarItem, OnInit, OnDestroy\n{\n private _document: Document;\n\n _foundation: MatInkBarFoundation;\n\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._foundation.getFitToContent();\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._foundation.setFitToContent(coerceBooleanProperty(v));\n }\n\n constructor(elementRef: ElementRef, @Inject(DOCUMENT) _document: any) {\n super(elementRef);\n this._document = _document;\n this._foundation = new MatInkBarFoundation(elementRef.nativeElement, this._document);\n }\n\n ngOnInit() {\n this._foundation.init();\n }\n\n ngOnDestroy() {\n this._foundation.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n TemplateRef,\n ContentChild,\n} from '@angular/core';\nimport {MatTab as BaseMatTab, MAT_TAB} from '@angular/material/tabs';\nimport {MatTabContent} from './tab-content';\nimport {MatTabLabel} from './tab-label';\n\n@Component({\n selector: 'mat-tab',\n\n // Note that usually we'd go through a bit more trouble and set up another class so that\n // the inlined template of `MatTab` isn't duplicated, however the template is small enough\n // that creating the extra class will generate more code than just duplicating the template.\n templateUrl: 'tab.html',\n inputs: ['disabled'],\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n providers: [{provide: MAT_TAB, useExisting: MatTab}],\n})\nexport class MatTab extends BaseMatTab {\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n @ContentChild(MatTabContent, {read: TemplateRef, static: true})\n override _explicitContent: TemplateRef<any>;\n\n /** Content for the tab label given by `<ng-template mat-tab-label>`. */\n @ContentChild(MatTabLabel)\n override get templateLabel(): MatTabLabel {\n return this._templateLabel;\n }\n override set templateLabel(value: MatTabLabel) {\n this._setTemplateLabelInput(value);\n }\n}\n","<!-- 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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n ContentChildren,\n ViewChild,\n ElementRef,\n QueryList,\n AfterContentInit,\n Optional,\n ChangeDetectorRef,\n NgZone,\n Inject,\n} from '@angular/core';\nimport {_MatTabHeaderBase} from '@angular/material/tabs';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatTabLabelWrapper} from './tab-label-wrapper';\nimport {MatInkBar} from './ink-bar';\n\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n */\n@Component({\n selector: 'mat-tab-header',\n templateUrl: 'tab-header.html',\n styleUrls: ['tab-header.css'],\n inputs: ['selectedIndex'],\n outputs: ['selectFocusedIndex', 'indexFocused'],\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n 'class': 'mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n },\n})\nexport class MatTabHeader extends _MatTabHeaderBase implements AfterContentInit {\n @ContentChildren(MatTabLabelWrapper, {descendants: false}) _items: QueryList<MatTabLabelWrapper>;\n @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef;\n @ViewChild('tabList', {static: true}) _tabList: ElementRef;\n @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef;\n @ViewChild('nextPaginator') _nextPaginator: ElementRef<HTMLElement>;\n @ViewChild('previousPaginator') _previousPaginator: ElementRef<HTMLElement>;\n _inkBar: MatInkBar;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n viewportRuler: ViewportRuler,\n @Optional() dir: Directionality,\n ngZone: NgZone,\n platform: Platform,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n }\n\n override ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n}\n","<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\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<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple\n [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n _MatTabGroupBase,\n MAT_TAB_GROUP,\n MAT_TABS_CONFIG,\n MatTabsConfig,\n} from '@angular/material/tabs';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatTab} from './tab';\nimport {MatTabHeader} from './tab-header';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\n@Component({\n selector: 'mat-tab-group',\n exportAs: 'matTabGroup',\n templateUrl: 'tab-group.html',\n styleUrls: ['tab-group.css'],\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n inputs: ['color', 'disableRipple'],\n providers: [\n {\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup,\n },\n ],\n host: {\n 'class': 'mat-mdc-tab-group',\n '[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === \"below\"',\n },\n})\nexport class MatTabGroup extends _MatTabGroupBase {\n @ContentChildren(MatTab, {descendants: true}) _allTabs: QueryList<MatTab>;\n @ViewChild('tabBodyWrapper') _tabBodyWrapper: ElementRef;\n @ViewChild('tabHeader') _tabHeader: MatTabHeader;\n\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._fitInkBarToContent;\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._fitInkBarToContent = coerceBooleanProperty(v);\n this._changeDetectorRef.markForCheck();\n }\n private _fitInkBarToContent = false;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n @Inject(MAT_TABS_CONFIG) @Optional() defaultConfig?: MatTabsConfig,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n }\n}\n","<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n <div class=\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, 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 <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\n </span>\n </span>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(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</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n Optional,\n Inject,\n Attribute,\n OnDestroy,\n AfterContentInit,\n NgZone,\n ChangeDetectorRef,\n OnInit,\n Input,\n} from '@angular/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n MAT_RIPPLE_GLOBAL_OPTIONS,\n RippleGlobalOptions,\n} from '@angular/material-experimental/mdc-core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {\n _MatTabNavBase,\n _MatTabLinkBase,\n MAT_TABS_CONFIG,\n MatTabsConfig,\n} from '@angular/material/tabs';\nimport {DOCUMENT} from '@angular/common';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {MatInkBar, MatInkBarItem, MatInkBarFoundation} from '../ink-bar';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\n@Component({\n selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\n inputs: ['color'],\n templateUrl: 'tab-nav-bar.html',\n styleUrls: ['tab-nav-bar.css'],\n host: {\n '[attr.role]': '_getRole()',\n 'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n '[class.mat-primary]': 'color !== \"warn\" && color !== \"accent\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n },\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MatTabNav extends _MatTabNavBase implements AfterContentInit {\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._fitInkBarToContent.value;\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._fitInkBarToContent.next(coerceBooleanProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n _fitInkBarToContent = new BehaviorSubject(false);\n\n @ContentChildren(forwardRef(() => MatTabLink), {descendants: true}) _items: QueryList<MatTabLink>;\n @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef;\n @ViewChild('tabList', {static: true}) _tabList: ElementRef;\n @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef;\n @ViewChild('nextPaginator') _nextPaginator: ElementRef<HTMLElement>;\n @ViewChild('previousPaginator') _previousPaginator: ElementRef<HTMLElement>;\n _inkBar: MatInkBar;\n\n constructor(\n elementRef: ElementRef,\n @Optional() dir: Directionality,\n ngZone: NgZone,\n changeDetectorRef: ChangeDetectorRef,\n viewportRuler: ViewportRuler,\n platform: Platform,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n @Optional() @Inject(MAT_TABS_CONFIG) defaultConfig?: MatTabsConfig,\n ) {\n super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n this.disablePagination =\n defaultConfig && defaultConfig.disablePagination != null\n ? defaultConfig.disablePagination\n : false;\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n }\n\n override ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n}\n\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\n@Component({\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: 'tab-link.html',\n styleUrls: ['tab-link.css'],\n host: {\n 'class': 'mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator',\n '[attr.aria-controls]': '_getAriaControls()',\n '[attr.aria-current]': '_getAriaCurrent()',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.id]': 'id',\n '[attr.tabIndex]': '_getTabIndex()',\n '[attr.role]': '_getRole()',\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[class.mdc-tab--active]': 'active',\n '(focus)': '_handleFocus()',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class MatTabLink extends _MatTabLinkBase implements MatInkBarItem, OnInit, OnDestroy {\n _foundation = new MatInkBarFoundation(this.elementRef.nativeElement, this._document);\n\n private readonly _destroyed = new Subject<void>();\n\n constructor(\n tabNavBar: MatTabNav,\n elementRef: ElementRef,\n @Optional() @Inject(MAT_RIPPLE_GLOBAL_OPTIONS) globalRippleOptions: RippleGlobalOptions | null,\n @Attribute('tabindex') tabIndex: string,\n focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) private _document: any,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n\n tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {\n this._foundation.setFitToContent(fitInkBarToContent);\n });\n }\n\n ngOnInit() {\n this._foundation.init();\n }\n\n override ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n super.ngOnDestroy();\n this._foundation.destroy();\n }\n}\n\n// Increasing integer for generating unique ids for tab nav components.\nlet nextUniqueId = 0;\n\n/**\n * Tab panel component associated with MatTabNav.\n */\n@Component({\n selector: 'mat-tab-nav-panel',\n exportAs: 'matTabNavPanel',\n template: '<ng-content></ng-content>',\n host: {\n '[attr.aria-labelledby]': '_activeTabId',\n '[attr.id]': 'id',\n 'class': 'mat-mdc-tab-nav-panel',\n 'role': 'tabpanel',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatTabNavPanel {\n /** Unique id for the tab panel. */\n @Input() id = `mat-tab-nav-panel-${nextUniqueId++}`;\n\n /** Id of the active tab in the nav bar. */\n _activeTabId?: string;\n}\n","<!-- TODO: this also had `mat-elevation-z4`. Figure out what we should do with it. -->\n<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-before\"\n #previousPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollBefore\"\n (click)=\"_handlePaginatorClick('before')\"\n (mousedown)=\"_handlePaginatorPress('before', $event)\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\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<div class=\"mat-mdc-tab-header-pagination mat-mdc-tab-header-pagination-after\"\n #nextPaginator\n aria-hidden=\"true\"\n mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n [class.mat-mdc-tab-header-pagination-disabled]=\"_disableScrollAfter\"\n (mousedown)=\"_handlePaginatorPress('after', $event)\"\n (click)=\"_handlePaginatorClick('after')\"\n (touchend)=\"_stopInterval()\">\n <div class=\"mat-mdc-tab-header-pagination-chevron\"></div>\n</div>\n","<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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatRippleModule} from '@angular/material-experimental/mdc-core';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {MatTabBody, MatTabBodyPortal} from './tab-body';\nimport {MatTabContent} from './tab-content';\nimport {MatTabLabel} from './tab-label';\nimport {MatTabLabelWrapper} from './tab-label-wrapper';\nimport {MatTab} from './tab';\nimport {MatTabHeader} from './tab-header';\nimport {MatTabGroup} from './tab-group';\nimport {MatTabNav, MatTabNavPanel, MatTabLink} from './tab-nav-bar/tab-nav-bar';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCommonModule,\n PortalModule,\n MatRippleModule,\n ObserversModule,\n A11yModule,\n ],\n exports: [\n MatCommonModule,\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink,\n ],\n declarations: [\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink,\n\n // Private directives, should not be exported.\n MatTabBody,\n MatTabBodyPortal,\n MatTabLabelWrapper,\n MatTabHeader,\n ],\n})\nexport class MatTabsModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './module';\nexport {MatTabBodyPortal, MatTabBody} from './tab-body';\nexport {MatTabContent} from './tab-content';\nexport {MatTabLabel} from './tab-label';\nexport {MatTabLabelWrapper} from './tab-label-wrapper';\nexport {MatTab} from './tab';\nexport {MatInkBar} from './ink-bar';\nexport {MatTabHeader} from './tab-header';\nexport {MatTabGroup} from './tab-group';\nexport {MatTabNav, MatTabNavPanel, MatTabLink} from './tab-nav-bar/tab-nav-bar';\n\nexport {\n MatTabBodyPositionState,\n MatTabBodyOriginState,\n matTabsAnimations,\n _MatInkBarPositioner,\n _MAT_INK_BAR_POSITIONER,\n MatTabChangeEvent,\n MatTabHeaderPosition,\n MatTabsConfig,\n MAT_TABS_CONFIG,\n MAT_TAB_GROUP,\n MAT_TAB,\n ScrollDirection,\n} from '@angular/material/tabs';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BaseMatTabBodyPortal","BaseMatTabContent","BaseMatTabLabel","BaseMatTabLabelWrapper","BaseMatTab"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mdc-tabs.mjs","sources":["../../../../../../src/material-experimental/mdc-tabs/tab-body.ts","../../../../../../src/material-experimental/mdc-tabs/tab-body.html","../../../../../../src/material-experimental/mdc-tabs/tab-content.ts","../../../../../../src/material-experimental/mdc-tabs/tab-label.ts","../../../../../../src/material-experimental/mdc-tabs/ink-bar.ts","../../../../../../src/material-experimental/mdc-tabs/tab-label-wrapper.ts","../../../../../../src/material-experimental/mdc-tabs/tab.ts","../../../../../../src/material-experimental/mdc-tabs/tab.html","../../../../../../src/material-experimental/mdc-tabs/tab-header.ts","../../../../../../src/material-experimental/mdc-tabs/tab-header.html","../../../../../../src/material-experimental/mdc-tabs/tab-group.ts","../../../../../../src/material-experimental/mdc-tabs/tab-group.html","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.ts","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-nav-bar.html","../../../../../../src/material-experimental/mdc-tabs/tab-nav-bar/tab-link.html","../../../../../../src/material-experimental/mdc-tabs/module.ts","../../../../../../src/material-experimental/mdc-tabs/public-api.ts","../../../../../../src/material-experimental/mdc-tabs/index.ts","../../../../../../src/material-experimental/mdc-tabs/mdc-tabs_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n Component,\n Directive,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ViewChild,\n ComponentFactoryResolver,\n ViewContainerRef,\n Inject,\n forwardRef,\n ChangeDetectorRef,\n Optional,\n ElementRef,\n} from '@angular/core';\nimport {\n MatTabBodyPortal as BaseMatTabBodyPortal,\n matTabsAnimations,\n _MatTabBodyBase,\n} from '@angular/material/tabs';\nimport {CdkPortalOutlet} from '@angular/cdk/portal';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {DOCUMENT} from '@angular/common';\n\n/**\n * The portal host directive for the contents of the tab.\n * @docs-private\n */\n@Directive({\n selector: '[matTabBodyHost]',\n})\nexport class MatTabBodyPortal extends BaseMatTabBodyPortal {\n constructor(\n componentFactoryResolver: ComponentFactoryResolver,\n viewContainerRef: ViewContainerRef,\n @Inject(forwardRef(() => MatTabBody)) host: MatTabBody,\n @Inject(DOCUMENT) _document: any,\n ) {\n super(componentFactoryResolver, viewContainerRef, host, _document);\n }\n}\n\n/**\n * Wrapper for the contents of a tab.\n * @docs-private\n */\n@Component({\n selector: 'mat-tab-body',\n templateUrl: 'tab-body.html',\n styleUrls: ['tab-body.css'],\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n animations: [matTabsAnimations.translateTab],\n host: {\n 'class': 'mat-mdc-tab-body',\n },\n})\nexport class MatTabBody extends _MatTabBodyBase {\n @ViewChild(CdkPortalOutlet) _portalHost: CdkPortalOutlet;\n\n constructor(\n elementRef: ElementRef<HTMLElement>,\n @Optional() dir: Directionality,\n changeDetectorRef: ChangeDetectorRef,\n ) {\n super(elementRef, dir, changeDetectorRef);\n }\n}\n","<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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {MatTabContent as BaseMatTabContent} from '@angular/material/tabs';\n\n/** Decorates the `ng-template` tags and reads out the template from it. */\n@Directive({selector: '[matTabContent]'})\nexport class MatTabContent extends BaseMatTabContent {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive} from '@angular/core';\nimport {MatTabLabel as BaseMatTabLabel} from '@angular/material/tabs';\n\n/** Used to flag tab labels for use with the portal directive */\n@Directive({\n selector: '[mat-tab-label], [matTabLabel]',\n})\nexport class MatTabLabel extends BaseMatTabLabel {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ElementRef, QueryList} from '@angular/core';\nimport {\n MDCSlidingTabIndicatorFoundation,\n MDCTabIndicatorAdapter,\n MDCTabIndicatorFoundation,\n} from '@material/tab-indicator';\n\n/**\n * Item inside a tab header relative to which the ink bar can be aligned.\n * @docs-private\n */\nexport interface MatInkBarItem {\n _foundation: MatInkBarFoundation;\n elementRef: ElementRef<HTMLElement>;\n}\n\n/**\n * Abstraction around the MDC tab indicator that acts as the tab header's ink bar.\n * @docs-private\n */\nexport class MatInkBar {\n /** Item to which the ink bar is aligned currently. */\n private _currentItem: MatInkBarItem | undefined;\n\n constructor(private _items: QueryList<MatInkBarItem>) {}\n\n /** Hides the ink bar. */\n hide() {\n this._items.forEach(item => item._foundation.deactivate());\n }\n\n /** Aligns the ink bar to a DOM node. */\n alignToElement(element: HTMLElement) {\n const correspondingItem = this._items.find(item => item.elementRef.nativeElement === element);\n const currentItem = this._currentItem;\n\n if (currentItem) {\n currentItem._foundation.deactivate();\n }\n\n if (correspondingItem) {\n const clientRect = currentItem\n ? currentItem._foundation.computeContentClientRect()\n : undefined;\n\n // The ink bar won't animate unless we give it the `ClientRect` of the previous item.\n correspondingItem._foundation.activate(clientRect);\n this._currentItem = correspondingItem;\n }\n }\n}\n\n/**\n * Implementation of MDC's sliding tab indicator (ink bar) foundation.\n * @docs-private\n */\nexport class MatInkBarFoundation {\n private _destroyed: boolean;\n private _foundation: MDCTabIndicatorFoundation;\n private _inkBarElement: HTMLElement;\n private _inkBarContentElement: HTMLElement;\n private _fitToContent = false;\n private _adapter: MDCTabIndicatorAdapter = {\n addClass: className => {\n if (!this._destroyed) {\n this._hostElement.classList.add(className);\n }\n },\n removeClass: className => {\n if (!this._destroyed) {\n this._hostElement.classList.remove(className);\n }\n },\n setContentStyleProperty: (propName, value) => {\n this._inkBarContentElement.style.setProperty(propName, value);\n },\n computeContentClientRect: () => {\n // `getBoundingClientRect` isn't available on the server.\n return this._destroyed || !this._inkBarContentElement.getBoundingClientRect\n ? ({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n x: 0,\n y: 0,\n } as ClientRect)\n : this._inkBarContentElement.getBoundingClientRect();\n },\n };\n\n constructor(private _hostElement: HTMLElement, private _document: Document) {\n this._foundation = new MDCSlidingTabIndicatorFoundation(this._adapter);\n }\n\n /** Aligns the ink bar to the current item. */\n activate(clientRect?: ClientRect) {\n this._foundation.activate(clientRect);\n }\n\n /** Removes the ink bar from the current item. */\n deactivate() {\n this._foundation.deactivate();\n }\n\n /** Gets the ClientRect of the ink bar. */\n computeContentClientRect() {\n return this._foundation.computeContentClientRect();\n }\n\n /** Initializes the foundation. */\n init() {\n this._createInkBarElement();\n this._foundation.init();\n }\n\n /** Destroys the foundation. */\n destroy() {\n this._inkBarElement.remove();\n this._hostElement = this._inkBarElement = this._inkBarContentElement = null!;\n this._foundation.destroy();\n this._destroyed = true;\n }\n\n /**\n * Sets whether the ink bar should be appended to the content, which will cause the ink bar\n * to match the width of the content rather than the tab host element.\n */\n setFitToContent(fitToContent: boolean) {\n if (this._fitToContent !== fitToContent) {\n this._fitToContent = fitToContent;\n if (this._inkBarElement) {\n this._appendInkBarElement();\n }\n }\n }\n\n /**\n * Gets whether the ink bar should be appended to the content, which will cause the ink bar\n * to match the width of the content rather than the tab host element.\n */\n getFitToContent(): boolean {\n return this._fitToContent;\n }\n\n /** Creates and appends the ink bar element. */\n private _createInkBarElement() {\n this._inkBarElement = this._document.createElement('span');\n this._inkBarContentElement = this._document.createElement('span');\n\n this._inkBarElement.className = 'mdc-tab-indicator';\n this._inkBarContentElement.className =\n 'mdc-tab-indicator__content' + ' mdc-tab-indicator__content--underline';\n\n this._inkBarElement.appendChild(this._inkBarContentElement);\n this._appendInkBarElement();\n }\n\n /**\n * Appends the ink bar to the tab host element or content, depending on whether\n * the ink bar should fit to content.\n */\n private _appendInkBarElement() {\n if (!this._inkBarElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Ink bar element has not been created and cannot be appended');\n }\n\n const parentElement = this._fitToContent\n ? this._hostElement.querySelector('.mdc-tab__content')\n : this._hostElement;\n\n if (!parentElement && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Missing element to host the ink bar');\n }\n\n parentElement!.appendChild(this._inkBarElement);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Directive, ElementRef, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {MatTabLabelWrapper as BaseMatTabLabelWrapper} from '@angular/material/tabs';\nimport {MatInkBarFoundation, MatInkBarItem} from './ink-bar';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * @docs-private\n */\n@Directive({\n selector: '[matTabLabelWrapper]',\n inputs: ['disabled'],\n host: {\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled',\n },\n})\nexport class MatTabLabelWrapper\n extends BaseMatTabLabelWrapper\n implements MatInkBarItem, OnInit, OnDestroy\n{\n private _document: Document;\n\n _foundation: MatInkBarFoundation;\n\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._foundation.getFitToContent();\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._foundation.setFitToContent(coerceBooleanProperty(v));\n }\n\n constructor(elementRef: ElementRef, @Inject(DOCUMENT) _document: any) {\n super(elementRef);\n this._document = _document;\n this._foundation = new MatInkBarFoundation(elementRef.nativeElement, this._document);\n }\n\n ngOnInit() {\n this._foundation.init();\n }\n\n ngOnDestroy() {\n this._foundation.destroy();\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n TemplateRef,\n ContentChild,\n} from '@angular/core';\nimport {MatTab as BaseMatTab, MAT_TAB} from '@angular/material/tabs';\nimport {MatTabContent} from './tab-content';\nimport {MatTabLabel} from './tab-label';\n\n@Component({\n selector: 'mat-tab',\n\n // Note that usually we'd go through a bit more trouble and set up another class so that\n // the inlined template of `MatTab` isn't duplicated, however the template is small enough\n // that creating the extra class will generate more code than just duplicating the template.\n templateUrl: 'tab.html',\n inputs: ['disabled'],\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n providers: [{provide: MAT_TAB, useExisting: MatTab}],\n})\nexport class MatTab extends BaseMatTab {\n /**\n * Template provided in the tab content that will be used if present, used to enable lazy-loading\n */\n @ContentChild(MatTabContent, {read: TemplateRef, static: true})\n override _explicitContent: TemplateRef<any>;\n\n /** Content for the tab label given by `<ng-template mat-tab-label>`. */\n @ContentChild(MatTabLabel)\n override get templateLabel(): MatTabLabel {\n return this._templateLabel;\n }\n override set templateLabel(value: MatTabLabel) {\n this._setTemplateLabelInput(value);\n }\n}\n","<!-- 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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n ContentChildren,\n ViewChild,\n ElementRef,\n QueryList,\n AfterContentInit,\n Optional,\n ChangeDetectorRef,\n NgZone,\n Inject,\n} from '@angular/core';\nimport {_MatTabHeaderBase} from '@angular/material/tabs';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatTabLabelWrapper} from './tab-label-wrapper';\nimport {MatInkBar} from './ink-bar';\n\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * @docs-private\n */\n@Component({\n selector: 'mat-tab-header',\n templateUrl: 'tab-header.html',\n styleUrls: ['tab-header.css'],\n inputs: ['selectedIndex'],\n outputs: ['selectFocusedIndex', 'indexFocused'],\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n host: {\n 'class': 'mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n },\n})\nexport class MatTabHeader extends _MatTabHeaderBase implements AfterContentInit {\n @ContentChildren(MatTabLabelWrapper, {descendants: false}) _items: QueryList<MatTabLabelWrapper>;\n @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef;\n @ViewChild('tabList', {static: true}) _tabList: ElementRef;\n @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef;\n @ViewChild('nextPaginator') _nextPaginator: ElementRef<HTMLElement>;\n @ViewChild('previousPaginator') _previousPaginator: ElementRef<HTMLElement>;\n _inkBar: MatInkBar;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n viewportRuler: ViewportRuler,\n @Optional() dir: Directionality,\n ngZone: NgZone,\n platform: Platform,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode);\n }\n\n override ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\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-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-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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n _MatTabGroupBase,\n MAT_TAB_GROUP,\n MAT_TABS_CONFIG,\n MatTabsConfig,\n} from '@angular/material/tabs';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {MatTab} from './tab';\nimport {MatTabHeader} from './tab-header';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\n@Component({\n selector: 'mat-tab-group',\n exportAs: 'matTabGroup',\n templateUrl: 'tab-group.html',\n styleUrls: ['tab-group.css'],\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n inputs: ['color', 'disableRipple'],\n providers: [\n {\n provide: MAT_TAB_GROUP,\n useExisting: MatTabGroup,\n },\n ],\n host: {\n 'class': 'mat-mdc-tab-group',\n '[class.mat-mdc-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-mdc-tab-group-inverted-header]': 'headerPosition === \"below\"',\n },\n})\nexport class MatTabGroup extends _MatTabGroupBase {\n @ContentChildren(MatTab, {descendants: true}) _allTabs: QueryList<MatTab>;\n @ViewChild('tabBodyWrapper') _tabBodyWrapper: ElementRef;\n @ViewChild('tabHeader') _tabHeader: MatTabHeader;\n\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._fitInkBarToContent;\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._fitInkBarToContent = coerceBooleanProperty(v);\n this._changeDetectorRef.markForCheck();\n }\n private _fitInkBarToContent = false;\n\n constructor(\n elementRef: ElementRef,\n changeDetectorRef: ChangeDetectorRef,\n @Inject(MAT_TABS_CONFIG) @Optional() defaultConfig?: MatTabsConfig,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(elementRef, changeDetectorRef, defaultConfig, animationMode);\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n }\n}\n","<mat-tab-header #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [disableRipple]=\"disableRipple\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\">\n\n <div class=\"mdc-tab mat-mdc-tab mat-mdc-focus-indicator\"\n #tabNode\n role=\"tab\"\n matTabLabelWrapper\n cdkMonitorElementFocus\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, 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 <!-- If there is a label template, use it. -->\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\"></ng-template>\n </ng-template>\n\n <!-- If there is not a label template, fall back to the text label. -->\n <ng-template #tabTextLabel>{{tab.textLabel}}</ng-template>\n </span>\n </span>\n </div>\n</mat-tab-header>\n\n<div\n class=\"mat-mdc-tab-body-wrapper\"\n [class._mat-animation-noopable]=\"_animationMode === 'NoopAnimations'\"\n #tabBodyWrapper>\n <mat-tab-body role=\"tabpanel\"\n *ngFor=\"let tab of _tabs; let i = index\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"(contentTabIndex != null && selectedIndex === i) ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(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</div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n forwardRef,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n Optional,\n Inject,\n Attribute,\n OnDestroy,\n AfterContentInit,\n NgZone,\n ChangeDetectorRef,\n OnInit,\n Input,\n} from '@angular/core';\nimport {ANIMATION_MODULE_TYPE} from '@angular/platform-browser/animations';\nimport {\n MAT_RIPPLE_GLOBAL_OPTIONS,\n RippleGlobalOptions,\n} from '@angular/material-experimental/mdc-core';\nimport {FocusMonitor} from '@angular/cdk/a11y';\nimport {\n _MatTabNavBase,\n _MatTabLinkBase,\n MAT_TABS_CONFIG,\n MatTabsConfig,\n} from '@angular/material/tabs';\nimport {DOCUMENT} from '@angular/common';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {ViewportRuler} from '@angular/cdk/scrolling';\nimport {Platform} from '@angular/cdk/platform';\nimport {MatInkBar, MatInkBarItem, MatInkBarFoundation} from '../ink-bar';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\n@Component({\n selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\n inputs: ['color'],\n templateUrl: 'tab-nav-bar.html',\n styleUrls: ['tab-nav-bar.css'],\n host: {\n '[attr.role]': '_getRole()',\n 'class': 'mat-mdc-tab-nav-bar mat-mdc-tab-header',\n '[class.mat-mdc-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-mdc-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n '[class.mat-primary]': 'color !== \"warn\" && color !== \"accent\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n },\n encapsulation: ViewEncapsulation.None,\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MatTabNav extends _MatTabNavBase implements AfterContentInit {\n /** Whether the ink bar should fit its width to the size of the tab label content. */\n @Input()\n get fitInkBarToContent(): boolean {\n return this._fitInkBarToContent.value;\n }\n set fitInkBarToContent(v: BooleanInput) {\n this._fitInkBarToContent.next(coerceBooleanProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n _fitInkBarToContent = new BehaviorSubject(false);\n\n @ContentChildren(forwardRef(() => MatTabLink), {descendants: true}) _items: QueryList<MatTabLink>;\n @ViewChild('tabListContainer', {static: true}) _tabListContainer: ElementRef;\n @ViewChild('tabList', {static: true}) _tabList: ElementRef;\n @ViewChild('tabListInner', {static: true}) _tabListInner: ElementRef;\n @ViewChild('nextPaginator') _nextPaginator: ElementRef<HTMLElement>;\n @ViewChild('previousPaginator') _previousPaginator: ElementRef<HTMLElement>;\n _inkBar: MatInkBar;\n\n constructor(\n elementRef: ElementRef,\n @Optional() dir: Directionality,\n ngZone: NgZone,\n changeDetectorRef: ChangeDetectorRef,\n viewportRuler: ViewportRuler,\n platform: Platform,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n @Optional() @Inject(MAT_TABS_CONFIG) defaultConfig?: MatTabsConfig,\n ) {\n super(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode);\n this.disablePagination =\n defaultConfig && defaultConfig.disablePagination != null\n ? defaultConfig.disablePagination\n : false;\n this.fitInkBarToContent =\n defaultConfig && defaultConfig.fitInkBarToContent != null\n ? defaultConfig.fitInkBarToContent\n : false;\n }\n\n override ngAfterContentInit() {\n this._inkBar = new MatInkBar(this._items);\n super.ngAfterContentInit();\n }\n}\n\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\n@Component({\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: 'tab-link.html',\n styleUrls: ['tab-link.css'],\n host: {\n 'class': 'mdc-tab mat-mdc-tab-link mat-mdc-focus-indicator',\n '[attr.aria-controls]': '_getAriaControls()',\n '[attr.aria-current]': '_getAriaCurrent()',\n '[attr.aria-disabled]': 'disabled',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.id]': 'id',\n '[attr.tabIndex]': '_getTabIndex()',\n '[attr.role]': '_getRole()',\n '[class.mat-mdc-tab-disabled]': 'disabled',\n '[class.mdc-tab--active]': 'active',\n '(focus)': '_handleFocus()',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class MatTabLink extends _MatTabLinkBase implements MatInkBarItem, OnInit, OnDestroy {\n _foundation = new MatInkBarFoundation(this.elementRef.nativeElement, this._document);\n\n private readonly _destroyed = new Subject<void>();\n\n constructor(\n tabNavBar: MatTabNav,\n elementRef: ElementRef,\n @Optional() @Inject(MAT_RIPPLE_GLOBAL_OPTIONS) globalRippleOptions: RippleGlobalOptions | null,\n @Attribute('tabindex') tabIndex: string,\n focusMonitor: FocusMonitor,\n @Inject(DOCUMENT) private _document: any,\n @Optional() @Inject(ANIMATION_MODULE_TYPE) animationMode?: string,\n ) {\n super(tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode);\n\n tabNavBar._fitInkBarToContent.pipe(takeUntil(this._destroyed)).subscribe(fitInkBarToContent => {\n this._foundation.setFitToContent(fitInkBarToContent);\n });\n }\n\n ngOnInit() {\n this._foundation.init();\n }\n\n override ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n super.ngOnDestroy();\n this._foundation.destroy();\n }\n}\n\n// Increasing integer for generating unique ids for tab nav components.\nlet nextUniqueId = 0;\n\n/**\n * Tab panel component associated with MatTabNav.\n */\n@Component({\n selector: 'mat-tab-nav-panel',\n exportAs: 'matTabNavPanel',\n template: '<ng-content></ng-content>',\n host: {\n '[attr.aria-labelledby]': '_activeTabId',\n '[attr.id]': 'id',\n 'class': 'mat-mdc-tab-nav-panel',\n 'role': 'tabpanel',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatTabNavPanel {\n /** Unique id for the tab panel. */\n @Input() id = `mat-tab-nav-panel-${nextUniqueId++}`;\n\n /** Id of the active tab in the nav bar. */\n _activeTabId?: string;\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-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","<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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule, MatRippleModule} from '@angular/material-experimental/mdc-core';\nimport {PortalModule} from '@angular/cdk/portal';\nimport {ObserversModule} from '@angular/cdk/observers';\nimport {A11yModule} from '@angular/cdk/a11y';\nimport {MatTabBody, MatTabBodyPortal} from './tab-body';\nimport {MatTabContent} from './tab-content';\nimport {MatTabLabel} from './tab-label';\nimport {MatTabLabelWrapper} from './tab-label-wrapper';\nimport {MatTab} from './tab';\nimport {MatTabHeader} from './tab-header';\nimport {MatTabGroup} from './tab-group';\nimport {MatTabNav, MatTabNavPanel, MatTabLink} from './tab-nav-bar/tab-nav-bar';\n\n@NgModule({\n imports: [\n CommonModule,\n MatCommonModule,\n PortalModule,\n MatRippleModule,\n ObserversModule,\n A11yModule,\n ],\n exports: [\n MatCommonModule,\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink,\n ],\n declarations: [\n MatTabContent,\n MatTabLabel,\n MatTab,\n MatTabGroup,\n MatTabNav,\n MatTabNavPanel,\n MatTabLink,\n\n // Private directives, should not be exported.\n MatTabBody,\n MatTabBodyPortal,\n MatTabLabelWrapper,\n MatTabHeader,\n ],\n})\nexport class MatTabsModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './module';\nexport {MatTabBodyPortal, MatTabBody} from './tab-body';\nexport {MatTabContent} from './tab-content';\nexport {MatTabLabel} from './tab-label';\nexport {MatTabLabelWrapper} from './tab-label-wrapper';\nexport {MatTab} from './tab';\nexport {MatInkBar} from './ink-bar';\nexport {MatTabHeader} from './tab-header';\nexport {MatTabGroup} from './tab-group';\nexport {MatTabNav, MatTabNavPanel, MatTabLink} from './tab-nav-bar/tab-nav-bar';\n\nexport {\n MatTabBodyPositionState,\n MatTabBodyOriginState,\n matTabsAnimations,\n _MatInkBarPositioner,\n _MAT_INK_BAR_POSITIONER,\n MatTabChangeEvent,\n MatTabHeaderPosition,\n MatTabsConfig,\n MAT_TABS_CONFIG,\n MAT_TAB_GROUP,\n MAT_TAB,\n ScrollDirection,\n} from '@angular/material/tabs';\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BaseMatTabBodyPortal","BaseMatTabContent","BaseMatTabLabel","BaseMatTabLabelWrapper","BaseMatTab"],"mappings":"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"}
|
package/mdc-chips/chip-grid.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { CanUpdateErrorState, ErrorStateMatcher } from '@angular/material-experi
|
|
|
12
12
|
import { MatFormFieldControl } from '@angular/material-experimental/mdc-form-field';
|
|
13
13
|
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
|
14
14
|
import { MatChipTextControl } from './chip-text-control';
|
|
15
|
-
import { Observable } from 'rxjs';
|
|
15
|
+
import { Observable, Subject } from 'rxjs';
|
|
16
16
|
import { MatChipEvent } from './chip';
|
|
17
17
|
import { MatChipRow } from './chip-row';
|
|
18
18
|
import { MatChipSet } from './chip-set';
|
|
@@ -37,10 +37,24 @@ declare class MatChipGridBase extends MatChipSet {
|
|
|
37
37
|
_defaultErrorStateMatcher: ErrorStateMatcher;
|
|
38
38
|
_parentForm: NgForm;
|
|
39
39
|
_parentFormGroup: FormGroupDirective;
|
|
40
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Form control bound to the component.
|
|
42
|
+
* Implemented as part of `MatFormFieldControl`.
|
|
43
|
+
* @docs-private
|
|
44
|
+
*/
|
|
41
45
|
ngControl: NgControl;
|
|
46
|
+
/**
|
|
47
|
+
* Emits whenever the component state changes and should cause the parent
|
|
48
|
+
* form-field to update. Implemented as part of `MatFormFieldControl`.
|
|
49
|
+
* @docs-private
|
|
50
|
+
*/
|
|
51
|
+
readonly stateChanges: Subject<void>;
|
|
42
52
|
constructor(liveAnnouncer: LiveAnnouncer, document: any, elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, _defaultErrorStateMatcher: ErrorStateMatcher, _parentForm: NgForm, _parentFormGroup: FormGroupDirective,
|
|
43
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Form control bound to the component.
|
|
55
|
+
* Implemented as part of `MatFormFieldControl`.
|
|
56
|
+
* @docs-private
|
|
57
|
+
*/
|
|
44
58
|
ngControl: NgControl);
|
|
45
59
|
}
|
|
46
60
|
declare const _MatChipGridMixinBase: import("@angular/material-experimental/mdc-core")._Constructor<CanUpdateErrorState> & import("@angular/material-experimental/mdc-core")._AbstractConstructor<CanUpdateErrorState> & typeof MatChipGridBase;
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
// on whether a textarea is used. This is not possible in our implementation of the
|
|
78
78
|
// form-field because we do not know what type of form-field control is set up. Hence
|
|
79
79
|
// we always use a fixed position for the label. This does not have any implications.
|
|
80
|
-
.mat-mdc-form-field .mat-mdc-text-field-wrapper .mdc-floating-label {
|
|
80
|
+
.mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-floating-label {
|
|
81
81
|
top: math.div($height, 2);
|
|
82
82
|
}
|
|
83
83
|
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
// Update the spacing for filled form fields to account for the hidden floating label.
|
|
108
108
|
@include _infix-vertical-spacing-filled(
|
|
109
109
|
$no-label-padding, $no-label-padding);
|
|
110
|
-
.mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mdc-floating-label {
|
|
110
|
+
.mat-mdc-text-field-wrapper:not(.mdc-text-field--outlined) .mat-mdc-floating-label {
|
|
111
111
|
display: none;
|
|
112
112
|
}
|
|
113
113
|
}
|
|
@@ -4,11 +4,20 @@
|
|
|
4
4
|
$focus-indicator-width: 3px;
|
|
5
5
|
$focus-indicator-style: dashed;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
.mat-form-field-appearance-fill {
|
|
8
|
+
// The outline of the `fill` appearance is achieved through a background color
|
|
9
|
+
// which won't be visible in high contrast mode. Add an outline to replace it.
|
|
10
|
+
.mat-mdc-text-field-wrapper {
|
|
11
|
+
@include a11y.high-contrast(active, off) {
|
|
12
|
+
outline: solid 1px;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Use GreyText for the disabled outline color which will account for the user's configuration.
|
|
17
|
+
&.mat-form-field-disabled .mat-mdc-text-field-wrapper {
|
|
18
|
+
@include a11y.high-contrast(active, off) {
|
|
19
|
+
outline-color: GrayText;
|
|
20
|
+
}
|
|
12
21
|
}
|
|
13
22
|
}
|
|
14
23
|
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
// shows `body1` for text fields though, so we manually override the typography.
|
|
77
77
|
// Note: Form controls inherit the typography from the parent form field.
|
|
78
78
|
.mat-mdc-form-field,
|
|
79
|
-
.mat-mdc-
|
|
79
|
+
.mat-mdc-floating-label {
|
|
80
80
|
@include mdc-typography.typography(body1, $query: mdc-helpers.$mat-typography-styles-query);
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
// In order to ensure proper alignment of the floating label, we reset its line-height.
|
|
21
21
|
// The line-height is not important as the element is absolutely positioned and only has one line
|
|
22
22
|
// of text.
|
|
23
|
-
.mat-mdc-form-field .mdc-floating-label.mdc-floating-label {
|
|
23
|
+
.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label {
|
|
24
24
|
line-height: normal;
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
// the notched outline container, and already applies a specific horizontal spacing which
|
|
96
96
|
// we do not want to overwrite. *Note*: We need to have increased specificity for this
|
|
97
97
|
// override because the `right` property will be set with higher specificity in RTL mode.
|
|
98
|
-
.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mdc-floating-label {
|
|
98
|
+
.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label {
|
|
99
99
|
left: auto;
|
|
100
100
|
right: auto;
|
|
101
101
|
}
|
|
@@ -24,13 +24,11 @@ export declare class MatFormFieldFloatingLabel {
|
|
|
24
24
|
private _elementRef;
|
|
25
25
|
/** Whether the label is floating. */
|
|
26
26
|
floating: boolean;
|
|
27
|
-
/** Whether the label is required. */
|
|
28
|
-
required: boolean;
|
|
29
27
|
constructor(_elementRef: ElementRef);
|
|
30
28
|
/** Gets the width of the label. Used for the outline notch. */
|
|
31
29
|
getWidth(): number;
|
|
32
30
|
/** Gets the HTML element for the floating label. */
|
|
33
31
|
get element(): HTMLElement;
|
|
34
32
|
static ɵfac: i0.ɵɵFactoryDeclaration<MatFormFieldFloatingLabel, never>;
|
|
35
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MatFormFieldFloatingLabel, "label[matFormFieldFloatingLabel]", never, { "floating": "floating";
|
|
33
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MatFormFieldFloatingLabel, "label[matFormFieldFloatingLabel]", never, { "floating": "floating"; }, {}, never>;
|
|
36
34
|
}
|