@stemy/ngx-utils 17.3.1 → 17.3.3

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.
@@ -1,5 +1,5 @@
1
1
  import { Directive, ElementRef, Inject, Optional, TemplateRef, ViewContainerRef } from "@angular/core";
2
- import { autoPlacement, autoUpdate, arrow, computePosition } from "@floating-ui/dom";
2
+ import { arrow, autoPlacement, autoUpdate, computePosition } from "@floating-ui/dom";
3
3
  import { ROOT_ELEMENT } from "../common-types";
4
4
  import { DropdownDirective } from "./dropdown.directive";
5
5
  import { ObservableUtils } from "../utils/observable.utils";
@@ -35,37 +35,53 @@ export class DropdownContentDirective {
35
35
  const [content, arrowEl] = this.createWrapper();
36
36
  this.dropdown.contentElement = content;
37
37
  // Set up floating UI positioning settings
38
- const placement = this.dropdown.placement || "bottom";
39
- const strategy = this.attachOutside ? "fixed" : "absolute";
40
38
  const middleware = [
41
39
  arrow({ element: arrowEl })
42
40
  ];
43
41
  if (this.dropdown.autoPlacement) {
44
42
  middleware.push(autoPlacement(this.dropdown.autoPlacement));
45
43
  }
44
+ const compute = async () => {
45
+ const isMobileView = window.innerWidth <= mobileWidth;
46
+ if (isMobileView) {
47
+ return {
48
+ styles: {
49
+ left: "0px", top: "0px", right: "0px", bottom: "0px",
50
+ position: "fixed",
51
+ },
52
+ placement: "top",
53
+ isMobileView
54
+ };
55
+ }
56
+ const { x, y, placement, middlewareData } = await computePosition(ref, content, {
57
+ strategy: "absolute",
58
+ placement: this.dropdown.placement || "bottom",
59
+ middleware
60
+ });
61
+ return {
62
+ styles: {
63
+ left: `${x}px`, top: `${y}px`, right: undefined, bottom: undefined,
64
+ position: "absolute",
65
+ },
66
+ placement,
67
+ isMobileView,
68
+ middlewareData
69
+ };
70
+ };
46
71
  // Set up floating UI auto update
47
72
  this.cleanUp = autoUpdate(ref, content, () => {
48
- computePosition(ref, content, {
49
- strategy,
50
- placement,
51
- middleware
52
- }).then(({ x, y, placement, middlewareData }) => {
53
- if (middlewareData.arrow) {
73
+ compute().then(({ styles, placement, isMobileView, middlewareData }) => {
74
+ if (middlewareData?.arrow) {
54
75
  const { x, y } = middlewareData.arrow;
55
76
  Object.assign(arrowEl.style, {
56
77
  left: x != null ? `${x}px` : ``,
57
78
  top: y != null ? `${y}px` : ``,
58
79
  });
59
80
  }
60
- const isMobileView = window.innerWidth <= mobileWidth;
61
81
  Object.assign(content.style, {
62
82
  opacity: init ? "0" : "1",
63
- position: isMobileView ? "fixed" : strategy,
64
- left: isMobileView ? `0px` : `${x}px`,
65
- right: isMobileView ? `0px` : undefined,
66
- top: isMobileView ? `0px` : `${y}px`,
67
- bottom: isMobileView ? `0px` : undefined,
68
- zIndex: `var(--dd-z-index, 100)`
83
+ zIndex: `var(--dd-z-index, 100)`,
84
+ ...styles
69
85
  });
70
86
  const refRect = ref.getBoundingClientRect();
71
87
  const contentRect = content.getBoundingClientRect();
@@ -116,6 +132,8 @@ export class DropdownContentDirective {
116
132
  const wrapper = document.createElement("div");
117
133
  const arrow = document.createElement("div");
118
134
  arrow.classList.add(`dropdown-content-arrow`);
135
+ arrow.style.position = `absolute`;
136
+ wrapper.appendChild(arrow);
119
137
  const ref = this.vcr.createEmbeddedView(this.templateRef);
120
138
  ref.rootNodes.forEach(node => wrapper.appendChild(node));
121
139
  this.attachTo = this.whereToAttach();
@@ -146,7 +164,6 @@ export class DropdownContentDirective {
146
164
  }
147
165
  }
148
166
  wrapper.classList.add("dropdown-content-wrap");
149
- wrapper.appendChild(arrow);
150
167
  return [wrapper, arrow];
151
168
  }
152
169
  initialize() {
@@ -173,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
173
190
  }] }, { type: i0.TemplateRef, decorators: [{
174
191
  type: Optional
175
192
  }] }] });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQXVCLE1BQU0sa0JBQWtCLENBQUM7QUFFekcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFFOUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQU9oRCxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDLFlBQXNCLEdBQXFCLEVBQ2EsUUFBcUIsRUFDM0MsUUFBMkIsRUFDNUIsV0FBNkI7UUFIeEMsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDYSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQzNDLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLENBQUMsQ0FBQztRQUMvRyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FB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QUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0EzS1Esd0JBQXdCLGtEQVNELFlBQVk7bUdBVG5DLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0I7OzBCQVVnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFlBQVk7OzBCQUMvQixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHthdXRvUGxhY2VtZW50LCBhdXRvVXBkYXRlLCBhcnJvdywgY29tcHV0ZVBvc2l0aW9uLCBNaWRkbGV3YXJlLCBTdHJhdGVneX0gZnJvbSBcIkBmbG9hdGluZy11aS9kb21cIjtcblxuaW1wb3J0IHtST09UX0VMRU1FTlR9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7RHJvcGRvd25EaXJlY3RpdmV9IGZyb20gXCIuL2Ryb3Bkb3duLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHtPYnNlcnZhYmxlVXRpbHN9IGZyb20gXCIuLi91dGlscy9vYnNlcnZhYmxlLnV0aWxzXCI7XG5pbXBvcnQge2dldENzc1ZhcmlhYmxlc30gZnJvbSBcIi4uL3V0aWxzL21pc2NcIjtcblxuY29uc3QgcmVjdFByb3BzID0gW1wieFwiLCBcInlcIiwgXCJ3aWR0aFwiLCBcImhlaWdodFwiXTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6IFwiW2Ryb3Bkb3duQ29udGVudF1cIixcbiAgICBleHBvcnRBczogXCJkcm9wZG93bi1jb250ZW50XCIsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgYXR0YWNoVG86IEhUTUxFbGVtZW50O1xuICAgIHByb3RlY3RlZCBhdHRhY2hPdXRzaWRlOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBsYXN0UGxhY2VtZW50OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGNsZWFuVXA6ICgpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUk9PVF9FTEVNRU5UKSBwcm90ZWN0ZWQgcm9vdEVsZW06IEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBkcm9wZG93bjogRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcmVhZG9ubHkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEcm9wZG93bkRpcmVjdGl2ZSBpcyByZXF1aXJlZCEgUGxlYXNlIHVzZSBpdCBpbnNpZGUgYSBkZCwgZHJvcC1kb3duIGRpcmVjdGl2ZSBhdHRyaWJ1dGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUZW1wbGF0ZVJlZiBpcyByZXF1aXJlZCEgUGxlYXNlIHVzZSB3aXRoICpkcm9wZG93bkNvbnRlbnRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0UGxhY2VtZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBPYnNlcnZhYmxlVXRpbHMubXVsdGlTdWJzY3JpcHRpb24oXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLm9uU2hvd24uc3Vic2NyaWJlKCgpID0+IHRoaXMuY3JlYXRlVmlldygpKSxcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ub25IaWRkZW4uc3Vic2NyaWJlKCgpID0+IHRoaXMuZGVzdHJveVZpZXcoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlVmlldyhpbml0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbW9iaWxlV2lkdGggPSB0aGlzLmRyb3Bkb3duLm1vYmlsZVZpZXdVbmRlciB8fCAwO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IFtjb250ZW50LCBhcnJvd0VsXSA9IHRoaXMuY3JlYXRlV3JhcHBlcigpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50ID0gY29udGVudDtcbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIHBvc2l0aW9uaW5nIHNldHRpbmdzXG4gICAgICAgIGNvbnN0IHBsYWNlbWVudCA9IHRoaXMuZHJvcGRvd24ucGxhY2VtZW50IHx8IFwiYm90dG9tXCI7XG4gICAgICAgIGNvbnN0IHN0cmF0ZWd5OiBTdHJhdGVneSA9IHRoaXMuYXR0YWNoT3V0c2lkZSA/IFwiZml4ZWRcIiA6IFwiYWJzb2x1dGVcIjtcbiAgICAgICAgY29uc3QgbWlkZGxld2FyZSA9IFtcbiAgICAgICAgICAgIGFycm93KHtlbGVtZW50OiBhcnJvd0VsfSlcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd24uYXV0b1BsYWNlbWVudCkge1xuICAgICAgICAgICAgbWlkZGxld2FyZS5wdXNoKGF1dG9QbGFjZW1lbnQodGhpcy5kcm9wZG93bi5hdXRvUGxhY2VtZW50KSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIGF1dG8gdXBkYXRlXG4gICAgICAgIHRoaXMuY2xlYW5VcCA9IGF1dG9VcGRhdGUoXG4gICAgICAgICAgICByZWYsXG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVQb3NpdGlvbihcbiAgICAgICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pZGRsZXdhcmVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICkudGhlbigoe3gsIHksIHBsYWNlbWVudCwgbWlkZGxld2FyZURhdGF9KSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pZGRsZXdhcmVEYXRhLmFycm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7eCwgeX0gPSBtaWRkbGV3YXJlRGF0YS5hcnJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYXJyb3dFbC5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHggIT0gbnVsbCA/IGAke3h9cHhgIDogYGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiB5ICE9IG51bGwgPyBgJHt5fXB4YCA6IGBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc01vYmlsZVZpZXcgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSBtb2JpbGVXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb250ZW50LnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiBpbml0ID8gXCIwXCIgOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpc01vYmlsZVZpZXcgPyBcImZpeGVkXCIgOiBzdHJhdGVneSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGlzTW9iaWxlVmlldyA/IGAwcHhgOiBgJHt4fXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBpc01vYmlsZVZpZXcgPyBgMHB4YDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBpc01vYmlsZVZpZXcgPyBgMHB4YDogYCR7eX1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IGlzTW9iaWxlVmlldyA/IGAwcHhgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IGB2YXIoLS1kZC16LWluZGV4LCAxMDApYFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmUmVjdCA9IHJlZi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudFJlY3QgPSBjb250ZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXN0UGxhY2VtZW50ID0gdGhpcy5sYXN0UGxhY2VtZW50O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQbGFjZW1lbnQgPSBgZHJvcGRvd24tcGxhY2VtZW50LSR7cGxhY2VtZW50fWA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXN0UGxhY2VtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYuY2xhc3NMaXN0LnJlcGxhY2UobGFzdFBsYWNlbWVudCwgbmV3UGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LnJlcGxhY2UobGFzdFBsYWNlbWVudCwgbmV3UGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5jbGFzc0xpc3QuYWRkKG5ld1BsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5hZGQobmV3UGxhY2VtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtbW9iaWxlYCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoYGRyb3Bkb3duLWNvbnRlbnQtbW9iaWxlYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVjdFByb3BzLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LnN0eWxlLnNldFByb3BlcnR5KGAtLXRvZ2dsZS0ke3Byb3B9YCwgYCR7cmVmUmVjdFtwcm9wXX1weGApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLnN0eWxlLnNldFByb3BlcnR5KGAtLWNvbnRlbnQtJHtwcm9wfWAsIGAke2NvbnRlbnRSZWN0W3Byb3BdfXB4YCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RQbGFjZW1lbnQgPSBuZXdQbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBkZXN0cm95VmlldygpIHtcbiAgICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5jb250ZW50RWxlbWVudD8ucmVtb3ZlKCk7XG4gICAgICAgIHRoaXMuY2xlYW5VcD8uKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHdoZXJlVG9BdHRhY2goKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmRyb3Bkb3duLmF0dGFjaFRvO1xuICAgICAgICBpZiAodGFyZ2V0ID09PSBcInJvb3RcIiAmJiB0aGlzLnJvb3RFbGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yb290RWxlbTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudFJlZikge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbmNob3IgPSB0aGlzLnZjci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIHJldHVybiBhbmNob3I/LnBhcmVudEVsZW1lbnQgfHwgdGhpcy5yb290RWxlbTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlV3JhcHBlcigpIHtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGNvbnN0IGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgYXJyb3cuY2xhc3NMaXN0LmFkZChgZHJvcGRvd24tY29udGVudC1hcnJvd2ApO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgIHJlZi5yb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHdyYXBwZXIuYXBwZW5kQ2hpbGQobm9kZSkpO1xuXG4gICAgICAgIHRoaXMuYXR0YWNoVG8gPSB0aGlzLndoZXJlVG9BdHRhY2goKTtcbiAgICAgICAgdGhpcy5hdHRhY2hUby5hcHBlbmRDaGlsZCh3cmFwcGVyKTtcbiAgICAgICAgdGhpcy5hdHRhY2hPdXRzaWRlID0gIXRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGhpcy5hdHRhY2hUbyk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXR0YWNoT3V0c2lkZSkge1xuICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlU3R5bGVzID0gZ2V0Q3NzVmFyaWFibGVzKHRoaXMuZHJvcGRvd24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCB3cmFwcGVyU3R5bGVzID0gZ2V0Q3NzVmFyaWFibGVzKHdyYXBwZXIpO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMocmVmZXJlbmNlU3R5bGVzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF3cmFwcGVyU3R5bGVzW2tleV0pIHtcbiAgICAgICAgICAgICAgICAgICAgd3JhcHBlci5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHJlZmVyZW5jZVN0eWxlc1trZXldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGF1dG9QbGFjZW1lbnQgPSB0aGlzLmRyb3Bkb3duLmF1dG9QbGFjZW1lbnQ7XG4gICAgICAgIGlmICh0aGlzLmxhc3RQbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZCh0aGlzLmxhc3RQbGFjZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdXRvUGxhY2VtZW50KSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJ0aWNhbCA9IGF1dG9QbGFjZW1lbnQuYWxsb3dlZFBsYWNlbWVudHMuc29tZShwID0+IHAuaW5jbHVkZXMoXCJ0b3BcIikgfHwgcC5pbmNsdWRlcyhcImJvdHRvbVwiKSk7XG4gICAgICAgICAgICBjb25zdCBob3Jpem9udGFsID0gYXV0b1BsYWNlbWVudC5hbGxvd2VkUGxhY2VtZW50cy5zb21lKHAgPT4gcC5pbmNsdWRlcyhcImxlZnRcIikgfHwgcC5pbmNsdWRlcyhcInJpZ2h0XCIpKTtcbiAgICAgICAgICAgIGlmICh2ZXJ0aWNhbCAmJiBob3Jpem9udGFsKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWF4aXMtYm90aGApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBheGlzID0gdmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIjtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtYXhpcy0ke2F4aXN9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKFwiZHJvcGRvd24tY29udGVudC13cmFwXCIpO1xuICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGFycm93KTtcbiAgICAgICAgcmV0dXJuIFt3cmFwcGVyLCBhcnJvd107XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVWaWV3KHRydWUpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGVzdHJveVZpZXcoKSk7XG4gICAgfVxufVxuIl19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHJvcGRvd24tY29udGVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQTRCLE1BQU0sa0JBQWtCLENBQUM7QUFFOUcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFFOUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQW9CaEQsTUFBTSxPQUFPLHdCQUF3QjtJQVFqQyxZQUFzQixHQUFxQixFQUNhLFFBQXFCLEVBQzNDLFFBQTJCLEVBQzVCLFdBQTZCO1FBSHhDLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ2EsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUMzQyxhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlGQUF5RixDQUFDLENBQUM7UUFDL0csQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLGlCQUFpQixDQUNqRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDN0QsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1Asd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxVQUFVLENBQUMsT0FBZ0IsS0FBSztRQUN0QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUM7UUFDdkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDeEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO1FBQ3ZDLDBDQUEwQztRQUMxQyxNQUFNLFVBQVUsR0FBRztZQUNmLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQztTQUM1QixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxJQUE0QixFQUFFO1lBQy9DLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDO1lBQ3RELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2YsT0FBTztvQkFDSCxNQUFNLEVBQUU7d0JBQ0osSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUs7d0JBQ3BELFFBQVEsRUFBRSxPQUFPO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsS0FBSztvQkFDaEIsWUFBWTtpQkFDZixDQUFDO1lBQ04sQ0FBQztZQUNELE1BQU0sRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUMsR0FBRyxNQUFNLGVBQWUsQ0FDM0QsR0FBRyxFQUNILE9BQU8sRUFDUDtnQkFDSSxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLFFBQVE7Z0JBQzlDLFVBQVU7YUFDYixDQUNKLENBQUM7WUFFRixPQUFPO2dCQUNILE1BQU0sRUFBRTtvQkFDSixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTO29CQUNsRSxRQUFRLEVBQUUsVUFBVTtpQkFDdkI7Z0JBQ0QsU0FBUztnQkFDVCxZQUFZO2dCQUNaLGNBQWM7YUFDakIsQ0FBQztRQUNOLENBQUMsQ0FBQTtRQUNELGlDQUFpQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FDckIsR0FBRyxFQUNILE9BQU8sRUFDUCxHQUFHLEVBQUU7WUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBQyxFQUFFLEVBQUU7Z0JBRWpFLElBQUksY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO29CQUN4QixNQUFNLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7b0JBQ3BDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTt3QkFDekIsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQy9CLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO3FCQUNqQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7b0JBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRztvQkFDekIsTUFBTSxFQUFFLHdCQUF3QjtvQkFDaEMsR0FBRyxNQUFNO2lCQUNaLENBQUMsQ0FBQztnQkFFSCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQ3BELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQ3pDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixTQUFTLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxhQUFhLEVBQUUsQ0FBQztvQkFDaEIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUNuRCxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQzNELENBQUM7cUJBQU0sQ0FBQztvQkFDSixHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDaEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQ0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDeEQsQ0FBQztnQkFDRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEUsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsYUFBYSxJQUFJLEVBQUUsRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pFLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRVMsV0FBVztRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFUyxhQUFhO1FBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksTUFBTSxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLE1BQU0sWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUMvQixPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksTUFBTSxZQUFZLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUE0QixDQUFDO1FBQzdELE9BQU8sTUFBTSxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2xELENBQUM7SUFFUyxhQUFhO1FBQ25CLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFELEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNFLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3RHLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN4RyxJQUFJLFFBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUN4RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDbEQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQTlMUSx3QkFBd0Isa0RBU0QsWUFBWTttR0FUbkMsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxLQUFLO29CQUNqQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsa0JBQWtCO2lCQUMvQjs7MEJBVWdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWTs7MEJBQy9CLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge2Fycm93LCBhdXRvUGxhY2VtZW50LCBhdXRvVXBkYXRlLCBjb21wdXRlUG9zaXRpb24sIE1pZGRsZXdhcmVEYXRhLCBQbGFjZW1lbnR9IGZyb20gXCJAZmxvYXRpbmctdWkvZG9tXCI7XG5cbmltcG9ydCB7Uk9PVF9FTEVNRU5UfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XG5pbXBvcnQge0Ryb3Bkb3duRGlyZWN0aXZlfSBmcm9tIFwiLi9kcm9wZG93bi5kaXJlY3RpdmVcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZVV0aWxzfSBmcm9tIFwiLi4vdXRpbHMvb2JzZXJ2YWJsZS51dGlsc1wiO1xuaW1wb3J0IHtnZXRDc3NWYXJpYWJsZXN9IGZyb20gXCIuLi91dGlscy9taXNjXCI7XG5cbmNvbnN0IHJlY3RQcm9wcyA9IFtcInhcIiwgXCJ5XCIsIFwid2lkdGhcIiwgXCJoZWlnaHRcIl07XG5cbmludGVyZmFjZSBDb21wdXRlUmVzdWx0IHtcbiAgICBzdHlsZXM6IHtcbiAgICAgICAgcG9zaXRpb246IFwiZml4ZWRcIiB8IFwiYWJzb2x1dGVcIjtcbiAgICAgICAgbGVmdDogc3RyaW5nO1xuICAgICAgICB0b3A6IHN0cmluZztcbiAgICAgICAgcmlnaHQ6IHN0cmluZztcbiAgICAgICAgYm90dG9tOiBzdHJpbmc7XG4gICAgfSxcbiAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudDtcbiAgICBpc01vYmlsZVZpZXc6IGJvb2xlYW47XG4gICAgbWlkZGxld2FyZURhdGE/OiBNaWRkbGV3YXJlRGF0YTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6IFwiW2Ryb3Bkb3duQ29udGVudF1cIixcbiAgICBleHBvcnRBczogXCJkcm9wZG93bi1jb250ZW50XCIsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHByb3RlY3RlZCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcm90ZWN0ZWQgYXR0YWNoVG86IEhUTUxFbGVtZW50O1xuICAgIHByb3RlY3RlZCBhdHRhY2hPdXRzaWRlOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBsYXN0UGxhY2VtZW50OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGNsZWFuVXA6ICgpID0+IHZvaWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUk9PVF9FTEVNRU5UKSBwcm90ZWN0ZWQgcm9vdEVsZW06IEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBkcm9wZG93bjogRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcmVhZG9ubHkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEcm9wZG93bkRpcmVjdGl2ZSBpcyByZXF1aXJlZCEgUGxlYXNlIHVzZSBpdCBpbnNpZGUgYSBkZCwgZHJvcC1kb3duIGRpcmVjdGl2ZSBhdHRyaWJ1dGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUZW1wbGF0ZVJlZiBpcyByZXF1aXJlZCEgUGxlYXNlIHVzZSB3aXRoICpkcm9wZG93bkNvbnRlbnRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0UGxhY2VtZW50ID0gbnVsbDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBPYnNlcnZhYmxlVXRpbHMubXVsdGlTdWJzY3JpcHRpb24oXG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duLm9uU2hvd24uc3Vic2NyaWJlKCgpID0+IHRoaXMuY3JlYXRlVmlldygpKSxcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd24ub25IaWRkZW4uc3Vic2NyaWJlKCgpID0+IHRoaXMuZGVzdHJveVZpZXcoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlVmlldyhpbml0OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbW9iaWxlV2lkdGggPSB0aGlzLmRyb3Bkb3duLm1vYmlsZVZpZXdVbmRlciB8fCAwO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IFtjb250ZW50LCBhcnJvd0VsXSA9IHRoaXMuY3JlYXRlV3JhcHBlcigpO1xuICAgICAgICB0aGlzLmRyb3Bkb3duLmNvbnRlbnRFbGVtZW50ID0gY29udGVudDtcbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIHBvc2l0aW9uaW5nIHNldHRpbmdzXG4gICAgICAgIGNvbnN0IG1pZGRsZXdhcmUgPSBbXG4gICAgICAgICAgICBhcnJvdyh7ZWxlbWVudDogYXJyb3dFbH0pXG4gICAgICAgIF07XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duLmF1dG9QbGFjZW1lbnQpIHtcbiAgICAgICAgICAgIG1pZGRsZXdhcmUucHVzaChhdXRvUGxhY2VtZW50KHRoaXMuZHJvcGRvd24uYXV0b1BsYWNlbWVudCkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXB1dGUgPSBhc3luYyAoKTogUHJvbWlzZTxDb21wdXRlUmVzdWx0PiA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc01vYmlsZVZpZXcgPSB3aW5kb3cuaW5uZXJXaWR0aCA8PSBtb2JpbGVXaWR0aDtcbiAgICAgICAgICAgIGlmIChpc01vYmlsZVZpZXcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IFwiMHB4XCIsIHRvcDogXCIwcHhcIiwgcmlnaHQ6IFwiMHB4XCIsIGJvdHRvbTogXCIwcHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogXCJ0b3BcIixcbiAgICAgICAgICAgICAgICAgICAgaXNNb2JpbGVWaWV3XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHt4LCB5LCBwbGFjZW1lbnQsIG1pZGRsZXdhcmVEYXRhfSA9IGF3YWl0IGNvbXB1dGVQb3NpdGlvbihcbiAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogdGhpcy5kcm9wZG93bi5wbGFjZW1lbnQgfHwgXCJib3R0b21cIixcbiAgICAgICAgICAgICAgICAgICAgbWlkZGxld2FyZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3R5bGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGAke3h9cHhgLCB0b3A6IGAke3l9cHhgLCByaWdodDogdW5kZWZpbmVkLCBib3R0b206IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBpc01vYmlsZVZpZXcsXG4gICAgICAgICAgICAgICAgbWlkZGxld2FyZURhdGFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gU2V0IHVwIGZsb2F0aW5nIFVJIGF1dG8gdXBkYXRlXG4gICAgICAgIHRoaXMuY2xlYW5VcCA9IGF1dG9VcGRhdGUoXG4gICAgICAgICAgICByZWYsXG4gICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbXB1dGUoKS50aGVuKCh7c3R5bGVzLCBwbGFjZW1lbnQsIGlzTW9iaWxlVmlldywgbWlkZGxld2FyZURhdGF9KSA9PiB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1pZGRsZXdhcmVEYXRhPy5hcnJvdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qge3gsIHl9ID0gbWlkZGxld2FyZURhdGEuYXJyb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGFycm93RWwuc3R5bGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiB4ICE9IG51bGwgPyBgJHt4fXB4YCA6IGBgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogeSAhPSBudWxsID8gYCR7eX1weGAgOiBgYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb250ZW50LnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiBpbml0ID8gXCIwXCIgOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogYHZhcigtLWRkLXotaW5kZXgsIDEwMClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3R5bGVzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZlJlY3QgPSByZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRSZWN0ID0gY29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdFBsYWNlbWVudCA9IHRoaXMubGFzdFBsYWNlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3UGxhY2VtZW50ID0gYGRyb3Bkb3duLXBsYWNlbWVudC0ke3BsYWNlbWVudH1gO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdFBsYWNlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmLmNsYXNzTGlzdC5yZXBsYWNlKGxhc3RQbGFjZW1lbnQsIG5ld1BsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmNsYXNzTGlzdC5yZXBsYWNlKGxhc3RQbGFjZW1lbnQsIG5ld1BsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWYuY2xhc3NMaXN0LmFkZChuZXdQbGFjZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKG5ld1BsYWNlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTW9iaWxlVmlldykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LW1vYmlsZWApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5jbGFzc0xpc3QucmVtb3ZlKGBkcm9wZG93bi1jb250ZW50LW1vYmlsZWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlY3RQcm9wcy5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5zdHlsZS5zZXRQcm9wZXJ0eShgLS10b2dnbGUtJHtwcm9wfWAsIGAke3JlZlJlY3RbcHJvcF19cHhgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZi5zdHlsZS5zZXRQcm9wZXJ0eShgLS1jb250ZW50LSR7cHJvcH1gLCBgJHtjb250ZW50UmVjdFtwcm9wXX1weGApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0UGxhY2VtZW50ID0gbmV3UGxhY2VtZW50O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzdHJveVZpZXcoKSB7XG4gICAgICAgIHRoaXMudmNyLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZHJvcGRvd24uY29udGVudEVsZW1lbnQ/LnJlbW92ZSgpO1xuICAgICAgICB0aGlzLmNsZWFuVXA/LigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB3aGVyZVRvQXR0YWNoKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5kcm9wZG93bi5hdHRhY2hUbztcbiAgICAgICAgaWYgKHRhcmdldCA9PT0gXCJyb290XCIgJiYgdGhpcy5yb290RWxlbSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm9vdEVsZW07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYW5jaG9yID0gdGhpcy52Y3IuZWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICByZXR1cm4gYW5jaG9yPy5wYXJlbnRFbGVtZW50IHx8IHRoaXMucm9vdEVsZW07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVdyYXBwZXIoKSB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICBjb25zdCBhcnJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGFycm93LmNsYXNzTGlzdC5hZGQoYGRyb3Bkb3duLWNvbnRlbnQtYXJyb3dgKTtcbiAgICAgICAgYXJyb3cuc3R5bGUucG9zaXRpb24gPSBgYWJzb2x1dGVgO1xuICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGFycm93KTtcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy52Y3IuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgICByZWYucm9vdE5vZGVzLmZvckVhY2gobm9kZSA9PiB3cmFwcGVyLmFwcGVuZENoaWxkKG5vZGUpKTtcblxuICAgICAgICB0aGlzLmF0dGFjaFRvID0gdGhpcy53aGVyZVRvQXR0YWNoKCk7XG4gICAgICAgIHRoaXMuYXR0YWNoVG8uYXBwZW5kQ2hpbGQod3JhcHBlcik7XG4gICAgICAgIHRoaXMuYXR0YWNoT3V0c2lkZSA9ICF0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRoaXMuYXR0YWNoVG8pO1xuXG4gICAgICAgIGlmICh0aGlzLmF0dGFjaE91dHNpZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZVN0eWxlcyA9IGdldENzc1ZhcmlhYmxlcyh0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlclN0eWxlcyA9IGdldENzc1ZhcmlhYmxlcyh3cmFwcGVyKTtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlZmVyZW5jZVN0eWxlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghd3JhcHBlclN0eWxlc1trZXldKSB7XG4gICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCByZWZlcmVuY2VTdHlsZXNba2V5XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhdXRvUGxhY2VtZW50ID0gdGhpcy5kcm9wZG93bi5hdXRvUGxhY2VtZW50O1xuICAgICAgICBpZiAodGhpcy5sYXN0UGxhY2VtZW50KSB7XG4gICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQodGhpcy5sYXN0UGxhY2VtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXV0b1BsYWNlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgdmVydGljYWwgPSBhdXRvUGxhY2VtZW50LmFsbG93ZWRQbGFjZW1lbnRzLnNvbWUocCA9PiBwLmluY2x1ZGVzKFwidG9wXCIpIHx8IHAuaW5jbHVkZXMoXCJib3R0b21cIikpO1xuICAgICAgICAgICAgY29uc3QgaG9yaXpvbnRhbCA9IGF1dG9QbGFjZW1lbnQuYWxsb3dlZFBsYWNlbWVudHMuc29tZShwID0+IHAuaW5jbHVkZXMoXCJsZWZ0XCIpIHx8IHAuaW5jbHVkZXMoXCJyaWdodFwiKSk7XG4gICAgICAgICAgICBpZiAodmVydGljYWwgJiYgaG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZChgZHJvcGRvd24tY29udGVudC1heGlzLWJvdGhgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXhpcyA9IHZlcnRpY2FsID8gXCJ2ZXJ0aWNhbFwiIDogXCJob3Jpem9udGFsXCI7XG4gICAgICAgICAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKGBkcm9wZG93bi1jb250ZW50LWF4aXMtJHtheGlzfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZChcImRyb3Bkb3duLWNvbnRlbnQtd3JhcFwiKTtcbiAgICAgICAgcmV0dXJuIFt3cmFwcGVyLCBhcnJvd107XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVWaWV3KHRydWUpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGVzdHJveVZpZXcoKSk7XG4gICAgfVxufVxuIl19
@@ -102,6 +102,9 @@ export function loadBaseHref(baseUrl) {
102
102
  return "/";
103
103
  }
104
104
  }
105
+ export function getRootElement() {
106
+ return typeof document !== "undefined" ? document.body : null;
107
+ }
105
108
  export class NgxUtilsModule {
106
109
  static getProviders(config) {
107
110
  return [
@@ -145,7 +148,7 @@ export class NgxUtilsModule {
145
148
  },
146
149
  {
147
150
  provide: ROOT_ELEMENT,
148
- useValue: null
151
+ useFactory: getRootElement
149
152
  },
150
153
  {
151
154
  provide: RESIZE_DELAY,
@@ -206,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
206
209
  providers: pipes
207
210
  }]
208
211
  }], ctorParameters: () => [] });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXV0aWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvbmd4LXV0aWxzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsZUFBZSxFQUNmLFFBQVEsRUFDUix3QkFBd0IsRUFFeEIsUUFBUSxFQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixjQUFjLEVBQ2QsWUFBWSxFQUVaLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osZUFBZSxFQUNmLG1CQUFtQixFQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXhELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7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LFVBQVUsRUFBRSxZQUFZO2dCQUN4QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDdkI7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDakMsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUNqRCxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBc0I7UUFDdEMsT0FBTyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEO0lBRUEsQ0FBQzsrR0FqRlEsY0FBYztnSEFBZCxjQUFjLHFqQ0FYbkIsWUFBWTtZQUNaLFdBQVcsc2lDQU1YLFdBQVc7Z0hBSU4sY0FBYyxhQUZaLEtBQUssWUFUWixZQUFZO1lBQ1osV0FBVyxFQU1YLFdBQVc7OzRGQUlOLGNBQWM7a0JBbEIxQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixHQUFHLEtBQUs7d0JBQ1IsR0FBRyxVQUFVO3dCQUNiLEdBQUcsVUFBVTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osV0FBVztxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsR0FBRyxLQUFLO3dCQUNSLEdBQUcsVUFBVTt3QkFDYixHQUFHLFVBQVU7d0JBQ2IsV0FBVztxQkFDZDtvQkFDRCxTQUFTLEVBQUUsS0FBSztpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFQUF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gICAgSW5qZWN0b3IsXG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxuICAgIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gICAgTmdNb2R1bGUsXG4gICAgUHJvdmlkZXJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7QVBQX0JBU0VfSFJFRiwgQ29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7XG4gICAgQVBJX1NFUlZJQ0UsXG4gICAgQVBQX0JBU0VfVVJMLFxuICAgIEFVVEhfU0VSVklDRSxcbiAgICBDT05GSUdfU0VSVklDRSxcbiAgICBJQ09OX1NFUlZJQ0UsXG4gICAgSU1vZHVsZUNvbmZpZyxcbiAgICBMQU5HVUFHRV9TRVJWSUNFLFxuICAgIFBST01JU0VfU0VSVklDRSxcbiAgICBSRVNJWkVfREVMQVksXG4gICAgUkVTSVpFX1NUUkFURUdZLFxuICAgIFJPT1RfRUxFTUVOVCxcbiAgICBUT0FTVEVSX1NFUlZJQ0UsXG4gICAgV0FTSV9JTVBMRU1FTlRBVElPTlxufSBmcm9tIFwiLi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7Y29tcG9uZW50cywgZGlyZWN0aXZlcywgbG9hZENvbmZpZywgcGlwZXMsIHByb3ZpZGVyc30gZnJvbSBcIi4vbmd4LXV0aWxzLmltcG9ydHNcIjtcbmltcG9ydCB7QXBpU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcbmltcG9ydCB7U3RhdGljQXV0aFNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xuaW1wb3J0IHtJY29uU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvaWNvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge1N0YXRpY0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvc3RhdGljLWxhbmd1YWdlLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29uc29sZVRvYXN0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7UHJvbWlzZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3Byb21pc2Uuc2VydmljZVwiO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZVwiO1xuaW1wb3J0IHtHbG9iYWxUZW1wbGF0ZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2dsb2JhbC10ZW1wbGF0ZS5zZXJ2aWNlXCI7XG5pbXBvcnQge1dhc2l9IGZyb20gXCIuL3V0aWxzL3dhc2lcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiAoZG9jdW1lbnQpID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiAobG9jYXRpb24pID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gXCIvXCI7XG4gICAgY29uc3Qgc2NyaXB0cyA9IEFycmF5LmZyb20oZG9jdW1lbnQuc2NyaXB0cyk7XG4gICAgY29uc3QgY3VycmVudFNjcmlwdCA9IChkb2N1bWVudC5jdXJyZW50U2NyaXB0IGFzIEhUTUxTY3JpcHRFbGVtZW50KTtcbiAgICBsZXQgY3VycmVudFVybCA9IG5ldyBVUkwoY3VycmVudFNjcmlwdD8uc3JjID8/IFwiaHR0cDovL2xvY2FsaG9zdDo0MjAwL1wiKTtcbiAgICBpZiAoIWN1cnJlbnRTY3JpcHQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIG5vaW5zcGVjdGlvbiBFeGNlcHRpb25DYXVnaHRMb2NhbGx5SlNcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zdCBxdWFsaWZpZWRVcmwgPSBsb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIGxvY2F0aW9uLmhvc3Q7XG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IChlLnN0YWNrIHx8IFwiXCIpIGFzIHN0cmluZztcbiAgICAgICAgICAgIGNvbnN0IHNyY1VybCA9IChcbiAgICAgICAgICAgICAgICBzdGFjay5tYXRjaChuZXcgUmVnRXhwKHF1YWxpZmllZFVybCArIFwiLio/XFxcXC5qc1wiLCBcImdcIikpIHx8XG4gICAgICAgICAgICAgICAgc3RhY2subWF0Y2goL2h0dHAoW0EtWjAtOTpcXC9cXC0uXSspXFwuanMvZ2kpIHx8XG4gICAgICAgICAgICAgICAgW2Ake3F1YWxpZmllZFVybH0vbWFpbi5qc2BdXG4gICAgICAgICAgICApLnNoaWZ0KCk7XG4gICAgICAgICAgICBjdXJyZW50VXJsID0gbmV3IFVSTChzcmNVcmwgPz8gXCJcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbWFpblNjcmlwdCA9IHNjcmlwdHMuZmluZChzID0+IHtcbiAgICAgICAgaWYgKCFzLnNyYykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBzVXJsID0gbmV3IFVSTChzLnNyYyk7XG4gICAgICAgIHJldHVybiBjdXJyZW50VXJsLmhvc3QgPT09IHNVcmwuaG9zdCAmJiBzVXJsLnBhdGhuYW1lLmluY2x1ZGVzKFwibWFpblwiKTtcbiAgICB9KTtcbiAgICBjb25zdCBzY3JpcHRVcmwgPSAhbWFpblNjcmlwdCA/IGN1cnJlbnRVcmwgOiBuZXcgVVJMKG1haW5TY3JpcHQuc3JjKTtcbiAgICBjb25zdCBwYXRoID0gc2NyaXB0VXJsLnBhdGhuYW1lPy5zcGxpdChcIi9cIikgPz8gW107XG4gICAgcGF0aC5wb3AoKTtcbiAgICByZXR1cm4gYCR7c2NyaXB0VXJsLnByb3RvY29sfS8vJHtzY3JpcHRVcmwuaG9zdH0ke3BhdGguam9pbihcIi9cIil9L2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQmFzZUhyZWYoYmFzZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gbmV3IFVSTChiYXNlVXJsKS5wYXRobmFtZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICByZXR1cm4gXCIvXCI7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICAuLi5waXBlcyxcbiAgICAgICAgLi4uZGlyZWN0aXZlcyxcbiAgICAgICAgLi4uY29tcG9uZW50c1xuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIC4uLnBpcGVzLFxuICAgICAgICAuLi5kaXJlY3RpdmVzLFxuICAgICAgICAuLi5jb21wb25lbnRzLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBwaXBlc1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hVdGlsc01vZHVsZSB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRQcm92aWRlcnMoY29uZmlnPzogSU1vZHVsZUNvbmZpZyk6IFByb3ZpZGVyW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgLi4ucHJvdmlkZXJzLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQSV9TRVJWSUNFLFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuYXBpU2VydmljZSkgfHwgQXBpU2VydmljZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBBVVRIX1NFUlZJQ0UsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5hdXRoU2VydmljZSkgfHwgU3RhdGljQXV0aFNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogSUNPTl9TRVJWSUNFLFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuaWNvblNlcnZpY2UpIHx8IEljb25TZXJ2aWNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IExBTkdVQUdFX1NFUlZJQ0UsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5sYW5ndWFnZVNlcnZpY2UpIHx8IFN0YXRpY0xhbmd1YWdlU2VydmljZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUT0FTVEVSX1NFUlZJQ0UsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy50b2FzdGVyU2VydmljZSkgfHwgQ29uc29sZVRvYXN0ZXJTZXJ2aWNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFBST01JU0VfU0VSVklDRSxcbiAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLnByb21pc2VTZXJ2aWNlKSB8fCBQcm9taXNlU2VydmljZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBDT05GSUdfU0VSVklDRSxcbiAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmNvbmZpZ1NlcnZpY2UpIHx8IENvbmZpZ1NlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogV0FTSV9JTVBMRU1FTlRBVElPTixcbiAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLndhc2lJbXBsZW1lbnRhdGlvbikgfHwgV2FzaVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfQkFTRV9VUkwsXG4gICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmJhc2VVcmwpIHx8IGxvYWRCYXNlVXJsLFxuICAgICAgICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUk9PVF9FTEVNRU5ULFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBudWxsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJFU0laRV9ERUxBWSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogKCFjb25maWcgPyBudWxsIDogY29uZmlnLnJlc2l6ZURlbGF5KSA/PyA1MCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogUkVTSVpFX1NUUkFURUdZLFxuICAgICAgICAgICAgICAgIHVzZVZhbHVlOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcucmVzaXplU3RyYXRlZ3kpID8/IFwib2JqZWN0XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuaW5pdGlhbGl6ZUFwcCkgfHwgbG9hZENvbmZpZyxcbiAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBkZXBzOiBbKCFjb25maWcgPyBudWxsIDogY29uZmlnLmluaXRpYWxpemVBcHApID8gSW5qZWN0b3IgOiBDT05GSUdfU0VSVklDRV1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0JBU0VfSFJFRixcbiAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBsb2FkQmFzZUhyZWYsXG4gICAgICAgICAgICAgICAgZGVwczogW0FQUF9CQVNFX1VSTF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBJTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hVdGlsc01vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5neFV0aWxzTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBOZ3hVdGlsc01vZHVsZS5nZXRQcm92aWRlcnMoY29uZmlnKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBwcm92aWRlVXRpbHMoY29uZmlnPzogSU1vZHVsZUNvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgICAgICAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhOZ3hVdGlsc01vZHVsZS5nZXRQcm92aWRlcnMoY29uZmlnKSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG5cbiAgICB9XG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXV0aWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvbmd4LXV0aWxzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsZUFBZSxFQUNmLFFBQVEsRUFDUix3QkFBd0IsRUFFeEIsUUFBUSxFQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDSCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixjQUFjLEVBQ2QsWUFBWSxFQUVaLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osZUFBZSxFQUNmLG1CQUFtQixFQUN0QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXhELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7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QUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2FBQzlFO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFVBQVUsRUFBRSxZQUFZO2dCQUN4QixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDdkI7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDakMsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUNqRCxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBc0I7UUFDdEMsT0FBTyx3QkFBd0IsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEO0lBRUEsQ0FBQzsrR0FqRlEsY0FBYztnSEFBZCxjQUFjLHFqQ0FYbkIsWUFBWTtZQUNaLFdBQVcsc2lDQU1YLFdBQVc7Z0hBSU4sY0FBYyxhQUZaLEtBQUssWUFUWixZQUFZO1lBQ1osV0FBVyxFQU1YLFdBQVc7OzRGQUlOLGNBQWM7a0JBbEIxQixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixHQUFHLEtBQUs7d0JBQ1IsR0FBRyxVQUFVO3dCQUNiLEdBQUcsVUFBVTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osV0FBVztxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsR0FBRyxLQUFLO3dCQUNSLEdBQUcsVUFBVTt3QkFDYixHQUFHLFVBQVU7d0JBQ2IsV0FBVztxQkFDZDtvQkFDRCxTQUFTLEVBQUUsS0FBSztpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFQUF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gICAgSW5qZWN0b3IsXG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxuICAgIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gICAgTmdNb2R1bGUsXG4gICAgUHJvdmlkZXJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7QVBQX0JBU0VfSFJFRiwgQ29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7XG4gICAgQVBJX1NFUlZJQ0UsXG4gICAgQVBQX0JBU0VfVVJMLFxuICAgIEFVVEhfU0VSVklDRSxcbiAgICBDT05GSUdfU0VSVklDRSxcbiAgICBJQ09OX1NFUlZJQ0UsXG4gICAgSU1vZHVsZUNvbmZpZyxcbiAgICBMQU5HVUFHRV9TRVJWSUNFLFxuICAgIFBST01JU0VfU0VSVklDRSxcbiAgICBSRVNJWkVfREVMQVksXG4gICAgUkVTSVpFX1NUUkFURUdZLFxuICAgIFJPT1RfRUxFTUVOVCxcbiAgICBUT0FTVEVSX1NFUlZJQ0UsXG4gICAgV0FTSV9JTVBMRU1FTlRBVElPTlxufSBmcm9tIFwiLi9jb21tb24tdHlwZXNcIjtcbmltcG9ydCB7Y29tcG9uZW50cywgZGlyZWN0aXZlcywgbG9hZENvbmZpZywgcGlwZXMsIHByb3ZpZGVyc30gZnJvbSBcIi4vbmd4LXV0aWxzLmltcG9ydHNcIjtcbmltcG9ydCB7QXBpU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcbmltcG9ydCB7U3RhdGljQXV0aFNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xuaW1wb3J0IHtJY29uU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvaWNvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge1N0YXRpY0xhbmd1YWdlU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvc3RhdGljLWxhbmd1YWdlLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29uc29sZVRvYXN0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7UHJvbWlzZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3Byb21pc2Uuc2VydmljZVwiO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZVwiO1xuaW1wb3J0IHtHbG9iYWxUZW1wbGF0ZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL2dsb2JhbC10ZW1wbGF0ZS5zZXJ2aWNlXCI7XG5pbXBvcnQge1dhc2l9IGZyb20gXCIuL3V0aWxzL3dhc2lcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiAoZG9jdW1lbnQpID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiAobG9jYXRpb24pID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gXCIvXCI7XG4gICAgY29uc3Qgc2NyaXB0cyA9IEFycmF5LmZyb20oZG9jdW1lbnQuc2NyaXB0cyk7XG4gICAgY29uc3QgY3VycmVudFNjcmlwdCA9IChkb2N1bWVudC5jdXJyZW50U2NyaXB0IGFzIEhUTUxTY3JpcHRFbGVtZW50KTtcbiAgICBsZXQgY3VycmVudFVybCA9IG5ldyBVUkwoY3VycmVudFNjcmlwdD8uc3JjID8/IFwiaHR0cDovL2xvY2FsaG9zdDo0MjAwL1wiKTtcbiAgICBpZiAoIWN1cnJlbnRTY3JpcHQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIG5vaW5zcGVjdGlvbiBFeGNlcHRpb25DYXVnaHRMb2NhbGx5SlNcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zdCBxdWFsaWZpZWRVcmwgPSBsb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIGxvY2F0aW9uLmhvc3Q7XG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IChlLnN0YWNrIHx8IFwiXCIpIGFzIHN0cmluZztcbiAgICAgICAgICAgIGNvbnN0IHNyY1VybCA9IChcbiAgICAgICAgICAgICAgICBzdGFjay5tYXRjaChuZXcgUmVnRXhwKHF1YWxpZmllZFVybCArIFwiLio/XFxcXC5qc1wiLCBcImdcIikpIHx8XG4gICAgICAgICAgICAgICAgc3RhY2subWF0Y2goL2h0dHAoW0EtWjAtOTpcXC9cXC0uXSspXFwuanMvZ2kpIHx8XG4gICAgICAgICAgICAgICAgW2Ake3F1YWxpZmllZFVybH0vbWFpbi5qc2BdXG4gICAgICAgICAgICApLnNoaWZ0KCk7XG4gICAgICAgICAgICBjdXJyZW50VXJsID0gbmV3IFVSTChzcmNVcmwgPz8gXCJcIik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbWFpblNjcmlwdCA9IHNjcmlwdHMuZmluZChzID0+IHtcbiAgICAgICAgaWYgKCFzLnNyYykgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBzVXJsID0gbmV3IFVSTChzLnNyYyk7XG4gICAgICAgIHJldHVybiBjdXJyZW50VXJsLmhvc3QgPT09IHNVcmwuaG9zdCAmJiBzVXJsLnBhdGhuYW1lLmluY2x1ZGVzKFwibWFpblwiKTtcbiAgICB9KTtcbiAgICBjb25zdCBzY3JpcHRVcmwgPSAhbWFpblNjcmlwdCA/IGN1cnJlbnRVcmwgOiBuZXcgVVJMKG1haW5TY3JpcHQuc3JjKTtcbiAgICBjb25zdCBwYXRoID0gc2NyaXB0VXJsLnBhdGhuYW1lPy5zcGxpdChcIi9cIikgPz8gW107XG4gICAgcGF0aC5wb3AoKTtcbiAgICByZXR1cm4gYCR7c2NyaXB0VXJsLnByb3RvY29sfS8vJHtzY3JpcHRVcmwuaG9zdH0ke3BhdGguam9pbihcIi9cIil9L2A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQmFzZUhyZWYoYmFzZVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gbmV3IFVSTChiYXNlVXJsKS5wYXRobmFtZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICByZXR1cm4gXCIvXCI7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIgPyBkb2N1bWVudC5ib2R5IDogbnVsbDtcbn1cblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgLi4ucGlwZXMsXG4gICAgICAgIC4uLmRpcmVjdGl2ZXMsXG4gICAgICAgIC4uLmNvbXBvbmVudHNcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICAuLi5waXBlcyxcbiAgICAgICAgLi4uZGlyZWN0aXZlcyxcbiAgICAgICAgLi4uY29tcG9uZW50cyxcbiAgICAgICAgRm9ybXNNb2R1bGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogcGlwZXNcbn0pXG5leHBvcnQgY2xhc3MgTmd4VXRpbHNNb2R1bGUge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0UHJvdmlkZXJzKGNvbmZpZz86IElNb2R1bGVDb25maWcpOiBQcm92aWRlcltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBBUElfU0VSVklDRSxcbiAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmFwaVNlcnZpY2UpIHx8IEFwaVNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogQVVUSF9TRVJWSUNFLFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcuYXV0aFNlcnZpY2UpIHx8IFN0YXRpY0F1dGhTZXJ2aWNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IElDT05fU0VSVklDRSxcbiAgICAgICAgICAgICAgICB1c2VFeGlzdGluZzogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmljb25TZXJ2aWNlKSB8fCBJY29uU2VydmljZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBMQU5HVUFHRV9TRVJWSUNFLFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcubGFuZ3VhZ2VTZXJ2aWNlKSB8fCBTdGF0aWNMYW5ndWFnZVNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVE9BU1RFUl9TRVJWSUNFLFxuICAgICAgICAgICAgICAgIHVzZUV4aXN0aW5nOiAoIWNvbmZpZyA/IG51bGwgOiBjb25maWcudG9hc3RlclNlcnZpY2UpIHx8IENvbnNvbGVUb2FzdGVyU2VydmljZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBQUk9NSVNFX1NFUlZJQ0UsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5wcm9taXNlU2VydmljZSkgfHwgUHJvbWlzZVNlcnZpY2VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogQ09ORklHX1NFUlZJQ0UsXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5jb25maWdTZXJ2aWNlKSB8fCBDb25maWdTZXJ2aWNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFdBU0lfSU1QTEVNRU5UQVRJT04sXG4gICAgICAgICAgICAgICAgdXNlRXhpc3Rpbmc6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy53YXNpSW1wbGVtZW50YXRpb24pIHx8IFdhc2lcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0JBU0VfVVJMLFxuICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5iYXNlVXJsKSB8fCBsb2FkQmFzZVVybCxcbiAgICAgICAgICAgICAgICBkZXBzOiBbSW5qZWN0b3JdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJPT1RfRUxFTUVOVCxcbiAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRSb290RWxlbWVudFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBSRVNJWkVfREVMQVksXG4gICAgICAgICAgICAgICAgdXNlVmFsdWU6ICghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5yZXNpemVEZWxheSkgPz8gNTAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFJFU0laRV9TVFJBVEVHWSxcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogKCFjb25maWcgPyBudWxsIDogY29uZmlnLnJlc2l6ZVN0cmF0ZWd5KSA/PyBcIm9iamVjdFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKCFjb25maWcgPyBudWxsIDogY29uZmlnLmluaXRpYWxpemVBcHApIHx8IGxvYWRDb25maWcsXG4gICAgICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVwczogWyghY29uZmlnID8gbnVsbCA6IGNvbmZpZy5pbml0aWFsaXplQXBwKSA/IEluamVjdG9yIDogQ09ORklHX1NFUlZJQ0VdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9CQVNFX0hSRUYsXG4gICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogbG9hZEJhc2VIcmVmLFxuICAgICAgICAgICAgICAgIGRlcHM6IFtBUFBfQkFTRV9VUkxdXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogSU1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4VXRpbHNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ3hVdGlsc01vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogTmd4VXRpbHNNb2R1bGUuZ2V0UHJvdmlkZXJzKGNvbmZpZylcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcHJvdmlkZVV0aWxzKGNvbmZpZz86IElNb2R1bGVDb25maWcpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gICAgICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoTmd4VXRpbHNNb2R1bGUuZ2V0UHJvdmlkZXJzKGNvbmZpZykpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgfVxufVxuIl19
