@fundamental-ngx/core 0.46.2-rc.8 → 0.46.2-rc.9

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.
@@ -6,8 +6,9 @@ export * from './helpers';
6
6
  export * from './mobile/mobile-multi-combobox.component';
7
7
  export * from './models/multi-combobox.interface';
8
8
  export * from './models/selection-change.event';
9
+ export * from './multi-announcer/multi-announcer.directive';
9
10
  export * from './multi-combobox-config';
10
11
  export * from './multi-combobox.component';
11
12
  export * from './multi-combobox.token';
12
13
  export * from './select-all-toggler/select-all-toggler.component';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9tdWx0aS1jb21ib2JveC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbURBQW1ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL211bHRpLWNvbWJvYm94Lm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1tdWx0aS1jb21ib2JveC5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtc291cmNlL211bHRpLWNvbWJvYm94LWRhdGEtc291cmNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1zb3VyY2UvbXVsdGktY29tYm9ib3gtZGF0YS1zb3VyY2UtcGFyc2VyJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL21vYmlsZS9tb2JpbGUtbXVsdGktY29tYm9ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL211bHRpLWNvbWJvYm94LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9zZWxlY3Rpb24tY2hhbmdlLmV2ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktY29tYm9ib3gtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktY29tYm9ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktY29tYm9ib3gudG9rZW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3QtYWxsLXRvZ2dsZXIvc2VsZWN0LWFsbC10b2dnbGVyLmNvbXBvbmVudCc7XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9tdWx0aS1jb21ib2JveC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtREFBbUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbXVsdGktY29tYm9ib3gubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9iYXNlLW11bHRpLWNvbWJvYm94LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1zb3VyY2UvbXVsdGktY29tYm9ib3gtZGF0YS1zb3VyY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXNvdXJjZS9tdWx0aS1jb21ib2JveC1kYXRhLXNvdXJjZS1wYXJzZXInO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9iaWxlL21vYmlsZS1tdWx0aS1jb21ib2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvbXVsdGktY29tYm9ib3guaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3NlbGVjdGlvbi1jaGFuZ2UuZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tdWx0aS1hbm5vdW5jZXIvbXVsdGktYW5ub3VuY2VyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpLWNvbWJvYm94LWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpLWNvbWJvYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL211bHRpLWNvbWJvYm94LnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWFsbC10b2dnbGVyL3NlbGVjdC1hbGwtdG9nZ2xlci5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,74 @@
