@skyux/core 12.0.0-alpha.5 → 12.0.0-alpha.7

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.
@@ -450,7 +450,6 @@ class SkyHarnessUtility {
450
450
 
451
451
  /**
452
452
  * Harness used to interact with native input elements in tests.
453
- * @internal
454
453
  */
455
454
  class SkyInputHarness extends ComponentHarness {
456
455
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/legacy/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/legacy/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/legacy/core-testing.module.ts","../../../../../libs/components/core/testing/src/legacy/resize-observer-mock.ts","../../../../../libs/components/core/testing/src/modules/file-reader/file-reader-testing.service.ts","../../../../../libs/components/core/testing/src/modules/file-reader/provide-file-reader-testing.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing-controller.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing.service.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing.module.ts","../../../../../libs/components/core/testing/src/modules/media-query/breakpoint-observer-testing.ts","../../../../../libs/components/core/testing/src/modules/media-query/media-query-testing-controller.ts","../../../../../libs/components/core/testing/src/modules/media-query/provide-media-query-testing.ts","../../../../../libs/components/core/testing/src/shared/component-harness.ts","../../../../../libs/components/core/testing/src/shared/queryable-component-harness.ts","../../../../../libs/components/core/testing/src/modules/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/shared/harness-utility.ts","../../../../../libs/components/core/testing/src/shared/input-harness.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n * @deprecated Use `provideSkyMediaQueryTesting()` coupled with `SkyMediaQueryTestingController`.\n */\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static override xs = '(max-width: 767px)';\n public static override sm = '(min-width: 768px) and (max-width: 991px)';\n public static override md = '(min-width: 992px) and (max-width: 1199px)';\n public static override lg = '(min-width: 1200px)';\n\n public override get current(): SkyMediaBreakpoints {\n return this.currentBreakpoints;\n }\n\n public override set current(breakpoints: SkyMediaBreakpoints) {\n this.currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current,\n );\n\n protected currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n }),\n );\n }\n\n public override subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this.currentBreakpoints = args;\n this.currentMockSubject.next(this.currentBreakpoints);\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public override destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { Observable, of as observableOf } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public override getConfig(key: string, defaultConfig?: any): Observable<any> {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';\n\nimport { MockSkyMediaQueryService } from './mock-media-query.service';\nimport { MockSkyUIConfigService } from './mock-ui-config.service';\n\n/**\n * @internal\n */\n@NgModule({\n providers: [\n { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },\n {\n provide: SkyUIConfigService,\n useClass: MockSkyUIConfigService,\n },\n ],\n})\nexport class SkyCoreTestingModule {}\n","/* istanbul ignore file: these are used in @skyux/core */\n\n/**\n * @internal\n */\nexport const mockResizeObserverEntry: ResizeObserverEntry = {\n target: {} as Element,\n borderBoxSize: [],\n contentBoxSize: [],\n contentRect: {\n width: 20,\n height: 20,\n x: 20,\n y: 20,\n top: 20,\n bottom: 20,\n left: 20,\n right: 20,\n toJSON: () => 'true',\n } as DOMRectReadOnly,\n devicePixelContentBoxSize: [],\n};\n\nconst defaultCallback: ResizeObserverCallback = (\n entries: ResizeObserverEntry[],\n observer: ResizeObserver,\n) => {};\n\n/**\n * @internal\n */\nexport const mockResizeObserverHandle = {\n callback: defaultCallback,\n emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver) => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\n\n/**\n * @internal\n */\nexport function mockResizeObserver() {\n (window as any).requestAnimationFrame = (callback: () => void): number => {\n callback();\n return 0;\n };\n (window as any).cancelAnimationFrame = (_: number): void => undefined;\n window.ResizeObserver = class {\n constructor(callback: ResizeObserverCallback) {\n mockResizeObserverHandle.callback = callback;\n }\n\n public disconnect() {}\n\n public observe(target: Element, options?: ResizeObserverOptions) {}\n\n public unobserve(element: HTMLElement) {}\n };\n}\n","import { Injectable } from '@angular/core';\nimport { SkyFileReaderService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFileReaderTestingService extends SkyFileReaderService {\n public override async readAsDataURL(file: File): Promise<string> {\n return await new Promise((resolve) => {\n resolve(`data:${file.type};base64,MOCK_DATA`);\n });\n }\n}\n","import { Provider } from '@angular/core';\nimport { SkyFileReaderService } from '@skyux/core';\n\nimport { SkyFileReaderTestingService } from './file-reader-testing.service';\n\n/**\n * Provides mocks for file reader testing.\n * @internal\n * @example\n * ```typescript\n * TestBed.configureTestingModule({\n * providers: [provideSkyFileReaderTesting()]\n * });\n * ```\n */\nexport function provideSkyFileReaderTesting(): Provider[] {\n return [\n SkyFileReaderTestingService,\n {\n provide: SkyFileReaderService,\n useClass: SkyFileReaderTestingService,\n },\n ];\n}\n","import { inject } from '@angular/core';\nimport { SkyHelpService } from '@skyux/core';\n\nimport { SkyHelpTestingService } from './help-testing.service';\n\nfunction formatHelpKeyForError(helpKey: string | undefined): string {\n return helpKey === undefined ? 'undefined' : `'${helpKey}'`;\n}\n\n/**\n * Provides methods for validating global help in unit tests.\n */\nexport class SkyHelpTestingController {\n #helpSvc = inject(SkyHelpService) as SkyHelpTestingService;\n\n /**\n * Validates the current help key and throws an error if the current help key does not match the expected help key.\n * @param expectedHelpKey The expected help key.\n */\n public expectCurrentHelpKey(expectedHelpKey: string | undefined): void {\n const currentHelpKey = this.#helpSvc.getCurrentHelpKey();\n\n if (currentHelpKey !== expectedHelpKey) {\n throw new Error(\n `Expected current help key to be ${formatHelpKeyForError(expectedHelpKey)}, but the current help key is ${formatHelpKeyForError(currentHelpKey)}.`,\n );\n }\n }\n\n /**\n * Close the current help.\n */\n public closeHelp(): void {\n this.#helpSvc.closeHelp();\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n SkyHelpOpenArgs,\n SkyHelpService,\n SkyHelpUpdateArgs,\n} from '@skyux/core';\n\nimport { Observable, of } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyHelpTestingService extends SkyHelpService {\n public override get widgetReadyStateChange(): Observable<boolean> {\n return of(true);\n }\n\n #currentHelpKey: string | undefined;\n #currentPageHelpKey: string | undefined;\n\n public override openHelp(args?: SkyHelpOpenArgs): void {\n this.#currentHelpKey = args?.helpKey;\n }\n\n public override updateHelp(args: SkyHelpUpdateArgs): void {\n if ('pageDefaultHelpKey' in args) {\n this.#currentPageHelpKey = args.pageDefaultHelpKey;\n }\n\n if ('helpKey' in args) {\n this.#currentHelpKey = args.helpKey;\n }\n }\n\n public getCurrentHelpKey(): string | undefined {\n return this.#currentHelpKey || this.#currentPageHelpKey;\n }\n\n public closeHelp(): void {\n this.#currentHelpKey = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyHelpService } from '@skyux/core';\n\nimport { SkyHelpTestingController } from './help-testing-controller';\nimport { SkyHelpTestingService } from './help-testing.service';\n\n/**\n * Mocks SkyHelpService to enable testing of global help.\n */\n@NgModule({\n providers: [\n {\n provide: SkyHelpService,\n useClass: SkyHelpTestingService,\n },\n SkyHelpTestingController,\n ],\n})\nexport class SkyHelpTestingModule {}\n","import { Injectable } from '@angular/core';\nimport { SkyBreakpoint, SkyBreakpointObserver } from '@skyux/core';\n\nimport { Observable, ReplaySubject } from 'rxjs';\n\n/**\n * Overrides the media and container breakpoint observers for testing.\n * @internal\n */\n@Injectable()\nexport class SkyBreakpointObserverTesting implements SkyBreakpointObserver {\n public get breakpointChange(): Observable<SkyBreakpoint> {\n return this.#breakpointChangeObs;\n }\n\n #breakpointChange = new ReplaySubject<SkyBreakpoint>(1);\n #breakpointChangeObs = this.#breakpointChange.asObservable();\n\n public destroy(): void {\n this.#breakpointChange.complete();\n }\n\n public setBreakpoint(breakpoint: SkyBreakpoint): void {\n this.#breakpointChange.next(breakpoint);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { SkyBreakpoint } from '@skyux/core';\n\nimport { SkyBreakpointObserverTesting } from './breakpoint-observer-testing';\n\n/**\n * A controller to be injected into tests, which mocks the\n * `SkyMediaQueryService` and handles interactions with breakpoints.\n */\n@Injectable()\nexport class SkyMediaQueryTestingController {\n readonly #observer = inject(SkyBreakpointObserverTesting);\n\n /**\n * Emits the provided breakpoint to all subscribers.\n */\n public setBreakpoint(breakpoint: SkyBreakpoint): void {\n this.#observer.setBreakpoint(breakpoint);\n }\n}\n","import { Provider } from '@angular/core';\nimport {\n SKY_BREAKPOINT_OBSERVER,\n SkyContainerBreakpointObserver,\n SkyMediaBreakpointObserver,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { SkyBreakpointObserverTesting } from './breakpoint-observer-testing';\nimport { SkyMediaQueryTestingController } from './media-query-testing-controller';\n\n/**\n * Adds mocks to allow interactions with breakpoints in tests.\n */\nexport function provideSkyMediaQueryTesting(): Provider[] {\n return [\n SkyMediaQueryService,\n SkyBreakpointObserverTesting,\n SkyMediaQueryTestingController,\n {\n provide: SkyContainerBreakpointObserver,\n useExisting: SkyBreakpointObserverTesting,\n },\n {\n provide: SkyMediaBreakpointObserver,\n useExisting: SkyBreakpointObserverTesting,\n },\n {\n provide: SKY_BREAKPOINT_OBSERVER,\n useExisting: SkyBreakpointObserverTesting,\n },\n ];\n}\n","import {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\nimport { SkyHarnessFilters } from './harness-filters';\n\n/**\n * @internal\n */\nexport abstract class SkyComponentHarness extends ComponentHarness {\n protected static getDataSkyIdPredicate<T extends SkyComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n filters: SkyHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, filters).addOption(\n 'dataSkyId',\n filters.dataSkyId,\n (harness, text) =>\n HarnessPredicate.stringMatches(harness.#getSkyId(), text),\n );\n }\n\n async #getSkyId(): Promise<string | null> {\n return await (await this.host()).getAttribute('data-sky-id');\n }\n}\n","import {\n ComponentHarness,\n HarnessQuery,\n TestElement,\n} from '@angular/cdk/testing';\n\nimport { SkyComponentHarness } from './component-harness';\n\n/**\n * @internal\n */\nexport abstract class SkyQueryableComponentHarness extends SkyComponentHarness {\n /**\n * Returns a child harness or throws an error if not found.\n */\n public async queryHarness<T extends ComponentHarness>(\n query: HarnessQuery<T>,\n ): Promise<T> {\n return await this.locatorFor(query)();\n }\n\n /**\n * Returns a child harness or null if not found.\n */\n public async queryHarnessOrNull<T extends ComponentHarness>(\n query: HarnessQuery<T>,\n ): Promise<T | null> {\n return await this.locatorForOptional(query)();\n }\n\n /**\n * Returns child harnesses.\n */\n public async queryHarnesses<T extends ComponentHarness>(\n harness: HarnessQuery<T>,\n ): Promise<T[]> {\n return await this.locatorForAll(harness)();\n }\n\n /**\n * Returns a child test element or throws an error if not found.\n */\n public async querySelector(selector: string): Promise<TestElement | null> {\n return await this.locatorFor(selector)();\n }\n\n /**\n * Returns a child test element or null if not found.\n */\n public async querySelectorOrNull(\n selector: string,\n ): Promise<TestElement | null> {\n return await this.locatorForOptional(selector)();\n }\n\n /**\n * Returns child test elements.\n */\n public async querySelectorAll(selector: string): Promise<TestElement[]> {\n return await this.locatorForAll(selector)();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\n\nimport { SkyQueryableComponentHarness } from '../../shared/queryable-component-harness';\n\nimport { SkyOverlayHarnessFilters } from './overlay-harness-filters';\n\n/**\n * Harness for interacting with an overlay component in tests.\n * @internal\n */\nexport class SkyOverlayHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-overlay';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyOverlayHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyOverlayHarnessFilters,\n ): HarnessPredicate<SkyOverlayHarness> {\n return new HarnessPredicate(SkyOverlayHarness, filters);\n }\n}\n","import { TestElement } from '@angular/cdk/testing';\n\nexport class SkyHarnessUtility {\n public static async getBackgroundImageUrl(\n el: TestElement,\n ): Promise<string | undefined> {\n const backgroundImage = await el.getCssValue('background-image');\n\n return /url\\(('|\")([^'\"]+)('|\")\\)/gi.exec(backgroundImage)?.[2];\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness used to interact with native input elements in tests.\n * @internal\n */\nexport class SkyInputHarness extends ComponentHarness {\n /**\n * Blurs the input.\n */\n public async blur(): Promise<void> {\n await (await this.host()).blur();\n }\n\n /**\n * Clears the input value.\n */\n public async clear(): Promise<void> {\n await (await this.host()).clear();\n }\n\n /**\n * Focuses the input.\n */\n public async focus(): Promise<void> {\n await (await this.host()).focus();\n }\n\n /**\n * Gets the value of the input.\n */\n public async getValue(): Promise<string> {\n return await (await this.host()).getProperty('value');\n }\n\n /**\n * Whether the input is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = await (await this.host()).getAttribute('disabled');\n return disabled !== null;\n }\n\n /**\n * Whether the input is focused.\n */\n public async isFocused(): Promise<boolean> {\n return await (await this.host()).isFocused();\n }\n\n /**\n * Sets the value of the input. The value will be set by simulating key\n * presses that correspond to the given value.\n */\n public async setValue(value: string): Promise<void> {\n const inputEl = await this.host();\n await inputEl.clear();\n\n // We don't want to send keys for the value if the value is an empty\n // string in order to clear the value. Sending keys with an empty string\n // still results in unnecessary focus events.\n if (value) {\n await inputEl.sendKeys(value);\n }\n\n // Some input types won't respond to key presses (e.g. `color`) so to be sure that the\n // value is set, we also set the property after the keyboard sequence. Note that we don't\n // want to do it before, because it can cause the value to be entered twice.\n await inputEl.setInputValue(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/legacy/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/legacy/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/legacy/core-testing.module.ts","../../../../../libs/components/core/testing/src/legacy/resize-observer-mock.ts","../../../../../libs/components/core/testing/src/modules/file-reader/file-reader-testing.service.ts","../../../../../libs/components/core/testing/src/modules/file-reader/provide-file-reader-testing.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing-controller.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing.service.ts","../../../../../libs/components/core/testing/src/modules/help/help-testing.module.ts","../../../../../libs/components/core/testing/src/modules/media-query/breakpoint-observer-testing.ts","../../../../../libs/components/core/testing/src/modules/media-query/media-query-testing-controller.ts","../../../../../libs/components/core/testing/src/modules/media-query/provide-media-query-testing.ts","../../../../../libs/components/core/testing/src/shared/component-harness.ts","../../../../../libs/components/core/testing/src/shared/queryable-component-harness.ts","../../../../../libs/components/core/testing/src/modules/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/shared/harness-utility.ts","../../../../../libs/components/core/testing/src/shared/input-harness.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n * @deprecated Use `provideSkyMediaQueryTesting()` coupled with `SkyMediaQueryTestingController`.\n */\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static override xs = '(max-width: 767px)';\n public static override sm = '(min-width: 768px) and (max-width: 991px)';\n public static override md = '(min-width: 992px) and (max-width: 1199px)';\n public static override lg = '(min-width: 1200px)';\n\n public override get current(): SkyMediaBreakpoints {\n return this.currentBreakpoints;\n }\n\n public override set current(breakpoints: SkyMediaBreakpoints) {\n this.currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current,\n );\n\n protected currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n }),\n );\n }\n\n public override subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this.currentBreakpoints = args;\n this.currentMockSubject.next(this.currentBreakpoints);\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public override destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { Observable, of as observableOf } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public override getConfig(key: string, defaultConfig?: any): Observable<any> {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';\n\nimport { MockSkyMediaQueryService } from './mock-media-query.service';\nimport { MockSkyUIConfigService } from './mock-ui-config.service';\n\n/**\n * @internal\n */\n@NgModule({\n providers: [\n { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },\n {\n provide: SkyUIConfigService,\n useClass: MockSkyUIConfigService,\n },\n ],\n})\nexport class SkyCoreTestingModule {}\n","/* istanbul ignore file: these are used in @skyux/core */\n\n/**\n * @internal\n */\nexport const mockResizeObserverEntry: ResizeObserverEntry = {\n target: {} as Element,\n borderBoxSize: [],\n contentBoxSize: [],\n contentRect: {\n width: 20,\n height: 20,\n x: 20,\n y: 20,\n top: 20,\n bottom: 20,\n left: 20,\n right: 20,\n toJSON: () => 'true',\n } as DOMRectReadOnly,\n devicePixelContentBoxSize: [],\n};\n\nconst defaultCallback: ResizeObserverCallback = (\n entries: ResizeObserverEntry[],\n observer: ResizeObserver,\n) => {};\n\n/**\n * @internal\n */\nexport const mockResizeObserverHandle = {\n callback: defaultCallback,\n emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver) => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\n\n/**\n * @internal\n */\nexport function mockResizeObserver() {\n (window as any).requestAnimationFrame = (callback: () => void): number => {\n callback();\n return 0;\n };\n (window as any).cancelAnimationFrame = (_: number): void => undefined;\n window.ResizeObserver = class {\n constructor(callback: ResizeObserverCallback) {\n mockResizeObserverHandle.callback = callback;\n }\n\n public disconnect() {}\n\n public observe(target: Element, options?: ResizeObserverOptions) {}\n\n public unobserve(element: HTMLElement) {}\n };\n}\n","import { Injectable } from '@angular/core';\nimport { SkyFileReaderService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyFileReaderTestingService extends SkyFileReaderService {\n public override async readAsDataURL(file: File): Promise<string> {\n return await new Promise((resolve) => {\n resolve(`data:${file.type};base64,MOCK_DATA`);\n });\n }\n}\n","import { Provider } from '@angular/core';\nimport { SkyFileReaderService } from '@skyux/core';\n\nimport { SkyFileReaderTestingService } from './file-reader-testing.service';\n\n/**\n * Provides mocks for file reader testing.\n * @internal\n * @example\n * ```typescript\n * TestBed.configureTestingModule({\n * providers: [provideSkyFileReaderTesting()]\n * });\n * ```\n */\nexport function provideSkyFileReaderTesting(): Provider[] {\n return [\n SkyFileReaderTestingService,\n {\n provide: SkyFileReaderService,\n useClass: SkyFileReaderTestingService,\n },\n ];\n}\n","import { inject } from '@angular/core';\nimport { SkyHelpService } from '@skyux/core';\n\nimport { SkyHelpTestingService } from './help-testing.service';\n\nfunction formatHelpKeyForError(helpKey: string | undefined): string {\n return helpKey === undefined ? 'undefined' : `'${helpKey}'`;\n}\n\n/**\n * Provides methods for validating global help in unit tests.\n */\nexport class SkyHelpTestingController {\n #helpSvc = inject(SkyHelpService) as SkyHelpTestingService;\n\n /**\n * Validates the current help key and throws an error if the current help key does not match the expected help key.\n * @param expectedHelpKey The expected help key.\n */\n public expectCurrentHelpKey(expectedHelpKey: string | undefined): void {\n const currentHelpKey = this.#helpSvc.getCurrentHelpKey();\n\n if (currentHelpKey !== expectedHelpKey) {\n throw new Error(\n `Expected current help key to be ${formatHelpKeyForError(expectedHelpKey)}, but the current help key is ${formatHelpKeyForError(currentHelpKey)}.`,\n );\n }\n }\n\n /**\n * Close the current help.\n */\n public closeHelp(): void {\n this.#helpSvc.closeHelp();\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n SkyHelpOpenArgs,\n SkyHelpService,\n SkyHelpUpdateArgs,\n} from '@skyux/core';\n\nimport { Observable, of } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyHelpTestingService extends SkyHelpService {\n public override get widgetReadyStateChange(): Observable<boolean> {\n return of(true);\n }\n\n #currentHelpKey: string | undefined;\n #currentPageHelpKey: string | undefined;\n\n public override openHelp(args?: SkyHelpOpenArgs): void {\n this.#currentHelpKey = args?.helpKey;\n }\n\n public override updateHelp(args: SkyHelpUpdateArgs): void {\n if ('pageDefaultHelpKey' in args) {\n this.#currentPageHelpKey = args.pageDefaultHelpKey;\n }\n\n if ('helpKey' in args) {\n this.#currentHelpKey = args.helpKey;\n }\n }\n\n public getCurrentHelpKey(): string | undefined {\n return this.#currentHelpKey || this.#currentPageHelpKey;\n }\n\n public closeHelp(): void {\n this.#currentHelpKey = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyHelpService } from '@skyux/core';\n\nimport { SkyHelpTestingController } from './help-testing-controller';\nimport { SkyHelpTestingService } from './help-testing.service';\n\n/**\n * Mocks SkyHelpService to enable testing of global help.\n */\n@NgModule({\n providers: [\n {\n provide: SkyHelpService,\n useClass: SkyHelpTestingService,\n },\n SkyHelpTestingController,\n ],\n})\nexport class SkyHelpTestingModule {}\n","import { Injectable } from '@angular/core';\nimport { SkyBreakpoint, SkyBreakpointObserver } from '@skyux/core';\n\nimport { Observable, ReplaySubject } from 'rxjs';\n\n/**\n * Overrides the media and container breakpoint observers for testing.\n * @internal\n */\n@Injectable()\nexport class SkyBreakpointObserverTesting implements SkyBreakpointObserver {\n public get breakpointChange(): Observable<SkyBreakpoint> {\n return this.#breakpointChangeObs;\n }\n\n #breakpointChange = new ReplaySubject<SkyBreakpoint>(1);\n #breakpointChangeObs = this.#breakpointChange.asObservable();\n\n public destroy(): void {\n this.#breakpointChange.complete();\n }\n\n public setBreakpoint(breakpoint: SkyBreakpoint): void {\n this.#breakpointChange.next(breakpoint);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { SkyBreakpoint } from '@skyux/core';\n\nimport { SkyBreakpointObserverTesting } from './breakpoint-observer-testing';\n\n/**\n * A controller to be injected into tests, which mocks the\n * `SkyMediaQueryService` and handles interactions with breakpoints.\n */\n@Injectable()\nexport class SkyMediaQueryTestingController {\n readonly #observer = inject(SkyBreakpointObserverTesting);\n\n /**\n * Emits the provided breakpoint to all subscribers.\n */\n public setBreakpoint(breakpoint: SkyBreakpoint): void {\n this.#observer.setBreakpoint(breakpoint);\n }\n}\n","import { Provider } from '@angular/core';\nimport {\n SKY_BREAKPOINT_OBSERVER,\n SkyContainerBreakpointObserver,\n SkyMediaBreakpointObserver,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { SkyBreakpointObserverTesting } from './breakpoint-observer-testing';\nimport { SkyMediaQueryTestingController } from './media-query-testing-controller';\n\n/**\n * Adds mocks to allow interactions with breakpoints in tests.\n */\nexport function provideSkyMediaQueryTesting(): Provider[] {\n return [\n SkyMediaQueryService,\n SkyBreakpointObserverTesting,\n SkyMediaQueryTestingController,\n {\n provide: SkyContainerBreakpointObserver,\n useExisting: SkyBreakpointObserverTesting,\n },\n {\n provide: SkyMediaBreakpointObserver,\n useExisting: SkyBreakpointObserverTesting,\n },\n {\n provide: SKY_BREAKPOINT_OBSERVER,\n useExisting: SkyBreakpointObserverTesting,\n },\n ];\n}\n","import {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\nimport { SkyHarnessFilters } from './harness-filters';\n\n/**\n * @internal\n */\nexport abstract class SkyComponentHarness extends ComponentHarness {\n protected static getDataSkyIdPredicate<T extends SkyComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n filters: SkyHarnessFilters,\n ): HarnessPredicate<T> {\n return new HarnessPredicate(this, filters).addOption(\n 'dataSkyId',\n filters.dataSkyId,\n (harness, text) =>\n HarnessPredicate.stringMatches(harness.#getSkyId(), text),\n );\n }\n\n async #getSkyId(): Promise<string | null> {\n return await (await this.host()).getAttribute('data-sky-id');\n }\n}\n","import {\n ComponentHarness,\n HarnessQuery,\n TestElement,\n} from '@angular/cdk/testing';\n\nimport { SkyComponentHarness } from './component-harness';\n\n/**\n * @internal\n */\nexport abstract class SkyQueryableComponentHarness extends SkyComponentHarness {\n /**\n * Returns a child harness or throws an error if not found.\n */\n public async queryHarness<T extends ComponentHarness>(\n query: HarnessQuery<T>,\n ): Promise<T> {\n return await this.locatorFor(query)();\n }\n\n /**\n * Returns a child harness or null if not found.\n */\n public async queryHarnessOrNull<T extends ComponentHarness>(\n query: HarnessQuery<T>,\n ): Promise<T | null> {\n return await this.locatorForOptional(query)();\n }\n\n /**\n * Returns child harnesses.\n */\n public async queryHarnesses<T extends ComponentHarness>(\n harness: HarnessQuery<T>,\n ): Promise<T[]> {\n return await this.locatorForAll(harness)();\n }\n\n /**\n * Returns a child test element or throws an error if not found.\n */\n public async querySelector(selector: string): Promise<TestElement | null> {\n return await this.locatorFor(selector)();\n }\n\n /**\n * Returns a child test element or null if not found.\n */\n public async querySelectorOrNull(\n selector: string,\n ): Promise<TestElement | null> {\n return await this.locatorForOptional(selector)();\n }\n\n /**\n * Returns child test elements.\n */\n public async querySelectorAll(selector: string): Promise<TestElement[]> {\n return await this.locatorForAll(selector)();\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\n\nimport { SkyQueryableComponentHarness } from '../../shared/queryable-component-harness';\n\nimport { SkyOverlayHarnessFilters } from './overlay-harness-filters';\n\n/**\n * Harness for interacting with an overlay component in tests.\n * @internal\n */\nexport class SkyOverlayHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-overlay';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyOverlayHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyOverlayHarnessFilters,\n ): HarnessPredicate<SkyOverlayHarness> {\n return new HarnessPredicate(SkyOverlayHarness, filters);\n }\n}\n","import { TestElement } from '@angular/cdk/testing';\n\nexport class SkyHarnessUtility {\n public static async getBackgroundImageUrl(\n el: TestElement,\n ): Promise<string | undefined> {\n const backgroundImage = await el.getCssValue('background-image');\n\n return /url\\(('|\")([^'\"]+)('|\")\\)/gi.exec(backgroundImage)?.[2];\n }\n}\n","import { ComponentHarness } from '@angular/cdk/testing';\n\n/**\n * Harness used to interact with native input elements in tests.\n */\nexport class SkyInputHarness extends ComponentHarness {\n /**\n * Blurs the input.\n */\n public async blur(): Promise<void> {\n await (await this.host()).blur();\n }\n\n /**\n * Clears the input value.\n */\n public async clear(): Promise<void> {\n await (await this.host()).clear();\n }\n\n /**\n * Focuses the input.\n */\n public async focus(): Promise<void> {\n await (await this.host()).focus();\n }\n\n /**\n * Gets the value of the input.\n */\n public async getValue(): Promise<string> {\n return await (await this.host()).getProperty('value');\n }\n\n /**\n * Whether the input is disabled.\n */\n public async isDisabled(): Promise<boolean> {\n const disabled = await (await this.host()).getAttribute('disabled');\n return disabled !== null;\n }\n\n /**\n * Whether the input is focused.\n */\n public async isFocused(): Promise<boolean> {\n return await (await this.host()).isFocused();\n }\n\n /**\n * Sets the value of the input. The value will be set by simulating key\n * presses that correspond to the given value.\n */\n public async setValue(value: string): Promise<void> {\n const inputEl = await this.host();\n await inputEl.clear();\n\n // We don't want to send keys for the value if the value is an empty\n // string in order to clear the value. Sending keys with an empty string\n // still results in unnecessary focus events.\n if (value) {\n await inputEl.sendKeys(value);\n }\n\n // Some input types won't respond to key presses (e.g. `color`) so to be sure that the\n // value is set, we also set the property after the keyboard sequence. Note that we don't\n // want to do it before, because it can cause the value to be entered twice.\n await inputEl.setInputValue(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule, Injectable, inject, RendererFactory2, NgZone, EventEmitter, Directive, Input, Output, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ElementRef, ViewContainerRef, Component, ChangeDetectionStrategy, ViewChild, InjectionToken, Optional, Inject, ApplicationRef, afterNextRender, Injector, Pipe, HostBinding, Renderer2, HostListener } from '@angular/core';
2
+ import { NgModule, Injectable, inject, RendererFactory2, NgZone, EventEmitter, Directive, Input, Output, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ElementRef, ViewContainerRef, Component, ChangeDetectionStrategy, ViewChild, InjectionToken, input, effect, Optional, Inject, ApplicationRef, afterNextRender, Injector, Pipe, HostBinding, Renderer2, HostListener } from '@angular/core';
3
3
  import * as i1$1 from '@angular/common';
4
4
  import { DOCUMENT, CommonModule } from '@angular/common';
5
5
  import { Subject, Subscription, ReplaySubject, fromEvent, of, Observable, filter, map, distinctUntilChanged, shareReplay, throttle, animationFrames, take, takeUntil as takeUntil$1, BehaviorSubject, concat, animationFrameScheduler } from 'rxjs';
6
6
  import { takeUntil, debounceTime, switchMap, map as map$1 } from 'rxjs/operators';
7
7
  import { ViewportRuler } from '@angular/cdk/overlay';
8
- import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
8
+ import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
9
  import * as i1 from '@skyux/i18n';
10
10
  import { SkyLibResourcesService, SkyI18nModule, SkyIntlNumberFormatStyle, SkyIntlNumberFormatter } from '@skyux/i18n';
11
11
  import { Router, NavigationStart } from '@angular/router';
@@ -1774,6 +1774,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1774
1774
  type: Injectable
1775
1775
  }] });