@@ -17,7 +17,7 @@ import JSON5 from 'json5';
17
17
  import * as i1$2 from '@angular/platform-browser';
18
18
  import { ɵDomEventsPlugin as _DomEventsPlugin, EVENT_MANAGER_PLUGINS } from '@angular/platform-browser';
19
19
  import elementResizeDetectorMaker from 'element-resize-detector';
20
- import { arrow, autoPlacement, autoUpdate, computePosition } from '@floating-ui/dom';
20
+ import { arrow, autoPlacement, computePosition, autoUpdate } from '@floating-ui/dom';
21
21
  import * as i2$1 from '@angular/forms';
22
22
  import { FormsModule } from '@angular/forms';
23
23
 
@@ -4829,37 +4829,53 @@ class DropdownContentDirective {
4829
4829
  const [content, arrowEl] = this.createWrapper();
4830
4830
  this.dropdown.contentElement = content;
4831
4831
  // Set up floating UI positioning settings
4832
- const placement = this.dropdown.placement || "bottom";
4833
- const strategy = this.attachOutside ? "fixed" : "absolute";
4834
4832
  const middleware = [
4835
4833
  arrow({ element: arrowEl })
4836
4834
  ];
4837
4835
  if (this.dropdown.autoPlacement) {
4838
4836
  middleware.push(autoPlacement(this.dropdown.autoPlacement));
4839
4837
  }
4838
+ const compute = async () => {
4839
+ const isMobileView = window.innerWidth <= mobileWidth;
4840
+ if (isMobileView) {
4841
+ return {
4842
+ styles: {
4843
+ left: "0px", top: "0px", right: "0px", bottom: "0px",
4844
+ position: "fixed",
4845
+ },
4846
+ placement: "top",
4847
+ isMobileView
4848
+ };
4849
+ }
4850
+ const { x, y, placement, middlewareData } = await computePosition(ref, content, {
4851
+ strategy: "absolute",
4852
+ placement: this.dropdown.placement || "bottom",
4853
+ middleware
4854
+ });
4855
+ return {
4856
+ styles: {
4857
+ left: `${x}px`, top: `${y}px`, right: undefined, bottom: undefined,
4858
+ position: "absolute",
4859
+ },
4860
+ placement,
4861
+ isMobileView,
4862
+ middlewareData
4863
+ };
4864
+ };
4840
4865
  // Set up floating UI auto update
4841
4866
  this.cleanUp = autoUpdate(ref, content, () => {
4842
- computePosition(ref, content, {
4843
- strategy,
4844
- placement,
4845
- middleware
4846
- }).then(({ x, y, placement, middlewareData }) => {
4847
- if (middlewareData.arrow) {
4867
+ compute().then(({ styles, placement, isMobileView, middlewareData }) => {
4868
+ if (middlewareData?.arrow) {
4848
4869
  const { x, y } = middlewareData.arrow;
4849
4870
  Object.assign(arrowEl.style, {
4850
4871
  left: x != null ? `${x}px` : ``,
4851
4872
  top: y != null ? `${y}px` : ``,
4852
4873
  });
4853
4874
  }
4854
- const isMobileView = window.innerWidth <= mobileWidth;
4855
4875
  Object.assign(content.style, {
4856
4876
  opacity: init ? "0" : "1",
4857
- position: isMobileView ? "fixed" : strategy,
4858
- left: isMobileView ? `0px` : `${x}px`,
4859
- right: isMobileView ? `0px` : undefined,
4860
- top: isMobileView ? `0px` : `${y}px`,
4861
- bottom: isMobileView ? `0px` : undefined,
4862
- zIndex: `var(--dd-z-index, 100)`
4877
+ zIndex: `var(--dd-z-index, 100)`,
4878
+ ...styles
4863
4879
  });
4864
4880
  const refRect = ref.getBoundingClientRect();
4865
4881
  const contentRect = content.getBoundingClientRect();
@@ -4910,6 +4926,8 @@ class DropdownContentDirective {
4910
4926
  const wrapper = document.createElement("div");
4911
4927
  const arrow = document.createElement("div");
4912
4928
  arrow.classList.add(`dropdown-content-arrow`);
4929
+ arrow.style.position = `absolute`;
4930
+ wrapper.appendChild(arrow);
4913
4931
  const ref = this.vcr.createEmbeddedView(this.templateRef);
4914
4932
  ref.rootNodes.forEach(node => wrapper.appendChild(node));
4915
4933
  this.attachTo = this.whereToAttach();
@@ -4940,7 +4958,6 @@ class DropdownContentDirective {
4940
4958
  }
4941
4959
  }
4942
4960
  wrapper.classList.add("dropdown-content-wrap");
4943
- wrapper.appendChild(arrow);
4944
4961
  return [wrapper, arrow];
4945
4962
  }
4946
4963
  initialize() {
@@ -6259,6 +6276,9 @@ function loadBaseHref(baseUrl) {
6259
6276
  return "/";
6260
6277
  }
6261
6278
  }
6279
+ function getRootElement() {
6280
+ return typeof document !== "undefined" ? document.body : null;
6281
+ }
6262
6282
  class NgxUtilsModule {
6263
6283
  static getProviders(config) {
6264
6284
  return [
@@ -6302,7 +6322,7 @@ class NgxUtilsModule {
6302
6322
  },
6303
6323
  {
6304
6324
  provide: ROOT_ELEMENT,
6305
- useValue: null
6325
+ useFactory: getRootElement
6306
6326
  },
6307
6327
  {
6308
6328
  provide: RESIZE_DELAY,