@skyux/tiles 11.36.2 → 11.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,31 @@
1
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
2
+ import { SkyTileContentSectionHarness } from './tile-content-section-harness';
3
+ /**
4
+ * Harness to interact with a tile content component in tests.
5
+ */
6
+ export class SkyTileContentHarness extends SkyQueryableComponentHarness {
7
+ /**
8
+ * @internal
9
+ */
10
+ static { this.hostSelector = 'sky-tile-content'; }
11
+ /**
12
+ * Gets a harness for a specific tile content section that meets certain criteria.
13
+ */
14
+ async getSection(filter) {
15
+ return await this.locatorFor(SkyTileContentSectionHarness.with(filter))();
16
+ }
17
+ /**
18
+ * Gets an array of tile content sections.
19
+ */
20
+ async getSections(filters) {
21
+ const sections = await this.locatorForAll(SkyTileContentSectionHarness.with(filters || {}))();
22
+ if (sections.length === 0) {
23
+ if (filters) {
24
+ throw new Error(`Unable to find any tile content sections with filter(s): ${JSON.stringify(filters)}`);
25
+ }
26
+ throw new Error('Unable to find any tile content sections.');
27
+ }
28
+ return sections;
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvdGVzdGluZy9zcmMvbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUc5RTs7R0FFRztBQUNILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSw0QkFBNEI7SUFDckU7O09BRUc7YUFDVyxpQkFBWSxHQUFHLGtCQUFrQixDQUFDO0lBRWhEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FDckIsTUFBMkM7UUFFM0MsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsV0FBVyxDQUN0QixPQUE2QztRQUU3QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQ3ZDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQ2pELEVBQUUsQ0FBQztRQUVKLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IsNERBQTRELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDdEYsQ0FBQztZQUNKLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lRdWVyeWFibGVDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreVRpbGVDb250ZW50U2VjdGlvbkhhcm5lc3MgfSBmcm9tICcuL3RpbGUtY29udGVudC1zZWN0aW9uLWhhcm5lc3MnO1xuaW1wb3J0IHsgU2t5VGlsZUNvbnRlbnRTZWN0aW9uSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3RpbGUtY29udGVudC1zZWN0aW9uLWhhcm5lc3MtZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyB0byBpbnRlcmFjdCB3aXRoIGEgdGlsZSBjb250ZW50IGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVRpbGVDb250ZW50SGFybmVzcyBleHRlbmRzIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktdGlsZS1jb250ZW50JztcblxuICAvKipcbiAgICogR2V0cyBhIGhhcm5lc3MgZm9yIGEgc3BlY2lmaWMgdGlsZSBjb250ZW50IHNlY3Rpb24gdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNlY3Rpb24oXG4gICAgZmlsdGVyOiBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzRmlsdGVycyxcbiAgKTogUHJvbWlzZTxTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvcihTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzLndpdGgoZmlsdGVyKSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIGFycmF5IG9mIHRpbGUgY29udGVudCBzZWN0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTZWN0aW9ucyhcbiAgICBmaWx0ZXJzPzogU2t5VGlsZUNvbnRlbnRTZWN0aW9uSGFybmVzc0ZpbHRlcnMsXG4gICk6IFByb21pc2U8U2t5VGlsZUNvbnRlbnRTZWN0aW9uSGFybmVzc1tdPiB7XG4gICAgY29uc3Qgc2VjdGlvbnMgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoXG4gICAgICBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzLndpdGgoZmlsdGVycyB8fCB7fSksXG4gICAgKSgpO1xuXG4gICAgaWYgKHNlY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBVbmFibGUgdG8gZmluZCBhbnkgdGlsZSBjb250ZW50IHNlY3Rpb25zIHdpdGggZmlsdGVyKHMpOiAke0pTT04uc3RyaW5naWZ5KGZpbHRlcnMpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kIGFueSB0aWxlIGNvbnRlbnQgc2VjdGlvbnMuJyk7XG4gICAgfVxuICAgIHJldHVybiBzZWN0aW9ucztcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3Rlc3Rpbmcvc3JjL21vZHVsZXMvdGlsZXMvdGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgU2t5VGlsZUNvbnRlbnRTZWN0aW9uSGFybmVzc2AgaW5zdGFuY2VzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG5leHBvcnQgaW50ZXJmYWNlIFNreVRpbGVDb250ZW50U2VjdGlvbkhhcm5lc3NGaWx0ZXJzXG4gIGV4dGVuZHMgU2t5SGFybmVzc0ZpbHRlcnMge31cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness to interact with a tile content section component in tests.
4
+ */
5
+ export class SkyTileContentSectionHarness extends SkyQueryableComponentHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static { this.hostSelector = 'sky-tile-content-section'; }
10
+ /**
11
+ * Gets a `HarnessPredicate` that can be used to search for a
12
+ * `SkyTileContentSectionHarness` that meets certain criteria.
13
+ */
14
+ static with(filters) {
15
+ return SkyTileContentSectionHarness.getDataSkyIdPredicate(filters);
16
+ }
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy90ZXN0aW5nL3NyYy9tb2R1bGVzL3RpbGVzL3RpbGUtY29udGVudC1zZWN0aW9uLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJbkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsNEJBQTRCO0lBQzVFOztPQUVHO2FBQ1csaUJBQVksR0FBRywwQkFBMEIsQ0FBQztJQUV4RDs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUE0QztRQUU1QyxPQUFPLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vdGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIHRvIGludGVyYWN0IHdpdGggYSB0aWxlIGNvbnRlbnQgc2VjdGlvbiBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzIGV4dGVuZHMgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS10aWxlLWNvbnRlbnQtc2VjdGlvbic7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreVRpbGVDb250ZW50U2VjdGlvbkhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreVRpbGVDb250ZW50U2VjdGlvbkhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtaGFybmVzcy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3Rlc3Rpbmcvc3JjL21vZHVsZXMvdGlsZXMvdGlsZS1kYXNoYm9hcmQtaGFybmVzcy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgU2t5VGlsZURhc2hib2FyZEhhcm5lc3NgIGluc3RhbmNlcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuZXhwb3J0IGludGVyZmFjZSBTa3lUaWxlRGFzaGJvYXJkSGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBTa3lIYXJuZXNzRmlsdGVycyB7fVxuIl19
@@ -0,0 +1,45 @@
1
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
2
+ import { SkyTileHarness } from './tile-harness';
3
+ /**
4
+ * Harness to interact with a tile dashboard component in tests.
5
+ */
6
+ export class SkyTileDashboardHarness extends SkyQueryableComponentHarness {
7
+ /**
8
+ * @internal
9
+ */
10
+ static { this.hostSelector = 'sky-tile-dashboard'; }
11
+ /**
12
+ * Gets a `HarnessPredicate` that can be used to search for a
13
+ * `SkyTileDashboardHarness` that meets certain criteria.
14
+ */
15
+ static with(filters) {
16
+ return SkyTileDashboardHarness.getDataSkyIdPredicate(filters);
17
+ }
18
+ /**
19
+ * Gets a harness for a specific tile that meets certain criteria.
20
+ */
21
+ async getTile(filter) {
22
+ return await this.locatorFor(SkyTileHarness.with(filter))();
23
+ }
24
+ /**
25
+ * Gets an array of tiles.
26
+ */
27
+ async getTiles(filters) {
28
+ const tiles = await this.locatorForAll(SkyTileHarness.with(filters || {}))();
29
+ if (tiles.length === 0) {
30
+ if (filters) {
31
+ throw new Error(`Unable to find any tiles with filter(s): ${JSON.stringify(filters)}`);
32
+ }
33
+ throw new Error('Unable to find any tiles.');
34
+ }
35
+ return tiles;
36
+ }
37
+ /**
38
+ * Whether or not the dashboard is in multi-column mode.
39
+ */
40
+ async isMultiColumn() {
41
+ const host = await this.host();
42
+ return await host.hasClass('sky-tile-dashboard-multi-column');
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1kYXNoYm9hcmQtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy90ZXN0aW5nL3NyYy9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2hEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDRCQUE0QjtJQUN2RTs7T0FFRzthQUNXLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7SUFFbEQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBdUM7UUFFdkMsT0FBTyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQTZCO1FBQ2hELE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxRQUFRLENBQ25CLE9BQStCO1FBRS9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FDcEMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQ25DLEVBQUUsQ0FBQztRQUVKLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IsNENBQTRDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDdEUsQ0FBQztZQUNKLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGFBQWE7UUFDeEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFL0IsT0FBTyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5VGlsZURhc2hib2FyZEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi90aWxlLWRhc2hib2FyZC1oYXJuZXNzLWZpbHRlcnMnO1xuaW1wb3J0IHsgU2t5VGlsZUhhcm5lc3MgfSBmcm9tICcuL3RpbGUtaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lUaWxlSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3RpbGUtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIHRvIGludGVyYWN0IHdpdGggYSB0aWxlIGRhc2hib2FyZCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lUaWxlRGFzaGJvYXJkSGFybmVzcyBleHRlbmRzIFNreVF1ZXJ5YWJsZUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktdGlsZS1kYXNoYm9hcmQnO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lUaWxlRGFzaGJvYXJkSGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreVRpbGVEYXNoYm9hcmRIYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lUaWxlRGFzaGJvYXJkSGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lUaWxlRGFzaGJvYXJkSGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGhhcm5lc3MgZm9yIGEgc3BlY2lmaWMgdGlsZSAgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFRpbGUoZmlsdGVyOiBTa3lUaWxlSGFybmVzc0ZpbHRlcnMpOiBQcm9taXNlPFNreVRpbGVIYXJuZXNzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvcihTa3lUaWxlSGFybmVzcy53aXRoKGZpbHRlcikpKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBhcnJheSBvZiB0aWxlcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRUaWxlcyhcbiAgICBmaWx0ZXJzPzogU2t5VGlsZUhhcm5lc3NGaWx0ZXJzLFxuICApOiBQcm9taXNlPFNreVRpbGVIYXJuZXNzW10+IHtcbiAgICBjb25zdCB0aWxlcyA9IGF3YWl0IHRoaXMubG9jYXRvckZvckFsbChcbiAgICAgIFNreVRpbGVIYXJuZXNzLndpdGgoZmlsdGVycyB8fCB7fSksXG4gICAgKSgpO1xuXG4gICAgaWYgKHRpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBVbmFibGUgdG8gZmluZCBhbnkgdGlsZXMgd2l0aCBmaWx0ZXIocyk6ICR7SlNPTi5zdHJpbmdpZnkoZmlsdGVycyl9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGZpbmQgYW55IHRpbGVzLicpO1xuICAgIH1cbiAgICByZXR1cm4gdGlsZXM7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIGRhc2hib2FyZCBpcyBpbiBtdWx0aS1jb2x1bW4gbW9kZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc011bHRpQ29sdW1uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGhvc3QgPSBhd2FpdCB0aGlzLmhvc3QoKTtcblxuICAgIHJldHVybiBhd2FpdCBob3N0Lmhhc0NsYXNzKCdza3ktdGlsZS1kYXNoYm9hcmQtbXVsdGktY29sdW1uJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1oYXJuZXNzLWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGlsZXMvdGVzdGluZy9zcmMvbW9kdWxlcy90aWxlcy90aWxlLWhhcm5lc3MtZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5SGFybmVzc0ZpbHRlcnMgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuLyoqXG4gKiBBIHNldCBvZiBjcml0ZXJpYSB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbHRlciBhIGxpc3Qgb2YgYFNreVRpbGVIYXJuZXNzYCBpbnN0YW5jZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbmV4cG9ydCBpbnRlcmZhY2UgU2t5VGlsZUhhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgU2t5SGFybmVzc0ZpbHRlcnMge1xuICAvKipcbiAgICogT25seSBmaW5kIGluc3RhbmNlcyB3aG9zZSB0aXRsZSBtYXRjaGVzIHRoZSBnaXZlbiB2YWx1ZS5cbiAgICovXG4gIHRpdGxlVGV4dD86IHN0cmluZyB8IFJlZ0V4cDtcbn1cbiJdfQ==
@@ -0,0 +1,109 @@
1
+ import { HarnessPredicate } from '@angular/cdk/testing';
2
+ import { SkyComponentHarness } from '@skyux/core/testing';
3
+ import { SkyHelpInlineHarness } from '@skyux/help-inline/testing';
4
+ import { SkyChevronHarness } from '@skyux/indicators/testing';
5
+ import { SkyTileContentHarness } from './tile-content-harness';
6
+ /**
7
+ * Harness to interact with a tile component in tests.
8
+ */
9
+ export class SkyTileHarness extends SkyComponentHarness {
10
+ /**
11
+ * @internal
12
+ */
13
+ static { this.hostSelector = 'sky-tile'; }
14
+ #getChevron = this.locatorFor(SkyChevronHarness);
15
+ #getContent = this.locatorFor(SkyTileContentHarness);
16
+ #getTitle = this.locatorFor('sky-tile-title');
17
+ #getSummary = this.locatorFor('sky-tile-summary');
18
+ #getSettings = this.locatorForOptional('button.sky-tile-settings');
19
+ /**
20
+ * Gets a `HarnessPredicate` that can be used to search for a
21
+ * `SkyTileHarness` that meets certain criteria.
22
+ */
23
+ static with(filters) {
24
+ return SkyTileHarness.getDataSkyIdPredicate(filters).addOption('titleText', filters.titleText, async (harness, text) => {
25
+ const title = await harness.getTitleText();
26
+ return await HarnessPredicate.stringMatches(title, text);
27
+ });
28
+ }
29
+ /**
30
+ * Clicks the help inline button.
31
+ */
32
+ async clickHelpInline() {
33
+ await (await this.#getHelpInline()).click();
34
+ }
35
+ /**
36
+ * Clicks the settings button.
37
+ */
38
+ async clickSettingsButton() {
39
+ const settings = await this.#getSettings();
40
+ if (!settings) {
41
+ throw Error('No settings button found.');
42
+ }
43
+ await settings.click();
44
+ }
45
+ /**
46
+ * Collapses the tile, or does nothing if already collapsed.
47
+ */
48
+ async collapse() {
49
+ const chevron = await this.#getChevron();
50
+ if ((await chevron.getDirection()) === 'up') {
51
+ await chevron.toggle();
52
+ }
53
+ }
54
+ /**
55
+ * Expands the tile, or does nothing if already expanded.
56
+ */
57
+ async expand() {
58
+ const chevron = await this.#getChevron();
59
+ if ((await chevron.getDirection()) === 'down') {
60
+ await chevron.toggle();
61
+ }
62
+ }
63
+ /**
64
+ * Gets the help popover content.
65
+ */
66
+ async getHelpPopoverContent() {
67
+ const content = await (await this.#getHelpInline()).getPopoverContent();
68
+ return content;
69
+ }
70
+ /**
71
+ * Gets the help popover title.
72
+ */
73
+ async getHelpPopoverTitle() {
74
+ return await (await this.#getHelpInline()).getPopoverTitle();
75
+ }
76
+ /**
77
+ * Gets a harness for the tile content.
78
+ */
79
+ async getContent() {
80
+ return await this.#getContent();
81
+ }
82
+ /**
83
+ * Gets the tile summary text.
84
+ */
85
+ async getSummaryText() {
86
+ return await (await this.#getSummary()).text();
87
+ }
88
+ /**
89
+ * Gets the tile title text.
90
+ */
91
+ async getTitleText() {
92
+ return await (await this.#getTitle()).text();
93
+ }
94
+ /**
95
+ * Whether the tile is expanded.
96
+ */
97
+ async isExpanded() {
98
+ const chevron = await this.#getChevron();
99
+ return (await chevron.getDirection()) === 'up';
100
+ }
101
+ async #getHelpInline() {
102
+ const harness = await this.locatorForOptional(SkyHelpInlineHarness)();
103
+ if (harness) {
104
+ return harness;
105
+ }
106
+ throw Error('No help inline found.');
107
+ }
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RpbGVzL3Rlc3Rpbmcvc3JjL21vZHVsZXMvdGlsZXMvdGlsZS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRy9EOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxtQkFBbUI7SUFDckQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLFVBQVUsQ0FBQztJQUV4QyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pELFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDckQsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM5QyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xELFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUVuRTs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUE4QjtRQUU5QixPQUFPLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQzVELFdBQVcsRUFDWCxPQUFPLENBQUMsU0FBUyxFQUNqQixLQUFLLEVBQUUsT0FB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Q0FBQztJQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q2hldnJvbkhhcm5lc3MgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycy90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5VGlsZUNvbnRlbnRIYXJuZXNzIH0gZnJvbSAnLi90aWxlLWNvbnRlbnQtaGFybmVzcyc7XG5pbXBvcnQgeyBTa3lUaWxlSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3RpbGUtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIHRvIGludGVyYWN0IHdpdGggYSB0aWxlIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVRpbGVIYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS10aWxlJztcblxuICAjZ2V0Q2hldnJvbiA9IHRoaXMubG9jYXRvckZvcihTa3lDaGV2cm9uSGFybmVzcyk7XG4gICNnZXRDb250ZW50ID0gdGhpcy5sb2NhdG9yRm9yKFNreVRpbGVDb250ZW50SGFybmVzcyk7XG4gICNnZXRUaXRsZSA9IHRoaXMubG9jYXRvckZvcignc2t5LXRpbGUtdGl0bGUnKTtcbiAgI2dldFN1bW1hcnkgPSB0aGlzLmxvY2F0b3JGb3IoJ3NreS10aWxlLXN1bW1hcnknKTtcbiAgI2dldFNldHRpbmdzID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJ2J1dHRvbi5za3ktdGlsZS1zZXR0aW5ncycpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lUaWxlSGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreVRpbGVIYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lUaWxlSGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lUaWxlSGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycykuYWRkT3B0aW9uKFxuICAgICAgJ3RpdGxlVGV4dCcsXG4gICAgICBmaWx0ZXJzLnRpdGxlVGV4dCxcbiAgICAgIGFzeW5jIChoYXJuZXNzLCB0ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYXdhaXQgaGFybmVzcy5nZXRUaXRsZVRleHQoKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyh0aXRsZSwgdGV4dCk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBoZWxwIGlubGluZSBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tIZWxwSW5saW5lKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBzZXR0aW5ncyBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tTZXR0aW5nc0J1dHRvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IGF3YWl0IHRoaXMuI2dldFNldHRpbmdzKCk7XG5cbiAgICBpZiAoIXNldHRpbmdzKSB7XG4gICAgICB0aHJvdyBFcnJvcignTm8gc2V0dGluZ3MgYnV0dG9uIGZvdW5kLicpO1xuICAgIH1cblxuICAgIGF3YWl0IHNldHRpbmdzLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29sbGFwc2VzIHRoZSB0aWxlLCBvciBkb2VzIG5vdGhpbmcgaWYgYWxyZWFkeSBjb2xsYXBzZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY29sbGFwc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2hldnJvbiA9IGF3YWl0IHRoaXMuI2dldENoZXZyb24oKTtcbiAgICBpZiAoKGF3YWl0IGNoZXZyb24uZ2V0RGlyZWN0aW9uKCkpID09PSAndXAnKSB7XG4gICAgICBhd2FpdCBjaGV2cm9uLnRvZ2dsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIHRoZSB0aWxlLCBvciBkb2VzIG5vdGhpbmcgaWYgYWxyZWFkeSBleHBhbmRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBleHBhbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2hldnJvbiA9IGF3YWl0IHRoaXMuI2dldENoZXZyb24oKTtcbiAgICBpZiAoKGF3YWl0IGNoZXZyb24uZ2V0RGlyZWN0aW9uKCkpID09PSAnZG93bicpIHtcbiAgICAgIGF3YWl0IGNoZXZyb24udG9nZ2xlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlbHBQb3BvdmVyQ29udGVudCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyQ29udGVudCgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgcG9wb3ZlciB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWxwUG9wb3ZlclRpdGxlKCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmdldFBvcG92ZXJUaXRsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBoYXJuZXNzIGZvciB0aGUgdGlsZSBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldENvbnRlbnQoKTogUHJvbWlzZTxTa3lUaWxlQ29udGVudEhhcm5lc3M+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jZ2V0Q29udGVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRpbGUgc3VtbWFyeSB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFN1bW1hcnlUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRTdW1tYXJ5KCkpLnRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0aWxlIHRpdGxlIHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VGl0bGVUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRUaXRsZSgpKS50ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdGlsZSBpcyBleHBhbmRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0V4cGFuZGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNoZXZyb24gPSBhd2FpdCB0aGlzLiNnZXRDaGV2cm9uKCk7XG5cbiAgICByZXR1cm4gKGF3YWl0IGNoZXZyb24uZ2V0RGlyZWN0aW9uKCkpID09PSAndXAnO1xuICB9XG5cbiAgYXN5bmMgI2dldEhlbHBJbmxpbmUoKTogUHJvbWlzZTxTa3lIZWxwSW5saW5lSGFybmVzcz4ge1xuICAgIGNvbnN0IGhhcm5lc3MgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChTa3lIZWxwSW5saW5lSGFybmVzcykoKTtcblxuICAgIGlmIChoYXJuZXNzKSB7XG4gICAgICByZXR1cm4gaGFybmVzcztcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcignTm8gaGVscCBpbmxpbmUgZm91bmQuJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export { SkyTileContentHarness } from './modules/tiles/tile-content-harness';
2
+ export { SkyTileContentSectionHarness } from './modules/tiles/tile-content-section-harness';
3
+ export { SkyTileDashboardHarness } from './modules/tiles/tile-dashboard-harness';
4
+ export { SkyTileHarness } from './modules/tiles/tile-harness';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRTVGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWpGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNreVRpbGVDb250ZW50SGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy90aWxlcy90aWxlLWNvbnRlbnQtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lUaWxlQ29udGVudFNlY3Rpb25IYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL3RpbGVzL3RpbGUtY29udGVudC1zZWN0aW9uLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5VGlsZUNvbnRlbnRTZWN0aW9uSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvdGlsZXMvdGlsZS1jb250ZW50LXNlY3Rpb24taGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVRpbGVEYXNoYm9hcmRIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5VGlsZURhc2hib2FyZEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL3RpbGVzL3RpbGUtZGFzaGJvYXJkLWhhcm5lc3MtZmlsdGVycyc7XG5leHBvcnQgeyBTa3lUaWxlSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy90aWxlcy90aWxlLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5VGlsZUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL3RpbGVzL3RpbGUtaGFybmVzcy1maWx0ZXJzJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGlsZXMtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aWxlcy90ZXN0aW5nL3NyYy9za3l1eC10aWxlcy10ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,204 @@
1
+ import { SkyQueryableComponentHarness, SkyComponentHarness } from '@skyux/core/testing';
2
+ import { HarnessPredicate } from '@angular/cdk/testing';
3
+ import { SkyHelpInlineHarness } from '@skyux/help-inline/testing';
4
+ import { SkyChevronHarness } from '@skyux/indicators/testing';
5
+
6
+ /**
7
+ * Harness to interact with a tile content section component in tests.
8
+ */
9
+ class SkyTileContentSectionHarness extends SkyQueryableComponentHarness {
10
+ /**
11
+ * @internal
12
+ */
13
+ static { this.hostSelector = 'sky-tile-content-section'; }
14
+ /**
15
+ * Gets a `HarnessPredicate` that can be used to search for a
16
+ * `SkyTileContentSectionHarness` that meets certain criteria.
17
+ */
18
+ static with(filters) {
19
+ return SkyTileContentSectionHarness.getDataSkyIdPredicate(filters);
20
+ }
21
+ }
22
+
23
+ /**
24
+ * Harness to interact with a tile content component in tests.
25
+ */
26
+ class SkyTileContentHarness extends SkyQueryableComponentHarness {
27
+ /**
28
+ * @internal
29
+ */
30
+ static { this.hostSelector = 'sky-tile-content'; }
31
+ /**
32
+ * Gets a harness for a specific tile content section that meets certain criteria.
33
+ */
34
+ async getSection(filter) {
35
+ return await this.locatorFor(SkyTileContentSectionHarness.with(filter))();
36
+ }
37
+ /**
38
+ * Gets an array of tile content sections.
39
+ */
40
+ async getSections(filters) {
41
+ const sections = await this.locatorForAll(SkyTileContentSectionHarness.with(filters || {}))();
42
+ if (sections.length === 0) {
43
+ if (filters) {
44
+ throw new Error(`Unable to find any tile content sections with filter(s): ${JSON.stringify(filters)}`);
45
+ }
46
+ throw new Error('Unable to find any tile content sections.');
47
+ }
48
+ return sections;
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Harness to interact with a tile component in tests.
54
+ */
55
+ class SkyTileHarness extends SkyComponentHarness {
56
+ /**
57
+ * @internal
58
+ */
59
+ static { this.hostSelector = 'sky-tile'; }
60
+ #getChevron = this.locatorFor(SkyChevronHarness);
61
+ #getContent = this.locatorFor(SkyTileContentHarness);
62
+ #getTitle = this.locatorFor('sky-tile-title');
63
+ #getSummary = this.locatorFor('sky-tile-summary');
64
+ #getSettings = this.locatorForOptional('button.sky-tile-settings');
65
+ /**
66
+ * Gets a `HarnessPredicate` that can be used to search for a
67
+ * `SkyTileHarness` that meets certain criteria.
68
+ */
69
+ static with(filters) {
70
+ return SkyTileHarness.getDataSkyIdPredicate(filters).addOption('titleText', filters.titleText, async (harness, text) => {
71
+ const title = await harness.getTitleText();
72
+ return await HarnessPredicate.stringMatches(title, text);
73
+ });
74
+ }
75
+ /**
76
+ * Clicks the help inline button.
77
+ */
78
+ async clickHelpInline() {
79
+ await (await this.#getHelpInline()).click();
80
+ }
81
+ /**
82
+ * Clicks the settings button.
83
+ */
84
+ async clickSettingsButton() {
85
+ const settings = await this.#getSettings();
86
+ if (!settings) {
87
+ throw Error('No settings button found.');
88
+ }
89
+ await settings.click();
90
+ }
91
+ /**
92
+ * Collapses the tile, or does nothing if already collapsed.
93
+ */
94
+ async collapse() {
95
+ const chevron = await this.#getChevron();
96
+ if ((await chevron.getDirection()) === 'up') {
97
+ await chevron.toggle();
98
+ }
99
+ }
100
+ /**
101
+ * Expands the tile, or does nothing if already expanded.
102
+ */
103
+ async expand() {
104
+ const chevron = await this.#getChevron();
105
+ if ((await chevron.getDirection()) === 'down') {
106
+ await chevron.toggle();
107
+ }
108
+ }
109
+ /**
110
+ * Gets the help popover content.
111
+ */
112
+ async getHelpPopoverContent() {
113
+ const content = await (await this.#getHelpInline()).getPopoverContent();
114
+ return content;
115
+ }
116
+ /**
117
+ * Gets the help popover title.
118
+ */
119
+ async getHelpPopoverTitle() {
120
+ return await (await this.#getHelpInline()).getPopoverTitle();
121
+ }
122
+ /**
123
+ * Gets a harness for the tile content.
124
+ */
125
+ async getContent() {
126
+ return await this.#getContent();
127
+ }
128
+ /**
129
+ * Gets the tile summary text.
130
+ */
131
+ async getSummaryText() {
132
+ return await (await this.#getSummary()).text();
133
+ }
134
+ /**
135
+ * Gets the tile title text.
136
+ */
137
+ async getTitleText() {
138
+ return await (await this.#getTitle()).text();
139
+ }
140
+ /**
141
+ * Whether the tile is expanded.
142
+ */
143
+ async isExpanded() {
144
+ const chevron = await this.#getChevron();
145
+ return (await chevron.getDirection()) === 'up';
146
+ }
147
+ async #getHelpInline() {
148
+ const harness = await this.locatorForOptional(SkyHelpInlineHarness)();
149
+ if (harness) {
150
+ return harness;
151
+ }
152
+ throw Error('No help inline found.');
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Harness to interact with a tile dashboard component in tests.
158
+ */
159
+ class SkyTileDashboardHarness extends SkyQueryableComponentHarness {
160
+ /**
161
+ * @internal
162
+ */
163
+ static { this.hostSelector = 'sky-tile-dashboard'; }
164
+ /**
165
+ * Gets a `HarnessPredicate` that can be used to search for a
166
+ * `SkyTileDashboardHarness` that meets certain criteria.
167
+ */
168
+ static with(filters) {
169
+ return SkyTileDashboardHarness.getDataSkyIdPredicate(filters);
170
+ }
171
+ /**
172
+ * Gets a harness for a specific tile that meets certain criteria.
173
+ */
174
+ async getTile(filter) {
175
+ return await this.locatorFor(SkyTileHarness.with(filter))();
176
+ }
177
+ /**
178
+ * Gets an array of tiles.
179
+ */
180
+ async getTiles(filters) {
181
+ const tiles = await this.locatorForAll(SkyTileHarness.with(filters || {}))();
182
+ if (tiles.length === 0) {
183
+ if (filters) {
184
+ throw new Error(`Unable to find any tiles with filter(s): ${JSON.stringify(filters)}`);
185
+ }
186
+ throw new Error('Unable to find any tiles.');
187
+ }
188
+ return tiles;
189
+ }
190
+ /**
191
+ * Whether or not the dashboard is in multi-column mode.
192
+ */
193
+ async isMultiColumn() {
194
+ const host = await this.host();
195
+ return await host.hasClass('sky-tile-dashboard-multi-column');
196
+ }
197
+ }
198
+
199
+ /**
200
+ * Generated bundle index. Do not edit.
201
+ */
202
+
203
+ export { SkyTileContentHarness, SkyTileContentSectionHarness, SkyTileDashboardHarness, SkyTileHarness };
204
+ //# sourceMappingURL=skyux-tiles-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-tiles-testing.mjs","sources":["../../../../../libs/components/tiles/testing/src/modules/tiles/tile-content-section-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-content-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-dashboard-harness.ts","../../../../../libs/components/tiles/testing/src/skyux-tiles-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';\n\n/**\n * Harness to interact with a tile content section component in tests.\n */\nexport class SkyTileContentSectionHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-content-section';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileContentSectionHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileContentSectionHarnessFilters,\n ): HarnessPredicate<SkyTileContentSectionHarness> {\n return SkyTileContentSectionHarness.getDataSkyIdPredicate(filters);\n }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileContentSectionHarness } from './tile-content-section-harness';\nimport { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';\n\n/**\n * Harness to interact with a tile content component in tests.\n */\nexport class SkyTileContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-content';\n\n /**\n * Gets a harness for a specific tile content section that meets certain criteria.\n */\n public async getSection(\n filter: SkyTileContentSectionHarnessFilters,\n ): Promise<SkyTileContentSectionHarness> {\n return await this.locatorFor(SkyTileContentSectionHarness.with(filter))();\n }\n\n /**\n * Gets an array of tile content sections.\n */\n public async getSections(\n filters?: SkyTileContentSectionHarnessFilters,\n ): Promise<SkyTileContentSectionHarness[]> {\n const sections = await this.locatorForAll(\n SkyTileContentSectionHarness.with(filters || {}),\n )();\n\n if (sections.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any tile content sections with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any tile content sections.');\n }\n return sections;\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\nimport { SkyChevronHarness } from '@skyux/indicators/testing';\n\nimport { SkyTileContentHarness } from './tile-content-harness';\nimport { SkyTileHarnessFilters } from './tile-harness-filters';\n\n/**\n * Harness to interact with a tile component in tests.\n */\nexport class SkyTileHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile';\n\n #getChevron = this.locatorFor(SkyChevronHarness);\n #getContent = this.locatorFor(SkyTileContentHarness);\n #getTitle = this.locatorFor('sky-tile-title');\n #getSummary = this.locatorFor('sky-tile-summary');\n #getSettings = this.locatorForOptional('button.sky-tile-settings');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileHarnessFilters,\n ): HarnessPredicate<SkyTileHarness> {\n return SkyTileHarness.getDataSkyIdPredicate(filters).addOption(\n 'titleText',\n filters.titleText,\n async (harness, text) => {\n const title = await harness.getTitleText();\n return await HarnessPredicate.stringMatches(title, text);\n },\n );\n }\n\n /**\n * Clicks the help inline button.\n */\n public async clickHelpInline(): Promise<void> {\n await (await this.#getHelpInline()).click();\n }\n\n /**\n * Clicks the settings button.\n */\n public async clickSettingsButton(): Promise<void> {\n const settings = await this.#getSettings();\n\n if (!settings) {\n throw Error('No settings button found.');\n }\n\n await settings.click();\n }\n\n /**\n * Collapses the tile, or does nothing if already collapsed.\n */\n public async collapse(): Promise<void> {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'up') {\n await chevron.toggle();\n }\n }\n\n /**\n * Expands the tile, or does nothing if already expanded.\n */\n public async expand(): Promise<void> {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'down') {\n await chevron.toggle();\n }\n }\n\n /**\n * Gets the help popover content.\n */\n public async getHelpPopoverContent(): Promise<string | undefined> {\n const content = await (await this.#getHelpInline()).getPopoverContent();\n\n return content as string | undefined;\n }\n\n /**\n * Gets the help popover title.\n */\n public async getHelpPopoverTitle(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverTitle();\n }\n\n /**\n * Gets a harness for the tile content.\n */\n public async getContent(): Promise<SkyTileContentHarness> {\n return await this.#getContent();\n }\n\n /**\n * Gets the tile summary text.\n */\n public async getSummaryText(): Promise<string> {\n return await (await this.#getSummary()).text();\n }\n\n /**\n * Gets the tile title text.\n */\n public async getTitleText(): Promise<string> {\n return await (await this.#getTitle()).text();\n }\n\n /**\n * Whether the tile is expanded.\n */\n public async isExpanded(): Promise<boolean> {\n const chevron = await this.#getChevron();\n\n return (await chevron.getDirection()) === 'up';\n }\n\n async #getHelpInline(): Promise<SkyHelpInlineHarness> {\n const harness = await this.locatorForOptional(SkyHelpInlineHarness)();\n\n if (harness) {\n return harness;\n }\n\n throw Error('No help inline found.');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileDashboardHarnessFilters } from './tile-dashboard-harness-filters';\nimport { SkyTileHarness } from './tile-harness';\nimport { SkyTileHarnessFilters } from './tile-harness-filters';\n\n/**\n * Harness to interact with a tile dashboard component in tests.\n */\nexport class SkyTileDashboardHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-dashboard';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileDashboardHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileDashboardHarnessFilters,\n ): HarnessPredicate<SkyTileDashboardHarness> {\n return SkyTileDashboardHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets a harness for a specific tile that meets certain criteria.\n */\n public async getTile(filter: SkyTileHarnessFilters): Promise<SkyTileHarness> {\n return await this.locatorFor(SkyTileHarness.with(filter))();\n }\n\n /**\n * Gets an array of tiles.\n */\n public async getTiles(\n filters?: SkyTileHarnessFilters,\n ): Promise<SkyTileHarness[]> {\n const tiles = await this.locatorForAll(\n SkyTileHarness.with(filters || {}),\n )();\n\n if (tiles.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any tiles with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any tiles.');\n }\n return tiles;\n }\n\n /**\n * Whether or not the dashboard is in multi-column mode.\n */\n public async isMultiColumn(): Promise<boolean> {\n const host = await this.host();\n\n return await host.hasClass('sky-tile-dashboard-multi-column');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/tiles",
3
- "version": "11.36.2",
3
+ "version": "11.38.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -25,20 +25,27 @@
25
25
  "esm": "./esm2022/skyux-tiles.mjs",
26
26
  "default": "./fesm2022/skyux-tiles.mjs"
27
27
  },
28
+ "./testing": {
29
+ "types": "./testing/index.d.ts",
30
+ "esm2022": "./esm2022/testing/skyux-tiles-testing.mjs",
31
+ "esm": "./esm2022/testing/skyux-tiles-testing.mjs",
32
+ "default": "./fesm2022/skyux-tiles-testing.mjs"
33
+ },
28
34
  "./documentation.json": {
29
35
  "default": "./documentation.json"
30
36
  }
31
37
  },
32
38
  "peerDependencies": {
39
+ "@angular/cdk": "^18.2.14",
33
40
  "@angular/common": "^18.2.13",
34
41
  "@angular/core": "^18.2.13",
35
- "@skyux/animations": "11.36.2",
36
- "@skyux/core": "11.36.2",
37
- "@skyux/help-inline": "11.36.2",
38
- "@skyux/i18n": "11.36.2",
39
- "@skyux/icon": "11.36.2",
40
- "@skyux/indicators": "11.36.2",
41
- "@skyux/theme": "11.36.2"
42
+ "@skyux/animations": "11.38.0",
43
+ "@skyux/core": "11.38.0",
44
+ "@skyux/help-inline": "11.38.0",
45
+ "@skyux/i18n": "11.38.0",
46
+ "@skyux/icon": "11.38.0",
47
+ "@skyux/indicators": "11.38.0",
48
+ "@skyux/theme": "11.38.0"
42
49
  },
43
50
  "dependencies": {
44
51
  "@types/dragula": "2.1.36",
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@skyux/tiles/testing" />
5
+ export * from './public-api';
@@ -0,0 +1,20 @@
1
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
2
+ import { SkyTileContentSectionHarness } from './tile-content-section-harness';
3
+ import { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';
4
+ /**
5
+ * Harness to interact with a tile content component in tests.
6
+ */
7
+ export declare class SkyTileContentHarness extends SkyQueryableComponentHarness {
8
+ /**
9
+ * @internal
10
+ */
11
+ static hostSelector: string;
12
+ /**
13
+ * Gets a harness for a specific tile content section that meets certain criteria.
14
+ */
15
+ getSection(filter: SkyTileContentSectionHarnessFilters): Promise<SkyTileContentSectionHarness>;
16
+ /**
17
+ * Gets an array of tile content sections.
18
+ */
19
+ getSections(filters?: SkyTileContentSectionHarnessFilters): Promise<SkyTileContentSectionHarness[]>;
20
+ }
@@ -0,0 +1,6 @@
1
+ import { SkyHarnessFilters } from '@skyux/core/testing';
2
+ /**
3
+ * A set of criteria that can be used to filter a list of `SkyTileContentSectionHarness` instances.
4
+ */
5
+ export interface SkyTileContentSectionHarnessFilters extends SkyHarnessFilters {
6
+ }
@@ -0,0 +1,17 @@
1
+ import { HarnessPredicate } from '@angular/cdk/testing';
2
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
3
+ import { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';
4
+ /**
5
+ * Harness to interact with a tile content section component in tests.
6
+ */
7
+ export declare class SkyTileContentSectionHarness extends SkyQueryableComponentHarness {
8
+ /**
9
+ * @internal
10
+ */
11
+ static hostSelector: string;
12
+ /**
13
+ * Gets a `HarnessPredicate` that can be used to search for a
14
+ * `SkyTileContentSectionHarness` that meets certain criteria.
15
+ */
16
+ static with(filters: SkyTileContentSectionHarnessFilters): HarnessPredicate<SkyTileContentSectionHarness>;
17
+ }
@@ -0,0 +1,6 @@
1
+ import { SkyHarnessFilters } from '@skyux/core/testing';
2
+ /**
3
+ * A set of criteria that can be used to filter a list of `SkyTileDashboardHarness` instances.
4
+ */
5
+ export interface SkyTileDashboardHarnessFilters extends SkyHarnessFilters {
6
+ }
@@ -0,0 +1,31 @@
1
+ import { HarnessPredicate } from '@angular/cdk/testing';
2
+ import { SkyQueryableComponentHarness } from '@skyux/core/testing';
3
+ import { SkyTileDashboardHarnessFilters } from './tile-dashboard-harness-filters';
4
+ import { SkyTileHarness } from './tile-harness';
5
+ import { SkyTileHarnessFilters } from './tile-harness-filters';
6
+ /**
7
+ * Harness to interact with a tile dashboard component in tests.
8
+ */
9
+ export declare class SkyTileDashboardHarness extends SkyQueryableComponentHarness {
10
+ /**
11
+ * @internal
12
+ */
13
+ static hostSelector: string;
14
+ /**
15
+ * Gets a `HarnessPredicate` that can be used to search for a
16
+ * `SkyTileDashboardHarness` that meets certain criteria.
17
+ */
18
+ static with(filters: SkyTileDashboardHarnessFilters): HarnessPredicate<SkyTileDashboardHarness>;
19
+ /**
20
+ * Gets a harness for a specific tile that meets certain criteria.
21
+ */
22
+ getTile(filter: SkyTileHarnessFilters): Promise<SkyTileHarness>;
23
+ /**
24
+ * Gets an array of tiles.
25
+ */
26
+ getTiles(filters?: SkyTileHarnessFilters): Promise<SkyTileHarness[]>;
27
+ /**
28
+ * Whether or not the dashboard is in multi-column mode.
29
+ */
30
+ isMultiColumn(): Promise<boolean>;
31
+ }