1776
1776
 
1777
+ const LAYOUT_FOR_CHILD_CLASS_PREFIX = 'sky-layout-host-for-child-';
1778
+ const LAYOUT_CLASS_PREFIX = 'sky-layout-host-';
1779
+ /**
1780
+ * @internal
1781
+ */
1782
+ class SkyLayoutHostDirective {
1783
+ #elementRef;
1784
+ #layoutForChild;
1785
+ #renderer;
1786
+ constructor() {
1787
+ this.#elementRef = inject(ElementRef);
1788
+ this.#layoutForChild = toSignal(inject(SkyLayoutHostService).hostLayoutForChild);
1789
+ this.#renderer = inject(RendererFactory2).createRenderer(null, null);
1790
+ this.layout = input();
1791
+ effect(() => {
1792
+ const cssClass = [`${LAYOUT_CLASS_PREFIX}${this.layout() ?? 'none'}`];
1793
+ const layoutForChild = this.#layoutForChild()?.layout;
1794
+ if (layoutForChild) {
1795
+ cssClass.push(`${LAYOUT_FOR_CHILD_CLASS_PREFIX}${layoutForChild}`);
1796
+ }
1797
+ const classList = this.#elementRef.nativeElement.classList.values();
1798
+ for (const className of classList) {
1799
+ if (className.startsWith(LAYOUT_CLASS_PREFIX) &&
1800
+ !cssClass.includes(className)) {
1801
+ this.#renderer.removeClass(this.#elementRef.nativeElement, className);
1802
+ }
1803
+ }
1804
+ for (const className of cssClass) {
1805
+ this.#renderer.addClass(this.#elementRef.nativeElement, className);
1806
+ }
1807
+ });
1808
+ }
1809
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SkyLayoutHostDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1810
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.5", type: SkyLayoutHostDirective, isStandalone: true, selector: "[skyLayoutHost]", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null } }, providers: [SkyLayoutHostService], ngImport: i0 }); }
1811
+ }
1812
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SkyLayoutHostDirective, decorators: [{
1813
+ type: Directive,
1814
+ args: [{
1815
+ selector: '[skyLayoutHost]',
1816
+ standalone: true,
1817
+ providers: [SkyLayoutHostService],
1818
+ }]
1819
+ }], ctorParameters: () => [] });
1820
+
1777
1821
  /**
1778
1822
  * Allows for announcing messages to screen reader users through the use of a common `aria-live` element.
1779
1823
  * @internal
@@ -1782,10 +1826,13 @@ class SkyLiveAnnouncerService {
1782
1826
  #announcerElement;
1783
1827
  #document;
1784
1828
  #idService;
1829
+ #durationTimeout;
1830
+ #ngZone;
1785
1831
  constructor() {
1786
1832
  this.announcerElementChanged = new ReplaySubject(1);
1787
1833
  this.#document = inject(DOCUMENT);
1788
1834
  this.#idService = inject(SkyIdService);
1835
+ this.#ngZone = inject(NgZone);
1789
1836
  this.#announcerElement = this.#createLiveElement();
1790
1837
  this.announcerElementChanged.next(this.#announcerElement);
1791
1838
  }
@@ -1802,9 +1849,13 @@ class SkyLiveAnnouncerService {
1802
1849
  this.announcerElementChanged.next(this.#announcerElement);
1803
1850
  }
1804
1851
  const politeness = args?.politeness ?? 'polite';
1805
- this.clear();
1806
1852
  this.#announcerElement.setAttribute('aria-live', politeness);
1853
+ this.clear();
1854
+ clearTimeout(this.#durationTimeout);
1807
1855
  this.#announcerElement.textContent = message;
1856
+ this.#ngZone.runOutsideAngular(() => {
1857
+ this.#durationTimeout = setTimeout(() => this.clear(), args?.duration ?? this.#calculateDefaultDurationFromString(message));
1858
+ });
1808
1859
  }
1809
1860
  /**
1810
1861
  * Clears the current text from the announcer element. Can be used to prevent
@@ -1823,6 +1874,16 @@ class SkyLiveAnnouncerService {
1823
1874
  this.#announcerElement?.remove();
1824
1875
  this.#announcerElement = undefined;
1825
1876
  this.announcerElementChanged.next(undefined);
1877
+ clearTimeout(this.#durationTimeout);
1878
+ }
1879
+ #calculateDefaultDurationFromString(message) {
1880
+ // Research suggests normal WPM is 110 for english. Lowering here to be conservative.
1881
+ const baseWordsPerMinute = 80;
1882
+ const minuteInMilliseconds = 60000;
1883
+ const numberOfWords = message.split(' ').length;
1884
+ const baseTime = (numberOfWords / baseWordsPerMinute) * minuteInMilliseconds;
1885
+ // Add 50% to time to account for exceptionally slow screen reader settings and/or speech settings that leave long pauses between words.
1886
+ return baseTime * 1.5;
1826
1887
  }
1827
1888
  #createLiveElement() {
1828
1889
  const elementClass = 'sky-live-announcer-element';
@@ -2424,6 +2485,12 @@ const RESOURCES = {
2424
2485
  skyux_numeric_thousands_symbol: { message: 'K' },
2425
2486
  skyux_numeric_trillions_symbol: { message: 'T' },
2426
2487
  },
2488
+ 'FR-CA': {
2489
+ skyux_numeric_billions_symbol: { message: 'G' },
2490
+ skyux_numeric_millions_symbol: { message: 'M' },
2491
+ skyux_numeric_thousands_symbol: { message: 'K' },
2492
+ skyux_numeric_trillions_symbol: { message: 'T' },
2493
+ },
2427
2494
  };
2428
2495
  SkyLibResourcesService.addResources(RESOURCES);
2429
2496
  /**
@@ -4535,11 +4602,11 @@ class Version {
4535
4602
  /**
4536
4603
  * Represents the version of @skyux/core.
4537
4604
  */
