@rivet-health/design-system 23.3.0 → 23.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/format/svg-text-truncate/svg-text-truncate.directive.mjs +2 -2
- package/esm2020/lib/format/truncate/truncate.component.mjs +3 -3
- package/esm2020/lib/input/checkbox/checkbox.component.mjs +1 -1
- package/esm2020/lib/input/date/date.component.mjs +2 -2
- package/esm2020/lib/input/date-range/date-range.component.mjs +3 -3
- package/esm2020/lib/input/input-label/input-label.component.mjs +1 -1
- package/esm2020/lib/input/select/select/select.component.mjs +2 -2
- package/esm2020/lib/input/select/select-node/select-node.component.mjs +1 -1
- package/esm2020/lib/input/single-select/single-select.component.mjs +2 -2
- package/esm2020/lib/navigation/views/all-views-modal/all-views-modal.component.mjs +1 -1
- package/esm2020/lib/navigation/views/edit-view/edit-view.component.mjs +2 -2
- package/esm2020/lib/navigation/views/state.mjs +35 -6
- package/esm2020/lib/navigation/views/view-menu/view-menu.component.mjs +14 -16
- package/esm2020/lib/navigation/views/views/views.component.mjs +15 -9
- package/esm2020/lib/{modal → overlay}/callout/callout.component.mjs +1 -1
- package/esm2020/lib/overlay/callout/callout.helpers.mjs +113 -0
- package/esm2020/lib/{modal → overlay/callout}/help/help.component.mjs +2 -2
- package/esm2020/lib/overlay/callout/lock-scroll.directive.mjs +69 -0
- package/esm2020/lib/{modal → overlay/callout}/menu/menu-divider/menu-divider.component.mjs +1 -1
- package/esm2020/lib/overlay/callout/menu/menu-item/menu-item.component.mjs +71 -0
- package/esm2020/lib/{modal → overlay/callout}/menu/menu.component.mjs +4 -4
- package/esm2020/lib/overlay/callout/tooltip/locked-tooltip.directive.mjs +30 -0
- package/esm2020/lib/overlay/callout/tooltip/tooltip.component.mjs +61 -0
- package/esm2020/lib/overlay/callout/tooltip/tooltip.directive.mjs +73 -0
- package/esm2020/lib/overlay/modal/dialog/dialog.component.mjs +20 -0
- package/esm2020/lib/{modal → overlay}/modal/modal.component.mjs +1 -1
- package/esm2020/lib/{modal → overlay/modal}/side-sheet/side-sheet.component.mjs +2 -2
- package/esm2020/lib/{modal → overlay}/overlay-outlet.component.mjs +1 -1
- package/esm2020/lib/overlay/overlay.directive.mjs +25 -0
- package/esm2020/lib/overlay/overlay.service.mjs +36 -0
- package/esm2020/lib/overlay/toast/toast-action.component.mjs +11 -0
- package/esm2020/lib/overlay/toast/toast.component.mjs +38 -0
- package/esm2020/lib/riv.module.mjs +29 -14
- package/esm2020/lib/table/state.mjs +196 -52
- package/esm2020/lib/table/table/table.component.mjs +14 -10
- package/esm2020/lib/table/table-column-settings/table-column-settings-side-sheet.component.mjs +4 -4
- package/esm2020/lib/table/table-column-settings/table-column-settings.component.mjs +2 -2
- package/esm2020/lib/table/table-csv-export/table-csv-export.component.mjs +1 -1
- package/esm2020/lib/visualization/chart/chart.component.mjs +2 -2
- package/esm2020/lib/visualization/donut/donut.component.mjs +1 -1
- package/esm2020/lib/visualization/legend-item/legend-item.component.mjs +1 -1
- package/esm2020/lib/visualization/metric/metric.component.mjs +1 -1
- package/esm2020/lib/visualization/stacked-column/stacked-column.component.mjs +2 -2
- package/esm2020/lib/visualization/stacked-row/stacked-row.component.mjs +2 -2
- package/esm2020/lib/visualization/time-series/time-series.component.mjs +2 -2
- package/esm2020/public-api.mjs +17 -13
- package/fesm2015/rivet-health-design-system.mjs +442 -257
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +530 -284
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/format/svg-text-truncate/svg-text-truncate.directive.d.ts +1 -1
- package/lib/format/truncate/truncate.component.d.ts +1 -1
- package/lib/navigation/views/state.d.ts +13 -0
- package/lib/navigation/views/view-menu/view-menu.component.d.ts +2 -3
- package/lib/navigation/views/views/views.component.d.ts +6 -2
- package/lib/{modal → overlay/callout}/menu/menu.component.d.ts +1 -1
- package/lib/{modal → overlay/callout}/tooltip/tooltip.component.d.ts +1 -1
- package/lib/overlay/modal/dialog/dialog.component.d.ts +8 -0
- package/lib/overlay/toast/toast-action.component.d.ts +5 -0
- package/lib/overlay/toast/toast.component.d.ts +15 -0
- package/lib/riv.module.d.ts +68 -65
- package/lib/table/state.d.ts +90 -13
- package/lib/table/table/table.component.d.ts +11 -6
- package/package.json +1 -1
- package/public-api.d.ts +16 -12
- package/esm2020/lib/modal/callout/callout.helpers.mjs +0 -113
- package/esm2020/lib/modal/callout/lock-scroll.directive.mjs +0 -69
- package/esm2020/lib/modal/menu/menu-item/menu-item.component.mjs +0 -71
- package/esm2020/lib/modal/overlay.directive.mjs +0 -25
- package/esm2020/lib/modal/overlay.service.mjs +0 -36
- package/esm2020/lib/modal/tooltip/locked-tooltip.directive.mjs +0 -30
- package/esm2020/lib/modal/tooltip/tooltip.component.mjs +0 -61
- package/esm2020/lib/modal/tooltip/tooltip.directive.mjs +0 -73
- /package/lib/{modal → overlay}/callout/callout.component.d.ts +0 -0
- /package/lib/{modal → overlay}/callout/callout.helpers.d.ts +0 -0
- /package/lib/{modal → overlay/callout}/help/help.component.d.ts +0 -0
- /package/lib/{modal → overlay}/callout/lock-scroll.directive.d.ts +0 -0
- /package/lib/{modal → overlay/callout}/menu/menu-divider/menu-divider.component.d.ts +0 -0
- /package/lib/{modal → overlay/callout}/menu/menu-item/menu-item.component.d.ts +0 -0
- /package/lib/{modal → overlay/callout}/tooltip/locked-tooltip.directive.d.ts +0 -0
- /package/lib/{modal → overlay/callout}/tooltip/tooltip.directive.d.ts +0 -0
- /package/lib/{modal → overlay}/modal/modal.component.d.ts +0 -0
- /package/lib/{modal → overlay/modal}/side-sheet/side-sheet.component.d.ts +0 -0
- /package/lib/{modal → overlay}/overlay-outlet.component.d.ts +0 -0
- /package/lib/{modal → overlay}/overlay.directive.d.ts +0 -0
- /package/lib/{modal → overlay}/overlay.service.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Directive, Input, } from '@angular/core';
|
|
2
|
-
import { TooltipDirective } from '../../
|
|
2
|
+
import { TooltipDirective } from '../../overlay/callout/tooltip/tooltip.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
// Credit to boneskull on Github, whose work I used as a reference
|
|
5
5
|
export class SVGTextTruncateDirective extends TooltipDirective {
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
59
59
|
}], width: [{
|
|
60
60
|
type: Input
|
|
61
61
|
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLXRleHQtdHJ1bmNhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvZm9ybWF0L3N2Zy10ZXh0LXRydW5jYXRlL3N2Zy10ZXh0LXRydW5jYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFFbkYsa0VBQWtFO0FBSWxFLE1BQU0sT0FBTyx3QkFDWCxTQUFRLGdCQUFnQjtJQVN4QixZQUM4QixFQUFjLEVBQ2QsY0FBOEI7UUFFMUQsS0FBSyxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUhFLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFQNUQsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUdsQixVQUFLLEdBQVcsRUFBRSxDQUFDO0lBT25CLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCwrRUFBK0U7SUFDL0UsV0FBVyxDQUFDLE9BQThCO1FBQ3hDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoQyxJQUFJLGFBQWEsR0FBVyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUV2RCxnRUFBZ0U7UUFDaEUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDdEUsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3RCO2FBQU07WUFDTDs7O2NBR0U7WUFDRixhQUFhLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLHNCQUFzQixHQUFZLEtBQUssQ0FBQztZQUM1QyxPQUFPLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDbkQsTUFBTSxnQkFBZ0IsR0FDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFFNUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztnQkFFdkMsSUFDRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQ3BFO29CQUNBLHNCQUFzQixHQUFHLElBQUksQ0FBQztpQkFDL0I7cUJBQU07b0JBQ0wsYUFBYSxFQUFFLENBQUM7aUJBQ2pCO2FBQ0Y7WUFFRCxrRkFBa0Y7WUFDbEYsSUFBSSxDQUFDLHNCQUFzQixFQUFFO2dCQUMzQixPQUFPLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUM3QjtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUM3QjtJQUNILENBQUM7O3FIQTFEVSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw4QkFBOEI7aUJBQ3pDOzhIQU1DLElBQUk7c0JBREgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBBcHBsaWNhdGlvblJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vb3ZlcmxheS9jYWxsb3V0L3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuXG4vLyBDcmVkaXQgdG8gYm9uZXNrdWxsIG9uIEdpdGh1Yiwgd2hvc2Ugd29yayBJIHVzZWQgYXMgYSByZWZlcmVuY2VcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3N2ZyB0ZXh0W3JpdlNWR1RleHRUcnVuY2F0ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBTVkdUZXh0VHJ1bmNhdGVEaXJlY3RpdmVcbiAgZXh0ZW5kcyBUb29sdGlwRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICBASW5wdXQoKVxuICB0ZXh0OiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICB3aWR0aDogbnVtYmVyID0gNTA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICkge1xuICAgIHN1cGVyKGVsLCBhcHBsaWNhdGlvblJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdmdUcnVuY2F0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLy8gVHJ1bmNhdGUgdGhyb3VnaCBzZXR0aW5nIHN0cmluZ3MgYXMgdGhlIHRleHQtY29udGVudCBhbmQgdGVzdGluZyB0aGVpciB3aWR0aFxuICBzdmdUcnVuY2F0ZShlbGVtZW50OiBTVkdUZXh0Q29udGVudEVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy50ZXh0O1xuICAgIGxldCBjdXJyZW50TGVuZ3RoOiBudW1iZXIgPSBlbGVtZW50LnRleHRDb250ZW50Lmxlbmd0aDtcblxuICAgIC8vIElmIHRoZSB0ZXh0IGNhbiBmaXQgaW4gdGhlIGdpdmVuIHdpZHRoLCBubyB0cnVuY2F0aW9uIG5lZWRlZC5cbiAgICBpZiAoY3VycmVudExlbmd0aCA+IDAgJiYgZWxlbWVudC5nZXRDb21wdXRlZFRleHRMZW5ndGgoKSA8PSB0aGlzLndpZHRoKSB7XG4gICAgICBlbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy50ZXh0O1xuICAgICAgdGhpcy5yaXZUb29sdGlwID0gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8qXG4gICAgICAgIFRlc3QgdGhlIGxlbmd0aCBvZiBlYWNoIFwic3Vic3RyaW5nICsgLi4uXCIgY29tYm8gdW50aWwgd2UgZmluZCBvbmUgdGhhdCBmaXRzLlxuICAgICAgICBTdGFydCBieSBtYWtpbmcgcm9vbSBmb3IgdGhlIGVsaXBzZXMgYnkgc3VidHJhY3RpbmcgMyBmcm9tIHRoZSBsZW5ndGguXG4gICAgICAqL1xuICAgICAgY3VycmVudExlbmd0aCA9IGN1cnJlbnRMZW5ndGggLSAzO1xuICAgICAgbGV0IGN1cnJlbnRUZXh0Rml0c0luV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAgIHdoaWxlIChjdXJyZW50TGVuZ3RoID4gMCAmJiAhY3VycmVudFRleHRGaXRzSW5XaWR0aCkge1xuICAgICAgICBjb25zdCBjdXJyZW50VGV4dFRvVHJ5OiBzdHJpbmcgPVxuICAgICAgICAgIHRoaXMudGV4dC5zbGljZSgwLCBjdXJyZW50TGVuZ3RoKSArICcuLi4nO1xuXG4gICAgICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSBjdXJyZW50VGV4dFRvVHJ5O1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBlbGVtZW50LmdldFN1YlN0cmluZ0xlbmd0aCgwLCBjdXJyZW50VGV4dFRvVHJ5Lmxlbmd0aCkgPD0gdGhpcy53aWR0aFxuICAgICAgICApIHtcbiAgICAgICAgICBjdXJyZW50VGV4dEZpdHNJbldpZHRoID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdXJyZW50TGVuZ3RoLS07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgd2UgZW5kIHVwIG5vdCBmaW5kaW5nIGEgd2lkdGggb2YgdGV4dCB0aGF0IHdvcmtzLCBkaXNwbGF5IGp1c3QgdGhlIGVsbGlwc2VzLlxuICAgICAgaWYgKCFjdXJyZW50VGV4dEZpdHNJbldpZHRoKSB7XG4gICAgICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSAnLi4uJztcbiAgICAgIH1cbiAgICAgIHRoaXMucml2VG9vbHRpcCA9IHRoaXMudGV4dDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, HostListener, Input, Self, } from '@angular/core';
|
|
2
|
-
import { TooltipDirective } from '../../
|
|
2
|
+
import { TooltipDirective } from '../../overlay/callout/tooltip/tooltip.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../
|
|
4
|
+
import * as i1 from "../../overlay/callout/tooltip/tooltip.directive";
|
|
5
5
|
function scrolled(element) {
|
|
6
6
|
return element.offsetWidth < element.scrollWidth;
|
|
7
7
|
}
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
47
47
|
type: HostListener,
|
|
48
48
|
args: ['mouseleave']
|
|
49
49
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvZm9ybWF0L3RydW5jYXRlL3RydW5jYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2Zvcm1hdC90cnVuY2F0ZS90cnVuY2F0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLElBQUksR0FDTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7O0FBRW5GLFNBQVMsUUFBUSxDQUFDLE9BQW9CO0lBQ3BDLE9BQU8sT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO0FBQ25ELENBQUM7QUFFRDs7R0FFRztBQVFILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDbUIsT0FBbUI7SUFDcEMsNkNBQTZDO0lBQ3BCLE9BQXlCO1FBRmpDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFFWCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUlwRCxvQkFBZSxHQUFXLE9BQU8sQ0FBQztJQUgvQixDQUFDO0lBTUosS0FBSztRQUNILElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUdELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsY0FBYztRQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRCxDQUFDOzs4R0EzQlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ0xDeEI5Qiw2QkFDQSxxSURxQmlCLENBQUMsZ0JBQWdCLENBQUM7MkZBRXRCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLENBQUMsZ0JBQWdCLENBQUM7OzBCQU05QixJQUFJOzRDQUlQLGVBQWU7c0JBRGQsS0FBSztnQkFJTixLQUFLO3NCQURKLFlBQVk7dUJBQUMsWUFBWTtnQkFVMUIsS0FBSztzQkFESixZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9vdmVybGF5L2NhbGxvdXQvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XG5cbmZ1bmN0aW9uIHNjcm9sbGVkKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBlbGVtZW50Lm9mZnNldFdpZHRoIDwgZWxlbWVudC5zY3JvbGxXaWR0aDtcbn1cblxuLyoqXG4gKiBUcnVuY2F0ZSB0aGUgdGV4dCB0byBvbmUgbGluZS4gV2hlbiB0cnVuY2F0ZWQsIGRpc3BsYXkgdGhlIGZ1bGwgdGV4dCBpbiBhIHRvb2x0aXAuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1tyaXZUcnVuY2F0ZV0nLFxuICBzdHlsZVVybHM6IFsnLi90cnVuY2F0ZS5jb21wb25lbnQuY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi90cnVuY2F0ZS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB2aWV3UHJvdmlkZXJzOiBbVG9vbHRpcERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRydW5jYXRlQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIC8vIEZvciBwZXJmb3JtYW5jZSByZWFzb25zLCB0YWtlIG1vcmUgY29udHJvbFxuICAgIEBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSB0b29sdGlwOiBUb29sdGlwRGlyZWN0aXZlLFxuICApIHt9XG5cbiAgQElucHV0KClcbiAgbWF4VG9vbHRpcFdpZHRoOiBzdHJpbmcgPSAnMjAwcHgnO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBlbnRlcigpIHtcbiAgICBpZiAoc2Nyb2xsZWQodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICB0aGlzLnRvb2x0aXAucml2VG9vbHRpcCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50O1xuICAgICAgdGhpcy50b29sdGlwLnJpdlRvb2x0aXBNYXhXaWR0aCA9IHRoaXMubWF4VG9vbHRpcFdpZHRoO1xuICAgICAgdGhpcy50b29sdGlwLm9uTW91c2VFbnRlcigpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBsZWF2ZSgpIHtcbiAgICB0aGlzLnRvb2x0aXAub25Nb3VzZUxlYXZlKCk7XG4gIH1cblxuICAvLyBGb3IgdGhlIGF1dG8tY29tcGxldGUgdGV4dGJveC5cbiAgc2Nyb2xsSW50b1ZpZXcoKSB7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoZmFsc2UpO1xuICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../
|
|
3
|
+
import * as i1 from "../../overlay/callout/tooltip/tooltip.directive";
|
|
4
4
|
export class CheckboxComponent {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.value = false;
|
|
@@ -5,10 +5,10 @@ import { InputLabelComponent } from '../input-label/input-label.component';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
import * as i2 from "../calendar/calendar.component";
|
|
8
|
-
import * as i3 from "../../
|
|
8
|
+
import * as i3 from "../../overlay/callout/callout.component";
|
|
9
9
|
import * as i4 from "../../icon/icon.component";
|
|
10
10
|
import * as i5 from "../input-label/input-label.component";
|
|
11
|
-
import * as i6 from "../../
|
|
11
|
+
import * as i6 from "../../overlay/overlay.directive";
|
|
12
12
|
import * as i7 from "../../format/pipes/date.pipe";
|
|
13
13
|
export class DateComponent extends InputLabelComponent {
|
|
14
14
|
constructor() {
|
|
@@ -10,13 +10,13 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
import * as i1 from "@angular/common";
|
|
11
11
|
import * as i2 from "../button/button.component";
|
|
12
12
|
import * as i3 from "../calendar/calendar.component";
|
|
13
|
-
import * as i4 from "../../
|
|
13
|
+
import * as i4 from "../../overlay/callout/callout.component";
|
|
14
14
|
import * as i5 from "../../visualization/highlight/highlight.component";
|
|
15
15
|
import * as i6 from "../../icon/icon.component";
|
|
16
16
|
import * as i7 from "../input-label/input-label.component";
|
|
17
|
-
import * as i8 from "../../
|
|
17
|
+
import * as i8 from "../../overlay/overlay.directive";
|
|
18
18
|
import * as i9 from "../single-select/single-select.component";
|
|
19
|
-
import * as i10 from "../../
|
|
19
|
+
import * as i10 from "../../overlay/callout/tooltip/tooltip.directive";
|
|
20
20
|
const timeQuarter = timeMonth.every(3);
|
|
21
21
|
// TODO: once we upgrade to Angular 16, this component can be cleaned up with
|
|
22
22
|
// signals instead of RxJS.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../../
|
|
4
|
+
import * as i2 from "../../overlay/callout/help/help.component";
|
|
5
5
|
import * as i3 from "../../navigation/link/link.component";
|
|
6
6
|
export class InputLabelComponent {
|
|
7
7
|
constructor() {
|
|
@@ -2,11 +2,11 @@ import { ChangeDetectionStrategy, Component, ContentChild, Input, ViewChild, } f
|
|
|
2
2
|
import { InputLabelComponent } from '../../input-label/input-label.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "../../../
|
|
5
|
+
import * as i2 from "../../../overlay/callout/callout.component";
|
|
6
6
|
import * as i3 from "../../../icon/icon.component";
|
|
7
7
|
import * as i4 from "../../input-label/input-label.component";
|
|
8
8
|
import * as i5 from "../../../load/loading-cover/loading-cover.component";
|
|
9
|
-
import * as i6 from "../../../
|
|
9
|
+
import * as i6 from "../../../overlay/overlay.directive";
|
|
10
10
|
import * as i7 from "../../search/search.component";
|
|
11
11
|
import * as i8 from "../select-node/select-node.component";
|
|
12
12
|
import * as i9 from "../../../visualization/zero-state/zero-state.component";
|
|
@@ -2,7 +2,7 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
import * as i2 from "../../checkbox/checkbox.component";
|
|
5
|
-
import * as i3 from "../../../
|
|
5
|
+
import * as i3 from "../../../overlay/callout/help/help.component";
|
|
6
6
|
import * as i4 from "../../../visualization/highlight/highlight.component";
|
|
7
7
|
import * as i5 from "../../../icon/icon.component";
|
|
8
8
|
import * as i6 from "../../../format/truncate/truncate.component";
|
|
@@ -5,12 +5,12 @@ import { InputLabelComponent } from '../input-label/input-label.component';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
7
7
|
import * as i2 from "../auto-focus/auto-focus.directive";
|
|
8
|
-
import * as i3 from "../../
|
|
8
|
+
import * as i3 from "../../overlay/callout/callout.component";
|
|
9
9
|
import * as i4 from "../../visualization/highlight/highlight.component";
|
|
10
10
|
import * as i5 from "../../icon/icon.component";
|
|
11
11
|
import * as i6 from "../input-label/input-label.component";
|
|
12
12
|
import * as i7 from "../../load/loading-cover/loading-cover.component";
|
|
13
|
-
import * as i8 from "../../
|
|
13
|
+
import * as i8 from "../../overlay/overlay.directive";
|
|
14
14
|
import * as i9 from "../../visualization/zero-state/zero-state.component";
|
|
15
15
|
export class SingleSelectComponent extends InputLabelComponent {
|
|
16
16
|
constructor() {
|
|
@@ -6,7 +6,7 @@ import * as i2 from "../../../input/button/button.component";
|
|
|
6
6
|
import * as i3 from "../../../visualization/highlight/highlight.component";
|
|
7
7
|
import * as i4 from "../../../icon/icon.component";
|
|
8
8
|
import * as i5 from "../../../input/search/search.component";
|
|
9
|
-
import * as i6 from "../../../modal/side-sheet/side-sheet.component";
|
|
9
|
+
import * as i6 from "../../../overlay/modal/side-sheet/side-sheet.component";
|
|
10
10
|
import * as i7 from "../../../content-toggle/toggle/toggle.component";
|
|
11
11
|
import * as i8 from "../../../format/truncate/truncate.component";
|
|
12
12
|
import * as i9 from "../view-menu/view-menu.component";
|
|
@@ -4,10 +4,10 @@ import { RivViews } from '../state';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
6
6
|
import * as i2 from "../../../input/button/button.component";
|
|
7
|
-
import * as i3 from "../../../
|
|
7
|
+
import * as i3 from "../../../overlay/callout/callout.component";
|
|
8
8
|
import * as i4 from "../../../input/checkbox/checkbox.component";
|
|
9
9
|
import * as i5 from "../../../icon/icon.component";
|
|
10
|
-
import * as i6 from "../../../
|
|
10
|
+
import * as i6 from "../../../overlay/overlay.directive";
|
|
11
11
|
import * as i7 from "../../../input/text-field/text-field.component";
|
|
12
12
|
const titles = {
|
|
13
13
|
private: 'Private',
|
|
@@ -10,6 +10,8 @@ export var RivViews;
|
|
|
10
10
|
activeViewId: null,
|
|
11
11
|
defaultViewId: null,
|
|
12
12
|
containerWidth: 0,
|
|
13
|
+
editingViewContext: null,
|
|
14
|
+
deletingViewId: null,
|
|
13
15
|
overflow: {
|
|
14
16
|
search: '',
|
|
15
17
|
pickerOpen: false,
|
|
@@ -49,6 +51,8 @@ export var RivViews;
|
|
|
49
51
|
allViews,
|
|
50
52
|
displayedViews,
|
|
51
53
|
enabledViews,
|
|
54
|
+
editingView: resolveEditingView(s, allViews),
|
|
55
|
+
deletingView: allViews.find(v => v.id === s.deletingViewId) ?? null,
|
|
52
56
|
all: {
|
|
53
57
|
...s.all,
|
|
54
58
|
privateOpen: searchingAllViews || s.all.privateOpen,
|
|
@@ -72,6 +76,17 @@ export var RivViews;
|
|
|
72
76
|
return { actions, state };
|
|
73
77
|
}
|
|
74
78
|
RivViews.createManager = createManager;
|
|
79
|
+
//////////////////////////////////
|
|
80
|
+
// State reducer (with helpers) //
|
|
81
|
+
//////////////////////////////////
|
|
82
|
+
function resolveEditingView(state, allViews) {
|
|
83
|
+
const editingViewContext = state.editingViewContext;
|
|
84
|
+
if (editingViewContext !== null) {
|
|
85
|
+
return allViews.find(v => v.id === editingViewContext.id) ?? null;
|
|
86
|
+
}
|
|
87
|
+
else
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
75
90
|
function getEnabledViews(views) {
|
|
76
91
|
return views.filter((v, i) => v.enabled || i === 0);
|
|
77
92
|
}
|
|
@@ -149,6 +164,7 @@ export var RivViews;
|
|
|
149
164
|
...state,
|
|
150
165
|
views,
|
|
151
166
|
activeViewId,
|
|
167
|
+
deletingViewId: null,
|
|
152
168
|
};
|
|
153
169
|
}
|
|
154
170
|
function setEnabled(state, id, enabled) {
|
|
@@ -160,9 +176,8 @@ export var RivViews;
|
|
|
160
176
|
: state.activeViewId,
|
|
161
177
|
};
|
|
162
178
|
}
|
|
163
|
-
|
|
164
|
-
const
|
|
165
|
-
const sourceIndex = views.findIndex(view => view.id === viewToDuplicate.id);
|
|
179
|
+
function withDuplicateView(views, duplicatedView, newView) {
|
|
180
|
+
const sourceIndex = views.findIndex(view => view.id === duplicatedView.id);
|
|
166
181
|
if (sourceIndex === -1) {
|
|
167
182
|
return [newView, ...views];
|
|
168
183
|
}
|
|
@@ -261,11 +276,15 @@ export var RivViews;
|
|
|
261
276
|
};
|
|
262
277
|
case 'deleteView':
|
|
263
278
|
return deleteView(state, action.view.id);
|
|
264
|
-
case 'duplicateView':
|
|
279
|
+
case 'duplicateView': {
|
|
280
|
+
const newView = await duplicate(action.view);
|
|
265
281
|
return {
|
|
266
282
|
...state,
|
|
267
|
-
views:
|
|
283
|
+
views: withDuplicateView(state.views, action.view, newView),
|
|
284
|
+
editingViewContext: { id: newView.id, autoRename: true },
|
|
285
|
+
activeViewId: newView.id,
|
|
268
286
|
};
|
|
287
|
+
}
|
|
269
288
|
case 'copyLinkToView':
|
|
270
289
|
await copyLink(action.view);
|
|
271
290
|
return state;
|
|
@@ -287,6 +306,16 @@ export var RivViews;
|
|
|
287
306
|
: state.all.publicOpen,
|
|
288
307
|
},
|
|
289
308
|
};
|
|
309
|
+
case 'setEditingView':
|
|
310
|
+
return {
|
|
311
|
+
...state,
|
|
312
|
+
editingViewContext: action.context,
|
|
313
|
+
};
|
|
314
|
+
case 'setDeletingView':
|
|
315
|
+
return {
|
|
316
|
+
...state,
|
|
317
|
+
deletingViewId: action.id,
|
|
318
|
+
};
|
|
290
319
|
}
|
|
291
320
|
}
|
|
292
321
|
///////////////
|
|
@@ -315,4 +344,4 @@ export var RivViews;
|
|
|
315
344
|
}
|
|
316
345
|
RivViews.getPermissionDescription = getPermissionDescription;
|
|
317
346
|
})(RivViews || (RivViews = {}));
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBa0MsTUFBTSxTQUFTLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUNMLFdBQVcsRUFFWCxJQUFJLEVBQ0osR0FBRyxFQUNILFNBQVMsRUFFVCxhQUFhLEVBQ2IsU0FBUyxFQUNULE9BQU8sR0FDUixNQUFNLE1BQU0sQ0FBQztBQUlkLE1BQU0sS0FBVyxRQUFRLENBc2pCeEI7QUF0akJELFdBQWlCLFFBQVE7SUFDVix3QkFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQVUsQ0FBQztJQW9HeEUsU0FBZ0IsYUFBYSxDQUMzQixNQUFpQixFQUNqQixTQUF1QixFQUN2QixRQUFxQixFQUNyQixPQUEyQjtRQUUzQixNQUFNLFlBQVksR0FBaUI7WUFDakMsS0FBSyxFQUFFLEVBQUU7WUFDVCxZQUFZLEVBQUUsSUFBSTtZQUNsQixhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUUsQ0FBQztZQUNqQixRQUFRLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLEtBQUs7YUFDbEI7WUFDRCxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixVQUFVLEVBQUUsSUFBSTthQUNqQjtTQUNGLENBQUM7UUFFRixNQUFNLHFCQUFxQixHQUFpQixZQUFZLENBQ3RELEVBQUUsRUFDRixPQUFPLEVBQUUsWUFBWSxFQUNyQixZQUFZLENBQ2IsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUF1QixJQUFJLE9BQU8sRUFB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LENBQUMsVUFBVSxLQUFLLFFBQVE7NEJBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTs0QkFDYixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVO3dCQUMxQixVQUFVLEVBQ1IsTUFBTSxDQUFDLFVBQVUsS0FBSyxRQUFROzRCQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7NEJBQ2IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVTtxQkFDM0I7aUJBQ0YsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELGVBQWU7SUFDZixlQUFlO0lBQ2YsZUFBZTtJQUVmLFNBQWdCLGtCQUFrQixDQUFDLFVBQTBCO1FBQzNELFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssU0FBUztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQVRlLDJCQUFrQixxQkFTakMsQ0FBQTtJQUVELFNBQWdCLHdCQUF3QixDQUFDLFVBQTBCO1FBQ2pFLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssU0FBUztnQkFDWixPQUFPLHFCQUFxQixDQUFDO1lBQy9CLEtBQUssUUFBUTtnQkFDWCxPQUFPLG1DQUFtQyxDQUFDO1lBQzdDLEtBQUssUUFBUTtnQkFDWCxPQUFPLHFCQUFxQixDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQVRlLGlDQUF3QiwyQkFTdkMsQ0FBQTtBQUNILENBQUMsRUF0akJnQixRQUFRLEtBQVIsUUFBUSxRQXNqQnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZ1c2UsIHsgRnVzZVJlc3VsdCwgSUZ1c2VPcHRpb25zIH0gZnJvbSAnZnVzZS5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0c0RlZXAsIHNvcnRCeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBjb25uZWN0YWJsZSxcbiAgQ29ubmVjdGFibGUsXG4gIGZyb20sXG4gIG1hcCxcbiAgbWVyZ2VTY2FuLFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBzdGFydFdpdGgsXG4gIFN1YmplY3QsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICd1dGlsaXR5LXR5cGVzJztcbmltcG9ydCB7IEhpZ2hsaWdodENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3Zpc3VhbGl6YXRpb24vaGlnaGxpZ2h0L2hpZ2hsaWdodC5jb21wb25lbnQnO1xuXG5leHBvcnQgbmFtZXNwYWNlIFJpdlZpZXdzIHtcbiAgZXhwb3J0IGNvbnN0IFZpZXdQZXJtaXNzaW9ucyA9IFsncHJpdmF0ZScsICdwdWJsaWMnLCAnc2hhcmVkJ10gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFZpZXdQZXJtaXNzaW9uID0gKHR5cGVvZiBWaWV3UGVybWlzc2lvbnMpW251bWJlcl07XG5cbiAgZXhwb3J0IHR5cGUgVmlldyA9IHtcbiAgICBpZDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbjtcbiAgfTtcblxuICBleHBvcnQgdHlwZSBGdWxsVmlldzxWIGV4dGVuZHMgVmlldyA9IFZpZXc+ID0gViAmIHtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgZGVmYXVsdDogYm9vbGVhbjtcbiAgICBzeXN0ZW06IGJvb2xlYW47XG4gICAgdGl0bGVIaWdobGlnaHRJbmRpY2VzPzogSGlnaGxpZ2h0Q29tcG9uZW50LkhpZ2hsaWdodEluZGljZXNbXTtcbiAgfTtcblxuICAvLy8vLy8vLy8vL1xuICAvLyBTdGF0ZSAvL1xuICAvLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIENvcmVTdGF0ZTxWIGV4dGVuZHMgVmlldz4gPSB7XG4gICAgdmlld3M6IFZbXTtcbiAgICBhY3RpdmVWaWV3SWQ6IFZbJ2lkJ10gfCBudWxsO1xuICAgIGRlZmF1bHRWaWV3SWQ6IFZbJ2lkJ10gfCBudWxsO1xuICAgIGNvbnRhaW5lcldpZHRoOiBudW1iZXI7XG4gICAgb3ZlcmZsb3c6IHtcbiAgICAgIHNlYXJjaDogc3RyaW5nO1xuICAgICAgcGlja2VyT3BlbjogYm9vbGVhbjtcbiAgICB9O1xuICAgIGFsbDoge1xuICAgICAgc2VhcmNoOiBzdHJpbmc7XG4gICAgICBwcml2YXRlT3BlbjogYm9vbGVhbjtcbiAgICAgIHNoYXJlZE9wZW46IGJvb2xlYW47XG4gICAgICBwdWJsaWNPcGVuOiBib29sZWFuO1xuICAgIH07XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgRnVsbFN0YXRlPFYgZXh0ZW5kcyBWaWV3PiA9IENvcmVTdGF0ZTxWPiAmIHtcbiAgICBhbGxWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICBkaXNwbGF5ZWRWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICBlbmFibGVkVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgYWxsOiB7XG4gICAgICBwcml2YXRlVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgICBwcml2YXRlRW1wdHlTdGF0ZU1lc3NhZ2U6IHN0cmluZztcbiAgICAgIHNoYXJlZFZpZXdzOiBGdWxsVmlldzxWPltdO1xuICAgICAgc2hhcmVkRW1wdHlTdGF0ZU1lc3NhZ2U6IHN0cmluZztcbiAgICAgIHB1YmxpY1ZpZXdzOiBGdWxsVmlldzxWPltdO1xuICAgICAgcHVibGljRW1wdHlTdGF0ZU1lc3NhZ2U6IHN0cmluZztcbiAgICB9O1xuICB9O1xuXG4gIC8vLy8vLy8vLy8vLy9cbiAgLy8gQWN0aW9ucyAvL1xuICAvLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IHR5cGUgQWN0aW9uPFYgZXh0ZW5kcyBWaWV3PiA9XG4gICAgfCB7IHR5cGU6ICdsb2FkJyB9XG4gICAgfCB7IHR5cGU6ICdzZXRBY3RpdmVWaWV3JzsgaWQ6IFZbJ2lkJ10gfVxuICAgIHwgeyB0eXBlOiAnc2V0RGVmYXVsdFZpZXcnOyBpZDogVlsnaWQnXSB9XG4gICAgfCB7IHR5cGU6ICdzZXRFbmFibGVkJzsgaWQ6IFZbJ2lkJ107IGVuYWJsZWQ6IGJvb2xlYW4gfVxuICAgIHwgeyB0eXBlOiAnc2V0Q29udGFpbmVyV2lkdGgnOyB3aWR0aDogbnVtYmVyIH1cbiAgICB8IHsgdHlwZTogJ3NldE92ZXJmbG93UGlja2VyT3Blbic7IG9wZW46IGJvb2xlYW4gfVxuICAgIHwgeyB0eXBlOiAnc2V0T3ZlcmZsb3dTZWFyY2hRdWVyeSc7IHF1ZXJ5OiBzdHJpbmcgfVxuICAgIHwgeyB0eXBlOiAnc2V0QWxsVmlld3NTZWFyY2hRdWVyeSc7IHF1ZXJ5OiBzdHJpbmcgfVxuICAgIHwgeyB0eXBlOiAndXBkYXRlVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnZGVsZXRlVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnZHVwbGljYXRlVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnY29weUxpbmtUb1ZpZXcnOyB2aWV3OiBWIH1cbiAgICB8IHtcbiAgICAgICAgdHlwZTogJ3ZpZXdPcmRlckNoYW5nZSc7XG4gICAgICAgIHByZXZpb3VzRW5hYmxlZEluZGV4OiBudW1iZXI7XG4gICAgICAgIG5ld0VuYWJsZWRJbmRleDogbnVtYmVyO1xuICAgICAgfVxuICAgIHwgeyB0eXBlOiAnc2V0QWxsVmlld3NUb2dnbGUnOyBwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbjsgb3BlbjogYm9vbGVhbiB9O1xuXG4gIC8vLy8vLy8vLy8vL1xuICAvLyBTb3VyY2UgLy9cbiAgLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IHR5cGUgU291cmNlPFYgZXh0ZW5kcyBWaWV3PiA9ICgpID0+IFZbXSB8IFByb21pc2U8VltdPjtcbiAgZXhwb3J0IHR5cGUgRHVwbGljYXRlPFYgZXh0ZW5kcyBWaWV3PiA9IChcbiAgICB2aWV3VG9EdXBsaWNhdGU6IFYsXG4gICkgPT4gViB8IFByb21pc2U8Vj47XG4gIGV4cG9ydCB0eXBlIENvcHlMaW5rPFYgZXh0ZW5kcyBWaWV3PiA9ICh2aWV3OiBWKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuICAvLy8vLy8vLy8vLy8vXG4gIC8vIE1hbmFnZXIgLy9cbiAgLy8vLy8vLy8vLy8vL1xuXG4gIGV4cG9ydCB0eXBlIE1hbmFnZXI8ViBleHRlbmRzIFZpZXc+ID0ge1xuICAgIGFjdGlvbnM6IFN1YmplY3Q8QWN0aW9uPFY+PjtcbiAgICBzdGF0ZTogQ29ubmVjdGFibGU8RnVsbFN0YXRlPFY+PjtcbiAgfTtcblxuICBleHBvcnQgdHlwZSBNYW5hZ2VyT3B0aW9uczxWIGV4dGVuZHMgVmlldz4gPSB7XG4gICAgaW5pdGlhbFN0YXRlPzogRGVlcFBhcnRpYWw8Q29yZVN0YXRlPFY+PjtcbiAgICBmdXNlT3B0aW9ucz86IElGdXNlT3B0aW9uczxWPjtcbiAgfTtcblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlTWFuYWdlcjxWIGV4dGVuZHMgVmlldz4oXG4gICAgc291cmNlOiBTb3VyY2U8Vj4sXG4gICAgZHVwbGljYXRlOiBEdXBsaWNhdGU8Vj4sXG4gICAgY29weUxpbms6IENvcHlMaW5rPFY+LFxuICAgIG9wdGlvbnM/OiBNYW5hZ2VyT3B0aW9uczxWPixcbiAgKTogTWFuYWdlcjxWPiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXRlOiBDb3JlU3RhdGU8Vj4gPSB7XG4gICAgICB2aWV3czogW10sXG4gICAgICBhY3RpdmVWaWV3SWQ6IG51bGwsXG4gICAgICBkZWZhdWx0Vmlld0lkOiBudWxsLFxuICAgICAgY29udGFpbmVyV2lkdGg6IDAsXG4gICAgICBvdmVyZmxvdzoge1xuICAgICAgICBzZWFyY2g6ICcnLFxuICAgICAgICBwaWNrZXJPcGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhbGw6IHtcbiAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgcHJpdmF0ZU9wZW46IHRydWUsXG4gICAgICAgIHNoYXJlZE9wZW46IHRydWUsXG4gICAgICAgIHB1YmxpY09wZW46IHRydWUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBkZWZhdWx0ZWRJbml0aWFsU3RhdGU6IENvcmVTdGF0ZTxWPiA9IGRlZmF1bHRzRGVlcChcbiAgICAgIHt9LFxuICAgICAgb3B0aW9ucz8uaW5pdGlhbFN0YXRlLFxuICAgICAgZGVmYXVsdFN0YXRlLFxuICAgICk7XG5cbiAgICBjb25zdCBhY3Rpb25zOiBTdWJqZWN0PEFjdGlvbjxWPj4gPSBuZXcgU3ViamVjdCgpO1xuICAgIGNvbnN0IGNvcmVTdGF0ZTogT2JzZXJ2YWJsZTxDb3JlU3RhdGU8Vj4+ID0gYWN0aW9ucy5waXBlKFxuICAgICAgbWVyZ2VTY2FuKFxuICAgICAgICAoc3RhdGUsIGFjdGlvbikgPT5cbiAgICAgICAgICBmcm9tKHJlZHVjZShzdGF0ZSwgYWN0aW9uLCBzb3VyY2UsIGR1cGxpY2F0ZSwgY29weUxpbmspKSxcbiAgICAgICAgZGVmYXVsdGVkSW5pdGlhbFN0YXRlLFxuICAgICAgICAxLFxuICAgICAgKSxcbiAgICAgIHN0YXJ0V2l0aChkZWZhdWx0ZWRJbml0aWFsU3RhdGUpLFxuICAgICk7XG5cbiAgICBjb25zdCBzdGF0ZTogQ29ubmVjdGFibGU8RnVsbFN0YXRlPFY+PiA9IGNvbm5lY3RhYmxlKFxuICAgICAgY29yZVN0YXRlLnBpcGUoXG4gICAgICAgIG1hcChzID0+IHtcbiAgICAgICAgICAvLyBJZiBmb3Igc29tZSByZWFzb24gdGhlIGFjdGl2ZSB2aWV3IGlzIG5vdCBjdXJyZW50bHkgZW5hYmxlZCwgd2UnbGxcbiAgICAgICAgICAvLyBkZWZhdWx0IHRvIG1ha2luZyB0aGUgZmlyc3QgdmlldyBhY3RpdmUgaW5zdGVhZC5cbiAgICAgICAgICBjb25zdCBhY3RpdmVWaWV3OiBWIHwgdW5kZWZpbmVkID0gcy52aWV3cy5maW5kKFxuICAgICAgICAgICAgdmlldyA9PiB2aWV3LmVuYWJsZWQgJiYgdmlldy5pZCA9PT0gcy5hY3RpdmVWaWV3SWQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IGFsbFZpZXdzOiBGdWxsVmlldzxWPltdID0gcy52aWV3cy5tYXAoKHZpZXcsIGkpID0+ICh7XG4gICAgICAgICAgICAuLi52aWV3LFxuICAgICAgICAgICAgZW5hYmxlZDogdmlldy5lbmFibGVkIHx8IGkgPT09IDAsXG4gICAgICAgICAgICBhY3RpdmU6IGFjdGl2ZVZpZXcgPyBhY3RpdmVWaWV3LmlkID09PSB2aWV3LmlkIDogaSA9PT0gMCxcbiAgICAgICAgICAgIGRlZmF1bHQ6IHZpZXcuaWQgPT09IHMuZGVmYXVsdFZpZXdJZCxcbiAgICAgICAgICAgIHN5c3RlbTogaSA9PT0gMCxcbiAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICBjb25zdCBhbGxFbmFibGVkVmlld3MgPSBnZXRFbmFibGVkVmlld3MoYWxsVmlld3MpO1xuXG4gICAgICAgICAgY29uc3QgZGlzcGxheWVkVmlld3MgPSBjYWxjdWxhdGVEaXNwbGF5ZWRWaWV3cyhcbiAgICAgICAgICAgIGFsbEVuYWJsZWRWaWV3cyxcbiAgICAgICAgICAgIGNhbGN1bGF0ZU92ZXJmbG93Vmlld0luZGV4KHMpLFxuICAgICAgICAgICAgcy5hY3RpdmVWaWV3SWQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IGVuYWJsZWRWaWV3cyA9IHMub3ZlcmZsb3cuc2VhcmNoXG4gICAgICAgICAgICA/IHNlYXJjaFZpZXdzKFxuICAgICAgICAgICAgICAgIGFsbEVuYWJsZWRWaWV3cyxcbiAgICAgICAgICAgICAgICBzLm92ZXJmbG93LnNlYXJjaCxcbiAgICAgICAgICAgICAgICBvcHRpb25zPy5mdXNlT3B0aW9ucyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBhbGxFbmFibGVkVmlld3M7XG5cbiAgICAgICAgICBjb25zdCBhbGxWaWV3c0ZpbHRlcmVkID0gcy5hbGwuc2VhcmNoXG4gICAgICAgICAgICA/IHNlYXJjaFZpZXdzKGFsbFZpZXdzLCBzLmFsbC5zZWFyY2gsIG9wdGlvbnM/LmZ1c2VPcHRpb25zKVxuICAgICAgICAgICAgOiBhbGxWaWV3cztcblxuICAgICAgICAgIGNvbnN0IHNlYXJjaGluZ0FsbFZpZXdzID0gISFzLmFsbC5zZWFyY2g7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucyxcbiAgICAgICAgICAgIGFsbFZpZXdzLFxuICAgICAgICAgICAgZGlzcGxheWVkVmlld3MsXG4gICAgICAgICAgICBlbmFibGVkVmlld3MsXG4gICAgICAgICAgICBhbGw6IHtcbiAgICAgICAgICAgICAgLi4ucy5hbGwsXG4gICAgICAgICAgICAgIHByaXZhdGVPcGVuOiBzZWFyY2hpbmdBbGxWaWV3cyB8fCBzLmFsbC5wcml2YXRlT3BlbixcbiAgICAgICAgICAgICAgcHJpdmF0ZVZpZXdzOiB2aWV3c0J5UGVybWlzc2lvbihhbGxWaWV3c0ZpbHRlcmVkLCAncHJpdmF0ZScpLFxuICAgICAgICAgICAgICBwcml2YXRlRW1wdHlTdGF0ZU1lc3NhZ2U6IGdldEVtcHR5U3RhdGVNZXNzYWdlKHMsICdwcml2YXRlJyksXG4gICAgICAgICAgICAgIHNoYXJlZE9wZW46IHNlYXJjaGluZ0FsbFZpZXdzIHx8IHMuYWxsLnNoYXJlZE9wZW4sXG4gICAgICAgICAgICAgIHNoYXJlZFZpZXdzOiB2aWV3c0J5UGVybWlzc2lvbihhbGxWaWV3c0ZpbHRlcmVkLCAnc2hhcmVkJyksXG4gICAgICAgICAgICAgIHNoYXJlZEVtcHR5U3RhdGVNZXNzYWdlOiBnZXRFbXB0eVN0YXRlTWVzc2FnZShzLCAnc2hhcmVkJyksXG4gICAgICAgICAgICAgIHB1YmxpY09wZW46IHNlYXJjaGluZ0FsbFZpZXdzIHx8IHMuYWxsLnB1YmxpY09wZW4sXG4gICAgICAgICAgICAgIHB1YmxpY1ZpZXdzOiB2aWV3c0J5UGVybWlzc2lvbihhbGxWaWV3c0ZpbHRlcmVkLCAncHVibGljJyksXG4gICAgICAgICAgICAgIHB1YmxpY0VtcHR5U3RhdGVNZXNzYWdlOiBnZXRFbXB0eVN0YXRlTWVzc2FnZShzLCAncHVibGljJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICAgIHtcbiAgICAgICAgY29ubmVjdG9yOiAoKSA9PiBuZXcgUmVwbGF5U3ViamVjdCgxKSxcbiAgICAgICAgcmVzZXRPbkRpc2Nvbm5lY3Q6IGZhbHNlLFxuICAgICAgfSxcbiAgICApO1xuICAgIHN0YXRlLmNvbm5lY3QoKTtcblxuICAgIC8vIExvYWQgdGhlIHZpZXdzIGltbWVkaWF0ZWx5XG4gICAgYWN0aW9ucy5uZXh0KHsgdHlwZTogJ2xvYWQnIH0pO1xuXG4gICAgcmV0dXJuIHsgYWN0aW9ucywgc3RhdGUgfTtcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gU3RhdGUgcmVkdWNlciAod2l0aCBoZWxwZXJzKSAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgZnVuY3Rpb24gZ2V0RW5hYmxlZFZpZXdzPFYgZXh0ZW5kcyBWaWV3Pih2aWV3czogVltdKTogVltdO1xuICBmdW5jdGlvbiBnZXRFbmFibGVkVmlld3M8ViBleHRlbmRzIFZpZXc+KFxuICAgIHZpZXdzOiBGdWxsVmlldzxWPltdLFxuICApOiBGdWxsVmlldzxWPltdIHtcbiAgICByZXR1cm4gdmlld3MuZmlsdGVyKCh2LCBpKSA9PiB2LmVuYWJsZWQgfHwgaSA9PT0gMCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNsYXRlcyBhbiBpbmRleCBpbiB0aGUgZW5hYmxlZCB2aWV3cyBsaXN0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4XG4gICAqIGluIHRoZSBmdWxsIHZpZXdzIGxpc3QuIFRoaXMgaXMgdXNlZCB0byByZXNvbHZlIFVJIGluZGljZXMgKHdoaWNoIG9ubHlcbiAgICogc2hvdyBlbmFibGVkIHZpZXdzKSB0byBzdGF0ZS52aWV3cyBpbmRpY2VzICh3aGljaCBpbmNsdWRlcyBhbGwgdmlld3MpLlxuICAgKi9cbiAgZnVuY3Rpb24gbWFwRW5hYmxlZEluZGV4VG9WaWV3SW5kZXg8ViBleHRlbmRzIFZpZXc+KFxuICAgIHZpZXdzOiBWW10sXG4gICAgZW5hYmxlZEluZGV4OiBudW1iZXIsXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgZW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKHZpZXdzKTtcblxuICAgIGNvbnN0IHRhcmdldFZpZXcgPSBlbmFibGVkVmlld3NbZW5hYmxlZEluZGV4XTtcbiAgICBpZiAoIXRhcmdldFZpZXcpIHJldHVybiBlbmFibGVkSW5kZXg7XG5cbiAgICBjb25zdCB2aWV3SW5kZXggPSB2aWV3cy5maW5kSW5kZXgodmlldyA9PiB2aWV3LmlkID09PSB0YXJnZXRWaWV3LmlkKTtcbiAgICByZXR1cm4gdmlld0luZGV4ID09PSAtMSA/IGVuYWJsZWRJbmRleCA6IHZpZXdJbmRleDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZU92ZXJmbG93Vmlld0luZGV4PFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IGVuYWJsZWRWaWV3cyA9IGdldEVuYWJsZWRWaWV3cyhzdGF0ZS52aWV3cyk7XG5cbiAgICAvLyBUYWJzIGhhdmUgYSBtaW5pbXVtIHdpZHRoIG9mIDkycHguXG4gICAgY29uc3QgcG9zc2libGVTbG90Q291bnQgPSBNYXRoLmZsb29yKHN0YXRlLmNvbnRhaW5lcldpZHRoIC8gOTIpO1xuXG4gICAgLy8gVGhlIFwiYWxsIHZpZXdzXCIgc2lkZWJhciB0cmlnZ2VyIHRha2VzIHVwIG9uZSBzbG90LlxuICAgIGNvbnN0IGF2YWlsYWJsZVNsb3RDb3VudCA9IHBvc3NpYmxlU2xvdENvdW50IC0gMTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSB0b28gbWFueSB0YWJzLCB0aGUgXCJOIG1vcmVcIiB0cmlnZ2VyIHRha2VzIHVwIG9uZSBzbG90IGFzIHdlbGwuXG4gICAgLy8gQnV0IHdlIHdhbnQgdG8gYXZvaWQgdGhlIFwiMSBtb3JlXCIgY2FzZSwgc28gd2Ugb25seSB1c2UgYSBzbG90IGZvciBcIk4gbW9yZVwiIGlmIE4gIT0gMS5cbiAgICBpZiAoYXZhaWxhYmxlU2xvdENvdW50ID49IGVuYWJsZWRWaWV3cy5sZW5ndGgpIHJldHVybiBlbmFibGVkVmlld3MubGVuZ3RoO1xuICAgIGVsc2UgcmV0dXJuIGF2YWlsYWJsZVNsb3RDb3VudCAtIDE7IC8vIHRoZSBcIk4gbW9yZVwiIHVzZXMgdXAgYSBzbG90LlxuICB9XG5cbiAgZnVuY3Rpb24gY2FsY3VsYXRlRGlzcGxheWVkVmlld3M8ViBleHRlbmRzIFZpZXc+KFxuICAgIGZ1bGxWaWV3czogRnVsbFZpZXc8Vj5bXSxcbiAgICBvdmVyZmxvd1ZpZXdJbmRleDogbnVtYmVyLFxuICAgIGFjdGl2ZVZpZXdJZDogQ29yZVN0YXRlPFY+WydhY3RpdmVWaWV3SWQnXSxcbiAgKTogRnVsbFZpZXc8Vj5bXSB7XG4gICAgY29uc3QgZGlzcGxheWVkVmlld3MgPSBmdWxsVmlld3Muc2xpY2UoMCwgb3ZlcmZsb3dWaWV3SW5kZXgpO1xuXG4gICAgY29uc3QgYWN0aXZlVmlld0luRGlzcGxheSA9IGRpc3BsYXllZFZpZXdzLnNvbWUoXG4gICAgICB2aWV3ID0+IHZpZXcuaWQgPT09IGFjdGl2ZVZpZXdJZCxcbiAgICApO1xuXG4gICAgaWYgKCFhY3RpdmVWaWV3SW5EaXNwbGF5ICYmIGFjdGl2ZVZpZXdJZCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgYWN0aXZlVmlldyA9IGZ1bGxWaWV3cy5maW5kKHZpZXcgPT4gdmlldy5pZCA9PT0gYWN0aXZlVmlld0lkKTtcbiAgICAgIGlmIChhY3RpdmVWaWV3ICYmIGRpc3BsYXllZFZpZXdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIFsuLi5kaXNwbGF5ZWRWaWV3cy5zbGljZSgwLCAtMSksIGFjdGl2ZVZpZXddO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkaXNwbGF5ZWRWaWV3cztcbiAgfVxuXG4gIGZ1bmN0aW9uIHZpZXdzQnlQZXJtaXNzaW9uPFYgZXh0ZW5kcyBWaWV3PihcbiAgICB2aWV3czogRnVsbFZpZXc8Vj5bXSxcbiAgICBwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbixcbiAgKTogRnVsbFZpZXc8Vj5bXSB7XG4gICAgcmV0dXJuIHNvcnRCeShcbiAgICAgIHZpZXdzLmZpbHRlcih2aWV3ID0+IHZpZXcucGVybWlzc2lvbiA9PT0gcGVybWlzc2lvbiksXG4gICAgICBbdiA9PiAhdi5zeXN0ZW0sICd0aXRsZSddLFxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBzZWFyY2hWaWV3czxWIGV4dGVuZHMgVmlldz4oXG4gICAgdmlld3M6IEZ1bGxWaWV3PFY+W10sXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogSUZ1c2VPcHRpb25zPFY+LFxuICApOiBGdWxsVmlldzxWPltdIHtcbiAgICBjb25zdCBmdXNlID0gbmV3IEZ1c2Uodmlld3MsIHtcbiAgICAgIHRocmVzaG9sZDogMC4yLFxuICAgICAga2V5czogWyd0aXRsZSddLFxuICAgICAgaW5jbHVkZU1hdGNoZXM6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWF0Y2hlZE9wdGlvbnM6IEZ1c2VSZXN1bHQ8RnVsbFZpZXc8Vj4+W10gPSBmdXNlLnNlYXJjaChxdWVyeSk7XG5cbiAgICByZXR1cm4gbWF0Y2hlZE9wdGlvbnMubWFwKHJlc3VsdCA9PiAoe1xuICAgICAgLi4ucmVzdWx0Lml0ZW0sXG4gICAgICB0aXRsZUhpZ2hsaWdodEluZGljZXM6IFtcbiAgICAgICAgLi4uKHJlc3VsdC5tYXRjaGVzPy5maW5kKG1hdGNoID0+IG1hdGNoLmtleSA9PT0gJ3RpdGxlJyk/LmluZGljZXMgPz9cbiAgICAgICAgICBbXSksXG4gICAgICBdLFxuICAgIH0pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldE5leHRCZXN0QWN0aXZlVmlldzxWIGV4dGVuZHMgVmlldz4oc3RhdGU6IENvcmVTdGF0ZTxWPik6IFZbJ2lkJ10ge1xuICAgIGNvbnN0IGVuYWJsZWRWaWV3cyA9IGdldEVuYWJsZWRWaWV3cyhzdGF0ZS52aWV3cyk7XG4gICAgY29uc3QgY3VycmVudEFjdGl2ZVZpZXdJbmRleCA9IGVuYWJsZWRWaWV3cy5maW5kSW5kZXgoXG4gICAgICB2aWV3ID0+IHZpZXcuaWQgPT09IHN0YXRlLmFjdGl2ZVZpZXdJZCxcbiAgICApO1xuXG4gICAgaWYgKGN1cnJlbnRBY3RpdmVWaWV3SW5kZXggPT09IC0xKSByZXR1cm4gZW5hYmxlZFZpZXdzWzBdLmlkO1xuICAgIHJldHVybiAoXG4gICAgICBlbmFibGVkVmlld3NbY3VycmVudEFjdGl2ZVZpZXdJbmRleCArIDFdPy5pZCA/P1xuICAgICAgZW5hYmxlZFZpZXdzW2N1cnJlbnRBY3RpdmVWaWV3SW5kZXggLSAxXT8uaWQgPz9cbiAgICAgIGVuYWJsZWRWaWV3c1swXS5pZFxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBkZWxldGVWaWV3PFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIGlkOiBWWydpZCddLFxuICApOiBDb3JlU3RhdGU8Vj4ge1xuICAgIGNvbnN0IGFjdGl2ZVZpZXdJZCA9XG4gICAgICBzdGF0ZS5hY3RpdmVWaWV3SWQgPT09IGlkXG4gICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICA6IHN0YXRlLmFjdGl2ZVZpZXdJZDtcbiAgICBjb25zdCB2aWV3cyA9IHN0YXRlLnZpZXdzLmZpbHRlcih2aWV3ID0+IHZpZXcuaWQgIT09IGlkKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB2aWV3cyxcbiAgICAgIGFjdGl2ZVZpZXdJZCxcbiAgICB9O1xuICB9XG5cbiAgZnVuY3Rpb24gc2V0RW5hYmxlZDxWIGV4dGVuZHMgVmlldz4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxWPixcbiAgICBpZDogVlsnaWQnXSxcbiAgICBlbmFibGVkOiBib29sZWFuLFxuICApOiBDb3JlU3RhdGU8Vj4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHZpZXdzOiBzdGF0ZS52aWV3cy5tYXAodmlldyA9PlxuICAgICAgICB2aWV3LmlkID09PSBpZCA/IHsgLi4udmlldywgZW5hYmxlZCB9IDogdmlldyxcbiAgICAgICksXG4gICAgICBhY3RpdmVWaWV3SWQ6XG4gICAgICAgICFlbmFibGVkICYmIHN0YXRlLmFjdGl2ZVZpZXdJZCA9PT0gaWRcbiAgICAgICAgICA/IGdldE5leHRCZXN0QWN0aXZlVmlldyhzdGF0ZSlcbiAgICAgICAgICA6IHN0YXRlLmFjdGl2ZVZpZXdJZCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gd2l0aER1cGxpY2F0ZVZpZXc8ViBleHRlbmRzIFZpZXc+KFxuICAgIHZpZXdzOiBWW10sXG4gICAgdmlld1RvRHVwbGljYXRlOiBWLFxuICAgIGR1cGxpY2F0ZTogRHVwbGljYXRlPFY+LFxuICApOiBQcm9taXNlPFZbXT4ge1xuICAgIGNvbnN0IG5ld1ZpZXcgPSBhd2FpdCBkdXBsaWNhdGUodmlld1RvRHVwbGljYXRlKTtcbiAgICBjb25zdCBzb3VyY2VJbmRleCA9IHZpZXdzLmZpbmRJbmRleCh2aWV3ID0+IHZpZXcuaWQgPT09IHZpZXdUb0R1cGxpY2F0ZS5pZCk7XG4gICAgaWYgKHNvdXJjZUluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIFtuZXdWaWV3LCAuLi52aWV3c107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLnZpZXdzLnNsaWNlKDAsIHNvdXJjZUluZGV4ICsgMSksXG4gICAgICAgIG5ld1ZpZXcsXG4gICAgICAgIC4uLnZpZXdzLnNsaWNlKHNvdXJjZUluZGV4ICsgMSksXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVtcHR5U3RhdGVNZXNzYWdlPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uLFxuICApOiBzdHJpbmcge1xuICAgIGlmIChzdGF0ZS5hbGwuc2VhcmNoKVxuICAgICAgcmV0dXJuIGBObyAke3Blcm1pc3Npb259IHZpZXdzIG1hdGNoaW5nIFwiJHtzdGF0ZS5hbGwuc2VhcmNofVwiYDtcbiAgICBlbHNlIHJldHVybiBgTm8gJHtwZXJtaXNzaW9ufSB2aWV3c2A7XG4gIH1cblxuICBmdW5jdGlvbiB2aWV3T3JkZXJDaGFuZ2U8ViBleHRlbmRzIFZpZXc+KFxuICAgIHN0YXRlOiBDb3JlU3RhdGU8Vj4sXG4gICAgcHJldmlvdXNFbmFibGVkSW5kZXg6IG51bWJlcixcbiAgICBuZXdFbmFibGVkSW5kZXg6IG51bWJlcixcbiAgKTogQ29yZVN0YXRlPFY+IHtcbiAgICBpZiAocHJldmlvdXNFbmFibGVkSW5kZXggPT09IDAgfHwgbmV3RW5hYmxlZEluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gc3RhdGU7IC8vIEtlZXAgc3lzdGVtIHZpZXcgKGluZGV4IDApIGluIHBsYWNlXG4gICAgfVxuXG4gICAgY29uc3QgYWN0dWFsUHJldmlvdXNJbmRleCA9IG1hcEVuYWJsZWRJbmRleFRvVmlld0luZGV4KFxuICAgICAgc3RhdGUudmlld3MsXG4gICAgICBwcmV2aW91c0VuYWJsZWRJbmRleCxcbiAgICApO1xuICAgIGNvbnN0IGFjdHVhbE5ld0luZGV4ID0gbWFwRW5hYmxlZEluZGV4VG9WaWV3SW5kZXgoXG4gICAgICBzdGF0ZS52aWV3cyxcbiAgICAgIG5ld0VuYWJsZWRJbmRleCxcbiAgICApO1xuXG4gICAgY29uc3QgaXRlbSA9IHN0YXRlLnZpZXdzW2FjdHVhbFByZXZpb3VzSW5kZXhdO1xuICAgIGNvbnN0IHdpdGhvdXRJdGVtID0gc3RhdGUudmlld3MuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBhY3R1YWxQcmV2aW91c0luZGV4KTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHZpZXdzOiBbXG4gICAgICAgIC4uLndpdGhvdXRJdGVtLnNsaWNlKDAsIGFjdHVhbE5ld0luZGV4KSxcbiAgICAgICAgaXRlbSxcbiAgICAgICAgLi4ud2l0aG91dEl0ZW0uc2xpY2UoYWN0dWFsTmV3SW5kZXgpLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gcmVkdWNlPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIGFjdGlvbjogQWN0aW9uPFY+LFxuICAgIHNvdXJjZTogU291cmNlPFY+LFxuICAgIGR1cGxpY2F0ZTogRHVwbGljYXRlPFY+LFxuICAgIGNvcHlMaW5rOiBDb3B5TGluazxWPixcbiAgKTogUHJvbWlzZTxDb3JlU3RhdGU8Vj4+IHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlICdsb2FkJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICB2aWV3czogYXdhaXQgc291cmNlKCksXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldEFjdGl2ZVZpZXcnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGFjdGl2ZVZpZXdJZDogYWN0aW9uLmlkLFxuICAgICAgICAgIHZpZXdzOiBzdGF0ZS52aWV3cy5tYXAodmlldyA9PlxuICAgICAgICAgICAgdmlldy5pZCA9PT0gYWN0aW9uLmlkID8geyAuLi52aWV3LCBlbmFibGVkOiB0cnVlIH0gOiB2aWV3LFxuICAgICAgICAgICksXG4gICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5hbGwsXG4gICAgICAgICAgICBzZWFyY2g6ICcnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXREZWZhdWx0Vmlldyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgZGVmYXVsdFZpZXdJZDogYWN0aW9uLmlkLFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRFbmFibGVkJzpcbiAgICAgICAgcmV0dXJuIHNldEVuYWJsZWQoc3RhdGUsIGFjdGlvbi5pZCwgYWN0aW9uLmVuYWJsZWQpO1xuXG4gICAgICBjYXNlICdzZXRDb250YWluZXJXaWR0aCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgY29udGFpbmVyV2lkdGg6IGFjdGlvbi53aWR0aCxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0T3ZlcmZsb3dQaWNrZXJPcGVuJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBvdmVyZmxvdzoge1xuICAgICAgICAgICAgLi4uc3RhdGUub3ZlcmZsb3csXG4gICAgICAgICAgICBwaWNrZXJPcGVuOiBhY3Rpb24ub3BlbixcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRPdmVyZmxvd1NlYXJjaFF1ZXJ5JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBvdmVyZmxvdzoge1xuICAgICAgICAgICAgLi4uc3RhdGUub3ZlcmZsb3csXG4gICAgICAgICAgICBzZWFyY2g6IGFjdGlvbi5xdWVyeSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRBbGxWaWV3c1NlYXJjaFF1ZXJ5JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBhbGw6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmFsbCxcbiAgICAgICAgICAgIHNlYXJjaDogYWN0aW9uLnF1ZXJ5LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3VwZGF0ZVZpZXcnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHZpZXdzOiBzdGF0ZS52aWV3cy5tYXAodmlldyA9PlxuICAgICAgICAgICAgdmlldy5pZCA9PT0gYWN0aW9uLnZpZXcuaWQgPyBhY3Rpb24udmlldyA6IHZpZXcsXG4gICAgICAgICAgKSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnZGVsZXRlVmlldyc6XG4gICAgICAgIHJldHVybiBkZWxldGVWaWV3KHN0YXRlLCBhY3Rpb24udmlldy5pZCk7XG5cbiAgICAgIGNhc2UgJ2R1cGxpY2F0ZVZpZXcnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIHZpZXdzOiBhd2FpdCB3aXRoRHVwbGljYXRlVmlldyhzdGF0ZS52aWV3cywgYWN0aW9uLnZpZXcsIGR1cGxpY2F0ZSksXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ2NvcHlMaW5rVG9WaWV3JzpcbiAgICAgICAgYXdhaXQgY29weUxpbmsoYWN0aW9uLnZpZXcpO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNhc2UgJ3ZpZXdPcmRlckNoYW5nZSc6XG4gICAgICAgIHJldHVybiB2aWV3T3JkZXJDaGFuZ2UoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgYWN0aW9uLnByZXZpb3VzRW5hYmxlZEluZGV4LFxuICAgICAgICAgIGFjdGlvbi5uZXdFbmFibGVkSW5kZXgsXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgJ3NldEFsbFZpZXdzVG9nZ2xlJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBhbGw6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmFsbCxcbiAgICAgICAgICAgIHByaXZhdGVPcGVuOlxuICAgICAgICAgICAgICBhY3Rpb24ucGVybWlzc2lvbiA9PT0gJ3ByaXZhdGUnXG4gICAgICAgICAgICAgICAgPyBhY3Rpb24ub3BlblxuICAgICAgICAgICAgICAgIDogc3RhdGUuYWxsLnByaXZhdGVPcGVuLFxuICAgICAgICAgICAgc2hhcmVkT3BlbjpcbiAgICAgICAgICAgICAgYWN0aW9uLnBlcm1pc3Npb24gPT09ICdzaGFyZWQnXG4gICAgICAgICAgICAgICAgPyBhY3Rpb24ub3BlblxuICAgICAgICAgICAgICAgIDogc3RhdGUuYWxsLnNoYXJlZE9wZW4sXG4gICAgICAgICAgICBwdWJsaWNPcGVuOlxuICAgICAgICAgICAgICBhY3Rpb24ucGVybWlzc2lvbiA9PT0gJ3B1YmxpYydcbiAgICAgICAgICAgICAgICA/IGFjdGlvbi5vcGVuXG4gICAgICAgICAgICAgICAgOiBzdGF0ZS5hbGwucHVibGljT3BlbixcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vL1xuICAvLyBVdGlsaXRpZXMgLy9cbiAgLy8vLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFBlcm1pc3Npb25UaXRsZShwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbik6IHN0cmluZyB7XG4gICAgc3dpdGNoIChwZXJtaXNzaW9uKSB7XG4gICAgICBjYXNlICdwcml2YXRlJzpcbiAgICAgICAgcmV0dXJuICdQcml2YXRlJztcbiAgICAgIGNhc2UgJ3NoYXJlZCc6XG4gICAgICAgIHJldHVybiAnU2hhcmVkJztcbiAgICAgIGNhc2UgJ3B1YmxpYyc6XG4gICAgICAgIHJldHVybiAnUHVibGljJztcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0UGVybWlzc2lvbkRlc2NyaXB0aW9uKHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHBlcm1pc3Npb24pIHtcbiAgICAgIGNhc2UgJ3ByaXZhdGUnOlxuICAgICAgICByZXR1cm4gJ09ubHkgdmlzaWJsZSB0byB5b3UnO1xuICAgICAgY2FzZSAnc2hhcmVkJzpcbiAgICAgICAgcmV0dXJuICdPbmx5IHZpc2libGUgdG8gdGhvc2Ugd2l0aCBhY2Nlc3MnO1xuICAgICAgY2FzZSAncHVibGljJzpcbiAgICAgICAgcmV0dXJuICdWaXNpYmxlIHRvIGV2ZXJ5b25lJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
347
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBa0MsTUFBTSxTQUFTLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUNMLFdBQVcsRUFFWCxJQUFJLEVBQ0osR0FBRyxFQUNILFNBQVMsRUFFVCxhQUFhLEVBQ2IsU0FBUyxFQUNULE9BQU8sR0FDUixNQUFNLE1BQU0sQ0FBQztBQUlkLE1BQU0sS0FBVyxRQUFRLENBMGxCeEI7QUExbEJELFdBQWlCLFFBQVE7SUFDVix3QkFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQVUsQ0FBQztJQTBHeEUsU0FBZ0IsYUFBYSxDQUMzQixNQUFpQixFQUNqQixTQUF1QixFQUN2QixRQUFxQixFQUNyQixPQUEyQjtRQUUzQixNQUFNLFlBQVksR0FBaUI7WUFDakMsS0FBSyxFQUFFLEVBQUU7WUFDVCxZQUFZLEVBQUUsSUFBSTtZQUNsQixhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUUsQ0FBQztZQUNqQixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUUsRUFBRTtnQkFDVixVQUFVLEVBQUUsS0FBSzthQUNsQjtZQUNELEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUsRUFBRTtnQkFDVixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCO1NBQ0YsQ0FBQztRQUVGLE1BQU0scUJBQXFCLEdBQWlCLFlBQVksQ0FDdEQsRUFBRSxFQUNGLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLFlBQVks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O29CQUNMLEdBQUcsS0FBSztvQkFDUixrQkFBa0IsRUFBRSxNQUFNLENBQUMsT0FBTztpQkFDbkMsQ0FBQztZQUVKLEtBQUssaUJBQWlCO2dCQUNwQixPQUFPO29CQUNMLEdBQUcsS0FBSztvQkFDUixjQUFjLEVBQUUsTUFBTSxDQUFDLEVBQUU7aUJBQzFCLENBQUM7U0FDTDtJQUNILENBQUM7SUFFRCxlQUFlO0lBQ2YsZUFBZTtJQUNmLGVBQWU7SUFFZixTQUFnQixrQkFBa0IsQ0FBQyxVQUEwQjtRQUMzRCxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssUUFBUTtnQkFDWCxPQUFPLFFBQVEsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFUZSwyQkFBa0IscUJBU2pDLENBQUE7SUFFRCxTQUFnQix3QkFBd0IsQ0FBQyxVQUEwQjtRQUNqRSxRQUFRLFVBQVUsRUFBRTtZQUNsQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxxQkFBcUIsQ0FBQztZQUMvQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxtQ0FBbUMsQ0FBQztZQUM3QyxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxxQkFBcUIsQ0FBQztTQUNoQztJQUNILENBQUM7SUFUZSxpQ0FBd0IsMkJBU3ZDLENBQUE7QUFDSCxDQUFDLEVBMWxCZ0IsUUFBUSxLQUFSLFFBQVEsUUEwbEJ4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGdXNlLCB7IEZ1c2VSZXN1bHQsIElGdXNlT3B0aW9ucyB9IGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHsgZGVmYXVsdHNEZWVwLCBzb3J0QnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtcbiAgY29ubmVjdGFibGUsXG4gIENvbm5lY3RhYmxlLFxuICBmcm9tLFxuICBtYXAsXG4gIG1lcmdlU2NhbixcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERlZXBQYXJ0aWFsIH0gZnJvbSAndXRpbGl0eS10eXBlcyc7XG5pbXBvcnQgeyBIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi92aXN1YWxpemF0aW9uL2hpZ2hsaWdodC9oaWdobGlnaHQuY29tcG9uZW50JztcblxuZXhwb3J0IG5hbWVzcGFjZSBSaXZWaWV3cyB7XG4gIGV4cG9ydCBjb25zdCBWaWV3UGVybWlzc2lvbnMgPSBbJ3ByaXZhdGUnLCAncHVibGljJywgJ3NoYXJlZCddIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBWaWV3UGVybWlzc2lvbiA9ICh0eXBlb2YgVmlld1Blcm1pc3Npb25zKVtudW1iZXJdO1xuXG4gIGV4cG9ydCB0eXBlIFZpZXcgPSB7XG4gICAgaWQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcGVybWlzc2lvbjogVmlld1Blcm1pc3Npb247XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgRnVsbFZpZXc8ViBleHRlbmRzIFZpZXcgPSBWaWV3PiA9IFYgJiB7XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIGRlZmF1bHQ6IGJvb2xlYW47XG4gICAgc3lzdGVtOiBib29sZWFuO1xuICAgIHRpdGxlSGlnaGxpZ2h0SW5kaWNlcz86IEhpZ2hsaWdodENvbXBvbmVudC5IaWdobGlnaHRJbmRpY2VzW107XG4gIH07XG5cbiAgLy8vLy8vLy8vLy9cbiAgLy8gU3RhdGUgLy9cbiAgLy8vLy8vLy8vLy9cblxuICBleHBvcnQgdHlwZSBDb3JlU3RhdGU8ViBleHRlbmRzIFZpZXc+ID0ge1xuICAgIHZpZXdzOiBWW107XG4gICAgYWN0aXZlVmlld0lkOiBWWydpZCddIHwgbnVsbDtcbiAgICBkZWZhdWx0Vmlld0lkOiBWWydpZCddIHwgbnVsbDtcbiAgICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIGVkaXRpbmdWaWV3Q29udGV4dDogeyBpZDogVlsnaWQnXTsgYXV0b1JlbmFtZTogYm9vbGVhbiB9IHwgbnVsbDtcbiAgICBkZWxldGluZ1ZpZXdJZDogVlsnaWQnXSB8IG51bGw7XG4gICAgb3ZlcmZsb3c6IHtcbiAgICAgIHNlYXJjaDogc3RyaW5nO1xuICAgICAgcGlja2VyT3BlbjogYm9vbGVhbjtcbiAgICB9O1xuICAgIGFsbDoge1xuICAgICAgc2VhcmNoOiBzdHJpbmc7XG4gICAgICBwcml2YXRlT3BlbjogYm9vbGVhbjtcbiAgICAgIHNoYXJlZE9wZW46IGJvb2xlYW47XG4gICAgICBwdWJsaWNPcGVuOiBib29sZWFuO1xuICAgIH07XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgRnVsbFN0YXRlPFYgZXh0ZW5kcyBWaWV3PiA9IENvcmVTdGF0ZTxWPiAmIHtcbiAgICBhbGxWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICBkaXNwbGF5ZWRWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICBlbmFibGVkVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgZWRpdGluZ1ZpZXc6IEZ1bGxWaWV3PFY+IHwgbnVsbDtcbiAgICBkZWxldGluZ1ZpZXc6IEZ1bGxWaWV3PFY+IHwgbnVsbDtcbiAgICBhbGw6IHtcbiAgICAgIHByaXZhdGVWaWV3czogRnVsbFZpZXc8Vj5bXTtcbiAgICAgIHByaXZhdGVFbXB0eVN0YXRlTWVzc2FnZTogc3RyaW5nO1xuICAgICAgc2hhcmVkVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgICBzaGFyZWRFbXB0eVN0YXRlTWVzc2FnZTogc3RyaW5nO1xuICAgICAgcHVibGljVmlld3M6IEZ1bGxWaWV3PFY+W107XG4gICAgICBwdWJsaWNFbXB0eVN0YXRlTWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG5cbiAgLy8vLy8vLy8vLy8vL1xuICAvLyBBY3Rpb25zIC8vXG4gIC8vLy8vLy8vLy8vLy9cblxuICBleHBvcnQgdHlwZSBBY3Rpb248ViBleHRlbmRzIFZpZXc+ID1cbiAgICB8IHsgdHlwZTogJ2xvYWQnIH1cbiAgICB8IHsgdHlwZTogJ3NldEFjdGl2ZVZpZXcnOyBpZDogVlsnaWQnXSB9XG4gICAgfCB7IHR5cGU6ICdzZXREZWZhdWx0Vmlldyc7IGlkOiBWWydpZCddIH1cbiAgICB8IHsgdHlwZTogJ3NldEVuYWJsZWQnOyBpZDogVlsnaWQnXTsgZW5hYmxlZDogYm9vbGVhbiB9XG4gICAgfCB7IHR5cGU6ICdzZXRDb250YWluZXJXaWR0aCc7IHdpZHRoOiBudW1iZXIgfVxuICAgIHwgeyB0eXBlOiAnc2V0T3ZlcmZsb3dQaWNrZXJPcGVuJzsgb3BlbjogYm9vbGVhbiB9XG4gICAgfCB7IHR5cGU6ICdzZXRPdmVyZmxvd1NlYXJjaFF1ZXJ5JzsgcXVlcnk6IHN0cmluZyB9XG4gICAgfCB7IHR5cGU6ICdzZXRBbGxWaWV3c1NlYXJjaFF1ZXJ5JzsgcXVlcnk6IHN0cmluZyB9XG4gICAgfCB7IHR5cGU6ICd1cGRhdGVWaWV3JzsgdmlldzogViB9XG4gICAgfCB7IHR5cGU6ICdkZWxldGVWaWV3JzsgdmlldzogViB9XG4gICAgfCB7IHR5cGU6ICdkdXBsaWNhdGVWaWV3JzsgdmlldzogViB9XG4gICAgfCB7IHR5cGU6ICdjb3B5TGlua1RvVmlldyc7IHZpZXc6IFYgfVxuICAgIHwgeyB0eXBlOiAnc2V0RWRpdGluZ1ZpZXcnOyBjb250ZXh0OiBDb3JlU3RhdGU8Vj5bJ2VkaXRpbmdWaWV3Q29udGV4dCddIH1cbiAgICB8IHsgdHlwZTogJ3NldERlbGV0aW5nVmlldyc7IGlkOiBDb3JlU3RhdGU8Vj5bJ2RlbGV0aW5nVmlld0lkJ10gfVxuICAgIHwge1xuICAgICAgICB0eXBlOiAndmlld09yZGVyQ2hhbmdlJztcbiAgICAgICAgcHJldmlvdXNFbmFibGVkSW5kZXg6IG51bWJlcjtcbiAgICAgICAgbmV3RW5hYmxlZEluZGV4OiBudW1iZXI7XG4gICAgICB9XG4gICAgfCB7IHR5cGU6ICdzZXRBbGxWaWV3c1RvZ2dsZSc7IHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uOyBvcGVuOiBib29sZWFuIH07XG5cbiAgLy8vLy8vLy8vLy8vXG4gIC8vIFNvdXJjZSAvL1xuICAvLy8vLy8vLy8vLy9cblxuICBleHBvcnQgdHlwZSBTb3VyY2U8ViBleHRlbmRzIFZpZXc+ID0gKCkgPT4gVltdIHwgUHJvbWlzZTxWW10+O1xuICBleHBvcnQgdHlwZSBEdXBsaWNhdGU8ViBleHRlbmRzIFZpZXc+ID0gKFxuICAgIHZpZXdUb0R1cGxpY2F0ZTogVixcbiAgKSA9PiBWIHwgUHJvbWlzZTxWPjtcbiAgZXhwb3J0IHR5cGUgQ29weUxpbms8ViBleHRlbmRzIFZpZXc+ID0gKHZpZXc6IFYpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xuXG4gIC8vLy8vLy8vLy8vLy9cbiAgLy8gTWFuYWdlciAvL1xuICAvLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IHR5cGUgTWFuYWdlcjxWIGV4dGVuZHMgVmlldz4gPSB7XG4gICAgYWN0aW9uczogU3ViamVjdDxBY3Rpb248Vj4+O1xuICAgIHN0YXRlOiBDb25uZWN0YWJsZTxGdWxsU3RhdGU8Vj4+O1xuICB9O1xuXG4gIGV4cG9ydCB0eXBlIE1hbmFnZXJPcHRpb25zPFYgZXh0ZW5kcyBWaWV3PiA9IHtcbiAgICBpbml0aWFsU3RhdGU/OiBEZWVwUGFydGlhbDxDb3JlU3RhdGU8Vj4+O1xuICAgIGZ1c2VPcHRpb25zPzogSUZ1c2VPcHRpb25zPFY+O1xuICB9O1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYW5hZ2VyPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzb3VyY2U6IFNvdXJjZTxWPixcbiAgICBkdXBsaWNhdGU6IER1cGxpY2F0ZTxWPixcbiAgICBjb3B5TGluazogQ29weUxpbms8Vj4sXG4gICAgb3B0aW9ucz86IE1hbmFnZXJPcHRpb25zPFY+LFxuICApOiBNYW5hZ2VyPFY+IHtcbiAgICBjb25zdCBkZWZhdWx0U3RhdGU6IENvcmVTdGF0ZTxWPiA9IHtcbiAgICAgIHZpZXdzOiBbXSxcbiAgICAgIGFjdGl2ZVZpZXdJZDogbnVsbCxcbiAgICAgIGRlZmF1bHRWaWV3SWQ6IG51bGwsXG4gICAgICBjb250YWluZXJXaWR0aDogMCxcbiAgICAgIGVkaXRpbmdWaWV3Q29udGV4dDogbnVsbCxcbiAgICAgIGRlbGV0aW5nVmlld0lkOiBudWxsLFxuICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgcGlja2VyT3BlbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAgYWxsOiB7XG4gICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgIHByaXZhdGVPcGVuOiB0cnVlLFxuICAgICAgICBzaGFyZWRPcGVuOiB0cnVlLFxuICAgICAgICBwdWJsaWNPcGVuOiB0cnVlLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVmYXVsdGVkSW5pdGlhbFN0YXRlOiBDb3JlU3RhdGU8Vj4gPSBkZWZhdWx0c0RlZXAoXG4gICAgICB7fSxcbiAgICAgIG9wdGlvbnM/LmluaXRpYWxTdGF0ZSxcbiAgICAgIGRlZmF1bHRTdGF0ZSxcbiAgICApO1xuXG4gICAgY29uc3QgYWN0aW9uczogU3ViamVjdDxBY3Rpb248Vj4+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBjb25zdCBjb3JlU3RhdGU6IE9ic2VydmFibGU8Q29yZVN0YXRlPFY+PiA9IGFjdGlvbnMucGlwZShcbiAgICAgIG1lcmdlU2NhbihcbiAgICAgICAgKHN0YXRlLCBhY3Rpb24pID0+XG4gICAgICAgICAgZnJvbShyZWR1Y2Uoc3RhdGUsIGFjdGlvbiwgc291cmNlLCBkdXBsaWNhdGUsIGNvcHlMaW5rKSksXG4gICAgICAgIGRlZmF1bHRlZEluaXRpYWxTdGF0ZSxcbiAgICAgICAgMSxcbiAgICAgICksXG4gICAgICBzdGFydFdpdGgoZGVmYXVsdGVkSW5pdGlhbFN0YXRlKSxcbiAgICApO1xuXG4gICAgY29uc3Qgc3RhdGU6IENvbm5lY3RhYmxlPEZ1bGxTdGF0ZTxWPj4gPSBjb25uZWN0YWJsZShcbiAgICAgIGNvcmVTdGF0ZS5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgLy8gSWYgZm9yIHNvbWUgcmVhc29uIHRoZSBhY3RpdmUgdmlldyBpcyBub3QgY3VycmVudGx5IGVuYWJsZWQsIHdlJ2xsXG4gICAgICAgICAgLy8gZGVmYXVsdCB0byBtYWtpbmcgdGhlIGZpcnN0IHZpZXcgYWN0aXZlIGluc3RlYWQuXG4gICAgICAgICAgY29uc3QgYWN0aXZlVmlldzogViB8IHVuZGVmaW5lZCA9IHMudmlld3MuZmluZChcbiAgICAgICAgICAgIHZpZXcgPT4gdmlldy5lbmFibGVkICYmIHZpZXcuaWQgPT09IHMuYWN0aXZlVmlld0lkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBhbGxWaWV3czogRnVsbFZpZXc8Vj5bXSA9IHMudmlld3MubWFwKCh2aWV3LCBpKSA9PiAoe1xuICAgICAgICAgICAgLi4udmlldyxcbiAgICAgICAgICAgIGVuYWJsZWQ6IHZpZXcuZW5hYmxlZCB8fCBpID09PSAwLFxuICAgICAgICAgICAgYWN0aXZlOiBhY3RpdmVWaWV3ID8gYWN0aXZlVmlldy5pZCA9PT0gdmlldy5pZCA6IGkgPT09IDAsXG4gICAgICAgICAgICBkZWZhdWx0OiB2aWV3LmlkID09PSBzLmRlZmF1bHRWaWV3SWQsXG4gICAgICAgICAgICBzeXN0ZW06IGkgPT09IDAsXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgY29uc3QgYWxsRW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKGFsbFZpZXdzKTtcblxuICAgICAgICAgIGNvbnN0IGRpc3BsYXllZFZpZXdzID0gY2FsY3VsYXRlRGlzcGxheWVkVmlld3MoXG4gICAgICAgICAgICBhbGxFbmFibGVkVmlld3MsXG4gICAgICAgICAgICBjYWxjdWxhdGVPdmVyZmxvd1ZpZXdJbmRleChzKSxcbiAgICAgICAgICAgIHMuYWN0aXZlVmlld0lkLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBlbmFibGVkVmlld3MgPSBzLm92ZXJmbG93LnNlYXJjaFxuICAgICAgICAgICAgPyBzZWFyY2hWaWV3cyhcbiAgICAgICAgICAgICAgICBhbGxFbmFibGVkVmlld3MsXG4gICAgICAgICAgICAgICAgcy5vdmVyZmxvdy5zZWFyY2gsXG4gICAgICAgICAgICAgICAgb3B0aW9ucz8uZnVzZU9wdGlvbnMsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogYWxsRW5hYmxlZFZpZXdzO1xuXG4gICAgICAgICAgY29uc3QgYWxsVmlld3NGaWx0ZXJlZCA9IHMuYWxsLnNlYXJjaFxuICAgICAgICAgICAgPyBzZWFyY2hWaWV3cyhhbGxWaWV3cywgcy5hbGwuc2VhcmNoLCBvcHRpb25zPy5mdXNlT3B0aW9ucylcbiAgICAgICAgICAgIDogYWxsVmlld3M7XG5cbiAgICAgICAgICBjb25zdCBzZWFyY2hpbmdBbGxWaWV3cyA9ICEhcy5hbGwuc2VhcmNoO1xuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnMsXG4gICAgICAgICAgICBhbGxWaWV3cyxcbiAgICAgICAgICAgIGRpc3BsYXllZFZpZXdzLFxuICAgICAgICAgICAgZW5hYmxlZFZpZXdzLFxuICAgICAgICAgICAgZWRpdGluZ1ZpZXc6IHJlc29sdmVFZGl0aW5nVmlldyhzLCBhbGxWaWV3cyksXG4gICAgICAgICAgICBkZWxldGluZ1ZpZXc6IGFsbFZpZXdzLmZpbmQodiA9PiB2LmlkID09PSBzLmRlbGV0aW5nVmlld0lkKSA/PyBudWxsLFxuICAgICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAgIC4uLnMuYWxsLFxuICAgICAgICAgICAgICBwcml2YXRlT3Blbjogc2VhcmNoaW5nQWxsVmlld3MgfHwgcy5hbGwucHJpdmF0ZU9wZW4sXG4gICAgICAgICAgICAgIHByaXZhdGVWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3ByaXZhdGUnKSxcbiAgICAgICAgICAgICAgcHJpdmF0ZUVtcHR5U3RhdGVNZXNzYWdlOiBnZXRFbXB0eVN0YXRlTWVzc2FnZShzLCAncHJpdmF0ZScpLFxuICAgICAgICAgICAgICBzaGFyZWRPcGVuOiBzZWFyY2hpbmdBbGxWaWV3cyB8fCBzLmFsbC5zaGFyZWRPcGVuLFxuICAgICAgICAgICAgICBzaGFyZWRWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3NoYXJlZCcpLFxuICAgICAgICAgICAgICBzaGFyZWRFbXB0eVN0YXRlTWVzc2FnZTogZ2V0RW1wdHlTdGF0ZU1lc3NhZ2UocywgJ3NoYXJlZCcpLFxuICAgICAgICAgICAgICBwdWJsaWNPcGVuOiBzZWFyY2hpbmdBbGxWaWV3cyB8fCBzLmFsbC5wdWJsaWNPcGVuLFxuICAgICAgICAgICAgICBwdWJsaWNWaWV3czogdmlld3NCeVBlcm1pc3Npb24oYWxsVmlld3NGaWx0ZXJlZCwgJ3B1YmxpYycpLFxuICAgICAgICAgICAgICBwdWJsaWNFbXB0eVN0YXRlTWVzc2FnZTogZ2V0RW1wdHlTdGF0ZU1lc3NhZ2UocywgJ3B1YmxpYycpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICB7XG4gICAgICAgIGNvbm5lY3RvcjogKCkgPT4gbmV3IFJlcGxheVN1YmplY3QoMSksXG4gICAgICAgIHJlc2V0T25EaXNjb25uZWN0OiBmYWxzZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBzdGF0ZS5jb25uZWN0KCk7XG5cbiAgICAvLyBMb2FkIHRoZSB2aWV3cyBpbW1lZGlhdGVseVxuICAgIGFjdGlvbnMubmV4dCh7IHR5cGU6ICdsb2FkJyB9KTtcblxuICAgIHJldHVybiB7IGFjdGlvbnMsIHN0YXRlIH07XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIFN0YXRlIHJlZHVjZXIgKHdpdGggaGVscGVycykgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGZ1bmN0aW9uIHJlc29sdmVFZGl0aW5nVmlldzxWIGV4dGVuZHMgVmlldz4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxWPixcbiAgICBhbGxWaWV3czogRnVsbFZpZXc8Vj5bXSxcbiAgKTogRnVsbFZpZXc8Vj4gfCBudWxsIHtcbiAgICBjb25zdCBlZGl0aW5nVmlld0NvbnRleHQgPSBzdGF0ZS5lZGl0aW5nVmlld0NvbnRleHQ7XG4gICAgaWYgKGVkaXRpbmdWaWV3Q29udGV4dCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGFsbFZpZXdzLmZpbmQodiA9PiB2LmlkID09PSBlZGl0aW5nVmlld0NvbnRleHQuaWQpID8/IG51bGw7XG4gICAgfSBlbHNlIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW5hYmxlZFZpZXdzPFYgZXh0ZW5kcyBWaWV3Pih2aWV3czogVltdKTogVltdO1xuICBmdW5jdGlvbiBnZXRFbmFibGVkVmlld3M8ViBleHRlbmRzIFZpZXc+KFxuICAgIHZpZXdzOiBGdWxsVmlldzxWPltdLFxuICApOiBGdWxsVmlldzxWPltdIHtcbiAgICByZXR1cm4gdmlld3MuZmlsdGVyKCh2LCBpKSA9PiB2LmVuYWJsZWQgfHwgaSA9PT0gMCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNsYXRlcyBhbiBpbmRleCBpbiB0aGUgZW5hYmxlZCB2aWV3cyBsaXN0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4XG4gICAqIGluIHRoZSBmdWxsIHZpZXdzIGxpc3QuIFRoaXMgaXMgdXNlZCB0byByZXNvbHZlIFVJIGluZGljZXMgKHdoaWNoIG9ubHlcbiAgICogc2hvdyBlbmFibGVkIHZpZXdzKSB0byBzdGF0ZS52aWV3cyBpbmRpY2VzICh3aGljaCBpbmNsdWRlcyBhbGwgdmlld3MpLlxuICAgKi9cbiAgZnVuY3Rpb24gbWFwRW5hYmxlZEluZGV4VG9WaWV3SW5kZXg8ViBleHRlbmRzIFZpZXc+KFxuICAgIHZpZXdzOiBWW10sXG4gICAgZW5hYmxlZEluZGV4OiBudW1iZXIsXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgZW5hYmxlZFZpZXdzID0gZ2V0RW5hYmxlZFZpZXdzKHZpZXdzKTtcblxuICAgIGNvbnN0IHRhcmdldFZpZXcgPSBlbmFibGVkVmlld3NbZW5hYmxlZEluZGV4XTtcbiAgICBpZiAoIXRhcmdldFZpZXcpIHJldHVybiBlbmFibGVkSW5kZXg7XG5cbiAgICBjb25zdCB2aWV3SW5kZXggPSB2aWV3cy5maW5kSW5kZXgodmlldyA9PiB2aWV3LmlkID09PSB0YXJnZXRWaWV3LmlkKTtcbiAgICByZXR1cm4gdmlld0luZGV4ID09PSAtMSA/IGVuYWJsZWRJbmRleCA6IHZpZXdJbmRleDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNhbGN1bGF0ZU92ZXJmbG93Vmlld0luZGV4PFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IGVuYWJsZWRWaWV3cyA9IGdldEVuYWJsZWRWaWV3cyhzdGF0ZS52aWV3cyk7XG5cbiAgICAvLyBUYWJzIGhhdmUgYSBtaW5pbXVtIHdpZHRoIG9mIDkycHguXG4gICAgY29uc3QgcG9zc2libGVTbG90Q291bnQgPSBNYXRoLmZsb29yKHN0YXRlLmNvbnRhaW5lcldpZHRoIC8gOTIpO1xuXG4gICAgLy8gVGhlIFwiYWxsIHZpZXdzXCIgc2lkZWJhciB0cmlnZ2VyIHRha2VzIHVwIG9uZSBzbG90LlxuICAgIGNvbnN0IGF2YWlsYWJsZVNsb3RDb3VudCA9IHBvc3NpYmxlU2xvdENvdW50IC0gMTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSB0b28gbWFueSB0YWJzLCB0aGUgXCJOIG1vcmVcIiB0cmlnZ2VyIHRha2VzIHVwIG9uZSBzbG90IGFzIHdlbGwuXG4gICAgLy8gQnV0IHdlIHdhbnQgdG8gYXZvaWQgdGhlIFwiMSBtb3JlXCIgY2FzZSwgc28gd2Ugb25seSB1c2UgYSBzbG90IGZvciBcIk4gbW9yZVwiIGlmIE4gIT0gMS5cbiAgICBpZiAoYXZhaWxhYmxlU2xvdENvdW50ID49IGVuYWJsZWRWaWV3cy5sZW5ndGgpIHJldHVybiBlbmFibGVkVmlld3MubGVuZ3RoO1xuICAgIGVsc2UgcmV0dXJuIGF2YWlsYWJsZVNsb3RDb3VudCAtIDE7IC8vIHRoZSBcIk4gbW9yZVwiIHVzZXMgdXAgYSBzbG90LlxuICB9XG5cbiAgZnVuY3Rpb24gY2FsY3VsYXRlRGlzcGxheWVkVmlld3M8ViBleHRlbmRzIFZpZXc+KFxuICAgIGZ1bGxWaWV3czogRnVsbFZpZXc8Vj5bXSxcbiAgICBvdmVyZmxvd1ZpZXdJbmRleDogbnVtYmVyLFxuICAgIGFjdGl2ZVZpZXdJZDogQ29yZVN0YXRlPFY+WydhY3RpdmVWaWV3SWQnXSxcbiAgKTogRnVsbFZpZXc8Vj5bXSB7XG4gICAgY29uc3QgZGlzcGxheWVkVmlld3MgPSBmdWxsVmlld3Muc2xpY2UoMCwgb3ZlcmZsb3dWaWV3SW5kZXgpO1xuXG4gICAgY29uc3QgYWN0aXZlVmlld0luRGlzcGxheSA9IGRpc3BsYXllZFZpZXdzLnNvbWUoXG4gICAgICB2aWV3ID0+IHZpZXcuaWQgPT09IGFjdGl2ZVZpZXdJZCxcbiAgICApO1xuXG4gICAgaWYgKCFhY3RpdmVWaWV3SW5EaXNwbGF5ICYmIGFjdGl2ZVZpZXdJZCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgYWN0aXZlVmlldyA9IGZ1bGxWaWV3cy5maW5kKHZpZXcgPT4gdmlldy5pZCA9PT0gYWN0aXZlVmlld0lkKTtcbiAgICAgIGlmIChhY3RpdmVWaWV3ICYmIGRpc3BsYXllZFZpZXdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIFsuLi5kaXNwbGF5ZWRWaWV3cy5zbGljZSgwLCAtMSksIGFjdGl2ZVZpZXddO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkaXNwbGF5ZWRWaWV3cztcbiAgfVxuXG4gIGZ1bmN0aW9uIHZpZXdzQnlQZXJtaXNzaW9uPFYgZXh0ZW5kcyBWaWV3PihcbiAgICB2aWV3czogRnVsbFZpZXc8Vj5bXSxcbiAgICBwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbixcbiAgKTogRnVsbFZpZXc8Vj5bXSB7XG4gICAgcmV0dXJuIHNvcnRCeShcbiAgICAgIHZpZXdzLmZpbHRlcih2aWV3ID0+IHZpZXcucGVybWlzc2lvbiA9PT0gcGVybWlzc2lvbiksXG4gICAgICBbdiA9PiAhdi5zeXN0ZW0sICd0aXRsZSddLFxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBzZWFyY2hWaWV3czxWIGV4dGVuZHMgVmlldz4oXG4gICAgdmlld3M6IEZ1bGxWaWV3PFY+W10sXG4gICAgcXVlcnk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogSUZ1c2VPcHRpb25zPFY+LFxuICApOiBGdWxsVmlldzxWPltdIHtcbiAgICBjb25zdCBmdXNlID0gbmV3IEZ1c2Uodmlld3MsIHtcbiAgICAgIHRocmVzaG9sZDogMC4yLFxuICAgICAga2V5czogWyd0aXRsZSddLFxuICAgICAgaW5jbHVkZU1hdGNoZXM6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbWF0Y2hlZE9wdGlvbnM6IEZ1c2VSZXN1bHQ8RnVsbFZpZXc8Vj4+W10gPSBmdXNlLnNlYXJjaChxdWVyeSk7XG5cbiAgICByZXR1cm4gbWF0Y2hlZE9wdGlvbnMubWFwKHJlc3VsdCA9PiAoe1xuICAgICAgLi4ucmVzdWx0Lml0ZW0sXG4gICAgICB0aXRsZUhpZ2hsaWdodEluZGljZXM6IFtcbiAgICAgICAgLi4uKHJlc3VsdC5tYXRjaGVzPy5maW5kKG1hdGNoID0+IG1hdGNoLmtleSA9PT0gJ3RpdGxlJyk/LmluZGljZXMgPz9cbiAgICAgICAgICBbXSksXG4gICAgICBdLFxuICAgIH0pKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldE5leHRCZXN0QWN0aXZlVmlldzxWIGV4dGVuZHMgVmlldz4oc3RhdGU6IENvcmVTdGF0ZTxWPik6IFZbJ2lkJ10ge1xuICAgIGNvbnN0IGVuYWJsZWRWaWV3cyA9IGdldEVuYWJsZWRWaWV3cyhzdGF0ZS52aWV3cyk7XG4gICAgY29uc3QgY3VycmVudEFjdGl2ZVZpZXdJbmRleCA9IGVuYWJsZWRWaWV3cy5maW5kSW5kZXgoXG4gICAgICB2aWV3ID0+IHZpZXcuaWQgPT09IHN0YXRlLmFjdGl2ZVZpZXdJZCxcbiAgICApO1xuXG4gICAgaWYgKGN1cnJlbnRBY3RpdmVWaWV3SW5kZXggPT09IC0xKSByZXR1cm4gZW5hYmxlZFZpZXdzWzBdLmlkO1xuICAgIHJldHVybiAoXG4gICAgICBlbmFibGVkVmlld3NbY3VycmVudEFjdGl2ZVZpZXdJbmRleCArIDFdPy5pZCA/P1xuICAgICAgZW5hYmxlZFZpZXdzW2N1cnJlbnRBY3RpdmVWaWV3SW5kZXggLSAxXT8uaWQgPz9cbiAgICAgIGVuYWJsZWRWaWV3c1swXS5pZFxuICAgICk7XG4gIH1cblxuICBmdW5jdGlvbiBkZWxldGVWaWV3PFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIGlkOiBWWydpZCddLFxuICApOiBDb3JlU3RhdGU8Vj4ge1xuICAgIGNvbnN0IGFjdGl2ZVZpZXdJZCA9XG4gICAgICBzdGF0ZS5hY3RpdmVWaWV3SWQgPT09IGlkXG4gICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICA6IHN0YXRlLmFjdGl2ZVZpZXdJZDtcbiAgICBjb25zdCB2aWV3cyA9IHN0YXRlLnZpZXdzLmZpbHRlcih2aWV3ID0+IHZpZXcuaWQgIT09IGlkKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB2aWV3cyxcbiAgICAgIGFjdGl2ZVZpZXdJZCxcbiAgICAgIGRlbGV0aW5nVmlld0lkOiBudWxsLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBzZXRFbmFibGVkPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIGlkOiBWWydpZCddLFxuICAgIGVuYWJsZWQ6IGJvb2xlYW4sXG4gICk6IENvcmVTdGF0ZTxWPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgdmlld3M6IHN0YXRlLnZpZXdzLm1hcCh2aWV3ID0+XG4gICAgICAgIHZpZXcuaWQgPT09IGlkID8geyAuLi52aWV3LCBlbmFibGVkIH0gOiB2aWV3LFxuICAgICAgKSxcbiAgICAgIGFjdGl2ZVZpZXdJZDpcbiAgICAgICAgIWVuYWJsZWQgJiYgc3RhdGUuYWN0aXZlVmlld0lkID09PSBpZFxuICAgICAgICAgID8gZ2V0TmV4dEJlc3RBY3RpdmVWaWV3KHN0YXRlKVxuICAgICAgICAgIDogc3RhdGUuYWN0aXZlVmlld0lkLFxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiB3aXRoRHVwbGljYXRlVmlldzxWIGV4dGVuZHMgVmlldz4oXG4gICAgdmlld3M6IFZbXSxcbiAgICBkdXBsaWNhdGVkVmlldzogVixcbiAgICBuZXdWaWV3OiBWLFxuICApOiBWW10ge1xuICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gdmlld3MuZmluZEluZGV4KHZpZXcgPT4gdmlldy5pZCA9PT0gZHVwbGljYXRlZFZpZXcuaWQpO1xuICAgIGlmIChzb3VyY2VJbmRleCA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBbbmV3VmlldywgLi4udmlld3NdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi52aWV3cy5zbGljZSgwLCBzb3VyY2VJbmRleCArIDEpLFxuICAgICAgICBuZXdWaWV3LFxuICAgICAgICAuLi52aWV3cy5zbGljZShzb3VyY2VJbmRleCArIDEpLFxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBnZXRFbXB0eVN0YXRlTWVzc2FnZTxWIGV4dGVuZHMgVmlldz4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxWPixcbiAgICBwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbixcbiAgKTogc3RyaW5nIHtcbiAgICBpZiAoc3RhdGUuYWxsLnNlYXJjaClcbiAgICAgIHJldHVybiBgTm8gJHtwZXJtaXNzaW9ufSB2aWV3cyBtYXRjaGluZyBcIiR7c3RhdGUuYWxsLnNlYXJjaH1cImA7XG4gICAgZWxzZSByZXR1cm4gYE5vICR7cGVybWlzc2lvbn0gdmlld3NgO1xuICB9XG5cbiAgZnVuY3Rpb24gdmlld09yZGVyQ2hhbmdlPFYgZXh0ZW5kcyBWaWV3PihcbiAgICBzdGF0ZTogQ29yZVN0YXRlPFY+LFxuICAgIHByZXZpb3VzRW5hYmxlZEluZGV4OiBudW1iZXIsXG4gICAgbmV3RW5hYmxlZEluZGV4OiBudW1iZXIsXG4gICk6IENvcmVTdGF0ZTxWPiB7XG4gICAgaWYgKHByZXZpb3VzRW5hYmxlZEluZGV4ID09PSAwIHx8IG5ld0VuYWJsZWRJbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHN0YXRlOyAvLyBLZWVwIHN5c3RlbSB2aWV3IChpbmRleCAwKSBpbiBwbGFjZVxuICAgIH1cblxuICAgIGNvbnN0IGFjdHVhbFByZXZpb3VzSW5kZXggPSBtYXBFbmFibGVkSW5kZXhUb1ZpZXdJbmRleChcbiAgICAgIHN0YXRlLnZpZXdzLFxuICAgICAgcHJldmlvdXNFbmFibGVkSW5kZXgsXG4gICAgKTtcbiAgICBjb25zdCBhY3R1YWxOZXdJbmRleCA9IG1hcEVuYWJsZWRJbmRleFRvVmlld0luZGV4KFxuICAgICAgc3RhdGUudmlld3MsXG4gICAgICBuZXdFbmFibGVkSW5kZXgsXG4gICAgKTtcblxuICAgIGNvbnN0IGl0ZW0gPSBzdGF0ZS52aWV3c1thY3R1YWxQcmV2aW91c0luZGV4XTtcbiAgICBjb25zdCB3aXRob3V0SXRlbSA9IHN0YXRlLnZpZXdzLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gYWN0dWFsUHJldmlvdXNJbmRleCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICB2aWV3czogW1xuICAgICAgICAuLi53aXRob3V0SXRlbS5zbGljZSgwLCBhY3R1YWxOZXdJbmRleCksXG4gICAgICAgIGl0ZW0sXG4gICAgICAgIC4uLndpdGhvdXRJdGVtLnNsaWNlKGFjdHVhbE5ld0luZGV4KSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHJlZHVjZTxWIGV4dGVuZHMgVmlldz4oXG4gICAgc3RhdGU6IENvcmVTdGF0ZTxWPixcbiAgICBhY3Rpb246IEFjdGlvbjxWPixcbiAgICBzb3VyY2U6IFNvdXJjZTxWPixcbiAgICBkdXBsaWNhdGU6IER1cGxpY2F0ZTxWPixcbiAgICBjb3B5TGluazogQ29weUxpbms8Vj4sXG4gICk6IFByb21pc2U8Q29yZVN0YXRlPFY+PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgY2FzZSAnbG9hZCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgdmlld3M6IGF3YWl0IHNvdXJjZSgpLFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRBY3RpdmVWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBhY3RpdmVWaWV3SWQ6IGFjdGlvbi5pZCxcbiAgICAgICAgICB2aWV3czogc3RhdGUudmlld3MubWFwKHZpZXcgPT5cbiAgICAgICAgICAgIHZpZXcuaWQgPT09IGFjdGlvbi5pZCA/IHsgLi4udmlldywgZW5hYmxlZDogdHJ1ZSB9IDogdmlldyxcbiAgICAgICAgICApLFxuICAgICAgICAgIGFsbDoge1xuICAgICAgICAgICAgLi4uc3RhdGUuYWxsLFxuICAgICAgICAgICAgc2VhcmNoOiAnJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG92ZXJmbG93OiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5vdmVyZmxvdyxcbiAgICAgICAgICAgIHNlYXJjaDogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0RGVmYXVsdFZpZXcnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGRlZmF1bHRWaWV3SWQ6IGFjdGlvbi5pZCxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0RW5hYmxlZCc6XG4gICAgICAgIHJldHVybiBzZXRFbmFibGVkKHN0YXRlLCBhY3Rpb24uaWQsIGFjdGlvbi5lbmFibGVkKTtcblxuICAgICAgY2FzZSAnc2V0Q29udGFpbmVyV2lkdGgnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGNvbnRhaW5lcldpZHRoOiBhY3Rpb24ud2lkdGgsXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ3NldE92ZXJmbG93UGlja2VyT3Blbic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgcGlja2VyT3BlbjogYWN0aW9uLm9wZW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0T3ZlcmZsb3dTZWFyY2hRdWVyeSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgb3ZlcmZsb3c6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLm92ZXJmbG93LFxuICAgICAgICAgICAgc2VhcmNoOiBhY3Rpb24ucXVlcnksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0QWxsVmlld3NTZWFyY2hRdWVyeSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgYWxsOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5hbGwsXG4gICAgICAgICAgICBzZWFyY2g6IGFjdGlvbi5xdWVyeSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICd1cGRhdGVWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICB2aWV3czogc3RhdGUudmlld3MubWFwKHZpZXcgPT5cbiAgICAgICAgICAgIHZpZXcuaWQgPT09IGFjdGlvbi52aWV3LmlkID8gYWN0aW9uLnZpZXcgOiB2aWV3LFxuICAgICAgICAgICksXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ2RlbGV0ZVZpZXcnOlxuICAgICAgICByZXR1cm4gZGVsZXRlVmlldyhzdGF0ZSwgYWN0aW9uLnZpZXcuaWQpO1xuXG4gICAgICBjYXNlICdkdXBsaWNhdGVWaWV3Jzoge1xuICAgICAgICBjb25zdCBuZXdWaWV3ID0gYXdhaXQgZHVwbGljYXRlKGFjdGlvbi52aWV3KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICB2aWV3czogd2l0aER1cGxpY2F0ZVZpZXcoc3RhdGUudmlld3MsIGFjdGlvbi52aWV3LCBuZXdWaWV3KSxcbiAgICAgICAgICBlZGl0aW5nVmlld0NvbnRleHQ6IHsgaWQ6IG5ld1ZpZXcuaWQsIGF1dG9SZW5hbWU6IHRydWUgfSxcbiAgICAgICAgICBhY3RpdmVWaWV3SWQ6IG5ld1ZpZXcuaWQsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ2NvcHlMaW5rVG9WaWV3JzpcbiAgICAgICAgYXdhaXQgY29weUxpbmsoYWN0aW9uLnZpZXcpO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNhc2UgJ3ZpZXdPcmRlckNoYW5nZSc6XG4gICAgICAgIHJldHVybiB2aWV3T3JkZXJDaGFuZ2UoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgYWN0aW9uLnByZXZpb3VzRW5hYmxlZEluZGV4LFxuICAgICAgICAgIGFjdGlvbi5uZXdFbmFibGVkSW5kZXgsXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgJ3NldEFsbFZpZXdzVG9nZ2xlJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBhbGw6IHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmFsbCxcbiAgICAgICAgICAgIHByaXZhdGVPcGVuOlxuICAgICAgICAgICAgICBhY3Rpb24ucGVybWlzc2lvbiA9PT0gJ3ByaXZhdGUnXG4gICAgICAgICAgICAgICAgPyBhY3Rpb24ub3BlblxuICAgICAgICAgICAgICAgIDogc3RhdGUuYWxsLnByaXZhdGVPcGVuLFxuICAgICAgICAgICAgc2hhcmVkT3BlbjpcbiAgICAgICAgICAgICAgYWN0aW9uLnBlcm1pc3Npb24gPT09ICdzaGFyZWQnXG4gICAgICAgICAgICAgICAgPyBhY3Rpb24ub3BlblxuICAgICAgICAgICAgICAgIDogc3RhdGUuYWxsLnNoYXJlZE9wZW4sXG4gICAgICAgICAgICBwdWJsaWNPcGVuOlxuICAgICAgICAgICAgICBhY3Rpb24ucGVybWlzc2lvbiA9PT0gJ3B1YmxpYydcbiAgICAgICAgICAgICAgICA/IGFjdGlvbi5vcGVuXG4gICAgICAgICAgICAgICAgOiBzdGF0ZS5hbGwucHVibGljT3BlbixcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdzZXRFZGl0aW5nVmlldyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgZWRpdGluZ1ZpZXdDb250ZXh0OiBhY3Rpb24uY29udGV4dCxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnc2V0RGVsZXRpbmdWaWV3JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBkZWxldGluZ1ZpZXdJZDogYWN0aW9uLmlkLFxuICAgICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vL1xuICAvLyBVdGlsaXRpZXMgLy9cbiAgLy8vLy8vLy8vLy8vLy8vXG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFBlcm1pc3Npb25UaXRsZShwZXJtaXNzaW9uOiBWaWV3UGVybWlzc2lvbik6IHN0cmluZyB7XG4gICAgc3dpdGNoIChwZXJtaXNzaW9uKSB7XG4gICAgICBjYXNlICdwcml2YXRlJzpcbiAgICAgICAgcmV0dXJuICdQcml2YXRlJztcbiAgICAgIGNhc2UgJ3NoYXJlZCc6XG4gICAgICAgIHJldHVybiAnU2hhcmVkJztcbiAgICAgIGNhc2UgJ3B1YmxpYyc6XG4gICAgICAgIHJldHVybiAnUHVibGljJztcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0UGVybWlzc2lvbkRlc2NyaXB0aW9uKHBlcm1pc3Npb246IFZpZXdQZXJtaXNzaW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHBlcm1pc3Npb24pIHtcbiAgICAgIGNhc2UgJ3ByaXZhdGUnOlxuICAgICAgICByZXR1cm4gJ09ubHkgdmlzaWJsZSB0byB5b3UnO1xuICAgICAgY2FzZSAnc2hhcmVkJzpcbiAgICAgICAgcmV0dXJuICdPbmx5IHZpc2libGUgdG8gdGhvc2Ugd2l0aCBhY2Nlc3MnO1xuICAgICAgY2FzZSAncHVibGljJzpcbiAgICAgICAgcmV0dXJuICdWaXNpYmxlIHRvIGV2ZXJ5b25lJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,30 +1,28 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, Input, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "
|
|
5
|
-
import * as i3 from "../../../modal/
|
|
6
|
-
import * as i4 from "
|
|
7
|
-
import * as i5 from "../../../
|
|
4
|
+
import * as i2 from "../../../input/button/button.component";
|
|
5
|
+
import * as i3 from "../../../overlay/modal/dialog/dialog.component";
|
|
6
|
+
import * as i4 from "../edit-view/edit-view.component";
|
|
7
|
+
import * as i5 from "../../../overlay/callout/menu/menu.component";
|
|
8
|
+
import * as i6 from "../../../overlay/callout/menu/menu-divider/menu-divider.component";
|
|
9
|
+
import * as i7 from "../../../overlay/callout/menu/menu-item/menu-item.component";
|
|
8
10
|
export class ViewMenuComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.
|
|
11
|
-
this.renamingView = false;
|
|
11
|
+
constructor(el) {
|
|
12
|
+
this.el = el;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
|
-
ViewMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ViewMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
-
ViewMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ViewMenuComponent, selector: "riv-view-menu", inputs: { manager: "manager", view: "view" }, queries: [{ propertyName: "triggerTemplate", first: true, predicate: ["menuTrigger"], descendants: true }],
|
|
15
|
+
ViewMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ViewMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
ViewMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ViewMenuComponent, selector: "riv-view-menu", inputs: { manager: "manager", view: "view" }, queries: [{ propertyName: "triggerTemplate", first: true, predicate: ["menuTrigger"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"view\">\n <riv-menu\n #menu\n [preferredPosition]=\"'bottom-right'\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng-container *ngIf=\"triggerTemplate\">\n <ng-template #trigger>\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n [disabled]=\"view.system\"\n >\n {{ view.enabled ? 'Hide tab' : 'Show tab' }}\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEditingView',\n context: { id: view.id, autoRename: false }\n })\n \"\n [disabled]=\"view.system\"\n >\n Edit view\n </button>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEditingView',\n context: { id: view.id, autoRename: true }\n })\n \"\n [disabled]=\"view.system\"\n >\n Rename view\n </button>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'duplicateView', view })\"\n >\n Duplicate view\n </button>\n <button\n riv-menu-item\n [variant]=\"'danger'\"\n (click)=\"manager?.actions?.next({ type: 'setDeletingView', id: view.id })\"\n [disabled]=\"view.system\"\n >\n Delete view\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'copyLinkToView', view })\"\n >\n Copy link to view\n </button>\n </riv-menu>\n\n <ng-container *ngIf=\"manager?.state | async as state\">\n <riv-edit-view\n *ngIf=\"state.editingView\"\n [view]=\"state.editingView\"\n [autoSelectName]=\"state.editingViewContext?.autoRename ?? false\"\n [anchor]=\"el.nativeElement\"\n (save)=\"manager?.actions?.next({ type: 'updateView', view: $event })\"\n (delete)=\"manager?.actions?.next({ type: 'deleteView', view: $event })\"\n (close)=\"\n manager?.actions?.next({ type: 'setEditingView', context: null })\n \"\n ></riv-edit-view>\n </ng-container>\n\n <ng-container *ngIf=\"manager?.state | async as state\">\n <riv-dialog\n *ngIf=\"state.deletingView\"\n [title]=\"'Delete view'\"\n (close)=\"manager?.actions?.next({ type: 'setDeletingView', id: null })\"\n >\n <div class=\"delete-dialog\">\n <div class=\"delete-title\">\n Are you sure you want to delete the following view?\n </div>\n <p>{{ state.deletingView.title }}</p>\n </div>\n <footer class=\"delete-footer\">\n <button\n rivButton\n (click)=\"\n manager?.actions?.next({ type: 'setDeletingView', id: null })\n \"\n >\n Cancel\n </button>\n <button\n rivButton\n [variant]=\"'danger'\"\n (click)=\"\n manager?.actions?.next({\n type: 'deleteView',\n view: state.deletingView\n })\n \"\n >\n Delete view\n </button>\n </footer>\n </riv-dialog>\n </ng-container>\n</ng-container>\n", styles: [":host{display:inline-flex;justify-content:center;align-items:center}riv-menu{max-width:100%}.delete-dialog{padding:var(--size-xlarge);display:flex;flex-direction:column;gap:var(--size-large);width:calc(var(--base-grid-size) * 120);max-width:100%}.delete-title{font:var(--title-02)}.delete-footer{padding:var(--size-medium);display:flex;justify-content:space-between;gap:var(--size-medium)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "active"] }, { kind: "component", type: i3.DialogComponent, selector: "riv-dialog", inputs: ["title"], outputs: ["close"] }, { kind: "component", type: i4.EditViewComponent, selector: "riv-edit-view", inputs: ["anchor", "autoSelectName", "view"], outputs: ["save", "delete", "close"] }, { kind: "component", type: i5.MenuComponent, selector: "riv-menu", inputs: ["preferredPosition"] }, { kind: "component", type: i6.MenuDividerComponent, selector: "riv-menu-divider" }, { kind: "component", type: i7.MenuItemComponent, selector: "[riv-menu-item]", inputs: ["locked", "disabled", "variant"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
16
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ViewMenuComponent, decorators: [{
|
|
17
18
|
type: Component,
|
|
18
|
-
args: [{ selector: 'riv-view-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"view\">\n <riv-menu\n #menu\n [preferredPosition]=\"'bottom-right'\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng-container *ngIf=\"triggerTemplate\">\n <ng-template #trigger>\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n [disabled]=\"view.system\"\n >\n {{ view.enabled ? 'Hide tab' : 'Show tab' }}\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button
|
|
19
|
-
}], propDecorators: { manager: [{
|
|
19
|
+
args: [{ selector: 'riv-view-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"view\">\n <riv-menu\n #menu\n [preferredPosition]=\"'bottom-right'\"\n (click)=\"$event.stopPropagation()\"\n >\n <ng-container *ngIf=\"triggerTemplate\">\n <ng-template #trigger>\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEnabled',\n id: view.id,\n enabled: !view.enabled\n })\n \"\n [disabled]=\"view.system\"\n >\n {{ view.enabled ? 'Hide tab' : 'Show tab' }}\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEditingView',\n context: { id: view.id, autoRename: false }\n })\n \"\n [disabled]=\"view.system\"\n >\n Edit view\n </button>\n <button\n riv-menu-item\n (click)=\"\n manager?.actions?.next({\n type: 'setEditingView',\n context: { id: view.id, autoRename: true }\n })\n \"\n [disabled]=\"view.system\"\n >\n Rename view\n </button>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'duplicateView', view })\"\n >\n Duplicate view\n </button>\n <button\n riv-menu-item\n [variant]=\"'danger'\"\n (click)=\"manager?.actions?.next({ type: 'setDeletingView', id: view.id })\"\n [disabled]=\"view.system\"\n >\n Delete view\n </button>\n <riv-menu-divider></riv-menu-divider>\n <button\n riv-menu-item\n (click)=\"manager?.actions?.next({ type: 'copyLinkToView', view })\"\n >\n Copy link to view\n </button>\n </riv-menu>\n\n <ng-container *ngIf=\"manager?.state | async as state\">\n <riv-edit-view\n *ngIf=\"state.editingView\"\n [view]=\"state.editingView\"\n [autoSelectName]=\"state.editingViewContext?.autoRename ?? false\"\n [anchor]=\"el.nativeElement\"\n (save)=\"manager?.actions?.next({ type: 'updateView', view: $event })\"\n (delete)=\"manager?.actions?.next({ type: 'deleteView', view: $event })\"\n (close)=\"\n manager?.actions?.next({ type: 'setEditingView', context: null })\n \"\n ></riv-edit-view>\n </ng-container>\n\n <ng-container *ngIf=\"manager?.state | async as state\">\n <riv-dialog\n *ngIf=\"state.deletingView\"\n [title]=\"'Delete view'\"\n (close)=\"manager?.actions?.next({ type: 'setDeletingView', id: null })\"\n >\n <div class=\"delete-dialog\">\n <div class=\"delete-title\">\n Are you sure you want to delete the following view?\n </div>\n <p>{{ state.deletingView.title }}</p>\n </div>\n <footer class=\"delete-footer\">\n <button\n rivButton\n (click)=\"\n manager?.actions?.next({ type: 'setDeletingView', id: null })\n \"\n >\n Cancel\n </button>\n <button\n rivButton\n [variant]=\"'danger'\"\n (click)=\"\n manager?.actions?.next({\n type: 'deleteView',\n view: state.deletingView\n })\n \"\n >\n Delete view\n </button>\n </footer>\n </riv-dialog>\n </ng-container>\n</ng-container>\n", styles: [":host{display:inline-flex;justify-content:center;align-items:center}riv-menu{max-width:100%}.delete-dialog{padding:var(--size-xlarge);display:flex;flex-direction:column;gap:var(--size-large);width:calc(var(--base-grid-size) * 120);max-width:100%}.delete-title{font:var(--title-02)}.delete-footer{padding:var(--size-medium);display:flex;justify-content:space-between;gap:var(--size-medium)}\n"] }]
|
|
20
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { manager: [{
|
|
20
21
|
type: Input
|
|
21
22
|
}], view: [{
|
|
22
23
|
type: Input
|
|
23
|
-
}], menuElement: [{
|
|
24
|
-
type: ViewChild,
|
|
25
|
-
args: ['menu', { read: ElementRef }]
|
|
26
24
|
}], triggerTemplate: [{
|
|
27
25
|
type: ContentChild,
|
|
28
26
|
args: ['menuTrigger']
|
|
29
27
|
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL25hdmlnYXRpb24vdmlld3Mvdmlldy1tZW51L3ZpZXctbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9uYXZpZ2F0aW9uL3ZpZXdzL3ZpZXctbWVudS92aWV3LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBU3ZCLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBcUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7SUFBRyxDQUFDOzs4R0FENUIsaUJBQWlCO2tHQUFqQixpQkFBaUIsK01DaEI5QixzM0dBMkhBOzJGRDNHYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNO2lHQU0vQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUml2Vmlld3MgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi12aWV3LW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlldy1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy1tZW51LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdNZW51Q29tcG9uZW50PFYgZXh0ZW5kcyBSaXZWaWV3cy5WaWV3PiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIEBJbnB1dCgpXG4gIG1hbmFnZXI/OiBSaXZWaWV3cy5NYW5hZ2VyPFY+O1xuXG4gIEBJbnB1dCgpXG4gIHZpZXc/OiBSaXZWaWV3cy5GdWxsVmlldzxWPjtcblxuICBAQ29udGVudENoaWxkKCdtZW51VHJpZ2dlcicpXG4gIHRyaWdnZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHZvaWQ+O1xufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdcIj5cbiAgPHJpdi1tZW51XG4gICAgI21lbnVcbiAgICBbcHJlZmVycmVkUG9zaXRpb25dPVwiJ2JvdHRvbS1yaWdodCdcIlxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyaWdnZXJUZW1wbGF0ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlICN0cmlnZ2VyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyaWdnZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8YnV0dG9uXG4gICAgICByaXYtbWVudS1pdGVtXG4gICAgICAoY2xpY2spPVwiXG4gICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgIHR5cGU6ICdzZXRFbmFibGVkJyxcbiAgICAgICAgICBpZDogdmlldy5pZCxcbiAgICAgICAgICBlbmFibGVkOiAhdmlldy5lbmFibGVkXG4gICAgICAgIH0pXG4gICAgICBcIlxuICAgICAgW2Rpc2FibGVkXT1cInZpZXcuc3lzdGVtXCJcbiAgICA+XG4gICAgICB7eyB2aWV3LmVuYWJsZWQgPyAnSGlkZSB0YWInIDogJ1Nob3cgdGFiJyB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxyaXYtbWVudS1kaXZpZGVyPjwvcml2LW1lbnUtZGl2aWRlcj5cbiAgICA8YnV0dG9uXG4gICAgICByaXYtbWVudS1pdGVtXG4gICAgICAoY2xpY2spPVwiXG4gICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgIHR5cGU6ICdzZXRFZGl0aW5nVmlldycsXG4gICAgICAgICAgY29udGV4dDogeyBpZDogdmlldy5pZCwgYXV0b1JlbmFtZTogZmFsc2UgfVxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCJ2aWV3LnN5c3RlbVwiXG4gICAgPlxuICAgICAgRWRpdCB2aWV3XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgcml2LW1lbnUtaXRlbVxuICAgICAgKGNsaWNrKT1cIlxuICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICB0eXBlOiAnc2V0RWRpdGluZ1ZpZXcnLFxuICAgICAgICAgIGNvbnRleHQ6IHsgaWQ6IHZpZXcuaWQsIGF1dG9SZW5hbWU6IHRydWUgfVxuICAgICAgICB9KVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCJ2aWV3LnN5c3RlbVwiXG4gICAgPlxuICAgICAgUmVuYW1lIHZpZXdcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICByaXYtbWVudS1pdGVtXG4gICAgICAoY2xpY2spPVwibWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICdkdXBsaWNhdGVWaWV3JywgdmlldyB9KVwiXG4gICAgPlxuICAgICAgRHVwbGljYXRlIHZpZXdcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICByaXYtbWVudS1pdGVtXG4gICAgICBbdmFyaWFudF09XCInZGFuZ2VyJ1wiXG4gICAgICAoY2xpY2spPVwibWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICdzZXREZWxldGluZ1ZpZXcnLCBpZDogdmlldy5pZCB9KVwiXG4gICAgICBbZGlzYWJsZWRdPVwidmlldy5zeXN0ZW1cIlxuICAgID5cbiAgICAgIERlbGV0ZSB2aWV3XG4gICAgPC9idXR0b24+XG4gICAgPHJpdi1tZW51LWRpdmlkZXI+PC9yaXYtbWVudS1kaXZpZGVyPlxuICAgIDxidXR0b25cbiAgICAgIHJpdi1tZW51LWl0ZW1cbiAgICAgIChjbGljayk9XCJtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ2NvcHlMaW5rVG9WaWV3JywgdmlldyB9KVwiXG4gICAgPlxuICAgICAgQ29weSBsaW5rIHRvIHZpZXdcbiAgICA8L2J1dHRvbj5cbiAgPC9yaXYtbWVudT5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibWFuYWdlcj8uc3RhdGUgfCBhc3luYyBhcyBzdGF0ZVwiPlxuICAgIDxyaXYtZWRpdC12aWV3XG4gICAgICAqbmdJZj1cInN0YXRlLmVkaXRpbmdWaWV3XCJcbiAgICAgIFt2aWV3XT1cInN0YXRlLmVkaXRpbmdWaWV3XCJcbiAgICAgIFthdXRvU2VsZWN0TmFtZV09XCJzdGF0ZS5lZGl0aW5nVmlld0NvbnRleHQ/LmF1dG9SZW5hbWUgPz8gZmFsc2VcIlxuICAgICAgW2FuY2hvcl09XCJlbC5uYXRpdmVFbGVtZW50XCJcbiAgICAgIChzYXZlKT1cIm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAndXBkYXRlVmlldycsIHZpZXc6ICRldmVudCB9KVwiXG4gICAgICAoZGVsZXRlKT1cIm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnZGVsZXRlVmlldycsIHZpZXc6ICRldmVudCB9KVwiXG4gICAgICAoY2xvc2UpPVwiXG4gICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnc2V0RWRpdGluZ1ZpZXcnLCBjb250ZXh0OiBudWxsIH0pXG4gICAgICBcIlxuICAgID48L3Jpdi1lZGl0LXZpZXc+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtYW5hZ2VyPy5zdGF0ZSB8IGFzeW5jIGFzIHN0YXRlXCI+XG4gICAgPHJpdi1kaWFsb2dcbiAgICAgICpuZ0lmPVwic3RhdGUuZGVsZXRpbmdWaWV3XCJcbiAgICAgIFt0aXRsZV09XCInRGVsZXRlIHZpZXcnXCJcbiAgICAgIChjbG9zZSk9XCJtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ3NldERlbGV0aW5nVmlldycsIGlkOiBudWxsIH0pXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLWRpYWxvZ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLXRpdGxlXCI+XG4gICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9sbG93aW5nIHZpZXc/XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cD57eyBzdGF0ZS5kZWxldGluZ1ZpZXcudGl0bGUgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb290ZXIgY2xhc3M9XCJkZWxldGUtZm9vdGVyXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ3NldERlbGV0aW5nVmlldycsIGlkOiBudWxsIH0pXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIENhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHJpdkJ1dHRvblxuICAgICAgICAgIFt2YXJpYW50XT1cIidkYW5nZXInXCJcbiAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgdHlwZTogJ2RlbGV0ZVZpZXcnLFxuICAgICAgICAgICAgICB2aWV3OiBzdGF0ZS5kZWxldGluZ1ZpZXdcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIERlbGV0ZSB2aWV3XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9yaXYtZGlhbG9nPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|