@angular/cdk 21.0.0 → 21.1.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/_a11y-module-chunk.mjs +23 -23
- package/fesm2022/_a11y-module-chunk.mjs.map +1 -1
- package/fesm2022/_breakpoints-observer-chunk.mjs +6 -6
- package/fesm2022/_breakpoints-observer-chunk.mjs.map +1 -1
- package/fesm2022/_directionality-chunk.mjs +3 -3
- package/fesm2022/_directionality-chunk.mjs.map +1 -1
- package/fesm2022/_focus-monitor-chunk.mjs +9 -9
- package/fesm2022/_focus-monitor-chunk.mjs.map +1 -1
- package/fesm2022/_id-generator-chunk.mjs +3 -3
- package/fesm2022/_id-generator-chunk.mjs.map +1 -1
- package/fesm2022/_overlay-module-chunk.mjs +52 -68
- package/fesm2022/_overlay-module-chunk.mjs.map +1 -1
- package/fesm2022/_platform-chunk.mjs +3 -3
- package/fesm2022/_platform-chunk.mjs.map +1 -1
- package/fesm2022/_style-loader-chunk.mjs +3 -3
- package/fesm2022/_style-loader-chunk.mjs.map +1 -1
- package/fesm2022/_unique-selection-dispatcher-chunk.mjs +3 -3
- package/fesm2022/_unique-selection-dispatcher-chunk.mjs.map +1 -1
- package/fesm2022/_visually-hidden-chunk.mjs +46 -0
- package/fesm2022/_visually-hidden-chunk.mjs.map +1 -0
- package/fesm2022/a11y.mjs +10 -10
- package/fesm2022/a11y.mjs.map +1 -1
- package/fesm2022/accordion.mjs +10 -10
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/bidi.mjs +7 -7
- package/fesm2022/bidi.mjs.map +1 -1
- package/fesm2022/cdk.mjs +1 -1
- package/fesm2022/cdk.mjs.map +1 -1
- package/fesm2022/clipboard.mjs +10 -10
- package/fesm2022/clipboard.mjs.map +1 -1
- package/fesm2022/dialog.mjs +11 -11
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/drag-drop.mjs +31 -31
- package/fesm2022/drag-drop.mjs.map +1 -1
- package/fesm2022/layout.mjs +4 -4
- package/fesm2022/listbox.mjs +10 -10
- package/fesm2022/listbox.mjs.map +1 -1
- package/fesm2022/menu.mjs +49 -49
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/observers-private.mjs +3 -3
- package/fesm2022/observers-private.mjs.map +1 -1
- package/fesm2022/observers.mjs +13 -13
- package/fesm2022/observers.mjs.map +1 -1
- package/fesm2022/overlay.mjs +3 -3
- package/fesm2022/overlay.mjs.map +1 -1
- package/fesm2022/platform.mjs +4 -4
- package/fesm2022/portal.mjs +10 -10
- package/fesm2022/portal.mjs.map +1 -1
- package/fesm2022/private.mjs +20 -42
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/scrolling.mjs +35 -35
- package/fesm2022/scrolling.mjs.map +1 -1
- package/fesm2022/stepper.mjs +22 -22
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/table.mjs +73 -73
- package/fesm2022/table.mjs.map +1 -1
- package/fesm2022/testing-testbed.mjs +6 -3
- package/fesm2022/testing-testbed.mjs.map +1 -1
- package/fesm2022/text-field.mjs +16 -16
- package/fesm2022/text-field.mjs.map +1 -1
- package/fesm2022/tree.mjs +25 -25
- package/fesm2022/tree.mjs.map +1 -1
- package/package.json +3 -3
- package/schematics/ng-add/index.js +1 -1
- package/types/private.d.ts +17 -1
|
@@ -22,7 +22,7 @@ class Platform {
|
|
|
22
22
|
constructor() {}
|
|
23
23
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
24
24
|
minVersion: "12.0.0",
|
|
25
|
-
version: "
|
|
25
|
+
version: "21.0.0",
|
|
26
26
|
ngImport: i0,
|
|
27
27
|
type: Platform,
|
|
28
28
|
deps: [],
|
|
@@ -30,7 +30,7 @@ class Platform {
|
|
|
30
30
|
});
|
|
31
31
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
32
32
|
minVersion: "12.0.0",
|
|
33
|
-
version: "
|
|
33
|
+
version: "21.0.0",
|
|
34
34
|
ngImport: i0,
|
|
35
35
|
type: Platform,
|
|
36
36
|
providedIn: 'root'
|
|
@@ -38,7 +38,7 @@ class Platform {
|
|
|
38
38
|
}
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({
|
|
40
40
|
minVersion: "12.0.0",
|
|
41
|
-
version: "
|
|
41
|
+
version: "21.0.0",
|
|
42
42
|
ngImport: i0,
|
|
43
43
|
type: Platform,
|
|
44
44
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_platform-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/platform/platform.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 {inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator: boolean;\n\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\n@Injectable({providedIn: 'root'})\nexport class Platform {\n private _platformId = inject(PLATFORM_ID);\n\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n isBrowser: boolean = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n\n /** Whether the current browser is Microsoft Edge. */\n EDGE: boolean = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Microsoft Trident. */\n TRIDENT: boolean = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n BLINK: boolean =\n this.isBrowser &&\n !!((window as any).chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n WEBKIT: boolean =\n this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n\n /** Whether the current platform is Apple iOS. */\n IOS: boolean =\n this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n FIREFOX: boolean = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n ANDROID: boolean = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n SAFARI: boolean = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n\n /** Backwards-compatible constructor. */\n constructor(..._args: unknown[]);\n\n constructor() {}\n}\n"],"names":["hasV8BreakIterator","Intl","v8BreakIterator","Platform","_platformId","inject","PLATFORM_ID","isBrowser","isPlatformBrowser","document","EDGE","test","navigator","userAgent","TRIDENT","BLINK","window","chrome","CSS","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","constructor","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn"],"mappings":";;;;AAaA,IAAIA,kBAA2B;AAO/B,IAAI;EACFA,kBAAkB,GAAG,OAAOC,IAAI,KAAK,WAAW,IAAKA,IAAY,CAACC,eAAe;AACnF,CAAA,CAAE,MAAM;AACNF,EAAAA,kBAAkB,GAAG,KAAK;AAC5B;MAOaG,QAAQ,CAAA;AACXC,EAAAA,WAAW,GAAGC,MAAM,CAACC,WAAW,CAAC;AAMzCC,EAAAA,SAAS,GAAY,IAAI,CAACH,WAAW,GACjCI,iBAAiB,CAAC,IAAI,CAACJ,WAAW,CAAA,GAClC,OAAOK,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAACA,QAAQ;AAG9CC,EAAAA,IAAI,GAAY,IAAI,CAACH,SAAS,IAAI,SAAS,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC;AAGrEC,EAAAA,OAAO,GAAY,IAAI,CAACP,SAAS,IAAI,iBAAiB,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC;EAIhFE,KAAK,GACH,IAAI,CAACR,SAAS,IACd,CAAC,EAAGS,MAAc,CAACC,MAAM,IAAIjB,kBAAkB,CAAC,IAChD,OAAOkB,GAAG,KAAK,WAAW,IAC1B,CAAC,IAAI,CAACR,IAAI,IACV,CAAC,IAAI,CAACI,OAAO;EAKfK,MAAM,GACJ,IAAI,CAACZ,SAAS,IACd,cAAc,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,IACxC,CAAC,IAAI,CAACE,KAAK,IACX,CAAC,IAAI,CAACL,IAAI,IACV,CAAC,IAAI,CAACI,OAAO;AAGfM,EAAAA,GAAG,GACD,IAAI,CAACb,SAAS,IAAI,kBAAkB,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,IAAI,EAAE,UAAU,IAAIG,MAAM,CAAC;AAO3FK,EAAAA,OAAO,GAAY,IAAI,CAACd,SAAS,IAAI,sBAAsB,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC;AAIrFS,EAAAA,OAAO,GAAY,IAAI,CAACf,SAAS,IAAI,UAAU,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,IAAI,CAAC,IAAI,CAACC,OAAO;AAM1FS,EAAAA,MAAM,GAAY,IAAI,CAAChB,SAAS,IAAI,SAAS,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,IAAI,IAAI,CAACM,MAAM;EAKtFK,WAAAA,GAAA;;;;;UA5DWrB,QAAQ;AAAAsB,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAR,EAAA,OAAAC,KAAA,GAAAH,EAAA,CAAAI,qBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"_platform-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/platform/platform.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 {inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {isPlatformBrowser} from '@angular/common';\n\n// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator: boolean;\n\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\n@Injectable({providedIn: 'root'})\nexport class Platform {\n private _platformId = inject(PLATFORM_ID);\n\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n isBrowser: boolean = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document;\n\n /** Whether the current browser is Microsoft Edge. */\n EDGE: boolean = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n\n /** Whether the current rendering engine is Microsoft Trident. */\n TRIDENT: boolean = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n BLINK: boolean =\n this.isBrowser &&\n !!((window as any).chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n WEBKIT: boolean =\n this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n\n /** Whether the current platform is Apple iOS. */\n IOS: boolean =\n this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n FIREFOX: boolean = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n ANDROID: boolean = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n SAFARI: boolean = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n\n /** Backwards-compatible constructor. */\n constructor(..._args: unknown[]);\n\n constructor() {}\n}\n"],"names":["hasV8BreakIterator","Intl","v8BreakIterator","Platform","_platformId","inject","PLATFORM_ID","isBrowser","isPlatformBrowser","document","EDGE","test","navigator","userAgent","TRIDENT","BLINK","window","chrome","CSS","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","constructor","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn"],"mappings":";;;;AAaA,IAAIA,kBAA2B;AAO/B,IAAI;EACFA,kBAAkB,GAAG,OAAOC,IAAI,KAAK,WAAW,IAAKA,IAAY,CAACC,eAAe;AACnF,CAAA,CAAE,MAAM;AACNF,EAAAA,kBAAkB,GAAG,KAAK;AAC5B;MAOaG,QAAQ,CAAA;AACXC,EAAAA,WAAW,GAAGC,MAAM,CAACC,WAAW,CAAC;AAMzCC,EAAAA,SAAS,GAAY,IAAI,CAACH,WAAW,GACjCI,iBAAiB,CAAC,IAAI,CAACJ,WAAW,CAAA,GAClC,OAAOK,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAACA,QAAQ;AAG9CC,EAAAA,IAAI,GAAY,IAAI,CAACH,SAAS,IAAI,SAAS,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC;AAGrEC,EAAAA,OAAO,GAAY,IAAI,CAACP,SAAS,IAAI,iBAAiB,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC;EAIhFE,KAAK,GACH,IAAI,CAACR,SAAS,IACd,CAAC,EAAGS,MAAc,CAACC,MAAM,IAAIjB,kBAAkB,CAAC,IAChD,OAAOkB,GAAG,KAAK,WAAW,IAC1B,CAAC,IAAI,CAACR,IAAI,IACV,CAAC,IAAI,CAACI,OAAO;EAKfK,MAAM,GACJ,IAAI,CAACZ,SAAS,IACd,cAAc,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,IACxC,CAAC,IAAI,CAACE,KAAK,IACX,CAAC,IAAI,CAACL,IAAI,IACV,CAAC,IAAI,CAACI,OAAO;AAGfM,EAAAA,GAAG,GACD,IAAI,CAACb,SAAS,IAAI,kBAAkB,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,IAAI,EAAE,UAAU,IAAIG,MAAM,CAAC;AAO3FK,EAAAA,OAAO,GAAY,IAAI,CAACd,SAAS,IAAI,sBAAsB,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC;AAIrFS,EAAAA,OAAO,GAAY,IAAI,CAACf,SAAS,IAAI,UAAU,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,IAAI,CAAC,IAAI,CAACC,OAAO;AAM1FS,EAAAA,MAAM,GAAY,IAAI,CAAChB,SAAS,IAAI,SAAS,CAACI,IAAI,CAACC,SAAS,CAACC,SAAS,CAAC,IAAI,IAAI,CAACM,MAAM;EAKtFK,WAAAA,GAAA;;;;;UA5DWrB,QAAQ;AAAAsB,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAR,EAAA,OAAAC,KAAA,GAAAH,EAAA,CAAAI,qBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAAhC,QAAQ;gBADI;AAAM,GAAA,CAAA;;;;;;QAClBA,QAAQ;AAAAiC,EAAAA,UAAA,EAAA,CAAA;UADpBP,UAAU;WAAC;AAACQ,MAAAA,UAAU,EAAE;KAAO;;;;;;;"}
|
|
@@ -29,7 +29,7 @@ class _CdkPrivateStyleLoader {
|
|
|
29
29
|
}
|
|
30
30
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
31
31
|
minVersion: "12.0.0",
|
|
32
|
-
version: "
|
|
32
|
+
version: "21.0.0",
|
|
33
33
|
ngImport: i0,
|
|
34
34
|
type: _CdkPrivateStyleLoader,
|
|
35
35
|
deps: [],
|
|
@@ -37,7 +37,7 @@ class _CdkPrivateStyleLoader {
|
|
|
37
37
|
});
|
|
38
38
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
39
39
|
minVersion: "12.0.0",
|
|
40
|
-
version: "
|
|
40
|
+
version: "21.0.0",
|
|
41
41
|
ngImport: i0,
|
|
42
42
|
type: _CdkPrivateStyleLoader,
|
|
43
43
|
providedIn: 'root'
|
|
@@ -45,7 +45,7 @@ class _CdkPrivateStyleLoader {
|
|
|
45
45
|
}
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({
|
|
47
47
|
minVersion: "12.0.0",
|
|
48
|
-
version: "
|
|
48
|
+
version: "21.0.0",
|
|
49
49
|
ngImport: i0,
|
|
50
50
|
type: _CdkPrivateStyleLoader,
|
|
51
51
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_style-loader-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/private/style-loader.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\n\n/** Apps in which we've loaded styles. */\nconst appsWithLoaders = new WeakMap<\n ApplicationRef,\n {\n /** Style loaders that have been added. */\n loaders: Set<Type<unknown>>;\n\n /** References to the instantiated loaders. */\n refs: ComponentRef<unknown>[];\n }\n>();\n\n/**\n * Service that loads structural styles dynamically\n * and ensures that they're only loaded once per app.\n */\n@Injectable({providedIn: 'root'})\nexport class _CdkPrivateStyleLoader {\n private _appRef: ApplicationRef | undefined;\n private _injector = inject(Injector);\n private _environmentInjector = inject(EnvironmentInjector);\n\n /**\n * Loads a set of styles.\n * @param loader Component which will be instantiated to load the styles.\n */\n load(loader: Type<unknown>): void {\n // Resolve the app ref lazily to avoid circular dependency errors if this is called too early.\n const appRef = (this._appRef = this._appRef || this._injector.get(ApplicationRef));\n let data = appsWithLoaders.get(appRef);\n\n // If we haven't loaded for this app before, we have to initialize it.\n if (!data) {\n data = {loaders: new Set(), refs: []};\n appsWithLoaders.set(appRef, data);\n\n // When the app is destroyed, we need to clean up all the related loaders.\n appRef.onDestroy(() => {\n appsWithLoaders.get(appRef)?.refs.forEach(ref => ref.destroy());\n appsWithLoaders.delete(appRef);\n });\n }\n\n // If the loader hasn't been loaded before, we need to instatiate it.\n if (!data.loaders.has(loader)) {\n data.loaders.add(loader);\n data.refs.push(createComponent(loader, {environmentInjector: this._environmentInjector}));\n }\n }\n}\n"],"names":["appsWithLoaders","WeakMap","_CdkPrivateStyleLoader","_appRef","_injector","inject","Injector","_environmentInjector","EnvironmentInjector","load","loader","appRef","get","ApplicationRef","data","loaders","Set","refs","set","onDestroy","forEach","ref","destroy","delete","has","add","push","createComponent","environmentInjector","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn"],"mappings":";;;AAoBA,MAAMA,eAAe,GAAG,IAAIC,OAAO,EAShC;MAOUC,sBAAsB,CAAA;EACzBC,OAAO;AACPC,EAAAA,SAAS,GAAGC,MAAM,CAACC,QAAQ,CAAC;AAC5BC,EAAAA,oBAAoB,GAAGF,MAAM,CAACG,mBAAmB,CAAC;EAM1DC,IAAIA,CAACC,MAAqB,EAAA;AAExB,IAAA,MAAMC,MAAM,GAAI,IAAI,CAACR,OAAO,GAAG,IAAI,CAACA,OAAO,IAAI,IAAI,CAACC,SAAS,CAACQ,GAAG,CAACC,cAAc,CAAE;AAClF,IAAA,IAAIC,IAAI,GAAGd,eAAe,CAACY,GAAG,CAACD,MAAM,CAAC;IAGtC,IAAI,CAACG,IAAI,EAAE;AACTA,MAAAA,IAAI,GAAG;AAACC,QAAAA,OAAO,EAAE,IAAIC,GAAG,EAAE;AAAEC,QAAAA,IAAI,EAAE;OAAG;AACrCjB,MAAAA,eAAe,CAACkB,GAAG,CAACP,MAAM,EAAEG,IAAI,CAAC;MAGjCH,MAAM,CAACQ,SAAS,CAAC,MAAK;AACpBnB,QAAAA,eAAe,CAACY,GAAG,CAACD,MAAM,CAAC,EAAEM,IAAI,CAACG,OAAO,CAACC,GAAG,IAAIA,GAAG,CAACC,OAAO,EAAE,CAAC;AAC/DtB,QAAAA,eAAe,CAACuB,MAAM,CAACZ,MAAM,CAAC;AAChC,OAAC,CAAC;AACJ;IAGA,IAAI,CAACG,IAAI,CAACC,OAAO,CAACS,GAAG,CAACd,MAAM,CAAC,EAAE;AAC7BI,MAAAA,IAAI,CAACC,OAAO,CAACU,GAAG,CAACf,MAAM,CAAC;MACxBI,IAAI,CAACG,IAAI,CAACS,IAAI,CAACC,eAAe,CAACjB,MAAM,EAAE;QAACkB,mBAAmB,EAAE,IAAI,CAACrB;AAAqB,OAAA,CAAC,CAAC;AAC3F;AACF;;;;;UA/BWL,sBAAsB;AAAA2B,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAtB,EAAA,OAAAC,KAAA,GAAAH,EAAA,CAAAI,qBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"_style-loader-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/private/style-loader.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n Type,\n} from '@angular/core';\n\n/** Apps in which we've loaded styles. */\nconst appsWithLoaders = new WeakMap<\n ApplicationRef,\n {\n /** Style loaders that have been added. */\n loaders: Set<Type<unknown>>;\n\n /** References to the instantiated loaders. */\n refs: ComponentRef<unknown>[];\n }\n>();\n\n/**\n * Service that loads structural styles dynamically\n * and ensures that they're only loaded once per app.\n */\n@Injectable({providedIn: 'root'})\nexport class _CdkPrivateStyleLoader {\n private _appRef: ApplicationRef | undefined;\n private _injector = inject(Injector);\n private _environmentInjector = inject(EnvironmentInjector);\n\n /**\n * Loads a set of styles.\n * @param loader Component which will be instantiated to load the styles.\n */\n load(loader: Type<unknown>): void {\n // Resolve the app ref lazily to avoid circular dependency errors if this is called too early.\n const appRef = (this._appRef = this._appRef || this._injector.get(ApplicationRef));\n let data = appsWithLoaders.get(appRef);\n\n // If we haven't loaded for this app before, we have to initialize it.\n if (!data) {\n data = {loaders: new Set(), refs: []};\n appsWithLoaders.set(appRef, data);\n\n // When the app is destroyed, we need to clean up all the related loaders.\n appRef.onDestroy(() => {\n appsWithLoaders.get(appRef)?.refs.forEach(ref => ref.destroy());\n appsWithLoaders.delete(appRef);\n });\n }\n\n // If the loader hasn't been loaded before, we need to instatiate it.\n if (!data.loaders.has(loader)) {\n data.loaders.add(loader);\n data.refs.push(createComponent(loader, {environmentInjector: this._environmentInjector}));\n }\n }\n}\n"],"names":["appsWithLoaders","WeakMap","_CdkPrivateStyleLoader","_appRef","_injector","inject","Injector","_environmentInjector","EnvironmentInjector","load","loader","appRef","get","ApplicationRef","data","loaders","Set","refs","set","onDestroy","forEach","ref","destroy","delete","has","add","push","createComponent","environmentInjector","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn"],"mappings":";;;AAoBA,MAAMA,eAAe,GAAG,IAAIC,OAAO,EAShC;MAOUC,sBAAsB,CAAA;EACzBC,OAAO;AACPC,EAAAA,SAAS,GAAGC,MAAM,CAACC,QAAQ,CAAC;AAC5BC,EAAAA,oBAAoB,GAAGF,MAAM,CAACG,mBAAmB,CAAC;EAM1DC,IAAIA,CAACC,MAAqB,EAAA;AAExB,IAAA,MAAMC,MAAM,GAAI,IAAI,CAACR,OAAO,GAAG,IAAI,CAACA,OAAO,IAAI,IAAI,CAACC,SAAS,CAACQ,GAAG,CAACC,cAAc,CAAE;AAClF,IAAA,IAAIC,IAAI,GAAGd,eAAe,CAACY,GAAG,CAACD,MAAM,CAAC;IAGtC,IAAI,CAACG,IAAI,EAAE;AACTA,MAAAA,IAAI,GAAG;AAACC,QAAAA,OAAO,EAAE,IAAIC,GAAG,EAAE;AAAEC,QAAAA,IAAI,EAAE;OAAG;AACrCjB,MAAAA,eAAe,CAACkB,GAAG,CAACP,MAAM,EAAEG,IAAI,CAAC;MAGjCH,MAAM,CAACQ,SAAS,CAAC,MAAK;AACpBnB,QAAAA,eAAe,CAACY,GAAG,CAACD,MAAM,CAAC,EAAEM,IAAI,CAACG,OAAO,CAACC,GAAG,IAAIA,GAAG,CAACC,OAAO,EAAE,CAAC;AAC/DtB,QAAAA,eAAe,CAACuB,MAAM,CAACZ,MAAM,CAAC;AAChC,OAAC,CAAC;AACJ;IAGA,IAAI,CAACG,IAAI,CAACC,OAAO,CAACS,GAAG,CAACd,MAAM,CAAC,EAAE;AAC7BI,MAAAA,IAAI,CAACC,OAAO,CAACU,GAAG,CAACf,MAAM,CAAC;MACxBI,IAAI,CAACG,IAAI,CAACS,IAAI,CAACC,eAAe,CAACjB,MAAM,EAAE;QAACkB,mBAAmB,EAAE,IAAI,CAACrB;AAAqB,OAAA,CAAC,CAAC;AAC3F;AACF;;;;;UA/BWL,sBAAsB;AAAA2B,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAtB,EAAA,OAAAC,KAAA,GAAAH,EAAA,CAAAI,qBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAArC,sBAAsB;gBADV;AAAM,GAAA,CAAA;;;;;;QAClBA,sBAAsB;AAAAsC,EAAAA,UAAA,EAAA,CAAA;UADlCP,UAAU;WAAC;AAACQ,MAAAA,UAAU,EAAE;KAAO;;;;;;"}
|
|
@@ -21,7 +21,7 @@ class UniqueSelectionDispatcher {
|
|
|
21
21
|
}
|
|
22
22
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
23
23
|
minVersion: "12.0.0",
|
|
24
|
-
version: "
|
|
24
|
+
version: "21.0.0",
|
|
25
25
|
ngImport: i0,
|
|
26
26
|
type: UniqueSelectionDispatcher,
|
|
27
27
|
deps: [],
|
|
@@ -29,7 +29,7 @@ class UniqueSelectionDispatcher {
|
|
|
29
29
|
});
|
|
30
30
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
31
31
|
minVersion: "12.0.0",
|
|
32
|
-
version: "
|
|
32
|
+
version: "21.0.0",
|
|
33
33
|
ngImport: i0,
|
|
34
34
|
type: UniqueSelectionDispatcher,
|
|
35
35
|
providedIn: 'root'
|
|
@@ -37,7 +37,7 @@ class UniqueSelectionDispatcher {
|
|
|
37
37
|
}
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({
|
|
39
39
|
minVersion: "12.0.0",
|
|
40
|
-
version: "
|
|
40
|
+
version: "21.0.0",
|
|
41
41
|
ngImport: i0,
|
|
42
42
|
type: UniqueSelectionDispatcher,
|
|
43
43
|
decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_unique-selection-dispatcher-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/collections/unique-selection-dispatcher.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 {Injectable, OnDestroy} from '@angular/core';\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\n@Injectable({providedIn: 'root'})\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private _listeners: UniqueSelectionDispatcherListener[] = [];\n\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id: string, name: string) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\n\n ngOnDestroy() {\n this._listeners = [];\n }\n}\n"],"names":["UniqueSelectionDispatcher","_listeners","notify","id","name","listener","listen","push","filter","registered","ngOnDestroy","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn"],"mappings":";;;MAuBaA,yBAAyB,CAAA;AAC5BC,EAAAA,UAAU,GAAwC,EAAE;AAO5DC,EAAAA,MAAMA,CAACC,EAAU,EAAEC,IAAY,EAAA;AAC7B,IAAA,KAAK,IAAIC,QAAQ,IAAI,IAAI,CAACJ,UAAU,EAAE;AACpCI,MAAAA,QAAQ,CAACF,EAAE,EAAEC,IAAI,CAAC;AACpB;AACF;EAMAE,MAAMA,CAACD,QAA2C,EAAA;AAChD,IAAA,IAAI,CAACJ,UAAU,CAACM,IAAI,CAACF,QAAQ,CAAC;AAC9B,IAAA,OAAO,MAAK;MACV,IAAI,CAACJ,UAAU,GAAG,IAAI,CAACA,UAAU,CAACO,MAAM,CAAEC,UAA6C,IAAI;QACzF,OAAOJ,QAAQ,KAAKI,UAAU;AAChC,OAAC,CAAC;KACH;AACH;AAEAC,EAAAA,WAAWA,GAAA;IACT,IAAI,CAACT,UAAU,GAAG,EAAE;AACtB;;;;;UA7BWD,yBAAyB;AAAAW,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAzB,EAAA,OAAAC,KAAA,GAAAH,EAAA,CAAAI,qBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"_unique-selection-dispatcher-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/collections/unique-selection-dispatcher.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 {Injectable, OnDestroy} from '@angular/core';\n\n// Users of the Dispatcher never need to see this type, but TypeScript requires it to be exported.\nexport type UniqueSelectionDispatcherListener = (id: string, name: string) => void;\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\n@Injectable({providedIn: 'root'})\nexport class UniqueSelectionDispatcher implements OnDestroy {\n private _listeners: UniqueSelectionDispatcherListener[] = [];\n\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n notify(id: string, name: string) {\n for (let listener of this._listeners) {\n listener(id, name);\n }\n }\n\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n listen(listener: UniqueSelectionDispatcherListener): () => void {\n this._listeners.push(listener);\n return () => {\n this._listeners = this._listeners.filter((registered: UniqueSelectionDispatcherListener) => {\n return listener !== registered;\n });\n };\n }\n\n ngOnDestroy() {\n this._listeners = [];\n }\n}\n"],"names":["UniqueSelectionDispatcher","_listeners","notify","id","name","listener","listen","push","filter","registered","ngOnDestroy","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn"],"mappings":";;;MAuBaA,yBAAyB,CAAA;AAC5BC,EAAAA,UAAU,GAAwC,EAAE;AAO5DC,EAAAA,MAAMA,CAACC,EAAU,EAAEC,IAAY,EAAA;AAC7B,IAAA,KAAK,IAAIC,QAAQ,IAAI,IAAI,CAACJ,UAAU,EAAE;AACpCI,MAAAA,QAAQ,CAACF,EAAE,EAAEC,IAAI,CAAC;AACpB;AACF;EAMAE,MAAMA,CAACD,QAA2C,EAAA;AAChD,IAAA,IAAI,CAACJ,UAAU,CAACM,IAAI,CAACF,QAAQ,CAAC;AAC9B,IAAA,OAAO,MAAK;MACV,IAAI,CAACJ,UAAU,GAAG,IAAI,CAACA,UAAU,CAACO,MAAM,CAAEC,UAA6C,IAAI;QACzF,OAAOJ,QAAQ,KAAKI,UAAU;AAChC,OAAC,CAAC;KACH;AACH;AAEAC,EAAAA,WAAWA,GAAA;IACT,IAAI,CAACT,UAAU,GAAG,EAAE;AACtB;;;;;UA7BWD,yBAAyB;AAAAW,IAAAA,IAAA,EAAA,EAAA;AAAAC,IAAAA,MAAA,EAAAC,EAAA,CAAAC,eAAA,CAAAC;AAAA,GAAA,CAAA;AAAzB,EAAA,OAAAC,KAAA,GAAAH,EAAA,CAAAI,qBAAA,CAAA;AAAAC,IAAAA,UAAA,EAAA,QAAA;AAAAC,IAAAA,OAAA,EAAA,QAAA;AAAAC,IAAAA,QAAA,EAAAP,EAAA;AAAAQ,IAAAA,IAAA,EAAArB,yBAAyB;gBADb;AAAM,GAAA,CAAA;;;;;;QAClBA,yBAAyB;AAAAsB,EAAAA,UAAA,EAAA,CAAA;UADrCP,UAAU;WAAC;AAACQ,MAAAA,UAAU,EAAE;KAAO;;;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class _VisuallyHiddenLoader {
|
|
5
|
+
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
6
|
+
minVersion: "12.0.0",
|
|
7
|
+
version: "21.0.0",
|
|
8
|
+
ngImport: i0,
|
|
9
|
+
type: _VisuallyHiddenLoader,
|
|
10
|
+
deps: [],
|
|
11
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
12
|
+
});
|
|
13
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({
|
|
14
|
+
minVersion: "14.0.0",
|
|
15
|
+
version: "21.0.0",
|
|
16
|
+
type: _VisuallyHiddenLoader,
|
|
17
|
+
isStandalone: true,
|
|
18
|
+
selector: "ng-component",
|
|
19
|
+
exportAs: ["cdkVisuallyHidden"],
|
|
20
|
+
ngImport: i0,
|
|
21
|
+
template: '',
|
|
22
|
+
isInline: true,
|
|
23
|
+
styles: [".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}\n"],
|
|
24
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
25
|
+
encapsulation: i0.ViewEncapsulation.None
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
29
|
+
minVersion: "12.0.0",
|
|
30
|
+
version: "21.0.0",
|
|
31
|
+
ngImport: i0,
|
|
32
|
+
type: _VisuallyHiddenLoader,
|
|
33
|
+
decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{
|
|
36
|
+
exportAs: 'cdkVisuallyHidden',
|
|
37
|
+
encapsulation: ViewEncapsulation.None,
|
|
38
|
+
template: '',
|
|
39
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
40
|
+
styles: [".cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}\n"]
|
|
41
|
+
}]
|
|
42
|
+
}]
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
export { _VisuallyHiddenLoader };
|
|
46
|
+
//# sourceMappingURL=_visually-hidden-chunk.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_visually-hidden-chunk.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/private/visually-hidden/visually-hidden.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';\n\n/**\n * Component used to load the .cdk-visually-hidden styles.\n * @docs-private\n */\n@Component({\n styleUrl: 'visually-hidden.css',\n exportAs: 'cdkVisuallyHidden',\n encapsulation: ViewEncapsulation.None,\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class _VisuallyHiddenLoader {}\n"],"names":["_VisuallyHiddenLoader","deps","target","i0","ɵɵFactoryTarget","Component","ɵcmp","ɵɵngDeclareComponent","minVersion","version","type","isInline","styles","changeDetection","ChangeDetectionStrategy","OnPush","encapsulation","ViewEncapsulation","None","decorators"],"mappings":";;;MAqBaA,qBAAqB,CAAA;;;;;UAArBA,qBAAqB;AAAAC,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,EAAAV,qBAAqB;;;;;cAHtB,EAAE;AAAAW,IAAAA,QAAA,EAAA,IAAA;IAAAC,MAAA,EAAA,CAAA,oQAAA,CAAA;AAAAC,IAAAA,eAAA,EAAAV,EAAA,CAAAW,uBAAA,CAAAC,MAAA;AAAAC,IAAAA,aAAA,EAAAb,EAAA,CAAAc,iBAAA,CAAAC;AAAA,GAAA,CAAA;;;;;;QAGDlB,qBAAqB;AAAAmB,EAAAA,UAAA,EAAA,CAAA;UAPjCd,SAAS;;gBAEE,mBAAmB;MAAAW,aAAA,EACdC,iBAAiB,CAACC,IAAI;gBAC3B,EAAE;MAAAL,eAAA,EACKC,uBAAuB,CAACC,MAAM;MAAAH,MAAA,EAAA,CAAA,oQAAA;KAAA;;;;;;"}
|
package/fesm2022/a11y.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import * as i0 from '@angular/core';
|
|
|
6
6
|
import { inject, DOCUMENT, APP_ID, Injectable, InjectionToken, NgZone, Injector } from '@angular/core';
|
|
7
7
|
import { Platform } from './_platform-chunk.mjs';
|
|
8
8
|
import { _CdkPrivateStyleLoader } from './_style-loader-chunk.mjs';
|
|
9
|
-
import { _VisuallyHiddenLoader } from './
|
|
9
|
+
import { _VisuallyHiddenLoader } from './_visually-hidden-chunk.mjs';
|
|
10
10
|
export { ActiveDescendantKeyManager } from './_activedescendant-key-manager-chunk.mjs';
|
|
11
11
|
export { FocusKeyManager } from './_focus-key-manager-chunk.mjs';
|
|
12
12
|
export { ListKeyManager } from './_list-key-manager-chunk.mjs';
|
|
@@ -188,7 +188,7 @@ class AriaDescriber {
|
|
|
188
188
|
}
|
|
189
189
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
190
190
|
minVersion: "12.0.0",
|
|
191
|
-
version: "
|
|
191
|
+
version: "21.0.0",
|
|
192
192
|
ngImport: i0,
|
|
193
193
|
type: AriaDescriber,
|
|
194
194
|
deps: [],
|
|
@@ -196,7 +196,7 @@ class AriaDescriber {
|
|
|
196
196
|
});
|
|
197
197
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
198
198
|
minVersion: "12.0.0",
|
|
199
|
-
version: "
|
|
199
|
+
version: "21.0.0",
|
|
200
200
|
ngImport: i0,
|
|
201
201
|
type: AriaDescriber,
|
|
202
202
|
providedIn: 'root'
|
|
@@ -204,7 +204,7 @@ class AriaDescriber {
|
|
|
204
204
|
}
|
|
205
205
|
i0.ɵɵngDeclareClassMetadata({
|
|
206
206
|
minVersion: "12.0.0",
|
|
207
|
-
version: "
|
|
207
|
+
version: "21.0.0",
|
|
208
208
|
ngImport: i0,
|
|
209
209
|
type: AriaDescriber,
|
|
210
210
|
decorators: [{
|
|
@@ -335,7 +335,7 @@ class FocusTrapManager {
|
|
|
335
335
|
}
|
|
336
336
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
337
337
|
minVersion: "12.0.0",
|
|
338
|
-
version: "
|
|
338
|
+
version: "21.0.0",
|
|
339
339
|
ngImport: i0,
|
|
340
340
|
type: FocusTrapManager,
|
|
341
341
|
deps: [],
|
|
@@ -343,7 +343,7 @@ class FocusTrapManager {
|
|
|
343
343
|
});
|
|
344
344
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
345
345
|
minVersion: "12.0.0",
|
|
346
|
-
version: "
|
|
346
|
+
version: "21.0.0",
|
|
347
347
|
ngImport: i0,
|
|
348
348
|
type: FocusTrapManager,
|
|
349
349
|
providedIn: 'root'
|
|
@@ -351,7 +351,7 @@ class FocusTrapManager {
|
|
|
351
351
|
}
|
|
352
352
|
i0.ɵɵngDeclareClassMetadata({
|
|
353
353
|
minVersion: "12.0.0",
|
|
354
|
-
version: "
|
|
354
|
+
version: "21.0.0",
|
|
355
355
|
ngImport: i0,
|
|
356
356
|
type: FocusTrapManager,
|
|
357
357
|
decorators: [{
|
|
@@ -390,7 +390,7 @@ class ConfigurableFocusTrapFactory {
|
|
|
390
390
|
}
|
|
391
391
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
392
392
|
minVersion: "12.0.0",
|
|
393
|
-
version: "
|
|
393
|
+
version: "21.0.0",
|
|
394
394
|
ngImport: i0,
|
|
395
395
|
type: ConfigurableFocusTrapFactory,
|
|
396
396
|
deps: [],
|
|
@@ -398,7 +398,7 @@ class ConfigurableFocusTrapFactory {
|
|
|
398
398
|
});
|
|
399
399
|
static ɵprov = i0.ɵɵngDeclareInjectable({
|
|
400
400
|
minVersion: "12.0.0",
|
|
401
|
-
version: "
|
|
401
|
+
version: "21.0.0",
|
|
402
402
|
ngImport: i0,
|
|
403
403
|
type: ConfigurableFocusTrapFactory,
|
|
404
404
|
providedIn: 'root'
|
|
@@ -406,7 +406,7 @@ class ConfigurableFocusTrapFactory {
|
|
|
406
406
|
}
|
|
407
407
|
i0.ɵɵngDeclareClassMetadata({
|
|
408
408
|
minVersion: "12.0.0",
|
|
409
|
-
version: "
|
|
409
|
+
version: "21.0.0",
|
|
410
410
|
ngImport: i0,
|
|
411
411
|
type: ConfigurableFocusTrapFactory,
|
|
412
412
|
decorators: [{
|
package/fesm2022/a11y.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a11y.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/aria-describer/aria-reference.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/aria-describer/aria-describer.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/key-manager/noop-tree-key-manager.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/configurable-focus-trap.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/event-listener-inert-strategy.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/focus-trap-inert-strategy.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/focus-trap-manager.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/configurable-focus-trap-factory.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/** IDs are delimited by an empty space, as per the spec. */\nconst ID_DELIMITER = ' ';\n\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport function addAriaReferencedId(el: Element, attr: `aria-${string}`, id: string) {\n const ids = getAriaReferenceIds(el, attr);\n id = id.trim();\n if (ids.some(existingId => existingId.trim() === id)) {\n return;\n }\n ids.push(id);\n\n el.setAttribute(attr, ids.join(ID_DELIMITER));\n}\n\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport function removeAriaReferencedId(el: Element, attr: `aria-${string}`, id: string) {\n const ids = getAriaReferenceIds(el, attr);\n id = id.trim();\n const filteredIds = ids.filter(val => val !== id);\n\n if (filteredIds.length) {\n el.setAttribute(attr, filteredIds.join(ID_DELIMITER));\n } else {\n el.removeAttribute(attr);\n }\n}\n\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport function getAriaReferenceIds(el: Element, attr: string): string[] {\n // Get string array of all individual ids (whitespace delimited) in the attribute value\n const attrValue = el.getAttribute(attr);\n return attrValue?.match(/\\S+/g) ?? [];\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 {Injectable, OnDestroy, APP_ID, inject, DOCUMENT} from '@angular/core';\nimport {Platform} from '../../platform';\nimport {addAriaReferencedId, getAriaReferenceIds, removeAriaReferencedId} from './aria-reference';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '../../private';\n\n/**\n * Interface used to register message elements and keep a count of how many registrations have\n * the same message and the reference to the message element used for the `aria-describedby`.\n */\nexport interface RegisteredMessage {\n /** The element containing the message. */\n messageElement: Element;\n\n /** The number of elements that reference this message element via `aria-describedby`. */\n referenceCount: number;\n}\n\n/**\n * ID used for the body container where all messages are appended.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 14.0.0\n */\nexport const MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n\n/**\n * ID prefix used for each created message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nexport const CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n\n/**\n * Attribute given to each host element that is described by a message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nexport const CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n\n/** Global incremental identifier for each registered message element. */\nlet nextId = 0;\n\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n */\n@Injectable({providedIn: 'root'})\nexport class AriaDescriber implements OnDestroy {\n private _platform = inject(Platform);\n private _document = inject(DOCUMENT);\n\n /** Map of all registered message elements that have been placed into the document. */\n private _messageRegistry = new Map<string | Element, RegisteredMessage>();\n\n /** Container for all registered messages. */\n private _messagesContainer: HTMLElement | null = null;\n\n /** Unique ID for the service. */\n private readonly _id = `${nextId++}`;\n\n constructor(...args: unknown[]);\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_VisuallyHiddenLoader);\n this._id = inject(APP_ID) + '-' + nextId++;\n }\n\n /**\n * Adds to the host element an aria-describedby reference to a hidden element that contains\n * the message. If the same message has already been registered, then it will reuse the created\n * message element.\n */\n describe(hostElement: Element, message: string, role?: string): void;\n\n /**\n * Adds to the host element an aria-describedby reference to an already-existing message element.\n */\n describe(hostElement: Element, message: HTMLElement): void;\n\n describe(hostElement: Element, message: string | HTMLElement, role?: string): void {\n if (!this._canBeDescribed(hostElement, message)) {\n return;\n }\n\n const key = getKey(message, role);\n\n if (typeof message !== 'string') {\n // We need to ensure that the element has an ID.\n setMessageId(message, this._id);\n this._messageRegistry.set(key, {messageElement: message, referenceCount: 0});\n } else if (!this._messageRegistry.has(key)) {\n this._createMessageElement(message, role);\n }\n\n if (!this._isElementDescribedByMessage(hostElement, key)) {\n this._addMessageReference(hostElement, key);\n }\n }\n\n /** Removes the host element's aria-describedby reference to the message. */\n removeDescription(hostElement: Element, message: string, role?: string): void;\n\n /** Removes the host element's aria-describedby reference to the message element. */\n removeDescription(hostElement: Element, message: HTMLElement): void;\n\n removeDescription(hostElement: Element, message: string | HTMLElement, role?: string): void {\n if (!message || !this._isElementNode(hostElement)) {\n return;\n }\n\n const key = getKey(message, role);\n\n if (this._isElementDescribedByMessage(hostElement, key)) {\n this._removeMessageReference(hostElement, key);\n }\n\n // If the message is a string, it means that it's one that we created for the\n // consumer so we can remove it safely, otherwise we should leave it in place.\n if (typeof message === 'string') {\n const registeredMessage = this._messageRegistry.get(key);\n if (registeredMessage && registeredMessage.referenceCount === 0) {\n this._deleteMessageElement(key);\n }\n }\n\n if (this._messagesContainer?.childNodes.length === 0) {\n this._messagesContainer.remove();\n this._messagesContainer = null;\n }\n }\n\n /** Unregisters all created message elements and removes the message container. */\n ngOnDestroy() {\n const describedElements = this._document.querySelectorAll(\n `[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}=\"${this._id}\"]`,\n );\n\n for (let i = 0; i < describedElements.length; i++) {\n this._removeCdkDescribedByReferenceIds(describedElements[i]);\n describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n\n this._messagesContainer?.remove();\n this._messagesContainer = null;\n this._messageRegistry.clear();\n }\n\n /**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n */\n private _createMessageElement(message: string, role?: string) {\n const messageElement = this._document.createElement('div');\n setMessageId(messageElement, this._id);\n messageElement.textContent = message;\n\n if (role) {\n messageElement.setAttribute('role', role);\n }\n\n this._createMessagesContainer();\n this._messagesContainer!.appendChild(messageElement);\n this._messageRegistry.set(getKey(message, role), {messageElement, referenceCount: 0});\n }\n\n /** Deletes the message element from the global messages container. */\n private _deleteMessageElement(key: string | Element) {\n this._messageRegistry.get(key)?.messageElement?.remove();\n this._messageRegistry.delete(key);\n }\n\n /** Creates the global container for all aria-describedby messages. */\n private _createMessagesContainer() {\n if (this._messagesContainer) {\n return;\n }\n\n const containerClassName = 'cdk-describedby-message-container';\n const serverContainers = this._document.querySelectorAll(\n `.${containerClassName}[platform=\"server\"]`,\n );\n\n for (let i = 0; i < serverContainers.length; i++) {\n // When going from the server to the client, we may end up in a situation where there's\n // already a container on the page, but we don't have a reference to it. Clear the\n // old container so we don't get duplicates. Doing this, instead of emptying the previous\n // container, should be slightly faster.\n serverContainers[i].remove();\n }\n\n const messagesContainer = this._document.createElement('div');\n\n // We add `visibility: hidden` in order to prevent text in this container from\n // being searchable by the browser's Ctrl + F functionality.\n // Screen-readers will still read the description for elements with aria-describedby even\n // when the description element is not visible.\n messagesContainer.style.visibility = 'hidden';\n // Even though we use `visibility: hidden`, we still apply `cdk-visually-hidden` so that\n // the description element doesn't impact page layout.\n messagesContainer.classList.add(containerClassName);\n messagesContainer.classList.add('cdk-visually-hidden');\n\n if (!this._platform.isBrowser) {\n messagesContainer.setAttribute('platform', 'server');\n }\n\n this._document.body.appendChild(messagesContainer);\n this._messagesContainer = messagesContainer;\n }\n\n /** Removes all cdk-describedby messages that are hosted through the element. */\n private _removeCdkDescribedByReferenceIds(element: Element) {\n // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n const originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby').filter(\n id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0,\n );\n element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n }\n\n /**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n */\n private _addMessageReference(element: Element, key: string | Element) {\n const registeredMessage = this._messageRegistry.get(key)!;\n\n // Add the aria-describedby reference and set the\n // describedby_host attribute to mark the element.\n addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);\n registeredMessage.referenceCount++;\n }\n\n /**\n * Removes a message reference from the element using aria-describedby\n * and decrements the registered message's reference count.\n */\n private _removeMessageReference(element: Element, key: string | Element) {\n const registeredMessage = this._messageRegistry.get(key)!;\n registeredMessage.referenceCount--;\n\n removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n\n /** Returns true if the element has been described by the provided message ID. */\n private _isElementDescribedByMessage(element: Element, key: string | Element): boolean {\n const referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n const registeredMessage = this._messageRegistry.get(key);\n const messageId = registeredMessage && registeredMessage.messageElement.id;\n\n return !!messageId && referenceIds.indexOf(messageId) != -1;\n }\n\n /** Determines whether a message can be described on a particular element. */\n private _canBeDescribed(element: Element, message: string | HTMLElement | void): boolean {\n if (!this._isElementNode(element)) {\n return false;\n }\n\n if (message && typeof message === 'object') {\n // We'd have to make some assumptions about the description element's text, if the consumer\n // passed in an element. Assume that if an element is passed in, the consumer has verified\n // that it can be used as a description.\n return true;\n }\n\n const trimmedMessage = message == null ? '' : `${message}`.trim();\n const ariaLabel = element.getAttribute('aria-label');\n\n // We shouldn't set descriptions if they're exactly the same as the `aria-label` of the\n // element, because screen readers will end up reading out the same text twice in a row.\n return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;\n }\n\n /** Checks whether a node is an Element node. */\n private _isElementNode(element: Node): element is Element {\n return element.nodeType === this._document.ELEMENT_NODE;\n }\n}\n\n/** Gets a key that can be used to look messages up in the registry. */\nfunction getKey(message: string | Element, role?: string): string | Element {\n return typeof message === 'string' ? `${role || ''}/${message}` : message;\n}\n\n/** Assigns a unique ID to an element, if it doesn't have one already. */\nfunction setMessageId(element: HTMLElement, serviceId: string) {\n if (!element.id) {\n element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${serviceId}-${nextId++}`;\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 {Subject} from 'rxjs';\nimport {TREE_KEY_MANAGER} from './tree-key-manager';\nimport {TreeKeyManagerItem, TreeKeyManagerStrategy} from './tree-key-manager-strategy';\nimport {Provider} from '@angular/core';\n\n// NoopTreeKeyManager is a \"noop\" implementation of TreeKeyMangerStrategy. Methods are noops. Does\n// not emit to streams.\n//\n// Used for applications built before TreeKeyManager to opt-out of TreeKeyManager and revert to\n// legacy behavior.\n/**\n * @docs-private\n *\n * Opt-out of Tree of key manager behavior.\n *\n * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.\n * - Tree does not respond to keyboard interaction\n * - Tree node allows tabindex to be set by Input binding\n * - Tree node allows tabindex to be set by attribute binding\n *\n * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a\n * TreeKeyManagerStrategy instead. To be removed in a future version.\n *\n * @breaking-change 21.0.0\n */\nexport class NoopTreeKeyManager<T extends TreeKeyManagerItem> implements TreeKeyManagerStrategy<T> {\n readonly _isNoopTreeKeyManager = true;\n\n // Provide change as required by TreeKeyManagerStrategy. NoopTreeKeyManager is a \"noop\"\n // implementation that does not emit to streams.\n readonly change = new Subject<T | null>();\n\n destroy() {\n this.change.complete();\n }\n\n onKeydown() {\n // noop\n }\n\n getActiveItemIndex() {\n // Always return null. NoopTreeKeyManager is a \"noop\" implementation that does not maintain\n // the active item.\n return null;\n }\n\n getActiveItem() {\n // Always return null. NoopTreeKeyManager is a \"noop\" implementation that does not maintain\n // the active item.\n return null;\n }\n\n focusItem() {\n // noop\n }\n}\n\n/**\n * @docs-private\n *\n * Opt-out of Tree of key manager behavior.\n *\n * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.\n * - Tree does not respond to keyboard interaction\n * - Tree node allows tabindex to be set by Input binding\n * - Tree node allows tabindex to be set by attribute binding\n *\n * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a\n * TreeKeyManagerStrategy instead. To be removed in a future version.\n *\n * @breaking-change 21.0.0\n */\nexport const NOOP_TREE_KEY_MANAGER_FACTORY_PROVIDER: Provider = {\n provide: TREE_KEY_MANAGER,\n useFactory: () => () => new NoopTreeKeyManager(),\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 {Injector, NgZone} from '@angular/core';\nimport {InteractivityChecker} from '../interactivity-checker/interactivity-checker';\nimport {ConfigurableFocusTrapConfig} from './configurable-focus-trap-config';\nimport {FocusTrap} from './focus-trap';\nimport {FocusTrapInertStrategy} from './focus-trap-inert-strategy';\nimport {FocusTrapManager, ManagedFocusTrap} from './focus-trap-manager';\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class uses a strategy pattern that determines how it traps focus.\n * See FocusTrapInertStrategy.\n */\nexport class ConfigurableFocusTrap extends FocusTrap implements ManagedFocusTrap {\n /** Whether the FocusTrap is enabled. */\n override get enabled(): boolean {\n return this._enabled;\n }\n override set enabled(value: boolean) {\n this._enabled = value;\n if (this._enabled) {\n this._focusTrapManager.register(this);\n } else {\n this._focusTrapManager.deregister(this);\n }\n }\n\n constructor(\n _element: HTMLElement,\n _checker: InteractivityChecker,\n _ngZone: NgZone,\n _document: Document,\n private _focusTrapManager: FocusTrapManager,\n private _inertStrategy: FocusTrapInertStrategy,\n config: ConfigurableFocusTrapConfig,\n injector?: Injector,\n ) {\n super(_element, _checker, _ngZone, _document, config.defer, injector);\n this._focusTrapManager.register(this);\n }\n\n /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */\n override destroy() {\n this._focusTrapManager.deregister(this);\n super.destroy();\n }\n\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _enable() {\n this._inertStrategy.preventFocus(this);\n this.toggleAnchors(true);\n }\n\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _disable() {\n this._inertStrategy.allowFocus(this);\n this.toggleAnchors(false);\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 {FocusTrapInertStrategy} from './focus-trap-inert-strategy';\nimport {ConfigurableFocusTrap} from './configurable-focus-trap';\n\n/**\n * Lightweight FocusTrapInertStrategy that adds a document focus event\n * listener to redirect focus back inside the FocusTrap.\n */\nexport class EventListenerFocusTrapInertStrategy implements FocusTrapInertStrategy {\n /** Focus event handler. */\n private _listener: ((e: FocusEvent) => void) | null = null;\n\n /** Adds a document event listener that keeps focus inside the FocusTrap. */\n preventFocus(focusTrap: ConfigurableFocusTrap): void {\n // Ensure there's only one listener per document\n if (this._listener) {\n focusTrap._document.removeEventListener('focus', this._listener!, true);\n }\n\n this._listener = (e: FocusEvent) => this._trapFocus(focusTrap, e);\n focusTrap._ngZone.runOutsideAngular(() => {\n focusTrap._document.addEventListener('focus', this._listener!, true);\n });\n }\n\n /** Removes the event listener added in preventFocus. */\n allowFocus(focusTrap: ConfigurableFocusTrap): void {\n if (!this._listener) {\n return;\n }\n focusTrap._document.removeEventListener('focus', this._listener!, true);\n this._listener = null;\n }\n\n /**\n * Refocuses the first element in the FocusTrap if the focus event target was outside\n * the FocusTrap.\n *\n * This is an event listener callback. The event listener is added in runOutsideAngular,\n * so all this code runs outside Angular as well.\n */\n private _trapFocus(focusTrap: ConfigurableFocusTrap, event: FocusEvent) {\n const target = event.target as HTMLElement;\n const focusTrapRoot = focusTrap._element;\n\n // Don't refocus if target was in an overlay, because the overlay might be associated\n // with an element inside the FocusTrap, ex. mat-select.\n if (target && !focusTrapRoot.contains(target) && !target.closest?.('div.cdk-overlay-pane')) {\n // Some legacy FocusTrap usages have logic that focuses some element on the page\n // just before FocusTrap is destroyed. For backwards compatibility, wait\n // to be sure FocusTrap is still enabled before refocusing.\n setTimeout(() => {\n // Check whether focus wasn't put back into the focus trap while the timeout was pending.\n if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {\n focusTrap.focusFirstTabbableElement();\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 {InjectionToken} from '@angular/core';\nimport {FocusTrap} from './focus-trap';\n\n/** The injection token used to specify the inert strategy. */\nexport const FOCUS_TRAP_INERT_STRATEGY = new InjectionToken<FocusTrapInertStrategy>(\n 'FOCUS_TRAP_INERT_STRATEGY',\n);\n\n/**\n * A strategy that dictates how FocusTrap should prevent elements\n * outside of the FocusTrap from being focused.\n */\nexport interface FocusTrapInertStrategy {\n /** Makes all elements outside focusTrap unfocusable. */\n preventFocus(focusTrap: FocusTrap): void;\n /** Reverts elements made unfocusable by preventFocus to their previous state. */\n allowFocus(focusTrap: FocusTrap): void;\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 {Injectable} from '@angular/core';\n\n/**\n * A FocusTrap managed by FocusTrapManager.\n * Implemented by ConfigurableFocusTrap to avoid circular dependency.\n */\nexport interface ManagedFocusTrap {\n _enable(): void;\n _disable(): void;\n focusInitialElementWhenReady(): Promise<boolean>;\n}\n\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\n@Injectable({providedIn: 'root'})\nexport class FocusTrapManager {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n private _focusTrapStack: ManagedFocusTrap[] = [];\n\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap: ManagedFocusTrap): void {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter(ft => ft !== focusTrap);\n\n let stack = this._focusTrapStack;\n\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n\n stack.push(focusTrap);\n focusTrap._enable();\n }\n\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap: ManagedFocusTrap): void {\n focusTrap._disable();\n\n const stack = this._focusTrapStack;\n\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\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 {Injectable, Injector, NgZone, inject, DOCUMENT} from '@angular/core';\nimport {InteractivityChecker} from '../interactivity-checker/interactivity-checker';\nimport {ConfigurableFocusTrap} from './configurable-focus-trap';\nimport {ConfigurableFocusTrapConfig} from './configurable-focus-trap-config';\nimport {EventListenerFocusTrapInertStrategy} from './event-listener-inert-strategy';\nimport {FOCUS_TRAP_INERT_STRATEGY, FocusTrapInertStrategy} from './focus-trap-inert-strategy';\nimport {FocusTrapManager} from './focus-trap-manager';\n\n/** Factory that allows easy instantiation of configurable focus traps. */\n@Injectable({providedIn: 'root'})\nexport class ConfigurableFocusTrapFactory {\n private _checker = inject(InteractivityChecker);\n private _ngZone = inject(NgZone);\n private _focusTrapManager = inject(FocusTrapManager);\n\n private _document = inject(DOCUMENT);\n private _inertStrategy: FocusTrapInertStrategy;\n\n private readonly _injector = inject(Injector);\n\n constructor(...args: unknown[]);\n\n constructor() {\n const inertStrategy = inject(FOCUS_TRAP_INERT_STRATEGY, {optional: true});\n\n // TODO split up the strategies into different modules, similar to DateAdapter.\n this._inertStrategy = inertStrategy || new EventListenerFocusTrapInertStrategy();\n }\n\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param config The focus trap configuration.\n * @returns The created focus trap instance.\n */\n create(element: HTMLElement, config?: ConfigurableFocusTrapConfig): ConfigurableFocusTrap;\n\n /**\n * @deprecated Pass a config object instead of the `deferCaptureElements` flag.\n * @breaking-change 11.0.0\n */\n create(element: HTMLElement, deferCaptureElements: boolean): ConfigurableFocusTrap;\n\n create(\n element: HTMLElement,\n config: ConfigurableFocusTrapConfig | boolean = {defer: false},\n ): ConfigurableFocusTrap {\n let configObject: ConfigurableFocusTrapConfig;\n if (typeof config === 'boolean') {\n configObject = {defer: config};\n } else {\n configObject = config;\n }\n return new ConfigurableFocusTrap(\n element,\n this._checker,\n this._ngZone,\n this._document,\n this._focusTrapManager,\n this._inertStrategy,\n configObject,\n this._injector,\n );\n }\n}\n"],"names":["ID_DELIMITER","addAriaReferencedId","el","attr","id","ids","getAriaReferenceIds","trim","some","existingId","push","setAttribute","join","removeAriaReferencedId","filteredIds","filter","val","length","removeAttribute","attrValue","getAttribute","match","MESSAGES_CONTAINER_ID","CDK_DESCRIBEDBY_ID_PREFIX","CDK_DESCRIBEDBY_HOST_ATTRIBUTE","nextId","AriaDescriber","_platform","inject","Platform","_document","DOCUMENT","_messageRegistry","Map","_messagesContainer","_id","constructor","_CdkPrivateStyleLoader","load","_VisuallyHiddenLoader","APP_ID","describe","hostElement","message","role","_canBeDescribed","key","getKey","setMessageId","set","messageElement","referenceCount","has","_createMessageElement","_isElementDescribedByMessage","_addMessageReference","removeDescription","_isElementNode","_removeMessageReference","registeredMessage","get","_deleteMessageElement","childNodes","remove","ngOnDestroy","describedElements","querySelectorAll","i","_removeCdkDescribedByReferenceIds","clear","createElement","textContent","_createMessagesContainer","appendChild","delete","containerClassName","serverContainers","messagesContainer","style","visibility","classList","add","isBrowser","body","element","originalReferenceIds","indexOf","referenceIds","messageId","trimmedMessage","ariaLabel","nodeType","ELEMENT_NODE","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn","serviceId","NoopTreeKeyManager","_isNoopTreeKeyManager","change","Subject","destroy","complete","onKeydown","getActiveItemIndex","getActiveItem","focusItem","NOOP_TREE_KEY_MANAGER_FACTORY_PROVIDER","provide","TREE_KEY_MANAGER","useFactory","ConfigurableFocusTrap","FocusTrap","_focusTrapManager","_inertStrategy","enabled","_enabled","value","register","deregister","_element","_checker","_ngZone","config","injector","defer","_enable","preventFocus","toggleAnchors","_disable","allowFocus","EventListenerFocusTrapInertStrategy","_listener","focusTrap","removeEventListener","e","_trapFocus","runOutsideAngular","addEventListener","event","focusTrapRoot","contains","closest","setTimeout","activeElement","focusFirstTabbableElement","FOCUS_TRAP_INERT_STRATEGY","InjectionToken","FocusTrapManager","_focusTrapStack","ft","stack","splice","ConfigurableFocusTrapFactory","InteractivityChecker","NgZone","_injector","Injector","inertStrategy","optional","create","configObject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"a11y.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/aria-describer/aria-reference.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/aria-describer/aria-describer.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/key-manager/noop-tree-key-manager.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/configurable-focus-trap.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/event-listener-inert-strategy.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/focus-trap-inert-strategy.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/focus-trap-manager.ts","../../../../../darwin_arm64-fastbuild-ST-199a4f3c4e20/bin/src/cdk/a11y/focus-trap/configurable-focus-trap-factory.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/** IDs are delimited by an empty space, as per the spec. */\nconst ID_DELIMITER = ' ';\n\n/**\n * Adds the given ID to the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport function addAriaReferencedId(el: Element, attr: `aria-${string}`, id: string) {\n const ids = getAriaReferenceIds(el, attr);\n id = id.trim();\n if (ids.some(existingId => existingId.trim() === id)) {\n return;\n }\n ids.push(id);\n\n el.setAttribute(attr, ids.join(ID_DELIMITER));\n}\n\n/**\n * Removes the given ID from the specified ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport function removeAriaReferencedId(el: Element, attr: `aria-${string}`, id: string) {\n const ids = getAriaReferenceIds(el, attr);\n id = id.trim();\n const filteredIds = ids.filter(val => val !== id);\n\n if (filteredIds.length) {\n el.setAttribute(attr, filteredIds.join(ID_DELIMITER));\n } else {\n el.removeAttribute(attr);\n }\n}\n\n/**\n * Gets the list of IDs referenced by the given ARIA attribute on an element.\n * Used for attributes such as aria-labelledby, aria-owns, etc.\n */\nexport function getAriaReferenceIds(el: Element, attr: string): string[] {\n // Get string array of all individual ids (whitespace delimited) in the attribute value\n const attrValue = el.getAttribute(attr);\n return attrValue?.match(/\\S+/g) ?? [];\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 {Injectable, OnDestroy, APP_ID, inject, DOCUMENT} from '@angular/core';\nimport {Platform} from '../../platform';\nimport {addAriaReferencedId, getAriaReferenceIds, removeAriaReferencedId} from './aria-reference';\nimport {_CdkPrivateStyleLoader, _VisuallyHiddenLoader} from '../../private';\n\n/**\n * Interface used to register message elements and keep a count of how many registrations have\n * the same message and the reference to the message element used for the `aria-describedby`.\n */\nexport interface RegisteredMessage {\n /** The element containing the message. */\n messageElement: Element;\n\n /** The number of elements that reference this message element via `aria-describedby`. */\n referenceCount: number;\n}\n\n/**\n * ID used for the body container where all messages are appended.\n * @deprecated No longer being used. To be removed.\n * @breaking-change 14.0.0\n */\nexport const MESSAGES_CONTAINER_ID = 'cdk-describedby-message-container';\n\n/**\n * ID prefix used for each created message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nexport const CDK_DESCRIBEDBY_ID_PREFIX = 'cdk-describedby-message';\n\n/**\n * Attribute given to each host element that is described by a message element.\n * @deprecated To be turned into a private variable.\n * @breaking-change 14.0.0\n */\nexport const CDK_DESCRIBEDBY_HOST_ATTRIBUTE = 'cdk-describedby-host';\n\n/** Global incremental identifier for each registered message element. */\nlet nextId = 0;\n\n/**\n * Utility that creates visually hidden elements with a message content. Useful for elements that\n * want to use aria-describedby to further describe themselves without adding additional visual\n * content.\n */\n@Injectable({providedIn: 'root'})\nexport class AriaDescriber implements OnDestroy {\n private _platform = inject(Platform);\n private _document = inject(DOCUMENT);\n\n /** Map of all registered message elements that have been placed into the document. */\n private _messageRegistry = new Map<string | Element, RegisteredMessage>();\n\n /** Container for all registered messages. */\n private _messagesContainer: HTMLElement | null = null;\n\n /** Unique ID for the service. */\n private readonly _id = `${nextId++}`;\n\n constructor(...args: unknown[]);\n\n constructor() {\n inject(_CdkPrivateStyleLoader).load(_VisuallyHiddenLoader);\n this._id = inject(APP_ID) + '-' + nextId++;\n }\n\n /**\n * Adds to the host element an aria-describedby reference to a hidden element that contains\n * the message. If the same message has already been registered, then it will reuse the created\n * message element.\n */\n describe(hostElement: Element, message: string, role?: string): void;\n\n /**\n * Adds to the host element an aria-describedby reference to an already-existing message element.\n */\n describe(hostElement: Element, message: HTMLElement): void;\n\n describe(hostElement: Element, message: string | HTMLElement, role?: string): void {\n if (!this._canBeDescribed(hostElement, message)) {\n return;\n }\n\n const key = getKey(message, role);\n\n if (typeof message !== 'string') {\n // We need to ensure that the element has an ID.\n setMessageId(message, this._id);\n this._messageRegistry.set(key, {messageElement: message, referenceCount: 0});\n } else if (!this._messageRegistry.has(key)) {\n this._createMessageElement(message, role);\n }\n\n if (!this._isElementDescribedByMessage(hostElement, key)) {\n this._addMessageReference(hostElement, key);\n }\n }\n\n /** Removes the host element's aria-describedby reference to the message. */\n removeDescription(hostElement: Element, message: string, role?: string): void;\n\n /** Removes the host element's aria-describedby reference to the message element. */\n removeDescription(hostElement: Element, message: HTMLElement): void;\n\n removeDescription(hostElement: Element, message: string | HTMLElement, role?: string): void {\n if (!message || !this._isElementNode(hostElement)) {\n return;\n }\n\n const key = getKey(message, role);\n\n if (this._isElementDescribedByMessage(hostElement, key)) {\n this._removeMessageReference(hostElement, key);\n }\n\n // If the message is a string, it means that it's one that we created for the\n // consumer so we can remove it safely, otherwise we should leave it in place.\n if (typeof message === 'string') {\n const registeredMessage = this._messageRegistry.get(key);\n if (registeredMessage && registeredMessage.referenceCount === 0) {\n this._deleteMessageElement(key);\n }\n }\n\n if (this._messagesContainer?.childNodes.length === 0) {\n this._messagesContainer.remove();\n this._messagesContainer = null;\n }\n }\n\n /** Unregisters all created message elements and removes the message container. */\n ngOnDestroy() {\n const describedElements = this._document.querySelectorAll(\n `[${CDK_DESCRIBEDBY_HOST_ATTRIBUTE}=\"${this._id}\"]`,\n );\n\n for (let i = 0; i < describedElements.length; i++) {\n this._removeCdkDescribedByReferenceIds(describedElements[i]);\n describedElements[i].removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n\n this._messagesContainer?.remove();\n this._messagesContainer = null;\n this._messageRegistry.clear();\n }\n\n /**\n * Creates a new element in the visually hidden message container element with the message\n * as its content and adds it to the message registry.\n */\n private _createMessageElement(message: string, role?: string) {\n const messageElement = this._document.createElement('div');\n setMessageId(messageElement, this._id);\n messageElement.textContent = message;\n\n if (role) {\n messageElement.setAttribute('role', role);\n }\n\n this._createMessagesContainer();\n this._messagesContainer!.appendChild(messageElement);\n this._messageRegistry.set(getKey(message, role), {messageElement, referenceCount: 0});\n }\n\n /** Deletes the message element from the global messages container. */\n private _deleteMessageElement(key: string | Element) {\n this._messageRegistry.get(key)?.messageElement?.remove();\n this._messageRegistry.delete(key);\n }\n\n /** Creates the global container for all aria-describedby messages. */\n private _createMessagesContainer() {\n if (this._messagesContainer) {\n return;\n }\n\n const containerClassName = 'cdk-describedby-message-container';\n const serverContainers = this._document.querySelectorAll(\n `.${containerClassName}[platform=\"server\"]`,\n );\n\n for (let i = 0; i < serverContainers.length; i++) {\n // When going from the server to the client, we may end up in a situation where there's\n // already a container on the page, but we don't have a reference to it. Clear the\n // old container so we don't get duplicates. Doing this, instead of emptying the previous\n // container, should be slightly faster.\n serverContainers[i].remove();\n }\n\n const messagesContainer = this._document.createElement('div');\n\n // We add `visibility: hidden` in order to prevent text in this container from\n // being searchable by the browser's Ctrl + F functionality.\n // Screen-readers will still read the description for elements with aria-describedby even\n // when the description element is not visible.\n messagesContainer.style.visibility = 'hidden';\n // Even though we use `visibility: hidden`, we still apply `cdk-visually-hidden` so that\n // the description element doesn't impact page layout.\n messagesContainer.classList.add(containerClassName);\n messagesContainer.classList.add('cdk-visually-hidden');\n\n if (!this._platform.isBrowser) {\n messagesContainer.setAttribute('platform', 'server');\n }\n\n this._document.body.appendChild(messagesContainer);\n this._messagesContainer = messagesContainer;\n }\n\n /** Removes all cdk-describedby messages that are hosted through the element. */\n private _removeCdkDescribedByReferenceIds(element: Element) {\n // Remove all aria-describedby reference IDs that are prefixed by CDK_DESCRIBEDBY_ID_PREFIX\n const originalReferenceIds = getAriaReferenceIds(element, 'aria-describedby').filter(\n id => id.indexOf(CDK_DESCRIBEDBY_ID_PREFIX) != 0,\n );\n element.setAttribute('aria-describedby', originalReferenceIds.join(' '));\n }\n\n /**\n * Adds a message reference to the element using aria-describedby and increments the registered\n * message's reference count.\n */\n private _addMessageReference(element: Element, key: string | Element) {\n const registeredMessage = this._messageRegistry.get(key)!;\n\n // Add the aria-describedby reference and set the\n // describedby_host attribute to mark the element.\n addAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.setAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE, this._id);\n registeredMessage.referenceCount++;\n }\n\n /**\n * Removes a message reference from the element using aria-describedby\n * and decrements the registered message's reference count.\n */\n private _removeMessageReference(element: Element, key: string | Element) {\n const registeredMessage = this._messageRegistry.get(key)!;\n registeredMessage.referenceCount--;\n\n removeAriaReferencedId(element, 'aria-describedby', registeredMessage.messageElement.id);\n element.removeAttribute(CDK_DESCRIBEDBY_HOST_ATTRIBUTE);\n }\n\n /** Returns true if the element has been described by the provided message ID. */\n private _isElementDescribedByMessage(element: Element, key: string | Element): boolean {\n const referenceIds = getAriaReferenceIds(element, 'aria-describedby');\n const registeredMessage = this._messageRegistry.get(key);\n const messageId = registeredMessage && registeredMessage.messageElement.id;\n\n return !!messageId && referenceIds.indexOf(messageId) != -1;\n }\n\n /** Determines whether a message can be described on a particular element. */\n private _canBeDescribed(element: Element, message: string | HTMLElement | void): boolean {\n if (!this._isElementNode(element)) {\n return false;\n }\n\n if (message && typeof message === 'object') {\n // We'd have to make some assumptions about the description element's text, if the consumer\n // passed in an element. Assume that if an element is passed in, the consumer has verified\n // that it can be used as a description.\n return true;\n }\n\n const trimmedMessage = message == null ? '' : `${message}`.trim();\n const ariaLabel = element.getAttribute('aria-label');\n\n // We shouldn't set descriptions if they're exactly the same as the `aria-label` of the\n // element, because screen readers will end up reading out the same text twice in a row.\n return trimmedMessage ? !ariaLabel || ariaLabel.trim() !== trimmedMessage : false;\n }\n\n /** Checks whether a node is an Element node. */\n private _isElementNode(element: Node): element is Element {\n return element.nodeType === this._document.ELEMENT_NODE;\n }\n}\n\n/** Gets a key that can be used to look messages up in the registry. */\nfunction getKey(message: string | Element, role?: string): string | Element {\n return typeof message === 'string' ? `${role || ''}/${message}` : message;\n}\n\n/** Assigns a unique ID to an element, if it doesn't have one already. */\nfunction setMessageId(element: HTMLElement, serviceId: string) {\n if (!element.id) {\n element.id = `${CDK_DESCRIBEDBY_ID_PREFIX}-${serviceId}-${nextId++}`;\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 {Subject} from 'rxjs';\nimport {TREE_KEY_MANAGER} from './tree-key-manager';\nimport {TreeKeyManagerItem, TreeKeyManagerStrategy} from './tree-key-manager-strategy';\nimport {Provider} from '@angular/core';\n\n// NoopTreeKeyManager is a \"noop\" implementation of TreeKeyMangerStrategy. Methods are noops. Does\n// not emit to streams.\n//\n// Used for applications built before TreeKeyManager to opt-out of TreeKeyManager and revert to\n// legacy behavior.\n/**\n * @docs-private\n *\n * Opt-out of Tree of key manager behavior.\n *\n * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.\n * - Tree does not respond to keyboard interaction\n * - Tree node allows tabindex to be set by Input binding\n * - Tree node allows tabindex to be set by attribute binding\n *\n * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a\n * TreeKeyManagerStrategy instead. To be removed in a future version.\n *\n * @breaking-change 21.0.0\n */\nexport class NoopTreeKeyManager<T extends TreeKeyManagerItem> implements TreeKeyManagerStrategy<T> {\n readonly _isNoopTreeKeyManager = true;\n\n // Provide change as required by TreeKeyManagerStrategy. NoopTreeKeyManager is a \"noop\"\n // implementation that does not emit to streams.\n readonly change = new Subject<T | null>();\n\n destroy() {\n this.change.complete();\n }\n\n onKeydown() {\n // noop\n }\n\n getActiveItemIndex() {\n // Always return null. NoopTreeKeyManager is a \"noop\" implementation that does not maintain\n // the active item.\n return null;\n }\n\n getActiveItem() {\n // Always return null. NoopTreeKeyManager is a \"noop\" implementation that does not maintain\n // the active item.\n return null;\n }\n\n focusItem() {\n // noop\n }\n}\n\n/**\n * @docs-private\n *\n * Opt-out of Tree of key manager behavior.\n *\n * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.\n * - Tree does not respond to keyboard interaction\n * - Tree node allows tabindex to be set by Input binding\n * - Tree node allows tabindex to be set by attribute binding\n *\n * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a\n * TreeKeyManagerStrategy instead. To be removed in a future version.\n *\n * @breaking-change 21.0.0\n */\nexport const NOOP_TREE_KEY_MANAGER_FACTORY_PROVIDER: Provider = {\n provide: TREE_KEY_MANAGER,\n useFactory: () => () => new NoopTreeKeyManager(),\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 {Injector, NgZone} from '@angular/core';\nimport {InteractivityChecker} from '../interactivity-checker/interactivity-checker';\nimport {ConfigurableFocusTrapConfig} from './configurable-focus-trap-config';\nimport {FocusTrap} from './focus-trap';\nimport {FocusTrapInertStrategy} from './focus-trap-inert-strategy';\nimport {FocusTrapManager, ManagedFocusTrap} from './focus-trap-manager';\n\n/**\n * Class that allows for trapping focus within a DOM element.\n *\n * This class uses a strategy pattern that determines how it traps focus.\n * See FocusTrapInertStrategy.\n */\nexport class ConfigurableFocusTrap extends FocusTrap implements ManagedFocusTrap {\n /** Whether the FocusTrap is enabled. */\n override get enabled(): boolean {\n return this._enabled;\n }\n override set enabled(value: boolean) {\n this._enabled = value;\n if (this._enabled) {\n this._focusTrapManager.register(this);\n } else {\n this._focusTrapManager.deregister(this);\n }\n }\n\n constructor(\n _element: HTMLElement,\n _checker: InteractivityChecker,\n _ngZone: NgZone,\n _document: Document,\n private _focusTrapManager: FocusTrapManager,\n private _inertStrategy: FocusTrapInertStrategy,\n config: ConfigurableFocusTrapConfig,\n injector?: Injector,\n ) {\n super(_element, _checker, _ngZone, _document, config.defer, injector);\n this._focusTrapManager.register(this);\n }\n\n /** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */\n override destroy() {\n this._focusTrapManager.deregister(this);\n super.destroy();\n }\n\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _enable() {\n this._inertStrategy.preventFocus(this);\n this.toggleAnchors(true);\n }\n\n /** @docs-private Implemented as part of ManagedFocusTrap. */\n _disable() {\n this._inertStrategy.allowFocus(this);\n this.toggleAnchors(false);\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 {FocusTrapInertStrategy} from './focus-trap-inert-strategy';\nimport {ConfigurableFocusTrap} from './configurable-focus-trap';\n\n/**\n * Lightweight FocusTrapInertStrategy that adds a document focus event\n * listener to redirect focus back inside the FocusTrap.\n */\nexport class EventListenerFocusTrapInertStrategy implements FocusTrapInertStrategy {\n /** Focus event handler. */\n private _listener: ((e: FocusEvent) => void) | null = null;\n\n /** Adds a document event listener that keeps focus inside the FocusTrap. */\n preventFocus(focusTrap: ConfigurableFocusTrap): void {\n // Ensure there's only one listener per document\n if (this._listener) {\n focusTrap._document.removeEventListener('focus', this._listener!, true);\n }\n\n this._listener = (e: FocusEvent) => this._trapFocus(focusTrap, e);\n focusTrap._ngZone.runOutsideAngular(() => {\n focusTrap._document.addEventListener('focus', this._listener!, true);\n });\n }\n\n /** Removes the event listener added in preventFocus. */\n allowFocus(focusTrap: ConfigurableFocusTrap): void {\n if (!this._listener) {\n return;\n }\n focusTrap._document.removeEventListener('focus', this._listener!, true);\n this._listener = null;\n }\n\n /**\n * Refocuses the first element in the FocusTrap if the focus event target was outside\n * the FocusTrap.\n *\n * This is an event listener callback. The event listener is added in runOutsideAngular,\n * so all this code runs outside Angular as well.\n */\n private _trapFocus(focusTrap: ConfigurableFocusTrap, event: FocusEvent) {\n const target = event.target as HTMLElement;\n const focusTrapRoot = focusTrap._element;\n\n // Don't refocus if target was in an overlay, because the overlay might be associated\n // with an element inside the FocusTrap, ex. mat-select.\n if (target && !focusTrapRoot.contains(target) && !target.closest?.('div.cdk-overlay-pane')) {\n // Some legacy FocusTrap usages have logic that focuses some element on the page\n // just before FocusTrap is destroyed. For backwards compatibility, wait\n // to be sure FocusTrap is still enabled before refocusing.\n setTimeout(() => {\n // Check whether focus wasn't put back into the focus trap while the timeout was pending.\n if (focusTrap.enabled && !focusTrapRoot.contains(focusTrap._document.activeElement)) {\n focusTrap.focusFirstTabbableElement();\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 {InjectionToken} from '@angular/core';\nimport {FocusTrap} from './focus-trap';\n\n/** The injection token used to specify the inert strategy. */\nexport const FOCUS_TRAP_INERT_STRATEGY = new InjectionToken<FocusTrapInertStrategy>(\n 'FOCUS_TRAP_INERT_STRATEGY',\n);\n\n/**\n * A strategy that dictates how FocusTrap should prevent elements\n * outside of the FocusTrap from being focused.\n */\nexport interface FocusTrapInertStrategy {\n /** Makes all elements outside focusTrap unfocusable. */\n preventFocus(focusTrap: FocusTrap): void;\n /** Reverts elements made unfocusable by preventFocus to their previous state. */\n allowFocus(focusTrap: FocusTrap): void;\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 {Injectable} from '@angular/core';\n\n/**\n * A FocusTrap managed by FocusTrapManager.\n * Implemented by ConfigurableFocusTrap to avoid circular dependency.\n */\nexport interface ManagedFocusTrap {\n _enable(): void;\n _disable(): void;\n focusInitialElementWhenReady(): Promise<boolean>;\n}\n\n/** Injectable that ensures only the most recently enabled FocusTrap is active. */\n@Injectable({providedIn: 'root'})\nexport class FocusTrapManager {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n private _focusTrapStack: ManagedFocusTrap[] = [];\n\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap: ManagedFocusTrap): void {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter(ft => ft !== focusTrap);\n\n let stack = this._focusTrapStack;\n\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n\n stack.push(focusTrap);\n focusTrap._enable();\n }\n\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap: ManagedFocusTrap): void {\n focusTrap._disable();\n\n const stack = this._focusTrapStack;\n\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\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 {Injectable, Injector, NgZone, inject, DOCUMENT} from '@angular/core';\nimport {InteractivityChecker} from '../interactivity-checker/interactivity-checker';\nimport {ConfigurableFocusTrap} from './configurable-focus-trap';\nimport {ConfigurableFocusTrapConfig} from './configurable-focus-trap-config';\nimport {EventListenerFocusTrapInertStrategy} from './event-listener-inert-strategy';\nimport {FOCUS_TRAP_INERT_STRATEGY, FocusTrapInertStrategy} from './focus-trap-inert-strategy';\nimport {FocusTrapManager} from './focus-trap-manager';\n\n/** Factory that allows easy instantiation of configurable focus traps. */\n@Injectable({providedIn: 'root'})\nexport class ConfigurableFocusTrapFactory {\n private _checker = inject(InteractivityChecker);\n private _ngZone = inject(NgZone);\n private _focusTrapManager = inject(FocusTrapManager);\n\n private _document = inject(DOCUMENT);\n private _inertStrategy: FocusTrapInertStrategy;\n\n private readonly _injector = inject(Injector);\n\n constructor(...args: unknown[]);\n\n constructor() {\n const inertStrategy = inject(FOCUS_TRAP_INERT_STRATEGY, {optional: true});\n\n // TODO split up the strategies into different modules, similar to DateAdapter.\n this._inertStrategy = inertStrategy || new EventListenerFocusTrapInertStrategy();\n }\n\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param config The focus trap configuration.\n * @returns The created focus trap instance.\n */\n create(element: HTMLElement, config?: ConfigurableFocusTrapConfig): ConfigurableFocusTrap;\n\n /**\n * @deprecated Pass a config object instead of the `deferCaptureElements` flag.\n * @breaking-change 11.0.0\n */\n create(element: HTMLElement, deferCaptureElements: boolean): ConfigurableFocusTrap;\n\n create(\n element: HTMLElement,\n config: ConfigurableFocusTrapConfig | boolean = {defer: false},\n ): ConfigurableFocusTrap {\n let configObject: ConfigurableFocusTrapConfig;\n if (typeof config === 'boolean') {\n configObject = {defer: config};\n } else {\n configObject = config;\n }\n return new ConfigurableFocusTrap(\n element,\n this._checker,\n this._ngZone,\n this._document,\n this._focusTrapManager,\n this._inertStrategy,\n configObject,\n this._injector,\n );\n }\n}\n"],"names":["ID_DELIMITER","addAriaReferencedId","el","attr","id","ids","getAriaReferenceIds","trim","some","existingId","push","setAttribute","join","removeAriaReferencedId","filteredIds","filter","val","length","removeAttribute","attrValue","getAttribute","match","MESSAGES_CONTAINER_ID","CDK_DESCRIBEDBY_ID_PREFIX","CDK_DESCRIBEDBY_HOST_ATTRIBUTE","nextId","AriaDescriber","_platform","inject","Platform","_document","DOCUMENT","_messageRegistry","Map","_messagesContainer","_id","constructor","_CdkPrivateStyleLoader","load","_VisuallyHiddenLoader","APP_ID","describe","hostElement","message","role","_canBeDescribed","key","getKey","setMessageId","set","messageElement","referenceCount","has","_createMessageElement","_isElementDescribedByMessage","_addMessageReference","removeDescription","_isElementNode","_removeMessageReference","registeredMessage","get","_deleteMessageElement","childNodes","remove","ngOnDestroy","describedElements","querySelectorAll","i","_removeCdkDescribedByReferenceIds","clear","createElement","textContent","_createMessagesContainer","appendChild","delete","containerClassName","serverContainers","messagesContainer","style","visibility","classList","add","isBrowser","body","element","originalReferenceIds","indexOf","referenceIds","messageId","trimmedMessage","ariaLabel","nodeType","ELEMENT_NODE","deps","target","i0","ɵɵFactoryTarget","Injectable","ɵprov","ɵɵngDeclareInjectable","minVersion","version","ngImport","type","decorators","providedIn","serviceId","NoopTreeKeyManager","_isNoopTreeKeyManager","change","Subject","destroy","complete","onKeydown","getActiveItemIndex","getActiveItem","focusItem","NOOP_TREE_KEY_MANAGER_FACTORY_PROVIDER","provide","TREE_KEY_MANAGER","useFactory","ConfigurableFocusTrap","FocusTrap","_focusTrapManager","_inertStrategy","enabled","_enabled","value","register","deregister","_element","_checker","_ngZone","config","injector","defer","_enable","preventFocus","toggleAnchors","_disable","allowFocus","EventListenerFocusTrapInertStrategy","_listener","focusTrap","removeEventListener","e","_trapFocus","runOutsideAngular","addEventListener","event","focusTrapRoot","contains","closest","setTimeout","activeElement","focusFirstTabbableElement","FOCUS_TRAP_INERT_STRATEGY","InjectionToken","FocusTrapManager","_focusTrapStack","ft","stack","splice","ConfigurableFocusTrapFactory","InteractivityChecker","NgZone","_injector","Injector","inertStrategy","optional","create","configObject"],"mappings":"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"}
|
package/fesm2022/accordion.mjs
CHANGED
|
@@ -27,7 +27,7 @@ class CdkAccordion {
|
|
|
27
27
|
}
|
|
28
28
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
29
29
|
minVersion: "12.0.0",
|
|
30
|
-
version: "
|
|
30
|
+
version: "21.0.0",
|
|
31
31
|
ngImport: i0,
|
|
32
32
|
type: CdkAccordion,
|
|
33
33
|
deps: [],
|
|
@@ -35,7 +35,7 @@ class CdkAccordion {
|
|
|
35
35
|
});
|
|
36
36
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
37
37
|
minVersion: "16.1.0",
|
|
38
|
-
version: "
|
|
38
|
+
version: "21.0.0",
|
|
39
39
|
type: CdkAccordion,
|
|
40
40
|
isStandalone: true,
|
|
41
41
|
selector: "cdk-accordion, [cdkAccordion]",
|
|
@@ -53,7 +53,7 @@ class CdkAccordion {
|
|
|
53
53
|
}
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({
|
|
55
55
|
minVersion: "12.0.0",
|
|
56
|
-
version: "
|
|
56
|
+
version: "21.0.0",
|
|
57
57
|
ngImport: i0,
|
|
58
58
|
type: CdkAccordion,
|
|
59
59
|
decorators: [{
|
|
@@ -161,7 +161,7 @@ class CdkAccordionItem {
|
|
|
161
161
|
}
|
|
162
162
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
163
163
|
minVersion: "12.0.0",
|
|
164
|
-
version: "
|
|
164
|
+
version: "21.0.0",
|
|
165
165
|
ngImport: i0,
|
|
166
166
|
type: CdkAccordionItem,
|
|
167
167
|
deps: [],
|
|
@@ -169,7 +169,7 @@ class CdkAccordionItem {
|
|
|
169
169
|
});
|
|
170
170
|
static ɵdir = i0.ɵɵngDeclareDirective({
|
|
171
171
|
minVersion: "16.1.0",
|
|
172
|
-
version: "
|
|
172
|
+
version: "21.0.0",
|
|
173
173
|
type: CdkAccordionItem,
|
|
174
174
|
isStandalone: true,
|
|
175
175
|
selector: "cdk-accordion-item, [cdkAccordionItem]",
|
|
@@ -193,7 +193,7 @@ class CdkAccordionItem {
|
|
|
193
193
|
}
|
|
194
194
|
i0.ɵɵngDeclareClassMetadata({
|
|
195
195
|
minVersion: "12.0.0",
|
|
196
|
-
version: "
|
|
196
|
+
version: "21.0.0",
|
|
197
197
|
ngImport: i0,
|
|
198
198
|
type: CdkAccordionItem,
|
|
199
199
|
decorators: [{
|
|
@@ -239,7 +239,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
239
239
|
class CdkAccordionModule {
|
|
240
240
|
static ɵfac = i0.ɵɵngDeclareFactory({
|
|
241
241
|
minVersion: "12.0.0",
|
|
242
|
-
version: "
|
|
242
|
+
version: "21.0.0",
|
|
243
243
|
ngImport: i0,
|
|
244
244
|
type: CdkAccordionModule,
|
|
245
245
|
deps: [],
|
|
@@ -247,7 +247,7 @@ class CdkAccordionModule {
|
|
|
247
247
|
});
|
|
248
248
|
static ɵmod = i0.ɵɵngDeclareNgModule({
|
|
249
249
|
minVersion: "14.0.0",
|
|
250
|
-
version: "
|
|
250
|
+
version: "21.0.0",
|
|
251
251
|
ngImport: i0,
|
|
252
252
|
type: CdkAccordionModule,
|
|
253
253
|
imports: [CdkAccordion, CdkAccordionItem],
|
|
@@ -255,14 +255,14 @@ class CdkAccordionModule {
|
|
|
255
255
|
});
|
|
256
256
|
static ɵinj = i0.ɵɵngDeclareInjector({
|
|
257
257
|
minVersion: "12.0.0",
|
|
258
|
-
version: "
|
|
258
|
+
version: "21.0.0",
|
|
259
259
|
ngImport: i0,
|
|
260
260
|
type: CdkAccordionModule
|
|
261
261
|
});
|
|
262
262
|
}
|
|
263
263
|
i0.ɵɵngDeclareClassMetadata({
|
|
264
264
|
minVersion: "12.0.0",
|
|
265
|
-
version: "
|
|
265
|
+
version: "21.0.0",
|
|
266
266
|
ngImport: i0,
|
|
267
267
|
type: CdkAccordionModule,
|
|
268
268
|
decorators: [{
|