@skyux/core 10.0.0-alpha.3 → 10.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +424 -424
- package/esm2022/lib/modules/adapter-service/adapter.module.mjs +4 -4
- package/esm2022/lib/modules/adapter-service/adapter.service.mjs +3 -3
- package/esm2022/lib/modules/affix/affix.directive.mjs +3 -3
- package/esm2022/lib/modules/affix/affix.module.mjs +4 -4
- package/esm2022/lib/modules/affix/affix.service.mjs +3 -3
- package/esm2022/lib/modules/dock/dock-dom-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/dock/dock.component.mjs +3 -3
- package/esm2022/lib/modules/dock/dock.module.mjs +4 -4
- package/esm2022/lib/modules/dock/dock.service.mjs +3 -3
- package/esm2022/lib/modules/dynamic-component/dynamic-component.module.mjs +4 -4
- package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +6 -6
- package/esm2022/lib/modules/format/app-format.mjs +3 -3
- package/esm2022/lib/modules/id/id.directive.mjs +3 -3
- package/esm2022/lib/modules/id/id.module.mjs +4 -4
- package/esm2022/lib/modules/id/id.service.mjs +3 -3
- package/esm2022/lib/modules/layout-host/layout-host.service.mjs +3 -3
- package/esm2022/lib/modules/live-announcer/live-announcer.service.mjs +3 -3
- package/esm2022/lib/modules/log/log.module.mjs +4 -4
- package/esm2022/lib/modules/log/log.service.mjs +3 -3
- package/esm2022/lib/modules/media-query/media-query.module.mjs +4 -4
- package/esm2022/lib/modules/media-query/media-query.service.mjs +3 -3
- package/esm2022/lib/modules/mutation/mutation-observer-service.mjs +3 -3
- package/esm2022/lib/modules/numeric/numeric.module.mjs +4 -4
- package/esm2022/lib/modules/numeric/numeric.pipe.mjs +3 -3
- package/esm2022/lib/modules/numeric/numeric.service.mjs +3 -3
- package/esm2022/lib/modules/overlay/overlay-adapter.service.mjs +3 -3
- package/esm2022/lib/modules/overlay/overlay.component.mjs +3 -3
- package/esm2022/lib/modules/overlay/overlay.module.mjs +4 -4
- package/esm2022/lib/modules/overlay/overlay.service.mjs +6 -6
- package/esm2022/lib/modules/percent-pipe/percent-pipe.module.mjs +4 -4
- package/esm2022/lib/modules/percent-pipe/percent.pipe.mjs +3 -3
- package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +3 -3
- package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +3 -3
- package/esm2022/lib/modules/screen-reader-label/screen-reader-label.directive.mjs +3 -3
- package/esm2022/lib/modules/scrollable-host/scrollable-host.service.mjs +3 -3
- package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +4 -4
- package/esm2022/lib/modules/title/title.service.mjs +3 -3
- package/esm2022/lib/modules/trim/trim.directive.mjs +3 -3
- package/esm2022/lib/modules/trim/trim.module.mjs +4 -4
- package/esm2022/lib/modules/ui-config/ui-config.service.mjs +3 -3
- package/esm2022/lib/modules/viewkeeper/viewkeeper-host-options.mjs +3 -3
- package/esm2022/lib/modules/viewkeeper/viewkeeper.directive.mjs +3 -3
- package/esm2022/lib/modules/viewkeeper/viewkeeper.module.mjs +4 -4
- package/esm2022/lib/modules/viewkeeper/viewkeeper.service.mjs +3 -3
- package/esm2022/lib/modules/window/window-ref.mjs +3 -3
- package/esm2022/testing/core-testing.module.mjs +4 -4
- package/esm2022/testing/mock-media-query.service.mjs +3 -3
- package/esm2022/testing/mock-ui-config.service.mjs +3 -3
- package/esm2022/testing/overlay/overlay-harness.mjs +4 -27
- package/esm2022/testing/public-api.mjs +2 -1
- package/esm2022/testing/shared/component-harness.mjs +1 -1
- package/esm2022/testing/shared/queryable-component-harness.mjs +43 -0
- package/esm2022/version.mjs +1 -1
- package/fesm2022/skyux-core-testing.mjs +55 -37
- package/fesm2022/skyux-core-testing.mjs.map +1 -1
- package/fesm2022/skyux-core.mjs +155 -155
- package/package.json +7 -7
- package/testing/overlay/overlay-harness.d.ts +3 -18
- package/testing/public-api.d.ts +1 -0
- package/testing/shared/queryable-component-harness.d.ts +31 -0
@@ -39,10 +39,10 @@ class MockSkyMediaQueryService extends SkyMediaQueryService {
|
|
39
39
|
/* istanbul ignore next */
|
40
40
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
41
41
|
destroy() { }
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
43
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyMediaQueryService }); }
|
44
44
|
}
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
|
46
46
|
type: Injectable
|
47
47
|
}], ctorParameters: () => [] });
|
48
48
|
|
@@ -97,10 +97,10 @@ class MockSkyUIConfigService extends SkyUIConfigService {
|
|
97
97
|
}
|
98
98
|
}
|
99
99
|
}
|
100
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
101
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.
|
100
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyUIConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
101
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyUIConfigService }); }
|
102
102
|
}
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
|
104
104
|
type: Injectable
|
105
105
|
}] });
|
106
106
|
|
@@ -108,9 +108,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
108
108
|
* @internal
|
109
109
|
*/
|
110
110
|
class SkyCoreTestingModule {
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
112
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.
|
113
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SkyCoreTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
112
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: SkyCoreTestingModule }); }
|
113
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SkyCoreTestingModule, providers: [
|
114
114
|
{ provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },
|
115
115
|
{
|
116
116
|
provide: SkyUIConfigService,
|
@@ -118,7 +118,7 @@ class SkyCoreTestingModule {
|
|
118
118
|
},
|
119
119
|
] }); }
|
120
120
|
}
|
121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: SkyCoreTestingModule, decorators: [{
|
122
122
|
type: NgModule,
|
123
123
|
args: [{
|
124
124
|
providers: [
|
@@ -132,26 +132,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
132
132
|
}] });
|
133
133
|
|
134
134
|
/**
|
135
|
-
* Harness for interacting with an overlay component in tests.
|
136
135
|
* @internal
|
137
136
|
*/
|
138
|
-
class
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
137
|
+
class SkyComponentHarness extends ComponentHarness {
|
138
|
+
static getDataSkyIdPredicate(filters) {
|
139
|
+
return new HarnessPredicate(this, filters).addOption('dataSkyId', filters.dataSkyId, (harness, text) => HarnessPredicate.stringMatches(harness.#getSkyId(), text));
|
140
|
+
}
|
141
|
+
async #getSkyId() {
|
142
|
+
return (await this.host()).getAttribute('data-sky-id');
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
/**
|
147
|
+
* @internal
|
148
|
+
*/
|
149
|
+
class SkyQueryableComponentHarness extends SkyComponentHarness {
|
143
150
|
/**
|
144
|
-
*
|
145
|
-
* `SkyOverlayHarness` that meets certain criteria.
|
151
|
+
* Returns a child harness or throws an error if not found.
|
146
152
|
*/
|
147
|
-
|
148
|
-
return
|
153
|
+
async queryHarness(query) {
|
154
|
+
return this.locatorFor(query)();
|
149
155
|
}
|
150
156
|
/**
|
151
|
-
* Returns a child harness.
|
157
|
+
* Returns a child harness or null if not found.
|
152
158
|
*/
|
153
|
-
async
|
154
|
-
return this.locatorForOptional(
|
159
|
+
async queryHarnessOrNull(query) {
|
160
|
+
return this.locatorForOptional(query)();
|
155
161
|
}
|
156
162
|
/**
|
157
163
|
* Returns child harnesses.
|
@@ -160,9 +166,15 @@ class SkyOverlayHarness extends ComponentHarness {
|
|
160
166
|
return this.locatorForAll(harness)();
|
161
167
|
}
|
162
168
|
/**
|
163
|
-
* Returns a child test element.
|
169
|
+
* Returns a child test element or throws an error if not found.
|
164
170
|
*/
|
165
171
|
async querySelector(selector) {
|
172
|
+
return this.locatorFor(selector)();
|
173
|
+
}
|
174
|
+
/**
|
175
|
+
* Returns a child test element or null if not found.
|
176
|
+
*/
|
177
|
+
async querySelectorOrNull(selector) {
|
166
178
|
return this.locatorForOptional(selector)();
|
167
179
|
}
|
168
180
|
/**
|
@@ -173,6 +185,24 @@ class SkyOverlayHarness extends ComponentHarness {
|
|
173
185
|
}
|
174
186
|
}
|
175
187
|
|
188
|
+
/**
|
189
|
+
* Harness for interacting with an overlay component in tests.
|
190
|
+
* @internal
|
191
|
+
*/
|
192
|
+
class SkyOverlayHarness extends SkyQueryableComponentHarness {
|
193
|
+
/**
|
194
|
+
* @internal
|
195
|
+
*/
|
196
|
+
static { this.hostSelector = 'sky-overlay'; }
|
197
|
+
/**
|
198
|
+
* Gets a `HarnessPredicate` that can be used to search for a
|
199
|
+
* `SkyOverlayHarness` that meets certain criteria.
|
200
|
+
*/
|
201
|
+
static with(filters) {
|
202
|
+
return new HarnessPredicate(SkyOverlayHarness, filters);
|
203
|
+
}
|
204
|
+
}
|
205
|
+
|
176
206
|
const mockResizeObserverEntry = {
|
177
207
|
target: {},
|
178
208
|
borderBoxSize: [],
|
@@ -213,21 +243,9 @@ function mockResizeObserver() {
|
|
213
243
|
};
|
214
244
|
}
|
215
245
|
|
216
|
-
/**
|
217
|
-
* @internal
|
218
|
-
*/
|
219
|
-
class SkyComponentHarness extends ComponentHarness {
|
220
|
-
static getDataSkyIdPredicate(filters) {
|
221
|
-
return new HarnessPredicate(this, filters).addOption('dataSkyId', filters.dataSkyId, (harness, text) => HarnessPredicate.stringMatches(harness.#getSkyId(), text));
|
222
|
-
}
|
223
|
-
async #getSkyId() {
|
224
|
-
return (await this.host()).getAttribute('data-sky-id');
|
225
|
-
}
|
226
|
-
}
|
227
|
-
|
228
246
|
/**
|
229
247
|
* Generated bundle index. Do not edit.
|
230
248
|
*/
|
231
249
|
|
232
|
-
export { MockSkyMediaQueryService, MockSkyUIConfigService, SkyComponentHarness, SkyCoreTestingModule, SkyOverlayHarness, mockResizeObserver, mockResizeObserverEntry, mockResizeObserverHandle };
|
250
|
+
export { MockSkyMediaQueryService, MockSkyUIConfigService, SkyComponentHarness, SkyCoreTestingModule, SkyOverlayHarness, SkyQueryableComponentHarness, mockResizeObserver, mockResizeObserverEntry, mockResizeObserverHandle };
|
233
251
|
//# sourceMappingURL=skyux-core-testing.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/core-testing.module.ts","../../../../../libs/components/core/testing/src/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/resize-observer-mock.ts","../../../../../libs/components/core/testing/src/shared/component-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 */\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","import {\n ComponentHarness,\n HarnessPredicate,\n HarnessQuery,\n TestElement,\n} from '@angular/cdk/testing';\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 ComponentHarness {\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 /**\n * Returns a child harness.\n */\n public async queryHarness<T extends ComponentHarness>(\n harness: HarnessQuery<T>,\n ): Promise<T | null> {\n return this.locatorForOptional(harness)();\n }\n\n /**\n * Returns child harnesses.\n */\n public async queryHarnesses<T extends ComponentHarness>(\n harness: HarnessQuery<T>,\n ): Promise<T[]> {\n return this.locatorForAll(harness)();\n }\n\n /**\n * Returns a child test element.\n */\n public async querySelector(selector: string): Promise<TestElement | null> {\n return this.locatorForOptional(selector)();\n }\n\n /**\n * Returns child test elements.\n */\n public async querySelectorAll(selector: string): Promise<TestElement[]> {\n return this.locatorForAll(selector)();\n }\n}\n","export 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\nexport const mockResizeObserverHandle = {\n callback: defaultCallback,\n emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver) => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\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 {\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 ) {\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 this.host()).getAttribute('data-sky-id');\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/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/core-testing.module.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/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/resize-observer-mock.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 */\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","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 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 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 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 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 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 this.locatorForOptional(selector)();\n }\n\n /**\n * Returns child test elements.\n */\n public async querySelectorAll(selector: string): Promise<TestElement[]> {\n return 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","export 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\nexport const mockResizeObserverHandle = {\n callback: defaultCallback,\n emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver) => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}
|