@arcgis/core 5.0.0-next.49 → 5.0.0-next.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/applications/Components/baUtils.js +1 -1
- package/arcade.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0000781c850b1b4828b3.js +1 -0
- package/assets/esri/core/workers/chunks/00f044370bf3bb6b24d7.js +1 -0
- package/assets/esri/core/workers/chunks/0136cd1a5da204b6daeb.js +1 -0
- package/assets/esri/core/workers/chunks/044a0ccd89741c1ae770.js +1 -0
- package/assets/esri/core/workers/chunks/090dad5579f0148d6486.js +1 -0
- package/assets/esri/core/workers/chunks/09bd9bd37a339802907a.js +1 -0
- package/assets/esri/core/workers/chunks/0bc01d71ed1ab8c3af3c.js +1 -0
- package/assets/esri/core/workers/chunks/0d9904ba62558686c289.js +1 -0
- package/assets/esri/core/workers/chunks/0fcb40204db8ee5571c3.js +1 -0
- package/assets/esri/core/workers/chunks/1065fd655bb7cee243fd.js +1 -0
- package/assets/esri/core/workers/chunks/11ab10668632648b2ba7.js +1 -0
- package/assets/esri/core/workers/chunks/13167bdd486b41163147.js +1 -0
- package/assets/esri/core/workers/chunks/{d8db2c51b2fb42f37b2a.js → 1363345f31f4f5051132.js} +1 -1
- package/assets/esri/core/workers/chunks/13be94357dcf5afc4fcb.js +1 -0
- package/assets/esri/core/workers/chunks/{e66bcdfd75e0113d1cec.js → 13ce8e8d45779b11ee12.js} +1 -1
- package/assets/esri/core/workers/chunks/1693f19f1c37e0a2087e.js +1 -0
- package/assets/esri/core/workers/chunks/18ab5959ebf8689f8fe8.js +1 -0
- package/assets/esri/core/workers/chunks/18c4cd160a4052b05831.js +1 -0
- package/assets/esri/core/workers/chunks/1bf4b5e5402790ccb450.js +1 -0
- package/assets/esri/core/workers/chunks/1db058f91a8e17b24db6.js +1 -0
- package/assets/esri/core/workers/chunks/1dc3ab52fcde7bff0f23.js +1 -0
- package/assets/esri/core/workers/chunks/{a7cd795042ebb8585906.js → 1f0c7ab33e466a37c7f9.js} +1 -1
- package/assets/esri/core/workers/chunks/224f01b11fdba9250b1e.js +1 -0
- package/assets/esri/core/workers/chunks/{a1a7b0e7ca488c895cb7.js → 22c115ec003351c7d8ee.js} +1 -1
- package/assets/esri/core/workers/chunks/24c35a46cf8ed11b774d.js +1 -0
- package/assets/esri/core/workers/chunks/27794d48c04a5875fd22.js +1 -0
- package/assets/esri/core/workers/chunks/294acaaebfedb05fe81e.js +1 -0
- package/assets/esri/core/workers/chunks/2a66841243975cac3e3c.js +1 -0
- package/assets/esri/core/workers/chunks/2c12848e4934e9bb2bd0.js +1 -0
- package/assets/esri/core/workers/chunks/2d61b6efa17e8c5832da.js +1 -0
- package/assets/esri/core/workers/chunks/2d6fa00273a73d44297d.js +1 -0
- package/assets/esri/core/workers/chunks/2da13c2269ab90281143.js +1 -0
- package/assets/esri/core/workers/chunks/2dfaead2ec6434513d45.js +1 -0
- package/assets/esri/core/workers/chunks/2fae37f34b28a46841e3.js +1 -0
- package/assets/esri/core/workers/chunks/{3298e96d3f2e49e338d2.js → 308fb48d080e01499a26.js} +1 -1
- package/assets/esri/core/workers/chunks/30dd4a7c93b33988a270.js +1 -0
- package/assets/esri/core/workers/chunks/355c8d0eadfff9f62dfb.js +1 -0
- package/assets/esri/core/workers/chunks/35961e71f69ae1d24b9e.js +1 -0
- package/assets/esri/core/workers/chunks/36a04be40369111a633d.js +1 -0
- package/assets/esri/core/workers/chunks/36d9208895abd1ba4ff1.js +1 -0
- package/assets/esri/core/workers/chunks/395a0773ccafd1f24c4d.js +1 -0
- package/assets/esri/core/workers/chunks/{81a60dfa600b690098f9.js → 3a612f873e29348370b2.js} +1 -1
- package/assets/esri/core/workers/chunks/3b1471f908fdecec2815.js +1 -0
- package/assets/esri/core/workers/chunks/{da1e61f355fb943085dc.js → 3c66dd52ad156711a6a2.js} +1 -1
- package/assets/esri/core/workers/chunks/3dd0db77a05263000bd8.js +1 -0
- package/assets/esri/core/workers/chunks/{08c1ea29678da27136f3.js → 44fb1184eeed0636704a.js} +1 -1
- package/assets/esri/core/workers/chunks/46d430a6983b81ba7556.js +1 -0
- package/assets/esri/core/workers/chunks/472d290f8eb1c1a85724.js +1 -0
- package/assets/esri/core/workers/chunks/47338472f5a8e004a671.js +1 -0
- package/assets/esri/core/workers/chunks/48b3906ac3ec57253d90.js +1 -0
- package/assets/esri/core/workers/chunks/{2a41283bba2361afa1fd.js → 495af366ec1defd89a72.js} +1 -1
- package/assets/esri/core/workers/chunks/49b581782f63abb6dd9f.js +1 -0
- package/assets/esri/core/workers/chunks/49df576f0215618aa651.js +1 -0
- package/assets/esri/core/workers/chunks/4abe2c56aecc9e9b8e86.js +1 -0
- package/assets/esri/core/workers/chunks/4e01e509a761a9d00b52.js +1 -0
- package/assets/esri/core/workers/chunks/{9d0f0d055ec25af037e0.js → 51093e552e31344cefa5.js} +1 -1
- package/assets/esri/core/workers/chunks/521aac8a665e98e4ca78.js +1 -0
- package/assets/esri/core/workers/chunks/54666586754949bfa584.js +1 -0
- package/assets/esri/core/workers/chunks/549f4ab9e285deaf04fb.js +1 -0
- package/assets/esri/core/workers/chunks/553ca1e55e9f1359839c.js +1 -0
- package/assets/esri/core/workers/chunks/{6f3943bebe2d5f4994f7.js → 58242447b72cc60a5040.js} +1 -1
- package/assets/esri/core/workers/chunks/58419d362f24b35003c1.js +1 -0
- package/assets/esri/core/workers/chunks/5aa354854219361f722b.js +1 -0
- package/assets/esri/core/workers/chunks/{aab93e885b6c7c6aa76e.js → 5ce524e0060053f35592.js} +19 -19
- package/assets/esri/core/workers/chunks/5d244fcf5c075afccdc6.js +1 -0
- package/assets/esri/core/workers/chunks/5e9fdd4eff7189f45932.js +1 -0
- package/assets/esri/core/workers/chunks/60954ab810dbbf36e5e1.js +1 -0
- package/assets/esri/core/workers/chunks/62ed6b45482e39d67785.js +1 -0
- package/assets/esri/core/workers/chunks/63b8193ad90b2ebe6884.js +1 -0
- package/assets/esri/core/workers/chunks/63c91421a71ae3b3599e.js +1 -0
- package/assets/esri/core/workers/chunks/63cf702cde83692126be.js +1 -0
- package/assets/esri/core/workers/chunks/687d2b761dc5b5cf0c31.js +1 -0
- package/assets/esri/core/workers/chunks/6cfcfebe9a4c491e453a.js +1 -0
- package/assets/esri/core/workers/chunks/{88aa71f02f43bb069345.js → 7033fa18b7dd7bd3e49c.js} +1 -1
- package/assets/esri/core/workers/chunks/710b29729f252f11115d.js +1 -0
- package/assets/esri/core/workers/chunks/72a520802b8accfd4512.js +1 -0
- package/assets/esri/core/workers/chunks/{72fbee59d5d909615408.js → 73892ac79b24b05e6863.js} +1 -1
- package/assets/esri/core/workers/chunks/73c3ee2697265b0f7208.js +1 -0
- package/assets/esri/core/workers/chunks/73f9cbf0f919b6adc2d5.js +1 -0
- package/assets/esri/core/workers/chunks/75e9759290f0f67b2128.js +1 -0
- package/assets/esri/core/workers/chunks/7737e69da604d2521da8.js +1 -0
- package/assets/esri/core/workers/chunks/{8e8d5422f57269d8c8d2.js → 7891825d5cdca03d2db0.js} +1 -1
- package/assets/esri/core/workers/chunks/7cd0ab01933bfb2c6e43.js +1 -0
- package/assets/esri/core/workers/chunks/81c2cc77c275a5b555c0.js +1 -0
- package/assets/esri/core/workers/chunks/82ace0195b63790b22c9.js +1 -0
- package/assets/esri/core/workers/chunks/8892bf3d2367e35de001.js +1 -0
- package/assets/esri/core/workers/chunks/8a132d91077ecf849248.js +1 -0
- package/assets/esri/core/workers/chunks/8a6e50d95539b46f629c.js +1 -0
- package/assets/esri/core/workers/chunks/8d941204425571b656ec.js +1 -0
- package/assets/esri/core/workers/chunks/914746077017fa50933f.js +1 -0
- package/assets/esri/core/workers/chunks/{004c2a1a37b99a184b13.js → 91fba3bebd78cb956941.js} +1 -1
- package/assets/esri/core/workers/chunks/92ec96aa743cabc9475d.js +1 -0
- package/assets/esri/core/workers/chunks/{5b290d18de61789417f9.js → 9361834d2c3064eb41fc.js} +1 -1
- package/assets/esri/core/workers/chunks/{44f036cc21e3a2308f69.js → 93b139be6488a1b4ba19.js} +1 -1
- package/assets/esri/core/workers/chunks/95057105f1b3bf805140.js +1 -0
- package/assets/esri/core/workers/chunks/968335b28b895e19913b.js +1 -0
- package/assets/esri/core/workers/chunks/973bf2ed34d57f299472.js +1 -0
- package/assets/esri/core/workers/chunks/9b6e2099aabf67b9f9f2.js +1 -0
- package/assets/esri/core/workers/chunks/{97b01803d0c38541aa08.js → 9c93eadbd19bef1191b4.js} +1 -1
- package/assets/esri/core/workers/chunks/a1594486177015e8a6c3.js +1 -0
- package/assets/esri/core/workers/chunks/{df458ad51be27df3d79d.js → a1f264abbd6354c333bf.js} +1 -1
- package/assets/esri/core/workers/chunks/a3407ca77b0ff62c0e75.js +1 -0
- package/assets/esri/core/workers/chunks/{8be61e13530fd0dc2fd1.js → a4f89568205d78d91cfe.js} +1 -1
- package/assets/esri/core/workers/chunks/a5e7c9517939f762c518.js +1 -0
- package/assets/esri/core/workers/chunks/a63ff3e9a9f3853d12f3.js +1 -0
- package/assets/esri/core/workers/chunks/a81a7cba815adb575c36.js +1 -0
- package/assets/esri/core/workers/chunks/{fe6fa1f2c2d54d41645e.js → a8dfd246c797f3b979f5.js} +1 -1
- package/assets/esri/core/workers/chunks/a8f7e44657083f6aa3fd.js +1 -0
- package/assets/esri/core/workers/chunks/a8fd635d1165db8616ab.js +1 -0
- package/assets/esri/core/workers/chunks/a92c1171314a68504c1b.js +1 -0
- package/assets/esri/core/workers/chunks/aa297e0931213341f51b.js +1 -0
- package/assets/esri/core/workers/chunks/aa7a1705266eec353cb6.js +1 -0
- package/assets/esri/core/workers/chunks/ab5e2f823960c33cefe4.js +1 -0
- package/assets/esri/core/workers/chunks/{f11453f24c0b728669d2.js → ac6f002cfad42e60de8f.js} +1 -1
- package/assets/esri/core/workers/chunks/b11c0e80e583f2b7c5de.js +1 -0
- package/assets/esri/core/workers/chunks/b14f9a46e583e1625a2b.js +1 -0
- package/assets/esri/core/workers/chunks/{8c271e9272e4eaf1325a.js → b1d3d2c93c189e215f67.js} +1 -1
- package/assets/esri/core/workers/chunks/b2425f6af7df6902dfc4.js +1 -0
- package/assets/esri/core/workers/chunks/b638ce18b93d3cfb9967.js +1 -0
- package/assets/esri/core/workers/chunks/b648a1e641cf5c772d67.js +1 -0
- package/assets/esri/core/workers/chunks/{1c58064ea80e6a4a4a3b.js → b907d16e82ac908bb896.js} +1 -1
- package/assets/esri/core/workers/chunks/b91c13f44f4d1bac5799.js +1 -0
- package/assets/esri/core/workers/chunks/ba7e97b1e324118b8156.js +1 -0
- package/assets/esri/core/workers/chunks/bb4aefaf9b0327dda738.js +1 -0
- package/assets/esri/core/workers/chunks/{9664d9e679abc41f6c42.js → bce81df760f5e34c01d7.js} +1 -1
- package/assets/esri/core/workers/chunks/be6a05d5375e80968877.js +1 -0
- package/assets/esri/core/workers/chunks/c02b09f16241db233103.js +1 -0
- package/assets/esri/core/workers/chunks/c09cba77ee60a3d765e2.js +1 -0
- package/assets/esri/core/workers/chunks/c0d6336c10b4081c4e32.js +1 -0
- package/assets/esri/core/workers/chunks/c27842a34e73ccb46116.js +1 -0
- package/assets/esri/core/workers/chunks/c7802c144959d60e774a.js +1 -0
- package/assets/esri/core/workers/chunks/c91201b37d1cb3875fb4.js +1 -0
- package/assets/esri/core/workers/chunks/cc4ae105e727d9211d82.js +1 -0
- package/assets/esri/core/workers/chunks/cd39a53ef74f47604977.js +1 -0
- package/assets/esri/core/workers/chunks/d22e0d733bfe821c0510.js +1 -0
- package/assets/esri/core/workers/chunks/{d7878fba02814adaf19f.js → d57577c02fb2932e8305.js} +1 -1
- package/assets/esri/core/workers/chunks/d62193323c67b379dee3.js +1 -0
- package/assets/esri/core/workers/chunks/d7a62504e00989202c45.js +1 -0
- package/assets/esri/core/workers/chunks/{adfe28c1c1619cdd3ca1.js → d8511e71c5108a0ba9eb.js} +2 -2
- package/assets/esri/core/workers/chunks/da922e861d5845ae0979.js +1 -0
- package/assets/esri/core/workers/chunks/dbe55d4731227d6e9571.js +1 -0
- package/assets/esri/core/workers/chunks/de05c59da6d67716795d.js +1 -0
- package/assets/esri/core/workers/chunks/de60421029fbcebe2950.js +1 -0
- package/assets/esri/core/workers/chunks/e00d56ae5e68267fe269.js +1 -0
- package/assets/esri/core/workers/chunks/{fecae7495e53bb05f282.js → e25be3b6b67ce6b03011.js} +1 -1
- package/assets/esri/core/workers/chunks/e2973e5626e5039209f9.js +1 -0
- package/assets/esri/core/workers/chunks/e2c7c269be93c552dc5b.js +1 -0
- package/assets/esri/core/workers/chunks/e4d593ddcbcf06010ab0.js +1 -0
- package/assets/esri/core/workers/chunks/e5ac9b048b16fef9840c.js +1 -0
- package/assets/esri/core/workers/chunks/{f7163048146ddaedfc36.js → e668ddc7332e5e560e78.js} +1 -1
- package/assets/esri/core/workers/chunks/e6bab7b739bfbb39f6cd.js +1 -0
- package/assets/esri/core/workers/chunks/{8b578ffc3a83089aa782.js → e7c08a03772f7fccd949.js} +1 -1
- package/assets/esri/core/workers/chunks/e8e4d48ab4024e17108d.js +1 -0
- package/assets/esri/core/workers/chunks/e9e0f1c355f963cbea74.js +1 -0
- package/assets/esri/core/workers/chunks/ec7e6427d99cf3148a61.js +1 -0
- package/assets/esri/core/workers/chunks/edd3cf415955309b4ca4.js +1 -0
- package/assets/esri/core/workers/chunks/ee361690b456c12c30d8.js +1 -0
- package/assets/esri/core/workers/chunks/efa95c50d1ed8e74219f.js +1 -0
- package/assets/esri/core/workers/chunks/f142c5cbdd16f1768275.js +1 -0
- package/assets/esri/core/workers/chunks/f286f13686f003c5eec5.js +1 -0
- package/assets/esri/core/workers/chunks/f379fd459a103f42d447.js +1 -0
- package/assets/esri/core/workers/chunks/{f2ba50eb29f93df885d6.js → f3d8d5fe15501220792d.js} +1 -1
- package/assets/esri/core/workers/chunks/f56906c443ce8ff68a27.js +1 -0
- package/assets/esri/core/workers/chunks/fb6670a929b7333f1764.js +1 -0
- package/assets/esri/core/workers/chunks/fbdf553253cf8f22c022.js +1 -0
- package/assets/esri/core/workers/chunks/fc10c738bae304721ab2.js +1 -0
- package/assets/esri/core/workers/chunks/ff79c2cb28db7e0a1fc4.js +1 -0
- package/assets/esri/core/workers/chunks/ffdf1cbc1e54414d0f96.js +1 -0
- package/assets/esri/themes/base/widgets/_Attribution.scss +7 -4
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/Bufferer-Dw9Qi4T1.js +1 -1
- package/chunks/Distance2DCalculator-CXhBP-8I.js +1 -1
- package/chunks/Envelope.js +1 -1
- package/chunks/GeodeticDistanceCalculator-Ce-woMPw.js +1 -1
- package/chunks/GeodeticUtils.js +1 -1
- package/chunks/Geometry.js +1 -1
- package/chunks/MultiPathImpl.js +1 -1
- package/chunks/OperatorCrosses.js +1 -1
- package/chunks/OperatorCut.js +1 -1
- package/chunks/OperatorGeodesicBuffer.js +1 -1
- package/chunks/OperatorGeodeticArea.js +1 -1
- package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
- package/chunks/OperatorGeodeticLength.js +1 -1
- package/chunks/OperatorIntersects.js +1 -1
- package/chunks/OperatorMultiPartToSinglePart.js +1 -1
- package/chunks/OperatorOverlaps.js +1 -1
- package/chunks/OperatorProject.js +1 -1
- package/chunks/OperatorProximity.js +1 -1
- package/chunks/OperatorProximityGeodesic.js +1 -1
- package/chunks/OperatorShapePreservingLength.js +1 -1
- package/chunks/OperatorShapePreservingProject.js +1 -1
- package/chunks/OperatorSimplifyOGC.js +1 -1
- package/chunks/OperatorTouches.js +1 -1
- package/chunks/OperatorWithin.js +1 -1
- package/chunks/Point2D.js +1 -1
- package/chunks/ProjectionTransformation.js +1 -1
- package/chunks/SideCalculator2D-BNwb5gvz.js +1 -1
- package/chunks/SpatialReference.js +1 -1
- package/chunks/boundedPlane.js +1 -1
- package/chunks/containsOperator.js +1 -1
- package/chunks/disjointOperator.js +1 -1
- package/chunks/equalsOperator.js +1 -1
- package/chunks/pe.js +1 -1
- package/chunks/relateOperator.js +1 -1
- package/config.js +1 -1
- package/core/units.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/editing/sharedTemplates/executor/builders/support/builderUtils.js +1 -1
- package/editing/sharedTemplates/executor/builders/support/offsetUtils.js +1 -1
- package/editing/sharedTemplates/executor/createTemplateExecutor.js +1 -1
- package/geometry/FlatGeometry.js +1 -1
- package/geometry/GeometryCursor.js +1 -1
- package/geometry/operators/containsOperator.js +1 -1
- package/geometry/operators/disjointOperator.js +1 -1
- package/geometry/operators/gx/geodeticUtils.js +1 -1
- package/geometry/operators/gx/operatorAutoComplete.js +1 -1
- package/geometry/operators/gx/operatorBuffer.js +1 -1
- package/geometry/operators/gx/operatorDifference.js +1 -1
- package/geometry/operators/gx/operatorGeodesicBuffer.js +1 -1
- package/geometry/operators/gx/operatorGeodeticArea.js +1 -1
- package/geometry/operators/gx/operatorGeodeticDensify.js +1 -1
- package/geometry/operators/gx/operatorGeodeticDistance.js +1 -1
- package/geometry/operators/gx/operatorGeodeticLength.js +1 -1
- package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
- package/geometry/operators/gx/operatorIntegrate.js +1 -1
- package/geometry/operators/gx/operatorIntersection.js +1 -1
- package/geometry/operators/gx/operatorLabelPoint.js +1 -1
- package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
- package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
- package/geometry/operators/gx/operatorProject.js +1 -1
- package/geometry/operators/gx/operatorProximityGeodesic.js +1 -1
- package/geometry/operators/gx/operatorShapePreservingProject.js +1 -1
- package/geometry/operators/gx/operatorSimplify.js +1 -1
- package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
- package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
- package/geometry/operators/gx/operatorUnion.js +1 -1
- package/geometry/operators/json/containsOperator.js +1 -1
- package/geometry/operators/json/disjointOperator.js +1 -1
- package/geometry/operators/json/projectOperator.js +1 -1
- package/geometry/operators/projectOperator.js +1 -1
- package/geometry/operators/reshapeOperator.js +1 -1
- package/geometry/operators/support/geographicTransformationUtils.js +1 -1
- package/geometry/operators/support/initNoPeFactory.js +1 -1
- package/geometry/operators/support/jsonConverter.js +1 -1
- package/geometry/operators/support/projectionTransformation.js +1 -1
- package/geometry/operators/support/projectionZScaling.js +5 -0
- package/geometry/projection/projectPointToVector.js +1 -1
- package/geometry/projectionUtils.js +1 -1
- package/geometry/support/boundedPlane.js +1 -1
- package/geometry/support/jsonTypeUtils.js +5 -0
- package/geometry/support/jsonUtils.js +1 -1
- package/geometry/support/normalizeUtilsCommon.js +1 -1
- package/geometry/support/normalizeUtilsSync.js +1 -1
- package/geometry/support/quantizationUtils.js +1 -1
- package/geometry/support/zscale.js +1 -1
- package/interfaces.d.ts +84 -17
- package/kernel.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
- package/layers/graphics/data/QueryEngine.js +1 -1
- package/layers/graphics/data/queryUtils.js +1 -1
- package/layers/graphics/data/spatialQuerySupport.js +1 -1
- package/layers/graphics/featureConversionUtils.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/layers/graphics/sources/support/uploadAssets.js +1 -1
- package/layers/mixins/ArcGISMapService.js +1 -1
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/orientedImagery/transformations/updateElevationUtils.js +1 -1
- package/layers/orientedImagery/transformations/utils.js +1 -1
- package/layers/support/ControlPointsGeoreference.js +1 -1
- package/layers/support/Sublayer.js +1 -1
- package/package.json +4 -4
- package/renderers/support/DictionaryLoader.js +1 -1
- package/renderers/support/pointCloud/PointSizeFixedSizeAlgorithm.js +1 -1
- package/renderers/support/pointCloud/PointSizeSplatAlgorithm.js +1 -1
- package/rest/geometryService/cut.js +1 -1
- package/rest/geometryService/difference.js +1 -1
- package/rest/geometryService/intersect.js +1 -1
- package/rest/geometryService/project.js +1 -1
- package/rest/geometryService/reshape.js +1 -1
- package/rest/geometryService/simplify.js +1 -1
- package/rest/geometryService/utils.js +1 -1
- package/rest/knowledgeGraph/DataModel.js +1 -1
- package/rest/operations/generalize.js +1 -1
- package/rest/operations/identify.js +1 -1
- package/rest/operations/offset.js +1 -1
- package/rest/operations/relation.js +1 -1
- package/rest/query/operations/queryAttributeBins.js +1 -1
- package/rest/query/operations/queryTopFeatures.js +1 -1
- package/rest/query/operations/queryUtils.js +1 -1
- package/rest/support/BaseImageMeasureResultValue.js +1 -1
- package/rest/support/BufferParameters.js +1 -1
- package/rest/support/DensifyParameters.js +1 -1
- package/rest/support/DistanceParameters.js +1 -1
- package/rest/support/FeatureSet.js +1 -1
- package/rest/support/IdentifyParameters.js +1 -1
- package/rest/support/ImageAreaParameters.js +1 -1
- package/rest/support/ImageDistanceParameters.js +1 -1
- package/rest/support/ImageGPSInfoParameters.js +1 -1
- package/rest/support/ImageHeightParameters.js +1 -1
- package/rest/support/ImageHistogramParameters.js +1 -1
- package/rest/support/ImageIdentifyParameters.js +1 -1
- package/rest/support/ImageMeasureResultAngleValue.js +1 -1
- package/rest/support/ImageMeasureResultAreaValue.js +1 -1
- package/rest/support/ImageMeasureResultLengthValue.js +1 -1
- package/rest/support/ImagePointParameters.js +1 -1
- package/rest/support/ImageSampleParameters.js +1 -1
- package/rest/support/ImageToMapMultirayParameters.js +1 -1
- package/rest/support/ImageToMapParameters.js +1 -1
- package/rest/support/ImageVolumeParameters.js +1 -1
- package/rest/support/MapToImageParameters.js +1 -1
- package/rest/support/MeasureFromImageParameters.js +1 -1
- package/rest/support/ProjectParameters.js +1 -1
- package/support/modeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/support/tests/serviceMockDependencies.js +1 -1
- package/symbols/MarkerSymbol.js +1 -1
- package/symbols/PictureMarkerSymbol.js +1 -1
- package/symbols/SimpleFillSymbol.js +1 -1
- package/symbols/SimpleMarkerSymbol.js +1 -1
- package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
- package/symbols/cim/CIMSymbolRasterizer.js +1 -1
- package/symbols/cim/SDFHelper.js +1 -1
- package/symbols/cim/effects/EffectOffset.js +1 -1
- package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
- package/symbols/support/ObjectSymbol3DLayerResource.js +1 -1
- package/views/2d/analysis/ElevationProfile/ElevationProfileVisualization2D.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/createTestMeshData.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/interactive/editingTools/TransformTool.js +1 -1
- package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/features/support/GraphicsReader.js +1 -1
- package/views/2d/layers/graphics/GraphicStoreItem.js +1 -1
- package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementPathHelper.js +1 -1
- package/views/3d/analysis/ShadowCast/analysisViewRegister.js +5 -0
- package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
- package/views/3d/analysis/Slice/SliceController.js +1 -1
- package/views/3d/analysis/Slice/SliceTool.js +1 -1
- package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
- package/views/3d/analysis/support/projectionUtils.js +1 -1
- package/views/3d/interactive/editingTools/media/MediaElementControllerShape.js +1 -1
- package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
- package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
- package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
- package/views/3d/layers/DynamicLayerView3D.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/RouteLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
- package/views/3d/layers/i3s/I3SIndex.js +1 -1
- package/views/3d/layers/support/featureReference.js +1 -1
- package/views/3d/state/ScreenSizePerspective.js +1 -1
- package/views/3d/support/ViewSlice.js +1 -1
- package/views/3d/support/cameraUtils.js +1 -1
- package/views/3d/support/viewpointUtils.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowPresets.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/SliceHelper.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/Attribution.js +1 -1
- package/views/DOMContainer.js +1 -1
- package/views/PopupView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/VideoView.js +1 -1
- package/views/View.js +1 -1
- package/views/View2D.js +1 -1
- package/views/analysis/ElevationProfile/ElevationProfileLineGroundComputation.js +1 -1
- package/views/draw/DrawAction.js +1 -1
- package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
- package/views/layers/CatalogFootprintLayerView.js +1 -1
- package/views/layers/LayerView.js +1 -1
- package/views/support/attributionUtils.js +1 -1
- package/views/support/projectionUtils.js +1 -1
- package/widgets/Feature/FeatureUtilityNetworkAssociationList.js +1 -1
- package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/view/MapViewAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/components/ImageViewer.js +1 -1
- package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/galleryUtils.js +1 -1
- package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
- package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
- package/widgets/OrientedImageryViewer/support/NonPanoramicMedia.js +5 -0
- package/widgets/OrientedImageryViewer/support/NonPanoramicMediaCollection.js +5 -0
- package/widgets/OrientedImageryViewer/support/urlUtils.js +5 -0
- package/widgets/OrientedImageryViewer/utils.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
- package/widgets/PanoramicViewer/support/PanoramicMedia.js +1 -1
- package/widgets/PanoramicViewer/utils.js +1 -1
- package/widgets/PanoramicViewer.js +1 -1
- package/widgets/Slice.js +1 -1
- package/widgets/Swipe/SwipeViewModel.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/Track.js +1 -1
- package/widgets/UtilityNetworkAssociations.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/widgets/UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/support/GridControls.js +1 -1
- package/widgets/support/SnappingControls.js +1 -1
- package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationList.js +1 -1
- package/assets/esri/core/workers/chunks/00ff4ca88c9d291d82c3.js +0 -1
- package/assets/esri/core/workers/chunks/0271a2ca4e9b1e4fd284.js +0 -1
- package/assets/esri/core/workers/chunks/02a65563779b4c64b2cf.js +0 -1
- package/assets/esri/core/workers/chunks/02d1c48e874dfd985bc4.js +0 -1
- package/assets/esri/core/workers/chunks/05b7720ab6bf0874f27c.js +0 -1
- package/assets/esri/core/workers/chunks/061def9163a09c804b5c.js +0 -1
- package/assets/esri/core/workers/chunks/06221ebadab32111e2c6.js +0 -1
- package/assets/esri/core/workers/chunks/063045ac5553e91c0c4c.js +0 -1
- package/assets/esri/core/workers/chunks/06d52a570d5d44f8c86e.js +0 -1
- package/assets/esri/core/workers/chunks/0a58b57e1777a8b0ea23.js +0 -1
- package/assets/esri/core/workers/chunks/0e4d0213d568f50c231f.js +0 -1
- package/assets/esri/core/workers/chunks/103153951ba312dc5e9e.js +0 -1
- package/assets/esri/core/workers/chunks/169be08394c5e7703628.js +0 -1
- package/assets/esri/core/workers/chunks/1a6f3531ef3d671e0289.js +0 -1
- package/assets/esri/core/workers/chunks/1c816aff8613d1e4bf38.js +0 -1
- package/assets/esri/core/workers/chunks/1e2d42e9984ed3437ba2.js +0 -1
- package/assets/esri/core/workers/chunks/2008b22f76071a2dde4e.js +0 -1
- package/assets/esri/core/workers/chunks/20e4243ea563d05a5256.js +0 -1
- package/assets/esri/core/workers/chunks/2107c93d1fe87f3b8dfa.js +0 -1
- package/assets/esri/core/workers/chunks/21f37a4b8d1857369203.js +0 -1
- package/assets/esri/core/workers/chunks/229e1ed4282005aa0b83.js +0 -1
- package/assets/esri/core/workers/chunks/22b8eaa6afab0e5ffc47.js +0 -1
- package/assets/esri/core/workers/chunks/231c0b583fa97f2ca675.js +0 -1
- package/assets/esri/core/workers/chunks/233f9eb617f3d72995b5.js +0 -1
- package/assets/esri/core/workers/chunks/2463cebf904a3c46c639.js +0 -1
- package/assets/esri/core/workers/chunks/249504f7d356be80d214.js +0 -1
- package/assets/esri/core/workers/chunks/2550d2ba935cfdf30236.js +0 -1
- package/assets/esri/core/workers/chunks/273ac1066095d63d6a6f.js +0 -1
- package/assets/esri/core/workers/chunks/28db329528def851efd7.js +0 -1
- package/assets/esri/core/workers/chunks/2de32649f8b0c6404d7c.js +0 -1
- package/assets/esri/core/workers/chunks/2e2867bc66c94aba7dc7.js +0 -1
- package/assets/esri/core/workers/chunks/30c4af16e3a2acc25589.js +0 -1
- package/assets/esri/core/workers/chunks/32d32d3c3b38a215d20d.js +0 -1
- package/assets/esri/core/workers/chunks/3386d4392f465b807b94.js +0 -1
- package/assets/esri/core/workers/chunks/34613b288cf174983f8b.js +0 -1
- package/assets/esri/core/workers/chunks/35f086a2ae0585348ae6.js +0 -1
- package/assets/esri/core/workers/chunks/37ea150dec5e491f691e.js +0 -1
- package/assets/esri/core/workers/chunks/3ac8de121a07c70bae0f.js +0 -1
- package/assets/esri/core/workers/chunks/3c94db7ecdcd38eeb1b1.js +0 -1
- package/assets/esri/core/workers/chunks/3f7749f06ae54a4437d9.js +0 -1
- package/assets/esri/core/workers/chunks/40a722933af28823953b.js +0 -1
- package/assets/esri/core/workers/chunks/444026d1938c1078ca97.js +0 -1
- package/assets/esri/core/workers/chunks/44f759d723ae05bb1b19.js +0 -1
- package/assets/esri/core/workers/chunks/456684b1c1417ed0e611.js +0 -1
- package/assets/esri/core/workers/chunks/48e2737182c75005fb8f.js +0 -1
- package/assets/esri/core/workers/chunks/48f805929fe6241952f5.js +0 -1
- package/assets/esri/core/workers/chunks/4a48b8ec5f3f2fd139b5.js +0 -1
- package/assets/esri/core/workers/chunks/4b084f985bc4100e7aec.js +0 -1
- package/assets/esri/core/workers/chunks/4b1de1fcd13677b615a8.js +0 -1
- package/assets/esri/core/workers/chunks/4d933de84afb2e3b7d18.js +0 -1
- package/assets/esri/core/workers/chunks/4f0de45a0a295d66d446.js +0 -1
- package/assets/esri/core/workers/chunks/4ff771942531fb2755c4.js +0 -1
- package/assets/esri/core/workers/chunks/513a4ef960e27500f986.js +0 -1
- package/assets/esri/core/workers/chunks/56b693baa376bb990925.js +0 -1
- package/assets/esri/core/workers/chunks/57fd5e1260269002d18a.js +0 -1
- package/assets/esri/core/workers/chunks/5b73c77587772120b209.js +0 -1
- package/assets/esri/core/workers/chunks/5fe40bb0e9ab333f6854.js +0 -1
- package/assets/esri/core/workers/chunks/61373d2fa7e7638d3395.js +0 -1
- package/assets/esri/core/workers/chunks/6202922b1c2637e9aaa5.js +0 -1
- package/assets/esri/core/workers/chunks/633368ae6fbb46373328.js +0 -1
- package/assets/esri/core/workers/chunks/6d0fe4db6b94f3d2c53a.js +0 -1
- package/assets/esri/core/workers/chunks/6d702cb26cef46a76963.js +0 -1
- package/assets/esri/core/workers/chunks/6e8925412fb90f88d688.js +0 -1
- package/assets/esri/core/workers/chunks/6e8c20ff1d28ef2fe72c.js +0 -1
- package/assets/esri/core/workers/chunks/708aba69a1870ea41a61.js +0 -1
- package/assets/esri/core/workers/chunks/74b1028e95f7cfff387b.js +0 -1
- package/assets/esri/core/workers/chunks/755ce019c97f5d527772.js +0 -1
- package/assets/esri/core/workers/chunks/780f60210878a8286633.js +0 -1
- package/assets/esri/core/workers/chunks/78fccea3445fb2f9120a.js +0 -1
- package/assets/esri/core/workers/chunks/7d3c2a063598bdd015e2.js +0 -1
- package/assets/esri/core/workers/chunks/7eab0bb42f9f062522ef.js +0 -1
- package/assets/esri/core/workers/chunks/804958f3f4ff47a4eff5.js +0 -1
- package/assets/esri/core/workers/chunks/82ba4140e30f083fbc87.js +0 -1
- package/assets/esri/core/workers/chunks/833fd2bc42c5cb459084.js +0 -1
- package/assets/esri/core/workers/chunks/83c8e5a92d8d6193cb32.js +0 -1
- package/assets/esri/core/workers/chunks/83da9ee6544ee9d3c124.js +0 -1
- package/assets/esri/core/workers/chunks/870022661376442411e4.js +0 -1
- package/assets/esri/core/workers/chunks/897ce6fc9cefb1e14a64.js +0 -1
- package/assets/esri/core/workers/chunks/898ab7db220e81e921c6.js +0 -1
- package/assets/esri/core/workers/chunks/8b75861196d1ce5cba63.js +0 -1
- package/assets/esri/core/workers/chunks/8c07396e9ea3007d6404.js +0 -1
- package/assets/esri/core/workers/chunks/8e26831f71634288f834.js +0 -1
- package/assets/esri/core/workers/chunks/8ec238b5b59ef18a1713.js +0 -1
- package/assets/esri/core/workers/chunks/90b8ccee883738917a6d.js +0 -1
- package/assets/esri/core/workers/chunks/90bc9c299ae0e8b8b5e5.js +0 -1
- package/assets/esri/core/workers/chunks/9100330ed4b4437c819d.js +0 -1
- package/assets/esri/core/workers/chunks/933dce4d4ff8b90219c8.js +0 -1
- package/assets/esri/core/workers/chunks/934bc1028b287f8df4aa.js +0 -1
- package/assets/esri/core/workers/chunks/94dc8b0fa129f1e168c4.js +0 -1
- package/assets/esri/core/workers/chunks/96055de47831e59a28bf.js +0 -1
- package/assets/esri/core/workers/chunks/963ba863e0f87abfca25.js +0 -1
- package/assets/esri/core/workers/chunks/987e19af8a525e77883f.js +0 -1
- package/assets/esri/core/workers/chunks/992e9bbdf9d3787ddb0e.js +0 -1
- package/assets/esri/core/workers/chunks/9aa8d60483ad905fe13b.js +0 -1
- package/assets/esri/core/workers/chunks/9c0efd06c9000ccbd62d.js +0 -1
- package/assets/esri/core/workers/chunks/9f1d3c0b53bef07e39bf.js +0 -1
- package/assets/esri/core/workers/chunks/9fed9946241bb2a5cfa4.js +0 -1
- package/assets/esri/core/workers/chunks/a2662e98857f0abf8e82.js +0 -1
- package/assets/esri/core/workers/chunks/a59dab47a58695c639da.js +0 -1
- package/assets/esri/core/workers/chunks/a5a9b0a35849b9f2e86d.js +0 -1
- package/assets/esri/core/workers/chunks/a60006c9ccf6817fc0d2.js +0 -1
- package/assets/esri/core/workers/chunks/a627b7eb94b7fca33210.js +0 -1
- package/assets/esri/core/workers/chunks/a651dc3b8f1fc1ab34cc.js +0 -1
- package/assets/esri/core/workers/chunks/a96742e678a506c461ab.js +0 -1
- package/assets/esri/core/workers/chunks/af663e81c851bcf142f1.js +0 -1
- package/assets/esri/core/workers/chunks/af8d6e6949930d0e6c7b.js +0 -1
- package/assets/esri/core/workers/chunks/b59be95949445ff5afab.js +0 -1
- package/assets/esri/core/workers/chunks/b6dec5dfdeca54bae88d.js +0 -1
- package/assets/esri/core/workers/chunks/b88dc7d8ae105747e6a4.js +0 -1
- package/assets/esri/core/workers/chunks/b90c786dd474ea1a409c.js +0 -1
- package/assets/esri/core/workers/chunks/b92e9e5df8154a128982.js +0 -1
- package/assets/esri/core/workers/chunks/bbdfa8ffcf084cbd9938.js +0 -1
- package/assets/esri/core/workers/chunks/bff814d34b38ec80c44d.js +0 -1
- package/assets/esri/core/workers/chunks/c36d699a75b6e8fb93eb.js +0 -1
- package/assets/esri/core/workers/chunks/c50fdf723f2d4316862e.js +0 -1
- package/assets/esri/core/workers/chunks/c5e8ff4721b15ac3c6eb.js +0 -1
- package/assets/esri/core/workers/chunks/ca61077e0a598654f33f.js +0 -1
- package/assets/esri/core/workers/chunks/ca81be5bdb88ef557bf3.js +0 -1
- package/assets/esri/core/workers/chunks/ced12ad98f8f48d0dc00.js +0 -1
- package/assets/esri/core/workers/chunks/d0320ca67abca4f8b0d2.js +0 -1
- package/assets/esri/core/workers/chunks/d561624ddb9388732b25.js +0 -1
- package/assets/esri/core/workers/chunks/d5fd6d0eaf96edfab123.js +0 -1
- package/assets/esri/core/workers/chunks/d705410c369bd03b1875.js +0 -1
- package/assets/esri/core/workers/chunks/d82e17522ed946c2d809.js +0 -1
- package/assets/esri/core/workers/chunks/dc29cb16704e2e4d0a46.js +0 -1
- package/assets/esri/core/workers/chunks/dc5075b2326c79130baa.js +0 -1
- package/assets/esri/core/workers/chunks/dd105d6e0fcedee32644.js +0 -1
- package/assets/esri/core/workers/chunks/defc6b50df5018bd9e86.js +0 -1
- package/assets/esri/core/workers/chunks/e1148067ceae7d9eaaf8.js +0 -1
- package/assets/esri/core/workers/chunks/e5a6a646f27715152714.js +0 -1
- package/assets/esri/core/workers/chunks/e8c2e2fbe9cef4c8a8c6.js +0 -1
- package/assets/esri/core/workers/chunks/efc293c8bbc12156096d.js +0 -1
- package/assets/esri/core/workers/chunks/f693a4d97b2762d0e6ff.js +0 -1
- package/assets/esri/core/workers/chunks/f7f53567b0c5b35d6aea.js +0 -1
- package/assets/esri/core/workers/chunks/f92a78ce5510e0d0d0f7.js +0 -1
- package/assets/esri/core/workers/chunks/fb76b43181077c55a207.js +0 -1
- package/assets/esri/core/workers/chunks/fc61443546f21869f8ba.js +0 -1
- package/assets/esri/core/workers/chunks/fdaa10a588db394e2f65.js +0 -1
- package/chunks/UnitFactory.js +0 -5
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../request.js";import e from"../../core/Error.js";import{deg2rad as a}from"../../core/mathUtils.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{getPathExtension as o}from"../../core/urlUtils.js";import{rotatePixel as
|
|
5
|
+
import t from"../../request.js";import e from"../../core/Error.js";import{deg2rad as a}from"../../core/mathUtils.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{getPathExtension as o}from"../../core/urlUtils.js";import{rotatePixel as s}from"../../layers/orientedImagery/transformations/utils.js";import{imageGalleryThumbnailSize as n}from"./constants.js";import{validateTifOrMrfExtension as i}from"./utils.js";import{getDatasetFormat as m}from"./support/urlUtils.js";const c=t=>"FA"===t,h=async(t,a,r)=>{const o=new(await import("../../rest/support/AttachmentQuery.js").then(t=>t.default))({objectIds:[a]}),s=await t.queryAttachments(o,r),n=s[`${a}`]?.[0],i=n?.url;if(!i)throw new e("NoAttachmentError","no attachments found",{[t.objectIdField]:a,layer:t});return{datasetFormat:n.contentType.split("/")[1].toUpperCase(),url:i}};async function l(t,e){const a="string"==typeof t,r=a?t:t.url,{pathname:s,searchParams:n,origin:i}=new URL(r);let c=a?o(s):t.datasetFormat;c||(c=await m(r));const h=await import("../../layers/raster/datasets/RasterFactory.js").then(t=>t.default),l=await h.open({ioConfig:{customFetchParameters:Object.fromEntries(n),skipMapInfo:!0},datasetFormat:c?.toUpperCase(),url:`${i}${s}`,signal:e?.signal});return l?u(l,{signal:e?.signal}):null}async function u(t,e){const{level:a,offset:o,size:s}=p(t),{pixelBlock:n}=await t.fetchRawPixels(a,o,s,e);return r(e),n}function p(t){const{storageInfo:e,width:a,height:r}=t.rasterInfo,{maximumPyramidLevel:o,pyramidScalingFactor:s}=e,n=s??2;return{level:o,offset:{x:0,y:0},size:{width:Math.ceil(a/n**o),height:Math.ceil(r/n**o)}}}async function d(a,r,o){if(!a)throw new e("NoLayerError","No layer provided, cannot load image from attachment",{layer:a,objectId:r});const{datasetFormat:s,url:m}=await h(a,+r,o);return i(s)?await l({datasetFormat:s,url:m},o):(await t(m,{...o,useQueue:!0,responseType:"image",query:{w:n}})).data}function f(t,e,a=0){const{height:r,width:o}=t;e.width=o,e.height=r;const s=e.getContext("2d");if(!s)return;const n=g(t,e,s);n.getContext("2d")&&(a>0?w(s,n,o,r,a):s.drawImage(n,0,0))}function g(t,e,a){const r=document.createElement("canvas"),o=r.getContext("2d");if(t instanceof HTMLImageElement)r.width=t.width,r.height=t.height,o?.drawImage(t,0,0);else{const s=a.createImageData(e.width,e.height);s&&(s.data.set(t.getAsRGBA()),r.width=s.width,r.height=s.height,o?.putImageData(s,0,0))}return r}function w(t,e,r,o,n){const i=a(n),m=[s(0,0,i),s(r,0,i),s(r,o,i),s(0,o,i)],c=Math.max(...m.map(t=>t[0]))-Math.min(...m.map(t=>t[0])),h=Math.max(...m.map(t=>t[1]))-Math.min(...m.map(t=>t[1])),l=Math.min(r/c,o/h);t.save(),t.clearRect(0,0,r,o),t.translate(r/2,o/2),t.rotate(i),t.scale(l,l),t.drawImage(e,-r/2,-o/2,r,o),t.restore()}export{h as getImageSourceFromAttachment,l as getThumbnailPixelBlock,c as isFeatureAttachment,d as loadImageForAttachment,f as renderImageWithRotation};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{rad2deg as t}from"../../core/mathUtils.js";import{throwIfAborted as e}from"../../core/promiseUtils.js";import{createArea as n,createLength as r}from"../../core/quantity.js";import{formatArea as a,formatLength as o}from"../../core/quantityFormatUtils.js";import{set as i,determinant as s}from"../../core/libs/gl-matrix-2/math/mat3.js";import{create as c}from"../../core/libs/gl-matrix-2/factories/mat3f64.js";import{zeros as u,fromValues as l}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{distance as f}from"../../core/libs/gl-matrix-2/math/vec2.js";import{h as m,f as p,a as h}from"../../chunks/vec32.js";import{isSupported as y,geodesicLengths as g,geodesicAreas as w}from"../../geometry/geodesicUtils.js";import x from"../../geometry/Point.js";import R from"../../geometry/Polygon.js";import M from"../../geometry/Polyline.js";import{projectWithZConversion as z,project as d}from"../../geometry/projectionUtils.js";import P from"../../geometry/SpatialReference.js";import{e as v}from"../../chunks/areaOperator.js";import{l as j,e as b}from"../../chunks/geodeticAreaOperator.js";import{l as O,e as E}from"../../chunks/geodeticDensifyOperator.js";import{l as L,e as I}from"../../chunks/geodeticLengthOperator.js";import{e as W}from"../../chunks/lengthOperator.js";import{e as k}from"../../chunks/simplifyOperator.js";import{imageToWorldPanoramic as q,imageToWorld as G}from"../../layers/orientedImagery/transformations/imageToWorld.js";import{convertSphereVertexToPixelLocation as A,scaleWithFactor as D}from"../../layers/orientedImagery/transformations/utils.js";import{worldToImagePanoramic as U,worldToImage as B}from"../../layers/orientedImagery/transformations/worldToImage.js";const S=1e5,F="meters",T="square-meters";function H(t,e){let n=180*Math.atan2(-t.y+e.y,t.x-e.x)/Math.PI;return n<0&&(n+=180),n*Math.PI/180}function V(t,e){let n=180*Math.atan2(-t.y+e.y,t.x-e.x)/Math.PI;return n<0&&(n+=180),n*Math.PI/180}function C(t,e,n){if(!t?.length||!e?.length||!n)return;const[r,a]=t,[,o]=e,i=o-a;return[r+i*Math.cos(n),a+i*Math.sin(n)]}async function J(t,e,n){if(await O(),y(t)){const t=g([e],F)[0];return{area:w([n],T)[0],perimeter:t}}const r=P.WGS84,a=d(e,r),o=d(n,r);let i=E(o,S);if(i=i?k(i):null,!i)return null;const s=g([a],F)[0];return{area:w([i],T)[0],perimeter:s}}async function K(t,n,r,a,o=!1,i){if(n.length<2||!a||!r||!t)return null;const s=zt(r,t);if(!s)return null;const c=n.map(t=>[t.x,t.y]),u=c.at(0),l=c.at(-1);if(!u||!l)return null;const f=s.map(e=>It([u,l],e,t,o,!1)),m=await Promise.all(f);e(i);let p=0;for(const e of m){if(!e)return null;const t=Math.abs(e-a);p=Math.max(t,p)}return p}async function N(t,n,r,a,o,i=!1,s){if(n.length<2||!a||!r||!t)throw new Error("Missing parameters");const c=dt(r,t),u=n.map(t=>[t.x,t.y]),l=u.at(0),f=u.at(-1),m=c.map(e=>Wt([l,f],e,t,o,i,!1)),p=await Promise.all(m);e(s);let h=0;for(const e of p){if(!e)return 0;const t=Math.abs(e-a);h=Math.max(t,h)}return h}function Q(t,e,n=1){const r=Rt(t,!1);if(!r?.length)return;return 20*f([r[0].x,r[0].y],[r.at(-1).x,r.at(-1).y])*n/e}async function X(t){await L();const e=t.spatialReference;if(e.isGeographic){if(y(e))return g([t],F)[0];const n=d(t,P.WGS84);return g([n],F)[0]}return e.isWebMercator?I(t,{unit:F}):W(t,{unit:F})}function Y(t){if(!t?.length)throw new Error("Invalid deviations array");const[e,n,r]=[0,1,2].map(e=>t.map(t=>t[e]).filter(t=>null!==t)).map(t=>t.length?jt(t):0);return[e,n,r]}function Z(t,e){const n=k(e);if(!n)return null;const r=W(t,{unit:F});return{area:v(n,{unit:T}),perimeter:r}}function $(t,e){return[(t[1][0]-t[0][0])/e,(t[1][1]-t[0][1])/e,(t[1][2]-t[0][2])/e]}async function _(t,e){await Promise.all([j(),O(),L()]);let n=E(e,S);if(n=n?k(n):null,!n)return null;const r=I(t,{unit:F});return{area:b(n,{unit:T}),perimeter:r}}async function tt(t,n,r){if(!n||!t)throw new Error("Missing required parameters");const a=await G(t,n);e(r);const o=a.clone();o.z?o.z+=20:o.z=20;const{averageElevation:i,cameraPitch:s,cameraRoll:c,farDistance:u,...l}=n;return B(o,l)}async function et(t,n,r,a){const{attributes:o}=r,{location:i}=o,{updateElevationProps:s,...c}=n;if(!t||!n)throw new Error("Missing parameters");let u=i.clone();u.spatialReference.isGeographic&&(u=await z(u,P.WebMercator));const l=await q(t,{...c,cameraLocation:u},s);e(a);const f=l.clone();return f.z?f.z+=20:f.z=20,U(f,c)}function nt(t,e,n,r,a=0,o=1,i){const{averageElevation:s,cameraPitch:c,cameraRoll:u,farDistance:l,...m}=r;if(a>=5||o<=.1){return{value:t*Ot(r.cameraLocation.spatialReference)}}const p=new x({x:e.x,y:e.y,z:e.z?e.z+t:t,spatialReference:r.cameraLocation.spatialReference}),h=B(p,m),y=f([n[0].x,n[0].y],[h.x,h.y]),g=n.at(0),w=n.at(-1);if(!g||!w)return null;const R=f([g.x,g.y],[w.x,w.y])*t/y;return nt(R,e,n,r,a+1,Math.abs(t-R))}function rt(t,e,n,r,a=0,o=1,i){const{averageElevation:s,horizontalFieldOfView:c,verticalFieldOfView:u,farDistance:l,...m}=r;if(a>=5||o<=.1){return{value:t*Ot(r.cameraLocation.spatialReference)}}const p=new x({x:e.x,y:e.y,z:e.z?e.z+t:t,spatialReference:r.cameraLocation.spatialReference}),h=U(p,m),y=f([n[0].x,n[0].y],[h.x,h.y]),g=n.at(0),w=n.at(-1);if(!g||!w)return null;const R=f([g.x,g.y],[w.x,w.y])*t/y;return rt(R,e,n,r,a+1,Math.abs(t-R))}async function at(t,e,n){return t.spatialReference&&!e.spatialReference.equals(t.spatialReference)&&(e=await z(e,t.spatialReference)),new M({paths:[[[t.x,t.y,t.z??0],[e.x,e.y,e.z??0]]],spatialReference:n})}function ot(t){return 1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*t/6378137)))}function it(t,e){return Math.sqrt((Math.sqrt((t[0][0]-t[1][0])**2+(t[0][1]-t[1][1])**2)/e)**2+(t[0][2]-t[1][2])**2)}function st(t,e){return Math.sqrt((t[0][0]-t[1][0])**2+(t[0][1]-t[1][1])**2)/e}function ct(e){return t(Math.atan((e[1][2]-e[0][2])/Math.sqrt((e[1][0]-e[0][0])**2+(e[1][1]-e[0][1])**2)))}function ut(e){let n=90-t(Math.atan2(e[1][1]-e[0][1],e[1][0]-e[0][0]));return n<0&&(n+=360),n}function lt(t,e){return new x({x:(t.pointOnA[0]+t.pointOnB[0])/2,y:(t.pointOnA[1]+t.pointOnB[1])/2,z:(t.pointOnA[2]+t.pointOnB[2])/2,spatialReference:e})}async function ft(t){if(2===t?.length){const e=[];let n=1;const[r,a]=t,o=r.camera.spatialReference,{measurePoints:i}=r;for(let t=0;t<i.length;t++){const i=await at(r.camera,r.measurePoints[t],o),s=await at(a.camera,a.measurePoints[t],o),c=await Dt(i,s);if(!c)return null;const u=lt(c,o);u.spatialReference.isWebMercator&&(n=ot(u.y)),e.push([u.x,u.y,u.z??0])}if(e?.length>1){return{distance:it(e,n),horizontalDistance:st(e,n),verticalDistance:Math.abs(e[0][2]-e[1][2]),slope:ct(e),aspect:ut(e)}}}return null}async function mt(t){const e=t[0].camera.spatialReference;if(2!==t?.length)return null;const[n,r]=t,{camera:a,measurePoints:o}=n,{camera:i,measurePoints:s}=r,c=await at(a,o[0],e),u=await at(i,s[0],e),l=await Dt(c,u);return l?lt(l,e)??null:null}async function pt(t,e){if(!t?.length)return null;const n=[],r=t[0],a=t[1],o=r.camera.spatialReference,{measurePoints:i}=r;for(let l=0;l<i.length;l++){const t=await at(r.camera,r.measurePoints[l],o),e=await at(a.camera,a.measurePoints[l],o),i=await Dt(t,e);if(!i)return null;const s=lt(i,o);n.push([s.x,s.y,s.z??0])}if(n?.length<2)return null;const s=new M({paths:[n],spatialReference:e}),c=new R({rings:[n],spatialReference:e});if(e.isGeographic){const t=await J(e,s,c);return t?.area??null}if(e.isWebMercator){const t=await _(s,c);return t?.area??null}const u=Z(s,c);return u?.area??null}function ht(t,e){if(!t)return null;return{camera:e.geometry.clone(),measurePoints:Array.isArray(t)?t:[t]}}async function yt(t,e){const{updateElevationProps:n,...r}=e;return await G(t,r,n)}async function gt(t,e){const{updateElevationProps:n,...r}=e;return q(t,r,n)}function wt(t){navigator.clipboard.writeText(t).catch(t=>{throw t})}function xt(t){const e=t.map(t=>[t.x,t.y]),n=t[0].spatialReference;return new M({paths:[e],spatialReference:n})}function Rt(t,e){return t.map(t=>({x:e?.5+t[0]:t[0],y:e?.5-t[1]:t[1]}))}function Mt(t,e,n,a,i){const s="measurement"===t?e:n;if(i&&s)return o(a,r(s,F),i,3)||null}function zt(t,e){const{cameraPitch:n,cameraRoll:r,cameraLocation:a}=t,{x:o,y:i,z:s,spatialReference:c}=a;if(e.every(t=>0===t)||!e||!e.length)return null;const[u,l,,f,m]=e,p=[-f,0,f],h=[-m,0,m],y=[-u,0,u],g=[-l,0,l],w=[];for(const R of p)for(const e of h)for(const a of y)for(const u of y)for(const l of g){const f={...t};f.cameraPitch=n+R,f.cameraRoll=r+e,f.cameraLocation=new x({x:o+a,y:i+u,z:s?s+l:0,spatialReference:{wkid:c.wkid}}),w.push(f)}return w}function dt(t,e){const{cameraHeading:n,cameraLocation:r}=t,{x:a,y:o,z:i,spatialReference:s}=r;if(e.every(t=>0===t)||!e||!e.length)throw new Error("Invalid parameters");const[c,u,l]=e,f=l>0?[-l,0,l]:[],m=c>0?[-c,0,c]:[],p=u>0?[-u,0,u]:[],h=[];for(const y of f)for(const e of m)for(const r of m)for(const c of p){const u={...t};u.cameraHeading=n+y,u.cameraLocation=new x({x:a+e,y:o+r,z:i?i+c:0,spatialReference:{wkid:s.wkid}}),h.push(u)}return h}function Pt(t,e,n,a,i){const s="measurement"===t?e:jt(n);if(i&&s)return o(a,r(s,F),i,3)||null}function vt(t,e,r,o,i){const s="measurement"===t?e:r;if(i&&s)return a(o,n(s,T),i,3)||null}function jt(t){return Math.sqrt(t.reduce((t,e)=>t+e**2,0))}function bt(t,e,n){if("default"===e)return t;const r={x:t[0],y:t[1],z:t[2]},a=A(r,n[0],n[1]);return[a.x,a.y]}function Ot(t){return t.metersPerUnit}function Et(t,e,n){let r=[];return r="panoramic"===e?t.map(([t,e,r])=>{const{x:a,y:o}=A({x:t,y:e,z:r},n[0],n[1]);return[a-.5,-.5-o]}):t.map(([t,e])=>[t-.5,-.5-e]),r}function Lt(t,e){return t.map(t=>A({x:t[0],y:t[1],z:t[2]},e[0],e[1]))}async function It(t,n,r,a=!1,o=!1,i){if(!t||!n||t.length<2)return null;const s=Rt(t,a);if(!s||s.length<2)return null;const[c,u]=[s[0],s.at(-1)];if(!u)return null;const l=[c],m=await G(c,n);e(i);const p=m.clone();p.z?p.z+=20:p.z=20;const{averageElevation:h,cameraPitch:y,cameraRoll:g,farDistance:w,...x}=n,R=B(p,x),M=f([c.x,c.y],[R.x,R.y]),z=H(c,R);if(!z)return;const d=C([c.x,c.y],[u.x,u.y],z);if(!d?.length)return;l.push({x:d[0],y:d[1]});const P=20*f([l[0].x,l[0].y],[l[1].x,l[1].y])*Ot(n.cameraLocation.spatialReference)/M;if(!o)return P;const v=nt(P,m,l,n,0,1);return v?.value}async function Wt(t,n,r,a,o=!1,i=!1,s){const{attributes:c}=a,{location:u}=c,{updateElevationProps:l,...m}=n;if(!t||!n||t.length<2)throw new Error("Invalid parameters");const p=Rt(t,o),[h,y]=[p[0],p.at(-1)],g=[h];let w=u.clone();w.spatialReference.isGeographic&&(w=await z(w,P.WebMercator));const x=await q(h,{...m,cameraLocation:w},l);e(s);const R=x.clone();R.z?R.z+=20:R.z=20;const M=U(R,m),d=f([h.x,h.y],[M.x,M.y]),v=H(h,M);if(!v)return;const j=C([h.x,h.y],[y.x,y.y],v);if(!j?.length)return;g.push({x:j[0],y:j[1]});const b=20*f([g[0].x,g[0].y],[g[1].x,g[1].y])*Ot(n.cameraLocation.spatialReference)/d;if(!i)return b;const O=rt(b,x,g,n,0,1);return O?.value}async function kt(t,e,n=!1){if(t.length<3)return null;const r=Rt(t,n),a=await yt(r,e),o=a.map(({x:t,y:e})=>[t,e]);t.push(t[0]),o.push(o[0]);const i=a[0].spatialReference,s=new M({paths:[o],spatialReference:i}),c=new R({rings:[o],spatialReference:i});return i.isGeographic?J(i,s,c):i.isWebMercator?_(s,c):Z(s,c)}async function qt(t,n,r=!1,a){if(t.length<3)return null;const o=Rt(t,r),i=await gt(o,n);e(a);const s=i.map(({x:t,y:e})=>[t,e]);t.push(t[0]),s.push(s[0]);const c=i[0].spatialReference,u=new M({paths:[s],spatialReference:c}),l=new R({rings:[s],spatialReference:c});return c.isGeographic?J(c,u,l):c.isWebMercator?_(u,l):Z(u,l)}async function Gt(t,e,n=!1){const r=Rt(t,n);return X(xt(await yt(r,e)))}async function At(t,n,r=!1,a){const o=Rt(t,r),i=await gt(o,n);e(a);return X(xt(i))}async function Dt(t,e){const n=c(),r=t.paths[0][0],a=e.paths[0][0];let o,u;t.spatialReference.isWGS84||t.spatialReference.isWebMercator?(await L(),o=I(t),u=I(e)):(o=W(t),u=W(e));const l=$(t.paths[0],o),f=$(e.paths[0],u),m=Ut(l,f),[p,h,y]=l,[g,w,x]=f.map(t=>-t),[R,M,z]=m,[d,P,v]=[a[0]-r[0],a[1]-r[1],a[2]-r[2]];i(n,p,g,R,h,w,M,y,x,z);const j=s(n);if(0===j)return null;i(n,d,g,R,P,w,M,v,x,z);const b=s(n);i(n,p,d,R,h,P,M,y,v,z);const O=s(n);i(n,p,g,d,h,w,P,y,x,v);const E=b/j,k=O/j,q=s(n)/j;return{distance:Math.abs(q/Math.sqrt(m[0]*m[0]+m[1]*m[1]+m[2]*m[2])),pointOnA:Bt(r,E,l),pointOnB:Bt(a,k,f)}}function Ut(t,e){const n=u(),r=m(u(),t[0],t[1],t[2]),a=m(u(),e[0],e[1],e[2]),o=p(n,r,a);return[o[0],o[1],o[2]]}function Bt(t,e,n){return[t[0]+e*n[0],t[1]+e*n[1],t[2]+e*n[2]]}function St(t,e){const n=l(t[0],t[1],t[2]),r=l(e[0],e[1],e[2]);return h(u(),n,r)}function Ft(t,e,n){const r=D(t,e,n);return[r[0],r[1],r[2]]}export{H as calculateAngle,V as calculateAnglePano,C as calculateCorrectedPixel,K as calculateHeightAccuracy,N as calculateHeightAccuracyPanoramic,Q as calculateHeightFromTemporaryDistance,Y as calculateLocationAccuracyFromDeviations,et as calculateReferenceImagePointPanoramic,tt as calculateTempImagePoint,nt as computeHeightIteratively,rt as computeHeightIterativelyPanoramic,pt as computeTriangulatedAreaMeasurement,ft as computeTriangulatedDistanceMeasurement,mt as computeTriangulatedPoint,ht as computeTriangulatedVector,wt as copyToClipboard,Rt as formatPixels,zt as generateCombinations,dt as generateCombinationsPanoramic,vt as getConvertedArea,Pt as getConvertedDistance,Mt as getConvertedHeight,bt as getModeCorrectedPoint,Et as getModeCorrectedPoints,Lt as getPixelLocationFromSphereVertices,jt as getRootOfSumOfSquaredErrors,Ot as getUnitRateFromSpatialReference,It as heightMeasurement2D,Wt as heightMeasurementPanoramic,kt as pixelAreaMeasurement2D,qt as pixelAreaMeasurementPanoramic,Gt as pixelDistanceMeasurement2D,At as pixelDistanceMeasurementPanoramic,Ft as scale,Dt as solveSkewLinesIntersection,St as subtract};
|
|
5
|
+
import{rad2deg as t}from"../../core/mathUtils.js";import{throwIfAborted as e}from"../../core/promiseUtils.js";import{createArea as n,createLength as r}from"../../core/quantity.js";import{formatArea as a,formatLength as o}from"../../core/quantityFormatUtils.js";import{set as i,determinant as s}from"../../core/libs/gl-matrix-2/math/mat3.js";import{create as c}from"../../core/libs/gl-matrix-2/factories/mat3f64.js";import{zeros as u,fromValues as l}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{distance as f}from"../../core/libs/gl-matrix-2/math/vec2.js";import{h as m,f as p,a as h}from"../../chunks/vec32.js";import{isSupported as y,geodesicLengths as g,geodesicAreas as w}from"../../geometry/geodesicUtils.js";import x from"../../geometry/Point.js";import R from"../../geometry/Polygon.js";import M from"../../geometry/Polyline.js";import{projectAsync as z,project as d}from"../../geometry/projectionUtils.js";import P from"../../geometry/SpatialReference.js";import{e as v}from"../../chunks/areaOperator.js";import{l as j,e as b}from"../../chunks/geodeticAreaOperator.js";import{l as O,e as E}from"../../chunks/geodeticDensifyOperator.js";import{l as L,e as I}from"../../chunks/geodeticLengthOperator.js";import{e as W}from"../../chunks/lengthOperator.js";import{e as k}from"../../chunks/simplifyOperator.js";import{imageToWorldPanoramic as q,imageToWorld as G}from"../../layers/orientedImagery/transformations/imageToWorld.js";import{convertSphereVertexToPixelLocation as A,scaleWithFactor as D}from"../../layers/orientedImagery/transformations/utils.js";import{worldToImagePanoramic as U,worldToImage as B}from"../../layers/orientedImagery/transformations/worldToImage.js";const S=1e5,F="meters",T="square-meters";function H(t,e){let n=180*Math.atan2(-t.y+e.y,t.x-e.x)/Math.PI;return n<0&&(n+=180),n*Math.PI/180}function V(t,e){let n=180*Math.atan2(-t.y+e.y,t.x-e.x)/Math.PI;return n<0&&(n+=180),n*Math.PI/180}function C(t,e,n){if(!t?.length||!e?.length||!n)return;const[r,a]=t,[,o]=e,i=o-a;return[r+i*Math.cos(n),a+i*Math.sin(n)]}async function J(t,e,n){if(await O(),y(t)){const t=g([e],F)[0];return{area:w([n],T)[0],perimeter:t}}const r=P.WGS84,a=d(e,r),o=d(n,r);let i=E(o,S);if(i=i?k(i):null,!i)return null;const s=g([a],F)[0];return{area:w([i],T)[0],perimeter:s}}async function K(t,n,r,a,o=!1,i){if(n.length<2||!a||!r||!t)return null;const s=zt(r,t);if(!s)return null;const c=n.map(t=>[t.x,t.y]),u=c.at(0),l=c.at(-1);if(!u||!l)return null;const f=s.map(e=>It([u,l],e,t,o,!1)),m=await Promise.all(f);e(i);let p=0;for(const e of m){if(!e)return null;const t=Math.abs(e-a);p=Math.max(t,p)}return p}async function N(t,n,r,a,o,i=!1,s){if(n.length<2||!a||!r||!t)throw new Error("Missing parameters");const c=dt(r,t),u=n.map(t=>[t.x,t.y]),l=u.at(0),f=u.at(-1),m=c.map(e=>Wt([l,f],e,t,o,i,!1)),p=await Promise.all(m);e(s);let h=0;for(const e of p){if(!e)return 0;const t=Math.abs(e-a);h=Math.max(t,h)}return h}function Q(t,e,n=1){const r=Rt(t,!1);if(!r?.length)return;return 20*f([r[0].x,r[0].y],[r.at(-1).x,r.at(-1).y])*n/e}async function X(t){await L();const e=t.spatialReference;if(e.isGeographic){if(y(e))return g([t],F)[0];const n=d(t,P.WGS84);return g([n],F)[0]}return e.isWebMercator?I(t,{unit:F}):W(t,{unit:F})}function Y(t){if(!t?.length)throw new Error("Invalid deviations array");const[e,n,r]=[0,1,2].map(e=>t.map(t=>t[e]).filter(t=>null!==t)).map(t=>t.length?jt(t):0);return[e,n,r]}function Z(t,e){const n=k(e);if(!n)return null;const r=W(t,{unit:F});return{area:v(n,{unit:T}),perimeter:r}}function $(t,e){return[(t[1][0]-t[0][0])/e,(t[1][1]-t[0][1])/e,(t[1][2]-t[0][2])/e]}async function _(t,e){await Promise.all([j(),O(),L()]);let n=E(e,S);if(n=n?k(n):null,!n)return null;const r=I(t,{unit:F});return{area:b(n,{unit:T}),perimeter:r}}async function tt(t,n,r){if(!n||!t)throw new Error("Missing required parameters");const a=await G(t,n);e(r);const o=a.clone();o.z?o.z+=20:o.z=20;const{averageElevation:i,cameraPitch:s,cameraRoll:c,farDistance:u,...l}=n;return B(o,l)}async function et(t,n,r,a){const{attributes:o}=r,{location:i}=o,{updateElevationProps:s,...c}=n;if(!t||!n)throw new Error("Missing parameters");let u=i.clone();u.spatialReference.isGeographic&&(u=await z(u,P.WebMercator));const l=await q(t,{...c,cameraLocation:u},s);e(a);const f=l.clone();return f.z?f.z+=20:f.z=20,U(f,c)}function nt(t,e,n,r,a=0,o=1,i){const{averageElevation:s,cameraPitch:c,cameraRoll:u,farDistance:l,...m}=r;if(a>=5||o<=.1){return{value:t*Ot(r.cameraLocation.spatialReference)}}const p=new x({x:e.x,y:e.y,z:e.z?e.z+t:t,spatialReference:r.cameraLocation.spatialReference}),h=B(p,m),y=f([n[0].x,n[0].y],[h.x,h.y]),g=n.at(0),w=n.at(-1);if(!g||!w)return null;const R=f([g.x,g.y],[w.x,w.y])*t/y;return nt(R,e,n,r,a+1,Math.abs(t-R))}function rt(t,e,n,r,a=0,o=1,i){const{averageElevation:s,horizontalFieldOfView:c,verticalFieldOfView:u,farDistance:l,...m}=r;if(a>=5||o<=.1){return{value:t*Ot(r.cameraLocation.spatialReference)}}const p=new x({x:e.x,y:e.y,z:e.z?e.z+t:t,spatialReference:r.cameraLocation.spatialReference}),h=U(p,m),y=f([n[0].x,n[0].y],[h.x,h.y]),g=n.at(0),w=n.at(-1);if(!g||!w)return null;const R=f([g.x,g.y],[w.x,w.y])*t/y;return rt(R,e,n,r,a+1,Math.abs(t-R))}async function at(t,e,n){return t.spatialReference&&!e.spatialReference.equals(t.spatialReference)&&(e=await z(e,t.spatialReference)),new M({paths:[[[t.x,t.y,t.z??0],[e.x,e.y,e.z??0]]],spatialReference:n})}function ot(t){return 1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*t/6378137)))}function it(t,e){return Math.sqrt((Math.sqrt((t[0][0]-t[1][0])**2+(t[0][1]-t[1][1])**2)/e)**2+(t[0][2]-t[1][2])**2)}function st(t,e){return Math.sqrt((t[0][0]-t[1][0])**2+(t[0][1]-t[1][1])**2)/e}function ct(e){return t(Math.atan((e[1][2]-e[0][2])/Math.sqrt((e[1][0]-e[0][0])**2+(e[1][1]-e[0][1])**2)))}function ut(e){let n=90-t(Math.atan2(e[1][1]-e[0][1],e[1][0]-e[0][0]));return n<0&&(n+=360),n}function lt(t,e){return new x({x:(t.pointOnA[0]+t.pointOnB[0])/2,y:(t.pointOnA[1]+t.pointOnB[1])/2,z:(t.pointOnA[2]+t.pointOnB[2])/2,spatialReference:e})}async function ft(t){if(2===t?.length){const e=[];let n=1;const[r,a]=t,o=r.camera.spatialReference,{measurePoints:i}=r;for(let t=0;t<i.length;t++){const i=await at(r.camera,r.measurePoints[t],o),s=await at(a.camera,a.measurePoints[t],o),c=await Dt(i,s);if(!c)return null;const u=lt(c,o);u.spatialReference.isWebMercator&&(n=ot(u.y)),e.push([u.x,u.y,u.z??0])}if(e?.length>1){return{distance:it(e,n),horizontalDistance:st(e,n),verticalDistance:Math.abs(e[0][2]-e[1][2]),slope:ct(e),aspect:ut(e)}}}return null}async function mt(t){const e=t[0].camera.spatialReference;if(2!==t?.length)return null;const[n,r]=t,{camera:a,measurePoints:o}=n,{camera:i,measurePoints:s}=r,c=await at(a,o[0],e),u=await at(i,s[0],e),l=await Dt(c,u);return l?lt(l,e)??null:null}async function pt(t,e){if(!t?.length)return null;const n=[],r=t[0],a=t[1],o=r.camera.spatialReference,{measurePoints:i}=r;for(let l=0;l<i.length;l++){const t=await at(r.camera,r.measurePoints[l],o),e=await at(a.camera,a.measurePoints[l],o),i=await Dt(t,e);if(!i)return null;const s=lt(i,o);n.push([s.x,s.y,s.z??0])}if(n?.length<2)return null;const s=new M({paths:[n],spatialReference:e}),c=new R({rings:[n],spatialReference:e});if(e.isGeographic){const t=await J(e,s,c);return t?.area??null}if(e.isWebMercator){const t=await _(s,c);return t?.area??null}const u=Z(s,c);return u?.area??null}function ht(t,e){if(!t)return null;return{camera:e.geometry.clone(),measurePoints:Array.isArray(t)?t:[t]}}async function yt(t,e){const{updateElevationProps:n,...r}=e;return await G(t,r,n)}async function gt(t,e){const{updateElevationProps:n,...r}=e;return q(t,r,n)}function wt(t){navigator.clipboard.writeText(t).catch(t=>{throw t})}function xt(t){const e=t.map(t=>[t.x,t.y]),n=t[0].spatialReference;return new M({paths:[e],spatialReference:n})}function Rt(t,e){return t.map(t=>({x:e?.5+t[0]:t[0],y:e?.5-t[1]:t[1]}))}function Mt(t,e,n,a,i){const s="measurement"===t?e:n;if(i&&s)return o(a,r(s,F),i,3)||null}function zt(t,e){const{cameraPitch:n,cameraRoll:r,cameraLocation:a}=t,{x:o,y:i,z:s,spatialReference:c}=a;if(e.every(t=>0===t)||!e||!e.length)return null;const[u,l,,f,m]=e,p=[-f,0,f],h=[-m,0,m],y=[-u,0,u],g=[-l,0,l],w=[];for(const R of p)for(const e of h)for(const a of y)for(const u of y)for(const l of g){const f={...t};f.cameraPitch=n+R,f.cameraRoll=r+e,f.cameraLocation=new x({x:o+a,y:i+u,z:s?s+l:0,spatialReference:{wkid:c.wkid}}),w.push(f)}return w}function dt(t,e){const{cameraHeading:n,cameraLocation:r}=t,{x:a,y:o,z:i,spatialReference:s}=r;if(e.every(t=>0===t)||!e||!e.length)throw new Error("Invalid parameters");const[c,u,l]=e,f=l>0?[-l,0,l]:[],m=c>0?[-c,0,c]:[],p=u>0?[-u,0,u]:[],h=[];for(const y of f)for(const e of m)for(const r of m)for(const c of p){const u={...t};u.cameraHeading=n+y,u.cameraLocation=new x({x:a+e,y:o+r,z:i?i+c:0,spatialReference:{wkid:s.wkid}}),h.push(u)}return h}function Pt(t,e,n,a,i){const s="measurement"===t?e:jt(n);if(i&&s)return o(a,r(s,F),i,3)||null}function vt(t,e,r,o,i){const s="measurement"===t?e:r;if(i&&s)return a(o,n(s,T),i,3)||null}function jt(t){return Math.sqrt(t.reduce((t,e)=>t+e**2,0))}function bt(t,e,n){if("default"===e)return t;const r={x:t[0],y:t[1],z:t[2]},a=A(r,n[0],n[1]);return[a.x,a.y]}function Ot(t){return t.metersPerUnit}function Et(t,e,n){let r=[];return r="panoramic"===e?t.map(([t,e,r])=>{const{x:a,y:o}=A({x:t,y:e,z:r},n[0],n[1]);return[a-.5,-.5-o]}):t.map(([t,e])=>[t-.5,-.5-e]),r}function Lt(t,e){return t.map(t=>A({x:t[0],y:t[1],z:t[2]},e[0],e[1]))}async function It(t,n,r,a=!1,o=!1,i){if(!t||!n||t.length<2)return null;const s=Rt(t,a);if(!s||s.length<2)return null;const[c,u]=[s[0],s.at(-1)];if(!u)return null;const l=[c],m=await G(c,n);e(i);const p=m.clone();p.z?p.z+=20:p.z=20;const{averageElevation:h,cameraPitch:y,cameraRoll:g,farDistance:w,...x}=n,R=B(p,x),M=f([c.x,c.y],[R.x,R.y]),z=H(c,R);if(!z)return;const d=C([c.x,c.y],[u.x,u.y],z);if(!d?.length)return;l.push({x:d[0],y:d[1]});const P=20*f([l[0].x,l[0].y],[l[1].x,l[1].y])*Ot(n.cameraLocation.spatialReference)/M;if(!o)return P;const v=nt(P,m,l,n,0,1);return v?.value}async function Wt(t,n,r,a,o=!1,i=!1,s){const{attributes:c}=a,{location:u}=c,{updateElevationProps:l,...m}=n;if(!t||!n||t.length<2)throw new Error("Invalid parameters");const p=Rt(t,o),[h,y]=[p[0],p.at(-1)],g=[h];let w=u.clone();w.spatialReference.isGeographic&&(w=await z(w,P.WebMercator));const x=await q(h,{...m,cameraLocation:w},l);e(s);const R=x.clone();R.z?R.z+=20:R.z=20;const M=U(R,m),d=f([h.x,h.y],[M.x,M.y]),v=H(h,M);if(!v)return;const j=C([h.x,h.y],[y.x,y.y],v);if(!j?.length)return;g.push({x:j[0],y:j[1]});const b=20*f([g[0].x,g[0].y],[g[1].x,g[1].y])*Ot(n.cameraLocation.spatialReference)/d;if(!i)return b;const O=rt(b,x,g,n,0,1);return O?.value}async function kt(t,e,n=!1){if(t.length<3)return null;const r=Rt(t,n),a=await yt(r,e),o=a.map(({x:t,y:e})=>[t,e]);t.push(t[0]),o.push(o[0]);const i=a[0].spatialReference,s=new M({paths:[o],spatialReference:i}),c=new R({rings:[o],spatialReference:i});return i.isGeographic?J(i,s,c):i.isWebMercator?_(s,c):Z(s,c)}async function qt(t,n,r=!1,a){if(t.length<3)return null;const o=Rt(t,r),i=await gt(o,n);e(a);const s=i.map(({x:t,y:e})=>[t,e]);t.push(t[0]),s.push(s[0]);const c=i[0].spatialReference,u=new M({paths:[s],spatialReference:c}),l=new R({rings:[s],spatialReference:c});return c.isGeographic?J(c,u,l):c.isWebMercator?_(u,l):Z(u,l)}async function Gt(t,e,n=!1){const r=Rt(t,n);return X(xt(await yt(r,e)))}async function At(t,n,r=!1,a){const o=Rt(t,r),i=await gt(o,n);e(a);return X(xt(i))}async function Dt(t,e){const n=c(),r=t.paths[0][0],a=e.paths[0][0];let o,u;t.spatialReference.isWGS84||t.spatialReference.isWebMercator?(await L(),o=I(t),u=I(e)):(o=W(t),u=W(e));const l=$(t.paths[0],o),f=$(e.paths[0],u),m=Ut(l,f),[p,h,y]=l,[g,w,x]=f.map(t=>-t),[R,M,z]=m,[d,P,v]=[a[0]-r[0],a[1]-r[1],a[2]-r[2]];i(n,p,g,R,h,w,M,y,x,z);const j=s(n);if(0===j)return null;i(n,d,g,R,P,w,M,v,x,z);const b=s(n);i(n,p,d,R,h,P,M,y,v,z);const O=s(n);i(n,p,g,d,h,w,P,y,x,v);const E=b/j,k=O/j,q=s(n)/j;return{distance:Math.abs(q/Math.sqrt(m[0]*m[0]+m[1]*m[1]+m[2]*m[2])),pointOnA:Bt(r,E,l),pointOnB:Bt(a,k,f)}}function Ut(t,e){const n=u(),r=m(u(),t[0],t[1],t[2]),a=m(u(),e[0],e[1],e[2]),o=p(n,r,a);return[o[0],o[1],o[2]]}function Bt(t,e,n){return[t[0]+e*n[0],t[1]+e*n[1],t[2]+e*n[2]]}function St(t,e){const n=l(t[0],t[1],t[2]),r=l(e[0],e[1],e[2]);return h(u(),n,r)}function Ft(t,e,n){const r=D(t,e,n);return[r[0],r[1],r[2]]}export{H as calculateAngle,V as calculateAnglePano,C as calculateCorrectedPixel,K as calculateHeightAccuracy,N as calculateHeightAccuracyPanoramic,Q as calculateHeightFromTemporaryDistance,Y as calculateLocationAccuracyFromDeviations,et as calculateReferenceImagePointPanoramic,tt as calculateTempImagePoint,nt as computeHeightIteratively,rt as computeHeightIterativelyPanoramic,pt as computeTriangulatedAreaMeasurement,ft as computeTriangulatedDistanceMeasurement,mt as computeTriangulatedPoint,ht as computeTriangulatedVector,wt as copyToClipboard,Rt as formatPixels,zt as generateCombinations,dt as generateCombinationsPanoramic,vt as getConvertedArea,Pt as getConvertedDistance,Mt as getConvertedHeight,bt as getModeCorrectedPoint,Et as getModeCorrectedPoints,Lt as getPixelLocationFromSphereVertices,jt as getRootOfSumOfSquaredErrors,Ot as getUnitRateFromSpatialReference,It as heightMeasurement2D,Wt as heightMeasurementPanoramic,kt as pixelAreaMeasurement2D,qt as pixelAreaMeasurementPanoramic,Gt as pixelDistanceMeasurement2D,At as pixelDistanceMeasurementPanoramic,Ft as scale,Dt as solveSkewLinesIntersection,St as subtract};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{throwIfAborted as e}from"../../../core/promiseUtils.js";import{distance as t}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{
|
|
5
|
+
import{throwIfAborted as e}from"../../../core/promiseUtils.js";import{distance as t}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{projectAsync as a}from"../../../geometry/projectionUtils.js";import{imageToWorld as i,imageToWorldPanoramic as r}from"../../../layers/orientedImagery/transformations/imageToWorld.js";import{getImageToWorldProperties as n,convertSphereVertexToPixelLocation as s}from"../../../layers/orientedImagery/transformations/utils.js";import{formatPixels as l,heightMeasurementPanoramic as c,heightMeasurement2D as o,calculateHeightAccuracyPanoramic as u,calculateHeightAccuracy as m,pixelAreaMeasurement2D as w,pixelAreaMeasurementPanoramic as d,pixelDistanceMeasurement2D as M,pixelDistanceMeasurementPanoramic as h,generateCombinations as g,getRootOfSumOfSquaredErrors as v,generateCombinationsPanoramic as p,calculateLocationAccuracyFromDeviations as f,calculateReferenceImagePointPanoramic as y,calculateAnglePano as _,calculateTempImagePoint as P,calculateAngle as A,computeTriangulatedAreaMeasurement as z,computeTriangulatedDistanceMeasurement as x}from"../imageMeasurementUtils.js";class b{constructor(e){this._viewModel=e}async computeHeight(e,t,a=!0){const{currentBestFeature:i,activeViewer:r,layer:s,footprintExtent:w}=this._viewModel,d=r?.imageSize,M=i?.attributes,h=s?.orientationAccuracy;if(!M||!d||!e||e.length<2||!h)return;const g="panoramic"===t?await this._viewModel.getMeasurementPropertiesPanoramic():n(M,d[0],d[1]),v=e.at(0),p=e.at(-1);if(!(g&&v&&p&&h&&w))return;const f=[p,v],y=l(f,!1),_="panoramic"===t?await c(f,g,h,i,!0,!1):await o(f,g,h,!0,a);if(!_)return;const P="panoramic"===t?await u(h,y,g,_,i,!0):await m(h,y,g,_,!0);return P?{value:_,accuracy:P}:{value:_}}async calculateAreaMeasurement(t,a,i){if(t.length<3||!this._viewModel.currentBestFeature||!this._viewModel.activeViewer?.imageSize||"none"===this._viewModel.mode)return null;const r="default"===a?await this._viewModel.getMeasurementProperties():await this._viewModel.getMeasurementPropertiesPanoramic();return e(i),r?"default"===a?await w(t,r,!0):await d(t,r,!0,i):null}async calculateDistanceMeasurement(t,a,i){const{currentBestFeature:r,activeViewer:n}=this._viewModel;if(t.length<2||!r||!n?.imageSize||"none"===a)return null;const s="default"===a?await this._viewModel.getMeasurementProperties():await this._viewModel.getMeasurementPropertiesPanoramic();return e(i),s?"default"===a?await M([t.at(0),t.at(-1)],s,!0):await h([t.at(0),t.at(-1)],s,!0):null}async calculateAccuracy(t,a,i){const{layer:r,currentBestFeature:n,activeViewer:s,currentBestFeatureMeasurementImage:l,triangularMeasurementActive:c,imageMeasurementViewer:o}=this._viewModel,u=r?.orientationAccuracy,m=u?.every(e=>0===e)||!u?.length;if("area"===a&&t.length<3||"distance"===a&&t.length<2||!n||!s?.imageSize||m)return null;let d=null;if(c&&l&&o?d=await this._viewModel.getMeasurementProperties(l,o):(d=await this._viewModel.getMeasurementProperties(),e(i)),!d)return null;const h="area"===a?await w(t,d,!0):await M([t.at(0),t.at(-1)],d,!0);e(i);const{updateElevationProps:p,...f}=d,y=g(f,u);if(!y?.length)return null;const _=y.map(e=>({...e,updateElevationProps:p})).map(async r=>{const n="area"===a?await w(t,r,!0):await M([t.at(0),t.at(-1)],r,!0);if(e(i),n&&h){if("area"===a){const e="number"!=typeof n?n.area:null;return e?Math.abs(e-h.area):null}return Math.abs(n-h)}return null}),P=await Promise.all(_);e(i);const A=P.filter(e=>null!==e);return 0===A.length?null:v(A)}async calculateLocationAccuracy(t,n,s="default",l){const{layer:c,currentBestFeature:o}=this._viewModel,u=c?.orientationAccuracy,m=this._viewModel.view?.spatialReference,w=u?.every(e=>0===e)||!u?.length;if(!o||w)return null;const d="default"===s?await this._viewModel.getMeasurementProperties():await this._viewModel.getMeasurementPropertiesPanoramic();if(e(l),!d)return null;const{updateElevationProps:M,...h}=d,v="default"===s?g(h,u):p(h,u);if(!v?.length)return null;const y=v.map(e=>({...e,updateElevationProps:M})).map(async c=>{const{updateElevationProps:o,...u}=c;let w="default"===s?await i(t,u,o):await r(t,u,o);return e(l),m&&!w.spatialReference.equals(m)&&(w=await a(w,m),e(l)),w&&n?[Math.abs(w.x-n.x),Math.abs(w.y-n.y),w.z&&n.z?Math.abs(w.z-n.z):0]:null}),_=await Promise.all(y);if(e(l),!_?.length)return null;const P=_.map(e=>[e?.[0]??0,e?.[1]??0,e?.[2]??0]),[A,z,x]=f(P);return{x:A,y:z,z:x}}async calculateAccuracyPanoramic(t,a,i=!1,r){const{layer:n,currentBestFeature:s,activeViewer:l,mode:c,currentBestFeatureMeasurementImage:o,activeTriangulatedViewer:u}=this._viewModel,m=n?.orientationAccuracy,w=m?.every(e=>0===e)||!m?.length;if("area"===a&&t.length<3||"distance"===a&&t.length<2||!s||!l?.imageSize||w||"panoramic"!==c)return null;const M=i&&o&&u?await this._viewModel.getMeasurementPropertiesPanoramic(o,u):await this._viewModel.getMeasurementPropertiesPanoramic();if(e(r),!M)return null;const g="area"===a?await d(t,M,!0):await h([t.at(0),t.at(-1)],M,!0);e(r);const{updateElevationProps:f,...y}=M,_=p(y,m);if(!_?.length)return null;const P=_.map(e=>({...e,updateElevationProps:f})).map(async i=>{const n="area"===a?await d(t,i,!0):await h([t.at(0),t.at(-1)],i,!0);if(e(r),n&&g){if("area"===a){const e="number"!=typeof n?n.area:null;return e?Math.abs(e-g.area):null}return Math.abs(n-g)}return null}),A=await Promise.all(P);e(r);const z=A.filter(e=>null!==e);return 0===z.length?null:v(z)}async calculateHeightMeasurementInfo(e,a,i){const{currentBestFeature:r,activeViewer:s}=this._viewModel,c=s?.imageSize;if(!r||!s||!c?.length||"none"===a)return;const{attributes:o}=r,[u]=l([e],"panoramic"!==a),m="panoramic"===a?await this._viewModel.getMeasurementPropertiesPanoramic():n(o,c[0],c[1]);if("panoramic"===a){if(!m)return;const e=await y(u,m,r,i);if(!e)return;e?.heading>180&&(e.heading-=360);const a=_(u,e),n=t([u.x,u.y],[e.x,e.y]);if(!a||!n)return;return{measurementAngle:a,tempDistance:n}}const w=await P(u,m,i);if(!w)return;const d=A(u,w),M=t([u.x,u.y],[w.x,w.y]);return d&&M?{measurementAngle:d,tempDistance:M}:void 0}async calculateTriangulatedMeasurements(e){if(!this._viewModel.activeTriangulatedViewer?.imageSize)return;const[t,a]=this._viewModel.activeTriangulatedViewer.imageSize;switch(this._viewModel.measureType){case"distance":{this._viewModel.triangulatedDistanceMeasurement=await x(this._viewModel.measurementVectors);const i=e.map(([e,i,r])=>s({x:e,y:i,z:r},t,a)).map(({x:e,y:t})=>[e,t]),r="default"===this._viewModel.mode?await this.calculateAccuracy(e,"distance"):await this.calculateAccuracyPanoramic(i,"distance",!0);if(r&&this._viewModel.triangulatedDistanceMeasurement?.distance){const e=Math.atan(r/this._viewModel.triangulatedDistanceMeasurement.distance);this._viewModel.triangulatedDistanceAccuracy={distanceAccuracy:r,angleAccuracy:e}}break}case"area":if(this._viewModel.currentBestFeatureMeasurementImage?.geometry.spatialReference)if(this._viewModel.triangulatedAreaMeasurement=await z(this._viewModel.measurementVectors,this._viewModel.currentBestFeatureMeasurementImage.geometry.spatialReference),"default"===this._viewModel.mode)this._viewModel.triangulatedAreaAccuracy=await this.calculateAccuracy(e,"area")??this._viewModel.triangulatedAreaAccuracy;else if("panoramic"===this._viewModel.mode){const i=e.map(([e,i,r])=>s({x:e,y:i,z:r},t,a)).map(({x:e,y:t})=>[e,t]);this._viewModel.triangulatedAreaAccuracy=await this.calculateAccuracyPanoramic(i,"area",!0)??this._viewModel.triangulatedAreaAccuracy}}if("panoramic"===this._viewModel.mode){this._viewModel.activeTriangulatedViewer.viewModel.restoreNavigationHandles()}}}export{b as ImageMeasurementService};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{__decorate as t}from"tslib";import o from"../../../core/Logger.js";import{destroyMaybe as e}from"../../../core/maybe.js";import{EsriPromise as r}from"../../../core/Promise.js";import{throwIfAborted as a}from"../../../core/promiseUtils.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";let c=class extends r{constructor(t){super(t),this.autoLoad=!1,this.customParameters=null,this.datasetFormat=null,this.url=null,this.rotation=null}destroy(){this._cache=e(this._cache)}get layer(){return this._cache}get size(){if(!this._cache?.loaded||!this._cache.serviceRasterInfo)return;const{serviceRasterInfo:t}=this._cache;return[t.width,t.height]}async load(t){if(this._cache?.loaded)return await this._cache.load(t),{layer:this._cache,size:this.size};const{url:e,customParameters:r}=this;let s=this.datasetFormat;if(!e)throw new Error("URL is required to load NonPanoramicMedia.");const i=await import("./urlUtils.js");if(a(t),!s){s=i.guessExtensionFromURI(e)}if(!s){try{s=await i.getDatasetFormat(e)}catch(h){o.getLogger(this).warn("non-panoramic-media:dataset-format",h)}a(t)}s??="UNKNOWN FORMAT",this.datasetFormat=s;const c=(await import("../../../layers/ImageryTileLayer.js")).default;a(t),this._cache=new c({url:e,ioConfig:{skipExtensions:["aux.xml","jgw"],skipMapInfo:!0,datasetFormat:s},customParameters:r??void 0});const m=this._cache.load(t);return this.addResolvingPromise(m),await m,a(t),{layer:this._cache,size:this.size}}};t([s()],c.prototype,"_cache",void 0),t([s()],c.prototype,"autoLoad",void 0),t([s()],c.prototype,"customParameters",void 0),t([s()],c.prototype,"datasetFormat",void 0),t([s()],c.prototype,"url",void 0),t([s()],c.prototype,"layer",null),t([s()],c.prototype,"rotation",void 0),t([s()],c.prototype,"size",null),c=t([i("esri.widgets.OrientedImageryViewer.support.NonPanoramicMedia")],c);export{c as NonPanoramicMedia};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import o from"../../../core/Collection.js";import{NonPanoramicMedia as r}from"./NonPanoramicMedia.js";const e=o.ofType(r);export{e as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import t from"../../../request.js";const e=/\.(\w+)$/;function n(t){const n=t.match(e);return!n||n.length<2?null:n[1].toUpperCase()}const o=async(e,n)=>{const o=await t(e,{...n,method:"head"}),r=o?.getHeader?.("Content-Type");return r?r.split("/")[1]:null};export{o as getDatasetFormat,n as guessExtensionFromURI};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import r from"../../core/Logger.js";import{sectorsRadii as n}from"./constants.js";import{NonPanoramicMedia as t}from"./support/NonPanoramicMedia.js";import e from"../PanoramicViewer/support/PanoramicMedia.js";function i(r){return"3d"===r?.type}function o(r){return"esri.Graphic"===r?.declaredClass}function a(r){return/(tiff|tif|mrf)$/i.test(r??"")}function u(r){if(!r)return!1;if(!URL.canParse(r))return!1;const{pathname:n}=new URL(r);return/.*\.(tiff|tif|mrf)$/i.test(n??"")}function f(r){return Math.abs(r)>=135?"WEST":r<-45&&r>-135?"SOUTH":r<=45?"EAST":"NORTH"}function s(r,t){const e=r/t*n[2];return e<=n[0]?"NEAR":e<=n[1]?"":"FAR"}function c(r){return r&&r.url&&r.datasetFormat?r:null}function m(r){return"string"==typeof r&&r.length?r:c(r)}const p=r=>n=>n.layer===r;function g(r){return"NoAttachmentError"===r?.name}const l=r=>`${r}:missing-property`,d=(r,n)=>`Property ${n} is missing in ${r}`,y=(n="esri.widgets.OrientedImageryViewer",t)=>{throw r.getLogger(n).error(t),t};function h(r,n){0!==n&&(r.xmin/=n,r.xmax*=n,r.ymin/=n,r.ymax*=n)}function w(r,n){n&&r.forEach(r=>{r.elevationSample=n})}function x(r){return new e(r)}function E(r){return new t(r)}export{w as assignElevationSampleToFeatures,f as calculateDirection,s as calculateSegment,m as castImageSource,c as castURLWithDatasetFormat,E as createNonPanoramicMedia,x as createPanoramicMedia,p as filterOILLayerView,d as getMissingPropertyErrorMessage,l as getMissingPropertyErrorName,o as isGraphic,g as isNoAttachmentError,i as isSceneView,u as isTifOrMrf,y as logAndThrow,h as scaleExtent,a as validateTifOrMrfExtension};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{prefersReducedMotion as i}from"../core/a11yUtils.js";import{createTask as a}from"../core/asyncUtils.js";import o from"../core/Collection.js";import{deprecatedProperty as s}from"../core/deprecate.js";import n from"../core/Logger.js";import{isAbortError as r}from"../core/promiseUtils.js";import{watch as l,initial as d,syncAndInitial as c,whenOnce as g}from"../core/reactiveUtils.js";import{property as h,subclass as m}from"../core/accessorSupport/decorators.js";import{or as u}from"../layers/orientedImagery/transformations/utils.js";import v from"./Expand.js";import p from"./PanoramicVideoViewer.js";import y from"./PanoramicViewer.js";import w from"./Widget.js";import{getAllArcPath as _}from"./OrientedImageryViewer/arcUtils.js";import{getDelegatedEvents as M,defaultImageGeometryField as T,defaultOIObjectIDField as b,segmentArcs as C,featureCircleRadius as A,navigationToolDimensionLength as I,sectorsRadii as f}from"./OrientedImageryViewer/constants.js";import{css as L,navigation as V,navigationToolRotationFrom as k,navigationToolRotationTo as S,root as O}from"./OrientedImageryViewer/css.js";import{loadImageForAttachment as F,getThumbnailPixelBlock as E,isFeatureAttachment as P,renderImageWithRotation as x}from"./OrientedImageryViewer/galleryUtils.js";import H from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import N from"./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";import{loadAlertComponents as j,Alert as D}from"./OrientedImageryViewer/components/Alert.js";import G from"./OrientedImageryViewer/components/ImageLocationWidget.js";import $ from"./OrientedImageryViewer/components/ImageViewer.js";import B from"./OrientedImageryViewer/components/NavigationAction.js";import{loadNavigationActionsComponents as R,NavigationActionsCollection as W,NavigationActions as U}from"./OrientedImageryViewer/components/NavigationActions.js";import{loadVideoEnhancementComponents as z,renderEnhancementSlider as q,VideoEnhancementTools as Z}from"./OrientedImageryViewer/components/VideoEnhancementTools.js";import{NoImageLoadedError as J}from"./OrientedImageryViewer/navigation/errors.js";import{loadCalciteComponents as K}from"./support/componentsUtils.js";import{globalCss as Q}from"./support/globalCss.js";import{vmEvent as X,messageBundle as Y,tsx as ee}from"./support/widget.js";const te={overlayed:"overlayed"};let ie=class extends w{constructor(e,t){super(e,t),this.dataCaptureEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.videoEnhancementToolActive=!1,this.imageOverlaysOpened=!1,this.navigationToolActive=!1,this.viewModel=new H,this.messagesCommon=null,this.messagesSketch=null,this.pixelMeasurementUnit="meters",this.pixelAreaMeasurementUnit="square-meters",this.showCameraLocations=!1,this.showMapFeatures=!1,this.visibleElements=new N,this._imageOverlaysLoaderTask=null,this._imageMeasurementToolsLoaderTask=null,this._navigationSettingsLoaderTask=null,this._clearMeasurements=()=>{this.viewModel.measureType=null,this.viewModel.triangularMeasurementActive=!1,this.viewModel.clearPreviousMeasurements()},this._clearImageLocation=()=>{this.imageLocationToolActive=!1,this.triangularMeasurementActive=!1},this._navigationToolExpanded=!1,this._navigationTool=null,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._overlayedLayers=new o,this._previousAction=null,this._handleDataCaptureLayerChange=async e=>{if(this.dataCaptureLayer&&await this.stopDataCapture(!0),this.dataCaptureLayer=this.dataCaptureLayer===e?null:e,this.dataCaptureLayer)return this.startDataCapture(this.dataCaptureLayer)},this._handleNavigationSettingsInputChange=(e,t)=>{this.set(`${e}Threshold`,t)},this._handleNavigationSettingsToggle=e=>{this.viewModel.preserveAngle=e},this._handleOverlayLayerDeselect=e=>{const t=e.layer;t===this.dataCaptureLayer&&(this.stopDataCapture(),this.dataCaptureLayer=null),this.removeOverlayedGraphicsOnImage(`${t.id}`)},this._handleOverlayLayerSelect=e=>{const t=e.layer;this.viewModel.overlayMapFeatures(t,this.showMapFeatures),this.addHandles(l(()=>t.visible,()=>{this.viewModel.toggleOverlayMapFeatures(t.id,t.visible,this.showMapFeatures)}),`${te.overlayed}-${t.id}`)},this._highlight=e=>{const t=e.target?.dataset.objectid;t&&this.viewModel.highlight(t)},this._onAction=e=>{const{target:t}=e,{dataset:{action:i}}=t,{_previousAction:a}=this,o=a?.dataset.action,s=o?.includes("draw")??!1,n="select-feature"===o,r=o!==i;switch(i){case"draw-point":case"draw-polygon":case"draw-polyline":{a&&u(n,s&&r)&&(a.active=!1),t.active=!t.active;const e=i.replace("draw-","");this.viewModel.digitizeCreate(e),this._previousAction=t.active?t:null;break}case"save":this.viewModel.saveDrawing();break;case"select-feature":s&&(this._previousAction.active=!1),t.active=!t.active,this.viewModel.toggleSelection(t.active),this._previousAction=t.active?t:null;break;case"delete-feature":this.viewModel.digitizeDelete()}},this._onImageOverlayClosed=()=>{this.imageOverlaysOpened=!1},this._onShowCameraLocationsChanged=e=>{this.showCameraLocations=e},this._onShowMapFeaturesChanged=e=>{this.showMapFeatures=e},this._removeHighlight=()=>this.viewModel.removeHighlight(),this._restoreOverlays=async()=>Promise.all(this._overlayedLayers.map(e=>this.viewModel.overlayMapFeatures(e,this.showMapFeatures))),this._scaleNavigationTool=()=>{this._navigationToolExpanded=!this._navigationToolExpanded},this._sketchLoaderTask=null,this._settingsToggle=null,this._toggleImageNavigation=async e=>{const t=this.navigationMode;this._closeAllImageTools(),this.navigationMode=t!==e?e:null;const{activeViewer:i}=this.viewModel;if(!i)return;const{mode:a,preserveAngle:o}=this.viewModel;if("default"===a)if("directional"===this.navigationMode){const e=await this._loadNavigationSettings(),t="heading"===o||"both"===o,i="pitch"===o||"both"===o,{messages:a,messagesCommon:s}=this,n=new e({cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,uiStrings:{configureNavigation:a.configureNavigation,preserveHeading:a.preserveHeading,preserveHeadingDescription:a.preserveHeadingDescription,preservePitch:a.preservePitch,preservePitchDescription:a.preservePitchDescription,settings:s.settings,thresholdLabel:a.thresholdLabel},onInputChange:this._handleNavigationSettingsInputChange,onToggle:this._handleNavigationSettingsToggle,preserveHeading:t,preservePitch:i});this._settingsToggle=new v({content:n,expandIcon:"configure"}),this.viewModel.activeViewer?.ui.add(this._settingsToggle,{position:"top-left"})}else this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))},this._toggleImageAttributes=()=>{this.viewModel.toggleImageAttributes()},this.navigate=async e=>{let t=null;try{const{currentNode:i}=this.viewModel;if(!i)throw new J;t=await this.viewModel.navigate(i,e)}catch(i){r(i)||n.getLogger(this).error("Error occurred while navigating",i)}return t},this.reset=()=>{this._closeAllImageTools(),this.viewModel.reset()},this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this.loadImageFromSource=this.loadImageFromSource.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this),this._handleVideoBrightnessChange=this._handleVideoBrightnessChange.bind(this),this._handleVideoContrastChange=this._handleVideoContrastChange.bind(this),this._handleBrightnessChange=this._handleBrightnessChange.bind(this),this._handleContrastChange=this._handleContrastChange.bind(this),this._handleSharpnessChange=this._handleSharpnessChange.bind(this),this._resetVideoTools=this._resetVideoTools.bind(this),this._toggleEnhancementToolState=this._toggleEnhancementToolState.bind(this)}initialize(){this.addHandles([l(()=>[this.viewModel?.bestFeatureAngle,this._navigationTool],([e,t])=>{t&&this._updateNavigationTool(t)},d),l(()=>this.currentCoverageVisible,e=>this._onCurrentCoverageVisibilityChange(e)),l(()=>this.isAdditionalCoverageVisible,e=>this._onAdditionalCoverageVisibilityChange(e)),l(()=>this.isAdditionalPointSourcesVisible,e=>this._onAdditionalCameraLocationsVisibility(e)),l(()=>({features:this.currentBestFeature,showCameraLocations:this.showCameraLocations,state:this.viewModel.state}),({showCameraLocations:e,state:t})=>{"image-loaded"===t&&this.viewModel.overlayCameraLocations(e)},c),l(()=>({feature:this.currentBestFeature,showMapFeatures:this.showMapFeatures,state:this.viewModel.state}),async(e,t)=>{if(e.showMapFeatures!==t?.showMapFeatures&&await this.viewModel.toggleAllOverlayMapFeatures(e.showMapFeatures),null!=e.feature&&e.feature!==t?.feature){if(this.viewModel.removeAllOverlayMapFeatures(),await g(()=>"image-loaded"===this.viewModel.state),this.dataCaptureLayer&&this.stopDataCapture(),await this._restoreOverlays(),!this.dataCaptureLayer)return;await this.startDataCapture(this.dataCaptureLayer),this._previousAction?.active&&(this._previousAction.active=!1,this._previousAction=null)}},d)])}loadDependencies(){return Promise.all([R(),z(),K({"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group"),action:()=>import("@esri/calcite-components/dist/components/calcite-action"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel"),shell:()=>import("@esri/calcite-components/dist/components/calcite-shell"),dialog:()=>import("@esri/calcite-components/dist/components/calcite-dialog"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider")}),j()])}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect(),this.currentBestFeature=null}get accuracyParametersMissing(){return this.viewModel.accuracyParametersMissing}get activeLayer(){return s(n.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){s(n.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get activeVideoIcon(){const{videoElement:e,videoViewModel:t}=this.viewModel;return e?.loaded&&t?t.videoPaused?"play":"pause":"play"}get activeAudioIcon(){const{videoElement:e,videoViewModel:t}=this.viewModel;return e?.loaded&&t?.videoMuted?"sound-off":"sound"}get cameraHeadingThreshold(){return this.viewModel.cameraHeadingThreshold}set cameraHeadingThreshold(e){this.viewModel.cameraHeadingThreshold=e}get cameraPitchThreshold(){return this.viewModel.cameraPitchThreshold}set cameraPitchThreshold(e){this.viewModel.cameraPitchThreshold=e}get canNavigateSequentially(){const{layer:e}=this;if(!e)return!1;const{fields:t,sequenceOrderField:i}=e;return t.some(({name:e})=>e.toLowerCase()===`${i??"sequenceorder"}`.toLowerCase())}get currentBestFeature(){return this.viewModel.currentBestFeature}set currentBestFeature(e){this.viewModel.currentBestFeature=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get dataCaptureLayer(){return this.viewModel.dataCaptureLayer}set dataCaptureLayer(e){this.viewModel.dataCaptureLayer=e}get depthImageNotSupported(){return this.viewModel.depthImageNotSupported}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get displayMessage(){return this.viewModel.displayMessage}get enhancementToolActive(){return"video"===this.viewModel.mode?this.videoEnhancementToolActive:this.imageEnhancementToolActive}set enhancementToolActive(e){"video"===this.viewModel.mode?this.videoEnhancementToolActive=e:this.imageEnhancementToolActive=e}get features(){return this.viewModel.features}get imagePointsInView(){return this.viewModel.imagePointsInView}get icon(){return"oriented-imagery-widget"}set icon(e){this._overrideIfSome("icon",e)}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get imageLocationToolActive(){return this.viewModel.imageLocationToolState}set imageLocationToolActive(e){this.viewModel.imageLocationToolState=e}get invalidCameraHeading(){return this.viewModel.invalidCameraHeading}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.mapImageConversionToolState=e}get measureType(){return this.viewModel.measureType}set measureType(e){this.viewModel.measureType=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get navigationMode(){return this.viewModel.navigationMode}set navigationMode(e){this.viewModel.navigationMode=e}get popupEnabled(){const{popupEnabled:e,state:t}=this.viewModel;return("image-loaded"===t||this.videoLoaded)&&e}get referencePoint(){return this.viewModel.referencePoint??null}get sketchViewModel(){return this.viewModel.sketch}get triangularMeasurementActive(){return this.viewModel.triangularMeasurementActive}set triangularMeasurementActive(e){this.viewModel.triangularMeasurementActive=e}get videoLoaded(){const{mode:e,videoElement:t,panoramicVideoLoaded:i}=this.viewModel;return("video"===e&&!0===t?.loaded||i)??!1}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set determineWorkflowForFeature(e){this.viewModel.determineWorkflowForFeature=e}get determineWorkflowForFeature(){return this.viewModel.determineWorkflowForFeature}set updateFootprint(e){this.viewModel.updateFootprint=e}get updateFootprint(){return this.viewModel.updateFootprint}_renderActionBar(){return ee("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",slot:"action-bar"},ee("calcite-action-group",null,this._currentFootprintToggle(),this._additionalFootprintToggle(),this._additionalPointSourcesToggle()),ee("calcite-action-group",null,this._directionToolToggle(),this._mapImageConversionToggle(),this._navigationToolToggle(),this._imageEnhancementsToggle(),this._videoEnhancementsToggle()),ee("calcite-action-group",null,this._measurementToolsToggle(),this._imageGalleryToggle(),this._imageOverlaysToggle(),this._openPopupAction()))}get _activeMeasurementIcon(){const{measureType:e,imageLocationToolActive:t,triangularMeasurementActive:i}=this;if(t)return i?"dual-image-location":"pin-tear";if(i)return"area"===e?"dual-image-area":"dual-image-distance";switch(e){case"area":return"measure-area";case"height":return"measure-building-height-top-base";default:return"measure-line"}}get _activeMeasurementHeading(){const{measureType:e,messages:t,triangularMeasurementActive:i}=this,{groundArea:a,heightAboveGround:o,groundDistance:s,triangulatedAreaHeading:n,triangulatedDistanceHeading:r}=t;if(i)return"area"===e?n:r;switch(e){case"area":return a;case"height":return o;default:return s}}_additionalFootprintToggle(){const{isAdditionalCoverageVisible:e,invalidCameraHeading:t,visibleElements:{additionalFootprintToggle:i}}=this;return i?ee("calcite-action",{active:e,bind:this,class:L.addCoverage,disabled:t,icon:"trapezoid-area",onclick:this._toggleAdditionalCoverage,text:this.messages.additionalFootprints,title:this.messages.additionalFootprints}):null}_additionalPointSourcesToggle(){const{isAdditionalPointSourcesVisible:e,invalidCameraHeading:t,visibleElements:{additionalCameraLocationsToggle:i}}=this;return i?ee("calcite-action",{active:e,bind:this,class:L.addExpPoints,disabled:t,icon:"circle-area",onclick:this._toggleAdditionalCameraLocations,text:this.messages.additionalCameraLocations,title:this.messages.additionalCameraLocations}):null}get _measurementToggle(){const{viewModel:{state:e,measureType:t,currentBestFeatureMeasurementImage:i},triangularMeasurementActive:a,id:o}=this;if("image-loaded"!==e||!t||a&&!i)return;this._imageMeasurementToolsLoaderTask||this._loadImageMeasurementResources();const s=this._imageMeasurementToolsLoaderTask?.value;return s?ee("calcite-dialog",{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:this._activeMeasurementHeading,id:`${o}-${t}-measurement`,open:!0,placement:"bottom-start",resizable:!0,scale:"s",slot:"dialogs",width:"s",onCalciteDialogBeforeClose:this._clearMeasurements},ee(s,{measurementType:t,measurementUnitMessages:this.measurementUnitMessages,messages:this.messages,oiViewModel:this.viewModel})):null}get _renderRoot(){const{viewModel:{state:e},triangularMeasurementActive:t}=this;return ee("calcite-panel",{bind:this,class:t?L.viewerContainerMeasurement:L.viewerContainer,heading:this.visibleElements.title?this.messages.title:void 0,loading:e.includes("loading")&&!t},this.visibleElements.menu?this._renderActionBar():null,ee("calcite-shell",null,ee("calcite-panel",null,this._imageViewer,this._panoramicViewer,this._panoramicVideoViewer,this._videoViewer,this._messageBox,this.invalidCameraHeading?null:[this._imageGalleryPanel,this._renderNavigation,this._imageOverlaysPanel()],this._imageEnhancementTools,this._videoEnhancementTools,this._renderSketch()),this._imageViewerTriangular,this._measurementToggle,this._locationToggle,this.invalidCameraHeading?this._renderWarning(this.messages.invalidCameraHeadingWarningTitle,this.messages.invalidCameraHeadingWarningDescription):null,this.depthImageNotSupported?this._renderWarning(this.messages.depthImageNotSupportedTitle,this.messages.depthImageNotSupportedDescription):null))}_currentFootprintToggle(){const{currentCoverageVisible:e,invalidCameraHeading:t}=this,{currentFootprintToggle:i}=this.visibleElements;return i?ee("calcite-action",{active:e,bind:this,class:L.currentCoverage,disabled:t,icon:"trapezoid-area",onclick:this._toggleCurrentCoverage,text:this.messages.currentFootprint,title:this.messages.currentFootprint}):null}get _imageEnhancementTools(){const{enhancementToolActive:e,viewModel:{brightness:t,contrast:i,sharpness:a,state:o}}=this;return e&&"image-loaded"===o?ee("calcite-panel",{bind:this,class:L.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleEnhancementToolState},ee("div",{class:L.imageEnhancementTools},q({title:this.messages.brightness,value:t,max:10,min:-10,ticks:5,handleChange:this._handleBrightnessChange}),q({title:this.messages.contrast,value:i,max:10,min:-10,ticks:5,handleChange:this._handleContrastChange}),q({title:this.messages.sharpness,value:a,max:1,min:0,ticks:.5,step:.1,handleChange:this._handleSharpnessChange})),ee("calcite-action",{bind:this,icon:"reset",onclick:this._resetImageTools,slot:"header-actions-end",text:this.messagesCommon.reset,title:this.messagesCommon.reset})):null}get _videoEnhancementTools(){const{enhancementToolActive:e,viewModel:{videoViewModel:t,mode:i},messages:{videoEnhancement:a,brightness:o,contrast:s},messagesCommon:{reset:n}}=this;return e&&"video"===i&&t?ee(Z,{brightness:t.videoBrightness,constrast:t.videoContrast,handleBrightnessChange:this._handleVideoBrightnessChange,handleContrastChange:this._handleVideoContrastChange,resetTools:this._resetVideoTools,uiStrings:{videoEnhancement:a,brightness:o,contrast:s,reset:n},videoEnhancementToolActive:e,onClose:this._toggleEnhancementToolState}):null}_imageEnhancementsToggle(){const{state:e,mode:t}=this.viewModel,{imageEnhancement:i}=this.visibleElements;return i&&"video"!==t?ee("calcite-action",{active:this.enhancementToolActive,bind:this,disabled:"default"!==t||"image-loaded"!==e,icon:"sliders-horizontal",onclick:this._toggleEnhancementToolState,text:this.messages.imageEnhancement,title:this.messages.imageEnhancement}):null}_videoEnhancementsToggle(){const{mode:e}=this.viewModel,{videoEnhancement:t}=this.messages;return"video"===e?ee("calcite-action",{active:this.enhancementToolActive,bind:this,disabled:"video"!==e,icon:"sliders-horizontal",onclick:this._toggleEnhancementToolState,text:t,title:t}):null}get _imageGalleryPanel(){const{container:e,galleryOpened:t,imageGalleryEnabled:i}=this;return i&&t&&e?this._imageGalleryContext:null}get _imageGalleryContext(){const{galleryOpened:e,invalidCameraHeading:t}=this;return ee("calcite-panel",{bind:this,class:L.carousel,closable:!0,closed:!e,disabled:t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},ee("div",{class:L.carouselContainer},this._renderThumbnails))}_imageGalleryToggle(){const{imageGalleryEnabled:e,invalidCameraHeading:t,visibleElements:{imageGallery:i}}=this;return i?ee("calcite-action",{active:this.galleryOpened,bind:this,disabled:!e||t,icon:"images",onclick:this._toggleImageGallery,text:this.messages.imageGallery,title:this.messages.imageGallery}):null}get _imageOverlaysComponent(){const{_imageOverlayMessages:e,_imageOverlaysLoaderTask:t,_overlayedLayers:i,dataCaptureEnabled:o,dataCaptureLayer:s,imageOverlaysOpened:n,showCameraLocations:r,showMapFeatures:l,view:d,layer:c}=this;if(!c)return null;const g=c.imageGeometryField?.length?c.imageGeometryField:T,h=c.imageReferenceField?.length?c.imageReferenceField:b;t||(this._imageOverlaysLoaderTask=a(async()=>(await import("./OrientedImageryViewer/components/ImageOverlays.js")).default));const m=this._imageOverlaysLoaderTask?.value;return m?ee(m,{closed:!n,dataCaptureEnabled:o,dataCaptureLayer:s,imageGeometryField:g,imageReferenceField:h,messages:e,overlayedLayers:i,showCameraLocations:r,showMapFeatures:l,view:d,onDataCaptureLayerChanged:this._handleDataCaptureLayerChange,onFilterCapturedFeatures:this.viewModel.filterCapturedFeatures,onImageOverlaysClosed:this._onImageOverlayClosed,onLayerDeselected:this._handleOverlayLayerDeselect,onLayerSelected:this._handleOverlayLayerSelect,onShowCameraLocationsChanged:this._onShowCameraLocationsChanged,onShowMapFeaturesChanged:this._onShowMapFeaturesChanged}):null}get _imageOverlayMessages(){return{...this.messages,...this.messagesSketch}}get _imageSketchToolsMessages(){return{...this.messagesSketch,...this.messagesCommon}}_imageOverlaysPanel(){const{imageOverlaysOpened:e,viewModel:{state:t}}=this,i=this.classes({[L.imageOverlaysContainer]:!0,[Q.hidden]:!e||"image-loaded"!==t});return ee("div",{class:i,key:this.messages.imageOverlays},this._imageOverlaysComponent)}_imageOverlaysToggle(){const{viewModel:{state:e},imageOverlaysOpened:t,invalidCameraHeading:i,visibleElements:{imageOverlays:a}}=this;return a?ee("calcite-action",{active:t,bind:this,disabled:"image-loaded"!==e||i,icon:"layers",onclick:this._toggleImageOverlays,text:this.messages.imageOverlays,title:this.messages.imageOverlays}):null}get _imageViewer(){const{displayMessage:e,loadImageViewer:t,mode:i,clickAction:a,state:o}=this.viewModel,s=null!=e||"default"!==i||o.includes("loading"),{messages:{end:n,next:r,previous:l,start:d}}=this;return ee($,{afterCreate:t,clickAction:a,navigationEnabled:!s&&null!==this.navigationMode,navigationViewModel:this.viewModel,uiStrings:{end:n,next:r,previous:l,start:d},visible:!s})}get _imageViewerTriangular(){const{messages:e,triangularMeasurementActive:t}=this,{displayMessage:i,storeImageMeasurementViewer:a,storePanoramicMeasurementViewer:o,mode:s,state:n,clickAction:r}=this.viewModel,l=null!=i||"none"===s||"video"===s,d=this.classes({[L.viewer]:!l,[L.viewerHidden]:l});return t?ee("calcite-panel",{class:L.viewerContainerMeasurement,heading:e.measurementViewerHeading,loading:n.includes("loading")},ee("calcite-panel",{bind:this,class:d},"default"===s?ee($,{afterCreate:a,clickAction:r,uiStrings:e}):ee(y,{afterCreate:o,clickAction:r,uiStrings:e}))):null}get _videoViewer(){const{mode:e,loadVideoViewer:t,videoViewModel:i}=this.viewModel,{control:a,reset:o}=this.messagesCommon,{mute:s,unmute:n}=this.messages,r="video"!==e,l=this.classes({[L.viewer]:!r,[L.viewerHidden]:r}),d="esri-image-viewer";return ee("calcite-panel",{bind:this,class:l},ee("calcite-panel",{afterCreate:t,class:this.classes(Q.widget,d)}),ee("calcite-slider",{bind:this,labelHandles:!0,labelTicks:!0,max:i?.videoDuration,minLabel:"0",value:i?.currentTime??0,onCalciteSliderChange:this._handleVideoSeek}),ee("calcite-action-bar",{expandDisabled:!0,layout:"horizontal"},ee("calcite-action-group",null,ee("calcite-action",{bind:this,icon:this.activeVideoIcon,onclick:()=>i?.playVideoHandler(),text:"Play",title:i?.videoPaused?a.play:a.pause})),ee("calcite-action-group",null,ee("calcite-action",{bind:this,icon:"refresh",onclick:()=>i?.rewindVideoHandler(),text:"Rewind",title:o})),ee("calcite-action-group",null,ee("calcite-action",{bind:this,icon:this.activeAudioIcon,onclick:()=>i?.toggleAudio(),text:"Audio",title:i?.videoMuted?s:n}))))}get _locationToggle(){const{viewModel:{state:e,groundCoordinates:t,groundCoordinatesAccuracy:i,triangulatedPoint:a},imageLocationToolActive:o,triangularMeasurementActive:s,messages:{groundLocation:n,triangulatedLocationHeading:r}}=this;if("image-loaded"!==e||!t||!o)return;let l=t;if(s){if(!a)return;l=a}return ee("calcite-dialog",{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:s?r:n,id:n,open:!0,placement:"bottom-start",resizable:!0,scale:"s",slot:"dialogs",width:"s",onCalciteDialogBeforeClose:this._clearImageLocation},ee(G,{accuracy:i,groundCoordinates:l,messages:this.messages}))}_mapImageConversionToggle(){const{mapImageConversionToolState:e,viewModel:{state:t,disabled:i},invalidCameraHeading:a,visibleElements:{mapImageConversionTool:o}}=this;return o?ee("calcite-action",{active:e,bind:this,disabled:"image-loaded"!==t||a||i,icon:"image-pin",onclick:this._toggleMapImageConversionToolState,text:this.messages.mapImageConversionTool,title:this.messages.mapImageConversionTool}):null}_measurementToolsToggle(){const{_activeMeasurementIcon:e,measureType:t,viewModel:i,accuracyParametersMissing:a,messages:o,triangularMeasurementActive:s,visibleElements:{measurementTools:n}}=this,{state:r}=i,{measurementTools:l,groundDistance:d,groundArea:c,heightAboveGround:g,groundLocation:h,triangulatedDistanceHeading:m,triangulatedAreaHeading:u,triangulatedLocationHeading:v}=o;return n?ee("calcite-dropdown",{disabled:a,key:"measurement-tools",maxItems:5,title:l,width:"m"},ee("calcite-action",{bind:this,disabled:"image-loaded"!==r||a,icon:e,slot:"trigger",text:l}),ee("calcite-dropdown-group",null,ee("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"measure-line",key:"distance-measurement",onclick:e=>this._toggleMeasurementSketch(e,"distance"),selected:"distance"===t&&!s},d),ee("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"measure-area",key:"area-measurement",onclick:e=>this._toggleMeasurementSketch(e,"area"),selected:"area"===t&&!s},c),ee("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"measure-building-height-top-base",key:"height-dropdown",onclick:e=>this._toggleMeasurementSketch(e,"height"),selected:"height"===t},g),ee("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"pin-tear",key:"surface-location",onclick:this._toggleLocationTool,selected:!!this.imageLocationToolActive&&!s},h),ee("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"dual-image-location",key:"triangular-location",selected:!!s&&this.imageLocationToolActive,onCalciteDropdownItemSelect:this._toggleTriangularLocation},v),ee("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"dual-image-distance",key:"triangular-measurement-distance",selected:!!s&&"distance"===this.measureType,onCalciteDropdownItemSelect:this._toggleTriangularDistanceMeasurements},m),ee("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"dual-image-area",key:"triangular-measurement-area",selected:!!s&&"area"===this.measureType,onCalciteDropdownItemSelect:this._toggleTriangularAreaMeasurements},u))):null}get _messageBox(){const{messages:e,viewModel:{displayMessage:i,mode:a}}=this;if(!i||"video"===a)return null;const{data:o,key:s,map:n}=i,r=`${n?t(e[s],n):e[s]}`;return ee("span",{class:L.messageBox},o?`${r} ${o}`:r)}async _loadNavigationSettings(){return this._navigationSettingsLoaderTask||(this._navigationSettingsLoaderTask=a(async()=>(await import("./OrientedImageryViewer/components/NavigationSettings.js")).default)),await this._navigationSettingsLoaderTask.promise}_navigationToolToggle(){const{state:e}=this.viewModel,{visibleElements:{navigationTool:t},videoLoaded:i}=this;return t?ee("calcite-action",{active:this.navigationToolActive,bind:this,disabled:"image-loaded"!==e&&!i||this.invalidCameraHeading,icon:"explore",onclick:this._toggleNavigationTool,text:this.messages.navigationTool,title:this.messages.navigationTool}):null}_directionToolToggle(){const{state:e}=this.viewModel,{visibleElements:{directionalNavigation:t,sequentialNavigation:i}}=this,a=new W;t&&a.push(new B({active:"directional"===this.navigationMode,disabled:"image-loaded"!==e||this.invalidCameraHeading,icon:"directional-navigation",onclick:()=>{this._toggleImageNavigation("directional")},text:this.messages.directionalNavigation,title:this.messages.directionalNavigationDescription})),i&&a.push(new B({active:"sequential"===this.navigationMode,disabled:"image-loaded"!==e||this.invalidCameraHeading||!this.canNavigateSequentially,icon:"sequential-navigation",onclick:()=>{this._toggleImageNavigation("sequential")},text:this.messages.sequentialNavigation,title:this.messages.sequentialNavigationDescription}));return t||i?ee(U,{actions:a,activeAction:a.items.find(e=>e.active),icon:"absolute-direction",label:this.messages.imageNavigation,scale:"m",title:this.messages.imageNavigation}):null}_openPopupAction(){const{showPopupsAction:e}=this.visibleElements;return e?ee("calcite-action",{bind:this,disabled:!this.popupEnabled,icon:"popup",onclick:this._toggleImageAttributes,text:this.messages.showPopups,title:this.messages.showPopups}):null}get _panoramicVideoViewer(){const{displayMessage:e,loadPanoramicVideoViewer:t,mode:i,clickAction:a,state:o,currentBestFeature:s}=this.viewModel,n=s?.attributes.imagePath,r=null!=e||"panoramic-video"!==i||o.includes("loading")||!n;return ee(p,{afterCreate:t,clickAction:a,oiViewModel:this.viewModel,videoSource:n,visible:!r})}get _panoramicViewer(){const{displayMessage:e,loadPanoramicViewer:t,mode:i,clickAction:a,state:o}=this.viewModel,{messages:{end:s,next:n,previous:r,start:l}}=this,d=null!=e||"panoramic"!==i||o.includes("loading");return ee(y,{afterCreate:t,clickAction:a,navigationEnabled:!d&&null!==this.navigationMode,navigationViewModel:this.viewModel,uiStrings:{end:s,next:n,previous:r,start:l},visible:!d})}_activateTriangulatedImageLocationTool(){this.navigationToolActive=!0,this.imageLocationToolActive=!0}_activateTriangulatedImageLocationWorkflow(e,t){this._closeAllImageTools(),this.imageLocationToolActive=!0,this.triangularMeasurementActive=!e,this.navigationToolActive=!!t||!t}_closeImageToolsAndToggleNavigation(e,t){this._closeAllImageTools(),this.triangularMeasurementActive=!e,this.navigationToolActive=!t}_resetMeasureTypeAndActivateImageLocationTool(){this.measureType=null,this.imageLocationToolActive=!0}_closeAllImageTools(){this.enhancementToolActive=!1,this.navigationToolActive=!1,this.imageOverlaysOpened=!1,this.galleryOpened=!1,this.measureType=null,this.imageLocationToolActive=!1,this.navigationMode=null,this.triangularMeasurementActive=!1,this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}_handleBrightnessChange(e){this.viewModel.brightness=e.currentTarget.value??0}_handleVideoBrightnessChange(e){this.viewModel.videoViewModel?.handleVideoBrightnessChange(e.target.value)}_handleContrastChange(e){this.viewModel.contrast=e.currentTarget.value??0}_handleVideoContrastChange(e){this.viewModel.videoViewModel?.handleVideoContrastChange(e.target.value)}_handleVideoSeek(e){const t=this.viewModel?.videoElement?.content;t&&(t.currentTime=e.target.value,t.play())}_handleSharpnessChange(e){this.viewModel.sharpness=e.currentTarget.value??0}_lazyLoadImage(e,t){e.forEach(async e=>{if(e.isIntersecting){const a=e.target,o=a.getAttribute("data-src"),s=a.getAttribute("data-rotation"),l=a.getAttribute("data-objectid"),d=s?parseFloat(s)%360:0,{layer:c,_galleryController:{signal:g}}=this;if(!o||!l)return;let h;try{h=P(o)?await F(c,l,{signal:g}):await E(o,{signal:g})}catch(i){r(i)||n.getLogger("esri.widgets.OrientedImageryViewer").error("#lazyLoadImage()",i)}finally{t.unobserve(a)}if(!h)return;x(h,a,d)}})}_loadImageFromGallery(e){const{target:t}=e;if(!t)return;const i=t.getAttribute("data-objectid");i&&this.viewModel.currentBestFeature?.attributes.objectId!==Number(i)&&this.viewModel.selectBestFeature(i)}_loadImageMeasurementResources(){this._imageMeasurementToolsLoaderTask=a(async()=>{const{default:e}=await import("./OrientedImageryViewer/components/ImageMeasurementWidget.js");return e})}_loadSketchResources(){this._sketchLoaderTask=a(async()=>(await import("./OrientedImageryViewer/components/SketchTools.js")).default)}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_renderWarning(e,t){const{viewModel:{state:i}}=this;return"image-loaded"===i?ee(D,{icon:"exclamation-mark-triangle-f",kind:"warning",message:t,open:!0,title:e,tooltip:t}):null}get _renderNavigation(){const{viewModel:{sectorData:e,navigatorCurrentBestFeature:t,currentBestFeature:a,state:o}}=this;if(!this.container||!a)return null;let s,n,r,l,d;if(t){const{x:e,y:i,direction:a}=t,[o,c,g,h]=C[a];s=`M ${e} ${i} L ${o} ${c} A ${f[2]} ${f[2]} 0 0 1 ${g} ${h} Z`,n=e,l=i,r=C[a][4],d=C[a][5]}const c=e=>{const t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},g=e=>{const t=e.target.dataset;if(!t)return;const{featureIndexInSector:i,sector:a}=t;i&&a&&this.viewModel.handleFeatureClick({sector:a,featureIndexInSector:+i})},h=e=>{e.removeEventListener("click",g)},m=a.attributes.objectId,u=e?.map(e=>e?.items).filter(Boolean).flatMap(e=>e?.map(({x:e,y:t,objectID:i,featureIndexInSector:a,sector:o})=>ee("circle",{afterRemoved:h,class:this.classes(L.feature,{selected:m===i}),cx:e,cy:t,"data-feature-index-in-sector":a,"data-sector":o,key:`${L.feature}-${i}`,onclick:g,r:A}))),v=e=>{e.removeEventListener("click",c)},p=this.classes({[L.navigationWrapper]:!0,[L.navigationZoomed]:this._navigationToolExpanded});return this.navigationToolActive&&("image-loaded"===o||this.videoLoaded)?ee("div",{bind:this,class:p,key:this.messages.navigationTool},ee("svg",{afterCreate:e=>this._storeNavigationToolReference(e),class:i()?V:L.rotateWithAnimation,focusable:"false",height:I,role:"img",width:I,xmlns:"http://www.w3.org/2000/svg"},ee("defs",null,ee("linearGradient",{gradientUnits:"userSpaceOnUse",id:`${this.id}-coverage-fill`,x1:n,x2:r,y1:l,y2:d},ee("stop",{class:L.navigationPathOffset0,offset:0}),ee("stop",{class:L.navigationPathOffset1,offset:1}))),ee("g",null,ee("circle",{class:this.classes(L.sector,L.outerSector),cx:f[3],cy:f[3],onclick:this._scaleNavigationTool,r:f[3]}),ee("circle",{class:L.sector,cx:f[3],cy:f[3],r:f[2]}),ee("circle",{class:L.sector,cx:f[3],cy:f[3],r:f[1]}),ee("circle",{class:L.sector,cx:f[3],cy:f[3],r:f[0]}),ee("path",{class:L.pointer,d:"M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z",key:`${L.pointer}-west`}),ee("path",{class:this.classes(L.pointer,L.north),d:"M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z",key:`${L.pointer}-north`}),ee("path",{class:L.pointer,d:"M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z",key:`${L.pointer}-east`}),ee("path",{class:L.pointer,d:"M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z",key:`${L.pointer}-south`}),ee("path",{class:this.classes(L.sector,L.sectorSeparator),d:"M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076",key:L.sectorSeparator}),_([f[2],f[1],f[0]],f[3],f[3]).map((t,i)=>ee("path",{afterRemoved:v,class:this.classes(L.sector,e?.[i]?.length?L.sectorEnabled:L.sectorDisabled),d:t,"data-sector":`${i}`,key:`${L.sector}-${i}`,onclick:c})),ee("path",{class:this.classes(L.sector,L.sectorCross),d:"M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53",key:L.sectorCross}),u,a.attributes.cameraPitch>=5&&s?ee("path",{class:L.selectedFeaturePath,d:s,fill:`url(#${this.id}-coverage-fill)`,key:L.selectedFeaturePath}):null))):null}_renderSketch(){const{dataCaptureLayer:e,imageOverlaysOpened:t}=this;if(!e||t)return null;if(this._sketchLoaderTask||this._loadSketchResources(),!this._sketchLoaderTask?.value)return null;const{geometryType:i}=e,a="point"===i?"pin":"polyline"===i?"line":"polygon",o=this._sketchLoaderTask.value;return ee("div",{class:L.sketchTools},ee(o,{icon:a,messages:this._imageSketchToolsMessages,type:i,onAction:this._onAction}))}get _renderThumbnails(){const{currentBestFeature:e,thumbnails:t}=this.viewModel;return e?ee("div",{class:L.carouselContent},t?.items.map(({url:t,objectId:i,rotation:a},o)=>ee("div",{class:`${L.carouselItemWrapper}${e.attributes.objectId===i?"--selected":""}`,key:`${L.carouselItemWrapper}-${o}`},ee("canvas",{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${i}`,class:L.carouselItem,"data-objectid":`${i}`,"data-rotation":`${a}`,"data-src":t,onclick:this._loadImageFromGallery,onmouseenter:this._highlight,onmouseleave:this._removeHighlight})))):null}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resetVideoTools(){this.viewModel.videoViewModel?.resetVideoEnhancementTools()}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleEnhancementToolState(e){e.stopPropagation();const t=this.enhancementToolActive;this._closeAllImageTools(),this.enhancementToolActive=!t}_toggleImageOverlays(e){e.stopPropagation();const t=this.imageOverlaysOpened;this._closeAllImageTools(),this.imageOverlaysOpened=!t}_toggleImageGallery(e){e.stopPropagation();const t=this.galleryOpened;this._closeAllImageTools(),this.galleryOpened=!!this.imageGalleryEnabled&&!t}_toggleLocationTool(e){const t=this.imageLocationToolActive,i=this.triangularMeasurementActive&&t;this._closeAllImageTools(),this.imageLocationToolActive=i||!t,e.stopPropagation()}_toggleMeasurementSketch(e,t){e.stopPropagation();const i=this.measureType,a=this.triangularMeasurementActive;this._closeAllImageTools(),this.measureType=i!==t||a?t:null,this.measureType===t&&(this.viewModel.displayNewMeasurementButton=!0)}_toggleNavigationTool(){const e=this.navigationToolActive;this._closeAllImageTools(),this.navigationToolActive=!e}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_toggleTriangularAreaMeasurements(){this._toggleTriangularMeasurements("area")}_toggleTriangularDistanceMeasurements(){this._toggleTriangularMeasurements("distance")}_toggleTriangularLocation(){const e=this.triangularMeasurementActive,t=this.navigationToolActive;e?null===this.measureType?this.imageLocationToolActive?this._closeImageToolsAndToggleNavigation(e,t):this._activateTriangulatedImageLocationTool():this._resetMeasureTypeAndActivateImageLocationTool():this._activateTriangulatedImageLocationWorkflow(e,t)}_toggleTriangularMeasurements(e){const t=this.triangularMeasurementActive,i=this.viewModel.measureType,a=this.navigationToolActive;t?e===i?(this._closeAllImageTools(),this.triangularMeasurementActive=!t,this.navigationToolActive=!a):(this.imageLocationToolActive=!1,this.measureType=e):(this._closeAllImageTools(),this.measureType=e,this.triangularMeasurementActive=!t,this.navigationToolActive=!!a||!a)}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){const{previousFeatureAngle:t,bestFeatureAngle:i}=this.viewModel,a=(i-t+540)%360-180;e.style.setProperty(k,`${t}deg`),e.style.setProperty(S,`${t+a}deg`)}async loadBestImage(e){return this.viewModel.loadBestImage(e)}loadImageFromSource(e,t){return this.viewModel.loadImageFromSource(e,t)}async overlayMapFeatures(e,t){return this.removeHandles(`${te.overlayed}-${e.id}`),this.addHandles(l(()=>e.visible,()=>{this.viewModel.toggleOverlayMapFeatures(e.id,e.visible,this.showMapFeatures)}),`${te.overlayed}-${e.id}`),this._overlayedLayers.add(e),this.viewModel.overlayMapFeatures(e,t&&this.showMapFeatures)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}plotReferencePointOnGround(e){this.viewModel.plotReferencePointOnGround(e)}plotReferencePointOnImage(e){this.viewModel.plotReferencePointOnImage(e)}removeOverlayedGraphicsOnImage(e){this.removeHandles(`${te.overlayed}-${e}`),this._overlayedLayers.remove(this._overlayedLayers.find(t=>t.id===e)),this.viewModel.removeOverlayedGraphicsOnImage(e)}resetImage(){this.viewModel.resetImage()}render(){return ee("div",{class:this.classes(Q.widget,O)},this._renderRoot)}async showImageByObjectId(e,t){return this.viewModel.showImageByObjectId(e,t)}async startDataCapture(e){return this.viewModel.startDataCapture(e)}async stopDataCapture(e){return this.viewModel.stopDataCapture(e)}updateSuitabilities(e){this.viewModel.updateSuitabilities(e)}};e([h({readOnly:!0})],ie.prototype,"accuracyParametersMissing",null),e([h()],ie.prototype,"activeLayer",null),e([h()],ie.prototype,"activeVideoIcon",null),e([h()],ie.prototype,"activeAudioIcon",null),e([h()],ie.prototype,"cameraHeadingThreshold",null),e([h()],ie.prototype,"cameraPitchThreshold",null),e([h()],ie.prototype,"canNavigateSequentially",null),e([h()],ie.prototype,"currentBestFeature",null),e([h()],ie.prototype,"currentCoverageVisible",null),e([h()],ie.prototype,"dataCaptureEnabled",void 0),e([h()],ie.prototype,"dataCaptureLayer",null),e([h()],ie.prototype,"depthImageNotSupported",null),e([h()],ie.prototype,"disabled",null),e([h()],ie.prototype,"enhancementToolActive",null),e([h()],ie.prototype,"features",null),e([h()],ie.prototype,"imagePointsInView",null),e([h()],ie.prototype,"galleryOpened",void 0),e([h()],ie.prototype,"icon",null),e([h()],ie.prototype,"imageEnhancementToolActive",void 0),e([h()],ie.prototype,"videoEnhancementToolActive",void 0),e([h({readOnly:!0})],ie.prototype,"imageGalleryEnabled",null),e([h()],ie.prototype,"imageLocationToolActive",null),e([h()],ie.prototype,"imageOverlaysOpened",void 0),e([h({readOnly:!0})],ie.prototype,"invalidCameraHeading",null),e([h()],ie.prototype,"isAdditionalCoverageVisible",null),e([h()],ie.prototype,"isAdditionalPointSourcesVisible",null),e([h()],ie.prototype,"mapImageConversionToolState",null),e([h()],ie.prototype,"measureType",null),e([h()],ie.prototype,"layer",null),e([h()],ie.prototype,"navigationToolActive",void 0),e([h()],ie.prototype,"navigationMode",null),e([X(M()),h({type:H})],ie.prototype,"viewModel",void 0),e([h(),Y("esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer")],ie.prototype,"messages",void 0),e([h(),Y("esri/core/t9n/Units")],ie.prototype,"measurementUnitMessages",void 0),e([h(),Y("esri/t9n/common")],ie.prototype,"messagesCommon",void 0),e([h(),Y("esri/widgets/Sketch/t9n/Sketch")],ie.prototype,"messagesSketch",void 0),e([h()],ie.prototype,"pixelMeasurementUnit",void 0),e([h()],ie.prototype,"pixelAreaMeasurementUnit",void 0),e([h({readOnly:!0})],ie.prototype,"popupEnabled",null),e([h()],ie.prototype,"referencePoint",null),e([h()],ie.prototype,"showCameraLocations",void 0),e([h()],ie.prototype,"showMapFeatures",void 0),e([X(["create","delete","redo","undo","update"]),h({readOnly:!0})],ie.prototype,"sketchViewModel",null),e([h()],ie.prototype,"triangularMeasurementActive",null),e([h()],ie.prototype,"videoLoaded",null),e([h()],ie.prototype,"view",null),e([h({type:N,nonNullable:!0})],ie.prototype,"visibleElements",void 0),e([h()],ie.prototype,"determineWorkflowForFeature",null),e([h()],ie.prototype,"updateFootprint",null),e([h()],ie.prototype,"_activeMeasurementIcon",null),e([h()],ie.prototype,"_activeMeasurementHeading",null),e([h()],ie.prototype,"_imageOverlaysLoaderTask",void 0),e([h()],ie.prototype,"_imageMeasurementToolsLoaderTask",void 0),e([h()],ie.prototype,"_navigationSettingsLoaderTask",void 0),e([h()],ie.prototype,"_measurementToggle",null),e([h()],ie.prototype,"_renderRoot",null),e([h()],ie.prototype,"_imageEnhancementTools",null),e([h()],ie.prototype,"_videoEnhancementTools",null),e([h()],ie.prototype,"_imageGalleryPanel",null),e([h()],ie.prototype,"_imageGalleryContext",null),e([h()],ie.prototype,"_imageOverlaysComponent",null),e([h()],ie.prototype,"_imageOverlayMessages",null),e([h()],ie.prototype,"_imageSketchToolsMessages",null),e([h()],ie.prototype,"_imageViewer",null),e([h()],ie.prototype,"_imageViewerTriangular",null),e([h()],ie.prototype,"_videoViewer",null),e([h()],ie.prototype,"_locationToggle",null),e([h()],ie.prototype,"_messageBox",null),e([h()],ie.prototype,"_navigationToolExpanded",void 0),e([h()],ie.prototype,"_navigationTool",void 0),e([h()],ie.prototype,"_panoramicVideoViewer",null),e([h()],ie.prototype,"_panoramicViewer",null),e([h()],ie.prototype,"_renderNavigation",null),e([h()],ie.prototype,"_renderThumbnails",null),e([h()],ie.prototype,"_sketchLoaderTask",void 0),ie=e([m("esri.widgets.OrientedImageryViewer")],ie);const ae=ie;export{ae as default};
|
|
5
|
+
import{__decorate as e}from"tslib";import{substitute as t}from"../intl.js";import{prefersReducedMotion as i}from"../core/a11yUtils.js";import{createTask as a}from"../core/asyncUtils.js";import o from"../core/Collection.js";import{deprecatedProperty as s}from"../core/deprecate.js";import n from"../core/Logger.js";import{isAbortError as r}from"../core/promiseUtils.js";import{watch as l,on as d,initial as c,syncAndInitial as g,whenOnce as h,sync as m}from"../core/reactiveUtils.js";import{throttle as u}from"../core/throttle.js";import{property as v,subclass as p}from"../core/accessorSupport/decorators.js";import{or as y}from"../layers/orientedImagery/transformations/utils.js";import w from"./Expand.js";import _ from"./PanoramicVideoViewer.js";import M from"./PanoramicViewer.js";import T from"./Widget.js";import{getAllArcPath as b}from"./OrientedImageryViewer/arcUtils.js";import{getDelegatedEvents as C,defaultImageGeometryField as A,defaultOIObjectIDField as I,segmentArcs as f,featureCircleRadius as L,navigationToolDimensionLength as V,sectorsRadii as k}from"./OrientedImageryViewer/constants.js";import{css as S,navigation as O,navigationToolRotationFrom as F,navigationToolRotationTo as E,root as P}from"./OrientedImageryViewer/css.js";import{loadImageForAttachment as x,getThumbnailPixelBlock as H,isFeatureAttachment as N,renderImageWithRotation as j}from"./OrientedImageryViewer/galleryUtils.js";import D from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import G from"./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";import{loadAlertComponents as $,Alert as B}from"./OrientedImageryViewer/components/Alert.js";import R from"./OrientedImageryViewer/components/ImageLocationWidget.js";import W from"./OrientedImageryViewer/components/ImageViewer.js";import U from"./OrientedImageryViewer/components/NavigationAction.js";import{loadNavigationActionsComponents as z,NavigationActionsCollection as q,NavigationActions as Z}from"./OrientedImageryViewer/components/NavigationActions.js";import{loadVideoEnhancementComponents as J,renderEnhancementSlider as K,VideoEnhancementTools as Q}from"./OrientedImageryViewer/components/VideoEnhancementTools.js";import{NoImageLoadedError as X}from"./OrientedImageryViewer/navigation/errors.js";import{loadCalciteComponents as Y}from"./support/componentsUtils.js";import{globalCss as ee}from"./support/globalCss.js";import{vmEvent as te,messageBundle as ie,tsx as ae}from"./support/widget.js";const oe={overlayed:"overlayed"};let se=class extends T{constructor(e,t){super(e,t),this.dataCaptureEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.videoEnhancementToolActive=!1,this.imageOverlaysOpened=!1,this.navigationToolActive=!1,this.viewModel=new D,this.messagesCommon=null,this.messagesSketch=null,this.pixelMeasurementUnit="meters",this.pixelAreaMeasurementUnit="square-meters",this.showCameraLocations=!1,this.showMapFeatures=!1,this.visibleElements=new G,this._imageOverlaysLoaderTask=null,this._imageMeasurementToolsLoaderTask=null,this._navigationSettingsLoaderTask=null,this._clearMeasurements=()=>{this.viewModel.measureType=null,this.viewModel.triangularMeasurementActive=!1,this.viewModel.clearPreviousMeasurements()},this._clearImageLocation=()=>{this.imageLocationToolActive=!1,this.triangularMeasurementActive=!1},this._navigationToolExpanded=!1,this._navigationTool=null,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._overlayedLayers=new o,this._previousAction=null,this._handleDataCaptureLayerChange=async e=>{if(this.dataCaptureLayer&&await this.stopDataCapture(!0),this.dataCaptureLayer=this.dataCaptureLayer===e?null:e,this.dataCaptureLayer)return this.startDataCapture(this.dataCaptureLayer)},this._handleNavigationSettingsInputChange=(e,t)=>{this.set(`${e}Threshold`,t)},this._handleNavigationSettingsToggle=e=>{this.viewModel.preserveAngle=e},this._handleOverlayLayerDeselect=e=>{const t=e.layer;t===this.dataCaptureLayer&&(this.stopDataCapture(),this.dataCaptureLayer=null),this.removeOverlayedGraphicsOnImage(`${t.id}`)},this._handleOverlayLayerSelect=e=>{const t=e.layer;this.viewModel.overlayMapFeatures(t,this.showMapFeatures),this.addHandles(l(()=>t.visible,()=>{this.viewModel.toggleOverlayMapFeatures(t.id,t.visible,this.showMapFeatures)}),`${oe.overlayed}-${t.id}`)},this._highlight=e=>{const t=e.target?.dataset.objectid;t&&this.viewModel.highlight(t)},this._onAction=e=>{const{target:t}=e,{dataset:{action:i}}=t,{_previousAction:a}=this,o=a?.dataset.action,s=o?.includes("draw")??!1,n="select-feature"===o,r=o!==i;switch(i){case"draw-point":case"draw-polygon":case"draw-polyline":{a&&y(n,s&&r)&&(a.active=!1),t.active=!t.active;const e=i.replace("draw-","");this.viewModel.digitizeCreate(e),this._previousAction=t.active?t:null;break}case"save":this.viewModel.saveDrawing();break;case"select-feature":s&&(this._previousAction.active=!1),t.active=!t.active,this.viewModel.toggleSelection(t.active),this._previousAction=t.active?t:null;break;case"delete-feature":this.viewModel.digitizeDelete()}},this._onImageOverlayClosed=()=>{this.imageOverlaysOpened=!1},this._onShowCameraLocationsChanged=e=>{this.showCameraLocations=e},this._onShowMapFeaturesChanged=e=>{this.showMapFeatures=e},this._removeHighlight=()=>this.viewModel.removeHighlight(),this._restoreOverlays=async()=>Promise.all(this._overlayedLayers.map(e=>this.viewModel.overlayMapFeatures(e,this.showMapFeatures))),this._scaleNavigationTool=()=>{this._navigationToolExpanded=!this._navigationToolExpanded},this._sketchLoaderTask=null,this._settingsToggle=null,this._toggleImageNavigation=async e=>{const t=this.navigationMode;this._closeAllImageTools(),this.navigationMode=t!==e?e:null;const{activeViewer:i}=this.viewModel;if(!i)return;const{mode:a,preserveAngle:o}=this.viewModel;if("default"===a)if("directional"===this.navigationMode){const e=await this._loadNavigationSettings(),t="heading"===o||"both"===o,i="pitch"===o||"both"===o,{messages:a,messagesCommon:s}=this,n=new e({cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,uiStrings:{configureNavigation:a.configureNavigation,preserveHeading:a.preserveHeading,preserveHeadingDescription:a.preserveHeadingDescription,preservePitch:a.preservePitch,preservePitchDescription:a.preservePitchDescription,settings:s.settings,thresholdLabel:a.thresholdLabel},onInputChange:this._handleNavigationSettingsInputChange,onToggle:this._handleNavigationSettingsToggle,preserveHeading:t,preservePitch:i});this._settingsToggle=new w({content:n,expandIcon:"configure"}),this.viewModel.activeViewer?.ui.add(this._settingsToggle,{position:"top-left"})}else this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))},this._toggleImageAttributes=u(this.viewModel.toggleImageAttributes.bind(this.viewModel)),this.navigate=async e=>{let t=null;try{const{currentNode:i}=this.viewModel;if(!i)throw new X;t=await this.viewModel.navigate(i,e)}catch(i){r(i)||n.getLogger(this).error("Error occurred while navigating",i)}return t},this.reset=()=>{this._closeAllImageTools(),this.viewModel.reset()},this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this.loadImageFromSource=this.loadImageFromSource.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this),this._handleVideoBrightnessChange=this._handleVideoBrightnessChange.bind(this),this._handleVideoContrastChange=this._handleVideoContrastChange.bind(this),this._handleBrightnessChange=this._handleBrightnessChange.bind(this),this._handleContrastChange=this._handleContrastChange.bind(this),this._handleSharpnessChange=this._handleSharpnessChange.bind(this),this._resetVideoTools=this._resetVideoTools.bind(this),this._toggleEnhancementToolState=this._toggleEnhancementToolState.bind(this)}initialize(){this.addHandles([l(()=>[this.viewModel?.bestFeatureAngle,this._navigationTool],([e,t])=>{t&&this._updateNavigationTool(t)},c),l(()=>this.currentCoverageVisible,e=>this._onCurrentCoverageVisibilityChange(e)),l(()=>this.isAdditionalCoverageVisible,e=>this._onAdditionalCoverageVisibilityChange(e)),l(()=>this.isAdditionalPointSourcesVisible,e=>this._onAdditionalCameraLocationsVisibility(e)),l(()=>({features:this.currentBestFeature,showCameraLocations:this.showCameraLocations,state:this.viewModel.state}),({showCameraLocations:e,state:t})=>{"image-loaded"===t&&this.viewModel.overlayCameraLocations(e)},g),l(()=>({feature:this.currentBestFeature,showMapFeatures:this.showMapFeatures,state:this.viewModel.state}),async(e,t)=>{if(e.showMapFeatures!==t?.showMapFeatures&&await this.viewModel.toggleAllOverlayMapFeatures(e.showMapFeatures),null!=e.feature&&e.feature!==t?.feature){if(this.viewModel.removeAllOverlayMapFeatures(),await h(()=>"image-loaded"===this.viewModel.state),this.dataCaptureLayer&&this.stopDataCapture(),await this._restoreOverlays(),!this.dataCaptureLayer)return;await this.startDataCapture(this.dataCaptureLayer),this._previousAction?.active&&(this._previousAction.active=!1,this._previousAction=null)}},c),d(()=>this.viewModel,"popup-open",async e=>{await(this.view?.openPopup(e))},m),d(()=>this.viewModel,"popup-close",()=>{this.view?.closePopup()},m),this._toggleImageAttributes])}loadDependencies(){return Promise.all([z(),J(),Y({"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group"),action:()=>import("@esri/calcite-components/dist/components/calcite-action"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel"),shell:()=>import("@esri/calcite-components/dist/components/calcite-shell"),dialog:()=>import("@esri/calcite-components/dist/components/calcite-dialog"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider")}),$()])}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect(),this.currentBestFeature=null}get accuracyParametersMissing(){return this.viewModel.accuracyParametersMissing}get activeLayer(){return s(n.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){s(n.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get activeVideoIcon(){const{videoElement:e,videoViewModel:t}=this.viewModel;return e?.loaded&&t?t.videoPaused?"play":"pause":"play"}get activeAudioIcon(){const{videoElement:e,videoViewModel:t}=this.viewModel;return e?.loaded&&t?.videoMuted?"sound-off":"sound"}get cameraHeadingThreshold(){return this.viewModel.cameraHeadingThreshold}set cameraHeadingThreshold(e){this.viewModel.cameraHeadingThreshold=e}get cameraPitchThreshold(){return this.viewModel.cameraPitchThreshold}set cameraPitchThreshold(e){this.viewModel.cameraPitchThreshold=e}get canNavigateSequentially(){const{layer:e}=this;if(!e)return!1;const{fields:t,sequenceOrderField:i}=e;return t.some(({name:e})=>e.toLowerCase()===`${i??"sequenceorder"}`.toLowerCase())}get currentBestFeature(){return this.viewModel.currentBestFeature}set currentBestFeature(e){this.viewModel.currentBestFeature=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get dataCaptureLayer(){return this.viewModel.dataCaptureLayer}set dataCaptureLayer(e){this.viewModel.dataCaptureLayer=e}get depthImageNotSupported(){return this.viewModel.depthImageNotSupported}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get displayMessage(){return this.viewModel.displayMessage}get enhancementToolActive(){return"video"===this.viewModel.mode?this.videoEnhancementToolActive:this.imageEnhancementToolActive}set enhancementToolActive(e){"video"===this.viewModel.mode?this.videoEnhancementToolActive=e:this.imageEnhancementToolActive=e}get features(){return this.viewModel.features}get imagePointsInView(){return this.viewModel.imagePointsInView}get icon(){return"oriented-imagery-widget"}set icon(e){this._overrideIfSome("icon",e)}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get imageLocationToolActive(){return this.viewModel.imageLocationToolState}set imageLocationToolActive(e){this.viewModel.imageLocationToolState=e}get invalidCameraHeading(){return this.viewModel.invalidCameraHeading}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.mapImageConversionToolState=e}get measureType(){return this.viewModel.measureType}set measureType(e){this.viewModel.measureType=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get navigationMode(){return this.viewModel.navigationMode}set navigationMode(e){this.viewModel.navigationMode=e}get popupEnabled(){const{popupEnabled:e,state:t}=this.viewModel;return("image-loaded"===t||this.videoLoaded)&&e}get referencePoint(){return this.viewModel.referencePoint??null}get sketchViewModel(){return this.viewModel.sketch}get triangularMeasurementActive(){return this.viewModel.triangularMeasurementActive}set triangularMeasurementActive(e){this.viewModel.triangularMeasurementActive=e}get videoLoaded(){const{mode:e,videoElement:t,panoramicVideoLoaded:i}=this.viewModel;return("video"===e&&!0===t?.loaded||i)??!1}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set determineWorkflowForFeature(e){this.viewModel.determineWorkflowForFeature=e}get determineWorkflowForFeature(){return this.viewModel.determineWorkflowForFeature}set updateFootprint(e){this.viewModel.updateFootprint=e}get updateFootprint(){return this.viewModel.updateFootprint}_renderActionBar(){return ae("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",slot:"action-bar"},ae("calcite-action-group",null,this._currentFootprintToggle(),this._additionalFootprintToggle(),this._additionalPointSourcesToggle()),ae("calcite-action-group",null,this._directionToolToggle(),this._mapImageConversionToggle(),this._navigationToolToggle(),this._imageEnhancementsToggle(),this._videoEnhancementsToggle()),ae("calcite-action-group",null,this._measurementToolsToggle(),this._imageGalleryToggle(),this._imageOverlaysToggle(),this._openPopupAction()))}get _activeMeasurementIcon(){const{measureType:e,imageLocationToolActive:t,triangularMeasurementActive:i}=this;if(t)return i?"dual-image-location":"pin-tear";if(i)return"area"===e?"dual-image-area":"dual-image-distance";switch(e){case"area":return"measure-area";case"height":return"measure-building-height-top-base";default:return"measure-line"}}get _activeMeasurementHeading(){const{measureType:e,messages:t,triangularMeasurementActive:i}=this,{groundArea:a,heightAboveGround:o,groundDistance:s,triangulatedAreaHeading:n,triangulatedDistanceHeading:r}=t;if(i)return"area"===e?n:r;switch(e){case"area":return a;case"height":return o;default:return s}}_additionalFootprintToggle(){const{isAdditionalCoverageVisible:e,invalidCameraHeading:t,visibleElements:{additionalFootprintToggle:i}}=this;return i?ae("calcite-action",{active:e,bind:this,class:S.addCoverage,disabled:t,icon:"trapezoid-area",onclick:this._toggleAdditionalCoverage,text:this.messages.additionalFootprints,title:this.messages.additionalFootprints}):null}_additionalPointSourcesToggle(){const{isAdditionalPointSourcesVisible:e,invalidCameraHeading:t,visibleElements:{additionalCameraLocationsToggle:i}}=this;return i?ae("calcite-action",{active:e,bind:this,class:S.addExpPoints,disabled:t,icon:"circle-area",onclick:this._toggleAdditionalCameraLocations,text:this.messages.additionalCameraLocations,title:this.messages.additionalCameraLocations}):null}get _measurementToggle(){const{viewModel:{state:e,measureType:t,currentBestFeatureMeasurementImage:i},triangularMeasurementActive:a,id:o}=this;if("image-loaded"!==e||!t||a&&!i)return;this._imageMeasurementToolsLoaderTask||this._loadImageMeasurementResources();const s=this._imageMeasurementToolsLoaderTask?.value;return s?ae("calcite-dialog",{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:this._activeMeasurementHeading,id:`${o}-${t}-measurement`,open:!0,placement:"bottom-start",resizable:!0,scale:"s",slot:"dialogs",width:"s",onCalciteDialogBeforeClose:this._clearMeasurements},ae(s,{measurementType:t,measurementUnitMessages:this.measurementUnitMessages,messages:this.messages,oiViewModel:this.viewModel})):null}get _renderRoot(){const{viewModel:{state:e},triangularMeasurementActive:t}=this;return ae("calcite-panel",{bind:this,class:t?S.viewerContainerMeasurement:S.viewerContainer,heading:this.visibleElements.title?this.messages.title:void 0,loading:e.includes("loading")&&!t},this.visibleElements.menu?this._renderActionBar():null,ae("calcite-shell",null,ae("calcite-panel",null,this._imageViewer,this._panoramicViewer,this._panoramicVideoViewer,this._videoViewer,this._messageBox,this.invalidCameraHeading?null:[this._imageGalleryPanel,this._renderNavigation,this._imageOverlaysPanel()],this._imageEnhancementTools,this._videoEnhancementTools,this._renderSketch()),this._imageViewerTriangular,this._measurementToggle,this._locationToggle,this.invalidCameraHeading?this._renderWarning(this.messages.invalidCameraHeadingWarningTitle,this.messages.invalidCameraHeadingWarningDescription):null,this.depthImageNotSupported?this._renderWarning(this.messages.depthImageNotSupportedTitle,this.messages.depthImageNotSupportedDescription):null))}_currentFootprintToggle(){const{currentCoverageVisible:e,invalidCameraHeading:t}=this,{currentFootprintToggle:i}=this.visibleElements;return i?ae("calcite-action",{active:e,bind:this,class:S.currentCoverage,disabled:t,icon:"trapezoid-area",onclick:this._toggleCurrentCoverage,text:this.messages.currentFootprint,title:this.messages.currentFootprint}):null}get _imageEnhancementTools(){const{enhancementToolActive:e,viewModel:{brightness:t,contrast:i,sharpness:a,state:o}}=this;return e&&"image-loaded"===o?ae("calcite-panel",{bind:this,class:S.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleEnhancementToolState},ae("div",{class:S.imageEnhancementTools},K({title:this.messages.brightness,value:t,max:10,min:-10,ticks:5,handleChange:this._handleBrightnessChange}),K({title:this.messages.contrast,value:i,max:10,min:-10,ticks:5,handleChange:this._handleContrastChange}),K({title:this.messages.sharpness,value:a,max:1,min:0,ticks:.5,step:.1,handleChange:this._handleSharpnessChange})),ae("calcite-action",{bind:this,icon:"reset",onclick:this._resetImageTools,slot:"header-actions-end",text:this.messagesCommon.reset,title:this.messagesCommon.reset})):null}get _videoEnhancementTools(){const{enhancementToolActive:e,viewModel:{videoViewModel:t,mode:i},messages:{videoEnhancement:a,brightness:o,contrast:s},messagesCommon:{reset:n}}=this;return e&&"video"===i&&t?ae(Q,{brightness:t.videoBrightness,constrast:t.videoContrast,handleBrightnessChange:this._handleVideoBrightnessChange,handleContrastChange:this._handleVideoContrastChange,resetTools:this._resetVideoTools,uiStrings:{videoEnhancement:a,brightness:o,contrast:s,reset:n},videoEnhancementToolActive:e,onClose:this._toggleEnhancementToolState}):null}_imageEnhancementsToggle(){const{state:e,mode:t}=this.viewModel,{imageEnhancement:i}=this.visibleElements;return i&&"video"!==t?ae("calcite-action",{active:this.enhancementToolActive,bind:this,disabled:"default"!==t||"image-loaded"!==e,icon:"sliders-horizontal",onclick:this._toggleEnhancementToolState,text:this.messages.imageEnhancement,title:this.messages.imageEnhancement}):null}_videoEnhancementsToggle(){const{mode:e}=this.viewModel,{videoEnhancement:t}=this.messages;return"video"===e?ae("calcite-action",{active:this.enhancementToolActive,bind:this,disabled:"video"!==e,icon:"sliders-horizontal",onclick:this._toggleEnhancementToolState,text:t,title:t}):null}get _imageGalleryPanel(){const{container:e,galleryOpened:t,imageGalleryEnabled:i}=this;return i&&t&&e?this._imageGalleryContext:null}get _imageGalleryContext(){const{galleryOpened:e,invalidCameraHeading:t}=this;return ae("calcite-panel",{bind:this,class:S.carousel,closable:!0,closed:!e,disabled:t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},ae("div",{class:S.carouselContainer},this._renderThumbnails))}_imageGalleryToggle(){const{imageGalleryEnabled:e,invalidCameraHeading:t,visibleElements:{imageGallery:i}}=this;return i?ae("calcite-action",{active:this.galleryOpened,bind:this,disabled:!e||t,icon:"images",onclick:this._toggleImageGallery,text:this.messages.imageGallery,title:this.messages.imageGallery}):null}get _imageOverlaysComponent(){const{_imageOverlayMessages:e,_imageOverlaysLoaderTask:t,_overlayedLayers:i,dataCaptureEnabled:o,dataCaptureLayer:s,imageOverlaysOpened:n,showCameraLocations:r,showMapFeatures:l,view:d,layer:c}=this;if(!c)return null;const g=c.imageGeometryField?.length?c.imageGeometryField:A,h=c.imageReferenceField?.length?c.imageReferenceField:I;t||(this._imageOverlaysLoaderTask=a(async()=>(await import("./OrientedImageryViewer/components/ImageOverlays.js")).default));const m=this._imageOverlaysLoaderTask?.value;return m?ae(m,{closed:!n,dataCaptureEnabled:o,dataCaptureLayer:s,imageGeometryField:g,imageReferenceField:h,messages:e,overlayedLayers:i,showCameraLocations:r,showMapFeatures:l,view:d,onDataCaptureLayerChanged:this._handleDataCaptureLayerChange,onFilterCapturedFeatures:this.viewModel.filterCapturedFeatures,onImageOverlaysClosed:this._onImageOverlayClosed,onLayerDeselected:this._handleOverlayLayerDeselect,onLayerSelected:this._handleOverlayLayerSelect,onShowCameraLocationsChanged:this._onShowCameraLocationsChanged,onShowMapFeaturesChanged:this._onShowMapFeaturesChanged}):null}get _imageOverlayMessages(){return{...this.messages,...this.messagesSketch}}get _imageSketchToolsMessages(){return{...this.messagesSketch,...this.messagesCommon}}_imageOverlaysPanel(){const{imageOverlaysOpened:e,viewModel:{state:t}}=this,i=this.classes({[S.imageOverlaysContainer]:!0,[ee.hidden]:!e||"image-loaded"!==t});return ae("div",{class:i,key:this.messages.imageOverlays},this._imageOverlaysComponent)}_imageOverlaysToggle(){const{viewModel:{state:e},imageOverlaysOpened:t,invalidCameraHeading:i,visibleElements:{imageOverlays:a}}=this;return a?ae("calcite-action",{active:t,bind:this,disabled:"image-loaded"!==e||i,icon:"layers",onclick:this._toggleImageOverlays,text:this.messages.imageOverlays,title:this.messages.imageOverlays}):null}get _imageViewer(){const{displayMessage:e,loadImageViewer:t,mode:i,clickAction:a,state:o}=this.viewModel,s=null!=e||"default"!==i||o.includes("loading"),{messages:{end:n,next:r,previous:l,start:d}}=this;return ae(W,{afterCreate:t,clickAction:a,navigationEnabled:!s&&null!==this.navigationMode,navigationViewModel:this.viewModel,uiStrings:{end:n,next:r,previous:l,start:d},visible:!s})}get _imageViewerTriangular(){const{messages:e,triangularMeasurementActive:t}=this,{displayMessage:i,storeImageMeasurementViewer:a,storePanoramicMeasurementViewer:o,mode:s,state:n,clickAction:r}=this.viewModel,l=null!=i||"none"===s||"video"===s,d=this.classes({[S.viewer]:!l,[S.viewerHidden]:l});return t?ae("calcite-panel",{class:S.viewerContainerMeasurement,heading:e.measurementViewerHeading,loading:n.includes("loading")},ae("calcite-panel",{bind:this,class:d},"default"===s?ae(W,{afterCreate:a,clickAction:r,uiStrings:e}):ae(M,{afterCreate:o,clickAction:r,uiStrings:e}))):null}get _videoViewer(){const{mode:e,loadVideoViewer:t,videoViewModel:i}=this.viewModel,{control:a,reset:o}=this.messagesCommon,{mute:s,unmute:n}=this.messages,r="video"!==e,l=this.classes({[S.viewer]:!r,[S.viewerHidden]:r}),d="esri-image-viewer";return ae("calcite-panel",{bind:this,class:l},ae("calcite-panel",{afterCreate:t,class:this.classes(ee.widget,d)}),ae("calcite-slider",{bind:this,labelHandles:!0,labelTicks:!0,max:i?.videoDuration,minLabel:"0",value:i?.currentTime??0,onCalciteSliderChange:this._handleVideoSeek}),ae("calcite-action-bar",{expandDisabled:!0,layout:"horizontal"},ae("calcite-action-group",null,ae("calcite-action",{bind:this,icon:this.activeVideoIcon,onclick:()=>i?.playVideoHandler(),text:"Play",title:i?.videoPaused?a.play:a.pause})),ae("calcite-action-group",null,ae("calcite-action",{bind:this,icon:"refresh",onclick:()=>i?.rewindVideoHandler(),text:"Rewind",title:o})),ae("calcite-action-group",null,ae("calcite-action",{bind:this,icon:this.activeAudioIcon,onclick:()=>i?.toggleAudio(),text:"Audio",title:i?.videoMuted?s:n}))))}get _locationToggle(){const{viewModel:{state:e,groundCoordinates:t,groundCoordinatesAccuracy:i,triangulatedPoint:a},imageLocationToolActive:o,triangularMeasurementActive:s,messages:{groundLocation:n,triangulatedLocationHeading:r}}=this;if("image-loaded"!==e||!t||!o)return;let l=t;if(s){if(!a)return;l=a}return ae("calcite-dialog",{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:s?r:n,id:n,open:!0,placement:"bottom-start",resizable:!0,scale:"s",slot:"dialogs",width:"s",onCalciteDialogBeforeClose:this._clearImageLocation},ae(R,{accuracy:i,groundCoordinates:l,messages:this.messages}))}_mapImageConversionToggle(){const{mapImageConversionToolState:e,viewModel:{state:t,disabled:i},invalidCameraHeading:a,visibleElements:{mapImageConversionTool:o}}=this;return o?ae("calcite-action",{active:e,bind:this,disabled:"image-loaded"!==t||a||i,icon:"image-pin",onclick:this._toggleMapImageConversionToolState,text:this.messages.mapImageConversionTool,title:this.messages.mapImageConversionTool}):null}_measurementToolsToggle(){const{_activeMeasurementIcon:e,measureType:t,viewModel:i,accuracyParametersMissing:a,messages:o,triangularMeasurementActive:s,visibleElements:{measurementTools:n}}=this,{state:r}=i,{measurementTools:l,groundDistance:d,groundArea:c,heightAboveGround:g,groundLocation:h,triangulatedDistanceHeading:m,triangulatedAreaHeading:u,triangulatedLocationHeading:v}=o;return n?ae("calcite-dropdown",{disabled:a,key:"measurement-tools",maxItems:5,title:l,width:"m"},ae("calcite-action",{bind:this,disabled:"image-loaded"!==r||a,icon:e,slot:"trigger",text:l}),ae("calcite-dropdown-group",null,ae("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"measure-line",key:"distance-measurement",onclick:e=>this._toggleMeasurementSketch(e,"distance"),selected:"distance"===t&&!s},d),ae("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"measure-area",key:"area-measurement",onclick:e=>this._toggleMeasurementSketch(e,"area"),selected:"area"===t&&!s},c),ae("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"measure-building-height-top-base",key:"height-dropdown",onclick:e=>this._toggleMeasurementSketch(e,"height"),selected:"height"===t},g),ae("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"pin-tear",key:"surface-location",onclick:this._toggleLocationTool,selected:!!this.imageLocationToolActive&&!s},h),ae("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"dual-image-location",key:"triangular-location",selected:!!s&&this.imageLocationToolActive,onCalciteDropdownItemSelect:this._toggleTriangularLocation},v),ae("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"dual-image-distance",key:"triangular-measurement-distance",selected:!!s&&"distance"===this.measureType,onCalciteDropdownItemSelect:this._toggleTriangularDistanceMeasurements},m),ae("calcite-dropdown-item",{bind:this,disabled:"image-loaded"!==r,iconStart:"dual-image-area",key:"triangular-measurement-area",selected:!!s&&"area"===this.measureType,onCalciteDropdownItemSelect:this._toggleTriangularAreaMeasurements},u))):null}get _messageBox(){const{messages:e,viewModel:{displayMessage:i,mode:a}}=this;if(!i||"video"===a)return null;const{data:o,key:s,map:n}=i,r=`${n?t(e[s],n):e[s]}`;return ae("span",{class:S.messageBox},o?`${r} ${o}`:r)}async _loadNavigationSettings(){return this._navigationSettingsLoaderTask||(this._navigationSettingsLoaderTask=a(async()=>(await import("./OrientedImageryViewer/components/NavigationSettings.js")).default)),await this._navigationSettingsLoaderTask.promise}_navigationToolToggle(){const{state:e}=this.viewModel,{visibleElements:{navigationTool:t},videoLoaded:i}=this;return t?ae("calcite-action",{active:this.navigationToolActive,bind:this,disabled:"image-loaded"!==e&&!i||this.invalidCameraHeading,icon:"explore",onclick:this._toggleNavigationTool,text:this.messages.navigationTool,title:this.messages.navigationTool}):null}_directionToolToggle(){const{state:e}=this.viewModel,{visibleElements:{directionalNavigation:t,sequentialNavigation:i}}=this,a=new q;t&&a.push(new U({active:"directional"===this.navigationMode,disabled:"image-loaded"!==e||this.invalidCameraHeading,icon:"directional-navigation",onclick:()=>{this._toggleImageNavigation("directional")},text:this.messages.directionalNavigation,title:this.messages.directionalNavigationDescription})),i&&a.push(new U({active:"sequential"===this.navigationMode,disabled:"image-loaded"!==e||this.invalidCameraHeading||!this.canNavigateSequentially,icon:"sequential-navigation",onclick:()=>{this._toggleImageNavigation("sequential")},text:this.messages.sequentialNavigation,title:this.messages.sequentialNavigationDescription}));return t||i?ae(Z,{actions:a,activeAction:a.items.find(e=>e.active),icon:"absolute-direction",label:this.messages.imageNavigation,scale:"m",title:this.messages.imageNavigation}):null}_openPopupAction(){const{showPopupsAction:e}=this.visibleElements;return e?ae("calcite-action",{bind:this,disabled:!this.popupEnabled,icon:"popup",onclick:this._toggleImageAttributes,text:this.messages.showPopups,title:this.messages.showPopups}):null}get _panoramicVideoViewer(){const{displayMessage:e,loadPanoramicVideoViewer:t,mode:i,clickAction:a,state:o,currentBestFeature:s}=this.viewModel,n=s?.attributes.imagePath,r=null!=e||"panoramic-video"!==i||o.includes("loading")||!n;return ae(_,{afterCreate:t,clickAction:a,oiViewModel:this.viewModel,videoSource:n,visible:!r})}get _panoramicViewer(){const{displayMessage:e,loadPanoramicViewer:t,mode:i,clickAction:a,state:o}=this.viewModel,{messages:{end:s,next:n,previous:r,start:l}}=this,d=null!=e||"panoramic"!==i||o.includes("loading");return ae(M,{afterCreate:t,clickAction:a,navigationEnabled:!d&&null!==this.navigationMode,navigationViewModel:this.viewModel,uiStrings:{end:s,next:n,previous:r,start:l},visible:!d})}_activateTriangulatedImageLocationTool(){this.navigationToolActive=!0,this.imageLocationToolActive=!0}_activateTriangulatedImageLocationWorkflow(e,t){this._closeAllImageTools(),this.imageLocationToolActive=!0,this.triangularMeasurementActive=!e,this.navigationToolActive=!!t||!t}_closeImageToolsAndToggleNavigation(e,t){this._closeAllImageTools(),this.triangularMeasurementActive=!e,this.navigationToolActive=!t}_resetMeasureTypeAndActivateImageLocationTool(){this.measureType=null,this.imageLocationToolActive=!0}_closeAllImageTools(){this.enhancementToolActive=!1,this.navigationToolActive=!1,this.imageOverlaysOpened=!1,this.galleryOpened=!1,this.measureType=null,this.imageLocationToolActive=!1,this.navigationMode=null,this.triangularMeasurementActive=!1,this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}_handleBrightnessChange(e){this.viewModel.brightness=e.currentTarget.value??0}_handleVideoBrightnessChange(e){this.viewModel.videoViewModel?.handleVideoBrightnessChange(e.target.value)}_handleContrastChange(e){this.viewModel.contrast=e.currentTarget.value??0}_handleVideoContrastChange(e){this.viewModel.videoViewModel?.handleVideoContrastChange(e.target.value)}_handleVideoSeek(e){const t=this.viewModel?.videoElement?.content;t&&(t.currentTime=e.target.value,t.play())}_handleSharpnessChange(e){this.viewModel.sharpness=e.currentTarget.value??0}_lazyLoadImage(e,t){e.forEach(async e=>{if(e.isIntersecting){const a=e.target,o=a.getAttribute("data-src"),s=a.getAttribute("data-rotation"),l=a.getAttribute("data-objectid"),d=s?parseFloat(s)%360:0,{layer:c,_galleryController:{signal:g}}=this;if(!o||!l)return;let h;try{h=N(o)?await x(c,l,{signal:g}):await H(o,{signal:g})}catch(i){r(i)||n.getLogger("esri.widgets.OrientedImageryViewer").error("#lazyLoadImage()",i)}finally{t.unobserve(a)}if(!h)return;j(h,a,d)}})}_loadImageFromGallery(e){const{target:t}=e;if(!t)return;const i=t.getAttribute("data-objectid");i&&this.viewModel.currentBestFeature?.attributes.objectId!==Number(i)&&this.viewModel.selectBestFeature(i)}_loadImageMeasurementResources(){this._imageMeasurementToolsLoaderTask=a(async()=>{const{default:e}=await import("./OrientedImageryViewer/components/ImageMeasurementWidget.js");return e})}_loadSketchResources(){this._sketchLoaderTask=a(async()=>(await import("./OrientedImageryViewer/components/SketchTools.js")).default)}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_renderWarning(e,t){const{viewModel:{state:i}}=this;return"image-loaded"===i?ae(B,{icon:"exclamation-mark-triangle-f",kind:"warning",message:t,open:!0,title:e,tooltip:t}):null}get _renderNavigation(){const{viewModel:{sectorData:e,navigatorCurrentBestFeature:t,currentBestFeature:a,state:o}}=this;if(!this.container||!a)return null;let s,n,r,l,d;if(t){const{x:e,y:i,direction:a}=t,[o,c,g,h]=f[a];s=`M ${e} ${i} L ${o} ${c} A ${k[2]} ${k[2]} 0 0 1 ${g} ${h} Z`,n=e,l=i,r=f[a][4],d=f[a][5]}const c=e=>{const t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},g=e=>{const t=e.target.dataset;if(!t)return;const{featureIndexInSector:i,sector:a}=t;i&&a&&this.viewModel.handleFeatureClick({sector:a,featureIndexInSector:+i})},h=e=>{e.removeEventListener("click",g)},m=a.attributes.objectId,u=e?.map(e=>e?.items).filter(Boolean).flatMap(e=>e?.map(({x:e,y:t,objectID:i,featureIndexInSector:a,sector:o})=>ae("circle",{afterRemoved:h,class:this.classes(S.feature,{selected:m===i}),cx:e,cy:t,"data-feature-index-in-sector":a,"data-sector":o,key:`${S.feature}-${i}`,onclick:g,r:L}))),v=e=>{e.removeEventListener("click",c)},p=this.classes({[S.navigationWrapper]:!0,[S.navigationZoomed]:this._navigationToolExpanded});return this.navigationToolActive&&("image-loaded"===o||this.videoLoaded)?ae("div",{bind:this,class:p,key:this.messages.navigationTool},ae("svg",{afterCreate:e=>this._storeNavigationToolReference(e),class:i()?O:S.rotateWithAnimation,focusable:"false",height:V,role:"img",width:V,xmlns:"http://www.w3.org/2000/svg"},ae("defs",null,ae("linearGradient",{gradientUnits:"userSpaceOnUse",id:`${this.id}-coverage-fill`,x1:n,x2:r,y1:l,y2:d},ae("stop",{class:S.navigationPathOffset0,offset:0}),ae("stop",{class:S.navigationPathOffset1,offset:1}))),ae("g",null,ae("circle",{class:this.classes(S.sector,S.outerSector),cx:k[3],cy:k[3],onclick:this._scaleNavigationTool,r:k[3]}),ae("circle",{class:S.sector,cx:k[3],cy:k[3],r:k[2]}),ae("circle",{class:S.sector,cx:k[3],cy:k[3],r:k[1]}),ae("circle",{class:S.sector,cx:k[3],cy:k[3],r:k[0]}),ae("path",{class:S.pointer,d:"M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z",key:`${S.pointer}-west`}),ae("path",{class:this.classes(S.pointer,S.north),d:"M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z",key:`${S.pointer}-north`}),ae("path",{class:S.pointer,d:"M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z",key:`${S.pointer}-east`}),ae("path",{class:S.pointer,d:"M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z",key:`${S.pointer}-south`}),ae("path",{class:this.classes(S.sector,S.sectorSeparator),d:"M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076",key:S.sectorSeparator}),b([k[2],k[1],k[0]],k[3],k[3]).map((t,i)=>ae("path",{afterRemoved:v,class:this.classes(S.sector,e?.[i]?.length?S.sectorEnabled:S.sectorDisabled),d:t,"data-sector":`${i}`,key:`${S.sector}-${i}`,onclick:c})),ae("path",{class:this.classes(S.sector,S.sectorCross),d:"M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53",key:S.sectorCross}),u,a.attributes.cameraPitch>=5&&s?ae("path",{class:S.selectedFeaturePath,d:s,fill:`url(#${this.id}-coverage-fill)`,key:S.selectedFeaturePath}):null))):null}_renderSketch(){const{dataCaptureLayer:e,imageOverlaysOpened:t}=this;if(!e||t)return null;if(this._sketchLoaderTask||this._loadSketchResources(),!this._sketchLoaderTask?.value)return null;const{geometryType:i}=e,a="point"===i?"pin":"polyline"===i?"line":"polygon",o=this._sketchLoaderTask.value;return ae("div",{class:S.sketchTools},ae(o,{icon:a,messages:this._imageSketchToolsMessages,type:i,onAction:this._onAction}))}get _renderThumbnails(){const{currentBestFeature:e,thumbnails:t}=this.viewModel;return e?ae("div",{class:S.carouselContent},t?.items.map(({url:t,objectId:i,rotation:a},o)=>ae("div",{class:`${S.carouselItemWrapper}${e.attributes.objectId===i?"--selected":""}`,key:`${S.carouselItemWrapper}-${o}`},ae("canvas",{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${i}`,class:S.carouselItem,"data-objectid":`${i}`,"data-rotation":`${a}`,"data-src":t,onclick:this._loadImageFromGallery,onmouseenter:this._highlight,onmouseleave:this._removeHighlight})))):null}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resetVideoTools(){this.viewModel.videoViewModel?.resetVideoEnhancementTools()}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleEnhancementToolState(e){e.stopPropagation();const t=this.enhancementToolActive;this._closeAllImageTools(),this.enhancementToolActive=!t}_toggleImageOverlays(e){e.stopPropagation();const t=this.imageOverlaysOpened;this._closeAllImageTools(),this.imageOverlaysOpened=!t}_toggleImageGallery(e){e.stopPropagation();const t=this.galleryOpened;this._closeAllImageTools(),this.galleryOpened=!!this.imageGalleryEnabled&&!t}_toggleLocationTool(e){const t=this.imageLocationToolActive,i=this.triangularMeasurementActive&&t;this._closeAllImageTools(),this.imageLocationToolActive=i||!t,e.stopPropagation()}_toggleMeasurementSketch(e,t){e.stopPropagation();const i=this.measureType,a=this.triangularMeasurementActive;this._closeAllImageTools(),this.measureType=i!==t||a?t:null,this.measureType===t&&(this.viewModel.displayNewMeasurementButton=!0)}_toggleNavigationTool(){const e=this.navigationToolActive;this._closeAllImageTools(),this.navigationToolActive=!e}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_toggleTriangularAreaMeasurements(){this._toggleTriangularMeasurements("area")}_toggleTriangularDistanceMeasurements(){this._toggleTriangularMeasurements("distance")}_toggleTriangularLocation(){const e=this.triangularMeasurementActive,t=this.navigationToolActive;e?null===this.measureType?this.imageLocationToolActive?this._closeImageToolsAndToggleNavigation(e,t):this._activateTriangulatedImageLocationTool():this._resetMeasureTypeAndActivateImageLocationTool():this._activateTriangulatedImageLocationWorkflow(e,t)}_toggleTriangularMeasurements(e){const t=this.triangularMeasurementActive,i=this.viewModel.measureType,a=this.navigationToolActive;t?e===i?(this._closeAllImageTools(),this.triangularMeasurementActive=!t,this.navigationToolActive=!a):(this.imageLocationToolActive=!1,this.measureType=e):(this._closeAllImageTools(),this.measureType=e,this.triangularMeasurementActive=!t,this.navigationToolActive=!!a||!a)}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){const{previousFeatureAngle:t,bestFeatureAngle:i}=this.viewModel,a=(i-t+540)%360-180;e.style.setProperty(F,`${t}deg`),e.style.setProperty(E,`${t+a}deg`)}async loadBestImage(e){return this.viewModel.loadBestImage(e)}loadImageFromSource(e,t,i){return"default"===e?this.viewModel.loadMediaSource(t,i):this.viewModel.loadPanoramicMediaSource(t,i)}async overlayMapFeatures(e,t){return this.removeHandles(`${oe.overlayed}-${e.id}`),this.addHandles(l(()=>e.visible,()=>{this.viewModel.toggleOverlayMapFeatures(e.id,e.visible,this.showMapFeatures)}),`${oe.overlayed}-${e.id}`),this._overlayedLayers.add(e),this.viewModel.overlayMapFeatures(e,t&&this.showMapFeatures)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}plotReferencePointOnGround(e){this.viewModel.plotReferencePointOnGround(e)}plotReferencePointOnImage(e){this.viewModel.plotReferencePointOnImage(e)}removeOverlayedGraphicsOnImage(e){this.removeHandles(`${oe.overlayed}-${e}`),this._overlayedLayers.remove(this._overlayedLayers.find(t=>t.id===e)),this.viewModel.removeOverlayedGraphicsOnImage(e)}resetImage(){this.viewModel.resetImage()}render(){return ae("div",{class:this.classes(ee.widget,P)},this._renderRoot)}async showImageByObjectId(e,t){return this.viewModel.showImageByObjectId(e,t)}async startDataCapture(e){return this.viewModel.startDataCapture(e)}async stopDataCapture(e){return this.viewModel.stopDataCapture(e)}updateSuitabilities(e){this.viewModel.updateSuitabilities(e)}};e([v({readOnly:!0})],se.prototype,"accuracyParametersMissing",null),e([v()],se.prototype,"activeLayer",null),e([v()],se.prototype,"activeVideoIcon",null),e([v()],se.prototype,"activeAudioIcon",null),e([v()],se.prototype,"cameraHeadingThreshold",null),e([v()],se.prototype,"cameraPitchThreshold",null),e([v()],se.prototype,"canNavigateSequentially",null),e([v()],se.prototype,"currentBestFeature",null),e([v()],se.prototype,"currentCoverageVisible",null),e([v()],se.prototype,"dataCaptureEnabled",void 0),e([v()],se.prototype,"dataCaptureLayer",null),e([v()],se.prototype,"depthImageNotSupported",null),e([v()],se.prototype,"disabled",null),e([v()],se.prototype,"enhancementToolActive",null),e([v()],se.prototype,"features",null),e([v()],se.prototype,"imagePointsInView",null),e([v()],se.prototype,"galleryOpened",void 0),e([v()],se.prototype,"icon",null),e([v()],se.prototype,"imageEnhancementToolActive",void 0),e([v()],se.prototype,"videoEnhancementToolActive",void 0),e([v({readOnly:!0})],se.prototype,"imageGalleryEnabled",null),e([v()],se.prototype,"imageLocationToolActive",null),e([v()],se.prototype,"imageOverlaysOpened",void 0),e([v({readOnly:!0})],se.prototype,"invalidCameraHeading",null),e([v()],se.prototype,"isAdditionalCoverageVisible",null),e([v()],se.prototype,"isAdditionalPointSourcesVisible",null),e([v()],se.prototype,"mapImageConversionToolState",null),e([v()],se.prototype,"measureType",null),e([v()],se.prototype,"layer",null),e([v()],se.prototype,"navigationToolActive",void 0),e([v()],se.prototype,"navigationMode",null),e([te(C()),v({type:D})],se.prototype,"viewModel",void 0),e([v(),ie("esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer")],se.prototype,"messages",void 0),e([v(),ie("esri/core/t9n/Units")],se.prototype,"measurementUnitMessages",void 0),e([v(),ie("esri/t9n/common")],se.prototype,"messagesCommon",void 0),e([v(),ie("esri/widgets/Sketch/t9n/Sketch")],se.prototype,"messagesSketch",void 0),e([v()],se.prototype,"pixelMeasurementUnit",void 0),e([v()],se.prototype,"pixelAreaMeasurementUnit",void 0),e([v({readOnly:!0})],se.prototype,"popupEnabled",null),e([v()],se.prototype,"referencePoint",null),e([v()],se.prototype,"showCameraLocations",void 0),e([v()],se.prototype,"showMapFeatures",void 0),e([te(["create","delete","redo","undo","update"]),v({readOnly:!0})],se.prototype,"sketchViewModel",null),e([v()],se.prototype,"triangularMeasurementActive",null),e([v()],se.prototype,"videoLoaded",null),e([v()],se.prototype,"view",null),e([v({type:G,nonNullable:!0})],se.prototype,"visibleElements",void 0),e([v()],se.prototype,"determineWorkflowForFeature",null),e([v()],se.prototype,"updateFootprint",null),e([v()],se.prototype,"_activeMeasurementIcon",null),e([v()],se.prototype,"_activeMeasurementHeading",null),e([v()],se.prototype,"_imageOverlaysLoaderTask",void 0),e([v()],se.prototype,"_imageMeasurementToolsLoaderTask",void 0),e([v()],se.prototype,"_navigationSettingsLoaderTask",void 0),e([v()],se.prototype,"_measurementToggle",null),e([v()],se.prototype,"_renderRoot",null),e([v()],se.prototype,"_imageEnhancementTools",null),e([v()],se.prototype,"_videoEnhancementTools",null),e([v()],se.prototype,"_imageGalleryPanel",null),e([v()],se.prototype,"_imageGalleryContext",null),e([v()],se.prototype,"_imageOverlaysComponent",null),e([v()],se.prototype,"_imageOverlayMessages",null),e([v()],se.prototype,"_imageSketchToolsMessages",null),e([v()],se.prototype,"_imageViewer",null),e([v()],se.prototype,"_imageViewerTriangular",null),e([v()],se.prototype,"_videoViewer",null),e([v()],se.prototype,"_locationToggle",null),e([v()],se.prototype,"_messageBox",null),e([v()],se.prototype,"_navigationToolExpanded",void 0),e([v()],se.prototype,"_navigationTool",void 0),e([v()],se.prototype,"_panoramicVideoViewer",null),e([v()],se.prototype,"_panoramicViewer",null),e([v()],se.prototype,"_renderNavigation",null),e([v()],se.prototype,"_renderThumbnails",null),e([v()],se.prototype,"_sketchLoaderTask",void 0),se=e([p("esri.widgets.OrientedImageryViewer")],se);const ne=se;export{ne as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as e}from"tslib";import i from"../../Camera.js";import t from"../../Ground.js";import a from"../../Map.js";import r from"../../request.js";import{createTask as o}from"../../core/asyncUtils.js";import s from"../../core/Collection.js";import{deprecatedProperty as n,deprecatedFunction as h}from"../../core/deprecate.js";import m from"../../core/Error.js";import{EventedAccessor as d}from"../../core/Evented.js";import{JSONMap as l}from"../../core/jsonMap.js";import c from"../../core/Logger.js";import{rad2deg as g,deg2rad as p}from"../../core/mathUtils.js";import{throwIfAborted as u,isAbortError as y,waitTick as _}from"../../core/promiseUtils.js";import{watch as v,syncAndInitial as f,whenOnce as w,when as M}from"../../core/reactiveUtils.js";import{property as P,subclass as C}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as R}from"../../core/support/UpdatingHandles.js";import V from"../../geometry/SpatialReference.js";import z from"../../layers/GraphicsLayer.js";import{convertSphereVertexToPixelLocation as G}from"../../layers/orientedImagery/transformations/utils.js";import{isGraphic as S}from"../../support/guards.js";import H from"../../views/SceneView.js";import{logAndThrow as k,getMissingPropertyErrorName as O,getMissingPropertyErrorMessage as j}from"../OrientedImageryViewer/utils.js";import{defaultImageSphereCenter as b,defaultImageSphereSize as I,humanBinocularHFOV as x,maxPanoramicViewerHFOV as A,minPanoramicViewerHFOV as F}from"./constants.js";import L from"./PanoramicZoomConditions.js";import T from"./PanoramicZoomViewModel.js";import{meshToGraphic as N,findDiagonalFOV as E,loadRaster as W,loadPyramid as D,loadMeshes as Z,createImageSphere as U}from"./utils.js";import q from"./support/PanoramicMedia.js";import $ from"./support/PanoramicMediaCollection.js";import{enumeration as K}from"../../core/accessorSupport/decorators/enumeration.js";const X={default:"default",navigation:"navigation",fovConstraint:"fov-constraint",clickAction:"image-click-action"};let B=class extends d{constructor(e){super(e),this._panTask=null,this._startPosition=null,this._targetPosition=null,this.tileCache=new Set,this._graphics=new z({elevationInfo:{mode:"relative-to-ground"}}),this._imageGraphic=null,this.currentGraphics=new s,this.imagePyramid=null,this.imagePyramidLevel=-1,this._map=new a({ground:new t({opacity:0,navigationConstraint:null}),layers:new s([this._graphics])}),this._imageRenderer=new H({map:this._map,viewingMode:"local",camera:{position:b},environment:{atmosphereEnabled:!1,starsEnabled:!1,lighting:{type:"virtual"}},popupEnabled:!1,spatialReference:V.WebMercator,attributionVisible:!1,ui:{components:["zoom"]}}),this._loadController=null,this.zoomViewModel=new T({panoramicViewerViewModel:this,view:this._imageRenderer,panoramicZoomConditions:new L({})}),this.autoLoad=!1,this.clickAction="none",this.mediaCollection=new $,this.imageMeshDistance=I/2,this.imageSize=null,this.navigationManager=null,this.navigationViewModel=null,this.pitch=90,this.state="ready",this.updatingHandles=new R,this.yaw=0,this._addNavigationHandles=(e=!0)=>{this.imageRenderer.basemapTerrain.suspended=!0,this.removeHandles(X.navigation);const i=[this.imageRenderer.on("mouse-wheel",this._handleWheel),this.imageRenderer.on("drag",this._handleDrag),this.imageRenderer.on("key-down",e=>{const i=["+","-","Shift","_","=","ArrowUp","ArrowDown","ArrowRight","ArrowLeft"],t=e.key;i.includes(t)&&e.stopPropagation()})];e&&i.push(this.imageRenderer.on("double-click",this._handleDoubleClick)),this.addHandles(i,X.navigation)},this._addHFOVHandles=()=>{this.removeHandles(X.fovConstraint),this.addHandles(v(()=>[this.maxHFOV,this.minHFOV],()=>{this.zoomViewModel&&(this.zoomViewModel.panoramicZoomConditions=new L({view:this.imageRenderer,maxFOV:this.maxHFOV,minFOV:this.minHFOV}))},f),X.fovConstraint)},this._addZoomHandles=()=>{this.zoomViewModel=new T({view:this.imageRenderer,panoramicZoomConditions:new L({maxFOV:this.maxHFOV,minFOV:this.minHFOV}),panoramicViewerViewModel:this});const e=this.imageRenderer.ui.find("zoom");e&&(e.viewModel=this.zoomViewModel),this._addHFOVHandles()},this._cancelLoadWithController=()=>{this._loadController?.abort(),this._loadController=null},this._createPanTask=()=>{this._panTask?.abort(),this._panTask=o(async e=>{if(!this.imagePyramid)return;const{hfov:i,vfov:t,yaw:a,pitch:r}=this,o=this.imagePyramid.getTiles(this.imagePyramidLevel,a,r,i,t).filter(e=>!this.tileCache.has(`${e.level}/${e.row}/${e.column}`));if(!o?.length)return;const s=await Promise.all(o.map(async i=>await i.loadMesh({signal:e})));u(e);const n=s.map(N);n.forEach((e,i)=>{const t=o[i].key;e.attributes={key:t},this.tileCache.add(t)}),this.addManyGraphics(n),this.currentGraphics.addMany(n),this._panTask=null})},this._handleDoubleClick=e=>{e.stopPropagation(),e.native.ctrlKey?this._zoomOut():this._zoomIn()},this._handleDrag=e=>{e.stopPropagation();const{action:i,x:t,y:a}=e;switch(i){case"start":this._startPosition=this._targetPosition={x:t,y:a};break;case"update":this._targetPosition={x:t,y:a},this._updateCameraHeadingAndTilt()}},this._handleImageClick=e=>{if("image-loaded"===this.state&&this.imageRenderer.ready)switch(this.clickAction){case"emit":e.stopPropagation(),this.emit("click",e);break;case"hittest":e.stopPropagation(),e.defer(async()=>{const i=await this.imageRenderer.hitTest(e.screenPoint,{include:this._graphics}),t=Array.isArray(this._imageGraphic)?this._imageGraphic:[this._imageGraphic].filter(S);i.results=i.results.filter(e=>"graphic"===e.type&&!t.includes(e.graphic)),this.emit("hittest-response",i)});break;case"pixel-location":{if(e.stopPropagation(),!this.imageSize||!e.mapPoint)return void this.emit("pixel-location",null);const i=G(e.mapPoint,this.imageSize[0],this.imageSize[1]);this.emit("pixel-location",{...i,spatialReference:V.WebMercator});break}}},this._handleWheel=e=>{const i=e.deltaX??e.native.deltaX;e.stopPropagation(),i>0||e.deltaY>0?this._zoomOut():this._zoomIn()},this._loadNavigationManager=async()=>{if(!this.navigationManager||this.navigationManager?.destroyed){const e=await import("../OrientedImageryViewer/navigation/NavigationManagerPanoramic.js").then(e=>e.default);this.navigationManager=new e({viewModel:this.navigationViewModel})}return this.navigationManager},this._loadWithController=()=>{this._cancelLoadWithController(),this._loadController=new AbortController,this.loadMedia(this.mediaCollection.at(0),this._loadController)},this._zoomIn=()=>{this.zoomViewModel?.zoomIn()},this._zoomOut=()=>{this.zoomViewModel?.zoomOut()},this.addGraphic=(e,i)=>"image-loaded"===this.state&&!this._graphics.graphics.includes(e)&&(this._graphics.graphics.add(e,i),!0),this.addManyGraphics=e=>{if("image-loaded"!==this.state)return!1;const i=e.filter(e=>!this._graphics.graphics.includes(e));return this._graphics.graphics.addMany(i),!0},this.clearGraphics=()=>{this._graphics.graphics.removeAll()},this.clearImage=()=>{this.imageSize=null,this._removeImageSphere()},this.loadMedia=async(e,i)=>{this._removeImageSphere();const{meshOrMeshes:t,size:a,tileKeys:r}=await e.load(i),o=e.imagePyramid;if(u(i),o){const i=t;if(!i?.length)throw new m("panoramic-viewer:missing-tiles","No tiles were found in the pyramid",e.url);const a=i.map(N);a.forEach((e,i)=>{const t=r?.[i];e.attributes={key:t},this.tileCache.add(t)}),this._imageGraphic=a,this._graphics.addMany(this._imageGraphic)}else{const e=t;this._imageGraphic=N(e),this._graphics.add(this._imageGraphic)}this.state="image-loaded",w(()=>this.imageRenderer.ready,i).then(()=>{const{size:[e,i]}=this.imageRenderer;this.fov=E(x,e/i)}),this.imageSize=a},this.navigate=async(e,i)=>this.updatingHandles.addPromise(this.navigateInternal(e,i)),this.navigateInternal=async(e,i)=>{const t=await this._loadNavigationManager();return await t.navigate(e,i)},this.removeGraphic=e=>!("image-loaded"!==this.state||!this._graphics.graphics.includes(e))&&(this._graphics.remove(e),!0),this.removeManyGraphics=e=>{if("image-loaded"!==this.state)return!1;const i=e.filter(e=>this._graphics.graphics.includes(e));return this._graphics.removeMany(i),!0},this.restoreNavigationHandles=()=>{this._addNavigationHandles(!1)}}destroy(){this._imageRenderer.destroy()}initialize(){this.state="initialized",this.addHandles([M(()=>this.mediaCollection.length>0,()=>{this.imageSource&&this.autoLoad&&this._loadWithController()},f),v(()=>this.fov,()=>{this._reloadCamera()},f),v(()=>this.yaw,e=>{this.camera&&(this.camera.heading=e,this._reloadCamera())},f),v(()=>this.pitch,e=>{this.camera&&(this.camera.tilt=e,this._reloadCamera())},f),M(()=>this.imageRenderer.ready,()=>{this._addNavigationHandles(),this._addZoomHandles()},f),v(()=>this.clickAction,e=>{this.removeHandles(X.clickAction),"none"!==e&&this.addHandles(this.imageRenderer.on("click",this._handleImageClick))},f),v(()=>this.camera,(e,i)=>{this._panTask?.abort(),e?i?.tilt===e.tilt&&i.heading===e.heading||this._createPanTask():this._panTask=null}),this.currentGraphics.on("change",()=>{const e=Array.isArray(this._imageGraphic)?this._imageGraphic:[this._imageGraphic].filter(S),i=this.currentGraphics.map(e=>e.geometry.extent);e.forEach(e=>{e.visible=!0!==i.some(i=>i.intersects(e.geometry.extent))})})],X.default)}get camera(){return this.imageRenderer.destroying||this.imageRenderer.destroyed?null:this.imageRenderer.camera}set camera(e){!e||this.imageRenderer.destroying||this.imageRenderer.destroyed||(this.imageRenderer.camera=e.clone())}get distanceFactor(){return this.fov?1-5/this.fov:null}get fov(){return this.camera?.fov}set fov(e){Number.isFinite(e)&&this.zoomViewModel?.zoomTo(e)}get hfov(){if(!this.camera||!this.imageRenderer?.ready)return 0;const{fov:e}=this.camera,{size:[i,t]}=this.imageRenderer,a=i/t;return 2*g(Math.atan(Math.tan(p(e/2))*a/Math.sqrt(1+a**2)))}get imageRenderer(){return this._imageRenderer}set imageSource(e){n(c.getLogger(this),"imageSource",{replacement:"Please use mediaCollection instead",warnOnce:!0,version:"5.0"}),e&&this.mediaCollection.splice(0,0,new q({url:e}))}get imageSource(){return n(c.getLogger(this),"imageSource",{replacement:"Please use mediaCollection instead",warnOnce:!0,version:"5.0"}),0===this.mediaCollection.length?null:this.mediaCollection.at(0)?.url}get maxHFOV(){const{size:[e,i]}=this.imageRenderer;return this.imageRenderer.ready?E(A,e/i):A}get minHFOV(){const{size:[e,i]}=this.imageRenderer;return this.imageRenderer.ready?E(F,e/i):F}get updating(){return this.updatingHandles.updating}get vfov(){if(!this.camera||!this.imageRenderer?.ready)return 0;const{fov:e}=this.camera,{size:[i,t]}=this.imageRenderer,a=i/t;return 2*g(Math.atan(Math.tan(p(e/2))*(1/Math.sqrt(1+a**2))))}_clearImageSphere(){if(!this._imageGraphic)return;const e=Array.isArray(this._imageGraphic)?this._imageGraphic:[this._imageGraphic];this._graphics.removeMany(e),this._imageGraphic=null,e.forEach(e=>e.destroy()),this._graphics.removeMany(this.currentGraphics.toArray()),this.imagePyramid=null,this.imagePyramidLevel=-1,this.tileCache.clear()}async _loadImageInternal(e,i){let t;this.state="image-loading";try{t=(await r(e,{responseType:"image",...i})).data}catch(a){throw y(a)?this.state="image-load-aborted":this.state="image-load-error",a}return this._updateImageSphere(t,i)}async loadImageTiled(e,i){this._removeImageSphere(),this.state="image-loading";try{const t=await W(e,i),a=await D(t,i),r=a.getLowResolutionTiles(),o=await Z(r,i),{imageSize:s}=a;if(u(i),!r?.length)throw new m("panoramic-viewer:missing-tiles","No tiles were found in the pyramid",{imageSource:e});this.imagePyramid=a,this.imagePyramidLevel=a.maximumPyramidLevel;const n=o.map(N);n.forEach((e,i)=>{const t=r[i].key;e.attributes={key:t},this.tileCache.add(t)}),this._imageGraphic=n,this._graphics.addMany(this._imageGraphic),this.state="image-loaded",w(()=>this.imageRenderer.ready,i).then(()=>{const{size:[e,i]}=this.imageRenderer;this.fov=E(x,e/i)}),this.imageSize=s}catch(t){throw this.state=y(t)?"image-load-aborted":"image-load-error",t}}_reloadCamera(){this.camera=this.camera?.clone()}_removeImageSphere(){this._clearImageSphere(),this.state="ready",this.imageSize=null}_updateCameraHeadingAndTilt(){if(!this._startPosition||!this._targetPosition||!this.camera)return;const e=this.camera.heading+(this._startPosition.x-this._targetPosition.x)/this.imageRenderer.width*this.camera.fov;this.yaw=(e+360)%360;const i=this.camera.tilt-(this._startPosition.y-this._targetPosition.y)/this.imageRenderer.height*this.imageRenderer.camera.tilt;this.pitch=Math.min(179.5,Math.max(.5,i)),this._startPosition=this._targetPosition}async _updateImageSphere(e,i){return await _(i),this._imageGraphic=N(U({data:e})),this._graphics.add(this._imageGraphic),this.state="image-loaded",w(()=>this.imageRenderer.ready,i).then(()=>{const{size:[e,i]}=this.imageRenderer;this.fov=E(x,e/i)}),this.imageSize=[e.width,e.height],this._imageGraphic.geometry}async loadImage(e){return h(c.getLogger(this),"loadImage",{replacement:"loadImage is deprecated in favor of loadMedia",warnOnce:!0,version:"5.0"}),this._removeImageSphere(),this.imageSource?this._loadImageInternal(this.imageSource,e):k(this.declaredClass,new m(O("panoramic-viewer"),j("PanoramicViewerViewModel","imageSource")))}};e([P()],B.prototype,"_graphics",void 0),e([P()],B.prototype,"_imageGraphic",void 0),e([P({constructOnly:!0})],B.prototype,"currentGraphics",void 0),e([P()],B.prototype,"imagePyramid",void 0),e([P()],B.prototype,"imagePyramidLevel",void 0),e([P()],B.prototype,"_map",void 0),e([P()],B.prototype,"_imageRenderer",void 0),e([P()],B.prototype,"_loadController",void 0),e([P()],B.prototype,"zoomViewModel",void 0),e([P({type:Boolean})],B.prototype,"autoLoad",void 0),e([P({type:i})],B.prototype,"camera",null),e([K(new l({emit:"emit",hittest:"hittest",none:"none","pixel-location":"pixel-location"}))],B.prototype,"clickAction",void 0),e([P()],B.prototype,"distanceFactor",null),e([P({type:Number})],B.prototype,"fov",null),e([P({readOnly:!0})],B.prototype,"hfov",null),e([P({type:$})],B.prototype,"mediaCollection",void 0),e([P()],B.prototype,"imageMeshDistance",void 0),e([P({readOnly:!0})],B.prototype,"imageRenderer",null),e([P()],B.prototype,"imageSize",void 0),e([P()],B.prototype,"imageSource",null),e([P({readOnly:!0})],B.prototype,"maxHFOV",null),e([P({readOnly:!0})],B.prototype,"minHFOV",null),e([P()],B.prototype,"navigationViewModel",void 0),e([P({type:Number})],B.prototype,"pitch",void 0),e([P()],B.prototype,"state",void 0),e([P()],B.prototype,"updatingHandles",void 0),e([P()],B.prototype,"updating",null),e([P({readOnly:!0})],B.prototype,"vfov",null),e([P({type:Number})],B.prototype,"yaw",void 0),B=e([C("esri.widgets.PanoramicViewer.PanoramicViewerViewModel")],B);const Y=B;export{Y as default};
|
|
5
|
+
import{__decorate as e}from"tslib";import i from"../../Camera.js";import t from"../../Ground.js";import a from"../../Map.js";import r from"../../request.js";import{createTask as o}from"../../core/asyncUtils.js";import s from"../../core/Collection.js";import{deprecatedProperty as n,deprecatedFunction as h}from"../../core/deprecate.js";import m from"../../core/Error.js";import{EventedAccessor as d}from"../../core/Evented.js";import{JSONMap as l}from"../../core/jsonMap.js";import c from"../../core/Logger.js";import{rad2deg as g,deg2rad as p}from"../../core/mathUtils.js";import{throwIfAborted as u,isAbortError as y,waitTick as _}from"../../core/promiseUtils.js";import{watch as v,syncAndInitial as f,when as w,whenOnce as M}from"../../core/reactiveUtils.js";import{property as P,subclass as C}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as R}from"../../core/support/UpdatingHandles.js";import V from"../../geometry/SpatialReference.js";import z from"../../layers/GraphicsLayer.js";import{convertSphereVertexToPixelLocation as G}from"../../layers/orientedImagery/transformations/utils.js";import{isGraphic as S}from"../../support/guards.js";import H from"../../views/SceneView.js";import{logAndThrow as k,getMissingPropertyErrorName as O,getMissingPropertyErrorMessage as j}from"../OrientedImageryViewer/utils.js";import{defaultImageSphereCenter as b,defaultImageSphereSize as I,maxPanoramicViewerHFOV as x,minPanoramicViewerHFOV as A,humanBinocularHFOV as L}from"./constants.js";import F from"./PanoramicZoomConditions.js";import T from"./PanoramicZoomViewModel.js";import{meshToGraphic as N,findDiagonalFOV as E,loadRaster as W,loadPyramid as D,loadMeshes as Z,createImageSphere as U}from"./utils.js";import q from"./support/PanoramicMedia.js";import $ from"./support/PanoramicMediaCollection.js";import{enumeration as K}from"../../core/accessorSupport/decorators/enumeration.js";const X={default:"default",navigation:"navigation",fovConstraint:"fov-constraint",clickAction:"image-click-action"};let B=class extends d{constructor(e){super(e),this._panTask=null,this._startPosition=null,this._targetPosition=null,this.tileCache=new Set,this._graphics=new z({elevationInfo:{mode:"relative-to-ground"}}),this._imageGraphic=null,this.currentGraphics=new s,this.imagePyramid=null,this.imagePyramidLevel=-1,this._map=new a({ground:new t({opacity:0,navigationConstraint:null}),layers:new s([this._graphics])}),this._imageRenderer=new H({map:this._map,viewingMode:"local",camera:{position:b},environment:{atmosphereEnabled:!1,starsEnabled:!1,lighting:{type:"virtual"}},popupEnabled:!1,spatialReference:V.WebMercator,attributionVisible:!1,ui:{components:["zoom"]}}),this._loadController=null,this.zoomViewModel=new T({panoramicViewerViewModel:this,view:this._imageRenderer,panoramicZoomConditions:new F({})}),this.autoLoad=!1,this.clickAction="none",this.mediaCollection=new $,this.imageMeshDistance=I/2,this.imageSize=null,this.navigationManager=null,this.navigationViewModel=null,this.pitch=90,this.state="ready",this.updatingHandles=new R,this.yaw=0,this._addNavigationHandles=(e=!0)=>{this.imageRenderer.basemapTerrain.suspended=!0,this.removeHandles(X.navigation);const i=[this.imageRenderer.on("mouse-wheel",this._handleWheel),this.imageRenderer.on("drag",this._handleDrag),this.imageRenderer.on("key-down",e=>{const i=["+","-","Shift","_","=","ArrowUp","ArrowDown","ArrowRight","ArrowLeft"],t=e.key;i.includes(t)&&e.stopPropagation()})];e&&i.push(this.imageRenderer.on("double-click",this._handleDoubleClick)),this.addHandles(i,X.navigation)},this._addHFOVHandles=()=>{this.removeHandles(X.fovConstraint),this.addHandles(v(()=>[this.maxHFOV,this.minHFOV],()=>{this.zoomViewModel&&(this.zoomViewModel.panoramicZoomConditions=new F({view:this.imageRenderer,maxFOV:this.maxHFOV,minFOV:this.minHFOV}))},f),X.fovConstraint)},this._addZoomHandles=()=>{this.zoomViewModel=new T({view:this.imageRenderer,panoramicZoomConditions:new F({maxFOV:this.maxHFOV,minFOV:this.minHFOV}),panoramicViewerViewModel:this});const e=this.imageRenderer.ui.find("zoom");e&&(e.viewModel=this.zoomViewModel),this._addHFOVHandles()},this._cancelLoadWithController=()=>{this._loadController?.abort(),this._loadController=null},this._createPanTask=()=>{this._panTask?.abort(),this._panTask=o(async e=>{if(!this.imagePyramid)return;const{hfov:i,vfov:t,yaw:a,pitch:r}=this,o=this.imagePyramid.getTiles(this.imagePyramidLevel,a,r,i,t).filter(e=>!this.tileCache.has(`${e.level}/${e.row}/${e.column}`));if(!o?.length)return;const s=await Promise.all(o.map(async i=>await i.loadMesh({signal:e})));u(e);const n=s.map(N);n.forEach((e,i)=>{const t=o[i].key;e.attributes={key:t},this.tileCache.add(t)}),this.addManyGraphics(n),this.currentGraphics.addMany(n),this._panTask=null})},this._handleDoubleClick=e=>{e.stopPropagation(),e.native.ctrlKey?this._zoomOut():this._zoomIn()},this._handleDrag=e=>{e.stopPropagation();const{action:i,x:t,y:a}=e;switch(i){case"start":this._startPosition=this._targetPosition={x:t,y:a};break;case"update":this._targetPosition={x:t,y:a},this._updateCameraHeadingAndTilt()}},this._handleImageClick=e=>{if("image-loaded"===this.state&&this.imageRenderer.ready)switch(this.clickAction){case"emit":e.stopPropagation(),this.emit("click",e);break;case"hittest":e.stopPropagation(),e.defer(async()=>{const i=await this.imageRenderer.hitTest(e.screenPoint,{include:this._graphics}),t=Array.isArray(this._imageGraphic)?this._imageGraphic:[this._imageGraphic].filter(S);i.results=i.results.filter(e=>"graphic"===e.type&&!t.includes(e.graphic)),this.emit("hittest-response",i)});break;case"pixel-location":{if(e.stopPropagation(),!this.imageSize||!e.mapPoint)return void this.emit("pixel-location",null);const i=G(e.mapPoint,this.imageSize[0],this.imageSize[1]);this.emit("pixel-location",{...i,spatialReference:V.WebMercator});break}}},this._handleWheel=e=>{const i=e.deltaX??e.native.deltaX;e.stopPropagation(),i>0||e.deltaY>0?this._zoomOut():this._zoomIn()},this._loadNavigationManager=async()=>{if(!this.navigationManager||this.navigationManager?.destroyed){const e=await import("../OrientedImageryViewer/navigation/NavigationManagerPanoramic.js").then(e=>e.default);this.navigationManager=new e({viewModel:this.navigationViewModel})}return this.navigationManager},this._loadWithController=()=>{this._cancelLoadWithController(),this._loadController=new AbortController,this.loadMedia(this.mediaCollection.at(0),this._loadController)},this._zoomIn=()=>{this.zoomViewModel?.zoomIn()},this._zoomOut=()=>{this.zoomViewModel?.zoomOut()},this.addGraphic=(e,i)=>"image-loaded"===this.state&&!this._graphics.graphics.includes(e)&&(this._graphics.graphics.add(e,i),!0),this.addManyGraphics=e=>{if("image-loaded"!==this.state)return!1;const i=e.filter(e=>!this._graphics.graphics.includes(e));return this._graphics.graphics.addMany(i),!0},this.clearGraphics=()=>{this._graphics.graphics.removeAll()},this.clearImage=()=>{this.imageSize=null,this._removeImageSphere()},this.navigate=async(e,i)=>this.updatingHandles.addPromise(this.navigateInternal(e,i)),this.navigateInternal=async(e,i)=>{const t=await this._loadNavigationManager();return await t.navigate(e,i)},this.removeGraphic=e=>!("image-loaded"!==this.state||!this._graphics.graphics.includes(e))&&(this._graphics.remove(e),!0),this.removeManyGraphics=e=>{if("image-loaded"!==this.state)return!1;const i=e.filter(e=>this._graphics.graphics.includes(e));return this._graphics.removeMany(i),!0},this.restoreNavigationHandles=()=>{this._addNavigationHandles(!1)}}destroy(){this._imageRenderer.destroy()}initialize(){this.state="initialized",this.addHandles([w(()=>this.mediaCollection.length>0,()=>{this.imageSource&&this.autoLoad&&this._loadWithController()},f),v(()=>this.fov,()=>{this._reloadCamera()},f),v(()=>this.yaw,e=>{this.camera&&(this.camera.heading=e,this._reloadCamera())},f),v(()=>this.pitch,e=>{this.camera&&(this.camera.tilt=e,this._reloadCamera())},f),w(()=>this.imageRenderer.ready,()=>{this._addNavigationHandles(),this._addZoomHandles()},f),v(()=>this.clickAction,e=>{this.removeHandles(X.clickAction),"none"!==e&&this.addHandles(this.imageRenderer.on("click",this._handleImageClick))},f),v(()=>this.camera,(e,i)=>{this._panTask?.abort(),e?i?.tilt===e.tilt&&i.heading===e.heading||this._createPanTask():this._panTask=null}),this.currentGraphics.on("change",()=>{const e=Array.isArray(this._imageGraphic)?this._imageGraphic:[this._imageGraphic].filter(S),i=this.currentGraphics.map(e=>e.geometry.extent);e.forEach(e=>{e.visible=!0!==i.some(i=>i.intersects(e.geometry.extent))})})],X.default)}get camera(){return this.imageRenderer.destroying||this.imageRenderer.destroyed?null:this.imageRenderer.camera}set camera(e){!e||this.imageRenderer.destroying||this.imageRenderer.destroyed||(this.imageRenderer.camera=e.clone())}get distanceFactor(){return this.fov?1-5/this.fov:null}get fov(){return this.camera?.fov}set fov(e){Number.isFinite(e)&&this.zoomViewModel?.zoomTo(e)}get hfov(){if(!this.camera||!this.imageRenderer?.ready)return 0;const{fov:e}=this.camera,{size:[i,t]}=this.imageRenderer,a=i/t;return 2*g(Math.atan(Math.tan(p(e/2))*a/Math.sqrt(1+a**2)))}get imageRenderer(){return this._imageRenderer}set imageSource(e){n(c.getLogger(this),"imageSource",{replacement:"Please use mediaCollection instead",warnOnce:!0,version:"5.0"}),e&&this.mediaCollection.splice(0,0,new q({url:e}))}get imageSource(){return n(c.getLogger(this),"imageSource",{replacement:"Please use mediaCollection instead",warnOnce:!0,version:"5.0"}),0===this.mediaCollection.length?null:this.mediaCollection.at(0)?.url}get maxHFOV(){const{size:[e,i]}=this.imageRenderer;return this.imageRenderer.ready?E(x,e/i):x}get minHFOV(){const{size:[e,i]}=this.imageRenderer;return this.imageRenderer.ready?E(A,e/i):A}get updating(){return this.updatingHandles.updating}get vfov(){if(!this.camera||!this.imageRenderer?.ready)return 0;const{fov:e}=this.camera,{size:[i,t]}=this.imageRenderer,a=i/t;return 2*g(Math.atan(Math.tan(p(e/2))*(1/Math.sqrt(1+a**2))))}_clearImageSphere(){if(!this._imageGraphic)return;const e=Array.isArray(this._imageGraphic)?this._imageGraphic:[this._imageGraphic];this._graphics.removeMany(e),this._imageGraphic=null,e.forEach(e=>e.destroy()),this._graphics.removeMany(this.currentGraphics.toArray()),this.imagePyramid=null,this.imagePyramidLevel=-1,this.tileCache.clear()}async _loadImageInternal(e,i){let t;this.state="image-loading";try{t=(await r(e,{responseType:"image",...i})).data}catch(a){throw y(a)?this.state="image-load-aborted":this.state="image-load-error",a}return this._updateImageSphere(t,i)}async loadImageTiled(e,i){this._removeImageSphere(),this.state="image-loading";try{const t=await W(e,i),a=await D(t,i),r=a.getLowResolutionTiles(),o=await Z(r,i),{imageSize:s}=a;if(u(i),!r?.length)throw new m("panoramic-viewer:missing-tiles","No tiles were found in the pyramid",{imageSource:e});this.imagePyramid=a,this.imagePyramidLevel=a.maximumPyramidLevel;const n=o.map(N);n.forEach((e,i)=>{const t=r[i].key;e.attributes={key:t},this.tileCache.add(t)}),this._imageGraphic=n,this._graphics.addMany(this._imageGraphic),this.state="image-loaded",M(()=>this.imageRenderer.ready,i).then(()=>{const{size:[e,i]}=this.imageRenderer;this.fov=E(L,e/i)}),this.imageSize=s}catch(t){throw this.state=y(t)?"image-load-aborted":"image-load-error",t}}_reloadCamera(){this.camera=this.camera?.clone()}_removeImageSphere(){this._clearImageSphere(),this.state="ready",this.imageSize=null}_updateCameraHeadingAndTilt(){if(!this._startPosition||!this._targetPosition||!this.camera)return;const e=this.camera.heading+(this._startPosition.x-this._targetPosition.x)/this.imageRenderer.width*this.camera.fov;this.yaw=(e+360)%360;const i=this.camera.tilt-(this._startPosition.y-this._targetPosition.y)/this.imageRenderer.height*this.imageRenderer.camera.tilt;this.pitch=Math.min(179.5,Math.max(.5,i)),this._startPosition=this._targetPosition}async _updateImageSphere(e,i){return await _(i),this._imageGraphic=N(U({data:e})),this._graphics.add(this._imageGraphic),this.state="image-loaded",M(()=>this.imageRenderer.ready,i).then(()=>{const{size:[e,i]}=this.imageRenderer;this.fov=E(L,e/i)}),this.imageSize=[e.width,e.height],this._imageGraphic.geometry}async loadImage(e){return h(c.getLogger(this),"loadImage",{replacement:"loadImage is deprecated in favor of loadMedia",warnOnce:!0,version:"5.0"}),this._removeImageSphere(),this.imageSource?this._loadImageInternal(this.imageSource,e):k(this.declaredClass,new m(O("panoramic-viewer"),j("PanoramicViewerViewModel","imageSource")))}async loadMedia(e,i){this._removeImageSphere();const{meshOrMeshes:t,size:a,tileKeys:r}=await e.load(i),o=e.imagePyramid;if(u(i),o){this.imagePyramid=o,this.imagePyramidLevel=o.maximumPyramidLevel;const i=t;if(!i?.length)throw new m("panoramic-viewer:missing-tiles","No tiles were found in the pyramid",e.url);const a=i.map(N);a.forEach((e,i)=>{const t=r?.[i];e.attributes={key:t},this.tileCache.add(t)}),this._imageGraphic=a,this._graphics.addMany(this._imageGraphic)}else{const e=t;this._imageGraphic=N(e),this._graphics.add(this._imageGraphic)}this.state="image-loaded",M(()=>this.imageRenderer.ready,i).then(()=>{const{size:[e,i]}=this.imageRenderer;this.fov=E(L,e/i)}),this.imageSize=a}};e([P()],B.prototype,"_graphics",void 0),e([P()],B.prototype,"_imageGraphic",void 0),e([P({constructOnly:!0})],B.prototype,"currentGraphics",void 0),e([P()],B.prototype,"imagePyramid",void 0),e([P()],B.prototype,"imagePyramidLevel",void 0),e([P()],B.prototype,"_map",void 0),e([P()],B.prototype,"_imageRenderer",void 0),e([P()],B.prototype,"_loadController",void 0),e([P()],B.prototype,"zoomViewModel",void 0),e([P({type:Boolean})],B.prototype,"autoLoad",void 0),e([P({type:i})],B.prototype,"camera",null),e([K(new l({emit:"emit",hittest:"hittest",none:"none","pixel-location":"pixel-location"}))],B.prototype,"clickAction",void 0),e([P()],B.prototype,"distanceFactor",null),e([P({type:Number})],B.prototype,"fov",null),e([P({readOnly:!0})],B.prototype,"hfov",null),e([P({type:$})],B.prototype,"mediaCollection",void 0),e([P()],B.prototype,"imageMeshDistance",void 0),e([P({readOnly:!0})],B.prototype,"imageRenderer",null),e([P()],B.prototype,"imageSize",void 0),e([P()],B.prototype,"imageSource",null),e([P({readOnly:!0})],B.prototype,"maxHFOV",null),e([P({readOnly:!0})],B.prototype,"minHFOV",null),e([P()],B.prototype,"navigationViewModel",void 0),e([P({type:Number})],B.prototype,"pitch",void 0),e([P()],B.prototype,"state",void 0),e([P()],B.prototype,"updatingHandles",void 0),e([P()],B.prototype,"updating",null),e([P({readOnly:!0})],B.prototype,"vfov",null),e([P({type:Number})],B.prototype,"yaw",void 0),B=e([C("esri.widgets.PanoramicViewer.PanoramicViewerViewModel")],B);const Y=B;export{Y as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as i}from"tslib";import{on as
|
|
5
|
+
import{__decorate as i}from"tslib";import{on as t}from"../../../core/events.js";import{rad2deg as o}from"../../../core/mathUtils.js";import{EsriPromise as e}from"../../../core/Promise.js";import{throwIfAborted as s,createResolver as r,onAbort as a}from"../../../core/promiseUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import{whenVideoPlayable as l}from"../../../layers/support/videoUtils.js";import{fixedImageSize as m}from"../../OrientedImageryViewer/constants.js";import c from"./PanoramicMediaError.js";const d=0,p=0,u=0,z=new Set(["JPG","JPEG","TIFF","TIF","MRF"]),y=new Set(["MRF","TIFF","TIF"]);let w=class extends e{constructor(i){super(i),this._size=[0,0],this._cache=null,this.autoLoad=!1,this.cameraHeading=null,this.extension=null,this.imagePyramid=null,this.type="image",this.uiStrings={}}destroy(){this._cache=null}get horizonPitch(){const{matrix:i}=this;return i?o(Math.asin(-i[6])):d}get horizonRoll(){const{matrix:i}=this;return i?o(Math.atan(i[7]/i[8])):u}get horizonYaw(){const{matrix:i,cameraHeading:t}=this;return i?o(Math.atan2(i[3],i[0])):t?-t:p}get size(){return this._size}async load(i){const{guessExtensionFromURI:t}=await import("../../OrientedImageryViewer/support/urlUtils.js");if(s(i),"video"===this.type)return this.loadVideoMesh(i);let o=this.extension;if(o||(o=t(this.url)),!o||!z.has(o))throw new c("unsupported-format",this.uiStrings["unsupported-format"]??"Unsupported image format: {extension}",{extension:o});return y.has(o)?this.loadOptimizedImageMesh(i):this.loadImageMesh(i)}async loadOptimizedImageMesh(i){const{loadMeshes:t,loadPyramid:o,loadRaster:e}=await import("../utils.js"),r=await e(this.url,i);s(i),this.imagePyramid=await o(r,i),s(i);const a=this.imagePyramid.getLowResolutionTiles(),h=await t(a,i);return s(i),this._size=this.imagePyramid.imageSize,{meshOrMeshes:h,size:this._size,tileKeys:a?.map(i=>i.key)}}async loadVideoMesh(i){const{createImageSphere:t}=await import("../utils.js");if(s(i),this._cache){const o=await t({data:this._cache,horizonPitch:this.horizonPitch,horizonRoll:this.horizonRoll,horizonYaw:this.horizonYaw}).load(i);return s(i),{meshOrMeshes:o,size:this._size}}const o=await this._resolveMedia(i);s(i),this._cache=o.media,this._size=[...m];const e=await t({data:this._cache,horizonPitch:this.horizonPitch,horizonRoll:this.horizonRoll,horizonYaw:this.horizonYaw}).load(i);return s(i),{meshOrMeshes:e,size:this._size}}async loadImageMesh(i){const{createImageSphere:t}=await import("../utils.js");if(s(i),this._cache){const o=await t({data:this._cache,horizonPitch:this.horizonPitch,horizonRoll:this.horizonRoll,horizonYaw:this.horizonYaw}).load(i);return s(i),{meshOrMeshes:o,size:this._size}}const o=await this._resolveMedia(i);s(i),this._cache=o.media;const e=o.mesh;return this._size=[o.media.width,o.media.height],{meshOrMeshes:e,size:this._size}}async _resolveMedia(i){const o=r(),e=a(i?.signal,o.resolve),h="video"===this.type?document.createElement("video"):document.createElement("img");h.crossOrigin="anonymous",h.src=this.url;let n=null;const m="video"===this.type?l(h,this.addHandles):await new Promise((i,o)=>{n=[t(h,"error",i=>{o(i)}),t(h,"load",i)]}).finally(()=>{n?.forEach(i=>i.remove()),n=null}),d=Promise.race([m,o.promise]);this.addResolvingPromise(d);try{await d}finally{e?.remove()}s(i);const p=h;if(!p)throw new c("unknown","Could not load media",{url:this.url});const{createImageSphere:u}=await import("../utils.js");s(i);const z=await u({data:h,horizonPitch:this.horizonPitch,horizonRoll:this.horizonRoll,horizonYaw:this.horizonYaw}).load(i);return s(i),{media:p,mesh:z}}};i([h()],w.prototype,"_size",void 0),i([h()],w.prototype,"autoLoad",void 0),i([h()],w.prototype,"cameraHeading",void 0),i([h()],w.prototype,"extension",void 0),i([h()],w.prototype,"horizonPitch",null),i([h()],w.prototype,"horizonRoll",null),i([h()],w.prototype,"horizonYaw",null),i([h()],w.prototype,"id",void 0),i([h()],w.prototype,"imagePyramid",void 0),i([h()],w.prototype,"matrix",void 0),i([h()],w.prototype,"size",null),i([h()],w.prototype,"type",void 0),i([h()],w.prototype,"uiStrings",void 0),i([h()],w.prototype,"url",void 0),w=i([n("esri.widgets.PanoramicViewer.support.PanoramicMedia")],w);const g=w;export{g as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../Graphic.js";import r from"../../request.js";import e from"../../core/Collection.js";import o from"../../core/Error.js";import{rad2deg as n,deg2rad as s}from"../../core/mathUtils.js";import{throwIfAborted as i}from"../../core/promiseUtils.js";import a from"../../geometry/Mesh.js";import m from"../../geometry/support/MeshMaterial.js";import c from"../../geometry/support/MeshTexture.js";import u from"../../symbols/FillSymbol3DLayer.js";import l from"../../symbols/MeshSymbol3D.js";import{defaultImageSphereCenter as p,defaultImageSphereSize as f}from"./constants.js";import{
|
|
5
|
+
import t from"../../Graphic.js";import r from"../../request.js";import e from"../../core/Collection.js";import o from"../../core/Error.js";import{rad2deg as n,deg2rad as s}from"../../core/mathUtils.js";import{throwIfAborted as i}from"../../core/promiseUtils.js";import a from"../../geometry/Mesh.js";import m from"../../geometry/support/MeshMaterial.js";import c from"../../geometry/support/MeshTexture.js";import u from"../../symbols/FillSymbol3DLayer.js";import l from"../../symbols/MeshSymbol3D.js";import{defaultImageSphereCenter as p,defaultImageSphereSize as f}from"./constants.js";import{loadPanoramicTilePyramid as h,loadRasterFactory as y}from"./support/importUtils.js";function w({data:t,center:r=p,size:e=f,horizonPitch:o=0,horizonYaw:n=0,horizonRoll:s=0}){const i=r.clone();i.z=-e/2;const u=a.createSphere(i,{size:e,densificationFactor:2,vertexSpace:"georeferenced",material:new m({colorTexture:new c({data:t})})});if(u.components[0].trustSourceNormals=!0,u.vertexAttributes.uv){const t=u.vertexAttributes.uv.length??0;for(let r=0;r<t;r++)u.vertexAttributes.uv[2*r+0]=1-u.vertexAttributes.uv[2*r+0]}return u.rotate(o,s,n,{origin:u.extent.center}),u.centerAt(i),u}function j(r){return new t({geometry:r,symbol:new l({symbolLayers:new e([new u])})})}function d(t,r){return 2*n(Math.atan(Math.tan(s(t/2))*Math.sqrt((1/r)**2+1)))}async function g(t,r){const e=await y(),o=await e.open({url:t,ioConfig:{skipExtensions:["jgw","aux.xml"],skipMapInfo:!0},...r});return i(r),x(o,{url:t})}const x=(t,r)=>{if(!t)throw new o("panoramic-viewer:missing-raster","Raster data could not be loaded",r);return t};async function b(t,r){const e=await h();return i(r),new e({raster:t})}async function v(t,r){return t?.length?await Promise.all(t.map(t=>t.loadMesh(r))):[]}async function M(t,e){try{const o=await r(t,{...e,method:"head"});return i(e),o?.getHeader?.("Content-Type")}catch{return null}}export{w as createImageSphere,d as findDiagonalFOV,M as getContentType,v as loadMeshes,b as loadPyramid,g as loadRaster,j as meshToGraphic};
|