@angular/material 20.0.0-next.2 → 20.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/autocomplete/index.d.ts +5 -4
- package/badge/index.d.ts +2 -2
- package/badge/testing/index.d.ts +1 -1
- package/{badge.d-49a8a74b.d.ts → badge.d-d42103d0.d.ts} +1 -1
- package/bottom-sheet/index.d.ts +1 -0
- package/button/index.d.ts +4 -4
- package/button-toggle/index.d.ts +4 -4
- package/button-toggle/testing/index.d.ts +1 -1
- package/{button-toggle.d-edc8acff.d.ts → button-toggle.d-e3ddc80f.d.ts} +1 -1
- package/checkbox/index.d.ts +1 -1
- package/chips/index.d.ts +13 -3
- package/core/index.d.ts +11 -6
- package/core/m2/_theming.scss +68 -44
- package/core/tokens/_density.scss +1 -0
- package/datepicker/index.d.ts +5 -4
- package/dialog/index.d.ts +2 -2
- package/dialog/testing/index.d.ts +1 -1
- package/{dialog.d-57867441.d.ts → dialog.d-4ffbd89c.d.ts} +1 -1
- package/fesm2022/animation-5f89c9a6.mjs +33 -0
- package/fesm2022/animation-5f89c9a6.mjs.map +1 -0
- package/fesm2022/autocomplete/testing.mjs +2 -2
- package/fesm2022/autocomplete/testing.mjs.map +1 -1
- package/fesm2022/autocomplete.mjs +28 -25
- package/fesm2022/autocomplete.mjs.map +1 -1
- package/fesm2022/badge/testing.mjs.map +1 -1
- package/fesm2022/badge.mjs +16 -15
- package/fesm2022/badge.mjs.map +1 -1
- package/fesm2022/bottom-sheet/testing.mjs.map +1 -1
- package/fesm2022/bottom-sheet.mjs +16 -13
- package/fesm2022/bottom-sheet.mjs.map +1 -1
- package/fesm2022/button/testing.mjs.map +1 -1
- package/fesm2022/button-toggle/testing.mjs.map +1 -1
- package/fesm2022/button-toggle.mjs +19 -18
- package/fesm2022/button-toggle.mjs.map +1 -1
- package/fesm2022/button.mjs +8 -7
- package/fesm2022/button.mjs.map +1 -1
- package/fesm2022/card/testing.mjs.map +1 -1
- package/fesm2022/card.mjs +47 -47
- package/fesm2022/checkbox/testing.mjs.map +1 -1
- package/fesm2022/checkbox.mjs +16 -15
- package/fesm2022/checkbox.mjs.map +1 -1
- package/fesm2022/chips/testing.mjs +7 -1
- package/fesm2022/chips/testing.mjs.map +1 -1
- package/fesm2022/chips.mjs +74 -58
- package/fesm2022/chips.mjs.map +1 -1
- package/fesm2022/{common-module-2d64df09.mjs → common-module-3ec8031a.mjs} +5 -5
- package/fesm2022/{common-module-2d64df09.mjs.map → common-module-3ec8031a.mjs.map} +1 -1
- package/fesm2022/core/testing.mjs +2 -2
- package/fesm2022/core.mjs +26 -47
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/{date-range-input-harness-de70be6a.mjs → date-range-input-harness-3718a667.mjs} +1 -1
- package/fesm2022/date-range-input-harness-3718a667.mjs.map +1 -0
- package/fesm2022/datepicker/testing.mjs +2 -2
- package/fesm2022/datepicker/testing.mjs.map +1 -1
- package/fesm2022/datepicker.mjs +96 -93
- package/fesm2022/datepicker.mjs.map +1 -1
- package/fesm2022/dialog/testing.mjs +3 -2
- package/fesm2022/dialog/testing.mjs.map +1 -1
- package/fesm2022/dialog.mjs +3 -2
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/divider.mjs +8 -8
- package/fesm2022/{error-options-4a00765e.mjs → error-options-ee129e4b.mjs} +7 -7
- package/fesm2022/{error-options-4a00765e.mjs.map → error-options-ee129e4b.mjs.map} +1 -1
- package/fesm2022/expansion.mjs +30 -29
- package/fesm2022/expansion.mjs.map +1 -1
- package/fesm2022/form-field/testing.mjs +4 -4
- package/fesm2022/{form-field-6d755764.mjs → form-field-9a53ebf1.mjs} +34 -34
- package/fesm2022/form-field-9a53ebf1.mjs.map +1 -0
- package/fesm2022/form-field.mjs +4 -3
- package/fesm2022/form-field.mjs.map +1 -1
- package/fesm2022/grid-list.mjs +25 -25
- package/fesm2022/icon/testing.mjs +8 -8
- package/fesm2022/{icon-button-0850d958.mjs → icon-button-acdabdec.mjs} +13 -12
- package/fesm2022/icon-button-acdabdec.mjs.map +1 -0
- package/fesm2022/{icon-module-3f77a24d.mjs → icon-module-fd90a70e.mjs} +10 -10
- package/fesm2022/{icon-module-3f77a24d.mjs.map → icon-module-fd90a70e.mjs.map} +1 -1
- package/fesm2022/{icon-registry-13a3b98e.mjs → icon-registry-c1df72ea.mjs} +4 -4
- package/fesm2022/{icon-registry-13a3b98e.mjs.map → icon-registry-c1df72ea.mjs.map} +1 -1
- package/fesm2022/icon.mjs +3 -3
- package/fesm2022/{index-1763d3a6.mjs → index-1ea85b8e.mjs} +9 -9
- package/fesm2022/{index-1763d3a6.mjs.map → index-1ea85b8e.mjs.map} +1 -1
- package/fesm2022/{index-4bc1d6d3.mjs → index-b8da641d.mjs} +7 -7
- package/fesm2022/{index-4bc1d6d3.mjs.map → index-b8da641d.mjs.map} +1 -1
- package/fesm2022/input.mjs +13 -12
- package/fesm2022/input.mjs.map +1 -1
- package/fesm2022/{internal-form-field-434c4039.mjs → internal-form-field-7304c17d.mjs} +4 -4
- package/fesm2022/{internal-form-field-434c4039.mjs.map → internal-form-field-7304c17d.mjs.map} +1 -1
- package/fesm2022/{line-d6afe347.mjs → line-d0757c01.mjs} +9 -9
- package/fesm2022/{line-d6afe347.mjs.map → line-d0757c01.mjs.map} +1 -1
- package/fesm2022/list.mjs +58 -59
- package/fesm2022/list.mjs.map +1 -1
- package/fesm2022/material.mjs.map +1 -1
- package/fesm2022/menu/testing.mjs.map +1 -1
- package/fesm2022/menu.mjs +25 -23
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/{module-cf951a02.mjs → module-2701d616.mjs} +18 -18
- package/fesm2022/{module-cf951a02.mjs.map → module-2701d616.mjs.map} +1 -1
- package/fesm2022/{module-d757bba0.mjs → module-8175acdf.mjs} +7 -7
- package/fesm2022/{module-d757bba0.mjs.map → module-8175acdf.mjs.map} +1 -1
- package/fesm2022/{module-47e3be58.mjs → module-8c65f824.mjs} +18 -18
- package/fesm2022/module-8c65f824.mjs.map +1 -0
- package/fesm2022/{module-a5f9ab72.mjs → module-a40bca65.mjs} +36 -32
- package/fesm2022/module-a40bca65.mjs.map +1 -0
- package/fesm2022/{module-1c16a0a9.mjs → module-e7f30cea.mjs} +20 -19
- package/fesm2022/module-e7f30cea.mjs.map +1 -0
- package/fesm2022/{optgroup-harness-5e66b138.mjs → optgroup-harness-d5cf72ed.mjs} +2 -2
- package/fesm2022/optgroup-harness-d5cf72ed.mjs.map +1 -0
- package/fesm2022/{option-07c3c660.mjs → option-a77bb984.mjs} +10 -10
- package/fesm2022/{option-07c3c660.mjs.map → option-a77bb984.mjs.map} +1 -1
- package/fesm2022/{option-harness-3b7c1106.mjs → option-harness-b4971f41.mjs} +1 -1
- package/fesm2022/option-harness-b4971f41.mjs.map +1 -0
- package/fesm2022/paginator/testing.mjs +3 -3
- package/fesm2022/paginator/testing.mjs.map +1 -1
- package/fesm2022/paginator.mjs +27 -26
- package/fesm2022/paginator.mjs.map +1 -1
- package/fesm2022/progress-bar.mjs +11 -12
- package/fesm2022/progress-bar.mjs.map +1 -1
- package/fesm2022/progress-spinner.mjs +11 -12
- package/fesm2022/progress-spinner.mjs.map +1 -1
- package/fesm2022/{pseudo-checkbox-af5a4ea4.mjs → pseudo-checkbox-006bd0a9.mjs} +8 -7
- package/fesm2022/pseudo-checkbox-006bd0a9.mjs.map +1 -0
- package/fesm2022/{pseudo-checkbox-module-216fae38.mjs → pseudo-checkbox-module-d04dbe5a.mjs} +7 -7
- package/fesm2022/{pseudo-checkbox-module-216fae38.mjs.map → pseudo-checkbox-module-d04dbe5a.mjs.map} +1 -1
- package/fesm2022/radio/testing.mjs.map +1 -1
- package/fesm2022/radio.mjs +18 -19
- package/fesm2022/radio.mjs.map +1 -1
- package/fesm2022/{ripple-9939d1f5.mjs → ripple-18f3bc18.mjs} +11 -10
- package/fesm2022/{ripple-9939d1f5.mjs.map → ripple-18f3bc18.mjs.map} +1 -1
- package/fesm2022/{ripple-loader-f2078c66.mjs → ripple-loader-e685c61f.mjs} +13 -13
- package/fesm2022/ripple-loader-e685c61f.mjs.map +1 -0
- package/fesm2022/select/testing.mjs +3 -3
- package/fesm2022/{select-harness-69d47123.mjs → select-harness-30466074.mjs} +3 -3
- package/fesm2022/select-harness-30466074.mjs.map +1 -0
- package/fesm2022/select.mjs +13 -12
- package/fesm2022/select.mjs.map +1 -1
- package/fesm2022/sidenav/testing.mjs.map +1 -1
- package/fesm2022/sidenav.mjs +27 -26
- package/fesm2022/sidenav.mjs.map +1 -1
- package/fesm2022/slide-toggle/testing.mjs.map +1 -1
- package/fesm2022/slide-toggle.mjs +14 -15
- package/fesm2022/slide-toggle.mjs.map +1 -1
- package/fesm2022/slider/testing.mjs.map +1 -1
- package/fesm2022/slider.mjs +23 -24
- package/fesm2022/slider.mjs.map +1 -1
- package/fesm2022/snack-bar/testing.mjs.map +1 -1
- package/fesm2022/snack-bar.mjs +34 -31
- package/fesm2022/snack-bar.mjs.map +1 -1
- package/fesm2022/sort/testing.mjs.map +1 -1
- package/fesm2022/sort.mjs +19 -18
- package/fesm2022/sort.mjs.map +1 -1
- package/fesm2022/stepper/testing.mjs.map +1 -1
- package/fesm2022/stepper.mjs +43 -42
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/{structural-styles-d5ada3b3.mjs → structural-styles-e3fe1eb7.mjs} +4 -4
- package/fesm2022/{structural-styles-d5ada3b3.mjs.map → structural-styles-e3fe1eb7.mjs.map} +1 -1
- package/fesm2022/table/testing.mjs.map +1 -1
- package/fesm2022/table.mjs +56 -56
- package/fesm2022/tabs/testing.mjs.map +1 -1
- package/fesm2022/tabs.mjs +58 -65
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/timepicker/testing.mjs +1 -1
- package/fesm2022/timepicker/testing.mjs.map +1 -1
- package/fesm2022/timepicker.mjs +27 -26
- package/fesm2022/timepicker.mjs.map +1 -1
- package/fesm2022/toolbar/testing.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +11 -11
- package/fesm2022/tooltip/testing.mjs.map +1 -1
- package/fesm2022/tooltip.mjs +3 -2
- package/fesm2022/tooltip.mjs.map +1 -1
- package/fesm2022/tree/testing.mjs.map +1 -1
- package/fesm2022/tree.mjs +26 -26
- package/{index.d-0536b706.d.ts → index.d-cc6e48d4.d.ts} +1 -1
- package/{index.d-37e31cd3.d.ts → index.d-d77f0821.d.ts} +2 -2
- package/list/index.d.ts +3 -3
- package/menu/index.d.ts +3 -2
- package/{module.d-74a721b9.d.ts → module.d-9a0cb968.d.ts} +1 -0
- package/{module.d-ba05faa6.d.ts → module.d-a23953f5.d.ts} +1 -1
- package/{module.d-792a497c.d.ts → module.d-d86ca350.d.ts} +3 -3
- package/package.json +2 -2
- package/paginator/index.d.ts +8 -8
- package/progress-bar/index.d.ts +0 -1
- package/{pseudo-checkbox-module.d-3abc0461.d.ts → pseudo-checkbox-module.d-d21de92b.d.ts} +1 -1
- package/radio/index.d.ts +2 -2
- package/{ripple-loader.d-8aac2988.d.ts → ripple-loader.d-e5ac6c14.d.ts} +1 -1
- package/{ripple.d-2fb57d04.d.ts → ripple.d-f2cd74cf.d.ts} +1 -1
- package/schematics/ng-add/fonts/material-fonts.js +1 -1
- package/schematics/ng-add/fonts/material-fonts.js.map +1 -0
- package/schematics/ng-add/index.js +2 -2
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/package-config.js +1 -1
- package/schematics/ng-add/package-config.js.map +1 -0
- package/schematics/ng-add/schema.js +1 -1
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/setup-project.js +1 -1
- package/schematics/ng-add/setup-project.js.map +1 -0
- package/schematics/ng-add/theming/create-custom-theme.js +1 -1
- package/schematics/ng-add/theming/create-custom-theme.js.map +1 -0
- package/schematics/ng-add/theming/theming.js +1 -1
- package/schematics/ng-add/theming/theming.js.map +1 -0
- package/schematics/ng-generate/address-form/index.js +1 -1
- package/schematics/ng-generate/address-form/index.js.map +1 -0
- package/schematics/ng-generate/address-form/schema.js +1 -1
- package/schematics/ng-generate/address-form/schema.js.map +1 -0
- package/schematics/ng-generate/dashboard/index.js +1 -1
- package/schematics/ng-generate/dashboard/index.js.map +1 -0
- package/schematics/ng-generate/dashboard/schema.js +1 -1
- package/schematics/ng-generate/dashboard/schema.js.map +1 -0
- package/schematics/ng-generate/navigation/index.js +1 -1
- package/schematics/ng-generate/navigation/index.js.map +1 -0
- package/schematics/ng-generate/navigation/schema.js +1 -1
- package/schematics/ng-generate/navigation/schema.js.map +1 -0
- package/schematics/ng-generate/table/index.js +1 -1
- package/schematics/ng-generate/table/index.js.map +1 -0
- package/schematics/ng-generate/table/schema.js +1 -1
- package/schematics/ng-generate/table/schema.js.map +1 -0
- package/schematics/ng-generate/theme-color/index_bundled.js +3828 -2237
- package/schematics/ng-generate/theme-color/index_bundled.js.map +4 -4
- package/schematics/ng-generate/tree/index.js +1 -1
- package/schematics/ng-generate/tree/index.js.map +1 -0
- package/schematics/ng-generate/tree/schema.js +1 -1
- package/schematics/ng-generate/tree/schema.js.map +1 -0
- package/schematics/ng-update/index_bundled.js +194 -782
- package/schematics/ng-update/index_bundled.js.map +4 -4
- package/schematics/tsconfig.json +26 -0
- package/select/index.d.ts +5 -5
- package/sidenav/index.d.ts +1 -1
- package/slider/index.d.ts +2 -2
- package/snack-bar/index.d.ts +5 -4
- package/sort/index.d.ts +1 -1
- package/stepper/index.d.ts +3 -3
- package/tabs/index.d.ts +4 -4
- package/timepicker/index.d.ts +0 -1
- package/tooltip/index.d.ts +1 -1
- package/fesm2022/date-range-input-harness-de70be6a.mjs.map +0 -1
- package/fesm2022/form-field-6d755764.mjs.map +0 -1
- package/fesm2022/icon-button-0850d958.mjs.map +0 -1
- package/fesm2022/module-1c16a0a9.mjs.map +0 -1
- package/fesm2022/module-47e3be58.mjs.map +0 -1
- package/fesm2022/module-a5f9ab72.mjs.map +0 -1
- package/fesm2022/optgroup-harness-5e66b138.mjs.map +0 -1
- package/fesm2022/option-harness-3b7c1106.mjs.map +0 -1
- package/fesm2022/pseudo-checkbox-af5a4ea4.mjs.map +0 -1
- package/fesm2022/ripple-loader-f2078c66.mjs.map +0 -1
- package/fesm2022/select-harness-69d47123.mjs.map +0 -1
- package/schematics/ng-add/fonts/material-fonts.mjs +0 -34
- package/schematics/ng-add/index.mjs +0 -54
- package/schematics/ng-add/package-config.mjs +0 -51
- package/schematics/ng-add/schema.mjs +0 -10
- package/schematics/ng-add/setup-project.mjs +0 -75
- package/schematics/ng-add/theming/create-custom-theme.mjs +0 -30
- package/schematics/ng-add/theming/theming.mjs +0 -151
- package/schematics/ng-generate/address-form/index.mjs +0 -43
- package/schematics/ng-generate/address-form/schema.mjs +0 -10
- package/schematics/ng-generate/dashboard/index.mjs +0 -42
- package/schematics/ng-generate/dashboard/schema.mjs +0 -10
- package/schematics/ng-generate/navigation/index.mjs +0 -42
- package/schematics/ng-generate/navigation/schema.mjs +0 -10
- package/schematics/ng-generate/table/index.mjs +0 -40
- package/schematics/ng-generate/table/schema.mjs +0 -10
- package/schematics/ng-generate/tree/index.mjs +0 -40
- package/schematics/ng-generate/tree/schema.mjs +0 -10
- package/schematics/schematics.externs.js +0 -0
|
@@ -6,13 +6,13 @@ import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/
|
|
|
6
6
|
* @docs-private
|
|
7
7
|
*/
|
|
8
8
|
class _StructuralStylesLoader {
|
|
9
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
10
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: _StructuralStylesLoader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.3", type: _StructuralStylesLoader, isStandalone: true, selector: "structural-styles", ngImport: i0, template: '', isInline: true, styles: [".mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:\"\"}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: _StructuralStylesLoader, decorators: [{
|
|
13
13
|
type: Component,
|
|
14
14
|
args: [{ selector: 'structural-styles', encapsulation: ViewEncapsulation.None, template: '', changeDetection: ChangeDetectionStrategy.OnPush, styles: [".mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:\"\"}@media(forced-colors: active){html{--mat-focus-indicator-display: block}}"] }]
|
|
15
15
|
}] });
|
|
16
16
|
|
|
17
17
|
export { _StructuralStylesLoader as _ };
|
|
18
|
-
//# sourceMappingURL=structural-styles-
|
|
18
|
+
//# sourceMappingURL=structural-styles-e3fe1eb7.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structural-styles-
|
|
1
|
+
{"version":3,"file":"structural-styles-e3fe1eb7.mjs","sources":["../../../../../../src/material/core/focus-indicators/structural-styles.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.dev/license\n */\n\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n/**\n * Component used to load structural styles for focus indicators.\n * @docs-private\n */\n@Component({\n selector: 'structural-styles',\n styleUrl: 'structural-styles.css',\n encapsulation: ViewEncapsulation.None,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class _StructuralStylesLoader {}\n"],"names":[],"mappings":";;;AAUA;;;AAGG;MAQU,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,eAAA,EAAA,IAAA,EAAA,uBAAuB,6EAHxB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,8jBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;kGAGD,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACE,mBAAmB,EAAA,aAAA,EAEd,iBAAiB,CAAC,IAAI,YAC3B,EAAE,EAAA,eAAA,EACK,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,8jBAAA,CAAA,EAAA,CAAA;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/table/testing/cell-harness.ts","../../../../../../../src/material/table/testing/row-harness.ts","../../../../../../../src/material/table/testing/table-harness.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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {CellHarnessFilters} from './table-harness-filters';\n\nexport abstract class _MatCellHarnessBase extends ContentContainerComponentHarness {\n /** Gets the cell's text. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Gets the name of the column that the cell belongs to. */\n async getColumnName(): Promise<string> {\n const host = await this.host();\n const classAttribute = await host.getAttribute('class');\n\n if (classAttribute) {\n const prefix = 'mat-column-';\n const name = classAttribute\n .split(' ')\n .map(c => c.trim())\n .find(c => c.startsWith(prefix));\n\n if (name) {\n return name.split(prefix)[1];\n }\n }\n\n throw Error('Could not determine column name of cell.');\n }\n\n protected static _getCellPredicate<T extends MatCellHarness>(\n type: ComponentHarnessConstructor<T>,\n options: CellHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(type, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption('columnName', options.columnName, (harness, name) =>\n HarnessPredicate.stringMatches(harness.getColumnName(), name),\n );\n }\n}\n\n/** Harness for interacting with an Angular Material table cell. */\nexport class MatCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatCellHarness` instance. */\n static hostSelector = '.mat-mdc-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table cell with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table header cell. */\nexport class MatHeaderCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatHeaderCellHarness` instance. */\n static hostSelector = '.mat-mdc-header-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table header cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatHeaderCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table footer cell. */\nexport class MatFooterCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatFooterCellHarness` instance. */\n static hostSelector = '.mat-mdc-footer-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table footer cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatFooterCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\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.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n _MatCellHarnessBase,\n MatCellHarness,\n MatFooterCellHarness,\n MatHeaderCellHarness,\n} from './cell-harness';\nimport {CellHarnessFilters, RowHarnessFilters} from './table-harness-filters';\n\n/** Text extracted from a table row organized by columns. */\nexport interface MatRowHarnessColumnsText {\n [columnName: string]: string;\n}\n\nexport abstract class _MatRowHarnessBase<\n CellType extends ComponentHarnessConstructor<Cell> & {\n with: (options?: CellHarnessFilters) => HarnessPredicate<Cell>;\n },\n Cell extends _MatCellHarnessBase,\n> extends ComponentHarness {\n protected abstract _cellHarness: CellType;\n\n /** Gets a list of `MatCellHarness` for all cells in the row. */\n async getCells(filter: CellHarnessFilters = {}): Promise<Cell[]> {\n return this.locatorForAll(this._cellHarness.with(filter))();\n }\n\n /** Gets the text of the cells in the row. */\n async getCellTextByIndex(filter: CellHarnessFilters = {}): Promise<string[]> {\n const cells = await this.getCells(filter);\n return parallel(() => cells.map(cell => cell.getText()));\n }\n\n /** Gets the text inside the row organized by columns. */\n async getCellTextByColumnName(): Promise<MatRowHarnessColumnsText> {\n const output: MatRowHarnessColumnsText = {};\n const cells = await this.getCells();\n const cellsData = await parallel(() =>\n cells.map(cell => {\n return parallel(() => [cell.getColumnName(), cell.getText()]);\n }),\n );\n cellsData.forEach(([columnName, text]) => (output[columnName] = text));\n return output;\n }\n}\n\n/** Harness for interacting with an Angular Material table row. */\nexport class MatRowHarness extends _MatRowHarnessBase<typeof MatCellHarness, MatCellHarness> {\n /** The selector for the host element of a `MatRowHarness` instance. */\n static hostSelector = '.mat-mdc-row';\n protected _cellHarness = MatCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table row with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table header row. */\nexport class MatHeaderRowHarness extends _MatRowHarnessBase<\n typeof MatHeaderCellHarness,\n MatHeaderCellHarness\n> {\n /** The selector for the host element of a `MatHeaderRowHarness` instance. */\n static hostSelector = '.mat-mdc-header-row';\n protected _cellHarness = MatHeaderCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table header row with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatHeaderRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table footer row. */\nexport class MatFooterRowHarness extends _MatRowHarnessBase<\n typeof MatFooterCellHarness,\n MatFooterCellHarness\n> {\n /** The selector for the host element of a `MatFooterRowHarness` instance. */\n static hostSelector = '.mat-mdc-footer-row';\n protected _cellHarness = MatFooterCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table footer row cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatFooterRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n MatFooterRowHarness,\n MatHeaderRowHarness,\n MatRowHarness,\n MatRowHarnessColumnsText,\n} from './row-harness';\nimport {RowHarnessFilters, TableHarnessFilters} from './table-harness-filters';\n\n/** Text extracted from a table organized by columns. */\nexport interface MatTableHarnessColumnsText {\n [columnName: string]: {\n text: string[];\n headerText: string[];\n footerText: string[];\n };\n}\n\n/** Harness for interacting with a mat-table in tests. */\nexport class MatTableHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatTableHarness` instance. */\n static hostSelector = '.mat-mdc-table';\n _headerRowHarness = MatHeaderRowHarness;\n _rowHarness = MatRowHarness;\n private _footerRowHarness = MatFooterRowHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTableHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TableHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Gets all the header rows in a table. */\n async getHeaderRows(filter: RowHarnessFilters = {}): Promise<MatHeaderRowHarness[]> {\n return this.locatorForAll(this._headerRowHarness.with(filter))();\n }\n\n /** Gets all the regular data rows in a table. */\n async getRows(filter: RowHarnessFilters = {}): Promise<MatRowHarness[]> {\n return this.locatorForAll(this._rowHarness.with(filter))();\n }\n\n /** Gets all the footer rows in a table. */\n async getFooterRows(filter: RowHarnessFilters = {}): Promise<MatFooterRowHarness[]> {\n return this.locatorForAll(this._footerRowHarness.with(filter))();\n }\n\n /** Gets the text inside the entire table organized by rows. */\n async getCellTextByIndex(): Promise<string[][]> {\n const rows = await this.getRows();\n return parallel(() => rows.map(row => row.getCellTextByIndex()));\n }\n\n /** Gets the text inside the entire table organized by columns. */\n async getCellTextByColumnName(): Promise<MatTableHarnessColumnsText> {\n const [headerRows, footerRows, dataRows] = await parallel(() => [\n this.getHeaderRows(),\n this.getFooterRows(),\n this.getRows(),\n ]);\n\n const text: MatTableHarnessColumnsText = {};\n const [headerData, footerData, rowsData] = await parallel(() => [\n parallel(() => headerRows.map(row => row.getCellTextByColumnName())),\n parallel(() => footerRows.map(row => row.getCellTextByColumnName())),\n parallel(() => dataRows.map(row => row.getCellTextByColumnName())),\n ]);\n\n rowsData.forEach(data => {\n Object.keys(data).forEach(columnName => {\n const cellText = data[columnName];\n\n if (!text[columnName]) {\n text[columnName] = {\n headerText: getCellTextsByColumn(headerData, columnName),\n footerText: getCellTextsByColumn(footerData, columnName),\n text: [],\n };\n }\n\n text[columnName].text.push(cellText);\n });\n });\n\n return text;\n }\n}\n\n/** Extracts the text of cells only under a particular column. */\nfunction getCellTextsByColumn(rowsData: MatRowHarnessColumnsText[], column: string): string[] {\n const columnTexts: string[] = [];\n\n rowsData.forEach(data => {\n Object.keys(data).forEach(columnName => {\n if (columnName === column) {\n columnTexts.push(data[columnName]);\n }\n });\n });\n\n return columnTexts;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testing.mjs","sources":["../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/table/testing/cell-harness.ts","../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/table/testing/row-harness.ts","../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/table/testing/table-harness.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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {CellHarnessFilters} from './table-harness-filters';\n\nexport abstract class _MatCellHarnessBase extends ContentContainerComponentHarness {\n /** Gets the cell's text. */\n async getText(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Gets the name of the column that the cell belongs to. */\n async getColumnName(): Promise<string> {\n const host = await this.host();\n const classAttribute = await host.getAttribute('class');\n\n if (classAttribute) {\n const prefix = 'mat-column-';\n const name = classAttribute\n .split(' ')\n .map(c => c.trim())\n .find(c => c.startsWith(prefix));\n\n if (name) {\n return name.split(prefix)[1];\n }\n }\n\n throw Error('Could not determine column name of cell.');\n }\n\n protected static _getCellPredicate<T extends MatCellHarness>(\n type: ComponentHarnessConstructor<T>,\n options: CellHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(type, options)\n .addOption('text', options.text, (harness, text) =>\n HarnessPredicate.stringMatches(harness.getText(), text),\n )\n .addOption('columnName', options.columnName, (harness, name) =>\n HarnessPredicate.stringMatches(harness.getColumnName(), name),\n );\n }\n}\n\n/** Harness for interacting with an Angular Material table cell. */\nexport class MatCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatCellHarness` instance. */\n static hostSelector = '.mat-mdc-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table cell with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table header cell. */\nexport class MatHeaderCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatHeaderCellHarness` instance. */\n static hostSelector = '.mat-mdc-header-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table header cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatHeaderCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table footer cell. */\nexport class MatFooterCellHarness extends _MatCellHarnessBase {\n /** The selector for the host element of a `MatFooterCellHarness` instance. */\n static hostSelector = '.mat-mdc-footer-cell';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table footer cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with(options: CellHarnessFilters = {}): HarnessPredicate<MatFooterCellHarness> {\n return _MatCellHarnessBase._getCellPredicate(this, options);\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.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n _MatCellHarnessBase,\n MatCellHarness,\n MatFooterCellHarness,\n MatHeaderCellHarness,\n} from './cell-harness';\nimport {CellHarnessFilters, RowHarnessFilters} from './table-harness-filters';\n\n/** Text extracted from a table row organized by columns. */\nexport interface MatRowHarnessColumnsText {\n [columnName: string]: string;\n}\n\nexport abstract class _MatRowHarnessBase<\n CellType extends ComponentHarnessConstructor<Cell> & {\n with: (options?: CellHarnessFilters) => HarnessPredicate<Cell>;\n },\n Cell extends _MatCellHarnessBase,\n> extends ComponentHarness {\n protected abstract _cellHarness: CellType;\n\n /** Gets a list of `MatCellHarness` for all cells in the row. */\n async getCells(filter: CellHarnessFilters = {}): Promise<Cell[]> {\n return this.locatorForAll(this._cellHarness.with(filter))();\n }\n\n /** Gets the text of the cells in the row. */\n async getCellTextByIndex(filter: CellHarnessFilters = {}): Promise<string[]> {\n const cells = await this.getCells(filter);\n return parallel(() => cells.map(cell => cell.getText()));\n }\n\n /** Gets the text inside the row organized by columns. */\n async getCellTextByColumnName(): Promise<MatRowHarnessColumnsText> {\n const output: MatRowHarnessColumnsText = {};\n const cells = await this.getCells();\n const cellsData = await parallel(() =>\n cells.map(cell => {\n return parallel(() => [cell.getColumnName(), cell.getText()]);\n }),\n );\n cellsData.forEach(([columnName, text]) => (output[columnName] = text));\n return output;\n }\n}\n\n/** Harness for interacting with an Angular Material table row. */\nexport class MatRowHarness extends _MatRowHarnessBase<typeof MatCellHarness, MatCellHarness> {\n /** The selector for the host element of a `MatRowHarness` instance. */\n static hostSelector = '.mat-mdc-row';\n protected _cellHarness = MatCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table row with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table header row. */\nexport class MatHeaderRowHarness extends _MatRowHarnessBase<\n typeof MatHeaderCellHarness,\n MatHeaderCellHarness\n> {\n /** The selector for the host element of a `MatHeaderRowHarness` instance. */\n static hostSelector = '.mat-mdc-header-row';\n protected _cellHarness = MatHeaderCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table header row with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatHeaderRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n}\n\n/** Harness for interacting with an Angular Material table footer row. */\nexport class MatFooterRowHarness extends _MatRowHarnessBase<\n typeof MatFooterCellHarness,\n MatFooterCellHarness\n> {\n /** The selector for the host element of a `MatFooterRowHarness` instance. */\n static hostSelector = '.mat-mdc-footer-row';\n protected _cellHarness = MatFooterCellHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table footer row cell with specific\n * attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatFooterRowHarness>(\n this: ComponentHarnessConstructor<T>,\n options: RowHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n MatFooterRowHarness,\n MatHeaderRowHarness,\n MatRowHarness,\n MatRowHarnessColumnsText,\n} from './row-harness';\nimport {RowHarnessFilters, TableHarnessFilters} from './table-harness-filters';\n\n/** Text extracted from a table organized by columns. */\nexport interface MatTableHarnessColumnsText {\n [columnName: string]: {\n text: string[];\n headerText: string[];\n footerText: string[];\n };\n}\n\n/** Harness for interacting with a mat-table in tests. */\nexport class MatTableHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatTableHarness` instance. */\n static hostSelector = '.mat-mdc-table';\n _headerRowHarness = MatHeaderRowHarness;\n _rowHarness = MatRowHarness;\n private _footerRowHarness = MatFooterRowHarness;\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a table with specific attributes.\n * @param options Options for narrowing the search\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTableHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TableHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Gets all the header rows in a table. */\n async getHeaderRows(filter: RowHarnessFilters = {}): Promise<MatHeaderRowHarness[]> {\n return this.locatorForAll(this._headerRowHarness.with(filter))();\n }\n\n /** Gets all the regular data rows in a table. */\n async getRows(filter: RowHarnessFilters = {}): Promise<MatRowHarness[]> {\n return this.locatorForAll(this._rowHarness.with(filter))();\n }\n\n /** Gets all the footer rows in a table. */\n async getFooterRows(filter: RowHarnessFilters = {}): Promise<MatFooterRowHarness[]> {\n return this.locatorForAll(this._footerRowHarness.with(filter))();\n }\n\n /** Gets the text inside the entire table organized by rows. */\n async getCellTextByIndex(): Promise<string[][]> {\n const rows = await this.getRows();\n return parallel(() => rows.map(row => row.getCellTextByIndex()));\n }\n\n /** Gets the text inside the entire table organized by columns. */\n async getCellTextByColumnName(): Promise<MatTableHarnessColumnsText> {\n const [headerRows, footerRows, dataRows] = await parallel(() => [\n this.getHeaderRows(),\n this.getFooterRows(),\n this.getRows(),\n ]);\n\n const text: MatTableHarnessColumnsText = {};\n const [headerData, footerData, rowsData] = await parallel(() => [\n parallel(() => headerRows.map(row => row.getCellTextByColumnName())),\n parallel(() => footerRows.map(row => row.getCellTextByColumnName())),\n parallel(() => dataRows.map(row => row.getCellTextByColumnName())),\n ]);\n\n rowsData.forEach(data => {\n Object.keys(data).forEach(columnName => {\n const cellText = data[columnName];\n\n if (!text[columnName]) {\n text[columnName] = {\n headerText: getCellTextsByColumn(headerData, columnName),\n footerText: getCellTextsByColumn(footerData, columnName),\n text: [],\n };\n }\n\n text[columnName].text.push(cellText);\n });\n });\n\n return text;\n }\n}\n\n/** Extracts the text of cells only under a particular column. */\nfunction getCellTextsByColumn(rowsData: MatRowHarnessColumnsText[], column: string): string[] {\n const columnTexts: string[] = [];\n\n rowsData.forEach(data => {\n Object.keys(data).forEach(columnName => {\n if (columnName === column) {\n columnTexts.push(data[columnName]);\n }\n });\n });\n\n return columnTexts;\n}\n"],"names":[],"mappings":";;AAeM,MAAgB,mBAAoB,SAAQ,gCAAgC,CAAA;;AAEhF,IAAA,MAAM,OAAO,GAAA;QACX,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAA;KACnC;;AAGA,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC9B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAEvD,IAAI,cAAc,EAAE;YAClB,MAAM,MAAM,GAAG,aAAa,CAAA;YAC5B,MAAM,IAAI,GAAG,cAAc;iBACxB,KAAK,CAAC,GAAG,CAAA;iBACT,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;AACjB,iBAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;YAElC,IAAI,IAAI,EAAE;gBACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;aAC9B;SACF;AAEA,QAAA,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAA;KACzD;AAEU,IAAA,OAAO,iBAAiB,CAChC,IAAoC,EACpC,OAA2B,EAAA;AAE3B,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAA;aACtC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,KAC7C,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAA;aAExD,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,IAAI,KACzD,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAC9D,CAAA;KACL;AACD,CAAA;AAED;AACM,MAAO,cAAe,SAAQ,mBAAmB,CAAA;;AAErD,IAAA,OAAO,YAAY,GAAG,eAAe,CAAA;AAErC;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;QAC1C,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC7D;;AAGF;AACM,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;;AAE3D,IAAA,OAAO,YAAY,GAAG,sBAAsB,CAAA;AAE5C;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;QAC1C,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC7D;;AAGF;AACM,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;;AAE3D,IAAA,OAAO,YAAY,GAAG,sBAAsB,CAAA;AAE5C;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAAC,OAAA,GAA8B,EAAE,EAAA;QAC1C,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC7D;;;ACxEI,MAAgB,kBAKpB,SAAQ,gBAAgB,CAAA;;AAIxB,IAAA,MAAM,QAAQ,CAAC,MAAA,GAA6B,EAAE,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;KAC7D;;AAGA,IAAA,MAAM,kBAAkB,CAAC,MAAA,GAA6B,EAAE,EAAA;QACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AACzC,QAAA,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;KAC1D;;AAGA,IAAA,MAAM,uBAAuB,GAAA;QAC3B,MAAM,MAAM,GAA6B,EAAE,CAAA;AAC3C,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;AACnC,QAAA,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;AACf,YAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;SAC9D,CAAC,CACH,CAAA;QACD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;AACtE,QAAA,OAAO,MAAM,CAAA;KACf;AACD,CAAA;AAED;AACM,MAAO,aAAc,SAAQ,kBAAyD,CAAA;;AAE1F,IAAA,OAAO,YAAY,GAAG,cAAc,CAAA;IAC1B,YAAY,GAAG,cAAc,CAAA;AAEvC;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAA6B,EAAE,EAAA;AAE/B,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC5C;;AAGF;AACM,MAAO,mBAAoB,SAAQ,kBAGxC,CAAA;;AAEC,IAAA,OAAO,YAAY,GAAG,qBAAqB,CAAA;IACjC,YAAY,GAAG,oBAAoB,CAAA;AAE7C;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAA6B,EAAE,EAAA;AAE/B,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC5C;;AAGF;AACM,MAAO,mBAAoB,SAAQ,kBAGxC,CAAA;;AAEC,IAAA,OAAO,YAAY,GAAG,qBAAqB,CAAA;IACjC,YAAY,GAAG,oBAAoB,CAAA;AAE7C;;;;;AAKG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAA6B,EAAE,EAAA;AAE/B,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC5C;;;AC3FF;AACM,MAAO,eAAgB,SAAQ,gCAAwC,CAAA;;AAE3E,IAAA,OAAO,YAAY,GAAG,gBAAgB,CAAA;IACtC,iBAAiB,GAAG,mBAAmB,CAAA;IACvC,WAAW,GAAG,aAAa,CAAA;IACnB,iBAAiB,GAAG,mBAAmB,CAAA;AAE/C;;;;AAIG;AACH,IAAA,OAAO,IAAI,CAET,OAAA,GAA+B,EAAE,EAAA;AAEjC,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC5C;;AAGA,IAAA,MAAM,aAAa,CAAC,MAAA,GAA4B,EAAE,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;KAClE;;AAGA,IAAA,MAAM,OAAO,CAAC,MAAA,GAA4B,EAAE,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;KAC5D;;AAGA,IAAA,MAAM,aAAa,CAAC,MAAA,GAA4B,EAAE,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;KAClE;;AAGA,IAAA,MAAM,kBAAkB,GAAA;AACtB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;AACjC,QAAA,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAA;KAClE;;AAGA,IAAA,MAAM,uBAAuB,GAAA;AAC3B,QAAA,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM;YAC9D,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,OAAO,EAAE;AACf,SAAA,CAAC,CAAA;QAEF,MAAM,IAAI,GAA+B,EAAE,CAAA;AAC3C,QAAA,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,QAAQ,CAAC,MAAM;AAC9D,YAAA,QAAQ,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;AACpE,YAAA,QAAQ,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;AACpE,YAAA,QAAQ,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC;AACnE,SAAA,CAAC,CAAA;AAEF,QAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAG;YACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAG;AACrC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAA;AAEjC,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBACrB,IAAI,CAAC,UAAU,CAAC,GAAG;AACjB,wBAAA,UAAU,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;AACxD,wBAAA,UAAU,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;AACxD,wBAAA,IAAI,EAAE,EAAE;qBACT,CAAA;iBACH;gBAEA,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACtC,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;AAEF,QAAA,OAAO,IAAI,CAAA;KACb;;AAGF;AACA,SAAS,oBAAoB,CAAC,QAAoC,EAAE,MAAc,EAAA;IAChF,MAAM,WAAW,GAAa,EAAE,CAAA;AAEhC,IAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAG;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAG;AACrC,YAAA,IAAI,UAAU,KAAK,MAAM,EAAE;gBACzB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;aACpC;AACF,SAAC,CAAC,CAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,OAAO,WAAW,CAAA;AACpB;;;;"}
|
package/fesm2022/table.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Directive, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, booleanAttribute, NgModule } from '@angular/core';
|
|
3
3
|
import { CdkTable, CDK_TABLE, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler, STICKY_POSITIONING_LISTENER, HeaderRowOutlet, DataRowOutlet, NoDataRowOutlet, FooterRowOutlet, CdkCellDef, CdkHeaderCellDef, CdkFooterCellDef, CdkColumnDef, CdkHeaderCell, CdkFooterCell, CdkCell, CdkHeaderRowDef, CdkFooterRowDef, CdkRowDef, CdkHeaderRow, CdkCellOutlet, CdkFooterRow, CdkRow, CdkNoDataRow, CdkTextColumn, CdkTableModule } from '@angular/cdk/table';
|
|
4
4
|
import { _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, _DisposeViewRepeaterStrategy, DataSource } from '@angular/cdk/collections';
|
|
5
|
-
import { M as MatCommonModule } from './common-module-
|
|
5
|
+
import { M as MatCommonModule } from './common-module-3ec8031a.mjs';
|
|
6
6
|
import { BehaviorSubject, Subject, merge, of, combineLatest } from 'rxjs';
|
|
7
7
|
import { _isNumberValue } from '@angular/cdk/coercion';
|
|
8
8
|
import { map } from 'rxjs/operators';
|
|
@@ -14,10 +14,10 @@ import '@angular/cdk/bidi';
|
|
|
14
14
|
* tables that animate rows.
|
|
15
15
|
*/
|
|
16
16
|
class MatRecycleRows {
|
|
17
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
18
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
17
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatRecycleRows, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatRecycleRows, isStandalone: true, selector: "mat-table[recycleRows], table[mat-table][recycleRows]", providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 });
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatRecycleRows, decorators: [{
|
|
21
21
|
type: Directive,
|
|
22
22
|
args: [{
|
|
23
23
|
selector: 'mat-table[recycleRows], table[mat-table][recycleRows]',
|
|
@@ -29,8 +29,8 @@ class MatTable extends CdkTable {
|
|
|
29
29
|
stickyCssClass = 'mat-mdc-table-sticky';
|
|
30
30
|
/** Overrides the need to add position: sticky on every sticky cell element in `CdkTable`. */
|
|
31
31
|
needsPositionStickyOnElement = false;
|
|
32
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
33
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0-next.
|
|
32
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatTable, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.0-next.3", type: MatTable, isStandalone: true, selector: "mat-table, table[mat-table]", host: { properties: { "class.mdc-table-fixed-layout": "fixedLayout" }, classAttribute: "mat-mdc-table mdc-data-table__table" }, providers: [
|
|
34
34
|
{ provide: CdkTable, useExisting: MatTable },
|
|
35
35
|
{ provide: CDK_TABLE, useExisting: MatTable },
|
|
36
36
|
{ provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },
|
|
@@ -70,7 +70,7 @@ class MatTable extends CdkTable {
|
|
|
70
70
|
}
|
|
71
71
|
`, isInline: true, styles: [".mat-mdc-table-sticky{position:sticky !important}mat-table{display:block}mat-header-row{min-height:56px}mat-row,mat-footer-row{min-height:48px}mat-row,mat-header-row,mat-footer-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-cell:first-of-type,mat-header-cell:first-of-type,mat-footer-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:first-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:first-of-type:not(:only-of-type){padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-header-cell:last-of-type,mat-footer-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-header-cell:last-of-type:not(:only-of-type),[dir=rtl] mat-footer-cell:last-of-type:not(:only-of-type){padding-right:0;padding-left:24px}mat-cell,mat-header-cell,mat-footer-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}.mat-mdc-table{min-width:100%;border:0;border-spacing:0;table-layout:auto;white-space:normal;background-color:var(--mat-table-background-color, var(--mat-sys-surface))}.mdc-data-table__cell{box-sizing:border-box;overflow:hidden;text-align:left;text-overflow:ellipsis}[dir=rtl] .mdc-data-table__cell{text-align:right}.mdc-data-table__cell,.mdc-data-table__header-cell{padding:0 16px}.mat-mdc-header-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-header-container-height, 56px);color:var(--mat-table-header-headline-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-header-headline-font, var(--mat-sys-title-small-font, Roboto, sans-serif));line-height:var(--mat-table-header-headline-line-height, var(--mat-sys-title-small-line-height));font-size:var(--mat-table-header-headline-size, var(--mat-sys-title-small-size, 14px));font-weight:var(--mat-table-header-headline-weight, var(--mat-sys-title-small-weight, 500))}.mat-mdc-row{height:var(--mat-table-row-item-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)))}.mat-mdc-row,.mdc-data-table__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-table-row-item-label-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-row-item-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-row-item-label-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-row-item-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-footer-row{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;height:var(--mat-table-footer-container-height, 52px);color:var(--mat-table-row-item-label-text-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mat-table-footer-supporting-text-font, var(--mat-sys-body-medium-font, Roboto, sans-serif));line-height:var(--mat-table-footer-supporting-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-table-footer-supporting-text-size, var(--mat-sys-body-medium-size, 14px));font-weight:var(--mat-table-footer-supporting-text-weight, var(--mat-sys-body-medium-weight));letter-spacing:var(--mat-table-footer-supporting-text-tracking, var(--mat-sys-body-medium-tracking))}.mat-mdc-header-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-header-headline-tracking, var(--mat-sys-title-small-tracking));font-weight:inherit;line-height:inherit;box-sizing:border-box;text-overflow:ellipsis;overflow:hidden;outline:none;text-align:left}[dir=rtl] .mat-mdc-header-cell{text-align:right}.mdc-data-table__row:last-child>.mat-mdc-header-cell{border-bottom:none}.mat-mdc-cell{border-bottom-color:var(--mat-table-row-item-outline-color, var(--mat-sys-outline, rgba(0, 0, 0, 0.12)));border-bottom-width:var(--mat-table-row-item-outline-width, 1px);border-bottom-style:solid;letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking));line-height:inherit}.mdc-data-table__row:last-child>.mat-mdc-cell{border-bottom:none}.mat-mdc-footer-cell{letter-spacing:var(--mat-table-row-item-label-text-tracking, var(--mat-sys-body-medium-tracking))}mat-row.mat-mdc-row,mat-header-row.mat-mdc-header-row,mat-footer-row.mat-mdc-footer-row{border-bottom:none}.mat-mdc-table tbody,.mat-mdc-table tfoot,.mat-mdc-table thead,.mat-mdc-cell,.mat-mdc-footer-cell,.mat-mdc-header-row,.mat-mdc-row,.mat-mdc-footer-row,.mat-mdc-table .mat-mdc-header-cell{background:inherit}.mat-mdc-table mat-header-row.mat-mdc-header-row,.mat-mdc-table mat-row.mat-mdc-row,.mat-mdc-table mat-footer-row.mat-mdc-footer-cell{height:unset}mat-header-cell.mat-mdc-header-cell,mat-cell.mat-mdc-cell,mat-footer-cell.mat-mdc-footer-cell{align-self:stretch}"], dependencies: [{ kind: "directive", type: HeaderRowOutlet, selector: "[headerRowOutlet]" }, { kind: "directive", type: DataRowOutlet, selector: "[rowOutlet]" }, { kind: "directive", type: NoDataRowOutlet, selector: "[noDataRowOutlet]" }, { kind: "directive", type: FooterRowOutlet, selector: "[footerRowOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
72
72
|
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatTable, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
75
|
args: [{ selector: 'mat-table, table[mat-table]', exportAs: 'matTable', template: `
|
|
76
76
|
<ng-content select="caption"/>
|
|
@@ -121,10 +121,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
121
121
|
* Captures the template of a column's data row cell as well as cell-specific properties.
|
|
122
122
|
*/
|
|
123
123
|
class MatCellDef extends CdkCellDef {
|
|
124
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
125
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
124
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
125
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatCellDef, isStandalone: true, selector: "[matCellDef]", providers: [{ provide: CdkCellDef, useExisting: MatCellDef }], usesInheritance: true, ngImport: i0 });
|
|
126
126
|
}
|
|
127
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatCellDef, decorators: [{
|
|
128
128
|
type: Directive,
|
|
129
129
|
args: [{
|
|
130
130
|
selector: '[matCellDef]',
|
|
@@ -136,10 +136,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
136
136
|
* Captures the template of a column's header cell and as well as cell-specific properties.
|
|
137
137
|
*/
|
|
138
138
|
class MatHeaderCellDef extends CdkHeaderCellDef {
|
|
139
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
140
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
139
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatHeaderCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
140
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatHeaderCellDef, isStandalone: true, selector: "[matHeaderCellDef]", providers: [{ provide: CdkHeaderCellDef, useExisting: MatHeaderCellDef }], usesInheritance: true, ngImport: i0 });
|
|
141
141
|
}
|
|
142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
142
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatHeaderCellDef, decorators: [{
|
|
143
143
|
type: Directive,
|
|
144
144
|
args: [{
|
|
145
145
|
selector: '[matHeaderCellDef]',
|
|
@@ -151,10 +151,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
151
151
|
* Captures the template of a column's footer cell and as well as cell-specific properties.
|
|
152
152
|
*/
|
|
153
153
|
class MatFooterCellDef extends CdkFooterCellDef {
|
|
154
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
155
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
154
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatFooterCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
155
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatFooterCellDef, isStandalone: true, selector: "[matFooterCellDef]", providers: [{ provide: CdkFooterCellDef, useExisting: MatFooterCellDef }], usesInheritance: true, ngImport: i0 });
|
|
156
156
|
}
|
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatFooterCellDef, decorators: [{
|
|
158
158
|
type: Directive,
|
|
159
159
|
args: [{
|
|
160
160
|
selector: '[matFooterCellDef]',
|
|
@@ -183,13 +183,13 @@ class MatColumnDef extends CdkColumnDef {
|
|
|
183
183
|
super._updateColumnCssClassName();
|
|
184
184
|
this._columnCssClassName.push(`mat-column-${this.cssClassFriendlyName}`);
|
|
185
185
|
}
|
|
186
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
187
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
186
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatColumnDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
187
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatColumnDef, isStandalone: true, selector: "[matColumnDef]", inputs: { name: ["matColumnDef", "name"] }, providers: [
|
|
188
188
|
{ provide: CdkColumnDef, useExisting: MatColumnDef },
|
|
189
189
|
{ provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: MatColumnDef },
|
|
190
190
|
], usesInheritance: true, ngImport: i0 });
|
|
191
191
|
}
|
|
192
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatColumnDef, decorators: [{
|
|
193
193
|
type: Directive,
|
|
194
194
|
args: [{
|
|
195
195
|
selector: '[matColumnDef]',
|
|
@@ -204,10 +204,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
204
204
|
}] } });
|
|
205
205
|
/** Header cell template container that adds the right classes and role. */
|
|
206
206
|
class MatHeaderCell extends CdkHeaderCell {
|
|
207
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
208
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
207
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatHeaderCell, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
208
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatHeaderCell, isStandalone: true, selector: "mat-header-cell, th[mat-header-cell]", host: { attributes: { "role": "columnheader" }, classAttribute: "mat-mdc-header-cell mdc-data-table__header-cell" }, usesInheritance: true, ngImport: i0 });
|
|
209
209
|
}
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatHeaderCell, decorators: [{
|
|
211
211
|
type: Directive,
|
|
212
212
|
args: [{
|
|
213
213
|
selector: 'mat-header-cell, th[mat-header-cell]',
|
|
@@ -219,10 +219,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
219
219
|
}] });
|
|
220
220
|
/** Footer cell template container that adds the right classes and role. */
|
|
221
221
|
class MatFooterCell extends CdkFooterCell {
|
|
222
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
223
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
222
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatFooterCell, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
223
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatFooterCell, isStandalone: true, selector: "mat-footer-cell, td[mat-footer-cell]", host: { classAttribute: "mat-mdc-footer-cell mdc-data-table__cell" }, usesInheritance: true, ngImport: i0 });
|
|
224
224
|
}
|
|
225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
225
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatFooterCell, decorators: [{
|
|
226
226
|
type: Directive,
|
|
227
227
|
args: [{
|
|
228
228
|
selector: 'mat-footer-cell, td[mat-footer-cell]',
|
|
@@ -233,10 +233,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
233
233
|
}] });
|
|
234
234
|
/** Cell template container that adds the right classes and role. */
|
|
235
235
|
class MatCell extends CdkCell {
|
|
236
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
237
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
236
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatCell, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
237
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatCell, isStandalone: true, selector: "mat-cell, td[mat-cell]", host: { classAttribute: "mat-mdc-cell mdc-data-table__cell" }, usesInheritance: true, ngImport: i0 });
|
|
238
238
|
}
|
|
239
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatCell, decorators: [{
|
|
240
240
|
type: Directive,
|
|
241
241
|
args: [{
|
|
242
242
|
selector: 'mat-cell, td[mat-cell]',
|
|
@@ -253,10 +253,10 @@ const ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;
|
|
|
253
253
|
* Captures the header row's template and other header properties such as the columns to display.
|
|
254
254
|
*/
|
|
255
255
|
class MatHeaderRowDef extends CdkHeaderRowDef {
|
|
256
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
257
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.0.0-next.
|
|
256
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatHeaderRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
257
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.0.0-next.3", type: MatHeaderRowDef, isStandalone: true, selector: "[matHeaderRowDef]", inputs: { columns: ["matHeaderRowDef", "columns"], sticky: ["matHeaderRowDefSticky", "sticky", booleanAttribute] }, providers: [{ provide: CdkHeaderRowDef, useExisting: MatHeaderRowDef }], usesInheritance: true, ngImport: i0 });
|
|
258
258
|
}
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatHeaderRowDef, decorators: [{
|
|
260
260
|
type: Directive,
|
|
261
261
|
args: [{
|
|
262
262
|
selector: '[matHeaderRowDef]',
|
|
@@ -272,10 +272,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
272
272
|
* Captures the footer row's template and other footer properties such as the columns to display.
|
|
273
273
|
*/
|
|
274
274
|
class MatFooterRowDef extends CdkFooterRowDef {
|
|
275
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
276
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.0.0-next.
|
|
275
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatFooterRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
276
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.0.0-next.3", type: MatFooterRowDef, isStandalone: true, selector: "[matFooterRowDef]", inputs: { columns: ["matFooterRowDef", "columns"], sticky: ["matFooterRowDefSticky", "sticky", booleanAttribute] }, providers: [{ provide: CdkFooterRowDef, useExisting: MatFooterRowDef }], usesInheritance: true, ngImport: i0 });
|
|
277
277
|
}
|
|
278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
278
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatFooterRowDef, decorators: [{
|
|
279
279
|
type: Directive,
|
|
280
280
|
args: [{
|
|
281
281
|
selector: '[matFooterRowDef]',
|
|
@@ -292,10 +292,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
292
292
|
* a when predicate that describes when this row should be used.
|
|
293
293
|
*/
|
|
294
294
|
class MatRowDef extends CdkRowDef {
|
|
295
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
296
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
295
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
296
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatRowDef, isStandalone: true, selector: "[matRowDef]", inputs: { columns: ["matRowDefColumns", "columns"], when: ["matRowDefWhen", "when"] }, providers: [{ provide: CdkRowDef, useExisting: MatRowDef }], usesInheritance: true, ngImport: i0 });
|
|
297
297
|
}
|
|
298
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatRowDef, decorators: [{
|
|
299
299
|
type: Directive,
|
|
300
300
|
args: [{
|
|
301
301
|
selector: '[matRowDef]',
|
|
@@ -308,10 +308,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
308
308
|
}] });
|
|
309
309
|
/** Header template container that contains the cell outlet. Adds the right class and role. */
|
|
310
310
|
class MatHeaderRow extends CdkHeaderRow {
|
|
311
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
312
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
311
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatHeaderRow, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
312
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatHeaderRow, isStandalone: true, selector: "mat-header-row, tr[mat-header-row]", host: { attributes: { "role": "row" }, classAttribute: "mat-mdc-header-row mdc-data-table__header-row" }, providers: [{ provide: CdkHeaderRow, useExisting: MatHeaderRow }], exportAs: ["matHeaderRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
313
313
|
}
|
|
314
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatHeaderRow, decorators: [{
|
|
315
315
|
type: Component,
|
|
316
316
|
args: [{
|
|
317
317
|
selector: 'mat-header-row, tr[mat-header-row]',
|
|
@@ -331,10 +331,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
331
331
|
}] });
|
|
332
332
|
/** Footer template container that contains the cell outlet. Adds the right class and role. */
|
|
333
333
|
class MatFooterRow extends CdkFooterRow {
|
|
334
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
335
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
334
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatFooterRow, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
335
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatFooterRow, isStandalone: true, selector: "mat-footer-row, tr[mat-footer-row]", host: { attributes: { "role": "row" }, classAttribute: "mat-mdc-footer-row mdc-data-table__row" }, providers: [{ provide: CdkFooterRow, useExisting: MatFooterRow }], exportAs: ["matFooterRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
336
336
|
}
|
|
337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatFooterRow, decorators: [{
|
|
338
338
|
type: Component,
|
|
339
339
|
args: [{
|
|
340
340
|
selector: 'mat-footer-row, tr[mat-footer-row]',
|
|
@@ -354,10 +354,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
354
354
|
}] });
|
|
355
355
|
/** Data row template container that contains the cell outlet. Adds the right class and role. */
|
|
356
356
|
class MatRow extends CdkRow {
|
|
357
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
358
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
357
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatRow, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
358
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatRow, isStandalone: true, selector: "mat-row, tr[mat-row]", host: { attributes: { "role": "row" }, classAttribute: "mat-mdc-row mdc-data-table__row" }, providers: [{ provide: CdkRow, useExisting: MatRow }], exportAs: ["matRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
359
359
|
}
|
|
360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatRow, decorators: [{
|
|
361
361
|
type: Component,
|
|
362
362
|
args: [{
|
|
363
363
|
selector: 'mat-row, tr[mat-row]',
|
|
@@ -378,10 +378,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
378
378
|
/** Row that can be used to display a message when no data is shown in the table. */
|
|
379
379
|
class MatNoDataRow extends CdkNoDataRow {
|
|
380
380
|
_contentClassName = 'mat-mdc-no-data-row';
|
|
381
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
382
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
381
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatNoDataRow, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
382
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatNoDataRow, isStandalone: true, selector: "ng-template[matNoDataRow]", providers: [{ provide: CdkNoDataRow, useExisting: MatNoDataRow }], usesInheritance: true, ngImport: i0 });
|
|
383
383
|
}
|
|
384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatNoDataRow, decorators: [{
|
|
385
385
|
type: Directive,
|
|
386
386
|
args: [{
|
|
387
387
|
selector: 'ng-template[matNoDataRow]',
|
|
@@ -399,8 +399,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
|
|
|
399
399
|
* input.
|
|
400
400
|
*/
|
|
401
401
|
class MatTextColumn extends CdkTextColumn {
|
|
402
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
403
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
402
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatTextColumn, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
403
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.3", type: MatTextColumn, isStandalone: true, selector: "mat-text-column", usesInheritance: true, ngImport: i0, template: `
|
|
404
404
|
<ng-container matColumnDef>
|
|
405
405
|
<th mat-header-cell *matHeaderCellDef [style.text-align]="justify">
|
|
406
406
|
{{headerText}}
|
|
@@ -411,7 +411,7 @@ class MatTextColumn extends CdkTextColumn {
|
|
|
411
411
|
</ng-container>
|
|
412
412
|
`, isInline: true, dependencies: [{ kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
413
413
|
}
|
|
414
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatTextColumn, decorators: [{
|
|
415
415
|
type: Component,
|
|
416
416
|
args: [{
|
|
417
417
|
selector: 'mat-text-column',
|
|
@@ -461,8 +461,8 @@ const EXPORTED_DECLARATIONS = [
|
|
|
461
461
|
MatTextColumn,
|
|
462
462
|
];
|
|
463
463
|
class MatTableModule {
|
|
464
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
465
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.
|
|
464
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
465
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatTableModule, imports: [MatCommonModule, CdkTableModule,
|
|
466
466
|
// Table
|
|
467
467
|
MatTable,
|
|
468
468
|
MatRecycleRows,
|
|
@@ -505,9 +505,9 @@ class MatTableModule {
|
|
|
505
505
|
MatFooterRow,
|
|
506
506
|
MatNoDataRow,
|
|
507
507
|
MatTextColumn] });
|
|
508
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
508
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatTableModule, imports: [MatCommonModule, CdkTableModule, MatCommonModule] });
|
|
509
509
|
}
|
|
510
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.
|
|
510
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.3", ngImport: i0, type: MatTableModule, decorators: [{
|
|
511
511
|
type: NgModule,
|
|
512
512
|
args: [{
|
|
513
513
|
imports: [MatCommonModule, CdkTableModule, ...EXPORTED_DECLARATIONS],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.mjs","sources":["../../../../../../../src/material/tabs/testing/tab-harness.ts","../../../../../../../src/material/tabs/testing/tab-group-harness.ts","../../../../../../../src/material/tabs/testing/tab-link-harness.ts","../../../../../../../src/material/tabs/testing/tab-nav-panel-harness.ts","../../../../../../../src/material/tabs/testing/tab-nav-bar-harness.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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TabHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with an Angular Material tab in tests. */\nexport class MatTabHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatTab` instance. */\n static hostSelector = '.mat-mdc-tab';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab with specific attributes.\n * @param options Options for filtering which tab instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label),\n )\n .addOption(\n 'selected',\n options.selected,\n async (harness, selected) => (await harness.isSelected()) == selected,\n );\n }\n\n /** Gets the label of the tab. */\n async getLabel(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Gets the aria-label of the tab. */\n async getAriaLabel(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-label');\n }\n\n /** Gets the value of the \"aria-labelledby\" attribute. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-labelledby');\n }\n\n /** Whether the tab is selected. */\n async isSelected(): Promise<boolean> {\n const hostEl = await this.host();\n return (await hostEl.getAttribute('aria-selected')) === 'true';\n }\n\n /** Whether the tab is disabled. */\n async isDisabled(): Promise<boolean> {\n const hostEl = await this.host();\n return (await hostEl.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Selects the given tab by clicking on the label. Tab cannot be selected if disabled. */\n async select(): Promise<void> {\n await (await this.host()).click('center');\n }\n\n /** Gets the text content of the tab. */\n async getTextContent(): Promise<string> {\n const contentId = await this._getContentId();\n const contentEl = await this.documentRootLocatorFactory().locatorFor(`#${contentId}`)();\n return contentEl.text();\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const contentId = await this._getContentId();\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${contentId}`);\n }\n\n /** Gets the element id for the content of the current tab. */\n private async _getContentId(): Promise<string> {\n const hostEl = await this.host();\n // Tabs never have an empty \"aria-controls\" attribute.\n return (await hostEl.getAttribute('aria-controls'))!;\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.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {TabGroupHarnessFilters, TabHarnessFilters} from './tab-harness-filters';\nimport {MatTabHarness} from './tab-harness';\n\n/** Harness for interacting with a mat-tab-group in tests. */\nexport class MatTabGroupHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabGroup` instance. */\n static hostSelector = '.mat-mdc-tab-group';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab group with specific attributes.\n * @param options Options for filtering which tab group instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabGroupHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabGroupHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options).addOption(\n 'selectedTabLabel',\n options.selectedTabLabel,\n async (harness, label) => {\n const selectedTab = await harness.getSelectedTab();\n return HarnessPredicate.stringMatches(await selectedTab.getLabel(), label);\n },\n );\n }\n\n /**\n * Gets the list of tabs in the tab group.\n * @param filter Optionally filters which tabs are included.\n */\n async getTabs(filter: TabHarnessFilters = {}): Promise<MatTabHarness[]> {\n return this.locatorForAll(MatTabHarness.with(filter))();\n }\n\n /** Gets the selected tab of the tab group. */\n async getSelectedTab(): Promise<MatTabHarness> {\n const tabs = await this.getTabs();\n const isSelected = await parallel(() => tabs.map(t => t.isSelected()));\n for (let i = 0; i < tabs.length; i++) {\n if (isSelected[i]) {\n return tabs[i];\n }\n }\n throw new Error('No selected tab could be found.');\n }\n\n /**\n * Selects a tab in this tab group.\n * @param filter An optional filter to apply to the child tabs. The first tab matching the filter\n * will be selected.\n */\n async selectTab(filter: TabHarnessFilters = {}): Promise<void> {\n const tabs = await this.getTabs(filter);\n if (!tabs.length) {\n throw Error(`Cannot find mat-tab matching filter ${JSON.stringify(filter)}`);\n }\n await tabs[0].select();\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.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TabLinkHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with a Angular Material tab link in tests. */\nexport class MatTabLinkHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabLink` instance. */\n static hostSelector = '.mat-mdc-tab-link';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab link with specific attributes.\n * @param options Options for filtering which tab link instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabLinkHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabLinkHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options).addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label),\n );\n }\n\n /** Gets the label of the link. */\n async getLabel(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Whether the link is active. */\n async isActive(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mdc-tab--active');\n }\n\n /** Whether the link is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mat-mdc-tab-disabled');\n }\n\n /** Clicks on the link. */\n async click(): Promise<void> {\n await (await this.host()).click();\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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TabNavPanelHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with a standard mat-tab-nav-panel in tests. */\nexport class MatTabNavPanelHarness extends ContentContainerComponentHarness {\n /** The selector for the host element of a `MatTabNavPanel` instance. */\n static hostSelector = '.mat-mdc-tab-nav-panel';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab nav panel with specific\n * attributes.\n * @param options Options for filtering which tab nav panel instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabNavPanelHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabNavPanelHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Gets the tab panel text content. */\n async getTextContent(): Promise<string> {\n return (await this.host()).text();\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.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n TabNavBarHarnessFilters,\n TabNavPanelHarnessFilters,\n TabLinkHarnessFilters,\n} from './tab-harness-filters';\nimport {MatTabLinkHarness} from './tab-link-harness';\nimport {MatTabNavPanelHarness} from './tab-nav-panel-harness';\n\n/** Harness for interacting with a mat-tab-nav-bar in tests. */\nexport class MatTabNavBarHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabNavBar` instance. */\n static hostSelector = '.mat-mdc-tab-nav-bar';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab nav bar with specific\n * attributes.\n * @param options Options for filtering which tab nav bar instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabNavBarHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabNavBarHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /**\n * Gets the list of links in the nav bar.\n * @param filter Optionally filters which links are included.\n */\n async getLinks(filter: TabLinkHarnessFilters = {}): Promise<MatTabLinkHarness[]> {\n return this.locatorForAll(MatTabLinkHarness.with(filter))();\n }\n\n /** Gets the active link in the nav bar. */\n async getActiveLink(): Promise<MatTabLinkHarness> {\n const links = await this.getLinks();\n const isActive = await parallel(() => links.map(t => t.isActive()));\n for (let i = 0; i < links.length; i++) {\n if (isActive[i]) {\n return links[i];\n }\n }\n throw new Error('No active link could be found.');\n }\n\n /**\n * Clicks a link inside the nav bar.\n * @param filter An optional filter to apply to the child link. The first link matching the filter\n * will be clicked.\n */\n async clickLink(filter: TabLinkHarnessFilters = {}): Promise<void> {\n const tabs = await this.getLinks(filter);\n if (!tabs.length) {\n throw Error(`Cannot find mat-tab-link matching filter ${JSON.stringify(filter)}`);\n }\n await tabs[0].click();\n }\n\n /** Gets the panel associated with the nav bar. */\n async getPanel(): Promise<MatTabNavPanelHarness> {\n const link = await this.getActiveLink();\n const host = await link.host();\n const panelId = await host.getAttribute('aria-controls');\n if (!panelId) {\n throw Error('No panel is controlled by the nav bar.');\n }\n\n const filter: TabNavPanelHarnessFilters = {selector: `#${panelId}`};\n return await this.documentRootLocatorFactory().locatorFor(MatTabNavPanelHarness.with(filter))();\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testing.mjs","sources":["../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/tabs/testing/tab-harness.ts","../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/tabs/testing/tab-group-harness.ts","../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/tabs/testing/tab-link-harness.ts","../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/tabs/testing/tab-nav-panel-harness.ts","../../../../../../k8-fastbuild-ST-70f2edae98f4/bin/src/material/tabs/testing/tab-nav-bar-harness.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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessLoader,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TabHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with an Angular Material tab in tests. */\nexport class MatTabHarness extends ContentContainerComponentHarness<string> {\n /** The selector for the host element of a `MatTab` instance. */\n static hostSelector = '.mat-mdc-tab';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab with specific attributes.\n * @param options Options for filtering which tab instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options)\n .addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label),\n )\n .addOption(\n 'selected',\n options.selected,\n async (harness, selected) => (await harness.isSelected()) == selected,\n );\n }\n\n /** Gets the label of the tab. */\n async getLabel(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Gets the aria-label of the tab. */\n async getAriaLabel(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-label');\n }\n\n /** Gets the value of the \"aria-labelledby\" attribute. */\n async getAriaLabelledby(): Promise<string | null> {\n return (await this.host()).getAttribute('aria-labelledby');\n }\n\n /** Whether the tab is selected. */\n async isSelected(): Promise<boolean> {\n const hostEl = await this.host();\n return (await hostEl.getAttribute('aria-selected')) === 'true';\n }\n\n /** Whether the tab is disabled. */\n async isDisabled(): Promise<boolean> {\n const hostEl = await this.host();\n return (await hostEl.getAttribute('aria-disabled')) === 'true';\n }\n\n /** Selects the given tab by clicking on the label. Tab cannot be selected if disabled. */\n async select(): Promise<void> {\n await (await this.host()).click('center');\n }\n\n /** Gets the text content of the tab. */\n async getTextContent(): Promise<string> {\n const contentId = await this._getContentId();\n const contentEl = await this.documentRootLocatorFactory().locatorFor(`#${contentId}`)();\n return contentEl.text();\n }\n\n protected override async getRootHarnessLoader(): Promise<HarnessLoader> {\n const contentId = await this._getContentId();\n return this.documentRootLocatorFactory().harnessLoaderFor(`#${contentId}`);\n }\n\n /** Gets the element id for the content of the current tab. */\n private async _getContentId(): Promise<string> {\n const hostEl = await this.host();\n // Tabs never have an empty \"aria-controls\" attribute.\n return (await hostEl.getAttribute('aria-controls'))!;\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.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {TabGroupHarnessFilters, TabHarnessFilters} from './tab-harness-filters';\nimport {MatTabHarness} from './tab-harness';\n\n/** Harness for interacting with a mat-tab-group in tests. */\nexport class MatTabGroupHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabGroup` instance. */\n static hostSelector = '.mat-mdc-tab-group';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab group with specific attributes.\n * @param options Options for filtering which tab group instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabGroupHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabGroupHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options).addOption(\n 'selectedTabLabel',\n options.selectedTabLabel,\n async (harness, label) => {\n const selectedTab = await harness.getSelectedTab();\n return HarnessPredicate.stringMatches(await selectedTab.getLabel(), label);\n },\n );\n }\n\n /**\n * Gets the list of tabs in the tab group.\n * @param filter Optionally filters which tabs are included.\n */\n async getTabs(filter: TabHarnessFilters = {}): Promise<MatTabHarness[]> {\n return this.locatorForAll(MatTabHarness.with(filter))();\n }\n\n /** Gets the selected tab of the tab group. */\n async getSelectedTab(): Promise<MatTabHarness> {\n const tabs = await this.getTabs();\n const isSelected = await parallel(() => tabs.map(t => t.isSelected()));\n for (let i = 0; i < tabs.length; i++) {\n if (isSelected[i]) {\n return tabs[i];\n }\n }\n throw new Error('No selected tab could be found.');\n }\n\n /**\n * Selects a tab in this tab group.\n * @param filter An optional filter to apply to the child tabs. The first tab matching the filter\n * will be selected.\n */\n async selectTab(filter: TabHarnessFilters = {}): Promise<void> {\n const tabs = await this.getTabs(filter);\n if (!tabs.length) {\n throw Error(`Cannot find mat-tab matching filter ${JSON.stringify(filter)}`);\n }\n await tabs[0].select();\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.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TabLinkHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with a Angular Material tab link in tests. */\nexport class MatTabLinkHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabLink` instance. */\n static hostSelector = '.mat-mdc-tab-link';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab link with specific attributes.\n * @param options Options for filtering which tab link instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabLinkHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabLinkHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options).addOption('label', options.label, (harness, label) =>\n HarnessPredicate.stringMatches(harness.getLabel(), label),\n );\n }\n\n /** Gets the label of the link. */\n async getLabel(): Promise<string> {\n return (await this.host()).text();\n }\n\n /** Whether the link is active. */\n async isActive(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mdc-tab--active');\n }\n\n /** Whether the link is disabled. */\n async isDisabled(): Promise<boolean> {\n const host = await this.host();\n return host.hasClass('mat-mdc-tab-disabled');\n }\n\n /** Clicks on the link. */\n async click(): Promise<void> {\n await (await this.host()).click();\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.dev/license\n */\n\nimport {\n ComponentHarnessConstructor,\n ContentContainerComponentHarness,\n HarnessPredicate,\n} from '@angular/cdk/testing';\nimport {TabNavPanelHarnessFilters} from './tab-harness-filters';\n\n/** Harness for interacting with a standard mat-tab-nav-panel in tests. */\nexport class MatTabNavPanelHarness extends ContentContainerComponentHarness {\n /** The selector for the host element of a `MatTabNavPanel` instance. */\n static hostSelector = '.mat-mdc-tab-nav-panel';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab nav panel with specific\n * attributes.\n * @param options Options for filtering which tab nav panel instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabNavPanelHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabNavPanelHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /** Gets the tab panel text content. */\n async getTextContent(): Promise<string> {\n return (await this.host()).text();\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.dev/license\n */\n\nimport {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n parallel,\n} from '@angular/cdk/testing';\nimport {\n TabNavBarHarnessFilters,\n TabNavPanelHarnessFilters,\n TabLinkHarnessFilters,\n} from './tab-harness-filters';\nimport {MatTabLinkHarness} from './tab-link-harness';\nimport {MatTabNavPanelHarness} from './tab-nav-panel-harness';\n\n/** Harness for interacting with a mat-tab-nav-bar in tests. */\nexport class MatTabNavBarHarness extends ComponentHarness {\n /** The selector for the host element of a `MatTabNavBar` instance. */\n static hostSelector = '.mat-mdc-tab-nav-bar';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a tab nav bar with specific\n * attributes.\n * @param options Options for filtering which tab nav bar instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n static with<T extends MatTabNavBarHarness>(\n this: ComponentHarnessConstructor<T>,\n options: TabNavBarHarnessFilters = {},\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, options);\n }\n\n /**\n * Gets the list of links in the nav bar.\n * @param filter Optionally filters which links are included.\n */\n async getLinks(filter: TabLinkHarnessFilters = {}): Promise<MatTabLinkHarness[]> {\n return this.locatorForAll(MatTabLinkHarness.with(filter))();\n }\n\n /** Gets the active link in the nav bar. */\n async getActiveLink(): Promise<MatTabLinkHarness> {\n const links = await this.getLinks();\n const isActive = await parallel(() => links.map(t => t.isActive()));\n for (let i = 0; i < links.length; i++) {\n if (isActive[i]) {\n return links[i];\n }\n }\n throw new Error('No active link could be found.');\n }\n\n /**\n * Clicks a link inside the nav bar.\n * @param filter An optional filter to apply to the child link. The first link matching the filter\n * will be clicked.\n */\n async clickLink(filter: TabLinkHarnessFilters = {}): Promise<void> {\n const tabs = await this.getLinks(filter);\n if (!tabs.length) {\n throw Error(`Cannot find mat-tab-link matching filter ${JSON.stringify(filter)}`);\n }\n await tabs[0].click();\n }\n\n /** Gets the panel associated with the nav bar. */\n async getPanel(): Promise<MatTabNavPanelHarness> {\n const link = await this.getActiveLink();\n const host = await link.host();\n const panelId = await host.getAttribute('aria-controls');\n if (!panelId) {\n throw Error('No panel is controlled by the nav bar.');\n }\n\n const filter: TabNavPanelHarnessFilters = {selector: `#${panelId}`};\n return await this.documentRootLocatorFactory().locatorFor(MatTabNavPanelHarness.with(filter))();\n }\n}\n"],"names":[],"mappings":"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"}
|