@energycap/components 0.44.8 → 0.44.9-Angular19Upgrade.20260217-1620
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/fesm2022/energycap-components.mjs +379 -354
- package/fesm2022/energycap-components.mjs.map +1 -1
- package/lib/controls/button/copy-button-base.directive.d.ts +1 -1
- package/lib/controls/date-input/date-input.component.d.ts +1 -1
- package/lib/controls/form-control-base.d.ts +1 -1
- package/lib/core/date-time-helper.d.ts +2 -2
- package/lib/display/hierarchy/hierarchy-base.d.ts +1 -1
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +1 -1
- package/lib/display/resizable/resizable-base.d.ts +1 -1
- package/lib/shared/display/pipes/date-display.pipe.d.ts +1 -1
- package/lib/shared/page/page-base/page-base.component.d.ts +1 -1
- package/lib/shared/testing/public-mocks.spec.d.ts +1 -1
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +1 -1
- package/package.json +1 -3
- package/schematics/utilities/typescript.js +3 -4
- package/schematics/utilities/typescript.js.map +1 -1
- package/schematics/utilities/workspace.d.ts +0 -8
- package/schematics/utilities/workspace.js +48 -71
- package/schematics/utilities/workspace.js.map +1 -1
- package/esm2022/energycap-components.mjs +0 -5
- package/esm2022/lib/components.module.mjs +0 -425
- package/esm2022/lib/controls/banner/banner.component.mjs +0 -112
- package/esm2022/lib/controls/button/button.component.mjs +0 -114
- package/esm2022/lib/controls/button/copy-button-base.directive.mjs +0 -67
- package/esm2022/lib/controls/button/copy-button.directive.mjs +0 -28
- package/esm2022/lib/controls/button/copy-table-button.directive.mjs +0 -43
- package/esm2022/lib/controls/calendar/calendar-item.component.mjs +0 -91
- package/esm2022/lib/controls/calendar/calendar.component.mjs +0 -251
- package/esm2022/lib/controls/calendar/calendar.types.mjs +0 -2
- package/esm2022/lib/controls/checkbox/checkbox.component.mjs +0 -140
- package/esm2022/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +0 -38
- package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -879
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
- package/esm2022/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
- package/esm2022/lib/controls/date-input/date-input.component.mjs +0 -466
- package/esm2022/lib/controls/date-input/date-input.types.mjs +0 -44
- package/esm2022/lib/controls/dropdown/dropdown.component.mjs +0 -243
- package/esm2022/lib/controls/file-upload/file-upload.component.mjs +0 -261
- package/esm2022/lib/controls/form-control/form-control.component.mjs +0 -110
- package/esm2022/lib/controls/form-control-base.mjs +0 -151
- package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
- package/esm2022/lib/controls/form-group/form-group.component.mjs +0 -261
- package/esm2022/lib/controls/help-popover/help-popover.component.mjs +0 -31
- package/esm2022/lib/controls/item-picker/item-picker.component.mjs +0 -329
- package/esm2022/lib/controls/link-button/link-button.component.mjs +0 -11
- package/esm2022/lib/controls/menu/menu.component.mjs +0 -485
- package/esm2022/lib/controls/navigation/link-item.mjs +0 -2
- package/esm2022/lib/controls/navigation/nav-group.mjs +0 -39
- package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
- package/esm2022/lib/controls/navigation/nav-item.mjs +0 -2
- package/esm2022/lib/controls/numericbox/numericbox.component.mjs +0 -372
- package/esm2022/lib/controls/popover/popover.component.mjs +0 -117
- package/esm2022/lib/controls/radio-button/radio-button-option.mjs +0 -3
- package/esm2022/lib/controls/radio-button/radio-button.component.mjs +0 -82
- package/esm2022/lib/controls/select/select.component.mjs +0 -88
- package/esm2022/lib/controls/tabs/tabs.component.mjs +0 -47
- package/esm2022/lib/controls/textbox/textbox.component.mjs +0 -155
- package/esm2022/lib/core/cache.service.mjs +0 -105
- package/esm2022/lib/core/custom-validators.mjs +0 -29
- package/esm2022/lib/core/date-time-helper.mjs +0 -228
- package/esm2022/lib/core/error.service.mjs +0 -61
- package/esm2022/lib/core/router-helper.service.mjs +0 -111
- package/esm2022/lib/core/scroll.service.mjs +0 -89
- package/esm2022/lib/core/telemetry-tracker.service.mjs +0 -16
- package/esm2022/lib/core/telemetry.service.mjs +0 -38
- package/esm2022/lib/core/validation-message.service.mjs +0 -185
- package/esm2022/lib/core/validation-patterns.mjs +0 -31
- package/esm2022/lib/core/window.service.mjs +0 -186
- package/esm2022/lib/display/app-bar/app-bar.component.mjs +0 -49
- package/esm2022/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2022/lib/display/avatar/avatar.service.mjs +0 -64
- package/esm2022/lib/display/confirm/confirm.component.mjs +0 -168
- package/esm2022/lib/display/dialog/dialog-content.mjs +0 -2
- package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
- package/esm2022/lib/display/dialog/dialog-types.mjs +0 -77
- package/esm2022/lib/display/dialog/dialog.component.mjs +0 -287
- package/esm2022/lib/display/dialog/dialog.service.mjs +0 -71
- package/esm2022/lib/display/help/help-types.mjs +0 -2
- package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +0 -111
- package/esm2022/lib/display/hierarchy/hierarchy-mocks.spec.mjs +0 -54
- package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -65
- package/esm2022/lib/display/item-display/item-display.component.mjs +0 -83
- package/esm2022/lib/display/json-display/json-display.component.mjs +0 -47
- package/esm2022/lib/display/resizable/resizable-base.mjs +0 -120
- package/esm2022/lib/display/resizable/resizable.component.mjs +0 -57
- package/esm2022/lib/display/spinner/spinner.component.mjs +0 -12
- package/esm2022/lib/display/splash/splash.component.mjs +0 -61
- package/esm2022/lib/display/splash/splash.service.mjs +0 -35
- package/esm2022/lib/display/table/resizable-column.component.mjs +0 -20
- package/esm2022/lib/display/table/resizable-table.directive.mjs +0 -227
- package/esm2022/lib/display/table/searchable-table.component.mjs +0 -344
- package/esm2022/lib/display/table/table-detail-row.component.mjs +0 -28
- package/esm2022/lib/display/table/table-locked-column.component.mjs +0 -58
- package/esm2022/lib/display/table/table-master-header-row.component.mjs +0 -14
- package/esm2022/lib/display/table/table-master-row.component.mjs +0 -163
- package/esm2022/lib/display/table/table-pagination.component.mjs +0 -155
- package/esm2022/lib/display/table/table-selectable-row.component.mjs +0 -235
- package/esm2022/lib/display/table/table.component.mjs +0 -257
- package/esm2022/lib/display/tags/tag.mjs +0 -18
- package/esm2022/lib/display/tags/tags.component.mjs +0 -82
- package/esm2022/lib/display/toast/toast/toast.component.mjs +0 -77
- package/esm2022/lib/display/toast/toast-types.mjs +0 -8
- package/esm2022/lib/display/toast/toast.service.mjs +0 -35
- package/esm2022/lib/display/toast/toaster/toaster.component.mjs +0 -114
- package/esm2022/lib/display/tooltip/tooltip.component.mjs +0 -28
- package/esm2022/lib/display/tooltip/tooltip.service.mjs +0 -78
- package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
- package/esm2022/lib/display/tree/tree.component.mjs +0 -139
- package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +0 -58
- package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
- package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
- package/esm2022/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -103
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +0 -166
- package/esm2022/lib/shared/display/pipes/date-display-2.pipe.mjs +0 -39
- package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +0 -51
- package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
- package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
- package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
- package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
- package/esm2022/lib/shared/display.mjs +0 -6
- package/esm2022/lib/shared/form-group.helper.mjs +0 -67
- package/esm2022/lib/shared/json-helper.mjs +0 -19
- package/esm2022/lib/shared/lodash-helper.mjs +0 -52
- package/esm2022/lib/shared/page/page-base/page-base.component.mjs +0 -387
- package/esm2022/lib/shared/page/page-statuses.mjs +0 -23
- package/esm2022/lib/shared/page/page-title/page-title.component.mjs +0 -23
- package/esm2022/lib/shared/page/page-view/page-view.component.mjs +0 -147
- package/esm2022/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +0 -17
- package/esm2022/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +0 -17
- package/esm2022/lib/shared/testing/page-base-component-test-helper.spec.mjs +0 -38
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/esm2022/lib/shared/testing/public-mocks.spec.mjs +0 -148
- package/esm2022/lib/shared/testing/spy-factory.spec.mjs +0 -40
- package/esm2022/lib/shared/testing/translation-mocks.spec.mjs +0 -57
- package/esm2022/lib/shared/user-preference.service.mjs +0 -17
- package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
- package/esm2022/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +0 -68
- package/esm2022/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +0 -18
- package/esm2022/public-api.mjs +0 -115
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class AvatarService {
|
|
4
|
-
/**
|
|
5
|
-
* Return the full and abbreviated labels based on the users first name, email, or username. If the user has a first or last name use
|
|
6
|
-
* either a combination of the first and last name, or the first two characters of the name that is defined. If the user does
|
|
7
|
-
* not have a first or last name, trying using the first two characters of the email, or the first two characters of the
|
|
8
|
-
* username as a last ditch effort.
|
|
9
|
-
* @param user
|
|
10
|
-
* @returns
|
|
11
|
-
*/
|
|
12
|
-
getAvatarLabels(user) {
|
|
13
|
-
let full = undefined;
|
|
14
|
-
let abbreviation = 'HI';
|
|
15
|
-
let trimmedUser = this.trimUser(user);
|
|
16
|
-
if (trimmedUser.firstName || trimmedUser.lastName) {
|
|
17
|
-
if (trimmedUser.firstName) {
|
|
18
|
-
abbreviation = trimmedUser.firstName.slice(0, 1);
|
|
19
|
-
full = trimmedUser.firstName;
|
|
20
|
-
if (trimmedUser.lastName) {
|
|
21
|
-
full += ` ${trimmedUser.lastName}`;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
abbreviation = trimmedUser.lastName.slice(0, 1);
|
|
26
|
-
full = trimmedUser.lastName;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
else if (trimmedUser.email) {
|
|
30
|
-
abbreviation = trimmedUser.email.slice(0, 1);
|
|
31
|
-
full = trimmedUser.email;
|
|
32
|
-
}
|
|
33
|
-
else if (trimmedUser.username) {
|
|
34
|
-
abbreviation = trimmedUser.username.slice(0, 1);
|
|
35
|
-
full = trimmedUser.username;
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
abbreviation: abbreviation,
|
|
39
|
-
full: full
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Return a new user object that has all of the properties of the existing user
|
|
44
|
-
* with any null, undefined, or whitespace values removed
|
|
45
|
-
*/
|
|
46
|
-
trimUser(user) {
|
|
47
|
-
let trimmedUser = {
|
|
48
|
-
email: (user.email || '').trim(),
|
|
49
|
-
firstName: (user.firstName || '').trim(),
|
|
50
|
-
lastName: (user.lastName || '').trim(),
|
|
51
|
-
username: (user.username || '').trim()
|
|
52
|
-
};
|
|
53
|
-
return trimmedUser;
|
|
54
|
-
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
56
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AvatarService, providedIn: 'root' }); }
|
|
57
|
-
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AvatarService, decorators: [{
|
|
59
|
-
type: Injectable,
|
|
60
|
-
args: [{
|
|
61
|
-
providedIn: 'root'
|
|
62
|
-
}]
|
|
63
|
-
}] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9hdmF0YXIvYXZhdGFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXM0MsTUFBTSxPQUFPLGFBQWE7SUFFeEI7Ozs7Ozs7T0FPRztJQUNJLGVBQWUsQ0FBQyxJQUFnQjtRQUNyQyxJQUFJLElBQUksR0FBdUIsU0FBUyxDQUFDO1FBQ3pDLElBQUksWUFBWSxHQUFXLElBQUksQ0FBQztRQUVoQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksV0FBVyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEQsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzFCLFlBQVksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELElBQUksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO2dCQUU3QixJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxJQUFJLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNyQyxDQUFDO1lBQ0gsQ0FBQztpQkFDSSxDQUFDO2dCQUNKLFlBQVksR0FBRyxXQUFXLENBQUMsUUFBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELElBQUksR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDO2FBQ0ksSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3QyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUMzQixDQUFDO2FBQ0ksSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsWUFBWSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUM5QixDQUFDO1FBRUQsT0FBTztZQUNMLFlBQVksRUFBRSxZQUFZO1lBQzFCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxRQUFRLENBQUMsSUFBZ0I7UUFDL0IsSUFBSSxXQUFXLEdBQWU7WUFDNUIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDaEMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDeEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDdEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7U0FDdkMsQ0FBQTtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7K0dBeERVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXZhdGFyVXNlciB9IGZyb20gJy4vYXZhdGFyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIEF2YXRhckxhYmVscyA9IHtcbiAgYWJicmV2aWF0aW9uOiBzdHJpbmc7XG4gIGZ1bGw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZnVsbCBhbmQgYWJicmV2aWF0ZWQgbGFiZWxzIGJhc2VkIG9uIHRoZSB1c2VycyBmaXJzdCBuYW1lLCBlbWFpbCwgb3IgdXNlcm5hbWUuIElmIHRoZSB1c2VyIGhhcyBhIGZpcnN0IG9yIGxhc3QgbmFtZSB1c2UgXG4gICAqIGVpdGhlciBhIGNvbWJpbmF0aW9uIG9mIHRoZSBmaXJzdCBhbmQgbGFzdCBuYW1lLCBvciB0aGUgZmlyc3QgdHdvIGNoYXJhY3RlcnMgb2YgdGhlIG5hbWUgdGhhdCBpcyBkZWZpbmVkLiBJZiB0aGUgdXNlciBkb2VzXG4gICAqIG5vdCBoYXZlIGEgZmlyc3Qgb3IgbGFzdCBuYW1lLCB0cnlpbmcgdXNpbmcgdGhlIGZpcnN0IHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBlbWFpbCwgb3IgdGhlIGZpcnN0IHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBcbiAgICogdXNlcm5hbWUgYXMgYSBsYXN0IGRpdGNoIGVmZm9ydC5cbiAgICogQHBhcmFtIHVzZXIgXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgcHVibGljIGdldEF2YXRhckxhYmVscyh1c2VyOiBBdmF0YXJVc2VyKTogQXZhdGFyTGFiZWxzIHtcbiAgICBsZXQgZnVsbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGxldCBhYmJyZXZpYXRpb246IHN0cmluZyA9ICdISSc7XG5cbiAgICBsZXQgdHJpbW1lZFVzZXIgPSB0aGlzLnRyaW1Vc2VyKHVzZXIpO1xuICAgIGlmICh0cmltbWVkVXNlci5maXJzdE5hbWUgfHwgdHJpbW1lZFVzZXIubGFzdE5hbWUpIHtcbiAgICAgIGlmICh0cmltbWVkVXNlci5maXJzdE5hbWUpIHtcbiAgICAgICAgYWJicmV2aWF0aW9uID0gdHJpbW1lZFVzZXIuZmlyc3ROYW1lLnNsaWNlKDAsIDEpO1xuICAgICAgICBmdWxsID0gdHJpbW1lZFVzZXIuZmlyc3ROYW1lO1xuXG4gICAgICAgIGlmICh0cmltbWVkVXNlci5sYXN0TmFtZSkge1xuICAgICAgICAgIGZ1bGwgKz0gYCAke3RyaW1tZWRVc2VyLmxhc3ROYW1lfWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICBhYmJyZXZpYXRpb24gPSB0cmltbWVkVXNlci5sYXN0TmFtZSEuc2xpY2UoMCwgMSk7XG4gICAgICAgIGZ1bGwgPSB0cmltbWVkVXNlci5sYXN0TmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodHJpbW1lZFVzZXIuZW1haWwpIHtcbiAgICAgIGFiYnJldmlhdGlvbiA9IHRyaW1tZWRVc2VyLmVtYWlsLnNsaWNlKDAsIDEpO1xuICAgICAgZnVsbCA9IHRyaW1tZWRVc2VyLmVtYWlsO1xuICAgIH1cbiAgICBlbHNlIGlmICh0cmltbWVkVXNlci51c2VybmFtZSkge1xuICAgICAgYWJicmV2aWF0aW9uID0gdHJpbW1lZFVzZXIudXNlcm5hbWUuc2xpY2UoMCwgMSk7XG4gICAgICBmdWxsID0gdHJpbW1lZFVzZXIudXNlcm5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFiYnJldmlhdGlvbjogYWJicmV2aWF0aW9uLFxuICAgICAgZnVsbDogZnVsbFxuICAgIH1cbiAgfVxuXG4gIC8qKiBcbiAgICogUmV0dXJuIGEgbmV3IHVzZXIgb2JqZWN0IHRoYXQgaGFzIGFsbCBvZiB0aGUgcHJvcGVydGllcyBvZiB0aGUgZXhpc3RpbmcgdXNlclxuICAgKiB3aXRoIGFueSBudWxsLCB1bmRlZmluZWQsIG9yIHdoaXRlc3BhY2UgdmFsdWVzIHJlbW92ZWRcbiAgICovXG4gIHByaXZhdGUgdHJpbVVzZXIodXNlcjogQXZhdGFyVXNlcik6IEF2YXRhclVzZXIge1xuICAgIGxldCB0cmltbWVkVXNlcjogQXZhdGFyVXNlciA9IHtcbiAgICAgIGVtYWlsOiAodXNlci5lbWFpbCB8fCAnJykudHJpbSgpLFxuICAgICAgZmlyc3ROYW1lOiAodXNlci5maXJzdE5hbWUgfHwgJycpLnRyaW0oKSxcbiAgICAgIGxhc3ROYW1lOiAodXNlci5sYXN0TmFtZSB8fCAnJykudHJpbSgpLFxuICAgICAgdXNlcm5hbWU6ICh1c2VyLnVzZXJuYW1lIHx8ICcnKS50cmltKClcbiAgICB9XG4gICAgcmV0dXJuIHRyaW1tZWRVc2VyO1xuICB9XG59XG4iXX0=
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
|
|
3
|
-
import { Overlay } from '../view-overlay/view-overlay.component';
|
|
4
|
-
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { Subject } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common";
|
|
8
|
-
import * as i2 from "@angular/forms";
|
|
9
|
-
import * as i3 from "../../controls/button/button.component";
|
|
10
|
-
import * as i4 from "../../controls/textbox/textbox.component";
|
|
11
|
-
import * as i5 from "../view-overlay/view-overlay.component";
|
|
12
|
-
import * as i6 from "../../controls/banner/banner.component";
|
|
13
|
-
import * as i7 from "../../controls/checkbox/checkbox.component";
|
|
14
|
-
import * as i8 from "@ngx-translate/core";
|
|
15
|
-
export class ConfirmDialogContext {
|
|
16
|
-
constructor() {
|
|
17
|
-
/** Id to distinguish between confirm component contexts emitted by the dialog service */
|
|
18
|
-
this.id = '';
|
|
19
|
-
/**
|
|
20
|
-
* Optional required flag for the textbox, will set
|
|
21
|
-
* a validator on the input if true
|
|
22
|
-
*/
|
|
23
|
-
this.textboxRequired = false;
|
|
24
|
-
/** Sets the textbox's uppercase parameter */
|
|
25
|
-
this.textboxUppercase = false;
|
|
26
|
-
/**
|
|
27
|
-
* Optional textbox height (in rows).
|
|
28
|
-
* Only applies to multi-line type.
|
|
29
|
-
* Default 3.
|
|
30
|
-
*/
|
|
31
|
-
this.textareaRows = 3;
|
|
32
|
-
/** Optional save button label */
|
|
33
|
-
this.saveLabel = 'Save'; // LOCO
|
|
34
|
-
/** Optional save button type */
|
|
35
|
-
this.saveButtonType = 'primary';
|
|
36
|
-
/** Optional cancel button label */
|
|
37
|
-
this.cancelLabel = 'Cancel'; // LOCO
|
|
38
|
-
/** Optional flag for hiding the cancel (secondary) button */
|
|
39
|
-
this.hideCancel = false;
|
|
40
|
-
/** When true, adds the submit tag to the save button so hitting enter triggers the save */
|
|
41
|
-
this.saveOnEnter = false;
|
|
42
|
-
/** Optional alternate save button label */
|
|
43
|
-
this.alternateSaveLabel = undefined;
|
|
44
|
-
/** Optional alternate save button type */
|
|
45
|
-
this.alternateSaveButtonType = undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Used to know which save button was selected in case the calling component
|
|
48
|
-
* is utilizing the alternate save button
|
|
49
|
-
*/
|
|
50
|
-
this.saveSource = 'primary';
|
|
51
|
-
/** The message to be displayed while inlineConfirmAction is pending. */
|
|
52
|
-
this.inlineConfirmPendingMessage = '';
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
export class ConfirmComponent {
|
|
56
|
-
onOpen(openContext) {
|
|
57
|
-
this.context = openContext;
|
|
58
|
-
this.dialogId = openContext.id;
|
|
59
|
-
if (this.context.alternateSaveLabel) {
|
|
60
|
-
this.context.saveOnEnter = false;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
constructor() {
|
|
64
|
-
this.dialogId = 'Confirm';
|
|
65
|
-
/** Form Group to hold any form controls needed */
|
|
66
|
-
this.formGroup = new UntypedFormGroup({});
|
|
67
|
-
this.status = new Overlay('hasData');
|
|
68
|
-
this.showTextBox = false;
|
|
69
|
-
this.destroyed = new Subject();
|
|
70
|
-
this.onDialogSave = new EventEmitter();
|
|
71
|
-
this.onDialogCancel = new EventEmitter();
|
|
72
|
-
}
|
|
73
|
-
ngOnInit() {
|
|
74
|
-
this.addFormControls();
|
|
75
|
-
this.setValidations();
|
|
76
|
-
this.listenCheckBox();
|
|
77
|
-
}
|
|
78
|
-
onSave(source) {
|
|
79
|
-
this.formGroup.markAllAsTouched();
|
|
80
|
-
if (this.formGroup.valid) {
|
|
81
|
-
let formValues = this.formGroup.getRawValue();
|
|
82
|
-
if (formValues.textbox) {
|
|
83
|
-
this.context.textboxValue = formValues.textbox;
|
|
84
|
-
}
|
|
85
|
-
if (this.context.checkConfirm) {
|
|
86
|
-
this.context.checkboxValue = formValues.checkbox ? formValues.checkbox : false;
|
|
87
|
-
}
|
|
88
|
-
this.context.saveSource = source;
|
|
89
|
-
if (this.context.inlineConfirmAction) {
|
|
90
|
-
this.doInlineConfirmAction();
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
this.onDialogSave.emit(this.context);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else if (this.context.validationErrorMessage) {
|
|
97
|
-
this.error = this.context.validationErrorMessage;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
onCancel() {
|
|
101
|
-
this.onDialogCancel.emit();
|
|
102
|
-
}
|
|
103
|
-
ngOnDestroy() {
|
|
104
|
-
this.destroyed.next();
|
|
105
|
-
this.destroyed.complete();
|
|
106
|
-
}
|
|
107
|
-
listenCheckBox() {
|
|
108
|
-
this.formGroup.get('checkbox')?.valueChanges.pipe(takeUntil(this.destroyed)).subscribe(value => {
|
|
109
|
-
this.showTextBox = value;
|
|
110
|
-
this.setValidations();
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
setValidations() {
|
|
114
|
-
const showCheckBox = this.formGroup.get('checkbox');
|
|
115
|
-
const textBoxControl = this.formGroup.controls['textbox'];
|
|
116
|
-
if (showCheckBox) {
|
|
117
|
-
this.showTextBox ? textBoxControl?.enable() : textBoxControl?.disable();
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
textBoxControl?.enable();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Adds the textbox form control to our form group if its configured to be visible
|
|
125
|
-
* Will also add the required validator if requested
|
|
126
|
-
*/
|
|
127
|
-
addFormControls() {
|
|
128
|
-
if (this.context.textboxType) {
|
|
129
|
-
let validators = [];
|
|
130
|
-
if (this.context.textboxRequired) {
|
|
131
|
-
validators.push(Validators.required);
|
|
132
|
-
}
|
|
133
|
-
if (this.context.textboxValidators) {
|
|
134
|
-
validators.push(...this.context.textboxValidators);
|
|
135
|
-
}
|
|
136
|
-
this.formGroup.addControl('textbox', new UntypedFormControl('', validators));
|
|
137
|
-
}
|
|
138
|
-
if (this.context.checkConfirm) {
|
|
139
|
-
this.showTextBox = false;
|
|
140
|
-
const checkboxControl = new UntypedFormControl('');
|
|
141
|
-
this.formGroup.addControl('checkbox', checkboxControl);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
async doInlineConfirmAction() {
|
|
145
|
-
this.status.setStatus('pending', this.context.inlineConfirmPendingMessage);
|
|
146
|
-
let result = await this.context.inlineConfirmAction();
|
|
147
|
-
this.status.setStatus('noData', result.message, {
|
|
148
|
-
id: 'inlineConfirmClose',
|
|
149
|
-
label: 'Close',
|
|
150
|
-
icon: result.isSuccess ? 'icon-check-circle' : 'icon-error',
|
|
151
|
-
classlist: result.isSuccess ? 'font-color-success' : 'font-color-error',
|
|
152
|
-
onClick: () => { result.isSuccess ? this.onDialogSave.emit(this.context) : this.onDialogCancel.emit(); }
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfirmComponent, selector: "ec-confirm", inputs: { context: "context" }, outputs: { onDialogSave: "onDialogSave", onDialogCancel: "onDialogCancel" }, ngImport: i0, template: "<section ecOverlay\n [status]=\"status?.status\"\n [message]=\"status?.message\"\n [action]=\"status?.action\"\n [noDataTemplate]=\"inlineConfirmResult\"\n overlayClassList=\"p-0\"\n class=\"bg-body flex-grow d-flex\">\n <form [formGroup]=\"formGroup\" class=\"flex-grow flex-column confirm-content text-body-1\">\n <section class=\"flex-grow\">\n <h2 class=\"font-weight-bold mb-3\" *ngIf=\"context?.title\">{{context?.title}}</h2>\n <ec-banner *ngIf=\"error\" [text]=\"error | translate\" bannerStyle=\"normal\" class=\"mb-3\"></ec-banner>\n <div *ngIf=\"context?.message\" [innerHtml]=\"context?.message | translate\" class=\"mb-3\"></div>\n \n <ec-checkbox *ngIf=\"context?.checkConfirm\"\n [formModel]=\"formGroup.get('checkbox')\"\n name=\"confirmCheckbox\"\n [label]=\"context?.checkboxText\"\n [autofocus]=\"true\"\n ></ec-checkbox>\n <div *ngIf=\"showTextBox\" [innerHtml]=\"context.confirmLabel\" class=\"mb-3\"></div>\n <ec-textbox id=\"confirmTextbox\"\n *ngIf=\"(context?.textboxType && !context?.checkConfirm) || showTextBox\"\n [autofocus]=\"true\"\n [formModel]=\"formGroup.get('textbox')\"\n [required]=\"context?.textboxRequired\"\n [label]=\"context?.textboxLabel\"\n [type]=\"context?.textboxType\"\n [rows]=\"context?.textareaRows\"\n [placeholder]=\"context?.textboxPlaceholder\"\n [upperCase]=\"context?.textboxUppercase\">\n </ec-textbox>\n </section>\n <footer class=\"mt-auto flex-shrink d-flex py-2 flex-row-reverse\">\n <ec-button id=\"saveConfirmButton\"\n class=\"ml-2\"\n [type]=\"context?.saveButtonType ? context?.saveButtonType : 'primary'\"\n [label]=\"context?.saveLabel ? context?.saveLabel : 'Save'\"\n [autofocus]=\"!context?.textboxType\"\n [isSubmit]=\"context?.saveOnEnter\"\n (clicked)=\"onSave('primary')\">\n </ec-button>\n <ec-button id=\"alternateSaveConfirmButton\"\n *ngIf=\"context?.alternateSaveLabel\"\n class=\"ml-2\"\n [type]=\"context?.alternateSaveButtonType ? context?.alternateSaveButtonType : 'primary'\"\n [label]=\"context?.alternateSaveLabel\"\n (clicked)=\"onSave('alternate')\">\n </ec-button>\n <ec-button *ngIf=\"!context?.hideCancel\"\n id=\"cancelConfirmButton\"\n class=\"ml-auto\"\n type=\"secondary\"\n [label]=\"context?.cancelLabel ? context?.cancelLabel : 'Cancel'\"\n (clicked)=\"onCancel()\">\n </ec-button>\n </footer>\n </form>\n</section>\n\n<ng-template #inlineConfirmResult>\n <section class=\"flex-grow align-self-stretch confirm-content text-body-1\">\n <div class=\"d-flex\">\n <i class=\"ec-icon {{status?.action?.icon}} {{status?.action?.classlist}} inline-confirm-result-icon\"></i>\n <div [innerHTML]=\"status?.message | translate\"></div>\n </div>\n <div class=\"d-flex pt-2 mt-auto\">\n <ec-button id=\"inlineConfirmClose\"\n label=\"Close\"\n type=\"secondary\"\n class=\"ml-auto\"\n (clicked)=\"status?.action?.onClick!()\"\n [autofocus]=\"true\">\n </ec-button>\n </div>\n </section>\n</ng-template>", styles: [":host{width:100%;display:flex}.confirm-content{padding:1.5rem;display:flex;flex-direction:column}.inline-confirm-result-icon{margin:.0625rem .25rem .0625rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "lockButton", "icon", "iconColor", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }, { kind: "component", type: i4.TextboxComponent, selector: "ec-textbox", inputs: ["autocomplete", "type", "placeholder", "maxlength", "minlength", "rows", "selectOnAutofocus", "upperCase"] }, { kind: "component", type: i5.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: i6.BannerComponent, selector: "ec-banner", inputs: ["hidden", "id", "type", "bannerStyle", "title", "text", "list", "showCloseBtn", "autoHideOnClose", "customIcon", "rememberClosed"], outputs: ["closed"] }, { kind: "component", type: i7.CheckboxComponent, selector: "ec-checkbox", inputs: ["name", "dependentCheckboxesGroup", "ignoreDisabledDependents"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
157
|
-
}
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfirmComponent, decorators: [{
|
|
159
|
-
type: Component,
|
|
160
|
-
args: [{ selector: 'ec-confirm', template: "<section ecOverlay\n [status]=\"status?.status\"\n [message]=\"status?.message\"\n [action]=\"status?.action\"\n [noDataTemplate]=\"inlineConfirmResult\"\n overlayClassList=\"p-0\"\n class=\"bg-body flex-grow d-flex\">\n <form [formGroup]=\"formGroup\" class=\"flex-grow flex-column confirm-content text-body-1\">\n <section class=\"flex-grow\">\n <h2 class=\"font-weight-bold mb-3\" *ngIf=\"context?.title\">{{context?.title}}</h2>\n <ec-banner *ngIf=\"error\" [text]=\"error | translate\" bannerStyle=\"normal\" class=\"mb-3\"></ec-banner>\n <div *ngIf=\"context?.message\" [innerHtml]=\"context?.message | translate\" class=\"mb-3\"></div>\n \n <ec-checkbox *ngIf=\"context?.checkConfirm\"\n [formModel]=\"formGroup.get('checkbox')\"\n name=\"confirmCheckbox\"\n [label]=\"context?.checkboxText\"\n [autofocus]=\"true\"\n ></ec-checkbox>\n <div *ngIf=\"showTextBox\" [innerHtml]=\"context.confirmLabel\" class=\"mb-3\"></div>\n <ec-textbox id=\"confirmTextbox\"\n *ngIf=\"(context?.textboxType && !context?.checkConfirm) || showTextBox\"\n [autofocus]=\"true\"\n [formModel]=\"formGroup.get('textbox')\"\n [required]=\"context?.textboxRequired\"\n [label]=\"context?.textboxLabel\"\n [type]=\"context?.textboxType\"\n [rows]=\"context?.textareaRows\"\n [placeholder]=\"context?.textboxPlaceholder\"\n [upperCase]=\"context?.textboxUppercase\">\n </ec-textbox>\n </section>\n <footer class=\"mt-auto flex-shrink d-flex py-2 flex-row-reverse\">\n <ec-button id=\"saveConfirmButton\"\n class=\"ml-2\"\n [type]=\"context?.saveButtonType ? context?.saveButtonType : 'primary'\"\n [label]=\"context?.saveLabel ? context?.saveLabel : 'Save'\"\n [autofocus]=\"!context?.textboxType\"\n [isSubmit]=\"context?.saveOnEnter\"\n (clicked)=\"onSave('primary')\">\n </ec-button>\n <ec-button id=\"alternateSaveConfirmButton\"\n *ngIf=\"context?.alternateSaveLabel\"\n class=\"ml-2\"\n [type]=\"context?.alternateSaveButtonType ? context?.alternateSaveButtonType : 'primary'\"\n [label]=\"context?.alternateSaveLabel\"\n (clicked)=\"onSave('alternate')\">\n </ec-button>\n <ec-button *ngIf=\"!context?.hideCancel\"\n id=\"cancelConfirmButton\"\n class=\"ml-auto\"\n type=\"secondary\"\n [label]=\"context?.cancelLabel ? context?.cancelLabel : 'Cancel'\"\n (clicked)=\"onCancel()\">\n </ec-button>\n </footer>\n </form>\n</section>\n\n<ng-template #inlineConfirmResult>\n <section class=\"flex-grow align-self-stretch confirm-content text-body-1\">\n <div class=\"d-flex\">\n <i class=\"ec-icon {{status?.action?.icon}} {{status?.action?.classlist}} inline-confirm-result-icon\"></i>\n <div [innerHTML]=\"status?.message | translate\"></div>\n </div>\n <div class=\"d-flex pt-2 mt-auto\">\n <ec-button id=\"inlineConfirmClose\"\n label=\"Close\"\n type=\"secondary\"\n class=\"ml-auto\"\n (clicked)=\"status?.action?.onClick!()\"\n [autofocus]=\"true\">\n </ec-button>\n </div>\n </section>\n</ng-template>", styles: [":host{width:100%;display:flex}.confirm-content{padding:1.5rem;display:flex;flex-direction:column}.inline-confirm-result-icon{margin:.0625rem .25rem .0625rem 0}\n"] }]
|
|
161
|
-
}], ctorParameters: () => [], propDecorators: { context: [{
|
|
162
|
-
type: Input
|
|
163
|
-
}], onDialogSave: [{
|
|
164
|
-
type: Output
|
|
165
|
-
}], onDialogCancel: [{
|
|
166
|
-
type: Output
|
|
167
|
-
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvY29uZmlybS9jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUsvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTL0IsTUFBTSxPQUFPLG9CQUFvQjtJQUFqQztRQUNFLHlGQUF5RjtRQUNsRixPQUFFLEdBQVcsRUFBRSxDQUFDO1FBK0J2Qjs7O1dBR0c7UUFDSSxvQkFBZSxHQUFhLEtBQUssQ0FBQztRQUt6Qyw2Q0FBNkM7UUFDdEMscUJBQWdCLEdBQWEsS0FBSyxDQUFDO1FBRTFDOzs7O1dBSUc7UUFDSSxpQkFBWSxHQUFZLENBQUMsQ0FBQztRQWFqQyxpQ0FBaUM7UUFDMUIsY0FBUyxHQUFZLE1BQU0sQ0FBQyxDQUFDLE9BQU87UUFFM0MsZ0NBQWdDO1FBQ3pCLG1CQUFjLEdBQWdCLFNBQVMsQ0FBQztRQUUvQyxtQ0FBbUM7UUFDNUIsZ0JBQVcsR0FBWSxRQUFRLENBQUMsQ0FBQyxPQUFPO1FBRS9DLDZEQUE2RDtRQUN0RCxlQUFVLEdBQWEsS0FB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QyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7U0FDeEcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FsSVUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsK0pDNUg3Qiw2a0hBMkVjOzs0RkRpREQsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFlBQVk7d0RBcUJOLE9BQU87c0JBQXRCLEtBQUs7Z0JBRVcsWUFBWTtzQkFBNUIsTUFBTTtnQkFDVSxjQUFjO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dGJveFR5cGUgfSBmcm9tICcuLi8uLi9jb250cm9scy90ZXh0Ym94L3RleHRib3guY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ0NvbnRlbnQgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLWNvbnRlbnQnO1xuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJy4uL3ZpZXctb3ZlcmxheS92aWV3LW92ZXJsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxudHlwZSBTYXZlU291cmNlID0gJ3ByaW1hcnknfCdhbHRlcm5hdGUnO1xuXG5leHBvcnQgdHlwZSBDdXN0b21BY3Rpb25SZXN1bHQgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgaXNTdWNjZXNzOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNsYXNzIENvbmZpcm1EaWFsb2dDb250ZXh0IHtcbiAgLyoqIElkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gY29uZmlybSBjb21wb25lbnQgY29udGV4dHMgZW1pdHRlZCBieSB0aGUgZGlhbG9nIHNlcnZpY2UgKi9cbiAgcHVibGljIGlkOiBzdHJpbmcgPSAnJztcblxuICAvKiogT3B0aW9uYWwgdGl0bGUgb2YgdGhlIGNvbmZpcm0gKi9cbiAgcHVibGljIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKiBPcHRpb25hbCBtZXNzYWdlICovXG4gIHB1YmxpYyBtZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKiBPcHRpb25hbCBjaGVja0NvbmZpcm1cbiAgICogdGhpcyB3aWxsIGRldGVybWluZSBpZiBlYy1jaGVja2JveCBpcyBhdmFpbGFibGUgb3Igbm9cbiAgICogaW4gb3JkZXIgdG8gZGVsZXRlIG9yIG1vdmUgdG8gbm8gcGFyZW50IHRoZSBlbnRpdHlcbiAgICovXG4gIHB1YmxpYyBjaGVja0NvbmZpcm0/OmJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGNoZWNrYm94Q29udGVudFxuICAgKiBEZXRlcm1pbmUgdGhlIGxhYmVsIG5leHQgdG8gdGhlIGNoZWNrYm94XG4gICAqIGlmIGNoZWNrQ29uZmlybSBpcyB0cnVlIG90aGVyd2lzZSBpcyBub3QgdmlzaWJsZVxuICAgKi9cblxuICBwdWJsaWMgY2hlY2tib3hUZXh0PzpzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRleHRib3ggdHlwZSwgdGhpcyB3aWxsIGRldGVybWluZSB3aGV0aGVyXG4gICAqIGFuIGlucHV0IGlzIHZpc2libGUgb3Igbm90XG4gICAqL1xuICBwdWJsaWMgdGV4dGJveFR5cGU/OiBUZXh0Ym94VHlwZTtcblxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBsYWJlbCAqL1xuICBwdWJsaWMgdGV4dGJveExhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCByZXF1aXJlZCBmbGFnIGZvciB0aGUgdGV4dGJveCwgd2lsbCBzZXRcbiAgICogYSB2YWxpZGF0b3Igb24gdGhlIGlucHV0IGlmIHRydWVcbiAgICovXG4gIHB1YmxpYyB0ZXh0Ym94UmVxdWlyZWQ/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE9wdGlvbmFsIGFycmF5IG9mIHZhbGlkYXRvcnMgdG8gYWRkIHRvIHRoZSB0ZXh0Ym94IGZvcm0gY29udHJvbC4gKi9cbiAgcHVibGljIHRleHRib3hWYWxpZGF0b3JzPzogVmFsaWRhdG9yRm5bXTtcblxuICAvKiogU2V0cyB0aGUgdGV4dGJveCdzIHVwcGVyY2FzZSBwYXJhbWV0ZXIgKi9cbiAgcHVibGljIHRleHRib3hVcHBlcmNhc2U/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRleHRib3ggaGVpZ2h0IChpbiByb3dzKS5cbiAgICogT25seSBhcHBsaWVzIHRvIG11bHRpLWxpbmUgdHlwZS5cbiAgICogRGVmYXVsdCAzLlxuICAgKi9cbiAgcHVibGljIHRleHRhcmVhUm93cz86IG51bWJlciA9IDM7XG5cbiAgLyoqIE9wdGlvbmFsIHRleHRib3ggcGxhY2Vob2xkZXIgdGV4dCAqL1xuICBwdWJsaWMgdGV4dGJveFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKiBPcHRpb25hbCBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB0ZXh0Ym94ICovXG4gIHB1YmxpYyB2YWxpZGF0aW9uRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKiBWYWx1ZSByZXR1cm5lZCBmcm9tIHRoZSBpbnB1dCBpZiBlbmFibGVkICovXG4gIHB1YmxpYyB0ZXh0Ym94VmFsdWU/OiBzdHJpbmc7XG4gIHB1YmxpYyBjaGVja2JveFZhbHVlPzpib29sZWFuO1xuICBwdWJsaWMgY29uZmlybUxhYmVsPzpzdHJpbmc7XG5cbiAgLyoqIE9wdGlvbmFsIHNhdmUgYnV0dG9uIGxhYmVsICovXG4gIHB1YmxpYyBzYXZlTGFiZWw/OiBzdHJpbmcgPSAnU2F2ZSc7IC8vIExPQ09cblxuICAvKiogT3B0aW9uYWwgc2F2ZSBidXR0b24gdHlwZSAqL1xuICBwdWJsaWMgc2F2ZUJ1dHRvblR5cGU/OiBCdXR0b25UeXBlID0gJ3ByaW1hcnknO1xuXG4gIC8qKiBPcHRpb25hbCBjYW5jZWwgYnV0dG9uIGxhYmVsICovXG4gIHB1YmxpYyBjYW5jZWxMYWJlbD86IHN0cmluZyA9ICdDYW5jZWwnOyAvLyBMT0NPXG5cbiAgLyoqIE9wdGlvbmFsIGZsYWcgZm9yIGhpZGluZyB0aGUgY2FuY2VsIChzZWNvbmRhcnkpIGJ1dHRvbiAqL1xuICBwdWJsaWMgaGlkZUNhbmNlbD86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogV2hlbiB0cnVlLCBhZGRzIHRoZSBzdWJtaXQgdGFnIHRvIHRoZSBzYXZlIGJ1dHRvbiBzbyBoaXR0aW5nIGVudGVyIHRyaWdnZXJzIHRoZSBzYXZlICovXG4gIHB1YmxpYyBzYXZlT25FbnRlcj86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3B0aW9uYWwgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uIGxhYmVsICovXG4gIHB1YmxpYyBhbHRlcm5hdGVTYXZlTGFiZWw/OiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgLyoqIE9wdGlvbmFsIGFsdGVybmF0ZSBzYXZlIGJ1dHRvbiB0eXBlICovXG4gIHB1YmxpYyBhbHRlcm5hdGVTYXZlQnV0dG9uVHlwZT86IEJ1dHRvblR5cGUgPSB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8ga25vdyB3aGljaCBzYXZlIGJ1dHRvbiB3YXMgc2VsZWN0ZWQgaW4gY2FzZSB0aGUgY2FsbGluZyBjb21wb25lbnRcbiAgICogaXMgdXRpbGl6aW5nIHRoZSBhbHRlcm5hdGUgc2F2ZSBidXR0b25cbiAgICovXG4gIHB1YmxpYyBzYXZlU291cmNlPzogU2F2ZVNvdXJjZSA9ICdwcmltYXJ5JztcblxuICAvKipcbiAgICogV2hlbiBwcm92aWRlZCwgdGhlIGNvbmZpcm0gd2lsbCBzaG93IGEgcGVuZGluZyBzdGF0ZSBhbmQgY2FsbCB0aGlzLCB0aGVuIHVwb25cbiAgICogY29tcGxldGlvbiBkaXNwbGF5IHRoZSByZXN1bHQgbWVzc2FnZSBhbmQgYSBjbG9zZSBidXR0b24uIElmIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkXG4gICAqIHN1Y2Nlc3NmdWxseSwgdGhlIGNsb3NlIGJ1dHRvbiB3aWxsIGVtaXQgb25EaWFsb2dTYXZlLiBJZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZCxcbiAgICogdGhlIGNsb3NlIGJ1dHRvbiB3aWxsIGVtaXQgb25EaWFsb2dDYW5jZWwuXG4gICAqL1xuICBwdWJsaWMgaW5saW5lQ29uZmlybUFjdGlvbj86ICgpID0+IFByb21pc2U8Q3VzdG9tQWN0aW9uUmVzdWx0PjtcblxuICAvKiogVGhlIG1lc3NhZ2UgdG8gYmUgZGlzcGxheWVkIHdoaWxlIGlubGluZUNvbmZpcm1BY3Rpb24gaXMgcGVuZGluZy4gKi9cbiAgcHVibGljIGlubGluZUNvbmZpcm1QZW5kaW5nTWVzc2FnZT86IHN0cmluZyA9ICcnO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlYy1jb25maXJtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgRGlhbG9nQ29udGVudDxDb25maXJtRGlhbG9nQ29udGV4dD4sIE9uRGVzdHJveXtcblxuICBwdWJsaWMgZGlhbG9nSWQ6IHN0cmluZyA9ICdDb25maXJtJztcblxuICAvKiogRm9ybSBHcm91cCB0byBob2xkIGFueSBmb3JtIGNvbnRyb2xzIG5lZWRlZCAqL1xuICBwdWJsaWMgZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuXG4gIHB1YmxpYyBzdGF0dXMgPSBuZXcgT3ZlcmxheSgnaGFzRGF0YScpO1xuXG4gIHB1YmxpYyBzaG93VGV4dEJveDpib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBQcm92aWRlZCBieSB0aGUgY2FsbGluZyBjb21wb25lbnQgdG8gdGVsbCB0aGUgY29uZmlybSB3aGF0IHRvIHNob3dcbiAgICogYW5kIGlzIHVzZWQgb24gc2F2ZSB0byBzZW5kIGJhY2sgYW55IGVudGVyZWQgdmFsdWVzIGZyb20gdGhlIHVzZXJcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjb250ZXh0ITogQ29uZmlybURpYWxvZ0NvbnRleHQ7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRpYWxvZ1NhdmU6IEV2ZW50RW1pdHRlcjxDb25maXJtRGlhbG9nQ29udGV4dD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbmZpcm1EaWFsb2dDb250ZXh0PigpO1xuICBAT3V0cHV0KCkgcHVibGljIG9uRGlhbG9nQ2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIG9uT3BlbihvcGVuQ29udGV4dD86IENvbmZpcm1EaWFsb2dDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0ID0gb3BlbkNvbnRleHQhO1xuICAgIHRoaXMuZGlhbG9nSWQgPSBvcGVuQ29udGV4dCEuaWQ7XG4gICAgaWYgKHRoaXMuY29udGV4dC5hbHRlcm5hdGVTYXZlTGFiZWwpIHtcbiAgICAgIHRoaXMuY29udGV4dC5zYXZlT25FbnRlciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFcnJvciB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGVycm9yIGJhbm5lciAqL1xuICBwdWJsaWMgZXJyb3I/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRGb3JtQ29udHJvbHMoKTtcbiAgICB0aGlzLnNldFZhbGlkYXRpb25zKCk7XG4gICAgdGhpcy5saXN0ZW5DaGVja0JveCgpO1xuICB9XG5cbiAgcHVibGljIG9uU2F2ZShzb3VyY2U6IFNhdmVTb3VyY2UpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQWxsQXNUb3VjaGVkKCk7XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgIGxldCBmb3JtVmFsdWVzID0gdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgICAgIGlmIChmb3JtVmFsdWVzLnRleHRib3gpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnRleHRib3hWYWx1ZSA9IGZvcm1WYWx1ZXMudGV4dGJveDtcbiAgICAgIH1cbiAgICAgIGlmKHRoaXMuY29udGV4dC5jaGVja0NvbmZpcm0pIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmNoZWNrYm94VmFsdWUgPSBmb3JtVmFsdWVzLmNoZWNrYm94ID8gZm9ybVZhbHVlcy5jaGVja2JveCA6IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbnRleHQuc2F2ZVNvdXJjZSA9IHNvdXJjZTtcblxuICAgICAgaWYgKHRoaXMuY29udGV4dC5pbmxpbmVDb25maXJtQWN0aW9uKSB7XG4gICAgICAgIHRoaXMuZG9JbmxpbmVDb25maXJtQWN0aW9uKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9uRGlhbG9nU2F2ZS5lbWl0KHRoaXMuY29udGV4dCk7XG4gICAgICB9XG4gICAgICBcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGV4dC52YWxpZGF0aW9uRXJyb3JNZXNzYWdlKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy5jb250ZXh0LnZhbGlkYXRpb25FcnJvck1lc3NhZ2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMub25EaWFsb2dDYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGxpc3RlbkNoZWNrQm94KCk6dm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGVja2JveCcpPy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZClcbiAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLnNob3dUZXh0Qm94ID0gdmFsdWU7XG4gICAgICB0aGlzLnNldFZhbGlkYXRpb25zKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFZhbGlkYXRpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHNob3dDaGVja0JveCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnY2hlY2tib3gnKTtcbiAgICBjb25zdCB0ZXh0Qm94Q29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWyd0ZXh0Ym94J107XG5cbiAgICBpZiAoc2hvd0NoZWNrQm94KSB7XG4gICAgICAgIHRoaXMuc2hvd1RleHRCb3ggPyB0ZXh0Qm94Q29udHJvbD8uZW5hYmxlKCkgOiB0ZXh0Qm94Q29udHJvbD8uZGlzYWJsZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRleHRCb3hDb250cm9sPy5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyB0aGUgdGV4dGJveCBmb3JtIGNvbnRyb2wgdG8gb3VyIGZvcm0gZ3JvdXAgaWYgaXRzIGNvbmZpZ3VyZWQgdG8gYmUgdmlzaWJsZVxuICAgKiBXaWxsIGFsc28gYWRkIHRoZSByZXF1aXJlZCB2YWxpZGF0b3IgaWYgcmVxdWVzdGVkXG4gICAqL1xuICBwcml2YXRlIGFkZEZvcm1Db250cm9scygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZXh0LnRleHRib3hUeXBlKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xuICAgICAgaWYgKHRoaXMuY29udGV4dC50ZXh0Ym94UmVxdWlyZWQpIHtcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuY29udGV4dC50ZXh0Ym94VmFsaWRhdG9ycykge1xuICAgICAgICB2YWxpZGF0b3JzLnB1c2goLi4udGhpcy5jb250ZXh0LnRleHRib3hWYWxpZGF0b3JzKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ3RleHRib3gnLCBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnLCB2YWxpZGF0b3JzKSk7XG4gICAgfVxuXG4gICAgaWYodGhpcy5jb250ZXh0LmNoZWNrQ29uZmlybSl7XG4gICAgICB0aGlzLnNob3dUZXh0Qm94ID0gZmFsc2U7XG4gICAgICBjb25zdCBjaGVja2JveENvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woJ2NoZWNrYm94JywgY2hlY2tib3hDb250cm9sKTsgICAgICBcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRvSW5saW5lQ29uZmlybUFjdGlvbigpIHtcbiAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ3BlbmRpbmcnLCB0aGlzLmNvbnRleHQuaW5saW5lQ29uZmlybVBlbmRpbmdNZXNzYWdlKTtcblxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbnRleHQuaW5saW5lQ29uZmlybUFjdGlvbiEoKTtcblxuICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygnbm9EYXRhJywgcmVzdWx0Lm1lc3NhZ2UsIHtcbiAgICAgIGlkOiAnaW5saW5lQ29uZmlybUNsb3NlJyxcbiAgICAgIGxhYmVsOiAnQ2xvc2UnLFxuICAgICAgaWNvbjogcmVzdWx0LmlzU3VjY2VzcyA/ICdpY29uLWNoZWNrLWNpcmNsZScgOiAnaWNvbi1lcnJvcicsXG4gICAgICBjbGFzc2xpc3Q6IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnZm9udC1jb2xvci1zdWNjZXNzJyA6ICdmb250LWNvbG9yLWVycm9yJyxcbiAgICAgIG9uQ2xpY2s6ICgpID0+IHsgcmVzdWx0LmlzU3VjY2VzcyA/IHRoaXMub25EaWFsb2dTYXZlLmVtaXQodGhpcy5jb250ZXh0KSA6IHRoaXMub25EaWFsb2dDYW5jZWwuZW1pdCgpIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gZWNPdmVybGF5XG4gICAgICAgICBbc3RhdHVzXT1cInN0YXR1cz8uc3RhdHVzXCJcbiAgICAgICAgIFttZXNzYWdlXT1cInN0YXR1cz8ubWVzc2FnZVwiXG4gICAgICAgICBbYWN0aW9uXT1cInN0YXR1cz8uYWN0aW9uXCJcbiAgICAgICAgIFtub0RhdGFUZW1wbGF0ZV09XCJpbmxpbmVDb25maXJtUmVzdWx0XCJcbiAgICAgICAgIG92ZXJsYXlDbGFzc0xpc3Q9XCJwLTBcIlxuICAgICAgICAgY2xhc3M9XCJiZy1ib2R5IGZsZXgtZ3JvdyBkLWZsZXhcIj5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cImZsZXgtZ3JvdyBmbGV4LWNvbHVtbiBjb25maXJtLWNvbnRlbnQgdGV4dC1ib2R5LTFcIj5cbiAgICA8c2VjdGlvbiBjbGFzcz1cImZsZXgtZ3Jvd1wiPlxuICAgICAgPGgyIGNsYXNzPVwiZm9udC13ZWlnaHQtYm9sZCBtYi0zXCIgKm5nSWY9XCJjb250ZXh0Py50aXRsZVwiPnt7Y29udGV4dD8udGl0bGV9fTwvaDI+XG4gICAgICA8ZWMtYmFubmVyICpuZ0lmPVwiZXJyb3JcIiBbdGV4dF09XCJlcnJvciB8IHRyYW5zbGF0ZVwiIGJhbm5lclN0eWxlPVwibm9ybWFsXCIgY2xhc3M9XCJtYi0zXCI+PC9lYy1iYW5uZXI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGV4dD8ubWVzc2FnZVwiIFtpbm5lckh0bWxdPVwiY29udGV4dD8ubWVzc2FnZSB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwibWItM1wiPjwvZGl2PlxuICAgICAgXG4gICAgICA8ZWMtY2hlY2tib3ggKm5nSWY9XCJjb250ZXh0Py5jaGVja0NvbmZpcm1cIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybU1vZGVsXT1cImZvcm1Hcm91cC5nZXQoJ2NoZWNrYm94JylcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY29uZmlybUNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbnRleHQ/LmNoZWNrYm94VGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2VjLWNoZWNrYm94PlxuICAgICAgPGRpdiAqbmdJZj1cInNob3dUZXh0Qm94XCIgW2lubmVySHRtbF09XCJjb250ZXh0LmNvbmZpcm1MYWJlbFwiIGNsYXNzPVwibWItM1wiPjwvZGl2PlxuICAgICAgPGVjLXRleHRib3ggaWQ9XCJjb25maXJtVGV4dGJveFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIihjb250ZXh0Py50ZXh0Ym94VHlwZSAmJiAhY29udGV4dD8uY2hlY2tDb25maXJtKSB8fCBzaG93VGV4dEJveFwiXG4gICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Nb2RlbF09XCJmb3JtR3JvdXAuZ2V0KCd0ZXh0Ym94JylcIlxuICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImNvbnRleHQ/LnRleHRib3hSZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dD8udGV4dGJveExhYmVsXCJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbnRleHQ/LnRleHRib3hUeXBlXCJcbiAgICAgICAgICAgICAgICAgIFtyb3dzXT1cImNvbnRleHQ/LnRleHRhcmVhUm93c1wiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udGV4dD8udGV4dGJveFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgIFt1cHBlckNhc2VdPVwiY29udGV4dD8udGV4dGJveFVwcGVyY2FzZVwiPlxuICAgICAgPC9lYy10ZXh0Ym94PlxuICAgIDwvc2VjdGlvbj5cbiAgICA8Zm9vdGVyIGNsYXNzPVwibXQtYXV0byBmbGV4LXNocmluayBkLWZsZXggcHktMiBmbGV4LXJvdy1yZXZlcnNlXCI+XG4gICAgICA8ZWMtYnV0dG9uIGlkPVwic2F2ZUNvbmZpcm1CdXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0yXCJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbnRleHQ/LnNhdmVCdXR0b25UeXBlID8gY29udGV4dD8uc2F2ZUJ1dHRvblR5cGUgOiAncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbnRleHQ/LnNhdmVMYWJlbCA/IGNvbnRleHQ/LnNhdmVMYWJlbCA6ICdTYXZlJ1wiXG4gICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cIiFjb250ZXh0Py50ZXh0Ym94VHlwZVwiXG4gICAgICAgICAgICAgICAgICBbaXNTdWJtaXRdPVwiY29udGV4dD8uc2F2ZU9uRW50ZXJcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25TYXZlKCdwcmltYXJ5JylcIj5cbiAgICAgIDwvZWMtYnV0dG9uPlxuICAgICAgPGVjLWJ1dHRvbiBpZD1cImFsdGVybmF0ZVNhdmVDb25maXJtQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udGV4dD8uYWx0ZXJuYXRlU2F2ZUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMlwiXG4gICAgICAgICAgICAgICAgICBbdHlwZV09XCJjb250ZXh0Py5hbHRlcm5hdGVTYXZlQnV0dG9uVHlwZSA/IGNvbnRleHQ/LmFsdGVybmF0ZVNhdmVCdXR0b25UeXBlIDogJ3ByaW1hcnknXCJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjb250ZXh0Py5hbHRlcm5hdGVTYXZlTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25TYXZlKCdhbHRlcm5hdGUnKVwiPlxuICAgICAgPC9lYy1idXR0b24+XG4gICAgICA8ZWMtYnV0dG9uICAqbmdJZj1cIiFjb250ZXh0Py5oaWRlQ2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwiY2FuY2VsQ29uZmlybUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLWF1dG9cIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dD8uY2FuY2VsTGFiZWwgPyBjb250ZXh0Py5jYW5jZWxMYWJlbCA6ICdDYW5jZWwnXCJcbiAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIj5cbiAgICAgIDwvZWMtYnV0dG9uPlxuICAgIDwvZm9vdGVyPlxuICA8L2Zvcm0+XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjaW5saW5lQ29uZmlybVJlc3VsdD5cbiAgPHNlY3Rpb24gY2xhc3M9XCJmbGV4LWdyb3cgYWxpZ24tc2VsZi1zdHJldGNoIGNvbmZpcm0tY29udGVudCB0ZXh0LWJvZHktMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgIDxpIGNsYXNzPVwiZWMtaWNvbiB7e3N0YXR1cz8uYWN0aW9uPy5pY29ufX0ge3tzdGF0dXM/LmFjdGlvbj8uY2xhc3NsaXN0fX0gaW5saW5lLWNvbmZpcm0tcmVzdWx0LWljb25cIj48L2k+XG4gICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic3RhdHVzPy5tZXNzYWdlIHwgdHJhbnNsYXRlXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBwdC0yIG10LWF1dG9cIj5cbiAgICAgIDxlYy1idXR0b24gaWQ9XCJpbmxpbmVDb25maXJtQ2xvc2VcIlxuICAgICAgICAgICAgICAgICBsYWJlbD1cIkNsb3NlXCJcbiAgICAgICAgICAgICAgICAgdHlwZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0b1wiXG4gICAgICAgICAgICAgICAgIChjbGlja2VkKT1cInN0YXR1cz8uYWN0aW9uPy5vbkNsaWNrISgpXCJcbiAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJ0cnVlXCI+XG4gICAgICA8L2VjLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9kaWFsb2cvZGlhbG9nLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbi8qKlxuICogVGhpcyBpbnRlcmZhY2UgcmVwcmVzZW50cyB0aGUgY29udHJhY3QgYmV0d2VlbiB0aGUgZGlhbG9nIGNvbXBvbmVudCAodGhlIFwic2hlbGxcIiBhcm91bmQgdGhhdCBtYXNrcyB0aGUgYmFja2dyb3VuZCkgXG4gKiBhbmQgdGhlIGJvZHkgb2YgdGhlIGRpYWxvZyB3aGljaCBjYW4gYmUgYWxtb3N0IGFueSBjb21wb25lbnQuIEl0IGV4cG9zZXMgYSB3YXkgZm9yIHVzIHRvIHBhc3MgZGF0YSBpbnRvIGFuZCBvdXQgb2ZcbiAqIHRoZSBib2R5IGZyb20gdGhlIGhvc3RpbmcgcGFnZSB3aXRoIHN0cm9uZyB0eXBlIGluZm9ybWF0aW9uIFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0NvbnRlbnQ8VD4ge1xuICAvKiogVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBpbXBsZW1lbnRpbmcgY2xhc3MuICovXG4gIGRpYWxvZ0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIHRoYXQgaXMgcGFzc2VkIHRvIHRoZSBpbm5lciBkaWFsb2cgY29tcG9uZW50IHdoZW4gaXQgb3BlbnMgZnJvbSB0aGUgaG9zdGluZyBwYWdlLiBcbiAgICogV2lsbCBiZSBjYWxsZWQgYmVmb3JlIGFueSBhbmd1bGFyIGxpZmVjeWNsZSBob29rcy5cbiAgICovXG4gIG9uT3Blbj86IChvcGVuQ29udGV4dD86IFQpID0+IHZvaWQ7XG5cbiAgLyoqIEFuIGV2ZW50IGVtaXR0ZXIgdGhhdCB3aWxsIGVtaXQgYW4gZXZlbnQgd2hlbiB0aGUgZGlhbG9nIGFjdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSAqL1xuICBvbkRpYWxvZ1NhdmU6IEV2ZW50RW1pdHRlcjxUPjtcblxuICAvKiogQW4gZXZlbnQgZW1pdHRlciB0aGF0IHdpbGwgZW1pdCBhbiBldmVudCB3aGVuIHRoZSBkaWFsb2cgYWN0aW9uIGhhcyBiZWVuIGNhbmNlbGVkICovXG4gIG9uRGlhbG9nQ2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD47XG59XG4iXX0=
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { filter, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { DialogCloseEvent, DialogCloseLatestEvent, DialogOpenStartEvent } from '../dialog-types';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../dialog.service";
|
|
7
|
-
import * as i2 from "@angular/common";
|
|
8
|
-
import * as i3 from "../dialog.component";
|
|
9
|
-
export class DialogGroupComponent {
|
|
10
|
-
constructor(dialogService) {
|
|
11
|
-
this.dialogService = dialogService;
|
|
12
|
-
this.activeDialogEvents = [];
|
|
13
|
-
this.destroyed = new Subject();
|
|
14
|
-
}
|
|
15
|
-
/**When the group component is created, start watching for any DialogOpenStart events
|
|
16
|
-
* so that the group can react and make the matching dialog. New dialogs get assigned unique
|
|
17
|
-
* eventIds so that when they close we know exactly which one is done and we can take it
|
|
18
|
-
* out of the list of active dialogs
|
|
19
|
-
*/
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.dialogService.events.pipe(filter(event => event instanceof DialogOpenStartEvent || event instanceof DialogCloseLatestEvent), takeUntil(this.destroyed)).subscribe(event => {
|
|
22
|
-
if (event instanceof DialogOpenStartEvent) {
|
|
23
|
-
this.activeDialogEvents.push(event);
|
|
24
|
-
}
|
|
25
|
-
else if (event instanceof DialogCloseLatestEvent && this.activeDialogEvents.length > 0) {
|
|
26
|
-
let sourceEvent = this.activeDialogEvents[this.activeDialogEvents.length - 1];
|
|
27
|
-
this.dialogService.triggerEvent(new DialogCloseEvent(sourceEvent.eventId, sourceEvent.dialogId, event.dialogResult?.save, event.dialogResult?.context));
|
|
28
|
-
this.dialogClosed(sourceEvent);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
/** When the dialog group is destroyed we no longer want to listen for any open events. */
|
|
33
|
-
ngOnDestroy() {
|
|
34
|
-
this.destroyed.next();
|
|
35
|
-
this.destroyed.unsubscribe();
|
|
36
|
-
}
|
|
37
|
-
/**The dialog component completed opening (including animation delay) and
|
|
38
|
-
* emits an event that tells us it is ready. The group can then pump out a dialog
|
|
39
|
-
* openEnd event (kinda NavigationEnd in the router) to tell anybody who cares that
|
|
40
|
-
* the dialog is now ready.
|
|
41
|
-
*/
|
|
42
|
-
dialogOpened(dialogOpenEvent, dialogId) {
|
|
43
|
-
dialogOpenEvent.dialogId = dialogId;
|
|
44
|
-
}
|
|
45
|
-
/** The dialog has closed (after animation delay) and emitted an event to tell the hosting component.
|
|
46
|
-
* We handle the event and pump a matching DialogCloseEvent so that anybody who cares can know that the
|
|
47
|
-
* dialog instance referenced by dialogOpenEvent.eventId is gone now. We remove it from our list of
|
|
48
|
-
* active dialogs which pulls it out of the DOM too
|
|
49
|
-
*/
|
|
50
|
-
dialogClosed(dialogOpenEvent) {
|
|
51
|
-
const index = this.activeDialogEvents.findIndex(d => d === dialogOpenEvent);
|
|
52
|
-
if (index >= 0) {
|
|
53
|
-
this.activeDialogEvents.splice(index, 1);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogGroupComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DialogGroupComponent, selector: "ec-dialog-group", ngImport: i0, template: "<ec-dialog *ngFor=\"let dialog of activeDialogEvents\"\n [dialogOpenStartEventId]=\"dialog.eventId\"\n [size]=\"dialog.options?.size\"\n [content]=\"dialog.content\"\n [context]=\"dialog.context\"\n [options]=\"dialog.options\"\n (opened)=\"dialogOpened(dialog, $event)\"\n (closed)=\"dialogClosed(dialog)\">\n</ec-dialog>", styles: ["ec-dialog:not(:only-child){--ec-dialog-background-color: transparent}ec-dialog:not(:only-child):last-child,ec-dialog:not(:only-child):nth-last-child(2){--ec-dialog-background-color: var(--ec-background-color-dialog-stacked)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.DialogComponent, selector: "ec-dialog", inputs: ["size", "content", "context", "options", "dialogOpenStartEventId"], outputs: ["opened", "closed"] }] }); }
|
|
58
|
-
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DialogGroupComponent, decorators: [{
|
|
60
|
-
type: Component,
|
|
61
|
-
args: [{ selector: 'ec-dialog-group', template: "<ec-dialog *ngFor=\"let dialog of activeDialogEvents\"\n [dialogOpenStartEventId]=\"dialog.eventId\"\n [size]=\"dialog.options?.size\"\n [content]=\"dialog.content\"\n [context]=\"dialog.context\"\n [options]=\"dialog.options\"\n (opened)=\"dialogOpened(dialog, $event)\"\n (closed)=\"dialogClosed(dialog)\">\n</ec-dialog>", styles: ["ec-dialog:not(:only-child){--ec-dialog-background-color: transparent}ec-dialog:not(:only-child):last-child,ec-dialog:not(:only-child):nth-last-child(2){--ec-dialog-background-color: var(--ec-background-color-dialog-stacked)}\n"] }]
|
|
62
|
-
}], ctorParameters: () => [{ type: i1.DialogService }] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2RpYWxvZy9kaWFsb2ctZ3JvdXAvZGlhbG9nLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2RpYWxvZy9kaWFsb2ctZ3JvdXAvZGlhbG9nLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFRakcsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUhoRCx1QkFBa0IsR0FBZ0MsRUFBRSxDQUFDO1FBQzdDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRVksQ0FBQztJQUVyRDs7OztPQUlHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDNUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLG9CQUFvQixJQUFJLEtBQUssWUFBWSxzQkFBc0IsQ0FBQyxFQUNqRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsQixJQUFHLEtBQUssWUFBWSxvQkFBb0IsRUFBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQWtDLENBQUMsQ0FBQztZQUNuRSxDQUFDO2lCQUFNLElBQUcsS0FBSyxZQUFZLHNCQUFzQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hGLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM5RSxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ3hKLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBGQUEwRjtJQUMxRixXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLGVBQTBDLEVBQUUsUUFBZ0I7UUFDdkUsZUFBZSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsZUFBMEM7UUFDckQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxlQUFlLENBQUMsQ0FBQztRQUU1RSxJQUFHLEtBQUssSUFBRyxDQUFDLEVBQUMsQ0FBQztZQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDOytHQXJEVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix1RENYakMsMFlBUVk7OzRGREdDLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERpYWxvZ0Nsb3NlRXZlbnQsIERpYWxvZ0Nsb3NlTGF0ZXN0RXZlbnQsIERpYWxvZ09wZW5TdGFydEV2ZW50IH0gZnJvbSAnLi4vZGlhbG9nLXR5cGVzJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VjLWRpYWxvZy1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kaWFsb2ctZ3JvdXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBhY3RpdmVEaWFsb2dFdmVudHM6IERpYWxvZ09wZW5TdGFydEV2ZW50PGFueT5bXSA9IFtdO1xuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7IH1cblxuICAvKipXaGVuIHRoZSBncm91cCBjb21wb25lbnQgaXMgY3JlYXRlZCwgc3RhcnQgd2F0Y2hpbmcgZm9yIGFueSBEaWFsb2dPcGVuU3RhcnQgZXZlbnRzXG4gICAqIHNvIHRoYXQgdGhlIGdyb3VwIGNhbiByZWFjdCBhbmQgbWFrZSB0aGUgbWF0Y2hpbmcgZGlhbG9nLiBOZXcgZGlhbG9ncyBnZXQgYXNzaWduZWQgdW5pcXVlXG4gICAqIGV2ZW50SWRzIHNvIHRoYXQgd2hlbiB0aGV5IGNsb3NlIHdlIGtub3cgZXhhY3RseSB3aGljaCBvbmUgaXMgZG9uZSBhbmQgd2UgY2FuIHRha2UgaXRcbiAgICogb3V0IG9mIHRoZSBsaXN0IG9mIGFjdGl2ZSBkaWFsb2dzXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZXZlbnRzLnBpcGUoXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBEaWFsb2dPcGVuU3RhcnRFdmVudCB8fCBldmVudCBpbnN0YW5jZW9mIERpYWxvZ0Nsb3NlTGF0ZXN0RXZlbnQpLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxuICAgICkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmKGV2ZW50IGluc3RhbmNlb2YgRGlhbG9nT3BlblN0YXJ0RXZlbnQpe1xuICAgICAgICB0aGlzLmFjdGl2ZURpYWxvZ0V2ZW50cy5wdXNoKGV2ZW50IGFzIERpYWxvZ09wZW5TdGFydEV2ZW50PGFueT4pO1xuICAgICAgfSBlbHNlIGlmKGV2ZW50IGluc3RhbmNlb2YgRGlhbG9nQ2xvc2VMYXRlc3RFdmVudCAmJiB0aGlzLmFjdGl2ZURpYWxvZ0V2ZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBzb3VyY2VFdmVudCA9IHRoaXMuYWN0aXZlRGlhbG9nRXZlbnRzW3RoaXMuYWN0aXZlRGlhbG9nRXZlbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudHJpZ2dlckV2ZW50KG5ldyBEaWFsb2dDbG9zZUV2ZW50KHNvdXJjZUV2ZW50LmV2ZW50SWQsIHNvdXJjZUV2ZW50LmRpYWxvZ0lkLCBldmVudC5kaWFsb2dSZXN1bHQ/LnNhdmUsIGV2ZW50LmRpYWxvZ1Jlc3VsdD8uY29udGV4dCkpO1xuICAgICAgICB0aGlzLmRpYWxvZ0Nsb3NlZChzb3VyY2VFdmVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgZGlhbG9nIGdyb3VwIGlzIGRlc3Ryb3llZCB3ZSBubyBsb25nZXIgd2FudCB0byBsaXN0ZW4gZm9yIGFueSBvcGVuIGV2ZW50cy4gKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipUaGUgZGlhbG9nIGNvbXBvbmVudCBjb21wbGV0ZWQgb3BlbmluZyAoaW5jbHVkaW5nIGFuaW1hdGlvbiBkZWxheSkgYW5kXG4gICAqIGVtaXRzIGFuIGV2ZW50IHRoYXQgdGVsbHMgdXMgaXQgaXMgcmVhZHkuIFRoZSBncm91cCBjYW4gdGhlbiBwdW1wIG91dCBhIGRpYWxvZ1xuICAgKiBvcGVuRW5kIGV2ZW50IChraW5kYSBOYXZpZ2F0aW9uRW5kIGluIHRoZSByb3V0ZXIpIHRvIHRlbGwgYW55Ym9keSB3aG8gY2FyZXMgdGhhdFxuICAgKiB0aGUgZGlhbG9nIGlzIG5vdyByZWFkeS5cbiAgICovXG4gIGRpYWxvZ09wZW5lZChkaWFsb2dPcGVuRXZlbnQ6IERpYWxvZ09wZW5TdGFydEV2ZW50PGFueT4sIGRpYWxvZ0lkOiBzdHJpbmcpIHtcbiAgICBkaWFsb2dPcGVuRXZlbnQuZGlhbG9nSWQgPSBkaWFsb2dJZDtcbiAgfVxuXG4gIC8qKiBUaGUgZGlhbG9nIGhhcyBjbG9zZWQgKGFmdGVyIGFuaW1hdGlvbiBkZWxheSkgYW5kIGVtaXR0ZWQgYW4gZXZlbnQgdG8gdGVsbCB0aGUgaG9zdGluZyBjb21wb25lbnQuXG4gICAqIFdlIGhhbmRsZSB0aGUgZXZlbnQgYW5kIHB1bXAgYSBtYXRjaGluZyBEaWFsb2dDbG9zZUV2ZW50IHNvIHRoYXQgYW55Ym9keSB3aG8gY2FyZXMgY2FuIGtub3cgdGhhdCB0aGVcbiAgICogZGlhbG9nIGluc3RhbmNlIHJlZmVyZW5jZWQgYnkgZGlhbG9nT3BlbkV2ZW50LmV2ZW50SWQgaXMgZ29uZSBub3cuIFdlIHJlbW92ZSBpdCBmcm9tIG91ciBsaXN0IG9mXG4gICAqIGFjdGl2ZSBkaWFsb2dzIHdoaWNoIHB1bGxzIGl0IG91dCBvZiB0aGUgRE9NIHRvb1xuICAgKi9cbiAgZGlhbG9nQ2xvc2VkKGRpYWxvZ09wZW5FdmVudDogRGlhbG9nT3BlblN0YXJ0RXZlbnQ8YW55Pikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5hY3RpdmVEaWFsb2dFdmVudHMuZmluZEluZGV4KGQgPT4gZCA9PT0gZGlhbG9nT3BlbkV2ZW50KTtcbiAgICBcbiAgICBpZihpbmRleCA+PTApe1xuICAgICAgdGhpcy5hY3RpdmVEaWFsb2dFdmVudHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxlYy1kaWFsb2cgKm5nRm9yPVwibGV0IGRpYWxvZyBvZiBhY3RpdmVEaWFsb2dFdmVudHNcIlxuICAgICAgICAgICBbZGlhbG9nT3BlblN0YXJ0RXZlbnRJZF09XCJkaWFsb2cuZXZlbnRJZFwiXG4gICAgICAgICAgIFtzaXplXT1cImRpYWxvZy5vcHRpb25zPy5zaXplXCJcbiAgICAgICAgICAgW2NvbnRlbnRdPVwiZGlhbG9nLmNvbnRlbnRcIlxuICAgICAgICAgICBbY29udGV4dF09XCJkaWFsb2cuY29udGV4dFwiXG4gICAgICAgICAgIFtvcHRpb25zXT1cImRpYWxvZy5vcHRpb25zXCJcbiAgICAgICAgICAgKG9wZW5lZCk9XCJkaWFsb2dPcGVuZWQoZGlhbG9nLCAkZXZlbnQpXCJcbiAgICAgICAgICAgKGNsb3NlZCk9XCJkaWFsb2dDbG9zZWQoZGlhbG9nKVwiPlxuPC9lYy1kaWFsb2c+Il19
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { uniqueId } from 'lodash';
|
|
2
|
-
/**A base class from which all dialog events extend. This class models the dialog actions very much
|
|
3
|
-
* like the Angular RouterEvents.
|
|
4
|
-
*/
|
|
5
|
-
export class DialogEvent {
|
|
6
|
-
constructor(
|
|
7
|
-
/**A unique value representing this particular instance of the event, used to match open and close events together */
|
|
8
|
-
eventId,
|
|
9
|
-
/**The ID of the dialog itself, typically matching the DialogContent. Something like "DeleteConfirmation" or "EditReading" etc.
|
|
10
|
-
* Useful for telemetry logging to track users opening and closing dialogs
|
|
11
|
-
*/
|
|
12
|
-
dialogId = '',
|
|
13
|
-
/** The action the dialog event represents. Can also be determined by using the class of the event with the
|
|
14
|
-
* instanceof operator.
|
|
15
|
-
*/
|
|
16
|
-
dialogAction = 'openStart') {
|
|
17
|
-
this.eventId = eventId;
|
|
18
|
-
this.dialogId = dialogId;
|
|
19
|
-
this.dialogAction = dialogAction;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/**Emitted when the dialog open has been triggered, but the dialog itself hasn't initialized yet.
|
|
23
|
-
* This event creates its own unique identifier so that that particular instance of the dialog can be found
|
|
24
|
-
* when closed later on. The context is used to fill the dialog itself, and may include state or callbacks.
|
|
25
|
-
* Various options are available to change the dialog appearance. These events are generally created
|
|
26
|
-
* by the @see DialogService.open() call
|
|
27
|
-
*/
|
|
28
|
-
export class DialogOpenStartEvent extends DialogEvent {
|
|
29
|
-
constructor(content, context, options) {
|
|
30
|
-
super(uniqueId());
|
|
31
|
-
this.content = content;
|
|
32
|
-
this.context = context;
|
|
33
|
-
this.options = options;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**Emitted when the dialog has finished opening and been properly initialized. It includes
|
|
37
|
-
* the eventId, which uniquely identifies the particular instance of the dialog open event so that we can
|
|
38
|
-
* close that specific dialog later on. The dialogId can be used for telemetry, and may be set to something
|
|
39
|
-
* like "Confirm Delete" or "Edit Reading" etc.
|
|
40
|
-
*/
|
|
41
|
-
export class DialogOpenEndEvent extends DialogEvent {
|
|
42
|
-
constructor(eventId, dialogId) {
|
|
43
|
-
super(eventId, dialogId, 'open');
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**Emitted when the dialog close has completed and a result is available. Check result.save to know if the dialog change
|
|
47
|
-
* was committed (true) or cancelled (false). Cancel can be set if the dialog was automatically closed by clicking in the
|
|
48
|
-
* background or resizing the window when using the panel view or closeOnResize.
|
|
49
|
-
*/
|
|
50
|
-
export class DialogCloseEvent extends DialogEvent {
|
|
51
|
-
constructor(eventId, dialogId, save = false, context) {
|
|
52
|
-
super(eventId, dialogId, 'close');
|
|
53
|
-
this.dialogResult = new DialogResult(save, context);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**Used to tell the dialog group to close whatever dialog was opened most recently with the given result
|
|
57
|
-
* This allows a TemplateRef based panel (that's not coming from DialogComponent) to close itself or
|
|
58
|
-
* an external process to close a dialog that is open
|
|
59
|
-
*/
|
|
60
|
-
export class DialogCloseLatestEvent extends DialogEvent {
|
|
61
|
-
constructor(result) {
|
|
62
|
-
super('latest', 'latest', 'closeLatest');
|
|
63
|
-
this.dialogResult = result;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Returned when a dialog is closed.
|
|
68
|
-
* Specifies if the dialog was saved and contains an optional context.
|
|
69
|
-
*/
|
|
70
|
-
export class DialogResult {
|
|
71
|
-
constructor(save, context) {
|
|
72
|
-
this.save = save;
|
|
73
|
-
this.context = context;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR2xDOztHQUVHO0FBQ0YsTUFBTSxPQUFPLFdBQVc7SUFDdkI7SUFDRSxxSEFBcUg7SUFDOUcsT0FBZ0I7SUFFdkI7O01BRUU7SUFDSyxXQUFtQixFQUFFO0lBRTVCOztPQUVHO0lBQ0ksZUFBOEQsV0FBVztRQVZ6RSxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBS2hCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFLckIsaUJBQVksR0FBWixZQUFZLENBQTZEO0lBQy9FLENBQUM7Q0FDTDtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLG9CQUF3QixTQUFRLFdBQVc7SUFDdEQsWUFBbUIsT0FBa0QsRUFBUyxPQUFXLEVBQVMsT0FBdUI7UUFDdkgsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFERCxZQUFPLEdBQVAsT0FBTyxDQUEyQztRQUFTLFlBQU8sR0FBUCxPQUFPLENBQUk7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtJQUV6SCxDQUFDO0NBQ0Y7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFdBQVc7SUFDakQsWUFBWSxPQUFnQixFQUFFLFFBQWlCO1FBQzdDLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxXQUFXO0lBR2xELFlBQVksT0FBZ0IsRUFBRSxRQUFpQixFQUFFLElBQUksR0FBQyxLQUFLLEVBQUUsT0FBVztRQUN0RSxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sc0JBQTBCLFNBQVEsV0FBVztJQUl4RCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQTJERDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFtQixJQUFhLEVBQVMsT0FBVztRQUFqQyxTQUFJLEdBQUosSUFBSSxDQUFTO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBSTtJQUFJLENBQUM7Q0FDMUQ7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IERpYWxvZ0NvbnRlbnQgfSBmcm9tICcuL2RpYWxvZy1jb250ZW50JztcblxuLyoqQSBiYXNlIGNsYXNzIGZyb20gd2hpY2ggYWxsIGRpYWxvZyBldmVudHMgZXh0ZW5kLiBUaGlzIGNsYXNzIG1vZGVscyB0aGUgZGlhbG9nIGFjdGlvbnMgdmVyeSBtdWNoXG4gKiBsaWtlIHRoZSBBbmd1bGFyIFJvdXRlckV2ZW50cy5cbiAqL1xuIGV4cG9ydCBjbGFzcyBEaWFsb2dFdmVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKkEgdW5pcXVlIHZhbHVlIHJlcHJlc2VudGluZyB0aGlzIHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgdGhlIGV2ZW50LCB1c2VkIHRvIG1hdGNoIG9wZW4gYW5kIGNsb3NlIGV2ZW50cyB0b2dldGhlciAqL1xuICAgIHB1YmxpYyBldmVudElkPzogc3RyaW5nLCBcblxuICAgIC8qKlRoZSBJRCBvZiB0aGUgZGlhbG9nIGl0c2VsZiwgdHlwaWNhbGx5IG1hdGNoaW5nIHRoZSBEaWFsb2dDb250ZW50LiBTb21ldGhpbmcgbGlrZSBcIkRlbGV0ZUNvbmZpcm1hdGlvblwiIG9yIFwiRWRpdFJlYWRpbmdcIiBldGMuIFxuICAgICAqIFVzZWZ1bCBmb3IgdGVsZW1ldHJ5IGxvZ2dpbmcgdG8gdHJhY2sgdXNlcnMgb3BlbmluZyBhbmQgY2xvc2luZyBkaWFsb2dzXG4gICAgKi9cbiAgICBwdWJsaWMgZGlhbG9nSWQ6IHN0cmluZyA9ICcnLFxuXG4gICAgLyoqIFRoZSBhY3Rpb24gdGhlIGRpYWxvZyBldmVudCByZXByZXNlbnRzLiBDYW4gYWxzbyBiZSBkZXRlcm1pbmVkIGJ5IHVzaW5nIHRoZSBjbGFzcyBvZiB0aGUgZXZlbnQgd2l0aCB0aGVcbiAgICAgKiBpbnN0YW5jZW9mIG9wZXJhdG9yLlxuICAgICAqL1xuICAgIHB1YmxpYyBkaWFsb2dBY3Rpb246ICdvcGVuU3RhcnQnIHwnb3BlbicgfCAnY2xvc2UnIHwgJ2Nsb3NlTGF0ZXN0JyA9ICdvcGVuU3RhcnQnLFxuICApIHt9XG59XG5cbi8qKkVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIG9wZW4gaGFzIGJlZW4gdHJpZ2dlcmVkLCBidXQgdGhlIGRpYWxvZyBpdHNlbGYgaGFzbid0IGluaXRpYWxpemVkIHlldC5cbiAqIFRoaXMgZXZlbnQgY3JlYXRlcyBpdHMgb3duIHVuaXF1ZSBpZGVudGlmaWVyIHNvIHRoYXQgdGhhdCBwYXJ0aWN1bGFyIGluc3RhbmNlIG9mIHRoZSBkaWFsb2cgY2FuIGJlIGZvdW5kXG4gKiB3aGVuIGNsb3NlZCBsYXRlciBvbi4gVGhlIGNvbnRleHQgaXMgdXNlZCB0byBmaWxsIHRoZSBkaWFsb2cgaXRzZWxmLCBhbmQgbWF5IGluY2x1ZGUgc3RhdGUgb3IgY2FsbGJhY2tzLlxuICogVmFyaW91cyBvcHRpb25zIGFyZSBhdmFpbGFibGUgdG8gY2hhbmdlIHRoZSBkaWFsb2cgYXBwZWFyYW5jZS4gVGhlc2UgZXZlbnRzIGFyZSBnZW5lcmFsbHkgY3JlYXRlZFxuICogYnkgdGhlIEBzZWUgRGlhbG9nU2VydmljZS5vcGVuKCkgY2FsbFxuICovXG5leHBvcnQgY2xhc3MgRGlhbG9nT3BlblN0YXJ0RXZlbnQ8VD4gZXh0ZW5kcyBEaWFsb2dFdmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZW50OiBUeXBlPERpYWxvZ0NvbnRlbnQ8VD4+IHwgVGVtcGxhdGVSZWY8YW55PiwgcHVibGljIGNvbnRleHQ/OiBULCBwdWJsaWMgb3B0aW9ucz86IERpYWxvZ09wdGlvbnMpIHtcbiAgICBzdXBlcih1bmlxdWVJZCgpKTtcbiAgfVxufVxuXG4vKipFbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBoYXMgZmluaXNoZWQgb3BlbmluZyBhbmQgYmVlbiBwcm9wZXJseSBpbml0aWFsaXplZC4gSXQgaW5jbHVkZXNcbiAqIHRoZSBldmVudElkLCB3aGljaCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBwYXJ0aWN1bGFyIGluc3RhbmNlIG9mIHRoZSBkaWFsb2cgb3BlbiBldmVudCBzbyB0aGF0IHdlIGNhbiBcbiAqIGNsb3NlIHRoYXQgc3BlY2lmaWMgZGlhbG9nIGxhdGVyIG9uLiBUaGUgZGlhbG9nSWQgY2FuIGJlIHVzZWQgZm9yIHRlbGVtZXRyeSwgYW5kIG1heSBiZSBzZXQgdG8gc29tZXRoaW5nIFxuICogbGlrZSBcIkNvbmZpcm0gRGVsZXRlXCIgb3IgXCJFZGl0IFJlYWRpbmdcIiBldGMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEaWFsb2dPcGVuRW5kRXZlbnQgZXh0ZW5kcyBEaWFsb2dFdmVudCB7XG4gIGNvbnN0cnVjdG9yKGV2ZW50SWQ/OiBzdHJpbmcsIGRpYWxvZ0lkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoZXZlbnRJZCwgZGlhbG9nSWQsICdvcGVuJyk7XG4gIH1cbn1cblxuLyoqRW1pdHRlZCB3aGVuIHRoZSBkaWFsb2cgY2xvc2UgaGFzIGNvbXBsZXRlZCBhbmQgYSByZXN1bHQgaXMgYXZhaWxhYmxlLiBDaGVjayByZXN1bHQuc2F2ZSB0byBrbm93IGlmIHRoZSBkaWFsb2cgY2hhbmdlXG4gKiB3YXMgY29tbWl0dGVkICh0cnVlKSBvciBjYW5jZWxsZWQgKGZhbHNlKS4gQ2FuY2VsIGNhbiBiZSBzZXQgaWYgdGhlIGRpYWxvZyB3YXMgYXV0b21hdGljYWxseSBjbG9zZWQgYnkgY2xpY2tpbmcgaW4gdGhlIFxuICogYmFja2dyb3VuZCBvciByZXNpemluZyB0aGUgd2luZG93IHdoZW4gdXNpbmcgdGhlIHBhbmVsIHZpZXcgb3IgY2xvc2VPblJlc2l6ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERpYWxvZ0Nsb3NlRXZlbnQ8VD4gZXh0ZW5kcyBEaWFsb2dFdmVudCB7XG4gIC8qKlRoZSByZXN1bHQgb2YgdGhlIGRpYWxvZyBldmVudCwgaW5jbHVkaW5nIHdlYXRoZXIgaXQgd2FzIHNhdmVkIG9yIGNhbmNlbGxlZCBhbmQgdGhlIGNvbnRleHQncyBmaW5hbCBzdGF0ZSovXG4gIHB1YmxpYyBkaWFsb2dSZXN1bHQ6IERpYWxvZ1Jlc3VsdDxhbnk+O1xuICBjb25zdHJ1Y3RvcihldmVudElkPzogc3RyaW5nLCBkaWFsb2dJZD86IHN0cmluZywgc2F2ZT1mYWxzZSwgY29udGV4dD86IFQpIHtcbiAgICBzdXBlcihldmVudElkLCBkaWFsb2dJZCwgJ2Nsb3NlJyk7XG4gICAgdGhpcy5kaWFsb2dSZXN1bHQgPSBuZXcgRGlhbG9nUmVzdWx0KHNhdmUsIGNvbnRleHQpO1xuICB9XG59XG5cbi8qKlVzZWQgdG8gdGVsbCB0aGUgZGlhbG9nIGdyb3VwIHRvIGNsb3NlIHdoYXRldmVyIGRpYWxvZyB3YXMgb3BlbmVkIG1vc3QgcmVjZW50bHkgd2l0aCB0aGUgZ2l2ZW4gcmVzdWx0XG4gKiBUaGlzIGFsbG93cyBhIFRlbXBsYXRlUmVmIGJhc2VkIHBhbmVsICh0aGF0J3Mgbm90IGNvbWluZyBmcm9tIERpYWxvZ0NvbXBvbmVudCkgdG8gY2xvc2UgaXRzZWxmIG9yIFxuICogYW4gZXh0ZXJuYWwgcHJvY2VzcyB0byBjbG9zZSBhIGRpYWxvZyB0aGF0IGlzIG9wZW5cbiAqL1xuZXhwb3J0IGNsYXNzIERpYWxvZ0Nsb3NlTGF0ZXN0RXZlbnQ8VD4gZXh0ZW5kcyBEaWFsb2dFdmVudCB7XG4gIC8qKlRoZSByZXN1bHQgb2YgdGhlIGRpYWxvZyBldmVudCwgaW5jbHVkaW5nIHdlYXRoZXIgaXQgd2FzIHNhdmVkIG9yIGNhbmNlbGxlZCBhbmQgdGhlIGNvbnRleHQncyBmaW5hbCBzdGF0ZSovXG4gIHB1YmxpYyBkaWFsb2dSZXN1bHQ6IERpYWxvZ1Jlc3VsdDxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHJlc3VsdDogRGlhbG9nUmVzdWx0PFQ+KSB7XG4gICAgc3VwZXIoJ2xhdGVzdCcsICdsYXRlc3QnLCAnY2xvc2VMYXRlc3QnKTtcbiAgICB0aGlzLmRpYWxvZ1Jlc3VsdCA9IHJlc3VsdDtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHNwZWNpZmllcyBleHRyYSBvcHRpb25zIHRvIGNvbmZpZ3VyZSBiZWhhdmlvciBvZiB0aGUgRGlhbG9nIENvbXBvbmVudFxuICovXG4gZXhwb3J0IGludGVyZmFjZSBEaWFsb2dPcHRpb25zIHtcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGV4ZWN1dGUgYmVmb3JlIGRpYWxvZyBvcGVucy4gIExlYXZlIGB1bmRlZmluZWRgIG9yIHJldHVybiB0cnVlIHRvIGFsbG93XG4gICAqIGRpYWxvZyB0byBvcGVuLlxuICAgKlxuICAgKiBDYW4gYmUgdXNlZCB0byBjaGVjayBmb3IgdW5zYXZlZCBjaGFuZ2VzIG9uIHRoZSB1bmRlcmx5aW5nIHBhZ2UgYmVmb3JlIG9wZW5pbmcuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAgIGNvbnN0cnVjdG9yKCBwcml2YXRlIHVuc2F2ZWRDaGFuZ2VzR3VhcmQ6IENhbkRlYWN0aXZhdGVVbnNhdmVkQ2hhbmdlc0d1YXJkICl7fTtcbiAgICAgLy8uLi5cbiAgICAgY29uc3Qgb3B0aW9uczogRGlhbG9nT3B0aW9ucyA9IHsgY2FuT3BlbkRpYWxvZzogdGhpcy51bnNhdmVkQ2hhbmdlc0d1YXJkLmNhbkRlYWN0aXZhdGUgfTtcbiAgICovXG4gIGNhbk9wZW5EaWFsb2c/OiAoKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8qKiBDb25maWd1cmVzIHdoZW4gdGhlIGRpYWxvZyBlbWl0cyBpdHMgcmVzdWx0IGluIHJlbGF0aW9uIHRvIGEgY2xvc2luZyBhbmltYXRpb24gZXZlbnQgKi9cbiAgZW1pdFJlc3VsdE9uPzogRGlhbG9nQW5pbWF0aW9uRXZlbnQ7XG5cbiAgLyoqIERpc3BsYXkgdGhlIGRpYWxvZyBhcyBhIHNpZGUgcGFuZWwgdGhhdCBzbGlkZXMgaW4gKi9cbiAgZGlzcGxheUFzUGFuZWw/OiBib29sZWFuO1xuXG4gIC8qKiBTZXQgdGhlIGRpYWxvZyBtYXNrIGNvbG9yIHRvIHRyYW5zcGFyZW50LiBEZWZhdWx0cyB0byB0cnVlIHdoZW4gZGlhbG9nIGlzIGRpc3BsYXllZCBhcyBhIHBhbmVsICovXG4gIHRyYW5zcGFyZW50TWFzaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGlhbG9nIG1hc2sgdG8gbm90IGRpc3BsYXkgYXQgYWxsLiBBbGxvd3MgdGhlIHVzZXIgdG8gY2xpY2sgb24gZWxlbWVudHMgYmVoaW5kIHRoZSBkaWFsb2cuXG4gICAqIE9ubHkgYXBwbGljYWJsZSB3aGVuIGRpc3BsYXlBc1BhbmVsIGlzIHRydWUuXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgbm9NYXNrPzogYm9vbGVhbjtcblxuICAvKiogQWxpZ24gdGhlIGRpYWxvZyB3aW5kb3cgdG8gdGhlIHRvcCBpbnN0ZWFkIG9mIGNlbnRlcmVkLiAqL1xuICBhbGlnblRvVG9wPzogYm9vbGVhbjtcblxuICAvKiogU2V0IHRoZSB0b3AgbWFyZ2luIG9mIHRoZSBkaWFsb2cgd2luZG93LiBPbmx5IHRha2VzIGVmZmVjdCBpZiBhbGlnblRvVG9wIGlzIHRydWUuXG4gICAqIE11c3QgaW5jbHVkZSB1bml0cywgaS5lLiBcIjMycmVtXCIgb3IgXCIxMHZoXCJcbiAgICovXG4gIGFsaWduVG9Ub3BNYXJnaW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIGlmIHRoZSBkaWFsb2cgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2xvc2Ugd2hlbiB0aGUgd2luZG93IGlzIHJlc2l6ZWQuXG4gICAqIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBhcmUgY29uZGl0aW9uYWxseSBzaG93aW5nL2hpZGluZyB0aGUgZGlhbG9nIGNvbnRlbnQgYXMgYSBzdGF0aWMgcGFydCBvZiB0aGUgcGFnZVxuICAgKiB3aGVuIHRoZSBzY3JlZW4gZ2V0cyB3aWRlIGVub3VnaFxuICAgKi9cbiAgY2xvc2VPblJlc2l6ZT86IGJvb2xlYW47XG5cbiAgc2l6ZT86IERpYWxvZ1NpemU7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc3BlY2lmeSBhIGN1c3RvbSBtaW4td2lkdGggb2YgdGhlIGRpYWxvZy4gT25seSB0YWtlcyBlZmZlY3QgaWYgc2l6ZSBpcyBzZXQgdG8gZHluYW1pYy5cbiAgICogTXVzdCBpbmNsdWRlIHVuaXRzLCBpLmUuIFwiMzJyZW1cIiBvciBcIjY0MHB4XCJcbiAgICovXG4gIG1pbldpZHRoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHVybmVkIHdoZW4gYSBkaWFsb2cgaXMgY2xvc2VkLlxuICogU3BlY2lmaWVzIGlmIHRoZSBkaWFsb2cgd2FzIHNhdmVkIGFuZCBjb250YWlucyBhbiBvcHRpb25hbCBjb250ZXh0LlxuICovXG5leHBvcnQgY2xhc3MgRGlhbG9nUmVzdWx0PFQ+IHtcbiAgY29uc3RydWN0b3IocHVibGljIHNhdmU6IGJvb2xlYW4sIHB1YmxpYyBjb250ZXh0PzogVCkgeyB9XG59O1xuXG5cbi8qKiBPcHRpb25zIGZvciBzaXplIG9mIGRpYWxvZyAqL1xuZXhwb3J0IHR5cGUgRGlhbG9nU2l6ZSA9IG51bWJlciB8ICd4c21hbGwnIHwgJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnIHwgJ2Z1bGwnIHwgJ2R5bmFtaWMnO1xuXG4vKipcbiAqIERpYWxvZyBBbmltYXRpb24gRXZlbnRzOlxuICogLSBCZWdpbkNsb3NlOiBXaGVuIHRoZSBjbG9zZSBhbmltYXRpb24gc3RhcnRzLlxuICogLSBFbmRDbG9zZTogV2hlbiB0aGUgY2xvc2UgYW5pbWF0aW9uIGZpbmlzaGVzXG4gKi9cbmV4cG9ydCB0eXBlIERpYWxvZ0FuaW1hdGlvbkV2ZW50ID0gJ0JlZ2luQ2xvc2UnIHwgJ0VuZENsb3NlJ1xuIl19
|