diff --git a/core/focus-indicators/_private.scss b/core/focus-indicators/_private.scss index c71b3131ef..c557ac8d90 100755 --- a/core/focus-indicators/_private.scss +++ b/core/focus-indicators/_private.scss @@ -61,6 +61,9 @@ $default-border-radius: 4px; 'mat-focus-indicator-border-radius': $border-radius, 'mat-focus-indicator-border-color': $border-color, 'mat-focus-indicator-display': $display, + // This isn't used for styling the actual focus indicator, but can + // be used to hide conflicting indicators when strong focus is enabled. + 'mat-focus-indicator-fallback-border-style': none, ); @if (&) { diff --git a/fesm2022/_error-options-chunk.mjs b/fesm2022/_error-options-chunk.mjs index c286161c7d..8c9b48ec26 100755 --- a/fesm2022/_error-options-chunk.mjs +++ b/fesm2022/_error-options-chunk.mjs @@ -5,9 +5,17 @@ class ShowOnDirtyErrorStateMatcher { isErrorState(control, form) { return !!(control && control.invalid && (control.dirty || form && form.submitted)); } + isSignalErrorState(field) { + if (!field) { + return false; + } + const invalid = field().invalid(); + const dirty = field().dirty(); + return invalid && dirty; + } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: ShowOnDirtyErrorStateMatcher, deps: [], @@ -15,7 +23,7 @@ class ShowOnDirtyErrorStateMatcher { }); static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: ShowOnDirtyErrorStateMatcher, autoProvided: false @@ -23,7 +31,7 @@ class ShowOnDirtyErrorStateMatcher { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: ShowOnDirtyErrorStateMatcher, decorators: [{ @@ -37,9 +45,17 @@ class ErrorStateMatcher { isErrorState(control, form) { return !!(control && control.invalid && (control.touched || form && form.submitted)); } + isSignalErrorState(field) { + if (!field) { + return false; + } + const invalid = field().invalid(); + const touched = field().touched(); + return invalid && touched; + } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: ErrorStateMatcher, deps: [], @@ -47,14 +63,14 @@ class ErrorStateMatcher { }); static ɵprov = i0.ɵɵngDeclareService({ minVersion: "22.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: ErrorStateMatcher }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: ErrorStateMatcher, decorators: [{ diff --git a/fesm2022/_error-options-chunk.mjs.map b/fesm2022/_error-options-chunk.mjs.map index 67e5254bfa..6fc7cc39f1 100755 --- a/fesm2022/_error-options-chunk.mjs.map +++ b/fesm2022/_error-options-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_error-options-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/error/error-options.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 {Service} from '@angular/core';\nimport {FormGroupDirective, NgForm, AbstractControl} from '@angular/forms';\n\n/** Error state matcher that matches when a control is invalid and dirty. */\n@Service({autoProvided: false})\nexport class ShowOnDirtyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || (form && form.submitted)));\n }\n}\n\n/** Provider that defines how form controls behave with regards to displaying error messages. */\n@Service()\nexport class ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n }\n}\n"],"names":["ShowOnDirtyErrorStateMatcher","isErrorState","control","form","invalid","dirty","submitted","deps","target","i0","ɵɵFactoryTarget","Service","autoProvided","decorators","ErrorStateMatcher","touched"],"mappings":";;;MAaaA,4BAA4B,CAAA;AACvCC,EAAAA,YAAYA,CAACC,OAA+B,EAAEC,IAAwC,EAAA;AACpF,IAAA,OAAO,CAAC,EAAED,OAAO,IAAIA,OAAO,CAACE,OAAO,KAAKF,OAAO,CAACG,KAAK,IAAKF,IAAI,IAAIA,IAAI,CAACG,SAAU,CAAC,CAAC;AACtF,EAAA;;;;;UAHWN,4BAA4B;AAAAO,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAA5BX,4BAA4B;AAAAY,IAAAA,YAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAA5BZ,4BAA4B;AAAAa,EAAAA,UAAA,EAAA,CAAA;UADxCF,OAAO;WAAC;AAACC,MAAAA,YAAY,EAAE;KAAM;;;MASjBE,iBAAiB,CAAA;AAC5Bb,EAAAA,YAAYA,CAACC,OAA+B,EAAEC,IAAwC,EAAA;AACpF,IAAA,OAAO,CAAC,EAAED,OAAO,IAAIA,OAAO,CAACE,OAAO,KAAKF,OAAO,CAACa,OAAO,IAAKZ,IAAI,IAAIA,IAAI,CAACG,SAAU,CAAC,CAAC;AACxF,EAAA;;;;;UAHWQ,iBAAiB;AAAAP,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAAjBG;AAAiB,GAAA,CAAA;;;;;;QAAjBA,iBAAiB;AAAAD,EAAAA,UAAA,EAAA,CAAA;UAD7BF;;;;;;"} \ No newline at end of file +{"version":3,"file":"_error-options-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/error/error-options.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 {Service} from '@angular/core';\nimport type {FormGroupDirective, NgForm, AbstractControl} from '@angular/forms';\nimport type {Field} from '@angular/forms/signals';\n\n/** Error state matcher that matches when a control is invalid and dirty. */\n@Service({autoProvided: false})\nexport class ShowOnDirtyErrorStateMatcher implements ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.dirty || (form && form.submitted)));\n }\n\n isSignalErrorState(field: Field | null): boolean {\n if (!field) {\n return false;\n }\n const invalid = field().invalid();\n const dirty = field().dirty();\n return invalid && dirty;\n }\n}\n\n/** Provider that defines how form controls behave with regards to displaying error messages. */\n@Service()\nexport class ErrorStateMatcher {\n isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return !!(control && control.invalid && (control.touched || (form && form.submitted)));\n }\n\n isSignalErrorState?(field: Field | null): boolean {\n if (!field) {\n return false;\n }\n const invalid = field().invalid();\n const touched = field().touched();\n return invalid && touched;\n }\n}\n"],"names":["ShowOnDirtyErrorStateMatcher","isErrorState","control","form","invalid","dirty","submitted","isSignalErrorState","field","deps","target","i0","ɵɵFactoryTarget","Service","autoProvided","decorators","ErrorStateMatcher","touched"],"mappings":";;;MAcaA,4BAA4B,CAAA;AACvCC,EAAAA,YAAYA,CAACC,OAA+B,EAAEC,IAAwC,EAAA;AACpF,IAAA,OAAO,CAAC,EAAED,OAAO,IAAIA,OAAO,CAACE,OAAO,KAAKF,OAAO,CAACG,KAAK,IAAKF,IAAI,IAAIA,IAAI,CAACG,SAAU,CAAC,CAAC;AACtF,EAAA;EAEAC,kBAAkBA,CAACC,KAA4B,EAAA;IAC7C,IAAI,CAACA,KAAK,EAAE;AACV,MAAA,OAAO,KAAK;AACd,IAAA;IACA,MAAMJ,OAAO,GAAGI,KAAK,EAAE,CAACJ,OAAO,EAAE;IACjC,MAAMC,KAAK,GAAGG,KAAK,EAAE,CAACH,KAAK,EAAE;IAC7B,OAAOD,OAAO,IAAIC,KAAK;AACzB,EAAA;;;;;UAZWL,4BAA4B;AAAAS,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAA5Bb,4BAA4B;AAAAc,IAAAA,YAAA,EAAA;AAAA,GAAA,CAAA;;;;;;QAA5Bd,4BAA4B;AAAAe,EAAAA,UAAA,EAAA,CAAA;UADxCF,OAAO;WAAC;AAACC,MAAAA,YAAY,EAAE;KAAM;;;MAkBjBE,iBAAiB,CAAA;AAC5Bf,EAAAA,YAAYA,CAACC,OAA+B,EAAEC,IAAwC,EAAA;AACpF,IAAA,OAAO,CAAC,EAAED,OAAO,IAAIA,OAAO,CAACE,OAAO,KAAKF,OAAO,CAACe,OAAO,IAAKd,IAAI,IAAIA,IAAI,CAACG,SAAU,CAAC,CAAC;AACxF,EAAA;EAEAC,kBAAkBA,CAAEC,KAA4B,EAAA;IAC9C,IAAI,CAACA,KAAK,EAAE;AACV,MAAA,OAAO,KAAK;AACd,IAAA;IACA,MAAMJ,OAAO,GAAGI,KAAK,EAAE,CAACJ,OAAO,EAAE;IACjC,MAAMa,OAAO,GAAGT,KAAK,EAAE,CAACS,OAAO,EAAE;IACjC,OAAOb,OAAO,IAAIa,OAAO;AAC3B,EAAA;;;;;UAZWD,iBAAiB;AAAAP,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;;;;;UAAjBG;AAAiB,GAAA,CAAA;;;;;;QAAjBA,iBAAiB;AAAAD,EAAAA,UAAA,EAAA,CAAA;UAD7BF;;;;;;"} \ No newline at end of file diff --git a/fesm2022/_error-state-chunk.mjs b/fesm2022/_error-state-chunk.mjs index 594a836444..ce46619c59 100755 --- a/fesm2022/_error-state-chunk.mjs +++ b/fesm2022/_error-state-chunk.mjs @@ -1,29 +1,45 @@ +import { isSignal } from '@angular/core'; + class _ErrorStateTracker { _defaultMatcher; - ngControl; _parentFormGroup; _parentForm; _stateChanges; errorState = false; matcher; - constructor(_defaultMatcher, ngControl, _parentFormGroup, _parentForm, _stateChanges) { + ngControl; + formField; + constructor(_defaultMatcher, directive, _parentFormGroup, _parentForm, _stateChanges) { this._defaultMatcher = _defaultMatcher; - this.ngControl = ngControl; this._parentFormGroup = _parentFormGroup; this._parentForm = _parentForm; this._stateChanges = _stateChanges; + if (!directive) { + this.ngControl = this.formField = null; + } else if (isSignal(directive.field) && !directive.updateValueAndValidity) { + this.formField = directive; + this.ngControl = null; + } else { + this.formField = null; + this.ngControl = directive; + } } updateErrorState() { const oldState = this.errorState; - const parent = this._parentFormGroup || this._parentForm; - const matcher = this.matcher || this._defaultMatcher; - const control = this.ngControl ? this.ngControl.control : null; - const newState = matcher?.isErrorState(control, parent) ?? false; + const newState = this._getCurrentErrorState(this.matcher || this._defaultMatcher); if (newState !== oldState) { this.errorState = newState; this._stateChanges.next(); } } + _getCurrentErrorState(matcher) { + if (this.formField && matcher?.isSignalErrorState) { + return matcher.isSignalErrorState(this.formField.field()) ?? false; + } + const parent = this._parentFormGroup || this._parentForm; + const control = this.ngControl ? this.ngControl.control : null; + return matcher?.isErrorState(control, parent) ?? false; + } } export { _ErrorStateTracker }; diff --git a/fesm2022/_error-state-chunk.mjs.map b/fesm2022/_error-state-chunk.mjs.map index 8b48080172..f9176e425b 100755 --- a/fesm2022/_error-state-chunk.mjs.map +++ b/fesm2022/_error-state-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_error-state-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/common-behaviors/error-state.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 {AbstractControl, FormGroupDirective, NgControl, NgForm} from '@angular/forms';\nimport {Subject} from 'rxjs';\nimport {ErrorStateMatcher as _ErrorStateMatcher} from '../error/error-options';\n\n// Declare ErrorStateMatcher as an interface to have compatibility with Closure Compiler.\ninterface ErrorStateMatcher extends _ErrorStateMatcher {}\n\n/**\n * Class that tracks the error state of a component.\n * @docs-private\n */\nexport class _ErrorStateTracker {\n /** Whether the tracker is currently in an error state. */\n errorState = false;\n\n /** User-defined matcher for the error state. */\n matcher!: ErrorStateMatcher;\n\n constructor(\n private _defaultMatcher: ErrorStateMatcher | null,\n public ngControl: NgControl | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges: Subject,\n ) {}\n\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState() {\n const oldState = this.errorState;\n const parent = this._parentFormGroup || this._parentForm;\n const matcher = this.matcher || this._defaultMatcher;\n const control = this.ngControl ? (this.ngControl.control as AbstractControl) : null;\n const newState = matcher?.isErrorState(control, parent) ?? false;\n\n if (newState !== oldState) {\n this.errorState = newState;\n this._stateChanges.next();\n }\n }\n}\n"],"names":["_ErrorStateTracker","_defaultMatcher","ngControl","_parentFormGroup","_parentForm","_stateChanges","errorState","matcher","constructor","updateErrorState","oldState","parent","control","newState","isErrorState","next"],"mappings":"MAmBaA,kBAAkB,CAAA;EAQnBC,eAAA;EACDC,SAAA;EACCC,gBAAA;EACAC,WAAA;EACAC,aAAA;AAVVC,EAAAA,UAAU,GAAG,KAAK;EAGlBC,OAAO;EAEPC,WAAAA,CACUP,eAAyC,EAC1CC,SAA2B,EAC1BC,gBAA2C,EAC3CC,WAA0B,EAC1BC,aAA4B,EAAA;IAJ5B,IAAA,CAAAJ,eAAe,GAAfA,eAAe;IAChB,IAAA,CAAAC,SAAS,GAATA,SAAS;IACR,IAAA,CAAAC,gBAAgB,GAAhBA,gBAAgB;IAChB,IAAA,CAAAC,WAAW,GAAXA,WAAW;IACX,IAAA,CAAAC,aAAa,GAAbA,aAAa;AACpB,EAAA;AAGHI,EAAAA,gBAAgBA,GAAA;AACd,IAAA,MAAMC,QAAQ,GAAG,IAAI,CAACJ,UAAU;IAChC,MAAMK,MAAM,GAAG,IAAI,CAACR,gBAAgB,IAAI,IAAI,CAACC,WAAW;IACxD,MAAMG,OAAO,GAAG,IAAI,CAACA,OAAO,IAAI,IAAI,CAACN,eAAe;AACpD,IAAA,MAAMW,OAAO,GAAG,IAAI,CAACV,SAAS,GAAI,IAAI,CAACA,SAAS,CAACU,OAA2B,GAAG,IAAI;IACnF,MAAMC,QAAQ,GAAGN,OAAO,EAAEO,YAAY,CAACF,OAAO,EAAED,MAAM,CAAC,IAAI,KAAK;IAEhE,IAAIE,QAAQ,KAAKH,QAAQ,EAAE;MACzB,IAAI,CAACJ,UAAU,GAAGO,QAAQ;AAC1B,MAAA,IAAI,CAACR,aAAa,CAACU,IAAI,EAAE;AAC3B,IAAA;AACF,EAAA;AACD;;;;"} \ No newline at end of file +{"version":3,"file":"_error-state-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/common-behaviors/error-state.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 {AbstractControl, FormGroupDirective, NgControl, NgForm} from '@angular/forms';\nimport {Subject} from 'rxjs';\nimport {ErrorStateMatcher as _ErrorStateMatcher} from '../error/error-options';\nimport {FormField} from '@angular/forms/signals';\nimport {isSignal} from '@angular/core';\n\n// Declare ErrorStateMatcher as an interface to have compatibility with Closure Compiler.\ninterface ErrorStateMatcher extends _ErrorStateMatcher {}\n\n/**\n * Class that tracks the error state of a component.\n * @docs-private\n */\nexport class _ErrorStateTracker {\n /** Whether the tracker is currently in an error state. */\n errorState = false;\n\n /** User-defined matcher for the error state. */\n matcher!: ErrorStateMatcher;\n\n /** Reactive or template-based control directive. */\n ngControl: NgControl | null;\n\n /** Signal-based form field directive. */\n formField: FormField | null;\n\n constructor(\n private _defaultMatcher: ErrorStateMatcher | null,\n directive: NgControl | FormField | null,\n private _parentFormGroup: FormGroupDirective | null,\n private _parentForm: NgForm | null,\n private _stateChanges: Subject,\n ) {\n if (!directive) {\n this.ngControl = this.formField = null;\n } else if (\n isSignal((directive as {field?: unknown}).field) &&\n // Avoid false positives for interop controls.\n !(directive as {updateValueAndValidity?: unknown}).updateValueAndValidity\n ) {\n this.formField = directive as FormField;\n this.ngControl = null;\n } else {\n this.formField = null;\n this.ngControl = directive as NgControl;\n }\n }\n\n /** Updates the error state based on the provided error state matcher. */\n updateErrorState() {\n const oldState = this.errorState;\n const newState = this._getCurrentErrorState(this.matcher || this._defaultMatcher);\n\n if (newState !== oldState) {\n this.errorState = newState;\n this._stateChanges.next();\n }\n }\n\n private _getCurrentErrorState(matcher: ErrorStateMatcher | undefined): boolean {\n if (this.formField && matcher?.isSignalErrorState) {\n return matcher.isSignalErrorState(this.formField.field()) ?? false;\n }\n\n const parent = this._parentFormGroup || this._parentForm;\n const control = this.ngControl ? (this.ngControl.control as AbstractControl) : null;\n return matcher?.isErrorState(control, parent) ?? false;\n }\n}\n"],"names":["_ErrorStateTracker","_defaultMatcher","_parentFormGroup","_parentForm","_stateChanges","errorState","matcher","ngControl","formField","constructor","directive","isSignal","field","updateValueAndValidity","updateErrorState","oldState","newState","_getCurrentErrorState","next","isSignalErrorState","parent","control","isErrorState"],"mappings":";;MAqBaA,kBAAkB,CAAA;EAcnBC,eAAA;EAEAC,gBAAA;EACAC,WAAA;EACAC,aAAA;AAhBVC,EAAAA,UAAU,GAAG,KAAK;EAGlBC,OAAO;EAGPC,SAAS;EAGTC,SAAS;EAETC,WAAAA,CACUR,eAAyC,EACjDS,SAAgD,EACxCR,gBAA2C,EAC3CC,WAA0B,EAC1BC,aAA4B,EAAA;IAJ5B,IAAA,CAAAH,eAAe,GAAfA,eAAe;IAEf,IAAA,CAAAC,gBAAgB,GAAhBA,gBAAgB;IAChB,IAAA,CAAAC,WAAW,GAAXA,WAAW;IACX,IAAA,CAAAC,aAAa,GAAbA,aAAa;IAErB,IAAI,CAACM,SAAS,EAAE;AACd,MAAA,IAAI,CAACH,SAAS,GAAG,IAAI,CAACC,SAAS,GAAG,IAAI;AACxC,IAAA,CAAA,MAAO,IACLG,QAAQ,CAAED,SAA+B,CAACE,KAAK,CAAC,IAEhD,CAAEF,SAAgD,CAACG,sBAAsB,EACzE;MACA,IAAI,CAACL,SAAS,GAAGE,SAA+B;MAChD,IAAI,CAACH,SAAS,GAAG,IAAI;AACvB,IAAA,CAAA,MAAO;MACL,IAAI,CAACC,SAAS,GAAG,IAAI;MACrB,IAAI,CAACD,SAAS,GAAGG,SAAsB;AACzC,IAAA;AACF,EAAA;AAGAI,EAAAA,gBAAgBA,GAAA;AACd,IAAA,MAAMC,QAAQ,GAAG,IAAI,CAACV,UAAU;AAChC,IAAA,MAAMW,QAAQ,GAAG,IAAI,CAACC,qBAAqB,CAAC,IAAI,CAACX,OAAO,IAAI,IAAI,CAACL,eAAe,CAAC;IAEjF,IAAIe,QAAQ,KAAKD,QAAQ,EAAE;MACzB,IAAI,CAACV,UAAU,GAAGW,QAAQ;AAC1B,MAAA,IAAI,CAACZ,aAAa,CAACc,IAAI,EAAE;AAC3B,IAAA;AACF,EAAA;EAEQD,qBAAqBA,CAACX,OAAsC,EAAA;AAClE,IAAA,IAAI,IAAI,CAACE,SAAS,IAAIF,OAAO,EAAEa,kBAAkB,EAAE;AACjD,MAAA,OAAOb,OAAO,CAACa,kBAAkB,CAAC,IAAI,CAACX,SAAS,CAACI,KAAK,EAAE,CAAC,IAAI,KAAK;AACpE,IAAA;IAEA,MAAMQ,MAAM,GAAG,IAAI,CAAClB,gBAAgB,IAAI,IAAI,CAACC,WAAW;AACxD,IAAA,MAAMkB,OAAO,GAAG,IAAI,CAACd,SAAS,GAAI,IAAI,CAACA,SAAS,CAACc,OAA2B,GAAG,IAAI;IACnF,OAAOf,OAAO,EAAEgB,YAAY,CAACD,OAAO,EAAED,MAAM,CAAC,IAAI,KAAK;AACxD,EAAA;AACD;;;;"} \ No newline at end of file diff --git a/fesm2022/_form-field-chunk.mjs b/fesm2022/_form-field-chunk.mjs index 45cce2121f..d3134603d7 100755 --- a/fesm2022/_form-field-chunk.mjs +++ b/fesm2022/_form-field-chunk.mjs @@ -4,7 +4,7 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion'; import { Platform } from '@angular/cdk/platform'; import { NgTemplateOutlet } from '@angular/common'; import * as i0 from '@angular/core'; -import { Directive, InjectionToken, inject, Input, ElementRef, NgZone, Renderer2, ViewChild, ViewEncapsulation, ChangeDetectionStrategy, Component, ChangeDetectorRef, viewChild, computed, contentChild, signal, effect, afterRenderEffect, ContentChildren, ContentChild } from '@angular/core'; +import { Directive, InjectionToken, inject, Input, ElementRef, NgZone, Renderer2, ViewChild, ViewEncapsulation, Component, ChangeDetectorRef, viewChild, computed, contentChild, signal, effect, afterRenderEffect, ContentChildren, ContentChild } from '@angular/core'; import { Subscription, Subject, merge } from 'rxjs'; import { startWith, map, pairwise, filter, takeUntil } from 'rxjs/operators'; import { SharedResizeObserver } from '@angular/cdk/observers/private'; @@ -13,7 +13,7 @@ import { _animationsDisabled } from './_animation-chunk.mjs'; class MatLabel { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatLabel, deps: [], @@ -21,7 +21,7 @@ class MatLabel { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatLabel, isStandalone: true, selector: "mat-label", @@ -30,7 +30,7 @@ class MatLabel { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatLabel, decorators: [{ @@ -46,7 +46,7 @@ class MatError { id = inject(_IdGenerator).getId('mat-mdc-error-'); static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatError, deps: [], @@ -54,7 +54,7 @@ class MatError { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatError, isStandalone: true, selector: "mat-error, [matError]", @@ -76,7 +76,7 @@ class MatError { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatError, decorators: [{ @@ -105,7 +105,7 @@ class MatHint { id = inject(_IdGenerator).getId('mat-mdc-hint-'); static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatHint, deps: [], @@ -113,7 +113,7 @@ class MatHint { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatHint, isStandalone: true, selector: "mat-hint", @@ -134,7 +134,7 @@ class MatHint { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatHint, decorators: [{ @@ -167,7 +167,7 @@ class MatPrefix { _isText = false; static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatPrefix, deps: [], @@ -175,7 +175,7 @@ class MatPrefix { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatPrefix, isStandalone: true, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", @@ -191,7 +191,7 @@ class MatPrefix { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatPrefix, decorators: [{ @@ -220,7 +220,7 @@ class MatSuffix { _isText = false; static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatSuffix, deps: [], @@ -228,7 +228,7 @@ class MatSuffix { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatSuffix, isStandalone: true, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", @@ -244,7 +244,7 @@ class MatSuffix { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatSuffix, decorators: [{ @@ -316,7 +316,7 @@ class MatFormFieldFloatingLabel { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormFieldFloatingLabel, deps: [], @@ -324,7 +324,7 @@ class MatFormFieldFloatingLabel { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatFormFieldFloatingLabel, isStandalone: true, selector: "label[matFormFieldFloatingLabel]", @@ -343,7 +343,7 @@ class MatFormFieldFloatingLabel { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormFieldFloatingLabel, decorators: [{ @@ -411,7 +411,7 @@ class MatFormFieldLineRipple { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormFieldLineRipple, deps: [], @@ -419,7 +419,7 @@ class MatFormFieldLineRipple { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatFormFieldLineRipple, isStandalone: true, selector: "div[matFormFieldLineRipple]", @@ -431,7 +431,7 @@ class MatFormFieldLineRipple { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormFieldLineRipple, decorators: [{ @@ -481,7 +481,7 @@ class MatFormFieldNotchedOutline { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormFieldNotchedOutline, deps: [], @@ -489,7 +489,7 @@ class MatFormFieldNotchedOutline { }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatFormFieldNotchedOutline, isStandalone: true, selector: "div[matFormFieldNotchedOutline]", @@ -510,13 +510,12 @@ class MatFormFieldNotchedOutline { }], ngImport: i0, template: "
\n
\n \n
\n
\n", - changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormFieldNotchedOutline, decorators: [{ @@ -527,7 +526,6 @@ i0.ɵɵngDeclareClassMetadata({ 'class': 'mdc-notched-outline', '[class.mdc-notched-outline--notched]': 'open' }, - changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "
\n
\n \n
\n
\n" }] @@ -563,7 +561,7 @@ class MatFormFieldControl { describedByIds; static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormFieldControl, deps: [], @@ -571,7 +569,7 @@ class MatFormFieldControl { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatFormFieldControl, isStandalone: true, ngImport: i0 @@ -579,7 +577,7 @@ class MatFormFieldControl { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormFieldControl, decorators: [{ @@ -1007,7 +1005,7 @@ class MatFormField { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormField, deps: [], @@ -1015,7 +1013,7 @@ class MatFormField { }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatFormField, isStandalone: true, selector: "mat-form-field", @@ -1180,13 +1178,12 @@ class MatFormField { selector: "mat-hint", inputs: ["align", "id"] }], - changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatFormField, decorators: [{ @@ -1217,7 +1214,6 @@ i0.ɵɵngDeclareClassMetadata({ '[class.ng-pending]': '_shouldForward("pending")' }, encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: MAT_FORM_FIELD, useExisting: MatFormField diff --git a/fesm2022/_form-field-chunk.mjs.map b/fesm2022/_form-field-chunk.mjs.map index 6d17fb1425..f00aafbff4 100755 --- a/fesm2022/_form-field-chunk.mjs.map +++ b/fesm2022/_form-field-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_form-field-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/label.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/error.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/hint.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/prefix.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/suffix.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/floating-label.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/line-ripple.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/notched-outline.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/notched-outline.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/form-field-control.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/form-field-errors.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/form-field.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/form-field.html"],"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 {Directive} from '@angular/core';\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label',\n})\nexport class MatLabel {}\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 {Directive, InjectionToken, Input, inject} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_ERROR = new InjectionToken('MatError');\n\n/** Single error message to be shown underneath the form-field. */\n@Directive({\n selector: 'mat-error, [matError]',\n host: {\n 'class': 'mat-mdc-form-field-error mat-mdc-form-field-bottom-align',\n '[id]': 'id',\n },\n providers: [{provide: MAT_ERROR, useExisting: MatError}],\n})\nexport class MatError {\n @Input() id: string = inject(_IdGenerator).getId('mat-mdc-error-');\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 {Directive, inject, Input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-mdc-form-field-hint mat-mdc-form-field-bottom-align',\n '[class.mat-mdc-form-field-hint-end]': 'align === \"end\"',\n '[id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = inject(_IdGenerator).getId('mat-mdc-hint-');\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 {Directive, InjectionToken, Input} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_PREFIX = new InjectionToken('MatPrefix');\n\n/** Prefix to be placed in front of the form field. */\n@Directive({\n selector: '[matPrefix], [matIconPrefix], [matTextPrefix]',\n providers: [{provide: MAT_PREFIX, useExisting: MatPrefix}],\n})\nexport class MatPrefix {\n @Input('matTextPrefix')\n set _isTextSelector(value: '') {\n this._isText = true;\n }\n\n _isText = false;\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 {Directive, InjectionToken, Input} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_SUFFIX = new InjectionToken('MatSuffix');\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix], [matIconSuffix], [matTextSuffix]',\n providers: [{provide: MAT_SUFFIX, useExisting: MatSuffix}],\n})\nexport class MatSuffix {\n @Input('matTextSuffix')\n set _isTextSelector(value: '') {\n this._isText = true;\n }\n\n _isText = false;\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 Directive,\n ElementRef,\n inject,\n Input,\n NgZone,\n OnDestroy,\n InjectionToken,\n} from '@angular/core';\nimport {SharedResizeObserver} from '@angular/cdk/observers/private';\nimport {Subscription} from 'rxjs';\n\n/** An interface that the parent form-field should implement to receive resize events. */\nexport interface FloatingLabelParent {\n _handleLabelResized(): void;\n}\n\n/** An injion token for the parent form-field. */\nexport const FLOATING_LABEL_PARENT = new InjectionToken('FloatingLabelParent');\n\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\n@Directive({\n selector: 'label[matFormFieldFloatingLabel]',\n host: {\n 'class': 'mdc-floating-label mat-mdc-floating-label',\n '[class.mdc-floating-label--float-above]': 'floating',\n },\n})\nexport class MatFormFieldFloatingLabel implements OnDestroy {\n private _elementRef = inject>(ElementRef);\n\n /** Whether the label is floating. */\n @Input()\n get floating() {\n return this._floating;\n }\n set floating(value: boolean) {\n this._floating = value;\n if (this.monitorResize) {\n this._handleResize();\n }\n }\n private _floating = false;\n\n /** Whether to monitor for resize events on the floating label. */\n @Input()\n get monitorResize() {\n return this._monitorResize;\n }\n set monitorResize(value: boolean) {\n this._monitorResize = value;\n if (this._monitorResize) {\n this._subscribeToResize();\n } else {\n this._resizeSubscription.unsubscribe();\n }\n }\n private _monitorResize = false;\n\n /** The shared ResizeObserver. */\n private _resizeObserver = inject(SharedResizeObserver);\n\n /** The Angular zone. */\n private _ngZone = inject(NgZone);\n\n /** The parent form-field. */\n private _parent = inject(FLOATING_LABEL_PARENT);\n\n /** The current resize event subscription. */\n private _resizeSubscription = new Subscription();\n\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n\n /** Gets the width of the label. Used for the outline notch. */\n getWidth(): number {\n return estimateScrollWidth(this._elementRef.nativeElement);\n }\n\n /** Gets the HTML element for the floating label. */\n get element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** Handles resize events from the ResizeObserver. */\n private _handleResize() {\n // In the case where the label grows in size, the following sequence of events occurs:\n // 1. The label grows by 1px triggering the ResizeObserver\n // 2. The notch is expanded to accommodate the entire label\n // 3. The label expands to its full width, triggering the ResizeObserver again\n //\n // This is expected, but If we allow this to all happen within the same macro task it causes an\n // error: `ResizeObserver loop limit exceeded`. Therefore we push the notch resize out until\n // the next macro task.\n setTimeout(() => this._parent._handleLabelResized());\n }\n\n /** Subscribes to resize events. */\n private _subscribeToResize() {\n this._resizeSubscription.unsubscribe();\n this._ngZone.runOutsideAngular(() => {\n this._resizeSubscription = this._resizeObserver\n .observe(this._elementRef.nativeElement, {box: 'border-box'})\n .subscribe(() => this._handleResize());\n });\n }\n}\n\n/**\n * Estimates the scroll width of an element.\n * via https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-dom/ponyfill.ts\n */\nfunction estimateScrollWidth(element: HTMLElement): number {\n // Check the offsetParent. If the element inherits display: none from any\n // parent, the offsetParent property will be null (see\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).\n // This check ensures we only clone the node when necessary.\n const htmlEl = element as HTMLElement;\n if (htmlEl.offsetParent !== null) {\n return htmlEl.scrollWidth;\n }\n\n const clone = htmlEl.cloneNode(true) as HTMLElement;\n clone.style.setProperty('position', 'absolute');\n clone.style.setProperty('transform', 'translate(-9999px, -9999px)');\n document.documentElement.appendChild(clone);\n const scrollWidth = clone.scrollWidth;\n clone.remove();\n return scrollWidth;\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 {Directive, ElementRef, NgZone, OnDestroy, Renderer2, inject} from '@angular/core';\n\n/** Class added when the line ripple is active. */\nconst ACTIVATE_CLASS = 'mdc-line-ripple--active';\n\n/** Class added when the line ripple is being deactivated. */\nconst DEACTIVATING_CLASS = 'mdc-line-ripple--deactivating';\n\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\n@Directive({\n selector: 'div[matFormFieldLineRipple]',\n host: {\n 'class': 'mdc-line-ripple',\n },\n})\nexport class MatFormFieldLineRipple implements OnDestroy {\n private _elementRef = inject>(ElementRef);\n private _cleanupTransitionEnd!: () => void;\n\n constructor() {\n const ngZone = inject(NgZone);\n const renderer = inject(Renderer2);\n\n ngZone.runOutsideAngular(() => {\n this._cleanupTransitionEnd = renderer.listen(\n this._elementRef.nativeElement,\n 'transitionend',\n this._handleTransitionEnd,\n );\n });\n }\n\n activate() {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(DEACTIVATING_CLASS);\n classList.add(ACTIVATE_CLASS);\n }\n\n deactivate() {\n this._elementRef.nativeElement.classList.add(DEACTIVATING_CLASS);\n }\n\n private _handleTransitionEnd = (event: TransitionEvent) => {\n const classList = this._elementRef.nativeElement.classList;\n const isDeactivating = classList.contains(DEACTIVATING_CLASS);\n\n if (event.propertyName === 'opacity' && isDeactivating) {\n classList.remove(ACTIVATE_CLASS, DEACTIVATING_CLASS);\n }\n };\n\n ngOnDestroy() {\n this._cleanupTransitionEnd();\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 AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n NgZone,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\n@Component({\n selector: 'div[matFormFieldNotchedOutline]',\n templateUrl: './notched-outline.html',\n host: {\n 'class': 'mdc-notched-outline',\n // Besides updating the notch state through the MDC component, we toggle this class through\n // a host binding in order to ensure that the notched-outline renders correctly on the server.\n '[class.mdc-notched-outline--notched]': 'open',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatFormFieldNotchedOutline implements AfterViewInit {\n private _elementRef = inject>(ElementRef);\n private _ngZone = inject(NgZone);\n\n /** Whether the notch should be opened. */\n @Input('matFormFieldNotchedOutlineOpen') open: boolean = false;\n\n @ViewChild('notch') _notch!: ElementRef;\n\n ngAfterViewInit(): void {\n const element = this._elementRef.nativeElement;\n const label = element.querySelector('.mdc-floating-label');\n\n if (label) {\n element.classList.add('mdc-notched-outline--upgraded');\n\n if (typeof requestAnimationFrame === 'function') {\n label.style.transitionDuration = '0s';\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => (label.style.transitionDuration = ''));\n });\n }\n } else {\n element.classList.add('mdc-notched-outline--no-label');\n }\n }\n\n _setNotchWidth(labelWidth: number) {\n const notch = this._notch.nativeElement;\n\n if (!this.open || !labelWidth) {\n notch.style.width = '';\n } else {\n const NOTCH_ELEMENT_PADDING = 8;\n const NOTCH_ELEMENT_BORDER = 1;\n notch.style.width = `calc(${labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + ${\n NOTCH_ELEMENT_PADDING + NOTCH_ELEMENT_BORDER\n }px)`;\n }\n }\n\n _setMaxWidth(prefixAndSuffixWidth: number) {\n // Set this only on the notch to avoid style recalculations in other parts of the form field.\n this._notch.nativeElement.style.setProperty(\n '--mat-form-field-notch-max-width',\n `calc(100% - ${prefixAndSuffixWidth}px)`,\n );\n }\n}\n","
\n
\n \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 {Observable} from 'rxjs';\nimport {AbstractControlDirective, NgControl} from '@angular/forms';\nimport {Directive} from '@angular/core';\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\n@Directive()\nexport abstract class MatFormFieldControl {\n /** The value of the control. */\n value: T | null = null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n */\n readonly stateChanges!: Observable;\n\n /** The element ID for this control. */\n readonly id!: string;\n\n /** The placeholder for this control. */\n readonly placeholder!: string;\n\n /** Gets the AbstractControlDirective for this control. */\n readonly ngControl: NgControl | AbstractControlDirective | null = null;\n\n /** Whether the control is focused. */\n readonly focused: boolean = false;\n\n /** Whether the control is empty. */\n readonly empty: boolean = false;\n\n /** Whether the `MatFormField` label should try to float. */\n readonly shouldLabelFloat: boolean = false;\n\n /** Whether the control is required. */\n readonly required: boolean = false;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean = false;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean = false;\n\n /**\n * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n * based on their control type. The form field will add a class,\n * `mat-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /**\n * Value of `aria-describedby` that should be merged with the described-by ids\n * which are set by the form-field.\n */\n readonly userAriaDescribedBy?: string;\n\n /**\n * Whether to automatically assign the ID of the form field as the `for` attribute\n * on the `\n }\n\n\n\n @if (!_hasOutline() && !_control.disabled) {\n
\n }\n
\n @if (_hasOutline()) {\n
\n @if (!_forceDisplayInfixLabel()) {\n \n }\n
\n }\n\n @if (_hasIconPrefix) {\n
\n \n
\n }\n\n @if (_hasTextPrefix) {\n
\n \n
\n }\n\n
\n @if (!_hasOutline() || _forceDisplayInfixLabel()) {\n \n }\n\n \n
\n\n @if (_hasTextSuffix) {\n
\n \n
\n }\n\n @if (_hasIconSuffix) {\n
\n \n
\n }\n
\n\n @if (!_hasOutline()) {\n
\n }\n\n\n
\n @let subscriptMessageType = _getSubscriptMessageType();\n\n @switch (subscriptMessageType) {\n @case ('error') {\n
\n \n
\n }\n\n @case ('hint') {\n
\n @if (hintLabel) {\n {{hintLabel}}\n }\n \n
\n \n
\n }\n }\n
\n"],"names":["MatLabel","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","ngImport","decorators","args","MAT_ERROR","InjectionToken","MatError","id","inject","_IdGenerator","getId","inputs","host","properties","classAttribute","providers","provide","useExisting","Input","MatHint","align","MAT_PREFIX","MatPrefix","_isTextSelector","value","_isText","MAT_SUFFIX","MatSuffix","FLOATING_LABEL_PARENT","MatFormFieldFloatingLabel","_elementRef","ElementRef","floating","_floating","monitorResize","_handleResize","_monitorResize","_subscribeToResize","_resizeSubscription","unsubscribe","_resizeObserver","SharedResizeObserver","_ngZone","NgZone","_parent","Subscription","ngOnDestroy","getWidth","estimateScrollWidth","nativeElement","element","setTimeout","_handleLabelResized","runOutsideAngular","observe","box","subscribe","htmlEl","offsetParent","scrollWidth","clone","cloneNode","style","setProperty","document","documentElement","appendChild","remove","ACTIVATE_CLASS","DEACTIVATING_CLASS","MatFormFieldLineRipple","_cleanupTransitionEnd","constructor","ngZone","renderer","Renderer2","listen","_handleTransitionEnd","activate","classList","add","deactivate","event","isDeactivating","contains","propertyName","MatFormFieldNotchedOutline","open","_notch","ngAfterViewInit","label","querySelector","requestAnimationFrame","transitionDuration","_setNotchWidth","labelWidth","notch","width","NOTCH_ELEMENT_PADDING","NOTCH_ELEMENT_BORDER","_setMaxWidth","prefixAndSuffixWidth","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","template","ViewChild","MatFormFieldControl","stateChanges","placeholder","ngControl","focused","empty","shouldLabelFloat","required","disabled","errorState","controlType","autofilled","userAriaDescribedBy","disableAutomaticLabeling","describedByIds","getMatFormFieldPlaceholderConflictError","Error","getMatFormFieldDuplicatedHintError","getMatFormFieldMissingControlError","MAT_FORM_FIELD","MAT_FORM_FIELD_DEFAULT_OPTIONS","DEFAULT_APPEARANCE","DEFAULT_FLOAT_LABEL","DEFAULT_SUBSCRIPT_SIZING","FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM","MatFormField","_changeDetectorRef","ChangeDetectorRef","_platform","Platform","_idGenerator","_defaults","optional","_currentDirection","_textField","_iconPrefixContainer","_textPrefixContainer","_iconSuffixContainer","_textSuffixContainer","_floatingLabel","_notchedOutline","_lineRipple","_iconPrefixContainerSignal","viewChild","_textPrefixContainerSignal","_iconSuffixContainerSignal","_textSuffixContainerSignal","_prefixSuffixContainers","computed","map","container","filter","e","undefined","_formFieldControl","_prefixChildren","_suffixChildren","_errorChildren","_hintChildren","_labelChild","contentChild","hideRequiredMarker","_hideRequiredMarker","coerceBooleanProperty","color","floatLabel","_floatLabel","markForCheck","appearance","_appearanceSignal","newAppearance","ngDevMode","set","signal","subscriptSizing","_subscriptSizing","hintLabel","_hintLabel","_processHints","_hasIconPrefix","_hasTextPrefix","_hasIconSuffix","_hasTextSuffix","_labelId","_hintLabelId","_describedByIds","_control","_explicitFormFieldControl","_destroyed","Subject","_isFocused","_previousControl","_previousControlValidatorFn","_stateChanges","_valueChanges","_describedByChanges","_outlineLabelOffsetResizeObserver","_animationsDisabled","defaults","dir","Directionality","Boolean","effect","valueSignal","_syncOutlineLabelOffset","_updateFocusState","detectChanges","ngAfterContentInit","_assertFormFieldControl","_initializeSubscript","_initializePrefixAndSuffix","ngAfterContentChecked","_initializeControl","control","validator","validatorFn","disconnect","next","complete","getLabelId","_hasFloatingLabel","getConnectedOverlayOrigin","_animateAndLockLabel","previousControl","classPrefix","pipe","startWith","pairwise","prevErrorState","prevDescribedBy","currentErrorState","currentDescribedBy","_syncDescribedByIds","valueChanges","takeUntil","_checkPrefixAndSuffixTypes","find","p","s","merge","changes","_validateHints","controlFocused","toggle","afterRenderEffect","earlyRead","globalThis","ResizeObserver","_writeOutlinedLabelStyles","_getOutlinedLabelOffset","el","write","labelStyles","_shouldAlwaysFloat","_hasOutline","_forceDisplayInfixLabel","isBrowser","length","_shouldLabelFloat","_shouldForward","prop","_getSubscriptMessageType","_refreshOutlineNotchWidth","startHint","endHint","forEach","hint","ids","push","split","error","existingDescribedBy","toAssign","exclude","concat","includes","setDescribedByIds","_isAttachedToDom","iconPrefixContainer","textPrefixContainer","iconSuffixContainer","textSuffixContainer","iconPrefixContainerWidth","getBoundingClientRect","textPrefixContainerWidth","iconSuffixContainerWidth","textSuffixContainerWidth","negate","prefixWidth","labelOffset","labelHorizontalOffset","floatingLabelTransform","notchedOutlineWidth","styles","transform","getRootNode","rootNode","queries","first","predicate","descendants","isSignal","_MatFormFieldControl","viewQueries","exportAs","dependencies","kind","NgTemplateOutlet","imports","ContentChild","ContentChildren"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"_form-field-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/label.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/error.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/hint.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/prefix.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/suffix.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/floating-label.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/line-ripple.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/notched-outline.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/directives/notched-outline.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/form-field-control.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/form-field-errors.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/form-field.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/form-field/form-field.html"],"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 {Directive} from '@angular/core';\n\n/** The floating label for a `mat-form-field`. */\n@Directive({\n selector: 'mat-label',\n})\nexport class MatLabel {}\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 {Directive, InjectionToken, Input, inject} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_ERROR = new InjectionToken('MatError');\n\n/** Single error message to be shown underneath the form-field. */\n@Directive({\n selector: 'mat-error, [matError]',\n host: {\n 'class': 'mat-mdc-form-field-error mat-mdc-form-field-bottom-align',\n '[id]': 'id',\n },\n providers: [{provide: MAT_ERROR, useExisting: MatError}],\n})\nexport class MatError {\n @Input() id: string = inject(_IdGenerator).getId('mat-mdc-error-');\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 {Directive, inject, Input} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\n\n/** Hint text to be shown underneath the form field control. */\n@Directive({\n selector: 'mat-hint',\n host: {\n 'class': 'mat-mdc-form-field-hint mat-mdc-form-field-bottom-align',\n '[class.mat-mdc-form-field-hint-end]': 'align === \"end\"',\n '[id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n})\nexport class MatHint {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = inject(_IdGenerator).getId('mat-mdc-hint-');\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 {Directive, InjectionToken, Input} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_PREFIX = new InjectionToken('MatPrefix');\n\n/** Prefix to be placed in front of the form field. */\n@Directive({\n selector: '[matPrefix], [matIconPrefix], [matTextPrefix]',\n providers: [{provide: MAT_PREFIX, useExisting: MatPrefix}],\n})\nexport class MatPrefix {\n @Input('matTextPrefix')\n set _isTextSelector(value: '') {\n this._isText = true;\n }\n\n _isText = false;\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 {Directive, InjectionToken, Input} from '@angular/core';\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const MAT_SUFFIX = new InjectionToken('MatSuffix');\n\n/** Suffix to be placed at the end of the form field. */\n@Directive({\n selector: '[matSuffix], [matIconSuffix], [matTextSuffix]',\n providers: [{provide: MAT_SUFFIX, useExisting: MatSuffix}],\n})\nexport class MatSuffix {\n @Input('matTextSuffix')\n set _isTextSelector(value: '') {\n this._isText = true;\n }\n\n _isText = false;\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 Directive,\n ElementRef,\n inject,\n Input,\n NgZone,\n OnDestroy,\n InjectionToken,\n} from '@angular/core';\nimport {SharedResizeObserver} from '@angular/cdk/observers/private';\nimport {Subscription} from 'rxjs';\n\n/** An interface that the parent form-field should implement to receive resize events. */\nexport interface FloatingLabelParent {\n _handleLabelResized(): void;\n}\n\n/** An injion token for the parent form-field. */\nexport const FLOATING_LABEL_PARENT = new InjectionToken('FloatingLabelParent');\n\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\n@Directive({\n selector: 'label[matFormFieldFloatingLabel]',\n host: {\n 'class': 'mdc-floating-label mat-mdc-floating-label',\n '[class.mdc-floating-label--float-above]': 'floating',\n },\n})\nexport class MatFormFieldFloatingLabel implements OnDestroy {\n private _elementRef = inject>(ElementRef);\n\n /** Whether the label is floating. */\n @Input()\n get floating() {\n return this._floating;\n }\n set floating(value: boolean) {\n this._floating = value;\n if (this.monitorResize) {\n this._handleResize();\n }\n }\n private _floating = false;\n\n /** Whether to monitor for resize events on the floating label. */\n @Input()\n get monitorResize() {\n return this._monitorResize;\n }\n set monitorResize(value: boolean) {\n this._monitorResize = value;\n if (this._monitorResize) {\n this._subscribeToResize();\n } else {\n this._resizeSubscription.unsubscribe();\n }\n }\n private _monitorResize = false;\n\n /** The shared ResizeObserver. */\n private _resizeObserver = inject(SharedResizeObserver);\n\n /** The Angular zone. */\n private _ngZone = inject(NgZone);\n\n /** The parent form-field. */\n private _parent = inject(FLOATING_LABEL_PARENT);\n\n /** The current resize event subscription. */\n private _resizeSubscription = new Subscription();\n\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n\n /** Gets the width of the label. Used for the outline notch. */\n getWidth(): number {\n return estimateScrollWidth(this._elementRef.nativeElement);\n }\n\n /** Gets the HTML element for the floating label. */\n get element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n\n /** Handles resize events from the ResizeObserver. */\n private _handleResize() {\n // In the case where the label grows in size, the following sequence of events occurs:\n // 1. The label grows by 1px triggering the ResizeObserver\n // 2. The notch is expanded to accommodate the entire label\n // 3. The label expands to its full width, triggering the ResizeObserver again\n //\n // This is expected, but If we allow this to all happen within the same macro task it causes an\n // error: `ResizeObserver loop limit exceeded`. Therefore we push the notch resize out until\n // the next macro task.\n setTimeout(() => this._parent._handleLabelResized());\n }\n\n /** Subscribes to resize events. */\n private _subscribeToResize() {\n this._resizeSubscription.unsubscribe();\n this._ngZone.runOutsideAngular(() => {\n this._resizeSubscription = this._resizeObserver\n .observe(this._elementRef.nativeElement, {box: 'border-box'})\n .subscribe(() => this._handleResize());\n });\n }\n}\n\n/**\n * Estimates the scroll width of an element.\n * via https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-dom/ponyfill.ts\n */\nfunction estimateScrollWidth(element: HTMLElement): number {\n // Check the offsetParent. If the element inherits display: none from any\n // parent, the offsetParent property will be null (see\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).\n // This check ensures we only clone the node when necessary.\n const htmlEl = element as HTMLElement;\n if (htmlEl.offsetParent !== null) {\n return htmlEl.scrollWidth;\n }\n\n const clone = htmlEl.cloneNode(true) as HTMLElement;\n clone.style.setProperty('position', 'absolute');\n clone.style.setProperty('transform', 'translate(-9999px, -9999px)');\n document.documentElement.appendChild(clone);\n const scrollWidth = clone.scrollWidth;\n clone.remove();\n return scrollWidth;\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 {Directive, ElementRef, NgZone, OnDestroy, Renderer2, inject} from '@angular/core';\n\n/** Class added when the line ripple is active. */\nconst ACTIVATE_CLASS = 'mdc-line-ripple--active';\n\n/** Class added when the line ripple is being deactivated. */\nconst DEACTIVATING_CLASS = 'mdc-line-ripple--deactivating';\n\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\n@Directive({\n selector: 'div[matFormFieldLineRipple]',\n host: {\n 'class': 'mdc-line-ripple',\n },\n})\nexport class MatFormFieldLineRipple implements OnDestroy {\n private _elementRef = inject>(ElementRef);\n private _cleanupTransitionEnd!: () => void;\n\n constructor() {\n const ngZone = inject(NgZone);\n const renderer = inject(Renderer2);\n\n ngZone.runOutsideAngular(() => {\n this._cleanupTransitionEnd = renderer.listen(\n this._elementRef.nativeElement,\n 'transitionend',\n this._handleTransitionEnd,\n );\n });\n }\n\n activate() {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(DEACTIVATING_CLASS);\n classList.add(ACTIVATE_CLASS);\n }\n\n deactivate() {\n this._elementRef.nativeElement.classList.add(DEACTIVATING_CLASS);\n }\n\n private _handleTransitionEnd = (event: TransitionEvent) => {\n const classList = this._elementRef.nativeElement.classList;\n const isDeactivating = classList.contains(DEACTIVATING_CLASS);\n\n if (event.propertyName === 'opacity' && isDeactivating) {\n classList.remove(ACTIVATE_CLASS, DEACTIVATING_CLASS);\n }\n };\n\n ngOnDestroy() {\n this._cleanupTransitionEnd();\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 AfterViewInit,\n Component,\n ElementRef,\n Input,\n NgZone,\n ViewChild,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\n@Component({\n selector: 'div[matFormFieldNotchedOutline]',\n templateUrl: './notched-outline.html',\n host: {\n 'class': 'mdc-notched-outline',\n // Besides updating the notch state through the MDC component, we toggle this class through\n // a host binding in order to ensure that the notched-outline renders correctly on the server.\n '[class.mdc-notched-outline--notched]': 'open',\n },\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatFormFieldNotchedOutline implements AfterViewInit {\n private _elementRef = inject>(ElementRef);\n private _ngZone = inject(NgZone);\n\n /** Whether the notch should be opened. */\n @Input('matFormFieldNotchedOutlineOpen') open: boolean = false;\n\n @ViewChild('notch') _notch!: ElementRef;\n\n ngAfterViewInit(): void {\n const element = this._elementRef.nativeElement;\n const label = element.querySelector('.mdc-floating-label');\n\n if (label) {\n element.classList.add('mdc-notched-outline--upgraded');\n\n if (typeof requestAnimationFrame === 'function') {\n label.style.transitionDuration = '0s';\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => (label.style.transitionDuration = ''));\n });\n }\n } else {\n element.classList.add('mdc-notched-outline--no-label');\n }\n }\n\n _setNotchWidth(labelWidth: number) {\n const notch = this._notch.nativeElement;\n\n if (!this.open || !labelWidth) {\n notch.style.width = '';\n } else {\n const NOTCH_ELEMENT_PADDING = 8;\n const NOTCH_ELEMENT_BORDER = 1;\n notch.style.width = `calc(${labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + ${\n NOTCH_ELEMENT_PADDING + NOTCH_ELEMENT_BORDER\n }px)`;\n }\n }\n\n _setMaxWidth(prefixAndSuffixWidth: number) {\n // Set this only on the notch to avoid style recalculations in other parts of the form field.\n this._notch.nativeElement.style.setProperty(\n '--mat-form-field-notch-max-width',\n `calc(100% - ${prefixAndSuffixWidth}px)`,\n );\n }\n}\n","
\n
\n \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 {Observable} from 'rxjs';\nimport {AbstractControlDirective, NgControl} from '@angular/forms';\nimport {Directive} from '@angular/core';\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\n@Directive()\nexport abstract class MatFormFieldControl {\n /** The value of the control. */\n value: T | null = null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `MatFormField`\n * needs to run change detection.\n */\n readonly stateChanges!: Observable;\n\n /** The element ID for this control. */\n readonly id!: string;\n\n /** The placeholder for this control. */\n readonly placeholder!: string;\n\n /** Gets the AbstractControlDirective for this control. */\n readonly ngControl: NgControl | AbstractControlDirective | null = null;\n\n /** Whether the control is focused. */\n readonly focused: boolean = false;\n\n /** Whether the control is empty. */\n readonly empty: boolean = false;\n\n /** Whether the `MatFormField` label should try to float. */\n readonly shouldLabelFloat: boolean = false;\n\n /** Whether the control is required. */\n readonly required: boolean = false;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean = false;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean = false;\n\n /**\n * An optional name for the control type that can be used to distinguish `mat-form-field` elements\n * based on their control type. The form field will add a class,\n * `mat-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /**\n * Value of `aria-describedby` that should be merged with the described-by ids\n * which are set by the form-field.\n */\n readonly userAriaDescribedBy?: string;\n\n /**\n * Whether to automatically assign the ID of the form field as the `for` attribute\n * on the `\n }\n\n\n\n @if (!_hasOutline() && !_control.disabled) {\n
\n }\n
\n @if (_hasOutline()) {\n
\n @if (!_forceDisplayInfixLabel()) {\n \n }\n
\n }\n\n @if (_hasIconPrefix) {\n
\n \n
\n }\n\n @if (_hasTextPrefix) {\n
\n \n
\n }\n\n
\n @if (!_hasOutline() || _forceDisplayInfixLabel()) {\n \n }\n\n \n
\n\n @if (_hasTextSuffix) {\n
\n \n
\n }\n\n @if (_hasIconSuffix) {\n
\n \n
\n }\n
\n\n @if (!_hasOutline()) {\n
\n }\n\n\n
\n @let subscriptMessageType = _getSubscriptMessageType();\n\n @switch (subscriptMessageType) {\n @case ('error') {\n
\n \n
\n }\n\n @case ('hint') {\n
\n @if (hintLabel) {\n {{hintLabel}}\n }\n \n
\n \n
\n }\n }\n
\n"],"names":["MatLabel","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","ngImport","decorators","args","MAT_ERROR","InjectionToken","MatError","id","inject","_IdGenerator","getId","inputs","host","properties","classAttribute","providers","provide","useExisting","Input","MatHint","align","MAT_PREFIX","MatPrefix","_isTextSelector","value","_isText","MAT_SUFFIX","MatSuffix","FLOATING_LABEL_PARENT","MatFormFieldFloatingLabel","_elementRef","ElementRef","floating","_floating","monitorResize","_handleResize","_monitorResize","_subscribeToResize","_resizeSubscription","unsubscribe","_resizeObserver","SharedResizeObserver","_ngZone","NgZone","_parent","Subscription","ngOnDestroy","getWidth","estimateScrollWidth","nativeElement","element","setTimeout","_handleLabelResized","runOutsideAngular","observe","box","subscribe","htmlEl","offsetParent","scrollWidth","clone","cloneNode","style","setProperty","document","documentElement","appendChild","remove","ACTIVATE_CLASS","DEACTIVATING_CLASS","MatFormFieldLineRipple","_cleanupTransitionEnd","constructor","ngZone","renderer","Renderer2","listen","_handleTransitionEnd","activate","classList","add","deactivate","event","isDeactivating","contains","propertyName","MatFormFieldNotchedOutline","open","_notch","ngAfterViewInit","label","querySelector","requestAnimationFrame","transitionDuration","_setNotchWidth","labelWidth","notch","width","NOTCH_ELEMENT_PADDING","NOTCH_ELEMENT_BORDER","_setMaxWidth","prefixAndSuffixWidth","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","encapsulation","ViewEncapsulation","None","template","ViewChild","MatFormFieldControl","stateChanges","placeholder","ngControl","focused","empty","shouldLabelFloat","required","disabled","errorState","controlType","autofilled","userAriaDescribedBy","disableAutomaticLabeling","describedByIds","getMatFormFieldPlaceholderConflictError","Error","getMatFormFieldDuplicatedHintError","getMatFormFieldMissingControlError","MAT_FORM_FIELD","MAT_FORM_FIELD_DEFAULT_OPTIONS","DEFAULT_APPEARANCE","DEFAULT_FLOAT_LABEL","DEFAULT_SUBSCRIPT_SIZING","FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM","MatFormField","_changeDetectorRef","ChangeDetectorRef","_platform","Platform","_idGenerator","_defaults","optional","_currentDirection","_textField","_iconPrefixContainer","_textPrefixContainer","_iconSuffixContainer","_textSuffixContainer","_floatingLabel","_notchedOutline","_lineRipple","_iconPrefixContainerSignal","viewChild","_textPrefixContainerSignal","_iconSuffixContainerSignal","_textSuffixContainerSignal","_prefixSuffixContainers","computed","map","container","filter","e","undefined","_formFieldControl","_prefixChildren","_suffixChildren","_errorChildren","_hintChildren","_labelChild","contentChild","hideRequiredMarker","_hideRequiredMarker","coerceBooleanProperty","color","floatLabel","_floatLabel","markForCheck","appearance","_appearanceSignal","newAppearance","ngDevMode","set","signal","subscriptSizing","_subscriptSizing","hintLabel","_hintLabel","_processHints","_hasIconPrefix","_hasTextPrefix","_hasIconSuffix","_hasTextSuffix","_labelId","_hintLabelId","_describedByIds","_control","_explicitFormFieldControl","_destroyed","Subject","_isFocused","_previousControl","_previousControlValidatorFn","_stateChanges","_valueChanges","_describedByChanges","_outlineLabelOffsetResizeObserver","_animationsDisabled","defaults","dir","Directionality","Boolean","effect","valueSignal","_syncOutlineLabelOffset","_updateFocusState","detectChanges","ngAfterContentInit","_assertFormFieldControl","_initializeSubscript","_initializePrefixAndSuffix","ngAfterContentChecked","_initializeControl","control","validator","validatorFn","disconnect","next","complete","getLabelId","_hasFloatingLabel","getConnectedOverlayOrigin","_animateAndLockLabel","previousControl","classPrefix","pipe","startWith","pairwise","prevErrorState","prevDescribedBy","currentErrorState","currentDescribedBy","_syncDescribedByIds","valueChanges","takeUntil","_checkPrefixAndSuffixTypes","find","p","s","merge","changes","_validateHints","controlFocused","toggle","afterRenderEffect","earlyRead","globalThis","ResizeObserver","_writeOutlinedLabelStyles","_getOutlinedLabelOffset","el","write","labelStyles","_shouldAlwaysFloat","_hasOutline","_forceDisplayInfixLabel","isBrowser","length","_shouldLabelFloat","_shouldForward","prop","_getSubscriptMessageType","_refreshOutlineNotchWidth","startHint","endHint","forEach","hint","ids","push","split","error","existingDescribedBy","toAssign","exclude","concat","includes","setDescribedByIds","_isAttachedToDom","iconPrefixContainer","textPrefixContainer","iconSuffixContainer","textSuffixContainer","iconPrefixContainerWidth","getBoundingClientRect","textPrefixContainerWidth","iconSuffixContainerWidth","textSuffixContainerWidth","negate","prefixWidth","labelOffset","labelHorizontalOffset","floatingLabelTransform","notchedOutlineWidth","styles","transform","getRootNode","rootNode","queries","first","predicate","descendants","isSignal","_MatFormFieldControl","viewQueries","exportAs","dependencies","kind","NgTemplateOutlet","imports","ContentChild","ContentChildren"],"mappings":"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"} \ No newline at end of file diff --git a/fesm2022/_icon-button-chunk.mjs b/fesm2022/_icon-button-chunk.mjs index 08906588ae..2caadd9123 100755 --- a/fesm2022/_icon-button-chunk.mjs +++ b/fesm2022/_icon-button-chunk.mjs @@ -1,10 +1,10 @@ import * as i0 from '@angular/core'; -import { InjectionToken, inject, ElementRef, NgZone, Renderer2, input, booleanAttribute, numberAttribute, Input, Directive, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core'; +import { InjectionToken, inject, ElementRef, NgZone, Renderer2, input, booleanAttribute, numberAttribute, Input, Directive, ViewEncapsulation, Component } from '@angular/core'; import { FocusMonitor } from '@angular/cdk/a11y'; import { _CdkPrivateStyleLoader } from '@angular/cdk/private'; import { MatRippleLoader } from './_ripple-loader-chunk.mjs'; -import { _StructuralStylesLoader } from './_structural-styles-chunk.mjs'; import { _animationsDisabled } from './_animation-chunk.mjs'; +import { _StructuralStylesLoader } from './_structural-styles-chunk.mjs'; const MAT_BUTTON_CONFIG = new InjectionToken('MAT_BUTTON_CONFIG'); function transformTabIndex(value) { @@ -111,7 +111,7 @@ class MatButtonBase { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatButtonBase, deps: [], @@ -119,7 +119,7 @@ class MatButtonBase { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatButtonBase, isStandalone: true, inputs: { @@ -199,7 +199,7 @@ class MatButtonBase { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatButtonBase, decorators: [{ @@ -282,7 +282,7 @@ class MatIconButton extends MatButtonBase { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatIconButton, deps: [], @@ -290,7 +290,7 @@ class MatIconButton extends MatButtonBase { }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatIconButton, isStandalone: true, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", @@ -302,13 +302,12 @@ class MatIconButton extends MatButtonBase { ngImport: i0, template: "\n\n\n\n@if (showProgress()) {\n
\n \n
\n}\n\n\n\n\n\n", styles: [".mat-mdc-icon-button {\n -webkit-user-select: none;\n user-select: none;\n display: inline-block;\n position: relative;\n box-sizing: border-box;\n border: none;\n outline: none;\n background-color: transparent;\n fill: currentColor;\n text-decoration: none;\n cursor: pointer;\n z-index: 0;\n overflow: visible;\n border-radius: var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));\n flex-shrink: 0;\n text-align: center;\n width: var(--mat-icon-button-state-layer-size, 40px);\n height: var(--mat-icon-button-state-layer-size, 40px);\n padding: calc(calc(var(--mat-icon-button-state-layer-size, 40px) - var(--mat-icon-button-icon-size, 24px)) / 2);\n font-size: var(--mat-icon-button-icon-size, 24px);\n color: var(--mat-icon-button-icon-color, var(--mat-sys-on-surface-variant));\n -webkit-tap-highlight-color: transparent;\n}\n.mat-mdc-icon-button .mat-mdc-button-ripple,\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n pointer-events: none;\n border-radius: inherit;\n}\n.mat-mdc-icon-button .mat-mdc-button-ripple {\n overflow: hidden;\n}\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before {\n content: \"\";\n opacity: 0;\n}\n.mat-mdc-icon-button .mdc-button__label,\n.mat-mdc-icon-button .mat-icon {\n z-index: 1;\n position: relative;\n}\n.mat-mdc-icon-button .mat-focus-indicator {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n border-radius: inherit;\n}\n.mat-mdc-icon-button:focus-visible > .mat-focus-indicator::before {\n content: \"\";\n border-radius: inherit;\n}\n.mat-mdc-icon-button .mat-ripple-element {\n background-color: var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent));\n}\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before {\n background-color: var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant));\n}\n.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before {\n background-color: var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant));\n}\n.mat-mdc-icon-button:hover > .mat-mdc-button-persistent-ripple::before {\n opacity: var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));\n}\n.mat-mdc-icon-button.cdk-program-focused > .mat-mdc-button-persistent-ripple::before, .mat-mdc-icon-button.cdk-keyboard-focused > .mat-mdc-button-persistent-ripple::before, .mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus > .mat-mdc-button-persistent-ripple::before {\n opacity: var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));\n}\n.mat-mdc-icon-button:active > .mat-mdc-button-persistent-ripple::before {\n opacity: var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));\n}\n.mat-mdc-icon-button .mat-mdc-button-touch-target {\n position: absolute;\n top: 50%;\n height: var(--mat-icon-button-touch-target-size, 48px);\n display: var(--mat-icon-button-touch-target-display, block);\n left: 50%;\n width: var(--mat-icon-button-touch-target-size, 48px);\n transform: translate(-50%, -50%);\n}\n.mat-mdc-icon-button._mat-animation-noopable {\n transition: none !important;\n animation: none !important;\n}\n.mat-mdc-icon-button[disabled], .mat-mdc-icon-button.mat-mdc-button-disabled {\n cursor: default;\n pointer-events: none;\n color: var(--mat-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n.mat-mdc-icon-button.mat-mdc-button-disabled-interactive {\n pointer-events: auto;\n}\n.mat-mdc-icon-button img,\n.mat-mdc-icon-button svg {\n width: var(--mat-icon-button-icon-size, 24px);\n height: var(--mat-icon-button-icon-size, 24px);\n vertical-align: baseline;\n}\n.mat-mdc-icon-button .mat-mdc-button-progress-indicator-container .mdc-circular-progress__determinate-circle-graphic {\n width: inherit;\n height: inherit;\n}\n.mat-mdc-icon-button .mat-mdc-button-progress-indicator-container .mdc-circular-progress__indeterminate-circle-graphic {\n height: 100%;\n}\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple {\n border-radius: var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));\n}\n.mat-mdc-icon-button[hidden] {\n display: none;\n}\n.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before, .mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before, .mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before, .mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before {\n background: transparent;\n opacity: 1;\n}\n\n.mat-mdc-button-progress-indicator-container {\n position: absolute;\n inset-inline-start: 0;\n inset-block-start: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n\n.mat-mdc-button-progress-indicator-shown mat-icon {\n visibility: hidden;\n}\n", "@media (forced-colors: active) {\n .mat-mdc-button:not(.mdc-button--outlined),\n .mat-mdc-unelevated-button:not(.mdc-button--outlined),\n .mat-mdc-raised-button:not(.mdc-button--outlined),\n .mat-mdc-outlined-button:not(.mdc-button--outlined),\n .mat-mdc-button-base.mat-tonal-button,\n .mat-mdc-icon-button.mat-mdc-icon-button,\n .mat-mdc-outlined-button .mdc-button__ripple {\n outline: solid 1px;\n }\n}\n"], - changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatIconButton, decorators: [{ @@ -320,7 +319,6 @@ i0.ɵɵngDeclareClassMetadata({ }, exportAs: 'matButton, matAnchor', encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, template: "\n\n\n\n@if (showProgress()) {\n
\n \n
\n}\n\n\n\n\n\n", styles: [".mat-mdc-icon-button {\n -webkit-user-select: none;\n user-select: none;\n display: inline-block;\n position: relative;\n box-sizing: border-box;\n border: none;\n outline: none;\n background-color: transparent;\n fill: currentColor;\n text-decoration: none;\n cursor: pointer;\n z-index: 0;\n overflow: visible;\n border-radius: var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));\n flex-shrink: 0;\n text-align: center;\n width: var(--mat-icon-button-state-layer-size, 40px);\n height: var(--mat-icon-button-state-layer-size, 40px);\n padding: calc(calc(var(--mat-icon-button-state-layer-size, 40px) - var(--mat-icon-button-icon-size, 24px)) / 2);\n font-size: var(--mat-icon-button-icon-size, 24px);\n color: var(--mat-icon-button-icon-color, var(--mat-sys-on-surface-variant));\n -webkit-tap-highlight-color: transparent;\n}\n.mat-mdc-icon-button .mat-mdc-button-ripple,\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n pointer-events: none;\n border-radius: inherit;\n}\n.mat-mdc-icon-button .mat-mdc-button-ripple {\n overflow: hidden;\n}\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before {\n content: \"\";\n opacity: 0;\n}\n.mat-mdc-icon-button .mdc-button__label,\n.mat-mdc-icon-button .mat-icon {\n z-index: 1;\n position: relative;\n}\n.mat-mdc-icon-button .mat-focus-indicator {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n border-radius: inherit;\n}\n.mat-mdc-icon-button:focus-visible > .mat-focus-indicator::before {\n content: \"\";\n border-radius: inherit;\n}\n.mat-mdc-icon-button .mat-ripple-element {\n background-color: var(--mat-icon-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface-variant) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent));\n}\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before {\n background-color: var(--mat-icon-button-state-layer-color, var(--mat-sys-on-surface-variant));\n}\n.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before {\n background-color: var(--mat-icon-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant));\n}\n.mat-mdc-icon-button:hover > .mat-mdc-button-persistent-ripple::before {\n opacity: var(--mat-icon-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));\n}\n.mat-mdc-icon-button.cdk-program-focused > .mat-mdc-button-persistent-ripple::before, .mat-mdc-icon-button.cdk-keyboard-focused > .mat-mdc-button-persistent-ripple::before, .mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus > .mat-mdc-button-persistent-ripple::before {\n opacity: var(--mat-icon-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));\n}\n.mat-mdc-icon-button:active > .mat-mdc-button-persistent-ripple::before {\n opacity: var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));\n}\n.mat-mdc-icon-button .mat-mdc-button-touch-target {\n position: absolute;\n top: 50%;\n height: var(--mat-icon-button-touch-target-size, 48px);\n display: var(--mat-icon-button-touch-target-display, block);\n left: 50%;\n width: var(--mat-icon-button-touch-target-size, 48px);\n transform: translate(-50%, -50%);\n}\n.mat-mdc-icon-button._mat-animation-noopable {\n transition: none !important;\n animation: none !important;\n}\n.mat-mdc-icon-button[disabled], .mat-mdc-icon-button.mat-mdc-button-disabled {\n cursor: default;\n pointer-events: none;\n color: var(--mat-icon-button-disabled-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n.mat-mdc-icon-button.mat-mdc-button-disabled-interactive {\n pointer-events: auto;\n}\n.mat-mdc-icon-button img,\n.mat-mdc-icon-button svg {\n width: var(--mat-icon-button-icon-size, 24px);\n height: var(--mat-icon-button-icon-size, 24px);\n vertical-align: baseline;\n}\n.mat-mdc-icon-button .mat-mdc-button-progress-indicator-container .mdc-circular-progress__determinate-circle-graphic {\n width: inherit;\n height: inherit;\n}\n.mat-mdc-icon-button .mat-mdc-button-progress-indicator-container .mdc-circular-progress__indeterminate-circle-graphic {\n height: 100%;\n}\n.mat-mdc-icon-button .mat-mdc-button-persistent-ripple {\n border-radius: var(--mat-icon-button-container-shape, var(--mat-sys-corner-full, 50%));\n}\n.mat-mdc-icon-button[hidden] {\n display: none;\n}\n.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before, .mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before, .mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before, .mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before {\n background: transparent;\n opacity: 1;\n}\n\n.mat-mdc-button-progress-indicator-container {\n position: absolute;\n inset-inline-start: 0;\n inset-block-start: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n\n.mat-mdc-button-progress-indicator-shown mat-icon {\n visibility: hidden;\n}\n", "@media (forced-colors: active) {\n .mat-mdc-button:not(.mdc-button--outlined),\n .mat-mdc-unelevated-button:not(.mdc-button--outlined),\n .mat-mdc-raised-button:not(.mdc-button--outlined),\n .mat-mdc-outlined-button:not(.mdc-button--outlined),\n .mat-mdc-button-base.mat-tonal-button,\n .mat-mdc-icon-button.mat-mdc-icon-button,\n .mat-mdc-outlined-button .mdc-button__ripple {\n outline: solid 1px;\n }\n}\n"] }] diff --git a/fesm2022/_icon-button-chunk.mjs.map b/fesm2022/_icon-button-chunk.mjs.map index c964077c9b..1430da24b3 100755 --- a/fesm2022/_icon-button-chunk.mjs.map +++ b/fesm2022/_icon-button-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_icon-button-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/button/button-base.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/button/icon-button.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/button/icon-button.html"],"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 {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n InjectionToken,\n input,\n Input,\n NgZone,\n numberAttribute,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {_animationsDisabled, _StructuralStylesLoader, MatRippleLoader, ThemePalette} from '../core';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\n\n/**\n * Possible appearances for a `MatButton`.\n * See https://m3.material.io/components/buttons/overview\n */\nexport type MatButtonAppearance = 'text' | 'filled' | 'elevated' | 'outlined' | 'tonal';\n\n/** Object that can be used to configure the default options for the button component. */\nexport interface MatButtonConfig {\n /** Whether disabled buttons should be interactive. */\n disabledInteractive?: boolean;\n\n /** Default palette color to apply to buttons. */\n color?: ThemePalette;\n\n /** Default appearance for plain buttons (not icon buttons or FABs). */\n defaultAppearance?: MatButtonAppearance;\n}\n\n/** Injection token that can be used to provide the default options the button component. */\nexport const MAT_BUTTON_CONFIG = new InjectionToken('MAT_BUTTON_CONFIG');\n\nfunction transformTabIndex(value: unknown): number | undefined {\n return value == null ? undefined : numberAttribute(value);\n}\n\n/** Base class for all buttons. */\n@Directive({\n host: {\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n 'class': 'mat-mdc-button-base',\n '[class]': 'color ? \"mat-\" + color : \"\"',\n '[class.mat-mdc-button-progress-indicator-shown]': 'showProgress()',\n '[attr.disabled]': '_getDisabledAttribute()',\n '[attr.aria-disabled]': '_getAriaDisabled()',\n '[attr.tabindex]': '_getTabIndex()',\n '[class.mat-mdc-button-disabled]': 'disabled',\n '[class.mat-mdc-button-disabled-interactive]': 'disabledInteractive',\n '[class.mat-unthemed]': '!color',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n },\n})\nexport class MatButtonBase implements AfterViewInit, OnDestroy {\n _elementRef = inject>(ElementRef);\n protected _ngZone = inject(NgZone);\n protected _animationsDisabled = _animationsDisabled();\n\n protected readonly _config = inject(MAT_BUTTON_CONFIG, {optional: true});\n private readonly _focusMonitor = inject(FocusMonitor);\n private _cleanupClick: (() => void) | undefined;\n private _renderer = inject(Renderer2);\n\n /**\n * Handles the lazy creation of the MatButton ripple.\n * Used to improve initial load time of large applications.\n */\n protected _rippleLoader: MatRippleLoader = inject(MatRippleLoader);\n\n /** Whether the button is set on an anchor node. */\n protected _isAnchor: boolean;\n\n /** Whether this button is a FAB. Used to apply the correct class on the ripple. */\n protected _isFab = false;\n\n /**\n * Theme color of the button. This API is supported in M2 themes only, it has\n * no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/button/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color?: string | null;\n\n /** Whether the ripple effect is disabled or not. */\n @Input({transform: booleanAttribute})\n get disableRipple(): boolean {\n return this._disableRipple;\n }\n set disableRipple(value: any) {\n this._disableRipple = value;\n this._updateRippleDisabled();\n }\n private _disableRipple: boolean = false;\n\n /** Whether the button is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = value;\n this._updateRippleDisabled();\n }\n private _disabled: boolean = false;\n\n /** `aria-disabled` value of the button. */\n @Input({transform: booleanAttribute, alias: 'aria-disabled'})\n ariaDisabled: boolean | undefined;\n\n /**\n * Natively disabled buttons prevent focus and any pointer events from reaching the button.\n * In some scenarios this might not be desirable, because it can prevent users from finding out\n * why the button is disabled (e.g. via tooltip). This is also useful for buttons that may\n * become disabled when activated, which would cause focus to be transferred to the document\n * body instead of remaining on the button.\n *\n * Enabling this input will change the button so that it is styled to be disabled and will be\n * marked as `aria-disabled`, but it will allow the button to receive events and focus.\n *\n * Note that by enabling this, you need to set the `tabindex` yourself if the button isn't\n * meant to be tabbable and you have to prevent the button action (e.g. form submissions).\n */\n @Input({transform: booleanAttribute})\n disabledInteractive: boolean;\n\n /** Tab index for the button. */\n @Input({transform: transformTabIndex})\n tabIndex!: number;\n\n /**\n * Backwards-compatibility input that handles pre-existing `[tabindex]` bindings.\n * @docs-private\n */\n @Input({alias: 'tabindex', transform: transformTabIndex})\n set _tabindex(value: number) {\n this.tabIndex = value;\n }\n\n /** Whether the button is showing a progress indicator. */\n readonly showProgress = input(false, {transform: booleanAttribute});\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const element = this._elementRef.nativeElement;\n\n this._isAnchor = element.tagName === 'A';\n this.disabledInteractive = this._config?.disabledInteractive ?? false;\n this.color = this._config?.color ?? null;\n this._rippleLoader?.configureRipple(element, {className: 'mat-mdc-button-ripple'});\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n\n // Some internal tests depend on the timing of this,\n // otherwise we could bind it in the constructor.\n if (this._isAnchor) {\n this._setupAsAnchor();\n }\n }\n\n ngOnDestroy() {\n this._cleanupClick?.();\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._rippleLoader?.destroyRipple(this._elementRef.nativeElement);\n }\n\n /** Focuses the button. */\n focus(origin: FocusOrigin = 'program', options?: FocusOptions): void {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef.nativeElement, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n\n protected _getAriaDisabled() {\n if (this.ariaDisabled != null) {\n return this.ariaDisabled;\n }\n\n if (this._isAnchor) {\n return this.disabled || null;\n }\n\n return this.disabled && this.disabledInteractive ? true : null;\n }\n\n protected _getDisabledAttribute() {\n return this.disabledInteractive || !this.disabled ? null : true;\n }\n\n private _updateRippleDisabled(): void {\n this._rippleLoader?.setDisabled(\n this._elementRef.nativeElement,\n this.disableRipple || this.disabled,\n );\n }\n\n protected _getTabIndex() {\n if (this._isAnchor) {\n return this.disabled && !this.disabledInteractive ? -1 : this.tabIndex;\n }\n return this.tabIndex;\n }\n\n private _setupAsAnchor() {\n this._cleanupClick = this._ngZone.runOutsideAngular(() =>\n this._renderer.listen(this._elementRef.nativeElement, 'click', (event: Event) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }),\n );\n }\n}\n\n// tslint:disable:variable-name\n/**\n * Anchor button base.\n */\nexport const MatAnchorBase = MatButtonBase;\nexport type MatAnchorBase = MatButtonBase;\n// tslint:enable:variable-name\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 {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\nimport {MatButtonBase} from './button-base';\n\n/**\n * Material Design icon button component. This type of button displays a single interactive icon for\n * users to perform an action.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\n@Component({\n selector: `button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]`,\n templateUrl: 'icon-button.html',\n styleUrls: ['icon-button.css', 'button-high-contrast.css'],\n host: {\n 'class': 'mdc-icon-button mat-mdc-icon-button',\n },\n exportAs: 'matButton, matAnchor',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatIconButton extends MatButtonBase {\n constructor() {\n super();\n this._rippleLoader.configureRipple(this._elementRef.nativeElement, {centered: true});\n }\n}\n\n// tslint:disable:variable-name\n/**\n * Material Design icon button component for anchor elements. This button displays a single\n * interaction icon that allows users to navigate across different routes or pages.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nexport const MatIconAnchor = MatIconButton;\nexport type MatIconAnchor = MatIconButton;\n// tslint:enable:variable-name\n","\n\n\n\n@if (showProgress()) {\n
\n \n
\n}\n\n\n\n\n\n"],"names":["MAT_BUTTON_CONFIG","InjectionToken","transformTabIndex","value","undefined","numberAttribute","MatButtonBase","_elementRef","inject","ElementRef","_ngZone","NgZone","_animationsDisabled","_config","optional","_focusMonitor","FocusMonitor","_cleanupClick","_renderer","Renderer2","_rippleLoader","MatRippleLoader","_isAnchor","_isFab","color","disableRipple","_disableRipple","_updateRippleDisabled","disabled","_disabled","ariaDisabled","disabledInteractive","tabIndex","_tabindex","showProgress","input","transform","booleanAttribute","constructor","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","element","nativeElement","tagName","configureRipple","className","ngAfterViewInit","monitor","_setupAsAnchor","ngOnDestroy","stopMonitoring","destroyRipple","focus","origin","options","focusVia","_getAriaDisabled","_getDisabledAttribute","setDisabled","_getTabIndex","runOutsideAngular","listen","event","preventDefault","stopImmediatePropagation","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","properties","classAttribute","ngImport","decorators","args","Input","alias","MatIconButton","centered","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","selector","exportAs","template","MatIconAnchor"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"_icon-button-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/button/button-base.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/button/icon-button.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/button/icon-button.html"],"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 {FocusMonitor, FocusOrigin} from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n InjectionToken,\n input,\n Input,\n NgZone,\n numberAttribute,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {_animationsDisabled, _StructuralStylesLoader, MatRippleLoader, ThemePalette} from '../core';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\n\n/**\n * Possible appearances for a `MatButton`.\n * See https://m3.material.io/components/buttons/overview\n */\nexport type MatButtonAppearance = 'text' | 'filled' | 'elevated' | 'outlined' | 'tonal';\n\n/** Object that can be used to configure the default options for the button component. */\nexport interface MatButtonConfig {\n /** Whether disabled buttons should be interactive. */\n disabledInteractive?: boolean;\n\n /** Default palette color to apply to buttons. */\n color?: ThemePalette;\n\n /** Default appearance for plain buttons (not icon buttons or FABs). */\n defaultAppearance?: MatButtonAppearance;\n}\n\n/** Injection token that can be used to provide the default options the button component. */\nexport const MAT_BUTTON_CONFIG = new InjectionToken('MAT_BUTTON_CONFIG');\n\nfunction transformTabIndex(value: unknown): number | undefined {\n return value == null ? undefined : numberAttribute(value);\n}\n\n/** Base class for all buttons. */\n@Directive({\n host: {\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n 'class': 'mat-mdc-button-base',\n '[class]': 'color ? \"mat-\" + color : \"\"',\n '[class.mat-mdc-button-progress-indicator-shown]': 'showProgress()',\n '[attr.disabled]': '_getDisabledAttribute()',\n '[attr.aria-disabled]': '_getAriaDisabled()',\n '[attr.tabindex]': '_getTabIndex()',\n '[class.mat-mdc-button-disabled]': 'disabled',\n '[class.mat-mdc-button-disabled-interactive]': 'disabledInteractive',\n '[class.mat-unthemed]': '!color',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n },\n})\nexport class MatButtonBase implements AfterViewInit, OnDestroy {\n _elementRef = inject>(ElementRef);\n protected _ngZone = inject(NgZone);\n protected _animationsDisabled = _animationsDisabled();\n\n protected readonly _config = inject(MAT_BUTTON_CONFIG, {optional: true});\n private readonly _focusMonitor = inject(FocusMonitor);\n private _cleanupClick: (() => void) | undefined;\n private _renderer = inject(Renderer2);\n\n /**\n * Handles the lazy creation of the MatButton ripple.\n * Used to improve initial load time of large applications.\n */\n protected _rippleLoader: MatRippleLoader = inject(MatRippleLoader);\n\n /** Whether the button is set on an anchor node. */\n protected _isAnchor: boolean;\n\n /** Whether this button is a FAB. Used to apply the correct class on the ripple. */\n protected _isFab = false;\n\n /**\n * Theme color of the button. This API is supported in M2 themes only, it has\n * no effect in M3 themes. For color customization in M3, see https://material.angular.dev/components/button/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.dev/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n @Input() color?: string | null;\n\n /** Whether the ripple effect is disabled or not. */\n @Input({transform: booleanAttribute})\n get disableRipple(): boolean {\n return this._disableRipple;\n }\n set disableRipple(value: any) {\n this._disableRipple = value;\n this._updateRippleDisabled();\n }\n private _disableRipple: boolean = false;\n\n /** Whether the button is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: any) {\n this._disabled = value;\n this._updateRippleDisabled();\n }\n private _disabled: boolean = false;\n\n /** `aria-disabled` value of the button. */\n @Input({transform: booleanAttribute, alias: 'aria-disabled'})\n ariaDisabled: boolean | undefined;\n\n /**\n * Natively disabled buttons prevent focus and any pointer events from reaching the button.\n * In some scenarios this might not be desirable, because it can prevent users from finding out\n * why the button is disabled (e.g. via tooltip). This is also useful for buttons that may\n * become disabled when activated, which would cause focus to be transferred to the document\n * body instead of remaining on the button.\n *\n * Enabling this input will change the button so that it is styled to be disabled and will be\n * marked as `aria-disabled`, but it will allow the button to receive events and focus.\n *\n * Note that by enabling this, you need to set the `tabindex` yourself if the button isn't\n * meant to be tabbable and you have to prevent the button action (e.g. form submissions).\n */\n @Input({transform: booleanAttribute})\n disabledInteractive: boolean;\n\n /** Tab index for the button. */\n @Input({transform: transformTabIndex})\n tabIndex!: number;\n\n /**\n * Backwards-compatibility input that handles pre-existing `[tabindex]` bindings.\n * @docs-private\n */\n @Input({alias: 'tabindex', transform: transformTabIndex})\n set _tabindex(value: number) {\n this.tabIndex = value;\n }\n\n /** Whether the button is showing a progress indicator. */\n readonly showProgress = input(false, {transform: booleanAttribute});\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_StructuralStylesLoader);\n const element = this._elementRef.nativeElement;\n\n this._isAnchor = element.tagName === 'A';\n this.disabledInteractive = this._config?.disabledInteractive ?? false;\n this.color = this._config?.color ?? null;\n this._rippleLoader?.configureRipple(element, {className: 'mat-mdc-button-ripple'});\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n\n // Some internal tests depend on the timing of this,\n // otherwise we could bind it in the constructor.\n if (this._isAnchor) {\n this._setupAsAnchor();\n }\n }\n\n ngOnDestroy() {\n this._cleanupClick?.();\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._rippleLoader?.destroyRipple(this._elementRef.nativeElement);\n }\n\n /** Focuses the button. */\n focus(origin: FocusOrigin = 'program', options?: FocusOptions): void {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef.nativeElement, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n\n protected _getAriaDisabled() {\n if (this.ariaDisabled != null) {\n return this.ariaDisabled;\n }\n\n if (this._isAnchor) {\n return this.disabled || null;\n }\n\n return this.disabled && this.disabledInteractive ? true : null;\n }\n\n protected _getDisabledAttribute() {\n return this.disabledInteractive || !this.disabled ? null : true;\n }\n\n private _updateRippleDisabled(): void {\n this._rippleLoader?.setDisabled(\n this._elementRef.nativeElement,\n this.disableRipple || this.disabled,\n );\n }\n\n protected _getTabIndex() {\n if (this._isAnchor) {\n return this.disabled && !this.disabledInteractive ? -1 : this.tabIndex;\n }\n return this.tabIndex;\n }\n\n private _setupAsAnchor() {\n this._cleanupClick = this._ngZone.runOutsideAngular(() =>\n this._renderer.listen(this._elementRef.nativeElement, 'click', (event: Event) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }),\n );\n }\n}\n\n// tslint:disable:variable-name\n/**\n * Anchor button base.\n */\nexport const MatAnchorBase = MatButtonBase;\nexport type MatAnchorBase = MatButtonBase;\n// tslint:enable:variable-name\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 {Component, ViewEncapsulation} from '@angular/core';\nimport {MatButtonBase} from './button-base';\n\n/**\n * Material Design icon button component. This type of button displays a single interactive icon for\n * users to perform an action.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\n@Component({\n selector: `button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]`,\n templateUrl: 'icon-button.html',\n styleUrls: ['icon-button.css', 'button-high-contrast.css'],\n host: {\n 'class': 'mdc-icon-button mat-mdc-icon-button',\n },\n exportAs: 'matButton, matAnchor',\n encapsulation: ViewEncapsulation.None,\n})\nexport class MatIconButton extends MatButtonBase {\n constructor() {\n super();\n this._rippleLoader.configureRipple(this._elementRef.nativeElement, {centered: true});\n }\n}\n\n// tslint:disable:variable-name\n/**\n * Material Design icon button component for anchor elements. This button displays a single\n * interaction icon that allows users to navigate across different routes or pages.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nexport const MatIconAnchor = MatIconButton;\nexport type MatIconAnchor = MatIconButton;\n// tslint:enable:variable-name\n","\n\n\n\n@if (showProgress()) {\n
\n \n
\n}\n\n\n\n\n\n"],"names":["MAT_BUTTON_CONFIG","InjectionToken","transformTabIndex","value","undefined","numberAttribute","MatButtonBase","_elementRef","inject","ElementRef","_ngZone","NgZone","_animationsDisabled","_config","optional","_focusMonitor","FocusMonitor","_cleanupClick","_renderer","Renderer2","_rippleLoader","MatRippleLoader","_isAnchor","_isFab","color","disableRipple","_disableRipple","_updateRippleDisabled","disabled","_disabled","ariaDisabled","disabledInteractive","tabIndex","_tabindex","showProgress","input","transform","booleanAttribute","constructor","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","element","nativeElement","tagName","configureRipple","className","ngAfterViewInit","monitor","_setupAsAnchor","ngOnDestroy","stopMonitoring","destroyRipple","focus","origin","options","focusVia","_getAriaDisabled","_getDisabledAttribute","setDisabled","_getTabIndex","runOutsideAngular","listen","event","preventDefault","stopImmediatePropagation","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","host","properties","classAttribute","ngImport","decorators","args","Input","alias","MatIconButton","centered","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","styles","encapsulation","ViewEncapsulation","None","selector","exportAs","template","MatIconAnchor"],"mappings":"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"} \ No newline at end of file diff --git a/fesm2022/_icon-registry-chunk.mjs b/fesm2022/_icon-registry-chunk.mjs index f3c0bd59ca..f54de7c997 100755 --- a/fesm2022/_icon-registry-chunk.mjs +++ b/fesm2022/_icon-registry-chunk.mjs @@ -300,7 +300,7 @@ class MatIconRegistry { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatIconRegistry, deps: [{ @@ -318,7 +318,7 @@ class MatIconRegistry { }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatIconRegistry, providedIn: 'root' @@ -326,7 +326,7 @@ class MatIconRegistry { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatIconRegistry, decorators: [{ diff --git a/fesm2022/_icon-registry-chunk.mjs.map b/fesm2022/_icon-registry-chunk.mjs.map index 0ecd4ddff4..a57d5c1d1e 100755 --- a/fesm2022/_icon-registry-chunk.mjs.map +++ b/fesm2022/_icon-registry-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_icon-registry-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/icon/icon-registry.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 {TrustedHTML, trustedHTMLFromString} from '@angular/cdk/private';\nimport {HttpClient, HttpErrorResponse} from '@angular/common/http';\nimport {\n ErrorHandler,\n Inject,\n Injectable,\n OnDestroy,\n Optional,\n SecurityContext,\n DOCUMENT,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml, SafeResourceUrl} from '@angular/platform-browser';\nimport {forkJoin, Observable, of as observableOf, throwError as observableThrow} from 'rxjs';\nimport {catchError, finalize, map, share, tap} from 'rxjs/operators';\n\n/**\n * Returns an exception to be thrown in the case when attempting to\n * load an icon with a name that cannot be found.\n * @docs-private\n */\nexport function getMatIconNameNotFoundError(iconName: string): Error {\n return Error(`Unable to find icon with the name \"${iconName}\"`);\n}\n\n/**\n * Returns an exception to be thrown when the consumer attempts to use\n * `` without including @angular/common/http.\n * @docs-private\n */\nexport function getMatIconNoHttpProviderError(): Error {\n return Error(\n 'Could not find HttpClient for use with Angular Material icons. ' +\n 'Please add provideHttpClient() to your providers.',\n );\n}\n\n/**\n * Returns an exception to be thrown when a URL couldn't be sanitized.\n * @param url URL that was attempted to be sanitized.\n * @docs-private\n */\nexport function getMatIconFailedToSanitizeUrlError(url: SafeResourceUrl): Error {\n return Error(\n `The URL provided to MatIconRegistry was not trusted as a resource URL ` +\n `via Angular's DomSanitizer. Attempted URL was \"${url}\".`,\n );\n}\n\n/**\n * Returns an exception to be thrown when a HTML string couldn't be sanitized.\n * @param literal HTML that was attempted to be sanitized.\n * @docs-private\n */\nexport function getMatIconFailedToSanitizeLiteralError(literal: SafeHtml): Error {\n return Error(\n `The literal provided to MatIconRegistry was not trusted as safe HTML by ` +\n `Angular's DomSanitizer. Attempted literal was \"${literal}\".`,\n );\n}\n\n/** Options that can be used to configure how an icon or the icons in an icon set are presented. */\nexport interface IconOptions {\n /** View box to set on the icon. */\n viewBox?: string;\n\n /** Whether or not to fetch the icon or icon set using HTTP credentials. */\n withCredentials?: boolean;\n}\n\n/**\n * Function that will be invoked by the icon registry when trying to resolve the\n * URL from which to fetch an icon. The returned URL will be used to make a request for the icon.\n */\nexport type IconResolver = (\n name: string,\n namespace: string,\n) => SafeResourceUrl | SafeResourceUrlWithIconOptions | null;\n\n/** Object that specifies a URL from which to fetch an icon and the options to use for it. */\nexport interface SafeResourceUrlWithIconOptions {\n url: SafeResourceUrl;\n options: IconOptions;\n}\n\n/**\n * Configuration for an icon, including the URL and possibly the cached SVG element.\n * @docs-private\n */\nclass SvgIconConfig {\n svgElement: SVGElement | null = null;\n\n constructor(\n public url: SafeResourceUrl,\n public svgText: TrustedHTML | null,\n public options?: IconOptions,\n ) {}\n}\n\n/** Icon configuration whose content has already been loaded. */\ntype LoadedSvgIconConfig = SvgIconConfig & {svgText: TrustedHTML};\n\n/**\n * Service to register and display icons used by the `` component.\n * - Registers icon URLs by namespace and name.\n * - Registers icon set URLs by namespace.\n * - Registers aliases for CSS classes, for use with icon fonts.\n * - Loads icons from URLs and extracts individual icons from icon sets.\n */\n@Injectable({providedIn: 'root'})\nexport class MatIconRegistry implements OnDestroy {\n private _document: Document;\n\n /**\n * URLs and cached SVG elements for individual icons. Keys are of the format \"[namespace]:[icon]\".\n */\n private _svgIconConfigs = new Map();\n\n /**\n * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.\n * Multiple icon sets can be registered under the same namespace.\n */\n private _iconSetConfigs = new Map();\n\n /** Cache for icons loaded by direct URLs. */\n private _cachedIconsByUrl = new Map();\n\n /** In-progress icon fetches. Used to coalesce multiple requests to the same URL. */\n private _inProgressUrlFetches = new Map>();\n\n /** Map from font identifiers to their CSS class names. Used for icon fonts. */\n private _fontCssClassesByAlias = new Map();\n\n /** Registered icon resolver functions. */\n private _resolvers: IconResolver[] = [];\n\n /**\n * The CSS classes to apply when an `` component has no icon name, url, or font\n * specified. The default 'material-icons' value assumes that the material icon font has been\n * loaded as described at https://google.github.io/material-design-icons/#icon-font-for-the-web\n */\n private _defaultFontSetClass = ['material-icons', 'mat-ligature-font'];\n\n constructor(\n @Optional() private _httpClient: HttpClient,\n private _sanitizer: DomSanitizer,\n @Optional() @Inject(DOCUMENT) document: any,\n private readonly _errorHandler: ErrorHandler,\n ) {\n this._document = document;\n }\n\n /**\n * Registers an icon by URL in the default namespace.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n addSvgIcon(iconName: string, url: SafeResourceUrl, options?: IconOptions): this {\n return this.addSvgIconInNamespace('', iconName, url, options);\n }\n\n /**\n * Registers an icon using an HTML string in the default namespace.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n addSvgIconLiteral(iconName: string, literal: SafeHtml, options?: IconOptions): this {\n return this.addSvgIconLiteralInNamespace('', iconName, literal, options);\n }\n\n /**\n * Registers an icon by URL in the specified namespace.\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n addSvgIconInNamespace(\n namespace: string,\n iconName: string,\n url: SafeResourceUrl,\n options?: IconOptions,\n ): this {\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, null, options));\n }\n\n /**\n * Registers an icon resolver function with the registry. The function will be invoked with the\n * name and namespace of an icon when the registry tries to resolve the URL from which to fetch\n * the icon. The resolver is expected to return a `SafeResourceUrl` that points to the icon,\n * an object with the icon URL and icon options, or `null` if the icon is not supported. Resolvers\n * will be invoked in the order in which they have been registered.\n * @param resolver Resolver function to be registered.\n */\n addSvgIconResolver(resolver: IconResolver): this {\n this._resolvers.push(resolver);\n return this;\n }\n\n /**\n * Registers an icon using an HTML string in the specified namespace.\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n addSvgIconLiteralInNamespace(\n namespace: string,\n iconName: string,\n literal: SafeHtml,\n options?: IconOptions,\n ): this {\n const cleanLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);\n\n // TODO: add an ngDevMode check\n if (!cleanLiteral) {\n throw getMatIconFailedToSanitizeLiteralError(literal);\n }\n\n // Security: The literal is passed in as SafeHtml, and is thus trusted.\n const trustedLiteral = trustedHTMLFromString(cleanLiteral);\n return this._addSvgIconConfig(\n namespace,\n iconName,\n new SvgIconConfig('', trustedLiteral, options),\n );\n }\n\n /**\n * Registers an icon set by URL in the default namespace.\n * @param url\n */\n addSvgIconSet(url: SafeResourceUrl, options?: IconOptions): this {\n return this.addSvgIconSetInNamespace('', url, options);\n }\n\n /**\n * Registers an icon set using an HTML string in the default namespace.\n * @param literal SVG source of the icon set.\n */\n addSvgIconSetLiteral(literal: SafeHtml, options?: IconOptions): this {\n return this.addSvgIconSetLiteralInNamespace('', literal, options);\n }\n\n /**\n * Registers an icon set by URL in the specified namespace.\n * @param namespace Namespace in which to register the icon set.\n * @param url\n */\n addSvgIconSetInNamespace(namespace: string, url: SafeResourceUrl, options?: IconOptions): this {\n return this._addSvgIconSetConfig(namespace, new SvgIconConfig(url, null, options));\n }\n\n /**\n * Registers an icon set using an HTML string in the specified namespace.\n * @param namespace Namespace in which to register the icon set.\n * @param literal SVG source of the icon set.\n */\n addSvgIconSetLiteralInNamespace(\n namespace: string,\n literal: SafeHtml,\n options?: IconOptions,\n ): this {\n const cleanLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);\n\n if (!cleanLiteral) {\n throw getMatIconFailedToSanitizeLiteralError(literal);\n }\n\n // Security: The literal is passed in as SafeHtml, and is thus trusted.\n const trustedLiteral = trustedHTMLFromString(cleanLiteral);\n return this._addSvgIconSetConfig(namespace, new SvgIconConfig('', trustedLiteral, options));\n }\n\n /**\n * Defines an alias for CSS class names to be used for icon fonts. Creating an matIcon\n * component with the alias as the fontSet input will cause the class name to be applied\n * to the `` element.\n *\n * If the registered font is a ligature font, then don't forget to also include the special\n * class `mat-ligature-font` to allow the usage via attribute. So register like this:\n *\n * ```ts\n * iconRegistry.registerFontClassAlias('f1', 'font1 mat-ligature-font');\n * ```\n *\n * And use like this:\n *\n * ```html\n * \n * ```\n *\n * @param alias Alias for the font.\n * @param classNames Class names override to be used instead of the alias.\n */\n registerFontClassAlias(alias: string, classNames: string = alias): this {\n this._fontCssClassesByAlias.set(alias, classNames);\n return this;\n }\n\n /**\n * Returns the CSS class name associated with the alias by a previous call to\n * registerFontClassAlias. If no CSS class has been associated, returns the alias unmodified.\n */\n classNameForFontAlias(alias: string): string {\n return this._fontCssClassesByAlias.get(alias) || alias;\n }\n\n /**\n * Sets the CSS classes to be used for icon fonts when an `` component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n setDefaultFontSetClass(...classNames: string[]): this {\n this._defaultFontSetClass = classNames;\n return this;\n }\n\n /**\n * Returns the CSS classes to be used for icon fonts when an `` component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n getDefaultFontSetClass(): string[] {\n return this._defaultFontSetClass;\n }\n\n /**\n * Returns an Observable that produces the icon (as an `` DOM element) from the given URL.\n * The response from the URL may be cached so this will not always cause an HTTP request, but\n * the produced element will always be a new copy of the originally fetched icon. (That is,\n * it will not contain any modifications made to elements previously returned).\n *\n * @param safeUrl URL from which to fetch the SVG icon.\n */\n getSvgIconFromUrl(safeUrl: SafeResourceUrl): Observable {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw getMatIconFailedToSanitizeUrlError(safeUrl);\n }\n\n const cachedIcon = this._cachedIconsByUrl.get(url);\n\n if (cachedIcon) {\n return observableOf(cloneSvg(cachedIcon));\n }\n\n return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, null)).pipe(\n tap(svg => this._cachedIconsByUrl.set(url!, svg)),\n map(svg => cloneSvg(svg)),\n );\n }\n\n /**\n * Returns an Observable that produces the icon (as an `` DOM element) with the given name\n * and namespace. The icon must have been previously registered with addIcon or addIconSet;\n * if not, the Observable will throw an error.\n *\n * @param name Name of the icon to be retrieved.\n * @param namespace Namespace in which to look for the icon.\n */\n getNamedSvgIcon(name: string, namespace: string = ''): Observable {\n const key = iconKey(namespace, name);\n let config = this._svgIconConfigs.get(key);\n\n // Return (copy of) cached icon if possible.\n if (config) {\n return this._getSvgFromConfig(config);\n }\n\n // Otherwise try to resolve the config from one of the resolver functions.\n config = this._getIconConfigFromResolvers(namespace, name);\n\n if (config) {\n this._svgIconConfigs.set(key, config);\n return this._getSvgFromConfig(config);\n }\n\n // See if we have any icon sets registered for the namespace.\n const iconSetConfigs = this._iconSetConfigs.get(namespace);\n\n if (iconSetConfigs) {\n return this._getSvgFromIconSetConfigs(name, iconSetConfigs);\n }\n\n return observableThrow(getMatIconNameNotFoundError(key));\n }\n\n ngOnDestroy() {\n this._resolvers = [];\n this._svgIconConfigs.clear();\n this._iconSetConfigs.clear();\n this._cachedIconsByUrl.clear();\n }\n\n /**\n * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.\n */\n private _getSvgFromConfig(config: SvgIconConfig): Observable {\n if (config.svgText) {\n // We already have the SVG element for this icon, return a copy.\n return observableOf(cloneSvg(this._svgElementFromConfig(config as LoadedSvgIconConfig)));\n } else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return this._loadSvgIconFromConfig(config).pipe(map(svg => cloneSvg(svg)));\n }\n }\n\n /**\n * Attempts to find an icon with the specified name in any of the SVG icon sets.\n * First searches the available cached icons for a nested element with a matching name, and\n * if found copies the element to a new `` element. If not found, fetches all icon sets\n * that have not been cached, and searches again after all fetches are completed.\n * The returned Observable produces the SVG element if possible, and throws\n * an error if no icon with the specified name can be found.\n */\n private _getSvgFromIconSetConfigs(\n name: string,\n iconSetConfigs: SvgIconConfig[],\n ): Observable {\n // For all the icon set SVG elements we've fetched, see if any contain an icon with the\n // requested name.\n const namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n\n if (namedIcon) {\n // We could cache namedIcon in _svgIconConfigs, but since we have to make a copy every\n // time anyway, there's probably not much advantage compared to just always extracting\n // it from the icon set.\n return observableOf(namedIcon);\n }\n\n // Not found in any cached icon sets. If there are icon sets with URLs that we haven't\n // fetched, fetch them now and look for iconName in the results.\n const iconSetFetchRequests: Observable[] = iconSetConfigs\n .filter(iconSetConfig => !iconSetConfig.svgText)\n .map(iconSetConfig => {\n return this._loadSvgIconSetFromConfig(iconSetConfig).pipe(\n catchError((err: HttpErrorResponse) => {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconSetConfig.url);\n\n // Swallow errors fetching individual URLs so the\n // combined Observable won't necessarily fail.\n const errorMessage = `Loading icon set URL: ${url} failed: ${err.message}`;\n this._errorHandler.handleError(new Error(errorMessage));\n return observableOf(null);\n }),\n );\n });\n\n // Fetch all the icon set URLs. When the requests complete, every IconSet should have a\n // cached SVG element (unless the request failed), and we can check again for the icon.\n return forkJoin(iconSetFetchRequests).pipe(\n map(() => {\n const foundIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n\n // TODO: add an ngDevMode check\n if (!foundIcon) {\n throw getMatIconNameNotFoundError(name);\n }\n\n return foundIcon;\n }),\n );\n }\n\n /**\n * Searches the cached SVG elements for the given icon sets for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n private _extractIconWithNameFromAnySet(\n iconName: string,\n iconSetConfigs: SvgIconConfig[],\n ): SVGElement | null {\n // Iterate backwards, so icon sets added later have precedence.\n for (let i = iconSetConfigs.length - 1; i >= 0; i--) {\n const config = iconSetConfigs[i];\n\n // Parsing the icon set's text into an SVG element can be expensive. We can avoid some of\n // the parsing by doing a quick check using `indexOf` to see if there's any chance for the\n // icon to be in the set. This won't be 100% accurate, but it should help us avoid at least\n // some of the parsing.\n if (config.svgText && config.svgText.toString().indexOf(iconName) > -1) {\n const svg = this._svgElementFromConfig(config as LoadedSvgIconConfig);\n const foundIcon = this._extractSvgIconFromSet(svg, iconName, config.options);\n if (foundIcon) {\n return foundIcon;\n }\n }\n }\n return null;\n }\n\n /**\n * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element\n * from it.\n */\n private _loadSvgIconFromConfig(config: SvgIconConfig): Observable {\n return this._fetchIcon(config).pipe(\n tap(svgText => (config.svgText = svgText)),\n map(() => this._svgElementFromConfig(config as LoadedSvgIconConfig)),\n );\n }\n\n /**\n * Loads the content of the icon set URL specified in the\n * SvgIconConfig and attaches it to the config.\n */\n private _loadSvgIconSetFromConfig(config: SvgIconConfig): Observable {\n if (config.svgText) {\n return observableOf(null);\n }\n\n return this._fetchIcon(config).pipe(tap(svgText => (config.svgText = svgText)));\n }\n\n /**\n * Searches the cached element of the given SvgIconConfig for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n private _extractSvgIconFromSet(\n iconSet: SVGElement,\n iconName: string,\n options?: IconOptions,\n ): SVGElement | null {\n // Use the `id=\"iconName\"` syntax in order to escape special\n // characters in the ID (versus using the #iconName syntax).\n const iconSource = iconSet.querySelector(`[id=\"${iconName}\"]`);\n\n if (!iconSource) {\n return null;\n }\n\n // Clone the element and remove the ID to prevent multiple elements from being added\n // to the page with the same ID.\n const iconElement = iconSource.cloneNode(true) as Element;\n iconElement.removeAttribute('id');\n\n // If the icon node is itself an node, clone and return it directly. If not, set it as\n // the content of a new node.\n if (iconElement.nodeName.toLowerCase() === 'svg') {\n return this._setSvgAttributes(iconElement as SVGElement, options);\n }\n\n // If the node is a , it won't be rendered so we have to convert it into . Note\n // that the same could be achieved by referring to it via , however the \n // tag is problematic on Firefox, because it needs to include the current page path.\n if (iconElement.nodeName.toLowerCase() === 'symbol') {\n return this._setSvgAttributes(this._toSvgElement(iconElement), options);\n }\n\n // createElement('SVG') doesn't work as expected; the DOM ends up with\n // the correct nodes, but the SVG content doesn't render. Instead we\n // have to create an empty SVG node using innerHTML and append its content.\n // Elements created using DOMParser.parseFromString have the same problem.\n // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display\n const svg = this._svgElementFromString(trustedHTMLFromString(''));\n // Clone the node so we don't remove it from the parent icon set element.\n svg.appendChild(iconElement);\n\n return this._setSvgAttributes(svg, options);\n }\n\n /**\n * Creates a DOM element from the given SVG string.\n */\n private _svgElementFromString(str: TrustedHTML): SVGElement {\n const div = this._document.createElement('DIV');\n div.innerHTML = str as unknown as string;\n const svg = div.querySelector('svg') as SVGElement;\n\n // TODO: add an ngDevMode check\n if (!svg) {\n throw Error(' tag not found');\n }\n\n return svg;\n }\n\n /**\n * Converts an element into an SVG node by cloning all of its children.\n */\n private _toSvgElement(element: Element): SVGElement {\n const svg = this._svgElementFromString(trustedHTMLFromString(''));\n const attributes = element.attributes;\n\n // Copy over all the attributes from the `symbol` to the new SVG, except the id.\n for (let i = 0; i < attributes.length; i++) {\n const {name, value} = attributes[i];\n\n if (name !== 'id') {\n svg.setAttribute(name, value);\n }\n }\n\n for (let i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].nodeType === this._document.ELEMENT_NODE) {\n svg.appendChild(element.childNodes[i].cloneNode(true));\n }\n }\n\n return svg;\n }\n\n /**\n * Sets the default attributes for an SVG element to be used as an icon.\n */\n private _setSvgAttributes(svg: SVGElement, options?: IconOptions): SVGElement {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n\n if (options && options.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n\n return svg;\n }\n\n /**\n * Returns an Observable which produces the string contents of the given icon. Results may be\n * cached, so future calls with the same URL may not cause another HTTP request.\n */\n private _fetchIcon(iconConfig: SvgIconConfig): Observable {\n const {url: safeUrl, options} = iconConfig;\n const withCredentials = options?.withCredentials ?? false;\n\n if (!this._httpClient) {\n throw getMatIconNoHttpProviderError();\n }\n\n // TODO: add an ngDevMode check\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n // TODO: add an ngDevMode check\n if (!url) {\n throw getMatIconFailedToSanitizeUrlError(safeUrl);\n }\n\n // Store in-progress fetches to avoid sending a duplicate request for a URL when there is\n // already a request in progress for that URL. It's necessary to call share() on the\n // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.\n const inProgressFetch = this._inProgressUrlFetches.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n const req = this._httpClient.get(url, {responseType: 'text', withCredentials}).pipe(\n map(svg => {\n // Security: This SVG is fetched from a SafeResourceUrl, and is thus\n // trusted HTML.\n return trustedHTMLFromString(svg);\n }),\n finalize(() => this._inProgressUrlFetches.delete(url)),\n share(),\n );\n\n this._inProgressUrlFetches.set(url, req);\n return req;\n }\n\n /**\n * Registers an icon config by name in the specified namespace.\n * @param namespace Namespace in which to register the icon config.\n * @param iconName Name under which to register the config.\n * @param config Config to be registered.\n */\n private _addSvgIconConfig(namespace: string, iconName: string, config: SvgIconConfig): this {\n this._svgIconConfigs.set(iconKey(namespace, iconName), config);\n return this;\n }\n\n /**\n * Registers an icon set config in the specified namespace.\n * @param namespace Namespace in which to register the icon config.\n * @param config Config to be registered.\n */\n private _addSvgIconSetConfig(namespace: string, config: SvgIconConfig): this {\n const configNamespace = this._iconSetConfigs.get(namespace);\n\n if (configNamespace) {\n configNamespace.push(config);\n } else {\n this._iconSetConfigs.set(namespace, [config]);\n }\n\n return this;\n }\n\n /** Parses a config's text into an SVG element. */\n private _svgElementFromConfig(config: LoadedSvgIconConfig): SVGElement {\n if (!config.svgElement) {\n const svg = this._svgElementFromString(config.svgText);\n this._setSvgAttributes(svg, config.options);\n config.svgElement = svg;\n }\n\n return config.svgElement;\n }\n\n /** Tries to create an icon config through the registered resolver functions. */\n private _getIconConfigFromResolvers(namespace: string, name: string): SvgIconConfig | undefined {\n for (let i = 0; i < this._resolvers.length; i++) {\n const result = this._resolvers[i](name, namespace);\n\n if (result) {\n return isSafeUrlWithOptions(result)\n ? new SvgIconConfig(result.url, null, result.options)\n : new SvgIconConfig(result, null);\n }\n }\n\n return undefined;\n }\n}\n\n/** Clones an SVGElement while preserving type information. */\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n}\n\n/** Returns the cache key to use for an icon namespace and name. */\nfunction iconKey(namespace: string, name: string) {\n return namespace + ':' + name;\n}\n\nfunction isSafeUrlWithOptions(value: any): value is SafeResourceUrlWithIconOptions {\n return !!(value.url && value.options);\n}\n"],"names":["getMatIconNameNotFoundError","iconName","Error","getMatIconNoHttpProviderError","getMatIconFailedToSanitizeUrlError","url","getMatIconFailedToSanitizeLiteralError","literal","SvgIconConfig","svgText","options","svgElement","constructor","MatIconRegistry","_httpClient","_sanitizer","_errorHandler","_document","_svgIconConfigs","Map","_iconSetConfigs","_cachedIconsByUrl","_inProgressUrlFetches","_fontCssClassesByAlias","_resolvers","_defaultFontSetClass","document","addSvgIcon","addSvgIconInNamespace","addSvgIconLiteral","addSvgIconLiteralInNamespace","namespace","_addSvgIconConfig","addSvgIconResolver","resolver","push","cleanLiteral","sanitize","SecurityContext","HTML","trustedLiteral","trustedHTMLFromString","addSvgIconSet","addSvgIconSetInNamespace","addSvgIconSetLiteral","addSvgIconSetLiteralInNamespace","_addSvgIconSetConfig","registerFontClassAlias","alias","classNames","set","classNameForFontAlias","get","setDefaultFontSetClass","getDefaultFontSetClass","getSvgIconFromUrl","safeUrl","RESOURCE_URL","cachedIcon","observableOf","cloneSvg","_loadSvgIconFromConfig","pipe","tap","svg","map","getNamedSvgIcon","name","key","iconKey","config","_getSvgFromConfig","_getIconConfigFromResolvers","iconSetConfigs","_getSvgFromIconSetConfigs","observableThrow","ngOnDestroy","clear","_svgElementFromConfig","namedIcon","_extractIconWithNameFromAnySet","iconSetFetchRequests","filter","iconSetConfig","_loadSvgIconSetFromConfig","catchError","err","errorMessage","message","handleError","forkJoin","foundIcon","i","length","toString","indexOf","_extractSvgIconFromSet","_fetchIcon","iconSet","iconSource","querySelector","iconElement","cloneNode","removeAttribute","nodeName","toLowerCase","_setSvgAttributes","_toSvgElement","_svgElementFromString","appendChild","str","div","createElement","innerHTML","element","attributes","value","setAttribute","childNodes","nodeType","ELEMENT_NODE","viewBox","iconConfig","withCredentials","inProgressFetch","req","responseType","finalize","delete","share","configNamespace","result","isSafeUrlWithOptions","undefined","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","DOCUMENT","optional","token","ErrorHandler","target","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","decorators","providedIn","Optional","Inject"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"_icon-registry-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/icon/icon-registry.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 {TrustedHTML, trustedHTMLFromString} from '@angular/cdk/private';\nimport {HttpClient, HttpErrorResponse} from '@angular/common/http';\nimport {\n ErrorHandler,\n Inject,\n Injectable,\n OnDestroy,\n Optional,\n SecurityContext,\n DOCUMENT,\n} from '@angular/core';\nimport {DomSanitizer, SafeHtml, SafeResourceUrl} from '@angular/platform-browser';\nimport {forkJoin, Observable, of as observableOf, throwError as observableThrow} from 'rxjs';\nimport {catchError, finalize, map, share, tap} from 'rxjs/operators';\n\n/**\n * Returns an exception to be thrown in the case when attempting to\n * load an icon with a name that cannot be found.\n * @docs-private\n */\nexport function getMatIconNameNotFoundError(iconName: string): Error {\n return Error(`Unable to find icon with the name \"${iconName}\"`);\n}\n\n/**\n * Returns an exception to be thrown when the consumer attempts to use\n * `` without including @angular/common/http.\n * @docs-private\n */\nexport function getMatIconNoHttpProviderError(): Error {\n return Error(\n 'Could not find HttpClient for use with Angular Material icons. ' +\n 'Please add provideHttpClient() to your providers.',\n );\n}\n\n/**\n * Returns an exception to be thrown when a URL couldn't be sanitized.\n * @param url URL that was attempted to be sanitized.\n * @docs-private\n */\nexport function getMatIconFailedToSanitizeUrlError(url: SafeResourceUrl): Error {\n return Error(\n `The URL provided to MatIconRegistry was not trusted as a resource URL ` +\n `via Angular's DomSanitizer. Attempted URL was \"${url}\".`,\n );\n}\n\n/**\n * Returns an exception to be thrown when a HTML string couldn't be sanitized.\n * @param literal HTML that was attempted to be sanitized.\n * @docs-private\n */\nexport function getMatIconFailedToSanitizeLiteralError(literal: SafeHtml): Error {\n return Error(\n `The literal provided to MatIconRegistry was not trusted as safe HTML by ` +\n `Angular's DomSanitizer. Attempted literal was \"${literal}\".`,\n );\n}\n\n/** Options that can be used to configure how an icon or the icons in an icon set are presented. */\nexport interface IconOptions {\n /** View box to set on the icon. */\n viewBox?: string;\n\n /** Whether or not to fetch the icon or icon set using HTTP credentials. */\n withCredentials?: boolean;\n}\n\n/**\n * Function that will be invoked by the icon registry when trying to resolve the\n * URL from which to fetch an icon. The returned URL will be used to make a request for the icon.\n */\nexport type IconResolver = (\n name: string,\n namespace: string,\n) => SafeResourceUrl | SafeResourceUrlWithIconOptions | null;\n\n/** Object that specifies a URL from which to fetch an icon and the options to use for it. */\nexport interface SafeResourceUrlWithIconOptions {\n url: SafeResourceUrl;\n options: IconOptions;\n}\n\n/**\n * Configuration for an icon, including the URL and possibly the cached SVG element.\n * @docs-private\n */\nclass SvgIconConfig {\n svgElement: SVGElement | null = null;\n\n constructor(\n public url: SafeResourceUrl,\n public svgText: TrustedHTML | null,\n public options?: IconOptions,\n ) {}\n}\n\n/** Icon configuration whose content has already been loaded. */\ntype LoadedSvgIconConfig = SvgIconConfig & {svgText: TrustedHTML};\n\n/**\n * Service to register and display icons used by the `` component.\n * - Registers icon URLs by namespace and name.\n * - Registers icon set URLs by namespace.\n * - Registers aliases for CSS classes, for use with icon fonts.\n * - Loads icons from URLs and extracts individual icons from icon sets.\n */\n@Injectable({providedIn: 'root'})\nexport class MatIconRegistry implements OnDestroy {\n private _document: Document;\n\n /**\n * URLs and cached SVG elements for individual icons. Keys are of the format \"[namespace]:[icon]\".\n */\n private _svgIconConfigs = new Map();\n\n /**\n * SvgIconConfig objects and cached SVG elements for icon sets, keyed by namespace.\n * Multiple icon sets can be registered under the same namespace.\n */\n private _iconSetConfigs = new Map();\n\n /** Cache for icons loaded by direct URLs. */\n private _cachedIconsByUrl = new Map();\n\n /** In-progress icon fetches. Used to coalesce multiple requests to the same URL. */\n private _inProgressUrlFetches = new Map>();\n\n /** Map from font identifiers to their CSS class names. Used for icon fonts. */\n private _fontCssClassesByAlias = new Map();\n\n /** Registered icon resolver functions. */\n private _resolvers: IconResolver[] = [];\n\n /**\n * The CSS classes to apply when an `` component has no icon name, url, or font\n * specified. The default 'material-icons' value assumes that the material icon font has been\n * loaded as described at https://google.github.io/material-design-icons/#icon-font-for-the-web\n */\n private _defaultFontSetClass = ['material-icons', 'mat-ligature-font'];\n\n constructor(\n @Optional() private _httpClient: HttpClient,\n private _sanitizer: DomSanitizer,\n @Optional() @Inject(DOCUMENT) document: any,\n private readonly _errorHandler: ErrorHandler,\n ) {\n this._document = document;\n }\n\n /**\n * Registers an icon by URL in the default namespace.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n addSvgIcon(iconName: string, url: SafeResourceUrl, options?: IconOptions): this {\n return this.addSvgIconInNamespace('', iconName, url, options);\n }\n\n /**\n * Registers an icon using an HTML string in the default namespace.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n addSvgIconLiteral(iconName: string, literal: SafeHtml, options?: IconOptions): this {\n return this.addSvgIconLiteralInNamespace('', iconName, literal, options);\n }\n\n /**\n * Registers an icon by URL in the specified namespace.\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param url\n */\n addSvgIconInNamespace(\n namespace: string,\n iconName: string,\n url: SafeResourceUrl,\n options?: IconOptions,\n ): this {\n return this._addSvgIconConfig(namespace, iconName, new SvgIconConfig(url, null, options));\n }\n\n /**\n * Registers an icon resolver function with the registry. The function will be invoked with the\n * name and namespace of an icon when the registry tries to resolve the URL from which to fetch\n * the icon. The resolver is expected to return a `SafeResourceUrl` that points to the icon,\n * an object with the icon URL and icon options, or `null` if the icon is not supported. Resolvers\n * will be invoked in the order in which they have been registered.\n * @param resolver Resolver function to be registered.\n */\n addSvgIconResolver(resolver: IconResolver): this {\n this._resolvers.push(resolver);\n return this;\n }\n\n /**\n * Registers an icon using an HTML string in the specified namespace.\n * @param namespace Namespace in which the icon should be registered.\n * @param iconName Name under which the icon should be registered.\n * @param literal SVG source of the icon.\n */\n addSvgIconLiteralInNamespace(\n namespace: string,\n iconName: string,\n literal: SafeHtml,\n options?: IconOptions,\n ): this {\n const cleanLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);\n\n // TODO: add an ngDevMode check\n if (!cleanLiteral) {\n throw getMatIconFailedToSanitizeLiteralError(literal);\n }\n\n // Security: The literal is passed in as SafeHtml, and is thus trusted.\n const trustedLiteral = trustedHTMLFromString(cleanLiteral);\n return this._addSvgIconConfig(\n namespace,\n iconName,\n new SvgIconConfig('', trustedLiteral, options),\n );\n }\n\n /**\n * Registers an icon set by URL in the default namespace.\n * @param url\n */\n addSvgIconSet(url: SafeResourceUrl, options?: IconOptions): this {\n return this.addSvgIconSetInNamespace('', url, options);\n }\n\n /**\n * Registers an icon set using an HTML string in the default namespace.\n * @param literal SVG source of the icon set.\n */\n addSvgIconSetLiteral(literal: SafeHtml, options?: IconOptions): this {\n return this.addSvgIconSetLiteralInNamespace('', literal, options);\n }\n\n /**\n * Registers an icon set by URL in the specified namespace.\n * @param namespace Namespace in which to register the icon set.\n * @param url\n */\n addSvgIconSetInNamespace(namespace: string, url: SafeResourceUrl, options?: IconOptions): this {\n return this._addSvgIconSetConfig(namespace, new SvgIconConfig(url, null, options));\n }\n\n /**\n * Registers an icon set using an HTML string in the specified namespace.\n * @param namespace Namespace in which to register the icon set.\n * @param literal SVG source of the icon set.\n */\n addSvgIconSetLiteralInNamespace(\n namespace: string,\n literal: SafeHtml,\n options?: IconOptions,\n ): this {\n const cleanLiteral = this._sanitizer.sanitize(SecurityContext.HTML, literal);\n\n if (!cleanLiteral) {\n throw getMatIconFailedToSanitizeLiteralError(literal);\n }\n\n // Security: The literal is passed in as SafeHtml, and is thus trusted.\n const trustedLiteral = trustedHTMLFromString(cleanLiteral);\n return this._addSvgIconSetConfig(namespace, new SvgIconConfig('', trustedLiteral, options));\n }\n\n /**\n * Defines an alias for CSS class names to be used for icon fonts. Creating an matIcon\n * component with the alias as the fontSet input will cause the class name to be applied\n * to the `` element.\n *\n * If the registered font is a ligature font, then don't forget to also include the special\n * class `mat-ligature-font` to allow the usage via attribute. So register like this:\n *\n * ```ts\n * iconRegistry.registerFontClassAlias('f1', 'font1 mat-ligature-font');\n * ```\n *\n * And use like this:\n *\n * ```html\n * \n * ```\n *\n * @param alias Alias for the font.\n * @param classNames Class names override to be used instead of the alias.\n */\n registerFontClassAlias(alias: string, classNames: string = alias): this {\n this._fontCssClassesByAlias.set(alias, classNames);\n return this;\n }\n\n /**\n * Returns the CSS class name associated with the alias by a previous call to\n * registerFontClassAlias. If no CSS class has been associated, returns the alias unmodified.\n */\n classNameForFontAlias(alias: string): string {\n return this._fontCssClassesByAlias.get(alias) || alias;\n }\n\n /**\n * Sets the CSS classes to be used for icon fonts when an `` component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n setDefaultFontSetClass(...classNames: string[]): this {\n this._defaultFontSetClass = classNames;\n return this;\n }\n\n /**\n * Returns the CSS classes to be used for icon fonts when an `` component does not\n * have a fontSet input value, and is not loading an icon by name or URL.\n */\n getDefaultFontSetClass(): string[] {\n return this._defaultFontSetClass;\n }\n\n /**\n * Returns an Observable that produces the icon (as an `` DOM element) from the given URL.\n * The response from the URL may be cached so this will not always cause an HTTP request, but\n * the produced element will always be a new copy of the originally fetched icon. (That is,\n * it will not contain any modifications made to elements previously returned).\n *\n * @param safeUrl URL from which to fetch the SVG icon.\n */\n getSvgIconFromUrl(safeUrl: SafeResourceUrl): Observable {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n if (!url) {\n throw getMatIconFailedToSanitizeUrlError(safeUrl);\n }\n\n const cachedIcon = this._cachedIconsByUrl.get(url);\n\n if (cachedIcon) {\n return observableOf(cloneSvg(cachedIcon));\n }\n\n return this._loadSvgIconFromConfig(new SvgIconConfig(safeUrl, null)).pipe(\n tap(svg => this._cachedIconsByUrl.set(url!, svg)),\n map(svg => cloneSvg(svg)),\n );\n }\n\n /**\n * Returns an Observable that produces the icon (as an `` DOM element) with the given name\n * and namespace. The icon must have been previously registered with addIcon or addIconSet;\n * if not, the Observable will throw an error.\n *\n * @param name Name of the icon to be retrieved.\n * @param namespace Namespace in which to look for the icon.\n */\n getNamedSvgIcon(name: string, namespace: string = ''): Observable {\n const key = iconKey(namespace, name);\n let config = this._svgIconConfigs.get(key);\n\n // Return (copy of) cached icon if possible.\n if (config) {\n return this._getSvgFromConfig(config);\n }\n\n // Otherwise try to resolve the config from one of the resolver functions.\n config = this._getIconConfigFromResolvers(namespace, name);\n\n if (config) {\n this._svgIconConfigs.set(key, config);\n return this._getSvgFromConfig(config);\n }\n\n // See if we have any icon sets registered for the namespace.\n const iconSetConfigs = this._iconSetConfigs.get(namespace);\n\n if (iconSetConfigs) {\n return this._getSvgFromIconSetConfigs(name, iconSetConfigs);\n }\n\n return observableThrow(getMatIconNameNotFoundError(key));\n }\n\n ngOnDestroy() {\n this._resolvers = [];\n this._svgIconConfigs.clear();\n this._iconSetConfigs.clear();\n this._cachedIconsByUrl.clear();\n }\n\n /**\n * Returns the cached icon for a SvgIconConfig if available, or fetches it from its URL if not.\n */\n private _getSvgFromConfig(config: SvgIconConfig): Observable {\n if (config.svgText) {\n // We already have the SVG element for this icon, return a copy.\n return observableOf(cloneSvg(this._svgElementFromConfig(config as LoadedSvgIconConfig)));\n } else {\n // Fetch the icon from the config's URL, cache it, and return a copy.\n return this._loadSvgIconFromConfig(config).pipe(map(svg => cloneSvg(svg)));\n }\n }\n\n /**\n * Attempts to find an icon with the specified name in any of the SVG icon sets.\n * First searches the available cached icons for a nested element with a matching name, and\n * if found copies the element to a new `` element. If not found, fetches all icon sets\n * that have not been cached, and searches again after all fetches are completed.\n * The returned Observable produces the SVG element if possible, and throws\n * an error if no icon with the specified name can be found.\n */\n private _getSvgFromIconSetConfigs(\n name: string,\n iconSetConfigs: SvgIconConfig[],\n ): Observable {\n // For all the icon set SVG elements we've fetched, see if any contain an icon with the\n // requested name.\n const namedIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n\n if (namedIcon) {\n // We could cache namedIcon in _svgIconConfigs, but since we have to make a copy every\n // time anyway, there's probably not much advantage compared to just always extracting\n // it from the icon set.\n return observableOf(namedIcon);\n }\n\n // Not found in any cached icon sets. If there are icon sets with URLs that we haven't\n // fetched, fetch them now and look for iconName in the results.\n const iconSetFetchRequests: Observable[] = iconSetConfigs\n .filter(iconSetConfig => !iconSetConfig.svgText)\n .map(iconSetConfig => {\n return this._loadSvgIconSetFromConfig(iconSetConfig).pipe(\n catchError((err: HttpErrorResponse) => {\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, iconSetConfig.url);\n\n // Swallow errors fetching individual URLs so the\n // combined Observable won't necessarily fail.\n const errorMessage = `Loading icon set URL: ${url} failed: ${err.message}`;\n this._errorHandler.handleError(new Error(errorMessage));\n return observableOf(null);\n }),\n );\n });\n\n // Fetch all the icon set URLs. When the requests complete, every IconSet should have a\n // cached SVG element (unless the request failed), and we can check again for the icon.\n return forkJoin(iconSetFetchRequests).pipe(\n map(() => {\n const foundIcon = this._extractIconWithNameFromAnySet(name, iconSetConfigs);\n\n // TODO: add an ngDevMode check\n if (!foundIcon) {\n throw getMatIconNameNotFoundError(name);\n }\n\n return foundIcon;\n }),\n );\n }\n\n /**\n * Searches the cached SVG elements for the given icon sets for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n private _extractIconWithNameFromAnySet(\n iconName: string,\n iconSetConfigs: SvgIconConfig[],\n ): SVGElement | null {\n // Iterate backwards, so icon sets added later have precedence.\n for (let i = iconSetConfigs.length - 1; i >= 0; i--) {\n const config = iconSetConfigs[i];\n\n // Parsing the icon set's text into an SVG element can be expensive. We can avoid some of\n // the parsing by doing a quick check using `indexOf` to see if there's any chance for the\n // icon to be in the set. This won't be 100% accurate, but it should help us avoid at least\n // some of the parsing.\n if (config.svgText && config.svgText.toString().indexOf(iconName) > -1) {\n const svg = this._svgElementFromConfig(config as LoadedSvgIconConfig);\n const foundIcon = this._extractSvgIconFromSet(svg, iconName, config.options);\n if (foundIcon) {\n return foundIcon;\n }\n }\n }\n return null;\n }\n\n /**\n * Loads the content of the icon URL specified in the SvgIconConfig and creates an SVG element\n * from it.\n */\n private _loadSvgIconFromConfig(config: SvgIconConfig): Observable {\n return this._fetchIcon(config).pipe(\n tap(svgText => (config.svgText = svgText)),\n map(() => this._svgElementFromConfig(config as LoadedSvgIconConfig)),\n );\n }\n\n /**\n * Loads the content of the icon set URL specified in the\n * SvgIconConfig and attaches it to the config.\n */\n private _loadSvgIconSetFromConfig(config: SvgIconConfig): Observable {\n if (config.svgText) {\n return observableOf(null);\n }\n\n return this._fetchIcon(config).pipe(tap(svgText => (config.svgText = svgText)));\n }\n\n /**\n * Searches the cached element of the given SvgIconConfig for a nested icon element whose \"id\"\n * tag matches the specified name. If found, copies the nested element to a new SVG element and\n * returns it. Returns null if no matching element is found.\n */\n private _extractSvgIconFromSet(\n iconSet: SVGElement,\n iconName: string,\n options?: IconOptions,\n ): SVGElement | null {\n // Use the `id=\"iconName\"` syntax in order to escape special\n // characters in the ID (versus using the #iconName syntax).\n const iconSource = iconSet.querySelector(`[id=\"${iconName}\"]`);\n\n if (!iconSource) {\n return null;\n }\n\n // Clone the element and remove the ID to prevent multiple elements from being added\n // to the page with the same ID.\n const iconElement = iconSource.cloneNode(true) as Element;\n iconElement.removeAttribute('id');\n\n // If the icon node is itself an node, clone and return it directly. If not, set it as\n // the content of a new node.\n if (iconElement.nodeName.toLowerCase() === 'svg') {\n return this._setSvgAttributes(iconElement as SVGElement, options);\n }\n\n // If the node is a , it won't be rendered so we have to convert it into . Note\n // that the same could be achieved by referring to it via , however the \n // tag is problematic on Firefox, because it needs to include the current page path.\n if (iconElement.nodeName.toLowerCase() === 'symbol') {\n return this._setSvgAttributes(this._toSvgElement(iconElement), options);\n }\n\n // createElement('SVG') doesn't work as expected; the DOM ends up with\n // the correct nodes, but the SVG content doesn't render. Instead we\n // have to create an empty SVG node using innerHTML and append its content.\n // Elements created using DOMParser.parseFromString have the same problem.\n // http://stackoverflow.com/questions/23003278/svg-innerhtml-in-firefox-can-not-display\n const svg = this._svgElementFromString(trustedHTMLFromString(''));\n // Clone the node so we don't remove it from the parent icon set element.\n svg.appendChild(iconElement);\n\n return this._setSvgAttributes(svg, options);\n }\n\n /**\n * Creates a DOM element from the given SVG string.\n */\n private _svgElementFromString(str: TrustedHTML): SVGElement {\n const div = this._document.createElement('DIV');\n div.innerHTML = str as unknown as string;\n const svg = div.querySelector('svg') as SVGElement;\n\n // TODO: add an ngDevMode check\n if (!svg) {\n throw Error(' tag not found');\n }\n\n return svg;\n }\n\n /**\n * Converts an element into an SVG node by cloning all of its children.\n */\n private _toSvgElement(element: Element): SVGElement {\n const svg = this._svgElementFromString(trustedHTMLFromString(''));\n const attributes = element.attributes;\n\n // Copy over all the attributes from the `symbol` to the new SVG, except the id.\n for (let i = 0; i < attributes.length; i++) {\n const {name, value} = attributes[i];\n\n if (name !== 'id') {\n svg.setAttribute(name, value);\n }\n }\n\n for (let i = 0; i < element.childNodes.length; i++) {\n if (element.childNodes[i].nodeType === this._document.ELEMENT_NODE) {\n svg.appendChild(element.childNodes[i].cloneNode(true));\n }\n }\n\n return svg;\n }\n\n /**\n * Sets the default attributes for an SVG element to be used as an icon.\n */\n private _setSvgAttributes(svg: SVGElement, options?: IconOptions): SVGElement {\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n\n if (options && options.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n\n return svg;\n }\n\n /**\n * Returns an Observable which produces the string contents of the given icon. Results may be\n * cached, so future calls with the same URL may not cause another HTTP request.\n */\n private _fetchIcon(iconConfig: SvgIconConfig): Observable {\n const {url: safeUrl, options} = iconConfig;\n const withCredentials = options?.withCredentials ?? false;\n\n if (!this._httpClient) {\n throw getMatIconNoHttpProviderError();\n }\n\n // TODO: add an ngDevMode check\n if (safeUrl == null) {\n throw Error(`Cannot fetch icon from URL \"${safeUrl}\".`);\n }\n\n const url = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n\n // TODO: add an ngDevMode check\n if (!url) {\n throw getMatIconFailedToSanitizeUrlError(safeUrl);\n }\n\n // Store in-progress fetches to avoid sending a duplicate request for a URL when there is\n // already a request in progress for that URL. It's necessary to call share() on the\n // Observable returned by http.get() so that multiple subscribers don't cause multiple XHRs.\n const inProgressFetch = this._inProgressUrlFetches.get(url);\n\n if (inProgressFetch) {\n return inProgressFetch;\n }\n\n const req = this._httpClient.get(url, {responseType: 'text', withCredentials}).pipe(\n map(svg => {\n // Security: This SVG is fetched from a SafeResourceUrl, and is thus\n // trusted HTML.\n return trustedHTMLFromString(svg);\n }),\n finalize(() => this._inProgressUrlFetches.delete(url)),\n share(),\n );\n\n this._inProgressUrlFetches.set(url, req);\n return req;\n }\n\n /**\n * Registers an icon config by name in the specified namespace.\n * @param namespace Namespace in which to register the icon config.\n * @param iconName Name under which to register the config.\n * @param config Config to be registered.\n */\n private _addSvgIconConfig(namespace: string, iconName: string, config: SvgIconConfig): this {\n this._svgIconConfigs.set(iconKey(namespace, iconName), config);\n return this;\n }\n\n /**\n * Registers an icon set config in the specified namespace.\n * @param namespace Namespace in which to register the icon config.\n * @param config Config to be registered.\n */\n private _addSvgIconSetConfig(namespace: string, config: SvgIconConfig): this {\n const configNamespace = this._iconSetConfigs.get(namespace);\n\n if (configNamespace) {\n configNamespace.push(config);\n } else {\n this._iconSetConfigs.set(namespace, [config]);\n }\n\n return this;\n }\n\n /** Parses a config's text into an SVG element. */\n private _svgElementFromConfig(config: LoadedSvgIconConfig): SVGElement {\n if (!config.svgElement) {\n const svg = this._svgElementFromString(config.svgText);\n this._setSvgAttributes(svg, config.options);\n config.svgElement = svg;\n }\n\n return config.svgElement;\n }\n\n /** Tries to create an icon config through the registered resolver functions. */\n private _getIconConfigFromResolvers(namespace: string, name: string): SvgIconConfig | undefined {\n for (let i = 0; i < this._resolvers.length; i++) {\n const result = this._resolvers[i](name, namespace);\n\n if (result) {\n return isSafeUrlWithOptions(result)\n ? new SvgIconConfig(result.url, null, result.options)\n : new SvgIconConfig(result, null);\n }\n }\n\n return undefined;\n }\n}\n\n/** Clones an SVGElement while preserving type information. */\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n}\n\n/** Returns the cache key to use for an icon namespace and name. */\nfunction iconKey(namespace: string, name: string) {\n return namespace + ':' + name;\n}\n\nfunction isSafeUrlWithOptions(value: any): value is SafeResourceUrlWithIconOptions {\n return !!(value.url && value.options);\n}\n"],"names":["getMatIconNameNotFoundError","iconName","Error","getMatIconNoHttpProviderError","getMatIconFailedToSanitizeUrlError","url","getMatIconFailedToSanitizeLiteralError","literal","SvgIconConfig","svgText","options","svgElement","constructor","MatIconRegistry","_httpClient","_sanitizer","_errorHandler","_document","_svgIconConfigs","Map","_iconSetConfigs","_cachedIconsByUrl","_inProgressUrlFetches","_fontCssClassesByAlias","_resolvers","_defaultFontSetClass","document","addSvgIcon","addSvgIconInNamespace","addSvgIconLiteral","addSvgIconLiteralInNamespace","namespace","_addSvgIconConfig","addSvgIconResolver","resolver","push","cleanLiteral","sanitize","SecurityContext","HTML","trustedLiteral","trustedHTMLFromString","addSvgIconSet","addSvgIconSetInNamespace","addSvgIconSetLiteral","addSvgIconSetLiteralInNamespace","_addSvgIconSetConfig","registerFontClassAlias","alias","classNames","set","classNameForFontAlias","get","setDefaultFontSetClass","getDefaultFontSetClass","getSvgIconFromUrl","safeUrl","RESOURCE_URL","cachedIcon","observableOf","cloneSvg","_loadSvgIconFromConfig","pipe","tap","svg","map","getNamedSvgIcon","name","key","iconKey","config","_getSvgFromConfig","_getIconConfigFromResolvers","iconSetConfigs","_getSvgFromIconSetConfigs","observableThrow","ngOnDestroy","clear","_svgElementFromConfig","namedIcon","_extractIconWithNameFromAnySet","iconSetFetchRequests","filter","iconSetConfig","_loadSvgIconSetFromConfig","catchError","err","errorMessage","message","handleError","forkJoin","foundIcon","i","length","toString","indexOf","_extractSvgIconFromSet","_fetchIcon","iconSet","iconSource","querySelector","iconElement","cloneNode","removeAttribute","nodeName","toLowerCase","_setSvgAttributes","_toSvgElement","_svgElementFromString","appendChild","str","div","createElement","innerHTML","element","attributes","value","setAttribute","childNodes","nodeType","ELEMENT_NODE","viewBox","iconConfig","withCredentials","inProgressFetch","req","responseType","finalize","delete","share","configNamespace","result","isSafeUrlWithOptions","undefined","ɵfac","i0","ɵɵngDeclareFactory","minVersion","version","ngImport","type","DOCUMENT","optional","token","ErrorHandler","target","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","decorators","providedIn","Optional","Inject"],"mappings":"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"} \ No newline at end of file diff --git a/fesm2022/_internal-form-field-chunk.mjs b/fesm2022/_internal-form-field-chunk.mjs index b6768fbcb6..32e2d82608 100755 --- a/fesm2022/_internal-form-field-chunk.mjs +++ b/fesm2022/_internal-form-field-chunk.mjs @@ -1,11 +1,11 @@ import * as i0 from '@angular/core'; -import { Input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core'; +import { Input, ViewEncapsulation, Component } from '@angular/core'; class _MatInternalFormField { labelPosition = 'after'; static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: _MatInternalFormField, deps: [], @@ -13,10 +13,10 @@ class _MatInternalFormField { }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: _MatInternalFormField, isStandalone: true, - selector: "div[mat-internal-form-field]", + selector: "[mat-internal-form-field]", inputs: { labelPosition: "labelPosition" }, @@ -29,28 +29,26 @@ class _MatInternalFormField { ngImport: i0, template: '', isInline: true, - styles: [".mat-internal-form-field {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n.mat-internal-form-field > label {\n margin-left: 0;\n margin-right: auto;\n padding-left: 4px;\n padding-right: 0;\n order: 0;\n}\n[dir=rtl] .mat-internal-form-field > label {\n margin-left: auto;\n margin-right: 0;\n padding-left: 0;\n padding-right: 4px;\n}\n\n.mdc-form-field--align-end > label {\n margin-left: auto;\n margin-right: 0;\n padding-left: 0;\n padding-right: 4px;\n order: -1;\n}\n[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label {\n margin-left: 0;\n margin-right: auto;\n padding-left: 4px;\n padding-right: 0;\n}\n"], - changeDetection: i0.ChangeDetectionStrategy.OnPush, + styles: [".mat-internal-form-field {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n.mat-internal-form-field > label, .mat-internal-form-field > .mat-internal-form-field-label {\n margin-left: 0;\n margin-right: auto;\n padding-left: 4px;\n padding-right: 0;\n order: 0;\n}\n[dir=rtl] .mat-internal-form-field > label, [dir=rtl] .mat-internal-form-field > .mat-internal-form-field-label {\n margin-left: auto;\n margin-right: 0;\n padding-left: 0;\n padding-right: 4px;\n}\n\n.mdc-form-field--align-end > label, .mdc-form-field--align-end > .mat-internal-form-field-label {\n margin-left: auto;\n margin-right: 0;\n padding-left: 0;\n padding-right: 4px;\n order: -1;\n}\n[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label, [dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end .mat-internal-form-field-label {\n margin-left: 0;\n margin-right: auto;\n padding-left: 4px;\n padding-right: 0;\n}\n"], encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: _MatInternalFormField, decorators: [{ type: Component, args: [{ - selector: 'div[mat-internal-form-field]', + selector: '[mat-internal-form-field]', template: '', encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'mdc-form-field mat-internal-form-field', '[class.mdc-form-field--align-end]': 'labelPosition === "before"' }, - styles: [".mat-internal-form-field {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n.mat-internal-form-field > label {\n margin-left: 0;\n margin-right: auto;\n padding-left: 4px;\n padding-right: 0;\n order: 0;\n}\n[dir=rtl] .mat-internal-form-field > label {\n margin-left: auto;\n margin-right: 0;\n padding-left: 0;\n padding-right: 4px;\n}\n\n.mdc-form-field--align-end > label {\n margin-left: auto;\n margin-right: 0;\n padding-left: 0;\n padding-right: 4px;\n order: -1;\n}\n[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label {\n margin-left: 0;\n margin-right: auto;\n padding-left: 4px;\n padding-right: 0;\n}\n"] + styles: [".mat-internal-form-field {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n.mat-internal-form-field > label, .mat-internal-form-field > .mat-internal-form-field-label {\n margin-left: 0;\n margin-right: auto;\n padding-left: 4px;\n padding-right: 0;\n order: 0;\n}\n[dir=rtl] .mat-internal-form-field > label, [dir=rtl] .mat-internal-form-field > .mat-internal-form-field-label {\n margin-left: auto;\n margin-right: 0;\n padding-left: 0;\n padding-right: 4px;\n}\n\n.mdc-form-field--align-end > label, .mdc-form-field--align-end > .mat-internal-form-field-label {\n margin-left: auto;\n margin-right: 0;\n padding-left: 0;\n padding-right: 4px;\n order: -1;\n}\n[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label, [dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end .mat-internal-form-field-label {\n margin-left: 0;\n margin-right: auto;\n padding-left: 4px;\n padding-right: 0;\n}\n"] }] }], propDecorators: { diff --git a/fesm2022/_internal-form-field-chunk.mjs.map b/fesm2022/_internal-form-field-chunk.mjs.map index 0d6ac3f5a7..6c759281c1 100755 --- a/fesm2022/_internal-form-field-chunk.mjs.map +++ b/fesm2022/_internal-form-field-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_internal-form-field-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/internal-form-field/internal-form-field.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, Input, ViewEncapsulation} from '@angular/core';\n\n/**\n * Internal shared component used as a container in form field controls.\n * Not to be confused with `mat-form-field` which MDC calls a \"text field\".\n * @docs-private\n */\n@Component({\n // Use a `div` selector to match the old markup closer.\n selector: 'div[mat-internal-form-field]',\n template: '',\n styleUrl: 'internal-form-field.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mdc-form-field mat-internal-form-field',\n '[class.mdc-form-field--align-end]': 'labelPosition === \"before\"',\n },\n})\nexport class _MatInternalFormField {\n /** Position of the label relative to the content. */\n @Input({required: true}) labelPosition: 'before' | 'after' = 'after';\n}\n"],"names":["_MatInternalFormField","labelPosition","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isInline","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators","template","host","Input","required"],"mappings":";;;MA2BaA,qBAAqB,CAAA;AAEPC,EAAAA,aAAa,GAAuB,OAAO;;;;;UAFzDD,qBAAqB;AAAAE,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAArB,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,gBAAA;AAAAC,IAAAA,IAAA,EAAAX,qBAAqB;;;;;;;;;;;;;cATtB,2BAA2B;AAAAY,IAAAA,QAAA,EAAA,IAAA;IAAAC,MAAA,EAAA,CAAA,0vBAAA,CAAA;AAAAC,IAAAA,eAAA,EAAAV,EAAA,CAAAW,uBAAA,CAAAC,MAAA;AAAAC,IAAAA,aAAA,EAAAb,EAAA,CAAAc,iBAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;QAS1BnB,qBAAqB;AAAAoB,EAAAA,UAAA,EAAA,CAAA;UAZjCd,SAAS;;gBAEE,8BAA8B;AAAAe,MAAAA,QAAA,EAC9B,2BAA2B;MAAAJ,aAAA,EAEtBC,iBAAiB,CAACC,IAAI;MAAAL,eAAA,EACpBC,uBAAuB,CAACC,MAAM;AAAAM,MAAAA,IAAA,EACzC;AACJ,QAAA,OAAO,EAAE,wCAAwC;AACjD,QAAA,mCAAmC,EAAE;OACtC;MAAAT,MAAA,EAAA,CAAA,0vBAAA;KAAA;;;;YAIAU,KAAK;aAAC;AAACC,QAAAA,QAAQ,EAAE;OAAK;;;;;;;"} \ No newline at end of file +{"version":3,"file":"_internal-form-field-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/internal-form-field/internal-form-field.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 {Component, Input, ViewEncapsulation} from '@angular/core';\n\n/**\n * Internal shared component used as a container in form field controls.\n * Not to be confused with `mat-form-field` which MDC calls a \"text field\".\n * @docs-private\n */\n@Component({\n selector: '[mat-internal-form-field]',\n template: '',\n styleUrl: 'internal-form-field.css',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'mdc-form-field mat-internal-form-field',\n '[class.mdc-form-field--align-end]': 'labelPosition === \"before\"',\n },\n})\nexport class _MatInternalFormField {\n /** Position of the label relative to the content. */\n @Input({required: true}) labelPosition: 'before' | 'after' = 'after';\n}\n"],"names":["_MatInternalFormField","labelPosition","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isInline","styles","encapsulation","ViewEncapsulation","None","decorators","args","selector","host","Input","required"],"mappings":";;;MAyBaA,qBAAqB,CAAA;AAEPC,EAAAA,aAAa,GAAuB,OAAO;;;;;UAFzDD,qBAAqB;AAAAE,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAArB,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,IAAA,EAAAX,qBAAqB;;;;;;;;;;;;;cARtB,2BAA2B;AAAAY,IAAAA,QAAA,EAAA,IAAA;IAAAC,MAAA,EAAA,CAAA,uhCAAA,CAAA;AAAAC,IAAAA,aAAA,EAAAV,EAAA,CAAAW,iBAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;QAQ1BhB,qBAAqB;AAAAiB,EAAAA,UAAA,EAAA,CAAA;UAVjCX,SAAS;AACEY,IAAAA,IAAA,EAAA,CAAA;AAAAC,MAAAA,QAAA,EAAA,2BAA2B;gBAC3B,2BAA2B;MAAAL,aAAA,EAEtBC,iBAAiB,CAACC,IAAI;AAAAI,MAAAA,IAAA,EAC/B;AACJ,QAAA,OAAO,EAAE,wCAAwC;AACjD,QAAA,mCAAmC,EAAE;OACtC;MAAAP,MAAA,EAAA,CAAA,uhCAAA;KAAA;;;;YAIAQ,KAAK;aAAC;AAACC,QAAAA,QAAQ,EAAE;OAAK;;;;;;;"} \ No newline at end of file diff --git a/fesm2022/_line-chunk.mjs b/fesm2022/_line-chunk.mjs index 9c5fe7bcc0..9099198232 100755 --- a/fesm2022/_line-chunk.mjs +++ b/fesm2022/_line-chunk.mjs @@ -6,7 +6,7 @@ import { startWith } from 'rxjs/operators'; class MatLine { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatLine, deps: [], @@ -14,7 +14,7 @@ class MatLine { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatLine, isStandalone: true, selector: "[mat-line], [matLine]", @@ -26,7 +26,7 @@ class MatLine { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatLine, decorators: [{ @@ -59,7 +59,7 @@ function setClass(element, className, isAdd) { class MatLineModule { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatLineModule, deps: [], @@ -67,7 +67,7 @@ class MatLineModule { }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatLineModule, imports: [MatLine], @@ -75,7 +75,7 @@ class MatLineModule { }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatLineModule, imports: [BidiModule] @@ -83,7 +83,7 @@ class MatLineModule { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatLineModule, decorators: [{ diff --git a/fesm2022/_line-chunk.mjs.map b/fesm2022/_line-chunk.mjs.map index 4e87739e90..23a828a9d8 100755 --- a/fesm2022/_line-chunk.mjs.map +++ b/fesm2022/_line-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_line-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/line/line.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 {BidiModule} from '@angular/cdk/bidi';\nimport {Directive, ElementRef, NgModule, QueryList} from '@angular/core';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(MatLine) query, then\n * counted by checking the query list's length.\n */\n@Directive({\n selector: '[mat-line], [matLine]',\n host: {'class': 'mat-line'},\n})\nexport class MatLine {}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nexport function setLines(\n lines: QueryList,\n element: ElementRef,\n prefix = 'mat',\n) {\n // Note: doesn't need to unsubscribe, because `changes`\n // gets completed by Angular when the view is destroyed.\n lines.changes.pipe(startWith(lines)).subscribe(({length}) => {\n setClass(element, `${prefix}-2-line`, false);\n setClass(element, `${prefix}-3-line`, false);\n setClass(element, `${prefix}-multi-line`, false);\n\n if (length === 2 || length === 3) {\n setClass(element, `${prefix}-${length}-line`, true);\n } else if (length > 3) {\n setClass(element, `${prefix}-multi-line`, true);\n }\n });\n}\n\n/** Adds or removes a class from an element. */\nfunction setClass(element: ElementRef, className: string, isAdd: boolean): void {\n element.nativeElement.classList.toggle(className, isAdd);\n}\n\n@NgModule({\n imports: [MatLine],\n exports: [MatLine, BidiModule],\n})\nexport class MatLineModule {}\n"],"names":["MatLine","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","host","classAttribute","ngImport","decorators","args","setLines","lines","element","prefix","changes","pipe","startWith","subscribe","length","setClass","className","isAdd","nativeElement","classList","toggle","MatLineModule","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","type","imports","exports","BidiModule","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"_line-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/line/line.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 {BidiModule} from '@angular/cdk/bidi';\nimport {Directive, ElementRef, NgModule, QueryList} from '@angular/core';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Shared directive to count lines inside a text area, such as a list item.\n * Line elements can be extracted with a @ContentChildren(MatLine) query, then\n * counted by checking the query list's length.\n */\n@Directive({\n selector: '[mat-line], [matLine]',\n host: {'class': 'mat-line'},\n})\nexport class MatLine {}\n\n/**\n * Helper that takes a query list of lines and sets the correct class on the host.\n * @docs-private\n */\nexport function setLines(\n lines: QueryList,\n element: ElementRef,\n prefix = 'mat',\n) {\n // Note: doesn't need to unsubscribe, because `changes`\n // gets completed by Angular when the view is destroyed.\n lines.changes.pipe(startWith(lines)).subscribe(({length}) => {\n setClass(element, `${prefix}-2-line`, false);\n setClass(element, `${prefix}-3-line`, false);\n setClass(element, `${prefix}-multi-line`, false);\n\n if (length === 2 || length === 3) {\n setClass(element, `${prefix}-${length}-line`, true);\n } else if (length > 3) {\n setClass(element, `${prefix}-multi-line`, true);\n }\n });\n}\n\n/** Adds or removes a class from an element. */\nfunction setClass(element: ElementRef, className: string, isAdd: boolean): void {\n element.nativeElement.classList.toggle(className, isAdd);\n}\n\n@NgModule({\n imports: [MatLine],\n exports: [MatLine, BidiModule],\n})\nexport class MatLineModule {}\n"],"names":["MatLine","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","host","classAttribute","ngImport","decorators","args","setLines","lines","element","prefix","changes","pipe","startWith","subscribe","length","setClass","className","isAdd","nativeElement","classList","toggle","MatLineModule","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","type","imports","exports","BidiModule","ɵinj","ɵɵngDeclareInjector"],"mappings":"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"} \ No newline at end of file diff --git a/fesm2022/_option-chunk.mjs b/fesm2022/_option-chunk.mjs index 1eea67d85f..d5cab1b336 100755 --- a/fesm2022/_option-chunk.mjs +++ b/fesm2022/_option-chunk.mjs @@ -1,7 +1,7 @@ import { _IdGenerator } from '@angular/cdk/a11y'; import { ENTER, SPACE, hasModifierKey } from '@angular/cdk/keycodes'; import * as i0 from '@angular/core'; -import { InjectionToken, inject, booleanAttribute, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, ElementRef, ChangeDetectorRef, signal, EventEmitter, isSignal, ViewChild, Output } from '@angular/core'; +import { InjectionToken, inject, booleanAttribute, Input, ViewEncapsulation, Component, ElementRef, ChangeDetectorRef, signal, EventEmitter, isSignal, ViewChild, Output } from '@angular/core'; import { Subject } from 'rxjs'; import { MatRipple } from './_ripple-chunk.mjs'; import { MatPseudoCheckbox } from './_pseudo-checkbox-chunk.mjs'; @@ -24,7 +24,7 @@ class MatOptgroup { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatOptgroup, deps: [], @@ -32,7 +32,7 @@ class MatOptgroup { }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatOptgroup, isStandalone: true, selector: "mat-optgroup", @@ -56,13 +56,12 @@ class MatOptgroup { ngImport: i0, template: "\n {{ label }} \n\n\n\n", styles: [".mat-mdc-optgroup {\n color: var(--mat-optgroup-label-text-color, var(--mat-sys-on-surface-variant));\n font-family: var(--mat-optgroup-label-text-font, var(--mat-sys-title-small-font));\n line-height: var(--mat-optgroup-label-text-line-height, var(--mat-sys-title-small-line-height));\n font-size: var(--mat-optgroup-label-text-size, var(--mat-sys-title-small-size));\n letter-spacing: var(--mat-optgroup-label-text-tracking, var(--mat-sys-title-small-tracking));\n font-weight: var(--mat-optgroup-label-text-weight, var(--mat-sys-title-small-weight));\n}\n\n.mat-mdc-optgroup-label {\n display: flex;\n position: relative;\n align-items: center;\n justify-content: flex-start;\n overflow: hidden;\n min-height: 48px;\n padding: 0 16px;\n outline: none;\n}\n.mat-mdc-optgroup-label.mdc-list-item--disabled {\n opacity: 0.38;\n}\n.mat-mdc-optgroup-label .mdc-list-item__primary-text {\n font-size: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n line-height: inherit;\n font-family: inherit;\n text-decoration: inherit;\n text-transform: inherit;\n white-space: normal;\n color: inherit;\n}\n"], - changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatOptgroup, decorators: [{ @@ -71,7 +70,6 @@ i0.ɵɵngDeclareClassMetadata({ selector: 'mat-optgroup', exportAs: 'matOptgroup', encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'mat-mdc-optgroup', '[attr.role]': '_inert ? null : "group"', @@ -236,7 +234,7 @@ class MatOption { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatOption, deps: [], @@ -244,7 +242,7 @@ class MatOption { }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatOption, isStandalone: true, selector: "mat-option", @@ -298,13 +296,12 @@ class MatOption { inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }], - changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatOption, decorators: [{ @@ -326,7 +323,6 @@ i0.ɵɵngDeclareClassMetadata({ 'class': 'mat-mdc-option mdc-list-item' }, encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatPseudoCheckbox, MatRipple], template: "\n@if (multiple) {\n \n}\n\n\n\n\n\n\n@if (!multiple && selected && !hideSingleSelectionIndicator) {\n \n}\n\n\n@if (group && group._inert) {\n ({{ group.label }})\n}\n\n
\n
\n", styles: [".mat-mdc-option {\n -webkit-user-select: none;\n user-select: none;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: flex;\n position: relative;\n align-items: center;\n justify-content: flex-start;\n overflow: hidden;\n min-height: 48px;\n padding: 0 16px;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n color: var(--mat-option-label-text-color, var(--mat-sys-on-surface));\n font-family: var(--mat-option-label-text-font, var(--mat-sys-label-large-font));\n line-height: var(--mat-option-label-text-line-height, var(--mat-sys-label-large-line-height));\n font-size: var(--mat-option-label-text-size, var(--mat-sys-body-large-size));\n letter-spacing: var(--mat-option-label-text-tracking, var(--mat-sys-label-large-tracking));\n font-weight: var(--mat-option-label-text-weight, var(--mat-sys-body-large-weight));\n}\n.mat-mdc-option:hover:not(.mdc-list-item--disabled) {\n background-color: var(--mat-option-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent));\n}\n.mat-mdc-option:focus.mdc-list-item, .mat-mdc-option.mat-mdc-option-active.mdc-list-item {\n background-color: var(--mat-option-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent));\n outline: 0;\n}\n.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active, .mat-mdc-option-multiple, :focus, :hover) {\n background-color: var(--mat-option-selected-state-layer-color, var(--mat-sys-secondary-container));\n}\n.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled):not(.mat-mdc-option-active, .mat-mdc-option-multiple, :focus, :hover) .mdc-list-item__primary-text {\n color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container));\n}\n.mat-mdc-option .mat-pseudo-checkbox {\n --mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--mat-option-selected-state-label-text-color, var(--mat-sys-on-secondary-container));\n}\n.mat-mdc-option.mdc-list-item {\n align-items: center;\n background: transparent;\n}\n.mat-mdc-option.mdc-list-item--disabled {\n cursor: default;\n pointer-events: none;\n}\n.mat-mdc-option.mdc-list-item--disabled .mat-mdc-option-pseudo-checkbox, .mat-mdc-option.mdc-list-item--disabled .mdc-list-item__primary-text, .mat-mdc-option.mdc-list-item--disabled > mat-icon {\n opacity: 0.38;\n}\n.mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple) {\n padding-left: 32px;\n}\n[dir=rtl] .mat-mdc-optgroup .mat-mdc-option:not(.mat-mdc-option-multiple) {\n padding-left: 16px;\n padding-right: 32px;\n}\n.mat-mdc-option .mat-icon,\n.mat-mdc-option .mat-pseudo-checkbox-full {\n margin-right: 16px;\n flex-shrink: 0;\n}\n[dir=rtl] .mat-mdc-option .mat-icon,\n[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-full {\n margin-right: 0;\n margin-left: 16px;\n}\n.mat-mdc-option .mat-pseudo-checkbox-minimal {\n margin-left: 16px;\n flex-shrink: 0;\n}\n[dir=rtl] .mat-mdc-option .mat-pseudo-checkbox-minimal {\n margin-right: 16px;\n margin-left: 0;\n}\n.mat-mdc-option .mat-mdc-option-ripple {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n position: absolute;\n pointer-events: none;\n}\n.mat-mdc-option .mdc-list-item__primary-text {\n white-space: normal;\n font-size: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n line-height: inherit;\n font-family: inherit;\n text-decoration: inherit;\n text-transform: inherit;\n margin-right: auto;\n}\n[dir=rtl] .mat-mdc-option .mdc-list-item__primary-text {\n margin-right: 0;\n margin-left: auto;\n}\n@media (forced-colors: active) {\n .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after {\n content: \"\";\n position: absolute;\n top: 50%;\n right: 16px;\n transform: translateY(-50%);\n width: 10px;\n height: 0;\n border-bottom: solid 10px;\n border-radius: 10px;\n }\n [dir=rtl] .mat-mdc-option.mdc-list-item--selected:not(:has(.mat-mdc-option-pseudo-checkbox))::after {\n right: auto;\n left: 16px;\n }\n}\n\n.mat-mdc-option-multiple {\n --mat-list-list-item-selected-container-color: var(--mat-list-list-item-container-color, transparent);\n}\n\n.mat-mdc-option-active .mat-focus-indicator::before {\n content: \"\";\n}\n"] diff --git a/fesm2022/_option-chunk.mjs.map b/fesm2022/_option-chunk.mjs.map index c208fadeab..e38bc9ceaa 100755 --- a/fesm2022/_option-chunk.mjs.map +++ b/fesm2022/_option-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_option-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/option-parent.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/optgroup.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/optgroup.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/option.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/option.html"],"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 {InjectionToken, Signal} from '@angular/core';\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface MatOptionParentComponent {\n disableRipple?: boolean | Signal;\n multiple?: boolean;\n inertGroups?: boolean;\n hideSingleSelectionIndicator?: boolean;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const MAT_OPTION_PARENT_COMPONENT = new InjectionToken(\n 'MAT_OPTION_PARENT_COMPONENT',\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 Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n InjectionToken,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {MatOptionParentComponent, MAT_OPTION_PARENT_COMPONENT} from './option-parent';\n\n// Notes on the accessibility pattern used for `mat-optgroup`.\n// The option group has two different \"modes\": regular and inert. The regular mode uses the\n// recommended a11y pattern which has `role=\"group\"` on the group element with `aria-labelledby`\n// pointing to the label. This works for `mat-select`, but it seems to hit a bug for autocomplete\n// under VoiceOver where the group doesn't get read out at all. The bug appears to be that if\n// there's __any__ a11y-related attribute on the group (e.g. `role` or `aria-labelledby`),\n// VoiceOver on Safari won't read it out.\n// We've introduced the `inert` mode as a workaround. Under this mode, all a11y attributes are\n// removed from the group, and we get the screen reader to read out the group label by mirroring it\n// inside an invisible element in the option. This is sub-optimal, because the screen reader will\n// repeat the group label on each navigation, whereas the default pattern only reads the group when\n// the user enters a new group. The following alternate approaches were considered:\n// 1. Reading out the group label using the `LiveAnnouncer` solves the problem, but we can't control\n// when the text will be read out so sometimes it comes in too late or never if the user\n// navigates quickly.\n// 2. `('MatOptgroup');\n\n/**\n * Component that is used to group instances of `mat-option`.\n */\n@Component({\n selector: 'mat-optgroup',\n exportAs: 'matOptgroup',\n templateUrl: 'optgroup.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: 'optgroup.css',\n host: {\n 'class': 'mat-mdc-optgroup',\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled.toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId',\n },\n providers: [{provide: MAT_OPTGROUP, useExisting: MatOptgroup}],\n})\nexport class MatOptgroup {\n /** Label for the option group. */\n @Input() label!: string;\n\n /** whether the option group is disabled. */\n @Input({transform: booleanAttribute}) disabled: boolean = false;\n\n /** Unique id for the underlying label. */\n _labelId: string = inject(_IdGenerator).getId('mat-optgroup-label-');\n\n /** Whether the group is in inert a11y mode. */\n _inert: boolean;\n\n constructor() {\n const parent = inject(MAT_OPTION_PARENT_COMPONENT, {optional: true});\n this._inert = parent?.inertGroups ?? false;\n }\n}\n","\n {{ label }} \n\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 {_IdGenerator, FocusableOption, FocusOrigin} from '@angular/cdk/a11y';\nimport {ENTER, hasModifierKey, SPACE} from '@angular/cdk/keycodes';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ElementRef,\n ChangeDetectorRef,\n AfterViewChecked,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n QueryList,\n ViewChild,\n booleanAttribute,\n inject,\n isSignal,\n Signal,\n signal,\n} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {MAT_OPTGROUP, MatOptgroup} from './optgroup';\nimport {MatOptionParentComponent, MAT_OPTION_PARENT_COMPONENT} from './option-parent';\nimport {MatRipple} from '../ripple/ripple';\nimport {MatPseudoCheckbox} from '../selection/pseudo-checkbox/pseudo-checkbox';\nimport {_StructuralStylesLoader} from '../focus-indicators/structural-styles';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '@angular/cdk/private';\n\n/** Event object emitted by MatOption when selected or deselected. */\nexport class MatOptionSelectionChange {\n constructor(\n /** Reference to the option that emitted the event. */\n public source: MatOption,\n /** Whether the change in the option's value was a result of a user action. */\n public isUserInput = false,\n ) {}\n}\n\n/**\n * Single option inside of a `` element.\n */\n@Component({\n selector: 'mat-option',\n exportAs: 'matOption',\n host: {\n 'role': 'option',\n '[class.mdc-list-item--selected]': 'selected',\n '[class.mat-mdc-option-multiple]': 'multiple',\n '[class.mat-mdc-option-active]': 'active',\n '[class.mdc-list-item--disabled]': 'disabled',\n '[id]': 'id',\n // Set aria-selected to false for non-selected items and true for selected items. Conform to\n // [WAI ARIA Listbox authoring practices guide](\n // https://www.w3.org/WAI/ARIA/apg/patterns/listbox/), \"If any options are selected, each\n // selected option has either aria-selected or aria-checked set to true. All options that are\n // selectable but not selected have either aria-selected or aria-checked set to false.\" Align\n // aria-selected implementation of Chips and List components.\n //\n // Set `aria-selected=\"false\"` on not-selected listbox options to fix VoiceOver announcing\n // every option as \"selected\" (#21491).\n '[attr.aria-selected]': 'selected',\n '[attr.aria-disabled]': 'disabled.toString()',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n 'class': 'mat-mdc-option mdc-list-item',\n },\n styleUrl: 'option.css',\n templateUrl: 'option.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatPseudoCheckbox, MatRipple],\n})\nexport class MatOption implements FocusableOption, AfterViewChecked, OnDestroy {\n private _element = inject>(ElementRef);\n _changeDetectorRef = inject(ChangeDetectorRef);\n private _parent = inject(MAT_OPTION_PARENT_COMPONENT, {optional: true});\n group = inject(MAT_OPTGROUP, {optional: true});\n\n private _signalDisableRipple = false;\n private _selected = false;\n private _active = false;\n private _mostRecentViewValue = '';\n\n /** Whether the wrapping component is in multiple selection mode. */\n get multiple() {\n return this._parent && this._parent.multiple;\n }\n\n /** Whether or not the option is currently selected. */\n get selected(): boolean {\n return this._selected;\n }\n\n /** The form value of the option. */\n @Input() value!: T;\n\n /** The unique ID of the option. */\n @Input() id: string = inject(_IdGenerator).getId('mat-option-');\n\n /** Whether the option is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return (this.group && this.group.disabled) || this._disabled();\n }\n set disabled(value: boolean) {\n this._disabled.set(value);\n }\n private _disabled = signal(false);\n\n /** Whether ripples for the option are disabled. */\n get disableRipple(): boolean {\n return this._signalDisableRipple\n ? (this._parent!.disableRipple as Signal)()\n : !!this._parent?.disableRipple;\n }\n\n /** Whether to display checkmark for single-selection. */\n get hideSingleSelectionIndicator(): boolean {\n return !!(this._parent && this._parent.hideSingleSelectionIndicator);\n }\n\n /** Event emitted when the option is selected or deselected. */\n // tslint:disable-next-line:no-output-on-prefix\n @Output() readonly onSelectionChange = new EventEmitter>();\n\n /** Element containing the option's text. */\n @ViewChild('text', {static: true}) _text: ElementRef | undefined;\n\n /** Emits when the state of the option changes and any parents have to be notified. */\n readonly _stateChanges = new Subject();\n\n constructor() {\n const styleLoader = inject(_CdkPrivateStyleLoader);\n styleLoader.load(_StructuralStylesLoader);\n styleLoader.load(_VisuallyHiddenLoader);\n this._signalDisableRipple = !!this._parent && isSignal(this._parent.disableRipple);\n }\n\n /**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n */\n get active(): boolean {\n return this._active;\n }\n\n /**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n */\n get viewValue(): string {\n // TODO(kara): Add input property alternative for node envs.\n return (this._text?.nativeElement.textContent || '').trim();\n }\n\n /** Selects the option. */\n select(emitEvent = true): void {\n if (!this._selected) {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n\n if (emitEvent) {\n this._emitSelectionChangeEvent();\n }\n }\n }\n\n /** Deselects the option. */\n deselect(emitEvent = true): void {\n if (this._selected) {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n\n if (emitEvent) {\n this._emitSelectionChangeEvent();\n }\n }\n }\n\n /** Sets focus onto this option. */\n focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n // Note that we aren't using `_origin`, but we need to keep it because some internal consumers\n // use `MatOption` in a `FocusKeyManager` and we need it to match `FocusableOption`.\n const element = this._getHostElement();\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n /**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n return this.viewValue;\n }\n\n /** Ensures the option is selected when activated from the keyboard. */\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {\n this._selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n }\n }\n\n /**\n * `Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.`\n */\n _selectViaInteraction(): void {\n if (!this.disabled) {\n this._selected = this.multiple ? !this._selected : true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent(true);\n }\n }\n\n /** Returns the correct tabindex for the option depending on disabled state. */\n // This method is only used by `MatLegacyOption`. Keeping it here to avoid breaking the types.\n // That's because `MatLegacyOption` use `MatOption` type in a few places such as\n // `MatOptionSelectionChange`. It is safe to delete this when `MatLegacyOption` is deleted.\n _getTabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n\n /** Gets the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n ngAfterViewChecked() {\n // Since parent components could be using the option's label to display the selected values\n // (e.g. `mat-select`) and they don't have a way of knowing if the option's label has changed\n // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n // relatively cheap, however we still limit them only to selected options in order to avoid\n // hitting the DOM too often.\n if (this._selected) {\n const viewValue = this.viewValue;\n\n if (viewValue !== this._mostRecentViewValue) {\n if (this._mostRecentViewValue) {\n this._stateChanges.next();\n }\n\n this._mostRecentViewValue = viewValue;\n }\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n\n /** Emits the selection change event. */\n private _emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new MatOptionSelectionChange(this, isUserInput));\n }\n}\n\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport function _countGroupLabelsBeforeOption(\n optionIndex: number,\n options: QueryList,\n optionGroups: QueryList,\n): number {\n if (optionGroups.length) {\n let optionsArray = options.toArray();\n let groups = optionGroups.toArray();\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionOffset Offset of the option from the top of the panel.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport function _getOptionScrollPosition(\n optionOffset: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number,\n): number {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","\n@if (multiple) {\n \n}\n\n\n\n\n\n\n@if (!multiple && selected && !hideSingleSelectionIndicator) {\n \n}\n\n\n@if (group && group._inert) {\n ({{ group.label }})\n}\n\n
\n
\n"],"names":["MAT_OPTION_PARENT_COMPONENT","InjectionToken","MAT_OPTGROUP","MatOptgroup","label","disabled","_labelId","inject","_IdGenerator","getId","_inert","constructor","parent","optional","inertGroups","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isStandalone","selector","inputs","booleanAttribute","host","properties","classAttribute","providers","provide","useExisting","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators","exportAs","template","Input","transform","MatOptionSelectionChange","source","isUserInput","MatOption","_element","ElementRef","_changeDetectorRef","ChangeDetectorRef","_parent","group","_signalDisableRipple","_selected","_active","_mostRecentViewValue","multiple","selected","value","id","_disabled","set","signal","disableRipple","hideSingleSelectionIndicator","onSelectionChange","EventEmitter","_text","_stateChanges","Subject","styleLoader","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","_VisuallyHiddenLoader","isSignal","active","viewValue","nativeElement","textContent","trim","select","emitEvent","markForCheck","_emitSelectionChangeEvent","deselect","focus","_origin","options","element","_getHostElement","setActiveStyles","setInactiveStyles","getLabel","_handleKeydown","event","keyCode","ENTER","SPACE","hasModifierKey","_selectViaInteraction","preventDefault","_getTabIndex","ngAfterViewChecked","next","ngOnDestroy","complete","emit","outputs","attributes","listeners","viewQueries","propertyName","first","predicate","descendants","static","ngImport","dependencies","kind","MatPseudoCheckbox","MatRipple","imports","Output","ViewChild","args","_countGroupLabelsBeforeOption","optionIndex","optionGroups","length","optionsArray","toArray","groups","groupCounter","i","_getOptionScrollPosition","optionOffset","optionHeight","currentScrollPosition","panelHeight","Math","max"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"_option-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/option-parent.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/optgroup.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/optgroup.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/option.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/option.html"],"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 {InjectionToken, Signal} from '@angular/core';\n\n/**\n * Describes a parent component that manages a list of options.\n * Contains properties that the options can inherit.\n * @docs-private\n */\nexport interface MatOptionParentComponent {\n disableRipple?: boolean | Signal;\n multiple?: boolean;\n inertGroups?: boolean;\n hideSingleSelectionIndicator?: boolean;\n}\n\n/**\n * Injection token used to provide the parent component to options.\n */\nexport const MAT_OPTION_PARENT_COMPONENT = new InjectionToken(\n 'MAT_OPTION_PARENT_COMPONENT',\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 Component,\n ViewEncapsulation,\n Input,\n InjectionToken,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {MatOptionParentComponent, MAT_OPTION_PARENT_COMPONENT} from './option-parent';\n\n// Notes on the accessibility pattern used for `mat-optgroup`.\n// The option group has two different \"modes\": regular and inert. The regular mode uses the\n// recommended a11y pattern which has `role=\"group\"` on the group element with `aria-labelledby`\n// pointing to the label. This works for `mat-select`, but it seems to hit a bug for autocomplete\n// under VoiceOver where the group doesn't get read out at all. The bug appears to be that if\n// there's __any__ a11y-related attribute on the group (e.g. `role` or `aria-labelledby`),\n// VoiceOver on Safari won't read it out.\n// We've introduced the `inert` mode as a workaround. Under this mode, all a11y attributes are\n// removed from the group, and we get the screen reader to read out the group label by mirroring it\n// inside an invisible element in the option. This is sub-optimal, because the screen reader will\n// repeat the group label on each navigation, whereas the default pattern only reads the group when\n// the user enters a new group. The following alternate approaches were considered:\n// 1. Reading out the group label using the `LiveAnnouncer` solves the problem, but we can't control\n// when the text will be read out so sometimes it comes in too late or never if the user\n// navigates quickly.\n// 2. `('MatOptgroup');\n\n/**\n * Component that is used to group instances of `mat-option`.\n */\n@Component({\n selector: 'mat-optgroup',\n exportAs: 'matOptgroup',\n templateUrl: 'optgroup.html',\n encapsulation: ViewEncapsulation.None,\n styleUrl: 'optgroup.css',\n host: {\n 'class': 'mat-mdc-optgroup',\n '[attr.role]': '_inert ? null : \"group\"',\n '[attr.aria-disabled]': '_inert ? null : disabled.toString()',\n '[attr.aria-labelledby]': '_inert ? null : _labelId',\n },\n providers: [{provide: MAT_OPTGROUP, useExisting: MatOptgroup}],\n})\nexport class MatOptgroup {\n /** Label for the option group. */\n @Input() label!: string;\n\n /** whether the option group is disabled. */\n @Input({transform: booleanAttribute}) disabled: boolean = false;\n\n /** Unique id for the underlying label. */\n _labelId: string = inject(_IdGenerator).getId('mat-optgroup-label-');\n\n /** Whether the group is in inert a11y mode. */\n _inert: boolean;\n\n constructor() {\n const parent = inject(MAT_OPTION_PARENT_COMPONENT, {optional: true});\n this._inert = parent?.inertGroups ?? false;\n }\n}\n","\n {{ label }} \n\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 {_IdGenerator, FocusableOption, FocusOrigin} from '@angular/cdk/a11y';\nimport {ENTER, hasModifierKey, SPACE} from '@angular/cdk/keycodes';\nimport {\n Component,\n ViewEncapsulation,\n ElementRef,\n ChangeDetectorRef,\n AfterViewChecked,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n QueryList,\n ViewChild,\n booleanAttribute,\n inject,\n isSignal,\n Signal,\n signal,\n} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {MAT_OPTGROUP, MatOptgroup} from './optgroup';\nimport {MatOptionParentComponent, MAT_OPTION_PARENT_COMPONENT} from './option-parent';\nimport {MatRipple} from '../ripple/ripple';\nimport {MatPseudoCheckbox} from '../selection/pseudo-checkbox/pseudo-checkbox';\nimport {_StructuralStylesLoader} from '../focus-indicators/structural-styles';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '@angular/cdk/private';\n\n/** Event object emitted by MatOption when selected or deselected. */\nexport class MatOptionSelectionChange {\n constructor(\n /** Reference to the option that emitted the event. */\n public source: MatOption,\n /** Whether the change in the option's value was a result of a user action. */\n public isUserInput = false,\n ) {}\n}\n\n/**\n * Single option inside of a `` element.\n */\n@Component({\n selector: 'mat-option',\n exportAs: 'matOption',\n host: {\n 'role': 'option',\n '[class.mdc-list-item--selected]': 'selected',\n '[class.mat-mdc-option-multiple]': 'multiple',\n '[class.mat-mdc-option-active]': 'active',\n '[class.mdc-list-item--disabled]': 'disabled',\n '[id]': 'id',\n // Set aria-selected to false for non-selected items and true for selected items. Conform to\n // [WAI ARIA Listbox authoring practices guide](\n // https://www.w3.org/WAI/ARIA/apg/patterns/listbox/), \"If any options are selected, each\n // selected option has either aria-selected or aria-checked set to true. All options that are\n // selectable but not selected have either aria-selected or aria-checked set to false.\" Align\n // aria-selected implementation of Chips and List components.\n //\n // Set `aria-selected=\"false\"` on not-selected listbox options to fix VoiceOver announcing\n // every option as \"selected\" (#21491).\n '[attr.aria-selected]': 'selected',\n '[attr.aria-disabled]': 'disabled.toString()',\n '(click)': '_selectViaInteraction()',\n '(keydown)': '_handleKeydown($event)',\n 'class': 'mat-mdc-option mdc-list-item',\n },\n styleUrl: 'option.css',\n templateUrl: 'option.html',\n encapsulation: ViewEncapsulation.None,\n imports: [MatPseudoCheckbox, MatRipple],\n})\nexport class MatOption implements FocusableOption, AfterViewChecked, OnDestroy {\n private _element = inject>(ElementRef);\n _changeDetectorRef = inject(ChangeDetectorRef);\n private _parent = inject(MAT_OPTION_PARENT_COMPONENT, {optional: true});\n group = inject(MAT_OPTGROUP, {optional: true});\n\n private _signalDisableRipple = false;\n private _selected = false;\n private _active = false;\n private _mostRecentViewValue = '';\n\n /** Whether the wrapping component is in multiple selection mode. */\n get multiple() {\n return this._parent && this._parent.multiple;\n }\n\n /** Whether or not the option is currently selected. */\n get selected(): boolean {\n return this._selected;\n }\n\n /** The form value of the option. */\n @Input() value!: T;\n\n /** The unique ID of the option. */\n @Input() id: string = inject(_IdGenerator).getId('mat-option-');\n\n /** Whether the option is disabled. */\n @Input({transform: booleanAttribute})\n get disabled(): boolean {\n return (this.group && this.group.disabled) || this._disabled();\n }\n set disabled(value: boolean) {\n this._disabled.set(value);\n }\n private _disabled = signal(false);\n\n /** Whether ripples for the option are disabled. */\n get disableRipple(): boolean {\n return this._signalDisableRipple\n ? (this._parent!.disableRipple as Signal)()\n : !!this._parent?.disableRipple;\n }\n\n /** Whether to display checkmark for single-selection. */\n get hideSingleSelectionIndicator(): boolean {\n return !!(this._parent && this._parent.hideSingleSelectionIndicator);\n }\n\n /** Event emitted when the option is selected or deselected. */\n // tslint:disable-next-line:no-output-on-prefix\n @Output() readonly onSelectionChange = new EventEmitter>();\n\n /** Element containing the option's text. */\n @ViewChild('text', {static: true}) _text: ElementRef | undefined;\n\n /** Emits when the state of the option changes and any parents have to be notified. */\n readonly _stateChanges = new Subject();\n\n constructor() {\n const styleLoader = inject(_CdkPrivateStyleLoader);\n styleLoader.load(_StructuralStylesLoader);\n styleLoader.load(_VisuallyHiddenLoader);\n this._signalDisableRipple = !!this._parent && isSignal(this._parent.disableRipple);\n }\n\n /**\n * Whether or not the option is currently active and ready to be selected.\n * An active option displays styles as if it is focused, but the\n * focus is actually retained somewhere else. This comes in handy\n * for components like autocomplete where focus must remain on the input.\n */\n get active(): boolean {\n return this._active;\n }\n\n /**\n * The displayed value of the option. It is necessary to show the selected option in the\n * select's trigger.\n */\n get viewValue(): string {\n // TODO(kara): Add input property alternative for node envs.\n return (this._text?.nativeElement.textContent || '').trim();\n }\n\n /** Selects the option. */\n select(emitEvent = true): void {\n if (!this._selected) {\n this._selected = true;\n this._changeDetectorRef.markForCheck();\n\n if (emitEvent) {\n this._emitSelectionChangeEvent();\n }\n }\n }\n\n /** Deselects the option. */\n deselect(emitEvent = true): void {\n if (this._selected) {\n this._selected = false;\n this._changeDetectorRef.markForCheck();\n\n if (emitEvent) {\n this._emitSelectionChangeEvent();\n }\n }\n }\n\n /** Sets focus onto this option. */\n focus(_origin?: FocusOrigin, options?: FocusOptions): void {\n // Note that we aren't using `_origin`, but we need to keep it because some internal consumers\n // use `MatOption` in a `FocusKeyManager` and we need it to match `FocusableOption`.\n const element = this._getHostElement();\n\n if (typeof element.focus === 'function') {\n element.focus(options);\n }\n }\n\n /**\n * This method sets display styles on the option to make it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setActiveStyles(): void {\n if (!this._active) {\n this._active = true;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * This method removes display styles on the option that made it appear\n * active. This is used by the ActiveDescendantKeyManager so key\n * events will display the proper options as active on arrow key events.\n */\n setInactiveStyles(): void {\n if (this._active) {\n this._active = false;\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel(): string {\n return this.viewValue;\n }\n\n /** Ensures the option is selected when activated from the keyboard. */\n _handleKeydown(event: KeyboardEvent): void {\n if ((event.keyCode === ENTER || event.keyCode === SPACE) && !hasModifierKey(event)) {\n this._selectViaInteraction();\n\n // Prevent the page from scrolling down and form submits.\n event.preventDefault();\n }\n }\n\n /**\n * `Selects the option while indicating the selection came from the user. Used to\n * determine if the select's view -> model callback should be invoked.`\n */\n _selectViaInteraction(): void {\n if (!this.disabled) {\n this._selected = this.multiple ? !this._selected : true;\n this._changeDetectorRef.markForCheck();\n this._emitSelectionChangeEvent(true);\n }\n }\n\n /** Returns the correct tabindex for the option depending on disabled state. */\n // This method is only used by `MatLegacyOption`. Keeping it here to avoid breaking the types.\n // That's because `MatLegacyOption` use `MatOption` type in a few places such as\n // `MatOptionSelectionChange`. It is safe to delete this when `MatLegacyOption` is deleted.\n _getTabIndex(): string {\n return this.disabled ? '-1' : '0';\n }\n\n /** Gets the host DOM element. */\n _getHostElement(): HTMLElement {\n return this._element.nativeElement;\n }\n\n ngAfterViewChecked() {\n // Since parent components could be using the option's label to display the selected values\n // (e.g. `mat-select`) and they don't have a way of knowing if the option's label has changed\n // we have to check for changes in the DOM ourselves and dispatch an event. These checks are\n // relatively cheap, however we still limit them only to selected options in order to avoid\n // hitting the DOM too often.\n if (this._selected) {\n const viewValue = this.viewValue;\n\n if (viewValue !== this._mostRecentViewValue) {\n if (this._mostRecentViewValue) {\n this._stateChanges.next();\n }\n\n this._mostRecentViewValue = viewValue;\n }\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n\n /** Emits the selection change event. */\n private _emitSelectionChangeEvent(isUserInput = false): void {\n this.onSelectionChange.emit(new MatOptionSelectionChange(this, isUserInput));\n }\n}\n\n/**\n * Counts the amount of option group labels that precede the specified option.\n * @param optionIndex Index of the option at which to start counting.\n * @param options Flat list of all of the options.\n * @param optionGroups Flat list of all of the option groups.\n * @docs-private\n */\nexport function _countGroupLabelsBeforeOption(\n optionIndex: number,\n options: QueryList,\n optionGroups: QueryList,\n): number {\n if (optionGroups.length) {\n let optionsArray = options.toArray();\n let groups = optionGroups.toArray();\n let groupCounter = 0;\n\n for (let i = 0; i < optionIndex + 1; i++) {\n if (optionsArray[i].group && optionsArray[i].group === groups[groupCounter]) {\n groupCounter++;\n }\n }\n\n return groupCounter;\n }\n\n return 0;\n}\n\n/**\n * Determines the position to which to scroll a panel in order for an option to be into view.\n * @param optionOffset Offset of the option from the top of the panel.\n * @param optionHeight Height of the options.\n * @param currentScrollPosition Current scroll position of the panel.\n * @param panelHeight Height of the panel.\n * @docs-private\n */\nexport function _getOptionScrollPosition(\n optionOffset: number,\n optionHeight: number,\n currentScrollPosition: number,\n panelHeight: number,\n): number {\n if (optionOffset < currentScrollPosition) {\n return optionOffset;\n }\n\n if (optionOffset + optionHeight > currentScrollPosition + panelHeight) {\n return Math.max(0, optionOffset - panelHeight + optionHeight);\n }\n\n return currentScrollPosition;\n}\n","\n@if (multiple) {\n \n}\n\n\n\n\n\n\n@if (!multiple && selected && !hideSingleSelectionIndicator) {\n \n}\n\n\n@if (group && group._inert) {\n ({{ group.label }})\n}\n\n
\n
\n"],"names":["MAT_OPTION_PARENT_COMPONENT","InjectionToken","MAT_OPTGROUP","MatOptgroup","label","disabled","_labelId","inject","_IdGenerator","getId","_inert","constructor","parent","optional","inertGroups","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isStandalone","selector","inputs","booleanAttribute","host","properties","classAttribute","providers","provide","useExisting","styles","encapsulation","ViewEncapsulation","None","decorators","args","template","Input","transform","MatOptionSelectionChange","source","isUserInput","MatOption","_element","ElementRef","_changeDetectorRef","ChangeDetectorRef","_parent","group","_signalDisableRipple","_selected","_active","_mostRecentViewValue","multiple","selected","value","id","_disabled","set","signal","disableRipple","hideSingleSelectionIndicator","onSelectionChange","EventEmitter","_text","_stateChanges","Subject","styleLoader","_CdkPrivateStyleLoader","load","_StructuralStylesLoader","_VisuallyHiddenLoader","isSignal","active","viewValue","nativeElement","textContent","trim","select","emitEvent","markForCheck","_emitSelectionChangeEvent","deselect","focus","_origin","options","element","_getHostElement","setActiveStyles","setInactiveStyles","getLabel","_handleKeydown","event","keyCode","ENTER","SPACE","hasModifierKey","_selectViaInteraction","preventDefault","_getTabIndex","ngAfterViewChecked","next","ngOnDestroy","complete","emit","outputs","attributes","listeners","viewQueries","propertyName","first","predicate","descendants","static","exportAs","ngImport","dependencies","kind","MatPseudoCheckbox","MatRipple","imports","Output","ViewChild","_countGroupLabelsBeforeOption","optionIndex","optionGroups","length","optionsArray","toArray","groups","groupCounter","i","_getOptionScrollPosition","optionOffset","optionHeight","currentScrollPosition","panelHeight","Math","max"],"mappings":"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"} \ No newline at end of file diff --git a/fesm2022/_option-module-chunk.mjs b/fesm2022/_option-module-chunk.mjs index 8c69b3c9f3..4a3e59c593 100755 --- a/fesm2022/_option-module-chunk.mjs +++ b/fesm2022/_option-module-chunk.mjs @@ -8,7 +8,7 @@ import { MatOption, MatOptgroup } from './_option-chunk.mjs'; class MatOptionModule { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatOptionModule, deps: [], @@ -16,7 +16,7 @@ class MatOptionModule { }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatOptionModule, imports: [MatRippleModule, MatPseudoCheckboxModule, MatOption, MatOptgroup], @@ -24,7 +24,7 @@ class MatOptionModule { }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatOptionModule, imports: [MatRippleModule, MatPseudoCheckboxModule, MatOption, BidiModule] @@ -32,7 +32,7 @@ class MatOptionModule { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatOptionModule, decorators: [{ diff --git a/fesm2022/_option-module-chunk.mjs.map b/fesm2022/_option-module-chunk.mjs.map index 5f896cb0c4..126d760d1c 100755 --- a/fesm2022/_option-module-chunk.mjs.map +++ b/fesm2022/_option-module-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_option-module-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/option-module.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 {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatRippleModule} from '../ripple/ripple-module';\nimport {MatPseudoCheckboxModule} from '../selection/pseudo-checkbox/pseudo-checkbox-module';\nimport {MatOption} from './option';\nimport {MatOptgroup} from './optgroup';\n\n@NgModule({\n imports: [MatRippleModule, MatPseudoCheckboxModule, MatOption, MatOptgroup],\n exports: [MatOption, MatOptgroup, BidiModule],\n})\nexport class MatOptionModule {}\n"],"names":["MatOptionModule","deps","target","i0","ɵɵFactoryTarget","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","ngImport","type","imports","MatRippleModule","MatPseudoCheckboxModule","MatOption","MatOptgroup","exports","BidiModule","ɵinj","ɵɵngDeclareInjector","decorators","args"],"mappings":";;;;;;;MAmBaA,eAAe,CAAA;;;;;UAAfA,eAAe;AAAAC,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAf,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,mBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,gBAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAX,eAAe;IAAAY,OAAA,EAAA,CAHhBC,eAAe,EAAEC,uBAAuB,EAAEC,SAAS,EAAEC,WAAW,CAAA;AAAAC,IAAAA,OAAA,EAAA,CAChEF,SAAS,EAAEC,WAAW,EAAEE,UAAU;AAAA,GAAA,CAAA;AAEjC,EAAA,OAAAC,IAAA,GAAAhB,EAAA,CAAAiB,mBAAA,CAAA;AAAAZ,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,gBAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAX,eAAe;cAHhBa,eAAe,EAAEC,uBAAuB,EAAEC,SAAS,EAC3BG,UAAU;AAAA,GAAA,CAAA;;;;;;QAEjClB,eAAe;AAAAqB,EAAAA,UAAA,EAAA,CAAA;UAJ3BhB,QAAQ;AAACiB,IAAAA,IAAA,EAAA,CAAA;MACRV,OAAO,EAAE,CAACC,eAAe,EAAEC,uBAAuB,EAAEC,SAAS,EAAEC,WAAW,CAAC;AAC3EC,MAAAA,OAAO,EAAE,CAACF,SAAS,EAAEC,WAAW,EAAEE,UAAU;KAC7C;;;;;;"} \ No newline at end of file +{"version":3,"file":"_option-module-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/option/option-module.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 {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatRippleModule} from '../ripple/ripple-module';\nimport {MatPseudoCheckboxModule} from '../selection/pseudo-checkbox/pseudo-checkbox-module';\nimport {MatOption} from './option';\nimport {MatOptgroup} from './optgroup';\n\n@NgModule({\n imports: [MatRippleModule, MatPseudoCheckboxModule, MatOption, MatOptgroup],\n exports: [MatOption, MatOptgroup, BidiModule],\n})\nexport class MatOptionModule {}\n"],"names":["MatOptionModule","deps","target","i0","ɵɵFactoryTarget","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","ngImport","type","imports","MatRippleModule","MatPseudoCheckboxModule","MatOption","MatOptgroup","exports","BidiModule","ɵinj","ɵɵngDeclareInjector","decorators","args"],"mappings":";;;;;;;MAmBaA,eAAe,CAAA;;;;;UAAfA,eAAe;AAAAC,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAf,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,mBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAX,eAAe;IAAAY,OAAA,EAAA,CAHhBC,eAAe,EAAEC,uBAAuB,EAAEC,SAAS,EAAEC,WAAW,CAAA;AAAAC,IAAAA,OAAA,EAAA,CAChEF,SAAS,EAAEC,WAAW,EAAEE,UAAU;AAAA,GAAA,CAAA;AAEjC,EAAA,OAAAC,IAAA,GAAAhB,EAAA,CAAAiB,mBAAA,CAAA;AAAAZ,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAX,eAAe;cAHhBa,eAAe,EAAEC,uBAAuB,EAAEC,SAAS,EAC3BG,UAAU;AAAA,GAAA,CAAA;;;;;;QAEjClB,eAAe;AAAAqB,EAAAA,UAAA,EAAA,CAAA;UAJ3BhB,QAAQ;AAACiB,IAAAA,IAAA,EAAA,CAAA;MACRV,OAAO,EAAE,CAACC,eAAe,EAAEC,uBAAuB,EAAEC,SAAS,EAAEC,WAAW,CAAC;AAC3EC,MAAAA,OAAO,EAAE,CAACF,SAAS,EAAEC,WAAW,EAAEE,UAAU;KAC7C;;;;;;"} \ No newline at end of file diff --git a/fesm2022/_pseudo-checkbox-chunk.mjs b/fesm2022/_pseudo-checkbox-chunk.mjs index 3cf2d76790..c8de3443e7 100755 --- a/fesm2022/_pseudo-checkbox-chunk.mjs +++ b/fesm2022/_pseudo-checkbox-chunk.mjs @@ -1,5 +1,5 @@ import * as i0 from '@angular/core'; -import { Input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core'; +import { Input, ViewEncapsulation, Component } from '@angular/core'; import { _animationsDisabled } from './_animation-chunk.mjs'; class MatPseudoCheckbox { @@ -9,7 +9,7 @@ class MatPseudoCheckbox { appearance = 'full'; static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatPseudoCheckbox, deps: [], @@ -17,7 +17,7 @@ class MatPseudoCheckbox { }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatPseudoCheckbox, isStandalone: true, selector: "mat-pseudo-checkbox", @@ -41,20 +41,18 @@ class MatPseudoCheckbox { template: '', isInline: true, styles: [".mat-pseudo-checkbox {\n border-radius: 2px;\n cursor: pointer;\n display: inline-block;\n vertical-align: middle;\n box-sizing: border-box;\n position: relative;\n flex-shrink: 0;\n transition: border-color 90ms cubic-bezier(0, 0, 0.2, 0.1), background-color 90ms cubic-bezier(0, 0, 0.2, 0.1);\n}\n.mat-pseudo-checkbox::after {\n position: absolute;\n opacity: 0;\n content: \"\";\n border-bottom: 2px solid currentColor;\n transition: opacity 90ms cubic-bezier(0, 0, 0.2, 0.1);\n}\n.mat-pseudo-checkbox._mat-animation-noopable {\n transition: none !important;\n animation: none !important;\n}\n.mat-pseudo-checkbox._mat-animation-noopable::after {\n transition: none;\n}\n\n.mat-pseudo-checkbox-disabled {\n cursor: default;\n}\n\n.mat-pseudo-checkbox-indeterminate::after {\n left: 1px;\n opacity: 1;\n border-radius: 2px;\n}\n\n.mat-pseudo-checkbox-checked::after {\n left: 1px;\n border-left: 2px solid currentColor;\n transform: rotate(-45deg);\n opacity: 1;\n box-sizing: content-box;\n}\n\n.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after, .mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after {\n color: var(--mat-pseudo-checkbox-minimal-selected-checkmark-color, var(--mat-sys-primary));\n}\n.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after, .mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after {\n color: var(--mat-pseudo-checkbox-minimal-disabled-selected-checkmark-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n\n.mat-pseudo-checkbox-full {\n border-color: var(--mat-pseudo-checkbox-full-unselected-icon-color, var(--mat-sys-on-surface-variant));\n border-width: 2px;\n border-style: solid;\n}\n.mat-pseudo-checkbox-full.mat-pseudo-checkbox-disabled {\n border-color: var(--mat-pseudo-checkbox-full-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked, .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate {\n background-color: var(--mat-pseudo-checkbox-full-selected-icon-color, var(--mat-sys-primary));\n border-color: transparent;\n}\n.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after, .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after {\n color: var(--mat-pseudo-checkbox-full-selected-checkmark-color, var(--mat-sys-on-primary));\n}\n.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled, .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {\n background-color: var(--mat-pseudo-checkbox-full-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));\n}\n.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled::after, .mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled::after {\n color: var(--mat-pseudo-checkbox-full-disabled-selected-checkmark-color, var(--mat-sys-surface));\n}\n\n.mat-pseudo-checkbox {\n width: 18px;\n height: 18px;\n}\n\n.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-checked::after {\n width: 14px;\n height: 6px;\n transform-origin: center;\n top: -4.2426406871px;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n}\n.mat-pseudo-checkbox-minimal.mat-pseudo-checkbox-indeterminate::after {\n top: 8px;\n width: 16px;\n}\n\n.mat-pseudo-checkbox-full.mat-pseudo-checkbox-checked::after {\n width: 10px;\n height: 4px;\n transform-origin: center;\n top: -2.8284271247px;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n}\n.mat-pseudo-checkbox-full.mat-pseudo-checkbox-indeterminate::after {\n top: 6px;\n width: 12px;\n}\n"], - changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatPseudoCheckbox, decorators: [{ type: Component, args: [{ encapsulation: ViewEncapsulation.None, - changeDetection: ChangeDetectionStrategy.OnPush, selector: 'mat-pseudo-checkbox', template: '', host: { diff --git a/fesm2022/_pseudo-checkbox-chunk.mjs.map b/fesm2022/_pseudo-checkbox-chunk.mjs.map index cec03491f1..1f9fc347c2 100755 --- a/fesm2022/_pseudo-checkbox-chunk.mjs.map +++ b/fesm2022/_pseudo-checkbox-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_pseudo-checkbox-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/selection/pseudo-checkbox/pseudo-checkbox.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 {Component, ViewEncapsulation, Input, ChangeDetectionStrategy} from '@angular/core';\nimport {_animationsDisabled} from '../../animation/animation';\n\n/**\n * Possible states for a pseudo checkbox.\n * @docs-private\n */\nexport type MatPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `mat-primary .mat-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\n@Component({\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'mat-pseudo-checkbox',\n styleUrl: 'pseudo-checkbox.css',\n template: '',\n host: {\n 'class': 'mat-pseudo-checkbox',\n '[class.mat-pseudo-checkbox-indeterminate]': 'state === \"indeterminate\"',\n '[class.mat-pseudo-checkbox-checked]': 'state === \"checked\"',\n '[class.mat-pseudo-checkbox-disabled]': 'disabled',\n '[class.mat-pseudo-checkbox-minimal]': 'appearance === \"minimal\"',\n '[class.mat-pseudo-checkbox-full]': 'appearance === \"full\"',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n },\n})\nexport class MatPseudoCheckbox {\n _animationsDisabled = _animationsDisabled();\n\n /** Display state of the checkbox. */\n @Input() state: MatPseudoCheckboxState = 'unchecked';\n\n /** Whether the checkbox is disabled. */\n @Input() disabled: boolean = false;\n\n /**\n * Appearance of the pseudo checkbox. Default appearance of 'full' renders a checkmark/mixedmark\n * indicator inside a square box. 'minimal' appearance only renders the checkmark/mixedmark.\n */\n @Input() appearance: 'minimal' | 'full' = 'full';\n}\n"],"names":["MatPseudoCheckbox","_animationsDisabled","state","disabled","appearance","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isInline","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators","selector","template","host","Input"],"mappings":";;;;MA8CaA,iBAAiB,CAAA;EAC5BC,mBAAmB,GAAGA,mBAAmB,EAAE;AAGlCC,EAAAA,KAAK,GAA2B,WAAW;AAG3CC,EAAAA,QAAQ,GAAY,KAAK;AAMzBC,EAAAA,UAAU,GAAuB,MAAM;;;;;UAbrCJ,iBAAiB;AAAAK,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAjB,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,gBAAA;AAAAC,IAAAA,IAAA,EAAAd,iBAAiB;;;;;;;;;;;;;;;;;;;;cAXlB,EAAE;AAAAe,IAAAA,QAAA,EAAA,IAAA;IAAAC,MAAA,EAAA,CAAA,8sHAAA,CAAA;AAAAC,IAAAA,eAAA,EAAAV,EAAA,CAAAW,uBAAA,CAAAC,MAAA;AAAAC,IAAAA,aAAA,EAAAb,EAAA,CAAAc,iBAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;QAWDtB,iBAAiB;AAAAuB,EAAAA,UAAA,EAAA,CAAA;UAhB7Bd,SAAS;;qBACOY,iBAAiB,CAACC,IAAI;MAAAL,eAAA,EACpBC,uBAAuB,CAACC,MAAM;AAAAK,MAAAA,QAAA,EACrC,qBAAqB;AAAAC,MAAAA,QAAA,EAErB,EAAE;AAAAC,MAAAA,IAAA,EACN;AACJ,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,2CAA2C,EAAE,2BAA2B;AACxE,QAAA,qCAAqC,EAAE,qBAAqB;AAC5D,QAAA,sCAAsC,EAAE,UAAU;AAClD,QAAA,qCAAqC,EAAE,0BAA0B;AACjE,QAAA,kCAAkC,EAAE,uBAAuB;AAC3D,QAAA,iCAAiC,EAAE;OACpC;MAAAV,MAAA,EAAA,CAAA,8sHAAA;KAAA;;;;YAMAW;;;YAGAA;;;YAMAA;;;;;;;"} \ No newline at end of file +{"version":3,"file":"_pseudo-checkbox-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/selection/pseudo-checkbox/pseudo-checkbox.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 {Component, ViewEncapsulation, Input} from '@angular/core';\nimport {_animationsDisabled} from '../../animation/animation';\n\n/**\n * Possible states for a pseudo checkbox.\n * @docs-private\n */\nexport type MatPseudoCheckboxState = 'unchecked' | 'checked' | 'indeterminate';\n\n/**\n * Component that shows a simplified checkbox without including any kind of \"real\" checkbox.\n * Meant to be used when the checkbox is purely decorative and a large number of them will be\n * included, such as for the options in a multi-select. Uses no SVGs or complex animations.\n * Note that theming is meant to be handled by the parent element, e.g.\n * `mat-primary .mat-pseudo-checkbox`.\n *\n * Note that this component will be completely invisible to screen-reader users. This is *not*\n * interchangeable with `` and should *not* be used if the user would directly\n * interact with the checkbox. The pseudo-checkbox should only be used as an implementation detail\n * of more complex components that appropriately handle selected / checked state.\n * @docs-private\n */\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'mat-pseudo-checkbox',\n styleUrl: 'pseudo-checkbox.css',\n template: '',\n host: {\n 'class': 'mat-pseudo-checkbox',\n '[class.mat-pseudo-checkbox-indeterminate]': 'state === \"indeterminate\"',\n '[class.mat-pseudo-checkbox-checked]': 'state === \"checked\"',\n '[class.mat-pseudo-checkbox-disabled]': 'disabled',\n '[class.mat-pseudo-checkbox-minimal]': 'appearance === \"minimal\"',\n '[class.mat-pseudo-checkbox-full]': 'appearance === \"full\"',\n '[class._mat-animation-noopable]': '_animationsDisabled',\n },\n})\nexport class MatPseudoCheckbox {\n _animationsDisabled = _animationsDisabled();\n\n /** Display state of the checkbox. */\n @Input() state: MatPseudoCheckboxState = 'unchecked';\n\n /** Whether the checkbox is disabled. */\n @Input() disabled: boolean = false;\n\n /**\n * Appearance of the pseudo checkbox. Default appearance of 'full' renders a checkmark/mixedmark\n * indicator inside a square box. 'minimal' appearance only renders the checkmark/mixedmark.\n */\n @Input() appearance: 'minimal' | 'full' = 'full';\n}\n"],"names":["MatPseudoCheckbox","_animationsDisabled","state","disabled","appearance","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isInline","styles","encapsulation","ViewEncapsulation","None","decorators","args","selector","template","host","Input"],"mappings":";;;;MA6CaA,iBAAiB,CAAA;EAC5BC,mBAAmB,GAAGA,mBAAmB,EAAE;AAGlCC,EAAAA,KAAK,GAA2B,WAAW;AAG3CC,EAAAA,QAAQ,GAAY,KAAK;AAMzBC,EAAAA,UAAU,GAAuB,MAAM;;;;;UAbrCJ,iBAAiB;AAAAK,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAjB,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,oBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,IAAA,EAAAd,iBAAiB;;;;;;;;;;;;;;;;;;;;cAXlB,EAAE;AAAAe,IAAAA,QAAA,EAAA,IAAA;IAAAC,MAAA,EAAA,CAAA,8sHAAA,CAAA;AAAAC,IAAAA,aAAA,EAAAV,EAAA,CAAAW,iBAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;QAWDnB,iBAAiB;AAAAoB,EAAAA,UAAA,EAAA,CAAA;UAf7BX,SAAS;AACOY,IAAAA,IAAA,EAAA,CAAA;MAAAJ,aAAA,EAAAC,iBAAiB,CAACC,IAAI;AAAAG,MAAAA,QAAA,EAC3B,qBAAqB;AAAAC,MAAAA,QAAA,EAErB,EAAE;AAAAC,MAAAA,IAAA,EACN;AACJ,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,2CAA2C,EAAE,2BAA2B;AACxE,QAAA,qCAAqC,EAAE,qBAAqB;AAC5D,QAAA,sCAAsC,EAAE,UAAU;AAClD,QAAA,qCAAqC,EAAE,0BAA0B;AACjE,QAAA,kCAAkC,EAAE,uBAAuB;AAC3D,QAAA,iCAAiC,EAAE;OACpC;MAAAR,MAAA,EAAA,CAAA,8sHAAA;KAAA;;;;YAMAS;;;YAGAA;;;YAMAA;;;;;;;"} \ No newline at end of file diff --git a/fesm2022/_pseudo-checkbox-module-chunk.mjs b/fesm2022/_pseudo-checkbox-module-chunk.mjs index d7656236ab..529ed95a6a 100755 --- a/fesm2022/_pseudo-checkbox-module-chunk.mjs +++ b/fesm2022/_pseudo-checkbox-module-chunk.mjs @@ -6,7 +6,7 @@ import { MatPseudoCheckbox } from './_pseudo-checkbox-chunk.mjs'; class MatPseudoCheckboxModule { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatPseudoCheckboxModule, deps: [], @@ -14,7 +14,7 @@ class MatPseudoCheckboxModule { }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatPseudoCheckboxModule, imports: [MatPseudoCheckbox], @@ -22,7 +22,7 @@ class MatPseudoCheckboxModule { }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatPseudoCheckboxModule, imports: [BidiModule] @@ -30,7 +30,7 @@ class MatPseudoCheckboxModule { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatPseudoCheckboxModule, decorators: [{ diff --git a/fesm2022/_pseudo-checkbox-module-chunk.mjs.map b/fesm2022/_pseudo-checkbox-module-chunk.mjs.map index 7ffccdd200..b4cd30e29b 100755 --- a/fesm2022/_pseudo-checkbox-module-chunk.mjs.map +++ b/fesm2022/_pseudo-checkbox-module-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_pseudo-checkbox-module-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/selection/pseudo-checkbox/pseudo-checkbox-module.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 {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatPseudoCheckbox} from './pseudo-checkbox';\n\n@NgModule({\n imports: [MatPseudoCheckbox],\n exports: [MatPseudoCheckbox, BidiModule],\n})\nexport class MatPseudoCheckboxModule {}\n"],"names":["MatPseudoCheckboxModule","deps","target","i0","ɵɵFactoryTarget","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","ngImport","type","imports","MatPseudoCheckbox","exports","BidiModule","ɵinj","ɵɵngDeclareInjector","decorators","args"],"mappings":";;;;;MAgBaA,uBAAuB,CAAA;;;;;UAAvBA,uBAAuB;AAAAC,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAvB,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,mBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,gBAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAX,uBAAuB;IAAAY,OAAA,EAAA,CAHxBC,iBAAiB,CAAA;AAAAC,IAAAA,OAAA,EAAA,CACjBD,iBAAiB,EAAEE,UAAU;AAAA,GAAA,CAAA;AAE5B,EAAA,OAAAC,IAAA,GAAAb,EAAA,CAAAc,mBAAA,CAAA;AAAAT,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,gBAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAX,uBAAuB;cAFLe,UAAU;AAAA,GAAA,CAAA;;;;;;QAE5Bf,uBAAuB;AAAAkB,EAAAA,UAAA,EAAA,CAAA;UAJnCb,QAAQ;AAACc,IAAAA,IAAA,EAAA,CAAA;MACRP,OAAO,EAAE,CAACC,iBAAiB,CAAC;AAC5BC,MAAAA,OAAO,EAAE,CAACD,iBAAiB,EAAEE,UAAU;KACxC;;;;;;"} \ No newline at end of file +{"version":3,"file":"_pseudo-checkbox-module-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/selection/pseudo-checkbox/pseudo-checkbox-module.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 {BidiModule} from '@angular/cdk/bidi';\nimport {NgModule} from '@angular/core';\nimport {MatPseudoCheckbox} from './pseudo-checkbox';\n\n@NgModule({\n imports: [MatPseudoCheckbox],\n exports: [MatPseudoCheckbox, BidiModule],\n})\nexport class MatPseudoCheckboxModule {}\n"],"names":["MatPseudoCheckboxModule","deps","target","i0","ɵɵFactoryTarget","NgModule","ɵmod","ɵɵngDeclareNgModule","minVersion","version","ngImport","type","imports","MatPseudoCheckbox","exports","BidiModule","ɵinj","ɵɵngDeclareInjector","decorators","args"],"mappings":";;;;;MAgBaA,uBAAuB,CAAA;;;;;UAAvBA,uBAAuB;AAAAC,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAvB,EAAA,OAAAC,IAAA,GAAAH,EAAA,CAAAI,mBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAX,uBAAuB;IAAAY,OAAA,EAAA,CAHxBC,iBAAiB,CAAA;AAAAC,IAAAA,OAAA,EAAA,CACjBD,iBAAiB,EAAEE,UAAU;AAAA,GAAA,CAAA;AAE5B,EAAA,OAAAC,IAAA,GAAAb,EAAA,CAAAc,mBAAA,CAAA;AAAAT,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAX,uBAAuB;cAFLe,UAAU;AAAA,GAAA,CAAA;;;;;;QAE5Bf,uBAAuB;AAAAkB,EAAAA,UAAA,EAAA,CAAA;UAJnCb,QAAQ;AAACc,IAAAA,IAAA,EAAA,CAAA;MACRP,OAAO,EAAE,CAACC,iBAAiB,CAAC;AAC5BC,MAAAA,OAAO,EAAE,CAACD,iBAAiB,EAAEE,UAAU;KACxC;;;;;;"} \ No newline at end of file diff --git a/fesm2022/_public-api-chunk.mjs b/fesm2022/_public-api-chunk.mjs index b597bb4b17..43f8e4d1f9 100755 --- a/fesm2022/_public-api-chunk.mjs +++ b/fesm2022/_public-api-chunk.mjs @@ -24,8 +24,8 @@ class TileCoordinator { return new TilePosition(this.rowIndex, gapStartIndex); } _findMatchingGap(tileCols) { - if (tileCols > this.tracker.length && (typeof ngDevMode === 'undefined' || ngDevMode)) { - throw Error(`mat-grid-list: tile with colspan ${tileCols} is wider than ` + `grid with cols="${this.tracker.length}".`); + if (tileCols > this.tracker.length) { + throw Error(`mat-grid-list: tile with colspan ${tileCols} is wider than grid with cols="${this.tracker.length}".`); } let gapStartIndex = -1; let gapEndIndex = -1; diff --git a/fesm2022/_public-api-chunk.mjs.map b/fesm2022/_public-api-chunk.mjs.map index cf7f724d07..85ea725a00 100755 --- a/fesm2022/_public-api-chunk.mjs.map +++ b/fesm2022/_public-api-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_public-api-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/grid-list/tile-coordinator.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/grid-list/public-api.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\n/**\n * Interface describing a tile.\n * @docs-private\n */\nexport interface Tile {\n /** Amount of rows that the tile takes up. */\n rowspan: number;\n /** Amount of columns that the tile takes up. */\n colspan: number;\n}\n\n/**\n * Class for determining, from a list of tiles, the (row, col) position of each of those tiles\n * in the grid. This is necessary (rather than just rendering the tiles in normal document flow)\n * because the tiles can have a rowspan.\n *\n * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid\n * large enough to accommodate it so that the tiles still render in the same order in which they\n * are given.\n *\n * The basis of the algorithm is the use of an array to track the already placed tiles. Each\n * element of the array corresponds to a column, and the value indicates how many cells in that\n * column are already occupied; zero indicates an empty cell. Moving \"down\" to the next row\n * decrements each value in the tracking array (indicating that the column is one cell closer to\n * being free).\n *\n * @docs-private\n */\nexport class TileCoordinator {\n /** Tracking array (see class description). */\n tracker!: number[];\n\n /** Index at which the search for the next gap will start. */\n columnIndex: number = 0;\n\n /** The current row index. */\n rowIndex: number = 0;\n\n /** Gets the total number of rows occupied by tiles */\n get rowCount(): number {\n return this.rowIndex + 1;\n }\n\n /**\n * Gets the total span of rows occupied by tiles.\n * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2.\n */\n get rowspan() {\n const lastRowMax = Math.max(...this.tracker);\n // if any of the tiles has a rowspan that pushes it beyond the total row count,\n // add the difference to the rowcount\n return lastRowMax > 1 ? this.rowCount + lastRowMax - 1 : this.rowCount;\n }\n\n /** The computed (row, col) position of each tile (the output). */\n positions!: TilePosition[];\n\n /**\n * Updates the tile positions.\n * @param numColumns Amount of columns in the grid.\n * @param tiles Tiles to be positioned.\n */\n update(numColumns: number, tiles: Tile[]) {\n this.columnIndex = 0;\n this.rowIndex = 0;\n\n this.tracker = new Array(numColumns);\n this.tracker.fill(0, 0, this.tracker.length);\n this.positions = tiles.map(tile => this._trackTile(tile));\n }\n\n /** Calculates the row and col position of a tile. */\n private _trackTile(tile: Tile): TilePosition {\n // Find a gap large enough for this tile.\n const gapStartIndex = this._findMatchingGap(tile.colspan);\n\n // Place tile in the resulting gap.\n this._markTilePosition(gapStartIndex, tile);\n\n // The next time we look for a gap, the search will start at columnIndex, which should be\n // immediately after the tile that has just been placed.\n this.columnIndex = gapStartIndex + tile.colspan;\n\n return new TilePosition(this.rowIndex, gapStartIndex);\n }\n\n /** Finds the next available space large enough to fit the tile. */\n private _findMatchingGap(tileCols: number): number {\n if (tileCols > this.tracker.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(\n `mat-grid-list: tile with colspan ${tileCols} is wider than ` +\n `grid with cols=\"${this.tracker.length}\".`,\n );\n }\n\n // Start index is inclusive, end index is exclusive.\n let gapStartIndex = -1;\n let gapEndIndex = -1;\n\n // Look for a gap large enough to fit the given tile. Empty spaces are marked with a zero.\n do {\n // If we've reached the end of the row, go to the next row.\n if (this.columnIndex + tileCols > this.tracker.length) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n\n // If there are no more empty spaces in this row at all, move on to the next row.\n if (gapStartIndex == -1) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n\n // If a gap large enough isn't found, we want to start looking immediately after the current\n // gap on the next iteration.\n this.columnIndex = gapStartIndex + 1;\n\n // Continue iterating until we find a gap wide enough for this tile. Since gapEndIndex is\n // exclusive, gapEndIndex is 0 means we didn't find a gap and should continue.\n } while (gapEndIndex - gapStartIndex < tileCols || gapEndIndex == 0);\n\n // If we still didn't manage to find a gap, ensure that the index is\n // at least zero so the tile doesn't get pulled out of the grid.\n return Math.max(gapStartIndex, 0);\n }\n\n /** Move \"down\" to the next row. */\n private _nextRow(): void {\n this.columnIndex = 0;\n this.rowIndex++;\n\n // Decrement all spaces by one to reflect moving down one row.\n for (let i = 0; i < this.tracker.length; i++) {\n this.tracker[i] = Math.max(0, this.tracker[i] - 1);\n }\n }\n\n /**\n * Finds the end index (exclusive) of a gap given the index from which to start looking.\n * The gap ends when a non-zero value is found.\n */\n private _findGapEndIndex(gapStartIndex: number): number {\n for (let i = gapStartIndex + 1; i < this.tracker.length; i++) {\n if (this.tracker[i] != 0) {\n return i;\n }\n }\n\n // The gap ends with the end of the row.\n return this.tracker.length;\n }\n\n /** Update the tile tracker to account for the given tile in the given space. */\n private _markTilePosition(start: number, tile: Tile): void {\n for (let i = 0; i < tile.colspan; i++) {\n this.tracker[start + i] = tile.rowspan;\n }\n }\n}\n\n/**\n * Simple data structure for tile position (row, col).\n * @docs-private\n */\nexport class TilePosition {\n constructor(\n public row: number,\n public col: number,\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 */\nimport {TileCoordinator} from './tile-coordinator';\n\nexport * from './grid-list-module';\nexport * from './grid-list';\nexport * from './grid-tile';\n\n// Privately exported for the grid-list harness.\nexport const ɵTileCoordinator = TileCoordinator;\n"],"names":["TileCoordinator","tracker","columnIndex","rowIndex","rowCount","rowspan","lastRowMax","Math","max","positions","update","numColumns","tiles","Array","fill","length","map","tile","_trackTile","gapStartIndex","_findMatchingGap","colspan","_markTilePosition","TilePosition","tileCols","ngDevMode","Error","gapEndIndex","_nextRow","indexOf","_findGapEndIndex","i","start","row","col","constructor","ɵTileCoordinator"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"_public-api-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/grid-list/tile-coordinator.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/grid-list/public-api.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\n/**\n * Interface describing a tile.\n * @docs-private\n */\nexport interface Tile {\n /** Amount of rows that the tile takes up. */\n rowspan: number;\n /** Amount of columns that the tile takes up. */\n colspan: number;\n}\n\n/**\n * Class for determining, from a list of tiles, the (row, col) position of each of those tiles\n * in the grid. This is necessary (rather than just rendering the tiles in normal document flow)\n * because the tiles can have a rowspan.\n *\n * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid\n * large enough to accommodate it so that the tiles still render in the same order in which they\n * are given.\n *\n * The basis of the algorithm is the use of an array to track the already placed tiles. Each\n * element of the array corresponds to a column, and the value indicates how many cells in that\n * column are already occupied; zero indicates an empty cell. Moving \"down\" to the next row\n * decrements each value in the tracking array (indicating that the column is one cell closer to\n * being free).\n *\n * @docs-private\n */\nexport class TileCoordinator {\n /** Tracking array (see class description). */\n tracker!: number[];\n\n /** Index at which the search for the next gap will start. */\n columnIndex: number = 0;\n\n /** The current row index. */\n rowIndex: number = 0;\n\n /** Gets the total number of rows occupied by tiles */\n get rowCount(): number {\n return this.rowIndex + 1;\n }\n\n /**\n * Gets the total span of rows occupied by tiles.\n * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2.\n */\n get rowspan() {\n const lastRowMax = Math.max(...this.tracker);\n // if any of the tiles has a rowspan that pushes it beyond the total row count,\n // add the difference to the rowcount\n return lastRowMax > 1 ? this.rowCount + lastRowMax - 1 : this.rowCount;\n }\n\n /** The computed (row, col) position of each tile (the output). */\n positions!: TilePosition[];\n\n /**\n * Updates the tile positions.\n * @param numColumns Amount of columns in the grid.\n * @param tiles Tiles to be positioned.\n */\n update(numColumns: number, tiles: Tile[]) {\n this.columnIndex = 0;\n this.rowIndex = 0;\n\n this.tracker = new Array(numColumns);\n this.tracker.fill(0, 0, this.tracker.length);\n this.positions = tiles.map(tile => this._trackTile(tile));\n }\n\n /** Calculates the row and col position of a tile. */\n private _trackTile(tile: Tile): TilePosition {\n // Find a gap large enough for this tile.\n const gapStartIndex = this._findMatchingGap(tile.colspan);\n\n // Place tile in the resulting gap.\n this._markTilePosition(gapStartIndex, tile);\n\n // The next time we look for a gap, the search will start at columnIndex, which should be\n // immediately after the tile that has just been placed.\n this.columnIndex = gapStartIndex + tile.colspan;\n\n return new TilePosition(this.rowIndex, gapStartIndex);\n }\n\n /** Finds the next available space large enough to fit the tile. */\n private _findMatchingGap(tileCols: number): number {\n if (tileCols > this.tracker.length) {\n throw Error(\n `mat-grid-list: tile with colspan ${tileCols} is wider than grid with cols=\"${this.tracker.length}\".`,\n );\n }\n\n // Start index is inclusive, end index is exclusive.\n let gapStartIndex = -1;\n let gapEndIndex = -1;\n\n // Look for a gap large enough to fit the given tile. Empty spaces are marked with a zero.\n do {\n // If we've reached the end of the row, go to the next row.\n if (this.columnIndex + tileCols > this.tracker.length) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n\n // If there are no more empty spaces in this row at all, move on to the next row.\n if (gapStartIndex == -1) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n\n // If a gap large enough isn't found, we want to start looking immediately after the current\n // gap on the next iteration.\n this.columnIndex = gapStartIndex + 1;\n\n // Continue iterating until we find a gap wide enough for this tile. Since gapEndIndex is\n // exclusive, gapEndIndex is 0 means we didn't find a gap and should continue.\n } while (gapEndIndex - gapStartIndex < tileCols || gapEndIndex == 0);\n\n // If we still didn't manage to find a gap, ensure that the index is\n // at least zero so the tile doesn't get pulled out of the grid.\n return Math.max(gapStartIndex, 0);\n }\n\n /** Move \"down\" to the next row. */\n private _nextRow(): void {\n this.columnIndex = 0;\n this.rowIndex++;\n\n // Decrement all spaces by one to reflect moving down one row.\n for (let i = 0; i < this.tracker.length; i++) {\n this.tracker[i] = Math.max(0, this.tracker[i] - 1);\n }\n }\n\n /**\n * Finds the end index (exclusive) of a gap given the index from which to start looking.\n * The gap ends when a non-zero value is found.\n */\n private _findGapEndIndex(gapStartIndex: number): number {\n for (let i = gapStartIndex + 1; i < this.tracker.length; i++) {\n if (this.tracker[i] != 0) {\n return i;\n }\n }\n\n // The gap ends with the end of the row.\n return this.tracker.length;\n }\n\n /** Update the tile tracker to account for the given tile in the given space. */\n private _markTilePosition(start: number, tile: Tile): void {\n for (let i = 0; i < tile.colspan; i++) {\n this.tracker[start + i] = tile.rowspan;\n }\n }\n}\n\n/**\n * Simple data structure for tile position (row, col).\n * @docs-private\n */\nexport class TilePosition {\n constructor(\n public row: number,\n public col: number,\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 */\nimport {TileCoordinator} from './tile-coordinator';\n\nexport * from './grid-list-module';\nexport * from './grid-list';\nexport * from './grid-tile';\n\n// Privately exported for the grid-list harness.\nexport const ɵTileCoordinator = TileCoordinator;\n"],"names":["TileCoordinator","tracker","columnIndex","rowIndex","rowCount","rowspan","lastRowMax","Math","max","positions","update","numColumns","tiles","Array","fill","length","map","tile","_trackTile","gapStartIndex","_findMatchingGap","colspan","_markTilePosition","TilePosition","tileCols","Error","gapEndIndex","_nextRow","indexOf","_findGapEndIndex","i","start","row","col","constructor","ɵTileCoordinator"],"mappings":"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"} \ No newline at end of file diff --git a/fesm2022/_ripple-chunk.mjs b/fesm2022/_ripple-chunk.mjs index 81bda6e394..4b2e99be56 100755 --- a/fesm2022/_ripple-chunk.mjs +++ b/fesm2022/_ripple-chunk.mjs @@ -1,6 +1,6 @@ import { _getEventTarget, normalizePassiveListenerOptions, Platform } from '@angular/cdk/platform'; import * as i0 from '@angular/core'; -import { ViewEncapsulation, ChangeDetectionStrategy, Component, InjectionToken, inject, ElementRef, NgZone, Injector, Input, Directive } from '@angular/core'; +import { ViewEncapsulation, Component, InjectionToken, inject, ElementRef, NgZone, Injector, Input, Directive } from '@angular/core'; import { isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader } from '@angular/cdk/a11y'; import { coerceElement } from '@angular/cdk/coercion'; import { _CdkPrivateStyleLoader } from '@angular/cdk/private'; @@ -96,7 +96,7 @@ const pointerUpEvents = ['mouseup', 'mouseleave', 'touchend', 'touchcancel']; class _MatRippleStylesLoader { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: _MatRippleStylesLoader, deps: [], @@ -104,7 +104,7 @@ class _MatRippleStylesLoader { }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: _MatRippleStylesLoader, isStandalone: true, selector: "ng-component", @@ -117,20 +117,18 @@ class _MatRippleStylesLoader { template: '', isInline: true, styles: [".mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple:not(:empty) {\n transform: translateZ(0);\n}\n\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale3d(0, 0, 0);\n background-color: var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent));\n}\n@media (forced-colors: active) {\n .mat-ripple-element {\n display: none;\n }\n}\n.cdk-drag-preview .mat-ripple-element, .cdk-drag-placeholder .mat-ripple-element {\n display: none;\n}\n"], - changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: _MatRippleStylesLoader, decorators: [{ type: Component, args: [{ template: '', - changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'mat-ripple-style-loader': '' @@ -460,7 +458,7 @@ class MatRipple { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatRipple, deps: [], @@ -468,7 +466,7 @@ class MatRipple { }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", - version: "22.0.0-next.10", + version: "22.0.7", type: MatRipple, isStandalone: true, selector: "[mat-ripple], [matRipple]", @@ -493,7 +491,7 @@ class MatRipple { } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", - version: "22.0.0-next.10", + version: "22.0.7", ngImport: i0, type: MatRipple, decorators: [{ diff --git a/fesm2022/_ripple-chunk.mjs.map b/fesm2022/_ripple-chunk.mjs.map index 56fccb90f1..c6dc4292f2 100755 --- a/fesm2022/_ripple-chunk.mjs.map +++ b/fesm2022/_ripple-chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"_ripple-chunk.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/ripple/ripple-ref.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/ripple/ripple-event-manager.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/ripple/ripple-renderer.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/material/core/ripple/ripple.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\n/** Possible states for a ripple element. */\nexport enum RippleState {\n FADING_IN,\n VISIBLE,\n FADING_OUT,\n HIDDEN,\n}\n\nexport type RippleConfig = {\n color?: string;\n centered?: boolean;\n radius?: number;\n persistent?: boolean;\n animation?: RippleAnimationConfig;\n terminateOnPointerUp?: boolean;\n};\n\n/**\n * Interface that describes the configuration for the animation of a ripple.\n * There are two animation phases with different durations for the ripples.\n */\nexport interface RippleAnimationConfig {\n /** Duration in milliseconds for the enter animation (expansion from point of contact). */\n enterDuration?: number;\n /** Duration in milliseconds for the exit animation (fade-out). */\n exitDuration?: number;\n}\n\n/**\n * Reference to a previously launched ripple element.\n */\nexport class RippleRef {\n /** Current state of the ripple. */\n state: RippleState = RippleState.HIDDEN;\n\n constructor(\n private _renderer: {fadeOutRipple(ref: RippleRef): void},\n /** Reference to the ripple HTML element. */\n public element: HTMLElement,\n /** Ripple configuration used for the ripple. */\n public config: RippleConfig,\n /* Whether animations are forcibly disabled for ripples through CSS. */\n public _animationForciblyDisabledThroughCss = false,\n ) {}\n\n /** Fades out the ripple element. */\n fadeOut() {\n this._renderer.fadeOutRipple(this);\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 {normalizePassiveListenerOptions, _getEventTarget} from '@angular/cdk/platform';\nimport {NgZone} from '@angular/core';\n\n/** Options used to bind a passive capturing event. */\nconst passiveCapturingEventOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n\n/** Manages events through delegation so that as few event handlers as possible are bound. */\nexport class RippleEventManager {\n private _events = new Map>>();\n\n /** Adds an event handler. */\n addHandler(ngZone: NgZone, name: string, element: HTMLElement, handler: EventListenerObject) {\n const handlersForEvent = this._events.get(name);\n\n if (handlersForEvent) {\n const handlersForElement = handlersForEvent.get(element);\n\n if (handlersForElement) {\n handlersForElement.add(handler);\n } else {\n handlersForEvent.set(element, new Set([handler]));\n }\n } else {\n this._events.set(name, new Map([[element, new Set([handler])]]));\n\n ngZone.runOutsideAngular(() => {\n document.addEventListener(name, this._delegateEventHandler, passiveCapturingEventOptions);\n });\n }\n }\n\n /** Removes an event handler. */\n removeHandler(name: string, element: HTMLElement, handler: EventListenerObject) {\n const handlersForEvent = this._events.get(name);\n\n if (!handlersForEvent) {\n return;\n }\n\n const handlersForElement = handlersForEvent.get(element);\n\n if (!handlersForElement) {\n return;\n }\n\n handlersForElement.delete(handler);\n\n if (handlersForElement.size === 0) {\n handlersForEvent.delete(element);\n }\n\n if (handlersForEvent.size === 0) {\n this._events.delete(name);\n document.removeEventListener(name, this._delegateEventHandler, passiveCapturingEventOptions);\n }\n }\n\n /** Event handler that is bound and which dispatches the events to the different targets. */\n private _delegateEventHandler = (event: Event) => {\n const target = _getEventTarget(event);\n\n if (target) {\n this._events.get(event.type)?.forEach((handlers, element) => {\n if (element === target || element.contains(target as Node)) {\n handlers.forEach(handler => handler.handleEvent(event));\n }\n });\n }\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 */\nimport {\n ElementRef,\n NgZone,\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Injector,\n} from '@angular/core';\nimport {Platform, normalizePassiveListenerOptions, _getEventTarget} from '@angular/cdk/platform';\nimport {isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader} from '@angular/cdk/a11y';\nimport {coerceElement} from '@angular/cdk/coercion';\nimport {_CdkPrivateStyleLoader} from '@angular/cdk/private';\nimport {RippleRef, RippleState, RippleConfig} from './ripple-ref';\nimport {RippleEventManager} from './ripple-event-manager';\n\n/**\n * Interface that describes the target for launching ripples.\n * It defines the ripple configuration and disabled state for interaction ripples.\n * @docs-private\n */\nexport interface RippleTarget {\n /** Configuration for ripples that are launched on pointer down. */\n rippleConfig: RippleConfig;\n /** Whether ripples on pointer down should be disabled. */\n rippleDisabled: boolean;\n}\n\n/** Interfaces the defines ripple element transition event listeners. */\ninterface RippleEventListeners {\n onTransitionEnd: EventListener;\n onTransitionCancel: EventListener;\n fallbackTimer: ReturnType | null;\n}\n\n/**\n * Default ripple animation configuration for ripples without an explicit\n * animation config specified.\n */\nexport const defaultRippleAnimationConfig = {\n enterDuration: 225,\n exitDuration: 150,\n};\n\n/**\n * Timeout for ignoring mouse events. Mouse events will be temporary ignored after touch\n * events to avoid synthetic mouse events.\n */\nconst ignoreMouseEventsTimeout = 800;\n\n/** Options used to bind a passive capturing event. */\nconst passiveCapturingEventOptions = normalizePassiveListenerOptions({\n passive: true,\n capture: true,\n});\n\n/** Events that signal that the pointer is down. */\nconst pointerDownEvents = ['mousedown', 'touchstart'];\n\n/** Events that signal that the pointer is up. */\nconst pointerUpEvents = ['mouseup', 'mouseleave', 'touchend', 'touchcancel'];\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: 'ripple-structure.css',\n host: {'mat-ripple-style-loader': ''},\n})\nexport class _MatRippleStylesLoader {}\n\n/**\n * Helper service that performs DOM manipulations. Not intended to be used outside this module.\n * The constructor takes a reference to the ripple directive's host element and a map of DOM\n * event handlers to be installed on the element that triggers ripple animations.\n * This will eventually become a custom renderer once Angular support exists.\n * @docs-private\n */\nexport class RippleRenderer implements EventListenerObject {\n /** Element where the ripples are being added to. */\n private _containerElement!: HTMLElement;\n\n /** Element which triggers the ripple elements on mouse events. */\n private _triggerElement: HTMLElement | null = null;\n\n /** Whether the pointer is currently down or not. */\n private _isPointerDown = false;\n\n /**\n * Map of currently active ripple references.\n * The ripple reference is mapped to its element event listeners.\n * The reason why `| null` is used is that event listeners are added only\n * when the condition is truthy (see the `_startFadeOutTransition` method).\n */\n private _activeRipples = new Map();\n\n /** Latest non-persistent ripple that was triggered. */\n private _mostRecentTransientRipple: RippleRef | null = null;\n\n /** Time in milliseconds when the last touchstart event happened. */\n private _lastTouchStartEvent!: number;\n\n /** Whether pointer-up event listeners have been registered. */\n private _pointerUpEventsRegistered = false;\n\n /**\n * Cached dimensions of the ripple container. Set when the first\n * ripple is shown and cleared once no more ripples are visible.\n */\n private _containerRect: DOMRect | null = null;\n\n private static _eventManager = new RippleEventManager();\n\n constructor(\n private _target: RippleTarget,\n private _ngZone: NgZone,\n elementOrElementRef: HTMLElement | ElementRef,\n private _platform: Platform,\n injector?: Injector,\n ) {\n // Only do anything if we're on the browser.\n if (_platform.isBrowser) {\n this._containerElement = coerceElement(elementOrElementRef);\n }\n\n if (injector) {\n injector.get(_CdkPrivateStyleLoader).load(_MatRippleStylesLoader);\n }\n }\n\n /**\n * Fades in a ripple at the given coordinates.\n * @param x Coordinate within the element, along the X axis at which to start the ripple.\n * @param y Coordinate within the element, along the Y axis at which to start the ripple.\n * @param config Extra ripple options.\n */\n fadeInRipple(x: number, y: number, config: RippleConfig = {}): RippleRef {\n const containerRect = (this._containerRect =\n this._containerRect || this._containerElement.getBoundingClientRect());\n const animationConfig = {...defaultRippleAnimationConfig, ...config.animation};\n\n if (config.centered) {\n x = containerRect.left + containerRect.width / 2;\n y = containerRect.top + containerRect.height / 2;\n }\n\n const radius = config.radius || distanceToFurthestCorner(x, y, containerRect);\n const offsetX = x - containerRect.left;\n const offsetY = y - containerRect.top;\n const enterDuration = animationConfig.enterDuration;\n\n const ripple = document.createElement('div');\n ripple.classList.add('mat-ripple-element');\n\n ripple.style.left = `${offsetX - radius}px`;\n ripple.style.top = `${offsetY - radius}px`;\n ripple.style.height = `${radius * 2}px`;\n ripple.style.width = `${radius * 2}px`;\n\n // If a custom color has been specified, set it as inline style. If no color is\n // set, the default color will be applied through the ripple theme styles.\n if (config.color != null) {\n ripple.style.backgroundColor = config.color;\n }\n\n ripple.style.transitionDuration = `${enterDuration}ms`;\n\n this._containerElement.appendChild(ripple);\n\n // By default the browser does not recalculate the styles of dynamically created\n // ripple elements. This is critical to ensure that the `scale` animates properly.\n // We enforce a style recalculation by calling `getComputedStyle` and *accessing* a property.\n // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n const computedStyles = window.getComputedStyle(ripple);\n const userTransitionProperty = computedStyles.transitionProperty;\n const userTransitionDuration = computedStyles.transitionDuration;\n\n // Note: We detect whether animation is forcibly disabled through CSS (e.g. through\n // `transition: none` or `display: none`). This is technically unexpected since animations are\n // controlled through the animation config, but this exists for backwards compatibility. This\n // logic does not need to be super accurate since it covers some edge cases which can be easily\n // avoided by users.\n const animationForciblyDisabledThroughCss =\n userTransitionProperty === 'none' ||\n // Note: The canonical unit for serialized CSS `