4538
- const VERSION = new Version('12.0.0-alpha.5');
4605
+ const VERSION = new Version('12.0.0-alpha.7');
4539
4606
 
4540
4607
  /**
4541
4608
  * Generated bundle index. Do not edit.
4542
4609
  */
4543
4610
 
4544
- export { NumericOptions, SKY_BREAKPOINTS, SKY_BREAKPOINT_OBSERVER, SKY_HELP_GLOBAL_OPTIONS, SKY_LOG_LEVEL, SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, SkyAffixModule, SkyAffixService, SkyAffixer, SkyAppFormat, SkyAppTitleService, SkyAppWindowRef, SkyContainerBreakpointObserver, SkyContentInfoProvider, SkyCoreAdapterModule, SkyCoreAdapterService, SkyDefaultInputProvider, SkyDockItem, SkyDockLocation, SkyDockModule, SkyDockService, SkyDynamicComponentLegacyService, SkyDynamicComponentLocation, SkyDynamicComponentModule, SkyDynamicComponentService, SkyFileReaderService, SkyHelpService, SkyIdModule, SkyIdService, SkyLayoutHostService, SkyLiveAnnouncerService, SkyLogLevel, SkyLogModule, SkyLogService, SkyMediaBreakpointObserver, SkyMediaBreakpoints, SkyMediaQueryModule, SkyMediaQueryService, SkyMutationObserverService, SkyNumericModule, SkyNumericPipe, SkyNumericService, SkyOverlayInstance, SkyOverlayLegacyService, SkyOverlayModule, SkyOverlayService, SkyPercentPipe, SkyPercentPipeModule, SkyResizeObserverMediaQueryService, SkyResizeObserverService, SkyResponsiveHostDirective, SkyScreenReaderLabelDirective, SkyScrollShadowDirective, SkyScrollableHostService, SkyTrimModule, SkyUIConfigService, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, VERSION, provideSkyBreakpointObserver, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
4611
+ export { NumericOptions, SKY_BREAKPOINTS, SKY_BREAKPOINT_OBSERVER, SKY_HELP_GLOBAL_OPTIONS, SKY_LOG_LEVEL, SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, SkyAffixModule, SkyAffixService, SkyAffixer, SkyAppFormat, SkyAppTitleService, SkyAppWindowRef, SkyContainerBreakpointObserver, SkyContentInfoProvider, SkyCoreAdapterModule, SkyCoreAdapterService, SkyDefaultInputProvider, SkyDockItem, SkyDockLocation, SkyDockModule, SkyDockService, SkyDynamicComponentLegacyService, SkyDynamicComponentLocation, SkyDynamicComponentModule, SkyDynamicComponentService, SkyFileReaderService, SkyHelpService, SkyIdModule, SkyIdService, SkyLayoutHostDirective, SkyLayoutHostService, SkyLiveAnnouncerService, SkyLogLevel, SkyLogModule, SkyLogService, SkyMediaBreakpointObserver, SkyMediaBreakpoints, SkyMediaQueryModule, SkyMediaQueryService, SkyMutationObserverService, SkyNumericModule, SkyNumericPipe, SkyNumericService, SkyOverlayInstance, SkyOverlayLegacyService, SkyOverlayModule, SkyOverlayService, SkyPercentPipe, SkyPercentPipeModule, SkyResizeObserverMediaQueryService, SkyResizeObserverService, SkyResponsiveHostDirective, SkyScreenReaderLabelDirective, SkyScrollShadowDirective, SkyScrollableHostService, SkyTrimModule, SkyUIConfigService, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, VERSION, provideSkyBreakpointObserver, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
4545
4612
  //# sourceMappingURL=skyux-core.mjs.map