1
+ /* eslint-disable @typescript-eslint/member-ordering */
2
+ import { LiveAnnouncer } from '@angular/cdk/a11y';
3
+ import { Directive, HostListener, inject, Input } from '@angular/core';
4
+ import { KeyUtil } from '@fundamental-ngx/cdk/utils';
5
+ import { resolveTranslationSyncFn } from '@fundamental-ngx/i18n';
6
+ import * as i0 from "@angular/core";
7
+ export class MultiAnnouncerDirective {
8
+ constructor() {
9
+ /** @hidden */
10
+ this._noResultsAnnounced = false;
11
+ /** @hidden */
12
+ this._resultsAnnounced = false;
13
+ /** @hidden */
14
+ this._announcement = '';
15
+ /** @hidden */
16
+ this._liveAnnouncer = inject(LiveAnnouncer);
17
+ /** @hidden */
18
+ this._resolveTranslation = resolveTranslationSyncFn();
19
+ }
20
+ /** @hidden */
21
+ _makeSearchTermChangeAnnouncements(event) {
22
+ if (KeyUtil.isKeyType(event, 'alphabetical') || KeyUtil.isKeyType(event, 'numeric')) {
23
+ this._liveAnnouncer.clear();
24
+ if (!this.multiAnnouncerOptions.length && !this._noResultsAnnounced) {
25
+ this._buildAnnouncement(this._resolveTranslation('coreMultiInput.noResults'));
26
+ this._noResultsAnnounced = true;
27
+ this._resultsAnnounced = false;
28
+ }
29
+ else if (this.multiAnnouncerOptions.length) {
30
+ if (this.multiAnnouncerOptions.length === 1) {
31
+ this._buildAnnouncement(this._resolveTranslation('coreMultiInput.countListResultsSingular', { count: 1 }));
32
+ }
33
+ else {
34
+ this._buildAnnouncement(this._resolveTranslation('coreMultiInput.countListResultsPlural', {
35
+ count: this.multiAnnouncerOptions.length
36
+ }));
37
+ }
38
+ if (!this._resultsAnnounced) {
39
+ this._buildAnnouncement(this._resolveTranslation('coreMultiInput.navigateSelectionsWithArrows'));
40
+ this._noResultsAnnounced = false;
41
+ this._resultsAnnounced = true;
42
+ }
43
+ }
44
+ this._buildAnnouncement(this._resolveTranslation('coreMultiInput.escapeNavigateTokens'));
45
+ this._makeAnnouncement(this._announcement);
46
+ }
47
+ }
48
+ /** @hidden */
49
+ _buildAnnouncement(message) {
50
+ this._announcement = this._announcement + message + ' ';
51
+ }
52
+ /** @hidden */
53
+ async _makeAnnouncement(message) {
54
+ await this._liveAnnouncer.announce(message, 'assertive').then(() => {
55
+ this._announcement = '';
56
+ });
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: MultiAnnouncerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
59
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: MultiAnnouncerDirective, isStandalone: true, selector: "[fdMultiAnnouncer]", inputs: { multiAnnouncerOptions: "multiAnnouncerOptions" }, host: { listeners: { "keyup": "_makeSearchTermChangeAnnouncements($event)" } }, exportAs: ["fdMultiAnnouncer"], ngImport: i0 }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: MultiAnnouncerDirective, decorators: [{
62
+ type: Directive,
63
+ args: [{
64
+ selector: '[fdMultiAnnouncer]',
65
+ exportAs: 'fdMultiAnnouncer',
66
+ standalone: true
67
+ }]
68
+ }], propDecorators: { multiAnnouncerOptions: [{
69
+ type: Input
70
+ }], _makeSearchTermChangeAnnouncements: [{
71
+ type: HostListener,
72
+ args: ['keyup', ['$event']]
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktYW5ub3VuY2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL211bHRpLWNvbWJvYm94L211bHRpLWFubm91bmNlci9tdWx0aS1hbm5vdW5jZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBT2pFLE1BQU0sT0FBTyx1QkFBdUI7SUFMcEM7UUFVSSxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRXBDLGNBQWM7UUFDTixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFbEMsY0FBYztRQUNOLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRTNCLGNBQWM7UUFDRyxtQkFBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdkUsY0FBYztRQUNOLHdCQUFtQixHQUFHLHdCQUF3QixFQUFFLENBQUM7S0E2QzVEO0lBM0NHLGNBQWM7SUFFTixrQ0FBa0MsQ0FBQyxLQUFvQjtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO2dCQUM5RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRTtnQkFDMUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDekMsSUFBSSxDQUFDLGtCQUFrQixDQUNuQixJQUFJLENBQUMsbUJBQW1CLENBQUMseUNBQXlDLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDcEYsQ0FBQztpQkFDTDtxQkFBTTtvQkFDSCxJQUFJLENBQUMsa0JBQWtCLENBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1Q0FBdUMsRUFBRTt3QkFDOUQsS0FBSyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNO3FCQUMzQyxDQUFDLENBQ0wsQ0FBQztpQkFDTDtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO29CQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLDZDQUE2QyxDQUFDLENBQUMsQ0FBQztvQkFDakcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztvQkFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztpQkFDakM7YUFDSjtZQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMscUNBQXFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDOUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLGtCQUFrQixDQUFDLE9BQWU7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDNUQsQ0FBQztJQUVELGNBQWM7SUFDTixLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBZTtRQUMzQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E5RFEsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COzhCQUlHLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFvQkUsa0NBQWtDO3NCQUR6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmcgKi9cbmltcG9ydCB7IExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2xhdGlvblN5bmNGbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkTXVsdGlBbm5vdW5jZXJdJyxcbiAgICBleHBvcnRBczogJ2ZkTXVsdGlBbm5vdW5jZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlBbm5vdW5jZXJEaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBtdWx0aUFubm91bmNlck9wdGlvbnM6IGFueVtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ub1Jlc3VsdHNBbm5vdW5jZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzdWx0c0Fubm91bmNlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hbm5vdW5jZW1lbnQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGl2ZUFubm91bmNlcjogTGl2ZUFubm91bmNlciA9IGluamVjdChMaXZlQW5ub3VuY2VyKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzb2x2ZVRyYW5zbGF0aW9uID0gcmVzb2x2ZVRyYW5zbGF0aW9uU3luY0ZuKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgICBwcml2YXRlIF9tYWtlU2VhcmNoVGVybUNoYW5nZUFubm91bmNlbWVudHMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlUeXBlKGV2ZW50LCAnYWxwaGFiZXRpY2FsJykgfHwgS2V5VXRpbC5pc0tleVR5cGUoZXZlbnQsICdudW1lcmljJykpIHtcbiAgICAgICAgICAgIHRoaXMuX2xpdmVBbm5vdW5jZXIuY2xlYXIoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5tdWx0aUFubm91bmNlck9wdGlvbnMubGVuZ3RoICYmICF0aGlzLl9ub1Jlc3VsdHNBbm5vdW5jZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9idWlsZEFubm91bmNlbWVudCh0aGlzLl9yZXNvbHZlVHJhbnNsYXRpb24oJ2NvcmVNdWx0aUlucHV0Lm5vUmVzdWx0cycpKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub1Jlc3VsdHNBbm5vdW5jZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc3VsdHNBbm5vdW5jZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tdWx0aUFubm91bmNlck9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubXVsdGlBbm5vdW5jZXJPcHRpb25zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9idWlsZEFubm91bmNlbWVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc29sdmVUcmFuc2xhdGlvbignY29yZU11bHRpSW5wdXQuY291bnRMaXN0UmVzdWx0c1Npbmd1bGFyJywgeyBjb3VudDogMSB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2J1aWxkQW5ub3VuY2VtZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVzb2x2ZVRyYW5zbGF0aW9uKCdjb3JlTXVsdGlJbnB1dC5jb3VudExpc3RSZXN1bHRzUGx1cmFsJywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50OiB0aGlzLm11bHRpQW5ub3VuY2VyT3B0aW9ucy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fcmVzdWx0c0Fubm91bmNlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9idWlsZEFubm91bmNlbWVudCh0aGlzLl9yZXNvbHZlVHJhbnNsYXRpb24oJ2NvcmVNdWx0aUlucHV0Lm5hdmlnYXRlU2VsZWN0aW9uc1dpdGhBcnJvd3MnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25vUmVzdWx0c0Fubm91bmNlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXN1bHRzQW5ub3VuY2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9idWlsZEFubm91bmNlbWVudCh0aGlzLl9yZXNvbHZlVHJhbnNsYXRpb24oJ2NvcmVNdWx0aUlucHV0LmVzY2FwZU5hdmlnYXRlVG9rZW5zJykpO1xuICAgICAgICAgICAgdGhpcy5fbWFrZUFubm91bmNlbWVudCh0aGlzLl9hbm5vdW5jZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9idWlsZEFubm91bmNlbWVudChtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYW5ub3VuY2VtZW50ID0gdGhpcy5fYW5ub3VuY2VtZW50ICsgbWVzc2FnZSArICcgJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX21ha2VBbm5vdW5jZW1lbnQobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UobWVzc2FnZSwgJ2Fzc2VydGl2ZScpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYW5ub3VuY2VtZW50ID0gJyc7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==