@scion/components 13.0.0 → 14.0.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 (68) hide show
  1. package/dimension/dimension.directive.d.ts +1 -1
  2. package/dimension/{scion-components-dimension.d.ts → index.d.ts} +0 -0
  3. package/esm2020/dimension/dimension.directive.mjs +3 -3
  4. package/esm2020/dimension/dimension.module.mjs +5 -7
  5. package/esm2020/sashbox/element-ref.directive.mjs +3 -3
  6. package/esm2020/sashbox/sash-initializer.directive.mjs +3 -3
  7. package/esm2020/sashbox/sash.directive.mjs +4 -4
  8. package/esm2020/sashbox/sashbox.component.mjs +6 -6
  9. package/esm2020/sashbox/sashbox.module.mjs +6 -8
  10. package/esm2020/splitter/splitter.component.mjs +3 -3
  11. package/esm2020/splitter/splitter.module.mjs +5 -7
  12. package/esm2020/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +3 -3
  13. package/esm2020/throbber/ripple-throbber/ripple-throbber.component.mjs +3 -3
  14. package/esm2020/throbber/roller-throbber/roller-throbber.component.mjs +3 -3
  15. package/esm2020/throbber/spinner-throbber/spinner-throbber.component.mjs +3 -3
  16. package/esm2020/throbber/throbber.component.mjs +8 -8
  17. package/esm2020/throbber/throbber.module.mjs +5 -7
  18. package/esm2020/viewport/native-scrollbar-track-size-provider.service.mjs +3 -3
  19. package/esm2020/viewport/scrollable.directive.mjs +3 -3
  20. package/esm2020/viewport/scrollbar/scrollbar.component.mjs +3 -3
  21. package/esm2020/viewport/viewport.component.mjs +25 -25
  22. package/esm2020/viewport/viewport.module.mjs +6 -8
  23. package/fesm2015/scion-components-dimension.mjs +7 -9
  24. package/fesm2015/scion-components-dimension.mjs.map +1 -1
  25. package/fesm2015/scion-components-sashbox.mjs +21 -23
  26. package/fesm2015/scion-components-sashbox.mjs.map +1 -1
  27. package/fesm2015/scion-components-splitter.mjs +7 -9
  28. package/fesm2015/scion-components-splitter.mjs.map +1 -1
  29. package/fesm2015/scion-components-throbber.mjs +20 -22
  30. package/fesm2015/scion-components-throbber.mjs.map +1 -1
  31. package/fesm2015/scion-components-viewport.mjs +37 -39
  32. package/fesm2015/scion-components-viewport.mjs.map +1 -1
  33. package/fesm2015/scion-components.mjs.map +1 -1
  34. package/fesm2020/scion-components-dimension.mjs +7 -9
  35. package/fesm2020/scion-components-dimension.mjs.map +1 -1
  36. package/fesm2020/scion-components-sashbox.mjs +21 -23
  37. package/fesm2020/scion-components-sashbox.mjs.map +1 -1
  38. package/fesm2020/scion-components-splitter.mjs +7 -9
  39. package/fesm2020/scion-components-splitter.mjs.map +1 -1
  40. package/fesm2020/scion-components-throbber.mjs +20 -22
  41. package/fesm2020/scion-components-throbber.mjs.map +1 -1
  42. package/fesm2020/scion-components-viewport.mjs +37 -39
  43. package/fesm2020/scion-components-viewport.mjs.map +1 -1
  44. package/fesm2020/scion-components.mjs.map +1 -1
  45. package/{scion-components.d.ts → index.d.ts} +0 -0
  46. package/package.json +12 -12
  47. package/sashbox/element-ref.directive.d.ts +1 -1
  48. package/sashbox/{scion-components-sashbox.d.ts → index.d.ts} +0 -0
  49. package/sashbox/sash-initializer.directive.d.ts +1 -1
  50. package/sashbox/sash.directive.d.ts +2 -2
  51. package/sashbox/sashbox.component.d.ts +1 -1
  52. package/splitter/{scion-components-splitter.d.ts → index.d.ts} +0 -0
  53. package/splitter/splitter.component.d.ts +1 -1
  54. package/throbber/ellipsis-throbber/ellipsis-throbber.component.d.ts +1 -1
  55. package/throbber/{scion-components-throbber.d.ts → index.d.ts} +0 -0
  56. package/throbber/ripple-throbber/ripple-throbber.component.d.ts +1 -1
  57. package/throbber/roller-throbber/roller-throbber.component.d.ts +1 -1
  58. package/throbber/spinner-throbber/spinner-throbber.component.d.ts +1 -1
  59. package/throbber/throbber.component.d.ts +1 -1
  60. package/viewport/{scion-components-viewport.d.ts → index.d.ts} +0 -0
  61. package/viewport/scrollable.directive.d.ts +1 -1
  62. package/viewport/scrollbar/scrollbar.component.d.ts +1 -1
  63. package/viewport/viewport.component.d.ts +16 -16
  64. package/dimension/package.json +0 -10
  65. package/sashbox/package.json +0 -10
  66. package/splitter/package.json +0 -10
  67. package/throbber/package.json +0 -10
  68. package/viewport/package.json +0 -10
@@ -7,16 +7,16 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
- import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';
10
+ import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
11
11
  import { coerceElement } from '@angular/cdk/coercion';
12
12
  import * as i0 from "@angular/core";
13
13
  import * as i1 from "./native-scrollbar-track-size-provider.service";
