@skyux/modals 11.22.0 → 11.24.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.
Files changed (46) hide show
  1. package/documentation.json +492 -417
  2. package/esm2022/testing/legacy/modal-fixture.mjs +143 -0
  3. package/esm2022/testing/modules/confirm/confirm-button-harness-filters.mjs +2 -0
  4. package/esm2022/testing/modules/confirm/confirm-button-harness.mjs +52 -0
  5. package/esm2022/testing/modules/confirm/confirm-harness.mjs +90 -0
  6. package/esm2022/testing/modules/confirm/confirm-testing.controller.mjs +7 -0
  7. package/esm2022/testing/{confirm → modules/confirm}/confirm-testing.module.mjs +1 -1
  8. package/esm2022/testing/modules/confirm/confirm-testing.service.mjs +101 -0
  9. package/esm2022/testing/modules/confirm/provide-confirm-testing.mjs +20 -0
  10. package/esm2022/testing/modules/modal/controller/modal-testing.controller.mjs +8 -0
  11. package/esm2022/testing/{modal → modules/modal}/controller/modal-testing.module.mjs +1 -1
  12. package/esm2022/testing/modules/modal/controller/modal-testing.service.mjs +60 -0
  13. package/esm2022/testing/modules/modal/controller/provide-modal-testing.mjs +20 -0
  14. package/esm2022/testing/modules/modal/modal-harness-filters.mjs +2 -0
  15. package/esm2022/testing/modules/modal/modal-harness.mjs +110 -0
  16. package/esm2022/testing/public-api.mjs +9 -9
  17. package/fesm2022/skyux-modals-testing.mjs +22 -16
  18. package/fesm2022/skyux-modals-testing.mjs.map +1 -1
  19. package/package.json +7 -7
  20. package/testing/public-api.d.ts +10 -10
  21. package/esm2022/testing/confirm/confirm-button-harness-filters.mjs +0 -2
  22. package/esm2022/testing/confirm/confirm-button-harness.mjs +0 -46
  23. package/esm2022/testing/confirm/confirm-harness.mjs +0 -90
  24. package/esm2022/testing/confirm/confirm-testing.controller.mjs +0 -7
  25. package/esm2022/testing/confirm/confirm-testing.service.mjs +0 -101
  26. package/esm2022/testing/confirm/provide-confirm-testing.mjs +0 -20
  27. package/esm2022/testing/modal/controller/modal-testing.controller.mjs +0 -8
  28. package/esm2022/testing/modal/controller/modal-testing.service.mjs +0 -60
  29. package/esm2022/testing/modal/controller/provide-modal-testing.mjs +0 -20
  30. package/esm2022/testing/modal/modal-harness-filters.mjs +0 -2
  31. package/esm2022/testing/modal/modal-harness.mjs +0 -110
  32. package/esm2022/testing/modal-fixture.mjs +0 -143
  33. /package/testing/{modal-fixture.d.ts → legacy/modal-fixture.d.ts} +0 -0
  34. /package/testing/{confirm → modules/confirm}/confirm-button-harness-filters.d.ts +0 -0
  35. /package/testing/{confirm → modules/confirm}/confirm-button-harness.d.ts +0 -0
  36. /package/testing/{confirm → modules/confirm}/confirm-harness.d.ts +0 -0
  37. /package/testing/{confirm → modules/confirm}/confirm-testing.controller.d.ts +0 -0
  38. /package/testing/{confirm → modules/confirm}/confirm-testing.module.d.ts +0 -0
  39. /package/testing/{confirm → modules/confirm}/confirm-testing.service.d.ts +0 -0
  40. /package/testing/{confirm → modules/confirm}/provide-confirm-testing.d.ts +0 -0
  41. /package/testing/{modal → modules/modal}/controller/modal-testing.controller.d.ts +0 -0
  42. /package/testing/{modal → modules/modal}/controller/modal-testing.module.d.ts +0 -0
  43. /package/testing/{modal → modules/modal}/controller/modal-testing.service.d.ts +0 -0
  44. /package/testing/{modal → modules/modal}/controller/provide-modal-testing.d.ts +0 -0
  45. /package/testing/{modal → modules/modal}/modal-harness-filters.d.ts +0 -0
  46. /package/testing/{modal → modules/modal}/modal-harness.d.ts +0 -0
