@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.
Files changed (22) hide show
  1. package/documentation.json +349 -1042
  2. package/esm2022/lib/modules/split-view/split-view-drawer.component.mjs +10 -38
  3. package/esm2022/lib/modules/split-view/split-view-workspace-content.component.mjs +9 -11
  4. package/esm2022/lib/modules/split-view/split-view-workspace-footer.component.mjs +5 -3
  5. package/esm2022/lib/modules/split-view/split-view-workspace-header.component.mjs +4 -3
  6. package/esm2022/lib/modules/split-view/split-view-workspace.component.mjs +14 -80
  7. package/esm2022/lib/modules/split-view/split-view.component.mjs +6 -13
  8. package/esm2022/lib/modules/split-view/split-view.module.mjs +8 -21
  9. package/esm2022/lib/modules/split-view/split-view.service.mjs +12 -22
  10. package/fesm2022/skyux-split-view.mjs +53 -244
  11. package/fesm2022/skyux-split-view.mjs.map +1 -1
  12. package/lib/modules/split-view/split-view-drawer.component.d.ts +4 -6
  13. package/lib/modules/split-view/split-view-workspace-content.component.d.ts +2 -2
  14. package/lib/modules/split-view/split-view-workspace-footer.component.d.ts +2 -1
  15. package/lib/modules/split-view/split-view-workspace-header.component.d.ts +1 -1
  16. package/lib/modules/split-view/split-view-workspace.component.d.ts +3 -15
  17. package/lib/modules/split-view/split-view.component.d.ts +2 -1
  18. package/lib/modules/split-view/split-view.module.d.ts +1 -5
  19. package/lib/modules/split-view/split-view.service.d.ts +3 -7
  20. package/package.json +6 -6
  21. package/esm2022/lib/modules/split-view/split-view-media-query.service.mjs +0 -76
  22. 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: [{ selector: 'sky-split-view', providers: [
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, declarations: [SkySplitViewComponent,
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], imports: [CommonModule,
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: [CommonModule,
30
- SkyIconModule,
31
- SkySplitViewResourcesModule,
32
- SkyThemeModule] }); }
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
- declarations: [
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFeEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakcsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0YsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0YsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBMEIvRCxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixpQkF0QjNCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsOEJBQThCO1lBQzlCLHFDQUFxQztZQUNyQyxvQ0FBb0M7WUFDcEMsb0NBQW9DLGFBR3BDLFlBQVk7WUFDWixhQUFhO1lBQ2IsMkJBQTJCO1lBQzNCLGNBQWMsYUFHZCxxQkFBcUI7WUFDckIsMkJBQTJCO1lBQzNCLDhCQUE4QjtZQUM5QixxQ0FBcUM7WUFDckMsb0NBQW9DO1lBQ3BDLG9DQUFvQzsrR0FHM0Isa0JBQWtCLFlBZDNCLFlBQVk7WUFDWixhQUFhO1lBQ2IsMkJBQTJCO1lBQzNCLGNBQWM7OzJGQVdMLGtCQUFrQjtrQkF4QjlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUMzQiw4QkFBOEI7d0JBQzlCLHFDQUFxQzt3QkFDckMsb0NBQW9DO3dCQUNwQyxvQ0FBb0M7cUJBQ3JDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsMkJBQTJCO3dCQUMzQixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0IsOEJBQThCO3dCQUM5QixxQ0FBcUM7d0JBQ3JDLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3FCQUNyQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pY29uJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5U3BsaXRWaWV3UmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1zcGxpdC12aWV3LXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdEcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL3NwbGl0LXZpZXctZHJhd2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL3NwbGl0LXZpZXctd29ya3NwYWNlLWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3V29ya3NwYWNlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVNwbGl0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQtdmlldy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTa3lTcGxpdFZpZXdDb21wb25lbnQsXG4gICAgU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50Q29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3RlckNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5SWNvbk1vZHVsZSxcbiAgICBTa3lTcGxpdFZpZXdSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lTcGxpdFZpZXdDb21wb25lbnQsXG4gICAgU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50Q29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3RlckNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVNwbGl0Vmlld01vZHVsZSB7fVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3BsaXQtdmlldy9zcmMvbGliL21vZHVsZXMvc3BsaXQtdmlldy9zcGxpdC12aWV3Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9GLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQW9CL0QsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFoQjNCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsOEJBQThCO1lBQzlCLHFDQUFxQztZQUNyQyxvQ0FBb0M7WUFDcEMsb0NBQW9DLGFBR3BDLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsOEJBQThCO1lBQzlCLHFDQUFxQztZQUNyQyxvQ0FBb0M7WUFDcEMsb0NBQW9DOytHQUczQixrQkFBa0IsWUFoQjNCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsOEJBQThCO1lBRzlCLG9DQUFvQzs7MkZBVzNCLGtCQUFrQjtrQkFsQjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUMzQiw4QkFBOEI7d0JBQzlCLHFDQUFxQzt3QkFDckMsb0NBQW9DO3dCQUNwQyxvQ0FBb0M7cUJBQ3JDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0IsOEJBQThCO3dCQUM5QixxQ0FBcUM7d0JBQ3JDLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3FCQUNyQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVNwbGl0Vmlld0RyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQtdmlldy1kcmF3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL3NwbGl0LXZpZXctd29ya3NwYWNlLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vc3BsaXQtdmlldy13b3Jrc3BhY2UtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3NwbGl0LXZpZXctd29ya3NwYWNlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3V29ya3NwYWNlQ29tcG9uZW50IH0gZnJvbSAnLi9zcGxpdC12aWV3LXdvcmtzcGFjZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U3BsaXRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9zcGxpdC12aWV3LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTa3lTcGxpdFZpZXdDb21wb25lbnQsXG4gICAgU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50Q29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3RlckNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lTcGxpdFZpZXdDb21wb25lbnQsXG4gICAgU2t5U3BsaXRWaWV3RHJhd2VyQ29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VDb250ZW50Q29tcG9uZW50LFxuICAgIFNreVNwbGl0Vmlld1dvcmtzcGFjZUZvb3RlckNvbXBvbmVudCxcbiAgICBTa3lTcGxpdFZpZXdXb3Jrc3BhY2VIZWFkZXJDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVNwbGl0Vmlld01vZHVsZSB7fVxuIl19
@@ -1,10 +1,10 @@
1
- import { Injectable } from '@angular/core';
2
- import { SkyMediaBreakpoints } from '@skyux/core';
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/core";
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(mediaQueryService, resources) {
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
- this.#mediaQueryServiceSubscription = mediaQueryService.subscribe((breakpoint) => {
48
- const nowMobile = breakpoint === SkyMediaBreakpoints.xs;
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
- updateDrawerWidth(drawerWidth) {
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.SkyMediaQueryService }, { type: i2.SkyLibResourcesService }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUF3QixNQUFNLGFBQWEsQ0FBQztBQUd4RSxPQUFPLEVBQUUsZUFBZSxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFdEM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixJQUFXLG9CQUFvQjtRQUM3QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0lBSUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUlELElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsOEJBQThCLENBQWU7SUFFN0Msc0JBQXNCLENBQW1DO0lBQ3pELG1CQUFtQixDQUFvQztJQUN2RCxVQUFVLENBQVM7SUFDbkIsZ0JBQWdCLENBQXVDO0lBRXZELFlBQ0UsaUJBQXVDLEVBQ3ZDLFNBQWlDO1FBN0I1QixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBc0IxRCwyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUN6RCx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxHQUFHLENBQUMsQ0FBQztRQUN2RCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBTXJELGdDQUFnQztRQUNoQyxTQUFTO2FBQ04sU0FBUyxDQUFDLCtCQUErQixDQUFDO2FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFTCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLDhCQUE4QixHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FDL0QsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNiLE1BQU0sU0FBUyxHQUFHLFVBQVUsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7WUFDeEQsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLHNCQUFzQjtnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQztpQkFBTSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdkMsMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDNUIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsOEJBQThCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLElBQVk7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0saUJBQWlCLENBQUMsV0FBbUI7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQTVFVSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cywgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBzZXJ2aWNlIGZvciBvcGVyYXRpb25zIGJldHdlZW4gdGhlIHNwbGl0IHZpZXcgZHJhd2VyIGFuZCB3b3Jrc3BhY2UuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVNwbGl0Vmlld1NlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZ2V0IGJhY2tCdXR0b25UZXh0U3RyZWFtKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuI19iYWNrQnV0dG9uVGV4dFN0cmVhbTtcbiAgfVxuXG4gIHB1YmxpYyBkcmF3ZXJWaXNpYmxlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICBwdWJsaWMgZ2V0IGRyYXdlcldpZHRoU3RyZWFtKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuI19kcmF3ZXJXaWR0aFN0cmVhbTtcbiAgfVxuXG4gIHB1YmxpYyBzcGxpdFZpZXdFbGVtZW50UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzZXQgaXNNb2JpbGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfaXNNb2JpbGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuI19pc01vYmlsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNNb2JpbGVTdHJlYW0oKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuI19pc01vYmlsZVN0cmVhbTtcbiAgfVxuXG4gICNtZWRpYVF1ZXJ5U2VydmljZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICNfYmFja0J1dHRvblRleHRTdHJlYW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAjX2RyYXdlcldpZHRoU3RyZWFtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDMyMCk7XG4gICNfaXNNb2JpbGUgPSBmYWxzZTtcbiAgI19pc01vYmlsZVN0cmVhbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lZGlhUXVlcnlTZXJ2aWNlOiBTa3lNZWRpYVF1ZXJ5U2VydmljZSxcbiAgICByZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICkge1xuICAgIC8vIFNldCBkZWZhdWx0IGJhY2sgYnV0dG9uIHRleHQuXG4gICAgcmVzb3VyY2VzXG4gICAgICAuZ2V0U3RyaW5nKCdza3l1eF9zcGxpdF92aWV3X2JhY2tfdG9fbGlzdCcpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2UpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVCYWNrQnV0dG9uVGV4dChyZXNvdXJjZSk7XG4gICAgICB9KTtcblxuICAgIC8vIFNldCBicmVha3BvaW50LlxuICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlU3Vic2NyaXB0aW9uID0gbWVkaWFRdWVyeVNlcnZpY2Uuc3Vic2NyaWJlKFxuICAgICAgKGJyZWFrcG9pbnQpID0+IHtcbiAgICAgICAgY29uc3Qgbm93TW9iaWxlID0gYnJlYWtwb2ludCA9PT0gU2t5TWVkaWFCcmVha3BvaW50cy54cztcbiAgICAgICAgaWYgKG5vd01vYmlsZSAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgIC8vIHN3aXRjaGluZyB0byBtb2JpbGVcbiAgICAgICAgICB0aGlzLiNfaXNNb2JpbGVTdHJlYW0ubmV4dCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmRyYXdlclZpc2libGUubmV4dChmYWxzZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW5vd01vYmlsZSAmJiB0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgLy8gc3dpdGNoaW5nIHRvIHdpZGVzY3JlZW5cbiAgICAgICAgICB0aGlzLiNfaXNNb2JpbGVTdHJlYW0ubmV4dChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5kcmF3ZXJWaXNpYmxlLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IG5vd01vYmlsZTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGJhY2tCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdlclZpc2libGUubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVCYWNrQnV0dG9uVGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiNfYmFja0J1dHRvblRleHRTdHJlYW0ubmV4dCh0ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVEcmF3ZXJXaWR0aChkcmF3ZXJXaWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy4jX2RyYXdlcldpZHRoU3RyZWFtLm5leHQoZHJhd2VyV2lkdGgpO1xuICB9XG59XG4iXX0=
69
+ }], ctorParameters: () => [{ type: i1.SkyLibResourcesService }] });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NwbGl0LXZpZXcvc3JjL2xpYi9tb2R1bGVzL3NwbGl0LXZpZXcvc3BsaXQtdmlldy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUduRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRXRDOzs7R0FHRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQU1ELElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsc0JBQXNCLENBQW1DO0lBQ3pELFVBQVUsQ0FBUztJQUNuQixnQkFBZ0IsQ0FBdUM7SUFFdkQsWUFBWSxTQUFpQztRQXBCdEMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQWdCMUQsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUdyRCxnQ0FBZ0M7UUFDaEMsU0FBUzthQUNOLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQzthQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUwsa0JBQWtCO1FBQ2xCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQzthQUN6QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMzQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4QixNQUFNLFNBQVMsR0FBRyxVQUFVLEtBQUssSUFBSSxDQUFDO1lBRXRDLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxzQkFBc0I7Z0JBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3ZDLDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLElBQVk7UUFDdEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQTNEVSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2t5TWVkaWFRdWVyeVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogSW50ZXJuYWwgc2VydmljZSBmb3Igb3BlcmF0aW9ucyBiZXR3ZWVuIHRoZSBzcGxpdCB2aWV3IGRyYXdlciBhbmQgd29ya3NwYWNlLlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lTcGxpdFZpZXdTZXJ2aWNlIHtcbiAgcHVibGljIGdldCBiYWNrQnV0dG9uVGV4dFN0cmVhbSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLiNfYmFja0J1dHRvblRleHRTdHJlYW07XG4gIH1cblxuICBwdWJsaWMgZHJhd2VyVmlzaWJsZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcHVibGljIHNwbGl0Vmlld0VsZW1lbnRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHNldCBpc01vYmlsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI19pc01vYmlsZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jX2lzTW9iaWxlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc01vYmlsZVN0cmVhbSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy4jX2lzTW9iaWxlU3RyZWFtO1xuICB9XG5cbiAgI19iYWNrQnV0dG9uVGV4dFN0cmVhbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICNfaXNNb2JpbGUgPSBmYWxzZTtcbiAgI19pc01vYmlsZVN0cmVhbSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlczogU2t5TGliUmVzb3VyY2VzU2VydmljZSkge1xuICAgIC8vIFNldCBkZWZhdWx0IGJhY2sgYnV0dG9uIHRleHQuXG4gICAgcmVzb3VyY2VzXG4gICAgICAuZ2V0U3RyaW5nKCdza3l1eF9zcGxpdF92aWV3X2JhY2tfdG9fbGlzdCcpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgocmVzb3VyY2UpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVCYWNrQnV0dG9uVGV4dChyZXNvdXJjZSk7XG4gICAgICB9KTtcblxuICAgIC8vIFNldCBicmVha3BvaW50LlxuICAgIGluamVjdChTa3lNZWRpYVF1ZXJ5U2VydmljZSlcbiAgICAgIC5icmVha3BvaW50Q2hhbmdlLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChicmVha3BvaW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5vd01vYmlsZSA9IGJyZWFrcG9pbnQgPT09ICd4cyc7XG5cbiAgICAgICAgaWYgKG5vd01vYmlsZSAmJiAhdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgIC8vIHN3aXRjaGluZyB0byBtb2JpbGVcbiAgICAgICAgICB0aGlzLiNfaXNNb2JpbGVTdHJlYW0ubmV4dCh0cnVlKTtcbiAgICAgICAgICB0aGlzLmRyYXdlclZpc2libGUubmV4dChmYWxzZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIW5vd01vYmlsZSAmJiB0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgLy8gc3dpdGNoaW5nIHRvIHdpZGVzY3JlZW5cbiAgICAgICAgICB0aGlzLiNfaXNNb2JpbGVTdHJlYW0ubmV4dChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5kcmF3ZXJWaXNpYmxlLm5leHQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IG5vd01vYmlsZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGJhY2tCdXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmRyYXdlclZpc2libGUubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVCYWNrQnV0dG9uVGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLiNfYmFja0J1dHRvblRleHRTdHJlYW0ubmV4dCh0ZXh0KTtcbiAgfVxufVxuIl19