@skyux/core 15.0.0-alpha.9 → 15.0.0-beta.1
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { NgZone, Injectable, NgModule, inject } from '@angular/core';
|
|
3
|
-
import { SkyMediaQueryService, SkyMediaBreakpoints, SkyUIConfigService, SkyFileReaderService, SkyHelpService, SkyContainerBreakpointObserver, SkyMediaBreakpointObserver, SKY_BREAKPOINT_OBSERVER } from '@skyux/core';
|
|
2
|
+
import { NgZone, Injectable, NgModule, inject, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
+
import { SkyMediaQueryService, SkyMediaBreakpoints, SkyUIConfigService, SkyFileReaderService, SkyHelpService, provideSkyInstrumentationListener, SkyContainerBreakpointObserver, SkyMediaBreakpointObserver, SKY_BREAKPOINT_OBSERVER } from '@skyux/core';
|
|
4
4
|
import { BehaviorSubject, of, ReplaySubject } from 'rxjs';
|
|
5
5
|
import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
|
|
6
6
|
import { By } from '@angular/platform-browser';
|
|
@@ -305,6 +305,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
305
305
|
}]
|
|
306
306
|
}] });
|
|
307
307
|
|
|
308
|
+
/**
|
|
309
|
+
* Validates the instrumentation events emitted during a unit test.
|
|
310
|
+
*/
|
|
311
|
+
class SkyInstrumentationTestingController {
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
class SkyInstrumentationTestingService {
|
|
315
|
+
#notifications = [];
|
|
316
|
+
handleEvent(evt) {
|
|
317
|
+
this.#notifications.push(this.#serialize(evt));
|
|
318
|
+
}
|
|
319
|
+
expectEvent(evt) {
|
|
320
|
+
const serialized = this.#serialize(evt);
|
|
321
|
+
if (!this.#notifications.includes(serialized)) {
|
|
322
|
+
throw new Error(`Expected an event to be logged with ${serialized}.`);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
expectEventCount(evt, expectedCount) {
|
|
326
|
+
const serialized = this.#serialize(evt);
|
|
327
|
+
const actualCount = this.#notifications.filter((n) => n === serialized).length;
|
|
328
|
+
if (actualCount !== expectedCount) {
|
|
329
|
+
throw new Error(`Expected an event ${serialized} to be logged ${expectedCount} time(s), but it was logged ${actualCount} time(s).`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
#serialize(evt) {
|
|
333
|
+
return JSON.stringify(evt, (_key, value) => value && typeof value === 'object' && !Array.isArray(value)
|
|
334
|
+
? Object.fromEntries(Object.entries(value).sort(([a], [b]) => (a < b ? -1 : 1)))
|
|
335
|
+
: value);
|
|
336
|
+
}
|
|
337
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyInstrumentationTestingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
338
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyInstrumentationTestingService }); }
|
|
339
|
+
}
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyInstrumentationTestingService, decorators: [{
|
|
341
|
+
type: Injectable
|
|
342
|
+
}] });
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Registers a listener that records the instrumentation events emitted during a
|
|
346
|
+
* unit test. Inject `SkyInstrumentationTestingController` to validate them.
|
|
347
|
+
*/
|
|
348
|
+
function provideSkyInstrumentationTesting() {
|
|
349
|
+
return makeEnvironmentProviders([
|
|
350
|
+
provideSkyInstrumentationListener(SkyInstrumentationTestingService),
|
|
351
|
+
{
|
|
352
|
+
provide: SkyInstrumentationTestingController,
|
|
353
|
+
useExisting: SkyInstrumentationTestingService,
|
|
354
|
+
},
|
|
355
|
+
]);
|
|
356
|
+
}
|
|
357
|
+
|
|
308
358
|
/**
|
|
309
359
|
* Overrides the media and container breakpoint observers for testing.
|
|
310
360
|
* @internal
|
|
@@ -626,5 +676,5 @@ class SkyInputHarness extends ComponentHarness {
|
|
|
626
676
|
* Generated bundle index. Do not edit.
|
|
627
677
|
*/
|
|
628
678
|
|
|
629
|
-
export { MockSkyMediaQueryService, MockSkyUIConfigService, SkyAppTestUtility, SkyBy, SkyComponentHarness, SkyCoreTestingModule, SkyHarnessUtility, SkyHelpTestingController, SkyHelpTestingModule, SkyInputHarness, SkyMediaQueryTestingController, SkyOverlayHarness, SkyQueryableComponentHarness, mockResizeObserver, mockResizeObserverEntry, mockResizeObserverHandle, provideSkyFileReaderTesting, provideSkyMediaQueryTesting };
|
|
679
|
+
export { MockSkyMediaQueryService, MockSkyUIConfigService, SkyAppTestUtility, SkyBy, SkyComponentHarness, SkyCoreTestingModule, SkyHarnessUtility, SkyHelpTestingController, SkyHelpTestingModule, SkyInputHarness, SkyInstrumentationTestingController, SkyMediaQueryTestingController, SkyOverlayHarness, SkyQueryableComponentHarness, mockResizeObserver, mockResizeObserverEntry, mockResizeObserverHandle, provideSkyFileReaderTesting, provideSkyInstrumentationTesting, provideSkyMediaQueryTesting };
|
|
630
680
|
//# sourceMappingURL=skyux-core-testing.mjs.map
|
|
@@ -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/modules/query-predicates/sky-by.ts","../../../../../libs/components/core/testing/src/modules/test-utility/test-utility.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): void => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\n\n/**\n * @internal\n */\nexport function mockResizeObserver(): void {\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(): void {}\n\n public observe(target: Element, options?: ResizeObserverOptions): void {}\n\n public unobserve(element: HTMLElement): void {}\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> {\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 { DebugElement, Predicate } from '@angular/core';\nimport { By } from '@angular/platform-browser';\n\n/**\n * Provides predicates for querying elements rendered by SKY UX components.\n * @internal\n */\nexport class SkyBy {\n /**\n * Creates a predicate that matches elements with the given `data-sky-id` attribute value.\n */\n public static dataSkyId(skyId: string): Predicate<DebugElement> {\n return By.css(`[data-sky-id=\"${skyId}\"]`);\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtilityDomEventOptions } from './test-utility-dom-event-options';\n\nfunction getNativeEl(el: any): any {\n if (!el) {\n return undefined;\n }\n\n if (el.nativeElement) {\n return el.nativeElement;\n }\n\n return el;\n}\n\n/**\n * A collection of low-level DOM and Angular test helpers.\n * @internal\n */\nexport class SkyAppTestUtility {\n public static fireDomEvent(\n element: EventTarget | null | undefined,\n eventName: string,\n options?: SkyAppTestUtilityDomEventOptions,\n ): void {\n if (!element) {\n throw new Error(\n `Event \\`${eventName}\\` could not be fired because the element is not defined.`,\n );\n }\n\n const defaults = {\n bubbles: true,\n cancelable: true,\n keyboardEventInit: {},\n };\n\n const settings = Object.assign({}, defaults, options);\n\n // Apply keyboard event options.\n const event = Object.assign(\n document.createEvent('CustomEvent'),\n settings.keyboardEventInit,\n settings.customEventInit,\n );\n\n event.initEvent(eventName, settings.bubbles, settings.cancelable);\n element.dispatchEvent(event);\n }\n\n /**\n * Returns the inner text content of an element.\n */\n public static getText(element: any): string | undefined {\n const nativeEl = getNativeEl(element);\n\n if (nativeEl) {\n return nativeEl.innerText.trim();\n }\n\n return undefined;\n }\n\n /**\n * Returns true if the element exists on the page.\n */\n public static isVisible(element: any): boolean | undefined {\n const nativeEl = getNativeEl(element);\n\n if (nativeEl) {\n return getComputedStyle(nativeEl).display !== 'none';\n }\n\n return undefined;\n }\n\n /**\n * Sets the value of an input element and triggers its 'input' and 'change' events.\n */\n public static setInputValue(element: any, value: string): void {\n const inputEvent = document.createEvent('Event');\n inputEvent.initEvent('input', false, false);\n\n const changeEvent = document.createEvent('Event');\n changeEvent.initEvent('change', false, false);\n\n element.value = value;\n\n element.dispatchEvent(inputEvent);\n element.dispatchEvent(changeEvent);\n }\n\n /**\n * Returns the URL of an element's background image, if it exists.\n */\n public static getBackgroundImageUrl(el: any): string | undefined {\n const nativeEl = getNativeEl(el);\n\n if (nativeEl) {\n const backgroundImageUrl = getComputedStyle(nativeEl).backgroundImage;\n\n /* istanbul ignore else */\n // Browser will likely not return an empty value for the computed style,\n // but leave the if statement here anyway as a sanity check.\n if (backgroundImageUrl) {\n const matches = /url\\(('|\")([^'\"]+)('|\")\\)/gi.exec(backgroundImageUrl);\n\n if (matches && matches.length > 0) {\n return matches[2];\n }\n }\n }\n\n return undefined;\n }\n\n /**\n * Returns a DebugElement representing a SKY UX component.\n * @internal\n * @param fixture The ComponentFixture where the SKY UX component resides.\n * @param skyTestId The value of the `data-sky-id` property specified on the SKY UX component.\n * @param componentSelector The selector name for the SKY UX component (e.g. 'sky-alert').\n */\n public static getDebugElementByTestId(\n fixture: ComponentFixture<any>,\n skyTestId: string,\n componentSelector: string,\n ): DebugElement {\n const skyEl = fixture.debugElement.query(\n By.css(`[data-sky-id=\"${skyTestId}\"]`),\n );\n\n if (!skyEl) {\n throw new Error(\n `No element was found with a \\`data-sky-id\\` value of \"${skyTestId}\".`,\n );\n }\n\n if (skyEl.name !== componentSelector) {\n throw new Error(\n `The element with the test ID \"${skyTestId}\" is not a component of type ${componentSelector}.\"`,\n );\n }\n\n return skyEl;\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
|
+
{"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/instrumentation/testing-controller.ts","../../../../../libs/components/core/testing/src/modules/instrumentation/testing-service.ts","../../../../../libs/components/core/testing/src/modules/instrumentation/provide-testing.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/modules/query-predicates/sky-by.ts","../../../../../libs/components/core/testing/src/modules/test-utility/test-utility.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): void => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\n\n/**\n * @internal\n */\nexport function mockResizeObserver(): void {\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(): void {}\n\n public observe(target: Element, options?: ResizeObserverOptions): void {}\n\n public unobserve(element: HTMLElement): void {}\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 { SkyInstrumentationEvent } from '@skyux/core';\n\n/**\n * Validates the instrumentation events emitted during a unit test.\n */\nexport abstract class SkyInstrumentationTestingController {\n /**\n * Throws an error if the expected event was not emitted.\n * @param evt The expected event. All properties must match an emitted event.\n */\n public abstract expectEvent(evt: SkyInstrumentationEvent): void;\n\n /**\n * Throws an error if the expected event was not emitted a specific number of\n * times.\n * @param evt The expected event. All properties must match an emitted event.\n * @param count The expected number of times the event was emitted.\n */\n public abstract expectEventCount(\n evt: SkyInstrumentationEvent,\n count: number,\n ): void;\n}\n","import { Injectable } from '@angular/core';\nimport {\n SkyInstrumentationEvent,\n SkyInstrumentationListener,\n} from '@skyux/core';\n\n@Injectable()\nexport class SkyInstrumentationTestingService implements SkyInstrumentationListener {\n readonly #notifications: string[] = [];\n\n public handleEvent(evt: SkyInstrumentationEvent): void {\n this.#notifications.push(this.#serialize(evt));\n }\n\n public expectEvent(evt: SkyInstrumentationEvent): void {\n const serialized = this.#serialize(evt);\n\n if (!this.#notifications.includes(serialized)) {\n throw new Error(`Expected an event to be logged with ${serialized}.`);\n }\n }\n\n public expectEventCount(\n evt: SkyInstrumentationEvent,\n expectedCount: number,\n ): void {\n const serialized = this.#serialize(evt);\n const actualCount = this.#notifications.filter(\n (n) => n === serialized,\n ).length;\n\n if (actualCount !== expectedCount) {\n throw new Error(\n `Expected an event ${serialized} to be logged ${expectedCount} time(s), but it was logged ${actualCount} time(s).`,\n );\n }\n }\n\n #serialize(evt: SkyInstrumentationEvent): string {\n return JSON.stringify(evt, (_key, value: unknown) =>\n value && typeof value === 'object' && !Array.isArray(value)\n ? Object.fromEntries(\n Object.entries(value).sort(([a], [b]) => (a < b ? -1 : 1)),\n )\n : value,\n );\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideSkyInstrumentationListener } from '@skyux/core';\nimport { SkyInstrumentationTestingController } from './testing-controller';\nimport { SkyInstrumentationTestingService } from './testing-service';\n\n/**\n * Registers a listener that records the instrumentation events emitted during a\n * unit test. Inject `SkyInstrumentationTestingController` to validate them.\n */\nexport function provideSkyInstrumentationTesting(): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideSkyInstrumentationListener(SkyInstrumentationTestingService),\n {\n provide: SkyInstrumentationTestingController,\n useExisting: SkyInstrumentationTestingService,\n },\n ]);\n}\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> {\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 { DebugElement, Predicate } from '@angular/core';\nimport { By } from '@angular/platform-browser';\n\n/**\n * Provides predicates for querying elements rendered by SKY UX components.\n * @internal\n */\nexport class SkyBy {\n /**\n * Creates a predicate that matches elements with the given `data-sky-id` attribute value.\n */\n public static dataSkyId(skyId: string): Predicate<DebugElement> {\n return By.css(`[data-sky-id=\"${skyId}\"]`);\n }\n}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtilityDomEventOptions } from './test-utility-dom-event-options';\n\nfunction getNativeEl(el: any): any {\n if (!el) {\n return undefined;\n }\n\n if (el.nativeElement) {\n return el.nativeElement;\n }\n\n return el;\n}\n\n/**\n * A collection of low-level DOM and Angular test helpers.\n * @internal\n */\nexport class SkyAppTestUtility {\n public static fireDomEvent(\n element: EventTarget | null | undefined,\n eventName: string,\n options?: SkyAppTestUtilityDomEventOptions,\n ): void {\n if (!element) {\n throw new Error(\n `Event \\`${eventName}\\` could not be fired because the element is not defined.`,\n );\n }\n\n const defaults = {\n bubbles: true,\n cancelable: true,\n keyboardEventInit: {},\n };\n\n const settings = Object.assign({}, defaults, options);\n\n // Apply keyboard event options.\n const event = Object.assign(\n document.createEvent('CustomEvent'),\n settings.keyboardEventInit,\n settings.customEventInit,\n );\n\n event.initEvent(eventName, settings.bubbles, settings.cancelable);\n element.dispatchEvent(event);\n }\n\n /**\n * Returns the inner text content of an element.\n */\n public static getText(element: any): string | undefined {\n const nativeEl = getNativeEl(element);\n\n if (nativeEl) {\n return nativeEl.innerText.trim();\n }\n\n return undefined;\n }\n\n /**\n * Returns true if the element exists on the page.\n */\n public static isVisible(element: any): boolean | undefined {\n const nativeEl = getNativeEl(element);\n\n if (nativeEl) {\n return getComputedStyle(nativeEl).display !== 'none';\n }\n\n return undefined;\n }\n\n /**\n * Sets the value of an input element and triggers its 'input' and 'change' events.\n */\n public static setInputValue(element: any, value: string): void {\n const inputEvent = document.createEvent('Event');\n inputEvent.initEvent('input', false, false);\n\n const changeEvent = document.createEvent('Event');\n changeEvent.initEvent('change', false, false);\n\n element.value = value;\n\n element.dispatchEvent(inputEvent);\n element.dispatchEvent(changeEvent);\n }\n\n /**\n * Returns the URL of an element's background image, if it exists.\n */\n public static getBackgroundImageUrl(el: any): string | undefined {\n const nativeEl = getNativeEl(el);\n\n if (nativeEl) {\n const backgroundImageUrl = getComputedStyle(nativeEl).backgroundImage;\n\n /* istanbul ignore else */\n // Browser will likely not return an empty value for the computed style,\n // but leave the if statement here anyway as a sanity check.\n if (backgroundImageUrl) {\n const matches = /url\\(('|\")([^'\"]+)('|\")\\)/gi.exec(backgroundImageUrl);\n\n if (matches && matches.length > 0) {\n return matches[2];\n }\n }\n }\n\n return undefined;\n }\n\n /**\n * Returns a DebugElement representing a SKY UX component.\n * @internal\n * @param fixture The ComponentFixture where the SKY UX component resides.\n * @param skyTestId The value of the `data-sky-id` property specified on the SKY UX component.\n * @param componentSelector The selector name for the SKY UX component (e.g. 'sky-alert').\n */\n public static getDebugElementByTestId(\n fixture: ComponentFixture<any>,\n skyTestId: string,\n componentSelector: string,\n ): DebugElement {\n const skyEl = fixture.debugElement.query(\n By.css(`[data-sky-id=\"${skyTestId}\"]`),\n );\n\n if (!skyEl) {\n throw new Error(\n `No element was found with a \\`data-sky-id\\` value of \"${skyTestId}\".`,\n );\n }\n\n if (skyEl.name !== componentSelector) {\n throw new Error(\n `The element with the test ID \"${skyTestId}\" is not a component of type ${componentSelector}.\"`,\n );\n }\n\n return skyEl;\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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"}
|
package/fesm2022/skyux-core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { NgModule, Injectable, inject, RendererFactory2, NgZone, DOCUMENT, EventEmitter, ElementRef, Output, Input, Directive, effect, untracked, input, booleanAttribute, output, DestroyRef, signal, computed, ChangeDetectionStrategy, Component, provideEnvironmentInitializer, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ViewContainerRef, ViewChild, InjectionToken, Renderer2, Optional, Inject, ApplicationRef, afterNextRender, Injector, Pipe, HostBinding, HostListener } from '@angular/core';
|
|
2
|
+
import { NgModule, Injectable, inject, RendererFactory2, NgZone, DOCUMENT, EventEmitter, ElementRef, Output, Input, Directive, effect, untracked, input, booleanAttribute, output, DestroyRef, signal, computed, ChangeDetectionStrategy, Component, provideEnvironmentInitializer, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ViewContainerRef, ViewChild, InjectionToken, Renderer2, makeEnvironmentProviders, ErrorHandler, Optional, Inject, ApplicationRef, afterNextRender, Injector, Pipe, HostBinding, HostListener } from '@angular/core';
|
|
3
3
|
import { Subject, Subscription, ReplaySubject, fromEvent, of, Observable, filter, map, distinctUntilChanged, shareReplay, observeOn, animationFrameScheduler, takeUntil as takeUntil$1, BehaviorSubject, isObservable, combineLatest, combineLatestWith, switchMap, merge, debounceTime as debounceTime$1 } from 'rxjs';
|
|
4
4
|
import { takeUntil, debounceTime, take } from 'rxjs/operators';
|
|
5
5
|
import { ViewportRuler } from '@angular/cdk/overlay';
|
|
@@ -2082,6 +2082,144 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
2082
2082
|
}]
|
|
2083
2083
|
}] });
|
|
2084
2084
|
|
|
2085
|
+
const SKY_INSTRUMENTATION_CONTEXT = new InjectionToken('SKY_INSTRUMENTATION_CONTEXT');
|
|
2086
|
+
|
|
2087
|
+
/**
|
|
2088
|
+
* Describes the region of the page that the instrumentation events emitted
|
|
2089
|
+
* within this element came from. Nest contexts to add more specific
|
|
2090
|
+
* information.
|
|
2091
|
+
*/
|
|
2092
|
+
class SkyInstrumentationContext {
|
|
2093
|
+
constructor() {
|
|
2094
|
+
/**
|
|
2095
|
+
* The context to attach to instrumentation events emitted within this
|
|
2096
|
+
* element.
|
|
2097
|
+
*/
|
|
2098
|
+
this.skyInstrumentationContext = input.required(/* @ts-ignore */
|
|
2099
|
+
...(ngDevMode ? [{ debugName: "skyInstrumentationContext" }] : /* istanbul ignore next */ []));
|
|
2100
|
+
}
|
|
2101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyInstrumentationContext, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2102
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: SkyInstrumentationContext, isStandalone: true, selector: "[skyInstrumentationContext]", inputs: { skyInstrumentationContext: { classPropertyName: "skyInstrumentationContext", publicName: "skyInstrumentationContext", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
|
|
2103
|
+
{
|
|
2104
|
+
provide: SKY_INSTRUMENTATION_CONTEXT,
|
|
2105
|
+
useFactory() {
|
|
2106
|
+
const parent = inject(SKY_INSTRUMENTATION_CONTEXT, {
|
|
2107
|
+
optional: true,
|
|
2108
|
+
skipSelf: true,
|
|
2109
|
+
});
|
|
2110
|
+
const self = inject(SkyInstrumentationContext);
|
|
2111
|
+
return {
|
|
2112
|
+
resolve: () => {
|
|
2113
|
+
const { name, detail } = self.skyInstrumentationContext();
|
|
2114
|
+
const value = { name };
|
|
2115
|
+
if (detail) {
|
|
2116
|
+
value.detail = { ...detail };
|
|
2117
|
+
}
|
|
2118
|
+
const parentValue = parent?.resolve();
|
|
2119
|
+
if (parentValue) {
|
|
2120
|
+
value.parent = parentValue;
|
|
2121
|
+
}
|
|
2122
|
+
return value;
|
|
2123
|
+
},
|
|
2124
|
+
};
|
|
2125
|
+
},
|
|
2126
|
+
},
|
|
2127
|
+
], ngImport: i0 }); }
|
|
2128
|
+
}
|
|
2129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: SkyInstrumentationContext, decorators: [{
|
|
2130
|
+
type: Directive,
|
|
2131
|
+
args: [{
|
|
2132
|
+
selector: '[skyInstrumentationContext]',
|
|
2133
|
+
providers: [
|
|
2134
|
+
{
|
|
2135
|
+
provide: SKY_INSTRUMENTATION_CONTEXT,
|
|
2136
|
+
useFactory() {
|
|
2137
|
+
const parent = inject(SKY_INSTRUMENTATION_CONTEXT, {
|
|
2138
|
+
optional: true,
|
|
2139
|
+
skipSelf: true,
|
|
2140
|
+
});
|
|
2141
|
+
const self = inject(SkyInstrumentationContext);
|
|
2142
|
+
return {
|
|
2143
|
+
resolve: () => {
|
|
2144
|
+
const { name, detail } = self.skyInstrumentationContext();
|
|
2145
|
+
const value = { name };
|
|
2146
|
+
if (detail) {
|
|
2147
|
+
value.detail = { ...detail };
|
|
2148
|
+
}
|
|
2149
|
+
const parentValue = parent?.resolve();
|
|
2150
|
+
if (parentValue) {
|
|
2151
|
+
value.parent = parentValue;
|
|
2152
|
+
}
|
|
2153
|
+
return value;
|
|
2154
|
+
},
|
|
2155
|
+
};
|
|
2156
|
+
},
|
|
2157
|
+
},
|
|
2158
|
+
],
|
|
2159
|
+
}]
|
|
2160
|
+
}], propDecorators: { skyInstrumentationContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "skyInstrumentationContext", required: true }] }] } });
|
|
2161
|
+
|
|
2162
|
+
/**
|
|
2163
|
+
* Forwards the instrumentation context resolved from the given injector to a
|
|
2164
|
+
* dynamically created component, such as a modal or flyout, which would
|
|
2165
|
+
* otherwise render outside of the launching element.
|
|
2166
|
+
*/
|
|
2167
|
+
function provideSkyInstrumentationContextFrom(injector) {
|
|
2168
|
+
const context = injector.get(SKY_INSTRUMENTATION_CONTEXT, null);
|
|
2169
|
+
return context
|
|
2170
|
+
? [{ provide: SKY_INSTRUMENTATION_CONTEXT, useValue: context }]
|
|
2171
|
+
: [];
|
|
2172
|
+
}
|
|
2173
|
+
|
|
2174
|
+
/**
|
|
2175
|
+
* @internal
|
|
2176
|
+
*/
|
|
2177
|
+
const SKY_INSTRUMENTATION_LISTENERS = new InjectionToken('SKY_INSTRUMENTATION_LISTENERS');
|
|
2178
|
+
/**
|
|
2179
|
+
* Registers a listener to receive instrumentation events. Provide this in your
|
|
2180
|
+
* application config so that components in lazy-loaded routes can reach the
|
|
2181
|
+
* listener.
|
|
2182
|
+
*/
|
|
2183
|
+
function provideSkyInstrumentationListener(listener) {
|
|
2184
|
+
return makeEnvironmentProviders([
|
|
2185
|
+
listener,
|
|
2186
|
+
{
|
|
2187
|
+
provide: SKY_INSTRUMENTATION_LISTENERS,
|
|
2188
|
+
useExisting: listener,
|
|
2189
|
+
multi: true,
|
|
2190
|
+
},
|
|
2191
|
+
]);
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
/**
|
|
2195
|
+
* @internal
|
|
2196
|
+
*/
|
|
2197
|
+
function _injectSkyInstrumentationEmitter() {
|
|
2198
|
+
const context = inject(SKY_INSTRUMENTATION_CONTEXT, { optional: true });
|
|
2199
|
+
const errorHandler = inject(ErrorHandler);
|
|
2200
|
+
const listeners = inject(SKY_INSTRUMENTATION_LISTENERS, {
|
|
2201
|
+
optional: true,
|
|
2202
|
+
});
|
|
2203
|
+
return {
|
|
2204
|
+
emit(eventName, eventDetail) {
|
|
2205
|
+
for (const listener of listeners ?? []) {
|
|
2206
|
+
// Listeners are application code, and measuring an interaction must
|
|
2207
|
+
// never break the component that reports it.
|
|
2208
|
+
try {
|
|
2209
|
+
listener.handleEvent({
|
|
2210
|
+
context: context?.resolve(),
|
|
2211
|
+
eventName,
|
|
2212
|
+
eventDetail,
|
|
2213
|
+
});
|
|
2214
|
+
}
|
|
2215
|
+
catch (err) {
|
|
2216
|
+
errorHandler.handleError(err);
|
|
2217
|
+
}
|
|
2218
|
+
}
|
|
2219
|
+
},
|
|
2220
|
+
};
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2085
2223
|
/**
|
|
2086
2224
|
* @internal
|
|
2087
2225
|
*/
|
|
@@ -2811,6 +2949,12 @@ const RESOURCES = {
|
|
|
2811
2949
|
skyux_numeric_thousands_symbol: { message: 'K' },
|
|
2812
2950
|
skyux_numeric_trillions_symbol: { message: 'T' },
|
|
2813
2951
|
},
|
|
2952
|
+
ES: {
|
|
2953
|
+
skyux_numeric_billions_symbol: { message: 'MM' },
|
|
2954
|
+
skyux_numeric_millions_symbol: { message: 'M' },
|
|
2955
|
+
skyux_numeric_thousands_symbol: { message: 'K' },
|
|
2956
|
+
skyux_numeric_trillions_symbol: { message: 'T' },
|
|
2957
|
+
},
|
|
2814
2958
|
'FR-CA': {
|
|
2815
2959
|
skyux_numeric_billions_symbol: { message: 'G' },
|
|
2816
2960
|
skyux_numeric_millions_symbol: { message: 'M' },
|
|
@@ -5092,11 +5236,11 @@ class Version {
|
|
|
5092
5236
|
/**
|
|
5093
5237
|
* Represents the version of @skyux/core.
|
|
5094
5238
|
*/
|
|
5095
|
-
const VERSION = new Version('15.0.0-
|
|
5239
|
+
const VERSION = new Version('15.0.0-beta.1');
|
|
5096
5240
|
|
|
5097
5241
|
/**
|
|
5098
5242
|
* Generated bundle index. Do not edit.
|
|
5099
5243
|
*/
|
|
5100
5244
|
|
|
5101
|
-
export { NumericOptions, SKY_BREAKPOINTS, SKY_BREAKPOINT_OBSERVER, SKY_HELP_GLOBAL_OPTIONS, SKY_ICON_SVG_URL, 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, SkyViewkeeper, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, VERSION, _SkyAnimationEndHandlerDirective, _SkyAnimationSlideComponent, _SkyTransitionEndHandlerDirective, provideNoopSkyAnimations, provideSkyBreakpointObserver, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
|
|
5245
|
+
export { NumericOptions, SKY_BREAKPOINTS, SKY_BREAKPOINT_OBSERVER, SKY_HELP_GLOBAL_OPTIONS, SKY_ICON_SVG_URL, 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, SkyInstrumentationContext, 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, SkyViewkeeper, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, VERSION, _SkyAnimationEndHandlerDirective, _SkyAnimationSlideComponent, _SkyTransitionEndHandlerDirective, _injectSkyInstrumentationEmitter, provideNoopSkyAnimations, provideSkyBreakpointObserver, provideSkyInstrumentationContextFrom, provideSkyInstrumentationListener, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
|
|
5102
5246
|
//# sourceMappingURL=skyux-core.mjs.map
|