@@ -1,90 +0,0 @@
1
- import { SkyComponentHarness } from '@skyux/core/testing';
2
- import { SkyConfirmType } from '@skyux/modals';
3
- import { SkyConfirmButtonHarness } from './confirm-button-harness';
4
- /**
5
- * Harness for interacting with a confirm component in tests.
6
- */
7
- export class SkyConfirmHarness extends SkyComponentHarness {
8
- static { this.hostSelector = 'sky-confirm'; }
9
- #getBodyEl = this.locatorForOptional('.sky-confirm-body');
10
- #getButtons = this.locatorForAll(SkyConfirmButtonHarness);
11
- #getConfirmEl = this.locatorFor('.sky-confirm');
12
- #getMessageEl = this.locatorFor('.sky-confirm-message');
13
- /**
14
- * Clicks a confirm button.
15
- */
16
- async clickCustomButton(filters) {
17
- const buttons = await this.getCustomButtons(filters);
18
- if (buttons.length > 1) {
19
- if (filters.text instanceof RegExp) {
20
- filters.text = filters.text.toString();
21
- }
22
- throw new Error(`More than one button matches the filter(s): ${JSON.stringify(filters)}.`);
23
- }
24
- await buttons[0].click();
25
- }
26
- /**
27
- * Clicks a confirm button.
28
- */
29
- async clickOkButton() {
30
- const type = await this.getType();
31
- if (type === SkyConfirmType.Custom) {
32
- throw new Error('Cannot click OK button on a confirm of type custom.');
33
- }
34
- const buttons = await this.#getButtons();
35
- await buttons[0].click();
36
- }
37
- /**
38
- * Gets the body of the confirm component.
39
- */
40
- async getBodyText() {
41
- return (await this.#getBodyEl())?.text();
42
- }
43
- /**
44
- * Gets the confirm component's custom buttons.
45
- */
46
- async getCustomButtons(filters) {
47
- const confirmType = await this.getType();
48
- if (confirmType === SkyConfirmType.OK) {
49
- throw new Error('Cannot get custom buttons for confirm of type OK.');
50
- }
51
- const harnesses = await this.#queryHarnesses(SkyConfirmButtonHarness.with(filters || {}));
52
- if (filters && harnesses.length === 0) {
53
- // Stringify the regular expression so that it's readable in the console log.
54
- if (filters.text instanceof RegExp) {
55
- filters.text = filters.text.toString();
56
- }
57
- throw new Error(`Could not find buttons matching filter(s): ${JSON.stringify(filters)}.`);
58
- }
59
- return harnesses;
60
- }
61
- /**
62
- * Gets the message of the confirm component.
63
- */
64
- async getMessageText() {
65
- return (await this.#getMessageEl()).text();
66
- }
67
- /**
68
- * Gets the type of the confirm component.
69
- */
70
- async getType() {
71
- const confirmEl = await this.#getConfirmEl();
72
- if (await confirmEl.hasClass('sky-confirm-type-ok')) {
73
- return SkyConfirmType.OK;
74
- }
75
- return SkyConfirmType.Custom;
76
- }
77
- /**
78
- * Whether the whitespace is preserved on the confirm component.
79
- */
80
- async isWhiteSpacePreserved() {
81
- return (await this.#getMessageEl()).hasClass('sky-confirm-preserve-white-space');
82
- }
83
- /**
84
- * Returns child harnesses.
85
- */
86
- async #queryHarnesses(harness) {
87
- return this.locatorForAll(harness)();
88
- }
89
- }
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy90ZXN0aW5nL3NyYy9jb25maXJtL2NvbmZpcm0taGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25FOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG1CQUFtQjthQUMxQyxpQkFBWSxHQUFHLGFBQWEsQ0FBQztJQUUzQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUQsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxRCxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoRCxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBRXhEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUM1QixPQUF1QztRQUV2QyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVyRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsSUFBSSxPQUFPLENBQUMsSUFBSSxZQUFZLE1BQU0sRUFBRSxDQUFDO2dCQUNuQyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsK0NBQStDLElBQUksQ0FBQyxTQUFTLENBQzNELE9BQU8sQ0FDUixHQUFHLENBQ0wsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsYUFBYTtRQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVsQyxJQUFJLElBQUksS0FBSyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QyxNQUFNLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsV0FBVztRQUN0QixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZ0JBQWdCLENBQzNCLE9BQXdDO1FBRXhDLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXpDLElBQUksV0FBVyxLQUFLLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FDMUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FDNUMsQ0FBQztRQUVGLElBQUksT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEMsNkVBQTZFO1lBQzdFLElBQUksT0FBTyxDQUFDLElBQUksWUFBWSxNQUFNLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLENBQUM7WUFFRCxNQUFNLElBQUksS0FBSyxDQUNiLDhDQUE4QyxJQUFJLENBQUMsU0FBUyxDQUMxRCxPQUFPLENBQ1IsR0FBRyxDQUNMLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGNBQWM7UUFDekIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0MsSUFBSSxNQUFNLFNBQVMsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxxQkFBcUI7UUFDaEMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUMxQyxrQ0FBa0MsQ0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQ25CLE9BQXdCO1FBRXhCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzLCBIYXJuZXNzUXVlcnkgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb25maXJtVHlwZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuXG5pbXBvcnQgeyBTa3lDb25maXJtQnV0dG9uSGFybmVzcyB9IGZyb20gJy4vY29uZmlybS1idXR0b24taGFybmVzcyc7XG5pbXBvcnQgeyBTa3lDb25maXJtQnV0dG9uSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL2NvbmZpcm0tYnV0dG9uLWhhcm5lc3MtZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIGNvbmZpcm0gY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5Q29uZmlybUhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LWNvbmZpcm0nO1xuXG4gICNnZXRCb2R5RWwgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnLnNreS1jb25maXJtLWJvZHknKTtcbiAgI2dldEJ1dHRvbnMgPSB0aGlzLmxvY2F0b3JGb3JBbGwoU2t5Q29uZmlybUJ1dHRvbkhhcm5lc3MpO1xuICAjZ2V0Q29uZmlybUVsID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWNvbmZpcm0nKTtcbiAgI2dldE1lc3NhZ2VFbCA9IHRoaXMubG9jYXRvckZvcignLnNreS1jb25maXJtLW1lc3NhZ2UnKTtcblxuICAvKipcbiAgICogQ2xpY2tzIGEgY29uZmlybSBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tDdXN0b21CdXR0b24oXG4gICAgZmlsdGVyczogU2t5Q29uZmlybUJ1dHRvbkhhcm5lc3NGaWx0ZXJzLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b25zID0gYXdhaXQgdGhpcy5nZXRDdXN0b21CdXR0b25zKGZpbHRlcnMpO1xuXG4gICAgaWYgKGJ1dHRvbnMubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKGZpbHRlcnMudGV4dCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICBmaWx0ZXJzLnRleHQgPSBmaWx0ZXJzLnRleHQudG9TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE1vcmUgdGhhbiBvbmUgYnV0dG9uIG1hdGNoZXMgdGhlIGZpbHRlcihzKTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICApfS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgYnV0dG9uc1swXS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyBhIGNvbmZpcm0gYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrT2tCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdHlwZSA9IGF3YWl0IHRoaXMuZ2V0VHlwZSgpO1xuXG4gICAgaWYgKHR5cGUgPT09IFNreUNvbmZpcm1UeXBlLkN1c3RvbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2xpY2sgT0sgYnV0dG9uIG9uIGEgY29uZmlybSBvZiB0eXBlIGN1c3RvbS4nKTtcbiAgICB9XG4gICAgY29uc3QgYnV0dG9ucyA9IGF3YWl0IHRoaXMuI2dldEJ1dHRvbnMoKTtcbiAgICBhd2FpdCBidXR0b25zWzBdLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYm9keSBvZiB0aGUgY29uZmlybSBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Qm9keVRleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldEJvZHlFbCgpKT8udGV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGNvbmZpcm0gY29tcG9uZW50J3MgY3VzdG9tIGJ1dHRvbnMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Q3VzdG9tQnV0dG9ucyhcbiAgICBmaWx0ZXJzPzogU2t5Q29uZmlybUJ1dHRvbkhhcm5lc3NGaWx0ZXJzLFxuICApOiBQcm9taXNlPFNreUNvbmZpcm1CdXR0b25IYXJuZXNzW10+IHtcbiAgICBjb25zdCBjb25maXJtVHlwZSA9IGF3YWl0IHRoaXMuZ2V0VHlwZSgpO1xuXG4gICAgaWYgKGNvbmZpcm1UeXBlID09PSBTa3lDb25maXJtVHlwZS5PSykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZ2V0IGN1c3RvbSBidXR0b25zIGZvciBjb25maXJtIG9mIHR5cGUgT0suJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFybmVzc2VzID0gYXdhaXQgdGhpcy4jcXVlcnlIYXJuZXNzZXMoXG4gICAgICBTa3lDb25maXJtQnV0dG9uSGFybmVzcy53aXRoKGZpbHRlcnMgfHwge30pLFxuICAgICk7XG5cbiAgICBpZiAoZmlsdGVycyAmJiBoYXJuZXNzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBTdHJpbmdpZnkgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBzbyB0aGF0IGl0J3MgcmVhZGFibGUgaW4gdGhlIGNvbnNvbGUgbG9nLlxuICAgICAgaWYgKGZpbHRlcnMudGV4dCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICBmaWx0ZXJzLnRleHQgPSBmaWx0ZXJzLnRleHQudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ291bGQgbm90IGZpbmQgYnV0dG9ucyBtYXRjaGluZyBmaWx0ZXIocyk6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgKX0uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhhcm5lc3NlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBtZXNzYWdlIG9mIHRoZSBjb25maXJtIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRNZXNzYWdlVGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0TWVzc2FnZUVsKCkpLnRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0eXBlIG9mIHRoZSBjb25maXJtIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRUeXBlKCk6IFByb21pc2U8U2t5Q29uZmlybVR5cGU+IHtcbiAgICBjb25zdCBjb25maXJtRWwgPSBhd2FpdCB0aGlzLiNnZXRDb25maXJtRWwoKTtcbiAgICBpZiAoYXdhaXQgY29uZmlybUVsLmhhc0NsYXNzKCdza3ktY29uZmlybS10eXBlLW9rJykpIHtcbiAgICAgIHJldHVybiBTa3lDb25maXJtVHlwZS5PSztcbiAgICB9XG5cbiAgICByZXR1cm4gU2t5Q29uZmlybVR5cGUuQ3VzdG9tO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHdoaXRlc3BhY2UgaXMgcHJlc2VydmVkIG9uIHRoZSBjb25maXJtIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc1doaXRlU3BhY2VQcmVzZXJ2ZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRNZXNzYWdlRWwoKSkuaGFzQ2xhc3MoXG4gICAgICAnc2t5LWNvbmZpcm0tcHJlc2VydmUtd2hpdGUtc3BhY2UnLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBjaGlsZCBoYXJuZXNzZXMuXG4gICAqL1xuICBhc3luYyAjcXVlcnlIYXJuZXNzZXM8VCBleHRlbmRzIENvbXBvbmVudEhhcm5lc3M+KFxuICAgIGhhcm5lc3M6IEhhcm5lc3NRdWVyeTxUPixcbiAgKTogUHJvbWlzZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yQWxsKGhhcm5lc3MpKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- /**
2
- * A controller to be injected into tests, which mocks the confirm service
3
- * and handles interactions with confirm dialogs.
4
- */
5
- export class SkyConfirmTestingController {
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS10ZXN0aW5nLmNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3Rlc3Rpbmcvc3JjL2NvbmZpcm0vY29uZmlybS10ZXN0aW5nLmNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQiwyQkFBMkI7Q0FzQmhEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5Q29uZmlybUNsb3NlRXZlbnRBcmdzLCBTa3lDb25maXJtQ29uZmlnIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbi8qKlxuICogQSBjb250cm9sbGVyIHRvIGJlIGluamVjdGVkIGludG8gdGVzdHMsIHdoaWNoIG1vY2tzIHRoZSBjb25maXJtIHNlcnZpY2VcbiAqIGFuZCBoYW5kbGVzIGludGVyYWN0aW9ucyB3aXRoIGNvbmZpcm0gZGlhbG9ncy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNreUNvbmZpcm1UZXN0aW5nQ29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGNvbmZpcm0gZGlhbG9nIHdpdGggdGhlIFwiY2FuY2VsXCIgYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGNhbmNlbCgpOiB2b2lkO1xuICAvKipcbiAgICogVGhyb3dzIGlmIGEgY29uZmlybSBkaWFsb2cgaXMgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBleHBlY3ROb25lKCk6IHZvaWQ7XG4gIC8qKlxuICAgKiBUaHJvd3MgaWYgdGhlIG9wZW4gY29uZmlybSBkaWFsb2cgZG9lcyBub3QgbWF0Y2ggdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBleHBlY3RPcGVuKGNvbmZpZzogU2t5Q29uZmlybUNvbmZpZyk6IHZvaWQ7XG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGNvbmZpcm0gZGlhbG9nIHdpdGggdGhlIHByb3ZpZGVkIGFjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZShhcmdzOiBTa3lDb25maXJtQ2xvc2VFdmVudEFyZ3MpOiB2b2lkO1xuICAvKipcbiAgICogQ2xvc2VzIHRoZSBjb25maXJtIGRpYWxvZyB3aXRoIHRoZSBcIm9rXCIgYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IG9rKCk6IHZvaWQ7XG59XG4iXX0=
@@ -1,101 +0,0 @@
1
- import { SkyConfirmInstance, SkyConfirmType, } from '@skyux/modals';
2
- import { SkyConfirmTestingController } from './confirm-testing.controller';
3
- function assertConfirmOpen(value) {
4
- if (value === undefined) {
5
- throw new Error('A confirm dialog is expected to be open but is closed.');
6
- }
7
- return;
8
- }
9
- function assertConfirmClosed(value) {
10
- if (value !== undefined) {
11
- throw new Error('A confirm dialog is expected to be closed but is open.');
12
- }
13
- return;
14
- }
15
- function isButtonConfigArray(val) {
16
- return (Array.isArray(val) && (val.length === 0 || val[0].action !== undefined));
17
- }
18
- function buttonConfigMatches(actual, expected) {
19
- return (expected.action === actual.action &&
20
- expected.text === actual.text &&
21
- expected.styleType === actual.styleType);
22
- }
23
- /**
24
- * @internal
25
- */
26
- export class SkyConfirmTestingService extends SkyConfirmTestingController {
27
- #testSubject;
28
- cancel() {
29
- this.close({ action: 'cancel' });
30
- }
31
- ok() {
32
- this.close({ action: 'ok' });
33
- }
34
- close(args) {
35
- assertConfirmOpen(this.#testSubject);
36
- const isActionPermitted = this.#testSubject?.buttons.some((b) => b.action === args.action);
37
- if (isActionPermitted) {
38
- this.#testSubject.instance.close(args);
39
- this.#testSubject = undefined;
40
- }
41
- else {
42
- throw new Error(`The confirm dialog does not have a button configured for the "${args.action}" action.`);
43
- }
44
- }
45
- expectNone() {
46
- assertConfirmClosed(this.#testSubject);
47
- }
48
- expectOpen(expectedConfig) {
49
- assertConfirmOpen(this.#testSubject);
50
- const actualConfig = this.#testSubject.config;
51
- for (const [key, expectedValue] of Object.entries(expectedConfig)) {
52
- const k = key;
53
- const actualValue = actualConfig[k];
54
- if (isButtonConfigArray(expectedValue) &&
55
- isButtonConfigArray(actualValue)) {
56
- if (expectedValue.length !== actualValue.length)
57
- throwDetailedError();
58
- expectedValue.forEach((expectedButton, index) => {
59
- if (!buttonConfigMatches(expectedButton, actualValue[index])) {
60
- throwDetailedError();
61
- }
62
- });
63
- }
64
- else if (actualValue !== expectedValue) {
65
- throwDetailedError();
66
- }
67
- }
68
- function throwDetailedError() {
69
- throw new Error(`Expected a confirm dialog to be open with a specific configuration.
70
- Expected:
71
- ${JSON.stringify(expectedConfig, undefined, 2)}
72
- Actual:
73
- ${JSON.stringify(actualConfig, undefined, 2)}
74
- `);
75
- }
76
- }
77
- open(config) {
78
- assertConfirmClosed(this.#testSubject);
79
- const instance = new SkyConfirmInstance();
80
- const testSubject = {
81
- buttons: [],
82
- config,
83
- instance,
84
- };
85
- switch (config.type) {
86
- case SkyConfirmType.Custom:
87
- config.buttons?.forEach((b) => {
88
- testSubject.buttons.push({ action: b.action, text: b.text });
89
- });
90
- break;
91
- case SkyConfirmType.OK:
92
- default:
93
- testSubject.buttons.push({ action: 'ok', text: 'Ok' });
94
- testSubject.buttons.push({ action: 'cancel', text: 'Cancel' });
95
- break;
96
- }
97
- this.#testSubject = testSubject;
98
- return instance;
99
- }
100
- }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS10ZXN0aW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3Rlc3Rpbmcvc3JjL2NvbmZpcm0vY29uZmlybS10ZXN0aW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLGtCQUFrQixFQUVsQixjQUFjLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFRM0UsU0FBUyxpQkFBaUIsQ0FDeEIsS0FBOEI7SUFFOUIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxPQUFPO0FBQ1QsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQzFCLEtBQThCO0lBRTlCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsT0FBTztBQUNULENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEdBQVk7SUFDdkMsT0FBTyxDQUNMLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUN4RSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQzFCLE1BQThCLEVBQzlCLFFBQWdDO0lBRWhDLE9BQU8sQ0FDTCxRQUFRLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNO1FBQ2pDLFFBQVEsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUk7UUFDN0IsUUFBUSxDQUFDLFNB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O1lBQ1gsTUFBTTtZQUNOLFFBQVE7U0FDVCxDQUFDO1FBRUYsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsS0FBSyxjQUFjLENBQUMsTUFBTTtnQkFDeEIsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDNUIsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQy9ELENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFFUixLQUFLLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDdkI7Z0JBQ0UsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQy9ELE1BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFFaEMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgU2t5Q29uZmlybUJ1dHRvbkNvbmZpZyxcbiAgU2t5Q29uZmlybUNsb3NlRXZlbnRBcmdzLFxuICBTa3lDb25maXJtQ29uZmlnLFxuICBTa3lDb25maXJtSW5zdGFuY2UsXG4gIFNreUNvbmZpcm1TZXJ2aWNlSW50ZXJmYWNlLFxuICBTa3lDb25maXJtVHlwZSxcbn0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFNreUNvbmZpcm1UZXN0aW5nQ29udHJvbGxlciB9IGZyb20gJy4vY29uZmlybS10ZXN0aW5nLmNvbnRyb2xsZXInO1xuXG5pbnRlcmZhY2UgVGVzdFN1YmplY3Qge1xuICBidXR0b25zOiBTa3lDb25maXJtQnV0dG9uQ29uZmlnW107XG4gIGNvbmZpZzogU2t5Q29uZmlybUNvbmZpZztcbiAgaW5zdGFuY2U6IFNreUNvbmZpcm1JbnN0YW5jZTtcbn1cblxuZnVuY3Rpb24gYXNzZXJ0Q29uZmlybU9wZW4oXG4gIHZhbHVlOiBUZXN0U3ViamVjdCB8IHVuZGVmaW5lZCxcbik6IGFzc2VydHMgdmFsdWUgaXMgVGVzdFN1YmplY3Qge1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQSBjb25maXJtIGRpYWxvZyBpcyBleHBlY3RlZCB0byBiZSBvcGVuIGJ1dCBpcyBjbG9zZWQuJyk7XG4gIH1cblxuICByZXR1cm47XG59XG5cbmZ1bmN0aW9uIGFzc2VydENvbmZpcm1DbG9zZWQoXG4gIHZhbHVlOiBUZXN0U3ViamVjdCB8IHVuZGVmaW5lZCxcbik6IGFzc2VydHMgdmFsdWUgaXMgdW5kZWZpbmVkIHtcbiAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0EgY29uZmlybSBkaWFsb2cgaXMgZXhwZWN0ZWQgdG8gYmUgY2xvc2VkIGJ1dCBpcyBvcGVuLicpO1xuICB9XG5cbiAgcmV0dXJuO1xufVxuXG5mdW5jdGlvbiBpc0J1dHRvbkNvbmZpZ0FycmF5KHZhbDogdW5rbm93bik6IHZhbCBpcyBTa3lDb25maXJtQnV0dG9uQ29uZmlnW10ge1xuICByZXR1cm4gKFxuICAgIEFycmF5LmlzQXJyYXkodmFsKSAmJiAodmFsLmxlbmd0aCA9PT0gMCB8fCB2YWxbMF0uYWN0aW9uICE9PSB1bmRlZmluZWQpXG4gICk7XG59XG5cbmZ1bmN0aW9uIGJ1dHRvbkNvbmZpZ01hdGNoZXMoXG4gIGFjdHVhbDogU2t5Q29uZmlybUJ1dHRvbkNvbmZpZyxcbiAgZXhwZWN0ZWQ6IFNreUNvbmZpcm1CdXR0b25Db25maWcsXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBleHBlY3RlZC5hY3Rpb24gPT09IGFjdHVhbC5hY3Rpb24gJiZcbiAgICBleHBlY3RlZC50ZXh0ID09PSBhY3R1YWwudGV4dCAmJlxuICAgIGV4cGVjdGVkLnN0eWxlVHlwZSA9PT0gYWN0dWFsLnN0eWxlVHlwZVxuICApO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5Q29uZmlybVRlc3RpbmdTZXJ2aWNlXG4gIGV4dGVuZHMgU2t5Q29uZmlybVRlc3RpbmdDb250cm9sbGVyXG4gIGltcGxlbWVudHMgU2t5Q29uZmlybVNlcnZpY2VJbnRlcmZhY2VcbntcbiAgI3Rlc3RTdWJqZWN0OiBUZXN0U3ViamVjdCB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoeyBhY3Rpb246ICdjYW5jZWwnIH0pO1xuICB9XG5cbiAgcHVibGljIG9rKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoeyBhY3Rpb246ICdvaycgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoYXJnczogU2t5Q29uZmlybUNsb3NlRXZlbnRBcmdzKTogdm9pZCB7XG4gICAgYXNzZXJ0Q29uZmlybU9wZW4odGhpcy4jdGVzdFN1YmplY3QpO1xuXG4gICAgY29uc3QgaXNBY3Rpb25QZXJtaXR0ZWQgPSB0aGlzLiN0ZXN0U3ViamVjdD8uYnV0dG9ucy5zb21lKFxuICAgICAgKGIpID0+IGIuYWN0aW9uID09PSBhcmdzLmFjdGlvbixcbiAgICApO1xuXG4gICAgaWYgKGlzQWN0aW9uUGVybWl0dGVkKSB7XG4gICAgICB0aGlzLiN0ZXN0U3ViamVjdC5pbnN0YW5jZS5jbG9zZShhcmdzKTtcbiAgICAgIHRoaXMuI3Rlc3RTdWJqZWN0ID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgY29uZmlybSBkaWFsb2cgZG9lcyBub3QgaGF2ZSBhIGJ1dHRvbiBjb25maWd1cmVkIGZvciB0aGUgXCIke2FyZ3MuYWN0aW9ufVwiIGFjdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZXhwZWN0Tm9uZSgpOiB2b2lkIHtcbiAgICBhc3NlcnRDb25maXJtQ2xvc2VkKHRoaXMuI3Rlc3RTdWJqZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBleHBlY3RPcGVuKGV4cGVjdGVkQ29uZmlnOiBTa3lDb25maXJtQ29uZmlnKTogdm9pZCB7XG4gICAgYXNzZXJ0Q29uZmlybU9wZW4odGhpcy4jdGVzdFN1YmplY3QpO1xuXG4gICAgY29uc3QgYWN0dWFsQ29uZmlnID0gdGhpcy4jdGVzdFN1YmplY3QuY29uZmlnO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCBleHBlY3RlZFZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhleHBlY3RlZENvbmZpZykpIHtcbiAgICAgIGNvbnN0IGsgPSBrZXkgYXMga2V5b2YgdHlwZW9mIGV4cGVjdGVkQ29uZmlnO1xuICAgICAgY29uc3QgYWN0dWFsVmFsdWUgPSBhY3R1YWxDb25maWdba107XG5cbiAgICAgIGlmIChcbiAgICAgICAgaXNCdXR0b25Db25maWdBcnJheShleHBlY3RlZFZhbHVlKSAmJlxuICAgICAgICBpc0J1dHRvbkNvbmZpZ0FycmF5KGFjdHVhbFZhbHVlKVxuICAgICAgKSB7XG4gICAgICAgIGlmIChleHBlY3RlZFZhbHVlLmxlbmd0aCAhPT0gYWN0dWFsVmFsdWUubGVuZ3RoKSB0aHJvd0RldGFpbGVkRXJyb3IoKTtcblxuICAgICAgICBleHBlY3RlZFZhbHVlLmZvckVhY2goKGV4cGVjdGVkQnV0dG9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGlmICghYnV0dG9uQ29uZmlnTWF0Y2hlcyhleHBlY3RlZEJ1dHRvbiwgYWN0dWFsVmFsdWVbaW5kZXhdKSkge1xuICAgICAgICAgICAgdGhyb3dEZXRhaWxlZEVycm9yKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0dWFsVmFsdWUgIT09IGV4cGVjdGVkVmFsdWUpIHtcbiAgICAgICAgdGhyb3dEZXRhaWxlZEVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdGhyb3dEZXRhaWxlZEVycm9yKCk6IG5ldmVyIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSBjb25maXJtIGRpYWxvZyB0byBiZSBvcGVuIHdpdGggYSBzcGVjaWZpYyBjb25maWd1cmF0aW9uLlxuRXhwZWN0ZWQ6XG4ke0pTT04uc3RyaW5naWZ5KGV4cGVjdGVkQ29uZmlnLCB1bmRlZmluZWQsIDIpfVxuQWN0dWFsOlxuJHtKU09OLnN0cmluZ2lmeShhY3R1YWxDb25maWcsIHVuZGVmaW5lZCwgMil9XG5gKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3Blbihjb25maWc6IFNreUNvbmZpcm1Db25maWcpOiBTa3lDb25maXJtSW5zdGFuY2Uge1xuICAgIGFzc2VydENvbmZpcm1DbG9zZWQodGhpcy4jdGVzdFN1YmplY3QpO1xuXG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgU2t5Q29uZmlybUluc3RhbmNlKCk7XG4gICAgY29uc3QgdGVzdFN1YmplY3Q6IFRlc3RTdWJqZWN0ID0ge1xuICAgICAgYnV0dG9uczogW10sXG4gICAgICBjb25maWcsXG4gICAgICBpbnN0YW5jZSxcbiAgICB9O1xuXG4gICAgc3dpdGNoIChjb25maWcudHlwZSkge1xuICAgICAgY2FzZSBTa3lDb25maXJtVHlwZS5DdXN0b206XG4gICAgICAgIGNvbmZpZy5idXR0b25zPy5mb3JFYWNoKChiKSA9PiB7XG4gICAgICAgICAgdGVzdFN1YmplY3QuYnV0dG9ucy5wdXNoKHsgYWN0aW9uOiBiLmFjdGlvbiwgdGV4dDogYi50ZXh0IH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2t5Q29uZmlybVR5cGUuT0s6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0ZXN0U3ViamVjdC5idXR0b25zLnB1c2goeyBhY3Rpb246ICdvaycsIHRleHQ6ICdPaycgfSk7XG4gICAgICAgIHRlc3RTdWJqZWN0LmJ1dHRvbnMucHVzaCh7IGFjdGlvbjogJ2NhbmNlbCcsIHRleHQ6ICdDYW5jZWwnIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLiN0ZXN0U3ViamVjdCA9IHRlc3RTdWJqZWN0O1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG59XG4iXX0=
@@ -1,20 +0,0 @@
1
- import { SkyConfirmService } from '@skyux/modals';
2
- import { SkyConfirmTestingController } from './confirm-testing.controller';
3
- import { SkyConfirmTestingService } from './confirm-testing.service';
4
- /**
5
- * @internal
6
- */
7
- export function provideConfirmTesting() {
8
- return [
9
- SkyConfirmTestingService,
10
- {
11
- provide: SkyConfirmService,
12
- useExisting: SkyConfirmTestingService,
13
- },
14
- {
15
- provide: SkyConfirmTestingController,
16
- useExisting: SkyConfirmTestingService,
17
- },
18
- ];
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1jb25maXJtLXRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3Rlc3Rpbmcvc3JjL2NvbmZpcm0vcHJvdmlkZS1jb25maXJtLXRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXJFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQjtJQUNuQyxPQUFPO1FBQ0wsd0JBQXdCO1FBQ3hCO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsd0JBQXdCO1NBQ3RDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFdBQVcsRUFBRSx3QkFBd0I7U0FDdEM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lDb25maXJtU2VydmljZSB9IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuXG5pbXBvcnQgeyBTa3lDb25maXJtVGVzdGluZ0NvbnRyb2xsZXIgfSBmcm9tICcuL2NvbmZpcm0tdGVzdGluZy5jb250cm9sbGVyJztcbmltcG9ydCB7IFNreUNvbmZpcm1UZXN0aW5nU2VydmljZSB9IGZyb20gJy4vY29uZmlybS10ZXN0aW5nLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNvbmZpcm1UZXN0aW5nKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIFNreUNvbmZpcm1UZXN0aW5nU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTa3lDb25maXJtU2VydmljZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBTa3lDb25maXJtVGVzdGluZ1NlcnZpY2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTa3lDb25maXJtVGVzdGluZ0NvbnRyb2xsZXIsXG4gICAgICB1c2VFeGlzdGluZzogU2t5Q29uZmlybVRlc3RpbmdTZXJ2aWNlLFxuICAgIH0sXG4gIF07XG59XG4iXX0=
@@ -1,8 +0,0 @@
1
- /**
2
- * A controller to be injected into tests, which mocks the modal service
3
- * and handles interactions with modal instances. For testing interactions
4
- * with the modal component itself, use the `SkyModalHarness`.
5
- */
6
- export class SkyModalTestingController {
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdGVzdGluZy5jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy90ZXN0aW5nL3NyYy9tb2RhbC9jb250cm9sbGVyL21vZGFsLXRlc3RpbmcuY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFnQix5QkFBeUI7Q0FxQjlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TW9kYWxDbG9zZUFyZ3MgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuLyoqXG4gKiBBIGNvbnRyb2xsZXIgdG8gYmUgaW5qZWN0ZWQgaW50byB0ZXN0cywgd2hpY2ggbW9ja3MgdGhlIG1vZGFsIHNlcnZpY2VcbiAqIGFuZCBoYW5kbGVzIGludGVyYWN0aW9ucyB3aXRoIG1vZGFsIGluc3RhbmNlcy4gRm9yIHRlc3RpbmcgaW50ZXJhY3Rpb25zXG4gKiB3aXRoIHRoZSBtb2RhbCBjb21wb25lbnQgaXRzZWxmLCB1c2UgdGhlIGBTa3lNb2RhbEhhcm5lc3NgLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2t5TW9kYWxUZXN0aW5nQ29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIHRvcG1vc3QgbW9kYWwgd2l0aCB0aGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgKiBAcGFyYW0gYXJncyBBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgbW9kYWwncyBjbG9zZSBldmVudC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBjbG9zZVRvcE1vZGFsKGFyZ3M/OiBTa3lNb2RhbENsb3NlQXJncyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRocm93cyBpZiB0aGUgcHJvdmlkZWQgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiBvcGVuIG1vZGFscy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBleHBlY3RDb3VudCh2YWx1ZTogbnVtYmVyKTogdm9pZDtcblxuICAvKipcbiAgICogVGhyb3dzIGlmIG1vZGFscyBhcmUgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBleHBlY3ROb25lKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRocm93cyBpZiB0aGUgZ2l2ZW4gY3JpdGVyaWEgZG9lcyBub3QgbWF0Y2ggdGhlIHRvcG1vc3Qgb3BlbiBtb2RhbC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBleHBlY3RPcGVuPFRDb21wb25lbnQ+KGNvbXBvbmVudDogVHlwZTxUQ29tcG9uZW50Pik6IHZvaWQ7XG59XG4iXX0=
@@ -1,60 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { SkyModalInstance, } from '@skyux/modals';
3
- import { SkyModalTestingController } from './modal-testing.controller';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * @internal
7
- */
8
- export class SkyModalTestingService extends SkyModalTestingController {
9
- #modals = new Map();
10
- ngOnDestroy() {
11
- for (const instance of this.#modals.keys()) {
12
- instance.close();
13
- }
14
- }
15
- closeTopModal(args) {
16
- const modal = this.#getTopmostModal();
17
- if (!modal) {
18
- throw new Error('Expected to close the topmost modal, but no modals are open.');
19
- }
20
- modal.instance.close(args?.data, args?.reason);
21
- }
22
- expectCount(value) {
23
- const count = this.#modals.size;
24
- if (count !== value) {
25
- throw new Error(`Expected ${value} open ${value === 1 ? 'modal' : 'modals'}, but ${count} ${count === 1 ? 'is' : 'are'} open.`);
26
- }
27
- }
28
- expectNone() {
29
- const count = this.#modals.size;
30
- if (count > 0) {
31
- throw new Error(`Expected no modals to be open, but there ${count === 1 ? 'is' : 'are'} ${count} open.`);
32
- }
33
- }
34
- expectOpen(component) {
35
- const modal = this.#getTopmostModal();
36
- if (!modal) {
37
- throw new Error('A modal is expected to be open, but no modals are open.');
38
- }
39
- if (modal.component !== component) {
40
- throw new Error(`Expected the topmost modal to be of type ${component.name}, but it is of type ${modal.component.name}.`);
41
- }
42
- }
43
- open(component, config) {
44
- const instance = new SkyModalInstance();
45
- instance.closed.subscribe(() => {
46
- this.#modals.delete(instance);
47
- });
48
- this.#modals.set(instance, { component, config, instance });
49
- return instance;
50
- }
51
- #getTopmostModal() {
52
- return Array.from(this.#modals.values()).pop();
53
- }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyModalTestingService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
55
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyModalTestingService }); }
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkyModalTestingService, decorators: [{
58
- type: Injectable
59
- }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdGVzdGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy90ZXN0aW5nL3NyYy9tb2RhbC9jb250cm9sbGVyL21vZGFsLXRlc3Rpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBR0wsZ0JBQWdCLEdBRWpCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQVF2RTs7R0FFRztBQUVILE1BQU0sT0FBTyxzQkFDWCxTQUFRLHlCQUF5QjtJQUd4QixPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7SUFFckQsV0FBVztRQUNoQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMzQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFTSxhQUFhLENBQUMsSUFBd0I7UUFDM0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FDYiw4REFBOEQsQ0FDL0QsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWE7UUFDOUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDaEMsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FDYixZQUFZLEtBQUssU0FBUyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsU0FBUyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FDL0csQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDYiw0Q0FBNEMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxRQUFRLENBQ3hGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBYSxTQUEyQjtRQUN2RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUNiLHlEQUF5RCxDQUMxRCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUNiLDRDQUE0QyxTQUFTLENBQUMsSUFBSSx1QkFBdUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FDekcsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0sSUFBSSxDQUNULFNBQTJCLEVBQzNCLE1BQTBEO1FBRTFELE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFNUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDakQsQ0FBQzs4R0F6RVUsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFN0YXRpY1Byb3ZpZGVyLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lNb2RhbENsb3NlQXJncyxcbiAgU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlLFxuICBTa3lNb2RhbEluc3RhbmNlLFxuICBTa3lNb2RhbFNlcnZpY2VJbnRlcmZhY2UsXG59IGZyb20gJ0Bza3l1eC9tb2RhbHMnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbFRlc3RpbmdDb250cm9sbGVyIH0gZnJvbSAnLi9tb2RhbC10ZXN0aW5nLmNvbnRyb2xsZXInO1xuXG5pbnRlcmZhY2UgVGVzdFN1YmplY3Q8VCA9IHVua25vd24+IHtcbiAgY29tcG9uZW50OiBUeXBlPFQ+O1xuICBjb25maWc6IFNreU1vZGFsQ29uZmlndXJhdGlvbkludGVyZmFjZSB8IFN0YXRpY1Byb3ZpZGVyW10gfCB1bmRlZmluZWQ7XG4gIGluc3RhbmNlOiBTa3lNb2RhbEluc3RhbmNlO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxUZXN0aW5nU2VydmljZVxuICBleHRlbmRzIFNreU1vZGFsVGVzdGluZ0NvbnRyb2xsZXJcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIFNreU1vZGFsU2VydmljZUludGVyZmFjZVxue1xuICByZWFkb25seSAjbW9kYWxzID0gbmV3IE1hcDxTa3lNb2RhbEluc3RhbmNlLCBUZXN0U3ViamVjdD4oKTtcblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiB0aGlzLiNtb2RhbHMua2V5cygpKSB7XG4gICAgICBpbnN0YW5jZS5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVRvcE1vZGFsKGFyZ3M/OiBTa3lNb2RhbENsb3NlQXJncyk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy4jZ2V0VG9wbW9zdE1vZGFsKCk7XG4gICAgaWYgKCFtb2RhbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRXhwZWN0ZWQgdG8gY2xvc2UgdGhlIHRvcG1vc3QgbW9kYWwsIGJ1dCBubyBtb2RhbHMgYXJlIG9wZW4uJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbW9kYWwuaW5zdGFuY2UuY2xvc2UoYXJncz8uZGF0YSwgYXJncz8ucmVhc29uKTtcbiAgfVxuXG4gIHB1YmxpYyBleHBlY3RDb3VudCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLiNtb2RhbHMuc2l6ZTtcbiAgICBpZiAoY291bnQgIT09IHZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFeHBlY3RlZCAke3ZhbHVlfSBvcGVuICR7dmFsdWUgPT09IDEgPyAnbW9kYWwnIDogJ21vZGFscyd9LCBidXQgJHtjb3VudH0gJHtjb3VudCA9PT0gMSA/ICdpcycgOiAnYXJlJ30gb3Blbi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZXhwZWN0Tm9uZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuI21vZGFscy5zaXplO1xuICAgIGlmIChjb3VudCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIG5vIG1vZGFscyB0byBiZSBvcGVuLCBidXQgdGhlcmUgJHtjb3VudCA9PT0gMSA/ICdpcycgOiAnYXJlJ30gJHtjb3VudH0gb3Blbi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZXhwZWN0T3BlbjxUQ29tcG9uZW50Pihjb21wb25lbnQ6IFR5cGU8VENvbXBvbmVudD4pOiB2b2lkIHtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuI2dldFRvcG1vc3RNb2RhbCgpO1xuICAgIGlmICghbW9kYWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0EgbW9kYWwgaXMgZXhwZWN0ZWQgdG8gYmUgb3BlbiwgYnV0IG5vIG1vZGFscyBhcmUgb3Blbi4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobW9kYWwuY29tcG9uZW50ICE9PSBjb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIHRoZSB0b3Btb3N0IG1vZGFsIHRvIGJlIG9mIHR5cGUgJHtjb21wb25lbnQubmFtZX0sIGJ1dCBpdCBpcyBvZiB0eXBlICR7bW9kYWwuY29tcG9uZW50Lm5hbWV9LmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuPFRDb21wb25lbnQ+KFxuICAgIGNvbXBvbmVudDogVHlwZTxUQ29tcG9uZW50PixcbiAgICBjb25maWc/OiBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2UgfCBTdGF0aWNQcm92aWRlcltdLFxuICApOiBTa3lNb2RhbEluc3RhbmNlIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBTa3lNb2RhbEluc3RhbmNlKCk7XG5cbiAgICBpbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuI21vZGFscy5kZWxldGUoaW5zdGFuY2UpO1xuICAgIH0pO1xuXG4gICAgdGhpcy4jbW9kYWxzLnNldChpbnN0YW5jZSwgeyBjb21wb25lbnQsIGNvbmZpZywgaW5zdGFuY2UgfSk7XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAjZ2V0VG9wbW9zdE1vZGFsKCk6IFRlc3RTdWJqZWN0IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLiNtb2RhbHMudmFsdWVzKCkpLnBvcCgpO1xuICB9XG59XG4iXX0=
@@ -1,20 +0,0 @@
1
- import { SkyModalService } from '@skyux/modals';
2
- import { SkyModalTestingController } from './modal-testing.controller';
3
- import { SkyModalTestingService } from './modal-testing.service';
4
- /**
5
- * @internal
6
- */
7
- export function provideModalTesting() {
8
- return [
9
- SkyModalTestingService,
10
- {
11
- provide: SkyModalService,
12
- useExisting: SkyModalTestingService,
13
- },
14
- {
15
- provide: SkyModalTestingController,
16
- useExisting: SkyModalTestingService,
17
- },
18
- ];
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1tb2RhbC10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy90ZXN0aW5nL3NyYy9tb2RhbC9jb250cm9sbGVyL3Byb3ZpZGUtbW9kYWwtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPO1FBQ0wsc0JBQXNCO1FBQ3RCO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsV0FBVyxFQUFFLHNCQUFzQjtTQUNwQztRQUNEO1lBQ0UsT0FBTyxFQUFFLHlCQUF5QjtZQUNsQyxXQUFXLEVBQUUsc0JBQXNCO1NBQ3BDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFNreU1vZGFsVGVzdGluZ0NvbnRyb2xsZXIgfSBmcm9tICcuL21vZGFsLXRlc3RpbmcuY29udHJvbGxlcic7XG5pbXBvcnQgeyBTa3lNb2RhbFRlc3RpbmdTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC10ZXN0aW5nLnNlcnZpY2UnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU1vZGFsVGVzdGluZygpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICBTa3lNb2RhbFRlc3RpbmdTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNreU1vZGFsU2VydmljZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBTa3lNb2RhbFRlc3RpbmdTZXJ2aWNlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5TW9kYWxUZXN0aW5nQ29udHJvbGxlcixcbiAgICAgIHVzZUV4aXN0aW5nOiBTa3lNb2RhbFRlc3RpbmdTZXJ2aWNlLFxuICAgIH0sXG4gIF07XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaGFybmVzcy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy90ZXN0aW5nL3NyYy9tb2RhbC9tb2RhbC1oYXJuZXNzLWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbi8qKlxuICogQSBzZXQgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgYSBsaXN0IG9mIFNreU1vZGFsSGFybmVzcyBpbnN0YW5jZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbmV4cG9ydCBpbnRlcmZhY2UgU2t5TW9kYWxIYXJuZXNzRmlsdGVycyBleHRlbmRzIFNreUhhcm5lc3NGaWx0ZXJzIHt9XG4iXX0=
@@ -1,110 +0,0 @@
1
- import { SkyComponentHarness } from '@skyux/core/testing';
2
- import { SkyHelpInlineHarness } from '@skyux/help-inline/testing';
3
- /**
4
- * Harness for interacting with a modal component in tests.
5
- */
6
- export class SkyModalHarness extends SkyComponentHarness {
7
- /**
8
- * @internal
9
- */
10
- static { this.hostSelector = 'sky-modal'; }
11
- #getModal = this.locatorFor('.sky-modal');
12
- #getModalDialog = this.locatorFor('.sky-modal-dialog');
13
- #getModalHeading = this.locatorFor('.sky-modal-heading');
14
- /**
15
- * Gets a `HarnessPredicate` that can be used to search for a
16
- * `SkyModalHarness` that meets certain criteria
17
- */
18
- static with(filters) {
19
- return SkyModalHarness.getDataSkyIdPredicate(filters);
20
- }
21
- /**
22
- * Clicks the help inline button.
23
- */
24
- async clickHelpInline() {
25
- return (await this.#getHelpInline()).click();
26
- }
27
- /**
28
- * Gets the aria-describedBy property of the modal.
29
- * @deprecated
30
- */
31
- async getAriaDescribedBy() {
32
- return (await this.#getModalDialog()).getAttribute('aria-describedby');
33
- }
34
- /**
35
- * Gets the aria-labelledBy property of the modal.
36
- * @deprecated
37
- */
38
- async getAriaLabelledBy() {
39
- return (await this.#getModalDialog()).getAttribute('aria-labelledby');
40
- }
41
- /**
42
- * Gets the role of the modal.
43
- */
44
- async getAriaRole() {
45
- return (await this.#getModalDialog()).getAttribute('role');
46
- }
47
- /**
48
- * Gets the modal's heading text.
49
- */
50
- async getHeadingText() {
51
- return (await this.#getModalHeading()).text();
52
- }
53
- /**
54
- * Gets the help popover content.
55
- */
56
- async getHelpPopoverContent() {
57
- return (await this.#getHelpInline()).getPopoverContent();
58
- }
59
- /**
60
- * Gets the help popover title.
61
- */
62
- async getHelpPopoverTitle() {
63
- return (await this.#getHelpInline()).getPopoverTitle();
64
- }
65
- /**
66
- * Gets the modal size.
67
- */
68
- async getSize() {
69
- if (await this.isFullPage()) {
70
- throw new Error('Size cannot be determined because size property is overridden when modal is full page');
71
- }
72
- const modal = await this.#getModal();
73
- if (await modal.hasClass('sky-modal-small')) {
74
- return 'small';
75
- }
76
- if (await modal.hasClass('sky-modal-large')) {
77
- return 'large';
78
- }
79
- return 'medium';
80
- }
81
- /**
82
- * Gets the wrapper class of the modal.
83
- */
84
- async getWrapperClass() {
85
- return await (await this.host()).getProperty('className');
86
- }
87
- /**
88
- * Whether the modal is full page.
89
- */
90
- async isFullPage() {
91
- const modal = this.#getModal();
92
- return (await modal).hasClass('sky-modal-full-page');
93
- }
94
- /**
95
- * Whether the modal has {@link SkyModalIsDirtyDirective.isDirty} set to dirty.
96
- */
97
- async isDirty() {
98
- const modalHost = await this.host();
99
- const isDirtyAttribute = await modalHost.getAttribute('data-sky-modal-is-dirty');
100
- return isDirtyAttribute === 'true';
101
- }
102
- async #getHelpInline() {
103
- const harness = await this.locatorForOptional(SkyHelpInlineHarness)();
104
- if (harness) {
105
- return harness;
106
- }
107
- throw Error('No help inline found.');
108
- }
109
- }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvdGVzdGluZy9zcmMvbW9kYWwvbW9kYWwtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUlsRTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUN0RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsV0FBVyxDQUFDO0lBRXpDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdkQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXpEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQStCO1FBRS9CLE9BQU8sZUFBZSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsaUJBQWlCO1FBQzVCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsY0FBYztRQUN6QixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxxQkFBcUI7UUFHaEMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CO1FBQzlCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLElBQUksTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksS0FBSyxDQUNiLHVGQUF1RixDQUN4RixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXJDLElBQUksTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLFNBQVMsQ0FBQyxZQUFZLENBQ25ELHlCQUF5QixDQUMxQixDQUFDO1FBQ0YsT0FBTyxnQkFBZ0IsS0FBSyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztRQUV0RSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5SGVscElubGluZUhhcm5lc3MgfSBmcm9tICdAc2t5dXgvaGVscC1pbmxpbmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreU1vZGFsSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZGFsLWhhcm5lc3MtZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIG1vZGFsIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreU1vZGFsSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktbW9kYWwnO1xuXG4gICNnZXRNb2RhbCA9IHRoaXMubG9jYXRvckZvcignLnNreS1tb2RhbCcpO1xuICAjZ2V0TW9kYWxEaWFsb2cgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktbW9kYWwtZGlhbG9nJyk7XG4gICNnZXRNb2RhbEhlYWRpbmcgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktbW9kYWwtaGVhZGluZycpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lNb2RhbEhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreU1vZGFsSGFybmVzc0ZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5TW9kYWxIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreU1vZGFsSGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBoZWxwIGlubGluZSBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tIZWxwSW5saW5lKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFyaWEtZGVzY3JpYmVkQnkgcHJvcGVydHkgb2YgdGhlIG1vZGFsLlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEFyaWFEZXNjcmliZWRCeSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldE1vZGFsRGlhbG9nKCkpLmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFyaWEtbGFiZWxsZWRCeSBwcm9wZXJ0eSBvZiB0aGUgbW9kYWwuXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYUxhYmVsbGVkQnkoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRNb2RhbERpYWxvZygpKS5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJvbGUgb2YgdGhlIG1vZGFsLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEFyaWFSb2xlKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy4jZ2V0TW9kYWxEaWFsb2coKSkuZ2V0QXR0cmlidXRlKCdyb2xlJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbW9kYWwncyBoZWFkaW5nIHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ1RleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldE1vZGFsSGVhZGluZygpKS50ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaGVscCBwb3BvdmVyIGNvbnRlbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVscFBvcG92ZXJDb250ZW50KCk6IFByb21pc2U8XG4gICAgVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBzdHJpbmcgfCB1bmRlZmluZWRcbiAgPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmdldFBvcG92ZXJDb250ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaGVscCBwb3BvdmVyIHRpdGxlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlbHBQb3BvdmVyVGl0bGUoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldEhlbHBJbmxpbmUoKSkuZ2V0UG9wb3ZlclRpdGxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbW9kYWwgc2l6ZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTaXplKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKGF3YWl0IHRoaXMuaXNGdWxsUGFnZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdTaXplIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJlY2F1c2Ugc2l6ZSBwcm9wZXJ0eSBpcyBvdmVycmlkZGVuIHdoZW4gbW9kYWwgaXMgZnVsbCBwYWdlJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kYWwgPSBhd2FpdCB0aGlzLiNnZXRNb2RhbCgpO1xuXG4gICAgaWYgKGF3YWl0IG1vZGFsLmhhc0NsYXNzKCdza3ktbW9kYWwtc21hbGwnKSkge1xuICAgICAgcmV0dXJuICdzbWFsbCc7XG4gICAgfVxuXG4gICAgaWYgKGF3YWl0IG1vZGFsLmhhc0NsYXNzKCdza3ktbW9kYWwtbGFyZ2UnKSkge1xuICAgICAgcmV0dXJuICdsYXJnZSc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdtZWRpdW0nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHdyYXBwZXIgY2xhc3Mgb2YgdGhlIG1vZGFsLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFdyYXBwZXJDbGFzcygpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy5ob3N0KCkpLmdldFByb3BlcnR5KCdjbGFzc05hbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBtb2RhbCBpcyBmdWxsIHBhZ2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNGdWxsUGFnZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuI2dldE1vZGFsKCk7XG4gICAgcmV0dXJuIChhd2FpdCBtb2RhbCkuaGFzQ2xhc3MoJ3NreS1tb2RhbC1mdWxsLXBhZ2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBtb2RhbCBoYXMge0BsaW5rIFNreU1vZGFsSXNEaXJ0eURpcmVjdGl2ZS5pc0RpcnR5fSBzZXQgdG8gZGlydHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNEaXJ0eSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBtb2RhbEhvc3QgPSBhd2FpdCB0aGlzLmhvc3QoKTtcbiAgICBjb25zdCBpc0RpcnR5QXR0cmlidXRlID0gYXdhaXQgbW9kYWxIb3N0LmdldEF0dHJpYnV0ZShcbiAgICAgICdkYXRhLXNreS1tb2RhbC1pcy1kaXJ0eScsXG4gICAgKTtcbiAgICByZXR1cm4gaXNEaXJ0eUF0dHJpYnV0ZSA9PT0gJ3RydWUnO1xuICB9XG5cbiAgYXN5bmMgI2dldEhlbHBJbmxpbmUoKTogUHJvbWlzZTxTa3lIZWxwSW5saW5lSGFybmVzcz4ge1xuICAgIGNvbnN0IGhhcm5lc3MgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChTa3lIZWxwSW5saW5lSGFybmVzcykoKTtcblxuICAgIGlmIChoYXJuZXNzKSB7XG4gICAgICByZXR1cm4gaGFybmVzcztcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcignTm8gaGVscCBpbmxpbmUgZm91bmQuJyk7XG4gIH1cbn1cbiJdfQ==