????

Your IP : 3.144.147.211


Current Path : C:/inetpub/vhost/bcvt.kontum.gov.vn/www/
Upload File :
Current File : C:/inetpub/vhost/bcvt.kontum.gov.vn/www/59-es5.js

(function () {
  var absMids = {
    "esri/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DModel": "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DModel.js",
    "esri/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool": "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js",
    "esri/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView": "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js",
    "esri/views/3d/support/PropertiesPool": "./node_modules/arcgis-js-api/views/3d/support/PropertiesPool.js",
    "esri/views/3d/webgl-engine/materials/ColorMaterial": "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/ColorMaterial.js",
    "esri/views/3d/webgl-engine/materials/MeasurementArrowMaterial": "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js",
    "esri/views/3d/webgl-engine/shaders/ColorMaterial.glsl": "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js",
    "esri/views/3d/webgl-engine/shaders/ColorMaterialTechnique": "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js",
    "esri/views/3d/webgl-engine/shaders/MeasurementArrowPrograms": "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/MeasurementArrowPrograms.js",
    "esri/widgets/DirectLineMeasurement3D": "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D.js",
    "esri/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel": "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js",
    "esri/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D": "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js",
    "esri/widgets/DirectLineMeasurement3D/nls/vi/DirectLineMeasurement3D": "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/vi/DirectLineMeasurement3D.js",
    "dojo/i18n!esri/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D": "./node_modules/dojo-webpack-plugin/loaders/dojo/i18n/index.js!./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js"
  };
  var globalObj = this || window;
  var jsonpArray = globalObj["webpackJsonp"] = globalObj["webpackJsonp"] || [];

  if (jsonpArray.registerAbsMids) {
    jsonpArray.registerAbsMids(absMids);
  } else {
    var absMidsWaiting = jsonpArray.absMidsWaiting = jsonpArray.absMidsWaiting || [];
    absMidsWaiting.push(absMids);
  }
})(), (window["webpackJsonp"] = window["webpackJsonp"] || []).push([[59], {
  /***/
  "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DModel.js":
  /*!**********************************************************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DModel.js ***!
    \**********************************************************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dInteractiveMeasurementToolsDirectLineMeasurement3DDirectLineMeasurement3DModelJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../../../../core/tsSupport/declareExtendsHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/declareExtendsHelper.js"), __webpack_require__(
    /*! ../../../../../core/tsSupport/decorateHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/decorateHelper.js"), __webpack_require__(
    /*! ../../../../../core/Accessor */
    "./node_modules/arcgis-js-api/core/Accessor.js"), __webpack_require__(
    /*! ../../../../../core/Handles */
    "./node_modules/arcgis-js-api/core/Handles.js"), __webpack_require__(
    /*! ../../../../../core/mathUtils */
    "./node_modules/arcgis-js-api/core/mathUtils.js"), __webpack_require__(
    /*! ../../../../../core/Quantity */
    "./node_modules/arcgis-js-api/core/Quantity.js"), __webpack_require__(
    /*! ../../../../../core/quantityUtils */
    "./node_modules/arcgis-js-api/core/quantityUtils.js"), __webpack_require__(
    /*! ../../../../../core/unitUtils */
    "./node_modules/arcgis-js-api/core/unitUtils.js"), __webpack_require__(
    /*! ../../../../../core/watchUtils */
    "./node_modules/arcgis-js-api/core/watchUtils.js"), __webpack_require__(
    /*! ../../../../../core/accessorSupport/decorators */
    "./node_modules/arcgis-js-api/core/accessorSupport/decorators.js"), __webpack_require__(
    /*! ../../../../../core/libs/gl-matrix-2/vec3 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/vec3.js"), __webpack_require__(
    /*! ../../../../../core/libs/gl-matrix-2/vec3f64 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/vec3f64.js"), __webpack_require__(
    /*! ../../../../../geometry/Point */
    "./node_modules/arcgis-js-api/geometry/Point.js"), __webpack_require__(
    /*! ../../../../../geometry/support/geodesicUtils */
    "./node_modules/arcgis-js-api/geometry/support/geodesicUtils.js"), __webpack_require__(
    /*! ../support/UnitNormalizer */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/UnitNormalizer.js"), __webpack_require__(
    /*! ../../../support/earthUtils */
    "./node_modules/arcgis-js-api/views/3d/support/earthUtils.js"), __webpack_require__(
    /*! ../../../support/projectionUtils */
    "./node_modules/arcgis-js-api/views/3d/support/projectionUtils.js"), __webpack_require__(
    /*! ../../../support/PropertiesPool */
    "./node_modules/arcgis-js-api/views/3d/support/PropertiesPool.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (e, t, i, r, n, o, a, s, c, l, p, u, d, h, m, f, g, y, v, P) {
      var b = y.earthRadius * Math.PI / 180,
          _ = function (e) {
        function t() {
          var t = null !== e && e.apply(this, arguments) || this;
          return t._tempStartPosition = h.vec3f64.create(), t._tempEndPosition = h.vec3f64.create(), t._tempCornerPosition = h.vec3f64.create(), t._unitNormalizer = new g(), t._handles = new o(), t._propertiesPool = new P["default"]({
            startPoint: m,
            endPoint: m
          }, t), t.cursorPoint = null, t.state = "initial", t.mode = "auto", t.unit = "metric", t.active = !1, t.directDistance = null, t.horizontalDistance = null, t.verticalDistance = null, t.geodesicDistance = null, t.geodesicAngle = null, t.triangleCollapseRatioThreshold = .03, t.geodesicMeasurementDistanceThreshold = 1e5, t;
        }

        return i(t, e), t.prototype.initialize = function () {
          var e = this;
          this._handles.add(p.init(this.sceneView, "spatialReference", function (t) {
            e._unitNormalizer.spatialReference = t;
          }), "scene-view"), this.reset();
        }, t.prototype.destroy = function () {
          this._handles.destroy(), this._handles = null, this._propertiesPool.destroy(), this._propertiesPool = null;
        }, Object.defineProperty(t.prototype, "startPoint", {
          set: function set(e) {
            if (!e) return void this._set("startPoint", null);

            var t = this._propertiesPool.get("startPoint");

            t.copy(e), this._set("startPoint", t), this._updateMeasurement();
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "startPointSurfaceLocation", {
          set: function set(e) {
            this._set("startPointSurfaceLocation", e), this._updateMeasurement();
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "endPoint", {
          set: function set(e) {
            if (!e) return void this._set("endPoint", null);

            var t = this._propertiesPool.get("endPoint");

            t.copy(e), this._set("endPoint", t), this._updateMeasurement();
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "endPointSurfaceLocation", {
          set: function set(e) {
            this._set("endPointSurfaceLocation", e), this._updateMeasurement();
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "measurementSurfaceLocation", {
          get: function get() {
            var e = this.startPointSurfaceLocation,
                t = this.endPointSurfaceLocation;
            return null == e || null == t ? "camera-dependent" : "above-the-surface" === e && "below-the-surface" === t || "below-the-surface" === e && "above-the-surface" === t || "on-the-surface" === e && "on-the-surface" === t ? "camera-dependent" : "above-the-surface" === e || "above-the-surface" === t ? "above-the-surface" : "below-the-surface";
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "validMeasurement", {
          get: function get() {
            return !!this.startPoint && !!this.endPoint;
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "isMeasuring", {
          get: function get() {
            return !!this.startPoint;
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "geodesicDistanceExceeded", {
          get: function get() {
            return this.horizontalDistance && this.horizontalDistance.value > this.geodesicMeasurementDistanceThreshold;
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "measurementMode", {
          get: function get() {
            var e = this.mode;
            return "auto" === e && (e = "euclidean", "degrees" !== this.unit && "degrees-minutes-seconds" !== this.unit || (e = "geodesic"), this.geodesicDistanceExceeded && (e = "geodesic")), e;
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "triangleView", {
          get: function get() {
            var e = this._collapseTriangle(),
                t = null,
                i = null,
                r = null,
                n = "geodesic" === this.measurementMode,
                o = this.directDistance,
                s = n ? this.geodesicDistance : this.horizontalDistance,
                p = this.verticalDistance,
                u = null;

            switch (this.unit) {
              case "metric":
                t = o && c.formatMetricLength(o), i = s && c.formatMetricLength(s), r = p && c.formatMetricVerticalLength(p), u = o && o.toUnit("meters");
                break;

              case "imperial":
                t = o && c.formatImperialLength(o), i = s && c.formatImperialLength(s), r = p && c.formatImperialVerticalLength(p), u = o && o.toUnit(l.preferredImperialLengthUnit(o.value, o.unit));
                break;

              case "degrees":
                i = this.geodesicAngle && c.formatDecimal(this.geodesicAngle, "degrees"), u = this.geodesicAngle && this.geodesicAngle.toUnit("degrees");
                break;

              case "degrees-minutes-seconds":
                i = this.geodesicAngle && c.formatDMS(this.geodesicAngle), u = this.geodesicAngle && this.geodesicAngle.toUnit("degrees");
                break;

              default:
                t = o && c.formatDecimal(o, this.unit), i = s && c.formatDecimal(s, this.unit), r = p && c.formatDecimal(p, this.unit), u = o && o.toUnit(this.unit);
            }

            var d = 1;
            return u && (d = a.nextHighestPowerOfTen(u.value / 30), d *= "degrees" === u.unit ? b : l.convertUnit(1, u.unit, "meters"), d /= this._unitNormalizer.normalizeDistance(1)), {
              visible: this.validMeasurement && !this.startPoint.equals(this.endPoint),
              mode: this.measurementMode,
              collapsed: e,
              directLabel: t,
              horizontalLabel: i,
              verticalLabel: r,
              stripeLength: d
            };
          },
          enumerable: !0,
          configurable: !0
        }), t.prototype.reset = function () {
          this.clearMeasurement();
        }, t.prototype.clearMeasurement = function () {
          this.state = "initial", this.startPoint = null, this.endPoint = null, this.cursorPoint = null, this._clearOverride("measurementSurfaceLocation"), this._updateMeasurement();
        }, t.prototype.finishMeasurement = function () {
          if (!this._isOverridden("measurementSurfaceLocation")) {
            var e = this.measurementSurfaceLocation,
                t = "camera-dependent" === e ? this.sceneView.state.camera.aboveGround ? "above-the-surface" : "below-the-surface" : e;

            this._override("measurementSurfaceLocation", t);
          }

          this.state = "measured";
        }, t.prototype._collapseTriangle = function () {
          return !(this.validMeasurement && !this.startPoint.equals(this.endPoint)) || "geodesic" === this.measurementMode || Math.min(this.verticalDistance.value / this.horizontalDistance.value, this.horizontalDistance.value / this.verticalDistance.value) < this.triangleCollapseRatioThreshold;
        }, t.prototype._exactGeodesicDistanceAndAngle = function (e, t) {
          v.pointToWGS84ComparableLonLat(e, D), v.pointToWGS84ComparableLonLat(t, M);
          var i = a.deg2rad(D[0]),
              r = a.deg2rad(D[1]),
              n = a.deg2rad(M[0]),
              o = a.deg2rad(M[1]),
              c = Math.abs(n - i),
              l = a.acosClamped(Math.sin(r) * Math.sin(o) + Math.cos(r) * Math.cos(o) * Math.cos(c)),
              p = a.rad2deg(l),
              u = {
            distance: 0
          };
          return f.inverseGeodeticSolver(u, [D[0], D[1]], [M[0], M[1]]), {
            distance: new s(u.distance, "meters"),
            angle: new s(p, "degrees")
          };
        }, t.prototype._approximateGeodesicDistanceAndAngle = function (e) {
          return {
            distance: new s(e, "meters"),
            angle: new s(e / b, "degrees")
          };
        }, t.prototype._euclideanDistances = function (e, t) {
          e.z > t.z && (e = [e, e = t][0]);
          var i = e.clone();
          i.z = t.z;
          var r = this._tempStartPosition,
              n = this._tempEndPosition,
              o = this._tempCornerPosition,
              a = this.sceneView.spatialReference,
              c = v.canProject(a, v.WGS84ECEFSpatialReference) ? v.WGS84ECEFSpatialReference : a;
          v.pointToVector(e, r, c), v.pointToVector(t, n, c), v.pointToVector(i, o, c);
          var l = d.vec3.distance(r, n),
              p = d.vec3.distance(o, n),
              u = Math.abs(t.z - e.z);
          return l = this._unitNormalizer.normalizeDistance(l), p = this._unitNormalizer.normalizeDistance(p), u = this._unitNormalizer.normalizeElevation(u), {
            direct: new s(l, "meters"),
            horizontal: new s(p, "meters"),
            vertical: new s(u, "meters")
          };
        }, t.prototype._updateMeasurement = function () {
          if (!this.startPoint || !this.endPoint) return this._set("directDistance", null), this._set("horizontalDistance", null), this._set("verticalDistance", null), this._set("geodesicDistance", null), void this._set("geodesicAngle", null);

          var e = this._euclideanDistances(this.startPoint, this.endPoint),
              t = this.sceneView.spatialReference,
              i = v.canProjectToWGS84ComparableLonLat(t) ? this._exactGeodesicDistanceAndAngle(this.startPoint, this.endPoint) : this._approximateGeodesicDistanceAndAngle(e.horizontal.value);

          this._set("directDistance", e.direct), this._set("horizontalDistance", e.horizontal), this._set("verticalDistance", e.vertical), this._set("geodesicDistance", i.distance), this._set("geodesicAngle", i.angle);
        }, r([u.property({
          constructOnly: !0
        })], t.prototype, "sceneView", void 0), r([u.property({
          value: null
        })], t.prototype, "startPoint", null), r([u.property({
          value: null
        })], t.prototype, "startPointSurfaceLocation", null), r([u.property({
          value: null
        })], t.prototype, "endPoint", null), r([u.property({
          value: null
        })], t.prototype, "endPointSurfaceLocation", null), r([u.property({
          dependsOn: ["startPointSurfaceLocation", "endPointSurfaceLocation"]
        })], t.prototype, "measurementSurfaceLocation", null), r([u.property()], t.prototype, "cursorPoint", void 0), r([u.property()], t.prototype, "state", void 0), r([u.property()], t.prototype, "mode", void 0), r([u.property()], t.prototype, "unit", void 0), r([u.property()], t.prototype, "active", void 0), r([u.property({
          readOnly: !0,
          dependsOn: ["startPoint", "endPoint"]
        })], t.prototype, "validMeasurement", null), r([u.property({
          readOnly: !0,
          dependsOn: ["startPoint"]
        })], t.prototype, "isMeasuring", null), r([u.property({
          readOnly: !0
        })], t.prototype, "directDistance", void 0), r([u.property({
          readOnly: !0
        })], t.prototype, "horizontalDistance", void 0), r([u.property({
          readOnly: !0
        })], t.prototype, "verticalDistance", void 0), r([u.property({
          readOnly: !0
        })], t.prototype, "geodesicDistance", void 0), r([u.property({
          readOnly: !0
        })], t.prototype, "geodesicAngle", void 0), r([u.property({
          readOnly: !0,
          dependsOn: ["horizontalDistance", "geodesicMeasurementDistanceThreshold"]
        })], t.prototype, "geodesicDistanceExceeded", null), r([u.property({
          readOnly: !0,
          dependsOn: ["horizontalDistance", "unit", "geodesicDistanceExceeded"]
        })], t.prototype, "measurementMode", null), r([u.property({
          readOnly: !0,
          dependsOn: ["unit", "measurementMode", "startPoint", "endPoint", "triangleCollapseRatioThreshold"]
        })], t.prototype, "triangleView", null), r([u.property()], t.prototype, "triangleCollapseRatioThreshold", void 0), r([u.property()], t.prototype, "geodesicMeasurementDistanceThreshold", void 0), t = r([u.subclass("esri.views.3d.interactive.measurementTools.directLineMeasurement3D.DirectLineMeasurement3DModel")], t);
      }(u.declared(n)),
          D = h.vec3f64.create(),
          M = h.vec3f64.create();

      return _;
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js":
  /*!*********************************************************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js ***!
    \*********************************************************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dInteractiveMeasurementToolsDirectLineMeasurement3DDirectLineMeasurement3DToolJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../../../../core/tsSupport/declareExtendsHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/declareExtendsHelper.js"), __webpack_require__(
    /*! ../../../../../core/tsSupport/decorateHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/decorateHelper.js"), __webpack_require__(
    /*! ../../../../../core/tsSupport/restHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/restHelper.js"), __webpack_require__(
    /*! ../../../../../geometry */
    "./node_modules/arcgis-js-api/geometry.js"), __webpack_require__(
    /*! ../../../../../core/Handles */
    "./node_modules/arcgis-js-api/core/Handles.js"), __webpack_require__(
    /*! ../../../../../core/maybe */
    "./node_modules/arcgis-js-api/core/maybe.js"), __webpack_require__(
    /*! ../../../../../core/screenUtils */
    "./node_modules/arcgis-js-api/core/screenUtils.js"), __webpack_require__(
    /*! ../../../../../core/watchUtils */
    "./node_modules/arcgis-js-api/core/watchUtils.js"), __webpack_require__(
    /*! ../../../../../core/accessorSupport/decorators */
    "./node_modules/arcgis-js-api/core/accessorSupport/decorators.js"), __webpack_require__(
    /*! ../../../../../layers/graphics/dehydratedFeatures */
    "./node_modules/arcgis-js-api/layers/graphics/dehydratedFeatures.js"), __webpack_require__(
    /*! ./DirectLineMeasurement3DModel */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DModel.js"), __webpack_require__(
    /*! ./DirectLineMeasurement3DView */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js"), __webpack_require__(
    /*! ../../../../interactive/InteractiveToolBase */
    "./node_modules/arcgis-js-api/views/interactive/InteractiveToolBase.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (e, t, i, o, n, r, a, s, c, l, d, p, u, h, m) {
      function v(e) {
        return "mouse" !== e.pointerType || 0 === e.button;
      }

      var y = function (e) {
        function t(t) {
          var i = e.call(this, t) || this;
          return i._handles = new a(), i._cachedPickRequest = new h.PickRequest(), i._cachedPickResult = new h.PickResult(), i._isAnyPointerDown = !1, i.deferCreation = !0, i.startManipulator = null, i.endManipulator = null, i.model = new u({
            sceneView: t.view
          }), i;
        }

        return i(t, e), t.prototype.normalizeCtorArgs = function (e) {
          e.view;
          return n(e, ["view"]);
        }, t.prototype.initialize = function () {
          var e = this;
          this._view = new h(this.model);
          var t = l.init(this, "state", function (t) {
            "ready" !== t && e.create(), "measured" === t && e.complete();
          }, !0);

          this._handles.add(t);

          var i = this._view.createManipulators(),
              o = i.start,
              n = i.end;

          o.events.on("drag", function () {
            var t = o.mapPoint,
                i = o.surfaceType;

            if (s.isSome(t) && s.isSome(i)) {
              var n = p.clonePoint(t, f);
              e.model.startPoint = n, e.model.startPointSurfaceLocation = e._surfaceLocation(n, i);
            }
          }), n.events.on("drag", function () {
            var t = n.mapPoint,
                i = n.surfaceType;

            if (s.isSome(t) && s.isSome(i)) {
              var o = p.clonePoint(t, f);
              e.model.endPoint = o, e.model.endPointSurfaceLocation = e._surfaceLocation(o, i);
            }
          }), [o, n].forEach(function (t) {
            e._handles.add([t.watch("grabbing", function () {
              var t = o.grabbing || n.grabbing;
              t && "measured" === e.model.state && (e.model.state = "editing"), t || (e.model.finishMeasurement(), "editing" === e.model.state && (e.model.state = "measured"));
            }, !0)]);
          }), this.manipulators.add(o), this.manipulators.add(n), this.startManipulator = o, this.endManipulator = n;
        }, t.prototype.destroy = function () {
          this._view.destroy(), this._view = null, this._handles.destroy(), this._handles = null;
        }, Object.defineProperty(t.prototype, "state", {
          get: function get() {
            return this.model.isMeasuring ? "measured" === this.model.state ? "measured" : "measuring" : "ready";
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "creating", {
          get: function get() {
            return "initial" === this.model.state || "drawing" === this.model.state;
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "isSupported", {
          get: function get() {
            return "3d" === this.get("view.type");
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "cursor", {
          get: function get() {
            return !this.model.active || "drawing" !== this.model.state && "initial" !== this.model.state ? null : "crosshair";
          },
          enumerable: !0,
          configurable: !0
        }), t.prototype.activate = function () {
          this.model.active = !0;
        }, t.prototype.deactivate = function () {
          this.model.active = !1;
        }, t.prototype.onDetach = function () {
          this.model.reset();
        }, t.prototype.onShow = function () {
          this._view.show(), this._updateManipulatorVisibility();
        }, t.prototype.onHide = function () {
          this._view.hide();
        }, t.prototype.onInputEvent = function (e) {
          switch (e.type) {
            case "immediate-click":
              this._handleImmediateClick(e);

              break;

            case "pointer-move":
              this._handlePointerMove(e);

              break;

            case "pointer-down":
              this._handlePointerDown();

              break;

            case "pointer-up":
              this._handlePointerUp();

          }

          this._updateManipulatorVisibility();
        }, t.prototype._handlePointerMove = function (e) {
          this._clearCachedPickRequest();

          var t = c.createScreenPointFromEvent(e);
          "mouse" === e.pointerType && (this._hoverAt(t), "drawing" === this.model.state && (this.endManipulator.events.emit("drag", {
            action: "update",
            start: null,
            screenPoint: t
          }), e.stopPropagation()));
        }, t.prototype._handlePointerDown = function () {
          this._isAnyPointerDown = !0;
        }, t.prototype._handlePointerUp = function () {
          this._isAnyPointerDown = !1;
        }, t.prototype._handleImmediateClick = function (e) {
          if (this._clearCachedPickRequest(), v(e)) {
            var t = c.createScreenPointFromEvent(e),
                i = !1;
            if (this.model.active) switch (this.model.state) {
              case "initial":
                this.startManipulator.events.emit("drag", {
                  action: "start",
                  start: t,
                  screenPoint: t
                }), null != this.startManipulator.surfaceType && (this.startManipulator.interactive = !1, this.endManipulator.interactive = !1, this.model.state = "drawing", i = !0);
                break;

              case "drawing":
                this.endManipulator.events.emit("drag", {
                  action: "update",
                  start: null,
                  screenPoint: t
                }), null != this.endManipulator.surfaceType && (this.startManipulator.interactive = !0, this.endManipulator.interactive = !0, this.model.finishMeasurement(), i = !0);
            }
            i && e.stopPropagation(), "mouse" === e.pointerType && this._hoverAt(t);
          }
        }, t.prototype._hoverAt = function (e) {
          var t = this._isAnyPointerDown && "drawing" !== this.model.state && "editing" !== this.model.state;

          if (this._view.requiresCursorPoint && !t) {
            var i = this._pick(e);

            i.mapPoint && (this.model.cursorPoint = i.mapPoint);
          } else this.model.cursorPoint = null;
        }, t.prototype._pick = function (e) {
          var t = this._cachedPickRequest.screenPoint;
          return t && t.x === e.x && t.y === e.y ? this._cachedPickResult : (this._cachedPickRequest.screenPoint = e, this._cachedPickResult = this._view.pick(this._cachedPickRequest), this._cachedPickResult);
        }, t.prototype._clearCachedPickRequest = function () {
          this._cachedPickRequest.screenPoint = null;
        }, t.prototype._surfaceLocation = function (e, t) {
          return "ground" === t ? "on-the-surface" : e.z >= this._view.getElevation(e) ? "above-the-surface" : "below-the-surface";
        }, t.prototype._updateManipulatorVisibility = function () {
          this.startManipulator.visible = null != this.model.startPoint, this.endManipulator.visible = null != this.model.endPoint;
        }, o([d.property({
          dependsOn: ["model.isMeasuring", "model.state"],
          readOnly: !0
        })], t.prototype, "state", null), o([d.property({
          dependsOn: ["model.state"],
          readOnly: !0
        })], t.prototype, "creating", null), o([d.property({
          dependsOn: ["view.type"],
          readOnly: !0
        })], t.prototype, "isSupported", null), o([d.property({
          dependsOn: ["model.active", "model.state"],
          readOnly: !0
        })], t.prototype, "cursor", null), o([d.property({
          constructOnly: !0
        })], t.prototype, "model", void 0), o([d.aliasOf("model.sceneView")], t.prototype, "view", void 0), o([d.aliasOf("model.mode")], t.prototype, "mode", void 0), o([d.aliasOf("model.unit")], t.prototype, "unit", void 0), o([d.aliasOf("model.directDistance")], t.prototype, "directDistance", void 0), o([d.aliasOf("model.validMeasurement")], t.prototype, "validMeasurement", void 0), o([d.aliasOf("model.horizontalDistance")], t.prototype, "horizontalDistance", void 0), o([d.aliasOf("model.verticalDistance")], t.prototype, "verticalDistance", void 0), o([d.aliasOf("model.geodesicDistance")], t.prototype, "geodesicDistance", void 0), o([d.aliasOf("model.geodesicAngle")], t.prototype, "geodesicAngle", void 0), o([d.aliasOf("model.triangleView")], t.prototype, "triangleView", void 0), t = o([d.subclass("esri.views.3d.interactive.measurementTools.directLineMeasurement3D.DirectLineMeasurement3DTool")], t);
      }(d.declared(m.InteractiveToolBase)),
          f = new r.Point();

      return y;
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js":
  /*!*********************************************************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js ***!
    \*********************************************************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dInteractiveMeasurementToolsDirectLineMeasurement3DDirectLineMeasurement3DViewJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../../../../core/tsSupport/declareExtendsHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/declareExtendsHelper.js"), __webpack_require__(
    /*! ../../../../../core/tsSupport/decorateHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/decorateHelper.js"), __webpack_require__(
    /*! ../../../../../core/Handles */
    "./node_modules/arcgis-js-api/core/Handles.js"), __webpack_require__(
    /*! ../../../../../core/mathUtils */
    "./node_modules/arcgis-js-api/core/mathUtils.js"), __webpack_require__(
    /*! ../../../../../core/screenUtils */
    "./node_modules/arcgis-js-api/core/screenUtils.js"), __webpack_require__(
    /*! ../../../../../core/libs/gl-matrix-2/mat4 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/mat4.js"), __webpack_require__(
    /*! ../../../../../core/libs/gl-matrix-2/mat4f64 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/mat4f64.js"), __webpack_require__(
    /*! ../../../../../core/libs/gl-matrix-2/vec2 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/vec2.js"), __webpack_require__(
    /*! ../../../../../core/libs/gl-matrix-2/vec3 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/vec3.js"), __webpack_require__(
    /*! ../../../../../core/libs/gl-matrix-2/vec3f64 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/vec3f64.js"), __webpack_require__(
    /*! ../../manipulatorUtils */
    "./node_modules/arcgis-js-api/views/3d/interactive/manipulatorUtils.js"), __webpack_require__(
    /*! ./LaserLineRenderer */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/LaserLineRenderer.js"), __webpack_require__(
    /*! ../support/Label */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/Label.js"), __webpack_require__(
    /*! ../support/LabelSegment */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/LabelSegment.js"), __webpack_require__(
    /*! ../support/labelUtils */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/labelUtils.js"), __webpack_require__(
    /*! ../support/PathSegmentInterpolator */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/PathSegmentInterpolator.js"), __webpack_require__(
    /*! ../support/viewUtils */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/viewUtils.js"), __webpack_require__(
    /*! ../../../support/projectionUtils */
    "./node_modules/arcgis-js-api/views/3d/support/projectionUtils.js"), __webpack_require__(
    /*! ../../../support/stack */
    "./node_modules/arcgis-js-api/views/3d/support/stack.js"), __webpack_require__(
    /*! ../../../webgl-engine/lib/Geometry */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Geometry.js"), __webpack_require__(
    /*! ../../../webgl-engine/lib/GeometryData */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GeometryData.js"), __webpack_require__(
    /*! ../../../webgl-engine/lib/GeometryUtil */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GeometryUtil.js"), __webpack_require__(
    /*! ../../../webgl-engine/lib/Intersector */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Intersector.js"), __webpack_require__(
    /*! ../../../webgl-engine/lib/Layer */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Layer.js"), __webpack_require__(
    /*! ../../../webgl-engine/lib/Object3D */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Object3D.js"), __webpack_require__(
    /*! ../../../webgl-engine/materials/ColorMaterial */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/ColorMaterial.js"), __webpack_require__(
    /*! ../../../webgl-engine/materials/lineStippleUtils */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/lineStippleUtils.js"), __webpack_require__(
    /*! ../../../webgl-engine/materials/MeasurementArrowMaterial */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js"), __webpack_require__(
    /*! ../../../webgl-engine/materials/RibbonLineMaterial */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/RibbonLineMaterial.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (e, t, i, r, o, n, s, a, l, c, d, h, _, u, p, g, m, b, v, w, L, P, f, j, y, O, S, G, C, V, A) {
      var M = [1, .5, 0, .75],
          R = {
        laserLineGlowColor: [1, .5, 0],
        laserLineGlowWidth: 8,
        laserLineInnerColor: [1, 1, 1],
        laserLineInnerWidth: .75,
        laserLineGlobalAlpha: .75,
        laserLineEnabled: !0,
        handleColor: [1, .5, 0],
        handleOpacity: .5,
        handleRadius: 5,
        triangleColor: M,
        triangleLineWidth: 3,
        triangleCornerSize: 32,
        triangleSubdivisions: 128,
        arrowWidth: 16,
        arrowOutlineColor: [1, .5, 0, 1],
        arrowOutlineWidth: .2,
        arrowStripeEvenColor: [1, 1, 1, 1],
        arrowStripeOddColor: [1, .5, 0, 1],
        arrowStripeLength: 16,
        arrowSubdivisions: 128,
        geodesicProjectionLineWidth: 2,
        geodesicProjectionLineColor: M,
        guideLineWidth: 2,
        guideLineColor: M,
        guideStippleLengthPixels: 6,
        labelDistance: 25
      },
          D = function () {
        function e(e, t) {
          void 0 === t && (t = {}), this._visible = !1, this._laserLineRenderer = null, this._directDistanceLabel = new p(), this._horizontalDistanceLabel = new p(), this._verticalDistanceLabel = new p(), this._handles = new o(), this._listenerHandles = null, this._cursorPosition = h.vec3f64.create(), this._startPosition = h.vec3f64.create(), this._endPosition = h.vec3f64.create(), this._centerPosition = h.vec3f64.create(), this._cornerPosition = h.vec3f64.create(), this._arrowLabelSegment = new g(), this._horizontalLabelSegment = new g(), this._verticalLabelSegment = new g(), this._geodesicProjectionLabelSegment = new g(), this._origin = h.vec3f64.create(), this._originTransform = l.mat4f64.create(), this._lastDraggedHandle = null, this._model = e, this._sceneView = e.sceneView, this._params = v.copyParameter(R, t), this._layer = new O("point-to-point-measurement", {
            isPickable: !1
          }), this._createMaterials(), this._createObjects(), this._intersector = new y(this._sceneView.viewingMode), this._intersector.options.store = 0;
        }

        return e.prototype.destroy = function () {
          this.hide(), this._handles.destroy(), this._handles = null;
        }, Object.defineProperty(e.prototype, "requiresCursorPoint", {
          get: function get() {
            return "initial" === this._model.state && this._model.active;
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "cameraAboveGround", {
          get: function get() {
            return this._sceneView.state.camera.aboveGround;
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "visible", {
          get: function get() {
            return this._visible;
          },
          set: function set(e) {
            e ? this.show() : this.hide();
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(e.prototype, "testData", {
          get: function get() {
            return {
              labels: {
                direct: this._directDistanceLabel,
                horizontal: this._horizontalDistanceLabel,
                vertical: this._verticalDistanceLabel
              },
              laserLineRenderer: this._laserLineRenderer
            };
          },
          enumerable: !0,
          configurable: !0
        }), e.prototype.createManipulators = function () {
          var e = this,
              t = function t() {
            var t = _.createSphereManipulator(e._sceneView, e._params.handleColor, e._params.handleOpacity);

            return t.visible = !1, t.hideOnGrab = !0, t.radius = e._params.handleRadius, t;
          },
              i = t(),
              r = t();

          this._model.startPoint && (i.mapPoint = this._model.startPoint, i.visible = !0), this._model.endPoint && (r.mapPoint = this._model.endPoint, r.visible = !0);

          var o = function o() {
            var t = e._lastDraggedHandle;
            i.grabbing && !r.grabbing && (t = "start"), r.grabbing && !i.grabbing && (t = "end"), i.grabbing || r.grabbing || (t = null);
            var o = t !== e._lastDraggedHandle;
            e._lastDraggedHandle = t, o && e.visible && e._updateLaserLine();
          };

          return this._handles.add([i.watch("grabbing", function () {
            o();
          }), r.watch("grabbing", function () {
            o();
          })]), {
            start: i,
            end: r
          };
        }, e.prototype.show = function () {
          if (!this._visible) {
            this._visible = !0;
            var e = this._sceneView._stage,
                t = {
              glowColor: this._params.laserLineGlowColor,
              glowWidth: this._params.laserLineGlowWidth,
              innerColor: this._params.laserLineInnerColor,
              innerWidth: this._params.laserLineInnerWidth,
              globalAlpha: this._params.laserLineGlobalAlpha
            };
            this._laserLineRenderer = new u(this._sceneView.renderCoordsHelper, t), e.addRenderPlugin(this._laserLineRenderer.renderSlots, this._laserLineRenderer), this._addToStage(e), this._directDistanceLabel.addToView(this._sceneView), this._horizontalDistanceLabel.addToView(this._sceneView), this._verticalDistanceLabel.addToView(this._sceneView), this._initializeListeners(), this._updateCursorPosition(), this._updateStartPosition(), this._updateEndPosition(), this._updateLaserLine(), this._updateView();
          }
        }, e.prototype.hide = function () {
          if (this._visible) {
            this._visible = !1;
            var e = this._sceneView._stage;
            e.removeRenderPlugin(this._laserLineRenderer), this._laserLineRenderer = null, this._removeFromStage(e), this._directDistanceLabel.removeFromView(this._sceneView), this._horizontalDistanceLabel.removeFromView(this._sceneView), this._verticalDistanceLabel.removeFromView(this._sceneView), this._destroyListeners(), this._sceneView.cursor = null;
          }
        }, e.prototype.pick = function (t) {
          var i = this._sceneView.spatialReference,
              r = s.screenPointObjectToArray(t.screenPoint);

          this._sceneView.sceneIntersectionHelper.intersectToolIntersectorScreen(r, this._intersector);

          var o = this._intersector.results.min,
              n = h.vec3f64.create();
          if (!o.getIntersectionPoint(n)) return new e.PickResult();

          var a = this._sceneView.renderCoordsHelper.fromRenderCoords(n, i),
              l = "TerrainRenderer" === o.intersector ? "ground" : "feature";

          return new e.PickResult(l, n, a);
        }, e.prototype.getElevation = function (e) {
          return this._sceneView.basemapTerrain.ready ? this._sceneView.basemapTerrain.getElevation(e) || 0 : 0;
        }, e.prototype.overlappingHandles = function (e, t) {
          return v.pointToPointScreenDistance(e, t, this._sceneView) <= this._params.handleRadius;
        }, e.prototype._createMaterials = function () {
          this._triangleLineMaterial = new A({
            width: this._params.triangleLineWidth,
            color: this._params.triangleColor,
            polygonOffset: !0
          }, "triangle-line"), this._triangleLineMaterial.renderOccluded = 4, this._triangleCornerMaterial = new G({
            color: this._params.triangleColor,
            transparent: !0,
            writeDepth: !1,
            polygonOffset: !0
          }, "triangle-corner"), this._triangleCornerMaterial.renderOccluded = 4, this._arrowMaterial = new V({
            outlineColor: this._params.arrowOutlineColor,
            stripeEvenColor: this._params.arrowStripeEvenColor,
            stripeOddColor: this._params.arrowStripeOddColor,
            polygonOffset: !0
          }, "arrow"), this._arrowMaterial.renderOccluded = 4, this._geodesicProjectionLineMaterial = new A({
            width: this._params.geodesicProjectionLineWidth,
            color: this._params.geodesicProjectionLineColor,
            polygonOffset: !0
          }, "geodesic-line"), this._geodesicProjectionLineMaterial.renderOccluded = 4, this._geodesicGuideLineMaterial = new A({
            width: this._params.guideLineWidth,
            color: this._params.geodesicProjectionLineColor,
            polygonOffset: !0,
            stipplePattern: C.createStipplePatternSimple(this._params.guideStippleLengthPixels),
            stippleIntegerRepeats: !1
          }, "geodesic-guide"), this._geodesicGuideLineMaterial.renderOccluded = 4;
        }, e.prototype._createObjects = function () {
          this._triangleLineObject = new S(), this._layer.addObject(this._triangleLineObject), this._triangleCornerObject = new S(), this._layer.addObject(this._triangleCornerObject), this._arrowObject = new S(), this._layer.addObject(this._arrowObject), this._geodesicProjectionLineObject = new S(), this._layer.addObject(this._geodesicProjectionLineObject), this._geodesicProjectionStartGuideObject = new S(), this._layer.addObject(this._geodesicProjectionStartGuideObject), this._geodesicProjectionEndGuideObject = new S(), this._layer.addObject(this._geodesicProjectionEndGuideObject);
        }, e.prototype._addToStage = function (e) {
          e.add(0, this._layer), e.add(3, this._triangleLineMaterial), e.add(3, this._triangleCornerMaterial), e.add(3, this._arrowMaterial), e.add(3, this._geodesicProjectionLineMaterial), e.add(3, this._geodesicGuideLineMaterial), e.add(1, this._triangleLineObject), e.add(1, this._triangleCornerObject), e.add(1, this._arrowObject), e.add(1, this._geodesicProjectionLineObject), e.add(1, this._geodesicProjectionStartGuideObject), e.add(1, this._geodesicProjectionEndGuideObject), e.addToViewContent([this._layer.id]);
        }, e.prototype._removeFromStage = function (e) {
          e.removeFromViewContent([this._layer.id]), e.remove(0, this._layer.id), e.remove(3, this._triangleLineMaterial.id), e.remove(3, this._triangleCornerMaterial.id), e.remove(3, this._arrowMaterial.id), e.remove(3, this._geodesicProjectionLineMaterial.id), e.remove(3, this._geodesicGuideLineMaterial.id), e.remove(1, this._triangleLineObject.id), e.remove(1, this._triangleCornerObject.id), e.remove(1, this._arrowObject.id), e.remove(1, this._geodesicProjectionLineObject.id), e.remove(1, this._geodesicProjectionStartGuideObject.id), e.remove(1, this._geodesicProjectionEndGuideObject.id);
        }, e.prototype._getLabelPositions = function (e, t, i, r, o) {
          var a = this._model.triangleView,
              l = a.collapsed,
              d = s.castRenderScreenPointArray3(L.sv3d.get()),
              h = s.castRenderScreenPointArray3(L.sv3d.get());
          o.projectPoint(i, d), o.projectPoint(t, h);
          var _ = {
            direct: l ? "top" : "bottom",
            horizontal: "top",
            vertical: d[0] < h[0] ? "left" : "right"
          };

          if (!l) {
            var u = L.sv2d.get(),
                p = L.sv2d.get();
            if (v.screenSpaceTangent(e, i, u, o), v.screenSpaceTangent(e, t, p, o), c.vec2.dot(u, p) >= z) _.direct = n.sign(u[1]) === n.sign(p[1]) ? m.mirrorPosition(_.vertical) : _.vertical;else {
              var g = s.castRenderScreenPointArray(L.sv2d.get());
              v.screenSpaceTangent(i, t, g, o), c.vec2.dot(g, p) >= z && (_.direct = n.sign(g[0]) === n.sign(p[0]) ? m.mirrorPosition(_.horizontal) : _.horizontal);
            }
          }

          if ("below-the-surface" === r) {
            var b = function b(e) {
              return "top" === e ? "bottom" : "top";
            };

            _.direct = b(_.direct), _.horizontal = b(_.horizontal), _.vertical = b(_.vertical);
          }

          return _;
        }, e.prototype._updateView = function () {
          var e;

          if (this._sceneView.ready) {
            var t = this._sceneView._stage,
                i = t.getCamera(),
                r = this._sceneView.renderCoordsHelper,
                o = this._model.triangleView;
            if (!o.visible) return this._triangleLineObject.removeAllGeometries(), this._triangleCornerObject.removeAllGeometries(), this._arrowObject.removeAllGeometries(), this._geodesicProjectionLineObject.removeAllGeometries(), this._geodesicProjectionStartGuideObject.removeAllGeometries(), this._geodesicProjectionEndGuideObject.removeAllGeometries(), this._directDistanceLabel.visible = !1, this._horizontalDistanceLabel.visible = !1, void (this._verticalDistanceLabel.visible = !1);
            var n = "camera-dependent" === this._model.measurementSurfaceLocation ? this._sceneView.state.camera.aboveGround ? "above-the-surface" : "below-the-surface" : this._model.measurementSurfaceLocation,
                s = this._startPosition,
                l = this._endPosition,
                c = "above-the-surface" === n ? 1 : -1,
                h = c * (r.getAltitude(l) - r.getAltitude(s));
            h < 0 && (e = [l, s], s = e[0], l = e[1]);
            var _ = this._cornerPosition;
            r.worldUpAtPosition(s, _), d.vec3.scale(_, _, c * Math.abs(h)), d.vec3.add(_, _, s);
            var u = this._centerPosition;
            v.midpoint([s, l, _], u), d.vec3.copy(this._origin, u), a.mat4.identity(this._originTransform), a.mat4.translate(this._originTransform, this._originTransform, this._origin), o.collapsed ? (this._triangleLineObject.removeAllGeometries(), this._triangleCornerObject.removeAllGeometries()) : this._updateTriangleObjects(this._triangleLineObject, this._triangleCornerObject, s, l, _, this._origin, this._originTransform, i, this._horizontalLabelSegment, this._verticalLabelSegment), this._updateArrowObject(this._arrowObject, this._startPosition, this._endPosition, this._origin, this._originTransform, o.stripeLength, i, o.mode, this._arrowLabelSegment);

            var p = this._requiresGeodesicGuides(this._startPosition, this._endPosition, i, o.mode);

            this._updateGeodesicProjectionLineObject(this._geodesicProjectionLineObject, this._startPosition, this._endPosition, this._origin, this._originTransform, p, this._geodesicProjectionLabelSegment), this._updateGeodesicProjectionGuideObjects(p);

            var g = this._params.labelDistance,
                m = this._getLabelPositions(s, l, _, n, i);

            this._updateAuxiliaryMeasureLabels(o, i, m), "geodesic" !== o.mode ? this._updateLabel(this._directDistanceLabel, this._arrowLabelSegment, g, m.direct, o.directLabel, o.visible, 16, i) : (this._updateLabel(this._horizontalDistanceLabel, p ? this._geodesicProjectionLabelSegment : this._arrowLabelSegment, g, m.horizontal, o.horizontalLabel, o.visible, 16, i), this._directDistanceLabel.visible = !1);
          }
        }, e.prototype._updateAuxiliaryMeasureLabels = function (e, t, i) {
          if (e.collapsed) return this._horizontalDistanceLabel.visible = !1, void (this._verticalDistanceLabel.visible = !1);
          var r = this._params.labelDistance;
          this._updateLabel(this._horizontalDistanceLabel, this._horizontalLabelSegment, r, i.horizontal, e.horizontalLabel, !0, 12, t), this._updateLabel(this._verticalDistanceLabel, this._verticalLabelSegment, r, i.vertical, e.verticalLabel, !0, 12, t);
        }, e.prototype._updateTriangleObjects = function (e, t, i, r, o, n, s, a, l, c) {
          var h = [d.vec3.subtract(L.sv3d.get(), i, n), d.vec3.subtract(L.sv3d.get(), o, n), d.vec3.subtract(L.sv3d.get(), r, n)];
          l.update(o, r), c.update(i, o);

          var _ = new P(j.createPolylineGeometry(h), "triangle-line");

          e.removeAllGeometries(), e.addGeometry(_, this._triangleLineMaterial, s);
          var u = L.sv3d.get(),
              p = L.sv3d.get();
          d.vec3.subtract(u, o, i), d.vec3.normalize(u, u), d.vec3.subtract(p, r, o), d.vec3.normalize(p, p);
          var g = .33 * Math.min(d.vec3.distance(o, i), d.vec3.distance(o, r)),
              m = this._params.triangleCornerSize * a.computeScreenPixelSizeAt(o),
              b = Math.min(g, m),
              v = new P(this._quadGeometryData(o, u, p, b, n), "triangle-corner");
          t.removeAllGeometries(), t.addGeometry(v, this._triangleCornerMaterial, s);
        }, e.prototype._updateArrowObject = function (e, t, i, r, o, n, s, a, l) {
          this._createInterpolatedLineGeometry(e, this._arrowMaterial, "arrow", t, i, r, o, a, this._arrowLabelSegment);

          var c = s.computeScreenPixelSizeAt(l.origin);

          this._arrowMaterial.setParameterValues({
            width: this._params.arrowWidth * c,
            stripeLength: n
          });
        }, e.prototype._getSegmentInterpolator = function (e, t) {
          var i = this._sceneView.spatialReference,
              r = this._sceneView.renderCoordsHelper,
              o = r.spatialReference;
          return w.canProject(i, w.SphericalECEFSpatialReference) ? new b.Spherical(e, t, o, o) : new b.Linear(e, t);
        }, e.prototype._updateGeodesicProjectionLineObject = function (e, t, i, r, o, n, s) {
          if (!n) return void e.removeAllGeometries();
          var a = this._sceneView.renderCoordsHelper,
              l = d.vec3.copy(L.sv3d.get(), t),
              c = d.vec3.copy(L.sv3d.get(), i);
          a.setAltitude(0, l), a.setAltitude(0, c), this._createInterpolatedLineGeometry(e, this._geodesicProjectionLineMaterial, "geodesicProjectionLine", l, c, r, o, "geodesic", s);
        }, e.prototype._requiresGeodesicGuides = function (e, t, i, r) {
          return !("geodesic" !== r || !this._model.geodesicDistanceExceeded) && (this._requiresGeodesicGuideAt(e, i) || this._requiresGeodesicGuideAt(t, i));
        }, e.prototype._requiresGeodesicGuideAt = function (e, t) {
          var i = this._sceneView.renderCoordsHelper,
              r = t.computeScreenPixelSizeAt(e);
          return i.getAltitude(e) / r >= 10;
        }, e.prototype._updateGeodesicProjectionGuideObjects = function (e) {
          if (!e) return this._geodesicProjectionStartGuideObject.removeAllGeometries(), void this._geodesicProjectionEndGuideObject.removeAllGeometries();
          var t = this._sceneView.renderCoordsHelper,
              i = d.vec3.copy(L.sv3d.get(), this._startPosition),
              r = d.vec3.copy(L.sv3d.get(), this._endPosition);
          t.setAltitude(0, i), t.setAltitude(0, r), this._createInterpolatedLineGeometry(this._geodesicProjectionStartGuideObject, this._geodesicGuideLineMaterial, "geodesicGuideLine", i, this._startPosition, this._origin, this._originTransform, "euclidean"), this._createInterpolatedLineGeometry(this._geodesicProjectionEndGuideObject, this._geodesicGuideLineMaterial, "geodesicGuideLine", r, this._endPosition, this._origin, this._originTransform, "euclidean");
        }, e.prototype._createInterpolatedLineGeometry = function (e, t, i, r, o, n, s, a, l) {
          var c = this._sceneView.renderCoordsHelper,
              h = [],
              _ = [],
              u = function u(e, t) {
            var i = L.sv3d.get();
            d.vec3.subtract(i, e, n), h.push(i), _.push(t);
          };

          if ("euclidean" === a) {
            var p = L.sv3d.get();
            v.midpoint([r, o], p);
            var g = L.sv3d.get();
            c.worldUpAtPosition(p, g), u(r, g), u(o, g), l && l.update(r, o);
          } else {
            for (var m = this._getSegmentInterpolator(r, o), b = this._params.arrowSubdivisions + 1 & -2, w = null, f = null, y = 0; y < b; ++y) {
              var O = y / (b - 1),
                  S = L.sv3d.get(),
                  g = L.sv3d.get();
              m.eval(O, S), c.worldUpAtPosition(S, g), y === b / 2 - 1 ? w = S : y === b / 2 && (f = S), u(S, g);
            }

            l && l.update(w, f);
          }

          var G = new P(j.createPolylineGeometry(h, _), i);
          e.removeAllGeometries(), e.addGeometry(G, t, s);
        }, e.prototype._quadGeometryData = function (e, t, i, r, o) {
          var n = L.sv3d.get(),
              s = [],
              a = L.sv3d.get();
          d.vec3.scale(a, i, r);
          var l = L.sv3d.get();
          d.vec3.scale(l, t, -r);

          for (var c = 0; c < 4; ++c) d.vec3.copy(n, e), d.vec3.subtract(n, n, o), 1 & c && d.vec3.add(n, n, a), 2 & c && d.vec3.add(n, n, l), s.push(n[0], n[1], n[2]);

          return new f.GeometryData({
            position: {
              size: 3,
              data: s
            }
          }, {
            position: new Uint32Array([0, 1, 2, 1, 2, 3])
          });
        }, e.prototype._updateLabel = function (e, t, i, r, o, n, a, l) {
          var c = s.castScreenPointArray(L.sv2d.get()),
              d = s.castScreenPointArray(L.sv2d.get()),
              h = m.computeLabelPositionFromSegment(l, t, i, r, c, d);
          e.updatePosition(c, d), e.text = o, e.visible = h && n, e.fontSize = a;
        }, e.prototype._updateCursorPosition = function () {
          this._model.cursorPoint && this._sceneView.renderCoordsHelper.toRenderCoords(this._model.cursorPoint, this._cursorPosition), this._updateLaserLine();
        }, e.prototype._updateStartPosition = function () {
          this._model.startPoint && this._sceneView.renderCoordsHelper.toRenderCoords(this._model.startPoint, this._startPosition);
        }, e.prototype._updateEndPosition = function () {
          this._model.endPoint && this._sceneView.renderCoordsHelper.toRenderCoords(this._model.endPoint, this._endPosition);
        }, e.prototype._getFocusPosition = function () {
          var e = this._model,
              t = e.triangleView.visible && e.triangleView.collapsed && "euclidean" === e.measurementMode;

          switch (e.state) {
            case "drawing":
              return t ? this._startPosition : e.endPoint ? this._endPosition : this._startPosition;

            case "editing":
              return t ? "start" === this._lastDraggedHandle ? this._endPosition : this._startPosition : "start" === this._lastDraggedHandle ? this._startPosition : this._endPosition;

            default:
              return e.cursorPoint ? this._cursorPosition : null;
          }
        }, e.prototype._getFocusSpherePosition = function () {
          return "drawing" === this._model.state || "end" === this._lastDraggedHandle ? this._startPosition : this._endPosition;
        }, e.prototype._updateLaserLine = function () {
          var e = this._model,
              t = this._getFocusPosition(),
              i = this._params.laserLineEnabled && !!t && "measured" !== e.state && e.active;

          i ? (this._laserLineRenderer.focusPlaneActive = i && "euclidean" === e.measurementMode, this._laserLineRenderer.focusSphereActive = i && !!e.startPoint && "geodesic" === e.measurementMode, this._laserLineRenderer.focusPosition = t, this._laserLineRenderer.focusSpherePosition = this._getFocusSpherePosition(), this._laserLineRenderer.segmentActive = i && e.triangleView.visible && !e.triangleView.collapsed, this._laserLineRenderer.segmentStartPosition = this._startPosition, this._laserLineRenderer.segmentEndPosition = this._endPosition) : (this._laserLineRenderer.focusPlaneActive = !1, this._laserLineRenderer.focusSphereActive = !1, this._laserLineRenderer.segmentActive = !1);
        }, e.prototype._initializeListeners = function () {
          var e = this;
          this._listenerHandles = new o(), this._listenerHandles.add([this._model.watch("state", function () {
            e._updateLaserLine();
          }), this._model.watch("measurementMode", function () {
            e._updateLaserLine();
          }), this._model.watch("hoveredHandle", function () {
            e._updateView();
          }), this._model.watch("cursorPoint", function () {
            e._updateCursorPosition();
          }), this._model.watch("startPoint", function () {
            e._updateStartPosition(), e._updateView(), e._updateLaserLine();
          }), this._model.watch("endPoint", function () {
            e._updateEndPosition(), e._updateView(), e._updateLaserLine();
          }), this._model.watch("unit", function () {
            e._updateView();
          }), this._model.watch("active", function () {
            e._updateLaserLine(), e._updateView();
          }), this._sceneView.state.watch("camera", function () {
            e._updateView();
          })]);
        }, e.prototype._destroyListeners = function () {
          this._listenerHandles.destroy(), this._listenerHandles = null;
        }, e;
      }();

      !function (e) {
        var t = function () {
          function e() {}

          return e;
        }();

        e.PickRequest = t;

        var i = function () {
          function e(e, t, i) {
            void 0 === e && (e = null), void 0 === t && (t = null), void 0 === i && (i = null), this.type = e, this.scenePoint = t, this.mapPoint = i;
          }

          return e;
        }();

        e.PickResult = i;
      }(D || (D = {}));
      var z = Math.cos(n.deg2rad(12));
      return D;
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/views/3d/support/PropertiesPool.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/support/PropertiesPool.js ***!
    \***********************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dSupportPropertiesPoolJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../../core/ReentrantObjectPool */
    "./node_modules/arcgis-js-api/core/ReentrantObjectPool.js"), __webpack_require__(
    /*! ../../../core/accessorSupport/watch */
    "./node_modules/arcgis-js-api/core/accessorSupport/watch.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (e, r, t, o) {
      Object.defineProperty(r, "__esModule", {
        value: !0
      });

      var i = function () {
        function e(e, r) {
          var i = this;
          this.owner = r, this.properties = {}, this.afterDispatchHandle = null;

          for (var a in e) {
            var n = e[a],
                s = new t.ReentrantObjectPool(n, null, null, 2, 2);
            this.properties[a] = {
              pool: s,
              acquired: []
            };
          }

          this.afterDispatchHandle = o.afterDispatch(function () {
            return i.release();
          });
        }

        return e.prototype.destroy = function () {
          this.afterDispatchHandle && (this.afterDispatchHandle.remove(), this.afterDispatchHandle = null);

          for (var e in this.properties) {
            for (var r = this.properties[e], t = 0, i = r.acquired; t < i.length; t++) {
              var a = i[t];
              o.isValueInUse(a) || r.pool.release(a);
            }

            r.pool.destroy(), r.pool = null, r.acquired = null;
          }

          this.properties = null, this.owner = null;
        }, e.prototype.get = function (e) {
          var r = this.owner._get(e),
              t = this.properties[e],
              o = t.pool.acquire();

          for (t.acquired.push(o); o === r;) t.acquired.push(o), o = t.pool.acquire();

          return o;
        }, e.prototype.release = function () {
          for (var e in this.properties) {
            for (var r = this.properties[e], t = 0, i = 0, a = r.acquired; i < a.length; i++) {
              var n = a[i];
              o.isValueInUse(n) ? r.acquired[t++] = n : r.pool.release(n);
            }

            r.acquired.length = t;
          }
        }, e;
      }();

      r.PropertiesPool = i, r["default"] = i;
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/ColorMaterial.js":
  /*!*************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/ColorMaterial.js ***!
    \*************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dWebglEngineMaterialsColorMaterialJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../../../core/tsSupport/assignHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/assignHelper.js"), __webpack_require__(
    /*! ../../../../core/tsSupport/extendsHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/extendsHelper.js"), __webpack_require__(
    /*! ../lib/GLMaterial */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GLMaterial.js"), __webpack_require__(
    /*! ../lib/Material */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Material.js"), __webpack_require__(
    /*! ./internal/DefaultBufferWriter */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/internal/DefaultBufferWriter.js"), __webpack_require__(
    /*! ./internal/MaterialUtil */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/internal/MaterialUtil.js"), __webpack_require__(
    /*! ./internal/MaterialUtil */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/internal/MaterialUtil.js"), __webpack_require__(
    /*! ./renderers/MergedRenderer */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/renderers/MergedRenderer.js"), __webpack_require__(
    /*! ../shaders/ColorMaterialTechnique */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (t, e, r, i, n, o, a, u, s, p, h) {
      var c = function (t) {
        function e(e, r) {
          var i = t.call(this, r) || this;
          return i.supportsEdges = !0, i.techniqueConfig = new h.ColorMaterialTechniqueConfiguration(), i.params = s.copyParameters(e, d), i;
        }

        return i(e, t), e.prototype.setParameterValues = function (t) {
          u.updateParameters(this.params, t) && this.notifyDirty("matChanged");
        }, e.prototype.getParameters = function () {
          return this.params;
        }, e.prototype.getTechniqueConfig = function (t) {
          return this.techniqueConfig.output = t, this.techniqueConfig.cullFace = this.params.cullFace, this.techniqueConfig.vertexColors = this.params.vertexColors, this.techniqueConfig.slicePlaneEnabled = this.params.slicePlaneEnabled, this.techniqueConfig.transparent = this.params.transparent, this.techniqueConfig.polygonOffset = this.params.polygonOffset, this.techniqueConfig.writeDepth = this.params.writeDepth, this.techniqueConfig;
        }, e.prototype.getPassParameters = function () {
          return this.params;
        }, e.prototype.intersect = function (t, e, r, i, n, o, a) {
          s.intersectTriangleGeometry(t, e, i, n, o, void 0, a);
        }, e.prototype.getGLMaterials = function () {
          return {
            color: f,
            depthShadowMap: void 0,
            normal: void 0,
            depth: void 0,
            highlight: g
          };
        }, e.prototype.createBufferWriter = function () {
          return new a.DefaultBufferWriter(a.PositionColorLayout);
        }, e.prototype.createRenderer = function (t, e) {
          return new p(t, e, this);
        }, e;
      }(o.Material),
          l = function (t) {
        function e(e) {
          var r = t.call(this, e) || this;
          return r.output = e.output, r.updateParameters(), r;
        }

        return i(e, t), e.prototype.updateParameters = function () {
          this.technique = this.techniqueRep.acquireAndReleaseExisting(h.ColorMaterialTechnique, this.material.getTechniqueConfig(this.output), this.technique);
        }, e.prototype.beginSlot = function (t) {
          if (4 === this.output) return 4 === t;
          var e = 4;
          return this.technique.configuration.transparent && (e = this.technique.configuration.writeDepth ? 6 : 9), t === e;
        }, e.prototype.getProgram = function () {
          return this.technique.program;
        }, e.prototype.getPrograms = function () {
          return null;
        }, e.prototype.bind = function (t, e) {
          t.bindProgram(this.technique.program), this.technique.bindPipelineState(t), this.technique.bindPass(t, this.material.getPassParameters(), e);
        }, e.prototype.release = function () {}, e.prototype.bindView = function (t) {
          this.technique.bindDraw(t);
        }, e.prototype.bindInstance = function (t) {
          this.technique.bindInstance(t);
        }, e.prototype.getDrawMode = function () {
          return 4;
        }, e;
      }(n.GLMaterial),
          f = function (t) {
        function e(e) {
          return t.call(this, r({}, e, {
            output: 0
          })) || this;
        }

        return i(e, t), e;
      }(l),
          g = function (t) {
        function e(e) {
          return t.call(this, r({}, e, {
            output: 4
          })) || this;
        }

        return i(e, t), e;
      }(l),
          d = {
        color: [1, 1, 1, 1],
        transparent: !1,
        writeDepth: !0,
        vertexColors: !1,
        polygonOffset: !1,
        slicePlaneEnabled: !1,
        cullFace: 0
      };

      return c;
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js":
  /*!************************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js ***!
    \************************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dWebglEngineMaterialsMeasurementArrowMaterialJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../../../core/tsSupport/extendsHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/extendsHelper.js"), __webpack_require__(
    /*! ../../../../core/libs/gl-matrix-2/vec3 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/vec3.js"), __webpack_require__(
    /*! ../../../../core/libs/gl-matrix-2/vec3f64 */
    "./node_modules/arcgis-js-api/core/libs/gl-matrix-2/vec3f64.js"), __webpack_require__(
    /*! ../../support/buffer/InterleavedLayout */
    "./node_modules/arcgis-js-api/views/3d/support/buffer/InterleavedLayout.js"), __webpack_require__(
    /*! ../lib/GLMaterial */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GLMaterial.js"), __webpack_require__(
    /*! ../lib/Material */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Material.js"), __webpack_require__(
    /*! ../lib/Util */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Util.js"), __webpack_require__(
    /*! ./internal/MaterialUtil */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/internal/MaterialUtil.js"), __webpack_require__(
    /*! ./renderers/MergedRenderer */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/renderers/MergedRenderer.js"), __webpack_require__(
    /*! ../shaders/MeasurementArrowPrograms */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/MeasurementArrowPrograms.js"), __webpack_require__(
    /*! ../../../webgl/renderState */
    "./node_modules/arcgis-js-api/views/webgl/renderState.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (t, e, r, o, n, i, a, s, p, c, f, u, l) {
      var m = function (t) {
        function e(e, r) {
          var o = t.call(this, r) || this;
          return o.params = c.copyParameters(e, d), o;
        }

        return r(e, t), e.prototype.dispose = function () {}, e.prototype.setParameterValues = function (t) {
          c.updateParameters(this.params, t) && this.notifyDirty("matChanged");
        }, e.prototype.getParameters = function () {
          return this.params;
        }, e.prototype.intersect = function () {}, e.prototype.createBufferWriter = function () {
          return new x();
        }, e.prototype.createRenderer = function (t, e) {
          return new f(t, e, this);
        }, e.prototype.getGLMaterials = function () {
          return {
            color: v,
            depthShadowMap: void 0,
            normal: void 0,
            depth: void 0,
            highlight: void 0
          };
        }, e;
      }(s.Material),
          v = function (t) {
        function e(e) {
          var r = t.call(this, e) || this;
          return r.updateParameters(), r;
        }

        return r(e, t), e.prototype.selectProgram = function () {
          this.program = this.programRep.getProgram(u.colorPass), this.pipelineState = l.makePipelineState({
            polygonOffset: this.params.polygonOffset && {
              factor: 0,
              units: -4
            },
            depthTest: {
              func: 513
            },
            depthWrite: l.defaultDepthWriteParams,
            colorWrite: l.defaultColorWriteParams
          });
        }, e.prototype.updateParameters = function () {
          this.params = c.copyParameters(this.material.getParameters()), this.selectProgram();
        }, e.prototype.beginSlot = function (t) {
          return 4 === t;
        }, e.prototype.getProgram = function () {
          return this.program;
        }, e.prototype.getDrawMode = function () {
          return 5;
        }, e.prototype.bind = function (t) {
          var e = this.program;
          t.bindProgram(e), t.setPipelineState(this.pipelineState), e.setUniform1f("width", this.params.width), e.setUniform1f("outlineSize", this.params.outlineSize), e.setUniform4fv("outlineColor", this.params.outlineColor), e.setUniform1f("stripeLength", this.params.stripeLength), e.setUniform4fv("stripeEvenColor", this.params.stripeEvenColor), e.setUniform4fv("stripeOddColor", this.params.stripeOddColor);
        }, e.prototype.bindView = function (t) {
          c.bindView(t.origin, t.view, this.program);
        }, e.prototype.bindInstance = function (t) {
          this.program.setUniformMatrix4fv("model", t.transformation);
        }, e.prototype.release = function () {}, e;
      }(a.GLMaterial),
          d = {
        width: 32,
        outlineSize: .2,
        outlineColor: [1, .5, 0, 1],
        stripeLength: 1,
        stripeEvenColor: [1, 1, 1, 1],
        stripeOddColor: [1, .5, 0, 1],
        polygonOffset: !1
      },
          h = i.newLayout().vec3f(p.VertexAttrConstants.POSITION).vec3f(p.VertexAttrConstants.NORMAL).vec2f(p.VertexAttrConstants.UV0).f32(p.VertexAttrConstants.AUXPOS1),
          g = n.vec3f64.create(),
          y = n.vec3f64.create(),
          P = n.vec3f64.create(),
          C = n.vec3f64.create(),
          M = n.vec3f64.create(),
          x = function () {
        function t() {
          this.vertexBufferLayout = h;
        }

        return t.prototype.allocate = function (t) {
          return this.vertexBufferLayout.createBuffer(t);
        }, t.prototype.elementCount = function (t) {
          return 2 * (t.indices[p.VertexAttrConstants.POSITION].length / 2 + 1);
        }, t.prototype.write = function (t, e, r, n) {
          var i = e.vertexAttr[p.VertexAttrConstants.POSITION].data,
              a = e.vertexAttr[p.VertexAttrConstants.NORMAL].data,
              s = i.length / 3,
              c = e && e.indices && e.indices.position;
          c && c.length !== 2 * (s - 1) && console.warn("MeasurementArrowMaterial does not support indices");

          for (var f = g, u = y, l = P, m = C, v = M, d = t.transformation, h = t.invTranspTransformation, x = r.position, w = r.normal, O = r.uv0, S = 0, V = 0; V < s; ++V) {
            var b = 3 * V;

            if (o.vec3.set(f, i[b], i[b + 1], i[b + 2]), V < s - 1) {
              var A = 3 * (V + 1);
              o.vec3.set(u, i[A], i[A + 1], i[A + 2]), o.vec3.set(v, a[A], a[A + 1], a[A + 2]), o.vec3.normalize(v, v), o.vec3.subtract(l, u, f), o.vec3.normalize(l, l), o.vec3.cross(m, v, l), o.vec3.normalize(m, m);
            }

            var L = o.vec3.distance(f, u);
            d && h && (o.vec3.transformMat4(f, f, d), o.vec3.transformMat4(u, u, d), o.vec3.transformMat4(m, m, h));
            var U = n + 2 * V,
                I = U + 1;
            x.setVec(U, f), x.setVec(I, f), w.setVec(U, m), w.setVec(I, m), O.set(U, 0, S), O.set(U, 1, -1), O.set(I, 0, S), O.set(I, 1, 1), V < s - 1 && (S += L);
          }

          for (var z = r.auxpos1, V = 0; V < 2 * s; ++V) z.set(n + V, S);
        }, t;
      }();

      return m;
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js":
  /*!****************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js ***!
    \****************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dWebglEngineShadersColorMaterialGlslJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../../../core/tsSupport/makeTemplateObjectHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/makeTemplateObjectHelper.js"), __webpack_require__(
    /*! ../core/shaderLibrary/Slice.glsl */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js"), __webpack_require__(
    /*! ../core/shaderLibrary/Transform.glsl */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js"), __webpack_require__(
    /*! ../core/shaderLibrary/attributes/VertexColor.glsl */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js"), __webpack_require__(
    /*! ../core/shaderModules/interfaces */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderModules/interfaces.js"), __webpack_require__(
    /*! ../core/shaderModules/ShaderBuilder */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (o, r, e, i, l, n, a, d) {
      function s(o) {
        var r = new d.ShaderBuilder();
        return r.include(l.Transform, {
          linearDepth: !1
        }), r.include(n.VertexColor, o), r.vertex.uniforms.add("proj", "mat4").add("view", "mat4").add("model", "mat4"), r.attributes.add("position", "vec3"), r.varyings.add("vpos", "vec3"), r.vertex.code.add(a.glsl(t || (t = e(["\n    void main(void) {\n      vpos = (model * vec4(position, 1.0)).xyz;\n      forwardNormalizedVertexColor();\n      gl_Position = transformPosition(proj, view, vpos);\n    }\n  "], ["\n    void main(void) {\n      vpos = (model * vec4(position, 1.0)).xyz;\n      forwardNormalizedVertexColor();\n      gl_Position = transformPosition(proj, view, vpos);\n    }\n  "])))), r.include(i.Slice, o), r.fragment.uniforms.add("eColor", "vec4"), r.fragment.code.add(a.glsl(v || (v = e(["\n    void main() {\n      discardBySlice(vpos);\n      ", "\n      gl_FragColor = highlightSlice(gl_FragColor, vpos);\n    }\n    "], ["\n    void main() {\n      discardBySlice(vpos);\n      ", "\n      gl_FragColor = highlightSlice(gl_FragColor, vpos);\n    }\n    "])), o.attributeColor ? "gl_FragColor = vColor * eColor;" : "gl_FragColor = eColor;")), r;
      }

      Object.defineProperty(r, "__esModule", {
        value: !0
      }), r.build = s;
      var t, v;
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js":
  /*!********************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js ***!
    \********************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dWebglEngineShadersColorMaterialTechniqueJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../../../core/tsSupport/extendsHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/extendsHelper.js"), __webpack_require__(
    /*! ../../../../core/tsSupport/decorateHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/decorateHelper.js"), __webpack_require__(
    /*! ../../../../core/tsSupport/assignHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/assignHelper.js"), __webpack_require__(
    /*! ../core/shaderLibrary/Slice.glsl */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js"), __webpack_require__(
    /*! ../core/shaderLibrary/Transform.glsl */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js"), __webpack_require__(
    /*! ../core/shaderTechnique/ReloadableShaderModule */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderTechnique/ReloadableShaderModule.js"), __webpack_require__(
    /*! ../core/shaderTechnique/ShaderTechnique */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js"), __webpack_require__(
    /*! ../core/shaderTechnique/ShaderTechniqueConfiguration */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js"), __webpack_require__(
    /*! ../lib/DefaultVertexAttributeLocations */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js"), __webpack_require__(
    /*! ./ColorMaterial.glsl */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js"), __webpack_require__(
    /*! ../../../webgl/Program */
    "./node_modules/arcgis-js-api/views/webgl/Program.js"), __webpack_require__(
    /*! ../../../webgl/renderState */
    "./node_modules/arcgis-js-api/views/webgl/renderState.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (e, r, t, o, i, a, n, l, p, s, u, c, d, h) {
      Object.defineProperty(r, "__esModule", {
        value: !0
      });

      var f = function (r) {
        function o() {
          return null !== r && r.apply(this, arguments) || this;
        }

        return t(o, r), o.prototype.initializeProgram = function (e) {
          var r = o.shader.get(),
              t = this.configuration,
              i = r.build({
            attributeColor: t.vertexColors,
            slicePlaneEnabled: t.slicePlaneEnabled,
            sliceHighlightDisabled: t.sliceHighlightDisabled
          });
          return new d(e.rctx, i.generateSource("vertex"), i.generateSource("fragment"), u.Default3D);
        }, o.prototype.bindPass = function (e, r, t) {
          this.program.setUniform4fv("eColor", r.color);
        }, o.prototype.bindDraw = function (e) {
          n.Transform.bindUniforms(this.program, e), a.Slice.bindUniformsWithOrigin(this.program, this.configuration, e);
        }, o.prototype.bindInstance = function (e) {
          this.program.setUniformMatrix4fv("model", e.transformation);
        }, o.prototype.initializePipeline = function () {
          var e = this.configuration,
              r = 0 === e.output ? e.transparent && h.separateBlendingParams(770, 1, 771, 771) : null;
          return h.makePipelineState({
            blending: r,
            polygonOffset: e.polygonOffset && {
              factor: 1,
              units: 1
            },
            culling: function (e) {
              return 0 !== e && {
                face: 1 === e ? 1028 : 1029,
                mode: 2305
              };
            }(e.cullFace),
            depthTest: {
              func: 513
            },
            depthWrite: e.writeDepth && h.defaultDepthWriteParams,
            colorWrite: h.defaultColorWriteParams
          });
        }, o.prototype.bindPipelineState = function (e) {
          e.setPipelineState(this.pipeline);
        }, o.shader = new l.ReloadableShaderModule(c, "./ColorMaterial.glsl", e), o;
      }(p.ShaderTechnique);

      r.ColorMaterialTechnique = f;

      var g = function (e) {
        function r() {
          var r = null !== e && e.apply(this, arguments) || this;
          return r.output = 0, r.cullFace = 0, r.slicePlaneEnabled = !1, r.sliceHighlightDisabled = !1, r.vertexColors = !1, r.transparent = !1, r.polygonOffset = !1, r.writeDepth = !0, r;
        }

        return t(r, e), o([s.parameter({
          count: 6
        })], r.prototype, "output", void 0), o([s.parameter({
          count: 3
        })], r.prototype, "cullFace", void 0), o([s.parameter()], r.prototype, "slicePlaneEnabled", void 0), o([s.parameter()], r.prototype, "sliceHighlightDisabled", void 0), o([s.parameter()], r.prototype, "vertexColors", void 0), o([s.parameter()], r.prototype, "transparent", void 0), o([s.parameter()], r.prototype, "polygonOffset", void 0), o([s.parameter()], r.prototype, "writeDepth", void 0), r;
      }(s.ShaderTechniqueConfiguration);

      r.ColorMaterialTechniqueConfiguration = g;
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/MeasurementArrowPrograms.js":
  /*!**********************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/MeasurementArrowPrograms.js ***!
    \**********************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiViews3dWebglEngineShadersMeasurementArrowProgramsJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../lib/DefaultVertexAttributeLocations */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js"), __webpack_require__(
    /*! ./sources/resolver */
    "./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/sources/resolver.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (e, r, t, a) {
      Object.defineProperty(r, "__esModule", {
        value: !0
      }), r.colorPass = {
        name: "measurement-arrow-color",
        shaders: {
          vertexShader: a.resolveIncludes("materials/measurementArrow/measurementArrow.vert"),
          fragmentShader: a.resolveIncludes("materials/measurementArrow/measurementArrow.frag")
        },
        attributes: t.Default3D
      };
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D.js":
  /*!***********************************************************************!*\
    !*** ./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D.js ***!
    \***********************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiWidgetsDirectLineMeasurement3DJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../core/tsSupport/declareExtendsHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/declareExtendsHelper.js"), __webpack_require__(
    /*! ../core/tsSupport/decorateHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/decorateHelper.js"), __webpack_require__(
    /*! dojo/i18n!./DirectLineMeasurement3D/nls/DirectLineMeasurement3D */
    "./node_modules/dojo-webpack-plugin/loaders/dojo/i18n/index.js!./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js"), __webpack_require__(
    /*! ../core/accessorSupport/decorators */
    "./node_modules/arcgis-js-api/core/accessorSupport/decorators.js"), __webpack_require__(
    /*! ./Widget */
    "./node_modules/arcgis-js-api/widgets/Widget.js"), __webpack_require__(
    /*! ./DirectLineMeasurement3D/DirectLineMeasurement3DViewModel */
    "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js"), __webpack_require__(
    /*! ./support/widget */
    "./node_modules/arcgis-js-api/widgets/support/widget.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (e, t, i, s, n, r, a, l, u) {
      var o = {
        button: "esri-button esri-button--secondary",
        buttonDisabled: "esri-button--disabled",
        base: "esri-direct-line-measurement-3d",
        widget: "esri-widget",
        panel: "esri-widget--panel",
        container: "esri-direct-line-measurement-3d__container",
        hint: "esri-direct-line-measurement-3d__hint",
        hintText: "esri-direct-line-measurement-3d__hint-text",
        panelError: "esri-direct-line-measurement-3d__panel--error",
        measurement: "esri-direct-line-measurement-3d__measurement",
        measurementItem: "esri-direct-line-measurement-3d__measurement-item",
        measurementItemDisabled: "esri-direct-line-measurement-3d__measurement-item--disabled",
        measurementItemTitle: "esri-direct-line-measurement-3d__measurement-item-title",
        measurementItemValue: "esri-direct-line-measurement-3d__measurement-item-value",
        settings: "esri-direct-line-measurement-3d__settings",
        units: "esri-direct-line-measurement-3d__units",
        unitsLabel: "esri-direct-line-measurement-3d__units-label",
        unitsSelect: "esri-direct-line-measurement-3d__units-select esri-select",
        unitsSelectWrapper: "esri-direct-line-measurement-3d__units-select-wrapper",
        actionSection: "esri-direct-line-measurement-3d__actions",
        clearButton: "esri-direct-line-measurement-3d__clear-button",
        widgetIcon: "esri-icon-measure-line"
      };
      return function (e) {
        function t(t) {
          var i = e.call(this, t) || this;
          return i.view = null, i.visible = null, i.iconClass = o.widgetIcon, i.label = n.widgetLabel, i.viewModel = new l(), i.unitOptions = null, i.unit = null, i;
        }

        return i(t, e), t.prototype.render = function () {
          var e = this,
              t = this.viewModel.isSupported,
              i = this.viewModel.active,
              s = "disabled" === this.viewModel.state,
              r = "ready" === this.viewModel.state,
              a = "measuring" === this.viewModel.state || "measured" === this.viewModel.state,
              l = this.viewModel.measurement,
              d = i && r ? u.tsx("section", {
            key: "esri-direct-line-measurement-3d__hint",
            "class": o.hint
          }, u.tsx("p", {
            "class": o.hintText
          }, n.hint)) : null,
              c = t ? null : u.tsx("section", {
            key: "esri-direct-line-measurement-3d__unsupported",
            "class": o.panelError
          }, u.tsx("p", null, n.unsupported)),
              m = function m(t, i, s) {
            switch (i.state) {
              case "available":
                return u.tsx("div", {
                  key: s + "-enabled",
                  "class": o.measurementItem
                }, u.tsx("span", {
                  "class": o.measurementItemTitle
                }, t), u.tsx("span", {
                  "class": o.measurementItemValue
                }, i.text));

              case "unavailable":
                return u.tsx("div", {
                  key: s + "-disabled",
                  "class": e.classes(o.measurementItem, o.measurementItemDisabled)
                }, u.tsx("span", {
                  "class": o.measurementItemTitle
                }, t));
            }
          },
              p = a ? u.tsx("section", {
            key: "esri-direct-line-measurement-3d__measurement",
            "class": o.measurement
          }, m(n.direct, l.directDistance, "direct"), m(n.horizontal, l.horizontalDistance, "horizontal"), m(n.vertical, l.verticalDistance, "vertical")) : null,
              v = this.id + "__units",
              _ = u.tsx("label", {
            "class": o.unitsLabel,
            "for": v
          }, n.unit),
              b = u.tsx("div", {
            "class": o.unitsSelectWrapper
          }, u.tsx("select", {
            "class": o.unitsSelect,
            id: v,
            onchange: this._changeUnit,
            bind: this
          }, this.viewModel.unitOptions.map(function (t) {
            return t === e.viewModel.unit ? u.tsx("option", {
              key: t,
              value: t,
              selected: !0
            }, n.units[t]) : u.tsx("option", {
              key: t,
              value: t
            }, n.units[t]);
          }))),
              w = u.tsx("section", {
            key: "esri-direct-line-measurement-3d__units",
            "class": o.units
          }, _, b),
              h = a ? u.tsx("div", {
            key: "settings",
            "class": o.settings
          }, w) : null,
              M = !t || i && !a ? null : u.tsx("div", {
            "class": o.actionSection
          }, u.tsx("button", {
            disabled: s,
            "class": this.classes(o.button, o.clearButton, s && o.buttonDisabled),
            bind: this,
            onclick: this._newMeasurement
          }, n.newMeasurement)),
              y = this.visible ? u.tsx("div", {
            "class": o.container
          }, c, d, h, p, M) : null;

          return u.tsx("div", {
            key: "",
            "class": this.classes(o.base, o.widget, o.panel),
            role: "presentation"
          }, y);
        }, t.prototype._newMeasurement = function () {
          this.viewModel.newMeasurement();
        }, t.prototype._changeUnit = function (e) {
          var t = e.target,
              i = t.options[t.selectedIndex];
          i && (this.unit = i.value);
        }, s([r.aliasOf("viewModel.view")], t.prototype, "view", void 0), s([r.aliasOf("viewModel.visible"), u.renderable()], t.prototype, "visible", void 0), s([r.aliasOf("viewModel.active"), u.renderable()], t.prototype, "active", void 0), s([r.property()], t.prototype, "iconClass", void 0), s([r.property()], t.prototype, "label", void 0), s([r.property({
          type: l
        }), u.renderable(["viewModel.state", "viewModel.unitOptions", "viewModel.unit", "viewModel.measurement"])], t.prototype, "viewModel", void 0), s([r.aliasOf("viewModel.unitOptions")], t.prototype, "unitOptions", void 0), s([r.aliasOf("viewModel.unit")], t.prototype, "unit", void 0), s([u.accessibleHandler()], t.prototype, "_newMeasurement", null), s([u.accessibleHandler()], t.prototype, "_changeUnit", null), t = s([r.subclass("esri.widgets.DirectLineMeasurement3D")], t);
      }(r.declared(a));
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js":
  /*!********************************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js ***!
    \********************************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiWidgetsDirectLineMeasurement3DDirectLineMeasurement3DViewModelJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.


    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__.dj.c(module.i), exports, __webpack_require__(
    /*! ../../core/tsSupport/declareExtendsHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/declareExtendsHelper.js"), __webpack_require__(
    /*! ../../core/tsSupport/decorateHelper */
    "./node_modules/arcgis-js-api/core/tsSupport/decorateHelper.js"), __webpack_require__(
    /*! ../../core/Handles */
    "./node_modules/arcgis-js-api/core/Handles.js"), __webpack_require__(
    /*! ../../core/Logger */
    "./node_modules/arcgis-js-api/core/Logger.js"), __webpack_require__(
    /*! ../../core/unitUtils */
    "./node_modules/arcgis-js-api/core/unitUtils.js"), __webpack_require__(
    /*! ../../core/watchUtils */
    "./node_modules/arcgis-js-api/core/watchUtils.js"), __webpack_require__(
    /*! ../../core/accessorSupport/decorators */
    "./node_modules/arcgis-js-api/core/accessorSupport/decorators.js"), __webpack_require__(
    /*! ../../views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool */
    "./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js"), __webpack_require__(
    /*! ../support/commonProperties */
    "./node_modules/arcgis-js-api/widgets/support/commonProperties.js"), __webpack_require__(
    /*! ../support/InteractiveToolViewModel */
    "./node_modules/arcgis-js-api/widgets/support/InteractiveToolViewModel.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (e, t, i, n, r, o, s, l, a, u, p, c) {
      var d = o.getLogger("esri.widgets.DirectLineMeasurement3D.DirectLineMeasurement3DViewModel");
      return function (e) {
        function t(t) {
          var i = e.call(this, t) || this;
          return i.supportedViewType = "3d", i._handles = new r(), i._userUnitOptions = null, i._userUnit = null, i;
        }

        return i(t, e), t.prototype.initialize = function () {
          var e = this;

          this._handles.add([l.init(this, "unit", function (t) {
            e.tool && (e.tool.unit = t);
          })]);
        }, t.prototype.destroy = function () {
          this._handles.destroy(), this._handles = null;
        }, Object.defineProperty(t.prototype, "state", {
          get: function get() {
            return this.isDisabled ? "disabled" : this.tool ? this.tool.state : "ready";
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "measurement", {
          get: function get() {
            if (!this.tool) return null;
            var e = this.tool.model,
                t = e.measurementMode,
                i = "geodesic" === t,
                n = e.validMeasurement;
            return {
              mode: t,
              directDistance: {
                text: i ? null : this.tool.triangleView.directLabel,
                state: n && !i ? "available" : "unavailable"
              },
              horizontalDistance: {
                text: this.tool.triangleView.horizontalLabel,
                state: n ? "available" : "unavailable"
              },
              verticalDistance: {
                text: this.tool.triangleView.verticalLabel,
                state: n ? "available" : "unavailable"
              }
            };
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "unitOptions", {
          get: function get() {
            return this._filteredOrAllUnits(this._userUnitOptions);
          },
          set: function set(e) {
            this._userUnitOptions = e, this._set("unitOptions", this._filteredOrAllUnits(this._userUnitOptions));
          },
          enumerable: !0,
          configurable: !0
        }), Object.defineProperty(t.prototype, "unit", {
          get: function get() {
            return this._userUnit ? (this._userUnit = this._findSelectableUnit(this._userUnit, this.defaultUnit), this._userUnit) : this._findSelectableUnit(this.defaultUnit);
          },
          set: function set(e) {
            this._userUnit = e ? this._findSelectableUnit(e, this._userUnit) : null, this.notifyChange("unit");
          },
          enumerable: !0,
          configurable: !0
        }), t.prototype.newMeasurement = function () {
          this.createTool();
        }, t.prototype.clearMeasurement = function () {
          this.removeTool();
        }, t.prototype.createToolParams = function () {
          return {
            toolConstructor: u,
            constructorArguments: {
              unit: this.unit
            }
          };
        }, t.prototype.logUnsupportedError = function () {
          d.error("DirectLineMeasurement3D widget is not implemented for MapView");
        }, t.prototype.logError = function () {
          for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];

          d.error.apply(d, e);
        }, t.prototype._findSelectableUnit = function (e, t) {
          var i = this.unitOptions;
          return -1 !== i.indexOf(e) ? e : t ? this._findSelectableUnit(t) : i[0];
        }, t.prototype._filteredOrAllUnits = function (e) {
          if (!e) return s.measurementLengthUnits.slice();
          var t = e.filter(function (e) {
            return -1 !== s.measurementLengthUnits.indexOf(e);
          });
          return 0 === t.length ? s.measurementLengthUnits.slice() : t;
        }, n([a.property({
          dependsOn: ["isDisabled", "tool.state"],
          readOnly: !0
        })], t.prototype, "state", null), n([a.property({
          dependsOn: ["view.ready", "tool.triangleView", "tool.model.directDistance", "tool.model.horizontalDistance", "tool.model.verticalDistance", "tool.model.geodesicDistance", "tool.model.measurementMode"],
          readOnly: !0
        })], t.prototype, "measurement", null), n([a.property()], t.prototype, "tool", void 0), n([a.property(p.defaultUnitPropertyMetadata)], t.prototype, "defaultUnit", void 0), n([a.property({
          dependsOn: ["view.spatialReference"]
        })], t.prototype, "unitOptions", null), n([a.property({
          dependsOn: ["unitOptions", "defaultUnit"]
        })], t.prototype, "unit", null), t = n([a.subclass("esri.widgets.DirectLineMeasurement3D.DirectLineMeasurement3DViewModel")], t);
      }(a.declared(c.InteractiveToolViewModel));
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js":
  /*!***************************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js ***!
    \***************************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiWidgetsDirectLineMeasurement3DNlsDirectLineMeasurement3DJs(module, exports, __webpack_require__) {
    /*
     * This module was modified by dojo-webpack-plugin to disable some locales
     * that were excluded by the plugin's 'locales' option
     */
    !(module.exports = {
      'root': {
        'widgetLabel': 'Direct Line Measurement',
        'hint': 'Start to measure by clicking in the scene to place your first point',
        'unsupported': '3D direct line measurement is only supported in SceneView.',
        'distance': 'Distance',
        'direct': 'Direct',
        'horizontal': 'Horizontal',
        'vertical': 'Vertical',
        'unit': 'Unit',
        'newMeasurement': 'New measurement',
        'units': {
          'metric': 'Metric',
          'imperial': 'Imperial',
          'kilometers': 'Kilometers',
          'meters': 'Meters',
          'miles': 'Miles',
          'inches': 'Inches',
          'feet': 'Feet',
          'yards': 'Yards',
          'nautical-miles': 'Nautical miles',
          'us-feet': 'Feet (US)',
          'degrees-minutes-seconds': 'DMS',
          'degrees': 'Degrees'
        }
      },
      'ar': false,
      'bs': false,
      'ca': false,
      'cs': false,
      'da': false,
      'de': false,
      'el': false,
      'es': false,
      'et': false,
      'fi': false,
      'fr': false,
      'he': false,
      'hr': false,
      'hu': false,
      'id': false,
      'it': false,
      'ja': false,
      'ko': false,
      'lv': false,
      'lt': false,
      'nl': false,
      'nb': false,
      'pl': false,
      'pt-br': false,
      'pt-pt': false,
      'ro': false,
      'ru': false,
      'sl': false,
      'sr': false,
      'sv': false,
      'th': false,
      'tr': false,
      'uk': false,
      'vi': 1,
      'zh-cn': false,
      'zh-hk': false,
      'zh-tw': false
    });
    /***/
  },

  /***/
  "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/vi/DirectLineMeasurement3D.js":
  /*!******************************************************************************************************!*\
    !*** ./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/vi/DirectLineMeasurement3D.js ***!
    \******************************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesArcgisJsApiWidgetsDirectLineMeasurement3DNlsViDirectLineMeasurement3DJs(module, exports, __webpack_require__) {
    // COPYRIGHT © 2019 Esri
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // This material is licensed for use under the Esri Master License
    // Agreement (MLA), and is bound by the terms of that agreement.
    // You may redistribute and use this code without modification,
    // provided you adhere to the terms of the MLA and include this
    // copyright notice.
    //
    // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english
    //
    // For additional information, contact:
    // Environmental Systems Research Institute, Inc.
    // Attn: Contracts and Legal Services Department
    // 380 New York Street
    // Redlands, California, USA 92373
    // USA
    //
    // email: contracts@esri.com
    //
    // See http://js.arcgis.com/4.14/esri/copyright.txt for details.
    !(module.exports = {
      widgetLabel: "Đo Đường thẳng Trực tiếp",
      hint: "Bắt đầu đo bằng cách bấm vào scene để đặt điểm đầu tiên của bạn",
      unsupported: "Tính toán đường trực tiếp 3D chỉ được hỗ trợ trong SceneView.",
      distance: "Khoảng cách",
      direct: "Trực tiếp",
      horizontal: "Ngang",
      vertical: "Dọc",
      unit: "Đơn vị",
      newMeasurement: "Phép đo mới",
      units: {
        metric: "Hệ mét",
        imperial: "Hệ đo lường Anh",
        kilometers: "Kilômét",
        meters: "Mét",
        miles: "Dặm",
        inches: "Inch",
        feet: "Bộ",
        yards: "Thước",
        "nautical-miles": "Hải lý",
        "us-feet": "Feet (Hoa Kỳ)",
        "degrees-minutes-seconds": "DMS",
        degrees: "Độ"
      }
    });
    /***/
  },

  /***/
  "./node_modules/dojo-webpack-plugin/loaders/dojo/i18n/index.js!./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js":
  /*!********************************************************************************************************************************************************!*\
    !*** ./node_modules/dojo-webpack-plugin/loaders/dojo/i18n!./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js ***!
    \********************************************************************************************************************************************************/

  /*! no static exports found */

  /***/
  function node_modulesDojoWebpackPluginLoadersDojoI18nIndexJsNode_modulesArcgisJsApiWidgetsDirectLineMeasurement3DNlsDirectLineMeasurement3DJs(module, exports, __webpack_require__) {
    var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;

    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(
    /*! dojo/i18n */
    "./node_modules/dojo/i18n.js"), __webpack_require__(
    /*! ./node_modules/dojo-webpack-plugin/loaders/dojo/runner.js */
    "./node_modules/dojo-webpack-plugin/loaders/dojo/runner.js"), __webpack_require__(
    /*! esri/widgets/DirectLineMeasurement3D/nls/vi/DirectLineMeasurement3D */
    "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/vi/DirectLineMeasurement3D.js"), __webpack_require__(
    /*! ./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js?absMid=esri/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D */
    "./node_modules/arcgis-js-api/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D.js")], __WEBPACK_AMD_DEFINE_RESULT__ = function (loader, runner) {
      return runner(loader, "esri/widgets/DirectLineMeasurement3D/nls/DirectLineMeasurement3D", __webpack_require__.dj.c(), false);
    }.apply(null, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
    /***/
  }
}]);
//# sourceMappingURL=59-es5.js.map