14
- import * as i2 from "./scrollbar/scrollbar.component";
15
- import * as i3 from "./scrollable.directive";
16
- import * as i4 from "@angular/cdk/scrolling";
17
- import * as i5 from "@angular/common";
14
+ import * as i2 from "@angular/common";
15
+ import * as i3 from "@angular/cdk/scrolling";
16
+ import * as i4 from "./scrollbar/scrollbar.component";
17
+ import * as i5 from "./scrollable.directive";
18
18
  /**
19
- * Represents a viewport with the `<ng-content>` used as scrollable content. Content is added to a CSS grid layout.
19
+ * Represents a viewport with slotted content (`<ng-content>`) used as scrollable content. By default, content is added to a CSS grid layout.
20
20
  *
21
21
  * The viewport component displays scrollbars when its content overflows. Scrollbars are displayed on top of the content, not next to it.
22
22
  * The component uses the native scrollbars of the operating system if they are already sitting on top, or falls back and renders scrollbars on top otherwise.
@@ -48,24 +48,24 @@ import * as i5 from "@angular/common";
48
48
  * For the complete documentation on the flex layout and its features, refer to https://developer.mozilla.org/en-US/docs/Web/CSS/flex.
49
49
  *
50
50
  *
51
- * ## Layouting the viewport content
51
+ * ## Layouting the viewport's slotted content
52
52
  *
53
- * `NgContent` is added to a CSS grid container with, by default, a single column, filling remaining space vertically and horizontally.
53
+ * By default, the viewport's content is added to a CSS grid container with a single column, filling remaining space vertically and horizontally.
54
+ * Using the `::part(content)` pseudo element selector, you can configure the grid container or apply a different layout, such as a flex or flow layout.
54
55
  *
55
- * You can override the following CSS variables to control the grid:
56
- *
57
- * - sci-viewport-content-grid-template-columns: Defines the columns and their track sizes (by default, single column with track size auto)
58
- * - sci-viewport-content-grid-template-rows: Defines the rows and their track sizes (by default, single row with track size auto)
59
- * - sci-viewport-content-grid-auto-columns: Defines the track size of not explicitly declared columns.
60
- * - sci-viewport-content-grid-auto-rows: Defines the track size of not explicitly declared rows.
61
- * - sci-viewport-content-grid-gap: Sets the gaps (gutters) between rows and columns.
62
- *
63
- * Example of how to control the CSS grid:
56
+ * #### Example of adding slotted content to a CSS flex container.
57
+ * ```css
58
+ * sci-viewport::part(content) {
59
+ * display: flex;
60
+ * flex-direction: column;
61
+ * }
62
+ * ```
64
63
  *
64
+ * #### Example of configuring CSS grid container with two columns
65
65
  * ```css
66
- * sci-viewport {
67
- * --sci-viewport-content-grid-auto-rows: min-content;
68
- * --sci-viewport-content-grid-gap: .5em; // specifies the row and column gap
66
+ * sci-viewport::part(content) {
67
+ * grid-template-columns: 1fr 1fr;
68
+ * gap: 1em;
69
69
  * }
70
70
  * ```
71
71
  *
@@ -228,11 +228,11 @@ export class SciViewportComponent {
228
228
  return offset;
229
229
  }
230
230
  }
231
- SciViewportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciViewportComponent, deps: [{ token: i0.ElementRef }, { token: i1.SciNativeScrollbarTrackSizeProvider }], target: i0.ɵɵFactoryTarget.Component });
232
- SciViewportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SciViewportComponent, selector: "sci-viewport", inputs: { scrollbarStyle: "scrollbarStyle" }, outputs: { scroll: "scroll" }, host: { listeners: { "focus": "focus()" }, properties: { "attr.tabindex": "this.tabindex" } }, viewQueries: [{ propertyName: "setViewport", first: true, predicate: ["viewport"], descendants: true, static: true }, { propertyName: "setViewportClient", first: true, predicate: ["viewport_client"], descendants: true, static: true }], ngImport: i0, template: "<!-- viewport and viewport client -->\n<div #viewport\n class=\"viewport\"\n tabindex=\"-1\"\n sciScrollable [sciScrollableDisplayNativeScrollbar]=\"scrollbarStyle === 'native'\"\n cdkScrollable\n (scroll)=\"onScroll($event)\">\n <div #viewport_client class=\"viewport-client\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<!-- render emulated scrollbars which sit on-top -->\n<ng-container *ngIf=\"scrollbarStyle === 'on-top' && (nativeScrollbarTrackSizeProvider.trackSize$ | async) !== null\">\n <sci-scrollbar [direction]=\"'vscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n <sci-scrollbar [direction]=\"'hscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n</ng-container>\n", styles: [":host{--sci-viewport-content-grid-template-columns: auto;--sci-viewport-content-grid-template-rows: unset;--sci-viewport-content-grid-auto-columns: unset;--sci-viewport-content-grid-auto-rows: auto;--sci-viewport-content-grid-gap: 0 0;--sci-viewport-scrollbar-color: rgb(78, 78, 78);display:grid;grid-template-columns:100%;grid-template-rows:100%;position:relative;overflow:hidden;outline:none}:host:not(:hover):not(:active) sci-scrollbar:not(.scrolling){opacity:0}:host>div.viewport{display:grid;position:relative;outline:none;-webkit-overflow-scrolling:touch}:host>div.viewport>div.viewport-client{display:grid;grid-template-columns:var(--sci-viewport-content-grid-template-columns);grid-template-rows:var(--sci-viewport-content-grid-template-rows);grid-auto-rows:var(--sci-viewport-content-grid-auto-rows);grid-auto-columns:var(--sci-viewport-content-grid-auto-columns);grid-gap:var(--sci-viewport-content-grid-gap);gap:var(--sci-viewport-content-grid-gap)}:host>sci-scrollbar{--sci-scrollbar-color: var(--sci-viewport-scrollbar-color);position:absolute;transition-duration:1s;transition-property:opacity;transition-timing-function:ease-out}:host>sci-scrollbar.vertical{top:0;right:0;bottom:0;left:unset;width:12px}:host>sci-scrollbar.horizontal{top:unset;right:0;bottom:0;left:0;height:12px}\n"], components: [{ type: i2.SciScrollbarComponent, selector: "sci-scrollbar", inputs: ["direction", "viewport"] }], directives: [{ type: i3.SciScrollableDirective, selector: "[sciScrollable]", inputs: ["sciScrollableDisplayNativeScrollbar"] }, { type: i4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe } });
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciViewportComponent, decorators: [{
231
+ SciViewportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciViewportComponent, deps: [{ token: i0.ElementRef }, { token: i1.SciNativeScrollbarTrackSizeProvider }], target: i0.ɵɵFactoryTarget.Component });
232
+ SciViewportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: SciViewportComponent, selector: "sci-viewport", inputs: { scrollbarStyle: "scrollbarStyle" }, outputs: { scroll: "scroll" }, host: { listeners: { "focus": "focus()" }, properties: { "attr.tabindex": "this.tabindex" } }, viewQueries: [{ propertyName: "setViewport", first: true, predicate: ["viewport"], descendants: true, static: true }, { propertyName: "setViewportClient", first: true, predicate: ["viewport_client"], descendants: true, static: true }], ngImport: i0, template: "<!-- viewport and viewport client -->\n<div #viewport\n class=\"viewport\"\n tabindex=\"-1\"\n sciScrollable [sciScrollableDisplayNativeScrollbar]=\"scrollbarStyle === 'native'\"\n cdkScrollable\n (scroll)=\"onScroll($event)\">\n <div #viewport_client class=\"viewport-client\" part=\"content\">\n <slot></slot>\n </div>\n</div>\n\n<!-- render emulated scrollbars which sit on-top -->\n<ng-container *ngIf=\"scrollbarStyle === 'on-top' && (nativeScrollbarTrackSizeProvider.trackSize$ | async) !== null\">\n <sci-scrollbar [direction]=\"'vscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n <sci-scrollbar [direction]=\"'hscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n</ng-container>\n", styles: [":host{--sci-viewport-content-grid-template-columns: auto;--sci-viewport-content-grid-template-rows: unset;--sci-viewport-content-grid-auto-columns: unset;--sci-viewport-content-grid-auto-rows: auto;--sci-viewport-content-grid-gap: 0 0;--sci-viewport-scrollbar-color: rgb(78, 78, 78);display:grid;grid-template-columns:100%;grid-template-rows:100%;position:relative;overflow:hidden;outline:none}:host:not(:hover):not(:active) sci-scrollbar:not(.scrolling){opacity:0}:host>div.viewport{display:grid;position:relative;outline:none;-webkit-overflow-scrolling:touch}:host>div.viewport>div.viewport-client{display:grid;grid-template-columns:var(--sci-viewport-content-grid-template-columns);grid-template-rows:var(--sci-viewport-content-grid-template-rows);grid-auto-rows:var(--sci-viewport-content-grid-auto-rows);grid-auto-columns:var(--sci-viewport-content-grid-auto-columns);gap:var(--sci-viewport-content-grid-gap)}:host>sci-scrollbar{--sci-scrollbar-color: var(--sci-viewport-scrollbar-color);position:absolute;transition-duration:1s;transition-property:opacity;transition-timing-function:ease-out}:host>sci-scrollbar.vertical{top:0;right:0;bottom:0;left:unset;width:12px}:host>sci-scrollbar.horizontal{top:unset;right:0;bottom:0;left:0;height:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i4.SciScrollbarComponent, selector: "sci-scrollbar", inputs: ["direction", "viewport"] }, { kind: "directive", type: i5.SciScrollableDirective, selector: "[sciScrollable]", inputs: ["sciScrollableDisplayNativeScrollbar"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.ShadowDom });
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciViewportComponent, decorators: [{
234
234
  type: Component,
235
- args: [{ selector: 'sci-viewport', template: "<!-- viewport and viewport client -->\n<div #viewport\n class=\"viewport\"\n tabindex=\"-1\"\n sciScrollable [sciScrollableDisplayNativeScrollbar]=\"scrollbarStyle === 'native'\"\n cdkScrollable\n (scroll)=\"onScroll($event)\">\n <div #viewport_client class=\"viewport-client\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<!-- render emulated scrollbars which sit on-top -->\n<ng-container *ngIf=\"scrollbarStyle === 'on-top' && (nativeScrollbarTrackSizeProvider.trackSize$ | async) !== null\">\n <sci-scrollbar [direction]=\"'vscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n <sci-scrollbar [direction]=\"'hscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n</ng-container>\n", styles: [":host{--sci-viewport-content-grid-template-columns: auto;--sci-viewport-content-grid-template-rows: unset;--sci-viewport-content-grid-auto-columns: unset;--sci-viewport-content-grid-auto-rows: auto;--sci-viewport-content-grid-gap: 0 0;--sci-viewport-scrollbar-color: rgb(78, 78, 78);display:grid;grid-template-columns:100%;grid-template-rows:100%;position:relative;overflow:hidden;outline:none}:host:not(:hover):not(:active) sci-scrollbar:not(.scrolling){opacity:0}:host>div.viewport{display:grid;position:relative;outline:none;-webkit-overflow-scrolling:touch}:host>div.viewport>div.viewport-client{display:grid;grid-template-columns:var(--sci-viewport-content-grid-template-columns);grid-template-rows:var(--sci-viewport-content-grid-template-rows);grid-auto-rows:var(--sci-viewport-content-grid-auto-rows);grid-auto-columns:var(--sci-viewport-content-grid-auto-columns);grid-gap:var(--sci-viewport-content-grid-gap);gap:var(--sci-viewport-content-grid-gap)}:host>sci-scrollbar{--sci-scrollbar-color: var(--sci-viewport-scrollbar-color);position:absolute;transition-duration:1s;transition-property:opacity;transition-timing-function:ease-out}:host>sci-scrollbar.vertical{top:0;right:0;bottom:0;left:unset;width:12px}:host>sci-scrollbar.horizontal{top:unset;right:0;bottom:0;left:0;height:12px}\n"] }]
235
+ args: [{ selector: 'sci-viewport', encapsulation: ViewEncapsulation.ShadowDom, template: "<!-- viewport and viewport client -->\n<div #viewport\n class=\"viewport\"\n tabindex=\"-1\"\n sciScrollable [sciScrollableDisplayNativeScrollbar]=\"scrollbarStyle === 'native'\"\n cdkScrollable\n (scroll)=\"onScroll($event)\">\n <div #viewport_client class=\"viewport-client\" part=\"content\">\n <slot></slot>\n </div>\n</div>\n\n<!-- render emulated scrollbars which sit on-top -->\n<ng-container *ngIf=\"scrollbarStyle === 'on-top' && (nativeScrollbarTrackSizeProvider.trackSize$ | async) !== null\">\n <sci-scrollbar [direction]=\"'vscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n <sci-scrollbar [direction]=\"'hscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n</ng-container>\n", styles: [":host{--sci-viewport-content-grid-template-columns: auto;--sci-viewport-content-grid-template-rows: unset;--sci-viewport-content-grid-auto-columns: unset;--sci-viewport-content-grid-auto-rows: auto;--sci-viewport-content-grid-gap: 0 0;--sci-viewport-scrollbar-color: rgb(78, 78, 78);display:grid;grid-template-columns:100%;grid-template-rows:100%;position:relative;overflow:hidden;outline:none}:host:not(:hover):not(:active) sci-scrollbar:not(.scrolling){opacity:0}:host>div.viewport{display:grid;position:relative;outline:none;-webkit-overflow-scrolling:touch}:host>div.viewport>div.viewport-client{display:grid;grid-template-columns:var(--sci-viewport-content-grid-template-columns);grid-template-rows:var(--sci-viewport-content-grid-template-rows);grid-auto-rows:var(--sci-viewport-content-grid-auto-rows);grid-auto-columns:var(--sci-viewport-content-grid-auto-columns);gap:var(--sci-viewport-content-grid-gap)}:host>sci-scrollbar{--sci-scrollbar-color: var(--sci-viewport-scrollbar-color);position:absolute;transition-duration:1s;transition-property:opacity;transition-timing-function:ease-out}:host>sci-scrollbar.vertical{top:0;right:0;bottom:0;left:unset;width:12px}:host>sci-scrollbar.horizontal{top:unset;right:0;bottom:0;left:0;height:12px}\n"] }]
236
236
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SciNativeScrollbarTrackSizeProvider }]; }, propDecorators: { tabindex: [{
237
237
  type: HostBinding,
238
238
  args: ['attr.tabindex']
@@ -262,4 +262,4 @@ function isChildOf(element, parent) {
262
262
  }
263
263
  return false;
264
264
  }
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRUc7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBMEMvQixZQUFtQixJQUE2QixFQUFTLGdDQUFxRTtRQUEzRyxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUFTLHFDQUFnQyxHQUFoQyxnQ0FBZ0MsQ0FBcUM7UUF0Q3RILG9CQUFlLEdBQW1CLFFBQVEsQ0FBQztRQUc1QyxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzRkFBc0Y7UUEyQjVHOzs7O1dBSUc7UUFFSSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQyxDQUFDLHVEQUF1RDtJQUdsRyxDQUFDO0lBbENELGdCQUFnQjtJQUNoQixJQUNXLFdBQVcsQ0FBQyxRQUFvQztRQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLElBQ1csaUJBQWlCLENBQUMsY0FBMEM7UUFDckUs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QUMsVUFBVSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFPMUIsaUJBQWlCO3NCQUQzQixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFVakMsY0FBYztzQkFEeEIsS0FBSztnQkFlQyxNQUFNO3NCQURaLE1BQU07Z0JBT0EsS0FBSztzQkFEWCxZQUFZO3VCQUFDLE9BQU87O0FBc0l2Qjs7R0FFRztBQUNILFNBQVMsU0FBUyxDQUFDLE9BQWdCLEVBQUUsTUFBZTtJQUNsRCxPQUFPLE9BQU8sQ0FBQyxhQUFhLEtBQUssSUFBSSxFQUFFO1FBQ3JDLE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ2hDLElBQUksT0FBTyxLQUFLLE1BQU0sRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQztTQUNiO0tBQ0Y7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcn0gZnJvbSAnLi9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge2NvZXJjZUVsZW1lbnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHZpZXdwb3J0IHdpdGggdGhlIGA8bmctY29udGVudD5gIHVzZWQgYXMgc2Nyb2xsYWJsZSBjb250ZW50LiBDb250ZW50IGlzIGFkZGVkIHRvIGEgQ1NTIGdyaWQgbGF5b3V0LlxuICpcbiAqIFRoZSB2aWV3cG9ydCBjb21wb25lbnQgZGlzcGxheXMgc2Nyb2xsYmFycyB3aGVuIGl0cyBjb250ZW50IG92ZXJmbG93cy4gU2Nyb2xsYmFycyBhcmUgZGlzcGxheWVkIG9uIHRvcCBvZiB0aGUgY29udGVudCwgbm90IG5leHQgdG8gaXQuXG4gKiBUaGUgY29tcG9uZW50IHVzZXMgdGhlIG5hdGl2ZSBzY3JvbGxiYXJzIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGlmIHRoZXkgYXJlIGFscmVhZHkgc2l0dGluZyBvbiB0b3AsIG9yIGZhbGxzIGJhY2sgYW5kIHJlbmRlcnMgc2Nyb2xsYmFycyBvbiB0b3Agb3RoZXJ3aXNlLlxuICogVGhlIHZpZXdwb3J0IHJlbWFpbnMgbmF0aXZlbHkgc2Nyb2xsYWJsZSB3aXRoIHRoZSBuYXRpdmUgc2Nyb2xsYmFycyBzaGlmdGVkIG91dCBvZiB0aGUgdmlld3BvcnQncyB2aXNpYmxlIGFyZWEuIENvbnNlcXVlbnRseSwgdGhlIHZpZXdwb3J0IGtlZXBzIHN1cHBvcnRpbmdcbiAqIG5hdGl2ZSBzY3JvbGxpbmcgZmVhdHVyZXMgc3VjaCBhcyB0b3VjaCBnZXN0dXJlcywgc2Nyb2xsIHNwZWVkIGFjY2VsZXJhdGlvbiwgb3Igc2Nyb2xsaW5nIG5lYXIgdGhlIHZpZXdwb3J0IGVkZ2VzIGR1cmluZyBkcmFnLWFuZC1kcm9wIG9wZXJhdGlvbnMuXG4gKlxuICogYGBgaHRtbFxuICogPHNjaS12aWV3cG9ydD5cbiAqICAgeW91ciBjb250ZW50XG4gKiA8L3NjaS12aWV3cG9ydD5cbiAqIGBgYFxuICpcbiAqICMjIEFkZGluZyB0aGUgdmlld3BvcnQgdG8gYSBsYXlvdXRcbiAqXG4gKiBUeXBpY2FsbHkgeW91IHdvdWxkIGFkZCB0aGUgdmlld3BvcnQgY29tcG9uZW50IHRvIGEgZmxleGlibGUgbGF5b3V0LCBmaWxsaW5nIHRoZSByZW1haW5pbmcgc3BhY2UgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5LCBzdWNoIGFzIGEgZmxleGJveCBjb250YWluZXJcbiAqIHdpdGggdGhlIHZpZXdwb3J0J3MgYGZsZXhgIENTUyBwcm9wZXJ0eSBzZXQgdG8gZWl0aGVyIGBmbGV4OiBhdXRvYCBvciBgZmxleDogMSAxIDBgLlxuICpcbiAqIFRoZSB2aWV3cG9ydCBpcyBzaXplZCBhY2NvcmRpbmcgdG8gaXRzIGNvbnRlbnQgd2lkdGggYW5kIGhlaWdodC4gSXQgZ3Jvd3MgdG8gYWJzb3JiIGFueSBmcmVlIHNwYWNlLCB0aHVzIG92ZXJmbG93aW5nIGl0cyBjb250ZW50IG9ubHkgd2hlbiBlbmNvdW50ZXJpbmdcbiAqIGEgbGF5b3V0IGNvbnN0cmFpbnQuIERlcGVuZGluZyBvbiB0aGUgbGF5b3V0LCBkaWZmZXJlbnQgc3RlcHMgbWF5IGJlIG5lY2Vzc2FyeSB0byBwcmV2ZW50IHRoZSB2aWV3cG9ydCBmcm9tIGdyb3dpbmcgdG8gaW5maW5pdHkuXG4gKlxuICogLSBJZiBwcmFjdGljYWwsIGdpdmUgdGhlIHZpZXdwb3J0IGEgZml4ZWQgc2l6ZSBvciBhIG1heGltdW0gc2l6ZS5cbiAqIC0gSWYgeW91IGFkZCB0aGUgdmlld3BvcnQgdG8gYSBmbGV4Ym94IGxheW91dCwgbWFrZSBzdXJlIHRoYXQgaXQgY2Fubm90IGV4Y2VlZCB0aGUgYXZhaWxhYmxlIHNwYWNlLiBJbnN0ZWFkLCB0aGUgdmlld3BvcnQgc2hvdWxkIGZpbGwgdGhlIHJlbWFpbmluZyBzcGFjZSxcbiAqICAgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5LiBCZSBhd2FyZSB0aGF0LCBieSBkZWZhdWx0LCBhIGZsZXggaXRlbSBkb2VzIG5vdCBzaHJpbmsgYmVsb3cgaXRzIG1pbmltdW0gY29udGVudCBzaXplLiBUbyBjaGFuZ2UgdGhpcywgc2V0IHRoZSB2aWV3cG9ydCdzXG4gKiAgIGBmbGV4LWJhc2lzYCB0byBgMGAgKGluc3RlYWQgb2YgYGF1dG9gKSwgb3IgdXNlIHRoZSBDU1Mgc2hvcnRoYW5kIHByb3BlcnR5IGBmbGV4OiAxIDEgMGAuIFRoZSBgZmxleC1iYXNpc2AgZGVmaW5lcyB0aGUgZGVmYXVsdCBzaXplIG9mIGEgZmxleCBpdGVtIGJlZm9yZVxuICogICB0aGUgcmVtYWluaW5nIGV4dHJhIHNwYWNlIGlzIGRpc3RyaWJ1dGVkLiBJZiB0aGUgdmlld3BvcnQgZG9lcyBub3QgYXBwZWFyIGFmdGVyIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSwgY2hlY2sgaXRzIHBhcmVudCBlbGVtZW50cycgY29udGVudCBzaXplcy5cbiAqICAgQXMgYW4gYWx0ZXJuYXRpdmUgdG8gc2V0dGluZyBgZmxleDogMSAxIDBgLCBjaGFuZ2UgdGhlIHNldHRpbmcgdG8gYGZsZXg6IGF1dG9gIGFuZCBoaWRlIHRoZSBvdmVyZmxvdyBpbiB0aGUgcGFyZW50IGVsZW1lbnQsIGFzIGZvbGxvd3M6IGBvdmVyZmxvdzogaGlkZGVuYC5cbiAqICAgQW5vdGhlciBhcHByb2FjaCB3b3VsZCBiZSB0byBzZXQgdGhlIG1pbmltdW0gaGVpZ2h0IG9mIGFsbCBwYXJlbnRzIHRvIGAwYCwgYXMgZm9sbG93czogYG1pbi1oZWlnaHQ6IDBgLlxuICpcbiAqICAgRm9yIHRoZSBjb21wbGV0ZSBkb2N1bWVudGF0aW9uIG9uIHRoZSBmbGV4IGxheW91dCBhbmQgaXRzIGZlYXR1cmVzLCByZWZlciB0byBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvZmxleC5cbiAqXG4gKlxuICogIyMgTGF5b3V0aW5nIHRoZSB2aWV3cG9ydCBjb250ZW50XG4gKlxuICogYE5nQ29udGVudGAgaXMgYWRkZWQgdG8gYSBDU1MgZ3JpZCBjb250YWluZXIgd2l0aCwgYnkgZGVmYXVsdCwgYSBzaW5nbGUgY29sdW1uLCBmaWxsaW5nIHJlbWFpbmluZyBzcGFjZSB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkuXG4gKlxuICogWW91IGNhbiBvdmVycmlkZSB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgdG8gY29udHJvbCB0aGUgZ3JpZDpcbiAqXG4gKiAtIHNjaS12aWV3cG9ydC1jb250ZW50LWdyaWQtdGVtcGxhdGUtY29sdW1uczogICBEZWZpbmVzIHRoZSBjb2x1bW5zIGFuZCB0aGVpciB0cmFjayBzaXplcyAoYnkgZGVmYXVsdCwgc2luZ2xlIGNvbHVtbiB3aXRoIHRyYWNrIHNpemUgYXV0bylcbiAqIC0gc2NpLXZpZXdwb3J0LWNvbnRlbnQtZ3JpZC10ZW1wbGF0ZS1yb3dzOiAgICAgIERlZmluZXMgdGhlIHJvd3MgYW5kIHRoZWlyIHRyYWNrIHNpemVzIChieSBkZWZhdWx0LCBzaW5nbGUgcm93IHdpdGggdHJhY2sgc2l6ZSBhdXRvKVxuICogLSBzY2ktdmlld3BvcnQtY29udGVudC1ncmlkLWF1dG8tY29sdW1uczogICAgICAgRGVmaW5lcyB0aGUgdHJhY2sgc2l6ZSBvZiBub3QgZXhwbGljaXRseSBkZWNsYXJlZCBjb2x1bW5zLlxuICogLSBzY2ktdmlld3BvcnQtY29udGVudC1ncmlkLWF1dG8tcm93czogICAgICAgICAgRGVmaW5lcyB0aGUgdHJhY2sgc2l6ZSBvZiBub3QgZXhwbGljaXRseSBkZWNsYXJlZCByb3dzLlxuICogLSBzY2ktdmlld3BvcnQtY29udGVudC1ncmlkLWdhcDogICAgICAgICAgICAgICAgU2V0cyB0aGUgZ2FwcyAoZ3V0dGVycykgYmV0d2VlbiByb3dzIGFuZCBjb2x1bW5zLlxuICpcbiAqIEV4YW1wbGUgb2YgaG93IHRvIGNvbnRyb2wgdGhlIENTUyBncmlkOlxuICpcbiAqIGBgYGNzc1xuICogc2NpLXZpZXdwb3J0IHtcbiAqICAgLS1zY2ktdmlld3BvcnQtY29udGVudC1ncmlkLWF1dG8tcm93czogbWluLWNvbnRlbnQ7XG4gKiAgIC0tc2NpLXZpZXdwb3J0LWNvbnRlbnQtZ3JpZC1nYXA6IC41ZW07IC8vIHNwZWNpZmllcyB0aGUgcm93IGFuZCBjb2x1bW4gZ2FwXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiAjIyBTdHlsaW5nIG9mIHNjcm9sbGJhcnNcbiAqXG4gKiBZb3UgY2FuIG92ZXJyaWRlIHRoZSBmb2xsb3dpbmcgQ1NTIHZhcmlhYmxlcyB0byBjb250cm9sIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBzY3JvbGxiYXI6XG4gKlxuICogLSBzY2ktdmlld3BvcnQtc2Nyb2xsYmFyLWNvbG9yOiAgICAgU2V0cyB0aGUgY29sb3Igb2YgdGhlIHNjcm9sbGJhciAoYnkgZGVmYXVsdCwgdXNlcyBgcmdiKDc4LCA3OCwgNzgpYCkuXG4gKlxuICogYGBgY3NzXG4gKiBzY2ktdmlld3BvcnQge1xuICogICAtLXNjaS12aWV3cG9ydC1zY3JvbGxiYXItY29sb3I6IGJsdWU7XG4gKiB9XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2NpLXZpZXdwb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXdwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlld3BvcnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpVmlld3BvcnRDb21wb25lbnQge1xuXG4gIHByaXZhdGUgX3ZpZXdwb3J0ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3ZpZXdwb3J0Q2xpZW50ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3Njcm9sbGJhclN0eWxlOiBTY3JvbGxiYXJTdHlsZSA9ICdvbi10b3AnO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHB1YmxpYyB0YWJpbmRleCA9IC0xOyAvLyBtYWtlIHRoZSB2aWV3cG9ydCBwcm9ncmFtbWF0aWNhbGx5IGZvY3VzYWJsZSBidXQgZG8gbm90IGluY2x1ZGUgaXQgaW4gdGhlIHRhYiBvcmRlclxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgndmlld3BvcnQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHNldCBzZXRWaWV3cG9ydCh2aWV3cG9ydDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pIHtcbiAgICB0aGlzLl92aWV3cG9ydCA9IGNvZXJjZUVsZW1lbnQodmlld3BvcnQpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCd2aWV3cG9ydF9jbGllbnQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHNldCBzZXRWaWV3cG9ydENsaWVudCh2aWV3cG9ydENsaWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pIHtcbiAgICB0aGlzLl92aWV3cG9ydENsaWVudCA9IGNvZXJjZUVsZW1lbnQodmlld3BvcnRDbGllbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdG8gdXNlIG5hdGl2ZSBzY3JvbGxiYXJzIG9yLCB3aGljaCBpcyBieSBkZWZhdWx0LCBlbXVsYXRlZCBzY3JvbGxiYXJzIHRoYXQgc2l0IG9uIHRvcCBvZiB0aGUgdmlld3BvcnQgY2xpZW50LlxuICAgKiBJbiB0aGUgbGF0dGVyLCB0aGUgdmlld3BvcnQgY2xpZW50IHJlbWFpbnMgbmF0aXZlbHkgc2Nyb2xsYWJsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2Nyb2xsYmFyU3R5bGUoc2Nyb2xsYmFyU3R5bGU6IFNjcm9sbGJhclN0eWxlKSB7XG4gICAgdGhpcy5fc2Nyb2xsYmFyU3R5bGUgPSBzY3JvbGxiYXJTdHlsZSB8fCAnb24tdG9wJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2Nyb2xsYmFyU3R5bGUoKTogU2Nyb2xsYmFyU3R5bGUge1xuICAgIHJldHVybiB0aGlzLl9zY3JvbGxiYXJTdHlsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB1cG9uIGEgc2Nyb2xsIGV2ZW50LlxuICAgKlxuICAgKiBZb3UgY2FuIGFkZCBbc2NpRGltZW5zaW9uXSBkaXJlY3RpdmUgdG8gdGhlIHZpZXdwb3J0IG9yIHZpZXdwb3J0IGNsaWVudCB0byBiZSBub3RpZmllZCBhYm91dCBsYXlvdXQgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHVibGljIG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyOiBTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcikge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7IC8vIGRvIG5vdCByZW5hbWUgdG8gZXhwb3NlIHRoZSBzYW1lIGZvY3VzIG1ldGhvZCBsaWtlIGBIVE1MRWxlbWVudC5mb2N1cygpYC5cbiAgICB0aGlzLl92aWV3cG9ydCAmJiB0aGlzLl92aWV3cG9ydC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgY2xpZW50IGlzIHNjcm9sbGVkIHZlcnRpY2FsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxUb3BcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsVG9wKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0LnNjcm9sbFRvcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IGNsaWVudCBpcyBzY3JvbGxlZCB2ZXJ0aWNhbGx5LlxuICAgKlxuICAgKiBAc2VlIEVsZW1lbnQuc2Nyb2xsVG9wXG4gICAqL1xuICBwdWJsaWMgc2V0IHNjcm9sbFRvcChzY3JvbGxUb3A6IG51bWJlcikge1xuICAgIHRoaXMuX3ZpZXdwb3J0LnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IGNsaWVudCBpcyBzY3JvbGxlZCBob3Jpem9udGFsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxMZWZ0XG4gICAqL1xuICBwdWJsaWMgZ2V0IHNjcm9sbExlZnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IGNsaWVudCBpcyBzY3JvbGxlZCBob3Jpem9udGFsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxMZWZ0XG4gICAqL1xuICBwdWJsaWMgc2V0IHNjcm9sbExlZnQoc2Nyb2xsTGVmdDogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmlld3BvcnQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCBjbGllbnQuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxIZWlnaHRcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0LnNjcm9sbEhlaWdodDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgdmlld3BvcnQgY2xpZW50LlxuICAgKlxuICAgKiBAc2VlIEVsZW1lbnQuc2Nyb2xsV2lkdGhcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsV2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQuc2Nyb2xsV2lkdGg7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmlld3BvcnQge0hUTUxFbGVtZW50fS5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmlld3BvcnRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmlld3BvcnQgY2xpZW50IHtIVE1MRWxlbWVudH0uXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZpZXdwb3J0Q2xpZW50RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0Q2xpZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgaXMgc2Nyb2xsZWQgaW50byB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gdGhlIGVsZW1lbnQgdG8gYmUgY2hlY2tlZFxuICAgKiBAcGFyYW0gZml0IC0gY29udHJvbCBpZiB0aGUgZWxlbWVudCBtdXN0IGZ1bGx5IG9yIHBhcnRpYWxseSBmaXQgaW50byB0aGUgdmlld3BvcnRcbiAgICovXG4gIHB1YmxpYyBpc0VsZW1lbnRJblZpZXcoZWxlbWVudDogSFRNTEVsZW1lbnQsIGZpdDogJ2Z1bGwnIHwgJ3BhcnRpYWwnKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWxMZWZ0ID0gdGhpcy5jb21wdXRlT2Zmc2V0KGVsZW1lbnQsICdsZWZ0Jyk7XG4gICAgY29uc3QgZWxSaWdodCA9IGVsTGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgZWxUb3AgPSB0aGlzLmNvbXB1dGVPZmZzZXQoZWxlbWVudCwgJ3RvcCcpO1xuICAgIGNvbnN0IGVsQm90dG9tID0gZWxUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgIGNvbnN0IHZwTGVmdCA9IHRoaXMuX3ZpZXdwb3J0LnNjcm9sbExlZnQ7XG4gICAgY29uc3QgdnBSaWdodCA9IHZwTGVmdCArIHRoaXMuX3ZpZXdwb3J0LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHZwVG9wID0gdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9wO1xuICAgIGNvbnN0IHZwQm90dG9tID0gdnBUb3AgKyB0aGlzLl92aWV3cG9ydC5jbGllbnRIZWlnaHQ7XG5cbiAgICBzd2l0Y2ggKGZpdCkge1xuICAgICAgY2FzZSAnZnVsbCc6XG4gICAgICAgIHJldHVybiAoZWxMZWZ0ID49IHZwTGVmdCAmJiBlbFJpZ2h0IDw9IHZwUmlnaHQpICYmIChlbFRvcCA+PSB2cFRvcCAmJiBlbEJvdHRvbSA8PSB2cEJvdHRvbSk7XG4gICAgICBjYXNlICdwYXJ0aWFsJzpcbiAgICAgICAgcmV0dXJuIChlbFJpZ2h0ID49IHZwTGVmdCAmJiBlbExlZnQgPD0gdnBSaWdodCkgJiYgKGVsQm90dG9tID49IHZwVG9wICYmIGVsVG9wIDw9IHZwQm90dG9tKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IEVycm9yKCdVbnN1cHBvcnRlZCBmaXQgc3RyYXRlZ3knKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgaW50byB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gdGhlIGVsZW1lbnQgdG8gc2Nyb2xsIGludG8gdGhlIHZpZXdwb3J0XG4gICAqIEBwYXJhbSBvZmZzZXQgLSB0aGUgZ2FwIGJldHdlZW4gdGhlIGVsZW1lbnQgYW5kIHRoZSB2aWV3cG9ydFxuICAgKi9cbiAgcHVibGljIHNjcm9sbEludG9WaWV3KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBvZmZzZXQ6IG51bWJlciA9IDUwKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9wID0gdGhpcy5jb21wdXRlT2Zmc2V0KGVsZW1lbnQsICd0b3AnKSAtIG9mZnNldDtcbiAgICB0aGlzLl92aWV3cG9ydC5zY3JvbGxMZWZ0ID0gdGhpcy5jb21wdXRlT2Zmc2V0KGVsZW1lbnQsICdsZWZ0JykgLSBvZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIGRpc3RhbmNlIG9mIHRoZSBlbGVtZW50IHRvIHRoZSB2aWV3cG9ydCdzIGxlZnQgb3IgdG9wIGJvcmRlci5cbiAgICovXG4gIHB1YmxpYyBjb21wdXRlT2Zmc2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBib3JkZXI6ICdsZWZ0JyB8ICd0b3AnKTogbnVtYmVyIHtcbiAgICBpZiAoIWlzQ2hpbGRPZihlbGVtZW50LCB0aGlzLl92aWV3cG9ydCkpIHtcbiAgICAgIHRocm93IEVycm9yKCdlbGVtZW50IG5vdCBhIGNoaWxkIG9mIHRoZSB2aWV3cG9ydCcpO1xuICAgIH1cblxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCBlbCA9IGVsZW1lbnQ7XG4gICAgZG8ge1xuICAgICAgb2Zmc2V0ICs9IChib3JkZXIgPT09ICdsZWZ0JyA/IGVsLm9mZnNldExlZnQgOiBlbC5vZmZzZXRUb3ApO1xuICAgICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSB3aGlsZSAoZWwgIT09IG51bGwgJiYgZWwgIT09IHRoaXMuX3ZpZXdwb3J0KTtcblxuICAgIHJldHVybiBvZmZzZXQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zICd0cnVlJyBpZiB0aGUgZ2l2ZW4gZWxlbWVudCBpcyBhIGNoaWxkIGVsZW1lbnQgb2YgdGhlIHBhcmVudCBlbGVtZW50LlxuICovXG5mdW5jdGlvbiBpc0NoaWxkT2YoZWxlbWVudDogRWxlbWVudCwgcGFyZW50OiBFbGVtZW50KTogYm9vbGVhbiB7XG4gIHdoaWxlIChlbGVtZW50LnBhcmVudEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmIChlbGVtZW50ID09PSBwYXJlbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNjcm9sbGJhciBzdHlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2Nyb2xsYmFyU3R5bGUgPSAnbmF0aXZlJyB8ICdvbi10b3AnIHwgJ2hpZGRlbic7XG4iLCI8IS0tIHZpZXdwb3J0IGFuZCB2aWV3cG9ydCBjbGllbnQgLS0+XG48ZGl2ICN2aWV3cG9ydFxuICAgICBjbGFzcz1cInZpZXdwb3J0XCJcbiAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgIHNjaVNjcm9sbGFibGUgW3NjaVNjcm9sbGFibGVEaXNwbGF5TmF0aXZlU2Nyb2xsYmFyXT1cInNjcm9sbGJhclN0eWxlID09PSAnbmF0aXZlJ1wiXG4gICAgIGNka1Njcm9sbGFibGVcbiAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCI+XG4gIDxkaXYgI3ZpZXdwb3J0X2NsaWVudCBjbGFzcz1cInZpZXdwb3J0LWNsaWVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSByZW5kZXIgZW11bGF0ZWQgc2Nyb2xsYmFycyB3aGljaCBzaXQgb24tdG9wIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNjcm9sbGJhclN0eWxlID09PSAnb24tdG9wJyAmJiAobmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplUHJvdmlkZXIudHJhY2tTaXplJCB8IGFzeW5jKSAhPT0gbnVsbFwiPlxuICA8c2NpLXNjcm9sbGJhciBbZGlyZWN0aW9uXT1cIid2c2Nyb2xsJ1wiIFt2aWV3cG9ydF09XCJ2aWV3cG9ydFwiPjwvc2NpLXNjcm9sbGJhcj5cbiAgPHNjaS1zY3JvbGxiYXIgW2RpcmVjdGlvbl09XCInaHNjcm9sbCdcIiBbdmlld3BvcnRdPVwidmlld3BvcnRcIj48L3NjaS1zY3JvbGxiYXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRUc7QUFPSCxNQUFNLE9BQU8sb0JBQW9CO0lBMEMvQixZQUFtQixJQUE2QixFQUFTLGdDQUFxRTtRQUEzRyxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUFTLHFDQUFnQyxHQUFoQyxnQ0FBZ0MsQ0FBcUM7UUF0Q3RILG9CQUFlLEdBQW1CLFFBQVEsQ0FBQztRQUc1QyxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzRkFBc0Y7UUEyQjVHOzs7O1dBSUc7UUFFSSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQyxDQUFDLHVEQUF1RDtJQUdsRyxDQUFDO0lBbENELGdCQUFnQjtJQUNoQixJQUNXLFdBQVcsQ0FBQyxRQUFvQztRQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLElBQ1csaUJBQWlCLENBQUMs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QUMsZUFBZTtnQkFLakIsV0FBVztzQkFEckIsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQU8xQixpQkFBaUI7c0JBRDNCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQVVqQyxjQUFjO3NCQUR4QixLQUFLO2dCQWVDLE1BQU07c0JBRFosTUFBTTtnQkFPQSxLQUFLO3NCQURYLFlBQVk7dUJBQUMsT0FBTzs7QUFzSXZCOztHQUVHO0FBQ0gsU0FBUyxTQUFTLENBQUMsT0FBZ0IsRUFBRSxNQUFlO0lBQ2xELE9BQU8sT0FBTyxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7UUFDckMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDaEMsSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7S0FDRjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcn0gZnJvbSAnLi9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge2NvZXJjZUVsZW1lbnR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHZpZXdwb3J0IHdpdGggc2xvdHRlZCBjb250ZW50IChgPG5nLWNvbnRlbnQ+YCkgdXNlZCBhcyBzY3JvbGxhYmxlIGNvbnRlbnQuIEJ5IGRlZmF1bHQsIGNvbnRlbnQgaXMgYWRkZWQgdG8gYSBDU1MgZ3JpZCBsYXlvdXQuXG4gKlxuICogVGhlIHZpZXdwb3J0IGNvbXBvbmVudCBkaXNwbGF5cyBzY3JvbGxiYXJzIHdoZW4gaXRzIGNvbnRlbnQgb3ZlcmZsb3dzLiBTY3JvbGxiYXJzIGFyZSBkaXNwbGF5ZWQgb24gdG9wIG9mIHRoZSBjb250ZW50LCBub3QgbmV4dCB0byBpdC5cbiAqIFRoZSBjb21wb25lbnQgdXNlcyB0aGUgbmF0aXZlIHNjcm9sbGJhcnMgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0gaWYgdGhleSBhcmUgYWxyZWFkeSBzaXR0aW5nIG9uIHRvcCwgb3IgZmFsbHMgYmFjayBhbmQgcmVuZGVycyBzY3JvbGxiYXJzIG9uIHRvcCBvdGhlcndpc2UuXG4gKiBUaGUgdmlld3BvcnQgcmVtYWlucyBuYXRpdmVseSBzY3JvbGxhYmxlIHdpdGggdGhlIG5hdGl2ZSBzY3JvbGxiYXJzIHNoaWZ0ZWQgb3V0IG9mIHRoZSB2aWV3cG9ydCdzIHZpc2libGUgYXJlYS4gQ29uc2VxdWVudGx5LCB0aGUgdmlld3BvcnQga2VlcHMgc3VwcG9ydGluZ1xuICogbmF0aXZlIHNjcm9sbGluZyBmZWF0dXJlcyBzdWNoIGFzIHRvdWNoIGdlc3R1cmVzLCBzY3JvbGwgc3BlZWQgYWNjZWxlcmF0aW9uLCBvciBzY3JvbGxpbmcgbmVhciB0aGUgdmlld3BvcnQgZWRnZXMgZHVyaW5nIGRyYWctYW5kLWRyb3Agb3BlcmF0aW9ucy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8c2NpLXZpZXdwb3J0PlxuICogICB5b3VyIGNvbnRlbnRcbiAqIDwvc2NpLXZpZXdwb3J0PlxuICogYGBgXG4gKlxuICogIyMgQWRkaW5nIHRoZSB2aWV3cG9ydCB0byBhIGxheW91dFxuICpcbiAqIFR5cGljYWxseSB5b3Ugd291bGQgYWRkIHRoZSB2aWV3cG9ydCBjb21wb25lbnQgdG8gYSBmbGV4aWJsZSBsYXlvdXQsIGZpbGxpbmcgdGhlIHJlbWFpbmluZyBzcGFjZSB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHksIHN1Y2ggYXMgYSBmbGV4Ym94IGNvbnRhaW5lclxuICogd2l0aCB0aGUgdmlld3BvcnQncyBgZmxleGAgQ1NTIHByb3BlcnR5IHNldCB0byBlaXRoZXIgYGZsZXg6IGF1dG9gIG9yIGBmbGV4OiAxIDEgMGAuXG4gKlxuICogVGhlIHZpZXdwb3J0IGlzIHNpemVkIGFjY29yZGluZyB0byBpdHMgY29udGVudCB3aWR0aCBhbmQgaGVpZ2h0LiBJdCBncm93cyB0byBhYnNvcmIgYW55IGZyZWUgc3BhY2UsIHRodXMgb3ZlcmZsb3dpbmcgaXRzIGNvbnRlbnQgb25seSB3aGVuIGVuY291bnRlcmluZ1xuICogYSBsYXlvdXQgY29uc3RyYWludC4gRGVwZW5kaW5nIG9uIHRoZSBsYXlvdXQsIGRpZmZlcmVudCBzdGVwcyBtYXkgYmUgbmVjZXNzYXJ5IHRvIHByZXZlbnQgdGhlIHZpZXdwb3J0IGZyb20gZ3Jvd2luZyB0byBpbmZpbml0eS5cbiAqXG4gKiAtIElmIHByYWN0aWNhbCwgZ2l2ZSB0aGUgdmlld3BvcnQgYSBmaXhlZCBzaXplIG9yIGEgbWF4aW11bSBzaXplLlxuICogLSBJZiB5b3UgYWRkIHRoZSB2aWV3cG9ydCB0byBhIGZsZXhib3ggbGF5b3V0LCBtYWtlIHN1cmUgdGhhdCBpdCBjYW5ub3QgZXhjZWVkIHRoZSBhdmFpbGFibGUgc3BhY2UuIEluc3RlYWQsIHRoZSB2aWV3cG9ydCBzaG91bGQgZmlsbCB0aGUgcmVtYWluaW5nIHNwYWNlLFxuICogICB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkuIEJlIGF3YXJlIHRoYXQsIGJ5IGRlZmF1bHQsIGEgZmxleCBpdGVtIGRvZXMgbm90IHNocmluayBiZWxvdyBpdHMgbWluaW11bSBjb250ZW50IHNpemUuIFRvIGNoYW5nZSB0aGlzLCBzZXQgdGhlIHZpZXdwb3J0J3NcbiAqICAgYGZsZXgtYmFzaXNgIHRvIGAwYCAoaW5zdGVhZCBvZiBgYXV0b2ApLCBvciB1c2UgdGhlIENTUyBzaG9ydGhhbmQgcHJvcGVydHkgYGZsZXg6IDEgMSAwYC4gVGhlIGBmbGV4LWJhc2lzYCBkZWZpbmVzIHRoZSBkZWZhdWx0IHNpemUgb2YgYSBmbGV4IGl0ZW0gYmVmb3JlXG4gKiAgIHRoZSByZW1haW5pbmcgZXh0cmEgc3BhY2UgaXMgZGlzdHJpYnV0ZWQuIElmIHRoZSB2aWV3cG9ydCBkb2VzIG5vdCBhcHBlYXIgYWZ0ZXIgc2V0dGluZyB0aGlzIHByb3BlcnR5LCBjaGVjayBpdHMgcGFyZW50IGVsZW1lbnRzJyBjb250ZW50IHNpemVzLlxuICogICBBcyBhbiBhbHRlcm5hdGl2ZSB0byBzZXR0aW5nIGBmbGV4OiAxIDEgMGAsIGNoYW5nZSB0aGUgc2V0dGluZyB0byBgZmxleDogYXV0b2AgYW5kIGhpZGUgdGhlIG92ZXJmbG93IGluIHRoZSBwYXJlbnQgZWxlbWVudCwgYXMgZm9sbG93czogYG92ZXJmbG93OiBoaWRkZW5gLlxuICogICBBbm90aGVyIGFwcHJvYWNoIHdvdWxkIGJlIHRvIHNldCB0aGUgbWluaW11bSBoZWlnaHQgb2YgYWxsIHBhcmVudHMgdG8gYDBgLCBhcyBmb2xsb3dzOiBgbWluLWhlaWdodDogMGAuXG4gKlxuICogICBGb3IgdGhlIGNvbXBsZXRlIGRvY3VtZW50YXRpb24gb24gdGhlIGZsZXggbGF5b3V0IGFuZCBpdHMgZmVhdHVyZXMsIHJlZmVyIHRvIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9mbGV4LlxuICpcbiAqXG4gKiAjIyBMYXlvdXRpbmcgdGhlIHZpZXdwb3J0J3Mgc2xvdHRlZCBjb250ZW50XG4gKlxuICogQnkgZGVmYXVsdCwgdGhlIHZpZXdwb3J0J3MgY29udGVudCBpcyBhZGRlZCB0byBhIENTUyBncmlkIGNvbnRhaW5lciB3aXRoIGEgc2luZ2xlIGNvbHVtbiwgZmlsbGluZyByZW1haW5pbmcgc3BhY2UgdmVydGljYWxseSBhbmQgaG9yaXpvbnRhbGx5LlxuICogVXNpbmcgdGhlIGA6OnBhcnQoY29udGVudClgIHBzZXVkbyBlbGVtZW50IHNlbGVjdG9yLCB5b3UgY2FuIGNvbmZpZ3VyZSB0aGUgZ3JpZCBjb250YWluZXIgb3IgYXBwbHkgYSBkaWZmZXJlbnQgbGF5b3V0LCBzdWNoIGFzIGEgZmxleCBvciBmbG93IGxheW91dC5cbiAqXG4gKiAjIyMjIEV4YW1wbGUgb2YgYWRkaW5nIHNsb3R0ZWQgY29udGVudCB0byBhIENTUyBmbGV4IGNvbnRhaW5lci5cbiAqIGBgYGNzc1xuICogc2NpLXZpZXdwb3J0OjpwYXJ0KGNvbnRlbnQpIHtcbiAqICAgZGlzcGxheTogZmxleDtcbiAqICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAqIH1cbiAqIGBgYFxuICpcbiAqICMjIyMgRXhhbXBsZSBvZiBjb25maWd1cmluZyBDU1MgZ3JpZCBjb250YWluZXIgd2l0aCB0d28gY29sdW1uc1xuICogYGBgY3NzXG4gKiBzY2ktdmlld3BvcnQ6OnBhcnQoY29udGVudCkge1xuICogICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gKiAgIGdhcDogMWVtO1xuICogfVxuICogYGBgXG4gKlxuICogIyMgU3R5bGluZyBvZiBzY3JvbGxiYXJzXG4gKlxuICogWW91IGNhbiBvdmVycmlkZSB0aGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgdG8gY29udHJvbCB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgc2Nyb2xsYmFyOlxuICpcbiAqIC0gc2NpLXZpZXdwb3J0LXNjcm9sbGJhci1jb2xvcjogICAgIFNldHMgdGhlIGNvbG9yIG9mIHRoZSBzY3JvbGxiYXIgKGJ5IGRlZmF1bHQsIHVzZXMgYHJnYig3OCwgNzgsIDc4KWApLlxuICpcbiAqIGBgYGNzc1xuICogc2NpLXZpZXdwb3J0IHtcbiAqICAgLS1zY2ktdmlld3BvcnQtc2Nyb2xsYmFyLWNvbG9yOiBibHVlO1xuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NjaS12aWV3cG9ydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3cG9ydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZpZXdwb3J0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpVmlld3BvcnRDb21wb25lbnQge1xuXG4gIHByaXZhdGUgX3ZpZXdwb3J0ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3ZpZXdwb3J0Q2xpZW50ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3Njcm9sbGJhclN0eWxlOiBTY3JvbGxiYXJTdHlsZSA9ICdvbi10b3AnO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gIHB1YmxpYyB0YWJpbmRleCA9IC0xOyAvLyBtYWtlIHRoZSB2aWV3cG9ydCBwcm9ncmFtbWF0aWNhbGx5IGZvY3VzYWJsZSBidXQgZG8gbm90IGluY2x1ZGUgaXQgaW4gdGhlIHRhYiBvcmRlclxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgndmlld3BvcnQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHNldCBzZXRWaWV3cG9ydCh2aWV3cG9ydDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pIHtcbiAgICB0aGlzLl92aWV3cG9ydCA9IGNvZXJjZUVsZW1lbnQodmlld3BvcnQpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCd2aWV3cG9ydF9jbGllbnQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHNldCBzZXRWaWV3cG9ydENsaWVudCh2aWV3cG9ydENsaWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pIHtcbiAgICB0aGlzLl92aWV3cG9ydENsaWVudCA9IGNvZXJjZUVsZW1lbnQodmlld3BvcnRDbGllbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdG8gdXNlIG5hdGl2ZSBzY3JvbGxiYXJzIG9yLCB3aGljaCBpcyBieSBkZWZhdWx0LCBlbXVsYXRlZCBzY3JvbGxiYXJzIHRoYXQgc2l0IG9uIHRvcCBvZiB0aGUgdmlld3BvcnQgY2xpZW50LlxuICAgKiBJbiB0aGUgbGF0dGVyLCB0aGUgdmlld3BvcnQgY2xpZW50IHJlbWFpbnMgbmF0aXZlbHkgc2Nyb2xsYWJsZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2Nyb2xsYmFyU3R5bGUoc2Nyb2xsYmFyU3R5bGU6IFNjcm9sbGJhclN0eWxlKSB7XG4gICAgdGhpcy5fc2Nyb2xsYmFyU3R5bGUgPSBzY3JvbGxiYXJTdHlsZSB8fCAnb24tdG9wJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2Nyb2xsYmFyU3R5bGUoKTogU2Nyb2xsYmFyU3R5bGUge1xuICAgIHJldHVybiB0aGlzLl9zY3JvbGxiYXJTdHlsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB1cG9uIGEgc2Nyb2xsIGV2ZW50LlxuICAgKlxuICAgKiBZb3UgY2FuIGFkZCBbc2NpRGltZW5zaW9uXSBkaXJlY3RpdmUgdG8gdGhlIHZpZXdwb3J0IG9yIHZpZXdwb3J0IGNsaWVudCB0byBiZSBub3RpZmllZCBhYm91dCBsYXlvdXQgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2Nyb2xsID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBob3N0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHVibGljIG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyOiBTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcikge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7IC8vIGRvIG5vdCByZW5hbWUgdG8gZXhwb3NlIHRoZSBzYW1lIGZvY3VzIG1ldGhvZCBsaWtlIGBIVE1MRWxlbWVudC5mb2N1cygpYC5cbiAgICB0aGlzLl92aWV3cG9ydCAmJiB0aGlzLl92aWV3cG9ydC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgY2xpZW50IGlzIHNjcm9sbGVkIHZlcnRpY2FsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxUb3BcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsVG9wKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0LnNjcm9sbFRvcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IGNsaWVudCBpcyBzY3JvbGxlZCB2ZXJ0aWNhbGx5LlxuICAgKlxuICAgKiBAc2VlIEVsZW1lbnQuc2Nyb2xsVG9wXG4gICAqL1xuICBwdWJsaWMgc2V0IHNjcm9sbFRvcChzY3JvbGxUb3A6IG51bWJlcikge1xuICAgIHRoaXMuX3ZpZXdwb3J0LnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IGNsaWVudCBpcyBzY3JvbGxlZCBob3Jpem9udGFsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxMZWZ0XG4gICAqL1xuICBwdWJsaWMgZ2V0IHNjcm9sbExlZnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IGNsaWVudCBpcyBzY3JvbGxlZCBob3Jpem9udGFsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxMZWZ0XG4gICAqL1xuICBwdWJsaWMgc2V0IHNjcm9sbExlZnQoc2Nyb2xsTGVmdDogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmlld3BvcnQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaGVpZ2h0IG9mIHRoZSB2aWV3cG9ydCBjbGllbnQuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxIZWlnaHRcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0LnNjcm9sbEhlaWdodDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB3aWR0aCBvZiB0aGUgdmlld3BvcnQgY2xpZW50LlxuICAgKlxuICAgKiBAc2VlIEVsZW1lbnQuc2Nyb2xsV2lkdGhcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsV2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQuc2Nyb2xsV2lkdGg7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmlld3BvcnQge0hUTUxFbGVtZW50fS5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmlld3BvcnRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmlld3BvcnQgY2xpZW50IHtIVE1MRWxlbWVudH0uXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZpZXdwb3J0Q2xpZW50RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0Q2xpZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgaXMgc2Nyb2xsZWQgaW50byB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gdGhlIGVsZW1lbnQgdG8gYmUgY2hlY2tlZFxuICAgKiBAcGFyYW0gZml0IC0gY29udHJvbCBpZiB0aGUgZWxlbWVudCBtdXN0IGZ1bGx5IG9yIHBhcnRpYWxseSBmaXQgaW50byB0aGUgdmlld3BvcnRcbiAgICovXG4gIHB1YmxpYyBpc0VsZW1lbnRJblZpZXcoZWxlbWVudDogSFRNTEVsZW1lbnQsIGZpdDogJ2Z1bGwnIHwgJ3BhcnRpYWwnKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWxMZWZ0ID0gdGhpcy5jb21wdXRlT2Zmc2V0KGVsZW1lbnQsICdsZWZ0Jyk7XG4gICAgY29uc3QgZWxSaWdodCA9IGVsTGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgZWxUb3AgPSB0aGlzLmNvbXB1dGVPZmZzZXQoZWxlbWVudCwgJ3RvcCcpO1xuICAgIGNvbnN0IGVsQm90dG9tID0gZWxUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgIGNvbnN0IHZwTGVmdCA9IHRoaXMuX3ZpZXdwb3J0LnNjcm9sbExlZnQ7XG4gICAgY29uc3QgdnBSaWdodCA9IHZwTGVmdCArIHRoaXMuX3ZpZXdwb3J0LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHZwVG9wID0gdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9wO1xuICAgIGNvbnN0IHZwQm90dG9tID0gdnBUb3AgKyB0aGlzLl92aWV3cG9ydC5jbGllbnRIZWlnaHQ7XG5cbiAgICBzd2l0Y2ggKGZpdCkge1xuICAgICAgY2FzZSAnZnVsbCc6XG4gICAgICAgIHJldHVybiAoZWxMZWZ0ID49IHZwTGVmdCAmJiBlbFJpZ2h0IDw9IHZwUmlnaHQpICYmIChlbFRvcCA+PSB2cFRvcCAmJiBlbEJvdHRvbSA8PSB2cEJvdHRvbSk7XG4gICAgICBjYXNlICdwYXJ0aWFsJzpcbiAgICAgICAgcmV0dXJuIChlbFJpZ2h0ID49IHZwTGVmdCAmJiBlbExlZnQgPD0gdnBSaWdodCkgJiYgKGVsQm90dG9tID49IHZwVG9wICYmIGVsVG9wIDw9IHZwQm90dG9tKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IEVycm9yKCdVbnN1cHBvcnRlZCBmaXQgc3RyYXRlZ3knKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgaW50byB0aGUgdmlld3BvcnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gdGhlIGVsZW1lbnQgdG8gc2Nyb2xsIGludG8gdGhlIHZpZXdwb3J0XG4gICAqIEBwYXJhbSBvZmZzZXQgLSB0aGUgZ2FwIGJldHdlZW4gdGhlIGVsZW1lbnQgYW5kIHRoZSB2aWV3cG9ydFxuICAgKi9cbiAgcHVibGljIHNjcm9sbEludG9WaWV3KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBvZmZzZXQ6IG51bWJlciA9IDUwKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9wID0gdGhpcy5jb21wdXRlT2Zmc2V0KGVsZW1lbnQsICd0b3AnKSAtIG9mZnNldDtcbiAgICB0aGlzLl92aWV3cG9ydC5zY3JvbGxMZWZ0ID0gdGhpcy5jb21wdXRlT2Zmc2V0KGVsZW1lbnQsICdsZWZ0JykgLSBvZmZzZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIGRpc3RhbmNlIG9mIHRoZSBlbGVtZW50IHRvIHRoZSB2aWV3cG9ydCdzIGxlZnQgb3IgdG9wIGJvcmRlci5cbiAgICovXG4gIHB1YmxpYyBjb21wdXRlT2Zmc2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBib3JkZXI6ICdsZWZ0JyB8ICd0b3AnKTogbnVtYmVyIHtcbiAgICBpZiAoIWlzQ2hpbGRPZihlbGVtZW50LCB0aGlzLl92aWV3cG9ydCkpIHtcbiAgICAgIHRocm93IEVycm9yKCdlbGVtZW50IG5vdCBhIGNoaWxkIG9mIHRoZSB2aWV3cG9ydCcpO1xuICAgIH1cblxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCBlbCA9IGVsZW1lbnQ7XG4gICAgZG8ge1xuICAgICAgb2Zmc2V0ICs9IChib3JkZXIgPT09ICdsZWZ0JyA/IGVsLm9mZnNldExlZnQgOiBlbC5vZmZzZXRUb3ApO1xuICAgICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfSB3aGlsZSAoZWwgIT09IG51bGwgJiYgZWwgIT09IHRoaXMuX3ZpZXdwb3J0KTtcblxuICAgIHJldHVybiBvZmZzZXQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zICd0cnVlJyBpZiB0aGUgZ2l2ZW4gZWxlbWVudCBpcyBhIGNoaWxkIGVsZW1lbnQgb2YgdGhlIHBhcmVudCBlbGVtZW50LlxuICovXG5mdW5jdGlvbiBpc0NoaWxkT2YoZWxlbWVudDogRWxlbWVudCwgcGFyZW50OiBFbGVtZW50KTogYm9vbGVhbiB7XG4gIHdoaWxlIChlbGVtZW50LnBhcmVudEVsZW1lbnQgIT09IG51bGwpIHtcbiAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmIChlbGVtZW50ID09PSBwYXJlbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNjcm9sbGJhciBzdHlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2Nyb2xsYmFyU3R5bGUgPSAnbmF0aXZlJyB8ICdvbi10b3AnIHwgJ2hpZGRlbic7XG4iLCI8IS0tIHZpZXdwb3J0IGFuZCB2aWV3cG9ydCBjbGllbnQgLS0+XG48ZGl2ICN2aWV3cG9ydFxuICAgICBjbGFzcz1cInZpZXdwb3J0XCJcbiAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgIHNjaVNjcm9sbGFibGUgW3NjaVNjcm9sbGFibGVEaXNwbGF5TmF0aXZlU2Nyb2xsYmFyXT1cInNjcm9sbGJhclN0eWxlID09PSAnbmF0aXZlJ1wiXG4gICAgIGNka1Njcm9sbGFibGVcbiAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCI+XG4gIDxkaXYgI3ZpZXdwb3J0X2NsaWVudCBjbGFzcz1cInZpZXdwb3J0LWNsaWVudFwiIHBhcnQ9XCJjb250ZW50XCI+XG4gICAgPHNsb3Q+PC9zbG90PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIHJlbmRlciBlbXVsYXRlZCBzY3JvbGxiYXJzIHdoaWNoIHNpdCBvbi10b3AgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwic2Nyb2xsYmFyU3R5bGUgPT09ICdvbi10b3AnICYmIChuYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlci50cmFja1NpemUkIHwgYXN5bmMpICE9PSBudWxsXCI+XG4gIDxzY2ktc2Nyb2xsYmFyIFtkaXJlY3Rpb25dPVwiJ3ZzY3JvbGwnXCIgW3ZpZXdwb3J0XT1cInZpZXdwb3J0XCI+PC9zY2ktc2Nyb2xsYmFyPlxuICA8c2NpLXNjcm9sbGJhciBbZGlyZWN0aW9uXT1cIidoc2Nyb2xsJ1wiIFt2aWV3cG9ydF09XCJ2aWV3cG9ydFwiPjwvc2NpLXNjcm9sbGJhcj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -19,18 +19,16 @@ import * as i0 from "@angular/core";
19
19
  */
