@skyux/modals 8.7.2 → 9.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +56 -56
- package/esm2022/lib/modules/confirm/confirm.component.mjs +112 -0
- package/{esm2020 → esm2022}/lib/modules/confirm/confirm.module.mjs +13 -13
- package/esm2022/lib/modules/confirm/confirm.service.mjs +54 -0
- package/esm2022/lib/modules/modal/modal-adapter.service.mjs +99 -0
- package/esm2022/lib/modules/modal/modal-component-adapter.service.mjs +101 -0
- package/{esm2020 → esm2022}/lib/modules/modal/modal-configuration.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/modal/modal-content.component.mjs +4 -4
- package/esm2022/lib/modules/modal/modal-errors.service.mjs +21 -0
- package/{esm2020 → esm2022}/lib/modules/modal/modal-footer.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/modal/modal-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context.mjs +4 -4
- package/esm2022/lib/modules/modal/modal-host.component.mjs +163 -0
- package/esm2022/lib/modules/modal/modal-host.service.mjs +62 -0
- package/esm2022/lib/modules/modal/modal-instance.mjs +123 -0
- package/esm2022/lib/modules/modal/modal-is-dirty.directive.mjs +94 -0
- package/esm2022/lib/modules/modal/modal-scroll-shadow.directive.mjs +129 -0
- package/esm2022/lib/modules/modal/modal.component.mjs +229 -0
- package/{esm2020 → esm2022}/lib/modules/modal/modal.module.mjs +29 -29
- package/esm2022/lib/modules/modal/modal.service.mjs +97 -0
- package/esm2022/lib/modules/shared/sky-modals-resources.module.mjs +61 -0
- package/esm2022/testing/confirm/confirm-button-harness.mjs +46 -0
- package/esm2022/testing/confirm/confirm-harness.mjs +90 -0
- package/esm2022/testing/modal/modal-harness.mjs +75 -0
- package/esm2022/testing/modal-fixture.mjs +143 -0
- package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs +60 -73
- package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs.map +1 -1
- package/fesm2022/skyux-modals.mjs +1502 -0
- package/{fesm2015 → fesm2022}/skyux-modals.mjs.map +1 -1
- package/lib/modules/modal/modal-is-dirty.directive.d.ts +1 -1
- package/lib/modules/modal/modal.component.d.ts +1 -1
- package/package.json +16 -24
- package/esm2020/lib/modules/confirm/confirm.component.mjs +0 -114
- package/esm2020/lib/modules/confirm/confirm.service.mjs +0 -57
- package/esm2020/lib/modules/modal/modal-adapter.service.mjs +0 -101
- package/esm2020/lib/modules/modal/modal-component-adapter.service.mjs +0 -104
- package/esm2020/lib/modules/modal/modal-errors.service.mjs +0 -24
- package/esm2020/lib/modules/modal/modal-host.component.mjs +0 -164
- package/esm2020/lib/modules/modal/modal-host.service.mjs +0 -65
- package/esm2020/lib/modules/modal/modal-instance.mjs +0 -127
- package/esm2020/lib/modules/modal/modal-is-dirty.directive.mjs +0 -93
- package/esm2020/lib/modules/modal/modal-scroll-shadow.directive.mjs +0 -127
- package/esm2020/lib/modules/modal/modal.component.mjs +0 -228
- package/esm2020/lib/modules/modal/modal.service.mjs +0 -99
- package/esm2020/lib/modules/shared/sky-modals-resources.module.mjs +0 -61
- package/esm2020/testing/confirm/confirm-button-harness.mjs +0 -46
- package/esm2020/testing/confirm/confirm-harness.mjs +0 -97
- package/esm2020/testing/modal/modal-harness.mjs +0 -81
- package/esm2020/testing/modal-fixture.mjs +0 -145
- package/fesm2015/skyux-modals-testing.mjs +0 -409
- package/fesm2015/skyux-modals-testing.mjs.map +0 -1
- package/fesm2015/skyux-modals.mjs +0 -1522
- package/fesm2020/skyux-modals.mjs +0 -1510
- package/fesm2020/skyux-modals.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-style-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-closed-event-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-instance.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-before-close-handler.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-close-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal-scroll-shadow-event-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/modal/modal.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-modals.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/confirm/confirm-button-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/modal/modal-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/skyux-modals-testing.mjs +0 -0
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NOTICE: DO NOT MODIFY THIS FILE!
|
|
3
|
-
* The contents of this file were automatically generated by
|
|
4
|
-
* the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-modals' schematic.
|
|
5
|
-
* To update this file, simply rerun the command.
|
|
6
|
-
*/
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
const RESOURCES = {
|
|
11
|
-
'EN-US': {
|
|
12
|
-
skyux_confirm_dialog_default_ok_text: { message: 'OK' },
|
|
13
|
-
skyux_confirm_dialog_default_yes_text: { message: 'Yes' },
|
|
14
|
-
skyux_confirm_dialog_default_no_text: { message: 'No' },
|
|
15
|
-
skyux_confirm_dialog_default_cancel_text: { message: 'Cancel' },
|
|
16
|
-
skyux_modal_close: { message: 'Close modal' },
|
|
17
|
-
skyux_modal_open_help: { message: 'Open Help' },
|
|
18
|
-
skyux_modal_footer_cancel_button: { message: 'Cancel' },
|
|
19
|
-
skyux_modal_footer_primary_button: { message: 'Save' },
|
|
20
|
-
skyux_modal_dirty_default_message: {
|
|
21
|
-
message: 'Are you sure you want to discard your changes?',
|
|
22
|
-
},
|
|
23
|
-
skyux_modal_dirty_default_discard_changes_text: {
|
|
24
|
-
message: 'Discard changes',
|
|
25
|
-
},
|
|
26
|
-
skyux_modal_dirty_default_keep_working_text: { message: 'Keep working' },
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
export class SkyModalsResourcesProvider {
|
|
30
|
-
getString(localeInfo, name) {
|
|
31
|
-
return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Import into any component library module that needs to use resource strings.
|
|
36
|
-
*/
|
|
37
|
-
export class SkyModalsResourcesModule {
|
|
38
|
-
}
|
|
39
|
-
SkyModalsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
40
|
-
SkyModalsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyModalsResourcesModule, exports: [SkyI18nModule] });
|
|
41
|
-
SkyModalsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalsResourcesModule, providers: [
|
|
42
|
-
{
|
|
43
|
-
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
44
|
-
useClass: SkyModalsResourcesProvider,
|
|
45
|
-
multi: true,
|
|
46
|
-
},
|
|
47
|
-
], imports: [SkyI18nModule] });
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalsResourcesModule, decorators: [{
|
|
49
|
-
type: NgModule,
|
|
50
|
-
args: [{
|
|
51
|
-
exports: [SkyI18nModule],
|
|
52
|
-
providers: [
|
|
53
|
-
{
|
|
54
|
-
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
55
|
-
useClass: SkyModalsResourcesProvider,
|
|
56
|
-
multi: true,
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
}]
|
|
60
|
-
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LW1vZGFscy1yZXNvdXJjZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3NreS1tb2RhbHMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1Asb0NBQW9DLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1FBQ3ZELHFDQUFxQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtRQUN6RCxvQ0FBb0MsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7UUFDdkQsd0NBQXdDLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO1FBQy9ELGlCQUFpQixFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRTtRQUM3QyxxQkFBcUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7UUFDL0MsZ0NBQWdDLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO1FBQ3ZELGlDQUFpQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUN0RCxpQ0FBaUMsRUFBRTtZQUNqQyxPQUFPLEVBQUUsZ0RBQWdEO1NBQzFEO1FBQ0QsOENBQThDLEVBQUU7WUFDOUMsT0FBTyxFQUFFLGlCQUFpQjtTQUMzQjtRQUNELDJDQUEyQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRTtLQUN6RTtDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8sMEJBQTBCO0lBQzlCLFNBQVMsQ0FDZCxVQUE0QixFQUM1QixJQUFZO1FBRVosT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQVdILE1BQU0sT0FBTyx3QkFBd0I7O3FIQUF4Qix3QkFBd0I7c0hBQXhCLHdCQUF3QixZQVR6QixhQUFhO3NIQVNaLHdCQUF3QixhQVJ4QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLDJCQUEyQjtZQUNwQyxRQUFRLEVBQUUsMEJBQTBCO1lBQ3BDLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQVBTLGFBQWE7MkZBU1osd0JBQXdCO2tCQVZwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFFBQVEsRUFBRSwwQkFBMEI7NEJBQ3BDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktbW9kYWxzJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gIFNreUFwcExvY2FsZUluZm8sXG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIsXG4gIGdldExpYlN0cmluZ0ZvckxvY2FsZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IHsgW2xvY2FsZTogc3RyaW5nXTogU2t5TGliUmVzb3VyY2VzIH0gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF9jb25maXJtX2RpYWxvZ19kZWZhdWx0X29rX3RleHQ6IHsgbWVzc2FnZTogJ09LJyB9LFxuICAgIHNreXV4X2NvbmZpcm1fZGlhbG9nX2RlZmF1bHRfeWVzX3RleHQ6IHsgbWVzc2FnZTogJ1llcycgfSxcbiAgICBza3l1eF9jb25maXJtX2RpYWxvZ19kZWZhdWx0X25vX3RleHQ6IHsgbWVzc2FnZTogJ05vJyB9LFxuICAgIHNreXV4X2NvbmZpcm1fZGlhbG9nX2RlZmF1bHRfY2FuY2VsX3RleHQ6IHsgbWVzc2FnZTogJ0NhbmNlbCcgfSxcbiAgICBza3l1eF9tb2RhbF9jbG9zZTogeyBtZXNzYWdlOiAnQ2xvc2UgbW9kYWwnIH0sXG4gICAgc2t5dXhfbW9kYWxfb3Blbl9oZWxwOiB7IG1lc3NhZ2U6ICdPcGVuIEhlbHAnIH0sXG4gICAgc2t5dXhfbW9kYWxfZm9vdGVyX2NhbmNlbF9idXR0b246IHsgbWVzc2FnZTogJ0NhbmNlbCcgfSxcbiAgICBza3l1eF9tb2RhbF9mb290ZXJfcHJpbWFyeV9idXR0b246IHsgbWVzc2FnZTogJ1NhdmUnIH0sXG4gICAgc2t5dXhfbW9kYWxfZGlydHlfZGVmYXVsdF9tZXNzYWdlOiB7XG4gICAgICBtZXNzYWdlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRpc2NhcmQgeW91ciBjaGFuZ2VzPycsXG4gICAgfSxcbiAgICBza3l1eF9tb2RhbF9kaXJ0eV9kZWZhdWx0X2Rpc2NhcmRfY2hhbmdlc190ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnRGlzY2FyZCBjaGFuZ2VzJyxcbiAgICB9LFxuICAgIHNreXV4X21vZGFsX2RpcnR5X2RlZmF1bHRfa2VlcF93b3JraW5nX3RleHQ6IHsgbWVzc2FnZTogJ0tlZXAgd29ya2luZycgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBTa3lNb2RhbHNSZXNvdXJjZXNQcm92aWRlciBpbXBsZW1lbnRzIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyIHtcbiAgcHVibGljIGdldFN0cmluZyhcbiAgICBsb2NhbGVJbmZvOiBTa3lBcHBMb2NhbGVJbmZvLFxuICAgIG5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRMaWJTdHJpbmdGb3JMb2NhbGUoUkVTT1VSQ0VTLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICAgICAgdXNlQ2xhc3M6IFNreU1vZGFsc1Jlc291cmNlc1Byb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
|
|
2
|
-
/**
|
|
3
|
-
* Harness for interacting with a confirm component in tests.
|
|
4
|
-
* @internal
|
|
5
|
-
*/
|
|
6
|
-
export class SkyConfirmButtonHarness extends ComponentHarness {
|
|
7
|
-
/**
|
|
8
|
-
* Gets a `HarnessPredicate` that can be used to search for a
|
|
9
|
-
* `SkyConfirmButtonHarness` that meets certain criteria.
|
|
10
|
-
*/
|
|
11
|
-
static with(filters) {
|
|
12
|
-
return new HarnessPredicate(SkyConfirmButtonHarness, filters)
|
|
13
|
-
.addOption('text', filters.text, async (harness, text) => HarnessPredicate.stringMatches(await harness.getText(), text))
|
|
14
|
-
.addOption('styleType', filters.styleType, async (harness, styleType) => HarnessPredicate.stringMatches(await harness.getStyleType(), styleType));
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Clicks the confirm button.
|
|
18
|
-
*/
|
|
19
|
-
async click() {
|
|
20
|
-
return (await this.host()).click();
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Gets the button style of the confirm button.
|
|
24
|
-
*/
|
|
25
|
-
async getStyleType() {
|
|
26
|
-
const hostEl = await this.host();
|
|
27
|
-
if (await hostEl.hasClass('sky-btn-primary')) {
|
|
28
|
-
return 'primary';
|
|
29
|
-
}
|
|
30
|
-
else if (await hostEl.hasClass('sky-btn-link')) {
|
|
31
|
-
return 'link';
|
|
32
|
-
}
|
|
33
|
-
else if (await hostEl.hasClass('sky-btn-danger')) {
|
|
34
|
-
return 'danger';
|
|
35
|
-
}
|
|
36
|
-
return 'default';
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Gets the text content of the confirm button.
|
|
40
|
-
*/
|
|
41
|
-
async getText() {
|
|
42
|
-
return (await this.host()).text();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
SkyConfirmButtonHarness.hostSelector = '.sky-confirm-buttons .sky-btn';
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1idXR0b24taGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvdGVzdGluZy9zcmMvY29uZmlybS9jb25maXJtLWJ1dHRvbi1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSzFFOzs7R0FHRztBQUNILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBZ0I7SUFHM0Q7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBdUM7UUFFdkMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLE9BQU8sQ0FBQzthQUMxRCxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUN2RCxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQzlEO2FBQ0EsU0FBUyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FDdEUsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE1BQU0sT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUN4RSxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFlBQVk7UUFDdkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakMsSUFBSSxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUM1QyxPQUFPLFNBQVMsQ0FBQztTQUNsQjthQUFNLElBQUksTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2hELE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ2xELE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7QUE5Q2Esb0NBQVksR0FBRywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEhhcm5lc3MsIEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb25maXJtQnV0dG9uU3R5bGVUeXBlIH0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7IFNreUNvbmZpcm1CdXR0b25IYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vY29uZmlybS1idXR0b24taGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgY29uZmlybSBjb21wb25lbnQgaW4gdGVzdHMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreUNvbmZpcm1CdXR0b25IYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJy5za3ktY29uZmlybS1idXR0b25zIC5za3ktYnRuJztcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5Q29uZmlybUJ1dHRvbkhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lDb25maXJtQnV0dG9uSGFybmVzc0ZpbHRlcnNcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lDb25maXJtQnV0dG9uSGFybmVzcz4ge1xuICAgIHJldHVybiBuZXcgSGFybmVzc1ByZWRpY2F0ZShTa3lDb25maXJtQnV0dG9uSGFybmVzcywgZmlsdGVycylcbiAgICAgIC5hZGRPcHRpb24oJ3RleHQnLCBmaWx0ZXJzLnRleHQsIGFzeW5jIChoYXJuZXNzLCB0ZXh0KSA9PlxuICAgICAgICBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoYXdhaXQgaGFybmVzcy5nZXRUZXh0KCksIHRleHQpXG4gICAgICApXG4gICAgICAuYWRkT3B0aW9uKCdzdHlsZVR5cGUnLCBmaWx0ZXJzLnN0eWxlVHlwZSwgYXN5bmMgKGhhcm5lc3MsIHN0eWxlVHlwZSkgPT5cbiAgICAgICAgSGFybmVzc1ByZWRpY2F0ZS5zdHJpbmdNYXRjaGVzKGF3YWl0IGhhcm5lc3MuZ2V0U3R5bGVUeXBlKCksIHN0eWxlVHlwZSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBjb25maXJtIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaG9zdCgpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJ1dHRvbiBzdHlsZSBvZiB0aGUgY29uZmlybSBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0U3R5bGVUeXBlKCk6IFByb21pc2U8U2t5Q29uZmlybUJ1dHRvblN0eWxlVHlwZT4ge1xuICAgIGNvbnN0IGhvc3RFbCA9IGF3YWl0IHRoaXMuaG9zdCgpO1xuXG4gICAgaWYgKGF3YWl0IGhvc3RFbC5oYXNDbGFzcygnc2t5LWJ0bi1wcmltYXJ5JykpIHtcbiAgICAgIHJldHVybiAncHJpbWFyeSc7XG4gICAgfSBlbHNlIGlmIChhd2FpdCBob3N0RWwuaGFzQ2xhc3MoJ3NreS1idG4tbGluaycpKSB7XG4gICAgICByZXR1cm4gJ2xpbmsnO1xuICAgIH0gZWxzZSBpZiAoYXdhaXQgaG9zdEVsLmhhc0NsYXNzKCdza3ktYnRuLWRhbmdlcicpKSB7XG4gICAgICByZXR1cm4gJ2Rhbmdlcic7XG4gICAgfVxuICAgIHJldHVybiAnZGVmYXVsdCc7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBjb25maXJtIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmhvc3QoKSkudGV4dCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
var _SkyConfirmHarness_instances, _SkyConfirmHarness_getBodyEl, _SkyConfirmHarness_getButtons, _SkyConfirmHarness_getConfirmEl, _SkyConfirmHarness_getMessageEl, _SkyConfirmHarness_queryHarnesses;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
-
import { SkyComponentHarness } from '@skyux/core/testing';
|
|
4
|
-
import { SkyConfirmType } from '@skyux/modals';
|
|
5
|
-
import { SkyConfirmButtonHarness } from './confirm-button-harness';
|
|
6
|
-
/**
|
|
7
|
-
* Harness for interacting with a confirm component in tests.
|
|
8
|
-
*/
|
|
9
|
-
export class SkyConfirmHarness extends SkyComponentHarness {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
_SkyConfirmHarness_instances.add(this);
|
|
13
|
-
_SkyConfirmHarness_getBodyEl.set(this, this.locatorForOptional('.sky-confirm-body'));
|
|
14
|
-
_SkyConfirmHarness_getButtons.set(this, this.locatorForAll(SkyConfirmButtonHarness));
|
|
15
|
-
_SkyConfirmHarness_getConfirmEl.set(this, this.locatorFor('.sky-confirm'));
|
|
16
|
-
_SkyConfirmHarness_getMessageEl.set(this, this.locatorFor('.sky-confirm-message'));
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Clicks a confirm button.
|
|
20
|
-
*/
|
|
21
|
-
async clickCustomButton(filters) {
|
|
22
|
-
const buttons = await this.getCustomButtons(filters);
|
|
23
|
-
if (buttons.length > 1) {
|
|
24
|
-
if (filters.text instanceof RegExp) {
|
|
25
|
-
filters.text = filters.text.toString();
|
|
26
|
-
}
|
|
27
|
-
throw new Error(`More than one button matches the filter(s): ${JSON.stringify(filters)}.`);
|
|
28
|
-
}
|
|
29
|
-
await buttons[0].click();
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Clicks a confirm button.
|
|
33
|
-
*/
|
|
34
|
-
async clickOkButton() {
|
|
35
|
-
const type = await this.getType();
|
|
36
|
-
if (type === SkyConfirmType.Custom) {
|
|
37
|
-
throw new Error('Cannot click OK button on a confirm of type custom.');
|
|
38
|
-
}
|
|
39
|
-
const buttons = await __classPrivateFieldGet(this, _SkyConfirmHarness_getButtons, "f").call(this);
|
|
40
|
-
await buttons[0].click();
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Gets the body of the confirm component.
|
|
44
|
-
*/
|
|
45
|
-
async getBodyText() {
|
|
46
|
-
return (await __classPrivateFieldGet(this, _SkyConfirmHarness_getBodyEl, "f").call(this))?.text();
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Gets the confirm component's custom buttons.
|
|
50
|
-
*/
|
|
51
|
-
async getCustomButtons(filters) {
|
|
52
|
-
const confirmType = await this.getType();
|
|
53
|
-
if (confirmType === SkyConfirmType.OK) {
|
|
54
|
-
throw new Error('Cannot get custom buttons for confirm of type OK.');
|
|
55
|
-
}
|
|
56
|
-
const harnesses = await __classPrivateFieldGet(this, _SkyConfirmHarness_instances, "m", _SkyConfirmHarness_queryHarnesses).call(this, SkyConfirmButtonHarness.with(filters || {}));
|
|
57
|
-
if (filters && harnesses.length === 0) {
|
|
58
|
-
// Stringify the regular expression so that it's readable in the console log.
|
|
59
|
-
if (filters.text instanceof RegExp) {
|
|
60
|
-
filters.text = filters.text.toString();
|
|
61
|
-
}
|
|
62
|
-
throw new Error(`Could not find buttons matching filter(s): ${JSON.stringify(filters)}.`);
|
|
63
|
-
}
|
|
64
|
-
return harnesses;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Gets the message of the confirm component.
|
|
68
|
-
*/
|
|
69
|
-
async getMessageText() {
|
|
70
|
-
return (await __classPrivateFieldGet(this, _SkyConfirmHarness_getMessageEl, "f").call(this)).text();
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Gets the type of the confirm component.
|
|
74
|
-
*/
|
|
75
|
-
async getType() {
|
|
76
|
-
const confirmEl = await __classPrivateFieldGet(this, _SkyConfirmHarness_getConfirmEl, "f").call(this);
|
|
77
|
-
if (await confirmEl.hasClass('sky-confirm-type-ok')) {
|
|
78
|
-
return SkyConfirmType.OK;
|
|
79
|
-
}
|
|
80
|
-
return SkyConfirmType.Custom;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Whether the whitespace is preserved on the confirm component.
|
|
84
|
-
*/
|
|
85
|
-
async isWhiteSpacePreserved() {
|
|
86
|
-
return (await __classPrivateFieldGet(this, _SkyConfirmHarness_getMessageEl, "f").call(this)).hasClass('sky-confirm-preserve-white-space');
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
_SkyConfirmHarness_getBodyEl = new WeakMap(), _SkyConfirmHarness_getButtons = new WeakMap(), _SkyConfirmHarness_getConfirmEl = new WeakMap(), _SkyConfirmHarness_getMessageEl = new WeakMap(), _SkyConfirmHarness_instances = new WeakSet(), _SkyConfirmHarness_queryHarnesses =
|
|
90
|
-
/**
|
|
91
|
-
* Returns child harnesses.
|
|
92
|
-
*/
|
|
93
|
-
async function _SkyConfirmHarness_queryHarnesses(harness) {
|
|
94
|
-
return this.locatorForAll(harness)();
|
|
95
|
-
};
|
|
96
|
-
SkyConfirmHarness.hostSelector = 'sky-confirm';
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy90ZXN0aW5nL3NyYy9jb25maXJtL2NvbmZpcm0taGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbkU7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBQTFEOzs7UUFHRSx1Q0FBYSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsRUFBQztRQUMxRCx3Q0FBYyxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLEVBQUM7UUFDMUQsMENBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUM7UUFDaEQsMENBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsRUFBQztJQTZHMUQsQ0FBQztJQTNHQzs7T0FFRztJQUNJLEtBQUssQ0FBQyxpQkFBaUIsQ0FDNUIsT0FBdUM7UUFFdkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckQsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0QixJQUFJLE9BQU8sQ0FBQyxJQUFJLFlBQVksTUFBTSxFQUFFO2dCQUNsQyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDeEM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLCtDQUErQyxJQUFJLENBQUMsU0FBUyxDQUMzRCxPQUFPLENBQ1IsR0FBRyxDQUNMLENBQUM7U0FDSDtRQUNELE1BQU0sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxhQUFhO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWxDLElBQUksSUFBSSxLQUFLLGNBQWMsQ0FBQyxNQUFNLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSx1QkFBQSxJQUFJLHFDQUFZLE1BQWhCLElBQUksQ0FBYyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE9BQU8sQ0FBQyxNQUFNLHVCQUFBLElBQUksb0NBQVcsTUFBZixJQUFJLENBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDM0IsT0FBd0M7UUFFeEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFekMsSUFBSSxXQUFXLEtBQUssY0FBYyxDQUFDLEVBQUUsRUFBRTtZQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDdEU7UUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLHVCQUFBLElBQUksdUVBQWdCLE1BQXBCLElBQUksRUFDMUIsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FDNUMsQ0FBQztRQUVGLElBQUksT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3JDLDZFQUE2RTtZQUM3RSxJQUFJLE9BQU8sQ0FBQyxJQUFJLFlBQVksTUFBTSxFQUFFO2dCQUNsQyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDeEM7WUFFRCxNQUFNLElBQUksS0FBSyxDQUNiLDhDQUE4QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ3pFLENBQUM7U0FDSDtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxjQUFjO1FBQ3pCLE9BQU8sQ0FBQyxNQUFNLHVCQUFBLElBQUksdUNBQWMsTUFBbEIsSUFBSSxDQUFnQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxTQUFTLEdBQUcsTUFBTSx1QkFBQSxJQUFJLHVDQUFjLE1BQWxCLElBQUksQ0FBZ0IsQ0FBQztRQUM3QyxJQUFJLE1BQU0sU0FBUyxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ25ELE9BQU8sY0FBYyxDQUFDLEVBQUUsQ0FBQztTQUMxQjtRQUVELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMscUJBQXFCO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLHVCQUFBLElBQUksdUNBQWMsTUFBbEIsSUFBSSxDQUFnQixDQUFDLENBQUMsUUFBUSxDQUMxQyxrQ0FBa0MsQ0FDbkMsQ0FBQztJQUNKLENBQUM7OztBQUVEOztHQUVHO0FBQ0gsS0FBSyw0Q0FDSCxPQUF3QjtJQUV4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBakhhLDhCQUFZLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50SGFybmVzcywgSGFybmVzc1F1ZXJ5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29uZmlybVR5cGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU2t5Q29uZmlybUJ1dHRvbkhhcm5lc3MgfSBmcm9tICcuL2NvbmZpcm0tYnV0dG9uLWhhcm5lc3MnO1xuaW1wb3J0IHsgU2t5Q29uZmlybUJ1dHRvbkhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9jb25maXJtLWJ1dHRvbi1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBjb25maXJtIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreUNvbmZpcm1IYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1jb25maXJtJztcblxuICAjZ2V0Qm9keUVsID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJy5za3ktY29uZmlybS1ib2R5Jyk7XG4gICNnZXRCdXR0b25zID0gdGhpcy5sb2NhdG9yRm9yQWxsKFNreUNvbmZpcm1CdXR0b25IYXJuZXNzKTtcbiAgI2dldENvbmZpcm1FbCA9IHRoaXMubG9jYXRvckZvcignLnNreS1jb25maXJtJyk7XG4gICNnZXRNZXNzYWdlRWwgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktY29uZmlybS1tZXNzYWdlJyk7XG5cbiAgLyoqXG4gICAqIENsaWNrcyBhIGNvbmZpcm0gYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrQ3VzdG9tQnV0dG9uKFxuICAgIGZpbHRlcnM6IFNreUNvbmZpcm1CdXR0b25IYXJuZXNzRmlsdGVyc1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBidXR0b25zID0gYXdhaXQgdGhpcy5nZXRDdXN0b21CdXR0b25zKGZpbHRlcnMpO1xuXG4gICAgaWYgKGJ1dHRvbnMubGVuZ3RoID4gMSkge1xuICAgICAgaWYgKGZpbHRlcnMudGV4dCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICBmaWx0ZXJzLnRleHQgPSBmaWx0ZXJzLnRleHQudG9TdHJpbmcoKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE1vcmUgdGhhbiBvbmUgYnV0dG9uIG1hdGNoZXMgdGhlIGZpbHRlcihzKTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBmaWx0ZXJzXG4gICAgICAgICl9LmBcbiAgICAgICk7XG4gICAgfVxuICAgIGF3YWl0IGJ1dHRvbnNbMF0uY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgYSBjb25maXJtIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja09rQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHR5cGUgPSBhd2FpdCB0aGlzLmdldFR5cGUoKTtcblxuICAgIGlmICh0eXBlID09PSBTa3lDb25maXJtVHlwZS5DdXN0b20pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNsaWNrIE9LIGJ1dHRvbiBvbiBhIGNvbmZpcm0gb2YgdHlwZSBjdXN0b20uJyk7XG4gICAgfVxuICAgIGNvbnN0IGJ1dHRvbnMgPSBhd2FpdCB0aGlzLiNnZXRCdXR0b25zKCk7XG4gICAgYXdhaXQgYnV0dG9uc1swXS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGJvZHkgb2YgdGhlIGNvbmZpcm0gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEJvZHlUZXh0KCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRCb2R5RWwoKSk/LnRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjb25maXJtIGNvbXBvbmVudCdzIGN1c3RvbSBidXR0b25zLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEN1c3RvbUJ1dHRvbnMoXG4gICAgZmlsdGVycz86IFNreUNvbmZpcm1CdXR0b25IYXJuZXNzRmlsdGVyc1xuICApOiBQcm9taXNlPFNreUNvbmZpcm1CdXR0b25IYXJuZXNzW10+IHtcbiAgICBjb25zdCBjb25maXJtVHlwZSA9IGF3YWl0IHRoaXMuZ2V0VHlwZSgpO1xuXG4gICAgaWYgKGNvbmZpcm1UeXBlID09PSBTa3lDb25maXJtVHlwZS5PSykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZ2V0IGN1c3RvbSBidXR0b25zIGZvciBjb25maXJtIG9mIHR5cGUgT0suJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFybmVzc2VzID0gYXdhaXQgdGhpcy4jcXVlcnlIYXJuZXNzZXMoXG4gICAgICBTa3lDb25maXJtQnV0dG9uSGFybmVzcy53aXRoKGZpbHRlcnMgfHwge30pXG4gICAgKTtcblxuICAgIGlmIChmaWx0ZXJzICYmIGhhcm5lc3Nlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIFN0cmluZ2lmeSB0aGUgcmVndWxhciBleHByZXNzaW9uIHNvIHRoYXQgaXQncyByZWFkYWJsZSBpbiB0aGUgY29uc29sZSBsb2cuXG4gICAgICBpZiAoZmlsdGVycy50ZXh0IGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgIGZpbHRlcnMudGV4dCA9IGZpbHRlcnMudGV4dC50b1N0cmluZygpO1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDb3VsZCBub3QgZmluZCBidXR0b25zIG1hdGNoaW5nIGZpbHRlcihzKTogJHtKU09OLnN0cmluZ2lmeShmaWx0ZXJzKX0uYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaGFybmVzc2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG1lc3NhZ2Ugb2YgdGhlIGNvbmZpcm0gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldE1lc3NhZ2VUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRNZXNzYWdlRWwoKSkudGV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHR5cGUgb2YgdGhlIGNvbmZpcm0gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFR5cGUoKTogUHJvbWlzZTxTa3lDb25maXJtVHlwZT4ge1xuICAgIGNvbnN0IGNvbmZpcm1FbCA9IGF3YWl0IHRoaXMuI2dldENvbmZpcm1FbCgpO1xuICAgIGlmIChhd2FpdCBjb25maXJtRWwuaGFzQ2xhc3MoJ3NreS1jb25maXJtLXR5cGUtb2snKSkge1xuICAgICAgcmV0dXJuIFNreUNvbmZpcm1UeXBlLk9LO1xuICAgIH1cblxuICAgIHJldHVybiBTa3lDb25maXJtVHlwZS5DdXN0b207XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgd2hpdGVzcGFjZSBpcyBwcmVzZXJ2ZWQgb24gdGhlIGNvbmZpcm0gY29tcG9uZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzV2hpdGVTcGFjZVByZXNlcnZlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldE1lc3NhZ2VFbCgpKS5oYXNDbGFzcyhcbiAgICAgICdza3ktY29uZmlybS1wcmVzZXJ2ZS13aGl0ZS1zcGFjZSdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgY2hpbGQgaGFybmVzc2VzLlxuICAgKi9cbiAgYXN5bmMgI3F1ZXJ5SGFybmVzc2VzPFQgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzPihcbiAgICBoYXJuZXNzOiBIYXJuZXNzUXVlcnk8VD5cbiAgKTogUHJvbWlzZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yQWxsKGhhcm5lc3MpKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
var _SkyModalHarness_getModal, _SkyModalHarness_getModalDialog;
|
|
2
|
-
import { __classPrivateFieldGet } from "tslib";
|
|
3
|
-
import { SkyComponentHarness } from '@skyux/core/testing';
|
|
4
|
-
/**
|
|
5
|
-
* Harness for interacting with a modal component in tests.
|
|
6
|
-
*/
|
|
7
|
-
export class SkyModalHarness extends SkyComponentHarness {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
_SkyModalHarness_getModal.set(this, this.locatorFor('.sky-modal'));
|
|
11
|
-
_SkyModalHarness_getModalDialog.set(this, this.locatorFor('.sky-modal-dialog'));
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Gets a `HarnessPredicate` that can be used to search for a
|
|
15
|
-
* `SkyModalHarness` that meets certain criteria
|
|
16
|
-
*/
|
|
17
|
-
static with(filters) {
|
|
18
|
-
return SkyModalHarness.getDataSkyIdPredicate(filters);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Gets the aria-describedBy property of the modal
|
|
22
|
-
*/
|
|
23
|
-
async getAriaDescribedBy() {
|
|
24
|
-
return (await __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('aria-describedby');
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Gets the aria-labelledBy property of the modal
|
|
28
|
-
*/
|
|
29
|
-
async getAriaLabelledBy() {
|
|
30
|
-
return (await __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('aria-labelledby');
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Gets the role of the modal.
|
|
34
|
-
*/
|
|
35
|
-
async getAriaRole() {
|
|
36
|
-
return (await __classPrivateFieldGet(this, _SkyModalHarness_getModalDialog, "f").call(this)).getAttribute('role');
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Gets the modal size.
|
|
40
|
-
*/
|
|
41
|
-
async getSize() {
|
|
42
|
-
if (await this.isFullPage()) {
|
|
43
|
-
throw new Error('Size cannot be determined because size property is overridden when modal is full page');
|
|
44
|
-
}
|
|
45
|
-
const modal = await __classPrivateFieldGet(this, _SkyModalHarness_getModal, "f").call(this);
|
|
46
|
-
if (await modal.hasClass('sky-modal-small')) {
|
|
47
|
-
return 'small';
|
|
48
|
-
}
|
|
49
|
-
if (await modal.hasClass('sky-modal-large')) {
|
|
50
|
-
return 'large';
|
|
51
|
-
}
|
|
52
|
-
return 'medium';
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Gets the wrapper class of the modal.
|
|
56
|
-
*/
|
|
57
|
-
async getWrapperClass() {
|
|
58
|
-
return await (await this.host()).getProperty('className');
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Whether the modal is full page.
|
|
62
|
-
*/
|
|
63
|
-
async isFullPage() {
|
|
64
|
-
const modal = __classPrivateFieldGet(this, _SkyModalHarness_getModal, "f").call(this);
|
|
65
|
-
return (await modal).hasClass('sky-modal-full-page');
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Whether the modal has {@link SkyModalIsDirtyDirective.isDirty} set to dirty.
|
|
69
|
-
*/
|
|
70
|
-
async isDirty() {
|
|
71
|
-
const modalHost = await this.host();
|
|
72
|
-
const isDirtyAttribute = await modalHost.getAttribute('data-sky-modal-is-dirty');
|
|
73
|
-
return isDirtyAttribute === 'true';
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
_SkyModalHarness_getModal = new WeakMap(), _SkyModalHarness_getModalDialog = new WeakMap();
|
|
77
|
-
/**
|
|
78
|
-
* @internal
|
|
79
|
-
*/
|
|
80
|
-
SkyModalHarness.hostSelector = 'sky-modal';
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvdGVzdGluZy9zcmMvbW9kYWwvbW9kYWwtaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsbUJBQW1CO0lBQXhEOztRQU1FLG9DQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUM7UUFDMUMsMENBQWtCLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBQztJQWlGekQsQ0FBQztJQS9FQzs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUErQjtRQUUvQixPQUFPLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLE9BQU8sQ0FBQyxNQUFNLHVCQUFBLElBQUksdUNBQWdCLE1BQXBCLElBQUksQ0FBa0IsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsT0FBTyxDQUFDLE1BQU0sdUJBQUEsSUFBSSx1Q0FBZ0IsTUFBcEIsSUFBSSxDQUFrQixDQUFDLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxDQUFDLE1BQU0sdUJBQUEsSUFBSSx1Q0FBZ0IsTUFBcEIsSUFBSSxDQUFrQixDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLElBQUksTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FDeEYsQ0FBQztTQUNIO1FBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSx1QkFBQSxJQUFJLGlDQUFVLE1BQWQsSUFBSSxDQUFZLENBQUM7UUFFckMsSUFBSSxNQUFNLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMzQyxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELElBQUksTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDM0MsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLEtBQUssR0FBRyx1QkFBQSxJQUFJLGlDQUFVLE1BQWQsSUFBSSxDQUFZLENBQUM7UUFDL0IsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLFNBQVMsQ0FBQyxZQUFZLENBQ25ELHlCQUF5QixDQUMxQixDQUFDO1FBQ0YsT0FBTyxnQkFBZ0IsS0FBSyxNQUFNLENBQUM7SUFDckMsQ0FBQzs7O0FBdEZEOztHQUVHO0FBQ1csNEJBQVksR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2RhbC1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBtb2RhbCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lNb2RhbEhhcm5lc3MgZXh0ZW5kcyBTa3lDb21wb25lbnRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2t5LW1vZGFsJztcblxuICAjZ2V0TW9kYWwgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktbW9kYWwnKTtcbiAgI2dldE1vZGFsRGlhbG9nID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LW1vZGFsLWRpYWxvZycpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lNb2RhbEhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreU1vZGFsSGFybmVzc0ZpbHRlcnNcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lNb2RhbEhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5TW9kYWxIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhcmlhLWRlc2NyaWJlZEJ5IHByb3BlcnR5IG9mIHRoZSBtb2RhbFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEFyaWFEZXNjcmliZWRCeSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldE1vZGFsRGlhbG9nKCkpLmdldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFyaWEtbGFiZWxsZWRCeSBwcm9wZXJ0eSBvZiB0aGUgbW9kYWxcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRBcmlhTGFiZWxsZWRCeSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldE1vZGFsRGlhbG9nKCkpLmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcm9sZSBvZiB0aGUgbW9kYWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYVJvbGUoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNnZXRNb2RhbERpYWxvZygpKS5nZXRBdHRyaWJ1dGUoJ3JvbGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBtb2RhbCBzaXplLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNpemUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAoYXdhaXQgdGhpcy5pc0Z1bGxQYWdlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1NpemUgY2Fubm90IGJlIGRldGVybWluZWQgYmVjYXVzZSBzaXplIHByb3BlcnR5IGlzIG92ZXJyaWRkZW4gd2hlbiBtb2RhbCBpcyBmdWxsIHBhZ2UnXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZGFsID0gYXdhaXQgdGhpcy4jZ2V0TW9kYWwoKTtcblxuICAgIGlmIChhd2FpdCBtb2RhbC5oYXNDbGFzcygnc2t5LW1vZGFsLXNtYWxsJykpIHtcbiAgICAgIHJldHVybiAnc21hbGwnO1xuICAgIH1cblxuICAgIGlmIChhd2FpdCBtb2RhbC5oYXNDbGFzcygnc2t5LW1vZGFsLWxhcmdlJykpIHtcbiAgICAgIHJldHVybiAnbGFyZ2UnO1xuICAgIH1cblxuICAgIHJldHVybiAnbWVkaXVtJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB3cmFwcGVyIGNsYXNzIG9mIHRoZSBtb2RhbC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRXcmFwcGVyQ2xhc3MoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuaG9zdCgpKS5nZXRQcm9wZXJ0eSgnY2xhc3NOYW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbW9kYWwgaXMgZnVsbCBwYWdlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRnVsbFBhZ2UoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgbW9kYWwgPSB0aGlzLiNnZXRNb2RhbCgpO1xuICAgIHJldHVybiAoYXdhaXQgbW9kYWwpLmhhc0NsYXNzKCdza3ktbW9kYWwtZnVsbC1wYWdlJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbW9kYWwgaGFzIHtAbGluayBTa3lNb2RhbElzRGlydHlEaXJlY3RpdmUuaXNEaXJ0eX0gc2V0IHRvIGRpcnR5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRGlydHkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgbW9kYWxIb3N0ID0gYXdhaXQgdGhpcy5ob3N0KCk7XG4gICAgY29uc3QgaXNEaXJ0eUF0dHJpYnV0ZSA9IGF3YWl0IG1vZGFsSG9zdC5nZXRBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1za3ktbW9kYWwtaXMtZGlydHknXG4gICAgKTtcbiAgICByZXR1cm4gaXNEaXJ0eUF0dHJpYnV0ZSA9PT0gJ3RydWUnO1xuICB9XG59XG4iXX0=
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
var _SkyModalFixture_instances, _SkyModalFixture_modalElement, _SkyModalFixture_fixture, _SkyModalFixture_checkModalElement, _SkyModalFixture_getModalDialogElement;
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
/**
|
|
4
|
-
* Allows interaction with a SKY UX modal component.
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
export class SkyModalFixture {
|
|
8
|
-
constructor(fixture, skyTestId) {
|
|
9
|
-
_SkyModalFixture_instances.add(this);
|
|
10
|
-
_SkyModalFixture_modalElement.set(this, void 0);
|
|
11
|
-
_SkyModalFixture_fixture.set(this, void 0);
|
|
12
|
-
__classPrivateFieldSet(this, _SkyModalFixture_fixture, fixture, "f");
|
|
13
|
-
const modalElement = document.querySelector('sky-modal[data-sky-id="' + skyTestId + '"]');
|
|
14
|
-
if (!modalElement) {
|
|
15
|
-
throw new Error(`No element was found with a \`data-sky-id\` value of "${skyTestId}".`);
|
|
16
|
-
}
|
|
17
|
-
__classPrivateFieldSet(this, _SkyModalFixture_modalElement, modalElement, "f");
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* The modal component's ARIA describedby attribute.
|
|
21
|
-
*/
|
|
22
|
-
get ariaDescribedBy() {
|
|
23
|
-
const modalDialogElement = __classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_getModalDialogElement).call(this);
|
|
24
|
-
/* Non-null assertion as our component has a default for if the user does not provide this attribute or if they provide "undefined" */
|
|
25
|
-
const describedByAttribute =
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
27
|
-
modalDialogElement.getAttribute('aria-describedby');
|
|
28
|
-
return describedByAttribute;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* The modal component's ARIA labelledby attribute.
|
|
32
|
-
*/
|
|
33
|
-
get ariaLabelledBy() {
|
|
34
|
-
const modalDialogElement = __classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_getModalDialogElement).call(this);
|
|
35
|
-
/* Non-null assertion as our component has a default for if the user does not provide this attribute or if they provide "undefined" */
|
|
36
|
-
const labelledByAttribute =
|
|
37
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
38
|
-
modalDialogElement.getAttribute('aria-labelledby');
|
|
39
|
-
return labelledByAttribute;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* The modal component's role attribute.
|
|
43
|
-
*/
|
|
44
|
-
get ariaRole() {
|
|
45
|
-
const modalDialogElement = __classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_getModalDialogElement).call(this);
|
|
46
|
-
/* Non-null assertion as our component has a default for if the user does not provide this attribute or if they provide "undefined" */
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
48
|
-
const roleAttribute = modalDialogElement.getAttribute('role');
|
|
49
|
-
return roleAttribute;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Whether or not the modal is a full page modal.
|
|
53
|
-
*/
|
|
54
|
-
get fullPage() {
|
|
55
|
-
const modalDivElement = this.getModalDiv();
|
|
56
|
-
return modalDivElement.classList.contains('sky-modal-full-page');
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* The size of the modal.
|
|
60
|
-
*/
|
|
61
|
-
get size() {
|
|
62
|
-
const modalDivElement = this.getModalDiv();
|
|
63
|
-
const possibleSizes = ['small', 'medium', 'large'];
|
|
64
|
-
for (const size of possibleSizes) {
|
|
65
|
-
if (modalDivElement.classList.contains('sky-modal-' + size)) {
|
|
66
|
-
return size;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Whether or not the modal is set up for tiled content.
|
|
73
|
-
*/
|
|
74
|
-
get tiledBody() {
|
|
75
|
-
const modalDivElement = this.getModalDiv();
|
|
76
|
-
return modalDivElement.classList.contains('sky-modal-tiled');
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Clicks the modal header's "close" button.
|
|
80
|
-
*/
|
|
81
|
-
clickHeaderCloseButton() {
|
|
82
|
-
__classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_checkModalElement).call(this);
|
|
83
|
-
const closeButton = __classPrivateFieldGet(this, _SkyModalFixture_modalElement, "f").querySelector('.sky-modal .sky-modal-btn-close');
|
|
84
|
-
if (closeButton &&
|
|
85
|
-
window.getComputedStyle(closeButton).display !== 'none') {
|
|
86
|
-
closeButton.click();
|
|
87
|
-
__classPrivateFieldGet(this, _SkyModalFixture_fixture, "f").detectChanges();
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
throw new Error(`No header close button exists.`);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Clicks the modal header's "help" button.
|
|
95
|
-
*/
|
|
96
|
-
clickHelpButton() {
|
|
97
|
-
__classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_checkModalElement).call(this);
|
|
98
|
-
const helpButton = __classPrivateFieldGet(this, _SkyModalFixture_modalElement, "f").querySelector('.sky-modal .sky-modal-header-buttons button[name="help-button"]');
|
|
99
|
-
if (helpButton && window.getComputedStyle(helpButton).display !== 'none') {
|
|
100
|
-
helpButton.click();
|
|
101
|
-
__classPrivateFieldGet(this, _SkyModalFixture_fixture, "f").detectChanges();
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
throw new Error(`No help button exists.`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Returns the main modal element.
|
|
109
|
-
*/
|
|
110
|
-
getModalDiv() {
|
|
111
|
-
__classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_checkModalElement).call(this);
|
|
112
|
-
return __classPrivateFieldGet(this, _SkyModalFixture_modalElement, "f").querySelector('.sky-modal');
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Returns the modal's content element.
|
|
116
|
-
*/
|
|
117
|
-
getModalContentEl() {
|
|
118
|
-
__classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_checkModalElement).call(this);
|
|
119
|
-
return __classPrivateFieldGet(this, _SkyModalFixture_modalElement, "f").querySelector('.sky-modal-content');
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Returns the modal's footer element.
|
|
123
|
-
*/
|
|
124
|
-
getModalFooterEl() {
|
|
125
|
-
__classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_checkModalElement).call(this);
|
|
126
|
-
return __classPrivateFieldGet(this, _SkyModalFixture_modalElement, "f").querySelector('.sky-modal-footer');
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Returns the modal's header element.
|
|
130
|
-
*/
|
|
131
|
-
getModalHeaderEl() {
|
|
132
|
-
__classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_checkModalElement).call(this);
|
|
133
|
-
return __classPrivateFieldGet(this, _SkyModalFixture_modalElement, "f").querySelector('.sky-modal-header');
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
_SkyModalFixture_modalElement = new WeakMap(), _SkyModalFixture_fixture = new WeakMap(), _SkyModalFixture_instances = new WeakSet(), _SkyModalFixture_checkModalElement = function _SkyModalFixture_checkModalElement() {
|
|
137
|
-
if (!document.contains(__classPrivateFieldGet(this, _SkyModalFixture_modalElement, "f"))) {
|
|
138
|
-
throw new Error('Modal element no longer exists. Was the modal closed?');
|
|
139
|
-
}
|
|
140
|
-
}, _SkyModalFixture_getModalDialogElement = function _SkyModalFixture_getModalDialogElement() {
|
|
141
|
-
__classPrivateFieldGet(this, _SkyModalFixture_instances, "m", _SkyModalFixture_checkModalElement).call(this);
|
|
142
|
-
// We can always know that the dialog element will exist if the modal is open and exists.
|
|
143
|
-
return __classPrivateFieldGet(this, _SkyModalFixture_modalElement, "f").querySelector('.sky-modal-dialog');
|
|
144
|
-
};
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvdGVzdGluZy9zcmMvbW9kYWwtZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQVksT0FBa0MsRUFBRSxTQUFpQjs7UUFKakUsZ0RBQTJCO1FBRTNCLDJDQUFvQztRQUdsQyx1QkFBQSxJQUFJLDRCQUFZLE9BQU8sTUFBQSxDQUFDO1FBQ3hCLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQ3pDLHlCQUF5QixHQUFHLFNBQVMsR0FBRyxJQUFJLENBQzlCLENBQUM7UUFFakIsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixNQUFNLElBQUksS0FBSyxDQUNiLHlEQUF5RCxTQUFTLElBQUksQ0FDdkUsQ0FBQztTQUNIO1FBRUQsdUJBQUEsSUFBSSxpQ0FBaUIsWUFBWSxNQUFBLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxlQUFlO1FBQ3hCLE1BQU0sa0JBQWtCLEdBQUcsdUJBQUEsSUFBSSwwRUFBdUIsTUFBM0IsSUFBSSxDQUF5QixDQUFDO1FBQ3pELHNJQUFzSTtRQUN0SSxNQUFNLG9CQUFvQjtRQUN4QixvRUFBb0U7UUFDcEUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFFLENBQUM7UUFDdkQsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGNBQWM7UUFDdkIsTUFBTSxrQkFBa0IsR0FBRyx1QkFBQSxJQUFJLDBFQUF1QixNQUEzQixJQUFJLENBQXlCLENBQUM7UUFDekQsc0lBQXNJO1FBQ3RJLE1BQU0sbUJBQW1CO1FBQ3ZCLG9FQUFvRTtRQUNwRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUUsQ0FBQztRQUV0RCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixNQUFNLGtCQUFrQixHQUFHLHVCQUFBLElBQUksMEVBQXVCLE1BQTNCLElBQUksQ0FBeUIsQ0FBQztRQUN6RCxzSUFBc0k7UUFDdEksb0VBQW9FO1FBQ3BFLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUMvRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNDLE9BQU8sZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELEtBQUssTUFBTSxJQUFJLElBQUksYUFBYSxFQUFFO1lBQ2hDLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFO2dCQUMzRCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxPQUFPO0lBQ1QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksc0JBQXNCO1FBQzNCLHVCQUFBLElBQUksc0VBQW1CLE1BQXZCLElBQUksQ0FBcUIsQ0FBQztRQUMxQixNQUFNLFdBQVcsR0FBdUIsdUJBQUEsSUFBSSxxQ0FBYyxDQUFDLGFBQWEsQ0FDdEUsaUNBQWlDLENBQ2xDLENBQUM7UUFFRixJQUNFLFdBQVc7WUFDWCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFDdkQ7WUFDQSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsdUJBQUEsSUFBSSxnQ0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQy9CO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlO1FBQ3BCLHVCQUFBLElBQUksc0VBQW1CLE1BQXZCLElBQUksQ0FBcUIsQ0FBQztRQUMxQixNQUFNLFVBQVUsR0FBdUIsdUJBQUEsSUFBSSxxQ0FBYyxDQUFDLGFBQWEsQ0FDckUsaUVBQWlFLENBQ2xFLENBQUM7UUFFRixJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRTtZQUN4RSxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsdUJBQUEsSUFBSSxnQ0FBUyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQy9CO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLHVCQUFBLElBQUksc0VBQW1CLE1BQXZCLElBQUksQ0FBcUIsQ0FBQztRQUMxQixPQUFPLHVCQUFBLElBQUkscUNBQWMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3RCLHVCQUFBLElBQUksc0VBQW1CLE1BQXZCLElBQUksQ0FBcUIsQ0FBQztRQUMxQixPQUFPLHVCQUFBLElBQUkscUNBQWMsQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxnQkFBZ0I7UUFDckIsdUJBQUEsSUFBSSxzRUFBbUIsTUFBdkIsSUFBSSxDQUFxQixDQUFDO1FBQzFCLE9BQU8sdUJBQUEsSUFBSSxxQ0FBYyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQjtRQUNyQix1QkFBQSxJQUFJLHNFQUFtQixNQUF2QixJQUFJLENBQXFCLENBQUM7UUFDMUIsT0FBTyx1QkFBQSxJQUFJLHFDQUFjLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDL0QsQ0FBQztDQWFGOztJQVZHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLHVCQUFBLElBQUkscUNBQWMsQ0FBQyxFQUFFO1FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztLQUMxRTtBQUNILENBQUM7SUFHQyx1QkFBQSxJQUFJLHNFQUFtQixNQUF2QixJQUFJLENBQXFCLENBQUM7SUFDMUIseUZBQXlGO0lBQ3pGLE9BQU8sdUJBQUEsSUFBSSxxQ0FBYyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBRSxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcblxuLyoqXG4gKiBBbGxvd3MgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBtb2RhbCBjb21wb25lbnQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreU1vZGFsRml4dHVyZSB7XG4gICNtb2RhbEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gICNmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPHVua25vd24+O1xuXG4gIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8dW5rbm93bj4sIHNreVRlc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy4jZml4dHVyZSA9IGZpeHR1cmU7XG4gICAgY29uc3QgbW9kYWxFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICdza3ktbW9kYWxbZGF0YS1za3ktaWQ9XCInICsgc2t5VGVzdElkICsgJ1wiXSdcbiAgICApIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKCFtb2RhbEVsZW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE5vIGVsZW1lbnQgd2FzIGZvdW5kIHdpdGggYSBcXGBkYXRhLXNreS1pZFxcYCB2YWx1ZSBvZiBcIiR7c2t5VGVzdElkfVwiLmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy4jbW9kYWxFbGVtZW50ID0gbW9kYWxFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RhbCBjb21wb25lbnQncyBBUklBIGRlc2NyaWJlZGJ5IGF0dHJpYnV0ZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgYXJpYURlc2NyaWJlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbW9kYWxEaWFsb2dFbGVtZW50ID0gdGhpcy4jZ2V0TW9kYWxEaWFsb2dFbGVtZW50KCk7XG4gICAgLyogTm9uLW51bGwgYXNzZXJ0aW9uIGFzIG91ciBjb21wb25lbnQgaGFzIGEgZGVmYXVsdCBmb3IgaWYgdGhlIHVzZXIgZG9lcyBub3QgcHJvdmlkZSB0aGlzIGF0dHJpYnV0ZSBvciBpZiB0aGV5IHByb3ZpZGUgXCJ1bmRlZmluZWRcIiAqL1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5QXR0cmlidXRlID1cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICBtb2RhbERpYWxvZ0VsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWRlc2NyaWJlZGJ5JykhO1xuICAgIHJldHVybiBkZXNjcmliZWRCeUF0dHJpYnV0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbW9kYWwgY29tcG9uZW50J3MgQVJJQSBsYWJlbGxlZGJ5IGF0dHJpYnV0ZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgYXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtb2RhbERpYWxvZ0VsZW1lbnQgPSB0aGlzLiNnZXRNb2RhbERpYWxvZ0VsZW1lbnQoKTtcbiAgICAvKiBOb24tbnVsbCBhc3NlcnRpb24gYXMgb3VyIGNvbXBvbmVudCBoYXMgYSBkZWZhdWx0IGZvciBpZiB0aGUgdXNlciBkb2VzIG5vdCBwcm92aWRlIHRoaXMgYXR0cmlidXRlIG9yIGlmIHRoZXkgcHJvdmlkZSBcInVuZGVmaW5lZFwiICovXG4gICAgY29uc3QgbGFiZWxsZWRCeUF0dHJpYnV0ZSA9XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgbW9kYWxEaWFsb2dFbGVtZW50LmdldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JykhO1xuXG4gICAgcmV0dXJuIGxhYmVsbGVkQnlBdHRyaWJ1dGU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG1vZGFsIGNvbXBvbmVudCdzIHJvbGUgYXR0cmlidXRlLlxuICAgKi9cbiAgcHVibGljIGdldCBhcmlhUm9sZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1vZGFsRGlhbG9nRWxlbWVudCA9IHRoaXMuI2dldE1vZGFsRGlhbG9nRWxlbWVudCgpO1xuICAgIC8qIE5vbi1udWxsIGFzc2VydGlvbiBhcyBvdXIgY29tcG9uZW50IGhhcyBhIGRlZmF1bHQgZm9yIGlmIHRoZSB1c2VyIGRvZXMgbm90IHByb3ZpZGUgdGhpcyBhdHRyaWJ1dGUgb3IgaWYgdGhleSBwcm92aWRlIFwidW5kZWZpbmVkXCIgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIGNvbnN0IHJvbGVBdHRyaWJ1dGUgPSBtb2RhbERpYWxvZ0VsZW1lbnQuZ2V0QXR0cmlidXRlKCdyb2xlJykhO1xuICAgIHJldHVybiByb2xlQXR0cmlidXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBtb2RhbCBpcyBhIGZ1bGwgcGFnZSBtb2RhbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZnVsbFBhZ2UoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbW9kYWxEaXZFbGVtZW50ID0gdGhpcy5nZXRNb2RhbERpdigpO1xuICAgIHJldHVybiBtb2RhbERpdkVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktbW9kYWwtZnVsbC1wYWdlJyk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHNpemUgb2YgdGhlIG1vZGFsLlxuICAgKi9cbiAgcHVibGljIGdldCBzaXplKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgbW9kYWxEaXZFbGVtZW50ID0gdGhpcy5nZXRNb2RhbERpdigpO1xuICAgIGNvbnN0IHBvc3NpYmxlU2l6ZXMgPSBbJ3NtYWxsJywgJ21lZGl1bScsICdsYXJnZSddO1xuXG4gICAgZm9yIChjb25zdCBzaXplIG9mIHBvc3NpYmxlU2l6ZXMpIHtcbiAgICAgIGlmIChtb2RhbERpdkVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktbW9kYWwtJyArIHNpemUpKSB7XG4gICAgICAgIHJldHVybiBzaXplO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbW9kYWwgaXMgc2V0IHVwIGZvciB0aWxlZCBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGdldCB0aWxlZEJvZHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbW9kYWxEaXZFbGVtZW50ID0gdGhpcy5nZXRNb2RhbERpdigpO1xuICAgIHJldHVybiBtb2RhbERpdkVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdza3ktbW9kYWwtdGlsZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIG1vZGFsIGhlYWRlcidzIFwiY2xvc2VcIiBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgY2xpY2tIZWFkZXJDbG9zZUJ1dHRvbigpOiB2b2lkIHtcbiAgICB0aGlzLiNjaGVja01vZGFsRWxlbWVudCgpO1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSB0aGlzLiNtb2RhbEVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2t5LW1vZGFsIC5za3ktbW9kYWwtYnRuLWNsb3NlJ1xuICAgICk7XG5cbiAgICBpZiAoXG4gICAgICBjbG9zZUJ1dHRvbiAmJlxuICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoY2xvc2VCdXR0b24pLmRpc3BsYXkgIT09ICdub25lJ1xuICAgICkge1xuICAgICAgY2xvc2VCdXR0b24uY2xpY2soKTtcbiAgICAgIHRoaXMuI2ZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGhlYWRlciBjbG9zZSBidXR0b24gZXhpc3RzLmApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIG1vZGFsIGhlYWRlcidzIFwiaGVscFwiIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBjbGlja0hlbHBCdXR0b24oKTogdm9pZCB7XG4gICAgdGhpcy4jY2hlY2tNb2RhbEVsZW1lbnQoKTtcbiAgICBjb25zdCBoZWxwQnV0dG9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSB0aGlzLiNtb2RhbEVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2t5LW1vZGFsIC5za3ktbW9kYWwtaGVhZGVyLWJ1dHRvbnMgYnV0dG9uW25hbWU9XCJoZWxwLWJ1dHRvblwiXSdcbiAgICApO1xuXG4gICAgaWYgKGhlbHBCdXR0b24gJiYgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaGVscEJ1dHRvbikuZGlzcGxheSAhPT0gJ25vbmUnKSB7XG4gICAgICBoZWxwQnV0dG9uLmNsaWNrKCk7XG4gICAgICB0aGlzLiNmaXh0dXJlLmRldGVjdENoYW5nZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBoZWxwIGJ1dHRvbiBleGlzdHMuYCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG1haW4gbW9kYWwgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXRNb2RhbERpdigpOiBhbnkge1xuICAgIHRoaXMuI2NoZWNrTW9kYWxFbGVtZW50KCk7XG4gICAgcmV0dXJuIHRoaXMuI21vZGFsRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LW1vZGFsJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbW9kYWwncyBjb250ZW50IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0TW9kYWxDb250ZW50RWwoKTogYW55IHtcbiAgICB0aGlzLiNjaGVja01vZGFsRWxlbWVudCgpO1xuICAgIHJldHVybiB0aGlzLiNtb2RhbEVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNreS1tb2RhbC1jb250ZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbW9kYWwncyBmb290ZXIgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXRNb2RhbEZvb3RlckVsKCk6IGFueSB7XG4gICAgdGhpcy4jY2hlY2tNb2RhbEVsZW1lbnQoKTtcbiAgICByZXR1cm4gdGhpcy4jbW9kYWxFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5za3ktbW9kYWwtZm9vdGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbW9kYWwncyBoZWFkZXIgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXRNb2RhbEhlYWRlckVsKCk6IGFueSB7XG4gICAgdGhpcy4jY2hlY2tNb2RhbEVsZW1lbnQoKTtcbiAgICByZXR1cm4gdGhpcy4jbW9kYWxFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5za3ktbW9kYWwtaGVhZGVyJyk7XG4gIH1cblxuICAjY2hlY2tNb2RhbEVsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKCFkb2N1bWVudC5jb250YWlucyh0aGlzLiNtb2RhbEVsZW1lbnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZGFsIGVsZW1lbnQgbm8gbG9uZ2VyIGV4aXN0cy4gV2FzIHRoZSBtb2RhbCBjbG9zZWQ/Jyk7XG4gICAgfVxuICB9XG5cbiAgI2dldE1vZGFsRGlhbG9nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgdGhpcy4jY2hlY2tNb2RhbEVsZW1lbnQoKTtcbiAgICAvLyBXZSBjYW4gYWx3YXlzIGtub3cgdGhhdCB0aGUgZGlhbG9nIGVsZW1lbnQgd2lsbCBleGlzdCBpZiB0aGUgbW9kYWwgaXMgb3BlbiBhbmQgZXhpc3RzLlxuICAgIHJldHVybiB0aGlzLiNtb2RhbEVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNreS1tb2RhbC1kaWFsb2cnKSE7XG4gIH1cbn1cbiJdfQ==
|