(window.webpackJsonpNVIV = window.webpackJsonpNVIV || []).push([[10], { 1670: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = (n(1928), n(1928)) , i = n(125); o.enableProdMode(), t.bootstrapApp = function() { return i.platformBrowser().bootstrapModule(r.MainModule) } }, 1692: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = n(210) , i = n(0) , a = function() { function e(e, t) { this.renderer = e, this.el = t } return e.prototype.ngAfterViewInit = function() { var e = this.el.nativeElement.attributes.getNamedItem("src").value , t = r.makeUrlAbsolute(e); this.renderer.setAttribute(this.el.nativeElement, "src", t) } , e.ɵfac = function(t) { return new (t || e)(i.ɵɵdirectiveInject(i.Renderer2),i.ɵɵdirectiveInject(i.ElementRef)) } , e.ɵdir = i.ɵɵdefineDirective({ type: e, selectors: [["img"]] }), e }(); t.AddBaseUrlDirective = a, i.ɵsetClassMetadata(a, [{ type: o.Directive, args: [{ selector: "img" }] }], (function() { return [{ type: i.Renderer2 }, { type: i.ElementRef }] } ), null) }, 1693: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(8) , r = n(230) , i = n(0) , a = function() { function e(e, t, n) { this.loader = e, this.injector = t, this.vcr = n } return e.prototype.ngOnInit = function() { this.loadComponent().catch(o.handleWarning) } , e.prototype.loadComponent = function() { var e = this; return r.runWithBaseHref((function() { return e.loader.load(e.modulePath).then((function(t) { var n = t.create(e.injector) , o = n.injector.get(e.componentId) , r = n.componentFactoryResolver.resolveComponentFactory(o); return e.vcr.createComponent(r) } )) } )) } , e.ɵfac = function(t) { return new (t || e)(i.ɵɵdirectiveInject(i.NgModuleFactoryLoader),i.ɵɵdirectiveInject(i.Injector),i.ɵɵdirectiveInject(i.ViewContainerRef)) } , e.ɵdir = i.ɵɵdefineDirective({ type: e }), e }(); t.AbstractLazyComponent = a }, 1696: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o, r = n(0), i = n(168), a = n(440), s = n(3), c = n(625), l = n(1707), u = n(0), p = n(440), d = n(3), h = n(1689), f = n(625); function m(e, t) { if (1 & e && (u.ɵɵelementStart(0, "p"), u.ɵɵtext(1), u.ɵɵelementEnd()), 2 & e) { var n = u.ɵɵnextContext(); u.ɵɵadvance(1), u.ɵɵtextInterpolate(n.bodyText) } } function g(e, t) { 1 & e && u.ɵɵelementContainer(0) } function v(e, t) { if (1 & e) { var n = u.ɵɵgetCurrentView(); u.ɵɵelementStart(0, "button", 6), u.ɵɵlistener("click", (function() { return u.ɵɵrestoreView(n), u.ɵɵnextContext().cancel() } )), u.ɵɵtext(1), u.ɵɵelementEnd() } if (2 & e) { var o = u.ɵɵnextContext(); u.ɵɵadvance(1), u.ɵɵtextInterpolate1(" ", o.cancelButtonText, " ") } } function y(e, t) { if (1 & e) { var n = u.ɵɵgetCurrentView(); u.ɵɵelementStart(0, "button", 6), u.ɵɵlistener("click", (function() { return u.ɵɵrestoreView(n), u.ɵɵnextContext().decline() } )), u.ɵɵtext(1), u.ɵɵelementEnd() } if (2 & e) { var o = u.ɵɵnextContext(); u.ɵɵadvance(1), u.ɵɵtextInterpolate1(" ", o.declineButtonText, " ") } } function M(e, t) { if (1 & e) { var n = u.ɵɵgetCurrentView(); u.ɵɵelementStart(0, "button", 7), u.ɵɵlistener("click", (function() { return u.ɵɵrestoreView(n), u.ɵɵnextContext().confirm() } )), u.ɵɵtext(1), u.ɵɵelementEnd() } if (2 & e) { var o = u.ɵɵnextContext(); u.ɵɵproperty("color", o.confirmButtonColor), u.ɵɵadvance(1), u.ɵɵtextInterpolate1(" ", o.confirmButtonText, " ") } } !function(e) { e[e.CONFIRMED = 0] = "CONFIRMED", e[e.DECLINED = 1] = "DECLINED", e[e.CANCELLED = 2] = "CANCELLED" }(o = t.AlertDialogResult || (t.AlertDialogResult = {})); var C = function() { function e(e, t) { var n; this.dialogRef = e, this.data = t, this.confirmButtonColor = "primary", this.data && (this.title = t.title, this.confirmButtonColor = null !== (n = t.confirmButtonColor) && void 0 !== n ? n : "primary", t.body instanceof r.TemplateRef ? this.bodyTemplate = t.body : "string" == typeof t.body && (this.bodyText = t.body), !1 !== t.cancelButton && (this.cancelButtonText = t.cancelButton ? "" + t.cancelButton : i.translate("Cancel")), !1 !== t.declineButton && (this.declineButtonText = t.declineButton ? "" + t.declineButton : i.translate("Decline")), !1 !== t.confirmButton && (this.confirmButtonText = t.confirmButton ? "" + t.confirmButton : i.translate("Confirm"))) } return e.prototype.beforeUnload = function(e) { e.returnValue = i.translate("Do you want to navigate away from the current page?") } , e.prototype.confirm = function() { this.dialogRef.close(o.CONFIRMED) } , e.prototype.decline = function() { this.dialogRef.close(o.DECLINED) } , e.prototype.cancel = function() { this.dialogRef.close(o.CANCELLED) } , e.ɵfac = function(t) { return new (t || e)(u.ɵɵdirectiveInject(p.MatDialogRef),u.ɵɵdirectiveInject(a.MAT_DIALOG_DATA)) } , e.ɵcmp = u.ɵɵdefineComponent({ type: e, selectors: [["alert-dialog"]], hostBindings: function(e, t) { 1 & e && u.ɵɵlistener("beforeunload", (function(e) { return t.beforeUnload(e) } ), !1, u.ɵɵresolveWindow) }, decls: 10, vars: 6, consts: [["mat-dialog-title", ""], [4, "ngIf"], [4, "ngTemplateOutlet"], ["mat-stroked-button", "", 3, "click", 4, "ngIf"], ["fxFlex", "1 1 auto"], ["mat-flat-button", "", 3, "color", "click", 4, "ngIf"], ["mat-stroked-button", "", 3, "click"], ["mat-flat-button", "", 3, "color", "click"]], template: function(e, t) { 1 & e && (u.ɵɵelementStart(0, "h4", 0), u.ɵɵtext(1), u.ɵɵelementEnd(), u.ɵɵelementStart(2, "mat-dialog-content"), u.ɵɵtemplate(3, m, 2, 1, "p", 1), u.ɵɵtemplate(4, g, 1, 0, "ng-container", 2), u.ɵɵelementEnd(), u.ɵɵelementStart(5, "mat-dialog-actions"), u.ɵɵtemplate(6, v, 2, 1, "button", 3), u.ɵɵelement(7, "div", 4), u.ɵɵtemplate(8, y, 2, 1, "button", 3), u.ɵɵtemplate(9, M, 2, 2, "button", 5), u.ɵɵelementEnd()), 2 & e && (u.ɵɵadvance(1), u.ɵɵtextInterpolate(t.title), u.ɵɵadvance(2), u.ɵɵproperty("ngIf", t.bodyText), u.ɵɵadvance(1), u.ɵɵproperty("ngTemplateOutlet", t.bodyTemplate), u.ɵɵadvance(2), u.ɵɵproperty("ngIf", t.cancelButtonText), u.ɵɵadvance(2), u.ɵɵproperty("ngIf", t.declineButtonText), u.ɵɵadvance(1), u.ɵɵproperty("ngIf", t.confirmButtonText)) }, directives: [p.MatDialogTitle, p.MatDialogContent, d.NgIf, d.NgTemplateOutlet, p.MatDialogActions, h.DefaultFlexDirective, f.MatButton], encapsulation: 2 }), e }(); t.AlertDialogComponent = C, u.ɵsetClassMetadata(C, [{ type: r.Component, args: [{ selector: "alert-dialog", templateUrl: "./AlertDialog.ng.html" }] }], (function() { return [{ type: p.MatDialogRef }, { type: void 0, decorators: [{ type: r.Inject, args: [a.MAT_DIALOG_DATA] }] }] } ), { beforeUnload: [{ type: r.HostListener, args: ["window:beforeunload", ["$event"]] }] }); var w = function() { function e() {} return e.ɵmod = u.ɵɵdefineNgModule({ type: e }), e.ɵinj = u.ɵɵdefineInjector({ factory: function(t) { return new (t || e) }, imports: [[s.CommonModule, l.FlexLayoutModule, a.MatDialogModule, c.MatButtonModule]] }), e }(); t.AlertDialogModule = w, ("undefined" == typeof ngJitMode || ngJitMode) && u.ɵɵsetNgModuleScope(w, { declarations: [C], imports: [s.CommonModule, l.FlexLayoutModule, a.MatDialogModule, c.MatButtonModule], exports: [C] }), u.ɵsetClassMetadata(w, [{ type: r.NgModule, args: [{ imports: [s.CommonModule, l.FlexLayoutModule, a.MatDialogModule, c.MatButtonModule], declarations: [C], exports: [C] }] }], null, null) }, 1697: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = n(624) , i = n(2) , a = n(6) , s = n(3) , c = n(0) , l = function() { function e(e) { this.ElementRef = e, this.valueChange = new o.EventEmitter, this.disabled = !1, this.ident = void 0 } return e.prototype.ngOnInit = function() { this.ident = this.ElementRef.nativeElement.getAttribute("id"), this.ElementRef.nativeElement.setAttribute("id", void 0) } , e.prototype.registerOnChange = function(e) { this.changeFn = e } , e.prototype.registerOnTouched = function(e) { this.touchFn = e } , e.prototype.setDisabledState = function(e) { this.disabled = e } , e.prototype.writeValue = function(e) { this.value = e, this.valueChange.emit(this.value), this.changeFn && this.changeFn(this.value) } , e.prototype.onInputTouched = function() { this.disabled || (this.touchFn && this.touchFn(), this.writeValue(!this.value)) } , e.ɵfac = function(t) { return new (t || e)(c.ɵɵdirectiveInject(c.ElementRef)) } , e.ɵcmp = c.ɵɵdefineComponent({ type: e, selectors: [["toggle-switch"]], inputs: { title: "title", value: "value" }, outputs: { valueChange: "valueChange" }, features: [c.ɵɵProvidersFeature([{ provide: r.NG_VALUE_ACCESSOR, useExisting: o.forwardRef((function() { return e } )), multi: !0 }])], decls: 3, vars: 3, consts: [[1, "toggle-switch", 3, "title"], ["type", "checkbox", 3, "id", "checked", "click"], [1, "slider"]], template: function(e, t) { 1 & e && (c.ɵɵelementStart(0, "label", 0), c.ɵɵelementStart(1, "input", 1), c.ɵɵlistener("click", (function() { return t.onInputTouched() } )), c.ɵɵelementEnd(), c.ɵɵelement(2, "span", 2), c.ɵɵelementEnd()), 2 & e && (c.ɵɵproperty("title", t.title), c.ɵɵadvance(1), c.ɵɵproperty("id", t.ident)("checked", t.value)) }, styles: ['[_nghost-%COMP%]{display:flex;justify-content:center;align-items:center}.toggle-switch[_ngcontent-%COMP%], [_nghost-%COMP%]{width:30px;height:17px}.toggle-switch[_ngcontent-%COMP%]{position:relative;display:inline-block;margin:0}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{opacity:0;width:0;height:0}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]{background-color:#3398c7}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus + .slider[_ngcontent-%COMP%]{box-shadow:0 0 1px #3398c7}.toggle-switch[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:checked + .slider[_ngcontent-%COMP%]:before{-webkit-transform:translateX(13px);-ms-transform:translateX(13px);transform:translateX(13px)}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]{cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;border-radius:17px}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%], .toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:before{position:absolute;-webkit-transition:.4s;transition:.4s}.toggle-switch[_ngcontent-%COMP%] .slider[_ngcontent-%COMP%]:before{content:"";height:13px;width:13px;left:2px;bottom:2px;background-color:#fff;border-radius:50%}'] }), e }(); t.ToggleSwitchComponent = l, c.ɵsetClassMetadata(l, [{ type: o.Component, args: [{ selector: "toggle-switch", templateUrl: "./ToggleSwitch.ng.html", styleUrls: ["./ToggleSwitch.ng.scss"], providers: [{ provide: r.NG_VALUE_ACCESSOR, useExisting: o.forwardRef((function() { return l } )), multi: !0 }] }] }], (function() { return [{ type: c.ElementRef }] } ), { title: [{ type: o.Input }], value: [{ type: o.Input }], valueChange: [{ type: o.Output }] }), i.module("IVWebApp").directive("toggleSwitch", a.downgradeComponent({ component: l })); var u = function() { function e() {} return e.ɵmod = c.ɵɵdefineNgModule({ type: e }), e.ɵinj = c.ɵɵdefineInjector({ factory: function(t) { return new (t || e) }, imports: [[s.CommonModule]] }), e }(); t.ToggleSwitchModule = u, ("undefined" == typeof ngJitMode || ngJitMode) && c.ɵɵsetNgModuleScope(u, { declarations: [l], imports: [s.CommonModule], exports: [l] }), c.ɵsetClassMetadata(u, [{ type: o.NgModule, args: [{ imports: [s.CommonModule], declarations: [l], exports: [l] }] }], null, null) }, 1700: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = (n(130), n(0)) , i = n(130) , a = function() { function e(e) { this.UoMService = e } return e.prototype.transform = function(e, t, n, o, r) { return void 0 === n && (n = 2), void 0 === o && (o = 0), void 0 === r && (r = !1), this.UoMService.convert(e, t, n, void 0, o, r) } , e.ɵfac = function(t) { return new (t || e)(r.ɵɵdirectiveInject(i.UoMService)) } , e.ɵpipe = r.ɵɵdefinePipe({ name: "uom", type: e, pure: !0 }), e }(); t.UoMPipe = a, r.ɵsetClassMetadata(a, [{ type: o.Pipe, args: [{ name: "uom" }] }], (function() { return [{ type: i.UoMService }] } ), null) }, 1704: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = (n(17), n(0)) , i = n(17) , a = function() { function e(e) { this.ViewService = e, this.focusWhitelist = ["input", "select", "textarea"] } return e.prototype.ngDoCheck = function() { var e = document.activeElement , t = this.ViewService.mainView.divContainer.container; e !== t && -1 === this.focusWhitelist.indexOf(e.localName) && t.focus() } , e.ɵfac = function(t) { return new (t || e)(r.ɵɵdirectiveInject(i.ViewService)) } , e.ɵdir = r.ɵɵdefineDirective({ type: e, selectors: [["", "redirectFocusToScene", ""]] }), e }(); t.RedirectFocusToMainViewDirective = a, r.ɵsetClassMetadata(a, [{ type: o.Directive, args: [{ selector: "[redirectFocusToScene]" }] }], (function() { return [{ type: i.ViewService }] } ), null) }, 1705: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = n(2) , i = n(6) , a = n(0) , s = function() { function e() { this.zoomIn = new o.EventEmitter, this.zoomOut = new o.EventEmitter } return e.prototype.fireZoomIn = function(e) { this.zoomIn.emit() } , e.prototype.fireZoomOut = function(e) { this.zoomOut.emit() } , e.ɵfac = function(t) { return new (t || e) } , e.ɵcmp = a.ɵɵdefineComponent({ type: e, selectors: [["zoom-control"]], outputs: { zoomIn: "zoomIn", zoomOut: "zoomOut" }, decls: 5, vars: 0, consts: [[1, "btn-group-vertical", 3, "dblclick"], ["type", "button", 1, "btn", "btn-default", 3, "click"], [1, "fa", "fa-plus"], [1, "fa", "fa-minus"]], template: function(e, t) { 1 & e && (a.ɵɵelementStart(0, "div", 0), a.ɵɵlistener("dblclick", (function(e) { return e.stopPropagation() } )), a.ɵɵelementStart(1, "button", 1), a.ɵɵlistener("click", (function(e) { return t.fireZoomIn(e) } )), a.ɵɵelement(2, "i", 2), a.ɵɵelementEnd(), a.ɵɵelementStart(3, "button", 1), a.ɵɵlistener("click", (function(e) { return t.fireZoomOut(e) } )), a.ɵɵelement(4, "i", 3), a.ɵɵelementEnd(), a.ɵɵelementEnd()) }, styles: ["div[_ngcontent-%COMP%]{width:100%}div[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{border:none}"] }), e }(); t.ZoomControlComponent = s, a.ɵsetClassMetadata(s, [{ type: o.Component, args: [{ selector: "zoom-control", templateUrl: "ZoomControl.ng.html", styleUrls: ["ZoomControl.ng.scss"] }] }], null, { zoomIn: [{ type: o.Output }], zoomOut: [{ type: o.Output }] }), r.module("IVWebApp").directive("zoomControl", i.downgradeComponent({ component: s })) }, 1711: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = n(1692) , i = n(3) , a = n(1700) , s = n(1704) , c = n(1697) , l = n(1696) , u = n(1705) , p = n(0) , d = function() { function e() {} return e.ɵmod = p.ɵɵdefineNgModule({ type: e }), e.ɵinj = p.ɵɵdefineInjector({ factory: function(t) { return new (t || e) }, providers: [], imports: [[i.CommonModule, c.ToggleSwitchModule, l.AlertDialogModule]] }), e }(); t.SharedModule = d, ("undefined" == typeof ngJitMode || ngJitMode) && p.ɵɵsetNgModuleScope(d, { declarations: [r.AddBaseUrlDirective, s.RedirectFocusToMainViewDirective, a.UoMPipe, u.ZoomControlComponent], imports: [i.CommonModule, c.ToggleSwitchModule, l.AlertDialogModule], exports: [r.AddBaseUrlDirective, s.RedirectFocusToMainViewDirective, a.UoMPipe, u.ZoomControlComponent] }), p.ɵsetClassMetadata(d, [{ type: o.NgModule, args: [{ imports: [i.CommonModule, c.ToggleSwitchModule, l.AlertDialogModule], declarations: [r.AddBaseUrlDirective, s.RedirectFocusToMainViewDirective, a.UoMPipe, u.ZoomControlComponent], entryComponents: [u.ZoomControlComponent], exports: [r.AddBaseUrlDirective, s.RedirectFocusToMainViewDirective, a.UoMPipe, u.ZoomControlComponent], providers: [] }] }], null, null) }, 1849: function(e, t, n) { "use strict"; var o; Object.defineProperty(t, "__esModule", { value: !0 }), function(e) { e[e.LOADING = 0] = "LOADING", e[e.LOADED = 1] = "LOADED", e[e.PENDING = 2] = "PENDING" }(o = t.Status || (t.Status = {})); var r = function(e, t, n, r) { this.name = e, this.active = t, this.available = n, this.path = r, this.status = o.PENDING }; t.DatasetState = r }, 1860: function(e, t, n) { "use strict"; function o(e) { this.content = [], this.scoreFunction = e } n.r(t), n.d(t, "BinaryHeap", (function() { return o } )), o.prototype = { push: function(e) { this.content.push(e), this.bubbleUp(this.content.length - 1) }, empty: function() { return 0 === this.size() }, clean: function() { this.content = [] }, peek: function() { return this.content[0] }, pop: function() { var e = this.content[0] , t = this.content.pop(); return this.content.length > 0 && (this.content[0] = t, this.sinkDown(0)), e }, remove: function(e) { for (var t = this.content.length, n = 0; n < t; n++) if (this.content[n] == e) { var o = this.content.pop(); if (n == t - 1) break; this.content[n] = o, this.bubbleUp(n), this.sinkDown(n); break } }, size: function() { return this.content.length }, bubbleUp: function(e) { for (var t = this.content[e], n = this.scoreFunction(t); e > 0; ) { var o = Math.floor((e + 1) / 2) - 1 , r = this.content[o]; if (n >= this.scoreFunction(r)) break; this.content[o] = t, this.content[e] = r, e = o } }, sinkDown: function(e) { for (var t = this.content.length, n = this.content[e], o = this.scoreFunction(n); ; ) { var r = 2 * (e + 1) , i = r - 1 , a = null; if (i < t) { var s = this.content[i] , c = this.scoreFunction(s); c < o && (a = i) } if (r < t) { var l = this.content[r]; this.scoreFunction(l) < (null == a ? o : c) && (a = r) } if (null == a) break; this.content[e] = this.content[a], this.content[a] = n, e = a } } } }, 1867: function(e, t, n) { var o = { "./af": 1713, "./af.js": 1713, "./ar": 1714, "./ar-dz": 1715, "./ar-dz.js": 1715, "./ar-kw": 1716, "./ar-kw.js": 1716, "./ar-ly": 1717, "./ar-ly.js": 1717, "./ar-ma": 1718, "./ar-ma.js": 1718, "./ar-sa": 1719, "./ar-sa.js": 1719, "./ar-tn": 1720, "./ar-tn.js": 1720, "./ar.js": 1714, "./az": 1721, "./az.js": 1721, "./be": 1722, "./be.js": 1722, "./bg": 1723, "./bg.js": 1723, "./bm": 1724, "./bm.js": 1724, "./bn": 1725, "./bn.js": 1725, "./bo": 1726, "./bo.js": 1726, "./br": 1727, "./br.js": 1727, "./bs": 1728, "./bs.js": 1728, "./ca": 1729, "./ca.js": 1729, "./cs": 1730, "./cs.js": 1730, "./cv": 1731, "./cv.js": 1731, "./cy": 1732, "./cy.js": 1732, "./da": 1733, "./da.js": 1733, "./de": 1734, "./de-at": 1735, "./de-at.js": 1735, "./de-ch": 1736, "./de-ch.js": 1736, "./de.js": 1734, "./dv": 1737, "./dv.js": 1737, "./el": 1738, "./el.js": 1738, "./en-au": 1739, "./en-au.js": 1739, "./en-ca": 1740, "./en-ca.js": 1740, "./en-gb": 1741, "./en-gb.js": 1741, "./en-ie": 1742, "./en-ie.js": 1742, "./en-il": 1743, "./en-il.js": 1743, "./en-in": 1744, "./en-in.js": 1744, "./en-nz": 1745, "./en-nz.js": 1745, "./en-sg": 1746, "./en-sg.js": 1746, "./eo": 1747, "./eo.js": 1747, "./es": 1748, "./es-do": 1749, "./es-do.js": 1749, "./es-us": 1750, "./es-us.js": 1750, "./es.js": 1748, "./et": 1751, "./et.js": 1751, "./eu": 1752, "./eu.js": 1752, "./fa": 1753, "./fa.js": 1753, "./fi": 1754, "./fi.js": 1754, "./fil": 1755, "./fil.js": 1755, "./fo": 1756, "./fo.js": 1756, "./fr": 1757, "./fr-ca": 1758, "./fr-ca.js": 1758, "./fr-ch": 1759, "./fr-ch.js": 1759, "./fr.js": 1757, "./fy": 1760, "./fy.js": 1760, "./ga": 1761, "./ga.js": 1761, "./gd": 1762, "./gd.js": 1762, "./gl": 1763, "./gl.js": 1763, "./gom-deva": 1764, "./gom-deva.js": 1764, "./gom-latn": 1765, "./gom-latn.js": 1765, "./gu": 1766, "./gu.js": 1766, "./he": 1767, "./he.js": 1767, "./hi": 1768, "./hi.js": 1768, "./hr": 1769, "./hr.js": 1769, "./hu": 1770, "./hu.js": 1770, "./hy-am": 1771, "./hy-am.js": 1771, "./id": 1772, "./id.js": 1772, "./is": 1773, "./is.js": 1773, "./it": 1774, "./it-ch": 1775, "./it-ch.js": 1775, "./it.js": 1774, "./ja": 1776, "./ja.js": 1776, "./jv": 1777, "./jv.js": 1777, "./ka": 1778, "./ka.js": 1778, "./kk": 1779, "./kk.js": 1779, "./km": 1780, "./km.js": 1780, "./kn": 1781, "./kn.js": 1781, "./ko": 1782, "./ko.js": 1782, "./ku": 1783, "./ku.js": 1783, "./ky": 1784, "./ky.js": 1784, "./lb": 1785, "./lb.js": 1785, "./lo": 1786, "./lo.js": 1786, "./lt": 1787, "./lt.js": 1787, "./lv": 1788, "./lv.js": 1788, "./me": 1789, "./me.js": 1789, "./mi": 1790, "./mi.js": 1790, "./mk": 1791, "./mk.js": 1791, "./ml": 1792, "./ml.js": 1792, "./mn": 1793, "./mn.js": 1793, "./mr": 1794, "./mr.js": 1794, "./ms": 1795, "./ms-my": 1796, "./ms-my.js": 1796, "./ms.js": 1795, "./mt": 1797, "./mt.js": 1797, "./my": 1798, "./my.js": 1798, "./nb": 1799, "./nb.js": 1799, "./ne": 1800, "./ne.js": 1800, "./nl": 1801, "./nl-be": 1802, "./nl-be.js": 1802, "./nl.js": 1801, "./nn": 1803, "./nn.js": 1803, "./oc-lnc": 1804, "./oc-lnc.js": 1804, "./pa-in": 1805, "./pa-in.js": 1805, "./pl": 1806, "./pl.js": 1806, "./pt": 1807, "./pt-br": 1808, "./pt-br.js": 1808, "./pt.js": 1807, "./ro": 1809, "./ro.js": 1809, "./ru": 1810, "./ru.js": 1810, "./sd": 1811, "./sd.js": 1811, "./se": 1812, "./se.js": 1812, "./si": 1813, "./si.js": 1813, "./sk": 1814, "./sk.js": 1814, "./sl": 1815, "./sl.js": 1815, "./sq": 1816, "./sq.js": 1816, "./sr": 1817, "./sr-cyrl": 1818, "./sr-cyrl.js": 1818, "./sr.js": 1817, "./ss": 1819, "./ss.js": 1819, "./sv": 1820, "./sv.js": 1820, "./sw": 1821, "./sw.js": 1821, "./ta": 1822, "./ta.js": 1822, "./te": 1823, "./te.js": 1823, "./tet": 1824, "./tet.js": 1824, "./tg": 1825, "./tg.js": 1825, "./th": 1826, "./th.js": 1826, "./tk": 1827, "./tk.js": 1827, "./tl-ph": 1828, "./tl-ph.js": 1828, "./tlh": 1829, "./tlh.js": 1829, "./tr": 1830, "./tr.js": 1830, "./tzl": 1831, "./tzl.js": 1831, "./tzm": 1832, "./tzm-latn": 1833, "./tzm-latn.js": 1833, "./tzm.js": 1832, "./ug-cn": 1834, "./ug-cn.js": 1834, "./uk": 1835, "./uk.js": 1835, "./ur": 1836, "./ur.js": 1836, "./uz": 1837, "./uz-latn": 1838, "./uz-latn.js": 1838, "./uz.js": 1837, "./vi": 1839, "./vi.js": 1839, "./x-pseudo": 1840, "./x-pseudo.js": 1840, "./yo": 1841, "./yo.js": 1841, "./zh-cn": 1842, "./zh-cn.js": 1842, "./zh-hk": 1843, "./zh-hk.js": 1843, "./zh-mo": 1844, "./zh-mo.js": 1844, "./zh-tw": 1845, "./zh-tw.js": 1845 }; function r(e) { var t = i(e); return n(t) } function i(e) { if (!n.o(o, e)) { var t = new Error("Cannot find module '" + e + "'"); throw t.code = "MODULE_NOT_FOUND", t } return o[e] } r.keys = function() { return Object.keys(o) } , r.resolve = i, e.exports = r, r.id = 1867 }, 1868: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = function() { function e() { this.vertexBudget = 5e6, this.loadersCount = 0, this.bshpherePixelDiameter = 10, this.maxDistance = 25, this.maxLoadRequests = 1, this.showWireframe = !1, this.lod = 0 } return e.prototype.getCurrentVertexBudget = function() { return this.vertexBudget / this.loadersCount } , e }(); t.MeshLoaderConfig = o }, 1887: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(2) , s = n(6) , c = n(1693) , l = n(0); t.MEASUREMENTS_COMPONENT = "MEASUREMENTS_COMPONENT"; var u = function(e) { function n(n, o, r) { var i = e.call(this, n, o, r) || this; return i.modulePath = "./MeasurementsModule#MeasurementsModule", i.componentId = t.MEASUREMENTS_COMPONENT, i } return r(n, e), n.ɵfac = function(e) { return new (e || n)(l.ɵɵdirectiveInject(l.NgModuleFactoryLoader),l.ɵɵdirectiveInject(l.Injector),l.ɵɵdirectiveInject(l.ViewContainerRef)) } , n.ɵcmp = l.ɵɵdefineComponent({ type: n, selectors: [["measurements-lazy"]], features: [l.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), n }(c.AbstractLazyComponent); t.MeasurementsLazyComponent = u, l.ɵsetClassMetadata(u, [{ type: i.Component, args: [{ selector: "measurements-lazy", template: "" }] }], (function() { return [{ type: l.NgModuleFactoryLoader }, { type: l.Injector }, { type: l.ViewContainerRef }] } ), null), a.module("IVWebApp").directive("measurementsLazy", s.downgradeComponent({ component: u })) }, 1888: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(2) , s = n(6) , c = n(1693) , l = n(0); t.CLOUD_UPLOAD_COMPONENT = "CLOUD_UPLOAD_COMPONENT"; var u = function(e) { function n(n, o, r) { var i = e.call(this, n, o, r) || this; return i.loader = n, i.injector = o, i.vcr = r, i.modulePath = "./CloudProcessingModule#CloudProcessingModule", i.componentId = t.CLOUD_UPLOAD_COMPONENT, i } return r(n, e), n.ɵfac = function(e) { return new (e || n)(l.ɵɵdirectiveInject(l.NgModuleFactoryLoader),l.ɵɵdirectiveInject(l.Injector),l.ɵɵdirectiveInject(l.ViewContainerRef)) } , n.ɵcmp = l.ɵɵdefineComponent({ type: n, selectors: [["cloud-upload-lazy"]], features: [l.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), n }(c.AbstractLazyComponent); t.CloudUploadLazyComponent = u, l.ɵsetClassMetadata(u, [{ type: i.Component, args: [{ selector: "cloud-upload-lazy", template: "" }] }], (function() { return [{ type: l.NgModuleFactoryLoader }, { type: l.Injector }, { type: l.ViewContainerRef }] } ), null), a.module("IVWebApp").directive("cloudUploadLazy", s.downgradeComponent({ component: u })) }, 1889: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(2) , s = n(6) , c = n(1693) , l = n(0); t.PROCESSED_DATA_COMPONENT = "PROCESSED_DATA_COMPONENT"; var u = function(e) { function n(n, o, r) { var i = e.call(this, n, o, r) || this; return i.loader = n, i.injector = o, i.vcr = r, i.modulePath = "./CloudProcessingModule#CloudProcessingModule", i.componentId = t.PROCESSED_DATA_COMPONENT, i } return r(n, e), n.ɵfac = function(e) { return new (e || n)(l.ɵɵdirectiveInject(l.NgModuleFactoryLoader),l.ɵɵdirectiveInject(l.Injector),l.ɵɵdirectiveInject(l.ViewContainerRef)) } , n.ɵcmp = l.ɵɵdefineComponent({ type: n, selectors: [["processed-data-lazy"]], features: [l.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), n }(c.AbstractLazyComponent); t.ProcessedDataLazyComponent = u, l.ɵsetClassMetadata(u, [{ type: i.Component, args: [{ selector: "processed-data-lazy", template: "" }] }], (function() { return [{ type: l.NgModuleFactoryLoader }, { type: l.Injector }, { type: l.ViewContainerRef }] } ), null), a.module("IVWebApp").directive("processedDataLazy", s.downgradeComponent({ component: u })) }, 1890: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(2) , s = n(6) , c = n(1693) , l = n(0); t.PROCESSING_TASK_COMPONENT = "PROCESSING_TASK_COMPONENT"; var u = function(e) { function n(n, o, r) { var i = e.call(this, n, o, r) || this; return i.loader = n, i.injector = o, i.vcr = r, i.modulePath = "./CloudProcessingModule#CloudProcessingModule", i.componentId = t.PROCESSING_TASK_COMPONENT, i } return r(n, e), n.ɵfac = function(e) { return new (e || n)(l.ɵɵdirectiveInject(l.NgModuleFactoryLoader),l.ɵɵdirectiveInject(l.Injector),l.ɵɵdirectiveInject(l.ViewContainerRef)) } , n.ɵcmp = l.ɵɵdefineComponent({ type: n, selectors: [["processing-task-lazy"]], features: [l.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), n }(c.AbstractLazyComponent); t.ProcessingTaskLazyComponent = u, l.ɵsetClassMetadata(u, [{ type: i.Component, args: [{ selector: "processing-task-lazy", template: "" }] }], (function() { return [{ type: l.NgModuleFactoryLoader }, { type: l.Injector }, { type: l.ViewContainerRef }] } ), null), a.module("IVWebApp").directive("processingTaskLazy", s.downgradeComponent({ component: u })) }, 1891: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(2) , s = n(6) , c = n(1693) , l = n(0); t.DEVELOPER_COMPONENT = "DEVELOPER_MENU_PANEL_COMPONENT"; var u = function(e) { function n(n, o, r) { var i = e.call(this, n, o, r) || this; return i.modulePath = "./DeveloperModule#DeveloperModule", i.componentId = t.DEVELOPER_COMPONENT, i } return r(n, e), n.ɵfac = function(e) { return new (e || n)(l.ɵɵdirectiveInject(l.NgModuleFactoryLoader),l.ɵɵdirectiveInject(l.Injector),l.ɵɵdirectiveInject(l.ViewContainerRef)) } , n.ɵcmp = l.ɵɵdefineComponent({ type: n, selectors: [["developer-lazy"]], features: [l.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), n }(c.AbstractLazyComponent); t.DeveloperLazyComponent = u, l.ɵsetClassMetadata(u, [{ type: i.Component, args: [{ selector: "developer-lazy", template: "" }] }], (function() { return [{ type: l.NgModuleFactoryLoader }, { type: l.Injector }, { type: l.ViewContainerRef }] } ), null), a.module("IVWebApp").directive("developerLazy", s.downgradeComponent({ component: u })) }, 1893: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(2) , s = n(6) , c = n(1693) , l = n(0); t.AUDIT_PANEL_COMPONENT = "AUDIT_PANEL_COMPONENT"; var u = function(e) { function n(n, o, r) { var i = e.call(this, n, o, r) || this; return i.loader = n, i.injector = o, i.vcr = r, i.modulePath = "./AuditPanelModule#AuditPanelModule", i.componentId = t.AUDIT_PANEL_COMPONENT, i } return r(n, e), n.ɵfac = function(e) { return new (e || n)(l.ɵɵdirectiveInject(l.NgModuleFactoryLoader),l.ɵɵdirectiveInject(l.Injector),l.ɵɵdirectiveInject(l.ViewContainerRef)) } , n.ɵcmp = l.ɵɵdefineComponent({ type: n, selectors: [["audit-panel-lazy"]], features: [l.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), n }(c.AbstractLazyComponent); t.AuditPanelLazyComponent = u, l.ɵsetClassMetadata(u, [{ type: i.Component, args: [{ selector: "audit-panel-lazy", template: "" }] }], (function() { return [{ type: l.NgModuleFactoryLoader }, { type: l.Injector }, { type: l.ViewContainerRef }] } ), null), a.module("IVWebApp").directive("auditPanelLazy", s.downgradeComponent({ component: u })) }, 1894: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(2) , s = n(6) , c = n(1693) , l = n(0); t.THEME_PANEL_COMPONENT = "THEME_PANEL_COMPONENT"; var u = function(e) { function n(n, o, r) { var i = e.call(this, n, o, r) || this; return i.loader = n, i.injector = o, i.vcr = r, i.modulePath = "../ThemePanelUI/ThemePanelModule#ThemePanelModule", i.componentId = t.THEME_PANEL_COMPONENT, i } return r(n, e), n.ɵfac = function(e) { return new (e || n)(l.ɵɵdirectiveInject(l.NgModuleFactoryLoader),l.ɵɵdirectiveInject(l.Injector),l.ɵɵdirectiveInject(l.ViewContainerRef)) } , n.ɵcmp = l.ɵɵdefineComponent({ type: n, selectors: [["theme-panel-lazy"]], features: [l.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), n }(c.AbstractLazyComponent); t.ThemePanelLazyComponent = u, l.ɵsetClassMetadata(u, [{ type: i.Component, args: [{ selector: "theme-panel-lazy", template: "" }] }], (function() { return [{ type: l.NgModuleFactoryLoader }, { type: l.Injector }, { type: l.ViewContainerRef }] } ), null), a.module("IVWebApp").directive("themePanelLazy", s.downgradeComponent({ component: u })) }, 1896: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(2) , s = n(6) , c = n(1897) , l = n(0); t.CKE_WRAPPER_COMPONENT = "CKE_WRAPPER_LAZY_COMPONENT"; var u = function(e) { function n(n, o, r) { var i = e.call(this, n, o, r) || this; return i.modulePath = "../PoiUI/CKEWrapper/CKEWrapperModule#CKEWrapperModule", i.componentId = t.CKE_WRAPPER_COMPONENT, i } return r(n, e), n.ɵfac = function(e) { return new (e || n)(l.ɵɵdirectiveInject(l.NgModuleFactoryLoader),l.ɵɵdirectiveInject(l.Injector),l.ɵɵdirectiveInject(l.ViewContainerRef)) } , n.ɵcmp = l.ɵɵdefineComponent({ type: n, selectors: [["cke-wrapper-lazy"]], features: [l.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), n }(c.AbstractLazyFormComponent); t.CKEWrapperLazyComponent = u, l.ɵsetClassMetadata(u, [{ type: i.Component, args: [{ selector: "cke-wrapper-lazy", template: "" }] }], (function() { return [{ type: l.NgModuleFactoryLoader }, { type: l.Injector }, { type: l.ViewContainerRef }] } ), null), a.module("IVWebApp").directive("ckeWrapperLazy", s.downgradeComponent({ component: u })) }, 1897: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(1693) , a = n(8) , s = n(0) , c = function(e) { function t() { return null !== e && e.apply(this, arguments) || this } return r(t, e), t.prototype.ngOnInit = function() { var e = this; this.loadComponent().then((function(t) { return e.typeCheckComponent(t) } )).then((function(t) { return e.initializeCvaComponent(t) } )).catch(a.handleWarning) } , t.prototype.typeCheckComponent = function(e) { var t = null == e ? void 0 : e.instance; if (!t) throw new Error("Lazy component not loaded."); if (!t.registerOnChange || !t.registerOnTouched || !t.writeValue) throw new Error(e.componentType.name + " does not implement \n\t\t\t\t\tthe ControlValueAccessor interface. ControlValueAccessor function calls \n\t\t\t\t\twon't be proxied."); return e } , t.prototype.initializeCvaComponent = function(e) { this.cvaComponent = e.instance, this.cachedOnChange && (this.cvaComponent.registerOnChange(this.cachedOnChange), this.cachedOnChange = void 0), this.cachedOnTouched && (this.cvaComponent.registerOnTouched(this.cachedOnTouched), this.cachedOnTouched = void 0), this.cachedValue && (this.cvaComponent.writeValue(this.cachedValue), this.cachedValue = void 0), void 0 !== this.cachedDisabledState && this.cvaComponent.setDisabledState && (this.cvaComponent.setDisabledState(this.cachedDisabledState), this.cachedDisabledState = void 0) } , t.prototype.registerOnChange = function(e) { this.cvaComponent ? this.cvaComponent.registerOnChange(e) : this.cachedOnChange = e } , t.prototype.registerOnTouched = function(e) { this.cvaComponent ? this.cvaComponent.registerOnTouched(e) : this.cachedOnTouched = e } , t.prototype.setDisabledState = function(e) { this.cvaComponent ? this.cvaComponent.setDisabledState(e) : this.cachedDisabledState = e } , t.prototype.writeValue = function(e) { this.cvaComponent ? this.cvaComponent.writeValue(e) : this.cachedValue = e } , t.ɵfac = function(e) { return l(e || t) } , t.ɵdir = s.ɵɵdefineDirective({ type: t, features: [s.ɵɵInheritDefinitionFeature] }), t }(i.AbstractLazyComponent); t.AbstractLazyFormComponent = c; var l = s.ɵɵgetInheritedFactory(c) }, 1898: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(80) , a = n(4) , s = n(152) , c = n(1899) , l = n(1900) , u = n(1849) , p = n(1901) , d = n(1860) , h = n(8) , f = n(1868) , m = n(7) , g = function(e) { function t(t, n, o, r, i) { var s = e.call(this, t, n) || this; return s.viewMenuService = o, s.jwtTokenService = r, s.datasetRepository = i, s.loaderConfig = new f.MeshLoaderConfig, s.datasets = [], s.loaders = {}, s.frustum = new a.Frustum, s.meshQueue = new d.BinaryHeap((function(e) { return e.weight } )), s.maxGPULoads = 3, s.showBBoxThree = !1, s.showBBoxGLTF = !1, s.sceneGroup.name = "MeshLayer", s.dracoLoadingManager = new a.LoadingManager, s.dracoLoadingManager.setURLModifier((function(e) { return s.getAuthorizationUrl(e) } )), s.dracoLoader = new c.DRACOLoader(s.dracoLoadingManager), s.gltfLoader = new l.GLTFLoader, s.dracoLoader.setDecoderPath("draco/"), s.dracoLoader.setDecoderConfig({ type: "js" }), s.gltfLoader.setParserOnly(!0), s.gltfLoader.setDRACOLoader(s.dracoLoader), s.registerEventCallbacks(), s } return r(t, e), t.prototype.onBeforeRender = function() { var e = this; this.visible && this.loadGLTFJson().then((function() { return e.processClosestMeshes().then((function() { return e.processMeshQueue() } )) } )).catch(h.handleWarning) } , t.prototype.reload = function(e, t, n) { for (a.Cache.enabled = !1, a.Cache.clear(), this.clean(); this.sceneGroup.children.length > 0; ) this.sceneGroup.remove(this.sceneGroup.children[0]); a.Cache.enabled = !0, this.maxGPULoads = e, this.showBBoxThree = t, this.showBBoxGLTF = n, this.updateDatasetState() } , t.prototype.processClosestMeshes = function() { var e = this , t = this.view.getCamera() , n = this.getViewport(); return this.updateFrustum(t), Promise.all(m.map(this.loaders, (function(e) { return e } )).map((function(o) { return o.getClosestMeshes(t, n, e.frustum) } ))).then((function(t) { t.forEach((function(t) { t.filter((function(e) { return e } )).forEach((function(t) { return e.meshQueue.push(t) } )) } )) } )) } , t.prototype.processMeshQueue = function() { for (var e, t = this, n = 0, o = function() { var o = r.meshQueue.pop() , i = r.view.getCamera(); r.updateFrustum(i), o.geometry.computeBoundingBox(); var s = o.geometry.boundingBox , c = s.distanceToPoint(i.position) , l = []; l.push((function() { return !t.frustum.intersectsBox(s) } )), l.push((function() { return !t.isDatasetActive(o.datasetName) } )), l.push((function() { return c >= t.loaderConfig.maxDistance } )), l.some((function(e) { return e() } )) ? null === (e = r.loaders[o.datasetName]) || void 0 === e || e.remove(o) : (r.showBBoxThree && r.sceneGroup.add(new a.BoxHelper(o,new a.Color(1,0,0))), r.showBBoxGLTF && r.sceneGroup.add(new a.Box3Helper(o.GLTFBox,new a.Color(1,0,0))), r.sceneGroup.add(o), n++), r.view.invalidateScene() }, r = this; !this.meshQueue.empty() && n < this.maxGPULoads; ) o() } , t.prototype.updateVisibility = function(e) { a.Cache.enabled = e, e || (a.Cache.clear(), this.clean()), this.visible = e, this.sceneGroup.visible = e, this.updateDatasetState(), this.view.invalidateScene() } , t.prototype.clean = function() { var e = this; this.cleanQueue(), Object.keys(this.loaders).forEach((function(t) { var n; return null === (n = e.loaders[t]) || void 0 === n ? void 0 : n.clean() } )), this.loaders = {}, this.loaderConfig.loadersCount = 0, this.view.invalidateScene() } , t.prototype.cleanQueue = function() { for (var e; !this.meshQueue.empty(); ) { var t = this.meshQueue.pop(); null === (e = this.loaders[null == t ? void 0 : t.datasetName]) || void 0 === e || e.clean() } this.meshQueue.clean() } , t.prototype.loadGLTFJson = function() { var e = this , t = {}; return this.jwtTokenService.setJwtHeaderOnConfig(t), this.jwtTokenService.isNotExpired() ? Promise.all(this.datasets.filter((function(e) { return e.available && e.active && e.status === u.Status.PENDING } )).map((function(n) { return new Promise((function(o, r) { n.status = u.Status.LOADING, e.gltfLoader.setRequestHeader(t), e.gltfLoader.load(n.path, (function(t) { var r = t.parser; e.setQueryStringAuthParameter(r.json), n.status = u.Status.LOADED, e.loaderConfig.loadersCount++, e.loaders[n.name] = new p.MeshLoader(n.name,e.loaderConfig,t,e.sceneGroup,e.view), e.view.invalidateScene(), o() } ), void 0, (function(e) { n.available = !1, r(e) } )) } )) } ))).then((function() {} )) : Promise.reject("Authorization failed!") } , t.prototype.setQueryStringAuthParameter = function(e) { var t, n = this; null === (t = e.images) || void 0 === t || t.forEach((function(e) { e.uri = n.getAuthorizationUrl(e.uri) } )) } , t.prototype.getAuthorizationUrl = function(e) { return e + "?" + this.jwtTokenService.getJwtUrlParamKey() + "=" + this.jwtTokenService.getJwt() } , t.prototype.registerEventCallbacks = function() { var e = this; this.trackSignal(this.viewMenuService.onShowMeshesChanged).connect((function(t) { e.updateVisibility(t) } )), this.trackSignal(this.datasetRepository.entityChanged).connect((function() { e.updateDatasetState(), e.removeDatasetMeshes(), e.view.invalidateScene() } )) } , t.prototype.isDatasetActive = function(e) { return void 0 !== this.datasetRepository.data.find((function(t) { return t.pointCloudVisible && t.name === e } )) } , t.prototype.removeDatasetMeshes = function() { var e = this; this.datasetRepository.data.filter((function(t) { return !t.pointCloudVisible && e.loaders[t.name] } )).forEach((function(t) { e.loaders[t.name].clean(), delete e.loaders[t.name], e.loaderConfig.loadersCount-- } )) } , t.prototype.updateDatasetState = function() { this.datasets = this.datasetRepository.data.map((function(e) { return new u.DatasetState(e.name,e.pointCloudVisible || !1,e.hasWebmesh || !1,"" + s.getBaseUrl() + e.getMeshConfigFilename()) } )) } , t.prototype.updateFrustum = function(e) { e.updateProjectionMatrix(), e.matrixWorld.getInverse(e.matrixWorldInverse), this.frustum.setFromProjectionMatrix((new a.Matrix4).multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse)) } , t.prototype.getViewport = function() { var e = new a.Vector4; return e.x = this.view.getDefaultViewport().left, e.y = this.view.getDefaultViewport().bottom, e.z = this.view.getDefaultViewport().screenWidth, e.w = this.view.getDefaultViewport().screenHeight, e } , t }(i.SceneLayer); t.MeshLayer = g }, 1900: function(e, t, n) { "use strict"; n.r(t), n.d(t, "GLTFLoader", (function() { return i } )); var o = n(4); function r(e) { return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e } )(e) } var i = function() { function e(e) { o.Loader.call(this, e), this.dracoLoader = null, this.ddsLoader = null, this.requestHeader = {}, this.parserOnly = !1 } function t() { var e = {}; return { get: function(t) { return e[t] }, add: function(t, n) { e[t] = n }, remove: function(t) { delete e[t] }, removeAll: function() { e = {} } } } e.prototype = Object.assign(Object.create(o.Loader.prototype), { constructor: e, load: function(e, t, n, r) { var i, a = this; i = "" !== this.resourcePath ? this.resourcePath : "" !== this.path ? this.path : o.LoaderUtils.extractUrlBase(e), a.manager.itemStart(e); var s = function(t) { r ? r(t) : console.error(t), a.manager.itemError(e), a.manager.itemEnd(e) } , c = new o.FileLoader(a.manager); c.setPath(this.path), c.setResponseType("arraybuffer"), c.setRequestHeader(this.requestHeader), "use-credentials" === a.crossOrigin && c.setWithCredentials(!0), c.load(e, (function(n) { try { a.parse(n, i, (function(n) { t(n), a.manager.itemEnd(e) } ), s) } catch (e) { s(e) } } ), n, s) }, setDRACOLoader: function(e) { return this.dracoLoader = e, this }, setDDSLoader: function(e) { return this.ddsLoader = e, this }, setRequestHeader: function(e) { return this.requestHeader = e, this }, setParserOnly: function(e) { return this.parserOnly = e, this }, parse: function(e, t, r, l) { var u, f = {}; if ("string" == typeof e) u = e; else if (o.LoaderUtils.decodeText(new Uint8Array(e,0,4)) === c) { try { f[n.KHR_BINARY_GLTF] = new p(e) } catch (e) { return void (l && l(e)) } u = f[n.KHR_BINARY_GLTF].content } else u = o.LoaderUtils.decodeText(new Uint8Array(e)); var v = JSON.parse(u); if (void 0 === v.asset || v.asset.version[0] < 2) l && l(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")); else { if (v.extensionsUsed) for (var y = 0; y < v.extensionsUsed.length; ++y) { var M = v.extensionsUsed[y] , C = v.extensionsRequired || []; switch (M) { case n.KHR_LIGHTS_PUNCTUAL: f[M] = new a(v); break; case n.KHR_MATERIALS_UNLIT: f[M] = new s; break; case n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: f[M] = new m; break; case n.KHR_DRACO_MESH_COMPRESSION: f[M] = new d(v,this.dracoLoader); break; case n.MSFT_TEXTURE_DDS: f[M] = new i(this.ddsLoader); break; case n.KHR_TEXTURE_TRANSFORM: f[M] = new h; break; case n.KHR_MESH_QUANTIZATION: f[M] = new g; break; default: C.indexOf(M) >= 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + M + '".') } } var w = new B(v,f,{ path: t || this.resourcePath || "", crossOrigin: this.crossOrigin, manager: this.manager }); w.fileLoader.setRequestHeader(this.requestHeader), this.parserOnly ? r({ parser: w }) : w.parse(r, l) } } }); var n = { KHR_BINARY_GLTF: "KHR_binary_glTF", KHR_DRACO_MESH_COMPRESSION: "KHR_draco_mesh_compression", KHR_LIGHTS_PUNCTUAL: "KHR_lights_punctual", KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS: "KHR_materials_pbrSpecularGlossiness", KHR_MATERIALS_UNLIT: "KHR_materials_unlit", KHR_TEXTURE_TRANSFORM: "KHR_texture_transform", KHR_MESH_QUANTIZATION: "KHR_mesh_quantization", MSFT_TEXTURE_DDS: "MSFT_texture_dds" }; function i(e) { if (!e) throw new Error("THREE.GLTFLoader: Attempting to load .dds texture without importing DDSLoader"); this.name = n.MSFT_TEXTURE_DDS, this.ddsLoader = e } function a(e) { this.name = n.KHR_LIGHTS_PUNCTUAL; var t = e.extensions && e.extensions[n.KHR_LIGHTS_PUNCTUAL] || {}; this.lightDefs = t.lights || [] } function s() { this.name = n.KHR_MATERIALS_UNLIT } a.prototype.loadLight = function(e) { var t, n = this.lightDefs[e], r = new o.Color(16777215); void 0 !== n.color && r.fromArray(n.color); var i = void 0 !== n.range ? n.range : 0; switch (n.type) { case "directional": (t = new o.DirectionalLight(r)).target.position.set(0, 0, -1), t.add(t.target); break; case "point": (t = new o.PointLight(r)).distance = i; break; case "spot": (t = new o.SpotLight(r)).distance = i, n.spot = n.spot || {}, n.spot.innerConeAngle = void 0 !== n.spot.innerConeAngle ? n.spot.innerConeAngle : 0, n.spot.outerConeAngle = void 0 !== n.spot.outerConeAngle ? n.spot.outerConeAngle : Math.PI / 4, t.angle = n.spot.outerConeAngle, t.penumbra = 1 - n.spot.innerConeAngle / n.spot.outerConeAngle, t.target.position.set(0, 0, -1), t.add(t.target); break; default: throw new Error('THREE.GLTFLoader: Unexpected light type, "' + n.type + '".') } return t.position.set(0, 0, 0), t.decay = 2, void 0 !== n.intensity && (t.intensity = n.intensity), t.name = n.name || "light_" + e, Promise.resolve(t) } , s.prototype.getMaterialType = function() { return o.MeshBasicMaterial } , s.prototype.extendParams = function(e, t, n) { var r = []; e.color = new o.Color(1,1,1), e.opacity = 1; var i = t.pbrMetallicRoughness; if (i) { if (Array.isArray(i.baseColorFactor)) { var a = i.baseColorFactor; e.color.fromArray(a), e.opacity = a[3] } void 0 !== i.baseColorTexture && r.push(n.assignTexture(e, "map", i.baseColorTexture)) } return Promise.all(r) } ; var c = "glTF" , l = 1313821514 , u = 5130562; function p(e) { this.name = n.KHR_BINARY_GLTF, this.content = null, this.body = null; var t = new DataView(e,0,12); if (this.header = { magic: o.LoaderUtils.decodeText(new Uint8Array(e.slice(0, 4))), version: t.getUint32(4, !0), length: t.getUint32(8, !0) }, this.header.magic !== c) throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header."); if (this.header.version < 2) throw new Error("THREE.GLTFLoader: Legacy binary file detected."); for (var r = new DataView(e,12), i = 0; i < r.byteLength; ) { var a = r.getUint32(i, !0); i += 4; var s = r.getUint32(i, !0); if (i += 4, s === l) { var p = new Uint8Array(e,12 + i,a); this.content = o.LoaderUtils.decodeText(p) } else if (s === u) { var d = 12 + i; this.body = e.slice(d, d + a) } i += a } if (null === this.content) throw new Error("THREE.GLTFLoader: JSON content not found.") } function d(e, t) { if (!t) throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided."); this.name = n.KHR_DRACO_MESH_COMPRESSION, this.json = e, this.dracoLoader = t, this.dracoLoader.preload() } function h() { this.name = n.KHR_TEXTURE_TRANSFORM } function f(e) { o.MeshStandardMaterial.call(this), this.isGLTFSpecularGlossinessMaterial = !0; var t = ["#ifdef USE_SPECULARMAP", "\tuniform sampler2D specularMap;", "#endif"].join("\n") , n = ["#ifdef USE_GLOSSINESSMAP", "\tuniform sampler2D glossinessMap;", "#endif"].join("\n") , r = ["vec3 specularFactor = specular;", "#ifdef USE_SPECULARMAP", "\tvec4 texelSpecular = texture2D( specularMap, vUv );", "\ttexelSpecular = sRGBToLinear( texelSpecular );", "\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture", "\tspecularFactor *= texelSpecular.rgb;", "#endif"].join("\n") , i = ["float glossinessFactor = glossiness;", "#ifdef USE_GLOSSINESSMAP", "\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );", "\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture", "\tglossinessFactor *= texelGlossiness.a;", "#endif"].join("\n") , a = ["PhysicalMaterial material;", "material.diffuseColor = diffuseColor.rgb;", "vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );", "float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );", "material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.", "material.specularRoughness += geometryRoughness;", "material.specularRoughness = min( material.specularRoughness, 1.0 );", "material.specularColor = specularFactor.rgb;"].join("\n") , s = { specular: { value: (new o.Color).setHex(16777215) }, glossiness: { value: 1 }, specularMap: { value: null }, glossinessMap: { value: null } }; this._extraUniforms = s, this.onBeforeCompile = function(e) { for (var o in s) e.uniforms[o] = s[o]; e.fragmentShader = e.fragmentShader.replace("uniform float roughness;", "uniform vec3 specular;"), e.fragmentShader = e.fragmentShader.replace("uniform float metalness;", "uniform float glossiness;"), e.fragmentShader = e.fragmentShader.replace("#include ", t), e.fragmentShader = e.fragmentShader.replace("#include ", n), e.fragmentShader = e.fragmentShader.replace("#include ", r), e.fragmentShader = e.fragmentShader.replace("#include ", i), e.fragmentShader = e.fragmentShader.replace("#include ", a) } , Object.defineProperties(this, { specular: { get: function() { return s.specular.value }, set: function(e) { s.specular.value = e } }, specularMap: { get: function() { return s.specularMap.value }, set: function(e) { s.specularMap.value = e } }, glossiness: { get: function() { return s.glossiness.value }, set: function(e) { s.glossiness.value = e } }, glossinessMap: { get: function() { return s.glossinessMap.value }, set: function(e) { s.glossinessMap.value = e, e ? (this.defines.USE_GLOSSINESSMAP = "", this.defines.USE_ROUGHNESSMAP = "") : (delete this.defines.USE_ROUGHNESSMAP, delete this.defines.USE_GLOSSINESSMAP) } } }), delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this.setValues(e) } function m() { return { name: n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS, specularGlossinessParams: ["color", "map", "lightMap", "lightMapIntensity", "aoMap", "aoMapIntensity", "emissive", "emissiveIntensity", "emissiveMap", "bumpMap", "bumpScale", "normalMap", "normalMapType", "displacementMap", "displacementScale", "displacementBias", "specularMap", "specular", "glossinessMap", "glossiness", "alphaMap", "envMap", "envMapIntensity", "refractionRatio"], getMaterialType: function() { return f }, extendParams: function(e, t, n) { var r = t.extensions[this.name]; e.color = new o.Color(1,1,1), e.opacity = 1; var i = []; if (Array.isArray(r.diffuseFactor)) { var a = r.diffuseFactor; e.color.fromArray(a), e.opacity = a[3] } if (void 0 !== r.diffuseTexture && i.push(n.assignTexture(e, "map", r.diffuseTexture)), e.emissive = new o.Color(0,0,0), e.glossiness = void 0 !== r.glossinessFactor ? r.glossinessFactor : 1, e.specular = new o.Color(1,1,1), Array.isArray(r.specularFactor) && e.specular.fromArray(r.specularFactor), void 0 !== r.specularGlossinessTexture) { var s = r.specularGlossinessTexture; i.push(n.assignTexture(e, "glossinessMap", s)), i.push(n.assignTexture(e, "specularMap", s)) } return Promise.all(i) }, createMaterial: function(e) { var t = new f(e); return t.fog = !0, t.color = e.color, t.map = void 0 === e.map ? null : e.map, t.lightMap = null, t.lightMapIntensity = 1, t.aoMap = void 0 === e.aoMap ? null : e.aoMap, t.aoMapIntensity = 1, t.emissive = e.emissive, t.emissiveIntensity = 1, t.emissiveMap = void 0 === e.emissiveMap ? null : e.emissiveMap, t.bumpMap = void 0 === e.bumpMap ? null : e.bumpMap, t.bumpScale = 1, t.normalMap = void 0 === e.normalMap ? null : e.normalMap, t.normalMapType = o.TangentSpaceNormalMap, e.normalScale && (t.normalScale = e.normalScale), t.displacementMap = null, t.displacementScale = 1, t.displacementBias = 0, t.specularMap = void 0 === e.specularMap ? null : e.specularMap, t.specular = e.specular, t.glossinessMap = void 0 === e.glossinessMap ? null : e.glossinessMap, t.glossiness = e.glossiness, t.alphaMap = null, t.envMap = void 0 === e.envMap ? null : e.envMap, t.envMapIntensity = 1, t.refractionRatio = .98, t } } } function g() { this.name = n.KHR_MESH_QUANTIZATION } function v(e, t, n, r) { o.Interpolant.call(this, e, t, n, r) } d.prototype.decodePrimitive = function(e, t) { var n = this.json , o = this.dracoLoader , r = e.extensions[this.name].bufferView , i = e.extensions[this.name].attributes , a = {} , s = {} , c = {}; for (var l in i) { var u = P[l] || l.toLowerCase(); a[u] = i[l] } for (l in e.attributes) { u = P[l] || l.toLowerCase(); if (void 0 !== i[l]) { var p = n.accessors[e.attributes[l]] , d = _[p.componentType]; c[u] = d, s[u] = !0 === p.normalized } } return t.getDependency("bufferView", r).then((function(e) { return new Promise((function(t) { o.decodeDracoFile(e, (function(e) { for (var n in e.attributes) { var o = e.attributes[n] , r = s[n]; void 0 !== r && (o.normalized = r) } t(e) } ), a, c) } )) } )) } , h.prototype.extendTexture = function(e, t) { return e = e.clone(), void 0 !== t.offset && e.offset.fromArray(t.offset), void 0 !== t.rotation && (e.rotation = t.rotation), void 0 !== t.scale && e.repeat.fromArray(t.scale), void 0 !== t.texCoord && console.warn('THREE.GLTFLoader: Custom UV sets in "' + this.name + '" extension not yet supported.'), e.needsUpdate = !0, e } , f.prototype = Object.create(o.MeshStandardMaterial.prototype), f.prototype.constructor = f, f.prototype.copy = function(e) { return o.MeshStandardMaterial.prototype.copy.call(this, e), this.specularMap = e.specularMap, this.specular.copy(e.specular), this.glossinessMap = e.glossinessMap, this.glossiness = e.glossiness, delete this.metalness, delete this.roughness, delete this.metalnessMap, delete this.roughnessMap, this } , v.prototype = Object.create(o.Interpolant.prototype), v.prototype.constructor = v, v.prototype.copySampleValue_ = function(e) { for (var t = this.resultBuffer, n = this.sampleValues, o = this.valueSize, r = e * o * 3 + o, i = 0; i !== o; i++) t[i] = n[r + i]; return t } , v.prototype.beforeStart_ = v.prototype.copySampleValue_, v.prototype.afterEnd_ = v.prototype.copySampleValue_, v.prototype.interpolate_ = function(e, t, n, o) { for (var r = this.resultBuffer, i = this.sampleValues, a = this.valueSize, s = 2 * a, c = 3 * a, l = o - t, u = (n - t) / l, p = u * u, d = p * u, h = e * c, f = h - c, m = -2 * d + 3 * p, g = d - p, v = 1 - m, y = g - p + u, M = 0; M !== a; M++) { var C = i[f + M + a] , w = i[f + M + s] * l , S = i[h + M + a] , b = i[h + M] * l; r[M] = v * C + y * w + m * S + g * b } return r } ; var y = 0 , M = 1 , C = 2 , w = 3 , S = 4 , b = 5 , T = 6 , _ = { 5120: Int8Array, 5121: Uint8Array, 5122: Int16Array, 5123: Uint16Array, 5125: Uint32Array, 5126: Float32Array } , x = { 9728: o.NearestFilter, 9729: o.LinearFilter, 9984: o.NearestMipmapNearestFilter, 9985: o.LinearMipmapNearestFilter, 9986: o.NearestMipmapLinearFilter, 9987: o.LinearMipmapLinearFilter } , E = { 33071: o.ClampToEdgeWrapping, 33648: o.MirroredRepeatWrapping, 10497: o.RepeatWrapping } , L = { SCALAR: 1, VEC2: 2, VEC3: 3, VEC4: 4, MAT2: 4, MAT3: 9, MAT4: 16 } , P = { POSITION: "position", NORMAL: "normal", TANGENT: "tangent", TEXCOORD_0: "uv", TEXCOORD_1: "uv2", COLOR_0: "color", WEIGHTS_0: "skinWeight", JOINTS_0: "skinIndex" } , O = { scale: "scale", translation: "position", rotation: "quaternion", weights: "morphTargetInfluences" } , A = { CUBICSPLINE: void 0, LINEAR: o.InterpolateLinear, STEP: o.InterpolateDiscrete } , D = "OPAQUE" , j = "MASK" , I = "BLEND" , R = { "image/png": o.RGBAFormat, "image/jpeg": o.RGBFormat }; function N(e, t) { return "string" != typeof e || "" === e ? "" : (/^https?:\/\//i.test(t) && /^\//.test(e) && (t = t.replace(/(^https?:\/\/[^\/]+).*/i, "$1")), /^(https?:)?\/\//i.test(e) || /^data:.*,.*$/i.test(e) || /^blob:.*$/i.test(e) ? e : t + e) } function F(e, t, n) { for (var o in n.extensions) void 0 === e[o] && (t.userData.gltfExtensions = t.userData.gltfExtensions || {}, t.userData.gltfExtensions[o] = n.extensions[o]) } function V(e, t) { void 0 !== t.extras && ("object" === r(t.extras) ? Object.assign(e.userData, t.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + t.extras)) } function U(e, t) { if (e.updateMorphTargets(), void 0 !== t.weights) for (var n = 0, o = t.weights.length; n < o; n++) e.morphTargetInfluences[n] = t.weights[n]; if (t.extras && Array.isArray(t.extras.targetNames)) { var r = t.extras.targetNames; if (e.morphTargetInfluences.length === r.length) { e.morphTargetDictionary = {}; for (n = 0, o = r.length; n < o; n++) e.morphTargetDictionary[r[n]] = n } else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.") } } function k(e) { for (var t = "", n = Object.keys(e).sort(), o = 0, r = n.length; o < r; o++) t += n[o] + ":" + e[n[o]] + ";"; return t } function B(e, n, r) { this.json = e || {}, this.extensions = n || {}, this.options = r || {}, this.cache = new t, this.primitiveCache = {}, this.textureLoader = new o.TextureLoader(this.options.manager), this.textureLoader.setCrossOrigin(this.options.crossOrigin), this.fileLoader = new o.FileLoader(this.options.manager), this.fileLoader.setResponseType("arraybuffer"), "use-credentials" === this.options.crossOrigin && this.fileLoader.setWithCredentials(!0) } function z(e, t, n) { var r = t.attributes , i = []; function a(t, o) { return n.getDependency("accessor", t).then((function(t) { e.setAttribute(o, t) } )) } for (var s in r) { var c = P[s] || s.toLowerCase(); c in e.attributes || i.push(a(r[s], c)) } if (void 0 !== t.indices && !e.index) { var l = n.getDependency("accessor", t.indices).then((function(t) { e.setIndex(t) } )); i.push(l) } return V(e, t), function(e, t, n) { var r = t.attributes , i = new o.Box3; if (void 0 !== r.POSITION) { var a = (h = n.json.accessors[r.POSITION]).min , s = h.max; if (void 0 !== a && void 0 !== s) { i.set(new o.Vector3(a[0],a[1],a[2]), new o.Vector3(s[0],s[1],s[2])); var c = t.targets; if (void 0 !== c) for (var l = new o.Vector3, u = 0, p = c.length; u < p; u++) { var d = c[u]; if (void 0 !== d.POSITION) { var h; a = (h = n.json.accessors[d.POSITION]).min, s = h.max; void 0 !== a && void 0 !== s ? (l.setX(Math.max(Math.abs(a[0]), Math.abs(s[0]))), l.setY(Math.max(Math.abs(a[1]), Math.abs(s[1]))), l.setZ(Math.max(Math.abs(a[2]), Math.abs(s[2]))), i.expandByVector(l)) : console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.") } } e.boundingBox = i; var f = new o.Sphere; i.getCenter(f.center), f.radius = i.min.distanceTo(i.max) / 2, e.boundingSphere = f } else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.") } }(e, t, n), Promise.all(i).then((function() { return void 0 !== t.targets ? function(e, t, n) { for (var o = !1, r = !1, i = 0, a = t.length; i < a; i++) { if (void 0 !== (l = t[i]).POSITION && (o = !0), void 0 !== l.NORMAL && (r = !0), o && r) break } if (!o && !r) return Promise.resolve(e); var s = [] , c = []; for (i = 0, a = t.length; i < a; i++) { var l = t[i]; if (o) { var u = void 0 !== l.POSITION ? n.getDependency("accessor", l.POSITION) : e.attributes.position; s.push(u) } if (r) { u = void 0 !== l.NORMAL ? n.getDependency("accessor", l.NORMAL) : e.attributes.normal; c.push(u) } } return Promise.all([Promise.all(s), Promise.all(c)]).then((function(t) { var n = t[0] , i = t[1]; return o && (e.morphAttributes.position = n), r && (e.morphAttributes.normal = i), e.morphTargetsRelative = !0, e } )) }(e, t.targets, n) : e } )) } function G(e, t) { var n = e.getIndex(); if (null === n) { var r = [] , i = e.getAttribute("position"); if (void 0 === i) return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."), e; for (var a = 0; a < i.count; a++) r.push(a); e.setIndex(r), n = e.getIndex() } var s = n.count - 2 , c = []; if (t === o.TriangleFanDrawMode) for (a = 1; a <= s; a++) c.push(n.getX(0)), c.push(n.getX(a)), c.push(n.getX(a + 1)); else for (a = 0; a < s; a++) a % 2 == 0 ? (c.push(n.getX(a)), c.push(n.getX(a + 1)), c.push(n.getX(a + 2))) : (c.push(n.getX(a + 2)), c.push(n.getX(a + 1)), c.push(n.getX(a))); c.length / 3 !== s && console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles."); var l = e.clone(); return l.setIndex(c), l } return B.prototype.parse = function(e, t) { var n = this , o = this.json , r = this.extensions; this.cache.removeAll(), this.markDefs(), Promise.all([this.getDependencies("scene"), this.getDependencies("animation"), this.getDependencies("camera")]).then((function(t) { var i = { scene: t[0][o.scene || 0], scenes: t[0], animations: t[1], cameras: t[2], asset: o.asset, parser: n, userData: {} }; F(r, i, o), V(i, o), e(i) } )).catch(t) } , B.prototype.markDefs = function() { for (var e = this.json.nodes || [], t = this.json.skins || [], n = this.json.meshes || [], o = {}, r = {}, i = 0, a = t.length; i < a; i++) for (var s = t[i].joints, c = 0, l = s.length; c < l; c++) e[s[c]].isBone = !0; for (var u = 0, p = e.length; u < p; u++) { var d = e[u]; void 0 !== d.mesh && (void 0 === o[d.mesh] && (o[d.mesh] = r[d.mesh] = 0), o[d.mesh]++, void 0 !== d.skin && (n[d.mesh].isSkinnedMesh = !0)) } this.json.meshReferences = o, this.json.meshUses = r } , B.prototype.getDependency = function(e, t) { var o = e + ":" + t , r = this.cache.get(o); if (!r) { switch (e) { case "scene": r = this.loadScene(t); break; case "node": r = this.loadNode(t); break; case "mesh": r = this.loadMesh(t); break; case "accessor": r = this.loadAccessor(t); break; case "bufferView": r = this.loadBufferView(t); break; case "buffer": r = this.loadBuffer(t); break; case "material": r = this.loadMaterial(t); break; case "texture": r = this.loadTexture(t); break; case "skin": r = this.loadSkin(t); break; case "animation": r = this.loadAnimation(t); break; case "camera": r = this.loadCamera(t); break; case "light": r = this.extensions[n.KHR_LIGHTS_PUNCTUAL].loadLight(t); break; default: throw new Error("Unknown type: " + e) } this.cache.add(o, r) } return r } , B.prototype.getDependencies = function(e) { var t = this.cache.get(e); if (!t) { var n = this , o = this.json[e + ("mesh" === e ? "es" : "s")] || []; t = Promise.all(o.map((function(t, o) { return n.getDependency(e, o) } ))), this.cache.add(e, t) } return t } , B.prototype.loadBuffer = function(e) { var t = this.json.buffers[e] , o = this.fileLoader; if (t.type && "arraybuffer" !== t.type) throw new Error("THREE.GLTFLoader: " + t.type + " buffer type is not supported."); if (void 0 === t.uri && 0 === e) return Promise.resolve(this.extensions[n.KHR_BINARY_GLTF].body); var r = this.options; return new Promise((function(e, n) { o.load(N(t.uri, r.path), e, void 0, (function() { n(new Error('THREE.GLTFLoader: Failed to load buffer "' + t.uri + '".')) } )) } )) } , B.prototype.loadBufferView = function(e) { var t = this.json.bufferViews[e]; return this.getDependency("buffer", t.buffer).then((function(e) { var n = t.byteLength || 0 , o = t.byteOffset || 0; return e.slice(o, o + n) } )) } , B.prototype.loadAccessor = function(e) { var t = this , n = this.json , r = this.json.accessors[e]; if (void 0 === r.bufferView && void 0 === r.sparse) return Promise.resolve(null); var i = []; return void 0 !== r.bufferView ? i.push(this.getDependency("bufferView", r.bufferView)) : i.push(null), void 0 !== r.sparse && (i.push(this.getDependency("bufferView", r.sparse.indices.bufferView)), i.push(this.getDependency("bufferView", r.sparse.values.bufferView))), Promise.all(i).then((function(e) { var i, a, s = e[0], c = L[r.type], l = _[r.componentType], u = l.BYTES_PER_ELEMENT, p = u * c, d = r.byteOffset || 0, h = void 0 !== r.bufferView ? n.bufferViews[r.bufferView].byteStride : void 0, f = !0 === r.normalized; if (h && h !== p) { var m = Math.floor(d / h) , g = "InterleavedBuffer:" + r.bufferView + ":" + r.componentType + ":" + m + ":" + r.count , v = t.cache.get(g); v || (i = new l(s,m * h,r.count * h / u), v = new o.InterleavedBuffer(i,h / u), t.cache.add(g, v)), a = new o.InterleavedBufferAttribute(v,c,d % h / u,f) } else i = null === s ? new l(r.count * c) : new l(s,d,r.count * c), a = new o.BufferAttribute(i,c,f); if (void 0 !== r.sparse) { var y = L.SCALAR , M = _[r.sparse.indices.componentType] , C = r.sparse.indices.byteOffset || 0 , w = r.sparse.values.byteOffset || 0 , S = new M(e[1],C,r.sparse.count * y) , b = new l(e[2],w,r.sparse.count * c); null !== s && (a = new o.BufferAttribute(a.array.slice(),a.itemSize,a.normalized)); for (var T = 0, x = S.length; T < x; T++) { var E = S[T]; if (a.setX(E, b[T * c]), c >= 2 && a.setY(E, b[T * c + 1]), c >= 3 && a.setZ(E, b[T * c + 2]), c >= 4 && a.setW(E, b[T * c + 3]), c >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.") } } return a } )) } , B.prototype.loadTexture = function(e) { var t, r = this, i = this.json, a = this.options, s = this.textureLoader, c = window.URL || window.webkitURL, l = i.textures[e], u = l.extensions || {}, p = (t = u[n.MSFT_TEXTURE_DDS] ? i.images[u[n.MSFT_TEXTURE_DDS].source] : i.images[l.source]).uri, d = !1; return void 0 !== t.bufferView && (p = r.getDependency("bufferView", t.bufferView).then((function(e) { d = !0; var n = new Blob([e],{ type: t.mimeType }); return p = c.createObjectURL(n) } ))), Promise.resolve(p).then((function(e) { var t = a.manager.getHandler(e); return t || (t = u[n.MSFT_TEXTURE_DDS] ? r.extensions[n.MSFT_TEXTURE_DDS].ddsLoader : s), new Promise((function(n, o) { t.load(N(e, a.path), n, void 0, o) } )) } )).then((function(e) { !0 === d && c.revokeObjectURL(p), e.flipY = !1, l.name && (e.name = l.name), t.mimeType in R && (e.format = R[t.mimeType]); var n = (i.samplers || {})[l.sampler] || {}; return e.magFilter = x[n.magFilter] || o.LinearFilter, e.minFilter = x[n.minFilter] || o.LinearMipmapLinearFilter, e.wrapS = E[n.wrapS] || o.RepeatWrapping, e.wrapT = E[n.wrapT] || o.RepeatWrapping, e } )) } , B.prototype.assignTexture = function(e, t, r) { var i = this; return this.getDependency("texture", r.index).then((function(a) { if (!a.isCompressedTexture) switch (t) { case "aoMap": case "emissiveMap": case "metalnessMap": case "normalMap": case "roughnessMap": a.format = o.RGBFormat } if (void 0 === r.texCoord || 0 == r.texCoord || "aoMap" === t && 1 == r.texCoord || console.warn("THREE.GLTFLoader: Custom UV set " + r.texCoord + " for texture " + t + " not yet supported."), i.extensions[n.KHR_TEXTURE_TRANSFORM]) { var s = void 0 !== r.extensions ? r.extensions[n.KHR_TEXTURE_TRANSFORM] : void 0; s && (a = i.extensions[n.KHR_TEXTURE_TRANSFORM].extendTexture(a, s)) } e[t] = a } )) } , B.prototype.assignFinalMaterial = function(e) { var t = e.geometry , n = e.material , r = void 0 !== t.attributes.tangent , i = void 0 !== t.attributes.color , a = void 0 === t.attributes.normal , s = !0 === e.isSkinnedMesh , c = Object.keys(t.morphAttributes).length > 0 , l = c && void 0 !== t.morphAttributes.normal; if (e.isPoints) { var u = "PointsMaterial:" + n.uuid , p = this.cache.get(u); p || (p = new o.PointsMaterial, o.Material.prototype.copy.call(p, n), p.color.copy(n.color), p.map = n.map, p.sizeAttenuation = !1, this.cache.add(u, p)), n = p } else if (e.isLine) { u = "LineBasicMaterial:" + n.uuid; var d = this.cache.get(u); d || (d = new o.LineBasicMaterial, o.Material.prototype.copy.call(d, n), d.color.copy(n.color), this.cache.add(u, d)), n = d } if (r || i || a || s || c) { u = "ClonedMaterial:" + n.uuid + ":"; n.isGLTFSpecularGlossinessMaterial && (u += "specular-glossiness:"), s && (u += "skinning:"), r && (u += "vertex-tangents:"), i && (u += "vertex-colors:"), a && (u += "flat-shading:"), c && (u += "morph-targets:"), l && (u += "morph-normals:"); var h = this.cache.get(u); h || (h = n.clone(), s && (h.skinning = !0), r && (h.vertexTangents = !0), i && (h.vertexColors = !0), a && (h.flatShading = !0), c && (h.morphTargets = !0), l && (h.morphNormals = !0), this.cache.add(u, h)), n = h } n.aoMap && void 0 === t.attributes.uv2 && void 0 !== t.attributes.uv && t.setAttribute("uv2", new o.BufferAttribute(t.attributes.uv.array,2)), n.normalScale && !r && (n.normalScale.y = -n.normalScale.y), e.material = n } , B.prototype.loadMaterial = function(e) { var t, r = this.json, i = this.extensions, a = r.materials[e], s = {}, c = a.extensions || {}, l = []; if (c[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]) { var u = i[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]; t = u.getMaterialType(), l.push(u.extendParams(s, a, this)) } else if (c[n.KHR_MATERIALS_UNLIT]) { var p = i[n.KHR_MATERIALS_UNLIT]; t = p.getMaterialType(), l.push(p.extendParams(s, a, this)) } else { t = o.MeshStandardMaterial; var d = a.pbrMetallicRoughness || {}; if (s.color = new o.Color(1,1,1), s.opacity = 1, Array.isArray(d.baseColorFactor)) { var h = d.baseColorFactor; s.color.fromArray(h), s.opacity = h[3] } void 0 !== d.baseColorTexture && l.push(this.assignTexture(s, "map", d.baseColorTexture)), s.metalness = void 0 !== d.metallicFactor ? d.metallicFactor : 1, s.roughness = void 0 !== d.roughnessFactor ? d.roughnessFactor : 1, void 0 !== d.metallicRoughnessTexture && (l.push(this.assignTexture(s, "metalnessMap", d.metallicRoughnessTexture)), l.push(this.assignTexture(s, "roughnessMap", d.metallicRoughnessTexture))) } !0 === a.doubleSided && (s.side = o.DoubleSide); var m = a.alphaMode || D; return m === I ? (s.transparent = !0, s.depthWrite = !1) : (s.transparent = !1, m === j && (s.alphaTest = void 0 !== a.alphaCutoff ? a.alphaCutoff : .5)), void 0 !== a.normalTexture && t !== o.MeshBasicMaterial && (l.push(this.assignTexture(s, "normalMap", a.normalTexture)), s.normalScale = new o.Vector2(1,1), void 0 !== a.normalTexture.scale && s.normalScale.set(a.normalTexture.scale, a.normalTexture.scale)), void 0 !== a.occlusionTexture && t !== o.MeshBasicMaterial && (l.push(this.assignTexture(s, "aoMap", a.occlusionTexture)), void 0 !== a.occlusionTexture.strength && (s.aoMapIntensity = a.occlusionTexture.strength)), void 0 !== a.emissiveFactor && t !== o.MeshBasicMaterial && (s.emissive = (new o.Color).fromArray(a.emissiveFactor)), void 0 !== a.emissiveTexture && t !== o.MeshBasicMaterial && l.push(this.assignTexture(s, "emissiveMap", a.emissiveTexture)), Promise.all(l).then((function() { var e; return e = t === f ? i[n.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(s) : new t(s), a.name && (e.name = a.name), e.map && (e.map.encoding = o.sRGBEncoding), e.emissiveMap && (e.emissiveMap.encoding = o.sRGBEncoding), V(e, a), a.extensions && F(i, e, a), e } )) } , B.prototype.loadGeometries = function(e) { var t = this , r = this.extensions , i = this.primitiveCache; function a(e) { return r[n.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e, t).then((function(n) { return z(n, e, t) } )) } for (var s, c, l = [], u = 0, p = e.length; u < p; u++) { var d, h = e[u], f = (c = void 0, (c = (s = h).extensions && s.extensions[n.KHR_DRACO_MESH_COMPRESSION]) ? "draco:" + c.bufferView + ":" + c.indices + ":" + k(c.attributes) : s.indices + ":" + k(s.attributes) + ":" + s.mode), m = i[f]; if (m) l.push(m.promise); else d = h.extensions && h.extensions[n.KHR_DRACO_MESH_COMPRESSION] ? a(h) : z(new o.BufferGeometry, h, t), i[f] = { primitive: h, promise: d }, l.push(d) } return Promise.all(l) } , B.prototype.loadMesh = function(e) { for (var t, n = this, r = this.json.meshes[e], i = r.primitives, a = [], s = 0, c = i.length; s < c; s++) { var l = void 0 === i[s].material ? (void 0 === (t = this.cache).DefaultMaterial && (t.DefaultMaterial = new o.MeshStandardMaterial({ color: 16777215, emissive: 0, metalness: 1, roughness: 1, transparent: !1, depthTest: !0, side: o.FrontSide })), t.DefaultMaterial) : this.getDependency("material", i[s].material); a.push(l) } return a.push(n.loadGeometries(i)), Promise.all(a).then((function(t) { for (var a = t.slice(0, t.length - 1), s = t[t.length - 1], c = [], l = 0, u = s.length; l < u; l++) { var p, d = s[l], h = i[l], f = a[l]; if (h.mode === S || h.mode === b || h.mode === T || void 0 === h.mode) !0 !== (p = !0 === r.isSkinnedMesh ? new o.SkinnedMesh(d,f) : new o.Mesh(d,f)).isSkinnedMesh || p.geometry.attributes.skinWeight.normalized || p.normalizeSkinWeights(), h.mode === b ? p.geometry = G(p.geometry, o.TriangleStripDrawMode) : h.mode === T && (p.geometry = G(p.geometry, o.TriangleFanDrawMode)); else if (h.mode === M) p = new o.LineSegments(d,f); else if (h.mode === w) p = new o.Line(d,f); else if (h.mode === C) p = new o.LineLoop(d,f); else { if (h.mode !== y) throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + h.mode); p = new o.Points(d,f) } Object.keys(p.geometry.morphAttributes).length > 0 && U(p, r), p.name = r.name || "mesh_" + e, s.length > 1 && (p.name += "_" + l), V(p, r), n.assignFinalMaterial(p), c.push(p) } if (1 === c.length) return c[0]; var m = new o.Group; for (l = 0, u = c.length; l < u; l++) m.add(c[l]); return m } )) } , B.prototype.loadCamera = function(e) { var t, n = this.json.cameras[e], r = n[n.type]; if (r) return "perspective" === n.type ? t = new o.PerspectiveCamera(o.MathUtils.radToDeg(r.yfov),r.aspectRatio || 1,r.znear || 1,r.zfar || 2e6) : "orthographic" === n.type && (t = new o.OrthographicCamera(r.xmag / -2,r.xmag / 2,r.ymag / 2,r.ymag / -2,r.znear,r.zfar)), n.name && (t.name = n.name), V(t, n), Promise.resolve(t); console.warn("THREE.GLTFLoader: Missing camera parameters.") } , B.prototype.loadSkin = function(e) { var t = this.json.skins[e] , n = { joints: t.joints }; return void 0 === t.inverseBindMatrices ? Promise.resolve(n) : this.getDependency("accessor", t.inverseBindMatrices).then((function(e) { return n.inverseBindMatrices = e, n } )) } , B.prototype.loadAnimation = function(e) { for (var t = this.json.animations[e], n = [], r = [], i = [], a = [], s = [], c = 0, l = t.channels.length; c < l; c++) { var u = t.channels[c] , p = t.samplers[u.sampler] , d = u.target , h = void 0 !== d.node ? d.node : d.id , f = void 0 !== t.parameters ? t.parameters[p.input] : p.input , m = void 0 !== t.parameters ? t.parameters[p.output] : p.output; n.push(this.getDependency("node", h)), r.push(this.getDependency("accessor", f)), i.push(this.getDependency("accessor", m)), a.push(p), s.push(d) } return Promise.all([Promise.all(n), Promise.all(r), Promise.all(i), Promise.all(a), Promise.all(s)]).then((function(n) { for (var r = n[0], i = n[1], a = n[2], s = n[3], c = n[4], l = [], u = 0, p = r.length; u < p; u++) { var d = r[u] , h = i[u] , f = a[u] , m = s[u] , g = c[u]; if (void 0 !== d) { var y; switch (d.updateMatrix(), d.matrixAutoUpdate = !0, O[g.path]) { case O.weights: y = o.NumberKeyframeTrack; break; case O.rotation: y = o.QuaternionKeyframeTrack; break; case O.position: case O.scale: default: y = o.VectorKeyframeTrack } var M = d.name ? d.name : d.uuid , C = void 0 !== m.interpolation ? A[m.interpolation] : o.InterpolateLinear , w = []; O[g.path] === O.weights ? d.traverse((function(e) { !0 === e.isMesh && e.morphTargetInfluences && w.push(e.name ? e.name : e.uuid) } )) : w.push(M); var S = f.array; if (f.normalized) { var b; if (S.constructor === Int8Array) b = 1 / 127; else if (S.constructor === Uint8Array) b = 1 / 255; else if (S.constructor == Int16Array) b = 1 / 32767; else { if (S.constructor !== Uint16Array) throw new Error("THREE.GLTFLoader: Unsupported output accessor component type."); b = 1 / 65535 } for (var T = new Float32Array(S.length), _ = 0, x = S.length; _ < x; _++) T[_] = S[_] * b; S = T } for (_ = 0, x = w.length; _ < x; _++) { var E = new y(w[_] + "." + O[g.path],h.array,S,C); "CUBICSPLINE" === m.interpolation && (E.createInterpolant = function(e) { return new v(this.times,this.values,this.getValueSize() / 3,e) } , E.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0), l.push(E) } } } var L = t.name ? t.name : "animation_" + e; return new o.AnimationClip(L,void 0,l) } )) } , B.prototype.loadNode = function(e) { var t, r = this.json, i = this.extensions, a = this, s = r.meshReferences, c = r.meshUses, l = r.nodes[e]; return (t = [], void 0 !== l.mesh && t.push(a.getDependency("mesh", l.mesh).then((function(e) { var t; if (s[l.mesh] > 1) { var n = c[l.mesh]++; (t = e.clone()).name += "_instance_" + n } else t = e; return void 0 !== l.weights && t.traverse((function(e) { if (e.isMesh) for (var t = 0, n = l.weights.length; t < n; t++) e.morphTargetInfluences[t] = l.weights[t] } )), t } ))), void 0 !== l.camera && t.push(a.getDependency("camera", l.camera)), l.extensions && l.extensions[n.KHR_LIGHTS_PUNCTUAL] && void 0 !== l.extensions[n.KHR_LIGHTS_PUNCTUAL].light && t.push(a.getDependency("light", l.extensions[n.KHR_LIGHTS_PUNCTUAL].light)), Promise.all(t)).then((function(e) { var t; if ((t = !0 === l.isBone ? new o.Bone : e.length > 1 ? new o.Group : 1 === e.length ? e[0] : new o.Object3D) !== e[0]) for (var n = 0, r = e.length; n < r; n++) t.add(e[n]); if (l.name && (t.userData.name = l.name, t.name = o.PropertyBinding.sanitizeNodeName(l.name)), V(t, l), l.extensions && F(i, t, l), void 0 !== l.matrix) { var a = new o.Matrix4; a.fromArray(l.matrix), t.applyMatrix4(a) } else void 0 !== l.translation && t.position.fromArray(l.translation), void 0 !== l.rotation && t.quaternion.fromArray(l.rotation), void 0 !== l.scale && t.scale.fromArray(l.scale); return t } )) } , B.prototype.loadScene = function() { function e(t, n, r, i) { var a = r.nodes[t]; return i.getDependency("node", t).then((function(e) { return void 0 === a.skin ? e : i.getDependency("skin", a.skin).then((function(e) { for (var n = [], o = 0, r = (t = e).joints.length; o < r; o++) n.push(i.getDependency("node", t.joints[o])); return Promise.all(n) } )).then((function(n) { return e.traverse((function(e) { if (e.isMesh) { for (var r = [], i = [], a = 0, s = n.length; a < s; a++) { var c = n[a]; if (c) { r.push(c); var l = new o.Matrix4; void 0 !== t.inverseBindMatrices && l.fromArray(t.inverseBindMatrices.array, 16 * a), i.push(l) } else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', t.joints[a]) } e.bind(new o.Skeleton(r,i), e.matrixWorld) } } )), e } )); var t } )).then((function(t) { n.add(t); var o = []; if (a.children) for (var s = a.children, c = 0, l = s.length; c < l; c++) { var u = s[c]; o.push(e(u, t, r, i)) } return Promise.all(o) } )) } return function(t) { var n = this.json , r = this.extensions , i = this.json.scenes[t] , a = new o.Group; i.name && (a.name = i.name), V(a, i), i.extensions && F(r, a, i); for (var s = i.nodes || [], c = [], l = 0, u = s.length; l < u; l++) c.push(e(s[l], a, n, this)); return Promise.all(c).then((function() { return a } )) } }(), e }() }, 1901: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(4) , r = n(1860) , i = n(1902) , a = n(1903) , s = n(8) , c = n(1849) , l = function() { function e(e, t, n, o, i) { this.datasetName = e, this.config = t, this.sceneGroup = o, this.view = i, this.gltfMeshes = {}, this.currentVertexCount = 0, this.requestQueue = new r.BinaryHeap((function(e) { return e.weight } )), this.MAX_REQUEST_QUEUE_SIZE = 3e3, this.CAMERA_VELOCITY_THRESHOLD = .25, this.active = !0, this.parser = n.parser, this.parseGLTFMeshes() } return e.prototype.getClosestMeshes = function(e, t, n) { return this.buildRequestQueue(e, t, n), Promise.all(this.processRequestQueues(e, n)) } , e.prototype.clean = function() { var e = this; this.active = !1, this.requestQueue.clean(), Object.keys(this.gltfMeshes).forEach((function(t) { return e.removeMesh(e.gltfMeshes[t]) } )), this.gltfMeshes = {} } , e.prototype.remove = function(e) { var t = this.gltfMeshes[e.name]; this.removeMesh(t) } , e.prototype.parseGLTFMeshes = function() { for (var e = 0, t = this.parser.json, n = 0, r = t.meshes; n < r.length; n++) { var a = r[n]; a.name += "_" + this.datasetName; for (var s = 0, c = a.primitives; s < c.length; s++) { var l = c[s].attributes.POSITION; if (void 0 !== l) { var u = t.accessors[l] , p = new o.Box3((new o.Vector3).fromArray(u.min),(new o.Vector3).fromArray(u.max)) , d = a.primitives.map((function(e) { return e.material } )); this.gltfMeshes[a.name] = new i.GLTFMeshItem(e,p,u.count,a.name,d,!1) } } e++ } } , e.prototype.buildRequestQueue = function(t, n, r) { var a = this , s = function(s) { var l = c.gltfMeshes[s] , u = new o.Sphere , p = l.box.clone(); p.getBoundingSphere(u); var d = p.distanceToPoint(t.position) , h = e.projectSphereDiameter(u.radius, t.fov, d, n.w) , f = []; if (f.push((function() { return !r.intersectsBox(p) } )), f.push((function() { return h <= a.config.bshpherePixelDiameter } )), f.push((function() { return a.currentVertexCount >= a.config.getCurrentVertexBudget() } )), f.push((function() { return d >= a.config.maxDistance } )), f.some((function(e) { return e() } ))) return c.removeMesh(l), "continue"; l.requested || (c.requestQueue.push(new i.RequestQueueItem(l.id,s,l.vertexCount,d,c.setLOD(l))), l.requested = !0) } , c = this; for (var l in this.gltfMeshes) s(l) } , e.prototype.setLOD = function(e) { var t = this , n = e.materials.map((function(e) { return t.parser.json.materials[e] } )).filter((function(e) { return e.extensions && e.extensions.MSFT_lod } )).map((function(e) { return e.extensions.MSFT_lod.ids } )); return 0 === n.length ? [] : (this.parser.json.meshes[e.id].primitives.forEach((function(e, t) { e.material = n[t].slice(-1).pop() } )), n[0]) } , e.projectSphereDiameter = function(e, t, n, o) { var r = t / 2 * Math.PI / 180 , i = e / Math.tan(r) / Math.sqrt(n * n - e * e); return 2 * Math.floor(i * o * .5) || 1 / 0 } , e.prototype.getDistance = function(e, t) { var n = this.gltfMeshes[t] , r = new o.Sphere , i = n.box.clone(); return i.getBoundingSphere(r), i.distanceToPoint(e.position) } , e.prototype.processRequestQueues = function(e, t) { for (var n = this, o = 0, r = [], i = function() { var i = a.requestQueue.pop(); if (a.currentVertexCount + i.vertexCount > a.config.getCurrentVertexBudget()) return a.requestQueue.push(i), "break"; var s = []; if (s.push((function() { return t.intersectsBox(n.gltfMeshes[i.meshName].box) } )), s.push((function() { return n.getDistance(e, i.meshName) <= i.weight } )), s.every((function(e) { return e() } ))) return r.push(a.requestMesh(i, e)), a.currentVertexCount += i.vertexCount, o++, "continue"; a.gltfMeshes[i.meshName].requested = !1 }, a = this; !this.requestQueue.empty() && o <= this.config.maxLoadRequests; ) { if ("break" === i()) break } return this.requestQueue.size() > this.MAX_REQUEST_QUEUE_SIZE && this.requestQueue.clean(), r } , e.prototype.requestMesh = function(e, t) { var n = this; return this.parser.getDependency("mesh", e.id).then((function(o) { if (n.active) { var r = new a.GLTFMesh(o,e.weight,n.datasetName,n.config.showWireframe,n.gltfMeshes[e.meshName].box); return r.time = Date.now(), r.cameraPosition = t.position.clone(), r.onAfterRender = n.getOnAfterRender(e, r), r } } )) } , e.prototype.requestMaterial = function(e, t) { var n = this; return this.parser.getDependency("material", e).then((function(e) { if (n.active) { var o = t.material; o.name = e.name, o.uniforms.tDiffuse.value.dispose(), o.uniforms.tDiffuse = { value: e.map }, o.uniformsNeedUpdate = !0, t.textureLoading = c.Status.LOADED, n.view.invalidateScene() } } )) } , e.prototype.getOnAfterRender = function(e, t) { var n = this; return function(o, r, i, a) { a.computeBoundingBox(); var l = a.boundingBox.distanceToPoint(i.position) , u = i.position.distanceTo(t.cameraPosition) , p = Date.now() - t.time , d = u / p / 1e3; if (l <= n.config.maxDistance / 3 && p < 50 && d < n.CAMERA_VELOCITY_THRESHOLD && t.textureLoading === c.Status.PENDING && (t.textureLoading = c.Status.LOADING, e.LOD.length > 0)) { var h = 0; n.config.lod >= 0 && e.LOD.length > n.config.lod && (h = n.config.lod), n.requestMaterial(e.LOD[h], t).catch(s.handleWarning) } t.cameraPosition = i.position.clone(), t.time = Date.now() } } , e.prototype.removeMesh = function(e) { e.requested = !1; for (var t = this.sceneGroup.getObjectByName(e.name); void 0 !== t; ) this.currentVertexCount -= e.vertexCount, this.sceneGroup.remove(t), this.disposeMesh(t, !0), t = this.sceneGroup.getObjectByName(e.name) } , e.prototype.disposeMesh = function(e, t) { var n, o; if (e) { this.gltfMeshes[e.name].requested = !1, t && e.geometry.dispose(); var r = e.material , i = null === (o = null === (n = r.uniforms) || void 0 === n ? void 0 : n.tDiffuse) || void 0 === o ? void 0 : o.value; i && i.dispose(), r.dispose() } } , e }(); t.MeshLoader = l }, 1902: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = function(e, t, n, o, r, i) { this.id = e, this.box = t, this.vertexCount = n, this.name = o, this.materials = r, this.requested = i }; t.GLTFMeshItem = o; var r = function(e, t, n, o, r) { this.id = e, this.meshName = t, this.vertexCount = n, this.weight = o, this.LOD = r }; t.RequestQueueItem = r }, 1903: function(e, t, n) { "use strict"; var o, r = this && this.__extends || (o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) } )(e, t) } , function(e, t) { function n() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) } ); Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(4) , a = n(1849) , s = function(e) { function t(t, o, r, s, c) { var l = e.call(this, t.geometry, t.material) || this; l.weight = o, l.datasetName = r, l.showWireframe = s, l.GLTFBox = c, l.textureLoading = a.Status.PENDING, l.name = t.name; var u = l.material , p = new i.ShaderMaterial; return p.wireframe = s, p.side = i.DoubleSide, p.name = u.name, p.fragmentShader = n(1904), p.vertexShader = n(1905), p.uniforms = { tDiffuse: { value: u.map } }, l.material = p, l } return r(t, e), t }(i.Mesh); t.GLTFMesh = s }, 1904: function(e, t) { e.exports = "varying vec2 vUv;\nuniform sampler2D tDiffuse;\n\nvoid main()\n{\n\tgl_FragColor = texture2D(tDiffuse, vUv);\n}" }, 1905: function(e, t) { e.exports = "varying vec2 vUv;\n\nvoid main()\n{\n\tvUv = uv;\n\tmat4 transformation = projectionMatrix * modelViewMatrix;\n\tgl_Position = transformation * vec4(position, 1.0);\n}" }, 1928: function(e, t, n) { "use strict"; var o = this && this.__assign || function() { return (o = Object.assign || function(e) { for (var t, n = 1, o = arguments.length; n < o; n++) for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); return e } ).apply(this, arguments) } , r = this && this.__spreadArrays || function() { for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; var o = Array(e) , r = 0; for (t = 0; t < n; t++) for (var i = arguments[t], a = 0, s = i.length; a < s; a++, r++) o[r] = i[a]; return o } ; Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(6) , a = n(0) , s = n(3) , c = n(1929) , l = n(2016) , u = n(2017) , p = n(1887) , d = n(2018) , h = n(2019) , f = n(95) , m = n(2022) , g = n(1888) , v = n(1889) , y = n(1890) , M = n(1891) , C = n(168) , w = n(1892) , S = n(1931) , b = n(2024) , T = n(2025) , _ = n(1711) , x = n(648) , E = n(1893) , L = n(1894) , P = n(440) , O = n(47) , A = n(1895) , D = n(1896) , j = n(2026) , I = n(624) , R = n(625) , N = n(1707) , F = n(1697) , V = n(649) , U = n(2028) , k = n(647) , B = n(152) , z = n(0) , G = n(1929) , H = n(1931) , W = n(6) , K = n(3) , q = n(168) , $ = n(1692) , Q = n(1704) , X = n(1705) , J = n(624) , Z = n(1697) , Y = n(440) , ee = n(37) , te = n(625) , ne = n(1689) , oe = n(1933) , re = n(1700); window.CKEDITOR_BASEPATH = B.getBaseUrl(); var ie = function() { function e(e) { this.UpgradeModule = e } return e.prototype.ngDoBootstrap = function() { var e = document.querySelector("indoorviewer"); if (!e) { var t = "Cannot find the <4dkankan> element on the page. Cannot continue."; throw console.error(t), new Error(t) } var n = document.createElement("div"); n.setAttribute("ng-include", "'iv.html'"), n.setAttribute("class", "indoorViewer"), e.appendChild(n); this.UpgradeModule.bootstrap(e, ["IVWebApp"], { strictDi: !0 }), window.IV.injector = this.UpgradeModule.$injector } , e.ɵmod = z.ɵɵdefineNgModule({ type: e }), e.ɵinj = z.ɵɵdefineInjector({ factory: function(t) { return new (t || e)(z.ɵɵinject(W.UpgradeModule)) }, providers: r(l.upgradedProviders, [{ provide: C.TRANSLOCO_CONFIG, useValue: { availableLangs: ["en", "es", "cs", "de", "fr", "hu", "ja", "tr", "zh", "zh_tw"], defaultLang: "en", prodMode: !0, reRenderOnLangChange: !0, fallbackLang: "en", missingHandler: { useFallbackTranslation: !0 } } }, b.translocoLoader, a.SystemJsNgModuleLoader, { provide: s.APP_BASE_HREF, useValue: "/" }, { provide: w.HTTP_INTERCEPTORS, useClass: T.RedirectBaseUrl, multi: !0 }, { provide: P.MAT_DIALOG_DEFAULT_OPTIONS, useValue: o(o({}, new P.MatDialogConfig), { minWidth: "400px", position: { top: "30px" } }) }, { provide: O.DateAdapter, useClass: A.MomentDateAdapter, deps: [O.MAT_DATE_LOCALE] }, { provide: O.MAT_DATE_FORMATS, useValue: A.MAT_MOMENT_DATE_FORMATS }]), imports: [[f.BrowserAnimationsModule, i.UpgradeModule, c.RouterModule.forRoot(u.routes), C.TranslocoModule, w.HttpClientModule, S.TranslocoMessageFormatModule.init(), _.SharedModule, I.FormsModule, I.ReactiveFormsModule, F.ToggleSwitchModule, P.MatDialogModule, R.MatButtonModule, N.FlexModule, U.WelcomeScreenModule]] }), e }(); t.MainModule = ie, ("undefined" == typeof ngJitMode || ngJitMode) && z.ɵɵsetNgModuleScope(ie, { declarations: [V.UserAuthGroupDigestComponent, p.MeasurementsLazyComponent, h.ViewportResizerComponent, d.ViewportResizerDirective, m.FeatureFlagComponent, g.CloudUploadLazyComponent, y.ProcessingTaskLazyComponent, v.ProcessedDataLazyComponent, E.AuditPanelLazyComponent, M.DeveloperLazyComponent, L.ThemePanelLazyComponent, x.MagnificationToggleComponent, D.CKEWrapperLazyComponent, x.MagnificationToggleComponent, j.MeshMenuPanelComponent, k.PoiImportModeComponent], imports: [f.BrowserAnimationsModule, i.UpgradeModule, G.RouterModule, C.TranslocoModule, w.HttpClientModule, H.TranslocoMessageFormatModule, _.SharedModule, I.FormsModule, I.ReactiveFormsModule, F.ToggleSwitchModule, P.MatDialogModule, R.MatButtonModule, N.FlexModule, U.WelcomeScreenModule] }), z.ɵsetClassMetadata(ie, [{ type: a.NgModule, args: [{ imports: [f.BrowserAnimationsModule, i.UpgradeModule, c.RouterModule.forRoot(u.routes), C.TranslocoModule, w.HttpClientModule, S.TranslocoMessageFormatModule.init(), _.SharedModule, I.FormsModule, I.ReactiveFormsModule, F.ToggleSwitchModule, P.MatDialogModule, R.MatButtonModule, N.FlexModule, U.WelcomeScreenModule], declarations: [V.UserAuthGroupDigestComponent, p.MeasurementsLazyComponent, h.ViewportResizerComponent, d.ViewportResizerDirective, m.FeatureFlagComponent, g.CloudUploadLazyComponent, y.ProcessingTaskLazyComponent, v.ProcessedDataLazyComponent, E.AuditPanelLazyComponent, M.DeveloperLazyComponent, L.ThemePanelLazyComponent, x.MagnificationToggleComponent, D.CKEWrapperLazyComponent, x.MagnificationToggleComponent, j.MeshMenuPanelComponent, k.PoiImportModeComponent], entryComponents: [p.MeasurementsLazyComponent, h.ViewportResizerComponent, m.FeatureFlagComponent, g.CloudUploadLazyComponent, y.ProcessingTaskLazyComponent, v.ProcessedDataLazyComponent, M.DeveloperLazyComponent, D.CKEWrapperLazyComponent, x.MagnificationToggleComponent], providers: r(l.upgradedProviders, [{ provide: C.TRANSLOCO_CONFIG, useValue: { availableLangs: ["en", "es", "cs", "de", "fr", "hu", "ja", "tr", "zh", "zh_tw"], defaultLang: "en", prodMode: !0, reRenderOnLangChange: !0, fallbackLang: "en", missingHandler: { useFallbackTranslation: !0 } } }, b.translocoLoader, a.SystemJsNgModuleLoader, { provide: s.APP_BASE_HREF, useValue: "/" }, { provide: w.HTTP_INTERCEPTORS, useClass: T.RedirectBaseUrl, multi: !0 }, { provide: P.MAT_DIALOG_DEFAULT_OPTIONS, useValue: o(o({}, new P.MatDialogConfig), { minWidth: "400px", position: { top: "30px" } }) }, { provide: O.DateAdapter, useClass: A.MomentDateAdapter, deps: [O.MAT_DATE_LOCALE] }, { provide: O.MAT_DATE_FORMATS, useValue: A.MAT_MOMENT_DATE_FORMATS }]) }] }], (function() { return [{ type: W.UpgradeModule }] } ), null), z.ɵɵsetComponentScope(h.ViewportResizerComponent, [K.NgClass, K.NgComponentOutlet, K.NgForOf, K.NgIf, K.NgTemplateOutlet, K.NgStyle, K.NgSwitch, K.NgSwitchCase, K.NgSwitchDefault, K.NgPlural, K.NgPluralCase, G.RouterOutlet, G.RouterLink, G.RouterLinkWithHref, G.RouterLinkActive, G.ɵangular_packages_router_router_l, q.TranslocoDirective, $.AddBaseUrlDirective, Q.RedirectFocusToMainViewDirective, X.ZoomControlComponent, J.ɵangular_packages_forms_forms_y, J.NgSelectOption, J.ɵangular_packages_forms_forms_x, J.DefaultValueAccessor, J.NumberValueAccessor, J.RangeValueAccessor, J.CheckboxControlValueAccessor, J.SelectControlValueAccessor, J.SelectMultipleControlValueAccessor, J.RadioControlValueAccessor, J.NgControlStatus, J.NgControlStatusGroup, J.RequiredValidator, J.MinLengthValidator, J.MaxLengthValidator, J.PatternValidator, J.CheckboxRequiredValidator, J.EmailValidator, J.NgModel, J.NgModelGroup, J.NgForm, J.FormControlDirective, J.FormGroupDirective, J.FormControlName, J.FormGroupName, J.FormArrayName, Z.ToggleSwitchComponent, Y.MatDialogContainer, Y.MatDialogClose, Y.MatDialogTitle, Y.MatDialogContent, Y.MatDialogActions, ee.Dir, te.MatButton, te.MatAnchor, ne.DefaultLayoutDirective, ne.DefaultLayoutGapDirective, ne.DefaultLayoutAlignDirective, ne.DefaultFlexOrderDirective, ne.DefaultFlexOffsetDirective, ne.FlexFillDirective, ne.DefaultFlexAlignDirective, ne.DefaultFlexDirective, oe.WelcomeScreenSelectorComponent, V.UserAuthGroupDigestComponent, p.MeasurementsLazyComponent, h.ViewportResizerComponent, d.ViewportResizerDirective, m.FeatureFlagComponent, g.CloudUploadLazyComponent, y.ProcessingTaskLazyComponent, v.ProcessedDataLazyComponent, E.AuditPanelLazyComponent, M.DeveloperLazyComponent, L.ThemePanelLazyComponent, x.MagnificationToggleComponent, D.CKEWrapperLazyComponent, j.MeshMenuPanelComponent, k.PoiImportModeComponent], [K.AsyncPipe, K.UpperCasePipe, K.LowerCasePipe, K.JsonPipe, K.SlicePipe, K.DecimalPipe, K.PercentPipe, K.TitleCasePipe, K.CurrencyPipe, K.DatePipe, K.I18nPluralPipe, K.I18nSelectPipe, K.KeyValuePipe, q.TranslocoPipe, re.UoMPipe]) }, 1932: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o, r = n(0), i = n(0), a = n(168), s = n(625), c = n(440), l = n(1709); function u(e, t) { if (1 & e && (i.ɵɵelementContainerStart(0), i.ɵɵelementStart(1, "div", 2), i.ɵɵelementStart(2, "div", 3), i.ɵɵelementStart(3, "h3"), i.ɵɵtext(4), i.ɵɵelementEnd(), i.ɵɵelementStart(5, "h5", 4), i.ɵɵtext(6), i.ɵɵelementEnd(), i.ɵɵelement(7, "img", 5), i.ɵɵelementStart(8, "button", 6), i.ɵɵtext(9), i.ɵɵelementEnd(), i.ɵɵelementEnd(), i.ɵɵelementStart(10, "div", 7), i.ɵɵelementStart(11, "h3"), i.ɵɵtext(12), i.ɵɵelementEnd(), i.ɵɵelementStart(13, "h5", 4), i.ɵɵtext(14), i.ɵɵelementEnd(), i.ɵɵelement(15, "img", 5), i.ɵɵelementStart(16, "button", 6), i.ɵɵtext(17), i.ɵɵelementEnd(), i.ɵɵelementEnd(), i.ɵɵelementEnd(), i.ɵɵelementContainerEnd()), 2 & e) { var n = t.$implicit , o = i.ɵɵnextContext(); i.ɵɵadvance(4), i.ɵɵtextInterpolate(n("Add processed data")), i.ɵɵadvance(2), i.ɵɵtextInterpolate(n("to dataset management")), i.ɵɵadvance(1), i.ɵɵproperty("src", o.addDataSvg, i.ɵɵsanitizeUrl), i.ɵɵadvance(1), i.ɵɵproperty("mat-dialog-close", o.PaasWelcomeScreenResult.DATASET_MANAGEMENT), i.ɵɵadvance(1), i.ɵɵtextInterpolate1(" ", n("Dataset management"), " "), i.ɵɵadvance(3), i.ɵɵtextInterpolate(n("Upload & Process")), i.ɵɵadvance(2), i.ɵɵtextInterpolate(n("your 4dkankan data")), i.ɵɵadvance(1), i.ɵɵproperty("src", o.uploadProcessSvg, i.ɵɵsanitizeUrl), i.ɵɵadvance(1), i.ɵɵproperty("mat-dialog-close", o.PaasWelcomeScreenResult.CLOUD_UPLOAD), i.ɵɵadvance(1), i.ɵɵtextInterpolate1(" ", n("Cloud processing"), " ") } } !function(e) { e[e.DATASET_MANAGEMENT = 0] = "DATASET_MANAGEMENT", e[e.CLOUD_UPLOAD = 1] = "CLOUD_UPLOAD" }(o = t.PaasWelcomeScreenResult || (t.PaasWelcomeScreenResult = {})); var p = function() { function e() { this.addDataSvg = n(2029), this.uploadProcessSvg = n(2030), this.PaasWelcomeScreenResult = o } return e.ɵfac = function(t) { return new (t || e) } , e.ɵcmp = i.ɵɵdefineComponent({ type: e, selectors: [["paas-welcome-screen"]], decls: 4, vars: 0, consts: [[4, "transloco"], ["mat-icon-button", "", "mat-dialog-close", "", 1, "close-button"], [1, "modal-container"], [1, "white-panel"], [1, "subtitle"], ["alt", "", 1, "option-image", 3, "src"], ["mat-stroked-button", "", "color", "primary", 3, "mat-dialog-close"], [1, "blue-panel"]], template: function(e, t) { 1 & e && (i.ɵɵtemplate(0, u, 18, 10, "ng-container", 0), i.ɵɵelementStart(1, "button", 1), i.ɵɵelementStart(2, "mat-icon"), i.ɵɵtext(3, "close"), i.ɵɵelementEnd(), i.ɵɵelementEnd()) }, directives: [a.TranslocoDirective, s.MatButton, c.MatDialogClose, l.MatIcon], styles: ["[_nghost-%COMP%]{display:contents}.subtitle[_ngcontent-%COMP%]{font-size:16px;margin-top:0}.modal-container[_ngcontent-%COMP%]{width:100%;height:100%;display:flex;flex-direction:row;justify-content:stretch;align-items:stretch}.white-panel[_ngcontent-%COMP%]{background-color:#fff;color:#3398c7;text-align:center;flex:1 1 1px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:54px}.white-panel[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background-color:#fff;border-color:#3398c7}.blue-panel[_ngcontent-%COMP%]{background:linear-gradient(180.06deg,#1e9de3 .05%,#82d2ff 99.95%);color:#fff;text-align:center;flex:1 1 1px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:54px}.blue-panel[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background-color:#fff;border-color:#3398c7}.option-image[_ngcontent-%COMP%]{display:block;margin:auto;flex:1 1 auto}.close-button[_ngcontent-%COMP%]{position:absolute;top:8px;right:8px;color:#fff}"] }), e }(); t.PaaSWelcomeScreenComponent = p, i.ɵsetClassMetadata(p, [{ type: r.Component, args: [{ selector: "paas-welcome-screen", templateUrl: "./PaaSWelcomeScreen.ng.html", styleUrls: ["PaaSWelcomeScreen.ng.scss"] }] }], null, null) }, 1933: function(e, t, n) { "use strict"; var o = this && this.__awaiter || function(e, t, n, o) { return new (n || (n = Promise))((function(r, i) { function a(e) { try { c(o.next(e)) } catch (e) { i(e) } } function s(e) { try { c(o.throw(e)) } catch (e) { i(e) } } function c(e) { var t; e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) { e(t) } ))).then(a, s) } c((o = o.apply(e, t || [])).next()) } )) } , r = this && this.__generator || function(e, t) { var n, o, r, i, a = { label: 0, sent: function() { if (1 & r[0]) throw r[1]; return r[1] }, trys: [], ops: [] }; return i = { next: s(0), throw: s(1), return: s(2) }, "function" == typeof Symbol && (i[Symbol.iterator] = function() { return this } ), i; function s(i) { return function(s) { return function(i) { if (n) throw new TypeError("Generator is already executing."); for (; a; ) try { if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r; switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) { case 0: case 1: r = i; break; case 4: return a.label++, { value: i[1], done: !1 }; case 5: a.label++, o = i[1], i = [0]; continue; case 7: i = a.ops.pop(), a.trys.pop(); continue; default: if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) { a = 0; continue } if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) { a.label = i[1]; break } if (6 === i[0] && a.label < r[1]) { a.label = r[1], r = i; break } if (r && a.label < r[2]) { a.label = r[2], a.ops.push(i); break } r[2] && a.ops.pop(), a.trys.pop(); continue } i = t.call(e, a) } catch (e) { i = [6, e], o = 0 } finally { n = r = 0 } if (5 & i[0]) throw i[1]; return { value: i[0] ? i[1] : void 0, done: !0 } }([i, s]) } } } ; Object.defineProperty(t, "__esModule", { value: !0 }); var i = n(0) , a = n(232) , s = n(8) , c = n(81) , l = (n(120), n(38), n(86), n(36), n(187), n(440), n(1932)) , u = n(2) , p = n(6) , d = n(0) , h = n(38) , f = n(187) , m = n(86) , g = n(36) , v = n(120) , y = n(440) , M = function() { function e(e, t, n, o, r, i) { var a = this; this.SidebarMenuService = e, this.StorageService = t, this.InstanceInformationService = n, this.AuthenticationService = o, this.FeatureFlagsService = r, this.MatDialog = i, this.doNotShowKey = "welcome_screen_hide", this.AuthenticationService.dataLoadCompleted.connect((function() { return a.selectAndShow() } )), this.selectAndShow().catch(s.handleWarning) } return e.prototype.goToDatasetManagement = function() { this.SidebarMenuService.isMenuHidden = !1, this.SidebarMenuService.goToItem(this.SidebarMenuService.getItem(c.SidebarMenuItemsKey.SETTINGS)).catch(s.handleWarning), this.SidebarMenuService.goToItem(this.SidebarMenuService.getItem(c.SidebarMenuItemsKey.SETTINGS_DATASET_MANAGEMENT)).catch(s.handleWarning) } , e.prototype.goToCloudUpload = function() { this.SidebarMenuService.isMenuHidden = !1, this.SidebarMenuService.goToItem(this.SidebarMenuService.getItem(c.SidebarMenuItemsKey.CLOUD_PROCESSING)).catch(s.handleWarning), this.SidebarMenuService.goToItem(this.SidebarMenuService.getItem(c.SidebarMenuItemsKey.CLOUD_PROCESSING_UPLOADED_DATA)).catch(s.handleWarning) } , e.prototype.selectAndShow = function() { return o(this, void 0, void 0, (function() { var e, t, n = this; return r(this, (function(o) { switch (o.label) { case 0: return [4, this.shouldShow()]; case 1: return e = o.sent(), [4, this.showPaas()]; case 2: return t = o.sent(), e && t && this.MatDialog.open(l.PaaSWelcomeScreenComponent, { panelClass: "modal-content-full-size", width: "780px", height: "500px", autoFocus: !1 }).afterClosed().subscribe((function(e) { e === l.PaasWelcomeScreenResult.DATASET_MANAGEMENT ? n.goToDatasetManagement() : e === l.PaasWelcomeScreenResult.CLOUD_UPLOAD && n.goToCloudUpload() } )), [2] } } )) } )) } , e.prototype.shouldShow = function() { return o(this, void 0, void 0, (function() { var e, t, n, o, i; return r(this, (function(r) { switch (r.label) { case 0: return [4, this.InstanceInformationService.getInformation()]; case 1: return e = r.sent(), t = null == e ? void 0 : e.isEmpty, n = this.StorageService.get(this.doNotShowKey), o = this.AuthenticationService.currentUser, i = o && o.isAdmin(), [2, t && !n && i && this.SidebarMenuService.isMenuHidden] } } )) } )) } , e.prototype.showPaas = function() { return o(this, void 0, void 0, (function() { return r(this, (function(e) { return [2, this.FeatureFlagsService.isEnabled(a.FeatureFlag.CLOUD_PROCESSING).then((function(e) { return !0 } )).catch((function(e) { return !1 } ))] } )) } )) } , e.ɵfac = function(t) { return new (t || e)(d.ɵɵdirectiveInject(h.SidebarMenuService),d.ɵɵdirectiveInject(f.StorageService),d.ɵɵdirectiveInject(m.InstanceInformationService),d.ɵɵdirectiveInject(g.AuthenticationService),d.ɵɵdirectiveInject(v.FeatureFlagsService),d.ɵɵdirectiveInject(y.MatDialog)) } , e.ɵcmp = d.ɵɵdefineComponent({ type: e, selectors: [["welcome-screen-selector"]], decls: 0, vars: 0, template: function(e, t) {}, encapsulation: 2 }), e }(); t.WelcomeScreenSelectorComponent = M, d.ɵsetClassMetadata(M, [{ type: i.Component, args: [{ selector: "welcome-screen-selector", template: "" }] }], (function() { return [{ type: h.SidebarMenuService }, { type: f.StorageService }, { type: m.InstanceInformationService }, { type: g.AuthenticationService }, { type: v.FeatureFlagsService }, { type: y.MatDialog }] } ), null), u.module("IVWebApp").directive("welcomeScreenSelector", p.downgradeComponent({ component: M })) }, 2016: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.upgradedProviders = [{ provide: "$http", useFactory: function(e) { return e.get("$http") }, deps: ["$injector"] }, { provide: "$httpParamSerializer", useFactory: function(e) { return e.get("$httpParamSerializer") }, deps: ["$injector"] }, { provide: "$locale", useFactory: function(e) { return e.get("$locale") }, deps: ["$injector"] }, { provide: "$location", useFactory: function(e) { return e.get("$location") }, deps: ["$injector"] }, { provide: "$rootScope", useFactory: function(e) { return e.get("$rootScope") }, deps: ["$injector"] }, { provide: "$timeout", useFactory: function(e) { return e.get("$timeout") }, deps: ["$injector"] }, { provide: "$window", useFactory: function(e) { return e.get("$window") }, deps: ["$injector"] }, { provide: "flowFactory", useFactory: function(e) { return e.get("flowFactory") }, deps: ["$injector"] }, { provide: "gettext", useFactory: function(e) { return e.get("gettext") }, deps: ["$injector"] }, { provide: "gettextCatalog", useFactory: function(e) { return e.get("gettextCatalog") }, deps: ["$injector"] }, { provide: "hotkeys", useFactory: function(e) { return e.get("hotkeys") }, deps: ["$injector"] }, { provide: "localStorageService", useFactory: function(e) { return e.get("localStorageService") }, deps: ["$injector"] }, { provide: "Upload", useFactory: function(e) { return e.get("Upload") }, deps: ["$injector"] }, { provide: "apiEndpoint", useFactory: function(e) { return e.get("apiEndpoint") }, deps: ["$injector"] }, { provide: "isHtml5Mode", useFactory: function(e) { return e.get("isHtml5Mode") }, deps: ["$injector"] }, { provide: "IV", useFactory: function(e) { return e.get("IV") }, deps: ["$injector"] }, { provide: "PointCloudMenuService", useFactory: function(e) { return e.get("PointCloudMenuService") }, deps: ["$injector"] }, { provide: "PolygonLayerFactory", useFactory: function(e) { return e.get("PolygonLayerFactory") }, deps: ["$injector"] }] }, 2017: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), t.routes = [{ path: "pointcloud", loadChildren: "../Modules/PointCloud/PointCloudModule#PointCloudModule" }, { path: "meshes", loadChildren: "../Modules/MeshModule#MeshModule" }, { path: "ckewrapper", loadChildren: "../PoiUI/CKEWrapper/CKEWrapperModule#CKEWrapperModule" }, { path: "measurements", loadChildren: "./MeasurementsModule#MeasurementsModule" }, { path: "cloud-processing", loadChildren: "./CloudProcessingModule#CloudProcessingModule" }, { path: "developer-menu", loadChildren: "./DeveloperModule#DeveloperModule" }, { path: "settings", children: [{ path: "audit", loadChildren: "./AuditPanelModule#AuditPanelModule" }, { path: "theme", loadChildren: "../ThemePanelUI/ThemePanelModule#ThemePanelModule" }] }] }, 2018: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = n(233) , i = (n(17), n(21), n(52)) , a = n(642) , s = n(0) , c = n(17) , l = n(21) , u = function() { function e(e, t, n, o) { var r = this; this.element = e, this.ViewService = t, this.renderer = n, this.TrackingService = o, this.isDragging = !1, this.hasMoved = !1, this.xStart = 0, this.connection = this.ViewService.mainView.viewportDimensionsChanged.connect((function() { r.repositionSeparatorToViewportIntersection() } )) } return e.prototype.ngOnInit = function() { this.repositionSeparatorToViewportIntersection() } , e.prototype.ngOnDestroy = function() { this.connection.disconnect() } , e.prototype.onMouseDown = function(t) { t.button === r.MouseButton.LEFT && (this.dragStart(t.clientX), e.stopEventPropagation(t)) } , e.prototype.onTouchStart = function(e) { e.touches.length && this.dragStart(e.touches[0].clientX) } , e.prototype.onMouseMove = function(t) { this.isDragging && t.button === r.MouseButton.LEFT && (this.dragMove(t.clientX), e.stopEventPropagation(t)) } , e.prototype.onTouchMove = function(e) { this.isDragging && e.touches.length && this.dragMove(e.touches[0].clientX) } , e.prototype.onMouseUp = function(e) { this.isDragging && e.button === r.MouseButton.LEFT && this.dragEnd() } , e.prototype.onTouchCancel = function(e) { this.isDragging && this.dragEnd() } , e.prototype.dragStart = function(e) { this.isDragging = !0, this.hasMoved = !1, this.xStart = e } , e.prototype.dragMove = function(e) { this.hasMoved || (this.moveViewportIntersectionToMousePosition(), this.hasMoved = !0); var t = e - this.xStart; this.ViewService.mainView.adjustViewportDimensions(t), this.xStart = e } , e.prototype.dragEnd = function() { if (this.isDragging = !1, this.hasMoved) { this.snapToEdge(); var e = this.ViewService.mainView; this.TrackingService.trackPreDefinedEvent((new a.MultiViewportResizedEvent).withViewports(this.collapsedWidthThresholdInPixels, e.getViewportByName(i.SplitViewportName.TOP_VIEW), e.getViewportByName(i.SplitViewportName.DEFAULT_VIEW))) } } , e.prototype.moveViewportIntersectionToMousePosition = function() { var e = this.getViewportWidth(i.SplitViewportName.TOP_VIEW); this.ViewService.mainView.adjustViewportDimensions(this.xStart - e), this.repositionSeparatorToViewportIntersection() } , e.prototype.snapToEdge = function() { var e = this.element.nativeElement.offsetParent.clientWidth , t = this.element.nativeElement.offsetLeft , n = 0 , o = !1; t < this.collapsedWidthThresholdInPixels ? (n = -t, o = !0) : e - t < this.collapsedWidthThresholdInPixels && (n = e - t, o = !0), this.ViewService.mainView.adjustViewportDimensions(n, o) } , e.stopEventPropagation = function(e) { e.stopPropagation && e.stopPropagation(), e.preventDefault && e.preventDefault(), e.cancelBubble = !0, e.returnValue = !1 } , e.prototype.repositionSeparatorToViewportIntersection = function() { var e = this.getViewportWidth(i.SplitViewportName.TOP_VIEW) , t = e + this.getViewportWidth(i.SplitViewportName.DEFAULT_VIEW); this.renderer.setStyle(this.element.nativeElement, "left", 100 * e / t + "%") } , e.prototype.getViewportWidth = function(e) { return this.ViewService.mainView.getViewportByName(e).screenWidth } , Object.defineProperty(e.prototype, "collapsedWidthThresholdInPixels", { get: function() { return this.element.nativeElement.offsetParent.clientWidth * this.collapseWidth / 100 }, enumerable: !0, configurable: !0 }), e.ɵfac = function(t) { return new (t || e)(s.ɵɵdirectiveInject(s.ElementRef),s.ɵɵdirectiveInject(c.ViewService),s.ɵɵdirectiveInject(s.Renderer2),s.ɵɵdirectiveInject(l.TrackingService)) } , e.ɵdir = s.ɵɵdefineDirective({ type: e, selectors: [["", "viewportResizer", ""]], hostBindings: function(e, t) { 1 & e && s.ɵɵlistener("mousedown", (function(e) { return t.onMouseDown(e) } ))("touchstart", (function(e) { return t.onTouchStart(e) } ))("mousemove", (function(e) { return t.onMouseMove(e) } ), !1, s.ɵɵresolveDocument)("touchmove", (function(e) { return t.onTouchMove(e) } ), !1, s.ɵɵresolveDocument)("mouseup", (function(e) { return t.onMouseUp(e) } ), !1, s.ɵɵresolveDocument)("touchend", (function(e) { return t.onTouchCancel(e) } ), !1, s.ɵɵresolveDocument)("touchcancel", (function(e) { return t.onTouchCancel(e) } ), !1, s.ɵɵresolveDocument) }, inputs: { collapseWidth: "collapseWidth" } }), e }(); t.ViewportResizerDirective = u, s.ɵsetClassMetadata(u, [{ type: o.Directive, args: [{ selector: "[viewportResizer]" }] }], (function() { return [{ type: s.ElementRef }, { type: c.ViewService }, { type: s.Renderer2 }, { type: l.TrackingService }] } ), { collapseWidth: [{ type: o.Input }], onMouseDown: [{ type: o.HostListener, args: ["mousedown", ["$event"]] }], onTouchStart: [{ type: o.HostListener, args: ["touchstart", ["$event"]] }], onMouseMove: [{ type: o.HostListener, args: ["document:mousemove", ["$event"]] }], onTouchMove: [{ type: o.HostListener, args: ["document:touchmove", ["$event"]] }], onMouseUp: [{ type: o.HostListener, args: ["document:mouseup", ["$event"]] }], onTouchCancel: [{ type: o.HostListener, args: ["document:touchend", ["$event"]] }, { type: o.HostListener, args: ["document:touchcancel", ["$event"]] }] }) }, 2019: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = (n(17), n(52)) , i = n(2) , a = n(6) , s = n(0) , c = n(17) , l = function() { function e(e) { this.ViewService = e, this.arrowIcon = n(2020), this.resizerIcon = n(2021) } return e.prototype.getTopViewport = function() { return this.ViewService.mainView.getViewportByName(r.SplitViewportName.TOP_VIEW) } , e.prototype.getDefaultViewport = function() { return this.ViewService.mainView.getDefaultViewport() } , e.prototype.areMultipleViewportsActive = function() { return this.ViewService.mainView.areMultipleViewportsActive() } , e.prototype.isInTwoViewportMode = function() { return this.ViewService.mainView.isInTwoViewportMode() } , e.prototype.isInFourViewportMode = function() { return this.ViewService.mainView.isInFourViewportMode() } , e.prototype.resetTwoViewportDimensions = function() { this.ViewService.mainView.resetTwoViewportModeDimensions() } , e.prototype.isTopViewportCollapsed = function() { return this.getTopViewport().width <= .001 } , e.prototype.isDefaultViewportCollapsed = function() { return this.getDefaultViewport().width <= .001 } , e.ɵfac = function(t) { return new (t || e)(s.ɵɵdirectiveInject(c.ViewService)) } , e.ɵcmp = s.ɵɵdefineComponent({ type: e, selectors: [["viewport-resizer-component"]], decls: 15, vars: 7, consts: [["id", "viewport-resizer", "viewportResizer", "", 1, "viewport-resizer", "left", 3, "collapseWidth"], [3, "hidden"], [1, "vertical-viewport-separator", "resizeable"], [1, "btn-resizer"], ["alt", "resizer_icon", 3, "src"], [1, "uncollapse-btn", "left", 3, "hidden", "click"], [1, "uncollapse-button-text"], [1, "button-padding-left", "arrow"], ["alt", "arrow_icon", 3, "src"], [1, "uncollapse-btn", "right", 3, "hidden", "click"], [1, "arrow", "mirrored"], [1, "uncollapse-button-text", "button-padding-left"]], template: function(e, t) { 1 & e && (s.ɵɵelementStart(0, "div", 0), s.ɵɵelementStart(1, "div", 1), s.ɵɵelementStart(2, "div", 2), s.ɵɵelementStart(3, "div", 3), s.ɵɵelement(4, "img", 4), s.ɵɵelementEnd(), s.ɵɵelementEnd(), s.ɵɵelementEnd(), s.ɵɵelementStart(5, "div", 5), s.ɵɵlistener("click", (function() { return t.resetTwoViewportDimensions() } )), s.ɵɵelementStart(6, "div", 6), s.ɵɵtext(7, " 2D "), s.ɵɵelementEnd(), s.ɵɵelementStart(8, "div", 7), s.ɵɵelement(9, "img", 8), s.ɵɵelementEnd(), s.ɵɵelementEnd(), s.ɵɵelementStart(10, "div", 9), s.ɵɵlistener("click", (function() { return t.resetTwoViewportDimensions() } )), s.ɵɵelementStart(11, "div", 10), s.ɵɵelement(12, "img", 8), s.ɵɵelementEnd(), s.ɵɵelementStart(13, "div", 11), s.ɵɵtext(14, " 3D "), s.ɵɵelementEnd(), s.ɵɵelementEnd(), s.ɵɵelementEnd()), 2 & e && (s.ɵɵproperty("collapseWidth", 20), s.ɵɵadvance(1), s.ɵɵproperty("hidden", !t.areMultipleViewportsActive() || !t.isInTwoViewportMode()), s.ɵɵadvance(3), s.ɵɵproperty("src", t.resizerIcon, s.ɵɵsanitizeUrl), s.ɵɵadvance(1), s.ɵɵproperty("hidden", !t.isTopViewportCollapsed()), s.ɵɵadvance(4), s.ɵɵproperty("src", t.arrowIcon, s.ɵɵsanitizeUrl), s.ɵɵadvance(1), s.ɵɵproperty("hidden", !t.isDefaultViewportCollapsed()), s.ɵɵadvance(2), s.ɵɵproperty("src", t.arrowIcon, s.ɵɵsanitizeUrl)) }, styles: [".vertical-viewport-separator[_ngcontent-%COMP%]{left:calc(50% - 3px);width:3px;height:100%}.vertical-viewport-separator.resizeable[_ngcontent-%COMP%]{position:absolute;background:#fff}.btn-resizer[_ngcontent-%COMP%]{transform:translateX(-50%);position:absolute;left:1.5px;bottom:6%}.viewport-resizer[_ngcontent-%COMP%]{cursor:ew-resize;position:absolute;height:100%}.uncollapse-button-text[_ngcontent-%COMP%]{font-family:Open Sans,sans-serif;font-style:normal;font-weight:400;font-size:40px;width:56px;color:#f8f7fa;text-shadow:0 0 2px rgba(0,0,0,.5)}.uncollapse-btn[_ngcontent-%COMP%]{bottom:6%;position:absolute;width:79px;display:flex;align-items:center;line-height:95.62%;cursor:pointer}.uncollapse-btn.right[_ngcontent-%COMP%]{right:10px}.uncollapse-btn.left[_ngcontent-%COMP%]{left:10px}.button-padding-left[_ngcontent-%COMP%]{padding-left:.15em}.arrow[_ngcontent-%COMP%]{vertical-align:top}.arrow.mirrored[_ngcontent-%COMP%]{transform:rotate(-180deg)}[hidden][_ngcontent-%COMP%]{display:none!important}"] }), e }(); t.ViewportResizerComponent = l, s.ɵsetClassMetadata(l, [{ type: o.Component, args: [{ selector: "viewport-resizer-component", templateUrl: "./ViewportResizer.ng.html", styleUrls: ["./ViewportResizer.ng.scss"] }] }], (function() { return [{ type: c.ViewService }] } ), null), i.module("IVWebApp").directive("viewportResizerComponent", a.downgradeComponent({ component: l })) }, 2020: function(e, t, n) { e.exports = n.p + "img/icon/icon_location_n.png" }, 2021: function(e, t, n) { e.exports = n.p + "977b9b3bb5dfdf2f2342f38c46f64a75.resizer.svg" }, 2022: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = n(2) , i = n(6) , a = (n(120), n(232), n(348)) , s = n(0) , c = n(120) , l = n(3); function u(e, t) { 1 & e && (s.ɵɵelementStart(0, "div"), s.ɵɵprojection(1), s.ɵɵelementEnd()) } var p = ["*"] , d = function() { function e(e) { this.featureFlagsService = e, this.featureEnabled = !1 } return e.prototype.ngOnInit = function() { var e = this; this.featureFlagsService.isEnabled(this.feature).then((function() { e.featureEnabled = !0 } )).catch(a.handleDisabledFeature) } , e.ɵfac = function(t) { return new (t || e)(s.ɵɵdirectiveInject(c.FeatureFlagsService)) } , e.ɵcmp = s.ɵɵdefineComponent({ type: e, selectors: [["feature-flag-component"]], inputs: { feature: "feature" }, ngContentSelectors: p, decls: 1, vars: 1, consts: [[4, "ngIf"]], template: function(e, t) { 1 & e && (s.ɵɵprojectionDef(), s.ɵɵtemplate(0, u, 2, 0, "div", 0)), 2 & e && s.ɵɵproperty("ngIf", t.featureEnabled) }, directives: [l.NgIf], encapsulation: 2 }), e }(); t.FeatureFlagComponent = d, s.ɵsetClassMetadata(d, [{ type: o.Component, args: [{ selector: "feature-flag-component", templateUrl: "./FeatureFlagComponent.ng.html" }] }], (function() { return [{ type: c.FeatureFlagsService }] } ), { feature: [{ type: o.Input }] }), r.module("IVWebApp").directive("featureFlagComponent", i.downgradeComponent({ component: d })) }, 2024: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(168) , r = n(0) , i = n(129) , a = (n(9), n(0)) , s = n(9) , c = function() { function e(e) { this.RestService = e } return e.prototype.getTranslation = function(e) { var t = "translations/json/" + e + ".json" , n = this.RestService.authorizedHttpRequest({ url: t }); return i.from(n) } , e.ɵfac = function(t) { return new (t || e)(a.ɵɵinject(s.RestService)) } , e.ɵprov = a.ɵɵdefineInjectable({ token: e, factory: e.ɵfac, providedIn: "root" }), e }(); t.HttpLoader = c, a.ɵsetClassMetadata(c, [{ type: r.Injectable, args: [{ providedIn: "root" }] }], (function() { return [{ type: s.RestService }] } ), null), t.translocoLoader = { provide: o.TRANSLOCO_LOADER, useClass: c } }, 2025: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = n(210) , i = n(0) , a = function() { function e() {} return e.prototype.intercept = function(e, t) { var n = e.clone({ url: r.makeUrlAbsolute(e.url) }); return t.handle(n) } , e.ɵfac = function(t) { return new (t || e) } , e.ɵprov = i.ɵɵdefineInjectable({ token: e, factory: e.ɵfac, providedIn: "root" }), e }(); t.RedirectBaseUrl = a, i.ɵsetClassMetadata(a, [{ type: o.Injectable, args: [{ providedIn: "root" }] }], null, null) }, 2026: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), n(2027); var o = n(0) , r = n(2) , i = n(6) , a = (n(17), n(1868)) , s = (n(65), n(1898)) , c = n(0) , l = n(17) , u = n(65) , p = n(624) , d = function() { function e(e, t) { var n = this; this.ViewService = e, this.ViewMenuService = t, this.config = new a.MeshLoaderConfig, this.callback = function() { return n.update() } , this.update(), this.ViewMenuService.onShowMeshesChanged.connect(this.callback) } return e.prototype.ngOnDestroy = function() { this.ViewMenuService.onShowMeshesChanged.disconnect(this.callback) } , e.prototype.reloadLayer = function() { this.layer && this.layer.reload(this.maxGPULoads, this.showBBoxThree, this.showBBoxGLTF) } , e.prototype.getMeshLayer = function() { return this.ViewService.mainView.getLayer(s.MeshLayer) } , e.prototype.update = function() { var e = this.getMeshLayer(); e && (this.layer = e, this.config = this.layer.loaderConfig, this.showBBoxThree = this.layer.showBBoxThree, this.showBBoxGLTF = this.layer.showBBoxGLTF, this.maxGPULoads = this.layer.maxGPULoads) } , e.ɵfac = function(t) { return new (t || e)(c.ɵɵdirectiveInject(l.ViewService),c.ɵɵdirectiveInject(u.ViewMenuService)) } , e.ɵcmp = c.ɵɵdefineComponent({ type: e, selectors: [["mesh-menu-panel-component"]], decls: 44, vars: 8, consts: [[1, "panel", "mesh-menu"], [1, "panel-body"], [1, "row"], [1, "col-xs-8", "align-text"], [1, "col-xs-4", "align-textbox"], ["type", "number", "min", "1", "max", "100", "step", "1", 1, "form-control", 3, "ngModel", "ngModelChange", "blur"], ["type", "number", "min", "1", "step", "1", 1, "form-control", 3, "ngModel", "ngModelChange", "blur"], ["title", "If current LOD is bigger or smaller than the supported range, the highest available resolution [0] is selected.", 1, "col-xs-4", "align-textbox"], ["type", "number", "min", "0", "step", "1", 1, "form-control", 3, "ngModel", "ngModelChange", "blur"], [1, "col-xs-12", "align-textbox"], [1, "checkbox"], ["type", "checkbox", 3, "ngModel", "ngModelChange", "change"]], template: function(e, t) { 1 & e && (c.ɵɵelementStart(0, "div", 0), c.ɵɵelementStart(1, "div", 1), c.ɵɵelementStart(2, "div", 2), c.ɵɵelementStart(3, "div", 3), c.ɵɵtext(4, " Max distance "), c.ɵɵelementEnd(), c.ɵɵelementStart(5, "div", 4), c.ɵɵelementStart(6, "input", 5), c.ɵɵlistener("ngModelChange", (function(e) { return t.config.maxDistance = e } ))("blur", (function() { return t.reloadLayer() } )), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementStart(7, "div", 2), c.ɵɵelementStart(8, "div", 3), c.ɵɵtext(9, " Max Load Requests "), c.ɵɵelementEnd(), c.ɵɵelementStart(10, "div", 4), c.ɵɵelementStart(11, "input", 5), c.ɵɵlistener("ngModelChange", (function(e) { return t.config.maxLoadRequests = e } ))("blur", (function() { return t.reloadLayer() } )), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementStart(12, "div", 2), c.ɵɵelementStart(13, "div", 3), c.ɵɵtext(14, " Vertex Budget "), c.ɵɵelementEnd(), c.ɵɵelementStart(15, "div", 4), c.ɵɵelementStart(16, "input", 6), c.ɵɵlistener("ngModelChange", (function(e) { return t.config.vertexBudget = e } ))("blur", (function() { return t.reloadLayer() } )), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementStart(17, "div", 2), c.ɵɵelementStart(18, "div", 3), c.ɵɵtext(19, " Textures level of detail "), c.ɵɵelementEnd(), c.ɵɵelementStart(20, "div", 7), c.ɵɵelementStart(21, "input", 8), c.ɵɵlistener("ngModelChange", (function(e) { return t.config.lod = e } ))("blur", (function() { return t.reloadLayer() } )), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementStart(22, "div", 2), c.ɵɵelementStart(23, "div", 3), c.ɵɵtext(24, " Max GPU Loads "), c.ɵɵelementEnd(), c.ɵɵelementStart(25, "div", 4), c.ɵɵelementStart(26, "input", 6), c.ɵɵlistener("ngModelChange", (function(e) { return t.maxGPULoads = e } ))("blur", (function() { return t.reloadLayer() } )), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementStart(27, "div", 2), c.ɵɵelementStart(28, "div", 9), c.ɵɵelementStart(29, "div", 10), c.ɵɵelementStart(30, "label"), c.ɵɵelementStart(31, "input", 11), c.ɵɵlistener("ngModelChange", (function(e) { return t.config.showWireframe = e } ))("change", (function() { return t.reloadLayer() } )), c.ɵɵelementEnd(), c.ɵɵelementStart(32, "span"), c.ɵɵtext(33, "Show wireframe"), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementStart(34, "div", 10), c.ɵɵelementStart(35, "label"), c.ɵɵelementStart(36, "input", 11), c.ɵɵlistener("ngModelChange", (function(e) { return t.showBBoxThree = e } ))("change", (function() { return t.reloadLayer() } )), c.ɵɵelementEnd(), c.ɵɵelementStart(37, "span"), c.ɵɵtext(38, "Show Three bounding boxes"), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementStart(39, "div", 10), c.ɵɵelementStart(40, "label"), c.ɵɵelementStart(41, "input", 11), c.ɵɵlistener("ngModelChange", (function(e) { return t.showBBoxGLTF = e } ))("change", (function() { return t.reloadLayer() } )), c.ɵɵelementEnd(), c.ɵɵelementStart(42, "span"), c.ɵɵtext(43, "Show GLTF bounding boxes"), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd(), c.ɵɵelementEnd()), 2 & e && (c.ɵɵadvance(6), c.ɵɵproperty("ngModel", t.config.maxDistance), c.ɵɵadvance(5), c.ɵɵproperty("ngModel", t.config.maxLoadRequests), c.ɵɵadvance(5), c.ɵɵproperty("ngModel", t.config.vertexBudget), c.ɵɵadvance(5), c.ɵɵproperty("ngModel", t.config.lod), c.ɵɵadvance(5), c.ɵɵproperty("ngModel", t.maxGPULoads), c.ɵɵadvance(5), c.ɵɵproperty("ngModel", t.config.showWireframe), c.ɵɵadvance(5), c.ɵɵproperty("ngModel", t.showBBoxThree), c.ɵɵadvance(5), c.ɵɵproperty("ngModel", t.showBBoxGLTF)) }, directives: [p.NumberValueAccessor, p.DefaultValueAccessor, p.NgControlStatus, p.NgModel, p.CheckboxControlValueAccessor], encapsulation: 2 }), e }(); t.MeshMenuPanelComponent = d, c.ɵsetClassMetadata(d, [{ type: o.Component, args: [{ selector: "mesh-menu-panel-component", templateUrl: "MeshMenuPanel.ng.html" }] }], (function() { return [{ type: l.ViewService }, { type: u.ViewMenuService }] } ), null), r.module("IVWebApp").directive("meshMenuPanelComponent", i.downgradeComponent({ component: d })) }, 2027: function(e, t, n) { "use strict"; n.r(t), t.default = '
\n\t
\n\t\t
\n\t\t\t
\n\t\t\t\tMax distance\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\tMax Load Requests\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\tVertex Budget\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\tTextures level of detail\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\tMax GPU Loads\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
\n
\n' }, 2028: function(e, t, n) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }); var o = n(0) , r = n(3) , i = n(440) , a = n(625) , s = n(1932) , c = n(1933) , l = n(168) , u = n(1707) , p = n(1709) , d = n(0) , h = function() { function e() {} return e.ɵmod = d.ɵɵdefineNgModule({ type: e }), e.ɵinj = d.ɵɵdefineInjector({ factory: function(t) { return new (t || e) }, imports: [[r.CommonModule, i.MatDialogModule, a.MatButtonModule, l.TranslocoModule, u.FlexModule, p.MatIconModule]] }), e }(); t.WelcomeScreenModule = h, ("undefined" == typeof ngJitMode || ngJitMode) && d.ɵɵsetNgModuleScope(h, { declarations: [s.PaaSWelcomeScreenComponent, c.WelcomeScreenSelectorComponent], imports: [r.CommonModule, i.MatDialogModule, a.MatButtonModule, l.TranslocoModule, u.FlexModule, p.MatIconModule], exports: [c.WelcomeScreenSelectorComponent] }), d.ɵsetClassMetadata(h, [{ type: o.NgModule, args: [{ imports: [r.CommonModule, i.MatDialogModule, a.MatButtonModule, l.TranslocoModule, u.FlexModule, p.MatIconModule], declarations: [s.PaaSWelcomeScreenComponent, c.WelcomeScreenSelectorComponent], exports: [c.WelcomeScreenSelectorComponent], entryComponents: [s.PaaSWelcomeScreenComponent] }] }], null, null) }, 2029: function(e, t, n) { e.exports = n.p + "678dc7d72936df2358a0b6144debaebe.add_data.svg" }, 2030: function(e, t, n) { e.exports = n.p + "11c934dfaddeb028b9f20373e4ff048d.upload_process.svg" } }]);