20
20
  export class SciViewportModule {
21
21
  }
22
- SciViewportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciViewportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
- SciViewportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciViewportModule, declarations: [SciViewportComponent,
22
+ SciViewportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciViewportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
+ SciViewportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: SciViewportModule, declarations: [SciViewportComponent,
24
24
  SciScrollbarComponent,
25
25
  SciScrollableDirective], imports: [CommonModule,
26
26
  ScrollingModule], exports: [SciViewportComponent,
27
27
  SciScrollbarComponent,
28
28
  SciScrollableDirective] });
29
- SciViewportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciViewportModule, imports: [[
30
- CommonModule,
31
- ScrollingModule,
32
- ]] });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciViewportModule, decorators: [{
29
+ SciViewportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciViewportModule, imports: [CommonModule,
30
+ ScrollingModule] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciViewportModule, decorators: [{
34
32
  type: NgModule,
35
33
  args: [{
36
34
  imports: [
@@ -49,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
49
47
  ],
50
48
  }]
51
49
  }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQUV2RDs7R0FFRztBQWlCSCxNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBVjFCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsc0JBQXNCLGFBTnRCLFlBQVk7UUFDWixlQUFlLGFBUWYsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQixzQkFBc0I7K0dBR2IsaUJBQWlCLFlBZm5CO1lBQ1AsWUFBWTtZQUNaLGVBQWU7U0FDaEI7MkZBWVUsaUJBQWlCO2tCQWhCN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7U2NpVmlld3BvcnRDb21wb25lbnR9IGZyb20gJy4vdmlld3BvcnQuY29tcG9uZW50JztcbmltcG9ydCB7U2NpU2Nyb2xsYmFyQ29tcG9uZW50fSBmcm9tICcuL3Njcm9sbGJhci9zY3JvbGxiYXIuY29tcG9uZW50JztcbmltcG9ydCB7U2NpU2Nyb2xsYWJsZURpcmVjdGl2ZX0gZnJvbSAnLi9zY3JvbGxhYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1Njcm9sbGluZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSB2aWV3cG9ydCBjb21wb25lbnQgd2l0aCBzY3JvbGxiYXJzIHRoYXQgc2l0IG9uIHRvcCBvZiB0aGUgdmlld3BvcnQgY2xpZW50LlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNjcm9sbGluZ01vZHVsZSxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2NpVmlld3BvcnRDb21wb25lbnQsXG4gICAgU2NpU2Nyb2xsYmFyQ29tcG9uZW50LFxuICAgIFNjaVNjcm9sbGFibGVEaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTY2lWaWV3cG9ydENvbXBvbmVudCxcbiAgICBTY2lTY3JvbGxiYXJDb21wb25lbnQsXG4gICAgU2NpU2Nyb2xsYWJsZURpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpVmlld3BvcnRNb2R1bGUge1xufVxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDOztBQUV2RDs7R0FFRztBQWlCSCxNQUFNLE9BQU8saUJBQWlCOzs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBVjFCLG9CQUFvQjtRQUNwQixxQkFBcUI7UUFDckIsc0JBQXNCLGFBTnRCLFlBQVk7UUFDWixlQUFlLGFBUWYsb0JBQW9CO1FBQ3BCLHFCQUFxQjtRQUNyQixzQkFBc0I7K0dBR2IsaUJBQWlCLFlBZDFCLFlBQVk7UUFDWixlQUFlOzJGQWFOLGlCQUFpQjtrQkFoQjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3FCQUN2QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1NjaVZpZXdwb3J0Q29tcG9uZW50fSBmcm9tICcuL3ZpZXdwb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge1NjaVNjcm9sbGJhckNvbXBvbmVudH0gZnJvbSAnLi9zY3JvbGxiYXIvc2Nyb2xsYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NjaVNjcm9sbGFibGVEaXJlY3RpdmV9IGZyb20gJy4vc2Nyb2xsYWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtTY3JvbGxpbmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgdmlld3BvcnQgY29tcG9uZW50IHdpdGggc2Nyb2xsYmFycyB0aGF0IHNpdCBvbiB0b3Agb2YgdGhlIHZpZXdwb3J0IGNsaWVudC5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTY3JvbGxpbmdNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNjaVZpZXdwb3J0Q29tcG9uZW50LFxuICAgIFNjaVNjcm9sbGJhckNvbXBvbmVudCxcbiAgICBTY2lTY3JvbGxhYmxlRGlyZWN0aXZlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2NpVmlld3BvcnRDb21wb25lbnQsXG4gICAgU2NpU2Nyb2xsYmFyQ29tcG9uZW50LFxuICAgIFNjaVNjcm9sbGFibGVEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjaVZpZXdwb3J0TW9kdWxlIHtcbn1cbiJdfQ==
@@ -68,9 +68,9 @@ class SciDimensionDirective {
68
68
  this._destroy$.next();
69
69
  }
70
70
  }
71
- SciDimensionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciDimensionDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
72
- SciDimensionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: SciDimensionDirective, selector: "[sciDimension]", inputs: { emitOutsideAngular: "emitOutsideAngular" }, outputs: { dimensionChange: "sciDimensionChange" }, exportAs: ["sciDimension"], ngImport: i0 });
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciDimensionDirective, decorators: [{
71
+ SciDimensionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciDimensionDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
72
+ SciDimensionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: SciDimensionDirective, selector: "[sciDimension]", inputs: { emitOutsideAngular: "emitOutsideAngular" }, outputs: { dimensionChange: "sciDimensionChange" }, exportAs: ["sciDimension"], ngImport: i0 });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciDimensionDirective, decorators: [{
74
74
  type: Directive,
75
75
  args: [{
76
76
  selector: '[sciDimension]',
@@ -99,12 +99,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
99
99
  */
100
100
  class SciDimensionModule {
101
101
  }
102
- SciDimensionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciDimensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
103
- SciDimensionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciDimensionModule, declarations: [SciDimensionDirective], imports: [CommonModule], exports: [SciDimensionDirective] });
104
- SciDimensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciDimensionModule, imports: [[
105
- CommonModule,
106
- ]] });
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciDimensionModule, decorators: [{
102
+ SciDimensionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciDimensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
103
+ SciDimensionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: SciDimensionModule, declarations: [SciDimensionDirective], imports: [CommonModule], exports: [SciDimensionDirective] });
104
+ SciDimensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciDimensionModule, imports: [CommonModule] });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciDimensionModule, decorators: [{
108
106
  type: NgModule,
109
107
  args: [{
110
108
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"scion-components-dimension.mjs","sources":["../../../../projects/scion/components/dimension/src/dimension.directive.ts","../../../../projects/scion/components/dimension/src/dimension.module.ts","../../../../projects/scion/components/dimension/src/public_api.ts","../../../../projects/scion/components/dimension/src/scion-components-dimension.ts"],"sourcesContent":["/*\n * Copyright (c) 2018-2019 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {Directive, ElementRef, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {captureElementDimension, Dimension, fromDimension$} from '@scion/toolkit/observable';\n\n/**\n * Allows observing changes to host element's size.\n *\n * See {@link fromDimension$} Observable for more information.\n *\n * ---\n * Usage:\n *\n * <div sciDimension (sciDimensionChange)=\"onDimensionChange($event)\"></div>\n */\n@Directive({\n selector: '[sciDimension]',\n exportAs: 'sciDimension',\n})\nexport class SciDimensionDirective implements OnInit, OnDestroy {\n\n private readonly _host: HTMLElement;\n private _destroy$ = new Subject<void>();\n\n /**\n * Upon subscription, it emits the host element's dimension, and then continuously emits when the dimension of the host element changes.\n */\n @Output('sciDimensionChange') // eslint-disable-line @angular-eslint/no-output-rename\n public dimensionChange = new EventEmitter<SciDimension>();\n\n /**\n * Controls if to emit a dimension change inside or outside of the Angular zone.\n * If emitted outside of the Angular zone no change detection cycle is triggered.\n *\n * By default, if not specified, emits inside the Angular zone.\n */\n @Input()\n public emitOutsideAngular = false;\n\n constructor(host: ElementRef<HTMLElement>, private _ngZone: NgZone) {\n this._host = host.nativeElement;\n }\n\n public ngOnInit(): void {\n this.installDimensionListener();\n }\n\n private installDimensionListener(): void {\n this._ngZone.runOutsideAngular(() => {\n fromDimension$(this._host)\n .pipe(takeUntil(this._destroy$))\n .subscribe((dimension: SciDimension) => {\n if (this.emitOutsideAngular) {\n this.dimensionChange.emit(dimension);\n }\n else {\n this._ngZone.run(() => this.dimensionChange.emit(dimension));\n }\n });\n });\n }\n\n /**\n * Returns the current dimension of its host element.\n */\n public get dimension(): SciDimension {\n return captureElementDimension(this._host);\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n }\n}\n\n/**\n * Represents the dimension of an element.\n */\nexport type SciDimension = Dimension;\n","/*\n * Copyright (c) 2018-2019 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SciDimensionDirective} from './dimension.directive';\n\n/**\n * Provides a directive for observing changes to the size of the host element.\n *\n * @see fromDimension$\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n SciDimensionDirective,\n ],\n exports: [\n SciDimensionDirective,\n ],\n})\nexport class SciDimensionModule {\n}\n","/*\n * Copyright (c) 2018-2019 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\n/*\n * Secondary entrypoint: '@scion/components/dimension'\n *\n * @see https://github.com/ng-packagr/ng-packagr/blob/master/docs/secondary-entrypoints.md\n */\nexport {SciDimensionModule} from './dimension.module';\nexport {SciDimensionDirective, SciDimension} from './dimension.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;AAAA;;;;;;;;;AAeA;;;;;;;;;;MAca,qBAAqB;IAoBhC,YAAY,IAA6B,EAAU,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAjB1D,cAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;;;;QAMjC,oBAAe,GAAG,IAAI,YAAY,EAAgB,CAAC;;;;;;;QASnD,uBAAkB,GAAG,KAAK,CAAC;QAGhC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;KACjC;IAEM,QAAQ;QACb,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC7B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;iBACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC/B,SAAS,CAAC,CAAC,SAAuB;gBACjC,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBACtC;qBACI;oBACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;iBAC9D;aACF,CAAC,CAAC;SACN,CAAC,CAAC;KACJ;;;;IAKD,IAAW,SAAS;QAClB,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5C;IAEM,WAAW;QAChB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;;kHApDU,qBAAqB;sGAArB,qBAAqB;2FAArB,qBAAqB;kBAJjC,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,cAAc;iBACzB;sHAUQ,eAAe;sBADrB,MAAM;uBAAC,oBAAoB;gBAUrB,kBAAkB;sBADxB,KAAK;;;AC9CR;;;;;;;;;AAcA;;;;;MAgBa,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAN3B,qBAAqB,aAHrB,YAAY,aAMZ,qBAAqB;gHAGZ,kBAAkB,YAVpB;YACP,YAAY;SACb;2FAQU,kBAAkB;kBAX9B,QAAQ;mBAAC;oBACR,OAAO,EAAE;wBACP,YAAY;qBACb;oBACD,YAAY,EAAE;wBACZ,qBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,qBAAqB;qBACtB;iBACF;;;AC7BD;;;;;;;;;;ACAA;;;;;;"}
1
+ {"version":3,"file":"scion-components-dimension.mjs","sources":["../../../../projects/scion/components/dimension/src/dimension.directive.ts","../../../../projects/scion/components/dimension/src/dimension.module.ts","../../../../projects/scion/components/dimension/src/public_api.ts","../../../../projects/scion/components/dimension/src/scion-components-dimension.ts"],"sourcesContent":["/*\n * Copyright (c) 2018-2019 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {Directive, ElementRef, EventEmitter, Input, NgZone, OnDestroy, OnInit, Output} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {captureElementDimension, Dimension, fromDimension$} from '@scion/toolkit/observable';\n\n/**\n * Allows observing changes to host element's size.\n *\n * See {@link fromDimension$} Observable for more information.\n *\n * ---\n * Usage:\n *\n * <div sciDimension (sciDimensionChange)=\"onDimensionChange($event)\"></div>\n */\n@Directive({\n selector: '[sciDimension]',\n exportAs: 'sciDimension',\n})\nexport class SciDimensionDirective implements OnInit, OnDestroy {\n\n private readonly _host: HTMLElement;\n private _destroy$ = new Subject<void>();\n\n /**\n * Upon subscription, it emits the host element's dimension, and then continuously emits when the dimension of the host element changes.\n */\n @Output('sciDimensionChange') // eslint-disable-line @angular-eslint/no-output-rename\n public dimensionChange = new EventEmitter<SciDimension>();\n\n /**\n * Controls if to emit a dimension change inside or outside of the Angular zone.\n * If emitted outside of the Angular zone no change detection cycle is triggered.\n *\n * By default, if not specified, emits inside the Angular zone.\n */\n @Input()\n public emitOutsideAngular = false;\n\n constructor(host: ElementRef<HTMLElement>, private _ngZone: NgZone) {\n this._host = host.nativeElement;\n }\n\n public ngOnInit(): void {\n this.installDimensionListener();\n }\n\n private installDimensionListener(): void {\n this._ngZone.runOutsideAngular(() => {\n fromDimension$(this._host)\n .pipe(takeUntil(this._destroy$))\n .subscribe((dimension: SciDimension) => {\n if (this.emitOutsideAngular) {\n this.dimensionChange.emit(dimension);\n }\n else {\n this._ngZone.run(() => this.dimensionChange.emit(dimension));\n }\n });\n });\n }\n\n /**\n * Returns the current dimension of its host element.\n */\n public get dimension(): SciDimension {\n return captureElementDimension(this._host);\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n }\n}\n\n/**\n * Represents the dimension of an element.\n */\nexport type SciDimension = Dimension;\n","/*\n * Copyright (c) 2018-2019 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {SciDimensionDirective} from './dimension.directive';\n\n/**\n * Provides a directive for observing changes to the size of the host element.\n *\n * @see fromDimension$\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n SciDimensionDirective,\n ],\n exports: [\n SciDimensionDirective,\n ],\n})\nexport class SciDimensionModule {\n}\n","/*\n * Copyright (c) 2018-2019 Swiss Federal Railways\n *\n * This program and the accompanying materials are made\n * available under the terms of the Eclipse Public License 2.0\n * which is available at https://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier: EPL-2.0\n */\n\n/*\n * Secondary entrypoint: '@scion/components/dimension'\n *\n * @see https://github.com/ng-packagr/ng-packagr/blob/master/docs/secondary-entrypoints.md\n */\nexport {SciDimensionModule} from './dimension.module';\nexport {SciDimensionDirective, SciDimension} from './dimension.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;AAAA;;;;;;;;AAQG;AAOH;;;;;;;;;AASG;MAKU,qBAAqB,CAAA;IAoBhC,WAAY,CAAA,IAA6B,EAAU,OAAe,EAAA;AAAf,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAjB1D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ,CAAC;AAExC;;AAEG;AAEI,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAgB,CAAC;AAE1D;;;;;AAKG;AAEI,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;AAGhC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;KACjC;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;IAEO,wBAAwB,GAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;AAClC,YAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/B,iBAAA,SAAS,CAAC,CAAC,SAAuB,KAAI;gBACrC,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,oBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtC,iBAAA;AACI,qBAAA;AACH,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC9D,iBAAA;AACH,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;AACH,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5C;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;;kHApDU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;iBACzB,CAAA;sHAUQ,eAAe,EAAA,CAAA;sBADrB,MAAM;uBAAC,oBAAoB,CAAA;gBAUrB,kBAAkB,EAAA,CAAA;sBADxB,KAAK;;;AC9CR;;;;;;;;AAQG;AAMH;;;;AAIG;MAYU,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAN3B,YAAA,EAAA,CAAA,qBAAqB,CAHrB,EAAA,OAAA,EAAA,CAAA,YAAY,aAMZ,qBAAqB,CAAA,EAAA,CAAA,CAAA;AAGZ,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAT3B,YAAY,CAAA,EAAA,CAAA,CAAA;2FASH,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAX9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;AACtB,qBAAA;iBACF,CAAA;;;AC7BD;;;;;;;;AAQG;;ACRH;;AAEG;;;;"}
@@ -2,10 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { Directive, Input, EventEmitter, NgZone, forwardRef, Component, HostBinding, Output, ContentChildren, NgModule } from '@angular/core';
3
3
  import { switchMap, map, startWith, takeUntil } from 'rxjs/operators';
4
4
  import { BehaviorSubject, merge, Subject } from 'rxjs';
5
- import * as i1 from '@scion/components/splitter';
6
- import { SciSplitterModule } from '@scion/components/splitter';
7
- import * as i2 from '@angular/common';
5
+ import * as i1 from '@angular/common';
8
6
  import { CommonModule } from '@angular/common';
7
+ import * as i2 from '@scion/components/splitter';
8
+ import { SciSplitterModule } from '@scion/components/splitter';
9
9
 
10
10
  /**
11
11
  * Allows accessing the sashbox component from sashes.
@@ -138,9 +138,9 @@ class SciSashDirective {
138
138
  return flexGrow / flexGrowSum;
139
139
  }
140
140
  }
141
- SciSashDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashDirective, deps: [{ token: i0.TemplateRef }, { token: SciSashBoxAccessor }], target: i0.ɵɵFactoryTarget.Directive });
142
- SciSashDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: SciSashDirective, selector: "ng-template[sciSash]", inputs: { size: "size", minSize: "minSize" }, exportAs: ["sciSash"], usesOnChanges: true, ngImport: i0 });
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashDirective, decorators: [{
141
+ SciSashDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashDirective, deps: [{ token: i0.TemplateRef }, { token: SciSashBoxAccessor }], target: i0.ɵɵFactoryTarget.Directive });
142
+ SciSashDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: SciSashDirective, selector: "ng-template[sciSash]", inputs: { size: "size", minSize: "minSize" }, exportAs: ["sciSash"], usesOnChanges: true, ngImport: i0 });
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashDirective, decorators: [{
144
144
  type: Directive,
145
145
  args: [{
146
146
  selector: 'ng-template[sciSash]',
@@ -172,9 +172,9 @@ class SciSashInitializerDirective {
172
172
  this.sash.element = this._host.nativeElement;
173
173
  }
174
174
  }
175
- SciSashInitializerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashInitializerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
176
- SciSashInitializerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: SciSashInitializerDirective, selector: "div[sciSashInitializer].sash", inputs: { sash: ["sciSashInitializer", "sash"] }, usesOnChanges: true, ngImport: i0 });
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashInitializerDirective, decorators: [{
175
+ SciSashInitializerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashInitializerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
176
+ SciSashInitializerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: SciSashInitializerDirective, selector: "div[sciSashInitializer].sash", inputs: { sash: ["sciSashInitializer", "sash"] }, usesOnChanges: true, ngImport: i0 });
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashInitializerDirective, decorators: [{
178
178
  type: Directive,
179
179
  args: [{ selector: 'div[sciSashInitializer].sash' }]
180
180
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { sash: [{
@@ -200,9 +200,9 @@ class SciElementRefDirective {
200
200
  this.nativeElement = host.nativeElement;
201
201
  }
202
202
  }
203
- SciElementRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciElementRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
204
- SciElementRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: SciElementRefDirective, selector: "[sciElementRef]", exportAs: ["sciElementRef"], ngImport: i0 });
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciElementRefDirective, decorators: [{
203
+ SciElementRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciElementRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
204
+ SciElementRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: SciElementRefDirective, selector: "[sciElementRef]", exportAs: ["sciElementRef"], ngImport: i0 });
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciElementRefDirective, decorators: [{
206
206
  type: Directive,
207
207
  args: [{ selector: '[sciElementRef]', exportAs: 'sciElementRef' }]
208
208
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
@@ -417,13 +417,13 @@ class SciSashboxComponent {
417
417
  return parseInt(value, 10);
418
418
  }
419
419
  }
420
- SciSashboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashboxComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
421
- SciSashboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: SciSashboxComponent, selector: "sci-sashbox", inputs: { direction: "direction" }, outputs: { sashStart: "sashStart", sashEnd: "sashEnd" }, host: { properties: { "class.sashing": "this.sashing", "class.column": "this.isColumnDirection", "class.row": "this.isRowDirection" } }, providers: [{
420
+ SciSashboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashboxComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
421
+ SciSashboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: SciSashboxComponent, selector: "sci-sashbox", inputs: { direction: "direction" }, outputs: { sashStart: "sashStart", sashEnd: "sashEnd" }, host: { properties: { "class.sashing": "this.sashing", "class.column": "this.isColumnDirection", "class.row": "this.isRowDirection" } }, providers: [{
422
422
  provide: SciSashBoxAccessor,
423
423
  useFactory: provideSashBoxAccessor,
424
424
  deps: [forwardRef(() => SciSashboxComponent)],
425
- }], queries: [{ propertyName: "setSashes", predicate: SciSashDirective }], ngImport: i0, template: "<ng-container *ngFor=\"let sash of sashes$ | async; index as i; first as first; last as last;\">\n <div class=\"sash\"\n [class.first]=\"first\"\n [class.last]=\"last\"\n [sciSashInitializer]=\"sash\"\n [style.flex-grow]=\"sash.flexGrowNormalized$ | async\"\n [style.flex-shrink]=\"sash.flexShrink\"\n [style.flex-basis]=\"sash.flexBasis\">\n <ng-container *ngTemplateOutlet=\"sash.sashTemplate\"></ng-container>\n </div>\n\n <sci-splitter *ngIf=\"!last\"\n sciElementRef #sciElementRef=\"sciElementRef\"\n [orientation]=\"isRowDirection ? 'vertical' : 'horizontal'\"\n (start)=\"onSashStart()\"\n (move)=\"onSash(sciElementRef.nativeElement, i, $event)\"\n (end)=\"onSashEnd()\"\n (reset)=\"onSashReset(i)\">\n </sci-splitter>\n</ng-container>\n", styles: [":host{--sci-sashbox-gap: 10px;--sci-sashbox-splitter-bgcolor: #d2d2d2;--sci-sashbox-splitter-bgcolor_hover: var(--sci-sashbox-splitter-bgcolor);--sci-sashbox-splitter-size: 1px;--sci-sashbox-splitter-size_hover: 8px;--sci-sashbox-splitter-touch-target-size: 15px;--sci-sashbox-splitter-cross-axis-size: 100%;--sci-sashbox-splitter-border-radius: 0;--sci-sashbox-splitter-opacity_active: 1;--sci-sashbox-splitter-opacity_hover: .3;display:flex;align-items:stretch;box-sizing:border-box;overflow:hidden;z-index:0}:host *{box-sizing:border-box}:host.column{flex-direction:column}:host.row{flex-direction:row}:host>div.sash{overflow:hidden;display:grid;grid-auto-rows:100%;grid-auto-columns:100%}:host.row>div.sash{margin:0 var(--sci-sashbox-gap)}:host.row>div.sash.first{margin-left:0}:host.row>div.sash.last{margin-right:0}:host.column>div.sash{margin:var(--sci-sashbox-gap) 0}:host.column>div.sash.first{margin-top:0}:host.column>div.sash.last{margin-bottom:0}:host.sashing>div.sash{pointer-events:none}:host>sci-splitter{--sci-splitter-bgcolor: var(--sci-sashbox-splitter-bgcolor);--sci-splitter-bgcolor_hover: var(--sci-sashbox-splitter-bgcolor_hover);--sci-splitter-size: var(--sci-sashbox-splitter-size);--sci-splitter-size_hover: var(--sci-sashbox-splitter-size_hover);--sci-splitter-touch-target-size: var(--sci-sashbox-splitter-touch-target-size);--sci-splitter-cross-axis-size: var(--sci-sashbox-splitter-cross-axis-size);--sci-splitter-border-radius: var(--sci-sashbox-splitter-border-radius);--sci-splitter-opacity_active: var(--sci-sashbox-splitter-opacity_active);--sci-splitter-opacity_hover: var(--sci-sashbox-splitter-opacity_hover);flex:none;z-index:1}\n"], components: [{ type: i1.SciSplitterComponent, selector: "sci-splitter", inputs: ["orientation"], outputs: ["start", "move", "end", "reset"] }], directives: [{ type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SciSashInitializerDirective, selector: "div[sciSashInitializer].sash", inputs: ["sciSashInitializer"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: SciElementRefDirective, selector: "[sciElementRef]", exportAs: ["sciElementRef"] }], pipes: { "async": i2.AsyncPipe } });
426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashboxComponent, decorators: [{
425
+ }], queries: [{ propertyName: "setSashes", predicate: SciSashDirective }], ngImport: i0, template: "<ng-container *ngFor=\"let sash of sashes$ | async; index as i; first as first; last as last;\">\n <div class=\"sash\"\n [class.first]=\"first\"\n [class.last]=\"last\"\n [sciSashInitializer]=\"sash\"\n [style.flex-grow]=\"sash.flexGrowNormalized$ | async\"\n [style.flex-shrink]=\"sash.flexShrink\"\n [style.flex-basis]=\"sash.flexBasis\">\n <ng-container *ngTemplateOutlet=\"sash.sashTemplate\"></ng-container>\n </div>\n\n <sci-splitter *ngIf=\"!last\"\n sciElementRef #sciElementRef=\"sciElementRef\"\n [orientation]=\"isRowDirection ? 'vertical' : 'horizontal'\"\n (start)=\"onSashStart()\"\n (move)=\"onSash(sciElementRef.nativeElement, i, $event)\"\n (end)=\"onSashEnd()\"\n (reset)=\"onSashReset(i)\">\n </sci-splitter>\n</ng-container>\n", styles: [":host{--sci-sashbox-gap: 10px;--sci-sashbox-splitter-bgcolor: #d2d2d2;--sci-sashbox-splitter-bgcolor_hover: var(--sci-sashbox-splitter-bgcolor);--sci-sashbox-splitter-size: 1px;--sci-sashbox-splitter-size_hover: 8px;--sci-sashbox-splitter-touch-target-size: 15px;--sci-sashbox-splitter-cross-axis-size: 100%;--sci-sashbox-splitter-border-radius: 0;--sci-sashbox-splitter-opacity_active: 1;--sci-sashbox-splitter-opacity_hover: .3;display:flex;align-items:stretch;box-sizing:border-box;overflow:hidden;z-index:0}:host *{box-sizing:border-box}:host.column{flex-direction:column}:host.row{flex-direction:row}:host>div.sash{overflow:hidden;display:grid;grid-auto-rows:100%;grid-auto-columns:100%}:host.row>div.sash{margin:0 var(--sci-sashbox-gap)}:host.row>div.sash.first{margin-left:0}:host.row>div.sash.last{margin-right:0}:host.column>div.sash{margin:var(--sci-sashbox-gap) 0}:host.column>div.sash.first{margin-top:0}:host.column>div.sash.last{margin-bottom:0}:host.sashing>div.sash{pointer-events:none}:host>sci-splitter{--sci-splitter-bgcolor: var(--sci-sashbox-splitter-bgcolor);--sci-splitter-bgcolor_hover: var(--sci-sashbox-splitter-bgcolor_hover);--sci-splitter-size: var(--sci-sashbox-splitter-size);--sci-splitter-size_hover: var(--sci-sashbox-splitter-size_hover);--sci-splitter-touch-target-size: var(--sci-sashbox-splitter-touch-target-size);--sci-splitter-cross-axis-size: var(--sci-sashbox-splitter-cross-axis-size);--sci-splitter-border-radius: var(--sci-sashbox-splitter-border-radius);--sci-splitter-opacity_active: var(--sci-sashbox-splitter-opacity_active);--sci-splitter-opacity_hover: var(--sci-sashbox-splitter-opacity_hover);flex:none;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.SciSplitterComponent, selector: "sci-splitter", inputs: ["orientation"], outputs: ["start", "move", "end", "reset"] }, { kind: "directive", type: SciSashInitializerDirective, selector: "div[sciSashInitializer].sash", inputs: ["sciSashInitializer"] }, { kind: "directive", type: SciElementRefDirective, selector: "[sciElementRef]", exportAs: ["sciElementRef"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashboxComponent, decorators: [{
427
427
  type: Component,
428
428
  args: [{ selector: 'sci-sashbox', providers: [{
429
429
  provide: SciSashBoxAccessor,
@@ -507,18 +507,16 @@ function provideSashBoxAccessor(component) {
507
507
  */
508
508
  class SciSashboxModule {
509
509
  }
510
- SciSashboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
511
- SciSashboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashboxModule, declarations: [SciSashboxComponent,
510
+ SciSashboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
511
+ SciSashboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: SciSashboxModule, declarations: [SciSashboxComponent,
512
512
  SciSashDirective,
513
513
  SciSashInitializerDirective,
514
514
  SciElementRefDirective], imports: [CommonModule,
515
515
  SciSplitterModule], exports: [SciSashboxComponent,
516
516
  SciSashDirective] });
517
- SciSashboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashboxModule, imports: [[
518
- CommonModule,
519
- SciSplitterModule,
520
- ]] });
521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciSashboxModule, decorators: [{
517
+ SciSashboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashboxModule, imports: [CommonModule,
518
+ SciSplitterModule] });
519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SciSashboxModule, decorators: [{
522
520
  type: NgModule,
523
521
  args: [{
524
522
  declarations: [