@skyux/split-view 11.15.1 → 11.16.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/documentation.json +349 -1042
- package/esm2022/lib/modules/split-view/split-view-drawer.component.mjs +10 -38
- package/esm2022/lib/modules/split-view/split-view-workspace-content.component.mjs +9 -11
- package/esm2022/lib/modules/split-view/split-view-workspace-footer.component.mjs +5 -3
- package/esm2022/lib/modules/split-view/split-view-workspace-header.component.mjs +4 -3
- package/esm2022/lib/modules/split-view/split-view-workspace.component.mjs +14 -80
- package/esm2022/lib/modules/split-view/split-view.component.mjs +6 -13
- package/esm2022/lib/modules/split-view/split-view.module.mjs +8 -21
- package/esm2022/lib/modules/split-view/split-view.service.mjs +12 -22
- package/fesm2022/skyux-split-view.mjs +53 -244
- package/fesm2022/skyux-split-view.mjs.map +1 -1
- package/lib/modules/split-view/split-view-drawer.component.d.ts +4 -6
- package/lib/modules/split-view/split-view-workspace-content.component.d.ts +2 -2
- package/lib/modules/split-view/split-view-workspace-footer.component.d.ts +2 -1
- package/lib/modules/split-view/split-view-workspace-header.component.d.ts +1 -1
- package/lib/modules/split-view/split-view-workspace.component.d.ts +3 -15
- package/lib/modules/split-view/split-view.component.d.ts +2 -1
- package/lib/modules/split-view/split-view.module.d.ts +1 -5
- package/lib/modules/split-view/split-view.service.d.ts +3 -7
- package/package.json +6 -6
- package/esm2022/lib/modules/split-view/split-view-media-query.service.mjs +0 -76
- package/lib/modules/split-view/split-view-media-query.service.d.ts +0 -18
|
@@ -1,13 +1,12 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
1
2
|
import { ChangeDetectionStrategy, Component, HostListener, Input, } from '@angular/core';
|
|
2
|
-
import { SkyMediaBreakpoints, SkyMediaQueryService, } from '@skyux/core';
|
|
3
3
|
import { Subject, fromEvent } from 'rxjs';
|
|
4
4
|
import { takeUntil, takeWhile } from 'rxjs/operators';
|
|
5
|
-
import {
|
|
5
|
+
import { SkySplitViewResourcesModule } from '../shared/sky-split-view-resources.module';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@skyux/core";
|
|
8
|
-
import * as i2 from "./split-view
|
|
9
|
-
import * as i3 from "
|
|
10
|
-
import * as i4 from "@skyux/i18n";
|
|
8
|
+
import * as i2 from "./split-view.service";
|
|
9
|
+
import * as i3 from "@skyux/i18n";
|
|
11
10
|
let skySplitViewNextId = 0;
|
|
12
11
|
/**
|
|
13
12
|
* Specifies the content to display in the split view's list panel.
|
|
@@ -20,8 +19,6 @@ export class SkySplitViewDrawerComponent {
|
|
|
20
19
|
set width(value) {
|
|
21
20
|
if (value) {
|
|
22
21
|
this.#_width = Number(value);
|
|
23
|
-
this.#updateBreakpoint();
|
|
24
|
-
this.#splitViewSvc.updateDrawerWidth(this.#_width);
|
|
25
22
|
this.#changeDetectorRef.markForCheck();
|
|
26
23
|
}
|
|
27
24
|
}
|
|
@@ -46,12 +43,10 @@ export class SkySplitViewDrawerComponent {
|
|
|
46
43
|
#xCoord;
|
|
47
44
|
#changeDetectorRef;
|
|
48
45
|
#coreAdapterService;
|
|
49
|
-
#elementRef;
|
|
50
|
-
#splitViewMediaQuerySvc;
|
|
51
46
|
#splitViewSvc;
|
|
52
47
|
#windowRef;
|
|
53
48
|
#_width;
|
|
54
|
-
constructor(changeDetectorRef, coreAdapterService,
|
|
49
|
+
constructor(changeDetectorRef, coreAdapterService, splitViewSvc, windowRef) {
|
|
55
50
|
this.isMobile = false;
|
|
56
51
|
this.widthDefault = 320;
|
|
57
52
|
// Max needs to start as something to allow input range to work.
|
|
@@ -64,8 +59,6 @@ export class SkySplitViewDrawerComponent {
|
|
|
64
59
|
this.#xCoord = 0;
|
|
65
60
|
this.#changeDetectorRef = changeDetectorRef;
|
|
66
61
|
this.#coreAdapterService = coreAdapterService;
|
|
67
|
-
this.#elementRef = elementRef;
|
|
68
|
-
this.#splitViewMediaQuerySvc = splitViewMediaQuerySvc;
|
|
69
62
|
this.#splitViewSvc = splitViewSvc;
|
|
70
63
|
this.#windowRef = windowRef;
|
|
71
64
|
this.splitViewDrawerId = `sky-split-view-drawer-${++skySplitViewNextId}`;
|
|
@@ -79,9 +72,6 @@ export class SkySplitViewDrawerComponent {
|
|
|
79
72
|
this.#changeDetectorRef.markForCheck();
|
|
80
73
|
});
|
|
81
74
|
}
|
|
82
|
-
ngAfterViewInit() {
|
|
83
|
-
this.#updateBreakpoint();
|
|
84
|
-
}
|
|
85
75
|
ngOnDestroy() {
|
|
86
76
|
this.#ngUnsubscribe.next();
|
|
87
77
|
this.#ngUnsubscribe.complete();
|
|
@@ -89,9 +79,6 @@ export class SkySplitViewDrawerComponent {
|
|
|
89
79
|
onResizeHandleMouseDown(event) {
|
|
90
80
|
event.preventDefault();
|
|
91
81
|
event.stopPropagation();
|
|
92
|
-
if (this.#splitViewMediaQuerySvc.isWidthWithinBreakpoint(window.innerWidth, SkyMediaBreakpoints.xs)) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
82
|
this.#setMaxWidth();
|
|
96
83
|
this.#isDragging = true;
|
|
97
84
|
this.#xCoord = event.clientX;
|
|
@@ -145,32 +132,17 @@ export class SkySplitViewDrawerComponent {
|
|
|
145
132
|
this.width = window.innerWidth - this.widthTolerance;
|
|
146
133
|
}
|
|
147
134
|
}
|
|
148
|
-
#updateBreakpoint() {
|
|
149
|
-
this.#splitViewMediaQuerySvc.setBreakpointForWidth(this.width);
|
|
150
|
-
const newDrawerBreakpoint = this.#splitViewMediaQuerySvc.current;
|
|
151
|
-
this.#coreAdapterService.setResponsiveContainerClass(this.#elementRef, newDrawerBreakpoint);
|
|
152
|
-
}
|
|
153
135
|
#setMaxWidth() {
|
|
154
136
|
const splitView = this.#splitViewSvc.splitViewElementRef?.nativeElement.querySelector('.sky-split-view');
|
|
155
137
|
this.widthMax = splitView.clientWidth - this.widthTolerance;
|
|
156
138
|
}
|
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token:
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkySplitViewDrawerComponent, selector: "sky-split-view-drawer", inputs: { ariaLabel: "ariaLabel", width: "width" }, host: { listeners: { "window:resize": "onWindowResize($event)" } },
|
|
159
|
-
{
|
|
160
|
-
provide: SkyMediaQueryService,
|
|
161
|
-
useExisting: SkySplitViewMediaQueryService,
|
|
162
|
-
},
|
|
163
|
-
], ngImport: i0, template: "<div\n class=\"sky-split-view-drawer\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"splitViewDrawerId\"\n [style.width.px]=\"width\"\n>\n <ng-content />\n @if (!isMobile && width !== undefined) {\n <input\n aria-orientation=\"vertical\"\n class=\"sky-split-view-resize-handle\"\n step=\"10\"\n type=\"range\"\n [attr.aria-controls]=\"splitViewDrawerId\"\n [attr.aria-label]=\"'skyux_split_view_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"widthMax\"\n [attr.aria-valuemin]=\"widthMin\"\n [attr.aria-valuenow]=\"width\"\n [attr.aria-valuetext]=\"width + ' pixels wide'\"\n [max]=\"widthMax\"\n [min]=\"widthMin\"\n [style.left.px]=\"width - 7\"\n [value]=\"width\"\n (change)=\"onResizeHandleChange($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n />\n }\n</div>\n", styles: [".sky-split-view-drawer{background:#fff;overflow:auto;height:100%;width:100%}@media (min-width: 768px){:host .sky-split-view-drawer{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer,:host-context(.sky-responsive-container-md) .sky-split-view-drawer,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer{border-right:1px solid #cdcfd2}.sky-split-view-resize-handle{-webkit-appearance:none;-moz-appearance:none;height:100%;width:14px;position:absolute;z-index:999;cursor:ew-resize;padding:0;border:0;background:transparent;display:block;top:0;bottom:0}.sky-split-view-resize-handle::-moz-range-thumb,.sky-split-view-resize-handle::-moz-range-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-ms-thumb,.sky-split-view-resize-handle::-ms-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}:host-context(.sky-theme-modern) .sky-split-view-drawer{background:transparent}:host-context(.sky-theme-modern) .sky-split-view-resize-handle{transition:box-shadow .15s}:host-context(.sky-theme-modern) .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}.sky-theme-modern .sky-split-view-drawer{background:transparent}.sky-theme-modern .sky-split-view-resize-handle{transition:box-shadow .15s}.sky-theme-modern .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}\n"], dependencies: [{ kind: "pipe", type: i4.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
139
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewDrawerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i2.SkySplitViewService }, { token: i1.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
140
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkySplitViewDrawerComponent, isStandalone: true, selector: "sky-split-view-drawer", inputs: { ariaLabel: "ariaLabel", width: "width" }, host: { listeners: { "window:resize": "onWindowResize($event)" } }, ngImport: i0, template: "<div\n class=\"sky-split-view-drawer\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"splitViewDrawerId\"\n [style.width.px]=\"width\"\n>\n <ng-content />\n @if (!isMobile && width !== undefined) {\n <input\n aria-orientation=\"vertical\"\n class=\"sky-split-view-resize-handle\"\n step=\"10\"\n type=\"range\"\n [attr.aria-controls]=\"splitViewDrawerId\"\n [attr.aria-label]=\"'skyux_split_view_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"widthMax\"\n [attr.aria-valuemin]=\"widthMin\"\n [attr.aria-valuenow]=\"width\"\n [attr.aria-valuetext]=\"width + ' pixels wide'\"\n [max]=\"widthMax\"\n [min]=\"widthMin\"\n [style.left.px]=\"width - 7\"\n [value]=\"width\"\n (change)=\"onResizeHandleChange($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n />\n }\n</div>\n", styles: [".sky-split-view-drawer{background:#fff;overflow:auto;height:100%;width:100%}@media (min-width: 768px){:host .sky-split-view-drawer{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer,:host-context(.sky-responsive-container-md) .sky-split-view-drawer,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer{border-right:1px solid #cdcfd2}.sky-split-view-resize-handle{-webkit-appearance:none;-moz-appearance:none;height:100%;width:14px;position:absolute;z-index:999;cursor:ew-resize;padding:0;border:0;background:transparent;display:block;top:0;bottom:0}.sky-split-view-resize-handle::-moz-range-thumb,.sky-split-view-resize-handle::-moz-range-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-ms-thumb,.sky-split-view-resize-handle::-ms-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}:host-context(.sky-theme-modern) .sky-split-view-drawer{background:transparent}:host-context(.sky-theme-modern) .sky-split-view-resize-handle{transition:box-shadow .15s}:host-context(.sky-theme-modern) .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}.sky-theme-modern .sky-split-view-drawer{background:transparent}.sky-theme-modern .sky-split-view-resize-handle{transition:box-shadow .15s}.sky-theme-modern .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SkySplitViewResourcesModule }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
164
141
|
}
|
|
165
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewDrawerComponent, decorators: [{
|
|
166
143
|
type: Component,
|
|
167
|
-
args: [{ selector: 'sky-split-view-drawer',
|
|
168
|
-
|
|
169
|
-
provide: SkyMediaQueryService,
|
|
170
|
-
useExisting: SkySplitViewMediaQueryService,
|
|
171
|
-
},
|
|
172
|
-
], template: "<div\n class=\"sky-split-view-drawer\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"splitViewDrawerId\"\n [style.width.px]=\"width\"\n>\n <ng-content />\n @if (!isMobile && width !== undefined) {\n <input\n aria-orientation=\"vertical\"\n class=\"sky-split-view-resize-handle\"\n step=\"10\"\n type=\"range\"\n [attr.aria-controls]=\"splitViewDrawerId\"\n [attr.aria-label]=\"'skyux_split_view_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"widthMax\"\n [attr.aria-valuemin]=\"widthMin\"\n [attr.aria-valuenow]=\"width\"\n [attr.aria-valuetext]=\"width + ' pixels wide'\"\n [max]=\"widthMax\"\n [min]=\"widthMin\"\n [style.left.px]=\"width - 7\"\n [value]=\"width\"\n (change)=\"onResizeHandleChange($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n />\n }\n</div>\n", styles: [".sky-split-view-drawer{background:#fff;overflow:auto;height:100%;width:100%}@media (min-width: 768px){:host .sky-split-view-drawer{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer,:host-context(.sky-responsive-container-md) .sky-split-view-drawer,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer{border-right:1px solid #cdcfd2}.sky-split-view-resize-handle{-webkit-appearance:none;-moz-appearance:none;height:100%;width:14px;position:absolute;z-index:999;cursor:ew-resize;padding:0;border:0;background:transparent;display:block;top:0;bottom:0}.sky-split-view-resize-handle::-moz-range-thumb,.sky-split-view-resize-handle::-moz-range-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-ms-thumb,.sky-split-view-resize-handle::-ms-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}:host-context(.sky-theme-modern) .sky-split-view-drawer{background:transparent}:host-context(.sky-theme-modern) .sky-split-view-resize-handle{transition:box-shadow .15s}:host-context(.sky-theme-modern) .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}.sky-theme-modern .sky-split-view-drawer{background:transparent}.sky-theme-modern .sky-split-view-resize-handle{transition:box-shadow .15s}.sky-theme-modern .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}\n"] }]
|
|
173
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: i2.SkySplitViewMediaQueryService }, { type: i3.SkySplitViewService }, { type: i1.SkyAppWindowRef }], propDecorators: { ariaLabel: [{
|
|
144
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, SkySplitViewResourcesModule], selector: 'sky-split-view-drawer', standalone: true, template: "<div\n class=\"sky-split-view-drawer\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n [id]=\"splitViewDrawerId\"\n [style.width.px]=\"width\"\n>\n <ng-content />\n @if (!isMobile && width !== undefined) {\n <input\n aria-orientation=\"vertical\"\n class=\"sky-split-view-resize-handle\"\n step=\"10\"\n type=\"range\"\n [attr.aria-controls]=\"splitViewDrawerId\"\n [attr.aria-label]=\"'skyux_split_view_resize_handle' | skyLibResources\"\n [attr.aria-valuemax]=\"widthMax\"\n [attr.aria-valuemin]=\"widthMin\"\n [attr.aria-valuenow]=\"width\"\n [attr.aria-valuetext]=\"width + ' pixels wide'\"\n [max]=\"widthMax\"\n [min]=\"widthMin\"\n [style.left.px]=\"width - 7\"\n [value]=\"width\"\n (change)=\"onResizeHandleChange($event)\"\n (mousedown)=\"onResizeHandleMouseDown($event)\"\n />\n }\n</div>\n", styles: [".sky-split-view-drawer{background:#fff;overflow:auto;height:100%;width:100%}@media (min-width: 768px){:host .sky-split-view-drawer{border-right:1px solid #cdcfd2}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer,:host-context(.sky-responsive-container-md) .sky-split-view-drawer,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer{border-right:1px solid #cdcfd2}.sky-split-view-resize-handle{-webkit-appearance:none;-moz-appearance:none;height:100%;width:14px;position:absolute;z-index:999;cursor:ew-resize;padding:0;border:0;background:transparent;display:block;top:0;bottom:0}.sky-split-view-resize-handle::-moz-range-thumb,.sky-split-view-resize-handle::-moz-range-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-ms-thumb,.sky-split-view-resize-handle::-ms-track{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}.sky-split-view-resize-handle::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;width:0;height:0;border-radius:0;border:0 none;background:none;display:none}:host-context(.sky-theme-modern) .sky-split-view-drawer{background:transparent}:host-context(.sky-theme-modern) .sky-split-view-resize-handle{transition:box-shadow .15s}:host-context(.sky-theme-modern) .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}.sky-theme-modern .sky-split-view-drawer{background:transparent}.sky-theme-modern .sky-split-view-resize-handle{transition:box-shadow .15s}.sky-theme-modern .sky-split-view-resize-handle:focus{border:solid 2px #1870B8;box-shadow:0 1px 8px #0000004d;outline:none}\n"] }]
|
|
145
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i2.SkySplitViewService }, { type: i1.SkyAppWindowRef }], propDecorators: { ariaLabel: [{
|
|
174
146
|
type: Input
|
|
175
147
|
}], width: [{
|
|
176
148
|
type: Input
|
|
@@ -178,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
178
150
|
type: HostListener,
|
|
179
151
|
args: ['window:resize', ['$event']]
|
|
180
152
|
}] } });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLG9CQUFvQixHQUNyQixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFHakYsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFM0I7O0dBRUc7QUFhSCxNQUFNLE9BQU8sMkJBQTJCO0lBV3RDOzs7T0FHRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRCxJQUFJ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SUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN2RCxDQUFDO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywyQkFBMkIsQ0FDbEQsSUFBSSxDQUFDLFdBQVcsRUFDaEIsbUJBQW1CLENBQ3BCLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FDakUsaUJBQWlCLENBQ2xCLENBQUM7UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM5RCxDQUFDOzhHQW5OVSwyQkFBMkI7a0dBQTNCLDJCQUEyQix3S0FQM0I7WUFDVDtnQkFDRSxPQUFPLEVBQUUsb0JBQW9CO2dCQUM3QixXQUFXLEVBQUUsNkJBQTZCO2FBQzNDO1NBQ0YsMEJDdkNILHk1QkE4QkE7OzJGRFdhLDJCQUEyQjtrQkFadkMsU0FBUzsrQkFDRSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsV0FBVyxFQUFFLDZCQUE2Qjt5QkFDM0M7cUJBQ0Y7K1BBV00sU0FBUztzQkFEZixLQUFLO2dCQVFLLEtBQUs7c0JBRGYsS0FBSztnQkF3S0MsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5QXBwV2luZG93UmVmLFxuICBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gIFNreU1lZGlhQnJlYWtwb2ludHMsXG4gIFNreU1lZGlhUXVlcnlTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVNwbGl0Vmlld01lZGlhUXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi9zcGxpdC12aWV3LW1lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3U2VydmljZSB9IGZyb20gJy4vc3BsaXQtdmlldy5zZXJ2aWNlJztcblxubGV0IHNreVNwbGl0Vmlld05leHRJZCA9IDA7XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBjb250ZW50IHRvIGRpc3BsYXkgaW4gdGhlIHNwbGl0IHZpZXcncyBsaXN0IHBhbmVsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktc3BsaXQtdmlldy1kcmF3ZXInLFxuICB0ZW1wbGF0ZVVybDogJ3NwbGl0LXZpZXctZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3NwbGl0LXZpZXctZHJhd2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBTa3lTcGxpdFZpZXdNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTcGxpdFZpZXdEcmF3ZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogVGhlIEFSSUEgbGFiZWwgZm9yIHRoZSBsaXN0IHBhbmVsLiBUaGlzIHNldHMgdGhlIHBhbmVsJ3MgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSB0byBwcm92aWRlIGEgdGV4dCBlcXVpdmFsZW50IGZvciBzY3JlZW4gcmVhZGVyc1xuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYGFyaWEtbGFiZWxgIGF0dHJpYnV0ZSwgc2VlIHRoZSBbV0FJLUFSSUEgZGVmaW5pdGlvbl0oaHR0cHM6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhLyNhcmlhLWxhYmVsKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgbGlzdCBwYW5lbCdzIHdpZHRoIGluIHBpeGVscy5cbiAgICogQGRlZmF1bHQgMzIwXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHdpZHRoKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI193aWR0aCA9IE51bWJlcih2YWx1ZSk7XG4gICAgICB0aGlzLiN1cGRhdGVCcmVha3BvaW50KCk7XG4gICAgICB0aGlzLiNzcGxpdFZpZXdTdmMudXBkYXRlRHJhd2VyV2lkdGgodGhpcy4jX3dpZHRoKTtcbiAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgd2lkdGgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBUT0RPOiBMb2dpYyBpbiBhIGdldHRlciBpcyBhIFNLWSBVWCBhbnRpLXBhdHRlcm4sIGJ1dCBmaXhpbmcgdGhpcyB3b3VsZFxuICAgIC8vIHJlcXVpcmUgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgcmVmYWN0b3JpbmcuXG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuI193aWR0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy4jX3dpZHRoID4gdGhpcy53aWR0aE1heCkge1xuICAgICAgICByZXR1cm4gdGhpcy53aWR0aE1heDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy4jX3dpZHRoIDwgdGhpcy53aWR0aE1pbikge1xuICAgICAgICByZXR1cm4gdGhpcy53aWR0aE1pbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jX3dpZHRoIHx8IHRoaXMud2lkdGhEZWZhdWx0O1xuICB9XG5cbiAgcHVibGljIGlzTW9iaWxlID0gZmFsc2U7XG5cbiAgcHVibGljIHNwbGl0Vmlld0RyYXdlcklkOiBzdHJpbmc7XG5cbiAgcHVibGljIHdpZHRoRGVmYXVsdCA9IDMyMDtcblxuICAvLyBNYXggbmVlZHMgdG8gc3RhcnQgYXMgc29tZXRoaW5nIHRvIGFsbG93IGlucHV0IHJhbmdlIHRvIHdvcmsuXG4gIC8vIFRoaXMgdmFsdWUgaXMgdXBkYXRlZCBhcyBzb29uIGFzIHRoZSB1c2VyIHRha2VzIGFjdGlvbi5cbiAgcHVibGljIHdpZHRoTWF4ID0gOTk5OTtcblxuICBwdWJsaWMgd2lkdGhNaW4gPSAxMDA7XG5cbiAgcHVibGljIHdpZHRoVG9sZXJhbmNlID0gMTAwO1xuXG4gICNpc0RyYWdnaW5nID0gZmFsc2U7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI3hDb29yZCA9IDA7XG4gICNjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gICNzcGxpdFZpZXdNZWRpYVF1ZXJ5U3ZjOiBTa3lTcGxpdFZpZXdNZWRpYVF1ZXJ5U2VydmljZTtcbiAgI3NwbGl0Vmlld1N2YzogU2t5U3BsaXRWaWV3U2VydmljZTtcbiAgI3dpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmO1xuXG4gICNfd2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBzcGxpdFZpZXdNZWRpYVF1ZXJ5U3ZjOiBTa3lTcGxpdFZpZXdNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICBzcGxpdFZpZXdTdmM6IFNreVNwbGl0Vmlld1NlcnZpY2UsXG4gICAgd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWYsXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmID0gY2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlID0gY29yZUFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI2VsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICAgIHRoaXMuI3NwbGl0Vmlld01lZGlhUXVlcnlTdmMgPSBzcGxpdFZpZXdNZWRpYVF1ZXJ5U3ZjO1xuICAgIHRoaXMuI3NwbGl0Vmlld1N2YyA9IHNwbGl0Vmlld1N2YztcbiAgICB0aGlzLiN3aW5kb3dSZWYgPSB3aW5kb3dSZWY7XG5cbiAgICB0aGlzLnNwbGl0Vmlld0RyYXdlcklkID0gYHNreS1zcGxpdC12aWV3LWRyYXdlci0keysrc2t5U3BsaXRWaWV3TmV4dElkfWA7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc2V0TWF4V2lkdGgoKTtcblxuICAgIHRoaXMuI3NwbGl0Vmlld1N2Yy5pc01vYmlsZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBtb2JpbGU7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZUJyZWFrcG9pbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25SZXNpemVIYW5kbGVNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy4jc3BsaXRWaWV3TWVkaWFRdWVyeVN2Yy5pc1dpZHRoV2l0aGluQnJlYWtwb2ludChcbiAgICAgICAgd2luZG93LmlubmVyV2lkdGgsXG4gICAgICAgIFNreU1lZGlhQnJlYWtwb2ludHMueHMsXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy4jc2V0TWF4V2lkdGgoKTtcbiAgICB0aGlzLiNpc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICB0aGlzLiN4Q29vcmQgPSBldmVudC5jbGllbnRYO1xuXG4gICAgdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLnRvZ2dsZUlmcmFtZVBvaW50ZXJFdmVudHMoZmFsc2UpO1xuXG4gICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2Vtb3ZlJylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSksXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuI2lzRHJhZ2dpbmc7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobW92ZUV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMub25Nb3VzZU1vdmUobW92ZUV2ZW50KTtcbiAgICAgIH0pO1xuXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnbW91c2V1cCcpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLiNpc0RyYWdnaW5nO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uSGFuZGxlUmVsZWFzZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25Nb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXRoaXMuI2lzRHJhZ2dpbmcgfHwgdGhpcy53aWR0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb2Zmc2V0WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLiN4Q29vcmQ7XG4gICAgbGV0IHdpZHRoID0gdGhpcy53aWR0aDtcblxuICAgIHdpZHRoICs9IG9mZnNldFg7XG5cbiAgICBpZiAod2lkdGggPCB0aGlzLndpZHRoTWluIHx8IHdpZHRoID4gdGhpcy53aWR0aE1heCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMud2lkdGggPSB3aWR0aDtcblxuICAgIHRoaXMuI3hDb29yZCA9IGV2ZW50LmNsaWVudFg7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgb25IYW5kbGVSZWxlYXNlKCk6IHZvaWQge1xuICAgIHRoaXMuI2lzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UudG9nZ2xlSWZyYW1lUG9pbnRlckV2ZW50cyh0cnVlKTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlc2l6ZUhhbmRsZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLndpZHRoID0gKyhldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy4jc2V0TWF4V2lkdGgoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgY29uc3Qgd2luZG93ID0gdGhpcy4jd2luZG93UmVmLm5hdGl2ZVdpbmRvdztcblxuICAgIC8vIElmIHdpbmRvdyBzaXplIGlzIHNtYWxsZXIgdGhhbiB3aWR0aCArIHRvbGVyYW5jZSwgc2hyaW5rIHdpZHRoLlxuICAgIGlmIChcbiAgICAgICF0aGlzLmlzTW9iaWxlICYmXG4gICAgICB0aGlzLndpZHRoICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHdpbmRvdy5pbm5lcldpZHRoIDwgdGhpcy53aWR0aCArIHRoaXMud2lkdGhUb2xlcmFuY2VcbiAgICApIHtcbiAgICAgIHRoaXMud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRoaXMud2lkdGhUb2xlcmFuY2U7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUJyZWFrcG9pbnQoKTogdm9pZCB7XG4gICAgdGhpcy4jc3BsaXRWaWV3TWVkaWFRdWVyeVN2Yy5zZXRCcmVha3BvaW50Rm9yV2lkdGgodGhpcy53aWR0aCk7XG4gICAgY29uc3QgbmV3RHJhd2VyQnJlYWtwb2ludCA9IHRoaXMuI3NwbGl0Vmlld01lZGlhUXVlcnlTdmMuY3VycmVudDtcbiAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2Uuc2V0UmVzcG9uc2l2ZUNvbnRhaW5lckNsYXNzKFxuICAgICAgdGhpcy4jZWxlbWVudFJlZixcbiAgICAgIG5ld0RyYXdlckJyZWFrcG9pbnQsXG4gICAgKTtcbiAgfVxuXG4gICNzZXRNYXhXaWR0aCgpOiB2b2lkIHtcbiAgICBjb25zdCBzcGxpdFZpZXcgPVxuICAgICAgdGhpcy4jc3BsaXRWaWV3U3ZjLnNwbGl0Vmlld0VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5za3ktc3BsaXQtdmlldycsXG4gICAgICApO1xuICAgIHRoaXMud2lkdGhNYXggPSBzcGxpdFZpZXcuY2xpZW50V2lkdGggLSB0aGlzLndpZHRoVG9sZXJhbmNlO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LXNwbGl0LXZpZXctZHJhd2VyXCJcbiAgcm9sZT1cInJlZ2lvblwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgW2lkXT1cInNwbGl0Vmlld0RyYXdlcklkXCJcbiAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbiAgQGlmICghaXNNb2JpbGUgJiYgd2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgIDxpbnB1dFxuICAgICAgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcbiAgICAgIGNsYXNzPVwic2t5LXNwbGl0LXZpZXctcmVzaXplLWhhbmRsZVwiXG4gICAgICBzdGVwPVwiMTBcIlxuICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwic3BsaXRWaWV3RHJhd2VySWRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfc3BsaXRfdmlld19yZXNpemVfaGFuZGxlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIndpZHRoTWF4XCJcbiAgICAgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwid2lkdGhNaW5cIlxuICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJ3aWR0aFwiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVldGV4dF09XCJ3aWR0aCArICcgcGl4ZWxzIHdpZGUnXCJcbiAgICAgIFttYXhdPVwid2lkdGhNYXhcIlxuICAgICAgW21pbl09XCJ3aWR0aE1pblwiXG4gICAgICBbc3R5bGUubGVmdC5weF09XCJ3aWR0aCAtIDdcIlxuICAgICAgW3ZhbHVlXT1cIndpZHRoXCJcbiAgICAgIChjaGFuZ2UpPVwib25SZXNpemVIYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uUmVzaXplSGFuZGxlTW91c2VEb3duKCRldmVudClcIlxuICAgIC8+XG4gIH1cbjwvZGl2PlxuIl19
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUFJeEYsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFM0I7O0dBRUc7QUFTSCxNQUFNLE9BQU8sMkJBQTJCO0lBU3RDOzs7T0FHRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCwwRUFBMEU7UUFDMUUsK0NBQStDO1FBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0MsQ0FBQztJQWdCRCxXQUFXLENBQVM7SUFDcEIsY0FBYyxDQUF1QjtJQUNyQyxPQUFPLENBQUs7SUFDWixrQkFBa0IsQ0FBb0I7SUFDdEMsbUJBQW1CLENBQXdCO0lBQzNDLGFBQWEsQ0FBc0I7SUFDbkMsVUFBVSxDQUFrQjtJQUU1QixPQUFPLENBQXFCO0lBRTVCLFlBQ0UsaUJBQW9DLEVBQ3BDLGtCQUF5QyxFQUN6QyxZQUFpQyxFQUNqQyxTQUEwQjtRQTVCckIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUlqQixpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUUxQixnRUFBZ0U7UUFDaEUsMERBQTBEO1FBQ25ELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFaEIsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUVmLG1CQUFjLEdBQUcsR0FBRyxDQUFDO1FBRTVCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNyQyxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBY1YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO1FBQzVDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUU1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWM7YUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFpQjtRQUM5QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFFN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFELFNBQVMsQ0FBYSxRQUFRLEVBQUUsV0FBVyxDQUFDO2FBQ3pDLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVMLFNBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO2FBQzNCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBaUI7UUFDbEMsa0JBQWtCO1FBQ2xCLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFdkIsS0FBSyxJQUFJLE9BQU8sQ0FBQztRQUVqQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEtBQVk7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFFLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUN2RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUdNLGNBQWM7UUFDbkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFFNUMsa0VBQWtFO1FBQ2xFLElBQ0UsQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUNkLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUztZQUN4QixNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFDcEQsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLGFBQWEsQ0FDakUsaUJBQWlCLENBQ2xCLENBQUM7UUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM5RCxDQUFDOzhHQW5MVSwyQkFBMkI7a0dBQTNCLDJCQUEyQix5TUNoQ3hDLHk1QkE4QkEsd3lEREpZLFlBQVksOEJBQUUsMkJBQTJCOzsyRkFNeEMsMkJBQTJCO2tCQVJ2QyxTQUFTO3NDQUNTLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLEVBQUUsMkJBQTJCLENBQUMsWUFDMUMsdUJBQXVCLGNBQ3JCLElBQUk7MExBV1QsU0FBUztzQkFEZixLQUFLO2dCQVFLLEtBQUs7c0JBRGYsS0FBSztnQkFtSkMsY0FBYztzQkFEcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUFwcFdpbmRvd1JlZiwgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LXNwbGl0LXZpZXctcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreVNwbGl0Vmlld1NlcnZpY2UgfSBmcm9tICcuL3NwbGl0LXZpZXcuc2VydmljZSc7XG5cbmxldCBza3lTcGxpdFZpZXdOZXh0SWQgPSAwO1xuXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSBzcGxpdCB2aWV3J3MgbGlzdCBwYW5lbC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lTcGxpdFZpZXdSZXNvdXJjZXNNb2R1bGVdLFxuICBzZWxlY3RvcjogJ3NreS1zcGxpdC12aWV3LWRyYXdlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHN0eWxlVXJsOiAnLi9zcGxpdC12aWV3LWRyYXdlci5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGxpdC12aWV3LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVNwbGl0Vmlld0RyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSBBUklBIGxhYmVsIGZvciB0aGUgbGlzdCBwYW5lbC4gVGhpcyBzZXRzIHRoZSBwYW5lbCdzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGxpc3QgcGFuZWwncyB3aWR0aCBpbiBwaXhlbHMuXG4gICAqIEBkZWZhdWx0IDMyMFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB3aWR0aCh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfd2lkdGggPSBOdW1iZXIodmFsdWUpO1xuICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB3aWR0aCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIC8vIFRPRE86IExvZ2ljIGluIGEgZ2V0dGVyIGlzIGEgU0tZIFVYIGFudGktcGF0dGVybiwgYnV0IGZpeGluZyB0aGlzIHdvdWxkXG4gICAgLy8gcmVxdWlyZSBhIHNpZ25pZmljYW50IGFtb3VudCBvZiByZWZhY3RvcmluZy5cbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy4jX3dpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLiNfd2lkdGggPiB0aGlzLndpZHRoTWF4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLndpZHRoTWF4O1xuICAgICAgfSBlbHNlIGlmICh0aGlzLiNfd2lkdGggPCB0aGlzLndpZHRoTWluKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndpZHRoTWluO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLiNfd2lkdGggfHwgdGhpcy53aWR0aERlZmF1bHQ7XG4gIH1cblxuICBwdWJsaWMgaXNNb2JpbGUgPSBmYWxzZTtcblxuICBwdWJsaWMgc3BsaXRWaWV3RHJhd2VySWQ6IHN0cmluZztcblxuICBwdWJsaWMgd2lkdGhEZWZhdWx0ID0gMzIwO1xuXG4gIC8vIE1heCBuZWVkcyB0byBzdGFydCBhcyBzb21ldGhpbmcgdG8gYWxsb3cgaW5wdXQgcmFuZ2UgdG8gd29yay5cbiAgLy8gVGhpcyB2YWx1ZSBpcyB1cGRhdGVkIGFzIHNvb24gYXMgdGhlIHVzZXIgdGFrZXMgYWN0aW9uLlxuICBwdWJsaWMgd2lkdGhNYXggPSA5OTk5O1xuXG4gIHB1YmxpYyB3aWR0aE1pbiA9IDEwMDtcblxuICBwdWJsaWMgd2lkdGhUb2xlcmFuY2UgPSAxMDA7XG5cbiAgI2lzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjeENvb3JkID0gMDtcbiAgI2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuICAjc3BsaXRWaWV3U3ZjOiBTa3lTcGxpdFZpZXdTZXJ2aWNlO1xuICAjd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWY7XG5cbiAgI193aWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBzcGxpdFZpZXdTdmM6IFNreVNwbGl0Vmlld1NlcnZpY2UsXG4gICAgd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWYsXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmID0gY2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlID0gY29yZUFkYXB0ZXJTZXJ2aWNlO1xuICAgIHRoaXMuI3NwbGl0Vmlld1N2YyA9IHNwbGl0Vmlld1N2YztcbiAgICB0aGlzLiN3aW5kb3dSZWYgPSB3aW5kb3dSZWY7XG5cbiAgICB0aGlzLnNwbGl0Vmlld0RyYXdlcklkID0gYHNreS1zcGxpdC12aWV3LWRyYXdlci0keysrc2t5U3BsaXRWaWV3TmV4dElkfWA7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc2V0TWF4V2lkdGgoKTtcblxuICAgIHRoaXMuI3NwbGl0Vmlld1N2Yy5pc01vYmlsZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBtb2JpbGU7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uUmVzaXplSGFuZGxlTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuI3NldE1heFdpZHRoKCk7XG4gICAgdGhpcy4jaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy4jeENvb3JkID0gZXZlbnQuY2xpZW50WDtcblxuICAgIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZS50b2dnbGVJZnJhbWVQb2ludGVyRXZlbnRzKGZhbHNlKTtcblxuICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpLFxuICAgICAgICB0YWtlV2hpbGUoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLiNpc0RyYWdnaW5nO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG1vdmVFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLm9uTW91c2VNb3ZlKG1vdmVFdmVudCk7XG4gICAgICB9KTtcblxuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgdGFrZVdoaWxlKCgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy4jaXNEcmFnZ2luZztcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vbkhhbmRsZVJlbGVhc2UoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgLyogU2FuaXR5IGNoZWNrICovXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCF0aGlzLiNpc0RyYWdnaW5nIHx8IHRoaXMud2lkdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9mZnNldFggPSBldmVudC5jbGllbnRYIC0gdGhpcy4jeENvb3JkO1xuICAgIGxldCB3aWR0aCA9IHRoaXMud2lkdGg7XG5cbiAgICB3aWR0aCArPSBvZmZzZXRYO1xuXG4gICAgaWYgKHdpZHRoIDwgdGhpcy53aWR0aE1pbiB8fCB3aWR0aCA+IHRoaXMud2lkdGhNYXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLndpZHRoID0gd2lkdGg7XG5cbiAgICB0aGlzLiN4Q29vcmQgPSBldmVudC5jbGllbnRYO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIG9uSGFuZGxlUmVsZWFzZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNpc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLnRvZ2dsZUlmcmFtZVBvaW50ZXJFdmVudHModHJ1ZSk7XG4gICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgb25SZXNpemVIYW5kbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy53aWR0aCA9ICsoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIHRoaXMuI3NldE1heFdpZHRoKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuI3dpbmRvd1JlZi5uYXRpdmVXaW5kb3c7XG5cbiAgICAvLyBJZiB3aW5kb3cgc2l6ZSBpcyBzbWFsbGVyIHRoYW4gd2lkdGggKyB0b2xlcmFuY2UsIHNocmluayB3aWR0aC5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5pc01vYmlsZSAmJlxuICAgICAgdGhpcy53aWR0aCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB3aW5kb3cuaW5uZXJXaWR0aCA8IHRoaXMud2lkdGggKyB0aGlzLndpZHRoVG9sZXJhbmNlXG4gICAgKSB7XG4gICAgICB0aGlzLndpZHRoID0gd2luZG93LmlubmVyV2lkdGggLSB0aGlzLndpZHRoVG9sZXJhbmNlO1xuICAgIH1cbiAgfVxuXG4gICNzZXRNYXhXaWR0aCgpOiB2b2lkIHtcbiAgICBjb25zdCBzcGxpdFZpZXcgPVxuICAgICAgdGhpcy4jc3BsaXRWaWV3U3ZjLnNwbGl0Vmlld0VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5za3ktc3BsaXQtdmlldycsXG4gICAgICApO1xuICAgIHRoaXMud2lkdGhNYXggPSBzcGxpdFZpZXcuY2xpZW50V2lkdGggLSB0aGlzLndpZHRoVG9sZXJhbmNlO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LXNwbGl0LXZpZXctZHJhd2VyXCJcbiAgcm9sZT1cInJlZ2lvblwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgW2lkXT1cInNwbGl0Vmlld0RyYXdlcklkXCJcbiAgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbiAgQGlmICghaXNNb2JpbGUgJiYgd2lkdGggIT09IHVuZGVmaW5lZCkge1xuICAgIDxpbnB1dFxuICAgICAgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcbiAgICAgIGNsYXNzPVwic2t5LXNwbGl0LXZpZXctcmVzaXplLWhhbmRsZVwiXG4gICAgICBzdGVwPVwiMTBcIlxuICAgICAgdHlwZT1cInJhbmdlXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwic3BsaXRWaWV3RHJhd2VySWRcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfc3BsaXRfdmlld19yZXNpemVfaGFuZGxlJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIndpZHRoTWF4XCJcbiAgICAgIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwid2lkdGhNaW5cIlxuICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJ3aWR0aFwiXG4gICAgICBbYXR0ci5hcmlhLXZhbHVldGV4dF09XCJ3aWR0aCArICcgcGl4ZWxzIHdpZGUnXCJcbiAgICAgIFttYXhdPVwid2lkdGhNYXhcIlxuICAgICAgW21pbl09XCJ3aWR0aE1pblwiXG4gICAgICBbc3R5bGUubGVmdC5weF09XCJ3aWR0aCAtIDdcIlxuICAgICAgW3ZhbHVlXT1cIndpZHRoXCJcbiAgICAgIChjaGFuZ2UpPVwib25SZXNpemVIYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uUmVzaXplSGFuZGxlTW91c2VEb3duKCRldmVudClcIlxuICAgIC8+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { SkyResponsiveHostDirective } from '@skyux/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@skyux/core";
|
|
3
5
|
/**
|
|
4
6
|
* Specifies the content to display in the split view's workspace panel.
|
|
5
7
|
*/
|
|
6
8
|
export class SkySplitViewWorkspaceContentComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.tabIndex = '0';
|
|
9
|
-
}
|
|
10
9
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceContentComponent, selector: "sky-split-view-workspace-content", host: {
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceContentComponent, isStandalone: true, selector: "sky-split-view-workspace-content", host: { attributes: { "tabindex": "0" } }, hostDirectives: [{ directive: i1.SkyResponsiveHostDirective }], ngImport: i0, template: "<div class=\"sky-split-view-workspace-content\">\n <ng-content />\n</div>\n", styles: [":host{display:block;overflow:auto;flex-grow:1}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12
11
|
}
|
|
13
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceContentComponent, decorators: [{
|
|
14
13
|
type: Component,
|
|
15
|
-
args: [{
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3NyYy9saWIvbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXctd29ya3NwYWNlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWhGOztHQUVHO0FBT0gsTUFBTSxPQUFPLHFDQUFxQztJQU5sRDtRQVFTLGFBQVEsR0FBRyxHQUFHLENBQUM7S0FDdkI7OEdBSFkscUNBQXFDO2tHQUFyQyxxQ0FBcUMsb0lDWGxELDhFQUdBOzsyRkRRYSxxQ0FBcUM7a0JBTmpELFNBQVM7K0JBQ0Usa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUl4QyxRQUFRO3NCQURkLFdBQVc7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBjb250ZW50IHRvIGRpc3BsYXkgaW4gdGhlIHNwbGl0IHZpZXcncyB3b3Jrc3BhY2UgcGFuZWwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1zcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICdzcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U3BsaXRWaWV3V29ya3NwYWNlQ29udGVudENvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHB1YmxpYyB0YWJJbmRleCA9ICcwJztcbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktc3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudFwiPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG4iXX0=
|
|
14
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
15
|
+
tabindex: '0',
|
|
16
|
+
}, hostDirectives: [SkyResponsiveHostDirective], selector: 'sky-split-view-workspace-content', standalone: true, template: "<div class=\"sky-split-view-workspace-content\">\n <ng-content />\n</div>\n", styles: [":host{display:block;overflow:auto;flex-grow:1}\n"] }]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3NyYy9saWIvbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXctd29ya3NwYWNlLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUV6RDs7R0FFRztBQVlILE1BQU0sT0FBTyxxQ0FBcUM7OEdBQXJDLHFDQUFxQztrR0FBckMscUNBQXFDLHVNQ2pCbEQsOEVBR0E7OzJGRGNhLHFDQUFxQztrQkFYakQsU0FBUztzQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLFFBQVEsRUFBRSxHQUFHO3FCQUNkLGtCQUNlLENBQUMsMEJBQTBCLENBQUMsWUFDbEMsa0NBQWtDLGNBQ2hDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lSZXNwb25zaXZlSG9zdERpcmVjdGl2ZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGNvbnRlbnQgdG8gZGlzcGxheSBpbiB0aGUgc3BsaXQgdmlldydzIHdvcmtzcGFjZSBwYW5lbC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgdGFiaW5kZXg6ICcwJyxcbiAgfSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lSZXNwb25zaXZlSG9zdERpcmVjdGl2ZV0sXG4gIHNlbGVjdG9yOiAnc2t5LXNwbGl0LXZpZXctd29ya3NwYWNlLWNvbnRlbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZVVybDogJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudC5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U3BsaXRWaWV3V29ya3NwYWNlQ29udGVudENvbXBvbmVudCB7fVxuIiwiPGRpdiBjbGFzcz1cInNreS1zcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50XCI+XG4gIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { SkyResponsiveHostDirective } from '@skyux/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@skyux/core";
|
|
3
5
|
/**
|
|
4
6
|
* Specifies the footer to display in the split view's workspace panel. This component is often used with a summary action bar.
|
|
5
7
|
*/
|
|
6
8
|
export class SkySplitViewWorkspaceFooterComponent {
|
|
7
9
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceFooterComponent, selector: "sky-split-view-workspace-footer", ngImport: i0, template: "<div class=\"sky-split-view-workspace-footer\">\n <ng-content />\n</div>\n", styles: [":host{flex-shrink:0}.sky-split-view-workspace-footer{padding:10px;box-shadow:0 -3px 3px #cdcfd2}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceFooterComponent, isStandalone: true, selector: "sky-split-view-workspace-footer", hostDirectives: [{ directive: i1.SkyResponsiveHostDirective }], ngImport: i0, template: "<div class=\"sky-split-view-workspace-footer\">\n <ng-content />\n</div>\n", styles: [":host{display:block;flex-shrink:0}.sky-split-view-workspace-footer{padding:10px;box-shadow:0 -3px 3px #cdcfd2}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
11
|
}
|
|
10
12
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceFooterComponent, decorators: [{
|
|
11
13
|
type: Component,
|
|
12
|
-
args: [{ selector: 'sky-split-view-workspace-footer',
|
|
14
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [SkyResponsiveHostDirective], selector: 'sky-split-view-workspace-footer', standalone: true, template: "<div class=\"sky-split-view-workspace-footer\">\n <ng-content />\n</div>\n", styles: [":host{display:block;flex-shrink:0}.sky-split-view-workspace-footer{padding:10px;box-shadow:0 -3px 3px #cdcfd2}\n"] }]
|
|
13
15
|
}] });
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UtZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3NyYy9saWIvbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXctd29ya3NwYWNlLWZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LXdvcmtzcGFjZS1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUV6RDs7R0FFRztBQVNILE1BQU0sT0FBTyxvQ0FBb0M7OEdBQXBDLG9DQUFvQztrR0FBcEMsb0NBQW9DLDJKQ2RqRCw2RUFHQTs7MkZEV2Esb0NBQW9DO2tCQVJoRCxTQUFTO3NDQUNTLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9CLENBQUMsMEJBQTBCLENBQUMsWUFDbEMsaUNBQWlDLGNBQy9CLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lSZXNwb25zaXZlSG9zdERpcmVjdGl2ZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGZvb3RlciB0byBkaXNwbGF5IGluIHRoZSBzcGxpdCB2aWV3J3Mgd29ya3NwYWNlIHBhbmVsLiBUaGlzIGNvbXBvbmVudCBpcyBvZnRlbiB1c2VkIHdpdGggYSBzdW1tYXJ5IGFjdGlvbiBiYXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lSZXNwb25zaXZlSG9zdERpcmVjdGl2ZV0sXG4gIHNlbGVjdG9yOiAnc2t5LXNwbGl0LXZpZXctd29ya3NwYWNlLWZvb3RlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHN0eWxlVXJsOiAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS1mb290ZXIuY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UtZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U3BsaXRWaWV3V29ya3NwYWNlRm9vdGVyQ29tcG9uZW50IHt9XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXNwbGl0LXZpZXctd29ya3NwYWNlLWZvb3RlclwiPlxuICA8bmctY29udGVudCAvPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, } from '@angular/core';
|
|
2
|
+
import { SkyIconModule } from '@skyux/icon';
|
|
2
3
|
import { Subject } from 'rxjs';
|
|
3
4
|
import { takeUntil } from 'rxjs/operators';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
@@ -29,10 +30,10 @@ export class SkySplitViewWorkspaceHeaderComponent {
|
|
|
29
30
|
this.#ngUnsubscribe.complete();
|
|
30
31
|
}
|
|
31
32
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceHeaderComponent, deps: [{ token: i1.SkySplitViewService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceHeaderComponent, selector: "sky-split-view-workspace-header", ngImport: i0, template: "<div class=\"sky-split-view-workspace-header\">\n <div class=\"sky-split-view-workspace-header-content\">\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"onShowDrawerButtonClick()\"\n >\n <sky-icon icon=\"chevron-left\" />\n {{ backButtonText }}\n </button>\n </div>\n</div>\n", styles: [".sky-split-view-workspace-header{display:flex;align-items:flex-start;justify-content:flex-end;border-bottom:1px solid #cdcfd2;padding:5px 0}.sky-split-view-workspace-header .sky-split-view-workspace-header-content{flex-grow:1}\n"], dependencies: [{ kind: "component", type: i2.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewWorkspaceHeaderComponent, isStandalone: true, selector: "sky-split-view-workspace-header", ngImport: i0, template: "<div class=\"sky-split-view-workspace-header\">\n <div class=\"sky-split-view-workspace-header-content\">\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"onShowDrawerButtonClick()\"\n >\n <sky-icon icon=\"chevron-left\" />\n {{ backButtonText }}\n </button>\n </div>\n</div>\n", styles: [".sky-split-view-workspace-header{display:flex;align-items:flex-start;justify-content:flex-end;border-bottom:1px solid #cdcfd2;padding:5px 0}.sky-split-view-workspace-header .sky-split-view-workspace-header-content{flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i2.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
34
|
}
|
|
34
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceHeaderComponent, decorators: [{
|
|
35
36
|
type: Component,
|
|
36
|
-
args: [{ selector: 'sky-split-view-workspace-header',
|
|
37
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkyIconModule], selector: 'sky-split-view-workspace-header', standalone: true, template: "<div class=\"sky-split-view-workspace-header\">\n <div class=\"sky-split-view-workspace-header-content\">\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"onShowDrawerButtonClick()\"\n >\n <sky-icon icon=\"chevron-left\" />\n {{ backButtonText }}\n </button>\n </div>\n</div>\n", styles: [".sky-split-view-workspace-header{display:flex;align-items:flex-start;justify-content:flex-end;border-bottom:1px solid #cdcfd2;padding:5px 0}.sky-split-view-workspace-header .sky-split-view-workspace-header-content{flex-grow:1}\n"] }]
|
|
37
38
|
}], ctorParameters: () => [{ type: i1.SkySplitViewService }] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3NyYy9saWIvbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXctd29ya3NwYWNlLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LXdvcmtzcGFjZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUkzQzs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sb0NBQW9DO0lBRy9DLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ3JDLGFBQWEsQ0FBc0I7SUFFbkMsWUFBWSxZQUFpQztRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztJQUNwQyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CO2FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLHVCQUF1QjtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzhHQXpCVSxvQ0FBb0M7a0dBQXBDLG9DQUFvQywyRkN6QmpELG1WQVlBLDZSRE9ZLGFBQWE7OzJGQU1aLG9DQUFvQztrQkFSaEQsU0FBUztzQ0FDUyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsYUFBYSxDQUFDLFlBQ2QsaUNBQWlDLGNBQy9CLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVNwbGl0Vmlld1NlcnZpY2UgfSBmcm9tICcuL3NwbGl0LXZpZXcuc2VydmljZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgdG8gZGlzcGxheSBpbiB0aGUgc3BsaXQgdmlldydzIHdvcmtzcGFjZSBwYW5lbC5cbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lJY29uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdza3ktc3BsaXQtdmlldy13b3Jrc3BhY2UtaGVhZGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmw6ICcuL3NwbGl0LXZpZXctd29ya3NwYWNlLWhlYWRlci5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIHB1YmxpYyBiYWNrQnV0dG9uVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI3NwbGl0Vmlld1N2YzogU2t5U3BsaXRWaWV3U2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihzcGxpdFZpZXdTdmM6IFNreVNwbGl0Vmlld1NlcnZpY2UpIHtcbiAgICB0aGlzLiNzcGxpdFZpZXdTdmMgPSBzcGxpdFZpZXdTdmM7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc3BsaXRWaWV3U3ZjLmJhY2tCdXR0b25UZXh0U3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5iYWNrQnV0dG9uVGV4dCA9IHRleHQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNob3dEcmF3ZXJCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLiNzcGxpdFZpZXdTdmMuYmFja0J1dHRvbkNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LXNwbGl0LXZpZXctd29ya3NwYWNlLWhlYWRlclwiPlxuICA8ZGl2IGNsYXNzPVwic2t5LXNwbGl0LXZpZXctd29ya3NwYWNlLWhlYWRlci1jb250ZW50XCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tbGlua1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJvblNob3dEcmF3ZXJCdXR0b25DbGljaygpXCJcbiAgICA+XG4gICAgICA8c2t5LWljb24gaWNvbj1cImNoZXZyb24tbGVmdFwiIC8+XG4gICAgICB7eyBiYWNrQnV0dG9uVGV4dCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,91 +1,25 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, inject, } from '@angular/core';
|
|
2
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
2
3
|
import { SkyMediaQueryService } from '@skyux/core';
|
|
3
|
-
import {
|
|
4
|
-
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { SkySplitViewMediaQueryService } from './split-view-media-query.service';
|
|
4
|
+
import { SkySplitViewWorkspaceHeaderComponent } from './split-view-workspace-header.component';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@skyux/core";
|
|
8
|
-
import * as i2 from "./split-view-media-query.service";
|
|
9
|
-
import * as i3 from "./split-view.service";
|
|
10
|
-
import * as i4 from "./split-view-workspace-header.component";
|
|
11
6
|
/**
|
|
12
7
|
* Contains the content, footer, and header to display in the split view's workspace panel.
|
|
13
8
|
*/
|
|
14
9
|
export class SkySplitViewWorkspaceComponent {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
#ngUnsubscribe;
|
|
24
|
-
#changeDetectorRef;
|
|
25
|
-
#coreAdapterSvc;
|
|
26
|
-
#elementRef;
|
|
27
|
-
#splitViewMediaQuerySvc;
|
|
28
|
-
#splitViewSvc;
|
|
29
|
-
#_isMobile;
|
|
30
|
-
constructor(changeDetectorRef, coreAdapterSvc, elementRef, splitViewMediaQuerySvc, splitViewSvc) {
|
|
31
|
-
this.showDrawerButtonClick = new EventEmitter();
|
|
32
|
-
this.#ngUnsubscribe = new Subject();
|
|
33
|
-
this.#changeDetectorRef = changeDetectorRef;
|
|
34
|
-
this.#coreAdapterSvc = coreAdapterSvc;
|
|
35
|
-
this.#elementRef = elementRef;
|
|
36
|
-
this.#splitViewMediaQuerySvc = splitViewMediaQuerySvc;
|
|
37
|
-
this.#splitViewSvc = splitViewSvc;
|
|
38
|
-
}
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
this.#splitViewSvc.isMobileStream
|
|
41
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
|
42
|
-
.subscribe((mobile) => {
|
|
43
|
-
this.isMobile = mobile;
|
|
44
|
-
this.#changeDetectorRef.markForCheck();
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
ngAfterViewInit() {
|
|
48
|
-
this.#splitViewSvc.drawerWidthStream
|
|
49
|
-
.pipe(takeUntil(this.#ngUnsubscribe))
|
|
50
|
-
.subscribe(() => {
|
|
51
|
-
this.#updateBreakpoint();
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
ngOnDestroy() {
|
|
55
|
-
this.showDrawerButtonClick.complete();
|
|
56
|
-
this.#ngUnsubscribe.next();
|
|
57
|
-
this.#ngUnsubscribe.complete();
|
|
58
|
-
}
|
|
59
|
-
onWindowResize() {
|
|
60
|
-
this.#updateBreakpoint();
|
|
61
|
-
}
|
|
62
|
-
#updateBreakpoint() {
|
|
63
|
-
const width = this.#elementRef.nativeElement.parentElement.clientWidth;
|
|
64
|
-
this.#splitViewMediaQuerySvc.setBreakpointForWidth(width);
|
|
65
|
-
const newDrawerBreakpoint = this.#splitViewMediaQuerySvc.current;
|
|
66
|
-
this.#coreAdapterSvc.setResponsiveContainerClass(this.#elementRef, newDrawerBreakpoint);
|
|
67
|
-
this.#changeDetectorRef.markForCheck();
|
|
68
|
-
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i0.ElementRef }, { token: i2.SkySplitViewMediaQueryService }, { token: i3.SkySplitViewService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkySplitViewWorkspaceComponent, selector: "sky-split-view-workspace", inputs: { ariaLabel: "ariaLabel" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [
|
|
71
|
-
{
|
|
72
|
-
provide: SkyMediaQueryService,
|
|
73
|
-
useExisting: SkySplitViewMediaQueryService,
|
|
74
|
-
},
|
|
75
|
-
], ngImport: i0, template: "<div\n class=\"sky-split-view-workspace\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n>\n @if (isMobile) {\n <sky-split-view-workspace-header />\n }\n <ng-content select=\"sky-split-view-workspace-content\" />\n <ng-content select=\"sky-split-view-workspace-footer\" />\n</div>\n", styles: [".sky-split-view-workspace{background:#fff;height:100%;display:flex;flex-direction:column}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-split-view-workspace{background-color:#121212;border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-split-view-workspace{background-color:#121212;border-color:#686c73}\n"], dependencies: [{ kind: "component", type: i4.SkySplitViewWorkspaceHeaderComponent, selector: "sky-split-view-workspace-header" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
|
+
constructor() {
|
|
11
|
+
// Use the parent's breakpoint since the mobile header should only appear when
|
|
12
|
+
// the split view container as a whole reaches the "xs" breakpoint, not just
|
|
13
|
+
// the workspace area.
|
|
14
|
+
this.breakpoint = toSignal(inject(SkyMediaQueryService, { skipSelf: true }).breakpointChange);
|
|
15
|
+
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: SkySplitViewWorkspaceComponent, isStandalone: true, selector: "sky-split-view-workspace", inputs: { ariaLabel: "ariaLabel" }, ngImport: i0, template: "<div\n class=\"sky-split-view-workspace\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n>\n @if (breakpoint() === 'xs') {\n <sky-split-view-workspace-header />\n }\n <ng-content select=\"sky-split-view-workspace-content\" />\n <ng-content select=\"sky-split-view-workspace-footer\" />\n</div>\n", styles: [".sky-split-view-workspace{background:#fff;height:100%;display:flex;flex-direction:column}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-split-view-workspace{background-color:#121212;border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-split-view-workspace{background-color:#121212;border-color:#686c73}\n"], dependencies: [{ kind: "component", type: SkySplitViewWorkspaceHeaderComponent, selector: "sky-split-view-workspace-header" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
18
|
}
|
|
77
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewWorkspaceComponent, decorators: [{
|
|
78
20
|
type: Component,
|
|
79
|
-
args: [{ selector: 'sky-split-view-workspace',
|
|
80
|
-
|
|
81
|
-
provide: SkyMediaQueryService,
|
|
82
|
-
useExisting: SkySplitViewMediaQueryService,
|
|
83
|
-
},
|
|
84
|
-
], template: "<div\n class=\"sky-split-view-workspace\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n>\n @if (isMobile) {\n <sky-split-view-workspace-header />\n }\n <ng-content select=\"sky-split-view-workspace-content\" />\n <ng-content select=\"sky-split-view-workspace-footer\" />\n</div>\n", styles: [".sky-split-view-workspace{background:#fff;height:100%;display:flex;flex-direction:column}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-split-view-workspace{background-color:#121212;border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-split-view-workspace{background-color:#121212;border-color:#686c73}\n"] }]
|
|
85
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: i2.SkySplitViewMediaQueryService }, { type: i3.SkySplitViewService }], propDecorators: { ariaLabel: [{
|
|
21
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [SkySplitViewWorkspaceHeaderComponent], selector: 'sky-split-view-workspace', standalone: true, template: "<div\n class=\"sky-split-view-workspace\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-label]=\"ariaLabel\"\n>\n @if (breakpoint() === 'xs') {\n <sky-split-view-workspace-header />\n }\n <ng-content select=\"sky-split-view-workspace-content\" />\n <ng-content select=\"sky-split-view-workspace-footer\" />\n</div>\n", styles: [".sky-split-view-workspace{background:#fff;height:100%;display:flex;flex-direction:column}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-split-view-workspace{background-color:#121212;border-color:#686c73}.sky-theme-modern.sky-theme-mode-dark .sky-split-view-workspace{background-color:#121212;border-color:#686c73}\n"] }]
|
|
22
|
+
}], propDecorators: { ariaLabel: [{
|
|
86
23
|
type: Input
|
|
87
|
-
}], onWindowResize: [{
|
|
88
|
-
type: HostListener,
|
|
89
|
-
args: ['window:resize']
|
|
90
24
|
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy13b3Jrc3BhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy13b3Jrc3BhY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy13b3Jrc3BhY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQUUvRjs7R0FFRztBQVNILE1BQU0sT0FBTyw4QkFBOEI7SUFSM0M7UUFTRSw4RUFBOEU7UUFDOUUsNEVBQTRFO1FBQzVFLHNCQUFzQjtRQUNaLGVBQVUsR0FBRyxRQUFRLENBQzdCLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUNsRSxDQUFDO0tBU0g7OEdBZlksOEJBQThCO2tHQUE5Qiw4QkFBOEIsd0hDdEIzQywyVUFZQSxnWURJWSxvQ0FBb0M7OzJGQU1uQyw4QkFBOEI7a0JBUjFDLFNBQVM7c0NBQ1MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLG9DQUFvQyxDQUFDLFlBQ3JDLDBCQUEwQixjQUN4QixJQUFJOzhCQWtCVCxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UtaGVhZGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQ29udGFpbnMgdGhlIGNvbnRlbnQsIGZvb3RlciwgYW5kIGhlYWRlciB0byBkaXNwbGF5IGluIHRoZSBzcGxpdCB2aWV3J3Mgd29ya3NwYWNlIHBhbmVsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnRdLFxuICBzZWxlY3RvcjogJ3NreS1zcGxpdC12aWV3LXdvcmtzcGFjZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHN0eWxlVXJsOiAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbXBvbmVudCB7XG4gIC8vIFVzZSB0aGUgcGFyZW50J3MgYnJlYWtwb2ludCBzaW5jZSB0aGUgbW9iaWxlIGhlYWRlciBzaG91bGQgb25seSBhcHBlYXIgd2hlblxuICAvLyB0aGUgc3BsaXQgdmlldyBjb250YWluZXIgYXMgYSB3aG9sZSByZWFjaGVzIHRoZSBcInhzXCIgYnJlYWtwb2ludCwgbm90IGp1c3RcbiAgLy8gdGhlIHdvcmtzcGFjZSBhcmVhLlxuICBwcm90ZWN0ZWQgYnJlYWtwb2ludCA9IHRvU2lnbmFsKFxuICAgIGluamVjdChTa3lNZWRpYVF1ZXJ5U2VydmljZSwgeyBza2lwU2VsZjogdHJ1ZSB9KS5icmVha3BvaW50Q2hhbmdlLFxuICApO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJJQSBsYWJlbCBmb3IgdGhlIHdvcmtzcGFjZSBwYW5lbC4gVGhpcyBzZXRzIHRoZSBwYW5lbCdzIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gcHJvdmlkZSBhIHRleHQgZXF1aXZhbGVudCBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICogW3RvIHN1cHBvcnQgYWNjZXNzaWJpbGl0eV0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9sZWFybi9hY2Nlc3NpYmlsaXR5KS5cbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUsIHNlZSB0aGUgW1dBSS1BUklBIGRlZmluaXRpb25dKGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS8jYXJpYS1sYWJlbCkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LXNwbGl0LXZpZXctd29ya3NwYWNlXCJcbiAgcm9sZT1cInJlZ2lvblwiXG4gIHRhYmluZGV4PVwiMFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbj5cbiAgQGlmIChicmVha3BvaW50KCkgPT09ICd4cycpIHtcbiAgICA8c2t5LXNwbGl0LXZpZXctd29ya3NwYWNlLWhlYWRlciAvPlxuICB9XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1zcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50XCIgLz5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXNwbGl0LXZpZXctd29ya3NwYWNlLWZvb3RlclwiIC8+XG48L2Rpdj5cbiJdfQ==
|