(window.webpackJsonpNVIV = window.webpackJsonpNVIV || []).push([[17], {
    1674: function(e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var o = n(0)
          , r = n(2048)
          , i = n(1887)
          , a = n(1939)
          , s = n(1938)
          , l = n(1940)
          , c = n(1941)
          , u = n(3)
          , p = n(1942)
          , d = n(168)
          , m = n(1711)
          , g = n(1943)
          , f = n(440)
          , v = n(625)
          , h = n(1707)
          , M = n(1908)
          , C = n(1861)
          , x = n(1709)
          , y = n(0)
          , S = function() {
            function e() {}
            return e.ɵmod = y.ɵɵdefineNgModule({
                type: e
            }),
            e.ɵinj = y.ɵɵdefineInjector({
                factory: function(t) {
                    return new (t || e)
                },
                providers: [{
                    provide: i.MEASUREMENTS_COMPONENT,
                    useValue: r.MeasurementsComponent
                }],
                imports: [[u.CommonModule, d.TranslocoModule, m.SharedModule, f.MatDialogModule, v.MatButtonModule, h.FlexModule, x.MatIconModule, C.MatProgressSpinnerModule]]
            }),
            e
        }();
        t.MeasurementsModule = S,
        ("undefined" == typeof ngJitMode || ngJitMode) && y.ɵɵsetNgModuleScope(S, {
            declarations: [r.MeasurementsComponent, s.MeasurementToolSelectionComponent, a.MeasurementToolComponent, l.MeasurementListComponent, c.MeasurementListToolbarComponent, p.MeasurementDetailsComponent, g.DepthMapWarnButtonComponent, g.DepthMapWarnButtonComponent, M.MeasurementExportModalComponent],
            imports: [u.CommonModule, d.TranslocoModule, m.SharedModule, f.MatDialogModule, v.MatButtonModule, h.FlexModule, x.MatIconModule, C.MatProgressSpinnerModule]
        }),
        y.ɵsetClassMetadata(S, [{
            type: o.NgModule,
            args: [{
                imports: [u.CommonModule, d.TranslocoModule, m.SharedModule, f.MatDialogModule, v.MatButtonModule, h.FlexModule, x.MatIconModule, C.MatProgressSpinnerModule],
                declarations: [r.MeasurementsComponent, s.MeasurementToolSelectionComponent, a.MeasurementToolComponent, l.MeasurementListComponent, c.MeasurementListToolbarComponent, p.MeasurementDetailsComponent, g.DepthMapWarnButtonComponent, g.DepthMapWarnButtonComponent, M.MeasurementExportModalComponent],
                entryComponents: [r.MeasurementsComponent],
                providers: [{
                    provide: i.MEASUREMENTS_COMPONENT,
                    useValue: r.MeasurementsComponent
                }]
            }]
        }], null, null)
    },
    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), l = n(625), c = n(1707), u = n(0), p = n(440), d = n(3), m = n(1689), g = n(625);
        function f(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 v(e, t) {
            1 & e && u.ɵɵelementContainer(0)
        }
        function h(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 M(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 C(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 x = 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, f, 2, 1, "p", 1),
                    u.ɵɵtemplate(4, v, 1, 0, "ng-container", 2),
                    u.ɵɵelementEnd(),
                    u.ɵɵelementStart(5, "mat-dialog-actions"),
                    u.ɵɵtemplate(6, h, 2, 1, "button", 3),
                    u.ɵɵelement(7, "div", 4),
                    u.ɵɵtemplate(8, M, 2, 1, "button", 3),
                    u.ɵɵtemplate(9, C, 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, m.DefaultFlexDirective, g.MatButton],
                encapsulation: 2
            }),
            e
        }();
        t.AlertDialogComponent = x,
        u.ɵsetClassMetadata(x, [{
            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 y = function() {
            function e() {}
            return e.ɵmod = u.ɵɵdefineNgModule({
                type: e
            }),
            e.ɵinj = u.ɵɵdefineInjector({
                factory: function(t) {
                    return new (t || e)
                },
                imports: [[s.CommonModule, c.FlexLayoutModule, a.MatDialogModule, l.MatButtonModule]]
            }),
            e
        }();
        t.AlertDialogModule = y,
        ("undefined" == typeof ngJitMode || ngJitMode) && u.ɵɵsetNgModuleScope(y, {
            declarations: [x],
            imports: [s.CommonModule, c.FlexLayoutModule, a.MatDialogModule, l.MatButtonModule],
            exports: [x]
        }),
        u.ɵsetClassMetadata(y, [{
            type: r.NgModule,
            args: [{
                imports: [s.CommonModule, c.FlexLayoutModule, a.MatDialogModule, l.MatButtonModule],
                declarations: [x],
                exports: [x]
            }]
        }], 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)
          , l = n(0)
          , c = 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)(l.ɵɵdirectiveInject(l.ElementRef))
            }
            ,
            e.ɵcmp = l.ɵɵdefineComponent({
                type: e,
                selectors: [["toggle-switch"]],
                inputs: {
                    title: "title",
                    value: "value"
                },
                outputs: {
                    valueChange: "valueChange"
                },
                features: [l.ɵɵ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 && (l.ɵɵelementStart(0, "label", 0),
                    l.ɵɵelementStart(1, "input", 1),
                    l.ɵɵlistener("click", (function() {
                        return t.onInputTouched()
                    }
                    )),
                    l.ɵɵelementEnd(),
                    l.ɵɵelement(2, "span", 2),
                    l.ɵɵelementEnd()),
                    2 & e && (l.ɵɵproperty("title", t.title),
                    l.ɵɵadvance(1),
                    l.ɵɵ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 = c,
        l.ɵsetClassMetadata(c, [{
            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 c
                    }
                    )),
                    multi: !0
                }]
            }]
        }], (function() {
            return [{
                type: l.ElementRef
            }]
        }
        ), {
            title: [{
                type: o.Input
            }],
            value: [{
                type: o.Input
            }],
            valueChange: [{
                type: o.Output
            }]
        }),
        i.module("IVWebApp").directive("toggleSwitch", a.downgradeComponent({
            component: c
        }));
        var u = function() {
            function e() {}
            return e.ɵmod = l.ɵɵdefineNgModule({
                type: e
            }),
            e.ɵinj = l.ɵɵdefineInjector({
                factory: function(t) {
                    return new (t || e)
                },
                imports: [[s.CommonModule]]
            }),
            e
        }();
        t.ToggleSwitchModule = u,
        ("undefined" == typeof ngJitMode || ngJitMode) && l.ɵɵsetNgModuleScope(u, {
            declarations: [c],
            imports: [s.CommonModule],
            exports: [c]
        }),
        l.ɵsetClassMetadata(u, [{
            type: o.NgModule,
            args: [{
                imports: [s.CommonModule],
                declarations: [c],
                exports: [c]
            }]
        }], 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)
          , l = n(1697)
          , c = 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, l.ToggleSwitchModule, c.AlertDialogModule]]
            }),
            e
        }();
        t.SharedModule = d,
        ("undefined" == typeof ngJitMode || ngJitMode) && p.ɵɵsetNgModuleScope(d, {
            declarations: [r.AddBaseUrlDirective, s.RedirectFocusToMainViewDirective, a.UoMPipe, u.ZoomControlComponent],
            imports: [i.CommonModule, l.ToggleSwitchModule, c.AlertDialogModule],
            exports: [r.AddBaseUrlDirective, s.RedirectFocusToMainViewDirective, a.UoMPipe, u.ZoomControlComponent]
        }),
        p.ɵsetClassMetadata(d, [{
            type: o.NgModule,
            args: [{
                imports: [i.CommonModule, l.ToggleSwitchModule, c.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)
    },
    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)
          , l = n(1693)
          , c = 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)(c.ɵɵdirectiveInject(c.NgModuleFactoryLoader),c.ɵɵdirectiveInject(c.Injector),c.ɵɵdirectiveInject(c.ViewContainerRef))
            }
            ,
            n.ɵcmp = c.ɵɵdefineComponent({
                type: n,
                selectors: [["measurements-lazy"]],
                features: [c.ɵɵInheritDefinitionFeature],
                decls: 0,
                vars: 0,
                template: function(e, t) {},
                encapsulation: 2
            }),
            n
        }(l.AbstractLazyComponent);
        t.MeasurementsLazyComponent = u,
        c.ɵsetClassMetadata(u, [{
            type: i.Component,
            args: [{
                selector: "measurements-lazy",
                template: ""
            }]
        }], (function() {
            return [{
                type: c.NgModuleFactoryLoader
            }, {
                type: c.Injector
            }, {
                type: c.ViewContainerRef
            }]
        }
        ), null),
        a.module("IVWebApp").directive("measurementsLazy", s.downgradeComponent({
            component: u
        }))
    },
    1908: function(e, t, n) {
        "use strict";
        (function(e) {
            Object.defineProperty(t, "__esModule", {
                value: !0
            });
            var o = n(0)
              , r = n(168)
              , i = n(85)
              , a = (n(626),
            n(440),
            n(641),
            n(107))
              , s = n(8)
              , l = n(0)
              , c = n(440)
              , u = n(626)
              , p = n(168)
              , d = n(3)
              , m = n(625)
              , g = n(1692)
              , f = n(1709)
              , v = n(1861)
              , h = n(1700)
              , M = ["exportableMeasurementsDialog"];
            function C(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "span"),
                l.ɵɵtext(1),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext(3).$implicit;
                    l.ɵɵadvance(1),
                    l.ɵɵtextInterpolate1("", n("Import all measurements"), ": ")
                }
            }
            function x(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "a", 15),
                l.ɵɵtext(1),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext(4);
                    l.ɵɵproperty("href", n.exportAllMeasurementLink.value, l.ɵɵsanitizeUrl),
                    l.ɵɵadvance(1),
                    l.ɵɵtextInterpolate(n.exportAllMeasurementLink.value)
                }
            }
            function y(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "span"),
                l.ɵɵtext(1),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext(3).$implicit;
                    l.ɵɵadvance(1),
                    l.ɵɵtextInterpolate1(" ", n("The measurement share link to import all measurements at once could not be generated for the selected measurements because the link is too long. Please deselect some measurements and try again or use the share link of each measurement to import them separately."), "")
                }
            }
            function S(e, t) {
                if (1 & e) {
                    var n = l.ɵɵgetCurrentView();
                    l.ɵɵelementStart(0, "div", 16),
                    l.ɵɵelementStart(1, "i", 17),
                    l.ɵɵlistener("click", (function(e) {
                        l.ɵɵrestoreView(n);
                        var t = l.ɵɵnextContext(4);
                        return t.copyToClipboard(t.exportAllMeasurementLink.value, e)
                    }
                    ))("mouseout", (function(e) {
                        return l.ɵɵrestoreView(n),
                        l.ɵɵnextContext(4).removeTooltip(e)
                    }
                    )),
                    l.ɵɵtext(2, "file_copy"),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd()
                }
                if (2 & e) {
                    var o = l.ɵɵnextContext(3).$implicit;
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("title", o("Copy to clipboard"))
                }
            }
            function b(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "div", 10),
                l.ɵɵelementStart(1, "div", 11),
                l.ɵɵelementStart(2, "div", 12),
                l.ɵɵtemplate(3, C, 2, 1, "span", 9),
                l.ɵɵtemplate(4, x, 2, 2, "a", 13),
                l.ɵɵelementEnd(),
                l.ɵɵtemplate(5, y, 2, 1, "span", 9),
                l.ɵɵelementEnd(),
                l.ɵɵtemplate(6, S, 3, 1, "div", 14),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext(3);
                    l.ɵɵadvance(3),
                    l.ɵɵproperty("ngIf", n.exportAllMeasurementLink.isValidLengthForAllBrowsers),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", n.exportAllMeasurementLink.isValidLengthForAllBrowsers),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", !n.exportAllMeasurementLink.isValidLengthForAllBrowsers),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", n.exportAllMeasurementLink.isValidLengthForAllBrowsers)
                }
            }
            var E = function(e) {
                return [e, "distance", 2, .1, !0]
            };
            function w(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "span", 29),
                l.ɵɵtext(1),
                l.ɵɵpipe(2, "uom"),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext().$implicit;
                    l.ɵɵadvance(1),
                    l.ɵɵtextInterpolate1(" ", l.ɵɵpipeBindV(2, 1, l.ɵɵpureFunction1(7, E, n.measurement.value)), " ")
                }
            }
            function I(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "span", 30),
                l.ɵɵtext(1),
                l.ɵɵpipe(2, "uom"),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext().$implicit;
                    l.ɵɵadvance(1),
                    l.ɵɵtextInterpolate1(" ", l.ɵɵpipeBind2(2, 1, n.measurement.value, "area"), " ")
                }
            }
            function P(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "div", 34),
                l.ɵɵelement(1, "img", 32),
                l.ɵɵelementStart(2, "span"),
                l.ɵɵtext(3),
                l.ɵɵelementEnd(),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext(2).$implicit
                      , o = l.ɵɵnextContext(3);
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("src", o.floorIcon, l.ɵɵsanitizeUrl),
                    l.ɵɵadvance(2),
                    l.ɵɵtextInterpolate1("", n.location.floor, " ")
                }
            }
            function O(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "div", 34),
                l.ɵɵelement(1, "img", 32),
                l.ɵɵelementStart(2, "span"),
                l.ɵɵtext(3),
                l.ɵɵelementEnd(),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext(2).$implicit
                      , o = l.ɵɵnextContext(3);
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("src", o.roomIcon, l.ɵɵsanitizeUrl),
                    l.ɵɵadvance(2),
                    l.ɵɵtextInterpolate1("", n.location.room, " ")
                }
            }
            function _(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "div", 19),
                l.ɵɵelementStart(1, "div", 31),
                l.ɵɵelementStart(2, "div"),
                l.ɵɵelement(3, "img", 32),
                l.ɵɵelementStart(4, "span"),
                l.ɵɵtext(5),
                l.ɵɵelementEnd(),
                l.ɵɵelementEnd(),
                l.ɵɵtemplate(6, P, 4, 2, "div", 33),
                l.ɵɵtemplate(7, O, 4, 2, "div", 33),
                l.ɵɵelementEnd(),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext().$implicit
                      , o = l.ɵɵnextContext(3);
                    l.ɵɵadvance(3),
                    l.ɵɵproperty("src", o.buildingIcon, l.ɵɵsanitizeUrl),
                    l.ɵɵadvance(2),
                    l.ɵɵtextInterpolate1("", n.location.building, " "),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", n.location.floor),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", n.location.room)
                }
            }
            function T(e, t) {
                if (1 & e && (l.ɵɵelementStart(0, "div", 25),
                l.ɵɵelementStart(1, "div", 35),
                l.ɵɵelementStart(2, "div", 36),
                l.ɵɵtext(3),
                l.ɵɵelementEnd(),
                l.ɵɵelementEnd(),
                l.ɵɵelementEnd()),
                2 & e) {
                    var n = l.ɵɵnextContext().$implicit;
                    l.ɵɵadvance(3),
                    l.ɵɵtextInterpolate1(" ", n.measurement.note, " ")
                }
            }
            function A(e, t) {
                if (1 & e) {
                    var n = l.ɵɵgetCurrentView();
                    l.ɵɵelementStart(0, "div"),
                    l.ɵɵelementStart(1, "div", 18),
                    l.ɵɵelementStart(2, "div", 19),
                    l.ɵɵelementStart(3, "div", 20),
                    l.ɵɵtext(4),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementStart(5, "div", 21),
                    l.ɵɵtemplate(6, w, 3, 9, "span", 22),
                    l.ɵɵtemplate(7, I, 3, 4, "span", 23),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd(),
                    l.ɵɵtemplate(8, _, 8, 4, "div", 24),
                    l.ɵɵelementStart(9, "div", 25),
                    l.ɵɵelementStart(10, "div", 11),
                    l.ɵɵelementStart(11, "div", 12),
                    l.ɵɵelementStart(12, "a", 15),
                    l.ɵɵtext(13),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementStart(14, "div", 16),
                    l.ɵɵelementStart(15, "i", 17),
                    l.ɵɵlistener("click", (function(e) {
                        l.ɵɵrestoreView(n);
                        var o = t.$implicit;
                        return l.ɵɵnextContext(3).copyToClipboard(o.url.value, e)
                    }
                    ))("mouseout", (function(e) {
                        return l.ɵɵrestoreView(n),
                        l.ɵɵnextContext(3).removeTooltip(e)
                    }
                    )),
                    l.ɵɵtext(16, "file_copy"),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementStart(17, "div", 26),
                    l.ɵɵelement(18, "img", 27),
                    l.ɵɵelementEnd(),
                    l.ɵɵtemplate(19, T, 4, 1, "div", 28),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd()
                }
                if (2 & e) {
                    var o = t.$implicit
                      , r = l.ɵɵnextContext(2).$implicit
                      , i = l.ɵɵnextContext();
                    l.ɵɵadvance(4),
                    l.ɵɵtextInterpolate1(" ", o.measurement.name, " "),
                    l.ɵɵadvance(2),
                    l.ɵɵproperty("ngIf", i.isDistance(o.measurement)),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", i.isArea(o.measurement)),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", o.location),
                    l.ɵɵadvance(4),
                    l.ɵɵproperty("href", o.url.value, l.ɵɵsanitizeUrl),
                    l.ɵɵadvance(1),
                    l.ɵɵtextInterpolate(o.url.value),
                    l.ɵɵadvance(2),
                    l.ɵɵproperty("title", r("Copy to clipboard")),
                    l.ɵɵadvance(3),
                    l.ɵɵproperty("src", o.screenshot.data, l.ɵɵsanitizeUrl),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", o.measurement.note)
                }
            }
            function D(e, t) {
                1 & e && (l.ɵɵelementStart(0, "mat-icon"),
                l.ɵɵelement(1, "mat-spinner", 37),
                l.ɵɵelementEnd())
            }
            function V(e, t) {
                if (1 & e) {
                    var n = l.ɵɵgetCurrentView();
                    l.ɵɵelementStart(0, "h4", 2),
                    l.ɵɵtext(1),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementStart(2, "mat-dialog-content"),
                    l.ɵɵelementStart(3, "div", 3),
                    l.ɵɵtemplate(4, b, 7, 4, "div", 4),
                    l.ɵɵtemplate(5, A, 20, 9, "div", 5),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementStart(6, "mat-dialog-actions", 6),
                    l.ɵɵelementStart(7, "button", 7),
                    l.ɵɵtext(8),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementStart(9, "button", 8),
                    l.ɵɵlistener("click", (function() {
                        return l.ɵɵrestoreView(n),
                        l.ɵɵnextContext(2).exportPdf()
                    }
                    )),
                    l.ɵɵtext(10),
                    l.ɵɵtemplate(11, D, 2, 0, "mat-icon", 9),
                    l.ɵɵelementEnd(),
                    l.ɵɵelementEnd()
                }
                if (2 & e) {
                    var o = l.ɵɵnextContext().$implicit
                      , r = l.ɵɵnextContext();
                    l.ɵɵadvance(1),
                    l.ɵɵtextInterpolate(o("Export Measurements")),
                    l.ɵɵadvance(3),
                    l.ɵɵproperty("ngIf", r.exportMeasurementList && r.exportMeasurementList.length > 1),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngForOf", r.exportMeasurementList),
                    l.ɵɵadvance(3),
                    l.ɵɵtextInterpolate(o("Cancel")),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("disabled", r.isPdfExportInProgress),
                    l.ɵɵadvance(1),
                    l.ɵɵtextInterpolate1(" ", o("Export as PDF"), " "),
                    l.ɵɵadvance(1),
                    l.ɵɵproperty("ngIf", r.isPdfExportInProgress)
                }
            }
            function k(e, t) {
                1 & e && (l.ɵɵelementContainerStart(0),
                l.ɵɵtemplate(1, V, 12, 7, "ng-template", null, 1, l.ɵɵtemplateRefExtractor),
                l.ɵɵelementContainerEnd())
            }
            var R = function() {
                function t(e, t) {
                    this.MatDialog = e,
                    this.MeasurementPdfExportService = t,
                    this.isPdfExportInProgress = !1,
                    this.buildingIcon = n(633),
                    this.roomIcon = n(635),
                    this.floorIcon = n(634)
                }
                return t.prototype.copyToClipboard = function(t, n) {
                    var o = document.createElement("textarea");
                    o.style.position = "fixed",
                    o.style.left = "0",
                    o.style.opacity = "0",
                    o.style.top = "0",
                    o.innerText = t,
                    document.body.appendChild(o),
                    o.focus(),
                    o.select(),
                    document.execCommand("copy"),
                    document.body.removeChild(o),
                    e(n.target).attr("title", r.translate("Copied link to clipboard")).tooltip("show")
                }
                ,
                t.prototype.showModal = function() {
                    this.MatDialog.open(this.exportModal, {
                        panelClass: "modal-lg"
                    })
                }
                ,
                t.prototype.exportPdf = function() {
                    var e = this;
                    this.isPdfExportInProgress = !0;
                    var t = this.exportAllMeasurementLink.isValidLengthForAllBrowsers ? this.exportAllMeasurementLink.value : "";
                    a.promiseFinally(this.MeasurementPdfExportService.exportMeasurements(this.exportMeasurementList, t), (function() {
                        return e.isPdfExportInProgress = !1
                    }
                    )).catch(s.handleWarning)
                }
                ,
                t.prototype.isArea = function(e) {
                    return i.ToolSpec.of(e.type).type === i.ToolType.AREA
                }
                ,
                t.prototype.isDistance = function(e) {
                    return i.ToolSpec.of(e.type).type === i.ToolType.DISTANCE
                }
                ,
                t.prototype.removeTooltip = function(t) {
                    e(t.target).tooltip("destroy"),
                    e(t.target).attr("title", r.translate("Copy to clipboard"))
                }
                ,
                t.ɵfac = function(e) {
                    return new (e || t)(l.ɵɵdirectiveInject(c.MatDialog),l.ɵɵdirectiveInject(u.MeasurementPdfExportService))
                }
                ,
                t.ɵcmp = l.ɵɵdefineComponent({
                    type: t,
                    selectors: [["measurement-export"]],
                    viewQuery: function(e, t) {
                        var n;
                        (1 & e && l.ɵɵviewQuery(M, !0),
                        2 & e) && (l.ɵɵqueryRefresh(n = l.ɵɵloadQuery()) && (t.exportModal = n.first))
                    },
                    inputs: {
                        exportAllMeasurementLink: "exportAllMeasurementLink",
                        exportMeasurementList: "exportMeasurementList"
                    },
                    decls: 1,
                    vars: 0,
                    consts: [[4, "transloco"], ["exportableMeasurementsDialog", ""], ["mat-dialog-title", ""], [1, "body-container"], ["class", "flex-row padding-top-custom", 4, "ngIf"], [4, "ngFor", "ngForOf"], ["align", "end"], ["mat-flat-button", "", "mat-dialog-close", ""], ["mat-flat-button", "", "color", "primary", 3, "disabled", "click"], [4, "ngIf"], [1, "flex-row", "padding-top-custom"], [1, "flex-column-90"], [1, "link-ellipses"], [3, "href", 4, "ngIf"], ["class", "flex-column-no-left-padding", 4, "ngIf"], [3, "href"], [1, "flex-column-no-left-padding"], [1, "material-icons", "icn-small", "clickable", 3, "title", "click", "mouseout"], [1, "measurement-container"], [1, "flex-row", "padding-left"], [1, "subtitle"], [1, "flex-right", "subtitle"], ["class", "measurement-value-distance", 4, "ngIf"], ["class", "measurement-value-area", 4, "ngIf"], ["class", "flex-row padding-left", 4, "ngIf"], [1, "flex-row", "padding-top-sm"], [1, "flex-row", "padding-left", "padding-top-custom"], [1, "screenshot", 3, "src"], ["class", "flex-row padding-top-sm", 4, "ngIf"], [1, "measurement-value-distance"], [1, "measurement-value-area"], [1, "location"], [1, "location-icn", 3, "src"], ["class", "padding-left", 4, "ngIf"], [1, "padding-left"], [1, "flex-column"], [1, "note"], ["color", "accent", "diameter", "20"]],
                    template: function(e, t) {
                        1 & e && l.ɵɵtemplate(0, k, 3, 0, "ng-container", 0)
                    },
                    directives: [p.TranslocoDirective, c.MatDialogTitle, c.MatDialogContent, d.NgIf, d.NgForOf, c.MatDialogActions, m.MatButton, c.MatDialogClose, g.AddBaseUrlDirective, f.MatIcon, v.MatSpinner],
                    pipes: [h.UoMPipe],
                    styles: [".z-index-1[_ngcontent-%COMP%]{box-shadow:none;position:relative;z-index:1}.z-index-2[_ngcontent-%COMP%]{box-shadow:0 1.5px 4px rgba(0,0,0,.24),0 1.5px 6px rgba(0,0,0,.12);position:relative;z-index:5}.z-index-3[_ngcontent-%COMP%]{box-shadow:0 3px 12px rgba(0,0,0,.23),0 3px 12px rgba(0,0,0,.16);position:relative;z-index:10}.z-index-4[_ngcontent-%COMP%]{box-shadow:0 6px 12px rgba(0,0,0,.23),0 10px 40px rgba(0,0,0,.19);position:relative;z-index:15}.z-index-5[_ngcontent-%COMP%]{box-shadow:0 10px 20px rgba(0,0,0,.22),0 14px 56px rgba(0,0,0,.25);position:relative;z-index:20}.front-element[_ngcontent-%COMP%]{z-index:1031}.full-window[_ngcontent-%COMP%]{position:fixed;margin:0;padding:0;left:0;right:0;top:0;bottom:0;z-index:1029;border-radius:0}.full-window-scroll[_ngcontent-%COMP%]{max-height:100vh}.full-window-scroll[_ngcontent-%COMP%], .panel-autoscroll[_ngcontent-%COMP%]{overflow-y:auto;-webkit-overflow-scrolling:touch}.panel-autoscroll[_ngcontent-%COMP%]{max-height:80vh}.autoscroll[_ngcontent-%COMP%]{overflow-y:auto;-webkit-overflow-scrolling:touch}.fixed-top-right[_ngcontent-%COMP%]{position:fixed;top:10px;right:0}.center-vertical[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%)}.float-left[_ngcontent-%COMP%]{float:left}.float-right[_ngcontent-%COMP%]{float:right}.margin-top-small[_ngcontent-%COMP%]{margin-top:5px!important}.margin-left-small[_ngcontent-%COMP%]{margin-left:5px!important}.margin-right-small[_ngcontent-%COMP%]{margin-right:5px!important}.margin-bottom-small[_ngcontent-%COMP%]{margin-bottom:5px!important}.margin-top[_ngcontent-%COMP%]{margin-top:15px!important}.margin-left[_ngcontent-%COMP%]{margin-left:15px!important}.margin-right[_ngcontent-%COMP%]{margin-right:15px!important}.margin-bottom[_ngcontent-%COMP%]{margin-bottom:15px!important}.margin-top-big[_ngcontent-%COMP%]{margin-top:25px!important}.margin-bottom-big[_ngcontent-%COMP%]{margin-bottom:25px!important}.no-margin[_ngcontent-%COMP%]{margin:0!important}.no-margin-bottom[_ngcontent-%COMP%]{margin-bottom:0!important}.padding-horizontal[_ngcontent-%COMP%]{padding-left:15px!important;padding-right:15px!important}.padding-top[_ngcontent-%COMP%], .padding-vertical[_ngcontent-%COMP%]{padding-top:15px!important}.padding-bottom[_ngcontent-%COMP%], .padding-vertical[_ngcontent-%COMP%], .screenshot[_ngcontent-%COMP%]{padding-bottom:15px!important}.no-padding-top[_ngcontent-%COMP%]{padding-top:0!important}.no-padding-bottom[_ngcontent-%COMP%]{padding-bottom:0!important}.no-padding-horizontal[_ngcontent-%COMP%], .no-padding-left[_ngcontent-%COMP%]{padding-left:0!important}.no-padding-horizontal[_ngcontent-%COMP%], .no-padding-right[_ngcontent-%COMP%]{padding-right:0!important}.no-padding[_ngcontent-%COMP%]{padding:0!important}.border[_ngcontent-%COMP%]{border:1px solid #e6e6e6}.border-top[_ngcontent-%COMP%]{border-top:1px solid #e6e6e6}.border-bottom[_ngcontent-%COMP%]{border-bottom:1px solid #e6e6e6}.border-left[_ngcontent-%COMP%]{border-left:1px solid #e6e6e6}.border-right[_ngcontent-%COMP%]{border-right:1px solid #e6e6e6}.no-border[_ngcontent-%COMP%]{border:none;border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.no-border-width[_ngcontent-%COMP%]{border:none}.border-radius[_ngcontent-%COMP%]{border-bottom-right-radius:4px!important;border-bottom-left-radius:4px!important}.border-radius[_ngcontent-%COMP%], .border-radius-top[_ngcontent-%COMP%]{border-top-left-radius:4px!important;border-top-right-radius:4px!important}.border-radius-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:4px!important;border-bottom-left-radius:4px!important}.no-border-radius[_ngcontent-%COMP%]{border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.indoorViewer.ios[_ngcontent-%COMP%]   .no-hover-ios[_ngcontent-%COMP%]:hover{background-color:inherit!important}.no-shadow[_ngcontent-%COMP%]{box-shadow:none!important}.clear-background[_ngcontent-%COMP%]{border:0}.clear-background[_ngcontent-%COMP%], .no-background[_ngcontent-%COMP%]{background:none!important}.no-overflow[_ngcontent-%COMP%]{overflow:hidden}.clickable[_ngcontent-%COMP%], .clickable[_ngcontent-%COMP%]:hover{cursor:pointer}.body-container[_ngcontent-%COMP%]{padding-left:24px;max-height:calc(100vh - 250px);margin:-15px}.measurement-container[_ngcontent-%COMP%]{background-color:#f0f0f0;margin-top:24px;margin-right:24px;padding-top:24px;padding-bottom:24px;padding-left:24px;border-radius:4px}.flex-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;width:100%;margin-left:-24px}.flex-column[_ngcontent-%COMP%], .flex-column-90[_ngcontent-%COMP%], .flex-column-no-left-padding[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;padding:0 24px;overflow:hidden}.flex-column-no-left-padding[_ngcontent-%COMP%]{padding-left:0}.flex-column-90[_ngcontent-%COMP%]{flex-basis:90%;padding-right:0}.link-ellipses[_ngcontent-%COMP%]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.flex-right[_ngcontent-%COMP%]{margin-left:auto}.screenshot[_ngcontent-%COMP%]{flex-flow:row nowrap;align-items:center;display:flex;max-width:100%;flex-shrink:0}.note[_ngcontent-%COMP%]{white-space:pre-wrap}.icn-small[_ngcontent-%COMP%]{font-size:16px;vertical-align:middle}.subtitle[_ngcontent-%COMP%]{font-size:16px;line-height:22px}.location[_ngcontent-%COMP%], .subtitle[_ngcontent-%COMP%]{font-family:Open Sans,sans-serif;font-style:normal;font-weight:600;display:flex;align-items:center;letter-spacing:.01em;color:#333332}.location[_ngcontent-%COMP%]{font-size:12px;line-height:16px;margin-left:-8px}.location-icn[_ngcontent-%COMP%]{width:40px;height:40px}.padding-top-custom[_ngcontent-%COMP%]{padding-top:24px}.padding-left[_ngcontent-%COMP%]{padding-left:24px}.icn-small[_ngcontent-%COMP%], .padding-left-sm[_ngcontent-%COMP%]{padding-left:6px}.padding-top-sm[_ngcontent-%COMP%]{padding-top:6px}"]
                }),
                t
            }();
            t.MeasurementExportModalComponent = R,
            l.ɵsetClassMetadata(R, [{
                type: o.Component,
                args: [{
                    selector: "measurement-export",
                    templateUrl: "MeasurementExportModal.ng.html",
                    styleUrls: ["MeasurementExportModal.ng.scss"]
                }]
            }], (function() {
                return [{
                    type: c.MatDialog
                }, {
                    type: u.MeasurementPdfExportService
                }]
            }
            ), {
                exportAllMeasurementLink: [{
                    type: o.Input
                }],
                exportMeasurementList: [{
                    type: o.Input
                }],
                exportModal: [{
                    type: o.ViewChild,
                    args: ["exportableMeasurementsDialog"]
                }]
            })
        }
        ).call(this, n(19))
    },
    1938: function(e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var o = n(0)
          , r = n(85)
          , i = (n(447),
        n(0))
          , a = n(447)
          , s = n(168)
          , l = n(3)
          , c = n(1939);
        function u(e, t) {
            if (1 & e && (i.ɵɵelementStart(0, "h4", 4),
            i.ɵɵelementStart(1, "strong"),
            i.ɵɵtext(2),
            i.ɵɵelementEnd(),
            i.ɵɵelementEnd()),
            2 & e) {
                var n = i.ɵɵnextContext().$implicit;
                i.ɵɵadvance(2),
                i.ɵɵtextInterpolate(n("Free"))
            }
        }
        function p(e, t) {
            if (1 & e && (i.ɵɵelementStart(0, "h4", 4),
            i.ɵɵelementStart(1, "strong"),
            i.ɵɵtext(2),
            i.ɵɵelementEnd(),
            i.ɵɵelementEnd()),
            2 & e) {
                var n = i.ɵɵnextContext().$implicit;
                i.ɵɵadvance(2),
                i.ɵɵtextInterpolate(n("Horizontal"))
            }
        }
        function d(e, t) {
            if (1 & e && (i.ɵɵelementStart(0, "h4", 4),
            i.ɵɵelementStart(1, "strong"),
            i.ɵɵtext(2),
            i.ɵɵelementEnd(),
            i.ɵɵelementEnd()),
            2 & e) {
                var n = i.ɵɵnextContext().$implicit;
                i.ɵɵadvance(2),
                i.ɵɵtextInterpolate(n("Vertical"))
            }
        }
        function m(e, t) {
            if (1 & e) {
                var n = i.ɵɵgetCurrentView();
                i.ɵɵelementContainerStart(0),
                i.ɵɵtemplate(1, u, 3, 1, "h4", 1),
                i.ɵɵelementStart(2, "span", 2),
                i.ɵɵelementStart(3, "measurement-tool", 3),
                i.ɵɵlistener("onClick", (function() {
                    i.ɵɵrestoreView(n);
                    var e = i.ɵɵnextContext();
                    return e.toggleTool(e.Tool.DISTANCE_FREE_MEASUREMENT)
                }
                )),
                i.ɵɵelementEnd(),
                i.ɵɵelementStart(4, "measurement-tool", 3),
                i.ɵɵlistener("onClick", (function() {
                    i.ɵɵrestoreView(n);
                    var e = i.ɵɵnextContext();
                    return e.toggleTool(e.Tool.AREA_FREE_MEASUREMENT)
                }
                )),
                i.ɵɵelementEnd(),
                i.ɵɵelementEnd(),
                i.ɵɵtemplate(5, p, 3, 1, "h4", 1),
                i.ɵɵelementStart(6, "span", 2),
                i.ɵɵelementStart(7, "measurement-tool", 3),
                i.ɵɵlistener("onClick", (function() {
                    i.ɵɵrestoreView(n);
                    var e = i.ɵɵnextContext();
                    return e.toggleTool(e.Tool.DISTANCE_HORIZONTAL_MEASUREMENT)
                }
                )),
                i.ɵɵelementEnd(),
                i.ɵɵelementStart(8, "measurement-tool", 3),
                i.ɵɵlistener("onClick", (function() {
                    i.ɵɵrestoreView(n);
                    var e = i.ɵɵnextContext();
                    return e.toggleTool(e.Tool.AREA_HORIZONTAL_MEASUREMENT)
                }
                )),
                i.ɵɵelementEnd(),
                i.ɵɵelementStart(9, "measurement-tool", 3),
                i.ɵɵlistener("onClick", (function() {
                    i.ɵɵrestoreView(n);
                    var e = i.ɵɵnextContext();
                    return e.toggleTool(e.Tool.RECTANGLE_HORIZONTAL_MEASUREMENT)
                }
                )),
                i.ɵɵelementEnd(),
                i.ɵɵelementEnd(),
                i.ɵɵtemplate(10, d, 3, 1, "h4", 1),
                i.ɵɵelementStart(11, "span", 2),
                i.ɵɵelementStart(12, "measurement-tool", 3),
                i.ɵɵlistener("onClick", (function() {
                    i.ɵɵrestoreView(n);
                    var e = i.ɵɵnextContext();
                    return e.toggleTool(e.Tool.DISTANCE_VERTICAL_MEASUREMENT)
                }
                )),
                i.ɵɵelementEnd(),
                i.ɵɵelementStart(13, "measurement-tool", 3),
                i.ɵɵlistener("onClick", (function() {
                    i.ɵɵrestoreView(n);
                    var e = i.ɵɵnextContext();
                    return e.toggleTool(e.Tool.AREA_VERTICAL_MEASUREMENT)
                }
                )),
                i.ɵɵelementEnd(),
                i.ɵɵelementStart(14, "measurement-tool", 3),
                i.ɵɵlistener("onClick", (function() {
                    i.ɵɵrestoreView(n);
                    var e = i.ɵɵnextContext();
                    return e.toggleTool(e.Tool.RECTANGLE_VERTICAL_MEASUREMENT)
                }
                )),
                i.ɵɵelementEnd(),
                i.ɵɵelementEnd(),
                i.ɵɵelementContainerEnd()
            }
            if (2 & e) {
                var o = t.$implicit
                  , r = i.ɵɵnextContext();
                i.ɵɵadvance(1),
                i.ɵɵproperty("ngIf", !r.isCollapsedView),
                i.ɵɵadvance(2),
                i.ɵɵproperty("description", o("Distance"))("altText", o("Free Distance"))("icon", r.freeDistanceMeasurementIcon)("selected", r.currentTool === r.Tool.DISTANCE_FREE_MEASUREMENT)("isCollapsedView", r.isCollapsedView),
                i.ɵɵadvance(1),
                i.ɵɵproperty("description", o("Polygon"))("altText", o("Free Area"))("icon", r.freeAreaMeasurementIcon)("selected", r.currentTool === r.Tool.AREA_FREE_MEASUREMENT)("isCollapsedView", r.isCollapsedView),
                i.ɵɵadvance(1),
                i.ɵɵproperty("ngIf", !r.isCollapsedView),
                i.ɵɵadvance(2),
                i.ɵɵproperty("description", o("Distance"))("altText", o("Horizontal Distance"))("icon", r.horizontalDistanceMeasurementIcon)("selected", r.currentTool === r.Tool.DISTANCE_HORIZONTAL_MEASUREMENT)("isCollapsedView", r.isCollapsedView),
                i.ɵɵadvance(1),
                i.ɵɵproperty("description", o("Polygon"))("altText", o("Horizontal Area"))("icon", r.horizontalAreaPolygonMeasurementIcon)("selected", r.currentTool === r.Tool.AREA_HORIZONTAL_MEASUREMENT)("isCollapsedView", r.isCollapsedView),
                i.ɵɵadvance(1),
                i.ɵɵproperty("description", o("Rectangle"))("altText", o("Horizontal Rectangle"))("icon", r.horizontalAreaRectangleMeasurementIcon)("selected", r.currentTool === r.Tool.RECTANGLE_HORIZONTAL_MEASUREMENT)("isCollapsedView", r.isCollapsedView),
                i.ɵɵadvance(1),
                i.ɵɵproperty("ngIf", !r.isCollapsedView),
                i.ɵɵadvance(2),
                i.ɵɵproperty("description", o("Distance"))("altText", o("Vertical Distance"))("icon", r.verticalDistanceMeasurementIcon)("selected", r.currentTool === r.Tool.DISTANCE_VERTICAL_MEASUREMENT)("isCollapsedView", r.isCollapsedView),
                i.ɵɵadvance(1),
                i.ɵɵproperty("description", o("Polygon"))("altText", o("Vertical Area"))("icon", r.verticalAreaPolygonMeasurementIcon)("selected", r.currentTool === r.Tool.AREA_VERTICAL_MEASUREMENT)("isCollapsedView", r.isCollapsedView),
                i.ɵɵadvance(1),
                i.ɵɵproperty("description", o("Rectangle"))("altText", o("Vertical Rectangle"))("icon", r.verticalAreaRectangleMeasurementIcon)("selected", r.currentTool === r.Tool.RECTANGLE_VERTICAL_MEASUREMENT)("isCollapsedView", r.isCollapsedView)
            }
        }
        var g = function() {
            function e(e) {
                this.MeasurementToolChanger = e,
                this.Tool = r.Tool,
                this.freeDistanceMeasurementIcon = r.ToolSpec.of(r.Tool.DISTANCE_FREE_MEASUREMENT).iconSrc,
                this.freeAreaMeasurementIcon = r.ToolSpec.of(r.Tool.AREA_FREE_MEASUREMENT).iconSrc,
                this.horizontalDistanceMeasurementIcon = r.ToolSpec.of(r.Tool.DISTANCE_HORIZONTAL_MEASUREMENT).iconSrc,
                this.horizontalAreaPolygonMeasurementIcon = r.ToolSpec.of(r.Tool.AREA_HORIZONTAL_MEASUREMENT).iconSrc,
                this.horizontalAreaRectangleMeasurementIcon = r.ToolSpec.of(r.Tool.RECTANGLE_HORIZONTAL_MEASUREMENT).iconSrc,
                this.verticalDistanceMeasurementIcon = r.ToolSpec.of(r.Tool.DISTANCE_VERTICAL_MEASUREMENT).iconSrc,
                this.verticalAreaPolygonMeasurementIcon = r.ToolSpec.of(r.Tool.AREA_VERTICAL_MEASUREMENT).iconSrc,
                this.verticalAreaRectangleMeasurementIcon = r.ToolSpec.of(r.Tool.RECTANGLE_VERTICAL_MEASUREMENT).iconSrc,
                this.selectedTool = this.MeasurementToolChanger.selectedTool
            }
            return Object.defineProperty(e.prototype, "isCollapsed", {
                get: function() {
                    return this.isCollapsedView
                },
                enumerable: !0,
                configurable: !0
            }),
            e.prototype.toggleTool = function(e) {
                this.MeasurementToolChanger.toggleTool(e, r.EventSource.MEASUREMENT_TOOL_SELECTION)
            }
            ,
            e.ɵfac = function(t) {
                return new (t || e)(i.ɵɵdirectiveInject(a.MeasurementToolChanger))
            }
            ,
            e.ɵcmp = i.ɵɵdefineComponent({
                type: e,
                selectors: [["measurement-tool-selection"]],
                hostVars: 2,
                hostBindings: function(e, t) {
                    2 & e && i.ɵɵclassProp("collapsed-view", t.isCollapsed)
                },
                inputs: {
                    currentTool: "currentTool",
                    isCollapsedView: "isCollapsedView"
                },
                outputs: {
                    selectedTool: "selectedTool"
                },
                decls: 1,
                vars: 0,
                consts: [[4, "transloco"], ["class", "heading", 4, "ngIf"], [1, "spaced"], [3, "description", "altText", "icon", "selected", "isCollapsedView", "onClick"], [1, "heading"]],
                template: function(e, t) {
                    1 & e && i.ɵɵtemplate(0, m, 15, 43, "ng-container", 0)
                },
                directives: [s.TranslocoDirective, l.NgIf, c.MeasurementToolComponent],
                styles: [".collapsed-view[_nghost-%COMP%]   .spaced[_ngcontent-%COMP%]{display:inherit;justify-content:left;padding:0}.spaced[_ngcontent-%COMP%]{display:flex;justify-content:flex-start;padding:20px 18px}.heading[_ngcontent-%COMP%]{font-size:1.14em;margin:0}.rectangle-tools[_ngcontent-%COMP%]{display:flex;flex-flow:row nowrap;justify-content:flex-end;padding:0 18px 15px}"]
            }),
            e
        }();
        t.MeasurementToolSelectionComponent = g,
        i.ɵsetClassMetadata(g, [{
            type: o.Component,
            args: [{
                selector: "measurement-tool-selection",
                templateUrl: "./MeasurementToolSelection.ng.html",
                styleUrls: ["./MeasurementToolSelection.ng.scss"]
            }]
        }], (function() {
            return [{
                type: a.MeasurementToolChanger
            }]
        }
        ), {
            isCollapsed: [{
                type: o.HostBinding,
                args: ["class.collapsed-view"]
            }],
            selectedTool: [{
                type: o.Output
            }],
            currentTool: [{
                type: o.Input
            }],
            isCollapsedView: [{
                type: o.Input
            }]
        })
    },
    1939: function(e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var o = n(0)
          , r = n(0)
          , i = n(1692)
          , a = n(3);
        function s(e, t) {
            if (1 & e && (r.ɵɵelementStart(0, "p", 3),
            r.ɵɵtext(1),
            r.ɵɵelementEnd()),
            2 & e) {
                var n = r.ɵɵnextContext();
                r.ɵɵadvance(1),
                r.ɵɵtextInterpolate(n.description)
            }
        }
        var l = function() {
            function e() {
                this.isCollapsedView = !1,
                this.onClick = new o.EventEmitter
            }
            return Object.defineProperty(e.prototype, "isCollapsed", {
                get: function() {
                    return this.isCollapsedView
                },
                enumerable: !0,
                configurable: !0
            }),
            Object.defineProperty(e.prototype, "alt", {
                get: function() {
                    return this.altText
                },
                enumerable: !0,
                configurable: !0
            }),
            e.ɵfac = function(t) {
                return new (t || e)
            }
            ,
            e.ɵcmp = r.ɵɵdefineComponent({
                type: e,
                selectors: [["measurement-tool"]],
                hostVars: 2,
                hostBindings: function(e, t) {
                    2 & e && r.ɵɵclassProp("collapsed-view", t.isCollapsed)
                },
                inputs: {
                    icon: "icon",
                    description: "description",
                    altText: "altText",
                    selected: "selected",
                    isCollapsedView: "isCollapsedView"
                },
                outputs: {
                    onClick: "onClick"
                },
                decls: 3,
                vars: 8,
                consts: [[1, "tool-container"], [1, "tool-image", 3, "src", "alt", "title", "click"], ["class", "text-center description", 4, "ngIf"], [1, "text-center", "description"]],
                template: function(e, t) {
                    1 & e && (r.ɵɵelementStart(0, "span", 0),
                    r.ɵɵelementStart(1, "img", 1),
                    r.ɵɵlistener("click", (function() {
                        return t.onClick.emit()
                    }
                    )),
                    r.ɵɵelementEnd(),
                    r.ɵɵtemplate(2, s, 2, 1, "p", 2),
                    r.ɵɵelementEnd()),
                    2 & e && (r.ɵɵclassProp("collapsed-view", t.isCollapsedView),
                    r.ɵɵadvance(1),
                    r.ɵɵclassProp("selected", t.selected),
                    r.ɵɵproperty("src", t.icon, r.ɵɵsanitizeUrl)("alt", t.altText)("title", t.altText),
                    r.ɵɵadvance(1),
                    r.ɵɵproperty("ngIf", !t.isCollapsedView))
                },
                directives: [i.AddBaseUrlDirective, a.NgIf],
                styles: ["[_nghost-%COMP%]{display:inline-block;width:100px;flex:0 1 33.3%}.collapsed-view[_nghost-%COMP%]{display:block;width:60px;margin-top:25px;margin-bottom:25px}@media (max-height:720px){.collapsed-view[_nghost-%COMP%]{margin-top:12px;margin-bottom:12px}}.collapsed-view[_nghost-%COMP%]   img[_ngcontent-%COMP%]{border:none}img[_ngcontent-%COMP%]{width:36px;height:36px;padding:6px;border:1px solid grey;border-radius:7px;display:block;margin-left:auto;margin-right:auto}img[_ngcontent-%COMP%]:hover{cursor:pointer}img.selected[_ngcontent-%COMP%], img[_ngcontent-%COMP%]:hover{background-color:#d3d3d3}.tool-image[_ngcontent-%COMP%]{margin-bottom:.35em}.description[_ngcontent-%COMP%]{font-size:14px;overflow-wrap:break-word;margin:0}"]
            }),
            e
        }();
        t.MeasurementToolComponent = l,
        r.ɵsetClassMetadata(l, [{
            type: o.Component,
            args: [{
                selector: "measurement-tool",
                templateUrl: "./MeasurementTool.ng.html",
                styleUrls: ["./MeasurementTool.ng.scss"]
            }]
        }], (function() {
            return []
        }
        ), {
            isCollapsed: [{
                type: o.HostBinding,
                args: ["class.collapsed-view"]
            }],
            icon: [{
                type: o.Input
            }],
            description: [{
                type: o.Input
            }],
            altText: [{
                type: o.Input
            }],
            selected: [{
                type: o.Input
            }],
            isCollapsedView: [{
                type: o.Input
            }],
            onClick: [{
                type: o.Output
            }]
        })
    },
    1940: function(e, t, n) {
        "use strict";
        var o = 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 r = n(0)
          , i = (n(171),
        n(21),
        n(644))
          , a = n(627)
          , s = n(454)
          , l = n(347)
          , c = n(40)
          , u = n(645)
          , p = n(628)
          , d = n(0)
          , m = n(171)
          , g = n(21)
          , f = n(3)
          , v = n(1941)
          , h = n(168)
          , M = n(1942);
        function C(e, t) {
            if (1 & e && (d.ɵɵelementStart(0, "div", 11),
            d.ɵɵelementStart(1, "span"),
            d.ɵɵtext(2),
            d.ɵɵelementEnd(),
            d.ɵɵelementEnd()),
            2 & e) {
                var n = d.ɵɵnextContext().$implicit;
                d.ɵɵadvance(2),
                d.ɵɵtextInterpolate(n("No measurements taken yet"))
            }
        }
        function x(e, t) {
            if (1 & e && (d.ɵɵelementContainerStart(0),
            d.ɵɵtemplate(1, C, 3, 1, "div", 10),
            d.ɵɵelementContainerEnd()),
            2 & e) {
                var n = d.ɵɵnextContext(3);
                d.ɵɵadvance(1),
                d.ɵɵproperty("ngIf", 0 === n.measurementsList.length)
            }
        }
        function y(e, t) {
            if (1 & e) {
                var n = d.ɵɵgetCurrentView();
                d.ɵɵelementStart(0, "div"),
                d.ɵɵelementStart(1, "measurement-details", 12),
                d.ɵɵlistener("onItemToggleSelection", (function(e) {
                    return d.ɵɵrestoreView(n),
                    d.ɵɵnextContext(3).handleItemToggleSelection(e)
                }
                )),
                d.ɵɵelementEnd(),
                d.ɵɵelement(2, "hr", 13),
                d.ɵɵelementEnd()
            }
            if (2 & e) {
                var o = t.$implicit;
                d.ɵɵadvance(1),
                d.ɵɵproperty("measurement", o)
            }
        }
        function S(e, t) {
            if (1 & e) {
                var n = d.ɵɵgetCurrentView();
                d.ɵɵelementStart(0, "span", 4),
                d.ɵɵelementStart(1, "measurement-list-toolbar", 5),
                d.ɵɵlistener("onSelectAll", (function() {
                    return d.ɵɵrestoreView(n),
                    d.ɵɵnextContext(2).toggleItemSelection()
                }
                ))("onDelete", (function() {
                    return d.ɵɵrestoreView(n),
                    d.ɵɵnextContext(2).deleteSelectedMeasurements()
                }
                ))("onSave", (function() {
                    return d.ɵɵrestoreView(n),
                    d.ɵɵnextContext(2).saveSelectedMeasurements()
                }
                ))("onShare", (function() {
                    return d.ɵɵrestoreView(n),
                    d.ɵɵnextContext(2).shareSelectedMeasurements()
                }
                ))("onVisibilityChange", (function() {
                    return d.ɵɵrestoreView(n),
                    d.ɵɵnextContext(2).toggleSelectedMeasurementsVisibility()
                }
                )),
                d.ɵɵelementEnd(),
                d.ɵɵelement(2, "hr", 6),
                d.ɵɵtemplate(3, x, 2, 1, "ng-container", 7),
                d.ɵɵelementStart(4, "div", 8),
                d.ɵɵtemplate(5, y, 3, 1, "div", 9),
                d.ɵɵelementEnd(),
                d.ɵɵelementEnd()
            }
            if (2 & e) {
                var o = d.ɵɵnextContext(2);
                d.ɵɵadvance(1),
                d.ɵɵproperty("isAnythingSelected", o.isAnythingSelected())("areAllItemsSelected", o.areAllItemSelected())("isEverythingHidden", o.isEverythingHidden())("isAsyncOperationInProgress", o.isAsyncOperationInProgress),
                d.ɵɵadvance(4),
                d.ɵɵproperty("ngForOf", o.measurementsList)
            }
        }
        function b(e, t) {
            if (1 & e && (d.ɵɵelementStart(0, "span", 18),
            d.ɵɵtext(1),
            d.ɵɵelementEnd()),
            2 & e) {
                var n = d.ɵɵnextContext(3);
                d.ɵɵadvance(1),
                d.ɵɵtextInterpolate1(" ", n.measurementsList.length, " ")
            }
        }
        function E(e, t) {
            if (1 & e) {
                var n = d.ɵɵgetCurrentView();
                d.ɵɵelementStart(0, "span", 14),
                d.ɵɵelementStart(1, "div", 15),
                d.ɵɵelementStart(2, "i", 16),
                d.ɵɵlistener("click", (function() {
                    return d.ɵɵrestoreView(n),
                    d.ɵɵnextContext(2).expandMenu()
                }
                )),
                d.ɵɵtext(3, "list"),
                d.ɵɵelementEnd(),
                d.ɵɵtemplate(4, b, 2, 1, "span", 17),
                d.ɵɵelementEnd(),
                d.ɵɵelementEnd()
            }
            if (2 & e) {
                var o = d.ɵɵnextContext(2);
                d.ɵɵadvance(4),
                d.ɵɵproperty("ngIf", o.measurementsList.length > 0)
            }
        }
        function w(e, t) {
            if (1 & e && (d.ɵɵelementContainerStart(0),
            d.ɵɵelement(1, "hr", 1),
            d.ɵɵtemplate(2, S, 6, 5, "span", 2),
            d.ɵɵtemplate(3, E, 5, 1, "span", 3),
            d.ɵɵelementContainerEnd()),
            2 & e) {
                var n = d.ɵɵnextContext();
                d.ɵɵadvance(2),
                d.ɵɵproperty("ngIf", !n.isCollapsedView),
                d.ɵɵadvance(1),
                d.ɵɵproperty("ngIf", n.isCollapsedView)
            }
        }
        var I = function() {
            function e(e, t) {
                var n = this;
                this.MeasurementsService = e,
                this.TrackingService = t,
                this.measurementsList = [],
                this.deleteSelected = new r.EventEmitter,
                this.saveSelected = new r.EventEmitter,
                this.shareSelected = new r.EventEmitter,
                this.selectedMeasurements = [],
                this.hasUserDeletedSomeMeasurements = !1,
                this.measurementUpdateConnection = this.MeasurementsService.measurementsUpdated.connect((function() {
                    return n.updateSelectedMeasurements()
                }
                )),
                this.measurementDeletedConnection = this.MeasurementsService.measurementDeleted.connect((function() {
                    return n.hasUserDeletedSomeMeasurements = !0
                }
                ))
            }
            return e.prototype.ngOnInit = function() {
                this.updateSelectedMeasurements()
            }
            ,
            e.prototype.ngOnDestroy = function() {
                this.measurementUpdateConnection && this.measurementUpdateConnection.disconnect(),
                this.measurementDeletedConnection && this.measurementDeletedConnection.disconnect()
            }
            ,
            e.prototype.updateSelectedMeasurements = function() {
                this.selectedMeasurements = this.measurementsList.filter((function(e) {
                    return e.selected
                }
                ))
            }
            ,
            e.prototype.areAllItemSelected = function() {
                return this.measurementsList.length > 0 && this.measurementsList.every((function(e) {
                    return e.selected
                }
                ))
            }
            ,
            e.prototype.isAnythingSelected = function() {
                return this.measurementsList.some((function(e) {
                    return e.selected
                }
                ))
            }
            ,
            e.prototype.toggleItemSelection = function() {
                if (this.areAllItemSelected())
                    return this.measurementsList.forEach((function(e) {
                        return e.selected = !1
                    }
                    )),
                    void (this.selectedMeasurements = []);
                this.measurementsList.forEach((function(e) {
                    return e.selected = !0
                }
                )),
                this.selectedMeasurements = o(this.measurementsList)
            }
            ,
            e.prototype.handleItemToggleSelection = function(e) {
                if (e.selected)
                    this.selectedMeasurements.push(e);
                else {
                    var t = this.selectedMeasurements.indexOf(e);
                    t > -1 && this.selectedMeasurements.splice(t, 1)
                }
            }
            ,
            e.prototype.deleteSelectedMeasurements = function() {
                this.TrackingService.trackPreDefinedEvent((new i.MeasurementsDeletedEvent).numberOfMeasurements(this.selectedMeasurements.length).interactionArea(p.InteractionArea.SideMenu)),
                this.deleteSelected.emit(this.selectedMeasurements)
            }
            ,
            e.prototype.saveSelectedMeasurements = function() {
                this.TrackingService.trackPreDefinedEvent((new a.MeasurementsSavedEvent).numberOfMeasurements(this.selectedMeasurements.length).interactionArea(p.InteractionArea.SideMenu)),
                this.saveSelected.emit(this.selectedMeasurements)
            }
            ,
            e.prototype.toggleSelectedMeasurementsVisibility = function() {
                var e = this.selectedMeasurements.reduce((function(e, t) {
                    return e + (t.visible ? 1 : 0)
                }
                ), 0);
                this.MeasurementsService.toggleVisibility(this.selectedMeasurements),
                this.TrackingService.trackPreDefinedEvent((new u.MeasurementsHiddenEvent).numberOfMeasurements(e).interactionArea(p.InteractionArea.SideMenu))
            }
            ,
            e.prototype.isEverythingHidden = function() {
                return this.selectedMeasurements.every((function(e) {
                    return !1 === e.visible
                }
                ))
            }
            ,
            e.prototype.expandMenu = function() {
                var e = c.isMobileLayout() ? window.innerWidth - s.ToolboxMenuController.mobileCollapserWidth : s.ToolboxMenuController.menuDefaultWidth;
                this.TrackingService.trackPreDefinedEvent((new l.ToolbarVisibilityChangedEvent).withNewWidth(e).visible(!0)),
                document.getElementById(s.ToolboxMenuController.verticalToolboxMenuId).style.width = e + "px"
            }
            ,
            e.prototype.showMeasurementList = function() {
                return 0 === this.measurementsList.length ? this.hasUserDeletedSomeMeasurements : this.measurementsList.length > 0
            }
            ,
            e.prototype.shareSelectedMeasurements = function() {
                this.shareSelected.emit(this.selectedMeasurements)
            }
            ,
            e.ɵfac = function(t) {
                return new (t || e)(d.ɵɵdirectiveInject(m.MeasurementsService),d.ɵɵdirectiveInject(g.TrackingService))
            }
            ,
            e.ɵcmp = d.ɵɵdefineComponent({
                type: e,
                selectors: [["measurement-list"]],
                inputs: {
                    measurementsList: "measurementsList",
                    isCollapsedView: "isCollapsedView",
                    isAsyncOperationInProgress: "isAsyncOperationInProgress"
                },
                outputs: {
                    deleteSelected: "deleteSelected",
                    saveSelected: "saveSelected",
                    shareSelected: "shareSelected"
                },
                decls: 1,
                vars: 1,
                consts: [[4, "ngIf"], [1, "list-separator"], ["class", "toolbar-list-wrapper", 4, "ngIf"], ["class", "collapsed-list", 4, "ngIf"], [1, "toolbar-list-wrapper"], [3, "isAnythingSelected", "areAllItemsSelected", "isEverythingHidden", "isAsyncOperationInProgress", "onSelectAll", "onDelete", "onSave", "onShare", "onVisibilityChange"], [1, "toolbar-separator"], [4, "transloco"], [1, "measurement-list-items"], [4, "ngFor", "ngForOf"], ["class", "no-measurements-info", 4, "ngIf"], [1, "no-measurements-info"], [3, "measurement", "onItemToggleSelection"], [1, "measurements-separator"], [1, "collapsed-list"], [1, "list-icon-wrapper"], [1, "material-icons", "list-icon", 3, "click"], ["class", "badge", 4, "ngIf"], [1, "badge"]],
                template: function(e, t) {
                    1 & e && d.ɵɵtemplate(0, w, 4, 2, "ng-container", 0),
                    2 & e && d.ɵɵproperty("ngIf", t.showMeasurementList())
                },
                directives: [f.NgIf, v.MeasurementListToolbarComponent, h.TranslocoDirective, f.NgForOf, M.MeasurementDetailsComponent],
                styles: ["[_nghost-%COMP%]{min-height:210px;overflow:hidden}.toolbar-list-wrapper[_ngcontent-%COMP%], [_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}measurement-list-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;min-height:60px;margin:0 20px}.no-measurements-info[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;height:100%}.measurements-separator[_ngcontent-%COMP%], .toolbar-separator[_ngcontent-%COMP%]{margin:0;border:.5px solid #eee}.measurement-list-items[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto}.collapsed-list[_ngcontent-%COMP%]{position:relative}.list-icon-wrapper[_ngcontent-%COMP%]{top:0;position:absolute}i.list-icon[_ngcontent-%COMP%]{margin:25px 12px;padding:6px;cursor:pointer;border-radius:7px}i.list-icon.selected[_ngcontent-%COMP%], i.list-icon[_ngcontent-%COMP%]:hover{background-color:#d3d3d3}.badge[_ngcontent-%COMP%]{position:absolute;right:6px;margin-top:20px;background-color:#3398c7}.list-separator[_ngcontent-%COMP%]{width:calc(100% + 40px);margin:0 -20px;border:.5px solid #eee}"]
            }),
            e
        }();
        t.MeasurementListComponent = I,
        d.ɵsetClassMetadata(I, [{
            type: r.Component,
            args: [{
                selector: "measurement-list",
                templateUrl: "MeasurementList.ng.html",
                styleUrls: ["MeasurementList.ng.scss"]
            }]
        }], (function() {
            return [{
                type: m.MeasurementsService
            }, {
                type: g.TrackingService
            }]
        }
        ), {
            measurementsList: [{
                type: r.Input
            }],
            isCollapsedView: [{
                type: r.Input
            }],
            isAsyncOperationInProgress: [{
                type: r.Input
            }],
            deleteSelected: [{
                type: r.Output
            }],
            saveSelected: [{
                type: r.Output
            }],
            shareSelected: [{
                type: r.Output
            }]
        })
    },
    1941: function(e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var o = n(0)
          , r = n(168)
          , i = (n(27),
        n(0))
          , a = n(27)
          , s = n(168)
          , l = n(3);
        function c(e, t) {
            if (1 & e) {
                var n = i.ɵɵgetCurrentView();
                i.ɵɵelementStart(0, "button", 4),
                i.ɵɵlistener("click", (function() {
                    return i.ɵɵrestoreView(n),
                    i.ɵɵnextContext(2).onSave.emit()
                }
                )),
                i.ɵɵelementStart(1, "i", 5),
                i.ɵɵtext(2, "save"),
                i.ɵɵelementEnd(),
                i.ɵɵelementEnd()
            }
            if (2 & e) {
                var o = i.ɵɵnextContext().$implicit
                  , r = i.ɵɵnextContext();
                i.ɵɵproperty("disabled", !r.isAnythingSelected || r.isAsyncOperationInProgress)("title", o("Save Selected"))
            }
        }
        function u(e, t) {
            if (1 & e) {
                var n = i.ɵɵgetCurrentView();
                i.ɵɵelementContainerStart(0),
                i.ɵɵelementStart(1, "button", 1),
                i.ɵɵlistener("click", (function() {
                    return i.ɵɵrestoreView(n),
                    i.ɵɵnextContext().onSelectAll.emit()
                }
                )),
                i.ɵɵelement(2, "i", 2),
                i.ɵɵelementEnd(),
                i.ɵɵelementStart(3, "div", 3),
                i.ɵɵelementStart(4, "button", 4),
                i.ɵɵlistener("click", (function() {
                    return i.ɵɵrestoreView(n),
                    i.ɵɵnextContext().onVisibilityChange.emit()
                }
                )),
                i.ɵɵelementStart(5, "i", 5),
                i.ɵɵtext(6, "visibility_off"),
                i.ɵɵelementEnd(),
                i.ɵɵelementEnd(),
                i.ɵɵelementStart(7, "button", 4),
                i.ɵɵlistener("click", (function() {
                    return i.ɵɵrestoreView(n),
                    i.ɵɵnextContext().onShare.emit()
                }
                )),
                i.ɵɵelementStart(8, "i", 5),
                i.ɵɵtext(9, "share"),
                i.ɵɵelementEnd(),
                i.ɵɵelementEnd(),
                i.ɵɵelementStart(10, "button", 4),
                i.ɵɵlistener("click", (function() {
                    return i.ɵɵrestoreView(n),
                    i.ɵɵnextContext().onDelete.emit()
                }
                )),
                i.ɵɵelementStart(11, "i", 5),
                i.ɵɵtext(12, "delete"),
                i.ɵɵelementEnd(),
                i.ɵɵelementEnd(),
                i.ɵɵtemplate(13, c, 3, 2, "button", 6),
                i.ɵɵelementEnd(),
                i.ɵɵelementContainerEnd()
            }
            if (2 & e) {
                var o = t.$implicit
                  , r = i.ɵɵnextContext();
                i.ɵɵadvance(1),
                i.ɵɵproperty("title", o("Select All")),
                i.ɵɵadvance(1),
                i.ɵɵclassProp("fa-square-o", !r.areAllItemsSelected)("fa-check-square-o", r.areAllItemsSelected),
                i.ɵɵadvance(2),
                i.ɵɵproperty("disabled", !r.isAnythingSelected || r.isAsyncOperationInProgress)("title", r.getVisibilityTooltipText()),
                i.ɵɵadvance(3),
                i.ɵɵproperty("disabled", !r.isAnythingSelected || r.isAsyncOperationInProgress)("title", o("Share Selected")),
                i.ɵɵadvance(3),
                i.ɵɵproperty("disabled", !r.isAnythingSelected || r.isAsyncOperationInProgress)("title", o("Delete Selected")),
                i.ɵɵadvance(3),
                i.ɵɵproperty("ngIf", r.canUserSaveMeasurements())
            }
        }
        var p = function() {
            function e(e) {
                this.UserService = e,
                this.onSelectAll = new o.EventEmitter,
                this.onDelete = new o.EventEmitter,
                this.onSave = new o.EventEmitter,
                this.onVisibilityChange = new o.EventEmitter,
                this.onShare = new o.EventEmitter
            }
            return e.prototype.getVisibilityTooltipText = function() {
                return this.isEverythingHidden && this.isAnythingSelected ? r.translate("Show Selected") : r.translate("Hide Selected")
            }
            ,
            e.prototype.canUserSaveMeasurements = function() {
                return this.UserService.canSaveMeasurements()
            }
            ,
            e.ɵfac = function(t) {
                return new (t || e)(i.ɵɵdirectiveInject(a.UserService))
            }
            ,
            e.ɵcmp = i.ɵɵdefineComponent({
                type: e,
                selectors: [["measurement-list-toolbar"]],
                inputs: {
                    isAnythingSelected: "isAnythingSelected",
                    isEverythingHidden: "isEverythingHidden",
                    areAllItemsSelected: "areAllItemsSelected",
                    isAsyncOperationInProgress: "isAsyncOperationInProgress"
                },
                outputs: {
                    onSelectAll: "onSelectAll",
                    onDelete: "onDelete",
                    onSave: "onSave",
                    onVisibilityChange: "onVisibilityChange",
                    onShare: "onShare"
                },
                decls: 1,
                vars: 0,
                consts: [[4, "transloco"], [1, "button-fa-material-align", "btn", "btn-default", "btn-borderless", 3, "title", "click"], [1, "fa"], [1, "operations", "float-right"], [1, "btn", "btn-default", "btn-borderless", "center-icon", 3, "disabled", "title", "click"], [1, "material-icons"], ["class", "btn btn-default btn-borderless center-icon", 3, "disabled", "title", "click", 4, "ngIf"]],
                template: function(e, t) {
                    1 & e && i.ɵɵtemplate(0, u, 14, 12, "ng-container", 0)
                },
                directives: [s.TranslocoDirective, l.NgIf],
                styles: [".operations[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.operations[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{padding:3px}.operations[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:24px;height:24px}.button-fa-material-align[_ngcontent-%COMP%]{margin-top:1px}button[_ngcontent-%COMP%]{min-width:39px;max-width:39px}.center-icon[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center}.material-icons[_ngcontent-%COMP%]{font-size:20px}"]
            }),
            e
        }();
        t.MeasurementListToolbarComponent = p,
        i.ɵsetClassMetadata(p, [{
            type: o.Component,
            args: [{
                selector: "measurement-list-toolbar",
                templateUrl: "MeasurementListToolbar.ng.html",
                styleUrls: ["MeasurementListToolbar.ng.scss"]
            }]
        }], (function() {
            return [{
                type: a.UserService
            }]
        }
        ), {
            isAnythingSelected: [{
                type: o.Input
            }],
            isEverythingHidden: [{
                type: o.Input
            }],
            areAllItemsSelected: [{
                type: o.Input
            }],
            isAsyncOperationInProgress: [{
                type: o.Input
            }],
            onSelectAll: [{
                type: o.Output
            }],
            onDelete: [{
                type: o.Output
            }],
            onSave: [{
                type: o.Output
            }],
            onVisibilityChange: [{
                type: o.Output
            }],
            onShare: [{
                type: o.Output
            }]
        })
    },
    1942: function(e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var o = n(0)
          , r = (n(453),
        n(85))
          , i = (n(171),
        n(8))
          , a = (n(27),
        n(349))
          , s = (n(21),
        n(643))
          , l = n(168)
          , c = n(0)
          , u = n(171)
          , p = n(27)
          , d = n(21)
          , m = n(3)
          , g = n(168)
          , f = n(1692)
          , v = n(1700)
          , h = ["measurementNameInput"]
          , M = ["measurementNoteInput"];
        function C(e, t) {
            if (1 & e && c.ɵɵelement(0, "img", 15),
            2 & e) {
                var n = c.ɵɵnextContext();
                c.ɵɵclassProp("measurement-invisible", !n.measurement.visible),
                c.ɵɵproperty("src", n.measurementIcon, c.ɵɵsanitizeUrl)
            }
        }
        function x(e, t) {
            if (1 & e && c.ɵɵelement(0, "img", 16),
            2 & e) {
                var n = c.ɵɵnextContext();
                c.ɵɵclassProp("measurement-invisible", !n.measurement.visible),
                c.ɵɵproperty("src", n.measurementIcon, c.ɵɵsanitizeUrl)
            }
        }
        function y(e, t) {
            if (1 & e) {
                var n = c.ɵɵgetCurrentView();
                c.ɵɵelementStart(0, "div", 17),
                c.ɵɵlistener("dblclick", (function() {
                    return c.ɵɵrestoreView(n),
                    c.ɵɵnextContext().startModifyingTitle()
                }
                )),
                c.ɵɵtext(1),
                c.ɵɵelementEnd()
            }
            if (2 & e) {
                var o = c.ɵɵnextContext();
                c.ɵɵclassProp("measurement-invisible", !o.measurement.visible),
                c.ɵɵadvance(1),
                c.ɵɵtextInterpolate1(" ", o.measurement.name, " ")
            }
        }
        function S(e, t) {
            if (1 & e && (c.ɵɵelementStart(0, "span", 19),
            c.ɵɵtext(1),
            c.ɵɵelementEnd()),
            2 & e) {
                var n = c.ɵɵnextContext().$implicit;
                c.ɵɵadvance(1),
                c.ɵɵtextInterpolate1(" ", n("unsaved"), " ")
            }
        }
        function b(e, t) {
            if (1 & e && (c.ɵɵelementContainerStart(0),
            c.ɵɵtemplate(1, S, 2, 1, "span", 18),
            c.ɵɵelementContainerEnd()),
            2 & e) {
                var n = c.ɵɵnextContext();
                c.ɵɵadvance(1),
                c.ɵɵproperty("ngIf", n.canUserSaveMeasurements() && !n.isMeasurementSaved(n.measurement))
            }
        }
        var E = function(e) {
            return [e, "distance", 2, .1, !0]
        };
        function w(e, t) {
            if (1 & e && (c.ɵɵelementStart(0, "span", 20),
            c.ɵɵtext(1),
            c.ɵɵpipe(2, "uom"),
            c.ɵɵelementEnd()),
            2 & e) {
                var n = c.ɵɵnextContext();
                c.ɵɵadvance(1),
                c.ɵɵtextInterpolate1(" ", c.ɵɵpipeBindV(2, 1, c.ɵɵpureFunction1(7, E, n.measurement.value)), "")
            }
        }
        function I(e, t) {
            if (1 & e && (c.ɵɵelementStart(0, "span", 21),
            c.ɵɵtext(1),
            c.ɵɵpipe(2, "uom"),
            c.ɵɵelementEnd()),
            2 & e) {
                var n = c.ɵɵnextContext();
                c.ɵɵadvance(1),
                c.ɵɵtextInterpolate1(" ", c.ɵɵpipeBind2(2, 1, n.measurement.value, "area"), "")
            }
        }
        function P(e, t) {
            1 & e && (c.ɵɵelementStart(0, "i", 25),
            c.ɵɵtext(1, "expand_more"),
            c.ɵɵelementEnd())
        }
        function O(e, t) {
            1 & e && (c.ɵɵelementStart(0, "i", 25),
            c.ɵɵtext(1, "expand_less"),
            c.ɵɵelementEnd())
        }
        function _(e, t) {
            if (1 & e) {
                var n = c.ɵɵgetCurrentView();
                c.ɵɵelementStart(0, "button", 23),
                c.ɵɵlistener("click", (function(e) {
                    return c.ɵɵrestoreView(n),
                    c.ɵɵnextContext(2).toggleNote(e)
                }
                )),
                c.ɵɵtemplate(1, P, 2, 0, "i", 24),
                c.ɵɵtemplate(2, O, 2, 0, "i", 24),
                c.ɵɵelementEnd()
            }
            if (2 & e) {
                var o = c.ɵɵnextContext().$implicit
                  , r = c.ɵɵnextContext();
                c.ɵɵproperty("title", o("expand")),
                c.ɵɵadvance(1),
                c.ɵɵproperty("ngIf", !r.noteExpanded),
                c.ɵɵadvance(1),
                c.ɵɵproperty("ngIf", r.noteExpanded)
            }
        }
        function T(e, t) {
            if (1 & e && (c.ɵɵelementContainerStart(0),
            c.ɵɵtemplate(1, _, 3, 3, "button", 22),
            c.ɵɵelementContainerEnd()),
            2 & e) {
                var n = c.ɵɵnextContext();
                c.ɵɵadvance(1),
                c.ɵɵproperty("ngIf", n.canUserSaveMeasurements())
            }
        }
        function A(e, t) {
            if (1 & e && (c.ɵɵelementStart(0, "div", 31),
            c.ɵɵtext(1),
            c.ɵɵelementEnd()),
            2 & e) {
                var n = c.ɵɵnextContext(3);
                c.ɵɵadvance(1),
                c.ɵɵtextInterpolate(n.measurement.note)
            }
        }
        function D(e, t) {
            if (1 & e && (c.ɵɵelementStart(0, "div", 32),
            c.ɵɵtext(1),
            c.ɵɵelementEnd()),
            2 & e) {
                var n = c.ɵɵnextContext(2).$implicit;
                c.ɵɵadvance(1),
                c.ɵɵtextInterpolate(n("Double click to add a description"))
            }
        }
        function V(e, t) {
            if (1 & e) {
                var n = c.ɵɵgetCurrentView();
                c.ɵɵelementStart(0, "div", 17),
                c.ɵɵlistener("dblclick", (function() {
                    return c.ɵɵrestoreView(n),
                    c.ɵɵnextContext(2).editNote()
                }
                )),
                c.ɵɵtemplate(1, A, 2, 1, "div", 29),
                c.ɵɵtemplate(2, D, 2, 1, "div", 30),
                c.ɵɵelementEnd()
            }
            if (2 & e) {
                var o = c.ɵɵnextContext(2);
                c.ɵɵclassProp("measurement-invisible", !o.measurement.visible),
                c.ɵɵadvance(1),
                c.ɵɵproperty("ngIf", o.measurement.note),
                c.ɵɵadvance(1),
                c.ɵɵproperty("ngIf", !o.measurement.note)
            }
        }
        function k(e, t) {
            if (1 & e) {
                var n = c.ɵɵgetCurrentView();
                c.ɵɵelementContainerStart(0),
                c.ɵɵelementStart(1, "div", 26),
                c.ɵɵtemplate(2, V, 3, 4, "div", 7),
                c.ɵɵelementStart(3, "textarea", 27, 28),
                c.ɵɵlistener("focusout", (function() {
                    return c.ɵɵrestoreView(n),
                    c.ɵɵnextContext().saveNote()
                }
                ))("keydown.enter", (function() {
                    return c.ɵɵrestoreView(n),
                    c.ɵɵnextContext().saveNote()
                }
                ))("keyup.escape", (function() {
                    return c.ɵɵrestoreView(n),
                    c.ɵɵnextContext().discardChanges()
                }
                )),
                c.ɵɵelementEnd(),
                c.ɵɵelementEnd(),
                c.ɵɵelementContainerEnd()
            }
            if (2 & e) {
                var o = t.$implicit
                  , r = c.ɵɵnextContext();
                c.ɵɵadvance(2),
                c.ɵɵproperty("ngIf", !r.modifyingNote),
                c.ɵɵadvance(1),
                c.ɵɵproperty("placeholder", o("Double click to add a description"))("hidden", !r.modifyingNote)
            }
        }
        var R = function(e) {
            return {
                hovered: e
            }
        }
          , N = function() {
            function e(e, t, n) {
                this.MeasurementsService = e,
                this.UserService = t,
                this.TrackingService = n,
                this.onItemToggleSelection = new o.EventEmitter,
                this.modifyingTitle = !1,
                this.modifyingNote = !1,
                this.noteExpanded = !1,
                this.discardNameChanges = !1,
                this.preventSingleClick = !1
            }
            return e.prototype.ngOnInit = function() {
                this.measurementIcon = this.getMeasurementIcon()
            }
            ,
            e.prototype.navigateToMeasurement = function() {
                var e = this;
                this.preventSingleClick = !1,
                this.singleClickTimeout = window.setTimeout((function() {
                    e.preventSingleClick || e.MeasurementsService.navigateToMeasurement(e.measurement).catch(i.handleWarning)
                }
                ), a.InputHandler.DOUBLE_CLICK_INTERVAL)
            }
            ,
            e.prototype.toggleSelection = function(e) {
                this.measurement.selected = !this.measurement.selected,
                this.onItemToggleSelection.emit(this.measurement),
                e.stopPropagation()
            }
            ,
            e.prototype.isArea = function() {
                return r.ToolSpec.of(this.measurement.type).type === r.ToolType.AREA
            }
            ,
            e.prototype.isDistance = function() {
                return r.ToolSpec.of(this.measurement.type).type === r.ToolType.DISTANCE
            }
            ,
            e.prototype.startHover = function() {
                this.MeasurementsService.setMeasurementHovered(this.measurement, !0)
            }
            ,
            e.prototype.endHover = function() {
                this.MeasurementsService.setMeasurementHovered(this.measurement, !1)
            }
            ,
            e.prototype.isMeasurementSaved = function(e) {
                return e.isSaved()
            }
            ,
            e.prototype.canUserSaveMeasurements = function() {
                return this.UserService.canSaveMeasurements()
            }
            ,
            e.prototype.startModifyingTitle = function() {
                var e = this;
                this.toggleDoubleClickEdit((function() {
                    e.modifyingTitle = !0
                }
                ), this.measurementNameInput, this.measurement.name)
            }
            ,
            e.prototype.finishModifyingTitle = function() {
                var e = this;
                this.modifyingTitle = this.finishEdit((function(t) {
                    e.measurement.name = t
                }
                ), l.translate(this.measurement.nameIfEmpty), this.measurementNameInput, this.modifyingTitle, s.ModificationType.RENAME)
            }
            ,
            e.prototype.discardChanges = function() {
                this.discardNameChanges = !0,
                this.modifyingTitle = !1,
                this.modifyingNote = !1
            }
            ,
            e.prototype.saveNote = function() {
                var e = this;
                this.modifyingNote = this.finishEdit((function(t) {
                    e.measurement.note = t
                }
                ), "", this.measurementNoteInput, this.modifyingNote, s.ModificationType.ANNOTATED)
            }
            ,
            e.prototype.editNote = function() {
                var e = this;
                this.toggleDoubleClickEdit((function() {
                    e.modifyingNote = !0
                }
                ), this.measurementNoteInput, this.measurement.note)
            }
            ,
            e.prototype.toggleNote = function(e) {
                this.noteExpanded = !this.noteExpanded,
                e.stopPropagation()
            }
            ,
            e.prototype.getMeasurementIcon = function() {
                return r.ToolSpec.of(this.measurement.type).iconSrc
            }
            ,
            e.prototype.toggleDoubleClickEdit = function(e, t, n) {
                this.preventSingleClick = !0,
                clearTimeout(this.singleClickTimeout),
                e(),
                t.nativeElement.value = n,
                t.nativeElement.select(),
                setTimeout((function() {
                    t.nativeElement.focus(),
                    t.nativeElement.select()
                }
                ))
            }
            ,
            e.prototype.finishEdit = function(e, t, n, o, r) {
                o && this.TrackingService.trackPreDefinedEvent((new s.MeasurementModifiedEvent).withModification(r));
                var i = n.nativeElement.value.trim() ? n.nativeElement.value.trim() : t;
                return this.discardNameChanges ? (this.discardNameChanges = !1,
                !1) : (e(i),
                !1)
            }
            ,
            e.ɵfac = function(t) {
                return new (t || e)(c.ɵɵdirectiveInject(u.MeasurementsService),c.ɵɵdirectiveInject(p.UserService),c.ɵɵdirectiveInject(d.TrackingService))
            }
            ,
            e.ɵcmp = c.ɵɵdefineComponent({
                type: e,
                selectors: [["measurement-details"]],
                viewQuery: function(e, t) {
                    var n;
                    (1 & e && (c.ɵɵviewQuery(h, !0),
                    c.ɵɵviewQuery(M, !0)),
                    2 & e) && (c.ɵɵqueryRefresh(n = c.ɵɵloadQuery()) && (t.measurementNameInput = n.first),
                    c.ɵɵqueryRefresh(n = c.ɵɵloadQuery()) && (t.measurementNoteInput = n.first))
                },
                inputs: {
                    measurement: "measurement"
                },
                outputs: {
                    onItemToggleSelection: "onItemToggleSelection"
                },
                decls: 17,
                vars: 18,
                consts: [[1, "clickable", "measurement-details", 3, "ngClass", "click", "mouseenter", "mouseleave"], [1, "measurement-details-row"], [1, "btn", "btn-default", "btn-borderless", 3, "click"], [1, "fa"], ["alt", "distance_icon", "class", "measurement-icon", 3, "src", "measurement-invisible", 4, "ngIf"], ["alt", "area_icon", "class", "measurement-icon", 3, "src", "measurement-invisible", 4, "ngIf"], [1, "measurement-name"], [3, "measurement-invisible", "dblclick", 4, "ngIf"], ["type", "text", "maxlength", "100", 1, "form-control", 3, "hidden", "focusout", "keyup.enter", "keyup.escape"], ["measurementNameInput", ""], [4, "transloco"], [1, "measurement-value"], ["class", "measurement-value-distance", 4, "ngIf"], ["class", "measurement-value-area", 4, "ngIf"], [1, "measurement-details-row", "measurement-note-row", 3, "hidden"], ["alt", "distance_icon", 1, "measurement-icon", 3, "src"], ["alt", "area_icon", 1, "measurement-icon", 3, "src"], [3, "dblclick"], ["class", "unsaved-label", 4, "ngIf"], [1, "unsaved-label"], [1, "measurement-value-distance"], [1, "measurement-value-area"], ["class", "btn btn-default btn-borderless center-icon expand-button", 3, "title", "click", 4, "ngIf"], [1, "btn", "btn-default", "btn-borderless", "center-icon", "expand-button", 3, "title", "click"], ["class", "material-icons", 4, "ngIf"], [1, "material-icons"], [1, "measurement-note-container"], ["maxlength", "255", "rows", "2", 1, "form-control", "note", 3, "placeholder", "hidden", "focusout", "keydown.enter", "keyup.escape"], ["measurementNoteInput", ""], ["class", "measurement-note", 4, "ngIf"], ["class", "measurement-note-placeholder", 4, "ngIf"], [1, "measurement-note"], [1, "measurement-note-placeholder"]],
                template: function(e, t) {
                    1 & e && (c.ɵɵelementStart(0, "div", 0),
                    c.ɵɵlistener("click", (function() {
                        return t.navigateToMeasurement()
                    }
                    ))("mouseenter", (function() {
                        return t.startHover()
                    }
                    ))("mouseleave", (function() {
                        return t.endHover()
                    }
                    )),
                    c.ɵɵelementStart(1, "div", 1),
                    c.ɵɵelementStart(2, "button", 2),
                    c.ɵɵlistener("click", (function(e) {
                        return t.toggleSelection(e)
                    }
                    )),
                    c.ɵɵelement(3, "i", 3),
                    c.ɵɵelementEnd(),
                    c.ɵɵtemplate(4, C, 1, 3, "img", 4),
                    c.ɵɵtemplate(5, x, 1, 3, "img", 5),
                    c.ɵɵelementStart(6, "div", 6),
                    c.ɵɵtemplate(7, y, 2, 3, "div", 7),
                    c.ɵɵelementStart(8, "input", 8, 9),
                    c.ɵɵlistener("focusout", (function() {
                        return t.finishModifyingTitle()
                    }
                    ))("keyup.enter", (function() {
                        return t.finishModifyingTitle()
                    }
                    ))("keyup.escape", (function() {
                        return t.discardChanges()
                    }
                    )),
                    c.ɵɵelementEnd(),
                    c.ɵɵelementEnd(),
                    c.ɵɵtemplate(10, b, 2, 1, "ng-container", 10),
                    c.ɵɵelementStart(11, "span", 11),
                    c.ɵɵtemplate(12, w, 3, 9, "span", 12),
                    c.ɵɵtemplate(13, I, 3, 4, "span", 13),
                    c.ɵɵelementEnd(),
                    c.ɵɵtemplate(14, T, 2, 1, "ng-container", 10),
                    c.ɵɵelementEnd(),
                    c.ɵɵelementStart(15, "div", 14),
                    c.ɵɵtemplate(16, k, 5, 3, "ng-container", 10),
                    c.ɵɵelementEnd(),
                    c.ɵɵelementEnd()),
                    2 & e && (c.ɵɵproperty("ngClass", c.ɵɵpureFunction1(16, R, t.measurement.isHovered)),
                    c.ɵɵadvance(3),
                    c.ɵɵclassProp("fa-square-o", !t.measurement.selected)("fa-check-square-o", t.measurement.selected),
                    c.ɵɵadvance(1),
                    c.ɵɵproperty("ngIf", t.isDistance()),
                    c.ɵɵadvance(1),
                    c.ɵɵproperty("ngIf", t.isArea()),
                    c.ɵɵadvance(2),
                    c.ɵɵproperty("ngIf", !t.modifyingTitle),
                    c.ɵɵadvance(1),
                    c.ɵɵproperty("hidden", !t.modifyingTitle),
                    c.ɵɵadvance(3),
                    c.ɵɵclassProp("measurement-invisible", !t.measurement.visible),
                    c.ɵɵadvance(1),
                    c.ɵɵproperty("ngIf", t.isDistance()),
                    c.ɵɵadvance(1),
                    c.ɵɵproperty("ngIf", t.isArea()),
                    c.ɵɵadvance(2),
                    c.ɵɵclassProp("measurement-note-edit", t.modifyingNote),
                    c.ɵɵproperty("hidden", !t.noteExpanded))
                },
                directives: [m.NgClass, m.NgIf, g.TranslocoDirective, f.AddBaseUrlDirective],
                pipes: [v.UoMPipe],
                styles: [".hovered[_ngcontent-%COMP%]{background-color:#e6e6e6}.measurement-details[_ngcontent-%COMP%]{flex-direction:column;padding:10px 20px}.measurement-details[_ngcontent-%COMP%], .measurement-details-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end}.measurement-details-row[_ngcontent-%COMP%]{flex-grow:1;flex-direction:row;height:20px;width:100%;margin:10px 0}.measurement-details-row.measurement-note-edit[_ngcontent-%COMP%]{height:54px;overflow:hidden}.measurement-details-row.measurement-note-row[_ngcontent-%COMP%]{height:auto;max-height:54px;overflow:auto}button[_ngcontent-%COMP%]{min-width:39px}.expand-button[_ngcontent-%COMP%]{min-width:50px}.measurement-icon[_ngcontent-%COMP%]{margin:0 1.7em 0 .3em;flex-shrink:0}.measurement-name[_ngcontent-%COMP%], .measurement-note-container[_ngcontent-%COMP%]{flex-grow:1;overflow:hidden}.measurement-name[_ngcontent-%COMP%]   div[_ngcontent-%COMP%], .measurement-note-container[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.measurement-name[_ngcontent-%COMP%]   input[_ngcontent-%COMP%], .measurement-name[_ngcontent-%COMP%]   textarea[_ngcontent-%COMP%], .measurement-note-container[_ngcontent-%COMP%]   input[_ngcontent-%COMP%], .measurement-note-container[_ngcontent-%COMP%]   textarea[_ngcontent-%COMP%]{width:100%;border-radius:4px;resize:none}.measurement-name[_ngcontent-%COMP%]   div.measurement-note-placeholder[_ngcontent-%COMP%], .measurement-note-container[_ngcontent-%COMP%]   div.measurement-note-placeholder[_ngcontent-%COMP%]{font-style:italic}.measurement-name[_ngcontent-%COMP%]   div.measurement-note[_ngcontent-%COMP%], .measurement-note-container[_ngcontent-%COMP%]   div.measurement-note[_ngcontent-%COMP%]{white-space:pre-wrap}.measurement-note-container[_ngcontent-%COMP%]{margin-left:92px;padding-right:44px;max-height:54px;overflow-y:auto}.measurement-value[_ngcontent-%COMP%]{line-height:40px;min-width:110px;text-align:right}.measurement-value[_ngcontent-%COMP%]   .measurement-value-distance[_ngcontent-%COMP%]{padding-right:20px}.measurement-value[_ngcontent-%COMP%]   .measurement-value-area[_ngcontent-%COMP%]{padding-right:15px}.unsaved-label[_ngcontent-%COMP%]{color:#d3d3d3;padding-left:10px}.measurement-invisible[_ngcontent-%COMP%]{opacity:.3}[hidden][_ngcontent-%COMP%]{display:none!important}"]
            }),
            e
        }();
        t.MeasurementDetailsComponent = N,
        c.ɵsetClassMetadata(N, [{
            type: o.Component,
            args: [{
                selector: "measurement-details",
                templateUrl: "MeasurementDetails.ng.html",
                styleUrls: ["MeasurementDetails.ng.scss"]
            }]
        }], (function() {
            return [{
                type: u.MeasurementsService
            }, {
                type: p.UserService
            }, {
                type: d.TrackingService
            }]
        }
        ), {
            measurement: [{
                type: o.Input
            }],
            onItemToggleSelection: [{
                type: o.Output
            }],
            measurementNameInput: [{
                type: o.ViewChild,
                args: ["measurementNameInput", {
                    static: !1
                }]
            }],
            measurementNoteInput: [{
                type: o.ViewChild,
                args: ["measurementNoteInput", {
                    static: !1
                }]
            }]
        })
    },
    1943: 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 {
                        l(o.next(e))
                    } catch (e) {
                        i(e)
                    }
                }
                function s(e) {
                    try {
                        l(o.throw(e))
                    } catch (e) {
                        i(e)
                    }
                }
                function l(e) {
                    var t;
                    e.done ? r(e.value) : (t = e.value,
                    t instanceof n ? t : new n((function(e) {
                        e(t)
                    }
                    ))).then(a, s)
                }
                l((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(2)
          , s = n(6)
          , l = (n(31),
        n(27),
        n(168))
          , c = n(8)
          , u = (n(17),
        n(65),
        n(1944),
        n(440),
        n(1696))
          , p = n(0)
          , d = n(27)
          , m = n(31)
          , g = n(65)
          , f = n(17)
          , v = n(1944)
          , h = n(440)
          , M = n(3)
          , C = n(168)
          , x = n(1692)
          , y = ["adminWarningBody"]
          , S = ["warningBody"];
        function b(e, t) {
            if (1 & e) {
                var n = p.ɵɵgetCurrentView();
                p.ɵɵelementStart(0, "div", 2),
                p.ɵɵlistener("click", (function() {
                    return p.ɵɵrestoreView(n),
                    p.ɵɵnextContext().showWarningModal()
                }
                )),
                p.ɵɵelement(1, "img", 3),
                p.ɵɵelementEnd()
            }
            if (2 & e) {
                var o = p.ɵɵnextContext();
                p.ɵɵadvance(1),
                p.ɵɵproperty("src", o.warnButtonImg, p.ɵɵsanitizeUrl)
            }
        }
        function E(e, t) {
            if (1 & e && (p.ɵɵelementStart(0, "p"),
            p.ɵɵtext(1),
            p.ɵɵelementEnd(),
            p.ɵɵelementStart(2, "p"),
            p.ɵɵtext(3),
            p.ɵɵelementEnd(),
            p.ɵɵelementStart(4, "p"),
            p.ɵɵtext(5),
            p.ɵɵelementEnd()),
            2 & e) {
                var n = p.ɵɵnextContext().$implicit;
                p.ɵɵadvance(1),
                p.ɵɵtextInterpolate(n("The depth maps are used in panorama mode by the cursor to visualize the distance of an object to the current position. The improved depth maps allow you to capture and measure details in the panoramas more accurately.")),
                p.ɵɵadvance(2),
                p.ɵɵtextInterpolate(n("The update may take a while, but during this time you will be still able use the measurement mode.")),
                p.ɵɵadvance(2),
                p.ɵɵtextInterpolate(n("Do you want to start the update?"))
            }
        }
        function w(e, t) {
            if (1 & e && (p.ɵɵelementStart(0, "p"),
            p.ɵɵtext(1),
            p.ɵɵelementEnd()),
            2 & e) {
                var n = p.ɵɵnextContext().$implicit;
                p.ɵɵadvance(1),
                p.ɵɵtextInterpolate(n("Please contact your 4dkankan administrator to update your data. The update will allow you to capture and measure details in the panoramas more accurately."))
            }
        }
        function I(e, t) {
            1 & e && (p.ɵɵelementContainerStart(0),
            p.ɵɵtemplate(1, E, 6, 3, "ng-template", null, 4, p.ɵɵtemplateRefExtractor),
            p.ɵɵtemplate(3, w, 2, 1, "ng-template", null, 5, p.ɵɵtemplateRefExtractor),
            p.ɵɵelementContainerEnd())
        }
        var P = function() {
            function e(e, t, o, r, i, a, s) {
                this.userService = e,
                this.datasetRepository = t,
                this.ViewMenuService = o,
                this.PointCloudMenuService = r,
                this.ViewService = i,
                this.WebdirUpgradeService = a,
                this.MatDialog = s,
                this.warnButtonImg = n(2049),
                this.depthMapsUpgradeable = !0
            }
            return e.prototype.showWarningModal = function() {
                var e = this;
                this.userService.isAdmin() ? this.MatDialog.open(u.AlertDialogComponent, {
                    width: "600px",
                    data: {
                        title: l.translate("Depth Images Update Available"),
                        body: this.adminWarningBody,
                        cancelButton: !1,
                        declineButton: l.translate("Later"),
                        confirmButton: l.translate("Update")
                    }
                }).afterClosed().subscribe((function(t) {
                    return e.onAdminDialogResult(t)
                }
                )) : this.MatDialog.open(u.AlertDialogComponent, {
                    width: "600px",
                    data: {
                        title: l.translate("New Data Update Available"),
                        body: this.warningBody,
                        cancelButton: !1,
                        declineButton: !1,
                        confirmButton: l.translate("Close")
                    }
                })
            }
            ,
            e.prototype.onAdminDialogResult = function(e) {
                e === u.AlertDialogResult.CONFIRMED && this.userService.isAdmin() && this.WebdirUpgradeService.webdirUpgrade().catch(c.handleWarning)
            }
            ,
            e.prototype.ngAfterViewInit = function() {
                this.setup().catch(c.handleWarning)
            }
            ,
            e.prototype.setup = function() {
                return o(this, void 0, void 0, (function() {
                    var e;
                    return r(this, (function(t) {
                        switch (t.label) {
                        case 0:
                            return e = this,
                            [4, this.areDepthMapsUpgradeable()];
                        case 1:
                            return e.depthMapsUpgradeable = t.sent(),
                            this.userService.isAdmin() && this.depthMapsUpgradeable && this.shouldShowWarningIcon() && this.showWarningModal(),
                            [2]
                        }
                    }
                    ))
                }
                ))
            }
            ,
            e.prototype.shouldShowWarningIcon = function() {
                return this.depthMapsUpgradeable && this.ViewMenuService.config.showPanoramas && !this.PointCloudMenuService.config.showPointCloud && this.ViewService.mainView.getDefaultViewport().active && !this.WebdirUpgradeService.isJobInProgress && !this.WebdirUpgradeService.hasJobFinished
            }
            ,
            e.prototype.areDepthMapsUpgradeable = function() {
                return o(this, void 0, void 0, (function() {
                    var e;
                    return r(this, (function(t) {
                        switch (t.label) {
                        case 0:
                            return [4, this.datasetRepository.findAll()];
                        case 1:
                            return e = t.sent(),
                            [2, e.filter((function(e) {
                                return e.hasSensorFrame && e.hasDepthImages && "2" !== e.depthImageVersion
                            }
                            )).length > 0]
                        }
                    }
                    ))
                }
                ))
            }
            ,
            e.ɵfac = function(t) {
                return new (t || e)(p.ɵɵdirectiveInject(d.UserService),p.ɵɵdirectiveInject(m.DatasetRepository),p.ɵɵdirectiveInject(g.ViewMenuService),p.ɵɵdirectiveInject("PointCloudMenuService"),p.ɵɵdirectiveInject(f.ViewService),p.ɵɵdirectiveInject(v.WebDirUpgradeService),p.ɵɵdirectiveInject(h.MatDialog))
            }
            ,
            e.ɵcmp = p.ɵɵdefineComponent({
                type: e,
                selectors: [["depth-warn-button"]],
                viewQuery: function(e, t) {
                    var n;
                    (1 & e && (p.ɵɵviewQuery(y, !0),
                    p.ɵɵviewQuery(S, !0)),
                    2 & e) && (p.ɵɵqueryRefresh(n = p.ɵɵloadQuery()) && (t.adminWarningBody = n.first),
                    p.ɵɵqueryRefresh(n = p.ɵɵloadQuery()) && (t.warningBody = n.first))
                },
                decls: 2,
                vars: 1,
                consts: [["class", "warn-button-icon", 3, "click", 4, "ngIf"], [4, "transloco"], [1, "warn-button-icon", 3, "click"], [3, "src"], ["adminWarningBody", ""], ["warningBody", ""]],
                template: function(e, t) {
                    1 & e && (p.ɵɵtemplate(0, b, 2, 1, "div", 0),
                    p.ɵɵtemplate(1, I, 5, 0, "ng-container", 1)),
                    2 & e && p.ɵɵproperty("ngIf", t.shouldShowWarningIcon())
                },
                directives: [M.NgIf, C.TranslocoDirective, x.AddBaseUrlDirective],
                styles: [".warn-button-icon[_ngcontent-%COMP%]{cursor:pointer}"]
            }),
            e
        }();
        t.DepthMapWarnButtonComponent = P,
        p.ɵsetClassMetadata(P, [{
            type: i.Component,
            args: [{
                selector: "depth-warn-button",
                templateUrl: "DepthMapWarnButton.ng.html",
                styleUrls: ["DepthMapWarnButton.ng.scss"]
            }]
        }], (function() {
            return [{
                type: d.UserService
            }, {
                type: m.DatasetRepository
            }, {
                type: g.ViewMenuService
            }, {
                type: void 0,
                decorators: [{
                    type: i.Inject,
                    args: ["PointCloudMenuService"]
                }]
            }, {
                type: f.ViewService
            }, {
                type: v.WebDirUpgradeService
            }, {
                type: h.MatDialog
            }]
        }
        ), {
            adminWarningBody: [{
                type: i.ViewChild,
                args: ["adminWarningBody", {
                    static: !1
                }]
            }],
            warningBody: [{
                type: i.ViewChild,
                args: ["warningBody", {
                    static: !1
                }]
            }]
        }),
        a.module("IVWebApp").directive("depthWarnButton", s.downgradeComponent({
            component: P
        }))
    },
    1944: function(e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var o = n(0)
          , r = (n(9),
        n(188),
        n(107))
          , i = (n(61),
        n(0))
          , a = n(9)
          , s = n(188)
          , l = n(61)
          , c = function() {
            function e(e, t, n, o) {
                this.RestService = e,
                this.JobService = t,
                this.MessageReportingService = n,
                this.gettext = o,
                this.inProgress = !1,
                this.hasFinished = !1
            }
            return e.prototype.webdirUpgrade = function() {
                var e = this;
                this.inProgress = !0;
                var t = this.RestService.getApi("webdir_upgrade", {});
                return r.promiseFinally(this.JobService.makeJobPromise(t), (function() {
                    e.hasFinished = !0,
                    e.inProgress = !1
                }
                )).catch((function(t) {
                    t.data.exception && t.data.exception.endsWith("JobExecutionAlreadyRunningException") ? e.MessageReportingService.showMessage(e.gettext("Job already started"), e.gettext("The dataset upgrade is already in progress")) : e.MessageReportingService.showMessage(e.gettext("Failed to start dataset upgrade"), t.data.msg)
                }
                )),
                t
            }
            ,
            Object.defineProperty(e.prototype, "isJobInProgress", {
                get: function() {
                    return this.inProgress
                },
                enumerable: !0,
                configurable: !0
            }),
            Object.defineProperty(e.prototype, "hasJobFinished", {
                get: function() {
                    return this.hasFinished
                },
                enumerable: !0,
                configurable: !0
            }),
            e.ɵfac = function(t) {
                return new (t || e)(i.ɵɵinject(a.RestService),i.ɵɵinject(s.JobService),i.ɵɵinject(l.MessageReportingService),i.ɵɵinject("gettext"))
            }
            ,
            e.ɵprov = i.ɵɵdefineInjectable({
                token: e,
                factory: e.ɵfac,
                providedIn: "root"
            }),
            e
        }();
        t.WebDirUpgradeService = c,
        i.ɵsetClassMetadata(c, [{
            type: o.Injectable,
            args: [{
                providedIn: "root"
            }]
        }], (function() {
            return [{
                type: a.RestService
            }, {
                type: s.JobService
            }, {
                type: l.MessageReportingService
            }, {
                type: void 0,
                decorators: [{
                    type: o.Inject,
                    args: ["gettext"]
                }]
            }]
        }
        ), null)
    },
    2048: function(e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {
            value: !0
        });
        var o = n(0)
          , r = (n(171),
        n(8))
          , i = n(89)
          , a = n(1696)
          , s = (n(281),
        n(131),
        n(21),
        n(627))
          , l = n(628)
          , c = (n(440),
        n(73),
        n(1908),
        n(106),
        n(168))
          , u = n(107)
          , p = n(0)
          , d = n(171)
          , m = n(281)
          , g = n(131)
          , f = n(21)
          , v = n(440)
          , h = n(73)
          , M = n(106)
          , C = n(168)
          , x = n(1704)
          , y = n(1938)
          , S = n(1940)
          , b = n(1908)
          , E = n(1943)
          , w = ["measurementExportModal"];
        function I(e, t) {
            if (1 & e) {
                var n = p.ɵɵgetCurrentView();
                p.ɵɵelementContainerStart(0, 1),
                p.ɵɵelementStart(1, "measurement-tool-selection", 2),
                p.ɵɵlistener("selectedTool", (function(e) {
                    return p.ɵɵrestoreView(n),
                    p.ɵɵnextContext().onToolSelected(e)
                }
                )),
                p.ɵɵelementEnd(),
                p.ɵɵelementStart(2, "measurement-list", 3),
                p.ɵɵlistener("deleteSelected", (function(e) {
                    return p.ɵɵrestoreView(n),
                    p.ɵɵnextContext().onDeleteSelectedMeasurements(e)
                }
                ))("saveSelected", (function(e) {
                    return p.ɵɵrestoreView(n),
                    p.ɵɵnextContext().onSaveSelectedMeasurements(e)
                }
                ))("shareSelected", (function(e) {
                    return p.ɵɵrestoreView(n),
                    p.ɵɵnextContext().onShareSelectedMeasurements(e)
                }
                )),
                p.ɵɵelementEnd(),
                p.ɵɵelement(3, "measurement-export", 4, 5),
                p.ɵɵelementStart(5, "div", 6),
                p.ɵɵelement(6, "depth-warn-button"),
                p.ɵɵelementEnd(),
                p.ɵɵelementContainerEnd()
            }
            if (2 & e) {
                var o = p.ɵɵnextContext();
                p.ɵɵadvance(1),
                p.ɵɵproperty("currentTool", o.currentMeasurementMode())("isCollapsedView", o.isCollapsedView()),
                p.ɵɵadvance(1),
                p.ɵɵproperty("isAsyncOperationInProgress", o.isAsyncOperationInProgress())("isCollapsedView", o.isCollapsedView())("measurementsList", o.measurementsList),
                p.ɵɵadvance(1),
                p.ɵɵproperty("exportAllMeasurementLink", o.exportAllMeasurementLink)("exportMeasurementList", o.exportMeasurementList)
            }
        }
        var P = function() {
            function e(e, t, n, o, r, a, s, l) {
                var c = this;
                this.MeasurementsService = e,
                this.ChangeDetectorRef = t,
                this.MeasurementRepository = n,
                this.ToolboxMenuService = o,
                this.TrackingService = r,
                this.MatDialog = a,
                this.UrlService = s,
                this.ProgressReportService = l,
                this.savePromiseWrapper = new i.PromiseProgressWrapper,
                this.deletePromiseWrapper = new i.PromiseProgressWrapper,
                this.preparingForExport = !1,
                this.measurementUpdateConnection = this.MeasurementsService.measurementsUpdated.connect((function() {
                    c.measurementsList = c.MeasurementsService.measurements,
                    c.ChangeDetectorRef.detectChanges()
                }
                ))
            }
            return Object.defineProperty(e.prototype, "isCollapsed", {
                get: function() {
                    return this.isCollapsedView()
                },
                enumerable: !0,
                configurable: !0
            }),
            e.prototype.ngOnInit = function() {
                var e = this;
                this.measurementsList = this.MeasurementsService.measurements,
                this.measurementsClosingConnection = this.MeasurementsService.measurementModeExiting.connect((function() {
                    e.MatDialog.open(a.AlertDialogComponent, {
                        data: {
                            title: c.translate("Save Changes Before Leaving"),
                            body: c.translate("You have unsaved changes to the {subject}.", {
                                subject: c.translate("Measurement Tool")
                            }),
                            cancelButton: c.translate("Cancel"),
                            declineButton: c.translate("Discard"),
                            confirmButton: c.translate("Save")
                        }
                    }).afterClosed().subscribe((function(t) {
                        t === a.AlertDialogResult.CONFIRMED ? e.onSave() : t === a.AlertDialogResult.DECLINED && e.onDiscard()
                    }
                    ))
                }
                ))
            }
            ,
            e.prototype.onToolSelected = function(e) {
                this.MeasurementsService.updateMeasurementMode(e)
            }
            ,
            e.prototype.currentMeasurementMode = function() {
                return this.MeasurementsService.currentMeasurementMode
            }
            ,
            e.prototype.onDeleteSelectedMeasurements = function(e) {
                this.deletePromiseWrapper.wrap(this.MeasurementsService.deleteMeasurements(e)).catch(r.handleWarning)
            }
            ,
            e.prototype.onSaveSelectedMeasurements = function(e) {
                this.savePromiseWrapper.wrap(this.MeasurementsService.saveMeasurements(e)).catch(r.handleWarning)
            }
            ,
            e.prototype.ngOnDestroy = function() {
                this.measurementUpdateConnection && this.measurementUpdateConnection.disconnect(),
                this.measurementsClosingConnection && this.measurementsClosingConnection.disconnect()
            }
            ,
            e.prototype.onSave = function() {
                var e = this;
                this.MeasurementsService.saveMeasurements(this.measurementsList).then((function() {
                    e.MeasurementsService.measurements.length = 0,
                    e.MeasurementRepository.resetCache(),
                    e.MeasurementsService.readyToClose.resolve(),
                    e.TrackingService.trackPreDefinedEvent((new s.MeasurementsSavedEvent).numberOfMeasurements(1).interactionArea(l.InteractionArea.SaveDiscardDialog))
                }
                )).catch((function() {
                    e.MeasurementsService.readyToClose.reject()
                }
                ))
            }
            ,
            e.prototype.onDiscard = function() {
                this.MeasurementsService.sessionMetrics.discardMeasurements(this.MeasurementsService.unsavedMeasurements.length),
                this.MeasurementsService.measurements.length = 0,
                this.MeasurementRepository.resetCache(),
                this.MeasurementsService.readyToClose.resolve()
            }
            ,
            e.prototype.isAsyncOperationInProgress = function() {
                return this.savePromiseWrapper.isInProgress || this.deletePromiseWrapper.isInProgress || this.preparingForExport
            }
            ,
            e.prototype.isCollapsedView = function() {
                return this.ToolboxMenuService.isCollapsed
            }
            ,
            e.prototype.onShareSelectedMeasurements = function(e) {
                var t = this;
                this.preparingForExport = !0;
                var n = this.ProgressReportService.addTask(c.translate("Preparing selected measurements..."), 1, !0, !0, !1, !0, 0);
                e.sort((function(e, t) {
                    return t.createdDate.getTime() - e.createdDate.getTime()
                }
                )),
                this.exportAllMeasurementLink = this.UrlService.generateMeasurementsURL(e);
                var o = (new Date).getTime()
                  , i = this.MeasurementsService.exportMeasurements(e);
                u.promiseFinally(i, (function() {
                    t.trackGtmShareEvent(o),
                    n.itemDone(),
                    t.preparingForExport = !1
                }
                )).then((function(e) {
                    t.exportMeasurementList = e,
                    t.measurementExportModal.showModal()
                }
                )).catch(r.handleWarning)
            }
            ,
            e.prototype.trackGtmShareEvent = function(e) {
                this.MeasurementsService.trackGtmAllShareMeasurementsElapsedTimeEvent(e)
            }
            ,
            e.ɵfac = function(t) {
                return new (t || e)(p.ɵɵdirectiveInject(d.MeasurementsService),p.ɵɵdirectiveInject(p.ChangeDetectorRef),p.ɵɵdirectiveInject(m.MeasurementRepository),p.ɵɵdirectiveInject(g.ToolboxMenuService),p.ɵɵdirectiveInject(f.TrackingService),p.ɵɵdirectiveInject(v.MatDialog),p.ɵɵdirectiveInject(h.UrlService),p.ɵɵdirectiveInject(M.ProgressReportService))
            }
            ,
            e.ɵcmp = p.ɵɵdefineComponent({
                type: e,
                selectors: [["measurements"]],
                viewQuery: function(e, t) {
                    var n;
                    (1 & e && p.ɵɵviewQuery(w, !0),
                    2 & e) && (p.ɵɵqueryRefresh(n = p.ɵɵloadQuery()) && (t.measurementExportModal = n.first))
                },
                hostVars: 2,
                hostBindings: function(e, t) {
                    2 & e && p.ɵɵclassProp("collapsed-view", t.isCollapsed)
                },
                decls: 1,
                vars: 0,
                consts: [["redirectFocusToScene", "", 4, "transloco"], ["redirectFocusToScene", ""], [3, "currentTool", "isCollapsedView", "selectedTool"], [3, "isAsyncOperationInProgress", "isCollapsedView", "measurementsList", "deleteSelected", "saveSelected", "shareSelected"], [3, "exportAllMeasurementLink", "exportMeasurementList"], ["measurementExportModal", ""], [1, "warning-button"]],
                template: function(e, t) {
                    1 & e && p.ɵɵtemplate(0, I, 7, 7, "ng-container", 0)
                },
                directives: [C.TranslocoDirective, x.RedirectFocusToMainViewDirective, y.MeasurementToolSelectionComponent, S.MeasurementListComponent, b.MeasurementExportModalComponent, E.DepthMapWarnButtonComponent],
                styles: ["[_nghost-%COMP%]{position:absolute;width:100%;display:flex;flex-direction:column;height:calc(100vh - 62px);margin:-15px -20px;padding:25px 20px 0}.collapsed-view[_nghost-%COMP%]{position:static;margin:0;padding:0}.collapsed-view[_nghost-%COMP%]   measurement-list[_ngcontent-%COMP%]{margin:0}.collapsed-view[_nghost-%COMP%]   measurement-tool-selection[_ngcontent-%COMP%]{margin-bottom:0}measurement-tool-selection[_ngcontent-%COMP%]{margin-bottom:12px}measurement-list[_ngcontent-%COMP%]{margin:0 -20px}.warning-button[_ngcontent-%COMP%]{position:absolute;bottom:30px;left:-75px}"]
            }),
            e
        }();
        t.MeasurementsComponent = P,
        p.ɵsetClassMetadata(P, [{
            type: o.Component,
            args: [{
                selector: "measurements",
                templateUrl: "Measurements.ng.html",
                styleUrls: ["Measurements.ng.scss"]
            }]
        }], (function() {
            return [{
                type: d.MeasurementsService
            }, {
                type: p.ChangeDetectorRef
            }, {
                type: m.MeasurementRepository
            }, {
                type: g.ToolboxMenuService
            }, {
                type: f.TrackingService
            }, {
                type: v.MatDialog
            }, {
                type: h.UrlService
            }, {
                type: M.ProgressReportService
            }]
        }
        ), {
            isCollapsed: [{
                type: o.HostBinding,
                args: ["class.collapsed-view"]
            }],
            measurementExportModal: [{
                type: o.ViewChild,
                args: ["measurementExportModal", {
                    static: !1
                }]
            }]
        })
    },
    2049: function(e, t, n) {
        e.exports = n.p + "8f205d6811eb2231cd87b97fa86a3099.warn-button.png"
    }
}]);
