@angular/cdk 19.2.1 → 20.0.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/dialog/index.d.ts +0 -6
- package/drag-drop/index.d.ts +3 -3
- package/fesm2022/a11y.mjs +43 -43
- package/fesm2022/a11y.mjs.map +1 -1
- package/fesm2022/accordion.mjs +10 -10
- package/fesm2022/accordion.mjs.map +1 -1
- package/fesm2022/bidi.mjs +10 -10
- 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/collections.mjs +3 -3
- package/fesm2022/collections.mjs.map +1 -1
- package/fesm2022/dialog.mjs +10 -16
- 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 +10 -10
- package/fesm2022/layout.mjs.map +1 -1
- 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 +38 -38
- package/fesm2022/overlay.mjs.map +1 -1
- package/fesm2022/platform.mjs +7 -7
- package/fesm2022/platform.mjs.map +1 -1
- package/fesm2022/portal.mjs +19 -45
- package/fesm2022/portal.mjs.map +1 -1
- package/fesm2022/private.mjs +6 -6
- package/fesm2022/private.mjs.map +1 -1
- package/fesm2022/scrolling.mjs +35 -35
- package/fesm2022/scrolling.mjs.map +1 -1
- package/fesm2022/stepper.mjs +29 -28
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/table.mjs +76 -76
- package/fesm2022/table.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/portal/index.d.ts +2 -27
- package/schematics/migration.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.mjs +1 -1
- package/schematics/ng-generate/drag-drop/files/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.spec.ts.template +1 -1
- package/schematics/ng-update/index.d.ts +2 -2
- package/schematics/ng-update/index.js +5 -5
- package/schematics/ng-update/index.mjs +5 -5
- package/schematics/update-tool/target-version.d.ts +1 -1
- package/schematics/update-tool/target-version.js +2 -2
- package/schematics/update-tool/target-version.mjs +2 -2
package/fesm2022/platform.mjs
CHANGED
|
@@ -65,20 +65,20 @@ class Platform {
|
|
|
65
65
|
/** Whether the current browser is Safari. */
|
|
66
66
|
SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;
|
|
67
67
|
constructor() { }
|
|
68
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
69
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: Platform, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
69
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: Platform, providedIn: 'root' });
|
|
70
70
|
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: Platform, decorators: [{
|
|
72
72
|
type: Injectable,
|
|
73
73
|
args: [{ providedIn: 'root' }]
|
|
74
74
|
}], ctorParameters: () => [] });
|
|
75
75
|
|
|
76
76
|
class PlatformModule {
|
|
77
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
78
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0
|
|
79
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0
|
|
77
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: PlatformModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
78
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0", ngImport: i0, type: PlatformModule });
|
|
79
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: PlatformModule });
|
|
80
80
|
}
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: PlatformModule, decorators: [{
|
|
82
82
|
type: NgModule,
|
|
83
83
|
args: [{}]
|
|
84
84
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.mjs","sources":["../../../../../../src/cdk/platform/platform.ts","../../../../../../src/cdk/platform/platform-module.ts","../../../../../../src/cdk/platform/features/input-types.ts","../../../../../../src/cdk/platform/features/passive-listeners.ts","../../../../../../src/cdk/platform/features/scrolling.ts","../../../../../../src/cdk/platform/features/shadow-dom.ts","../../../../../../src/cdk/platform/features/test-environment.ts","../../../../../../src/cdk/platform/features/backwards-compatibility.ts","../../../../../../src/cdk/platform/platform_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.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","/**\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 {NgModule} from '@angular/core';\n\n@NgModule({})\nexport class PlatformModule {}\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\n/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes: Set<string>;\n\n/** Types of `<input>` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n\n/** @returns The input types supported by this browser. */\nexport function getSupportedInputTypes(): Set<string> {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(\n candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }),\n );\n\n return supportedInputTypes;\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\n/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents: boolean;\n\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nexport function supportsPassiveEventListeners(): boolean {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener(\n 'test',\n null!,\n Object.defineProperty({}, 'passive', {\n get: () => (supportsPassiveEvents = true),\n }),\n );\n } finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n\n return supportsPassiveEvents;\n}\n\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nexport function normalizePassiveListenerOptions(\n options: AddEventListenerOptions,\n): AddEventListenerOptions | boolean {\n return supportsPassiveEventListeners() ? options : !!options.capture;\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\n/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nexport enum RtlScrollAxisType {\n /**\n * scrollLeft is 0 when scrolled all the way left and (scrollWidth - clientWidth) when scrolled\n * all the way right.\n */\n NORMAL,\n /**\n * scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n NEGATED,\n /**\n * scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n INVERTED,\n}\n\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType: RtlScrollAxisType | undefined;\n\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported: boolean | undefined;\n\n/** Check whether the browser supports scroll behaviors. */\nexport function supportsScrollBehavior(): boolean {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement!.style) {\n scrollBehaviorSupported = true;\n } else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction: Function | undefined = Element.prototype.scrollTo;\n\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n } else {\n scrollBehaviorSupported = false;\n }\n }\n }\n\n return scrollBehaviorSupported;\n}\n\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nexport function getRtlScrollAxisType(): RtlScrollAxisType {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return RtlScrollAxisType.NORMAL;\n }\n\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n\n rtlScrollAxisType = RtlScrollAxisType.NORMAL;\n\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? RtlScrollAxisType.NEGATED : RtlScrollAxisType.INVERTED;\n }\n\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\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\nlet shadowDomIsSupported: boolean;\n\n/** Checks whether the user's browser support Shadow DOM. */\nexport function _supportsShadowDom(): boolean {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && ((head as any).createShadowRoot || head.attachShadow));\n }\n\n return shadowDomIsSupported;\n}\n\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nexport function _getShadowRoot(element: HTMLElement): ShadowRoot | null {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n\n return null;\n}\n\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nexport function _getFocusedElementPierceShadowDom(): HTMLElement | null {\n let activeElement =\n typeof document !== 'undefined' && document\n ? (document.activeElement as HTMLElement | null)\n : null;\n\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement as HTMLElement | null;\n if (newActiveElement === activeElement) {\n break;\n } else {\n activeElement = newActiveElement;\n }\n }\n\n return activeElement;\n}\n\n/** Gets the target of an event while accounting for Shadow DOM. */\nexport function _getEventTarget<T extends EventTarget>(event: Event): T | null {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return (event.composedPath ? event.composedPath()[0] : event.target) as T | null;\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\n/** Gets whether the code is currently running in a test environment. */\nexport function _isTestEnvironment(): boolean {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n (typeof __karma__ !== 'undefined' && !!__karma__) ||\n // @ts-ignore\n (typeof jasmine !== 'undefined' && !!jasmine) ||\n // @ts-ignore\n (typeof jest !== 'undefined' && !!jest) ||\n // @ts-ignore\n (typeof Mocha !== 'undefined' && !!Mocha)\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 {Renderer2, VERSION} from '@angular/core';\n\n// TODO(crisbeto): replace interface with the one from core when making breaking changes for v20.\n/** Options when binding events manually. */\nexport interface _ListenerOptions {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n}\n\n// TODO(crisbeto): remove this function when making breaking changes for v20.\n/**\n * Binds an event listener with specific options in a backwards-compatible way.\n * This function is necessary, because `Renderer2.listen` only supports listener options\n * after 19.1 and during the v19 period we support any 19.x version.\n * @docs-private\n */\nexport function _bindEventWithOptions(\n renderer: Renderer2,\n target: EventTarget,\n eventName: string,\n callback: (event: any) => boolean | void,\n options: _ListenerOptions,\n): () => void {\n const major = parseInt(VERSION.major);\n const minor = parseInt(VERSION.minor);\n\n // Event options in `listen` are only supported in 19.1 and beyond.\n // We also allow 0.0.x, because that indicates a build at HEAD.\n if (major > 19 || (major === 19 && minor > 0) || (major === 0 && minor === 0)) {\n return renderer.listen(target, eventName, callback, options);\n }\n\n target.addEventListener(eventName, callback, options);\n\n return () => {\n target.removeEventListener(eventName, callback, options);\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAWA;AACA;AACA,IAAI,kBAA2B,CAAC;AAEhC;AACA;AACA;AACA;AACA;AACA,IAAI;IACF,kBAAkB,GAAG,OAAO,IAAI,KAAK,WAAW,IAAK,IAAY,CAAC,eAAe,CAAC;AACpF,CAAC;AAAC,MAAM;IACN,kBAAkB,GAAG,KAAK,CAAC;AAC7B,CAAC;AAED;;;AAGG;MAEU,QAAQ,CAAA;AACX,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;;;;;IAM1C,SAAS,GAAY,IAAI,CAAC,WAAW;AACnC,UAAE,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;UACnC,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC;;AAG/C,IAAA,IAAI,GAAY,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;AAGtE,IAAA,OAAO,GAAY,IAAI,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;;IAIjF,KAAK,GACH,IAAI,CAAC,SAAS;AACd,QAAA,CAAC,EAAG,MAAc,CAAC,MAAM,IAAI,kBAAkB,CAAC;QAChD,OAAO,GAAG,KAAK,WAAW;QAC1B,CAAC,IAAI,CAAC,IAAI;QACV,CAAC,IAAI,CAAC,OAAO,CAAC;;;;IAKhB,MAAM,GACJ,IAAI,CAAC,SAAS;AACd,QAAA,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QACxC,CAAC,IAAI,CAAC,KAAK;QACX,CAAC,IAAI,CAAC,IAAI;QACV,CAAC,IAAI,CAAC,OAAO,CAAC;;IAGhB,GAAG,GACD,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,IAAI,MAAM,CAAC,CAAC;;;;;;AAO5F,IAAA,OAAO,GAAY,IAAI,CAAC,SAAS,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;;;AAItF,IAAA,OAAO,GAAY,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;;;;AAM3F,IAAA,MAAM,GAAY,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;AAKvF,IAAA,WAAA,GAAA,GAAgB;4GA5DL,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAR,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAQ,cADI,MAAM,EAAA,CAAA,CAAA;;gGAClB,QAAQ,EAAA,UAAA,EAAA,CAAA;kBADpB,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;MCnBnB,cAAc,CAAA;4GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,CAAA,CAAA;;gGAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,QAAQ;mBAAC,EAAE,CAAA;;;ACFZ;AACA,IAAI,mBAAgC,CAAC;AAErC;AACA,MAAM,mBAAmB,GAAG;;;;;IAK1B,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,gBAAgB;IAChB,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;CACP,CAAC;AAEF;SACgB,sBAAsB,GAAA;;IAEpC,IAAI,mBAAmB,EAAE;AACvB,QAAA,OAAO,mBAAmB,CAAC;KAC5B;;;;IAKD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE;AAC7C,QAAA,mBAAmB,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACnD,QAAA,OAAO,mBAAmB,CAAC;KAC5B;IAED,IAAI,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvD,mBAAmB,GAAG,IAAI,GAAG,CAC3B,mBAAmB,CAAC,MAAM,CAAC,KAAK,IAAG;AACjC,QAAA,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7C,QAAA,OAAO,gBAAgB,CAAC,IAAI,KAAK,KAAK,CAAC;KACxC,CAAC,CACH,CAAC;AAEF,IAAA,OAAO,mBAAmB,CAAC;AAC7B;;ACzDA;AACA,IAAI,qBAA8B,CAAC;AAEnC;;;AAGG;SACa,6BAA6B,GAAA;IAC3C,IAAI,qBAAqB,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAClE,QAAA,IAAI;AACF,YAAA,MAAM,CAAC,gBAAgB,CACrB,MAAM,EACN,IAAK,EACL,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE;gBACnC,GAAG,EAAE,OAAO,qBAAqB,GAAG,IAAI,CAAC;AAC1C,aAAA,CAAC,CACH,CAAC;SACH;gBAAS;AACR,YAAA,qBAAqB,GAAG,qBAAqB,IAAI,KAAK,CAAC;SACxD;KACF;AAED,IAAA,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;;;;AAKG;AACG,SAAU,+BAA+B,CAC7C,OAAgC,EAAA;AAEhC,IAAA,OAAO,6BAA6B,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AACvE;;ACnCA;IACY,kBAgBX;AAhBD,CAAA,UAAY,iBAAiB,EAAA;AAC3B;;;AAGG;AACH,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN;;;AAGG;AACH,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP;;;AAGG;AACH,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAhBW,iBAAiB,KAAjB,iBAAiB,GAgB5B,EAAA,CAAA,CAAA,CAAA;AAED;AACA,IAAI,iBAAgD,CAAC;AAErD;AACA,IAAI,uBAA4C,CAAC;AAEjD;SACgB,sBAAsB,GAAA;AACpC,IAAA,IAAI,uBAAuB,IAAI,IAAI,EAAE;;;AAGnC,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,CAAC,OAAO,EAAE;YAC1F,uBAAuB,GAAG,KAAK,CAAC;AAChC,YAAA,OAAO,uBAAuB,CAAC;SAChC;;QAGD,IAAI,gBAAgB,IAAI,QAAQ,CAAC,eAAgB,CAAC,KAAK,EAAE;YACvD,uBAAuB,GAAG,IAAI,CAAC;SAChC;aAAM;;;AAGL,YAAA,MAAM,gBAAgB,GAAyB,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;YAE1E,IAAI,gBAAgB,EAAE;;;;;gBAKpB,uBAAuB,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC1F;iBAAM;gBACL,uBAAuB,GAAG,KAAK,CAAC;aACjC;SACF;KACF;AAED,IAAA,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED;;;AAGG;SACa,oBAAoB,GAAA;;IAElC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE;QAC7C,OAAO,iBAAiB,CAAC,MAAM,CAAC;KACjC;AAED,IAAA,IAAI,iBAAiB,IAAI,IAAI,EAAE;;QAE7B,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC;AAC7C,QAAA,eAAe,CAAC,GAAG,GAAG,KAAK,CAAC;AAC5B,QAAA,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;AAC7B,QAAA,cAAc,CAAC,QAAQ,GAAG,MAAM,CAAC;AACjC,QAAA,cAAc,CAAC,UAAU,GAAG,QAAQ,CAAC;AACrC,QAAA,cAAc,CAAC,aAAa,GAAG,MAAM,CAAC;AACtC,QAAA,cAAc,CAAC,QAAQ,GAAG,UAAU,CAAC;QAErC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;AACnC,QAAA,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAA,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC;AAE5B,QAAA,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrC,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;AAE3C,QAAA,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC;;;;AAK7C,QAAA,IAAI,eAAe,CAAC,UAAU,KAAK,CAAC,EAAE;;;;;AAKpC,YAAA,eAAe,CAAC,UAAU,GAAG,CAAC,CAAC;YAC/B,iBAAiB;AACf,gBAAA,eAAe,CAAC,UAAU,KAAK,CAAC,GAAG,iBAAiB,CAAC,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC;SAC7F;QAED,eAAe,CAAC,MAAM,EAAE,CAAC;KAC1B;AACD,IAAA,OAAO,iBAAiB,CAAC;AAC3B;;ACzGA,IAAI,oBAA6B,CAAC;AAElC;SACgB,kBAAkB,GAAA;AAChC,IAAA,IAAI,oBAAoB,IAAI,IAAI,EAAE;AAChC,QAAA,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACpE,QAAA,oBAAoB,GAAG,CAAC,EAAE,IAAI,KAAM,IAAY,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;AACM,SAAU,cAAc,CAAC,OAAoB,EAAA;IACjD,IAAI,kBAAkB,EAAE,EAAE;AACxB,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;;;QAIpE,IAAI,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,IAAI,QAAQ,YAAY,UAAU,EAAE;AACrF,YAAA,OAAO,QAAQ,CAAC;SACjB;KACF;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;AAGG;SACa,iCAAiC,GAAA;AAC/C,IAAA,IAAI,aAAa,GACf,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ;UACtC,QAAQ,CAAC,aAAoC;UAC9C,IAAI,CAAC;AAEX,IAAA,OAAO,aAAa,IAAI,aAAa,CAAC,UAAU,EAAE;AAChD,QAAA,MAAM,gBAAgB,GAAG,aAAa,CAAC,UAAU,CAAC,aAAmC,CAAC;AACtF,QAAA,IAAI,gBAAgB,KAAK,aAAa,EAAE;YACtC,MAAM;SACP;aAAM;YACL,aAAa,GAAG,gBAAgB,CAAC;SAClC;KACF;AAED,IAAA,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;AACM,SAAU,eAAe,CAAwB,KAAY,EAAA;;;IAGjE,QAAQ,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAc;AACnF;;ACtDA;SACgB,kBAAkB,GAAA;;;;;IAKhC;;IAEE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS;;SAE/C,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC;;SAE5C,OAAO,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC;;SAEtC,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,EACzC;AACJ;;ACNA;AACA;;;;;AAKG;AACG,SAAU,qBAAqB,CACnC,QAAmB,EACnB,MAAmB,EACnB,SAAiB,EACjB,QAAwC,EACxC,OAAyB,EAAA;IAEzB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;;IAItC,IAAI,KAAK,GAAG,EAAE,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAC7E,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC9D;IAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAEtD,IAAA,OAAO,MAAK;QACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,KAAC,CAAC;AACJ;;AC9CA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"platform.mjs","sources":["../../../../../../src/cdk/platform/platform.ts","../../../../../../src/cdk/platform/platform-module.ts","../../../../../../src/cdk/platform/features/input-types.ts","../../../../../../src/cdk/platform/features/passive-listeners.ts","../../../../../../src/cdk/platform/features/scrolling.ts","../../../../../../src/cdk/platform/features/shadow-dom.ts","../../../../../../src/cdk/platform/features/test-environment.ts","../../../../../../src/cdk/platform/features/backwards-compatibility.ts","../../../../../../src/cdk/platform/platform_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.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","/**\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 {NgModule} from '@angular/core';\n\n@NgModule({})\nexport class PlatformModule {}\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\n/** Cached result Set of input types support by the current browser. */\nlet supportedInputTypes: Set<string>;\n\n/** Types of `<input>` that *might* be supported. */\nconst candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n\n/** @returns The input types supported by this browser. */\nexport function getSupportedInputTypes(): Set<string> {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n\n let featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(\n candidateInputTypes.filter(value => {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }),\n );\n\n return supportedInputTypes;\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\n/** Cached result of whether the user's browser supports passive event listeners. */\nlet supportsPassiveEvents: boolean;\n\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nexport function supportsPassiveEventListeners(): boolean {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener(\n 'test',\n null!,\n Object.defineProperty({}, 'passive', {\n get: () => (supportsPassiveEvents = true),\n }),\n );\n } finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n\n return supportsPassiveEvents;\n}\n\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nexport function normalizePassiveListenerOptions(\n options: AddEventListenerOptions,\n): AddEventListenerOptions | boolean {\n return supportsPassiveEventListeners() ? options : !!options.capture;\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\n/** The possible ways the browser may handle the horizontal scroll axis in RTL languages. */\nexport enum RtlScrollAxisType {\n /**\n * scrollLeft is 0 when scrolled all the way left and (scrollWidth - clientWidth) when scrolled\n * all the way right.\n */\n NORMAL,\n /**\n * scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n NEGATED,\n /**\n * scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and 0 when scrolled\n * all the way right.\n */\n INVERTED,\n}\n\n/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nlet rtlScrollAxisType: RtlScrollAxisType | undefined;\n\n/** Cached result of the check that indicates whether the browser supports scroll behaviors. */\nlet scrollBehaviorSupported: boolean | undefined;\n\n/** Check whether the browser supports scroll behaviors. */\nexport function supportsScrollBehavior(): boolean {\n if (scrollBehaviorSupported == null) {\n // If we're not in the browser, it can't be supported. Also check for `Element`, because\n // some projects stub out the global `document` during SSR which can throw us off.\n if (typeof document !== 'object' || !document || typeof Element !== 'function' || !Element) {\n scrollBehaviorSupported = false;\n return scrollBehaviorSupported;\n }\n\n // If the element can have a `scrollBehavior` style, we can be sure that it's supported.\n if ('scrollBehavior' in document.documentElement!.style) {\n scrollBehaviorSupported = true;\n } else {\n // At this point we have 3 possibilities: `scrollTo` isn't supported at all, it's\n // supported but it doesn't handle scroll behavior, or it has been polyfilled.\n const scrollToFunction: Function | undefined = Element.prototype.scrollTo;\n\n if (scrollToFunction) {\n // We can detect if the function has been polyfilled by calling `toString` on it. Native\n // functions are obfuscated using `[native code]`, whereas if it was overwritten we'd get\n // the actual function source. Via https://davidwalsh.name/detect-native-function. Consider\n // polyfilled functions as supporting scroll behavior.\n scrollBehaviorSupported = !/\\{\\s*\\[native code\\]\\s*\\}/.test(scrollToFunction.toString());\n } else {\n scrollBehaviorSupported = false;\n }\n }\n }\n\n return scrollBehaviorSupported;\n}\n\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nexport function getRtlScrollAxisType(): RtlScrollAxisType {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return RtlScrollAxisType.NORMAL;\n }\n\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n const scrollContainer = document.createElement('div');\n const containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n\n const content = document.createElement('div');\n const contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n\n rtlScrollAxisType = RtlScrollAxisType.NORMAL;\n\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? RtlScrollAxisType.NEGATED : RtlScrollAxisType.INVERTED;\n }\n\n scrollContainer.remove();\n }\n return rtlScrollAxisType;\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\nlet shadowDomIsSupported: boolean;\n\n/** Checks whether the user's browser support Shadow DOM. */\nexport function _supportsShadowDom(): boolean {\n if (shadowDomIsSupported == null) {\n const head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && ((head as any).createShadowRoot || head.attachShadow));\n }\n\n return shadowDomIsSupported;\n}\n\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nexport function _getShadowRoot(element: HTMLElement): ShadowRoot | null {\n if (_supportsShadowDom()) {\n const rootNode = element.getRootNode ? element.getRootNode() : null;\n\n // Note that this should be caught by `_supportsShadowDom`, but some\n // teams have been able to hit this code path on unsupported browsers.\n if (typeof ShadowRoot !== 'undefined' && ShadowRoot && rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n\n return null;\n}\n\n/**\n * Gets the currently-focused element on the page while\n * also piercing through Shadow DOM boundaries.\n */\nexport function _getFocusedElementPierceShadowDom(): HTMLElement | null {\n let activeElement =\n typeof document !== 'undefined' && document\n ? (document.activeElement as HTMLElement | null)\n : null;\n\n while (activeElement && activeElement.shadowRoot) {\n const newActiveElement = activeElement.shadowRoot.activeElement as HTMLElement | null;\n if (newActiveElement === activeElement) {\n break;\n } else {\n activeElement = newActiveElement;\n }\n }\n\n return activeElement;\n}\n\n/** Gets the target of an event while accounting for Shadow DOM. */\nexport function _getEventTarget<T extends EventTarget>(event: Event): T | null {\n // If an event is bound outside the Shadow DOM, the `event.target` will\n // point to the shadow root so we have to use `composedPath` instead.\n return (event.composedPath ? event.composedPath()[0] : event.target) as T | null;\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\n/** Gets whether the code is currently running in a test environment. */\nexport function _isTestEnvironment(): boolean {\n // We can't use `declare const` because it causes conflicts inside Google with the real typings\n // for these symbols and we can't read them off the global object, because they don't appear to\n // be attached there for some runners like Jest.\n // (see: https://github.com/angular/components/issues/23365#issuecomment-938146643)\n return (\n // @ts-ignore\n (typeof __karma__ !== 'undefined' && !!__karma__) ||\n // @ts-ignore\n (typeof jasmine !== 'undefined' && !!jasmine) ||\n // @ts-ignore\n (typeof jest !== 'undefined' && !!jest) ||\n // @ts-ignore\n (typeof Mocha !== 'undefined' && !!Mocha)\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 {Renderer2, VERSION} from '@angular/core';\n\n// TODO(crisbeto): replace interface with the one from core when making breaking changes for v20.\n/** Options when binding events manually. */\nexport interface _ListenerOptions {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n}\n\n// TODO(crisbeto): remove this function when making breaking changes for v20.\n/**\n * Binds an event listener with specific options in a backwards-compatible way.\n * This function is necessary, because `Renderer2.listen` only supports listener options\n * after 19.1 and during the v19 period we support any 19.x version.\n * @docs-private\n */\nexport function _bindEventWithOptions(\n renderer: Renderer2,\n target: EventTarget,\n eventName: string,\n callback: (event: any) => boolean | void,\n options: _ListenerOptions,\n): () => void {\n const major = parseInt(VERSION.major);\n const minor = parseInt(VERSION.minor);\n\n // Event options in `listen` are only supported in 19.1 and beyond.\n // We also allow 0.0.x, because that indicates a build at HEAD.\n if (major > 19 || (major === 19 && minor > 0) || (major === 0 && minor === 0)) {\n return renderer.listen(target, eventName, callback, options);\n }\n\n target.addEventListener(eventName, callback, options);\n\n return () => {\n target.removeEventListener(eventName, callback, options);\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/portal.mjs
CHANGED
|
@@ -102,21 +102,11 @@ class ComponentPortal extends Portal {
|
|
|
102
102
|
viewContainerRef;
|
|
103
103
|
/** Injector used for the instantiation of the component. */
|
|
104
104
|
injector;
|
|
105
|
-
/**
|
|
106
|
-
* @deprecated No longer in use. To be removed.
|
|
107
|
-
* @breaking-change 18.0.0
|
|
108
|
-
*/
|
|
109
|
-
componentFactoryResolver;
|
|
110
105
|
/**
|
|
111
106
|
* List of DOM nodes that should be projected through `<ng-content>` of the attached component.
|
|
112
107
|
*/
|
|
113
108
|
projectableNodes;
|
|
114
|
-
constructor(component, viewContainerRef, injector,
|
|
115
|
-
/**
|
|
116
|
-
* @deprecated No longer in use. To be removed.
|
|
117
|
-
* @breaking-change 18.0.0
|
|
118
|
-
*/
|
|
119
|
-
_componentFactoryResolver, projectableNodes) {
|
|
109
|
+
constructor(component, viewContainerRef, injector, projectableNodes) {
|
|
120
110
|
super();
|
|
121
111
|
this.component = component;
|
|
122
112
|
this.viewContainerRef = viewContainerRef;
|
|
@@ -266,36 +256,20 @@ class DomPortalOutlet extends BasePortalOutlet {
|
|
|
266
256
|
outletElement;
|
|
267
257
|
_appRef;
|
|
268
258
|
_defaultInjector;
|
|
269
|
-
_document;
|
|
270
259
|
/**
|
|
271
260
|
* @param outletElement Element into which the content is projected.
|
|
272
|
-
* @param _unusedComponentFactoryResolver Used to resolve the component factory.
|
|
273
|
-
* Only required when attaching component portals.
|
|
274
261
|
* @param _appRef Reference to the application. Only used in component portals when there
|
|
275
262
|
* is no `ViewContainerRef` available.
|
|
276
263
|
* @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't
|
|
277
264
|
* have one. Only used for component portals.
|
|
278
|
-
* @param _document Reference to the document. Used when attaching a DOM portal. Will eventually
|
|
279
|
-
* become a required parameter.
|
|
280
265
|
*/
|
|
281
266
|
constructor(
|
|
282
267
|
/** Element into which the content is projected. */
|
|
283
|
-
outletElement,
|
|
284
|
-
/**
|
|
285
|
-
* @deprecated No longer in use. To be removed.
|
|
286
|
-
* @breaking-change 18.0.0
|
|
287
|
-
*/
|
|
288
|
-
_unusedComponentFactoryResolver, _appRef, _defaultInjector,
|
|
289
|
-
/**
|
|
290
|
-
* @deprecated `_document` Parameter to be made required.
|
|
291
|
-
* @breaking-change 10.0.0
|
|
292
|
-
*/
|
|
293
|
-
_document) {
|
|
268
|
+
outletElement, _appRef, _defaultInjector) {
|
|
294
269
|
super();
|
|
295
270
|
this.outletElement = outletElement;
|
|
296
271
|
this._appRef = _appRef;
|
|
297
272
|
this._defaultInjector = _defaultInjector;
|
|
298
|
-
this._document = _document;
|
|
299
273
|
}
|
|
300
274
|
/**
|
|
301
275
|
* Attach the given ComponentPortal to DOM element.
|
|
@@ -386,7 +360,7 @@ class DomPortalOutlet extends BasePortalOutlet {
|
|
|
386
360
|
}
|
|
387
361
|
// Anchor used to save the element's previous position so
|
|
388
362
|
// that we can restore it when the portal is detached.
|
|
389
|
-
const anchorNode = this.
|
|
363
|
+
const anchorNode = this.outletElement.ownerDocument.createComment('dom-portal');
|
|
390
364
|
element.parentNode.insertBefore(anchorNode, element);
|
|
391
365
|
this.outletElement.appendChild(element);
|
|
392
366
|
this._attachedPortal = portal;
|
|
@@ -426,10 +400,10 @@ class CdkPortal extends TemplatePortal {
|
|
|
426
400
|
const viewContainerRef = inject(ViewContainerRef);
|
|
427
401
|
super(templateRef, viewContainerRef);
|
|
428
402
|
}
|
|
429
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
430
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0
|
|
403
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: CdkPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
404
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: CdkPortal, isStandalone: true, selector: "[cdkPortal]", exportAs: ["cdkPortal"], usesInheritance: true, ngImport: i0 });
|
|
431
405
|
}
|
|
432
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
406
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: CdkPortal, decorators: [{
|
|
433
407
|
type: Directive,
|
|
434
408
|
args: [{
|
|
435
409
|
selector: '[cdkPortal]',
|
|
@@ -441,15 +415,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-rc.0", ng
|
|
|
441
415
|
* @breaking-change 9.0.0
|
|
442
416
|
*/
|
|
443
417
|
class TemplatePortalDirective extends CdkPortal {
|
|
444
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
445
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0
|
|
418
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: TemplatePortalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
419
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: TemplatePortalDirective, isStandalone: true, selector: "[cdk-portal], [portal]", providers: [
|
|
446
420
|
{
|
|
447
421
|
provide: CdkPortal,
|
|
448
422
|
useExisting: TemplatePortalDirective,
|
|
449
423
|
},
|
|
450
424
|
], exportAs: ["cdkPortal"], usesInheritance: true, ngImport: i0 });
|
|
451
425
|
}
|
|
452
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: TemplatePortalDirective, decorators: [{
|
|
453
427
|
type: Directive,
|
|
454
428
|
args: [{
|
|
455
429
|
selector: '[cdk-portal], [portal]',
|
|
@@ -591,10 +565,10 @@ class CdkPortalOutlet extends BasePortalOutlet {
|
|
|
591
565
|
? nativeElement
|
|
592
566
|
: nativeElement.parentNode);
|
|
593
567
|
}
|
|
594
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
595
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0
|
|
568
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: CdkPortalOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
569
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: CdkPortalOutlet, isStandalone: true, selector: "[cdkPortalOutlet]", inputs: { portal: ["cdkPortalOutlet", "portal"] }, outputs: { attached: "attached" }, exportAs: ["cdkPortalOutlet"], usesInheritance: true, ngImport: i0 });
|
|
596
570
|
}
|
|
597
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
571
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: CdkPortalOutlet, decorators: [{
|
|
598
572
|
type: Directive,
|
|
599
573
|
args: [{
|
|
600
574
|
selector: '[cdkPortalOutlet]',
|
|
@@ -611,15 +585,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-rc.0", ng
|
|
|
611
585
|
* @breaking-change 9.0.0
|
|
612
586
|
*/
|
|
613
587
|
class PortalHostDirective extends CdkPortalOutlet {
|
|
614
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
615
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0
|
|
588
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: PortalHostDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
589
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: PortalHostDirective, isStandalone: true, selector: "[cdkPortalHost], [portalHost]", inputs: { portal: ["cdkPortalHost", "portal"] }, providers: [
|
|
616
590
|
{
|
|
617
591
|
provide: CdkPortalOutlet,
|
|
618
592
|
useExisting: PortalHostDirective,
|
|
619
593
|
},
|
|
620
594
|
], exportAs: ["cdkPortalHost"], usesInheritance: true, ngImport: i0 });
|
|
621
595
|
}
|
|
622
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: PortalHostDirective, decorators: [{
|
|
623
597
|
type: Directive,
|
|
624
598
|
args: [{
|
|
625
599
|
selector: '[cdkPortalHost], [portalHost]',
|
|
@@ -634,11 +608,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-rc.0", ng
|
|
|
634
608
|
}]
|
|
635
609
|
}] });
|
|
636
610
|
class PortalModule {
|
|
637
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
638
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0
|
|
639
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0
|
|
611
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: PortalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
612
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.0", ngImport: i0, type: PortalModule, imports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective], exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective] });
|
|
613
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: PortalModule });
|
|
640
614
|
}
|
|
641
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
615
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: PortalModule, decorators: [{
|
|
642
616
|
type: NgModule,
|
|
643
617
|
args: [{
|
|
644
618
|
imports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
|
package/fesm2022/portal.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.mjs","sources":["../../../../../../src/cdk/portal/portal-errors.ts","../../../../../../src/cdk/portal/portal.ts","../../../../../../src/cdk/portal/dom-portal-outlet.ts","../../../../../../src/cdk/portal/portal-directives.ts","../../../../../../src/cdk/portal/portal-injector.ts","../../../../../../src/cdk/portal/portal_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error(\n 'Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.',\n );\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n TemplateRef,\n ViewContainerRef,\n ElementRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n} from '@angular/core';\nimport {\n throwNullPortalOutletError,\n throwPortalAlreadyAttachedError,\n throwNoPortalAttachedError,\n throwNullPortalError,\n throwPortalOutletAlreadyDisposedError,\n throwUnknownPortalTypeError,\n} from './portal-errors';\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n\n this._attachedHost = host;\n return <T>host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n let host = this._attachedHost;\n\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n /**\n * @deprecated No longer in use. To be removed.\n * @breaking-change 18.0.0\n */\n componentFactoryResolver?: any;\n\n /**\n * List of DOM nodes that should be projected through `<ng-content>` of the attached component.\n */\n projectableNodes?: Node[][] | null;\n\n constructor(\n component: ComponentType<T>,\n viewContainerRef?: ViewContainerRef | null,\n injector?: Injector | null,\n /**\n * @deprecated No longer in use. To be removed.\n * @breaking-change 18.0.0\n */\n _componentFactoryResolver?: any,\n projectableNodes?: Node[][] | null,\n ) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.projectableNodes = projectableNodes;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {\n constructor(\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n public templateRef: TemplateRef<C>,\n /** Reference to the ViewContainer into which the template will be stamped out. */\n public viewContainerRef: ViewContainerRef,\n /** Contextual data to be passed in to the embedded view. */\n public context?: C,\n /** The injector to use for the embedded view. */\n public injector?: Injector,\n ) {\n super();\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n override attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {\n this.context = context;\n return super.attach(host);\n }\n\n override detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nexport class DomPortal<T = HTMLElement> extends Portal<T> {\n /** DOM node hosting the portal's content. */\n readonly element: T;\n\n constructor(element: T | ElementRef<T>) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n\n/** A `PortalOutlet` is a space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n/**\n * @deprecated Use `PortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport type PortalHost = PortalOutlet;\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed: boolean = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n } else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n readonly attachDomPortal: null | ((portal: DomPortal) => any) = null;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport abstract class BasePortalHost extends BasePortalOutlet {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n NgModuleRef,\n createComponent,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, DomPortal, TemplatePortal} from './portal';\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class DomPortalOutlet extends BasePortalOutlet {\n private _document: Document;\n\n /**\n * @param outletElement Element into which the content is projected.\n * @param _unusedComponentFactoryResolver Used to resolve the component factory.\n * Only required when attaching component portals.\n * @param _appRef Reference to the application. Only used in component portals when there\n * is no `ViewContainerRef` available.\n * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't\n * have one. Only used for component portals.\n * @param _document Reference to the document. Used when attaching a DOM portal. Will eventually\n * become a required parameter.\n */\n constructor(\n /** Element into which the content is projected. */\n public outletElement: Element,\n /**\n * @deprecated No longer in use. To be removed.\n * @breaking-change 18.0.0\n */\n _unusedComponentFactoryResolver?: any,\n private _appRef?: ApplicationRef,\n private _defaultInjector?: Injector,\n\n /**\n * @deprecated `_document` Parameter to be made required.\n * @breaking-change 10.0.0\n */\n _document?: any,\n ) {\n super();\n this._document = _document;\n }\n\n /**\n * Attach the given ComponentPortal to DOM element.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n let componentRef: ComponentRef<T>;\n\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n const injector = portal.injector || portal.viewContainerRef.injector;\n const ngModuleRef = injector.get(NgModuleRef, null, {optional: true}) || undefined;\n\n componentRef = portal.viewContainerRef.createComponent(portal.component, {\n index: portal.viewContainerRef.length,\n injector,\n ngModuleRef,\n projectableNodes: portal.projectableNodes || undefined,\n });\n\n this.setDisposeFn(() => componentRef.destroy());\n } else {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._appRef) {\n throw Error('Cannot attach component portal to outlet without an ApplicationRef.');\n }\n\n componentRef = createComponent(portal.component, {\n elementInjector: portal.injector || this._defaultInjector || Injector.NULL,\n environmentInjector: this._appRef!.injector,\n projectableNodes: portal.projectableNodes || undefined,\n });\n\n this._appRef!.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n // Verify that the ApplicationRef has registered views before trying to detach a host view.\n // This check also protects the `detachView` from being called on a destroyed ApplicationRef.\n if (this._appRef!.viewCount > 0) {\n this._appRef!.detachView(componentRef.hostView);\n }\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n this._attachedPortal = portal;\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n\n this.setDisposeFn(() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n\n this._attachedPortal = portal;\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n\n element.parentNode!.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n this._attachedPortal = portal;\n\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n\n /**\n * Clears out a portal from the DOM.\n */\n override dispose(): void {\n super.dispose();\n this.outletElement.remove();\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport class DomPortalHost extends DomPortalOutlet {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentRef,\n Directive,\n EmbeddedViewRef,\n EventEmitter,\n NgModule,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n Input,\n inject,\n NgModuleRef,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {BasePortalOutlet, ComponentPortal, Portal, TemplatePortal, DomPortal} from './portal';\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\n@Directive({\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(...args: unknown[]);\n\n constructor() {\n const templateRef = inject<TemplateRef<any>>(TemplateRef);\n const viewContainerRef = inject(ViewContainerRef);\n\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\n@Directive({\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ],\n})\nexport class TemplatePortalDirective extends CdkPortal {}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n private _moduleRef = inject(NgModuleRef, {optional: true});\n private _document = inject(DOCUMENT);\n private _viewContainerRef = inject(ViewContainerRef);\n\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n /** Portal associated with the Portal outlet. */\n @Input('cdkPortalOutlet')\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null | undefined | '') {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal || null;\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() readonly attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedRef = this._attachedPortal = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef =\n portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n\n const ref = viewContainerRef.createComponent(portal.component, {\n index: viewContainerRef.length,\n injector: portal.injector || viewContainerRef.injector,\n projectableNodes: portal.projectableNodes || undefined,\n ngModuleRef: this._moduleRef || undefined,\n });\n\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild((ref.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n }\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n\n portal.setAttachedHost(this);\n element.parentNode!.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n this._attachedPortal = portal;\n\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode!.replaceChild(element, anchorNode);\n }\n });\n };\n\n /** Gets the root node of the portal outlet. */\n private _getRootNode(): HTMLElement {\n const nativeElement: Node = this._viewContainerRef.element.nativeElement;\n\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (\n nativeElement.nodeType === nativeElement.ELEMENT_NODE\n ? nativeElement\n : nativeElement.parentNode!\n ) as HTMLElement;\n }\n}\n\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\n@Directive({\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: [{name: 'portal', alias: 'cdkPortalHost'}],\n providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ],\n})\nexport class PortalHostDirective extends CdkPortalOutlet {}\n\n@NgModule({\n imports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n})\nexport class PortalModule {}\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} from '@angular/core';\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nexport class PortalInjector implements Injector {\n constructor(\n private _parentInjector: Injector,\n private _customTokens: WeakMap<any, any>,\n ) {}\n\n get(token: any, notFoundValue?: any): any {\n const value = this._customTokens.get(token);\n\n if (typeof value !== 'undefined') {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portal.mjs","sources":["../../../../../../src/cdk/portal/portal-errors.ts","../../../../../../src/cdk/portal/portal.ts","../../../../../../src/cdk/portal/dom-portal-outlet.ts","../../../../../../src/cdk/portal/portal-directives.ts","../../../../../../src/cdk/portal/portal-injector.ts","../../../../../../src/cdk/portal/portal_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error(\n 'Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.',\n );\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n TemplateRef,\n ViewContainerRef,\n ElementRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n} from '@angular/core';\nimport {\n throwNullPortalOutletError,\n throwPortalAlreadyAttachedError,\n throwNoPortalAttachedError,\n throwNullPortalError,\n throwPortalOutletAlreadyDisposedError,\n throwUnknownPortalTypeError,\n} from './portal-errors';\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n\n this._attachedHost = host;\n return <T>host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n let host = this._attachedHost;\n\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n /**\n * List of DOM nodes that should be projected through `<ng-content>` of the attached component.\n */\n projectableNodes?: Node[][] | null;\n\n constructor(\n component: ComponentType<T>,\n viewContainerRef?: ViewContainerRef | null,\n injector?: Injector | null,\n projectableNodes?: Node[][] | null,\n ) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.projectableNodes = projectableNodes;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {\n constructor(\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n public templateRef: TemplateRef<C>,\n /** Reference to the ViewContainer into which the template will be stamped out. */\n public viewContainerRef: ViewContainerRef,\n /** Contextual data to be passed in to the embedded view. */\n public context?: C,\n /** The injector to use for the embedded view. */\n public injector?: Injector,\n ) {\n super();\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n override attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {\n this.context = context;\n return super.attach(host);\n }\n\n override detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nexport class DomPortal<T = HTMLElement> extends Portal<T> {\n /** DOM node hosting the portal's content. */\n readonly element: T;\n\n constructor(element: T | ElementRef<T>) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n\n/** A `PortalOutlet` is a space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n/**\n * @deprecated Use `PortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport type PortalHost = PortalOutlet;\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed: boolean = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n } else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n readonly attachDomPortal: null | ((portal: DomPortal) => any) = null;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport abstract class BasePortalHost extends BasePortalOutlet {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n Injector,\n NgModuleRef,\n createComponent,\n} from '@angular/core';\nimport {BasePortalOutlet, ComponentPortal, DomPortal, TemplatePortal} from './portal';\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class DomPortalOutlet extends BasePortalOutlet {\n /**\n * @param outletElement Element into which the content is projected.\n * @param _appRef Reference to the application. Only used in component portals when there\n * is no `ViewContainerRef` available.\n * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't\n * have one. Only used for component portals.\n */\n constructor(\n /** Element into which the content is projected. */\n public outletElement: Element,\n private _appRef?: ApplicationRef,\n private _defaultInjector?: Injector,\n ) {\n super();\n }\n\n /**\n * Attach the given ComponentPortal to DOM element.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n let componentRef: ComponentRef<T>;\n\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n const injector = portal.injector || portal.viewContainerRef.injector;\n const ngModuleRef = injector.get(NgModuleRef, null, {optional: true}) || undefined;\n\n componentRef = portal.viewContainerRef.createComponent(portal.component, {\n index: portal.viewContainerRef.length,\n injector,\n ngModuleRef,\n projectableNodes: portal.projectableNodes || undefined,\n });\n\n this.setDisposeFn(() => componentRef.destroy());\n } else {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._appRef) {\n throw Error('Cannot attach component portal to outlet without an ApplicationRef.');\n }\n\n componentRef = createComponent(portal.component, {\n elementInjector: portal.injector || this._defaultInjector || Injector.NULL,\n environmentInjector: this._appRef!.injector,\n projectableNodes: portal.projectableNodes || undefined,\n });\n\n this._appRef!.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n // Verify that the ApplicationRef has registered views before trying to detach a host view.\n // This check also protects the `detachView` from being called on a destroyed ApplicationRef.\n if (this._appRef!.viewCount > 0) {\n this._appRef!.detachView(componentRef.hostView);\n }\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n this._attachedPortal = portal;\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n let viewContainer = portal.viewContainerRef;\n let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));\n\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n\n this.setDisposeFn(() => {\n let index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n\n this._attachedPortal = portal;\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this.outletElement.ownerDocument.createComment('dom-portal');\n\n element.parentNode!.insertBefore(anchorNode, element);\n this.outletElement.appendChild(element);\n this._attachedPortal = portal;\n\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n\n /**\n * Clears out a portal from the DOM.\n */\n override dispose(): void {\n super.dispose();\n this.outletElement.remove();\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nexport class DomPortalHost extends DomPortalOutlet {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {\n ComponentRef,\n Directive,\n EmbeddedViewRef,\n EventEmitter,\n NgModule,\n OnDestroy,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n Input,\n inject,\n NgModuleRef,\n} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {BasePortalOutlet, ComponentPortal, Portal, TemplatePortal, DomPortal} from './portal';\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\n@Directive({\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(...args: unknown[]);\n\n constructor() {\n const templateRef = inject<TemplateRef<any>>(TemplateRef);\n const viewContainerRef = inject(ViewContainerRef);\n\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\n@Directive({\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [\n {\n provide: CdkPortal,\n useExisting: TemplatePortalDirective,\n },\n ],\n})\nexport class TemplatePortalDirective extends CdkPortal {}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n private _moduleRef = inject(NgModuleRef, {optional: true});\n private _document = inject(DOCUMENT);\n private _viewContainerRef = inject(ViewContainerRef);\n\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(...args: unknown[]);\n\n constructor() {\n super();\n }\n\n /** Portal associated with the Portal outlet. */\n @Input('cdkPortalOutlet')\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null | undefined | '') {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal || null;\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() readonly attached: EventEmitter<CdkPortalOutletAttachedRef> =\n new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedRef = this._attachedPortal = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef =\n portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n\n const ref = viewContainerRef.createComponent(portal.component, {\n index: viewContainerRef.length,\n injector: portal.injector || viewContainerRef.injector,\n projectableNodes: portal.projectableNodes || undefined,\n ngModuleRef: this._moduleRef || undefined,\n });\n\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild((ref.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n }\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector,\n });\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n override attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode = this._document.createComment('dom-portal');\n\n portal.setAttachedHost(this);\n element.parentNode!.insertBefore(anchorNode, element);\n this._getRootNode().appendChild(element);\n this._attachedPortal = portal;\n\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n anchorNode.parentNode!.replaceChild(element, anchorNode);\n }\n });\n };\n\n /** Gets the root node of the portal outlet. */\n private _getRootNode(): HTMLElement {\n const nativeElement: Node = this._viewContainerRef.element.nativeElement;\n\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (\n nativeElement.nodeType === nativeElement.ELEMENT_NODE\n ? nativeElement\n : nativeElement.parentNode!\n ) as HTMLElement;\n }\n}\n\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\n@Directive({\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: [{name: 'portal', alias: 'cdkPortalHost'}],\n providers: [\n {\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective,\n },\n ],\n})\nexport class PortalHostDirective extends CdkPortalOutlet {}\n\n@NgModule({\n imports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n})\nexport class PortalModule {}\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} from '@angular/core';\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nexport class PortalInjector implements Injector {\n constructor(\n private _parentInjector: Injector,\n private _customTokens: WeakMap<any, any>,\n ) {}\n\n get(token: any, notFoundValue?: any): any {\n const value = this._customTokens.get(token);\n\n if (typeof value !== 'undefined') {\n return value;\n }\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/private.mjs
CHANGED
|
@@ -35,10 +35,10 @@ class _CdkPrivateStyleLoader {
|
|
|
35
35
|
data.refs.push(createComponent(loader, { environmentInjector: this._environmentInjector }));
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
39
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: _CdkPrivateStyleLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: _CdkPrivateStyleLoader, providedIn: 'root' });
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: _CdkPrivateStyleLoader, decorators: [{
|
|
42
42
|
type: Injectable,
|
|
43
43
|
args: [{ providedIn: 'root' }]
|
|
44
44
|
}] });
|
|
@@ -48,10 +48,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0-rc.0", ng
|
|
|
48
48
|
* @docs-private
|
|
49
49
|
*/
|
|
50
50
|
class _VisuallyHiddenLoader {
|
|
51
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0
|
|
52
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.0
|
|
51
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: _VisuallyHiddenLoader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.0", type: _VisuallyHiddenLoader, isStandalone: true, selector: "ng-component", exportAs: ["cdkVisuallyHidden"], ngImport: i0, template: '', isInline: true, 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}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
53
53
|
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: _VisuallyHiddenLoader, decorators: [{
|
|
55
55
|
type: Component,
|
|
56
56
|
args: [{ exportAs: 'cdkVisuallyHidden', encapsulation: ViewEncapsulation.None, template: '', changeDetection: ChangeDetectionStrategy.OnPush, 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}"] }]
|
|
57
57
|
}] });
|
package/fesm2022/private.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private.mjs","sources":["../../../../../../src/cdk/private/style-loader.ts","../../../../../../src/cdk/private/visually-hidden/visually-hidden.ts","../../../../../../src/cdk/private/private_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.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","/**\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAmBA;AACA,MAAM,eAAe,GAAG,IAAI,OAAO,EAShC,CAAC;AAEJ;;;AAGG;MAEU,sBAAsB,CAAA;AACzB,IAAA,OAAO,CAA6B;AACpC,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,IAAA,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE3D;;;AAGG;AACH,IAAA,IAAI,CAAC,MAAqB,EAAA;;QAExB,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;QAGvC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,GAAG,EAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC;AACtC,YAAA,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;AAGlC,YAAA,MAAM,CAAC,SAAS,CAAC,MAAK;AACpB,gBAAA,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAChE,gBAAA,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,aAAC,CAAC,CAAC;SACJ;;QAGD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,EAAC,CAAC,CAAC,CAAC;SAC3F;KACF;
|
|
1
|
+
{"version":3,"file":"private.mjs","sources":["../../../../../../src/cdk/private/style-loader.ts","../../../../../../src/cdk/private/visually-hidden/visually-hidden.ts","../../../../../../src/cdk/private/private_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.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","/**\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAmBA;AACA,MAAM,eAAe,GAAG,IAAI,OAAO,EAShC,CAAC;AAEJ;;;AAGG;MAEU,sBAAsB,CAAA;AACzB,IAAA,OAAO,CAA6B;AACpC,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,IAAA,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAE3D;;;AAGG;AACH,IAAA,IAAI,CAAC,MAAqB,EAAA;;QAExB,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;QAGvC,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,IAAI,GAAG,EAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC;AACtC,YAAA,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;AAGlC,YAAA,MAAM,CAAC,SAAS,CAAC,MAAK;AACpB,gBAAA,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAChE,gBAAA,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjC,aAAC,CAAC,CAAC;SACJ;;QAGD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAC,mBAAmB,EAAE,IAAI,CAAC,oBAAoB,EAAC,CAAC,CAAC,CAAC;SAC3F;KACF;uGA/BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADV,MAAM,EAAA,CAAA,CAAA;;2FAClB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAA;;;ACzBhC;;;AAGG;MAQU,qBAAqB,CAAA;uGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,yGAHtB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BAEE,mBAAmB,EAAA,aAAA,EACd,iBAAiB,CAAC,IAAI,YAC3B,EAAE,EAAA,eAAA,EACK,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,kQAAA,CAAA,EAAA,CAAA;;;ACnBjD;;AAEG;;;;"}
|