import { isPlatformBrowser } from "./chunk-76DXN4JH.js"; import { APP_ID, ApplicationRef, ElementRef, Injectable, PLATFORM_ID, createComponent, setClassMetadata } from "./chunk-UEBPW2IJ.js"; import { EnvironmentInjector, Injector, inject, ɵɵdefineInjectable } from "./chunk-QLJXSR7F.js"; // node_modules/@angular/cdk/fesm2022/shadow-dom.mjs var shadowDomIsSupported; function _supportsShadowDom() { if (shadowDomIsSupported == null) { const head = typeof document !== "undefined" ? document.head : null; shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow)); } return shadowDomIsSupported; } function _getShadowRoot(element) { if (_supportsShadowDom()) { const rootNode = element.getRootNode ? element.getRootNode() : null; if (typeof ShadowRoot !== "undefined" && ShadowRoot && rootNode instanceof ShadowRoot) { return rootNode; } } return null; } function _getFocusedElementPierceShadowDom() { let activeElement = typeof document !== "undefined" && document ? document.activeElement : null; while (activeElement && activeElement.shadowRoot) { const newActiveElement = activeElement.shadowRoot.activeElement; if (newActiveElement === activeElement) { break; } else { activeElement = newActiveElement; } } return activeElement; } function _getEventTarget(event) { return event.composedPath ? event.composedPath()[0] : event.target; } // node_modules/@angular/cdk/fesm2022/fake-event-detection.mjs function isFakeMousedownFromScreenReader(event) { return event.buttons === 0 || event.detail === 0; } function isFakeTouchstartFromScreenReader(event) { const touch = event.touches && event.touches[0] || event.changedTouches && event.changedTouches[0]; return !!touch && touch.identifier === -1 && (touch.radiusX == null || touch.radiusX === 1) && (touch.radiusY == null || touch.radiusY === 1); } // node_modules/@angular/cdk/fesm2022/element.mjs function coerceNumberProperty(value, fallbackValue = 0) { if (_isNumberValue(value)) { return Number(value); } return arguments.length === 2 ? fallbackValue : 0; } function _isNumberValue(value) { return !isNaN(parseFloat(value)) && !isNaN(Number(value)); } function coerceElement(elementOrRef) { return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef; } // node_modules/@angular/cdk/fesm2022/style-loader.mjs var appsWithLoaders = /* @__PURE__ */ new WeakMap(); var _CdkPrivateStyleLoader = class __CdkPrivateStyleLoader { _appRef; _injector = inject(Injector); _environmentInjector = inject(EnvironmentInjector); /** * Loads a set of styles. * @param loader Component which will be instantiated to load the styles. */ load(loader) { const appRef = this._appRef = this._appRef || this._injector.get(ApplicationRef); let data = appsWithLoaders.get(appRef); if (!data) { data = { loaders: /* @__PURE__ */ new Set(), refs: [] }; appsWithLoaders.set(appRef, data); appRef.onDestroy(() => { appsWithLoaders.get(appRef)?.refs.forEach((ref) => ref.destroy()); appsWithLoaders.delete(appRef); }); } if (!data.loaders.has(loader)) { data.loaders.add(loader); data.refs.push(createComponent(loader, { environmentInjector: this._environmentInjector })); } } static ɵfac = function _CdkPrivateStyleLoader_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || __CdkPrivateStyleLoader)(); }; static ɵprov = ɵɵdefineInjectable({ token: __CdkPrivateStyleLoader, factory: __CdkPrivateStyleLoader.ɵfac, providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(_CdkPrivateStyleLoader, [{ type: Injectable, args: [{ providedIn: "root" }] }], null, null); })(); // node_modules/@angular/cdk/fesm2022/platform2.mjs var hasV8BreakIterator; try { hasV8BreakIterator = typeof Intl !== "undefined" && Intl.v8BreakIterator; } catch { hasV8BreakIterator = false; } var Platform = class _Platform { _platformId = inject(PLATFORM_ID); // We want to use the Angular platform check because if the Document is shimmed // without the navigator, the following checks will fail. This is preferred because // sometimes the Document may be shimmed without the user's knowledge or intention /** Whether the Angular application is being rendered in the browser. */ isBrowser = this._platformId ? isPlatformBrowser(this._platformId) : typeof document === "object" && !!document; /** Whether the current browser is Microsoft Edge. */ EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent); /** Whether the current rendering engine is Microsoft Trident. */ TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent); // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check. /** Whether the current rendering engine is Blink. */ BLINK = this.isBrowser && !!(window.chrome || hasV8BreakIterator) && typeof CSS !== "undefined" && !this.EDGE && !this.TRIDENT; // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to // ensure that Webkit runs standalone and is not used as another engine's base. /** Whether the current rendering engine is WebKit. */ WEBKIT = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT; /** Whether the current platform is Apple iOS. */ IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !("MSStream" in window); // It's difficult to detect the plain Gecko engine, because most of the browsers identify // them self as Gecko-like browsers and modify the userAgent's according to that. // Since we only cover one explicit Firefox case, we can simply check for Firefox // instead of having an unstable check for Gecko. /** Whether the current browser is Firefox. */ FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent); /** Whether the current platform is Android. */ // Trident on mobile adds the android platform to the userAgent to trick detections. ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT; // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake // this and just place the Safari keyword in the userAgent. To be more safe about Safari every // Safari browser should also use Webkit as its layout engine. /** Whether the current browser is Safari. */ SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT; constructor() { } static ɵfac = function Platform_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || _Platform)(); }; static ɵprov = ɵɵdefineInjectable({ token: _Platform, factory: _Platform.ɵfac, providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Platform, [{ type: Injectable, args: [{ providedIn: "root" }] }], () => [], null); })(); // node_modules/@angular/cdk/fesm2022/id-generator.mjs var counters = {}; var _IdGenerator = class __IdGenerator { _appId = inject(APP_ID); /** * Generates a unique ID with a specific prefix. * @param prefix Prefix to add to the ID. */ getId(prefix) { if (this._appId !== "ng") { prefix += this._appId; } if (!counters.hasOwnProperty(prefix)) { counters[prefix] = 0; } return `${prefix}${counters[prefix]++}`; } static ɵfac = function _IdGenerator_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || __IdGenerator)(); }; static ɵprov = ɵɵdefineInjectable({ token: __IdGenerator, factory: __IdGenerator.ɵfac, providedIn: "root" }); }; (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(_IdGenerator, [{ type: Injectable, args: [{ providedIn: "root" }] }], null, null); })(); // node_modules/@angular/cdk/fesm2022/array.mjs function coerceArray(value) { return Array.isArray(value) ? value : [value]; } export { _getShadowRoot, _getFocusedElementPierceShadowDom, _getEventTarget, isFakeMousedownFromScreenReader, isFakeTouchstartFromScreenReader, coerceNumberProperty, coerceElement, _CdkPrivateStyleLoader, Platform, _IdGenerator, coerceArray }; //# sourceMappingURL=chunk-R6KALAQM.js.map