@skyux/split-view 11.15.1 → 11.17.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,10 +1,11 @@
|
|
|
1
1
|
import { animate, state, style, transition, trigger, } from '@angular/animations';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
2
3
|
import { ChangeDetectionStrategy, Component, ContentChild, Input, } from '@angular/core';
|
|
4
|
+
import { SkyResponsiveHostDirective } from '@skyux/core';
|
|
3
5
|
import { Subject } from 'rxjs';
|
|
4
6
|
import { take, takeUntil } from 'rxjs/operators';
|
|
5
7
|
import { SkySplitViewAdapterService } from './split-view-adapter.service';
|
|
6
8
|
import { SkySplitViewDrawerComponent } from './split-view-drawer.component';
|
|
7
|
-
import { SkySplitViewMediaQueryService } from './split-view-media-query.service';
|
|
8
9
|
import { SkySplitViewService } from './split-view.service';
|
|
9
10
|
import { SkySplitViewMessageType } from './types/split-view-message-type';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
@@ -157,11 +158,7 @@ export class SkySplitViewComponent {
|
|
|
157
158
|
}
|
|
158
159
|
}
|
|
159
160
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewComponent, deps: [{ token: i1.SkySplitViewAdapterService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyCoreAdapterService }, { token: i0.ElementRef }, { token: i3.SkySplitViewService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewComponent, selector: "sky-split-view", inputs: { backButtonText: "backButtonText", bindHeightToWindow: "bindHeightToWindow", dock: "dock", messageStream: "messageStream" }, providers: [
|
|
161
|
-
SkySplitViewAdapterService,
|
|
162
|
-
SkySplitViewMediaQueryService,
|
|
163
|
-
SkySplitViewService,
|
|
164
|
-
], queries: [{ propertyName: "drawerComponent", first: true, predicate: SkySplitViewDrawerComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-split-view\"\n [ngClass]=\"'sky-split-view-dock-' + dock\"\n [@blockAnimationOnLoad]\n>\n <div\n class=\"sky-split-view-drawer-flex-container\"\n [hidden]=\"!drawerVisible\"\n [@drawerEnter]=\"drawerVisible\"\n >\n <ng-content select=\"sky-split-view-drawer\" />\n </div>\n\n <div\n class=\"sky-split-view-workspace-flex-container\"\n [hidden]=\"!workspaceVisible\"\n [@workspaceEnter]=\"workspaceVisible\"\n (@workspaceEnter.done)=\"onWorkspaceEnterComplete()\"\n >\n <ng-content select=\"sky-split-view-workspace\" />\n </div>\n</div>\n", styles: [".sky-split-view{position:relative;display:flex;border:1px solid #cdcfd2;background:transparent;margin:var(--sky-layout-host-content-spacing, 0);max-height:100%}.sky-split-view .sky-split-view-workspace-flex-container{flex-grow:1;flex-shrink:99;overflow:auto}.sky-split-view-dock-fill{position:absolute;inset:0}:host .sky-split-view-drawer-flex-container{width:100%}:host-context(.sky-responsive-container-xs) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:100%}@media (min-width: 768px){:host .sky-split-view-drawer-flex-container{width:auto}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:auto}@media (min-width: 768px){:host :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host .sky-theme-modern .sky-split-view{border-left:none}}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-md) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host-context(.sky-responsive-container-sm) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-md) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-lg) .sky-theme-modern .sky-split-view{border-left:none}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
|
|
161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: SkySplitViewComponent, isStandalone: true, selector: "sky-split-view", inputs: { backButtonText: "backButtonText", bindHeightToWindow: "bindHeightToWindow", dock: "dock", messageStream: "messageStream" }, providers: [SkySplitViewAdapterService, SkySplitViewService], queries: [{ propertyName: "drawerComponent", first: true, predicate: SkySplitViewDrawerComponent, descendants: true }], hostDirectives: [{ directive: i2.SkyResponsiveHostDirective }], ngImport: i0, template: "<div\n class=\"sky-split-view\"\n [ngClass]=\"'sky-split-view-dock-' + dock\"\n [@blockAnimationOnLoad]\n>\n <div\n class=\"sky-split-view-drawer-flex-container\"\n [hidden]=\"!drawerVisible\"\n [@drawerEnter]=\"drawerVisible\"\n >\n <ng-content select=\"sky-split-view-drawer\" />\n </div>\n\n <div\n class=\"sky-split-view-workspace-flex-container\"\n [hidden]=\"!workspaceVisible\"\n [@workspaceEnter]=\"workspaceVisible\"\n (@workspaceEnter.done)=\"onWorkspaceEnterComplete()\"\n >\n <ng-content select=\"sky-split-view-workspace\" />\n </div>\n</div>\n", styles: [":host{display:block}.sky-split-view{position:relative;display:flex;border:1px solid #cdcfd2;background:transparent;margin:var(--sky-layout-host-content-spacing, 0);max-height:100%}.sky-split-view .sky-split-view-workspace-flex-container{flex-grow:1;flex-shrink:99;overflow:auto}.sky-split-view-dock-fill{position:absolute;inset:0}:host .sky-split-view-drawer-flex-container{width:100%}:host-context(.sky-responsive-container-xs) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:100%}@media (min-width: 768px){:host .sky-split-view-drawer-flex-container{width:auto}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:auto}@media (min-width: 768px){:host :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host .sky-theme-modern .sky-split-view{border-left:none}}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-md) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host-context(.sky-responsive-container-sm) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-md) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-lg) .sky-theme-modern .sky-split-view{border-left:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], animations: [
|
|
165
162
|
trigger('blockAnimationOnLoad', [transition(':enter', [])]),
|
|
166
163
|
trigger('drawerEnter', [
|
|
167
164
|
state('false', style({ transform: 'translate(-100%)' })),
|
|
@@ -175,11 +172,7 @@ export class SkySplitViewComponent {
|
|
|
175
172
|
}
|
|
176
173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewComponent, decorators: [{
|
|
177
174
|
type: Component,
|
|
178
|
-
args: [{
|
|
179
|
-
SkySplitViewAdapterService,
|
|
180
|
-
SkySplitViewMediaQueryService,
|
|
181
|
-
SkySplitViewService,
|
|
182
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
|
|
175
|
+
args: [{ animations: [
|
|
183
176
|
trigger('blockAnimationOnLoad', [transition(':enter', [])]),
|
|
184
177
|
trigger('drawerEnter', [
|
|
185
178
|
state('false', style({ transform: 'translate(-100%)' })),
|
|
@@ -189,7 +182,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
189
182
|
state('false', style({ transform: 'translate(100%)' })),
|
|
190
183
|
transition('* => true', animate('150ms ease-in')),
|
|
191
184
|
]),
|
|
192
|
-
], template: "<div\n class=\"sky-split-view\"\n [ngClass]=\"'sky-split-view-dock-' + dock\"\n [@blockAnimationOnLoad]\n>\n <div\n class=\"sky-split-view-drawer-flex-container\"\n [hidden]=\"!drawerVisible\"\n [@drawerEnter]=\"drawerVisible\"\n >\n <ng-content select=\"sky-split-view-drawer\" />\n </div>\n\n <div\n class=\"sky-split-view-workspace-flex-container\"\n [hidden]=\"!workspaceVisible\"\n [@workspaceEnter]=\"workspaceVisible\"\n (@workspaceEnter.done)=\"onWorkspaceEnterComplete()\"\n >\n <ng-content select=\"sky-split-view-workspace\" />\n </div>\n</div>\n", styles: [".sky-split-view{position:relative;display:flex;border:1px solid #cdcfd2;background:transparent;margin:var(--sky-layout-host-content-spacing, 0);max-height:100%}.sky-split-view .sky-split-view-workspace-flex-container{flex-grow:1;flex-shrink:99;overflow:auto}.sky-split-view-dock-fill{position:absolute;inset:0}:host .sky-split-view-drawer-flex-container{width:100%}:host-context(.sky-responsive-container-xs) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:100%}@media (min-width: 768px){:host .sky-split-view-drawer-flex-container{width:auto}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:auto}@media (min-width: 768px){:host :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host .sky-theme-modern .sky-split-view{border-left:none}}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-md) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host-context(.sky-responsive-container-sm) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-md) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-lg) .sky-theme-modern .sky-split-view{border-left:none}\n"] }]
|
|
185
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [SkyResponsiveHostDirective], imports: [CommonModule], providers: [SkySplitViewAdapterService, SkySplitViewService], selector: 'sky-split-view', standalone: true, template: "<div\n class=\"sky-split-view\"\n [ngClass]=\"'sky-split-view-dock-' + dock\"\n [@blockAnimationOnLoad]\n>\n <div\n class=\"sky-split-view-drawer-flex-container\"\n [hidden]=\"!drawerVisible\"\n [@drawerEnter]=\"drawerVisible\"\n >\n <ng-content select=\"sky-split-view-drawer\" />\n </div>\n\n <div\n class=\"sky-split-view-workspace-flex-container\"\n [hidden]=\"!workspaceVisible\"\n [@workspaceEnter]=\"workspaceVisible\"\n (@workspaceEnter.done)=\"onWorkspaceEnterComplete()\"\n >\n <ng-content select=\"sky-split-view-workspace\" />\n </div>\n</div>\n", styles: [":host{display:block}.sky-split-view{position:relative;display:flex;border:1px solid #cdcfd2;background:transparent;margin:var(--sky-layout-host-content-spacing, 0);max-height:100%}.sky-split-view .sky-split-view-workspace-flex-container{flex-grow:1;flex-shrink:99;overflow:auto}.sky-split-view-dock-fill{position:absolute;inset:0}:host .sky-split-view-drawer-flex-container{width:100%}:host-context(.sky-responsive-container-xs) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:100%}@media (min-width: 768px){:host .sky-split-view-drawer-flex-container{width:auto}}:host-context(.sky-responsive-container-sm) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-md) .sky-split-view-drawer-flex-container,:host-context(.sky-responsive-container-lg) .sky-split-view-drawer-flex-container{width:auto}@media (min-width: 768px){:host :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host .sky-theme-modern .sky-split-view{border-left:none}}:host-context(.sky-responsive-container-sm) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-md) :host-context(.sky-theme-modern) .sky-split-view,:host-context(.sky-responsive-container-lg) :host-context(.sky-theme-modern) .sky-split-view{border-left:none}:host-context(.sky-responsive-container-sm) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-md) .sky-theme-modern .sky-split-view,:host-context(.sky-responsive-container-lg) .sky-theme-modern .sky-split-view{border-left:none}\n"] }]
|
|
193
186
|
}], ctorParameters: () => [{ type: i1.SkySplitViewAdapterService }, { type: i0.ChangeDetectorRef }, { type: i2.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: i3.SkySplitViewService }], propDecorators: { backButtonText: [{
|
|
194
187
|
type: Input
|
|
195
188
|
}], bindHeightToWindow: [{
|
|
@@ -202,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
202
195
|
type: ContentChild,
|
|
203
196
|
args: [SkySplitViewDrawerComponent]
|
|
204
197
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3NyYy9saWIvbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBRTFFOzs7R0FHRztBQXVCSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDOzs7O09BSUc7SUFDSCxJQUNXLGNBQWMsQ0FBQyxLQUFhO1FBQ3JDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENB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LEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsWUFBWTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbmltYXRlLFxuICBzdGF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUNvcmVBZGFwdGVyU2VydmljZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vc3BsaXQtdmlldy1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50IH0gZnJvbSAnLi9zcGxpdC12aWV3LWRyYXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICcuL3NwbGl0LXZpZXctbWVkaWEtcXVlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9zcGxpdC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3RG9ja1R5cGUgfSBmcm9tICcuL3R5cGVzL3NwbGl0LXZpZXctZG9jay10eXBlJztcbmltcG9ydCB7IFNreVNwbGl0Vmlld01lc3NhZ2UgfSBmcm9tICcuL3R5cGVzL3NwbGl0LXZpZXctbWVzc2FnZSc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdNZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvc3BsaXQtdmlldy1tZXNzYWdlLXR5cGUnO1xuXG4vKipcbiAqIERpc3BsYXlzIGEgbGlzdCBhbG9uZ3NpZGUgYSB3b3Jrc3BhY2Ugd2hlcmUgdXNlcnMgY2FuIHZpZXcgZGV0YWlscyBmb3Igc2VsZWN0ZWQgaXRlbXNcbiAqIGFuZCB0YWtlIGFjdGlvbnMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1zcGxpdC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zcGxpdC12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFNreVNwbGl0Vmlld0FkYXB0ZXJTZXJ2aWNlLFxuICAgIFNreVNwbGl0Vmlld01lZGlhUXVlcnlTZXJ2aWNlLFxuICAgIFNreVNwbGl0Vmlld1NlcnZpY2UsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignYmxvY2tBbmltYXRpb25PbkxvYWQnLCBbdHJhbnNpdGlvbignOmVudGVyJywgW10pXSksXG4gICAgdHJpZ2dlcignZHJhd2VyRW50ZXInLCBbXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgtMTAwJSknIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gdHJ1ZScsIGFuaW1hdGUoJzE1MG1zIGVhc2UtaW4nKSksXG4gICAgXSksXG4gICAgdHJpZ2dlcignd29ya3NwYWNlRW50ZXInLCBbXG4gICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZSgxMDAlKScgfSkpLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiB0cnVlJywgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicpKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U3BsaXRWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIGxhYmVsIGZvciB0aGUgYnV0dG9uIHRoYXQgYXBwZWFycyBpbiB0aGUgd29ya3NwYWNlIGhlYWRlciBpbiByZXNwb25zaXZlIG1vZGUuXG4gICAqIFRoZSBidXR0b24gcmV0dXJucyB1c2VycyB0byB0aGUgbGlzdC5cbiAgICogQGRlZmF1bHQgXCJCYWNrIHRvIGxpc3RcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBiYWNrQnV0dG9uVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNzcGxpdFZpZXdTZXJ2aWNlLnVwZGF0ZUJhY2tCdXR0b25UZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc3BsaXQgdmlldydzIGhlaWdodCBpcyBib3VuZCB0byB0aGUgd2luZG93IGhlaWdodC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGRlcHJlY2F0ZWQgV2UgcmVjb21tZW5kIHVzaW5nIHRoZSBgZG9ja2AgaW5wdXQgaW5zdGVhZC4gQW4gZXhhbXBsZSBvZiB0aGlzIGNhblxuICAgKiBiZSBmb3VuZCBpbiB0aGUgZGV2ZWxvcGVyIGNvZGUgZXhhbXBsZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGJpbmRIZWlnaHRUb1dpbmRvdyhiaW5kVG9IZWlnaHQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfYmluZEhlaWdodFRvV2luZG93ID0gYmluZFRvSGVpZ2h0O1xuXG4gICAgaWYgKHRoaXMuI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLiNiaW5kSGVpZ2h0VG9XaW5kb3dVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICB0aGlzLiNiaW5kSGVpZ2h0VG9XaW5kb3dVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGlmIChiaW5kVG9IZWlnaHQpIHtcbiAgICAgIHRoaXMuI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICAgIHRoaXMuI2FkYXB0ZXIuYmluZEhlaWdodFRvV2luZG93KFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLFxuICAgICAgICB0aGlzLiNiaW5kSGVpZ2h0VG9XaW5kb3dVbnN1YnNjcmliZSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBiaW5kSGVpZ2h0VG9XaW5kb3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19iaW5kSGVpZ2h0VG9XaW5kb3c7XG4gIH1cblxuICAvKipcbiAgICogSG93IHRoZSBzcGxpdCB2aWV3IGRvY2tzIHRvIGl0cyBjb250YWluZXIuIFVzZSBgZmlsbGAgdG8gZG9ja1xuICAgKiB0aGUgc3BsaXQgdmlldyB0byB0aGUgY29udGFpbmVyJ3Mgc2l6ZSB3aGVyZSB0aGUgY29udGFpbmVyIGlzIGEgYHNreS1wYWdlYCBjb21wb25lbnRcbiAgICogd2l0aCBpdHMgYGxheW91dGAgaW5wdXQgc2V0IHRvIGBmaXRgLCBvciB3aGVyZSB0aGUgY29udGFpbmVyIGlzIGFub3RoZXIgZWxlbWVudCB3aXRoXG4gICAqIGEgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcG9zaXRpb24gYW5kIGEgZml4ZWQgc2l6ZS5cbiAgICogQGRlZmF1bHQgXCJub25lXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZG9jayh2YWx1ZTogU2t5U3BsaXRWaWV3RG9ja1R5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfZG9jayA9IHZhbHVlIHx8ICdub25lJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZG9jaygpOiBTa3lTcGxpdFZpZXdEb2NrVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuI19kb2NrO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIHRoYXQgc2VuZHMgY29tbWFuZHMgdG8gdGhlIHNwbGl0IHZpZXcgY29tcG9uZW50LlxuICAgKiBUaGUgY29tbWFuZHMgc2hvdWxkIHJlc3BlY3QgdGhlIGBTa3lTcGxpdFZpZXdNZXNzYWdlYCB0eXBlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lTcGxpdFZpZXdNZXNzYWdlPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50KVxuICBwdWJsaWMgZHJhd2VyQ29tcG9uZW50OiBTa3lTcGxpdFZpZXdEcmF3ZXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNldCBkcmF3ZXJWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX2RyYXdlclZpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZHJhd2VyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNb2JpbGUgfHwgdGhpcy4jX2RyYXdlclZpc2libGU7XG4gIH1cblxuICBwdWJsaWMgaXNNb2JpbGUgPSBmYWxzZTtcbiAgcHVibGljIG5leHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgcHJldmlvdXNCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgd29ya3NwYWNlVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNb2JpbGUgfHwgIXRoaXMuI19kcmF3ZXJWaXNpYmxlO1xuICB9XG5cbiAgI2FuaW1hdGlvbkNvbXBsZXRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+IHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNhZGFwdGVyOiBTa3lTcGxpdFZpZXdBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgI3NwbGl0Vmlld1NlcnZpY2U6IFNreVNwbGl0Vmlld1NlcnZpY2U7XG5cbiAgI19iaW5kSGVpZ2h0VG9XaW5kb3cgPSBmYWxzZTtcbiAgI19kcmF3ZXJWaXNpYmxlID0gdHJ1ZTtcbiAgI19kb2NrOiBTa3lTcGxpdFZpZXdEb2NrVHlwZSA9ICdub25lJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGVyOiBTa3lTcGxpdFZpZXdBZGFwdGVyU2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBzcGxpdFZpZXdTZXJ2aWNlOiBTa3lTcGxpdFZpZXdTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNhZGFwdGVyID0gYWRhcHRlcjtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZiA9IGNoYW5nZURldGVjdG9yUmVmO1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZSA9IGNvcmVBZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLiNzcGxpdFZpZXdTZXJ2aWNlID0gc3BsaXRWaWV3U2VydmljZTtcblxuICAgIHNwbGl0Vmlld1NlcnZpY2Uuc3BsaXRWaWV3RWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc3BsaXRWaWV3U2VydmljZS5pc01vYmlsZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBtb2JpbGU7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNzcGxpdFZpZXdTZXJ2aWNlLmRyYXdlclZpc2libGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZpc2libGU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5kcmF3ZXJWaXNpYmxlID0gdmlzaWJsZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lTcGxpdFZpZXdNZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuI2hhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jYmluZEhlaWdodFRvV2luZG93VW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgIHRoaXMuI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uV29ya3NwYWNlRW50ZXJDb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNhbmltYXRpb25Db21wbGV0ZS5uZXh0KCk7XG4gIH1cblxuICAjYXBwbHlBdXRvZm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgYXBwbHlBdXRvRm9jdXMgPSB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UuYXBwbHlBdXRvRm9jdXMoXG4gICAgICB0aGlzLiNlbGVtZW50UmVmLFxuICAgICk7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKCFhcHBseUF1dG9Gb2N1cykge1xuICAgICAgdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuQW5kQXBwbHlGb2N1cyhcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZixcbiAgICAgICAgJy5za3ktc3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudCcsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVNwbGl0Vmlld01lc3NhZ2UpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgY2FzZSBTa3lTcGxpdFZpZXdNZXNzYWdlVHlwZS5Gb2N1c1dvcmtzcGFjZTpcbiAgICAgICAgLy8gSWYgbW9iaWxlLCB3YWl0IHVudGlsIGFuaW1hdGlvbiBpcyBjb21wbGV0ZSB0aGVuIHNldCBmb2N1cyBvbiB3b3Jrc3BhY2UgcGFuZWwuXG4gICAgICAgIC8vIE90aGVyd2lzZSwganVzdCBzZXQgZm9jdXMgcmlnaHQgYXdheS5cbiAgICAgICAgaWYgKCF0aGlzLndvcmtzcGFjZVZpc2libGUpIHtcbiAgICAgICAgICB0aGlzLmRyYXdlclZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLiNhbmltYXRpb25Db21wbGV0ZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiNhcHBseUF1dG9mb2N1cygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuI2FwcGx5QXV0b2ZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1zcGxpdC12aWV3XCJcbiAgW25nQ2xhc3NdPVwiJ3NreS1zcGxpdC12aWV3LWRvY2stJyArIGRvY2tcIlxuICBbQGJsb2NrQW5pbWF0aW9uT25Mb2FkXVxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktc3BsaXQtdmlldy1kcmF3ZXItZmxleC1jb250YWluZXJcIlxuICAgIFtoaWRkZW5dPVwiIWRyYXdlclZpc2libGVcIlxuICAgIFtAZHJhd2VyRW50ZXJdPVwiZHJhd2VyVmlzaWJsZVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktc3BsaXQtdmlldy1kcmF3ZXJcIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktc3BsaXQtdmlldy13b3Jrc3BhY2UtZmxleC1jb250YWluZXJcIlxuICAgIFtoaWRkZW5dPVwiIXdvcmtzcGFjZVZpc2libGVcIlxuICAgIFtAd29ya3NwYWNlRW50ZXJdPVwid29ya3NwYWNlVmlzaWJsZVwiXG4gICAgKEB3b3Jrc3BhY2VFbnRlci5kb25lKT1cIm9uV29ya3NwYWNlRW50ZXJDb21wbGV0ZSgpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1zcGxpdC12aWV3LXdvcmtzcGFjZVwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcGxpdC12aWV3L3NyYy9saWIvbW9kdWxlcy9zcGxpdC12aWV3L3NwbGl0LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXlCLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBRTFFOzs7R0FHRztBQXNCSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDOzs7O09BSUc7SUFDSCxJQUNXLGNBQWMsQ0FBQyxL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RHhCLEtBQUs7Z0JBY0ssa0JBQWtCO3NCQUQ1QixLQUFLO2dCQThCSyxJQUFJO3NCQURkLEtBQUs7Z0JBY0MsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxlQUFlO3NCQURyQixZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFuaW1hdGUsXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUNvcmVBZGFwdGVyU2VydmljZSwgU2t5UmVzcG9uc2l2ZUhvc3REaXJlY3RpdmUgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5U3BsaXRWaWV3QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL3NwbGl0LXZpZXctYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVNwbGl0Vmlld0RyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVNwbGl0Vmlld1NlcnZpY2UgfSBmcm9tICcuL3NwbGl0LXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdEb2NrVHlwZSB9IGZyb20gJy4vdHlwZXMvc3BsaXQtdmlldy1kb2NrLXR5cGUnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3TWVzc2FnZSB9IGZyb20gJy4vdHlwZXMvc3BsaXQtdmlldy1tZXNzYWdlJztcbmltcG9ydCB7IFNreVNwbGl0Vmlld01lc3NhZ2VUeXBlIH0gZnJvbSAnLi90eXBlcy9zcGxpdC12aWV3LW1lc3NhZ2UtdHlwZSc7XG5cbi8qKlxuICogRGlzcGxheXMgYSBsaXN0IGFsb25nc2lkZSBhIHdvcmtzcGFjZSB3aGVyZSB1c2VycyBjYW4gdmlldyBkZXRhaWxzIGZvciBzZWxlY3RlZCBpdGVtc1xuICogYW5kIHRha2UgYWN0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdibG9ja0FuaW1hdGlvbk9uTG9hZCcsIFt0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXSldKSxcbiAgICB0cmlnZ2VyKCdkcmF3ZXJFbnRlcicsIFtcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlKC0xMDAlKScgfSkpLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiB0cnVlJywgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicpKSxcbiAgICBdKSxcbiAgICB0cmlnZ2VyKCd3b3Jrc3BhY2VFbnRlcicsIFtcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDEwMCUpJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IHRydWUnLCBhbmltYXRlKCcxNTBtcyBlYXNlLWluJykpLFxuICAgIF0pLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTa3lSZXNwb25zaXZlSG9zdERpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtTa3lTcGxpdFZpZXdBZGFwdGVyU2VydmljZSwgU2t5U3BsaXRWaWV3U2VydmljZV0sXG4gIHNlbGVjdG9yOiAnc2t5LXNwbGl0LXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZVVybDogJy4vc3BsaXQtdmlldy5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zcGxpdC12aWV3LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U3BsaXRWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIGxhYmVsIGZvciB0aGUgYnV0dG9uIHRoYXQgYXBwZWFycyBpbiB0aGUgd29ya3NwYWNlIGhlYWRlciBpbiByZXNwb25zaXZlIG1vZGUuXG4gICAqIFRoZSBidXR0b24gcmV0dXJucyB1c2VycyB0byB0aGUgbGlzdC5cbiAgICogQGRlZmF1bHQgXCJCYWNrIHRvIGxpc3RcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBiYWNrQnV0dG9uVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNzcGxpdFZpZXdTZXJ2aWNlLnVwZGF0ZUJhY2tCdXR0b25UZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc3BsaXQgdmlldydzIGhlaWdodCBpcyBib3VuZCB0byB0aGUgd2luZG93IGhlaWdodC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGRlcHJlY2F0ZWQgV2UgcmVjb21tZW5kIHVzaW5nIHRoZSBgZG9ja2AgaW5wdXQgaW5zdGVhZC4gQW4gZXhhbXBsZSBvZiB0aGlzIGNhblxuICAgKiBiZSBmb3VuZCBpbiB0aGUgZGV2ZWxvcGVyIGNvZGUgZXhhbXBsZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGJpbmRIZWlnaHRUb1dpbmRvdyhiaW5kVG9IZWlnaHQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfYmluZEhlaWdodFRvV2luZG93ID0gYmluZFRvSGVpZ2h0O1xuXG4gICAgaWYgKHRoaXMuI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLiNiaW5kSGVpZ2h0VG9XaW5kb3dVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICB0aGlzLiNiaW5kSGVpZ2h0VG9XaW5kb3dVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGlmIChiaW5kVG9IZWlnaHQpIHtcbiAgICAgIHRoaXMuI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICAgIHRoaXMuI2FkYXB0ZXIuYmluZEhlaWdodFRvV2luZG93KFxuICAgICAgICB0aGlzLiNlbGVtZW50UmVmLFxuICAgICAgICB0aGlzLiNiaW5kSGVpZ2h0VG9XaW5kb3dVbnN1YnNjcmliZSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBiaW5kSGVpZ2h0VG9XaW5kb3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19iaW5kSGVpZ2h0VG9XaW5kb3c7XG4gIH1cblxuICAvKipcbiAgICogSG93IHRoZSBzcGxpdCB2aWV3IGRvY2tzIHRvIGl0cyBjb250YWluZXIuIFVzZSBgZmlsbGAgdG8gZG9ja1xuICAgKiB0aGUgc3BsaXQgdmlldyB0byB0aGUgY29udGFpbmVyJ3Mgc2l6ZSB3aGVyZSB0aGUgY29udGFpbmVyIGlzIGEgYHNreS1wYWdlYCBjb21wb25lbnRcbiAgICogd2l0aCBpdHMgYGxheW91dGAgaW5wdXQgc2V0IHRvIGBmaXRgLCBvciB3aGVyZSB0aGUgY29udGFpbmVyIGlzIGFub3RoZXIgZWxlbWVudCB3aXRoXG4gICAqIGEgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcG9zaXRpb24gYW5kIGEgZml4ZWQgc2l6ZS5cbiAgICogQGRlZmF1bHQgXCJub25lXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZG9jayh2YWx1ZTogU2t5U3BsaXRWaWV3RG9ja1R5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfZG9jayA9IHZhbHVlIHx8ICdub25lJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZG9jaygpOiBTa3lTcGxpdFZpZXdEb2NrVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuI19kb2NrO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvYnNlcnZhYmxlIHRoYXQgc2VuZHMgY29tbWFuZHMgdG8gdGhlIHNwbGl0IHZpZXcgY29tcG9uZW50LlxuICAgKiBUaGUgY29tbWFuZHMgc2hvdWxkIHJlc3BlY3QgdGhlIGBTa3lTcGxpdFZpZXdNZXNzYWdlYCB0eXBlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lc3NhZ2VTdHJlYW0gPSBuZXcgU3ViamVjdDxTa3lTcGxpdFZpZXdNZXNzYWdlPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50KVxuICBwdWJsaWMgZHJhd2VyQ29tcG9uZW50OiBTa3lTcGxpdFZpZXdEcmF3ZXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNldCBkcmF3ZXJWaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jX2RyYXdlclZpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZHJhd2VyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNb2JpbGUgfHwgdGhpcy4jX2RyYXdlclZpc2libGU7XG4gIH1cblxuICBwdWJsaWMgaXNNb2JpbGUgPSBmYWxzZTtcbiAgcHVibGljIG5leHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgcHJldmlvdXNCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgd29ya3NwYWNlVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNb2JpbGUgfHwgIXRoaXMuI19kcmF3ZXJWaXNpYmxlO1xuICB9XG5cbiAgI2FuaW1hdGlvbkNvbXBsZXRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+IHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNhZGFwdGVyOiBTa3lTcGxpdFZpZXdBZGFwdGVyU2VydmljZTtcbiAgI2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI2NvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuICAjZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgI3NwbGl0Vmlld1NlcnZpY2U6IFNreVNwbGl0Vmlld1NlcnZpY2U7XG5cbiAgI19iaW5kSGVpZ2h0VG9XaW5kb3cgPSBmYWxzZTtcbiAgI19kcmF3ZXJWaXNpYmxlID0gdHJ1ZTtcbiAgI19kb2NrOiBTa3lTcGxpdFZpZXdEb2NrVHlwZSA9ICdub25lJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZGFwdGVyOiBTa3lTcGxpdFZpZXdBZGFwdGVyU2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBzcGxpdFZpZXdTZXJ2aWNlOiBTa3lTcGxpdFZpZXdTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNhZGFwdGVyID0gYWRhcHRlcjtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvclJlZiA9IGNoYW5nZURldGVjdG9yUmVmO1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZSA9IGNvcmVBZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgICB0aGlzLiNzcGxpdFZpZXdTZXJ2aWNlID0gc3BsaXRWaWV3U2VydmljZTtcblxuICAgIHNwbGl0Vmlld1NlcnZpY2Uuc3BsaXRWaWV3RWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jc3BsaXRWaWV3U2VydmljZS5pc01vYmlsZVN0cmVhbVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBtb2JpbGU7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLiNzcGxpdFZpZXdTZXJ2aWNlLmRyYXdlclZpc2libGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZpc2libGU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5kcmF3ZXJWaXNpYmxlID0gdmlzaWJsZTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5tZXNzYWdlU3RyZWFtXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlOiBTa3lTcGxpdFZpZXdNZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuI2hhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jYmluZEhlaWdodFRvV2luZG93VW5zdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgIHRoaXMuI2JpbmRIZWlnaHRUb1dpbmRvd1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uV29ya3NwYWNlRW50ZXJDb21wbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLiNhbmltYXRpb25Db21wbGV0ZS5uZXh0KCk7XG4gIH1cblxuICAjYXBwbHlBdXRvZm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgYXBwbHlBdXRvRm9jdXMgPSB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UuYXBwbHlBdXRvRm9jdXMoXG4gICAgICB0aGlzLiNlbGVtZW50UmVmLFxuICAgICk7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKCFhcHBseUF1dG9Gb2N1cykge1xuICAgICAgdGhpcy4jY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuQW5kQXBwbHlGb2N1cyhcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZixcbiAgICAgICAgJy5za3ktc3BsaXQtdmlldy13b3Jrc3BhY2UtY29udGVudCcsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICNoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVNwbGl0Vmlld01lc3NhZ2UpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgY2FzZSBTa3lTcGxpdFZpZXdNZXNzYWdlVHlwZS5Gb2N1c1dvcmtzcGFjZTpcbiAgICAgICAgLy8gSWYgbW9iaWxlLCB3YWl0IHVudGlsIGFuaW1hdGlvbiBpcyBjb21wbGV0ZSB0aGVuIHNldCBmb2N1cyBvbiB3b3Jrc3BhY2UgcGFuZWwuXG4gICAgICAgIC8vIE90aGVyd2lzZSwganVzdCBzZXQgZm9jdXMgcmlnaHQgYXdheS5cbiAgICAgICAgaWYgKCF0aGlzLndvcmtzcGFjZVZpc2libGUpIHtcbiAgICAgICAgICB0aGlzLmRyYXdlclZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLiNhbmltYXRpb25Db21wbGV0ZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiNhcHBseUF1dG9mb2N1cygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuI2FwcGx5QXV0b2ZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1zcGxpdC12aWV3XCJcbiAgW25nQ2xhc3NdPVwiJ3NreS1zcGxpdC12aWV3LWRvY2stJyArIGRvY2tcIlxuICBbQGJsb2NrQW5pbWF0aW9uT25Mb2FkXVxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktc3BsaXQtdmlldy1kcmF3ZXItZmxleC1jb250YWluZXJcIlxuICAgIFtoaWRkZW5dPVwiIWRyYXdlclZpc2libGVcIlxuICAgIFtAZHJhd2VyRW50ZXJdPVwiZHJhd2VyVmlzaWJsZVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktc3BsaXQtdmlldy1kcmF3ZXJcIiAvPlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktc3BsaXQtdmlldy13b3Jrc3BhY2UtZmxleC1jb250YWluZXJcIlxuICAgIFtoaWRkZW5dPVwiIXdvcmtzcGFjZVZpc2libGVcIlxuICAgIFtAd29ya3NwYWNlRW50ZXJdPVwid29ya3NwYWNlVmlzaWJsZVwiXG4gICAgKEB3b3Jrc3BhY2VFbnRlci5kb25lKT1cIm9uV29ya3NwYWNlRW50ZXJDb21wbGV0ZSgpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNreS1zcGxpdC12aWV3LXdvcmtzcGFjZVwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
1
|
import { NgModule } from '@angular/core';
|
|
3
|
-
import { SkyIconModule } from '@skyux/icon';
|
|
4
|
-
import { SkyThemeModule } from '@skyux/theme';
|
|
5
|
-
import { SkySplitViewResourcesModule } from '../shared/sky-split-view-resources.module';
|
|
6
2
|
import { SkySplitViewDrawerComponent } from './split-view-drawer.component';
|
|
7
3
|
import { SkySplitViewWorkspaceContentComponent } from './split-view-workspace-content.component';
|
|
8
4
|
import { SkySplitViewWorkspaceFooterComponent } from './split-view-workspace-footer.component';
|
|
@@ -12,29 +8,26 @@ import { SkySplitViewComponent } from './split-view.component';
|
|
|
12
8
|
import * as i0 from "@angular/core";
|
|
13
9
|
export class SkySplitViewModule {
|
|
14
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
15
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule,
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, imports: [SkySplitViewComponent,
|
|
16
12
|
SkySplitViewDrawerComponent,
|
|
17
13
|
SkySplitViewWorkspaceComponent,
|
|
18
14
|
SkySplitViewWorkspaceContentComponent,
|
|
19
15
|
SkySplitViewWorkspaceFooterComponent,
|
|
20
|
-
SkySplitViewWorkspaceHeaderComponent],
|
|
21
|
-
SkyIconModule,
|
|
22
|
-
SkySplitViewResourcesModule,
|
|
23
|
-
SkyThemeModule], exports: [SkySplitViewComponent,
|
|
16
|
+
SkySplitViewWorkspaceHeaderComponent], exports: [SkySplitViewComponent,
|
|
24
17
|
SkySplitViewDrawerComponent,
|
|
25
18
|
SkySplitViewWorkspaceComponent,
|
|
26
19
|
SkySplitViewWorkspaceContentComponent,
|
|
27
20
|
SkySplitViewWorkspaceFooterComponent,
|
|
28
21
|
SkySplitViewWorkspaceHeaderComponent] }); }
|
|
29
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, imports: [
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
22
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, imports: [SkySplitViewComponent,
|
|
23
|
+
SkySplitViewDrawerComponent,
|
|
24
|
+
SkySplitViewWorkspaceComponent,
|
|
25
|
+
SkySplitViewWorkspaceHeaderComponent] }); }
|
|
33
26
|
}
|
|
34
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewModule, decorators: [{
|
|
35
28
|
type: NgModule,
|
|
36
29
|
args: [{
|
|
37
|
-
|
|
30
|
+
imports: [
|
|
38
31
|
SkySplitViewComponent,
|
|
39
32
|
SkySplitViewDrawerComponent,
|
|
40
33
|
SkySplitViewWorkspaceComponent,
|
|
@@ -42,12 +35,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
42
35
|
SkySplitViewWorkspaceFooterComponent,
|
|
43
36
|
SkySplitViewWorkspaceHeaderComponent,
|
|
44
37
|
],
|
|
45
|
-
imports: [
|
|
46
|
-
CommonModule,
|
|
47
|
-
SkyIconModule,
|
|
48
|
-
SkySplitViewResourcesModule,
|
|
49
|
-
SkyThemeModule,
|
|
50
|
-
],
|
|
51
38
|
exports: [
|
|
52
39
|
SkySplitViewComponent,
|
|
53
40
|
SkySplitViewDrawerComponent,
|
|
@@ -58,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
|
|
|
58
45
|
],
|
|
59
46
|
}]
|
|
60
47
|
}] });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQW9CL0QsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFoQjNCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsOEJBQThCO1lBQzlCLHFDQUFxQztZQUNyQyxvQ0FBb0M7WUFDcEMsb0NBQW9DLGFBR3BDLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsOEJBQThCO1lBQzlCLHFDQUFxQztZQUNyQyxvQ0FBb0M7WUFDcEMsb0NBQW9DOytHQUczQixrQkFBa0IsWUFoQjNCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsOEJBQThCO1lBRzlCLG9DQUFvQzs7MkZBVzNCLGtCQUFrQjtrQkFsQjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUMzQiw4QkFBOEI7d0JBQzlCLHFDQUFxQzt3QkFDckMsb0NBQW9DO3dCQUNwQyxvQ0FBb0M7cUJBQ3JDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0IsOEJBQThCO3dCQUM5QixxQ0FBcUM7d0JBQ3JDLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3FCQUNyQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVNwbGl0Vmlld0RyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL3NwbGl0LXZpZXctd29ya3NwYWNlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3NwbGl0LXZpZXctd29ya3NwYWNlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3V29ya3NwYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9zcGxpdC12aWV3LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTa3lTcGxpdFZpZXdDb21wb25lbnQsXG4gICAgU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50Q29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3RlckNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lTcGxpdFZpZXdDb21wb25lbnQsXG4gICAgU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50Q29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3RlckNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVNwbGl0Vmlld01vZHVsZSB7fVxuIl19
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { SkyMediaQueryService } from '@skyux/core';
|
|
3
4
|
import { BehaviorSubject } from 'rxjs';
|
|
4
5
|
import { take } from 'rxjs/operators';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@skyux/
|
|
7
|
-
import * as i2 from "@skyux/i18n";
|
|
7
|
+
import * as i1 from "@skyux/i18n";
|
|
8
8
|
/**
|
|
9
9
|
* Internal service for operations between the split view drawer and workspace.
|
|
10
10
|
* @internal
|
|
@@ -13,9 +13,6 @@ export class SkySplitViewService {
|
|
|
13
13
|
get backButtonTextStream() {
|
|
14
14
|
return this.#_backButtonTextStream;
|
|
15
15
|
}
|
|
16
|
-
get drawerWidthStream() {
|
|
17
|
-
return this.#_drawerWidthStream;
|
|
18
|
-
}
|
|
19
16
|
set isMobile(value) {
|
|
20
17
|
this.#_isMobile = value;
|
|
21
18
|
}
|
|
@@ -25,15 +22,12 @@ export class SkySplitViewService {
|
|
|
25
22
|
get isMobileStream() {
|
|
26
23
|
return this.#_isMobileStream;
|
|
27
24
|
}
|
|
28
|
-
#mediaQueryServiceSubscription;
|
|
29
25
|
#_backButtonTextStream;
|
|
30
|
-
#_drawerWidthStream;
|
|
31
26
|
#_isMobile;
|
|
32
27
|
#_isMobileStream;
|
|
33
|
-
constructor(
|
|
28
|
+
constructor(resources) {
|
|
34
29
|
this.drawerVisible = new BehaviorSubject(true);
|
|
35
30
|
this.#_backButtonTextStream = new BehaviorSubject('');
|
|
36
|
-
this.#_drawerWidthStream = new BehaviorSubject(320);
|
|
37
31
|
this.#_isMobile = false;
|
|
38
32
|
this.#_isMobileStream = new BehaviorSubject(false);
|
|
39
33
|
// Set default back button text.
|
|
@@ -44,8 +38,10 @@ export class SkySplitViewService {
|
|
|
44
38
|
this.updateBackButtonText(resource);
|
|
45
39
|
});
|
|
46
40
|
// Set breakpoint.
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
inject(SkyMediaQueryService)
|
|
42
|
+
.breakpointChange.pipe(takeUntilDestroyed())
|
|
43
|
+
.subscribe((breakpoint) => {
|
|
44
|
+
const nowMobile = breakpoint === 'xs';
|
|
49
45
|
if (nowMobile && !this.isMobile) {
|
|
50
46
|
// switching to mobile
|
|
51
47
|
this.#_isMobileStream.next(true);
|
|
@@ -59,22 +55,16 @@ export class SkySplitViewService {
|
|
|
59
55
|
this.isMobile = nowMobile;
|
|
60
56
|
});
|
|
61
57
|
}
|
|
62
|
-
ngOnDestroy() {
|
|
63
|
-
this.#mediaQueryServiceSubscription.unsubscribe();
|
|
64
|
-
}
|
|
65
58
|
backButtonClick() {
|
|
66
59
|
this.drawerVisible.next(true);
|
|
67
60
|
}
|
|
68
61
|
updateBackButtonText(text) {
|
|
69
62
|
this.#_backButtonTextStream.next(text);
|
|
70
63
|
}
|
|
71
|
-
|
|
72
|
-
this.#_drawerWidthStream.next(drawerWidth);
|
|
73
|
-
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewService, deps: [{ token: i1.SkyMediaQueryService }, { token: i2.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewService, deps: [{ token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
75
65
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewService }); }
|
|
76
66
|
}
|
|
77
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SkySplitViewService, decorators: [{
|
|
78
68
|
type: Injectable
|
|
79
|
-
}], ctorParameters: () => [{ type: i1.
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
}], ctorParameters: () => [{ type: i1.SkyLibResourcesService }] });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUduRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXRDOzs7R0FHRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQU1ELElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsc0JBQXNCLENBQW1DO0lBQ3pELFVBQVUsQ0FBUztJQUNuQixnQkFBZ0IsQ0FBdUM7SUFFdkQsWUFBWSxTQUFpQztRQXBCdEMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQWdCMUQsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUdyRCxnQ0FBZ0M7UUFDaEMsU0FBUzthQUNOLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQzthQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUwsa0JBQWtCO1FBQ2xCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQzthQUN6QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMzQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxVQUFVLEtBQUssSUFBSSxDQUFDO1lBRXRDLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxzQkFBc0I7Z0JBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3ZDLDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLElBQVk7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQTNEVSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogSW50ZXJuYWwgc2VydmljZSBmb3Igb3BlcmF0aW9ucyBiZXR3ZWVuIHRoZSBzcGxpdCB2aWV3IGRyYXdlciBhbmQgd29ya3NwYWNlLlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lTcGxpdFZpZXdTZXJ2aWNlIHtcbiAgcHVibGljIGdldCBiYWNrQnV0dG9uVGV4dFN0cmVhbSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLiNfYmFja0J1dHRvblRleHRTdHJlYW07XG4gIH1cblxuICBwdWJsaWMgZHJhd2VyVmlzaWJsZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcHVibGljIHNwbGl0Vmlld0VsZW1lbnRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNldCBpc01vYmlsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19pc01vYmlsZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzTW9iaWxlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc01vYmlsZVN0cmVhbSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jX2lzTW9iaWxlU3RyZWFtO1xuICB9XG5cbiAgI19iYWNrQnV0dG9uVGV4dFN0cmVhbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICNfaXNNb2JpbGUgPSBmYWxzZTtcbiAgI19pc01vYmlsZVN0cmVhbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlczogU2t5TGliUmVzb3VyY2VzU2VydmljZSkge1xuICAgIC8vIFNldCBkZWZhdWx0IGJhY2sgYnV0dG9uIHRleHQuXG4gICAgcmVzb3VyY2VzXG4gICAgICAuZ2V0U3RyaW5nKCdza3l1eF9zcGxpdF92aWV3X2JhY2tfdG9fbGlzdCcpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2UpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVCYWNrQnV0dG9uVGV4dChyZXNvdXJjZSk7XG4gICAgICB9KTtcblxuICAgIC8vIFNldCBicmVha3BvaW50LlxuICAgIGluamVjdChTa3lNZWRpYVF1ZXJ5U2VydmljZSlcbiAgICAgIC5icmVha3BvaW50Q2hhbmdlLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChicmVha3BvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5vd01vYmlsZSA9IGJyZWFrcG9pbnQgPT09ICd4cyc7XG5cbiAgICAgICAgaWYgKG5vd01vYmlsZSAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgIC8vIHN3aXRjaGluZyB0byBtb2JpbGVcbiAgICAgICAgICB0aGlzLiNfaXNNb2JpbGVTdHJlYW0ubmV4dCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmRyYXdlclZpc2libGUubmV4dChmYWxzZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW5vd01vYmlsZSAmJiB0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgLy8gc3dpdGNoaW5nIHRvIHdpZGVzY3JlZW5cbiAgICAgICAgICB0aGlzLiNfaXNNb2JpbGVTdHJlYW0ubmV4dChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5kcmF3ZXJWaXNpYmxlLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IG5vd01vYmlsZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGJhY2tCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdlclZpc2libGUubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVCYWNrQnV0dG9uVGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiNfYmFja0J1dHRvblRleHRTdHJlYW0ubmV4dCh0ZXh0KTtcbiAgfVxufVxuIl19
|