@quadrel-enterprise-ui/framework 18.25.2 → 18.25.4
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/esm2022/lib/core/core.module.mjs +3 -2
- package/esm2022/lib/core/model/safe-bottom-offset.token.mjs +3 -0
- package/esm2022/lib/forms/datepicker/calendar/calendar.component.mjs +8 -1
- package/esm2022/lib/notifications/directives/snackbar-listener.directive.mjs +83 -34
- package/esm2022/lib/page/page.component.mjs +22 -7
- package/fesm2022/quadrel-enterprise-ui-framework.mjs +103 -36
- package/fesm2022/quadrel-enterprise-ui-framework.mjs.map +1 -1
- package/lib/core/core.module.d.ts +2 -1
- package/lib/core/model/safe-bottom-offset.token.d.ts +3 -0
- package/lib/forms/datepicker/calendar/calendar.component.d.ts +7 -0
- package/lib/notifications/directives/snackbar-listener.directive.d.ts +30 -6
- package/lib/page/page.component.d.ts +4 -3
- package/package.json +1 -1
|
@@ -12,8 +12,9 @@ import { QdTooltipAtIntersectionDirective } from './tooltip/tooltip-at-intersect
|
|
|
12
12
|
import { QdVisuallyHiddenDirective } from './visually-hidden/visually-hidden.directive';
|
|
13
13
|
import { QdPushEventsService } from './services/push-events.service';
|
|
14
14
|
import { QD_POPOVER_TOP_FIRST } from './popover/popover-top-first.token';
|
|
15
|
+
import { QD_SAFE_BOTTOM_OFFSET } from './model/safe-bottom-offset.token';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
|
-
export { QdDisabledDirective, QdFileSizePipe, QdPlaceholderPipe, QdProjectionGuardComponent, QdRwdDisabledDirective, QdTooltipAtIntersectionDirective, QdVisuallyHiddenDirective, QdPushEventsService, QD_POPOVER_TOP_FIRST };
|
|
17
|
+
export { QdDisabledDirective, QdFileSizePipe, QdPlaceholderPipe, QdProjectionGuardComponent, QdRwdDisabledDirective, QdTooltipAtIntersectionDirective, QdVisuallyHiddenDirective, QdPushEventsService, QD_POPOVER_TOP_FIRST, QD_SAFE_BOTTOM_OFFSET };
|
|
17
18
|
export class QdCoreModule {
|
|
18
19
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
20
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: QdCoreModule, declarations: [QdDisabledDirective,
|
|
@@ -51,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
51
52
|
]
|
|
52
53
|
}]
|
|
53
54
|
}] });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvY29yZS9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBRXZILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUV6RSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0QixnQ0FBZ0MsRUFHaEMseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3RCLENBQUM7QUFxQkYsTUFBTSxPQUFPLFlBQVk7dUdBQVosWUFBWTt3R0FBWixZQUFZLGlCQWhCckIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0Qix5QkFBeUIsYUFQakIsWUFBWSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsYUFVOUUsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0Qix5QkFBeUI7d0dBR2hCLFlBQVksWUFsQmIsWUFBWSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUI7OzJGQWtCckUsWUFBWTtrQkFuQnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQztvQkFDakYsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLDBCQUEwQjt3QkFDMUIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIseUJBQXlCO3FCQUMxQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IFFkQXBwRW52aXJvbm1lbnQgfSBmcm9tICcuL21vZGVsL2FwcC1lbnZpcm9tZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBRZEJyZWFkY3J1bWJzTW9kdWxlIH0gZnJvbSAnLi9icmVhZGNydW1icy9icmVhZGNydW1icy5tb2R1bGUnO1xuaW1wb3J0IHsgUWREYXRhRmFjZXRzTW9kdWxlIH0gZnJvbSAnLi9kYXRhLWZhY2V0cy9kYXRhLWZhY2V0cy5tb2R1bGUnO1xuaW1wb3J0IHsgUWREaXNhYmxlZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlzYWJsZWQvZGlzYWJsZWQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFFkRmlsZVNpemVQaXBlIH0gZnJvbSAnLi9waXBlcy9maWxlLXNpemUucGlwZSc7XG5pbXBvcnQgeyBRZFBsYWNlaG9sZGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvcGxhY2Vob2xkZXIucGlwZSc7XG5pbXBvcnQgeyBRZFByb2plY3Rpb25HdWFyZENvbXBvbmVudCB9IGZyb20gJy4vcHJvamVjdGlvbi1ndWFyZC9wcm9qZWN0aW9uLWd1YXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRZFJ3ZERpc2FibGVkRGlyZWN0aXZlIH0gZnJvbSAnLi9yd2QtZGlzYWJsZWQvcndkLWRpc2FibGVkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBRZFRvb2x0aXBBdEludGVyc2VjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC90b29sdGlwLWF0LWludGVyc2VjdGlvbi90b29sdGlwLWF0LWludGVyc2VjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUWRUcmFuc2xhdGFibGUsIFFkVHJhbnNsYXRpb24gfSBmcm9tICcuL21vZGVsL3RyYW5zbGF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBRZFZpc3VhbGx5SGlkZGVuRGlyZWN0aXZlIH0gZnJvbSAnLi92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBRZFB1c2hFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wdXNoLWV2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFFEX1BPUE9WRVJfVE9QX0ZJUlNUIH0gZnJvbSAnLi9wb3BvdmVyL3BvcG92ZXItdG9wLWZpcnN0LnRva2VuJztcbmltcG9ydCB7IFFEX1NBRkVfQk9UVE9NX09GRlNFVCB9IGZyb20gJy4vbW9kZWwvc2FmZS1ib3R0b20tb2Zmc2V0LnRva2VuJztcblxuZXhwb3J0IHtcbiAgUWRBcHBFbnZpcm9ubWVudCxcbiAgUWREaXNhYmxlZERpcmVjdGl2ZSxcbiAgUWRGaWxlU2l6ZVBpcGUsXG4gIFFkUGxhY2Vob2xkZXJQaXBlLFxuICBRZFByb2plY3Rpb25HdWFyZENvbXBvbmVudCxcbiAgUWRSd2REaXNhYmxlZERpcmVjdGl2ZSxcbiAgUWRUb29sdGlwQXRJbnRlcnNlY3Rpb25EaXJlY3RpdmUsXG4gIFFkVHJhbnNsYXRhYmxlLFxuICBRZFRyYW5zbGF0aW9uLFxuICBRZFZpc3VhbGx5SGlkZGVuRGlyZWN0aXZlLFxuICBRZFB1c2hFdmVudHNTZXJ2aWNlLFxuICBRRF9QT1BPVkVSX1RPUF9GSVJTVCxcbiAgUURfU0FGRV9CT1RUT01fT0ZGU0VUXG59O1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFFkRGF0YUZhY2V0c01vZHVsZSwgUWRCcmVhZGNydW1ic01vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFFkRGlzYWJsZWREaXJlY3RpdmUsXG4gICAgUWRGaWxlU2l6ZVBpcGUsXG4gICAgUWRQbGFjZWhvbGRlclBpcGUsXG4gICAgUWRQcm9qZWN0aW9uR3VhcmRDb21wb25lbnQsXG4gICAgUWRSd2REaXNhYmxlZERpcmVjdGl2ZSxcbiAgICBRZFZpc3VhbGx5SGlkZGVuRGlyZWN0aXZlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBRZERpc2FibGVkRGlyZWN0aXZlLFxuICAgIFFkRmlsZVNpemVQaXBlLFxuICAgIFFkUGxhY2Vob2xkZXJQaXBlLFxuICAgIFFkUHJvamVjdGlvbkd1YXJkQ29tcG9uZW50LFxuICAgIFFkUndkRGlzYWJsZWREaXJlY3RpdmUsXG4gICAgUWRWaXN1YWxseUhpZGRlbkRpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFFkQ29yZU1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const QD_SAFE_BOTTOM_OFFSET = new InjectionToken('QD_SAFE_BOTTOM_OFFSET');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1ib3R0b20tb2Zmc2V0LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2NvcmUvbW9kZWwvc2FmZS1ib3R0b20tb2Zmc2V0LnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQTBCLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBRRF9TQUZFX0JPVFRPTV9PRkZTRVQgPSBuZXcgSW5qZWN0aW9uVG9rZW48QmVoYXZpb3JTdWJqZWN0PG51bWJlcj4+KCdRRF9TQUZFX0JPVFRPTV9PRkZTRVQnKTtcbiJdfQ==
|
|
@@ -4,6 +4,13 @@ import { range } from 'lodash';
|
|
|
4
4
|
import moment from 'moment';
|
|
5
5
|
import { QdCalendarMode } from '../../model/datepicker';
|
|
6
6
|
import { QdDateAdapter } from '../adapter/date-adapter';
|
|
7
|
+
/**
|
|
8
|
+
* DO NOT REMOVE — Vite/ESM does not bundle Moment locales automatically.
|
|
9
|
+
* These side-effect imports register de/fr/it for month and weekday names.
|
|
10
|
+
*/
|
|
11
|
+
import 'moment/locale/de';
|
|
12
|
+
import 'moment/locale/fr';
|
|
13
|
+
import 'moment/locale/it';
|
|
7
14
|
import * as i0 from "@angular/core";
|
|
8
15
|
import * as i1 from "@angular/common";
|
|
9
16
|
import * as i2 from "../../../icon/icon/icon.component";
|
|
@@ -185,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
185
192
|
}], selectedChange: [{
|
|
186
193
|
type: Output
|
|
187
194
|
}] } });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2Zvcm1zL2RhdGVwaWNrZXIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2Zvcm1zL2RhdGVwaWNrZXIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxNQUFrQixNQUFNLFFBQVEsQ0FBQztBQUN4QyxPQUFPLEVBQWlCLGNBQWMsRUFBbUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFFeEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztBQVFyQixNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7O09BSUc7SUFFSCxZQUFZLENBQTZCO0lBRXpDOzs7O09BSUc7SUFFSCxRQUFRLENBQVM7SUFFakI7Ozs7O09BS0c7SUFFSCxhQUFhLENBQW9CO0lBRWpDOztPQUVHO0lBRUgsY0FBYyxHQUFHLElBQUksWUFBWSxFQUE4QixDQUFDO0lBRWhFLFdBQVcsQ0FBUztJQUNwQixTQUFTLENBQVM7SUFFbEIsUUFBUSxDQUFXO0lBQ25CLEtBQUssR0FBMkIsRUFBRSxDQUFDO0lBQ25DLE1BQU0sQ0FBVztJQUNqQixLQUFLLENBQVc7SUFFaEIsSUFBSSxHQUFtQixjQUFjLENBQUMsT0FBTyxD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QUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO3VHQW5NVSxtQkFBbUI7MkZBQW5CLG1CQUFtQix1TkN6QmhDLHF1RUEyRUE7OzJGRGxEYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzhCQVMvQyxZQUFZO3NCQURYLEtBQUs7Z0JBU04sUUFBUTtzQkFEUCxLQUFLO2dCQVVOLGFBQWE7c0JBRFosS0FBSztnQkFPTixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtc3RyaWN0LWlnbm9yZVxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFFkQ2FsZW5kYXJEYXksIFFkQ2FsZW5kYXJNb2RlLCBRZERpc2FibGVkRGF0ZXMgfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFFkRGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi9hZGFwdGVyL2RhdGUtYWRhcHRlcic7XG5cbmNvbnN0IFllYXJzQmVmb3JlID0gOTtcbmNvbnN0IFllYXJzQWZ0ZXIgPSAyO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdxZC1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFFkQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gaGlnaGxpZ2h0IHRoZSBzZWxlY3RlZCBkYXRlIGluIHRoZSBjYWxlbmRhci4gSXQgc2hvdWxkIGJlIGluIHRoZSBmb3JtYXQgZm9yIGV4YW1wbGUgJ0RELk1NLllZWVknIG9yICdNTS9ERC9ZWVlZJyBkZXBlbmRpbmcgb24gdGhlIGxhbmd1YWdlIHVzZWQuXG4gICAqXG4gICAqIEBleGFtcGxlICcyMDIyLTEyLTI1J1xuICAgKi9cbiAgQElucHV0KClcbiAgc2VsZWN0ZWREYXRlOiBRZENhbGVuZGFyRGF5Wydmb3JtYXR0ZWQnXTtcblxuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBkZXRlcm1pbmVzIHRoZSBsYW5ndWFnZSB1c2VkIGZvciBkaXNwbGF5aW5nIHRoZSB3ZWVrZGF5cyBhbmQgZm9ybWF0dGluZyB0aGUgZGF0ZXMgaW4gdGhlIGNhbGVuZGFyLiBJdCBzaG91bGQgYmUgYSB2YWxpZCBsYW5ndWFnZSBjb2RlIHN1cHBvcnRlZCBieSB0aGUgbW9tZW50LmpzIGxpYnJhcnkuXG4gICAqXG4gICAqIEBleGFtcGxlICdkZSdcbiAgICovXG4gIEBJbnB1dCgpXG4gIGxhbmd1YWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgZGlzYWJsZXMgdGhlIGdpdmVuIGRhdGUgcmFuZ2VzLlRoZSByYW5nZXMgaGF2ZSBhIFwiZnJvbVwiIGFuZCBcInRvXCIgZGF0ZS5cbiAgICogSWYgXCJmcm9tXCIgaXMgZW1wdHksIGl0IHdpbGwgc2V0IHRoZSBkZWZhdWx0IHZhbHVlIDE5MDBcbiAgICogSWYgXCJ0b1wiIGlzIGVtcHR5LCBpdCB3aWxsIGJlIHNldCB0byB0aGUgZGVmYXVsdCAyMTAwXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBkaXNhYmxlZERhdGVzOiBRZERpc2FibGVkRGF0ZXNbXTtcblxuICAvKipcbiAgICogT3V0cHV0cyBhIHZhbHVlIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIGRhdGUgaW4gdGhlIGNhbGVuZGFyLiBUaGUgbmV3bHkgc2VsZWN0ZWQgZGF0ZSBpcyBvdXRwdXQgYXMgYSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmcuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFFkQ2FsZW5kYXJEYXlbJ2Zvcm1hdHRlZCddPigpO1xuXG4gIGN1cnJlbnREYXRlOiBNb21lbnQ7XG4gIHRvZGF5RGF0ZTogTW9tZW50O1xuXG4gIHdlZWtkYXlzOiBzdHJpbmdbXTtcbiAgd2Vla3M6IEFycmF5PFFkQ2FsZW5kYXJEYXlbXT4gPSBbXTtcbiAgbW9udGhzOiBzdHJpbmdbXTtcbiAgeWVhcnM6IG51bWJlcltdO1xuXG4gIG1vZGU6IFFkQ2FsZW5kYXJNb2RlID0gUWRDYWxlbmRhck1vZGUuRGVmYXVsdDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgUWRDYWxlbmRhck1vZGUgPSBRZENhbGVuZGFyTW9kZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBtb21lbnQubG9jYWxlKHRoaXMubGFuZ3VhZ2UpO1xuXG4gICAgdGhpcy5zZXRXZWVrZGF5cygpO1xuICAgIHRoaXMudG9kYXlEYXRlID0gbW9tZW50KCk7XG5cbiAgICB0aGlzLm1vbnRocyA9IG1vbWVudC5tb250aHMoKTtcbiAgICB0aGlzLnllYXJzID0gdGhpcy5nZXRZZWFycyhcbiAgICAgIChRZERhdGVBZGFwdGVyLnBhcnNlVG9Nb21lbnQodGhpcy5zZWxlY3RlZERhdGUpPy5pc1ZhbGlkKClcbiAgICAgICAgPyBtb21lbnQodGhpcy5zZWxlY3RlZERhdGUsICdMJywgdGhpcy5sYW5ndWFnZSlcbiAgICAgICAgOiB0aGlzLnRvZGF5RGF0ZVxuICAgICAgKS55ZWFyKClcbiAgICApO1xuXG4gICAgdGhpcy5zZXRDdXJyZW50RGF0ZSgpO1xuICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcih0aGlzLmN1cnJlbnREYXRlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbGFuZ3VhZ2UnXSkge1xuICAgICAgbW9tZW50LmxvY2FsZSh0aGlzLmxhbmd1YWdlKTtcbiAgICAgIHRoaXMuc2V0V2Vla2RheXMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkRGF0ZXMnXSAmJiAhY2hhbmdlc1snZGlzYWJsZWREYXRlcyddLmlzRmlyc3RDaGFuZ2UoKSkgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKHRoaXMuY3VycmVudERhdGUpO1xuICB9XG5cbiAgaXNTYW1lWWVhck1vbnRoKGRheTogTW9tZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRheS5pc1NhbWUodGhpcy5jdXJyZW50RGF0ZSwgJ21vbnRoJyk7XG4gIH1cblxuICBpc1NhbWVNb250aChtb250aCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnREYXRlLm1vbnRoKCkgPT09IG1vbnRoO1xuICB9XG5cbiAgaXNTYW1lWWVhcih5ZWFyOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gUWREYXRlQWRhcHRlci5wYXJzZVRvTW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKS55ZWFyKCkgPT09IHllYXI7XG4gIH1cblxuICBwcmV2KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vZGUgPT09IFFkQ2FsZW5kYXJNb2RlLkRlZmF1bHQpIHtcbiAgICAgIHRoaXMuY3VycmVudERhdGUuc3VidHJhY3QoMSwgJ21vbnRocycpO1xuICAgICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKHRoaXMuY3VycmVudERhdGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSBRZENhbGVuZGFyTW9kZS5ZZWFyUGlja2VyKSB7XG4gICAgICB0aGlzLmN1cnJlbnREYXRlLnNldCgneWVhcicsIHRoaXMuY3VycmVudERhdGUueWVhcigpIC0gKFllYXJzQmVmb3JlICsgWWVhcnNBZnRlciArIDEpKTtcbiAgICAgIHRoaXMueWVhcnMgPSB0aGlzLmdldFllYXJzKHRoaXMuY3VycmVudERhdGUueWVhcigpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyZW50RGF0ZS5zZXQoJ3llYXInLCB0aGlzLmN1cnJlbnREYXRlLnllYXIoKSAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gUWRDYWxlbmRhck1vZGUuRGVmYXVsdCkge1xuICAgICAgdGhpcy5jdXJyZW50RGF0ZS5hZGQoMSwgJ21vbnRocycpO1xuICAgICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKHRoaXMuY3VycmVudERhdGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlID09PSBRZENhbGVuZGFyTW9kZS5ZZWFyUGlja2VyKSB7XG4gICAgICB0aGlzLmN1cnJlbnREYXRlLnNldCgneWVhcicsIHRoaXMuY3VycmVudERhdGUueWVhcigpICsgKFllYXJzQmVmb3JlICsgWWVhcnNBZnRlciArIDEpKTtcbiAgICAgIHRoaXMueWVhcnMgPSB0aGlzLmdldFllYXJzKHRoaXMuY3VycmVudERhdGUueWVhcigpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyZW50RGF0ZS5zZXQoJ3llYXInLCB0aGlzLmN1cnJlbnREYXRlLnllYXIoKSArIDEpO1xuICAgIH1cbiAgfVxuXG4gIGlzU2VsZWN0ZWQobW9tZW50T2JqOiBNb21lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSByZXR1cm4gZmFsc2U7XG5cbiAgICByZXR1cm4gUWREYXRlQWRhcHRlci5mb3JtYXRUb0xvY2FsaXplZERhdGVTdHJpbmcobW9tZW50T2JqKSA9PT0gdGhpcy5zZWxlY3RlZERhdGU7XG4gIH1cblxuICBzZWxlY3REYXRlKGRhdGU6IFFkQ2FsZW5kYXJEYXkgfCBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoZGF0ZS5mb3JtYXR0ZWQpO1xuICB9XG5cbiAgc2VsZWN0WWVhcih5ZWFyOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnREYXRlLnNldCgneWVhcicsIHllYXIpO1xuICAgIHRoaXMubW9kZSA9IFFkQ2FsZW5kYXJNb2RlLk1vbnRoUGlja2VyO1xuICB9XG5cbiAgc2VsZWN0TW9udGgobW9udGg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudERhdGUuc2V0KCdtb250aCcsIG1vbnRoKTtcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIodGhpcy5jdXJyZW50RGF0ZSk7XG4gICAgdGhpcy5tb2RlID0gUWRDYWxlbmRhck1vZGUuRGVmYXVsdDtcbiAgfVxuXG4gIGNoYW5nZU1vZGUobnI6IFFkQ2FsZW5kYXJNb2RlKTogdm9pZCB7XG4gICAgdGhpcy5tb2RlID0gbnI7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ2FsZW5kYXIobW9tZW50T2JqOiBNb21lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlcyA9IHRoaXMuZmlsbERhdGVzKG1vbWVudE9iaik7XG4gICAgdGhpcy53ZWVrcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGguY2VpbChkYXRlcy5sZW5ndGggLyA3KSB9LCAoKSA9PiBkYXRlcy5zcGxpY2UoMCwgNykpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWxsRGF0ZXMobW9tZW50T2JqOiBNb21lbnQpOiBRZENhbGVuZGFyRGF5W10ge1xuICAgIGNvbnN0IGZpcnN0RGF5T2ZHcmlkID0gbW9tZW50KG1vbWVudE9iaikubG9jYWxlKHRoaXMubGFuZ3VhZ2UpLnN0YXJ0T2YoJ21vbnRoJykuc3RhcnRPZignaXNvV2VlaycpO1xuICAgIGNvbnN0IGxhc3REYXlPZkdyaWQgPSBtb21lbnQobW9tZW50T2JqKS5lbmRPZignbW9udGgnKS5lbmRPZignaXNvV2VlaycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnRDYWxlbmRhciA9IGZpcnN0RGF5T2ZHcmlkLmRhdGUoKTtcblxuICAgIHJldHVybiByYW5nZShzdGFydENhbGVuZGFyLCBzdGFydENhbGVuZGFyICsgbGFzdERheU9mR3JpZC5kaWZmKGZpcnN0RGF5T2ZHcmlkLCAnZGF5cycpKS5tYXAoZGF0ZSA9PiB7XG4gICAgICBjb25zdCBuZXdEYXRlID0gbW9tZW50KGZpcnN0RGF5T2ZHcmlkKS5kYXRlKGRhdGUpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb3JtYXR0ZWQ6IFFkRGF0ZUFkYXB0ZXIuZm9ybWF0VG9Mb2NhbGl6ZWREYXRlU3RyaW5nKG5ld0RhdGUpLFxuICAgICAgICBtb21lbnQ6IG5ld0RhdGUsXG4gICAgICAgIHNlbGVjdGVkOiB0aGlzLmlzU2VsZWN0ZWQobmV3RGF0ZSksXG4gICAgICAgIHRvZGF5OiB0aGlzLmlzVG9kYXkobmV3RGF0ZSksXG4gICAgICAgIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWQobmV3RGF0ZSlcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzVG9kYXkobW9tZW50T2JqOiBNb21lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b2RheURhdGUuaXNTYW1lKG1vbWVudE9iaiwgJ2RheScpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDdXJyZW50RGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RGF0ZTogTW9tZW50ID0gKHRoaXMuY3VycmVudERhdGUgPSBRZERhdGVBZGFwdGVyLnBhcnNlVG9Nb21lbnQodGhpcy5zZWxlY3RlZERhdGUpPy5pc1ZhbGlkKClcbiAgICAgID8gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlLCAnTCcsICdkZScpXG4gICAgICA6IHRoaXMudG9kYXlEYXRlKTtcblxuICAgIHRoaXMuY3VycmVudERhdGUgPSBjdXJyZW50RGF0ZTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IFFkRGF0ZUFkYXB0ZXIuZm9ybWF0VG9Mb2NhbGl6ZWREYXRlU3RyaW5nKGN1cnJlbnREYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0WWVhcnMoeWVhcjogbnVtYmVyKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHllYXJzQmVmb3JlID0gWWVhcnNCZWZvcmU7XG4gICAgY29uc3QgeWVhcnNBZnRlciA9IFllYXJzQWZ0ZXI7XG4gICAgY29uc3QgcmVzdWx0OiBudW1iZXJbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IHllYXIgLSB5ZWFyc0JlZm9yZTsgaSA8PSB5ZWFyICsgeWVhcnNBZnRlcjsgaSsrKSB7XG4gICAgICByZXN1bHQucHVzaChpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0Rpc2FibGVkKGRhdGU6IE1vbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZERhdGVzKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcy5zb21lKGRpc2FibGVkRGF0ZSA9PiB7XG4gICAgICBsZXQgZnJvbURhdGUgPSBtb21lbnQoZGlzYWJsZWREYXRlLmZyb20pO1xuICAgICAgbGV0IHRvRGF0ZSA9IG1vbWVudChkaXNhYmxlZERhdGUudG8pO1xuICAgICAgaWYgKCFkaXNhYmxlZERhdGUuZnJvbSkgZnJvbURhdGUgPSBtb21lbnQoJzE5MDAtMDEtMDFUMDA6MDA6MDAuMDAwWicpO1xuICAgICAgaWYgKCFkaXNhYmxlZERhdGUudG8pIHRvRGF0ZSA9IG1vbWVudCgnMjEwMC0wMS0wMVQwMDowMDowMC4wMDBaJyk7XG5cbiAgICAgIHJldHVybiBkYXRlLmlzQWZ0ZXIoZnJvbURhdGUsICdkYXknKSAmJiBkYXRlLmlzQmVmb3JlKHRvRGF0ZSwgJ2RheScpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXZWVrZGF5cygpOiB2b2lkIHtcbiAgICBjb25zdCB3ID0gbW9tZW50LmxvY2FsZURhdGEodGhpcy5sYW5ndWFnZSkud2Vla2RheXNNaW4oKTtcblxuICAgIHRoaXMud2Vla2RheXMgPSB3LnNsaWNlKDEpLmNvbmNhdCh3WzBdKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm5hdlwiPlxuICA8YnV0dG9uIChjbGljayk9XCJwcmV2KClcIj5cbiAgICA8cWQtaWNvbiBpY29uPVwiYXJyb3dMZWZ0XCI+PC9xZC1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8bmctY29udGFpbmVyPlxuICAgIDxzcGFuXG4gICAgICAqbmdJZj1cIm1vZGUgPT09IFFkQ2FsZW5kYXJNb2RlLkRlZmF1bHRcIlxuICAgICAgY2xhc3M9XCJjdXJyZW50LW1vbnRoLXllYXJcIlxuICAgICAgKGNsaWNrKT1cImNoYW5nZU1vZGUoUWRDYWxlbmRhck1vZGUuWWVhclBpY2tlcilcIlxuICAgID5cbiAgICAgIHt7IGN1cnJlbnREYXRlLmxvY2FsZShsYW5ndWFnZSkuZm9ybWF0KFwiTU1NTVwiKSB9fSB7eyBjdXJyZW50RGF0ZT8uZm9ybWF0KFwiWVlZWVwiKSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJtb2RlID09PSBRZENhbGVuZGFyTW9kZS5ZZWFyUGlja2VyXCJcbiAgICAgIGNsYXNzPVwiY3VycmVudC15ZWFycy1saXN0XCJcbiAgICAgIChjbGljayk9XCJjaGFuZ2VNb2RlKFFkQ2FsZW5kYXJNb2RlLk1vbnRoUGlja2VyKVwiXG4gICAgPlxuICAgICAge3sgeWVhcnNbMF0gfX0gLSB7eyB5ZWFyc1t5ZWFycy5sZW5ndGggLSAxXSB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJtb2RlID09PSBRZENhbGVuZGFyTW9kZS5Nb250aFBpY2tlclwiXG4gICAgICBjbGFzcz1cImN1cnJlbnQteWVhclwiXG4gICAgICAoY2xpY2spPVwiY2hhbmdlTW9kZShRZENhbGVuZGFyTW9kZS5ZZWFyUGlja2VyKVwiXG4gICAgPlxuICAgICAge3sgY3VycmVudERhdGU/LmZvcm1hdChcIllZWVlcIikgfX1cbiAgICA8L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxidXR0b24gKGNsaWNrKT1cIm5leHQoKVwiPlxuICAgIDxxZC1pY29uIGljb249XCJhcnJvd1JpZ2h0XCI+PC9xZC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG48dGFibGUgKm5nSWY9XCJtb2RlID09PSBRZENhbGVuZGFyTW9kZS5EZWZhdWx0XCI+XG4gIDx0aGVhZD48L3RoZWFkPlxuICA8dGJvZHk+XG4gICAgPHRyPlxuICAgICAgPHRkIGNsYXNzPVwid2Vla2RheVwiICpuZ0Zvcj1cImxldCBuYW1lIG9mIHdlZWtkYXlzXCI+e3sgbmFtZSB9fTwvdGQ+XG4gICAgPC90cj5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHdlZWsgb2Ygd2Vla3NcIj5cbiAgICAgIDx0ZFxuICAgICAgICBjbGFzcz1cImRheSB7eyBkYXkubW9tZW50LmRhdGUoKSB9fVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla1wiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3REYXRlKGRheSlcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgdG9kYXk6IGRheS50b2RheSxcbiAgICAgICAgICBzZWxlY3RlZDogZGF5LnNlbGVjdGVkLFxuICAgICAgICAgIGhpZGRlbjogIWlzU2FtZVllYXJNb250aChkYXkubW9tZW50KSxcbiAgICAgICAgICBkaXNhYmxlZDogZGF5LmRpc2FibGVkXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICB7eyBkYXkubW9tZW50LmRhdGUoKSB9fVxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPGRpdiBjbGFzcz1cImNhbGVuZGFyXCIgKm5nSWY9XCJtb2RlICE9PSBRZENhbGVuZGFyTW9kZS5EZWZhdWx0XCI+XG4gIDxkaXYgY2xhc3M9XCJwaWNrZXJcIiAqbmdJZj1cIm1vZGUgPT09IFFkQ2FsZW5kYXJNb2RlLlllYXJQaWNrZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sIHt7IHllYXIgfX1cIiAqbmdGb3I9XCJsZXQgeWVhciBvZiB5ZWFyc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImVudHJ5XCIgKGNsaWNrKT1cInNlbGVjdFllYXIoeWVhcilcIiBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBpc1NhbWVZZWFyKHllYXIpIH1cIj5cbiAgICAgICAge3sgeWVhciB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwaWNrZXJcIiAqbmdJZj1cIm1vZGUgPT09IFFkQ2FsZW5kYXJNb2RlLk1vbnRoUGlja2VyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbCB7eyBtb250aCB9fVwiICpuZ0Zvcj1cImxldCBtb250aCBvZiBtb250aHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeVwiIChjbGljayk9XCJzZWxlY3RNb250aChpKVwiIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IGlzU2FtZU1vbnRoKGkpLCBtb250aCB9XCI+XG4gICAgICAgIHt7IG1vbnRoIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2Zvcm1zL2RhdGVwaWNrZXIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2Zvcm1zL2RhdGVwaWNrZXIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxNQUFrQixNQUFNLFFBQVEsQ0FBQztBQUN4QyxPQUFPLEVBQWlCLGNBQWMsRUFBbUIsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQ7OztHQUdHO0FBQ0gsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sa0JBQWtCLENBQUM7Ozs7QUFFMUIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQztBQVFyQixNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOzs7O09BSUc7SUFFSCxZQUFZLENBQTZCO0lBRXpDOzs7O09BSUc7SUFFSCxRQUFRLENBQVM7SUFFakI7Ozs7O09BS0c7SUFFSCxhQUFhLENBQW9CO0lBRWpDOztPQUVHO0lBRUgsY0FBYyxHQUFHLElBQUksWUFBWSxFQUE4QixDQUFDO0lBRWhFLFdBQVcsQ0FBUztJQUNwQixTQUFTLENBQVM7SUFFbEIsUUFBUSxDQUFXO0lBQ25CLEtBQUss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QUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO3VHQW5NVSxtQkFBbUI7MkZBQW5CLG1CQUFtQix1TkNqQ2hDLHF1RUEyRUE7OzJGRDFDYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNOzhCQVMvQyxZQUFZO3NCQURYLEtBQUs7Z0JBU04sUUFBUTtzQkFEUCxLQUFLO2dCQVVOLGFBQWE7c0JBRFosS0FBSztnQkFPTixjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtc3RyaWN0LWlnbm9yZVxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQsIHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IFFkQ2FsZW5kYXJEYXksIFFkQ2FsZW5kYXJNb2RlLCBRZERpc2FibGVkRGF0ZXMgfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IFFkRGF0ZUFkYXB0ZXIgfSBmcm9tICcuLi9hZGFwdGVyL2RhdGUtYWRhcHRlcic7XG5cbi8qKlxuICogRE8gTk9UIFJFTU9WRSDigJQgVml0ZS9FU00gZG9lcyBub3QgYnVuZGxlIE1vbWVudCBsb2NhbGVzIGF1dG9tYXRpY2FsbHkuXG4gKiBUaGVzZSBzaWRlLWVmZmVjdCBpbXBvcnRzIHJlZ2lzdGVyIGRlL2ZyL2l0IGZvciBtb250aCBhbmQgd2Vla2RheSBuYW1lcy5cbiAqL1xuaW1wb3J0ICdtb21lbnQvbG9jYWxlL2RlJztcbmltcG9ydCAnbW9tZW50L2xvY2FsZS9mcic7XG5pbXBvcnQgJ21vbWVudC9sb2NhbGUvaXQnO1xuXG5jb25zdCBZZWFyc0JlZm9yZSA9IDk7XG5jb25zdCBZZWFyc0FmdGVyID0gMjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncWQtY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBRZENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvKipcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIHRvIGhpZ2hsaWdodCB0aGUgc2VsZWN0ZWQgZGF0ZSBpbiB0aGUgY2FsZW5kYXIuIEl0IHNob3VsZCBiZSBpbiB0aGUgZm9ybWF0IGZvciBleGFtcGxlICdERC5NTS5ZWVlZJyBvciAnTU0vREQvWVlZWScgZGVwZW5kaW5nIG9uIHRoZSBsYW5ndWFnZSB1c2VkLlxuICAgKlxuICAgKiBAZXhhbXBsZSAnMjAyMi0xMi0yNSdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNlbGVjdGVkRGF0ZTogUWRDYWxlbmRhckRheVsnZm9ybWF0dGVkJ107XG5cbiAgLyoqXG4gICAqIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgbGFuZ3VhZ2UgdXNlZCBmb3IgZGlzcGxheWluZyB0aGUgd2Vla2RheXMgYW5kIGZvcm1hdHRpbmcgdGhlIGRhdGVzIGluIHRoZSBjYWxlbmRhci4gSXQgc2hvdWxkIGJlIGEgdmFsaWQgbGFuZ3VhZ2UgY29kZSBzdXBwb3J0ZWQgYnkgdGhlIG1vbWVudC5qcyBsaWJyYXJ5LlxuICAgKlxuICAgKiBAZXhhbXBsZSAnZGUnXG4gICAqL1xuICBASW5wdXQoKVxuICBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGRpc2FibGVzIHRoZSBnaXZlbiBkYXRlIHJhbmdlcy5UaGUgcmFuZ2VzIGhhdmUgYSBcImZyb21cIiBhbmQgXCJ0b1wiIGRhdGUuXG4gICAqIElmIFwiZnJvbVwiIGlzIGVtcHR5LCBpdCB3aWxsIHNldCB0aGUgZGVmYXVsdCB2YWx1ZSAxOTAwXG4gICAqIElmIFwidG9cIiBpcyBlbXB0eSwgaXQgd2lsbCBiZSBzZXQgdG8gdGhlIGRlZmF1bHQgMjEwMFxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgZGlzYWJsZWREYXRlczogUWREaXNhYmxlZERhdGVzW107XG5cbiAgLyoqXG4gICAqIE91dHB1dHMgYSB2YWx1ZSB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBkYXRlIGluIHRoZSBjYWxlbmRhci4gVGhlIG5ld2x5IHNlbGVjdGVkIGRhdGUgaXMgb3V0cHV0IGFzIGEgZm9ybWF0dGVkIGRhdGUgc3RyaW5nLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxRZENhbGVuZGFyRGF5Wydmb3JtYXR0ZWQnXT4oKTtcblxuICBjdXJyZW50RGF0ZTogTW9tZW50O1xuICB0b2RheURhdGU6IE1vbWVudDtcblxuICB3ZWVrZGF5czogc3RyaW5nW107XG4gIHdlZWtzOiBBcnJheTxRZENhbGVuZGFyRGF5W10+ID0gW107XG4gIG1vbnRoczogc3RyaW5nW107XG4gIHllYXJzOiBudW1iZXJbXTtcblxuICBtb2RlOiBRZENhbGVuZGFyTW9kZSA9IFFkQ2FsZW5kYXJNb2RlLkRlZmF1bHQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IFFkQ2FsZW5kYXJNb2RlID0gUWRDYWxlbmRhck1vZGU7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbW9tZW50LmxvY2FsZSh0aGlzLmxhbmd1YWdlKTtcblxuICAgIHRoaXMuc2V0V2Vla2RheXMoKTtcbiAgICB0aGlzLnRvZGF5RGF0ZSA9IG1vbWVudCgpO1xuXG4gICAgdGhpcy5tb250aHMgPSBtb21lbnQubW9udGhzKCk7XG4gICAgdGhpcy55ZWFycyA9IHRoaXMuZ2V0WWVhcnMoXG4gICAgICAoUWREYXRlQWRhcHRlci5wYXJzZVRvTW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKT8uaXNWYWxpZCgpXG4gICAgICAgID8gbW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlLCAnTCcsIHRoaXMubGFuZ3VhZ2UpXG4gICAgICAgIDogdGhpcy50b2RheURhdGVcbiAgICAgICkueWVhcigpXG4gICAgKTtcblxuICAgIHRoaXMuc2V0Q3VycmVudERhdGUoKTtcbiAgICB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIodGhpcy5jdXJyZW50RGF0ZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2xhbmd1YWdlJ10pIHtcbiAgICAgIG1vbWVudC5sb2NhbGUodGhpcy5sYW5ndWFnZSk7XG4gICAgICB0aGlzLnNldFdlZWtkYXlzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZERhdGVzJ10gJiYgIWNoYW5nZXNbJ2Rpc2FibGVkRGF0ZXMnXS5pc0ZpcnN0Q2hhbmdlKCkpIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcih0aGlzLmN1cnJlbnREYXRlKTtcbiAgfVxuXG4gIGlzU2FtZVllYXJNb250aChkYXk6IE1vbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXkuaXNTYW1lKHRoaXMuY3VycmVudERhdGUsICdtb250aCcpO1xuICB9XG5cbiAgaXNTYW1lTW9udGgobW9udGgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50RGF0ZS5tb250aCgpID09PSBtb250aDtcbiAgfVxuXG4gIGlzU2FtZVllYXIoeWVhcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFFkRGF0ZUFkYXB0ZXIucGFyc2VUb01vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZSkueWVhcigpID09PSB5ZWFyO1xuICB9XG5cbiAgcHJldigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSBRZENhbGVuZGFyTW9kZS5EZWZhdWx0KSB7XG4gICAgICB0aGlzLmN1cnJlbnREYXRlLnN1YnRyYWN0KDEsICdtb250aHMnKTtcbiAgICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcih0aGlzLmN1cnJlbnREYXRlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gUWRDYWxlbmRhck1vZGUuWWVhclBpY2tlcikge1xuICAgICAgdGhpcy5jdXJyZW50RGF0ZS5zZXQoJ3llYXInLCB0aGlzLmN1cnJlbnREYXRlLnllYXIoKSAtIChZZWFyc0JlZm9yZSArIFllYXJzQWZ0ZXIgKyAxKSk7XG4gICAgICB0aGlzLnllYXJzID0gdGhpcy5nZXRZZWFycyh0aGlzLmN1cnJlbnREYXRlLnllYXIoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudERhdGUuc2V0KCd5ZWFyJywgdGhpcy5jdXJyZW50RGF0ZS55ZWFyKCkgLSAxKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vZGUgPT09IFFkQ2FsZW5kYXJNb2RlLkRlZmF1bHQpIHtcbiAgICAgIHRoaXMuY3VycmVudERhdGUuYWRkKDEsICdtb250aHMnKTtcbiAgICAgIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcih0aGlzLmN1cnJlbnREYXRlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gUWRDYWxlbmRhck1vZGUuWWVhclBpY2tlcikge1xuICAgICAgdGhpcy5jdXJyZW50RGF0ZS5zZXQoJ3llYXInLCB0aGlzLmN1cnJlbnREYXRlLnllYXIoKSArIChZZWFyc0JlZm9yZSArIFllYXJzQWZ0ZXIgKyAxKSk7XG4gICAgICB0aGlzLnllYXJzID0gdGhpcy5nZXRZZWFycyh0aGlzLmN1cnJlbnREYXRlLnllYXIoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3VycmVudERhdGUuc2V0KCd5ZWFyJywgdGhpcy5jdXJyZW50RGF0ZS55ZWFyKCkgKyAxKTtcbiAgICB9XG4gIH1cblxuICBpc1NlbGVjdGVkKG1vbWVudE9iajogTW9tZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRGF0ZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgcmV0dXJuIFFkRGF0ZUFkYXB0ZXIuZm9ybWF0VG9Mb2NhbGl6ZWREYXRlU3RyaW5nKG1vbWVudE9iaikgPT09IHRoaXMuc2VsZWN0ZWREYXRlO1xuICB9XG5cbiAgc2VsZWN0RGF0ZShkYXRlOiBRZENhbGVuZGFyRGF5IHwgYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KGRhdGUuZm9ybWF0dGVkKTtcbiAgfVxuXG4gIHNlbGVjdFllYXIoeWVhcjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50RGF0ZS5zZXQoJ3llYXInLCB5ZWFyKTtcbiAgICB0aGlzLm1vZGUgPSBRZENhbGVuZGFyTW9kZS5Nb250aFBpY2tlcjtcbiAgfVxuXG4gIHNlbGVjdE1vbnRoKG1vbnRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnREYXRlLnNldCgnbW9udGgnLCBtb250aCk7XG4gICAgdGhpcy5nZW5lcmF0ZUNhbGVuZGFyKHRoaXMuY3VycmVudERhdGUpO1xuICAgIHRoaXMubW9kZSA9IFFkQ2FsZW5kYXJNb2RlLkRlZmF1bHQ7XG4gIH1cblxuICBjaGFuZ2VNb2RlKG5yOiBRZENhbGVuZGFyTW9kZSk6IHZvaWQge1xuICAgIHRoaXMubW9kZSA9IG5yO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhbGVuZGFyKG1vbWVudE9iajogTW9tZW50KTogdm9pZCB7XG4gICAgY29uc3QgZGF0ZXMgPSB0aGlzLmZpbGxEYXRlcyhtb21lbnRPYmopO1xuICAgIHRoaXMud2Vla3MgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBNYXRoLmNlaWwoZGF0ZXMubGVuZ3RoIC8gNykgfSwgKCkgPT4gZGF0ZXMuc3BsaWNlKDAsIDcpKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsbERhdGVzKG1vbWVudE9iajogTW9tZW50KTogUWRDYWxlbmRhckRheVtdIHtcbiAgICBjb25zdCBmaXJzdERheU9mR3JpZCA9IG1vbWVudChtb21lbnRPYmopLmxvY2FsZSh0aGlzLmxhbmd1YWdlKS5zdGFydE9mKCdtb250aCcpLnN0YXJ0T2YoJ2lzb1dlZWsnKTtcbiAgICBjb25zdCBsYXN0RGF5T2ZHcmlkID0gbW9tZW50KG1vbWVudE9iaikuZW5kT2YoJ21vbnRoJykuZW5kT2YoJ2lzb1dlZWsnKS5hZGQoMSwgJ2RheScpO1xuICAgIGNvbnN0IHN0YXJ0Q2FsZW5kYXIgPSBmaXJzdERheU9mR3JpZC5kYXRlKCk7XG5cbiAgICByZXR1cm4gcmFuZ2Uoc3RhcnRDYWxlbmRhciwgc3RhcnRDYWxlbmRhciArIGxhc3REYXlPZkdyaWQuZGlmZihmaXJzdERheU9mR3JpZCwgJ2RheXMnKSkubWFwKGRhdGUgPT4ge1xuICAgICAgY29uc3QgbmV3RGF0ZSA9IG1vbWVudChmaXJzdERheU9mR3JpZCkuZGF0ZShkYXRlKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9ybWF0dGVkOiBRZERhdGVBZGFwdGVyLmZvcm1hdFRvTG9jYWxpemVkRGF0ZVN0cmluZyhuZXdEYXRlKSxcbiAgICAgICAgbW9tZW50OiBuZXdEYXRlLFxuICAgICAgICBzZWxlY3RlZDogdGhpcy5pc1NlbGVjdGVkKG5ld0RhdGUpLFxuICAgICAgICB0b2RheTogdGhpcy5pc1RvZGF5KG5ld0RhdGUpLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkKG5ld0RhdGUpXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RvZGF5KG1vbWVudE9iajogTW9tZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG9kYXlEYXRlLmlzU2FtZShtb21lbnRPYmosICdkYXknKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudERhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudERhdGU6IE1vbWVudCA9ICh0aGlzLmN1cnJlbnREYXRlID0gUWREYXRlQWRhcHRlci5wYXJzZVRvTW9tZW50KHRoaXMuc2VsZWN0ZWREYXRlKT8uaXNWYWxpZCgpXG4gICAgICA/IG1vbWVudCh0aGlzLnNlbGVjdGVkRGF0ZSwgJ0wnLCAnZGUnKVxuICAgICAgOiB0aGlzLnRvZGF5RGF0ZSk7XG5cbiAgICB0aGlzLmN1cnJlbnREYXRlID0gY3VycmVudERhdGU7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBRZERhdGVBZGFwdGVyLmZvcm1hdFRvTG9jYWxpemVkRGF0ZVN0cmluZyhjdXJyZW50RGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFllYXJzKHllYXI6IG51bWJlcik6IG51bWJlcltdIHtcbiAgICBjb25zdCB5ZWFyc0JlZm9yZSA9IFllYXJzQmVmb3JlO1xuICAgIGNvbnN0IHllYXJzQWZ0ZXIgPSBZZWFyc0FmdGVyO1xuICAgIGNvbnN0IHJlc3VsdDogbnVtYmVyW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSB5ZWFyIC0geWVhcnNCZWZvcmU7IGkgPD0geWVhciArIHllYXJzQWZ0ZXI7IGkrKykge1xuICAgICAgcmVzdWx0LnB1c2goaSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNEaXNhYmxlZChkYXRlOiBNb21lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWREYXRlcykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMuc29tZShkaXNhYmxlZERhdGUgPT4ge1xuICAgICAgbGV0IGZyb21EYXRlID0gbW9tZW50KGRpc2FibGVkRGF0ZS5mcm9tKTtcbiAgICAgIGxldCB0b0RhdGUgPSBtb21lbnQoZGlzYWJsZWREYXRlLnRvKTtcbiAgICAgIGlmICghZGlzYWJsZWREYXRlLmZyb20pIGZyb21EYXRlID0gbW9tZW50KCcxOTAwLTAxLTAxVDAwOjAwOjAwLjAwMFonKTtcbiAgICAgIGlmICghZGlzYWJsZWREYXRlLnRvKSB0b0RhdGUgPSBtb21lbnQoJzIxMDAtMDEtMDFUMDA6MDA6MDAuMDAwWicpO1xuXG4gICAgICByZXR1cm4gZGF0ZS5pc0FmdGVyKGZyb21EYXRlLCAnZGF5JykgJiYgZGF0ZS5pc0JlZm9yZSh0b0RhdGUsICdkYXknKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2Vla2RheXMoKTogdm9pZCB7XG4gICAgY29uc3QgdyA9IG1vbWVudC5sb2NhbGVEYXRhKHRoaXMubGFuZ3VhZ2UpLndlZWtkYXlzTWluKCk7XG5cbiAgICB0aGlzLndlZWtkYXlzID0gdy5zbGljZSgxKS5jb25jYXQod1swXSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJuYXZcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwicHJldigpXCI+XG4gICAgPHFkLWljb24gaWNvbj1cImFycm93TGVmdFwiPjwvcWQtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPG5nLWNvbnRhaW5lcj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJtb2RlID09PSBRZENhbGVuZGFyTW9kZS5EZWZhdWx0XCJcbiAgICAgIGNsYXNzPVwiY3VycmVudC1tb250aC15ZWFyXCJcbiAgICAgIChjbGljayk9XCJjaGFuZ2VNb2RlKFFkQ2FsZW5kYXJNb2RlLlllYXJQaWNrZXIpXCJcbiAgICA+XG4gICAgICB7eyBjdXJyZW50RGF0ZS5sb2NhbGUobGFuZ3VhZ2UpLmZvcm1hdChcIk1NTU1cIikgfX0ge3sgY3VycmVudERhdGU/LmZvcm1hdChcIllZWVlcIikgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwibW9kZSA9PT0gUWRDYWxlbmRhck1vZGUuWWVhclBpY2tlclwiXG4gICAgICBjbGFzcz1cImN1cnJlbnQteWVhcnMtbGlzdFwiXG4gICAgICAoY2xpY2spPVwiY2hhbmdlTW9kZShRZENhbGVuZGFyTW9kZS5Nb250aFBpY2tlcilcIlxuICAgID5cbiAgICAgIHt7IHllYXJzWzBdIH19IC0ge3sgeWVhcnNbeWVhcnMubGVuZ3RoIC0gMV0gfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwibW9kZSA9PT0gUWRDYWxlbmRhck1vZGUuTW9udGhQaWNrZXJcIlxuICAgICAgY2xhc3M9XCJjdXJyZW50LXllYXJcIlxuICAgICAgKGNsaWNrKT1cImNoYW5nZU1vZGUoUWRDYWxlbmRhck1vZGUuWWVhclBpY2tlcilcIlxuICAgID5cbiAgICAgIHt7IGN1cnJlbnREYXRlPy5mb3JtYXQoXCJZWVlZXCIpIH19XG4gICAgPC9zcGFuPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8YnV0dG9uIChjbGljayk9XCJuZXh0KClcIj5cbiAgICA8cWQtaWNvbiBpY29uPVwiYXJyb3dSaWdodFwiPjwvcWQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cblxuPHRhYmxlICpuZ0lmPVwibW9kZSA9PT0gUWRDYWxlbmRhck1vZGUuRGVmYXVsdFwiPlxuICA8dGhlYWQ+PC90aGVhZD5cbiAgPHRib2R5PlxuICAgIDx0cj5cbiAgICAgIDx0ZCBjbGFzcz1cIndlZWtkYXlcIiAqbmdGb3I9XCJsZXQgbmFtZSBvZiB3ZWVrZGF5c1wiPnt7IG5hbWUgfX08L3RkPlxuICAgIDwvdHI+XG4gICAgPHRyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIHdlZWtzXCI+XG4gICAgICA8dGRcbiAgICAgICAgY2xhc3M9XCJkYXkge3sgZGF5Lm1vbWVudC5kYXRlKCkgfX1cIlxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWtcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShkYXkpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIHRvZGF5OiBkYXkudG9kYXksXG4gICAgICAgICAgc2VsZWN0ZWQ6IGRheS5zZWxlY3RlZCxcbiAgICAgICAgICBoaWRkZW46ICFpc1NhbWVZZWFyTW9udGgoZGF5Lm1vbWVudCksXG4gICAgICAgICAgZGlzYWJsZWQ6IGRheS5kaXNhYmxlZFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAge3sgZGF5Lm1vbWVudC5kYXRlKCkgfX1cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5cbjxkaXYgY2xhc3M9XCJjYWxlbmRhclwiICpuZ0lmPVwibW9kZSAhPT0gUWRDYWxlbmRhck1vZGUuRGVmYXVsdFwiPlxuICA8ZGl2IGNsYXNzPVwicGlja2VyXCIgKm5nSWY9XCJtb2RlID09PSBRZENhbGVuZGFyTW9kZS5ZZWFyUGlja2VyXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbCB7eyB5ZWFyIH19XCIgKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhcnNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeVwiIChjbGljayk9XCJzZWxlY3RZZWFyKHllYXIpXCIgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogaXNTYW1lWWVhcih5ZWFyKSB9XCI+XG4gICAgICAgIHt7IHllYXIgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicGlja2VyXCIgKm5nSWY9XCJtb2RlID09PSBRZENhbGVuZGFyTW9kZS5Nb250aFBpY2tlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wge3sgbW9udGggfX1cIiAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIiAoY2xpY2spPVwic2VsZWN0TW9udGgoaSlcIiBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBpc1NhbWVNb250aChpKSwgbW9udGggfVwiPlxuICAgICAgICB7eyBtb250aCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,70 +1,119 @@
|
|
|
1
|
-
|
|
1
|
+
import { Directive, ElementRef, Inject } from '@angular/core';
|
|
2
2
|
import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
|
|
3
3
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { debounceTime, startWith, takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { BehaviorSubject, debounceTime, distinctUntilChanged, startWith, Subject, takeUntil } from 'rxjs';
|
|
5
|
+
import { QD_SAFE_BOTTOM_OFFSET } from '../../core/core.module';
|
|
7
6
|
import { QdSnackbarService } from '../services/snackbar.service';
|
|
8
7
|
import { QdNotificationsSnackbarComponent } from '../snackbar/snackbar.component';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
import * as i1 from "../services/snackbar.service";
|
|
11
10
|
import * as i2 from "@angular/cdk/overlay";
|
|
11
|
+
import * as i3 from "rxjs";
|
|
12
|
+
const MARGIN_PX = 10;
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
14
|
+
* Shows notifications as a snackbar.
|
|
15
|
+
*
|
|
16
|
+
* #### **Behavior**
|
|
17
|
+
* - Appears in the bottom-right corner.
|
|
18
|
+
* - Adapts to the QLS (e.g., stays above a PageFooter).
|
|
19
|
+
* - Behavior is configurable via `snackbarOptions` (e.g., lifetime, close button, handlers).
|
|
20
|
+
*
|
|
21
|
+
* #### **Usage**
|
|
22
|
+
* ```html
|
|
23
|
+
* <qd-shell [config]="shellConfig" qdSnackbarListener>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* #### **Snackbar Configuration**
|
|
27
|
+
* ```ts
|
|
28
|
+
* {
|
|
29
|
+
* showAsSnackbar: true,
|
|
30
|
+
* snackbarOptions?: {
|
|
31
|
+
* ...
|
|
32
|
+
* }
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
14
35
|
*/
|
|
15
36
|
export class QdNotificationsSnackbarListenerDirective {
|
|
16
37
|
snackbarService;
|
|
17
38
|
hostRef;
|
|
18
39
|
overlay;
|
|
19
40
|
overlayPositionBuilder;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
41
|
+
safeBottomOffset$;
|
|
42
|
+
_overlayRef;
|
|
43
|
+
_destroyed$ = new Subject();
|
|
44
|
+
constructor(snackbarService, hostRef, overlay, overlayPositionBuilder, safeBottomOffset$) {
|
|
23
45
|
this.snackbarService = snackbarService;
|
|
24
46
|
this.hostRef = hostRef;
|
|
25
47
|
this.overlay = overlay;
|
|
26
48
|
this.overlayPositionBuilder = overlayPositionBuilder;
|
|
49
|
+
this.safeBottomOffset$ = safeBottomOffset$;
|
|
27
50
|
}
|
|
28
51
|
ngOnInit() {
|
|
29
|
-
this.
|
|
52
|
+
this.initOverlay();
|
|
30
53
|
}
|
|
31
|
-
|
|
54
|
+
ngOnDestroy() {
|
|
55
|
+
this._overlayRef?.dispose();
|
|
56
|
+
this._destroyed$.next();
|
|
57
|
+
this._destroyed$.complete();
|
|
58
|
+
}
|
|
59
|
+
initOverlay() {
|
|
32
60
|
if (!this.hostRef)
|
|
33
61
|
return;
|
|
34
|
-
const positionStrategy = this.overlayPositionBuilder
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
overlayX: 'end',
|
|
39
|
-
overlayY: 'bottom',
|
|
40
|
-
offsetX: -10,
|
|
41
|
-
offsetY: -10
|
|
42
|
-
}
|
|
43
|
-
]);
|
|
44
|
-
this.overlayRef = this.overlay.create({
|
|
62
|
+
const positionStrategy = this.overlayPositionBuilder
|
|
63
|
+
.flexibleConnectedTo(this.hostRef)
|
|
64
|
+
.withPositions(this.bottomRightPositions());
|
|
65
|
+
this._overlayRef = this.overlay.create({
|
|
45
66
|
positionStrategy,
|
|
46
67
|
maxWidth: 300,
|
|
47
68
|
scrollStrategy: this.overlay.scrollStrategies.reposition()
|
|
48
69
|
});
|
|
49
70
|
const notificationPortal = new ComponentPortal(QdNotificationsSnackbarComponent);
|
|
50
|
-
const snackbarRef = this.
|
|
71
|
+
const snackbarRef = this._overlayRef.attach(notificationPortal);
|
|
51
72
|
snackbarRef.instance.notifications$ = this.snackbarService.notifications$;
|
|
52
|
-
this.snackbarService.overlayRef = this.
|
|
53
|
-
|
|
54
|
-
.pipe(debounceTime(250), takeUntil(this.destroyed$))
|
|
55
|
-
.subscribe(() => this.overlayRef.updatePosition());
|
|
73
|
+
this.snackbarService.overlayRef = this._overlayRef;
|
|
74
|
+
this.observeSafeBottomOffset(positionStrategy);
|
|
56
75
|
}
|
|
57
|
-
|
|
58
|
-
this.
|
|
59
|
-
|
|
76
|
+
observeSafeBottomOffset(strategy) {
|
|
77
|
+
this.safeBottomOffset$
|
|
78
|
+
.pipe(startWith(0), distinctUntilChanged(), debounceTime(250), takeUntil(this._destroyed$))
|
|
79
|
+
.subscribe(safeBottomOffset => {
|
|
80
|
+
strategy.withPositions(this.bottomRightPositions(safeBottomOffset));
|
|
81
|
+
this._overlayRef.updatePosition();
|
|
82
|
+
});
|
|
60
83
|
}
|
|
61
|
-
|
|
62
|
-
|
|
84
|
+
bottomRightPositions(safeBottomOffset = 0) {
|
|
85
|
+
return [
|
|
86
|
+
{
|
|
87
|
+
originX: 'end',
|
|
88
|
+
originY: 'bottom',
|
|
89
|
+
overlayX: 'end',
|
|
90
|
+
overlayY: 'bottom',
|
|
91
|
+
offsetX: -MARGIN_PX,
|
|
92
|
+
offsetY: -(MARGIN_PX + safeBottomOffset)
|
|
93
|
+
}
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdNotificationsSnackbarListenerDirective, deps: [{ token: i1.QdSnackbarService }, { token: i0.ElementRef }, { token: i2.Overlay }, { token: i2.OverlayPositionBuilder }, { token: QD_SAFE_BOTTOM_OFFSET }], target: i0.ɵɵFactoryTarget.Directive });
|
|
97
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.9", type: QdNotificationsSnackbarListenerDirective, selector: "[qdSnackbarListener]", providers: [
|
|
98
|
+
{
|
|
99
|
+
provide: QD_SAFE_BOTTOM_OFFSET,
|
|
100
|
+
useFactory: () => new BehaviorSubject(0)
|
|
101
|
+
}
|
|
102
|
+
], ngImport: i0 });
|
|
63
103
|
}
|
|
64
104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdNotificationsSnackbarListenerDirective, decorators: [{
|
|
65
105
|
type: Directive,
|
|
66
106
|
args: [{
|
|
67
|
-
selector: '[qdSnackbarListener]'
|
|
107
|
+
selector: '[qdSnackbarListener]',
|
|
108
|
+
providers: [
|
|
109
|
+
{
|
|
110
|
+
provide: QD_SAFE_BOTTOM_OFFSET,
|
|
111
|
+
useFactory: () => new BehaviorSubject(0)
|
|
112
|
+
}
|
|
113
|
+
]
|
|
68
114
|
}]
|
|
69
|
-
}], ctorParameters: () => [{ type: i1.QdSnackbarService }, { type: i0.ElementRef }, { type: i2.Overlay }, { type: i2.OverlayPositionBuilder }
|
|
70
|
-
|
|
115
|
+
}], ctorParameters: () => [{ type: i1.QdSnackbarService }, { type: i0.ElementRef }, { type: i2.Overlay }, { type: i2.OverlayPositionBuilder }, { type: i3.BehaviorSubject, decorators: [{
|
|
116
|
+
type: Inject,
|
|
117
|
+
args: [QD_SAFE_BOTTOM_OFFSET]
|
|
118
|
+
}] }] });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXItbGlzdGVuZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL25vdGlmaWNhdGlvbnMvZGlyZWN0aXZlcy9zbmFja2Jhci1saXN0ZW5lci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBR0wsT0FBTyxFQUNQLHNCQUFzQixFQUV2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFFbEYsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBRXJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBVUgsTUFBTSxPQUFPLHdDQUF3QztJQUt6QztJQUNBO0lBQ0E7SUFDQTtJQUMrQjtJQVJqQyxXQUFXLENBQXlCO0lBQ3BDLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTFDLFlBQ1UsZUFBa0MsRUFDbEMsT0FBZ0MsRUFDaEMsT0FBZ0IsRUFDaEIsc0JBQThDLEVBQ2YsaUJBQTBDO1FBSnpFLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUNoQyxZQUFPLEdBQVAsT0FBTyxD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cUJBQ0Y7aUJBQ0Y7OzBCQVVJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25uZWN0ZWRQb3NpdGlvbixcbiAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICBPdmVybGF5LFxuICBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICBPdmVybGF5UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzdGFydFdpdGgsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBRRF9TQUZFX0JPVFRPTV9PRkZTRVQgfSBmcm9tICcuLi8uLi9jb3JlL2NvcmUubW9kdWxlJztcbmltcG9ydCB7IFFkU25hY2tiYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc25hY2tiYXIuc2VydmljZSc7XG5pbXBvcnQgeyBRZE5vdGlmaWNhdGlvbnNTbmFja2JhckNvbXBvbmVudCB9IGZyb20gJy4uL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudCc7XG5cbmNvbnN0IE1BUkdJTl9QWCA9IDEwO1xuXG4vKipcbiAqIFNob3dzIG5vdGlmaWNhdGlvbnMgYXMgYSBzbmFja2Jhci5cbiAqXG4gKiAjIyMjICoqQmVoYXZpb3IqKlxuICogLSBBcHBlYXJzIGluIHRoZSBib3R0b20tcmlnaHQgY29ybmVyLlxuICogLSBBZGFwdHMgdG8gdGhlIFFMUyAoZS5nLiwgc3RheXMgYWJvdmUgYSBQYWdlRm9vdGVyKS5cbiAqIC0gQmVoYXZpb3IgaXMgY29uZmlndXJhYmxlIHZpYSBgc25hY2tiYXJPcHRpb25zYCAoZS5nLiwgbGlmZXRpbWUsIGNsb3NlIGJ1dHRvbiwgaGFuZGxlcnMpLlxuICpcbiAqICMjIyMgKipVc2FnZSoqXG4gKiBgYGBodG1sXG4gKiAgIDxxZC1zaGVsbCBbY29uZmlnXT1cInNoZWxsQ29uZmlnXCIgcWRTbmFja2Jhckxpc3RlbmVyPlxuICogYGBgXG4gKlxuICogIyMjIyAqKlNuYWNrYmFyIENvbmZpZ3VyYXRpb24qKlxuICogYGBgdHNcbiAqIHtcbiAqICAgc2hvd0FzU25hY2tiYXI6IHRydWUsXG4gKiAgIHNuYWNrYmFyT3B0aW9ucz86IHtcbiAqICAgICAuLi5cbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1txZFNuYWNrYmFyTGlzdGVuZXJdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUURfU0FGRV9CT1RUT01fT0ZGU0VULFxuICAgICAgdXNlRmFjdG9yeTogKCk6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0+IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBRZE5vdGlmaWNhdGlvbnNTbmFja2Jhckxpc3RlbmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9kZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNuYWNrYmFyU2VydmljZTogUWRTbmFja2JhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBob3N0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBvdmVybGF5UG9zaXRpb25CdWlsZGVyOiBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICAgIEBJbmplY3QoUURfU0FGRV9CT1RUT01fT0ZGU0VUKSBwcml2YXRlIHNhZmVCb3R0b21PZmZzZXQkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0T3ZlcmxheSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdE92ZXJsYXkoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhvc3RSZWYpIHJldHVybjtcblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXJcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuaG9zdFJlZilcbiAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuYm90dG9tUmlnaHRQb3NpdGlvbnMoKSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgbWF4V2lkdGg6IDMwMCxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcbiAgICB9KTtcblxuICAgIGNvbnN0IG5vdGlmaWNhdGlvblBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoUWROb3RpZmljYXRpb25zU25hY2tiYXJDb21wb25lbnQpO1xuICAgIGNvbnN0IHNuYWNrYmFyUmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobm90aWZpY2F0aW9uUG9ydGFsKTtcbiAgICBzbmFja2JhclJlZi5pbnN0YW5jZS5ub3RpZmljYXRpb25zJCA9IHRoaXMuc25hY2tiYXJTZXJ2aWNlLm5vdGlmaWNhdGlvbnMkO1xuXG4gICAgdGhpcy5zbmFja2JhclNlcnZpY2Uub3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXlSZWY7XG4gICAgdGhpcy5vYnNlcnZlU2FmZUJvdHRvbU9mZnNldChwb3NpdGlvblN0cmF0ZWd5KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZVNhZmVCb3R0b21PZmZzZXQoc3RyYXRlZ3k6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSk6IHZvaWQge1xuICAgIHRoaXMuc2FmZUJvdHRvbU9mZnNldCRcbiAgICAgIC5waXBlKHN0YXJ0V2l0aCgwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgZGVib3VuY2VUaW1lKDI1MCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoc2FmZUJvdHRvbU9mZnNldCA9PiB7XG4gICAgICAgIHN0cmF0ZWd5LndpdGhQb3NpdGlvbnModGhpcy5ib3R0b21SaWdodFBvc2l0aW9ucyhzYWZlQm90dG9tT2Zmc2V0KSk7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYhLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYm90dG9tUmlnaHRQb3NpdGlvbnMoc2FmZUJvdHRvbU9mZnNldCA9IDApOiBDb25uZWN0ZWRQb3NpdGlvbltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgIG92ZXJsYXlYOiAnZW5kJyxcbiAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICBvZmZzZXRYOiAtTUFSR0lOX1BYLFxuICAgICAgICBvZmZzZXRZOiAtKE1BUkdJTl9QWCArIHNhZmVCb3R0b21PZmZzZXQpXG4gICAgICB9XG4gICAgXTtcbiAgfVxufVxuIl19
|