@arcgis/core 4.34.0-next.94 → 4.34.0-next.96

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.
Files changed (766) hide show
  1. package/analysis/ElevationProfileAnalysis.js +1 -1
  2. package/analysis/VolumeMeasurement/VolumeMeasurementCutFillOptions.js +1 -1
  3. package/analysis/VolumeMeasurement/volumeMeasurementConfiguration.js +5 -0
  4. package/analysis/VolumeMeasurementAnalysis.js +1 -1
  5. package/analysis/featureReferenceUtils.js +1 -1
  6. package/applications/Components/featureUtils.d.ts +1 -0
  7. package/applications/Components/featureUtils.js +1 -1
  8. package/applications/KnowledgeStudio/resourceSerializationUtils.js +1 -1
  9. package/assets/esri/core/workers/RemoteClient.js +1 -1
  10. package/assets/esri/core/workers/chunks/{57c08ccb75e3135978d1.js → 0086a09441627842d34a.js} +1 -1
  11. package/assets/esri/core/workers/chunks/02bc183e30e3392bb76d.js +1 -0
  12. package/assets/esri/core/workers/chunks/{155dcbd957f8787a45c3.js → 05eee334d58a0b9f6316.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{0f37204f86d2997a2811.js → 06e60fc7715d08ede59d.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{94ddf029698991d853b9.js → 0811ac64d08454460fb1.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{6391ce002fbde9f27a77.js → 081a7082dc281ca7662a.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{3c3b1dc95f03082e4d5b.js → 083f1c2fd0b59a0bf4c3.js} +1 -1
  17. package/assets/esri/core/workers/chunks/097e5deb51ee7e25e654.js +1 -0
  18. package/assets/esri/core/workers/chunks/{c6cae8471c5d4ae40c65.js → 145c6a7cdcc9893efb27.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{0cfded1acf92f89a13cb.js → 14ace5dc4b8984212a57.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{39a5863355cccaabd2d6.js → 1762ff76350065750c75.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{a98b284b147258629947.js → 188272af9a6470ccfe31.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{ce8f56cf371812b57a46.js → 19699769deff862e29ce.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{ce2fcaa21d6efcdf4da5.js → 1b85967d1178956ee36b.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{bf9d09493fd849ea69fd.js → 1fd459234917a51b6ae1.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{0aaaf4d1c4a5d284216e.js → 22bb877b85ae250d7819.js} +1 -1
  26. package/assets/esri/core/workers/chunks/24b97ba933324aea6a07.js +1 -0
  27. package/assets/esri/core/workers/chunks/{e5d974593043d5e2b502.js → 2795a2817ebe3298c350.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{71fef0a33b7ed9456e47.js → 28a5f8978817e0471a2a.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{07a7ca89ef2ca4fc090b.js → 2a30afa043e3f88655d9.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{41f275401e1cde7eee20.js → 2a8b75d2445680571759.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{6b208f5d423da64c8559.js → 2a900a632a1231deb713.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{0e5e565df6ec71445f2e.js → 2bbe8277578b033f92d4.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{77e611724a499d36eacc.js → 2c72e185b780bbbb1c9f.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{38d874d7f815f5329420.js → 2ca8b0c1ca399fd5dc2f.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{c799f1c03cb22ef52f5f.js → 2d51e9c9b73301b6879c.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{cd0c222a36caa7f80860.js → 2f9e79a67eae746d55d3.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{0856cd281efd71bfe3c4.js → 3116b35a92cc0afd9fd3.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{e153b61560a7a869db63.js → 319c3f46f2afb8f3e5a9.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{b8f55ee77ab6ea4c289e.js → 326a76a4e80269d4029d.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{28bb6896c5fd353ca5e9.js → 3367b8565226646decec.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{8513c9282c44bb0a736e.js → 3495162f4608f5205d87.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{c38360d912f256519e06.js → 3496e025e48cf580250d.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{4753793daf0b7ff8b5ff.js → 35255e2b980f650490d8.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{d2df6e685d6cffc5f486.js → 37d05d9796917c3d4b7a.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{7b17f52019762aa21af8.js → 3815ffa13e7b439bca6e.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{de34c21d3e6913befe5a.js → 3b65d6a78fbffca37fbd.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{2698f656405876f4bd20.js → 3ccdce156b906574bd29.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{0ceb68ff73e5d39e837a.js → 3ffdf73aaecc42448f8a.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{68f5a2d2666636c3f807.js → 40b81d1c2d53cf598b8e.js} +1 -1
  50. package/assets/esri/core/workers/chunks/4239572007ecfac49dc1.js +1 -0
  51. package/assets/esri/core/workers/chunks/{f3284d4e0d41efb0b4a0.js → 441ead5bce80f639934e.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{97eb2cfc1f036feea9a9.js → 44c3b5a507814103f4b4.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{6f29951f5a2da068b257.js → 456161a323be7d640c61.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{b18887a6dc86f0c8324a.js → 48646f3d95a3f2b17e78.js} +1 -1
  55. package/assets/esri/core/workers/chunks/49571d6875de1f2e7e25.js +33 -0
  56. package/assets/esri/core/workers/chunks/{1bbc0dfad4cd72a1c42b.js → 4a2bf3c8da24abd8b9e2.js} +6 -6
  57. package/assets/esri/core/workers/chunks/4b13749b74059a7837d2.js +1 -0
  58. package/assets/esri/core/workers/chunks/{c8e4fe0e3b109eb80e8e.js → 4b83b45df0c4005d078d.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{896c7d137bfd7a8fa0bc.js → 4f01be74dd26e639330f.js} +1 -1
  60. package/assets/esri/core/workers/chunks/{b5c829e904bc9cb5347d.js → 50a5caa96c111dda5c60.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{98381404f2d99a1f9341.js → 50e1c63d0b6196dd365e.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{899f493412acd5a5d91f.js → 5132ca68e8c7af111a47.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{d08b80583a23ba253c7e.js → 56916e56c20465428dd4.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{bbdadced49446c907361.js → 578789c040846ea3759b.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{f62717338075df626eda.js → 5a527a47285a5995cff9.js} +1 -1
  66. package/assets/esri/core/workers/chunks/5cb92abb1f0f38bd0eab.js +1 -0
  67. package/assets/esri/core/workers/chunks/{56edb55b53779e7fd31e.js → 5d2e5774768d8f290343.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{6e5175b43220d6692263.js → 5d3661d1fe46dd29aae9.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{0652d7e525d99e39c957.js → 5fb2ce028b371b3a8acb.js} +1 -1
  70. package/assets/esri/core/workers/chunks/63019a7eb5222dc5e420.js +1 -0
  71. package/assets/esri/core/workers/chunks/{71c6c0b26253c4ca1b68.js → 630efe10c871425b6a95.js} +1 -1
  72. package/assets/esri/core/workers/chunks/64629ddcf008349eaf41.js +1 -0
  73. package/assets/esri/core/workers/chunks/{61e8e159f1f336569b27.js → 65111858957f43eacd8c.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{0427f66b56ec6601deb0.js → 6ac90d88e5f931b1a003.js} +1 -1
  75. package/assets/esri/core/workers/chunks/6c842b955fdd40b39914.js +1 -0
  76. package/assets/esri/core/workers/chunks/{08b0fc6bfe9640ee2525.js → 6cd379bb66dc4cf5d2bf.js} +1 -1
  77. package/assets/esri/core/workers/chunks/6ec77a8142fbfa805b5a.js +1 -0
  78. package/assets/esri/core/workers/chunks/{541bffd61006d0e36166.js → 6f4bd0ee85e7e5a74340.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{648c91a9822bc9d6ee47.js → 701a1835684cf815bcb7.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{f71b76c9506178124fa3.js → 70af1b5b3d2f3f395441.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{d7adef4093ce19ad356d.js → 72846fb9c87c6642daf0.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{f88fe2e8fbc763bdc940.js → 73c1d43070b4fe1e5c1e.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{cab2a1382bdd32bb34d8.js → 7421f9575487cdc9e28e.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{a845c68e76382a73da5e.js → 7633537dc0c65d655baf.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{82e0d22619dc26920ca9.js → 7698f4f4471b6e1c12ef.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{9a0b9d931c1a29e81475.js → 76e444bd625cf3d35877.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{b265472ac3f949a7f40c.js → 773d76253588bcf14eaa.js} +1 -1
  88. package/assets/esri/core/workers/chunks/{77705d0c7c17bd46d81a.js → 7810f870d71f80ca4f41.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{56de25a6fe659a5b5c2b.js → 78b35a19332e58c8c279.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{e4833b718a813a8d125b.js → 79012b873d2b7786be77.js} +1 -1
  91. package/assets/esri/core/workers/chunks/7a6a96edc892d7060b7d.js +1 -0
  92. package/assets/esri/core/workers/chunks/7b3ff47cdbb6af38530d.js +1 -0
  93. package/assets/esri/core/workers/chunks/{04dbdaa63c950f32b8f0.js → 7e8f7fa884d6d41ebae2.js} +1 -1
  94. package/assets/esri/core/workers/chunks/{48133effac2eacc2196e.js → 7fa324900c147ba51019.js} +1 -1
  95. package/assets/esri/core/workers/chunks/80c492f8fdab7698596a.js +1 -0
  96. package/assets/esri/core/workers/chunks/81bbe5251ed13c0d91cc.js +1 -0
  97. package/assets/esri/core/workers/chunks/{0037abf0a82d1ed32e91.js → 8215015f11221a354273.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{cb6a9b43406f4fbe10b2.js → 82f1cd3896401c85df35.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{2bb61f80473b495163e3.js → 83ab8c8bc9e6990114a8.js} +1 -1
  100. package/assets/esri/core/workers/chunks/{03b455e9405a8b6fec68.js → 8659abd4b46f153b6902.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{19bd0b56d82446dbb7c5.js → 868ee8f429e7caddc045.js} +1 -1
  102. package/assets/esri/core/workers/chunks/{1fc7df018c8f802565a6.js → 86b978a48b539e9fc5b8.js} +1 -1
  103. package/assets/esri/core/workers/chunks/{4dfcd03082be83600f3a.js → 88add09190569b04e824.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{65e279516170ddbd4a65.js → 89027f6800e17fab8973.js} +1 -1
  105. package/assets/esri/core/workers/chunks/{a6533bab3b2fbc1e2a47.js → 8b16aa50d879b92a5375.js} +1 -1
  106. package/assets/esri/core/workers/chunks/{2b9c9a35a6e1f56920b5.js → 9027f22a04ac2076ff0e.js} +14 -14
  107. package/assets/esri/core/workers/chunks/{edaf059c7ea18088c3dd.js → 91df8638b8b904e6d8c5.js} +1 -1
  108. package/assets/esri/core/workers/chunks/92c306d02569e7cd9af3.js +1 -0
  109. package/assets/esri/core/workers/chunks/{fdadf11f31384c09db9f.js → 94486f3fcba48fa93aa8.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{a0fab8cd791c33d3895d.js → 98dbafa4d45fdf790fff.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{2b867cec6ada339f1c8f.js → 9958a3ed4aa787d19e00.js} +1 -1
  112. package/assets/esri/core/workers/chunks/9a723d739ac44b45432c.js +1 -0
  113. package/assets/esri/core/workers/chunks/9c6fc4fe2c46f40d63d9.js +1 -0
  114. package/assets/esri/core/workers/chunks/{9d9a639f7388a29e7c96.js → 9e4f37367d61a2e13053.js} +1 -1
  115. package/assets/esri/core/workers/chunks/a16526adc0dbffdc1ffc.js +1 -0
  116. package/assets/esri/core/workers/chunks/a19063456ce21b471b69.js +1 -0
  117. package/assets/esri/core/workers/chunks/{c4641c2c130c7b8bcdee.js → a1c4509a3865139eb570.js} +1 -1
  118. package/assets/esri/core/workers/chunks/{e2fdc4dc1ab9decd731e.js → a4db5c9a90107e097df8.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{176f56de787bf486be9f.js → a7bd294996e6c8b8354a.js} +1 -1
  120. package/assets/esri/core/workers/chunks/{80a155496deef2c02a3e.js → a878061845e594b2d72c.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{8f426cb210a4250517d5.js → ad3e18c4c65aa2cd1ceb.js} +1 -1
  122. package/assets/esri/core/workers/chunks/{0328eaea66c1db98da1c.js → ae807912acc19a166264.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{0a981061df08da19372c.js → ae8c387d59be87457567.js} +1 -1
  124. package/assets/esri/core/workers/chunks/{5caf49e679ed0c27e0bd.js → aea8553a2aa54cfd694b.js} +1 -1
  125. package/assets/esri/core/workers/chunks/b1f667006cba60ef4aa7.js +1 -0
  126. package/assets/esri/core/workers/chunks/{70c8f69eed14d55c5cf6.js → b2add7338258ca7c24dd.js} +1 -1
  127. package/assets/esri/core/workers/chunks/b2d9f4e057af26a538fb.js +1 -0
  128. package/assets/esri/core/workers/chunks/{26081b6486c623735657.js → b4ea675831627d9808dd.js} +1 -1
  129. package/assets/esri/core/workers/chunks/{35ca317490540fae437c.js → b54202dcab8df080e991.js} +1 -1
  130. package/assets/esri/core/workers/chunks/ba212ba895ccf573eedf.js +1 -0
  131. package/assets/esri/core/workers/chunks/{95bae3c275f1483eb7ed.js → bcff6178e9d16b1b6191.js} +1 -1
  132. package/assets/esri/core/workers/chunks/{2845a0810e9c00bf30f8.js → bf775fe489213cfc08b1.js} +1 -1
  133. package/assets/esri/core/workers/chunks/{4823e4522bd7379d858e.js → bfc1e8aec7aace3ff30e.js} +1 -1
  134. package/assets/esri/core/workers/chunks/c0849628a7fbc6869340.js +1 -0
  135. package/assets/esri/core/workers/chunks/{20003728a679479b14dc.js → c31583229a1100b66a18.js} +1 -1
  136. package/assets/esri/core/workers/chunks/{9346437b152b20bdcf8a.js → c941d15190fc08523d0d.js} +1 -1
  137. package/assets/esri/core/workers/chunks/{5746c4861af83c1d57a8.js → cf11b1dcc2cff30229b6.js} +1 -1
  138. package/assets/esri/core/workers/chunks/{fe1dcf9f81da4adbb1fe.js → cf13625a033f9903655f.js} +1 -1
  139. package/assets/esri/core/workers/chunks/{1990162dcf73601d54f7.js → d3cd9c24edf7520d0824.js} +1 -1
  140. package/assets/esri/core/workers/chunks/{73db6c070b049fe05147.js → d57edb77c6deee36cce5.js} +1 -1
  141. package/assets/esri/core/workers/chunks/{6e4ec9fa931c69e4e4ba.js → da573ecc68e6aa8f6da9.js} +1 -1
  142. package/assets/esri/core/workers/chunks/{bdf0ab95401c6d8fbc7d.js → db559437b571462fb3db.js} +1 -1
  143. package/assets/esri/core/workers/chunks/{512dcd6e34e217029391.js → deb2854bb7d082a26f52.js} +1 -1
  144. package/assets/esri/core/workers/chunks/{5993427325d1add18ed9.js → dede989d59c4b416af68.js} +1 -1
  145. package/assets/esri/core/workers/chunks/{18e9cb71fa020e93d139.js → df5ecb3339d9301a6f5b.js} +1 -1
  146. package/assets/esri/core/workers/chunks/{e22b400636094fc7b6c0.js → dfbf2e17058aa876f96a.js} +1 -1
  147. package/assets/esri/core/workers/chunks/dfc37c2ce51e6a34fd87.js +1 -0
  148. package/assets/esri/core/workers/chunks/{c5c6a32a24005478c976.js → e032f3d2ee19790f8c79.js} +1 -1
  149. package/assets/esri/core/workers/chunks/{3d7923d25734d03a4d27.js → e1dba29f5fd1ee5fc999.js} +1 -1
  150. package/assets/esri/core/workers/chunks/{352511dbc67166face40.js → e2e32e2f04cce9e932fd.js} +1 -1
  151. package/assets/esri/core/workers/chunks/e5bcc44f3dc6fc90835a.js +1 -0
  152. package/assets/esri/core/workers/chunks/{bb0a1be03bb9d621432c.js → e7638b9ab6674bc8a18f.js} +1 -1
  153. package/assets/esri/core/workers/chunks/{edef1e2254c992459c63.js → eb1a7bb8b14e651bc241.js} +1 -1
  154. package/assets/esri/core/workers/chunks/f09242e97196ad177c10.js +1 -0
  155. package/assets/esri/core/workers/chunks/{779ee975efebb838b5d6.js → f154336b4af011cd0c56.js} +1 -1
  156. package/assets/esri/core/workers/chunks/{3807d0b9b1894731174d.js → f1be3a177328a169128f.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{0810dbbf348a927392e7.js → f59c782898d931810374.js} +1 -1
  158. package/assets/esri/core/workers/chunks/{c9159ebf930af3f336f3.js → f5d89b48f62fba78fd10.js} +1 -1
  159. package/assets/esri/core/workers/chunks/f7846523adacbfe5047e.js +1 -0
  160. package/assets/esri/core/workers/chunks/{b510c07dfd0d31683b08.js → f7a9d2da07196a0989ae.js} +1 -1
  161. package/assets/esri/core/workers/chunks/{143503f6eb270c4683f8.js → f7c99e9c8d19352af38d.js} +1 -1
  162. package/assets/esri/core/workers/chunks/{79ab06fb4c91ac8da323.js → f839b86bee15deaf84e4.js} +1 -1
  163. package/assets/esri/core/workers/chunks/{9adecee0ed2f1df3b0d2.js → f85e2b6a285fa8ad60aa.js} +1 -1
  164. package/assets/esri/core/workers/chunks/{024063fe2bbb27899094.js → fbbccca5b1bcffb31c4e.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{009556f323e58271bc7a.js → fc4417d1260b717a9385.js} +1 -1
  166. package/assets/esri/core/workers/chunks/{6810ecdeccf4b7eae5e2.js → fdaf8fb5a3cc7abea44b.js} +1 -1
  167. package/assets/esri/core/workers/chunks/{05072093e0209ef5db20.js → fe3f95fda29e4844b153.js} +1 -1
  168. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  169. package/assets/esri/themes/base/widgets/_Editor.scss +4 -0
  170. package/assets/esri/themes/dark/main.css +1 -1
  171. package/assets/esri/themes/light/main.css +1 -1
  172. package/assets/esri/themes/light/view.css +1 -1
  173. package/assets/esri/widgets/Editor/t9n/Editor.json +1 -1
  174. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  175. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  176. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  177. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  178. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  179. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  180. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  181. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  182. package/assets/esri/widgets/Editor/t9n/Editor_en.json +1 -1
  183. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  184. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  185. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  186. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  187. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  188. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  189. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  190. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  191. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  192. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  193. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  194. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  195. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  196. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  197. package/assets/esri/widgets/Editor/t9n/Editor_no.json +1 -1
  198. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  199. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  200. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  201. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  202. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  203. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  204. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  205. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  206. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  207. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  208. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  209. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  210. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  211. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  212. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  213. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  217. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  218. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  219. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  220. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  221. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  222. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  223. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_en.json +1 -1
  224. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  225. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  226. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  227. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  228. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  229. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  230. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  231. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  232. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  233. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  234. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  235. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  236. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  237. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  238. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  239. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  240. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  241. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  242. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  243. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  244. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  245. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  246. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  247. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  248. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  249. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  250. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  251. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  252. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  253. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  254. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  255. package/assets/esri/widgets/Sketch/t9n/Sketch.json +1 -1
  256. package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
  257. package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
  258. package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
  259. package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
  260. package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
  261. package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
  262. package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
  263. package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
  264. package/assets/esri/widgets/Sketch/t9n/Sketch_en.json +1 -1
  265. package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
  266. package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
  267. package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
  268. package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
  269. package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
  270. package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
  271. package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
  272. package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
  273. package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
  274. package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
  275. package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
  276. package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
  277. package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
  278. package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
  279. package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
  280. package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
  281. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
  282. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
  283. package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
  284. package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
  285. package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
  286. package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
  287. package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
  288. package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
  289. package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
  290. package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
  291. package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
  292. package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
  293. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
  294. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
  295. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
  296. package/chunks/Envelope.js +1 -1
  297. package/chunks/Fog.glsl.js +2 -2
  298. package/chunks/Geometry.js +1 -1
  299. package/chunks/GlowBlur.glsl.js +8 -9
  300. package/chunks/GlowComposition.glsl.js +15 -16
  301. package/chunks/Laserlines.glsl.js +12 -12
  302. package/chunks/MultiPathImpl.js +1 -1
  303. package/chunks/Point2D.js +1 -1
  304. package/chunks/PointRenderer.glsl.js +1 -1
  305. package/chunks/Precipitation.glsl.js +2 -2
  306. package/chunks/Terrain.glsl.js +1 -1
  307. package/chunks/boundedPlane.js +1 -1
  308. package/chunks/bundle.js +1 -1
  309. package/chunks/cameraUtilsPlanar.js +1 -1
  310. package/chunks/cameraUtilsSpherical.js +1 -1
  311. package/chunks/sphere.js +1 -1
  312. package/chunks/vec32.js +1 -1
  313. package/config.js +1 -1
  314. package/core/accessorSupport/extensions/serializableProperty/reader.js +1 -1
  315. package/core/accessorSupport/extensions/serializableProperty/utils.js +5 -0
  316. package/core/accessorSupport/extensions/serializableProperty.js +1 -1
  317. package/core/accessorSupport/read.js +1 -1
  318. package/core/accessorSupport/write.js +1 -1
  319. package/core/dedupeResult.js +5 -0
  320. package/core/has.js +1 -1
  321. package/core/libs/gl-matrix-2/math/quat.js +1 -1
  322. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  323. package/core/perspectiveUtils.js +1 -1
  324. package/core/workers/workerFactory.js +1 -1
  325. package/editing/geometry/lineUtils.js +1 -1
  326. package/geometry/Mesh.js +1 -1
  327. package/geometry/operators/support/jsonConverter.js +1 -1
  328. package/geometry/projection/localLinearScaleFactors.js +1 -1
  329. package/geometry/projection/projectDirection.js +1 -1
  330. package/geometry/projection/projectVec3Array.js +1 -1
  331. package/geometry/support/axisAngle.js +1 -1
  332. package/geometry/support/axisAngleDegrees.js +1 -1
  333. package/geometry/support/buffer/internals/Vec3.js +1 -1
  334. package/geometry/support/clipRay.js +1 -1
  335. package/geometry/support/coordinateSystem.js +1 -1
  336. package/geometry/support/frustum.js +1 -1
  337. package/geometry/support/lineSegment.js +1 -1
  338. package/geometry/support/meshUtils/centerAt.js +1 -1
  339. package/geometry/support/meshUtils/exporters/gltf/geometry.js +1 -1
  340. package/geometry/support/meshUtils/loadExternal.js +1 -1
  341. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  342. package/geometry/support/meshUtils/merge.js +1 -1
  343. package/geometry/support/meshUtils/rotate.js +1 -1
  344. package/geometry/support/meshUtils/scale.js +1 -1
  345. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  346. package/geometry/support/plane.js +1 -1
  347. package/geometry/support/polygonUtils.js +1 -1
  348. package/geometry/support/ray.js +1 -1
  349. package/geometry/support/sphereUtils.js +1 -1
  350. package/geometry/support/triangle.js +1 -1
  351. package/geometry/support/vector.js +1 -1
  352. package/interfaces.d.ts +256 -188
  353. package/kernel.js +1 -1
  354. package/layers/FeatureLayer.js +1 -1
  355. package/layers/KnowledgeGraphLayer.js +1 -1
  356. package/layers/LinkChartLayer.js +1 -1
  357. package/layers/VoxelWasmPerSceneView.js +1 -1
  358. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  359. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  360. package/layers/graphics/sources/ParquetSource.js +1 -1
  361. package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
  362. package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
  363. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  364. package/layers/graphics/sources/support/QueryTask.js +1 -1
  365. package/layers/graphics/sources/support/clientSideDefaults.js +1 -1
  366. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  367. package/layers/knowledgeGraph/layerUtils.js +1 -1
  368. package/layers/mixins/ArcGISImageService.js +1 -1
  369. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  370. package/layers/orientedImagery/transformations/utils.js +1 -1
  371. package/layers/orientedImagery/transformations/worldToImage.js +1 -1
  372. package/layers/support/Sublayer.js +1 -1
  373. package/layers/support/capabilities.js +1 -1
  374. package/layers/support/featurePopupQueryUtils.js +1 -1
  375. package/layers/support/layerUtils.js +1 -1
  376. package/layers/support/rasterDatasets/FunctionRaster.js +1 -1
  377. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  378. package/layers/support/tiles3DUtils.js +1 -1
  379. package/layers/video/VideoCameraSensorModel.js +1 -1
  380. package/layers/voxel/VoxelVolume.js +1 -1
  381. package/layers/voxel/voxelPlaneUtils.js +1 -1
  382. package/package.json +3 -3
  383. package/rest/knowledgeGraph/GraphApplyEdits.js +1 -1
  384. package/rest/query/executePivotQuery.js +5 -0
  385. package/rest/query/operations/query.js +1 -1
  386. package/rest/query/operations/queryPivot.js +5 -0
  387. package/rest/query/operations/queryUtils.js +5 -0
  388. package/rest/support/PivotDefinition.js +5 -0
  389. package/rest/support/PivotQuery.js +5 -0
  390. package/rest/support/UnPivotDefinition.js +5 -0
  391. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  392. package/smartMapping/support/adapters/support/utils.js +1 -1
  393. package/support/basemapDefinitions.js +1 -1
  394. package/support/revision.js +1 -1
  395. package/views/2d/GoToManager.js +1 -1
  396. package/views/2d/analysis/ElevationProfile/ElevationProfileInputVisualization2D.js +1 -1
  397. package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
  398. package/views/2d/engine/flow/dataUtils.js +1 -1
  399. package/views/2d/engine/flow/utils.js +1 -1
  400. package/views/2d/engine/webgl/AFeatureTile.js +1 -1
  401. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  402. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  403. package/views/2d/interactive/editingTools/manipulations/RotateManipulation.js +1 -1
  404. package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
  405. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  406. package/views/2d/layers/MapNotesLayerView2D.js +1 -1
  407. package/views/2d/layers/RouteLayerView2D.js +1 -1
  408. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  409. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  410. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  411. package/views/2d/navigation/actions/Pan.js +1 -1
  412. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  413. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  414. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  415. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  416. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  417. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  418. package/views/3d/analysis/ElevationProfile/ElevationProfileGeometryVisualization3D.js +5 -0
  419. package/views/3d/analysis/ElevationProfile/ElevationProfileLineSceneComputation.js +1 -1
  420. package/views/3d/analysis/ElevationProfile/ElevationProfileLineVisualization3D.js +1 -1
  421. package/views/3d/analysis/ElevationProfile/ElevationProfileVisualization3D.js +1 -1
  422. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
  423. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  424. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  425. package/views/3d/analysis/LineOfSight/LineOfSightVisualization.js +1 -1
  426. package/views/3d/analysis/Slice/ShiftManipulator.js +1 -1
  427. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  428. package/views/3d/analysis/Slice/SliceVisualization.js +1 -1
  429. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  430. package/views/3d/analysis/Viewshed/ViewshedComputedData.js +1 -1
  431. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  432. package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
  433. package/views/3d/analysis/Viewshed/ViewshedShapeVisualElement.js +1 -1
  434. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  435. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  436. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  437. package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
  438. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  439. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillComputation.js +1 -1
  440. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  441. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  442. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementError.js +1 -1
  443. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  444. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  445. package/views/3d/analysis/VolumeMeasurement/volumeMeasurementErrors.js +5 -0
  446. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  447. package/views/3d/analysis/support/measurementUtils.js +1 -1
  448. package/views/3d/animation/pointToPoint/Animation.js +1 -1
  449. package/views/3d/animation/pointToPoint/Camera.js +1 -1
  450. package/views/3d/camera/constraintUtils/altitude.js +1 -1
  451. package/views/3d/camera/constraintUtils/common.js +1 -1
  452. package/views/3d/camera/constraintUtils/distance.js +1 -1
  453. package/views/3d/camera/constraintUtils/surfaceCollision.js +1 -1
  454. package/views/3d/camera/constraintUtils/tilt.js +1 -1
  455. package/views/3d/camera/intersectionUtils.js +1 -1
  456. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  457. package/views/3d/environment/CloudsParameters.js +1 -1
  458. package/views/3d/environment/EnvironmentManager.js +1 -1
  459. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  460. package/views/3d/environment/Fog.js +1 -1
  461. package/views/3d/environment/MarsAtmosphere.js +1 -1
  462. package/views/3d/glTF/loader.js +1 -1
  463. package/views/3d/interactive/Manipulator3D.js +1 -1
  464. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  465. package/views/3d/interactive/editingTools/dragEventPipeline3D.js +1 -1
  466. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  467. package/views/3d/interactive/editingTools/lineObjectVisualElementUtils.js +1 -1
  468. package/views/3d/interactive/editingTools/manipulations/MoveXYAxisManipulation.js +1 -1
  469. package/views/3d/interactive/editingTools/manipulations/MoveXYDiscManipulation.js +1 -1
  470. package/views/3d/interactive/editingTools/manipulations/MoveZManipulation.js +1 -1
  471. package/views/3d/interactive/editingTools/media/MediaElementManipulator3D.js +1 -1
  472. package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
  473. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  474. package/views/3d/interactive/editingTools/reshape/edgeOffsetUtils.js +1 -1
  475. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  476. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentMove.js +1 -1
  477. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
  478. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  479. package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
  480. package/views/3d/interactive/manipulatorUtils.js +1 -1
  481. package/views/3d/interactive/support/viewUtils.js +1 -1
  482. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  483. package/views/3d/interactive/visualElements/LabelVisualElement.js +1 -1
  484. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  485. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  486. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  487. package/views/3d/interactive/visualElements/MeasurementArrowVisualElement.js +1 -1
  488. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  489. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  490. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  491. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  492. package/views/3d/interactive/visualElements/VerticesVisualElement.js +1 -1
  493. package/views/3d/interactive/visualElements/support/Segment.js +1 -1
  494. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  495. package/views/3d/layers/FlowSubView3D.js +1 -1
  496. package/views/3d/layers/I3SMeshView3D.js +1 -1
  497. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  498. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  499. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  500. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  501. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  502. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  503. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  504. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  505. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  506. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  507. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  508. package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
  509. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  510. package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
  511. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  512. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  513. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  514. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  515. package/views/3d/layers/graphics/Labeler.js +1 -1
  516. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  517. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  518. package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
  519. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  520. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  521. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  522. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  523. package/views/3d/layers/i3s/LoDUtil.js +1 -1
  524. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  525. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  526. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  527. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  528. package/views/3d/layers/support/I3STreeDebugger.js +1 -1
  529. package/views/3d/layers/support/uvUtils.js +1 -1
  530. package/views/3d/state/Frustum.js +1 -1
  531. package/views/3d/state/NearFarHeuristic.js +1 -1
  532. package/views/3d/state/controllers/FovController.js +1 -1
  533. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  534. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  535. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  536. package/views/3d/state/controllers/RotateController.js +1 -1
  537. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  538. package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
  539. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  540. package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
  541. package/views/3d/state/controllers/momentum/PanPlanarMomentumController.js +1 -1
  542. package/views/3d/state/controllers/momentum/PanSphericalMomentumController.js +1 -1
  543. package/views/3d/state/controllers/momentum/ZoomPlanarMomentumController.js +1 -1
  544. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  545. package/views/3d/state/utils/navigationUtils.js +1 -1
  546. package/views/3d/state/utils/viewUtils.js +1 -1
  547. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  548. package/views/3d/support/RenderCoordsHelper.js +1 -1
  549. package/views/3d/support/cameraUtils.js +1 -1
  550. package/views/3d/support/cameraUtilsInternal.js +1 -1
  551. package/views/3d/support/dito.js +1 -1
  552. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  553. package/views/3d/support/flow/StreamlineResources3DOverlay.js +1 -1
  554. package/views/3d/support/flow/StreamlineResources3DShape.js +1 -1
  555. package/views/3d/support/flow/constants.js +1 -1
  556. package/views/3d/support/geometryUtils/ray.js +1 -1
  557. package/views/3d/support/intersectionUtils.js +1 -1
  558. package/views/3d/support/mathUtils.js +1 -1
  559. package/views/3d/support/orientedBoundingBox.js +1 -1
  560. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  561. package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
  562. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  563. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  564. package/views/3d/support/sunUtils.js +1 -1
  565. package/views/3d/support/viewpointUtils.js +1 -1
  566. package/views/3d/terrain/OverlayManager.js +1 -1
  567. package/views/3d/terrain/OverlayRenderer.js +1 -1
  568. package/views/3d/terrain/PatchGeometry.js +1 -1
  569. package/views/3d/terrain/PatchRenderData.js +1 -1
  570. package/views/3d/terrain/SphericalPatch.js +1 -1
  571. package/views/3d/terrain/TerrainRenderer.js +1 -1
  572. package/views/3d/terrain/TerrainSurface.js +1 -1
  573. package/views/3d/terrain/Tile.js +1 -1
  574. package/views/3d/webgl/RenderCamera.js +1 -1
  575. package/views/3d/webgl-engine/Stage.js +1 -1
  576. package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
  577. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  578. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticComponentGeometryBVH.js +1 -1
  579. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  580. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  581. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js +1 -1
  582. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  583. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +2 -2
  584. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +1 -1
  585. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +1 -1
  586. package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +1 -1
  587. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  588. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  589. package/views/3d/webgl-engine/core/util/TwoVectorPosition.js +1 -1
  590. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +7 -7
  591. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
  592. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  593. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  594. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  595. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  596. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathData.js +1 -1
  597. package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
  598. package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
  599. package/views/3d/webgl-engine/lib/CutFillColor.js +1 -1
  600. package/views/3d/webgl-engine/lib/CutFillDepth.js +1 -1
  601. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  602. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  603. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  604. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  605. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  606. package/views/3d/webgl-engine/lib/IntersectorResult.js +1 -1
  607. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  608. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  609. package/views/3d/webgl-engine/lib/Path.js +1 -1
  610. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  611. package/views/3d/webgl-engine/lib/PathVertex.js +1 -1
  612. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  613. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  614. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  615. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  616. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  617. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  618. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  619. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  620. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  621. package/views/3d/webgl-engine/lib/edgeRendering/edgeBufferWriters.js +1 -1
  622. package/views/3d/webgl-engine/lib/edgeRendering/edgePreprocessing.js +1 -1
  623. package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
  624. package/views/3d/webgl-engine/lib/intersectorUtils.js +1 -1
  625. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  626. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  627. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  628. package/views/3d/webgl-engine/lib/triangleIntersectionUtils.js +1 -1
  629. package/views/3d/webgl-engine/lib/verticalOffsetUtils.js +1 -1
  630. package/views/3d/webgl-engine/lighting/SceneLighting.js +1 -1
  631. package/views/3d/webgl-engine/lighting/SphericalHarmonics.js +1 -1
  632. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  633. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  634. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  635. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  636. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  637. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  638. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  639. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  640. package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
  641. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  642. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  643. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +1 -1
  644. package/views/3d/webgl.js +1 -1
  645. package/views/DOMContainer.js +1 -1
  646. package/views/SceneView.js +1 -1
  647. package/views/View.js +1 -1
  648. package/views/View2D.js +1 -1
  649. package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
  650. package/views/analysis/ElevationProfile/ElevationProfileError.d.ts +4 -0
  651. package/views/analysis/ElevationProfile/ElevationProfileError.js +5 -0
  652. package/views/analysis/ElevationProfile/ElevationProfileLineGroundComputation.js +1 -1
  653. package/views/analysis/ElevationProfile/ElevationProfileLineInputComputation.js +1 -1
  654. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  655. package/views/analysis/ElevationProfile/elevationProfileErrors.js +5 -0
  656. package/views/analysis/ElevationProfile/elevationProfileGenerationUtils.js +1 -1
  657. package/views/analysis/ElevationProfile/elevationProfileGeometryUtils.js +1 -1
  658. package/views/analysis/ElevationProfile/elevationProfileInputVisualizationUtils.js +1 -1
  659. package/views/analysis/ElevationProfile/elevationProfileLayerUtils.js +5 -0
  660. package/views/analysis/ExclusiveOperationManager.js +1 -1
  661. package/views/draw/support/Reshape.js +1 -1
  662. package/views/draw/support/createUtils.js +1 -1
  663. package/views/draw/support/helpMessageUtils3d.js +1 -1
  664. package/views/draw/support/surfaceCoordinateSystems.js +1 -1
  665. package/views/interactive/GraphicManipulator.js +1 -1
  666. package/views/interactive/coordinateHelper.js +1 -1
  667. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  668. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  669. package/views/interactive/sketch/constraintUtils.js +1 -1
  670. package/views/interactive/sketch/constraints.js +1 -1
  671. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  672. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  673. package/views/interactive/snapping/candidates/ParallelLineSnappingCandidate.js +1 -1
  674. package/views/interactive/snapping/candidates/RightAngleTriangleSnappingCandidate.js +1 -1
  675. package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
  676. package/views/interactive/snapping/featureSources/sceneLayerSource/SceneLayerSnappingSourceWorker.js +1 -1
  677. package/views/interactive/snapping/featureSources/sceneLayerSource/sceneLayerSnappingUtils.js +1 -1
  678. package/views/interactive/snapping/hints/LineSnappingHint.js +1 -1
  679. package/views/interactive/tooltip/tooltipCommonUtils.js +1 -1
  680. package/views/layers/FeatureLayerView.d.ts +1 -1
  681. package/views/layers/FeatureLayerView.js +1 -1
  682. package/views/layers/SceneLayerView.js +1 -1
  683. package/views/navigation/PanPlanarMomentumEstimator.js +1 -1
  684. package/views/navigation/PanSphericalMomentumEstimator.js +1 -1
  685. package/views/navigation/gamepadAndKeyboardUtils.js +1 -1
  686. package/views/popupAdapter.js +1 -1
  687. package/views/support/angularMeasurementUtils.js +1 -1
  688. package/views/support/euclideanAreaMeasurementUtils.js +1 -1
  689. package/views/support/euclideanLengthMeasurementUtils.js +1 -1
  690. package/views/support/geometry3dUtils.js +1 -1
  691. package/widgets/Daylight/DaylightViewModel.js +1 -1
  692. package/widgets/Daylight.js +1 -1
  693. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  694. package/widgets/Editor/EditorViewModel.js +1 -1
  695. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  696. package/widgets/Editor/SplitFeatureWorkflowData.js +1 -1
  697. package/widgets/Editor/UpdateWorkflow.js +1 -1
  698. package/widgets/Editor/components/PendingFeatureList.js +1 -1
  699. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  700. package/widgets/Editor/components/UploadDetails.js +1 -1
  701. package/widgets/Editor/components/workflowAdapters/pendingFeatureList/CreateFeaturesWorkflowPendingFeatureListAdapter.ts.js +5 -0
  702. package/widgets/Editor/components/workflowAdapters/pendingFeatureList/SplitFeatureWorkflowPendingFeatureListAdapter.js +5 -0
  703. package/widgets/Editor/css.js +1 -1
  704. package/widgets/Editor/modelUploadUtils.js +1 -1
  705. package/widgets/Editor/support/splitFeatureUtils.js +1 -1
  706. package/widgets/Editor/workflowUtils.js +1 -1
  707. package/widgets/Editor.js +1 -1
  708. package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
  709. package/widgets/ElevationProfile/support/geometryUtils.js +1 -1
  710. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  711. package/widgets/FeatureTable/FieldColumn.js +1 -1
  712. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  713. package/widgets/FeatureTable/support/tableUtils.js +1 -1
  714. package/widgets/FeatureTable/support/templateUtils.js +1 -1
  715. package/widgets/Legend/LegendViewModel.js +1 -1
  716. package/widgets/Legend.js +1 -1
  717. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  718. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +1 -1
  719. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  720. package/widgets/OrientedImageryViewer/dataCaptureUtils.js +1 -1
  721. package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
  722. package/widgets/OrientedImageryViewer.js +1 -1
  723. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  724. package/widgets/PanoramicViewer/PanoramicZoomManager.js +5 -0
  725. package/widgets/PanoramicViewer/PanoramicZoomViewModel.js +1 -1
  726. package/widgets/PanoramicViewer/constants.js +1 -1
  727. package/widgets/PanoramicViewer/support/ClosestMap.js +5 -0
  728. package/widgets/PanoramicViewer/support/PanoramicMeshManager.js +1 -1
  729. package/widgets/PanoramicViewer/support/PanoramicMeshWorker.js +1 -1
  730. package/widgets/PanoramicViewer/support/PanoramicTileNode.js +5 -0
  731. package/widgets/PanoramicViewer/support/PanoramicTilePyramid.js +5 -0
  732. package/widgets/PanoramicViewer/support/importUtils.js +5 -0
  733. package/widgets/PanoramicViewer/utils.js +1 -1
  734. package/widgets/PanoramicViewer.js +1 -1
  735. package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +1 -1
  736. package/widgets/support/forms/formUtils.js +1 -1
  737. package/analysis/ElevationProfile/ElevationProfileUnits.d.ts +0 -4
  738. package/assets/esri/core/workers/chunks/004b13c1db79c9e668b1.js +0 -1
  739. package/assets/esri/core/workers/chunks/06c389283ee5b60573f2.js +0 -1
  740. package/assets/esri/core/workers/chunks/0ca5060c81a1a05b8be3.js +0 -1
  741. package/assets/esri/core/workers/chunks/1214c126af0de25a4b4a.js +0 -1
  742. package/assets/esri/core/workers/chunks/147f6e7b147beaa4ed29.js +0 -1
  743. package/assets/esri/core/workers/chunks/1f2d13466c60a6b57717.js +0 -1
  744. package/assets/esri/core/workers/chunks/23e600e368ac829680b5.js +0 -1
  745. package/assets/esri/core/workers/chunks/3d800fbc449bea18b1cd.js +0 -1
  746. package/assets/esri/core/workers/chunks/3dcdbba706a8034b6ba3.js +0 -1
  747. package/assets/esri/core/workers/chunks/3e11a893271caa11a881.js +0 -1
  748. package/assets/esri/core/workers/chunks/503c81dda242e6077317.js +0 -1
  749. package/assets/esri/core/workers/chunks/52121179d4f9833008ec.js +0 -1
  750. package/assets/esri/core/workers/chunks/56b3bb68b61b77138186.js +0 -1
  751. package/assets/esri/core/workers/chunks/5aacd1c6b171c99b41f5.js +0 -1
  752. package/assets/esri/core/workers/chunks/633faa9cec8988ab06af.js +0 -33
  753. package/assets/esri/core/workers/chunks/801451fb572bc5f1f270.js +0 -1
  754. package/assets/esri/core/workers/chunks/8d63b42aea32ce2e5d09.js +0 -1
  755. package/assets/esri/core/workers/chunks/b1ccbc2fef7f7e5e04f7.js +0 -1
  756. package/assets/esri/core/workers/chunks/bec9ddd38c9ab9f2561b.js +0 -1
  757. package/assets/esri/core/workers/chunks/bf9031749d10e7d457b6.js +0 -1
  758. package/assets/esri/core/workers/chunks/c473b15d4d52f0a63d20.js +0 -1
  759. package/assets/esri/core/workers/chunks/c547692862df95d22818.js +0 -1
  760. package/assets/esri/core/workers/chunks/c84665db250b05e2829d.js +0 -1
  761. package/assets/esri/core/workers/chunks/c86ca87959f04075e834.js +0 -1
  762. package/assets/esri/core/workers/chunks/ef75cad6570b14a42b62.js +0 -1
  763. package/assets/esri/core/workers/chunks/fb456e7425e09df17d8c.js +0 -1
  764. package/views/3d/analysis/ElevationProfile/ElevationProfileInputVisualization3D.js +0 -5
  765. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementConfiguration.js +0 -5
  766. package/views/analysis/ElevationProfile/ElevationProfileGenerationError.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/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{isSome as e}from"../../../core/arrayUtils.js";import i from"../../../core/Collection.js";import r from"../../../core/CollectionFlattener.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{watch as a,syncAndInitial as o,initial as n}from"../../../core/reactiveUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import{subclass as p}from"../../../core/accessorSupport/decorators/subclass.js";import c from"../../../rest/support/DirectionLine.js";import l from"../../../rest/support/DirectionPoint.js";import d from"../../../rest/support/PointBarrier.js";import u from"../../../rest/support/PolygonBarrier.js";import g from"../../../rest/support/PolylineBarrier.js";import _ from"../../../rest/support/RouteInfo.js";import m from"../../../rest/support/Stop.js";import{LayerView2DMixin as w}from"./LayerView2D.js";import y from"./graphics/GraphicContainer.js";import f from"./graphics/GraphicsView2D.js";import v from"../../layers/LayerView.js";const I=["route-info","direction-line","direction-point","polygon-barrier","polyline-barrier","point-barrier","stop"],k={graphic:null,property:null,oldValue:null,newValue:null};function M(t){return t instanceof c||t instanceof l||t instanceof d||t instanceof u||t instanceof g||t instanceof _||t instanceof m}function F(t){return i.isCollection(t)&&t.length&&M(t.at(0))}function j(t){return Array.isArray(t)&&t.length>0&&M(t[0])}const V=new Set(["default"]);let G=class extends(w(v)){constructor(){super(...arguments),this._graphics=new i,this._highlightIds=new Map,this._networkFeatureMap=new Map,this._networkGraphicMap=new Map,this._interaction=null,this._loadInteractionPromise=null,this.interactive=!1}get _routeItems(){return new r({getCollections:()=>null==this.layer||this.destroyed?[]:[null!=this.layer.routeInfo?new i([this.layer.routeInfo]):null,this.layer.directionLines,this.layer.directionPoints,this.layer.polygonBarriers,this.layer.polylineBarriers,this.layer.pointBarriers,this.layer.stops]})}initialize(){this.addHandles(a(()=>{const{interactive:t,suspended:e}=this;return{interactive:t,suspended:e}},({interactive:t,suspended:e})=>{const i=t&&!e;i&&this._getInteractionLoadPromise().then(t=>{t.enabled=this.interactive&&!this.suspended}),this._interaction&&(this._interaction.enabled=i)},o)),this._updatingHandles.addOnCollectionChange(()=>this._routeItems,t=>this._routeItemsChanged(t),n)}destroy(){this._networkFeatureMap.clear(),this._networkGraphicMap.clear(),this._graphics.removeAll(),this._get("_routeItems")?.destroy()}attach(){this._createGraphicsView()}detach(){this._destroyGraphicsView(),this._interaction?.enabled&&(this._interaction.enabled=!1)}get selectedNetworkFeatures(){return this._interaction?.selectedNetworkFeatures??null}async create(t){if(!this.interactive)return;return(await this._getInteractionLoadPromise()).create(t)}async fetchPopupFeaturesAtLocation(t,e){return this._graphicsView.hitTest(t).filter(({popupTemplate:t})=>!!t)}highlight(t){let i;i=M(t)?[this._getNetworkFeatureUid(t)]:j(t)?t.map(t=>this._getNetworkFeatureUid(t)):F(t)?t.map(t=>this._getNetworkFeatureUid(t)).toArray():[t.uid];const r=i.filter(e);return r.length?(this._addHighlight(r),s(()=>this._removeHighlight(r))):s()}async hitTest(t,i){if(this.suspended)return null;const r=this._graphicsView.hitTest(t).filter(e).map(t=>this._networkGraphicMap.get(t));if(!r.length)return null;const{layer:s}=this;return r.reverse().map(e=>({type:"route",layer:s,mapPoint:t,networkFeature:e}))}isUpdating(){return this._graphicsView.updating}moveEnd(){}remove(t){this._interaction?.remove(t)}update(t){this._graphicsView.processUpdate(t)}viewChange(){this._graphicsView.viewChange()}_addHighlight(t){for(const e of t)if(this._highlightIds.has(e)){const t=this._highlightIds.get(e);this._highlightIds.set(e,t+1)}else this._highlightIds.set(e,1);this._updateHighlight()}_createGraphic(t){const e=t.toGraphic();return e.layer=this.layer,e.sourceLayer=this.layer,e}_createGraphicsView(){const t=this.view,e=()=>this.requestUpdate(),i=new y(t.featuresTilingScheme);this._graphicsView=new f({container:i,graphics:this._graphics,requestUpdateCallback:e,view:t}),this.container.addChild(i),this._updateHighlight()}_destroyGraphicsView(){this.container.removeChild(this._graphicsView.container),this._graphicsView.destroy()}_getDrawOrder(t){const e=this._networkGraphicMap.get(t);return I.indexOf(e.type)}_getInteractionLoadPromise(){return this._loadInteractionPromise||(this._loadInteractionPromise=this._loadInteraction(),this._updatingHandles.addPromise(this._loadInteractionPromise)),this._loadInteractionPromise}_getNetworkFeatureUid(t){return this._networkFeatureMap.has(t)?this._networkFeatureMap.get(t).uid:null}async _loadInteraction(){const{layer:t,view:e}=this,{RouteLayerInteraction:i}=await import("./support/RouteLayerInteraction.js");return this._interaction=new i({view:e,layer:t}),this._interaction}_removeHighlight(t){for(const e of t)if(this._highlightIds.has(e)){const t=this._highlightIds.get(e)-1;0===t?this._highlightIds.delete(e):this._highlightIds.set(e,t)}this._updateHighlight()}_routeItemsChanged(t){if(t.removed.length){this._graphics.removeMany(t.removed.map(t=>{const e=this._networkFeatureMap.get(t);return this._networkFeatureMap.delete(t),this._networkGraphicMap.delete(e),e}));for(const e of t.removed)this.removeHandles(e)}if(t.added.length){this._graphics.addMany(t.added.map(t=>{const e=this._createGraphic(t);return null==e.symbol?null:(this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),e)}).filter(e));for(const e of t.added)this.addHandles([a(()=>e.geometry,(t,i)=>{this._updateGraphic(e,"geometry",t,i)}),a(()=>e.symbol,(t,i)=>{this._updateGraphic(e,"symbol",t,i)}),a(()=>e.popupTemplate,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).popupTemplate=t)}),a(()=>e.toGraphic().attributes,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).attributes=t)})],e);this._graphics.sort((t,e)=>this._getDrawOrder(t)-this._getDrawOrder(e))}}_updateGraphic(t,e,i,r){if(!this._networkFeatureMap.has(t)){const e=this._createGraphic(t);return this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),void this._graphics.add(e)}const s=this._networkFeatureMap.get(t);s[e]=i,k.graphic=s,k.property=e,k.oldValue=r,k.newValue=i,this._graphicsView.graphicUpdateHandler(k)}_updateHighlight(){const t=Array.from(this._highlightIds.keys()),e=this._getHighlightBits(V.values());this._graphicsView.setHighlight(t.map(t=>({objectId:t,highlightFlags:e})))}};t([h()],G.prototype,"_graphics",void 0),t([h()],G.prototype,"_routeItems",null),t([h()],G.prototype,"_interaction",void 0),t([h()],G.prototype,"interactive",void 0),t([h({readOnly:!0})],G.prototype,"selectedNetworkFeatures",null),G=t([p("esri.views.2d.layers.RouteLayerView2D")],G);const b=G;export{b as default};
5
+ import{__decorate as t}from"tslib";import{isSome as e}from"../../../core/arrayUtils.js";import r from"../../../core/Collection.js";import i from"../../../core/CollectionFlattener.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{watch as o,syncAndInitial as a,initial as n}from"../../../core/reactiveUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import{subclass as p}from"../../../core/accessorSupport/decorators/subclass.js";import c from"../../../rest/support/DirectionLine.js";import l from"../../../rest/support/DirectionPoint.js";import u from"../../../rest/support/PointBarrier.js";import d from"../../../rest/support/PolygonBarrier.js";import _ from"../../../rest/support/PolylineBarrier.js";import g from"../../../rest/support/RouteInfo.js";import m from"../../../rest/support/Stop.js";import{LayerView2DMixin as w}from"./LayerView2D.js";import y from"./graphics/GraphicContainer.js";import f from"./graphics/GraphicsView2D.js";import v from"../../layers/LayerView.js";import{getHighlightName as k}from"../../support/highlightOptionsUtils.js";const M=["route-info","direction-line","direction-point","polygon-barrier","polyline-barrier","point-barrier","stop"],F={graphic:null,property:null,oldValue:null,newValue:null};function j(t){return t instanceof c||t instanceof l||t instanceof u||t instanceof d||t instanceof _||t instanceof g||t instanceof m}function V(t){return r.isCollection(t)&&t.length&&j(t.at(0))}function G(t){return Array.isArray(t)&&t.length>0&&j(t[0])}let I=class extends(w(v)){constructor(){super(...arguments),this._graphics=new r,this._networkFeatureMap=new Map,this._networkGraphicMap=new Map,this._interaction=null,this._loadInteractionPromise=null,this.interactive=!1}get _routeItems(){return new i({getCollections:()=>null==this.layer||this.destroyed?[]:[null!=this.layer.routeInfo?new r([this.layer.routeInfo]):null,this.layer.directionLines,this.layer.directionPoints,this.layer.polygonBarriers,this.layer.polylineBarriers,this.layer.pointBarriers,this.layer.stops]})}initialize(){this.addHandles(o(()=>{const{interactive:t,suspended:e}=this;return{interactive:t,suspended:e}},({interactive:t,suspended:e})=>{const r=t&&!e;r&&this._getInteractionLoadPromise().then(t=>{t.enabled=this.interactive&&!this.suspended}),this._interaction&&(this._interaction.enabled=r)},a)),this._updatingHandles.addOnCollectionChange(()=>this._routeItems,t=>this._routeItemsChanged(t),n)}destroy(){this._networkFeatureMap.clear(),this._networkGraphicMap.clear(),this._graphics.removeAll(),this._get("_routeItems")?.destroy()}attach(){this._createGraphicsView()}detach(){this._destroyGraphicsView(),this._interaction?.enabled&&(this._interaction.enabled=!1)}get selectedNetworkFeatures(){return this._interaction?.selectedNetworkFeatures??null}async create(t){if(!this.interactive)return;return(await this._getInteractionLoadPromise()).create(t)}async fetchPopupFeaturesAtLocation(t,e){return this._graphicsView.hitTest(t).filter(({popupTemplate:t})=>!!t)}highlight(t,r){let i;i=j(t)?[this._getNetworkFeatureUid(t)]:G(t)?t.map(t=>this._getNetworkFeatureUid(t)):V(t)?t.map(t=>this._getNetworkFeatureUid(t)).toArray():[t.uid];const o=i.filter(e);if(!o.length)return s();const a=k(r);return this._addHighlights(o,a),s(()=>this._removeHighlights(o,a))}async hitTest(t,r){if(this.suspended)return null;const i=this._graphicsView.hitTest(t).filter(e).map(t=>this._networkGraphicMap.get(t));if(!i.length)return null;const{layer:s}=this;return i.reverse().map(e=>({type:"route",layer:s,mapPoint:t,networkFeature:e}))}isUpdating(){return this._graphicsView.updating}moveEnd(){}remove(t){this._interaction?.remove(t)}update(t){this._graphicsView.processUpdate(t)}viewChange(){this._graphicsView.viewChange()}_createGraphic(t){const e=t.toGraphic();return e.layer=this.layer,e.sourceLayer=this.layer,e}_createGraphicsView(){const t=this.view,e=()=>this.requestUpdate(),r=new y(t.featuresTilingScheme);this._graphicsView=new f({container:r,graphics:this._graphics,requestUpdateCallback:e,view:t}),this.container.addChild(r),this._processHighlight()}_destroyGraphicsView(){this.container.removeChild(this._graphicsView.container),this._graphicsView.destroy()}_getDrawOrder(t){const e=this._networkGraphicMap.get(t);return M.indexOf(e.type)}_getInteractionLoadPromise(){return this._loadInteractionPromise||(this._loadInteractionPromise=this._loadInteraction(),this._updatingHandles.addPromise(this._loadInteractionPromise)),this._loadInteractionPromise}_getNetworkFeatureUid(t){return this._networkFeatureMap.has(t)?this._networkFeatureMap.get(t).uid:null}async _loadInteraction(){const{layer:t,view:e}=this,{RouteLayerInteraction:r}=await import("./support/RouteLayerInteraction.js");return this._interaction=new r({view:e,layer:t}),this._interaction}_routeItemsChanged(t){if(t.removed.length){this._graphics.removeMany(t.removed.map(t=>{const e=this._networkFeatureMap.get(t);return this._networkFeatureMap.delete(t),this._networkGraphicMap.delete(e),e}));for(const e of t.removed)this.removeHandles(e)}if(t.added.length){this._graphics.addMany(t.added.map(t=>{const e=this._createGraphic(t);return null==e.symbol?null:(this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),e)}).filter(e));for(const e of t.added)this.addHandles([o(()=>e.geometry,(t,r)=>{this._updateGraphic(e,"geometry",t,r)}),o(()=>e.symbol,(t,r)=>{this._updateGraphic(e,"symbol",t,r)}),o(()=>e.popupTemplate,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).popupTemplate=t)}),o(()=>e.toGraphic().attributes,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).attributes=t)})],e);this._graphics.sort((t,e)=>this._getDrawOrder(t)-this._getDrawOrder(e))}}_updateGraphic(t,e,r,i){if(!this._networkFeatureMap.has(t)){const e=this._createGraphic(t);return this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),void this._graphics.add(e)}const s=this._networkFeatureMap.get(t);s[e]=r,F.graphic=s,F.property=e,F.oldValue=i,F.newValue=r,this._graphicsView.graphicUpdateHandler(F)}_processHighlight(){const t=this._getHighlights();this._graphicsView?.setHighlight(t)}};t([h()],I.prototype,"_graphics",void 0),t([h()],I.prototype,"_routeItems",null),t([h()],I.prototype,"_interaction",void 0),t([h()],I.prototype,"interactive",void 0),t([h({readOnly:!0})],I.prototype,"selectedNetworkFeatures",null),I=t([p("esri.views.2d.layers.RouteLayerView2D")],I);const P=I;export{P 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/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{sqlAnd as e}from"../../../../../core/sql.js";import{systemIsSpatialFieldName as r}from"../../../../../layers/knowledgeGraph/constants.js";import t from"../../../../../layers/support/FeatureFilter.js";import{getEffectiveFeatureReduction as i}from"./featureReductionUtils.js";import{getServiceGeometryType as a}from"./geometryUtils.js";import{getFeatureReductionDeconflictionEnabled as o,getLayerDeconflictionEnabled as s,createLabelVVEvaluator as l}from"./labelingUtils.js";import{createFeatureSourceSchema as n}from"../schema/SourceSchema.js";import{createSimpleProcessorSchema as p}from"../schema/processor/SimpleProcessorSchema.js";import{isRendererSupported as u}from"../support/rendererUtils.js";class d{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const r=this.layer,t=o(r,e)??s(r);return[{vvEvaluators:{0:l(r.renderer)},deconflictionEnabled:t}]}async createSourceSchema(e,r){const t=this._createServiceInfo(e);return n(t,null,{definitionExpression:this.layer.definitionExpression,queryScaleRanges:[],displayFilterEnabled:e.displayFilterEnabled,displayFilterInfo:this.layer.displayFilterInfo,customParameters:null,gdbVersion:null,historicMoment:null,timeExtent:this.layer.timeExtent,apiKey:null,sourceRefreshVersion:r,availableFields:e.availableFields})}createProcessorSchema(e,r,t){const{fields:a,renderer:o,geometryType:s,labelingInfo:l,labelsVisible:n,objectIdField:u}=this.layer,d={fields:a.map(e=>e.toJSON()),renderer:o?.clone(),labelingInfoSource:this.layer.id,featureReduction:i(this.layer,r),geometryType:s,labelingInfo:l,labelsVisible:n,objectIdField:u,orderBy:"default"};return p(e,r,d,t)}get hasRequiredSupport(){return u(this.layer.renderer)}get timeOptions(){return this.layer}getUpdateHashProperties(e){return[()=>this.layer.definitionExpression,()=>this.layer.renderer,()=>this.layer.labelsVisible?this.layer.labelingInfo:null,()=>i(this.layer,e),()=>c(this.layer)]}hasFilters(e){return c(this.layer)}addFilters(i,a){if(c(this.layer)){const a=e(i?.where,`${r}=1`);if(!a)return i;i??=new t,i.where=a}return i}setGraphicOrigin(e){e.origin=this.layer.graphicOrigin}setAggregateGraphicOrigin(e){e.origin=this.layer.aggregateGraphicOrigin}_createServiceInfo(e){const r=this.layer,{capabilities:t,objectIdField:i}=r,o=r.fieldsIndex.toJSON(),s=a(r),l=r.spatialReference.toJSON(),n=i,p=e.spatialReference.toJSON();return{type:"memory",orderByFields:n,outSpatialReference:p,metadata:{fieldsIndex:o,geometryType:s,featureIdInfo:{type:"object-id",fieldName:r.objectIdField},spatialReference:l,outSpatialReference:p,globalIdField:null,subtypeField:null,subtypes:null,timeInfo:r.timeInfo?.toJSON(),timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null},queryMetadata:{maxRecordCount:t.query.maxRecordCount,supportsCompactGeometry:t.query.supportsCompactGeometry,supportsDefaultSpatialReference:t.query.supportsDefaultSpatialReference,supportsFormatPBF:t.query.supportsFormatPBF,supportsMaxRecordCountFactor:t.query.supportsMaxRecordCountFactor,supportsQuantization:t.query.supportsQuantization,supportsCentroidOnDegeneratedQuantizedGeometry:t.query.supportsCentroidOnDegeneratedQuantizedGeometry,supportsDegeneratedQuantizedGeometry:t.query.supportsDegeneratedQuantizedGeometry,lastEditDate:null}}}}function c(e){return"link-chart"===e.parentCompositeLayer.type&&"hidden"===e.parentCompositeLayer.linkChart?.linkChartProperties.nonspatialDataDisplay?.mode}export{d as KnowledgeGraphSublayerAdapter};
5
+ import{sqlAnd as e}from"../../../../../core/sql.js";import{systemIsSpatialFieldName as r}from"../../../../../layers/knowledgeGraph/constants.js";import t from"../../../../../layers/support/FeatureFilter.js";import{getEffectiveFeatureReduction as i}from"./featureReductionUtils.js";import{getServiceGeometryType as o}from"./geometryUtils.js";import{getFeatureReductionDeconflictionEnabled as a,getLayerDeconflictionEnabled as s,createLabelVVEvaluator as n}from"./labelingUtils.js";import{createFeatureSourceSchema as l}from"../schema/SourceSchema.js";import{createSimpleProcessorSchema as p}from"../schema/processor/SimpleProcessorSchema.js";import{isRendererSupported as u}from"../support/rendererUtils.js";class d{constructor(e){this.layer=e}getLabelingDeconflictionInfo(e){const r=this.layer,t=a(r,e)??s(r);return[{vvEvaluators:{0:n(r.renderer)},deconflictionEnabled:t}]}async createSourceSchema(e,r){const t=this._createServiceInfo(e);return l(t,null,{definitionExpression:this.layer.definitionExpression,queryScaleRanges:[],displayFilterEnabled:e.displayFilterEnabled,displayFilterInfo:this.layer.displayFilterInfo,customParameters:null,gdbVersion:null,historicMoment:null,timeExtent:this.layer.timeExtent,apiKey:null,sourceRefreshVersion:r,availableFields:e.availableFields})}createProcessorSchema(e,r,t){const{fields:o,renderer:a,geometryType:s,labelingInfo:n,labelsVisible:l,objectIdField:u}=this.layer,d={fields:o.map(e=>e.toJSON()),renderer:a?.clone(),labelingInfoSource:this.layer.id,featureReduction:i(this.layer,r),geometryType:s,labelingInfo:n,labelsVisible:l,objectIdField:u,orderBy:"default"};return p(e,r,d,t)}get hasRequiredSupport(){return u(this.layer.renderer)}get timeOptions(){return this.layer}getUpdateHashProperties(e){return[()=>this.layer.definitionExpression,()=>this.layer.renderer,()=>this.layer.labelsVisible?this.layer.labelingInfo:null,()=>i(this.layer,e),()=>c(this.layer)]}hasFilters(e){return c(this.layer)}addFilters(i,o){if(c(this.layer)){const o=e(i?.where,`${r}=1`);if(!o)return i;i??=new t,i.where=o}return i}setGraphicOrigin(e){e.origin=this.layer.graphicOrigin}setAggregateGraphicOrigin(e){e.origin=this.layer.aggregateGraphicOrigin}openMessagePorts(){return this.layer.source.openPorts()}_createServiceInfo(e){const r=this.layer,{capabilities:t,objectIdField:i}=r,a=r.fieldsIndex.toJSON(),s=o(r),n=r.spatialReference.toJSON(),l=i,p=e.spatialReference.toJSON();return{type:"memory",orderByFields:l,outSpatialReference:p,metadata:{fieldsIndex:a,geometryType:s,featureIdInfo:{type:"object-id",fieldName:r.objectIdField},spatialReference:n,outSpatialReference:p,globalIdField:null,subtypeField:null,subtypes:null,timeInfo:r.timeInfo?.toJSON(),timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null},queryMetadata:{maxRecordCount:t.query.maxRecordCount,supportsCompactGeometry:t.query.supportsCompactGeometry,supportsDefaultSpatialReference:t.query.supportsDefaultSpatialReference,supportsFormatPBF:t.query.supportsFormatPBF,supportsMaxRecordCountFactor:t.query.supportsMaxRecordCountFactor,supportsQuantization:t.query.supportsQuantization,supportsCentroidOnDegeneratedQuantizedGeometry:t.query.supportsCentroidOnDegeneratedQuantizedGeometry,supportsDegeneratedQuantizedGeometry:t.query.supportsDegeneratedQuantizedGeometry,lastEditDate:null}}}}function c(e){return"link-chart"===e.parentCompositeLayer.type&&"hidden"===e.parentCompositeLayer.linkChart?.linkChartProperties.nonspatialDataDisplay?.mode}export{d as KnowledgeGraphSublayerAdapter};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import i from"../../../../core/Logger.js";import{assertIsSome as s}from"../../../../core/maybe.js";import{debounce as r,isAbortError as a}from"../../../../core/promiseUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as n}from"../../../../core/support/UpdatingHandles.js";import h from"../../../../geometry/Extent.js";import c from"../../../../geometry/Point.js";import u from"../../../../layers/support/PixelBlock.js";import d from"../../../../layers/support/TileInfo.js";import{update as p,unregister as m,getRasterId as y,register as g}from"../../../../layers/support/rasterDatasets/RawBlockCache.js";import{getWorldWidth as _,computeProjectedScales as f}from"../../../../layers/support/rasterFunctions/rasterProjectionHelper.js";import b from"../../tiling/TileInfoView.js";import"../../tiling/TileKey.js";import w from"../../tiling/TileQueue.js";import P from"../../tiling/TileStrategy.js";import{tileSize as I}from"../../engine/webgl/definitions.js";import{TaskPriority as R}from"../../../support/Scheduler.js";import{getWebGLCapabilities as U}from"../../../webgl/capabilities.js";const C=[0,0];let S=class extends t{constructor(){super(...arguments),this._updatingHandles=new n,this._emptyTilePixelBlock=null,this._tileStrategy=null,this._tileInfoView=null,this._fetchQueue=null,this._blockCacheRegistryUrl=null,this._blockCacheRegistryId=null,this._srcResolutions=[],this.previousLOD=null,this._needBlockCacheUpdate=!1,this._globalSymbolizerParams=null,this._symbolizerParams=null,this._abortController=null,this._isCustomTilingScheme=!1,this._maxIndexedColormapSize=0,this._rasterFunctionState="na",this._globalUpdateRequested=!1,this.attached=!1,this.timeExtent=null,this.redrawOrRefetch=r(async(e={})=>{const t=this._rasterFunctionState,i=e.reprocess||"gpu"===t&&!this.canUseWebGLForProcessing||"cpu"===t&&this.canUseWebGLForProcessing;if(i&&(await this._updatingHandles.addPromise(this.layer.updateRasterFunction()),this.updateRasterFunctionParameters()),!this.previousLOD||this.layerView.suspended)return;const s=this._rasterFunctionState,{type:r}=this;return e.refetch||"raster"!==r&&!!i||"cpu"===s||"cpu"===t?this._updatingHandles.addPromise(this.doRefresh()):this._updatingHandles.addPromise(this._redrawImage(e.signal))})}destroy(){this._updatingHandles.destroy()}get canUseWebGLForProcessing(){return!1}get canUseLocalSymbolizerParams(){return(this.canUseWebGLForProcessing||"rasterVF"===this.type)&&!this.layerView.hasTilingEffects}get isCPUBasedDRA(){const{renderer:e}=this.layer;return"raster-stretch"===e?.type&&e.dynamicRangeAdjustment&&(!this.canUseWebGLForProcessing||!("min-max"===e.stretchType||"standard-deviation"===e.stretchType))}get useWebGLForProcessing(){return this._get("useWebGLForProcessing")??!0}set useWebGLForProcessing(e){this._set("useWebGLForProcessing",e)}get useProgressiveUpdate(){return this._get("useProgressiveUpdate")??!0}set useProgressiveUpdate(e){if(this._tileStrategy&&this.useProgressiveUpdate!==e){this._tileStrategy.destroy(),this.container.removeAllChildren();const t=this._getCacheSize(e);this._tileStrategy=new P({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:t,tileInfoView:this._tileInfoView}),this._set("useProgressiveUpdate",e),this.layerView.requestUpdate()}}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume();const{extent:t,resolution:i,scale:s}=e.state,r=this._tileInfoView.getClosestInfoForScale(s);if(this.layer.raster){if(!this.useProgressiveUpdate||this._needBlockCacheUpdate){const e=this._srcResolutions[r.level],s="toJSON"in t?t:h.fromJSON(t);p(this._blockCacheRegistryUrl,this._blockCacheRegistryId,s,i,e,this.layer.raster.ioConfig.sampling)}this._needBlockCacheUpdate=!1,this.previousLOD?.level!==r.level&&(this.previousLOD=r,null!=this._symbolizerParams&&this.canUseLocalSymbolizerParams&&this._updateSymbolizerParams(),this._tileStrategy.updateCacheSize(0))}}moveEnd(){!this.isCPUBasedDRA&&this.useProgressiveUpdate||(this._abortController&&this._abortController.abort(),this._abortController=new AbortController,0===this._fetchQueue.length&&this._redrawImage(this._abortController.signal).then(()=>{this._globalUpdateRequested=!1,this.layerView.requestUpdate()}));const e=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy.updateCacheSize(e),this.layerView.requestUpdate()}get updating(){return this._globalUpdateRequested||this._updatingHandles?.updating}attach(){const e=U();this._maxIndexedColormapSize=4*(e.maxTextureSize||4096),this._initializeTileInfo(),this._tileInfoView=new b(this.layerView.tileInfo,this.layerView.fullExtent);const t=this._computeFetchConcurrency();this._fetchQueue=new w({tileInfoView:this._tileInfoView,concurrency:t,process:(e,t)=>this._fetchTile(e,t),priority:R.MAPVIEW_FETCH_QUEUE,scheduler:this.scheduler});const i=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy=new P({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:i,tileInfoView:this._tileInfoView}),this._updateBlockCacheRegistry()}detach(){this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._fetchQueue=this._tileStrategy=this._tileInfoView=null,m(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryUrl=this._blockCacheRegistryId=null}acquireTile(e){const t=this.container.createTile(e);return this._updatingHandles.addPromise(this._enqueueTileFetch(t)),this.layerView.requestUpdate(),this._needBlockCacheUpdate=!0,this._globalUpdateRequested=this.isCPUBasedDRA||!this.useProgressiveUpdate,t}releaseTile(e){this._fetchQueue.abort(e.key.id),this.container.removeChild(e),e.once("detach",()=>{e.destroy(),this.layerView.requestUpdate()}),this.layerView.requestUpdate()}createEmptyTilePixelBlock(e=null){const t=null==e||e.join(",")===this._tileInfoView.tileInfo.size.join(",");if(t&&null!=this._emptyTilePixelBlock)return this._emptyTilePixelBlock;e=e||this._tileInfoView.tileInfo.size;const[i,s]=e,r=new u({width:i,height:s,pixels:[new Uint8Array(i*s)],mask:new Uint8Array(i*s),pixelType:"u8"});return t&&(this._emptyTilePixelBlock=r),r}_getBandIds(){if(!("rasterFunctionChain"in this.container)||!this.container.rasterFunctionChain)return this.layer.bandIds;const{bandIds:e,raster:t}=this.layer,i="rasterFunction"in t?t.rasterFunction.rawInputBandIds:null;return e?.length&&i?.length&&1!==t.rasterInfo.bandCount?e.map(e=>i[Math.min(e,i.length-1)]):"rasterFunction"in t?i:e}updateRasterFunctionParameters(){}_fetchTile(e,t){const i=this._getFetchOptions(e.level,t.signal);return this.fetchTile(e,i)}_getFetchOptions(e,t){const{canUseWebGLForProcessing:i}=this,{layerView:s}=this,{tileInfo:r}=s,a=!r.isWrappable&&null!=_(s.view.spatialReference),o=i&&this.layer.raster.hasUniqueSourceStorageInfo,{layer:l}=this.layerView,n=l.serviceRasterInfo?.storageInfo.isBsqTile?l.getRawDisplayBandIds():void 0;return{allowPartialFill:!0,datumTransformation:s.datumTransformation,interpolation:i?"nearest":this.layer.interpolation,registryId:this._blockCacheRegistryId,requestRawData:o,skipRasterFunction:"raster"===this.type&&null!=this.container.rasterFunctionChain,signal:t,srcResolution:this._srcResolutions[e],timeExtent:s.timeExtent,tileInfo:r,bandIds:n,disableWrapAround:a}}_getCacheSize(e){return e?40:0}_initializeTileInfo(){const{layerView:e}=this,t=e.view.spatialReference;if(this._canUseLayerLODs()){const{origin:i,lods:s}=this.layer.tileInfo,r=s.map(({scale:e})=>e),a=d.create({spatialReference:t,size:I,scales:r,origin:i});return e.set("tileInfo",a),void(this._srcResolutions=s.map(({resolution:e})=>({x:e,y:e})))}const{scales:i,srcResolutions:r,isCustomTilingScheme:a}=f(this.layer.serviceRasterInfo,t,{tileSize:I,alignGlobalDatasetWithAGOL:!0,limitToSrcResolution:!1}),o=d.create({spatialReference:t,size:I,scales:i}),l=0===o.origin.x;s(e.fullExtent);const{xmin:n,ymax:h}=e.fullExtent;(l||a&&o.origin.x>n)&&(o.origin=new c({x:n,y:h,spatialReference:t})),this._isCustomTilingScheme=a,e.set("tileInfo",o),this._srcResolutions=r??[]}_canUseLayerLODs(){const{layer:e,layerView:t}=this;if("Map"!==e.raster.tileType)return!1;const{lods:i}=e.tileInfo,s=t.view.constraints?.effectiveLODs;return s?.length===i.length&&s.every(({scale:e},t)=>Math.abs(e-i[t].scale)<.001)}_computeFetchConcurrency(){const{blockBoundary:e}=this.layer.serviceRasterInfo.storageInfo,t=e[e.length-1];return(t.maxCol-t.minCol+1)*(t.maxRow-t.minRow+1)>64?2:10}async _enqueueTileFetch(e,t){if(!this._fetchQueue.has(e.key.id)){try{const t=await this._fetchQueue.push(e.key),r=this._getBandIds();let o=!this.useProgressiveUpdate||this.isCPUBasedDRA&&!this._globalSymbolizerParams;if(this._globalUpdateRequested&&!this.layerView.moving&&0===this._fetchQueue.length){o=!1;try{await this._redrawImage(this._abortController?.signal)}catch(s){a(s)&&i.getLogger(this).error(s)}this._globalUpdateRequested=!1}this.canUseLocalSymbolizerParams&&null==this._symbolizerParams&&this._updateSymbolizerParams();const l=this._tileInfoView.getTileCoords(C,e.key),n=this._tileInfoView.getTileResolution(e.key);await this.updateTileSource(e,{source:t,symbolizerParams:this._symbolizerParams,globalSymbolizerParams:this._globalSymbolizerParams,suspended:o,bandIds:r,coords:l,resolution:n}),e.once("attach",()=>this.layerView.requestUpdate()),this.container.addChild(e)}catch(s){a(s)||i.getLogger(this).error(s)}this.layerView.requestUpdate()}}async _redrawImage(e){if(0===this.container.children.length)return;await this.layer.updateRenderer(),this.isCPUBasedDRA?await this._updateGlobalSymbolizerParams(e):(this.canUseLocalSymbolizerParams&&this._updateSymbolizerParams(),this._globalSymbolizerParams=null);const t=this.container.children.map(async e=>this.updateTileSymbolizerParameters(e,{local:this._symbolizerParams,global:this._globalSymbolizerParams}));await Promise.allSettled(t),this.container.requestRender()}async _updateGlobalSymbolizerParams(e){const t=this._getFetchOptions(this.previousLOD.level,e),i=await this.layer.fetchPixels(this.layerView.view.extent,this.layerView.view.width,this.layerView.view.height,{...t,interpolation:"nearest",requestRawData:!1,skipRasterFunction:!1});if(!i?.pixelBlock)return;const{resolution:s}=this.previousLOD,{isBsqTile:r}=this.layer.raster.rasterInfo.storageInfo,a=r?null:this._getBandIds(),o=this.layer.symbolizer.generateWebGLParameters({pixelBlock:i.pixelBlock.extractBands(a),isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:s,y:s},bandIds:a});!this.canUseWebGLForProcessing&&o&&"stretch"===o.type&&this.layer.renderer&&"raster-stretch"===this.layer.renderer.type&&(o.factor=o.factor.map(e=>255*e),o.minOutput=Math.round(255*o.minOutput),o.maxOutput=Math.round(255*o.maxOutput)),this._globalSymbolizerParams=o}_updateSymbolizerParams(){const{resolution:e}=this.previousLOD,t=this._getBandIds();this._symbolizerParams=this.layer.symbolizer.generateWebGLParameters({pixelBlock:null,isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:e,y:e},bandIds:t})}_updateBlockCacheRegistry(e=!1){const{layer:t,layerView:i}=this,{raster:s}=t,{multidimensionalDefinition:r}=t.normalizeRasterFetchOptions({multidimensionalDefinition:t.multidimensionalDefinition,timeExtent:i.timeExtent}),a=s.rasterInfo.multidimensionalInfo?s.getSliceIndex(r):null,o=s.rasterInfo.storageInfo.isBsqTile?t.getRawDisplayBandIds():null,l=y(s.rasterId,a,o);if(l!==this._blockCacheRegistryUrl){if(null!=this._blockCacheRegistryUrl&&m(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryId=g(l,s.rasterInfo),e){const{view:e}=i,t=this._tileInfoView.getClosestInfoForScale(e.scale),r=this._srcResolutions[t.level];p(l,this._blockCacheRegistryId,e.extent,e.resolution,r,s.ioConfig.sampling)}this._blockCacheRegistryUrl=l}}async doRefresh(){if(!this.attached||!this.previousLOD||this.layerView.suspended)return;await this.layer.updateRenderer(),this.canUseLocalSymbolizerParams&&this._updateSymbolizerParams(),this._updateBlockCacheRegistry(!0),this._fetchQueue.reset();const e=[];this._globalUpdateRequested=this.isCPUBasedDRA||!this.useProgressiveUpdate,this._tileStrategy.refresh(t=>e.push(this._enqueueTileFetch(t))),await this._updatingHandles.addPromise(Promise.allSettled(e))}};e([o()],S.prototype,"_globalUpdateRequested",void 0),e([o()],S.prototype,"attached",void 0),e([o()],S.prototype,"canUseWebGLForProcessing",null),e([o()],S.prototype,"canUseLocalSymbolizerParams",null),e([o()],S.prototype,"isCPUBasedDRA",null),e([o()],S.prototype,"container",void 0),e([o()],S.prototype,"layer",void 0),e([o()],S.prototype,"layerView",void 0),e([o()],S.prototype,"scheduler",void 0),e([o()],S.prototype,"type",void 0),e([o()],S.prototype,"useWebGLForProcessing",null),e([o()],S.prototype,"useProgressiveUpdate",null),e([o()],S.prototype,"timeExtent",void 0),e([o()],S.prototype,"updating",null),S=e([l("esri.views.2d.layers.imagery.BaseImageryTileSubView2D")],S);export{S as BaseImageryTileSubView2D};
5
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import i from"../../../../core/Logger.js";import{assertIsSome as s}from"../../../../core/maybe.js";import{debounce as r,isAbortError as a}from"../../../../core/promiseUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as n}from"../../../../core/support/UpdatingHandles.js";import h from"../../../../geometry/Extent.js";import c from"../../../../geometry/Point.js";import u from"../../../../layers/support/PixelBlock.js";import d from"../../../../layers/support/TileInfo.js";import{update as p,unregister as m,getRasterId as y,register as g}from"../../../../layers/support/rasterDatasets/RawBlockCache.js";import{getWorldWidth as _,computeProjectedScales as f}from"../../../../layers/support/rasterFunctions/rasterProjectionHelper.js";import b from"../../tiling/TileInfoView.js";import"../../tiling/TileKey.js";import w from"../../tiling/TileQueue.js";import P from"../../tiling/TileStrategy.js";import{tileSize as I}from"../../engine/webgl/definitions.js";import{TaskPriority as R}from"../../../support/Scheduler.js";import{getWebGLCapabilities as U}from"../../../webgl/capabilities.js";const C=[0,0];let S=class extends t{constructor(){super(...arguments),this._updatingHandles=new n,this._emptyTilePixelBlock=null,this._tileStrategy=null,this._tileInfoView=null,this._fetchQueue=null,this._blockCacheRegistryUrl=null,this._blockCacheRegistryId=null,this._srcResolutions=[],this.previousLOD=null,this._needBlockCacheUpdate=!1,this._globalSymbolizerParams=null,this._symbolizerParams=null,this._abortController=null,this._isCustomTilingScheme=!1,this._maxIndexedColormapSize=0,this._rasterFunctionState="na",this._globalUpdateRequested=!1,this.attached=!1,this.timeExtent=null,this.redrawOrRefetch=r(async(e={})=>{const t=this._rasterFunctionState,i=e.reprocess||"gpu"===t&&!this.canUseWebGLForProcessing||"cpu"===t&&this.canUseWebGLForProcessing;if(i&&(await this._updatingHandles.addPromise(this.layer.updateRasterFunction()),this.updateRasterFunctionParameters()),!this.previousLOD||this.layerView.suspended)return;const s=this._rasterFunctionState,{type:r}=this;return e.refetch||"raster"!==r&&!!i||"cpu"===s||"cpu"===t?this._updatingHandles.addPromise(this.doRefresh()):this._updatingHandles.addPromise(this._redrawImage(e.signal))})}destroy(){this._updatingHandles.destroy()}get canUseWebGLForProcessing(){return!1}get canUseLocalSymbolizerParams(){return(this.canUseWebGLForProcessing||"rasterVF"===this.type)&&!this.layerView.hasTilingEffects}get isCPUBasedDRA(){const{renderer:e}=this.layer;return"raster-stretch"===e?.type&&e.dynamicRangeAdjustment&&(!this.canUseWebGLForProcessing||!("min-max"===e.stretchType||"standard-deviation"===e.stretchType))}get useWebGLForProcessing(){return this._get("useWebGLForProcessing")??!0}set useWebGLForProcessing(e){this._set("useWebGLForProcessing",e)}get useProgressiveUpdate(){return this._get("useProgressiveUpdate")??!0}set useProgressiveUpdate(e){if(this._tileStrategy&&this.useProgressiveUpdate!==e){this._tileStrategy.destroy(),this.container.removeAllChildren();const t=this._getCacheSize(e);this._tileStrategy=new P({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:t,tileInfoView:this._tileInfoView}),this._set("useProgressiveUpdate",e),this.layerView.requestUpdate()}}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume();const{extent:t,resolution:i,scale:s}=e.state,r=this._tileInfoView.getClosestInfoForScale(s);if(this.layer.raster){if(!this.useProgressiveUpdate||this._needBlockCacheUpdate){const e=this._srcResolutions[r.level],s="toJSON"in t?t:h.fromJSON(t);p(this._blockCacheRegistryUrl,this._blockCacheRegistryId,s,i,e,this.layer.raster.ioConfig.sampling)}this._needBlockCacheUpdate=!1,this.previousLOD?.level!==r.level&&(this.previousLOD=r,null!=this._symbolizerParams&&this.canUseLocalSymbolizerParams&&this._updateSymbolizerParams(),this._tileStrategy.updateCacheSize(0))}}moveEnd(){!this.isCPUBasedDRA&&this.useProgressiveUpdate||(this._abortController&&this._abortController.abort(),this._abortController=new AbortController,0===this._fetchQueue.length&&this._redrawImage(this._abortController.signal).then(()=>{this._globalUpdateRequested=!1,this.layerView.requestUpdate()}));const e=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy.updateCacheSize(e),this.layerView.requestUpdate()}get updating(){return this._globalUpdateRequested||this._updatingHandles?.updating}attach(){const e=U();this._maxIndexedColormapSize=4*(e.maxTextureSize||4096),this._initializeTileInfo(),this._tileInfoView=new b(this.layerView.tileInfo,this.layerView.fullExtent);const t=this._computeFetchConcurrency();this._fetchQueue=new w({tileInfoView:this._tileInfoView,concurrency:t,process:(e,t)=>this._fetchTile(e,t),priority:R.MAPVIEW_FETCH_QUEUE,scheduler:this.scheduler});const i=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy=new P({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:i,tileInfoView:this._tileInfoView}),this._updateBlockCacheRegistry()}detach(){this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._fetchQueue=this._tileStrategy=this._tileInfoView=null,m(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryUrl=this._blockCacheRegistryId=null}acquireTile(e){const t=this.container.createTile(e);return this._updatingHandles.addPromise(this._enqueueTileFetch(t)),this.layerView.requestUpdate(),this._needBlockCacheUpdate=!0,this._globalUpdateRequested=this.isCPUBasedDRA||!this.useProgressiveUpdate,t}releaseTile(e){this._fetchQueue.abort(e.key.id),this.container.removeChild(e),e.once("detach",()=>{e.destroy(),this.layerView.requestUpdate()}),this.layerView.requestUpdate()}createEmptyTilePixelBlock(e=null){const t=null==e||e.join(",")===this._tileInfoView.tileInfo.size.join(",");if(t&&null!=this._emptyTilePixelBlock)return this._emptyTilePixelBlock;e=e||this._tileInfoView.tileInfo.size;const[i,s]=e,r=new u({width:i,height:s,pixels:[new Uint8Array(i*s)],mask:new Uint8Array(i*s),pixelType:"u8"});return t&&(this._emptyTilePixelBlock=r),r}_getBandIds(){if(this.container&&(!("rasterFunctionChain"in this.container)||!this.container.rasterFunctionChain))return this.layer.bandIds;const{bandIds:e,raster:t}=this.layer,i="rasterFunction"in t?t.rasterFunction.rawInputBandIds:null;return e?.length&&i?.length&&1!==t.rasterInfo.bandCount?e.map(e=>i[Math.min(e,i.length-1)]):"rasterFunction"in t?i:e}updateRasterFunctionParameters(){}_fetchTile(e,t){const i=this._getFetchOptions(e.level,t.signal);return this.fetchTile(e,i)}_getFetchOptions(e,t){const{canUseWebGLForProcessing:i}=this,{layerView:s}=this,{tileInfo:r}=s,a=!r.isWrappable&&null!=_(s.view.spatialReference),o=i&&this.layer.raster.hasUniqueSourceStorageInfo,{layer:l}=this.layerView,n=l.serviceRasterInfo?.storageInfo.isBsqTile?l.getRawDisplayBandIds():void 0;return{allowPartialFill:!0,datumTransformation:s.datumTransformation,interpolation:i?"nearest":this.layer.interpolation,registryId:this._blockCacheRegistryId,requestRawData:o,skipRasterFunction:"raster"===this.type&&null!=this.container.rasterFunctionChain,signal:t,srcResolution:this._srcResolutions[e],timeExtent:s.timeExtent,tileInfo:r,bandIds:n,disableWrapAround:a}}_getCacheSize(e){return e?40:0}_initializeTileInfo(){const{layerView:e}=this,t=e.view.spatialReference;if(this._canUseLayerLODs()){const{origin:i,lods:s}=this.layer.tileInfo,r=s.map(({scale:e})=>e),a=d.create({spatialReference:t,size:I,scales:r,origin:i});return e.set("tileInfo",a),void(this._srcResolutions=s.map(({resolution:e})=>({x:e,y:e})))}const{scales:i,srcResolutions:r,isCustomTilingScheme:a}=f(this.layer.serviceRasterInfo,t,{tileSize:I,alignGlobalDatasetWithAGOL:!0,limitToSrcResolution:!1}),o=d.create({spatialReference:t,size:I,scales:i}),l=0===o.origin.x;s(e.fullExtent);const{xmin:n,ymax:h}=e.fullExtent;(l||a&&o.origin.x>n)&&(o.origin=new c({x:n,y:h,spatialReference:t})),this._isCustomTilingScheme=a,e.set("tileInfo",o),this._srcResolutions=r??[]}_canUseLayerLODs(){const{layer:e,layerView:t}=this;if("Map"!==e.raster.tileType)return!1;const{lods:i}=e.tileInfo,s=t.view.constraints?.effectiveLODs;return s?.length===i.length&&s.every(({scale:e},t)=>Math.abs(e-i[t].scale)<.001)}_computeFetchConcurrency(){const{blockBoundary:e}=this.layer.serviceRasterInfo.storageInfo,t=e[e.length-1];return(t.maxCol-t.minCol+1)*(t.maxRow-t.minRow+1)>64?2:10}async _enqueueTileFetch(e,t){if(!this._fetchQueue.has(e.key.id)){try{let t=e.once("detach",()=>t=void 0);const r=await this._fetchQueue.push(e.key),o=this._getBandIds();let l=!this.useProgressiveUpdate||this.isCPUBasedDRA&&!this._globalSymbolizerParams;if(this._globalUpdateRequested&&!this.layerView.moving&&0===this._fetchQueue.length){l=!1;try{await this._redrawImage(this._abortController?.signal)}catch(s){a(s)&&i.getLogger(this).error(s)}this._globalUpdateRequested=!1}if(!t)return;this.canUseLocalSymbolizerParams&&null==this._symbolizerParams&&this._updateSymbolizerParams();const n=this._tileInfoView.getTileCoords(C,e.key),h=this._tileInfoView.getTileResolution(e.key);await this.updateTileSource(e,{source:r,symbolizerParams:this._symbolizerParams,globalSymbolizerParams:this._globalSymbolizerParams,suspended:l,bandIds:o,coords:n,resolution:h}),t&&(e.once("attach",()=>this.layerView.requestUpdate()),this.container.addChild(e),t.remove())}catch(s){a(s)||i.getLogger(this).error(s)}this.layerView.requestUpdate()}}async _redrawImage(e){if(!this.attached||0===this.container.children.length)return;if(await this.layer.updateRenderer(),this.isCPUBasedDRA?await this._updateGlobalSymbolizerParams(e):(this.canUseLocalSymbolizerParams&&this._updateSymbolizerParams(),this._globalSymbolizerParams=null),!this.attached||e?.aborted)return;const t=this.container.children.map(async t=>this.updateTileSymbolizerParameters(t,{local:this._symbolizerParams,global:this._globalSymbolizerParams},e));await Promise.allSettled(t),this.attached&&!e?.aborted&&this.container.requestRender()}async _updateGlobalSymbolizerParams(e){const t=this._getFetchOptions(this.previousLOD.level,e),i=await this.layer.fetchPixels(this.layerView.view.extent,this.layerView.view.width,this.layerView.view.height,{...t,interpolation:"nearest",requestRawData:!1,skipRasterFunction:!1});if(!i?.pixelBlock)return;const{resolution:s}=this.previousLOD,{isBsqTile:r}=this.layer.raster.rasterInfo.storageInfo,a=r?null:this._getBandIds(),o=this.layer.symbolizer.generateWebGLParameters({pixelBlock:i.pixelBlock.extractBands(a),isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:s,y:s},bandIds:a});!this.canUseWebGLForProcessing&&o&&"stretch"===o.type&&this.layer.renderer&&"raster-stretch"===this.layer.renderer.type&&(o.factor=o.factor.map(e=>255*e),o.minOutput=Math.round(255*o.minOutput),o.maxOutput=Math.round(255*o.maxOutput)),this._globalSymbolizerParams=o}_updateSymbolizerParams(){const{resolution:e}=this.previousLOD,t=this._getBandIds();this._symbolizerParams=this.layer.symbolizer.generateWebGLParameters({pixelBlock:null,isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:e,y:e},bandIds:t})}_updateBlockCacheRegistry(e=!1){const{layer:t,layerView:i}=this,{raster:s}=t,{multidimensionalDefinition:r}=t.normalizeRasterFetchOptions({multidimensionalDefinition:t.multidimensionalDefinition,timeExtent:i.timeExtent}),a=s.rasterInfo.multidimensionalInfo?s.getSliceIndex(r):null,o=s.rasterInfo.storageInfo.isBsqTile?t.getRawDisplayBandIds():null,l=y(s.rasterId,a,o);if(l!==this._blockCacheRegistryUrl){if(null!=this._blockCacheRegistryUrl&&m(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryId=g(l,s.rasterInfo),e){const{view:e}=i,t=this._tileInfoView.getClosestInfoForScale(e.scale),r=this._srcResolutions[t.level];p(l,this._blockCacheRegistryId,e.extent,e.resolution,r,s.ioConfig.sampling)}this._blockCacheRegistryUrl=l}}async doRefresh(){if(!this.attached||!this.previousLOD||this.layerView.suspended)return;await this.layer.updateRenderer(),this.canUseLocalSymbolizerParams&&this._updateSymbolizerParams(),this._updateBlockCacheRegistry(!0),this._fetchQueue.reset();const e=[];this._globalUpdateRequested=this.isCPUBasedDRA||!this.useProgressiveUpdate,this._tileStrategy.refresh(t=>e.push(this._enqueueTileFetch(t))),await this._updatingHandles.addPromise(Promise.allSettled(e))}};e([o()],S.prototype,"_globalUpdateRequested",void 0),e([o()],S.prototype,"attached",void 0),e([o()],S.prototype,"canUseWebGLForProcessing",null),e([o()],S.prototype,"canUseLocalSymbolizerParams",null),e([o()],S.prototype,"isCPUBasedDRA",null),e([o()],S.prototype,"container",void 0),e([o()],S.prototype,"layer",void 0),e([o()],S.prototype,"layerView",void 0),e([o()],S.prototype,"scheduler",void 0),e([o()],S.prototype,"type",void 0),e([o()],S.prototype,"useWebGLForProcessing",null),e([o()],S.prototype,"useProgressiveUpdate",null),e([o()],S.prototype,"timeExtent",void 0),e([o()],S.prototype,"updating",null),S=e([l("esri.views.2d.layers.imagery.BaseImageryTileSubView2D")],S);export{S as BaseImageryTileSubView2D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../../../Color.js";import has from"../../../../core/has.js";import{numberMaxFloat32 as r}from"../../../../core/mathUtils.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{isFunctionRaster as o}from"../../../../layers/support/rasterDatasets/datasetUtils.js";import{getBytesPerPixel as n}from"../../../../layers/support/rasterFormats/pixelRangeUtils.js";import{convertGeometryToMask as a}from"../../../../layers/support/rasterFunctions/clipUtils.js";import{maxMapSizeGpu as l}from"../../../../layers/support/rasterFunctions/pixelUtils.js";import{RasterTileContainer as c}from"../../engine/imagery/RasterTileContainer.js";import{BaseImageryTileSubView2D as p}from"./BaseImageryTileSubView2D.js";import{canUseMajorityInterpolationOnDataSource as u}from"../support/util.js";import{defaultColor as h}from"../../../support/HighlightDefaults.js";import{getHighlightName as d}from"../../../support/highlightOptionsUtils.js";let m=class extends p{constructor(){super(...arguments),this.type="raster"}get canUseWebGLForProcessing(){const{loaded:e,symbolizer:t}=this.layer;if(!e||!t)return!1;const r=t.lookup.colormapLut?.indexedColormap,s=r&&r.length>this._maxIndexedColormapSize,i=n(this.layer.serviceRasterInfo);return!(has("ios")&&i>4)&&this.useWebGLForProcessing&&t.canRenderInWebGL&&!s&&!("majority"===this.layer.interpolation&&u(this.layer))}attach(){super.attach(),this.container=new c(this._tileInfoView),this.container.isCustomTilingScheme=this._isCustomTilingScheme,this.updateRasterFunctionParameters()}detach(){super.detach(),this.container.removeAllChildren(),this.container=null}fetchTile(e,t){return this.layer.fetchTile(e.level,e.row,e.col,t)}updateRasterFunctionParameters(){const{raster:e,type:t}=this.layer,{container:r}=this;if("Function"!==e.datasetFormat||"wcs"===t)return r.rasterFunctionChain=null,r.children.forEach(e=>{const{bitmap:t}=e;t&&(t.suspended=!0,t.processed=!1,t.projected&&(t.invalidateTexture(),t.rasterTexture=null))}),void(this._rasterFunctionState="na");const s=this._rasterFunctionState,{rasterFunction:i,primaryRasters:o}=e,n=i.supportsGPU&&(!o||o.rasters.length<=1),a=n?i.flatWebGLFunctionChain:null,{renderer:l}=this.layer,c=!n||!a?.functions.length||"raster-stretch"===l?.type&&l.dynamicRangeAdjustment||!this.canUseWebGLForProcessing;r.rasterFunctionChain=c?null:this._addProjection(a);const p=null==i?"na":r.rasterFunctionChain?"gpu":"cpu",u=s===p||"na"===s&&"cpu"===p&&0===a?.functions?.length;r.children.forEach(e=>{const{bitmap:t}=e;t&&(t.suspended=!u,t.processed=!1,t.processedTexture=null)}),this._rasterFunctionState=p}async updateTileSource(e,t){const r=this._getBandIds(),s=this._getLayerInterpolation(),{canUseWebGLForProcessing:i}=this,{source:n,globalSymbolizerParams:l,suspended:c,coords:p,resolution:u}=t,h=this.isCPUBasedDRA?l:t.symbolizerParams,{bitmap:d}=e;if([d.x,d.y]=p,d.resolution=u,null!=n?.pixelBlock){const e={extent:n.extent,pixelBlock:n.pixelBlock,srcPixelSize:n.srcTilePixelSize};if(d.rawPixelData=e,i)d.source=n.pixelBlock,d.isRendereredSource=!1;else{const t=await this.layer.applyRenderer(e,"stretch"===l?.type?l:void 0);d.source=t,d.isRendereredSource=!0}d.symbolizerParameters=i?h:null,d.transformGrid=i?n.transformGrid:null}else{const e=this.createEmptyTilePixelBlock();d.source=e,d.symbolizerParameters=i?h:null,d.transformGrid=null}const{isBsqTile:m}=this.layer.raster.rasterInfo.storageInfo;d.bandIds=i&&!m?r:null,d.width=this._tileInfoView.tileInfo.size[0],d.height=this._tileInfoView.tileInfo.size[1],d.interpolation=s,d.suspended=c;const{raster:f}=this.layer;if(o(f)){const t=f.getClippingGeometry(this.layerView.view.spatialReference);if(t){const r=f.getTileExtentFromTileInfo(e.key.level,e.key.row,e.key.col,this._tileInfoView.tileInfo);d.mask=a({srcExtent:r,geometry:t,size:[d.width,d.height]})}}d.invalidateTexture()}async updateTileSymbolizerParameters(e,t){const{local:r,global:s}=t,i=this._getBandIds(),o=this._getLayerInterpolation(),{canUseWebGLForProcessing:n}=this,{bitmap:a}=e,{rawPixelData:l}=a;n||null==l?(a.isRendereredSource&&null!=l&&(a.source=l.pixelBlock),a.isRendereredSource=!1):(a.source=await this.layer.applyRenderer(l,"stretch"===s?.type?s:void 0),a.isRendereredSource=!0),a.symbolizerParameters=n?this.layerView.hasTilingEffects?s:r:null;const{isBsqTile:c}=this.layer.raster.rasterInfo.storageInfo;a.bandIds=n&&!c?i:null,a.interpolation=o,a.suspended=!1}updateHighlightOptions(e){if(!e.length)return void(this.container.pixelHighlights=void 0);const s=[],{highlights:i}=this.layerView.view;e.sort((e,t)=>i.findIndex(({name:e})=>e===d(t.options))-i.findIndex(({name:t})=>t===d(e.options)));for(const{target:o,options:n}of e){const{pixelRanges:e}=o,a=Array.from({length:2*l},()=>0);for(let t=0;t<e.length;t++)a[2*t]=e[t][0],a[2*t+1]=e[t][1];for(let t=e.length;t<l;t++)a[2*t]=r,a[2*t+1]=-r;const c=o.bandId??0,p=d(n),u=i.find(e=>e.name===p)?.color??h,m=t.toUnitRGBA(u);s.push({ranges:a,bandId:c,color:m})}this.container.pixelHighlights=s}_getLayerInterpolation(){const{interpolation:e,renderer:t}=this.layer;if(!t)return e;const r=t.type;return"raster-colormap"===r||"unique-value"===r?"nearest":"raster-stretch"===t.type&&null!=t.colorRamp?"bilinear"===e||"cubic"===e?"bilinear":"nearest":e}_addProjection(e){return e?.functions?.length&&!e.hasFocalFunction&&e.functions.unshift({name:"Reproject",parameters:{targetImageSize:this._tileInfoView.tileInfo.size,requireNNEdge:e.isSourceSingleBand},pixelType:"f32",id:0,isNoopProcess:!1}),e}};e([s()],m.prototype,"canUseWebGLForProcessing",null),e([s()],m.prototype,"container",void 0),e([s()],m.prototype,"layer",void 0),e([s()],m.prototype,"type",void 0),m=e([i("esri.views.2d.layers.imagery.ImageryTileView2D")],m);export{m as default};
5
+ import{__decorate as e}from"tslib";import t from"../../../../Color.js";import has from"../../../../core/has.js";import{numberMaxFloat32 as r}from"../../../../core/mathUtils.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{isFunctionRaster as o}from"../../../../layers/support/rasterDatasets/datasetUtils.js";import{getBytesPerPixel as n}from"../../../../layers/support/rasterFormats/pixelRangeUtils.js";import{convertGeometryToMask as a}from"../../../../layers/support/rasterFunctions/clipUtils.js";import{maxMapSizeGpu as l}from"../../../../layers/support/rasterFunctions/pixelUtils.js";import{RasterTileContainer as c}from"../../engine/imagery/RasterTileContainer.js";import{BaseImageryTileSubView2D as p}from"./BaseImageryTileSubView2D.js";import{canUseMajorityInterpolationOnDataSource as u}from"../support/util.js";import{defaultColor as h}from"../../../support/HighlightDefaults.js";import{getHighlightName as d}from"../../../support/highlightOptionsUtils.js";let m=class extends p{constructor(){super(...arguments),this.type="raster"}get canUseWebGLForProcessing(){const{loaded:e,symbolizer:t}=this.layer;if(!e||!t)return!1;const r=t.lookup.colormapLut?.indexedColormap,s=r&&r.length>this._maxIndexedColormapSize,i=n(this.layer.serviceRasterInfo);return!(has("ios")&&i>4)&&this.useWebGLForProcessing&&t.canRenderInWebGL&&!s&&!("majority"===this.layer.interpolation&&u(this.layer))}attach(){super.attach(),this.container=new c(this._tileInfoView),this.container.isCustomTilingScheme=this._isCustomTilingScheme,this.updateRasterFunctionParameters()}detach(){super.detach(),this.container.removeAllChildren(),this.container=null}fetchTile(e,t){return this.layer.fetchTile(e.level,e.row,e.col,t)}updateRasterFunctionParameters(){const{raster:e,type:t}=this.layer,{container:r}=this;if("Function"!==e.datasetFormat||"wcs"===t)return r.rasterFunctionChain=null,r.children.forEach(e=>{const{bitmap:t}=e;t&&(t.suspended=!0,t.processed=!1,t.projected&&(t.invalidateTexture(),t.rasterTexture=null))}),void(this._rasterFunctionState="na");const s=this._rasterFunctionState,{rasterFunction:i,primaryRasters:o}=e,n=i.supportsGPU&&(!o||o.rasters.length<=1),a=n?i.flatWebGLFunctionChain:null,{renderer:l}=this.layer,c=!n||!a?.functions.length||"raster-stretch"===l?.type&&l.dynamicRangeAdjustment||!this.canUseWebGLForProcessing;r.rasterFunctionChain=c?null:this._addProjection(a);const p=null==i?"na":r.rasterFunctionChain?"gpu":"cpu",u=s===p||"na"===s&&"cpu"===p&&0===a?.functions?.length;r.children.forEach(e=>{const{bitmap:t}=e;t&&(t.suspended=!u,t.processed=!1,t.processedTexture=null)}),this._rasterFunctionState=p}async updateTileSource(e,t){const r=this._getBandIds(),s=this._getLayerInterpolation(),{canUseWebGLForProcessing:i}=this,{source:n,globalSymbolizerParams:l,suspended:c,coords:p,resolution:u}=t,h=this.isCPUBasedDRA?l:t.symbolizerParams,{bitmap:d}=e;if([d.x,d.y]=p,d.resolution=u,null!=n?.pixelBlock){const e={extent:n.extent,pixelBlock:n.pixelBlock,srcPixelSize:n.srcTilePixelSize};if(d.rawPixelData=e,i)d.source=n.pixelBlock,d.isRendereredSource=!1;else{const t=await this.layer.applyRenderer(e,"stretch"===l?.type?l:void 0);d.source=t,d.isRendereredSource=!0}d.symbolizerParameters=i?h:null,d.transformGrid=i?n.transformGrid:null}else{const e=this.createEmptyTilePixelBlock();d.source=e,d.symbolizerParameters=i?h:null,d.transformGrid=null}const{isBsqTile:m}=this.layer.raster.rasterInfo.storageInfo;d.bandIds=i&&!m?r:null,d.width=this._tileInfoView.tileInfo.size[0],d.height=this._tileInfoView.tileInfo.size[1],d.interpolation=s,d.suspended=c;const{raster:f}=this.layer;if(o(f)){const t=f.getClippingGeometry(this.layerView.view.spatialReference);if(t){const r=f.getTileExtentFromTileInfo(e.key.level,e.key.row,e.key.col,this._tileInfoView.tileInfo);d.mask=a({srcExtent:r,geometry:t,size:[d.width,d.height]})}}d.invalidateTexture()}async updateTileSymbolizerParameters(e,t,r){const{local:s,global:i}=t,o=this._getBandIds(),n=this._getLayerInterpolation(),{canUseWebGLForProcessing:a}=this,{bitmap:l}=e,{rawPixelData:c}=l;a||null==c?(l.isRendereredSource&&null!=c&&(l.source=c.pixelBlock),l.isRendereredSource=!1):(l.source=await this.layer.applyRenderer(c,"stretch"===i?.type?i:void 0,{signal:r}),l.isRendereredSource=!0),l.symbolizerParameters=a?this.layerView.hasTilingEffects?i:s:null;const{isBsqTile:p}=this.layer.raster.rasterInfo.storageInfo;l.bandIds=a&&!p?o:null,l.interpolation=n,l.suspended=!1}updateHighlightOptions(e){if(!e.length)return void(this.container.pixelHighlights=void 0);const s=[],{highlights:i}=this.layerView.view;e.sort((e,t)=>i.findIndex(({name:e})=>e===d(t.options))-i.findIndex(({name:t})=>t===d(e.options)));for(const{target:o,options:n}of e){const{pixelRanges:e}=o,a=Array.from({length:2*l},()=>0);for(let t=0;t<e.length;t++)a[2*t]=e[t][0],a[2*t+1]=e[t][1];for(let t=e.length;t<l;t++)a[2*t]=r,a[2*t+1]=-r;const c=o.bandId??0,p=d(n),u=i.find(e=>e.name===p)?.color??h,m=t.toUnitRGBA(u);s.push({ranges:a,bandId:c,color:m})}this.container.pixelHighlights=s}_getLayerInterpolation(){const{interpolation:e,renderer:t}=this.layer;if(!t)return e;const r=t.type;return"raster-colormap"===r||"unique-value"===r?"nearest":"raster-stretch"===t.type&&null!=t.colorRamp?"bilinear"===e||"cubic"===e?"bilinear":"nearest":e}_addProjection(e){return e?.functions?.length&&!e.hasFocalFunction&&e.functions.unshift({name:"Reproject",parameters:{targetImageSize:this._tileInfoView.tileInfo.size,requireNNEdge:e.isSourceSingleBand},pixelType:"f32",id:0,isNoopProcess:!1}),e}};e([s()],m.prototype,"canUseWebGLForProcessing",null),e([s()],m.prototype,"container",void 0),e([s()],m.prototype,"layer",void 0),e([s()],m.prototype,"type",void 0),m=e([i("esri.views.2d.layers.imagery.ImageryTileView2D")],m);export{m 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/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import i from"../../../../Viewpoint.js";import{prefersReducedMotion as o}from"../../../../core/a11yUtils.js";import e from"../../../../core/Accessor.js";import{when as m}from"../../../../core/reactiveUtils.js";import{createScreenPointArray as s}from"../../../../core/screenUtils.js";import{Seconds as n,secondsFromMilliseconds as r}from"../../../../core/time.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as p}from"../../../../core/accessorSupport/decorators/subclass.js";import{g as c}from"../../../../chunks/vec32.js";import{create as h,fromValues as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import d from"../../../../geometry/Point.js";import{translateBy as v}from"../../viewpointUtils.js";import{PanPlanarMomentumEstimator as l}from"../../../navigation/PanPlanarMomentumEstimator.js";let g=class extends e{constructor(t){super(t),this.animationTime=n(0),this.momentumEstimator=new l(500,6,.92),this.momentum=null,this.tmpMomentum=h(),this.momentumFinished=!1,this.viewpoint=new i({targetGeometry:new d,scale:0,rotation:0}),this._previousDrag=null,this.addHandles(m(()=>this.momentumFinished,()=>this.navigation.stop()))}begin(t,i){this.navigation.begin(),this.momentumEstimator.reset(),this.addToEstimator(i),this._previousDrag=i}update(t,i){this.addToEstimator(i);let o=i.center.x,e=i.center.y;const m=this._previousDrag;o=m?m.center.x-o:-o,e=m?e-m.center.y:e,t.viewpoint=v(this.viewpoint,t.viewpoint,[o||0,e||0]),this._previousDrag=i}end(t,i){this.addToEstimator(i);const e=t.navigation.momentumEnabled&&!o();this.momentum=e?this.momentumEstimator.evaluateMomentum():null,this.animationTime=n(0),this.momentum&&this.onAnimationUpdate(t),this._previousDrag=null,this.navigation.end()}addToEstimator(t){const i=t.center.x,o=t.center.y,e=s(-i,o),m=u(-i,o,0);this.momentumEstimator.add(e,m,.001*t.timestamp)}onAnimationUpdate(t){this.navigation.animationManager?.animateContinuous(t.viewpoint,(i,o)=>{const{momentum:e,animationTime:m,tmpMomentum:s}=this,a=this.momentumFinished=!e||e.isFinished(m),p=r(o);if(!a){const o=e.valueDelta(m,p);c(s,e.direction,o),v(i,i,s),t.constraints.constrainByGeometry(i)}this.animationTime=n(this.animationTime+p)})}stopMomentumNavigation(){this.momentum&&(this.momentumEstimator.reset(),this.momentum=null,this.navigation.stop())}};t([a()],g.prototype,"momentumFinished",void 0),t([a()],g.prototype,"viewpoint",void 0),t([a()],g.prototype,"navigation",void 0),g=t([p("esri.views.2d.navigation.actions.Pan")],g);export{g as default};
5
+ import{__decorate as t}from"tslib";import i from"../../../../Viewpoint.js";import{prefersReducedMotion as o}from"../../../../core/a11yUtils.js";import e from"../../../../core/Accessor.js";import{when as m}from"../../../../core/reactiveUtils.js";import{createScreenPointArray as s}from"../../../../core/screenUtils.js";import{Seconds as n,secondsFromMilliseconds as r}from"../../../../core/time.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as p}from"../../../../core/accessorSupport/decorators/subclass.js";import{h as c}from"../../../../chunks/vec32.js";import{create as h,fromValues as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import d from"../../../../geometry/Point.js";import{translateBy as v}from"../../viewpointUtils.js";import{PanPlanarMomentumEstimator as l}from"../../../navigation/PanPlanarMomentumEstimator.js";let g=class extends e{constructor(t){super(t),this.animationTime=n(0),this.momentumEstimator=new l(500,6,.92),this.momentum=null,this.tmpMomentum=h(),this.momentumFinished=!1,this.viewpoint=new i({targetGeometry:new d,scale:0,rotation:0}),this._previousDrag=null,this.addHandles(m(()=>this.momentumFinished,()=>this.navigation.stop()))}begin(t,i){this.navigation.begin(),this.momentumEstimator.reset(),this.addToEstimator(i),this._previousDrag=i}update(t,i){this.addToEstimator(i);let o=i.center.x,e=i.center.y;const m=this._previousDrag;o=m?m.center.x-o:-o,e=m?e-m.center.y:e,t.viewpoint=v(this.viewpoint,t.viewpoint,[o||0,e||0]),this._previousDrag=i}end(t,i){this.addToEstimator(i);const e=t.navigation.momentumEnabled&&!o();this.momentum=e?this.momentumEstimator.evaluateMomentum():null,this.animationTime=n(0),this.momentum&&this.onAnimationUpdate(t),this._previousDrag=null,this.navigation.end()}addToEstimator(t){const i=t.center.x,o=t.center.y,e=s(-i,o),m=u(-i,o,0);this.momentumEstimator.add(e,m,.001*t.timestamp)}onAnimationUpdate(t){this.navigation.animationManager?.animateContinuous(t.viewpoint,(i,o)=>{const{momentum:e,animationTime:m,tmpMomentum:s}=this,a=this.momentumFinished=!e||e.isFinished(m),p=r(o);if(!a){const o=e.valueDelta(m,p);c(s,e.direction,o),v(i,i,s),t.constraints.constrainByGeometry(i)}this.animationTime=n(this.animationTime+p)})}stopMomentumNavigation(){this.momentum&&(this.momentumEstimator.reset(),this.momentum=null,this.navigation.stop())}};t([a()],g.prototype,"momentumFinished",void 0),t([a()],g.prototype,"viewpoint",void 0),t([a()],g.prototype,"navigation",void 0),g=t([p("esri.views.2d.navigation.actions.Pan")],g);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/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import"../../../../../intl.js";import t from"../../../../../core/Accessor.js";import{unitRGBAFromColor as i,multiplyOpacityToUnitRGBA as s,getContrast as r,multiplyOpacity as n}from"../../../../../core/colorUtils.js";import"../../../../../core/has.js";import{nextHighestPowerOfTen as a}from"../../../../../core/mathUtils.js";import{destroyMaybe as o}from"../../../../../core/maybe.js";import{formatDecimal as l}from"../../../../../core/quantityFormatUtils.js";import{watch as h,syncAndInitial as m,initial as c}from"../../../../../core/reactiveUtils.js";import{lengthUnitFromSpatialReference as d,convertUnit as p,adaptiveAreaUnit as u}from"../../../../../core/unitUtils.js";import{property as g}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as _}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromTranslation as v}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as L}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{d as b}from"../../../../../chunks/vec32.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{toPreferredAreaUnit as w,preferredLengthUnit as S}from"./utils.js";import{LabelVisualElement as y}from"../../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as j}from"../../../interactive/visualElements/LineVisualElement.js";import{MeasurementAreaVisualElement as C}from"../../../interactive/visualElements/MeasurementAreaVisualElement.js";import{GeodesicSegment as D,EuclideanSegment as V}from"../../../interactive/visualElements/support/Segment.js";import{midpoint3d as A}from"../../../support/mathUtils.js";import{createStipplePatternSimple as M}from"../../../webgl-engine/materials/lineStippleUtils.js";import{onLocaleChange as x}from"../../../../../intl/locale.js";import{fetchMessageBundle as P}from"../../../../../intl/messages.js";let R=class extends t{get _parameters(){const{accentColor:e,textColor:t}=this.view.effectiveTheme,a=i(e),o=s(e,.5),l=s(r(e),.5),h=r(t,160);return{accentColor:a,transparentAccentColor:o,transparentContrastColor:l,intersectingLineColor:[1,.2,0,1],textColor:t,textBackgroundColor:n(h,.6),textCalloutColor:n(h,.5),pathLineWidth:3,perimeterLineWidth:2,projectionLineWidth:2,projectionLineStippleSize:5,labelDistance:25}}get visible(){return this.analysisViewData.visible}get _renderUnits(){const e=this.view.renderCoordsHelper.spatialReference;return d(e)??"meters"}get testData(){}constructor(e){super(e),this._path=null,this._intersectedPath=null,this._perimeter=null,this._intersectedPerimeter=null,this._projectionLines=null,this._measurementArea=null,this._areaLabel=null,this._perimeterLengthLabel=null,this._pathSegments=[],this._perimeterSegments=[],this._origin=f(),this._originTransform=L(),this.messages=null,this.viewData=I,this.areaLabel=null,this.perimeterLengthLabel=null,this.loadingMessages=!0}initialize(){const{analysisViewData:e,_parameters:t,view:i}=this;this._path=new j({view:i,attached:!0,width:t.pathLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._intersectedPath=new j({view:i,attached:!0,width:t.pathLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._perimeter=new j({view:i,attached:!0,width:t.perimeterLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._intersectedPerimeter=new j({view:i,attached:!0,width:t.perimeterLineWidth,color:t.intersectingLineColor,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._projectionLines=new j({view:i,attached:!0,width:t.projectionLineWidth,stipplePattern:M(t.projectionLineStippleSize),polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._measurementArea=new C({view:i,attached:!0,isDecoration:!0});const s={attached:!0,view:i,isDecoration:!0};this._areaLabel=new y({...s,fontSize:16}),this._perimeterLengthLabel=new y({...s,fontSize:12}),this.addHandles([h(()=>[e.mode,this.visible,e.unit,e.measurementData,e.stagedPoint],()=>this._update(),m),h(()=>i.state?.camera,()=>this._updateLabels(),m),x(()=>this._updateMessageBundle()),h(()=>this._parameters,({accentColor:e,transparentAccentColor:t,transparentContrastColor:i,textColor:s,textBackgroundColor:r,textCalloutColor:n})=>{const{_path:a,_intersectedPath:o,_perimeter:l,_projectionLines:h,_measurementArea:m,_areaLabel:c,_perimeterLengthLabel:d}=this;a.color=e,o.color=e,l.color=e,h.color=e,m.color1=t,m.color2=i,c.textColor=s,c.backgroundColor=r,c.calloutColor=n,d.textColor=s,d.backgroundColor=r,d.calloutColor=n},c)]),this._updateMessageBundle()}destroy(){this._measurementArea=o(this._measurementArea),this._path=o(this._path),this._intersectedPath=o(this._intersectedPath),this._perimeter=o(this._perimeter),this._intersectedPerimeter=o(this._intersectedPerimeter),this._areaLabel=o(this._areaLabel),this._perimeterLengthLabel=o(this._perimeterLengthLabel),this._projectionLines=o(this._projectionLines),this.set("view",null)}_update(){if(this.destroyed||!this.view.ready||!this.view.renderCoordsHelper)return;const{analysisViewData:{measurementData:e},analysisViewData:t}=this;null!=e&&(this._updateViewData(e,t.path),this._updateOrigin(),this._updatePathSegments(),this._updatePerimeterSegments(),this._updateArea(),this._updateProjectionLines(),this._updateLabels())}_updateViewData(e,t){const i=e.validMeasurement,s="geodesic"===e.actualMeasurementMode,r=s?e.geodesicArea:e.area;let n=1;if(r){const e=w(r,this.analysisViewData.unit);n=a(Math.sqrt(e.value)/Math.sqrt(300)),n*=Math.sqrt(p(1,e.unit,"square-meters")),n=p(n,"meters",this._renderUnits)}const o={validMeasurement:i,numVertices:e.numVertices,hasStagedVertex:e.hasStagedVertex,path:t,mode:e.actualMeasurementMode,positionsRender:e.positionsRender,positionsFittedWorld:e.positionsFittedWorld,positionsFittedRender:e.positionsFittedRender,intersectingSegments:s?e.geodesicIntersectingSegments:e.intersectingSegments,triangleIndices:s?e.geodesicTriangleIndices:e.triangleIndices,areaCentroid:s?e.geodesicAreaCentroidRenderCoords:e.areaCentroidRenderCoords,perimeterLengthLabelSegmentIndex:0,area:s?e.geodesicArea:e.area,pathLength:s?e.geodesicPathLength:e.pathLength,perimeterLength:e.perimeterLength,checkerSize:n};this._set("viewData",o)}_updateOrigin(){const e=this.viewData;A(e.positionsRender,this._origin),v(this._originTransform,this._origin),this._measurementArea.transform=this._originTransform,this._projectionLines.transform=this._originTransform}_createSegments(e){const t=this.viewData,i=this.view.renderCoordsHelper.spatialReference,s=t.mode,r=[],n=[],a=[],o=t.numVertices,l=t.validMeasurement?o:o-1;for(let m=0;m<l;++m){const l=t[e][m],h=t[e][(m+1)%o];let c=null;switch(s){case"euclidean":c=new V(l,h);break;case"geodesic":c=new D(l,h,i)}t.intersectingSegments.has(m)?a.push(c):n.push(c),r.push(c)}let h=null;return t.validMeasurement&&t.hasStagedVertex&&l>=2?h=r[r.length-2]:t.hasStagedVertex&&l>=1&&(h=r[r.length-1]),{all:r,nonIntersecting:n,intersecting:a,stagedSegment:h}}_updatePathSegments(){const{visible:e}=this,t=this._createSegments("positionsRender");this._path.setGeometryFromSegments(t.nonIntersecting,this._origin),this._path.visible=e,this._intersectedPath.setGeometryFromSegments(t.intersecting,this._origin),this._intersectedPath.visible=e,this._pathSegments=t.all}_updatePerimeterSegments(){const e=this.visible&&"euclidean"===this.viewData.mode&&this.viewData.path.numVertices>2,t=this._createSegments("positionsFittedRender");this._perimeter.setGeometryFromSegments(t.nonIntersecting,this._origin),this._perimeter.visible=e,this._intersectedPerimeter.setGeometryFromSegments(t.intersecting,this._origin),this._intersectedPerimeter.visible=e,this._perimeterSegments=t.all}_updateArea(){const e=this.viewData;switch(e.mode){case"euclidean":this._updateAreaEuclidean(e);break;case"geodesic":this._updateAreaGeodesic()}}_updateAreaEuclidean(e){const t=this.visible;e.validMeasurement&&0===e.intersectingSegments.size&&e.triangleIndices?(this._measurementArea.geometry={uv:e.positionsFittedWorld,position:e.positionsFittedRender,triangleIndices:e.triangleIndices},this._measurementArea.size=[e.checkerSize,e.checkerSize],this._measurementArea.visible=t):this._measurementArea.visible=!1}_updateAreaGeodesic(){this._measurementArea.visible=!1}_updateProjectionLines(){const e=this.viewData,t=this.visible,i=e.mode,s=e.numVertices;if(s>0&&e.validMeasurement&&"euclidean"===i){const i=[];for(let t=0;t<s;++t){const s=f();b(s,e.positionsRender[t],this._origin);const r=f();b(r,e.positionsFittedRender[t],this._origin),i.push([s,r])}this._projectionLines.geometry=i,this._projectionLines.visible=t}else this._projectionLines.geometry=null,this._projectionLines.visible=!1}_updateLabels(){if(this.destroyed)return;const{viewData:e}=this,{area:t,path:i}=e;if(!i)return;const s=this.visible,r=this._areaLabel,n=this._perimeterLengthLabel,a=e.validMeasurement;r.visible=!0,n.visible=!0;let o=!1;const l=F(this.messages,t,this.analysisViewData.unit);if(null!=l&&s&&(r.geometry={type:"point",point:e.areaCentroid},r.text=l,o=e.validMeasurement&&0===e.intersectingSegments.size),this._set("areaLabel",l),s&&a&&0===e.intersectingSegments.size){const t="geodesic"===e.mode,i=t?e.pathLength:e.perimeterLength,s=z(this.messages,i,this.analysisViewData.unit);this._set("perimeterLengthLabel",s),n.distance=this._parameters.labelDistance,n.anchor="top",n.text=s;let r=!0;for(let a=0;a<e.numVertices;++a){const i=(e.perimeterLengthLabelSegmentIndex+a)%e.numVertices,s=t?this._pathSegments[i]:this._perimeterSegments[i];if(r=!0,n.geometry={type:"segment",segment:s,sampleLocation:"center"},!n.overlaps(this._areaLabel))break;r=!1}n.visible=r}else n.visible=!1;r.visible=o}_updateMessageBundle(){this.loadingMessages=!0,P("esri/core/t9n/Units").then(e=>{this.messages=e,this.view&&this._update()}).finally(()=>{this.loadingMessages=!1})}};function F(e,t,i){return e&&t&&l(e,t,u(t.value,t.unit,i))}function z(e,t,i){return e&&t&&l(e,t,S(t,i))}e([g()],R.prototype,"_parameters",null),e([g()],R.prototype,"view",void 0),e([g()],R.prototype,"messages",void 0),e([g()],R.prototype,"analysis",void 0),e([g()],R.prototype,"viewData",void 0),e([g()],R.prototype,"analysisViewData",void 0),e([g({readOnly:!0})],R.prototype,"areaLabel",void 0),e([g({readOnly:!0})],R.prototype,"perimeterLengthLabel",void 0),e([g()],R.prototype,"loadingMessages",void 0),e([g()],R.prototype,"visible",null),e([g()],R.prototype,"_renderUnits",null),R=e([_("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementVisualization")],R);const I={validMeasurement:!1,numVertices:0,hasStagedVertex:!1,path:null,mode:null,positionsRender:null,positionsFittedWorld:null,positionsFittedRender:null,intersectingSegments:null,triangleIndices:null,areaCentroid:null,perimeterLengthLabelSegmentIndex:null,checkerSize:null,area:null,pathLength:null,perimeterLength:null};export{R as AreaMeasurementVisualization};
5
+ import{__decorate as e}from"tslib";import"../../../../../intl.js";import t from"../../../../../core/Accessor.js";import{unitRGBAFromColor as i,multiplyOpacityToUnitRGBA as s,getContrast as r,multiplyOpacity as n}from"../../../../../core/colorUtils.js";import"../../../../../core/has.js";import{nextHighestPowerOfTen as a}from"../../../../../core/mathUtils.js";import{destroyMaybe as o}from"../../../../../core/maybe.js";import{formatDecimal as l}from"../../../../../core/quantityFormatUtils.js";import{watch as h,syncAndInitial as m,initial as c}from"../../../../../core/reactiveUtils.js";import{lengthUnitFromSpatialReference as p,convertUnit as d,adaptiveAreaUnit as u}from"../../../../../core/unitUtils.js";import{property as g}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/Logger.js";import"../../../../../core/RandomLCG.js";import{subclass as _}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromTranslation as v}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as L}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{e as b}from"../../../../../chunks/vec32.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{toPreferredAreaUnit as w,preferredLengthUnit as S}from"./utils.js";import{LabelVisualElement as y}from"../../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as j}from"../../../interactive/visualElements/LineVisualElement.js";import{MeasurementAreaVisualElement as C}from"../../../interactive/visualElements/MeasurementAreaVisualElement.js";import{GeodesicSegment as D,EuclideanSegment as V}from"../../../interactive/visualElements/support/Segment.js";import{midpoint3d as A}from"../../../support/mathUtils.js";import{createStipplePatternSimple as M}from"../../../webgl-engine/materials/lineStippleUtils.js";import{onLocaleChange as x}from"../../../../../intl/locale.js";import{fetchMessageBundle as P}from"../../../../../intl/messages.js";let R=class extends t{get _parameters(){const{accentColor:e,textColor:t}=this.view.effectiveTheme,a=i(e),o=s(e,.5),l=s(r(e),.5),h=r(t,160);return{accentColor:a,transparentAccentColor:o,transparentContrastColor:l,intersectingLineColor:[1,.2,0,1],textColor:t,textBackgroundColor:n(h,.6),textCalloutColor:n(h,.5),pathLineWidth:3,perimeterLineWidth:2,projectionLineWidth:2,projectionLineStippleSize:5,labelDistance:25}}get visible(){return this.analysisViewData.visible}get _renderUnits(){const e=this.view.renderCoordsHelper.spatialReference;return p(e)??"meters"}get testData(){}constructor(e){super(e),this._path=null,this._intersectedPath=null,this._perimeter=null,this._intersectedPerimeter=null,this._projectionLines=null,this._measurementArea=null,this._areaLabel=null,this._perimeterLengthLabel=null,this._pathSegments=[],this._perimeterSegments=[],this._origin=f(),this._originTransform=L(),this.messages=null,this.viewData=I,this.areaLabel=null,this.perimeterLengthLabel=null,this.loadingMessages=!0}initialize(){const{analysisViewData:e,_parameters:t,view:i}=this;this._path=new j({view:i,attached:!0,width:t.pathLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._intersectedPath=new j({view:i,attached:!0,width:t.pathLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._perimeter=new j({view:i,attached:!0,width:t.perimeterLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._intersectedPerimeter=new j({view:i,attached:!0,width:t.perimeterLineWidth,color:t.intersectingLineColor,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._projectionLines=new j({view:i,attached:!0,width:t.projectionLineWidth,stipplePattern:M(t.projectionLineStippleSize),polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._measurementArea=new C({view:i,attached:!0,isDecoration:!0});const s={attached:!0,view:i,isDecoration:!0};this._areaLabel=new y({...s,fontSize:16}),this._perimeterLengthLabel=new y({...s,fontSize:12}),this.addHandles([h(()=>[e.mode,this.visible,e.unit,e.measurementData,e.stagedPoint],()=>this._update(),m),h(()=>i.state?.camera,()=>this._updateLabels(),m),x(()=>this._updateMessageBundle()),h(()=>this._parameters,({accentColor:e,transparentAccentColor:t,transparentContrastColor:i,textColor:s,textBackgroundColor:r,textCalloutColor:n})=>{const{_path:a,_intersectedPath:o,_perimeter:l,_projectionLines:h,_measurementArea:m,_areaLabel:c,_perimeterLengthLabel:p}=this;a.color=e,o.color=e,l.color=e,h.color=e,m.color1=t,m.color2=i,c.textColor=s,c.backgroundColor=r,c.calloutColor=n,p.textColor=s,p.backgroundColor=r,p.calloutColor=n},c)]),this._updateMessageBundle()}destroy(){this._measurementArea=o(this._measurementArea),this._path=o(this._path),this._intersectedPath=o(this._intersectedPath),this._perimeter=o(this._perimeter),this._intersectedPerimeter=o(this._intersectedPerimeter),this._areaLabel=o(this._areaLabel),this._perimeterLengthLabel=o(this._perimeterLengthLabel),this._projectionLines=o(this._projectionLines),this.set("view",null)}_update(){if(this.destroyed||!this.view.ready||!this.view.renderCoordsHelper)return;const{analysisViewData:{measurementData:e},analysisViewData:t}=this;null!=e&&(this._updateViewData(e,t.path),this._updateOrigin(),this._updatePathSegments(),this._updatePerimeterSegments(),this._updateArea(),this._updateProjectionLines(),this._updateLabels())}_updateViewData(e,t){const i=e.validMeasurement,s="geodesic"===e.actualMeasurementMode,r=s?e.geodesicArea:e.area;let n=1;if(r){const e=w(r,this.analysisViewData.unit);n=a(Math.sqrt(e.value)/Math.sqrt(300)),n*=Math.sqrt(d(1,e.unit,"square-meters")),n=d(n,"meters",this._renderUnits)}const o={validMeasurement:i,numVertices:e.numVertices,hasStagedVertex:e.hasStagedVertex,path:t,mode:e.actualMeasurementMode,positionsRender:e.positionsRender,positionsFittedWorld:e.positionsFittedWorld,positionsFittedRender:e.positionsFittedRender,intersectingSegments:s?e.geodesicIntersectingSegments:e.intersectingSegments,triangleIndices:s?e.geodesicTriangleIndices:e.triangleIndices,areaCentroid:s?e.geodesicAreaCentroidRenderCoords:e.areaCentroidRenderCoords,perimeterLengthLabelSegmentIndex:0,area:s?e.geodesicArea:e.area,pathLength:s?e.geodesicPathLength:e.pathLength,perimeterLength:e.perimeterLength,checkerSize:n};this._set("viewData",o)}_updateOrigin(){const e=this.viewData;A(e.positionsRender,this._origin),v(this._originTransform,this._origin),this._measurementArea.transform=this._originTransform,this._projectionLines.transform=this._originTransform}_createSegments(e){const t=this.viewData,i=this.view.renderCoordsHelper.spatialReference,s=t.mode,r=[],n=[],a=[],o=t.numVertices,l=t.validMeasurement?o:o-1;for(let m=0;m<l;++m){const l=t[e][m],h=t[e][(m+1)%o];let c=null;switch(s){case"euclidean":c=new V(l,h);break;case"geodesic":c=new D(l,h,i)}t.intersectingSegments.has(m)?a.push(c):n.push(c),r.push(c)}let h=null;return t.validMeasurement&&t.hasStagedVertex&&l>=2?h=r[r.length-2]:t.hasStagedVertex&&l>=1&&(h=r[r.length-1]),{all:r,nonIntersecting:n,intersecting:a,stagedSegment:h}}_updatePathSegments(){const{visible:e}=this,t=this._createSegments("positionsRender");this._path.setGeometryFromSegments(t.nonIntersecting,this._origin),this._path.visible=e,this._intersectedPath.setGeometryFromSegments(t.intersecting,this._origin),this._intersectedPath.visible=e,this._pathSegments=t.all}_updatePerimeterSegments(){const e=this.visible&&"euclidean"===this.viewData.mode&&this.viewData.path.numVertices>2,t=this._createSegments("positionsFittedRender");this._perimeter.setGeometryFromSegments(t.nonIntersecting,this._origin),this._perimeter.visible=e,this._intersectedPerimeter.setGeometryFromSegments(t.intersecting,this._origin),this._intersectedPerimeter.visible=e,this._perimeterSegments=t.all}_updateArea(){const e=this.viewData;switch(e.mode){case"euclidean":this._updateAreaEuclidean(e);break;case"geodesic":this._updateAreaGeodesic()}}_updateAreaEuclidean(e){const t=this.visible;e.validMeasurement&&0===e.intersectingSegments.size&&e.triangleIndices?(this._measurementArea.geometry={uv:e.positionsFittedWorld,position:e.positionsFittedRender,triangleIndices:e.triangleIndices},this._measurementArea.size=[e.checkerSize,e.checkerSize],this._measurementArea.visible=t):this._measurementArea.visible=!1}_updateAreaGeodesic(){this._measurementArea.visible=!1}_updateProjectionLines(){const e=this.viewData,t=this.visible,i=e.mode,s=e.numVertices;if(s>0&&e.validMeasurement&&"euclidean"===i){const i=[];for(let t=0;t<s;++t){const s=f();b(s,e.positionsRender[t],this._origin);const r=f();b(r,e.positionsFittedRender[t],this._origin),i.push([s,r])}this._projectionLines.geometry=i,this._projectionLines.visible=t}else this._projectionLines.geometry=null,this._projectionLines.visible=!1}_updateLabels(){if(this.destroyed)return;const{viewData:e}=this,{area:t,path:i}=e;if(!i)return;const s=this.visible,r=this._areaLabel,n=this._perimeterLengthLabel,a=e.validMeasurement;r.visible=!0,n.visible=!0;let o=!1;const l=F(this.messages,t,this.analysisViewData.unit);if(null!=l&&s&&(r.geometry={type:"point",point:e.areaCentroid},r.text=l,o=e.validMeasurement&&0===e.intersectingSegments.size),this._set("areaLabel",l),s&&a&&0===e.intersectingSegments.size){const t="geodesic"===e.mode,i=t?e.pathLength:e.perimeterLength,s=z(this.messages,i,this.analysisViewData.unit);this._set("perimeterLengthLabel",s),n.distance=this._parameters.labelDistance,n.anchor="top",n.text=s;let r=!0;for(let a=0;a<e.numVertices;++a){const i=(e.perimeterLengthLabelSegmentIndex+a)%e.numVertices,s=t?this._pathSegments[i]:this._perimeterSegments[i];if(r=!0,n.geometry={type:"segment",segment:s,sampleLocation:"center"},!n.overlaps(this._areaLabel))break;r=!1}n.visible=r}else n.visible=!1;r.visible=o}_updateMessageBundle(){this.loadingMessages=!0,P("esri/core/t9n/Units").then(e=>{this.messages=e,this.view&&this._update()}).finally(()=>{this.loadingMessages=!1})}};function F(e,t,i){return e&&t&&l(e,t,u(t.value,t.unit,i))}function z(e,t,i){return e&&t&&l(e,t,S(t,i))}e([g()],R.prototype,"_parameters",null),e([g()],R.prototype,"view",void 0),e([g()],R.prototype,"messages",void 0),e([g()],R.prototype,"analysis",void 0),e([g()],R.prototype,"viewData",void 0),e([g()],R.prototype,"analysisViewData",void 0),e([g({readOnly:!0})],R.prototype,"areaLabel",void 0),e([g({readOnly:!0})],R.prototype,"perimeterLengthLabel",void 0),e([g()],R.prototype,"loadingMessages",void 0),e([g()],R.prototype,"visible",null),e([g()],R.prototype,"_renderUnits",null),R=e([_("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementVisualization")],R);const I={validMeasurement:!1,numVertices:0,hasStagedVertex:!1,path:null,mode:null,positionsRender:null,positionsFittedWorld:null,positionsFittedRender:null,intersectingSegments:null,triangleIndices:null,areaCentroid:null,perimeterLengthLabelSegmentIndex:null,checkerSize:null,area:null,pathLength:null,perimeterLength:null};export{R as AreaMeasurementVisualization};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{deg2rad as e}from"../../../../../core/mathUtils.js";import{createLength as t,toUnit as s,createArea as i}from"../../../../../core/quantityUtils.js";import{lengthUnitFromSpatialReference as n,areaUnitFromSpatialReference as o}from"../../../../../core/unitUtils.js";import{set as r,distance as h}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{j as l,c as d,h as g,u as c,d as p,e as m,g as u,f as _,n as f}from"../../../../../chunks/vec32.js";import{create as S}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as L}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{getReferenceEllipsoid as M}from"../../../../../geometry/ellipsoidUtils.js";import{canProjectWithoutEngine as C}from"../../../../../geometry/projectionUtils.js";import{getSphericalPCPF as P}from"../../../../../geometry/spatialReferenceEllipsoidUtils.js";import{projectDirection as R}from"../../../../../geometry/projection/projectDirection.js";import{projectPointToVector as U}from"../../../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as j}from"../../../../../geometry/projection/projectVectorToVector.js";import{compactIndices as A}from"../../../../../geometry/support/Indices.js";import{segmentIntersects as v}from"../../../../../geometry/support/intersectsBase.js";import{c as I}from"../../../../../chunks/sphere.js";import{areaPoints2d as V}from"../../../../../geometry/support/triangle.js";import{bestFitPlane as w,fitHemisphere as W,triangleAreaGeodesic as F,planePointDistance as y,boundingSphere as G}from"../../support/measurementUtils.js";import{getElevationAtPoint as T}from"../../../support/ElevationProvider.js";import{midpoint3d as x,makeOrthonormal as z,tangentFrame as q}from"../../../support/mathUtils.js";import{triangulate as b}from"../../../../support/euclideanAreaMeasurementUtils.js";import{euclideanDistanceBetweenPoints as E}from"../../../../support/euclideanLengthMeasurementUtils.js";import{supportsGeodesicMeasurement as D}from"../../../../support/geodesicMeasurementUtils.js";import{computeEuclideanMeasurementSR as B}from"../../../../support/measurementUtils.js";class k{get numVertices(){return this._length}get hasStagedVertex(){return null!=this._lastCursorPoint}constructor(e,t,s){this._sceneView=e,this._geodesicAreaMeasurementUtils=t,this._geodesicLengthMeasurementUtils=s,this.validMeasurement=!1,this.positionsWorld=[],this.positionsRender=[],this.positionsFittedWorld=[],this.positionsFittedRender=[],this.positionsGeodesic=[],this.positionsSpherical=[],this.positionsStereographic=[],this.pathSegmentLengths=[],this.geodesicPathSegmentLengths=[],this.perimeterSegmentLengths=[],this.intersectingSegments=new Set,this.geodesicIntersectingSegments=new Set,this.triangleIndices=null,this.geodesicTriangleIndices=null,this.areaCentroidWorldCoords=S(),this.areaCentroidRenderCoords=S(),this.geodesicAreaCentroidRenderCoords=S(),this.fittingMode=null,this.area=null,this.geodesicArea=null,this.pathLength=null,this.geodesicPathLength=null,this.perimeterLength=null,this._length=0,this._centroidRenderCoords=S(),this._planeWorldCoords=L(),this._worldUp=S(),this._worldTangent=S(),this._frame=[S(),S(),S()],this._lastPathVersion=-1,this._lastCursorPoint=null,this._mode=null,this._tempU=S(),this._tempV=S(),this._tempVec3=S(),this._tempSphere=I();const i=B(e.spatialReference);this._measurementSR=i,this._lengthMeasurementUnit=n(i)??"meters",this._areaMeasurementUnit=o(i)??"square-meters"}update(e,t,s,i,n,o){const r=this._lastPathVersion===e.version,h=t?t.equals(this._lastCursorPoint):null==this._lastCursorPoint,a=this._mode===n;return!(r&&!o&&a&&h)&&(this._lastPathVersion=e.version,this._lastCursorPoint=t,this._updateCursorSegmentLength(e,t),this._update(e,t,s,i,n),!0)}_update(e,s,i,n,o){const r=this._sceneView.renderSpatialReference,h=this._measurementSR,a=i.spatialReference;let l=e.numVertices;const d=!(null==s||s.equals(e.lastPoint)||l>2&&s.equals(e.firstPoint)||e.polygonIsClosed);d&&(l+=1);const g=!e.polygonIsClosed&&l>2,c=e.polygonIsClosed||g;this._resize(l);const p=P(a),m=null!=a&&D(a)?a:null,u=null!=m&&C(a,p),{positionsGeodesic:_,positionsWorld:S,positionsRender:L,positionsSpherical:M}=this,R=(e,t)=>{H(i.elevationProvider,e),U(e,S[t],h),U(e,L[t],r),u&&(U(e,_[t],m),U(e,M[t],p),f(M[t],M[t]))};e.forEachVertexPosition((e,t)=>R(e,t)),d&&R(s,l-1);const j=this._updatePathLengths(c);if(this.pathLength=this._length>1?t(j,this._lengthMeasurementUnit):null,u){const e=this._updateGeodesicPathLengths(c,m);this.geodesicPathLength=null!=e&&this._length>1?e:null}else this.geodesicPathLength=null;if(this._updateMode(o),!c)return this.area=null,this.geodesicArea=null,this.perimeterLength=null,this.triangleIndices=null,this.geodesicTriangleIndices=null,this.intersectingSegments.clear(),this.geodesicIntersectingSegments.clear(),void(this.validMeasurement=!1);this._updateAreaAndPerimeterLength(i,r,h,n),u&&this._updateGeodesicArea(i,m),this.validMeasurement=!0}getData(){return{validMeasurement:this.validMeasurement,numVertices:this.numVertices,hasStagedVertex:this.hasStagedVertex,positionsRender:this.positionsRender,positionsFittedWorld:this.positionsFittedWorld,positionsFittedRender:this.positionsFittedRender,intersectingSegments:this.intersectingSegments,geodesicIntersectingSegments:this.geodesicIntersectingSegments,triangleIndices:this.triangleIndices,geodesicTriangleIndices:this.geodesicTriangleIndices,areaCentroidRenderCoords:this.areaCentroidRenderCoords,geodesicAreaCentroidRenderCoords:this.geodesicAreaCentroidRenderCoords,area:this.area,geodesicArea:this.geodesicArea,pathLength:this.pathLength,geodesicPathLength:this.geodesicPathLength,perimeterLength:this.perimeterLength,actualMeasurementMode:this.actualMeasurementMode}}_resize(e){for(e<this._length&&(this.positionsWorld.length=e,this.positionsRender.length=e,this.positionsFittedWorld.length=e,this.positionsFittedRender.length=e,this.positionsGeodesic.length=e,this.positionsSpherical.length=e,this.positionsStereographic.length=e,this.pathSegmentLengths.length=e,this.geodesicPathSegmentLengths.length=e,this.perimeterSegmentLengths.length=e,this._length=e);this._length<e;)this.positionsWorld.push(S()),this.positionsRender.push(S()),this.positionsFittedWorld.push(a()),this.positionsFittedRender.push(S()),this.positionsGeodesic.push(S()),this.positionsSpherical.push(S()),this.positionsStereographic.push(a()),this.pathSegmentLengths.push(0),this.geodesicPathSegmentLengths.push(0),this.perimeterSegmentLengths.push(0),++this._length}_updatePathLengths(e){const t=this.positionsWorld,s=this.pathSegmentLengths;let i=0;const n=this._length;for(let o=0;o<n;++o){const r=s[o]=l(t[o],t[(o+1)%n]);(o<n-1||e)&&(i+=r)}return i}_updateGeodesicPathLengths(e,i){const n=this.positionsGeodesic,o=this.geodesicPathSegmentLengths;let r=0;const h=this._length;for(let t=0;t<h;++t){const a=this._geodesicLengthMeasurementUtils.geodesicDistance(n[t],n[(t+1)%h],i);if(null==a)return null;const l=s(a,"meters").value,d=o[t]=l;(t<h-1||e)&&(r+=d)}return t(r,"meters")}_updateAreaAndPerimeterLength(e,t,s,i){const n=e.renderCoordsHelper,o=this.positionsWorld,h=this.positionsRender,a=this.positionsFittedWorld,l=this.positionsFittedRender,f=this._planeWorldCoords,S=this._centroidRenderCoords;x(h,S),n.worldUpAtPosition(S,this._worldUp),n.worldBasisAtPosition(S,0,this._worldTangent),R(S,this._worldUp,t,this._worldUp,s),R(S,this._worldTangent,t,this._worldTangent,s),o.length>2&&w(o,f),this.fittingMode=this._selectFittingMode(f,o,this._worldUp,i);let L=0;if("horizontal"===this.fittingMode){let e=-1/0;h.forEach((t,s)=>{const i=n.getAltitude(h[s]);i>e&&(e=i,L=s)})}const M=o[L];let C=f,P=this._worldTangent;"horizontal"===this.fittingMode?C=this._worldUp:"vertical"===this.fittingMode&&(C=this._tempVec3,P=this._worldUp,z(f,this._worldUp,C)),d(this._frame[2],C),z(P,C,this._frame[0]),g(this._frame[1],this._frame[0],this._frame[2]),c(this._frame[1],this._frame[1]);const U=this._tempVec3,A=this._tempU,v=this._tempV;for(let d=0;d<this._length;++d){const e=a[d],i=l[d];p(U,o[d],M),r(e,m(this._frame[0],U),m(this._frame[1],U)),u(A,this._frame[0],e[0]),u(v,this._frame[1],e[1]),_(U,A,v),_(U,U,M),j(U,s,i,t)}this.perimeterLength=this._length>0?this._updatePerimeterLengths():null,x(l,this.areaCentroidRenderCoords),j(this.areaCentroidRenderCoords,t,this.areaCentroidWorldCoords,s),this._updateIntersectingSegments(),this.area=0===this.intersectingSegments.size?this._computeArea():null}_updateGeodesicArea(e,t){const{renderCoordsHelper:s,spatialReference:i}=e,{positionsSpherical:n,positionsStereographic:o}=this,h=this._tempVec3,a=W(n,h);if(!a)return void(this.geodesicArea=null);const l=this._tempU,d=this._tempV;q(h,l,d);for(let g=0;g<this._length;++g){const e=m(n[g],l),t=m(n[g],d),s=m(n[g],h);r(o[g],e/s,t/s)}u(h,h,M(i).radius),s.toRenderCoords(h,P(i),this.geodesicAreaCentroidRenderCoords),this._updateGeodesicIntersectingSegments(),this.geodesicArea=a&&0===this.geodesicIntersectingSegments.size?this._computeGeodesicArea(t):null}_updatePerimeterLengths(){const e=this.positionsFittedWorld,s=this.perimeterSegmentLengths;let i=0;for(let t=0;t<this._length;++t){i+=s[t]=h(e[t],e[(t+1)%this._length])}return t(i,this._lengthMeasurementUnit)}_updateIntersectingSegments(){const e=this.positionsFittedWorld,t=this.intersectingSegments;t.clear();for(let s=0;s<this._length;++s)for(let i=s+2;i<this._length;++i){if((i+1)%this._length===s)continue;const n=e[s],o=e[(s+1)%this._length],r=e[i],h=e[(i+1)%this._length];v(n,o,r,h)&&(t.add(s),t.add(i))}}_computeArea(){const e=this.positionsFittedWorld,t=this.triangleIndices=A(b(e));let s=0;for(let i=0;i<t.length;i+=3)s+=V(e[t[i]],e[t[i+1]],e[t[i+2]]);return i(s,this._areaMeasurementUnit)}_updateGeodesicIntersectingSegments(){const e=this.positionsStereographic,t=this.geodesicIntersectingSegments;t.clear();for(let s=0;s<this._length;++s)for(let i=s+2;i<this._length;++i){if((i+1)%this._length===s)continue;const n=e[s],o=e[(s+1)%this._length],r=e[i],h=e[(i+1)%this._length];v(n,o,r,h)&&(t.add(s),t.add(i))}}_computeGeodesicArea(e){const t=this.positionsGeodesic,n=this.positionsStereographic,o=this.geodesicTriangleIndices=A(b(n));let r=0;for(let i=0;i<o.length;i+=3){const n=F(t[o[i]],t[o[i+1]],t[o[i+2]],e,this._geodesicAreaMeasurementUtils);if(null==n)return null;r+=s(n,"square-meters").value}return i(r,"square-meters")}_selectFittingMode(t,s,i,n){const o=s.map(e=>Math.abs(y(t,e))).reduce((e,t)=>Math.max(e,t),0);G(s,this._tempSphere);const r=o/(2*this._tempSphere[3]),h=r<n.maxRelativeErrorCoplanar,a=r<n.maxRelativeErrorAlmostCoplanar;let l="horizontal";if(h)l="oblique";else if(a){l=Math.abs(m(i,t))>Math.cos(e(n.verticalAngleThreshold))?"horizontal":"vertical"}return l}_updateCursorSegmentLength(e,t){const s=e.lastPoint;e.isValidPolygon||null==s||null==t?(this.geodesicStagedSegmentLength=null,this.stagedSegmentLength=null):(this.geodesicStagedSegmentLength=this._geodesicLengthMeasurementUtils.geodesicDistanceBetweenPoints(s,t),this.stagedSegmentLength=E(s,t)?.direct)}_updateMode(e){if(0===e){this.actualMeasurementMode="euclidean";let e=0;null!=this.geodesicPathLength&&(e+=this.geodesicPathLength.value),e>Z&&(this.actualMeasurementMode="geodesic")}else this.actualMeasurementMode=1===e?"euclidean":"geodesic";null==this.geodesicPathLength&&(this.actualMeasurementMode="euclidean"),this._mode=e}}function H(e,t){t.hasZ||(t.z=T(e,t,"ground")??0)}const Z=1e5;export{k as MeasurementDataManager};
5
+ import{deg2rad as e}from"../../../../../core/mathUtils.js";import{createLength as t,toUnit as s,createArea as i}from"../../../../../core/quantityUtils.js";import{lengthUnitFromSpatialReference as n,areaUnitFromSpatialReference as o}from"../../../../../core/unitUtils.js";import{set as r,distance as h}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{k as l,d,i as g,u as c,e as p,f as m,h as u,g as _,n as f}from"../../../../../chunks/vec32.js";import{create as S}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as L}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{getReferenceEllipsoid as M}from"../../../../../geometry/ellipsoidUtils.js";import{canProjectWithoutEngine as C}from"../../../../../geometry/projectionUtils.js";import{getSphericalPCPF as P}from"../../../../../geometry/spatialReferenceEllipsoidUtils.js";import{projectDirection as R}from"../../../../../geometry/projection/projectDirection.js";import{projectPointToVector as U}from"../../../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as j}from"../../../../../geometry/projection/projectVectorToVector.js";import{compactIndices as A}from"../../../../../geometry/support/Indices.js";import{segmentIntersects as v}from"../../../../../geometry/support/intersectsBase.js";import{c as I}from"../../../../../chunks/sphere.js";import{areaPoints2d as V}from"../../../../../geometry/support/triangle.js";import{bestFitPlane as w,fitHemisphere as W,triangleAreaGeodesic as F,planePointDistance as y,boundingSphere as G}from"../../support/measurementUtils.js";import{getElevationAtPoint as T}from"../../../support/ElevationProvider.js";import{midpoint3d as x,makeOrthonormal as z,tangentFrame as q}from"../../../support/mathUtils.js";import{triangulate as b}from"../../../../support/euclideanAreaMeasurementUtils.js";import{euclideanDistanceBetweenPoints as E}from"../../../../support/euclideanLengthMeasurementUtils.js";import{supportsGeodesicMeasurement as D}from"../../../../support/geodesicMeasurementUtils.js";import{computeEuclideanMeasurementSR as k}from"../../../../support/measurementUtils.js";class B{get numVertices(){return this._length}get hasStagedVertex(){return null!=this._lastCursorPoint}constructor(e,t,s){this._sceneView=e,this._geodesicAreaMeasurementUtils=t,this._geodesicLengthMeasurementUtils=s,this.validMeasurement=!1,this.positionsWorld=[],this.positionsRender=[],this.positionsFittedWorld=[],this.positionsFittedRender=[],this.positionsGeodesic=[],this.positionsSpherical=[],this.positionsStereographic=[],this.pathSegmentLengths=[],this.geodesicPathSegmentLengths=[],this.perimeterSegmentLengths=[],this.intersectingSegments=new Set,this.geodesicIntersectingSegments=new Set,this.triangleIndices=null,this.geodesicTriangleIndices=null,this.areaCentroidWorldCoords=S(),this.areaCentroidRenderCoords=S(),this.geodesicAreaCentroidRenderCoords=S(),this.fittingMode=null,this.area=null,this.geodesicArea=null,this.pathLength=null,this.geodesicPathLength=null,this.perimeterLength=null,this._length=0,this._centroidRenderCoords=S(),this._planeWorldCoords=L(),this._worldUp=S(),this._worldTangent=S(),this._frame=[S(),S(),S()],this._lastPathVersion=-1,this._lastCursorPoint=null,this._mode=null,this._tempU=S(),this._tempV=S(),this._tempVec3=S(),this._tempSphere=I();const i=k(e.spatialReference);this._measurementSR=i,this._lengthMeasurementUnit=n(i)??"meters",this._areaMeasurementUnit=o(i)??"square-meters"}update(e,t,s,i,n,o){const r=this._lastPathVersion===e.version,h=t?t.equals(this._lastCursorPoint):null==this._lastCursorPoint,a=this._mode===n;return!(r&&!o&&a&&h)&&(this._lastPathVersion=e.version,this._lastCursorPoint=t,this._updateCursorSegmentLength(e,t),this._update(e,t,s,i,n),!0)}_update(e,s,i,n,o){const r=this._sceneView.renderSpatialReference,h=this._measurementSR,a=i.spatialReference;let l=e.numVertices;const d=!(null==s||s.equals(e.lastPoint)||l>2&&s.equals(e.firstPoint)||e.polygonIsClosed);d&&(l+=1);const g=!e.polygonIsClosed&&l>2,c=e.polygonIsClosed||g;this._resize(l);const p=P(a),m=null!=a&&D(a)?a:null,u=null!=m&&C(a,p),{positionsGeodesic:_,positionsWorld:S,positionsRender:L,positionsSpherical:M}=this,R=(e,t)=>{H(i.elevationProvider,e),U(e,S[t],h),U(e,L[t],r),u&&(U(e,_[t],m),U(e,M[t],p),f(M[t],M[t]))};e.forEachVertexPosition((e,t)=>R(e,t)),d&&R(s,l-1);const j=this._updatePathLengths(c);if(this.pathLength=this._length>1?t(j,this._lengthMeasurementUnit):null,u){const e=this._updateGeodesicPathLengths(c,m);this.geodesicPathLength=null!=e&&this._length>1?e:null}else this.geodesicPathLength=null;if(this._updateMode(o),!c)return this.area=null,this.geodesicArea=null,this.perimeterLength=null,this.triangleIndices=null,this.geodesicTriangleIndices=null,this.intersectingSegments.clear(),this.geodesicIntersectingSegments.clear(),void(this.validMeasurement=!1);this._updateAreaAndPerimeterLength(i,r,h,n),u&&this._updateGeodesicArea(i,m),this.validMeasurement=!0}getData(){return{validMeasurement:this.validMeasurement,numVertices:this.numVertices,hasStagedVertex:this.hasStagedVertex,positionsRender:this.positionsRender,positionsFittedWorld:this.positionsFittedWorld,positionsFittedRender:this.positionsFittedRender,intersectingSegments:this.intersectingSegments,geodesicIntersectingSegments:this.geodesicIntersectingSegments,triangleIndices:this.triangleIndices,geodesicTriangleIndices:this.geodesicTriangleIndices,areaCentroidRenderCoords:this.areaCentroidRenderCoords,geodesicAreaCentroidRenderCoords:this.geodesicAreaCentroidRenderCoords,area:this.area,geodesicArea:this.geodesicArea,pathLength:this.pathLength,geodesicPathLength:this.geodesicPathLength,perimeterLength:this.perimeterLength,actualMeasurementMode:this.actualMeasurementMode}}_resize(e){for(e<this._length&&(this.positionsWorld.length=e,this.positionsRender.length=e,this.positionsFittedWorld.length=e,this.positionsFittedRender.length=e,this.positionsGeodesic.length=e,this.positionsSpherical.length=e,this.positionsStereographic.length=e,this.pathSegmentLengths.length=e,this.geodesicPathSegmentLengths.length=e,this.perimeterSegmentLengths.length=e,this._length=e);this._length<e;)this.positionsWorld.push(S()),this.positionsRender.push(S()),this.positionsFittedWorld.push(a()),this.positionsFittedRender.push(S()),this.positionsGeodesic.push(S()),this.positionsSpherical.push(S()),this.positionsStereographic.push(a()),this.pathSegmentLengths.push(0),this.geodesicPathSegmentLengths.push(0),this.perimeterSegmentLengths.push(0),++this._length}_updatePathLengths(e){const t=this.positionsWorld,s=this.pathSegmentLengths;let i=0;const n=this._length;for(let o=0;o<n;++o){const r=s[o]=l(t[o],t[(o+1)%n]);(o<n-1||e)&&(i+=r)}return i}_updateGeodesicPathLengths(e,i){const n=this.positionsGeodesic,o=this.geodesicPathSegmentLengths;let r=0;const h=this._length;for(let t=0;t<h;++t){const a=this._geodesicLengthMeasurementUtils.geodesicDistance(n[t],n[(t+1)%h],i);if(null==a)return null;const l=s(a,"meters").value,d=o[t]=l;(t<h-1||e)&&(r+=d)}return t(r,"meters")}_updateAreaAndPerimeterLength(e,t,s,i){const n=e.renderCoordsHelper,o=this.positionsWorld,h=this.positionsRender,a=this.positionsFittedWorld,l=this.positionsFittedRender,f=this._planeWorldCoords,S=this._centroidRenderCoords;x(h,S),n.worldUpAtPosition(S,this._worldUp),n.worldBasisAtPosition(S,0,this._worldTangent),R(S,this._worldUp,t,this._worldUp,s),R(S,this._worldTangent,t,this._worldTangent,s),o.length>2&&w(o,f),this.fittingMode=this._selectFittingMode(f,o,this._worldUp,i);let L=0;if("horizontal"===this.fittingMode){let e=-1/0;h.forEach((t,s)=>{const i=n.getAltitude(h[s]);i>e&&(e=i,L=s)})}const M=o[L];let C=f,P=this._worldTangent;"horizontal"===this.fittingMode?C=this._worldUp:"vertical"===this.fittingMode&&(C=this._tempVec3,P=this._worldUp,z(f,this._worldUp,C)),d(this._frame[2],C),z(P,C,this._frame[0]),g(this._frame[1],this._frame[0],this._frame[2]),c(this._frame[1],this._frame[1]);const U=this._tempVec3,A=this._tempU,v=this._tempV;for(let d=0;d<this._length;++d){const e=a[d],i=l[d];p(U,o[d],M),r(e,m(this._frame[0],U),m(this._frame[1],U)),u(A,this._frame[0],e[0]),u(v,this._frame[1],e[1]),_(U,A,v),_(U,U,M),j(U,s,i,t)}this.perimeterLength=this._length>0?this._updatePerimeterLengths():null,x(l,this.areaCentroidRenderCoords),j(this.areaCentroidRenderCoords,t,this.areaCentroidWorldCoords,s),this._updateIntersectingSegments(),this.area=0===this.intersectingSegments.size?this._computeArea():null}_updateGeodesicArea(e,t){const{renderCoordsHelper:s,spatialReference:i}=e,{positionsSpherical:n,positionsStereographic:o}=this,h=this._tempVec3,a=W(n,h);if(!a)return void(this.geodesicArea=null);const l=this._tempU,d=this._tempV;q(h,l,d);for(let g=0;g<this._length;++g){const e=m(n[g],l),t=m(n[g],d),s=m(n[g],h);r(o[g],e/s,t/s)}u(h,h,M(i).radius),s.toRenderCoords(h,P(i),this.geodesicAreaCentroidRenderCoords),this._updateGeodesicIntersectingSegments(),this.geodesicArea=a&&0===this.geodesicIntersectingSegments.size?this._computeGeodesicArea(t):null}_updatePerimeterLengths(){const e=this.positionsFittedWorld,s=this.perimeterSegmentLengths;let i=0;for(let t=0;t<this._length;++t){i+=s[t]=h(e[t],e[(t+1)%this._length])}return t(i,this._lengthMeasurementUnit)}_updateIntersectingSegments(){const e=this.positionsFittedWorld,t=this.intersectingSegments;t.clear();for(let s=0;s<this._length;++s)for(let i=s+2;i<this._length;++i){if((i+1)%this._length===s)continue;const n=e[s],o=e[(s+1)%this._length],r=e[i],h=e[(i+1)%this._length];v(n,o,r,h)&&(t.add(s),t.add(i))}}_computeArea(){const e=this.positionsFittedWorld,t=this.triangleIndices=A(b(e));let s=0;for(let i=0;i<t.length;i+=3)s+=V(e[t[i]],e[t[i+1]],e[t[i+2]]);return i(s,this._areaMeasurementUnit)}_updateGeodesicIntersectingSegments(){const e=this.positionsStereographic,t=this.geodesicIntersectingSegments;t.clear();for(let s=0;s<this._length;++s)for(let i=s+2;i<this._length;++i){if((i+1)%this._length===s)continue;const n=e[s],o=e[(s+1)%this._length],r=e[i],h=e[(i+1)%this._length];v(n,o,r,h)&&(t.add(s),t.add(i))}}_computeGeodesicArea(e){const t=this.positionsGeodesic,n=this.positionsStereographic,o=this.geodesicTriangleIndices=A(b(n));let r=0;for(let i=0;i<o.length;i+=3){const n=F(t[o[i]],t[o[i+1]],t[o[i+2]],e,this._geodesicAreaMeasurementUtils);if(null==n)return null;r+=s(n,"square-meters").value}return i(r,"square-meters")}_selectFittingMode(t,s,i,n){const o=s.map(e=>Math.abs(y(t,e))).reduce((e,t)=>Math.max(e,t),0);G(s,this._tempSphere);const r=o/(2*this._tempSphere[3]),h=r<n.maxRelativeErrorCoplanar,a=r<n.maxRelativeErrorAlmostCoplanar;let l="horizontal";if(h)l="oblique";else if(a){l=Math.abs(m(i,t))>Math.cos(e(n.verticalAngleThreshold))?"horizontal":"vertical"}return l}_updateCursorSegmentLength(e,t){const s=e.lastPoint;e.isValidPolygon||null==s||null==t?(this.geodesicStagedSegmentLength=null,this.stagedSegmentLength=null):(this.geodesicStagedSegmentLength=this._geodesicLengthMeasurementUtils.geodesicDistanceBetweenPoints(s,t),this.stagedSegmentLength=E(s,t)?.direct)}_updateMode(e){if(0===e){this.actualMeasurementMode="euclidean";let e=0;null!=this.geodesicPathLength&&(e+=this.geodesicPathLength.value),e>Z&&(this.actualMeasurementMode="geodesic")}else this.actualMeasurementMode=1===e?"euclidean":"geodesic";null==this.geodesicPathLength&&(this.actualMeasurementMode="euclidean"),this._mode=e}}function H(e,t){t.hasZ||(t.z=T(e,t,"ground")??0)}const Z=1e5;export{B as MeasurementDataManager};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../core/has.js";import{q as e,g as n,e as t,d as i,k as o}from"../../../../chunks/vec32.js";import r from"../../../../geometry/Point.js";import{sv3d as a}from"../../../../geometry/support/vectorStacks.js";import{automaticHeadingFromCamera as s}from"./lengthDimensionManipulatorUtils.js";import{isGeodesicDimension as l,directUp as d,directStartToEnd as c}from"./lengthDimensionUtils.js";import{constraintThresholdPx as u}from"./settings.js";function m(e,n){return{enabled:n.effectiveFeatureEnabled,elevationAlignedStartPoint:e.elevationAlignedStartPoint,elevationAlignedEndPoint:e.elevationAlignedEndPoint,geometry:e.geometry}}function P(r,s){if(l(r))return 2;if(!r.enabled)return null;const{geometry:m}=r;if(null==m||e(m.directSegment.startRenderSpace,m.directSegment.endRenderSpace))return null;const{camera:P}=s.state,p=d(a.get(),m,s.renderCoordsHelper),f=c(a.get(),m),g=n(a.get(),p,t(f,p)),S=i(a.get(),f,g),v=o(S),y=o(g),{startRenderSpace:A,endRenderSpace:R}=m.directSegment,x=Math.max(P.computeScreenPixelSizeAt(A)*u,P.computeScreenPixelSizeAt(R)*u)**2;return v<x?1:y<x?0:null}function p(e,n,{constraint:t,view:i}){const{unconstrainedGeometry:o}=e;if(null==o)return;const{renderCoordsHelper:a,spatialReference:s}=i,{startRenderSpace:l,endRenderSpace:d}=o.directSegment,c=a.fromRenderCoords(l,new r({spatialReference:s})),u=a.fromRenderCoords(d,new r({spatialReference:s}));let m;m="start"===n?{startPoint:c}:{endPoint:u},f(e,m,{constraint:t,elevationAlignedStartPoint:e.elevationAlignedStartPoint,elevationAlignedEndPoint:e.elevationAlignedEndPoint,unconstrainedGeometry:o,view:i})}function f(e,n,t){const{constraint:i,elevationAlignedStartPoint:o,elevationAlignedEndPoint:r,unconstrainedGeometry:a,view:l}=t,{dimension:d,previousConstraint:c,preConstraintProperties:u}=e;if(null==o||null==r)return;const m=()=>{"startPoint"in n?d.startPoint=n.startPoint:"endPoint"in n&&(d.endPoint=n.endPoint)};if(null==i)m(),null!=c&&null!=u&&(d.measureType=u.measureType,d.orientation=u.orientation);else switch(d.measureType="direct",i){case 0:if(i!==c&&(d.orientation=0),"startPoint"in n){const e=n.startPoint;null!=e&&(e.z=r.z),d.startPoint=e}else if("endPoint"in n){const e=n.endPoint;null!=e&&(e.z=o.z),d.endPoint=e}break;case 1:if(i!==c&&(d.orientation=s(a,l)),"startPoint"in n){const e=n.startPoint;null!=e&&(e.x=r.x,e.y=r.y),d.startPoint=e}else if("endPoint"in n){const e=n.endPoint;null!=e&&(e.x=o.x,e.y=o.y),d.endPoint=e}break;case 2:i!==c&&null!=u&&(d.orientation=u.orientation),m()}e.previousConstraint=i,e.unconstrainedGeometry=a}export{f as applyConstraint,P as computeConstraint,m as constraintDependencies,p as reapplyConstraint};
5
+ import"../../../../core/has.js";import{q as e,h as n,f as t,e as i,m as o}from"../../../../chunks/vec32.js";import r from"../../../../geometry/Point.js";import{sv3d as a}from"../../../../geometry/support/vectorStacks.js";import{automaticHeadingFromCamera as s}from"./lengthDimensionManipulatorUtils.js";import{isGeodesicDimension as l,directUp as d,directStartToEnd as c}from"./lengthDimensionUtils.js";import{constraintThresholdPx as u}from"./settings.js";function m(e,n){return{enabled:n.effectiveFeatureEnabled,elevationAlignedStartPoint:e.elevationAlignedStartPoint,elevationAlignedEndPoint:e.elevationAlignedEndPoint,geometry:e.geometry}}function P(r,s){if(l(r))return 2;if(!r.enabled)return null;const{geometry:m}=r;if(null==m||e(m.directSegment.startRenderSpace,m.directSegment.endRenderSpace))return null;const{camera:P}=s.state,p=d(a.get(),m,s.renderCoordsHelper),f=c(a.get(),m),g=n(a.get(),p,t(f,p)),S=i(a.get(),f,g),v=o(S),y=o(g),{startRenderSpace:A,endRenderSpace:R}=m.directSegment,x=Math.max(P.computeScreenPixelSizeAt(A)*u,P.computeScreenPixelSizeAt(R)*u)**2;return v<x?1:y<x?0:null}function p(e,n,{constraint:t,view:i}){const{unconstrainedGeometry:o}=e;if(null==o)return;const{renderCoordsHelper:a,spatialReference:s}=i,{startRenderSpace:l,endRenderSpace:d}=o.directSegment,c=a.fromRenderCoords(l,new r({spatialReference:s})),u=a.fromRenderCoords(d,new r({spatialReference:s}));let m;m="start"===n?{startPoint:c}:{endPoint:u},f(e,m,{constraint:t,elevationAlignedStartPoint:e.elevationAlignedStartPoint,elevationAlignedEndPoint:e.elevationAlignedEndPoint,unconstrainedGeometry:o,view:i})}function f(e,n,t){const{constraint:i,elevationAlignedStartPoint:o,elevationAlignedEndPoint:r,unconstrainedGeometry:a,view:l}=t,{dimension:d,previousConstraint:c,preConstraintProperties:u}=e;if(null==o||null==r)return;const m=()=>{"startPoint"in n?d.startPoint=n.startPoint:"endPoint"in n&&(d.endPoint=n.endPoint)};if(null==i)m(),null!=c&&null!=u&&(d.measureType=u.measureType,d.orientation=u.orientation);else switch(d.measureType="direct",i){case 0:if(i!==c&&(d.orientation=0),"startPoint"in n){const e=n.startPoint;null!=e&&(e.z=r.z),d.startPoint=e}else if("endPoint"in n){const e=n.endPoint;null!=e&&(e.z=o.z),d.endPoint=e}break;case 1:if(i!==c&&(d.orientation=s(a,l)),"startPoint"in n){const e=n.startPoint;null!=e&&(e.x=r.x,e.y=r.y),d.startPoint=e}else if("endPoint"in n){const e=n.endPoint;null!=e&&(e.x=o.x,e.y=o.y),d.endPoint=e}break;case 2:i!==c&&null!=u&&(d.orientation=u.orientation),m()}e.previousConstraint=i,e.unconstrainedGeometry=a}export{f as applyConstraint,P as computeConstraint,m as constraintDependencies,p as reapplyConstraint};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../Color.js";import{lengthDimensionMeasureType as t}from"../../../../analysis/dimensionUtils.js";import{cyclicalDegrees as r}from"../../../../core/Cyclical.js";import{rad2deg as n}from"../../../../core/mathUtils.js";import{watch as i,initial as o}from"../../../../core/reactiveUtils.js";import{pt2px as a}from"../../../../core/screenUtils.js";import{identity as s,scale as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{g as m,c as d,q as u,l as p,i as f,a as g,d as h,h as v,e as y}from"../../../../chunks/vec32.js";import{fromValues as w,create as S,ZEROS as j}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as x}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import b from"../../../../geometry/Point.js";import{fromPositionAndNormal as H,create as M,signedDistance as P,getNormal as C}from"../../../../geometry/support/plane.js";import{sv3d as T}from"../../../../geometry/support/vectorStacks.js";import{clonePoint as R}from"../../../../layers/graphics/hydratedFeatures.js";import{isValidComputation as z,computeOffsetForPoint as O,computeSegmentForMeasureType as U,computeOffsetAxis as _,dimensionStartToEnd as A,headingFromGeometry as L,computeGeometryFromDimension as k,computationToGeometryDependencies as E,directUp as D,directStartToEnd as G}from"./lengthDimensionUtils.js";import{getTransparentAccentColor as F,pointRadius as B,lengthFraction as W,minLengthMeters as I,linePaddingPx as q,focusedLinePaddingPx as N,orientationFocusMultiplier as J,orientationDiscScale as K,orientationCalloutWidth as Q,markerLineSizeFraction as V,orientationCalloutOffsetPx as X,orientationSnapThresholdDegrees as Y}from"./settings.js";import{Manipulator3D as Z}from"../../interactive/Manipulator3D.js";import{createManipulatorMaterial as $,worldScaledManipulatorSettings as ee,calculateTranslateRotateFromBases as te,rotateManipulatorDefaults as re,calculateInputRotationTransform as ne}from"../../interactive/manipulatorUtils.js";import{RenderObject as ie}from"../../interactive/RenderObject.js";import{hideManipulatorWhileDragging as oe,screenToMap3D as ae,screenToRenderPlane as se}from"../../interactive/editingTools/dragEventPipeline3D.js";import{EuclideanSegment as ce}from"../../interactive/visualElements/support/Segment.js";import{markerSizePerLineWidth as le}from"../../support/engineContent/marker.js";import{Attribute as me}from"../../webgl-engine/lib/Attribute.js";import{Geometry as de}from"../../webgl-engine/lib/Geometry.js";import{createSphereGeometry as ue,createPolylineGeometry as pe}from"../../webgl-engine/lib/GeometryUtil.js";import{RibbonLineMaterial as fe}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createManipulatorDragEventPipeline as ge,resetProperties as he,EventPipeline as ve}from"../../../interactive/dragEventPipeline.js";class ye{constructor(e){this.start=e.start,this.end=e.end,this.offset=e.offset,this.heading=e.heading,this.rotation=e.rotation,this.direct=e.direct,this.horizontal=e.horizontal,this.vertical=e.vertical}manipulatorName(e){return Object.keys(this).find(t=>this.hasOwnProperty(t)&&e===this[t])}values(){return[this.start,this.end,this.offset,this.heading,this.rotation,this.direct,this.horizontal,this.vertical]}forEachMeasureTypeManipulator(e){for(const r of t)e(this.manipulatorForMeasureType(r),r)}manipulatorForMeasureType(e){switch(e){case"direct":return this.direct;case"horizontal":return this.horizontal;case"vertical":return this.vertical}}}class we extends Z{constructor(t,r){const n=$(e.toUnitRGBA(F(t.effectiveTheme))),o=[new ie(ue(n,1,32,32),Ve)];super({view:t,renderObjects:o,metadata:r.metadata,available:!1,grabCursor:"crosshair",radius:B,collisionPriority:1}),this._themeHandle=i(()=>({color:e.toUnitRGBA(F(t.effectiveTheme))}),e=>n.setParameters(e))}destroy(){this._themeHandle.remove(),super.destroy()}}function Se(e,t){const r=[w(-.5,0,0),w(.5,0,0)],n=pe(t.unfocusedMaterial,r.map(e=>m(S(),e,W))),i=n.instantiate({material:t.focusedMaterial});return new Z({view:e,renderObjects:[new ie(n,9|Ve),new ie(i,2|Ve)],collisionType:{type:"line",paths:[r]},radius:Ke(t.lineSizePt)/2,metadata:t.metadata,available:!1,...ee})}class je extends Z{constructor(t,{lineSizePt:r,material:n,metadata:a}){super({view:t,autoScaleRenderObjects:!1,collisionPriority:1,metadata:a}),this._options={calloutColor:x(),lineSizePt:r,material:n},this._themeHandle=i(()=>e.toUnitRGBA(F(t.effectiveTheme)),e=>{this._options.calloutColor=e,Qe(this,xe({...this._options,metadata:this.metadata}))},o)}update({lineSizePt:e,material:t}){this._options.lineSizePt=e,this._options.material=t,Qe(this,xe({...this._options,metadata:this.metadata}))}destroy(){this._themeHandle.remove(),super.destroy()}}function xe({calloutColor:e,lineSizePt:t,material:r,metadata:n}){return{calloutLength:.25*le*V*a(t)+X,calloutColor:e,calloutWidth:Q,customStateMask:Ve,discScale:K,focusMultiplier:J,material:r,metadata:n}}function be(e,t){const r=[w(-.5,0,0),w(.5,0,0)],n=pe(t.thinOffsetManipulatorMaterial,r),i=pe(t.unfocusedMaterial,r.map(e=>m(S(),e,W))),o=i.instantiate({material:t.focusedMaterial});return new Z({view:e,renderObjects:[new ie(i,1|Ve),new ie(o,2|Ve),new ie(n,Ve)],collisionType:{type:"line",paths:[r]},radius:Ke(t.lineSizePt)/2,available:!1,metadata:t.metadata,...ee})}function He(e,{isStart:t,createSnappingPipelineStep:r,dimension:n,onUpdate:i,view:o}){const a=t?"startPoint":"endPoint",s=ge(e,(e,t,s,c)=>{const l=oe(e),{snappingStep:m,cancelSnapping:d}=r(c);s=s.next(l).next(he(n,[a,"measureType","orientation"])).next(d),t.next(l).next(ae(o)).next(...m).next(e=>{const t=R(e.mapEnd,new b);i("startPoint"===a?{startPoint:t}:{endPoint:t})})});return[s]}function Me(e,{computation:t,view:r}){return[ge(e,(e,n,i)=>{if(!z(t)||!e.selected)return;const{geometry:o,dimension:a}=t,s=oe(e);n.next(s).next(Ue(r,a,o.dimensionSegment,o.primaryOffsetAxis)),i.next(s).next(he(a,["offset"]))})]}function Pe(e,{computation:t,view:r}){return[ge(e,(e,n,i)=>{Re({cancel:i,computation:t,settingHeading:!0,steps:n,view:r})})]}function Ce(e,{computation:t,view:r}){return[ge(e,(e,n,i)=>{Re({cancel:i,computation:t,settingHeading:!1,steps:n,view:r})}),e.events.on("immediate-click",e=>{Te(e,t,r)})]}function Te(e,t,n){const{dimension:i,geometry:o}=t;if(90===i.orientation||270===i.orientation)return i.orientation=0,void e.stopPropagation();if(null==o)return;const{renderCoordsHelper:a}=n,s=k({...E(t),orientation:90},a),c=k({...E(t),orientation:270},a);if(null==s||null==c)return;const l=L(s,a),m=L(c,a),d=_e(o,n),u=r.shortestSignedDiff(d,l),p=r.shortestSignedDiff(d,m);i.orientation=Math.abs(u)<Math.abs(p)?90:270,e.stopPropagation()}function Re(e){const{cancel:t,computation:r,settingHeading:i,steps:o,view:a}=e;if(!z(r))return;const{renderCoordsHelper:s}=a,{dimension:c,geometry:l}=r,m=S(),u=Be(S(),l,l.directSegment,s),p=We(T.get(),{forHeading:i,geometry:l,renderCoordsHelper:s}),f=H(u,p,M()),g=i?c.orientation??L(l,a.renderCoordsHelper):c.orientation??0;o.next(se(a,f)).next(e=>{"start"===e.action&&d(m,e.renderStart);const t=C(f),r=ne(m,e.renderEnd,u,t);let o=g-n(r);i||(o=ze(o)),c.orientation=o}),t.next(he(c,["orientation"]))}function ze(e){const t=r.normalize(e)%90;return t<Y?e-t:90-t<Y?e+(90-t):e}function Oe(e,{computation:t,manipulatorMeasureType:r,view:n}){let i="direct",o=0,a=0;return[e.events.on("grab-changed",s=>{if("start"!==s.action||!z(t))return;const{dimension:c,geometry:l}=t;i=c.measureType,o=c.offset,a=c.orientation;const m=d(T.get(),e.renderLocation);c.measureType=r,c.offset=O(m,r,l,n.renderCoordsHelper),c.orientation=0}),ge(e,(e,s,c)=>{if(!z(t))return;const{geometry:l,dimension:m}=t,{renderCoordsHelper:d}=n,u=U($e,r,t,d),p=_(T.get(),{measureType:r,directSegment:l.directSegment,renderCoordsHelper:d}),f=oe(e);s.next(f).next(Ue(n,m,u,p)),c.next(f).next(e=>(m.measureType=i,m.offset=o,m.orientation=a,e))})]}function Ue(e,t,r,n){const i=h(T.get(),r.endRenderSpace,r.startRenderSpace);v(i,i,n);const o=H(r.startRenderSpace,i,M()),a=H(r.startRenderSpace,n,M()),s=t.offset;let c,l=0;const m=new ve;return m.next(se(e,o)).next(r=>{"start"===r.action&&(l=P(a,r.renderStart));const n=(P(a,r.renderEnd)-l)*e.renderCoordsHelper.unitInMeters;t.offset=s+n,c=r}),e=>(m.execute(e),c)}function _e(e,t){const{directSegment:r}=e,{renderCoordsHelper:n}=t,i=D(T.get(),e,n),o=G(T.get(),e),a=v(T.get(),o,i),{viewForward:s}=t.state.camera;y(a,s)>0&&m(a,a,-1);const c=r.eval(.5,T.get());return n.headingAtPosition(c,a)}function Ae(e,t,r){const{dimensionSegment:n,primaryOffsetAxis:i}=t,o=A(Xe,t),a=u(o,j)?s(Ze):te(o,i,j,Ze),l=Math.max(p(o),I/r.unitInMeters);c(a,a,f(Xe,l,l,l)),e.modelTransform=a,e.renderLocation=n.eval(.5,Xe)}function Le(e,t,r){Ee(e,t,r,{forHeading:!0})}function ke(e,t,r){Ee(e,t,r,{forHeading:!1})}function Ee(e,t,r,{forHeading:n}){const{dimension:i,geometry:o}=t,{primaryOffsetAxis:a}=o,s=m(De,a,i.offset>=0?1:-1),c=We(Ge,{forHeading:n,geometry:o,renderCoordsHelper:r});v(c,c,s);const l=te(s,c,j,Ze);e.modelTransform=l,e.renderLocation=Be(Xe,o,o.dimensionSegment,r)}const De=S(),Ge=S();function Fe(e,t,r,n){const{geometry:i}=t,o=U($e,r,t,n),a=_(Xe,{measureType:r,directSegment:i.directSegment,renderCoordsHelper:n}),s=g(Ye,o.endRenderSpace,o.startRenderSpace),l=te(s,a,j,Ze),m=p(s);c(l,l,f(Ye,m,m,m)),e.modelTransform=l,e.renderLocation=o.eval(.5,Ye)}function Be(e,t,r,n){const{startRenderSpace:i,endRenderSpace:o}=r,a=Ie(t,n)?i:o;return d(e,a)}function We(e,{forHeading:t,geometry:r,renderCoordsHelper:n}){return t?D(e,r,n):A(e,r,{invert:!0})}function Ie(e,t){const r=G(qe,e),n=D(Ne,e,t);return y(r,n)>0}const qe=S(),Ne=S();function Je(e){return a(e)+q}function Ke(e){return a(e)+N}function Qe(e,t){const r=t.material,n=t.focusMultiplier??re.focusMultiplier,i=t.calloutLength??re.calloutLength,o=re.discRadius*(t.discScale??1),a=o*n,s=(e,t)=>{const r=[0,1,2,2,3,0];return new de(t,[["position",new me([i-e,-e,0,i+e,-e,0,i+e,e,0,i-e,e,0],r,3,!0)],["uv0",new me([0,0,1,0,1,1,0,1],r,2,!0)]])},c=t.calloutWidth??re.calloutWidth,l=new fe({width:c,color:t.calloutColor,renderOccluded:4,isDecoration:!0},e.view.state.isGlobal),m=pe(l,[[0,0,0],[i-o,0,0]]),d=pe(l,[[0,0,0],[i-a,0,0]]),u=t.customStateMask??0;e.collisionType={type:"disc",direction:[0,0,1],offset:[i,0,0]},e.focusMultiplier=n,e.metadata=t.metadata,e.radius=o,e.renderObjects=[new ie(s(o,r),1|u),new ie(m,1|u),new ie(s(a,r),2|u),new ie(d,2|u)]}const Ve=16,Xe=S(),Ye=S(),Ze=l(),$e=new ce;export{Ve as DidPointerMoveRecentlyFlag,ye as LengthDimensionManipulators,we as LengthDimensionPointManipulator,je as LineOfSightOrientationManipulator,_e as automaticHeadingFromCamera,be as createMeasureTypeManipulator,Se as createOffsetManipulator,Ke as focusedOffsetWidth,Pe as headingManipulatorHandles,Oe as measureTypeManipulatorHandles,Me as offsetManipulatorHandles,He as pointManipulatorHandles,Ce as rotationManipulatorHandles,ze as snapOrientationToNearestRightAngle,Je as unfocusedOffsetWidth,Le as updateHeadingManipulatorTransform,Fe as updateMeasureTypeManipulatorTransform,Ae as updateOffsetManipulatorTransform,ke as updateRotationManipulatorTransform};
5
+ import e from"../../../../Color.js";import{lengthDimensionMeasureType as t}from"../../../../analysis/dimensionUtils.js";import{cyclicalDegrees as r}from"../../../../core/Cyclical.js";import{rad2deg as n}from"../../../../core/mathUtils.js";import{watch as i,initial as o}from"../../../../core/reactiveUtils.js";import{pt2px as a}from"../../../../core/screenUtils.js";import{identity as s,scale as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{h as m,d,q as u,b as p,j as f,a as h,e as g,i as v,f as y}from"../../../../chunks/vec32.js";import{fromValues as w,create as S,ZEROS as j}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as x}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import b from"../../../../geometry/Point.js";import{fromPositionAndNormal as H,create as M,signedDistance as P,getNormal as C}from"../../../../geometry/support/plane.js";import{sv3d as T}from"../../../../geometry/support/vectorStacks.js";import{clonePoint as R}from"../../../../layers/graphics/hydratedFeatures.js";import{isValidComputation as z,computeOffsetForPoint as O,computeSegmentForMeasureType as U,computeOffsetAxis as _,dimensionStartToEnd as A,headingFromGeometry as L,computeGeometryFromDimension as k,computationToGeometryDependencies as E,directUp as D,directStartToEnd as G}from"./lengthDimensionUtils.js";import{getTransparentAccentColor as F,pointRadius as B,lengthFraction as W,minLengthMeters as I,linePaddingPx as q,focusedLinePaddingPx as N,orientationFocusMultiplier as J,orientationDiscScale as K,orientationCalloutWidth as Q,markerLineSizeFraction as V,orientationCalloutOffsetPx as X,orientationSnapThresholdDegrees as Y}from"./settings.js";import{Manipulator3D as Z}from"../../interactive/Manipulator3D.js";import{createManipulatorMaterial as $,worldScaledManipulatorSettings as ee,calculateTranslateRotateFromBases as te,rotateManipulatorDefaults as re,calculateInputRotationTransform as ne}from"../../interactive/manipulatorUtils.js";import{RenderObject as ie}from"../../interactive/RenderObject.js";import{hideManipulatorWhileDragging as oe,screenToMap3D as ae,screenToRenderPlane as se}from"../../interactive/editingTools/dragEventPipeline3D.js";import{EuclideanSegment as ce}from"../../interactive/visualElements/support/Segment.js";import{markerSizePerLineWidth as le}from"../../support/engineContent/marker.js";import{Attribute as me}from"../../webgl-engine/lib/Attribute.js";import{Geometry as de}from"../../webgl-engine/lib/Geometry.js";import{createSphereGeometry as ue,createPolylineGeometry as pe}from"../../webgl-engine/lib/GeometryUtil.js";import{RibbonLineMaterial as fe}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createManipulatorDragEventPipeline as he,resetProperties as ge,EventPipeline as ve}from"../../../interactive/dragEventPipeline.js";class ye{constructor(e){this.start=e.start,this.end=e.end,this.offset=e.offset,this.heading=e.heading,this.rotation=e.rotation,this.direct=e.direct,this.horizontal=e.horizontal,this.vertical=e.vertical}manipulatorName(e){return Object.keys(this).find(t=>this.hasOwnProperty(t)&&e===this[t])}values(){return[this.start,this.end,this.offset,this.heading,this.rotation,this.direct,this.horizontal,this.vertical]}forEachMeasureTypeManipulator(e){for(const r of t)e(this.manipulatorForMeasureType(r),r)}manipulatorForMeasureType(e){switch(e){case"direct":return this.direct;case"horizontal":return this.horizontal;case"vertical":return this.vertical}}}class we extends Z{constructor(t,r){const n=$(e.toUnitRGBA(F(t.effectiveTheme))),o=[new ie(ue(n,1,32,32),Ve)];super({view:t,renderObjects:o,metadata:r.metadata,available:!1,grabCursor:"crosshair",radius:B,collisionPriority:1}),this._themeHandle=i(()=>({color:e.toUnitRGBA(F(t.effectiveTheme))}),e=>n.setParameters(e))}destroy(){this._themeHandle.remove(),super.destroy()}}function Se(e,t){const r=[w(-.5,0,0),w(.5,0,0)],n=pe(t.unfocusedMaterial,r.map(e=>m(S(),e,W))),i=n.instantiate({material:t.focusedMaterial});return new Z({view:e,renderObjects:[new ie(n,9|Ve),new ie(i,2|Ve)],collisionType:{type:"line",paths:[r]},radius:Ke(t.lineSizePt)/2,metadata:t.metadata,available:!1,...ee})}class je extends Z{constructor(t,{lineSizePt:r,material:n,metadata:a}){super({view:t,autoScaleRenderObjects:!1,collisionPriority:1,metadata:a}),this._options={calloutColor:x(),lineSizePt:r,material:n},this._themeHandle=i(()=>e.toUnitRGBA(F(t.effectiveTheme)),e=>{this._options.calloutColor=e,Qe(this,xe({...this._options,metadata:this.metadata}))},o)}update({lineSizePt:e,material:t}){this._options.lineSizePt=e,this._options.material=t,Qe(this,xe({...this._options,metadata:this.metadata}))}destroy(){this._themeHandle.remove(),super.destroy()}}function xe({calloutColor:e,lineSizePt:t,material:r,metadata:n}){return{calloutLength:.25*le*V*a(t)+X,calloutColor:e,calloutWidth:Q,customStateMask:Ve,discScale:K,focusMultiplier:J,material:r,metadata:n}}function be(e,t){const r=[w(-.5,0,0),w(.5,0,0)],n=pe(t.thinOffsetManipulatorMaterial,r),i=pe(t.unfocusedMaterial,r.map(e=>m(S(),e,W))),o=i.instantiate({material:t.focusedMaterial});return new Z({view:e,renderObjects:[new ie(i,1|Ve),new ie(o,2|Ve),new ie(n,Ve)],collisionType:{type:"line",paths:[r]},radius:Ke(t.lineSizePt)/2,available:!1,metadata:t.metadata,...ee})}function He(e,{isStart:t,createSnappingPipelineStep:r,dimension:n,onUpdate:i,view:o}){const a=t?"startPoint":"endPoint",s=he(e,(e,t,s,c)=>{const l=oe(e),{snappingStep:m,cancelSnapping:d}=r(c);s=s.next(l).next(ge(n,[a,"measureType","orientation"])).next(d),t.next(l).next(ae(o)).next(...m).next(e=>{const t=R(e.mapEnd,new b);i("startPoint"===a?{startPoint:t}:{endPoint:t})})});return[s]}function Me(e,{computation:t,view:r}){return[he(e,(e,n,i)=>{if(!z(t)||!e.selected)return;const{geometry:o,dimension:a}=t,s=oe(e);n.next(s).next(Ue(r,a,o.dimensionSegment,o.primaryOffsetAxis)),i.next(s).next(ge(a,["offset"]))})]}function Pe(e,{computation:t,view:r}){return[he(e,(e,n,i)=>{Re({cancel:i,computation:t,settingHeading:!0,steps:n,view:r})})]}function Ce(e,{computation:t,view:r}){return[he(e,(e,n,i)=>{Re({cancel:i,computation:t,settingHeading:!1,steps:n,view:r})}),e.events.on("immediate-click",e=>{Te(e,t,r)})]}function Te(e,t,n){const{dimension:i,geometry:o}=t;if(90===i.orientation||270===i.orientation)return i.orientation=0,void e.stopPropagation();if(null==o)return;const{renderCoordsHelper:a}=n,s=k({...E(t),orientation:90},a),c=k({...E(t),orientation:270},a);if(null==s||null==c)return;const l=L(s,a),m=L(c,a),d=_e(o,n),u=r.shortestSignedDiff(d,l),p=r.shortestSignedDiff(d,m);i.orientation=Math.abs(u)<Math.abs(p)?90:270,e.stopPropagation()}function Re(e){const{cancel:t,computation:r,settingHeading:i,steps:o,view:a}=e;if(!z(r))return;const{renderCoordsHelper:s}=a,{dimension:c,geometry:l}=r,m=S(),u=Be(S(),l,l.directSegment,s),p=We(T.get(),{forHeading:i,geometry:l,renderCoordsHelper:s}),f=H(u,p,M()),h=i?c.orientation??L(l,a.renderCoordsHelper):c.orientation??0;o.next(se(a,f)).next(e=>{"start"===e.action&&d(m,e.renderStart);const t=C(f),r=ne(m,e.renderEnd,u,t);let o=h-n(r);i||(o=ze(o)),c.orientation=o}),t.next(ge(c,["orientation"]))}function ze(e){const t=r.normalize(e)%90;return t<Y?e-t:90-t<Y?e+(90-t):e}function Oe(e,{computation:t,manipulatorMeasureType:r,view:n}){let i="direct",o=0,a=0;return[e.events.on("grab-changed",s=>{if("start"!==s.action||!z(t))return;const{dimension:c,geometry:l}=t;i=c.measureType,o=c.offset,a=c.orientation;const m=d(T.get(),e.renderLocation);c.measureType=r,c.offset=O(m,r,l,n.renderCoordsHelper),c.orientation=0}),he(e,(e,s,c)=>{if(!z(t))return;const{geometry:l,dimension:m}=t,{renderCoordsHelper:d}=n,u=U($e,r,t,d),p=_(T.get(),{measureType:r,directSegment:l.directSegment,renderCoordsHelper:d}),f=oe(e);s.next(f).next(Ue(n,m,u,p)),c.next(f).next(e=>(m.measureType=i,m.offset=o,m.orientation=a,e))})]}function Ue(e,t,r,n){const i=g(T.get(),r.endRenderSpace,r.startRenderSpace);v(i,i,n);const o=H(r.startRenderSpace,i,M()),a=H(r.startRenderSpace,n,M()),s=t.offset;let c,l=0;const m=new ve;return m.next(se(e,o)).next(r=>{"start"===r.action&&(l=P(a,r.renderStart));const n=(P(a,r.renderEnd)-l)*e.renderCoordsHelper.unitInMeters;t.offset=s+n,c=r}),e=>(m.execute(e),c)}function _e(e,t){const{directSegment:r}=e,{renderCoordsHelper:n}=t,i=D(T.get(),e,n),o=G(T.get(),e),a=v(T.get(),o,i),{viewForward:s}=t.state.camera;y(a,s)>0&&m(a,a,-1);const c=r.eval(.5,T.get());return n.headingAtPosition(c,a)}function Ae(e,t,r){const{dimensionSegment:n,primaryOffsetAxis:i}=t,o=A(Xe,t),a=u(o,j)?s(Ze):te(o,i,j,Ze),l=Math.max(p(o),I/r.unitInMeters);c(a,a,f(Xe,l,l,l)),e.modelTransform=a,e.renderLocation=n.eval(.5,Xe)}function Le(e,t,r){Ee(e,t,r,{forHeading:!0})}function ke(e,t,r){Ee(e,t,r,{forHeading:!1})}function Ee(e,t,r,{forHeading:n}){const{dimension:i,geometry:o}=t,{primaryOffsetAxis:a}=o,s=m(De,a,i.offset>=0?1:-1),c=We(Ge,{forHeading:n,geometry:o,renderCoordsHelper:r});v(c,c,s);const l=te(s,c,j,Ze);e.modelTransform=l,e.renderLocation=Be(Xe,o,o.dimensionSegment,r)}const De=S(),Ge=S();function Fe(e,t,r,n){const{geometry:i}=t,o=U($e,r,t,n),a=_(Xe,{measureType:r,directSegment:i.directSegment,renderCoordsHelper:n}),s=h(Ye,o.endRenderSpace,o.startRenderSpace),l=te(s,a,j,Ze),m=p(s);c(l,l,f(Ye,m,m,m)),e.modelTransform=l,e.renderLocation=o.eval(.5,Ye)}function Be(e,t,r,n){const{startRenderSpace:i,endRenderSpace:o}=r,a=Ie(t,n)?i:o;return d(e,a)}function We(e,{forHeading:t,geometry:r,renderCoordsHelper:n}){return t?D(e,r,n):A(e,r,{invert:!0})}function Ie(e,t){const r=G(qe,e),n=D(Ne,e,t);return y(r,n)>0}const qe=S(),Ne=S();function Je(e){return a(e)+q}function Ke(e){return a(e)+N}function Qe(e,t){const r=t.material,n=t.focusMultiplier??re.focusMultiplier,i=t.calloutLength??re.calloutLength,o=re.discRadius*(t.discScale??1),a=o*n,s=(e,t)=>{const r=[0,1,2,2,3,0];return new de(t,[["position",new me([i-e,-e,0,i+e,-e,0,i+e,e,0,i-e,e,0],r,3,!0)],["uv0",new me([0,0,1,0,1,1,0,1],r,2,!0)]])},c=t.calloutWidth??re.calloutWidth,l=new fe({width:c,color:t.calloutColor,renderOccluded:4,isDecoration:!0},e.view.state.isGlobal),m=pe(l,[[0,0,0],[i-o,0,0]]),d=pe(l,[[0,0,0],[i-a,0,0]]),u=t.customStateMask??0;e.collisionType={type:"disc",direction:[0,0,1],offset:[i,0,0]},e.focusMultiplier=n,e.metadata=t.metadata,e.radius=o,e.renderObjects=[new ie(s(o,r),1|u),new ie(m,1|u),new ie(s(a,r),2|u),new ie(d,2|u)]}const Ve=16,Xe=S(),Ye=S(),Ze=l(),$e=new ce;export{Ve as DidPointerMoveRecentlyFlag,ye as LengthDimensionManipulators,we as LengthDimensionPointManipulator,je as LineOfSightOrientationManipulator,_e as automaticHeadingFromCamera,be as createMeasureTypeManipulator,Se as createOffsetManipulator,Ke as focusedOffsetWidth,Pe as headingManipulatorHandles,Oe as measureTypeManipulatorHandles,Me as offsetManipulatorHandles,He as pointManipulatorHandles,Ce as rotationManipulatorHandles,ze as snapOrientationToNearestRightAngle,Je as unfocusedOffsetWidth,Le as updateHeadingManipulatorTransform,Fe as updateMeasureTypeManipulatorTransform,Ae as updateOffsetManipulatorTransform,ke as updateRotationManipulatorTransform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{deg2rad as e}from"../../../../core/mathUtils.js";import{toUnit as t}from"../../../../core/quantityUtils.js";import{adaptiveVerticalLengthUnit as n,adaptiveLengthUnit as r}from"../../../../core/unitUtils.js";import{ensureType as i}from"../../../../core/accessorSupport/ensureType.js";import{fromRotation as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{c as s,k as d,b as c,t as l,a as u,h as p,e as m,G as g,n as S,x as f}from"../../../../chunks/vec32.js";import{create as v,ZEROS as R}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import A from"../../../../geometry/Point.js";import{sv3d as P}from"../../../../geometry/support/vectorStacks.js";import{makeDehydratedPoint as h}from"../../../../layers/graphics/dehydratedPoint.js";import{clonePoint as y}from"../../../../layers/graphics/hydratedFeatures.js";import{EuclideanSegment as j}from"../../interactive/visualElements/support/Segment.js";import{euclideanDirectDistanceBetweenPoints as E,euclideanDirectDistance as x}from"../../../support/euclideanLengthMeasurementUtils.js";import{geodesicDistanceThreshold as w}from"../../../support/geodesicMeasurementUtils.js";class z{constructor(e,t,n,r,i,o){this.elevationAlignedStartPoint=e,this.elevationAlignedEndPoint=t,this.directSegment=n,this.dimensionSegment=r,this.primaryOffsetAxis=i,this.spatialReference=o}}const b=i(A);function T(e,i,o,a){if(null==e)return null;let s;if("horizontal"===i)s=a.autoDistanceBetweenPoints2D(b(e.elevationAlignedStartPoint),b(e.elevationAlignedEndPoint));else{const{startRenderSpace:t,endRenderSpace:n}=e.dimensionSegment;s=x(t,n,e.spatialReference)}if(null==s)return null;const d="vertical"===i?n(s.value,s.unit,o):r(s.value,s.unit,o);return t(s,d)}function U(e){const{elevationAlignedStartPoint:t,elevationAlignedEndPoint:n,dimension:{offset:r,measureType:i,orientation:o}}=e;return{elevationAlignedStartPoint:t,elevationAlignedEndPoint:n,offset:r,measureType:i,orientation:o}}function C({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,offset:n,measureType:r,orientation:i},o,a=null){if(null==e||null==t)return null;const d=O(a?.directSegment??new j,{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t},o),c=a?.primaryOffsetAxis??v();G(c,{measureType:r,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,directSegment:d,orientation:i,renderCoordsHelper:o});const l=a?.dimensionSegment??new j;return J({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t})&&"vertical"===r?(s(l.startRenderSpace,d.startRenderSpace),s(l.endRenderSpace,d.endRenderSpace)):K(l,c,n,d,o),new z(e,t,d,l,c,o.spatialReference)}function k(e,t,n,r){return 0===t?(s(e.startRenderSpace,n.startRenderSpace),s(e.endRenderSpace,r.startRenderSpace)):(s(e.startRenderSpace,n.endRenderSpace),s(e.endRenderSpace,r.endRenderSpace)),e}function M(e,t,n,r){c(e.startRenderSpace,t.startRenderSpace,n,r),c(e.endRenderSpace,t.endRenderSpace,n,r)}function H(e,t,n,r){switch(t){case"direct":return O(e,n,r);case"horizontal":case"vertical":{const{elevationAlignedStartPoint:i,elevationAlignedEndPoint:o,dimension:a,geometry:s}=n;let d;if("direct"===a.measureType){d=B(s,r)===i.z>o.z,"horizontal"===t&&(d=!d)}else d=!D(s);const[c,l]=d?[i,o]:[o,i],u=y(l,I);return"horizontal"===t?u.z=c.z:(u.x=c.x,u.y=c.y),r.toRenderCoords(c,e.startRenderSpace),r.toRenderCoords(u,e.endRenderSpace),e}}}function O(e,t,n){return n.toRenderCoords(t.elevationAlignedStartPoint,e.startRenderSpace),n.toRenderCoords(t.elevationAlignedEndPoint,e.endRenderSpace),e}function B(e,t){const n=e.directSegment.eval(.5,P.get()),r=t.worldUpAtPosition(n,P.get()),i=e.dimensionSegment.eval(.5,P.get()),o=u(P.get(),i,n);return!g(o,R)&&m(o,r)>0}function D(e){const{startRenderSpace:t,endRenderSpace:n}=e.dimensionSegment,{startRenderSpace:r,endRenderSpace:i}=e.directSegment;return f(r,t)<f(i,n)}const I=h(0,0,0,null);function q(e,t,n,r){const{directSegment:i}=n,o=G(P.get(),{measureType:t,directSegment:i,renderCoordsHelper:r}),a=K(F,o,0,i,r).eval(.5,P.get()),s=u(P.get(),e,a);return m(s,o)*r.unitInMeters}const F=new j;function G(t,n){const{measureType:r,elevationAlignedStartPoint:i,elevationAlignedEndPoint:a,directSegment:{startRenderSpace:d,endRenderSpace:c},directSegment:f,renderCoordsHelper:v}=n,A=f.eval(.5,P.get()),h=v.worldUpAtPosition(A,P.get()),y=v.worldBasisAtPosition(A,1,P.get());switch(r){case"horizontal":s(t,h);break;case"vertical":m(d,h)<m(c,h)?u(t,c,d):u(t,d,c),p(t,t,h),p(t,t,h);break;case"direct":{const r=n.orientation??0;if(J({elevationAlignedStartPoint:i,elevationAlignedEndPoint:a}))o(L,-e(r),h),l(t,y,L);else{const n=u(P.get(),c,d),i=p(P.get(),n,h);p(i,i,n),o(L,e(r),n),l(t,i,L)}break}}return g(t,R)?s(t,y):S(t,t)}const L=a();function J({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}){return null!=e&&null!=t&&e.x===t.x&&e.y===t.y}function K(e,t,n,r,i){const{startRenderSpace:o,endRenderSpace:a}=r,s=n/i.unitInMeters,[d,l]=N(o,a,t,s);return c(e.startRenderSpace,r.startRenderSpace,t,d),c(e.endRenderSpace,r.endRenderSpace,t,l),e}function N(e,t,n,r=0){const i=m(t,n),o=m(e,n),a=Math.abs(i-o)+r;return i>o?[a,r]:[r,a]}function Q(e,t,n){const r=t.directSegment.eval(.5,P.get());return n.worldUpAtPosition(r,e)}function V(e,t){const{startRenderSpace:n,endRenderSpace:r}=t.directSegment;return u(e,r,n)}function W(e,t,n={invert:!1}){const{startRenderSpace:r,endRenderSpace:i}=t.dimensionSegment;return n.invert?u(e,r,i):u(e,i,r)}function X(e,t){const n=e.directSegment.eval(.5,P.get());return t.headingAtPosition(n,e.primaryOffsetAxis)}function Y(e,t){return d(W(Z,e))/t**2}const Z=v();function $(e){const{elevationAlignedStartPoint:n,elevationAlignedEndPoint:r}=e;if(null==n||null==r)return!1;const i=E(n,r);return null!=i&&t(i,"meters").value>w}function _(e){return null!=e.geometry}export{z as LengthDimensionGeometry,J as arePointsVerticallyAligned,U as computationToGeometryDependencies,C as computeGeometryFromDimension,T as computeLength,G as computeOffsetAxis,q as computeOffsetForPoint,H as computeSegmentForMeasureType,k as computeSpanningSegment,W as dimensionStartToEnd,V as directStartToEnd,Q as directUp,X as headingFromGeometry,$ as isGeodesicDimension,_ as isValidComputation,Y as maxScreenLengthSquaredFromGeometry,M as offsetSegment};
5
+ import{deg2rad as e}from"../../../../core/mathUtils.js";import{toUnit as t}from"../../../../core/quantityUtils.js";import{adaptiveVerticalLengthUnit as n,adaptiveLengthUnit as r}from"../../../../core/unitUtils.js";import{ensureType as i}from"../../../../core/accessorSupport/ensureType.js";import{fromRotation as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{d as s,m as d,c,t as l,a as u,i as p,f as m,G as g,n as S,x as f}from"../../../../chunks/vec32.js";import{create as v,ZEROS as R}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import A from"../../../../geometry/Point.js";import{sv3d as P}from"../../../../geometry/support/vectorStacks.js";import{makeDehydratedPoint as y}from"../../../../layers/graphics/dehydratedPoint.js";import{clonePoint as h}from"../../../../layers/graphics/hydratedFeatures.js";import{EuclideanSegment as j}from"../../interactive/visualElements/support/Segment.js";import{euclideanDirectDistanceBetweenPoints as E,euclideanDirectDistance as x}from"../../../support/euclideanLengthMeasurementUtils.js";import{geodesicDistanceThreshold as w}from"../../../support/geodesicMeasurementUtils.js";class z{constructor(e,t,n,r,i,o){this.elevationAlignedStartPoint=e,this.elevationAlignedEndPoint=t,this.directSegment=n,this.dimensionSegment=r,this.primaryOffsetAxis=i,this.spatialReference=o}}const T=i(A);function U(e,i,o,a){if(null==e)return null;let s;if("horizontal"===i)s=a.autoDistanceBetweenPoints2D(T(e.elevationAlignedStartPoint),T(e.elevationAlignedEndPoint));else{const{startRenderSpace:t,endRenderSpace:n}=e.dimensionSegment;s=x(t,n,e.spatialReference)}if(null==s)return null;const d="vertical"===i?n(s.value,s.unit,o):r(s.value,s.unit,o);return t(s,d)}function b(e){const{elevationAlignedStartPoint:t,elevationAlignedEndPoint:n,dimension:{offset:r,measureType:i,orientation:o}}=e;return{elevationAlignedStartPoint:t,elevationAlignedEndPoint:n,offset:r,measureType:i,orientation:o}}function C({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,offset:n,measureType:r,orientation:i},o,a=null){if(null==e||null==t)return null;const d=O(a?.directSegment??new j,{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t},o),c=a?.primaryOffsetAxis??v();G(c,{measureType:r,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,directSegment:d,orientation:i,renderCoordsHelper:o});const l=a?.dimensionSegment??new j;return J({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t})&&"vertical"===r?(s(l.startRenderSpace,d.startRenderSpace),s(l.endRenderSpace,d.endRenderSpace)):K(l,c,n,d,o),new z(e,t,d,l,c,o.spatialReference)}function k(e,t,n,r){return 0===t?(s(e.startRenderSpace,n.startRenderSpace),s(e.endRenderSpace,r.startRenderSpace)):(s(e.startRenderSpace,n.endRenderSpace),s(e.endRenderSpace,r.endRenderSpace)),e}function M(e,t,n,r){c(e.startRenderSpace,t.startRenderSpace,n,r),c(e.endRenderSpace,t.endRenderSpace,n,r)}function H(e,t,n,r){switch(t){case"direct":return O(e,n,r);case"horizontal":case"vertical":{const{elevationAlignedStartPoint:i,elevationAlignedEndPoint:o,dimension:a,geometry:s}=n;let d;if("direct"===a.measureType){d=B(s,r)===i.z>o.z,"horizontal"===t&&(d=!d)}else d=!D(s);const[c,l]=d?[i,o]:[o,i],u=h(l,I);return"horizontal"===t?u.z=c.z:(u.x=c.x,u.y=c.y),r.toRenderCoords(c,e.startRenderSpace),r.toRenderCoords(u,e.endRenderSpace),e}}}function O(e,t,n){return n.toRenderCoords(t.elevationAlignedStartPoint,e.startRenderSpace),n.toRenderCoords(t.elevationAlignedEndPoint,e.endRenderSpace),e}function B(e,t){const n=e.directSegment.eval(.5,P.get()),r=t.worldUpAtPosition(n,P.get()),i=e.dimensionSegment.eval(.5,P.get()),o=u(P.get(),i,n);return!g(o,R)&&m(o,r)>0}function D(e){const{startRenderSpace:t,endRenderSpace:n}=e.dimensionSegment,{startRenderSpace:r,endRenderSpace:i}=e.directSegment;return f(r,t)<f(i,n)}const I=y(0,0,0,null);function q(e,t,n,r){const{directSegment:i}=n,o=G(P.get(),{measureType:t,directSegment:i,renderCoordsHelper:r}),a=K(F,o,0,i,r).eval(.5,P.get()),s=u(P.get(),e,a);return m(s,o)*r.unitInMeters}const F=new j;function G(t,n){const{measureType:r,elevationAlignedStartPoint:i,elevationAlignedEndPoint:a,directSegment:{startRenderSpace:d,endRenderSpace:c},directSegment:f,renderCoordsHelper:v}=n,A=f.eval(.5,P.get()),y=v.worldUpAtPosition(A,P.get()),h=v.worldBasisAtPosition(A,1,P.get());switch(r){case"horizontal":s(t,y);break;case"vertical":m(d,y)<m(c,y)?u(t,c,d):u(t,d,c),p(t,t,y),p(t,t,y);break;case"direct":{const r=n.orientation??0;if(J({elevationAlignedStartPoint:i,elevationAlignedEndPoint:a}))o(L,-e(r),y),l(t,h,L);else{const n=u(P.get(),c,d),i=p(P.get(),n,y);p(i,i,n),o(L,e(r),n),l(t,i,L)}break}}return g(t,R)?s(t,h):S(t,t)}const L=a();function J({elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}){return null!=e&&null!=t&&e.x===t.x&&e.y===t.y}function K(e,t,n,r,i){const{startRenderSpace:o,endRenderSpace:a}=r,s=n/i.unitInMeters,[d,l]=N(o,a,t,s);return c(e.startRenderSpace,r.startRenderSpace,t,d),c(e.endRenderSpace,r.endRenderSpace,t,l),e}function N(e,t,n,r=0){const i=m(t,n),o=m(e,n),a=Math.abs(i-o)+r;return i>o?[a,r]:[r,a]}function Q(e,t,n){const r=t.directSegment.eval(.5,P.get());return n.worldUpAtPosition(r,e)}function V(e,t){const{startRenderSpace:n,endRenderSpace:r}=t.directSegment;return u(e,r,n)}function W(e,t,n={invert:!1}){const{startRenderSpace:r,endRenderSpace:i}=t.dimensionSegment;return n.invert?u(e,r,i):u(e,i,r)}function X(e,t){const n=e.directSegment.eval(.5,P.get());return t.headingAtPosition(n,e.primaryOffsetAxis)}function Y(e,t){return d(W(Z,e))/t**2}const Z=v();function $(e){const{elevationAlignedStartPoint:n,elevationAlignedEndPoint:r}=e;if(null==n||null==r)return!1;const i=E(n,r);return null!=i&&t(i,"meters").value>w}function _(e){return null!=e.geometry}export{z as LengthDimensionGeometry,J as arePointsVerticallyAligned,b as computationToGeometryDependencies,C as computeGeometryFromDimension,U as computeLength,G as computeOffsetAxis,q as computeOffsetForPoint,H as computeSegmentForMeasureType,k as computeSpanningSegment,W as dimensionStartToEnd,V as directStartToEnd,Q as directUp,X as headingFromGeometry,$ as isGeodesicDimension,_ as isValidComputation,Y as maxScreenLengthSquaredFromGeometry,M as offsetSegment};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import"../../../../intl.js";import t from"../../../../core/Accessor.js";import{unitRGBAFromColor as i,multiplyOpacityToUnitRGBA as s,getContrast as n,multiplyOpacity as l}from"../../../../core/colorUtils.js";import"../../../../core/has.js";import{nextHighestPowerOfTen as o,deg2rad as r}from"../../../../core/mathUtils.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import{formatDecimal as c,formatImperialVerticalLength as h,formatImperialLength as u,formatMetricVerticalLength as d,formatMetricLength as m}from"../../../../core/quantityFormatUtils.js";import{toUnit as g}from"../../../../core/quantityUtils.js";import{watch as p,syncAndInitial as _,initial as v}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as b,createRenderScreenPointArray as L}from"../../../../core/screenUtils.js";import{adaptiveImperialLengthUnit as w,convertUnit as y}from"../../../../core/unitUtils.js";import{property as S}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as f}from"../../../../core/accessorSupport/decorators/subclass.js";import{dot as E}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{g as V,f as z}from"../../../../chunks/vec32.js";import{create as A}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{renderScreenSpaceTangent as P}from"../../interactive/support/viewUtils.js";import{LabelVisualElement as j,mirrorPosition as M}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as C}from"../../interactive/visualElements/LineVisualElement.js";import{MeasurementArrowVisualElement as O}from"../../interactive/visualElements/MeasurementArrowVisualElement.js";import{RightAngleQuadVisualElement as x}from"../../interactive/visualElements/RightAngleQuadVisualElement.js";import{GeodesicSegment as D,EuclideanSegment as G}from"../../interactive/visualElements/support/Segment.js";import{createStipplePatternSimple as H}from"../../webgl-engine/materials/lineStippleUtils.js";import{geodesicDistanceThreshold as k}from"../../../support/geodesicMeasurementUtils.js";import{onLocaleChange as T}from"../../../../intl/locale.js";import{fetchMessageBundle as U}from"../../../../intl/messages.js";let R=class extends t{get _parameters(){const e=this.view.effectiveTheme,{accentColor:t,textColor:o}=e,r=i(t),a=s(t,.75),c=i(n(t)),h=n(o,160);return{accentColor:r,contrastColor:c,translucentAccentColor:a,triangleLineWidth:3,geodesicProjectionLineWidth:2,guideLineWidth:2,guideStippleLengthPixels:3,directLabelFontSize:16,horizontalLabelFontSize:12,verticalLabelFontSize:12,textColor:o,textBackgroundColor:l(h,.6),textCalloutColor:l(h,.5)}}get visible(){return this.analysisView.visible}get viewMode(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView;if(null==e||null==t||e.equals(t))return 0;const i=this.analysisView.result;if(null==i)return 1;if("geodesic"===this.actualVisualizedMeasurement)return this._requiresGeodesicGuideAt(this._startPosition)||this._requiresGeodesicGuideAt(this._endPosition)?3:1;const{verticalDistance:s,horizontalDistance:n}=i,l=g(s,"meters").value,o=g(n,"meters").value;return Math.min(l/o,o/l)<this.triangleCollapseRatioThreshold?1:2}get actualVisualizedMeasurement(){const{measurementMode:e,result:t}=this.analysisView;switch(e){case 0:return null!=t&&g(t.horizontalDistance,"meters").value>k?"geodesic":"euclidean";case 1:return"euclidean";case 2:return"geodesic"}}get allowVisualElementsOrientationChange(){return null==this._triangleOrientationOverride}set allowVisualElementsOrientationChange(e){null==this._triangleOrientationOverride!==e&&(null==this._triangleOrientationOverride?this._triangleOrientationOverride=this._actualVisualElementsOrientation:this._triangleOrientationOverride=null)}get labels(){return"geodesic"===this.actualVisualizedMeasurement?{direct:null,horizontal:this._segmentLabel,vertical:this._verticalLabel}:{direct:this._segmentLabel,horizontal:this._horizontalLabel,vertical:this._verticalLabel}}constructor(e){super(e),this._segmentVisualElement=null,this._triangleVisualElement=null,this._rightAngleQuad=null,this._projectedGeodesicLine=null,this._geodesicStartHint=null,this._geodesicEndHint=null,this._segmentLabel=null,this._verticalLabel=null,this._horizontalLabel=null,this._startPosition=A(),this._endPosition=A(),this._cornerPosition=A(),this._startPositionAtSeaLevel=A(),this._endPositionAtSeaLevel=A(),this._triangleOrientationOverride=null,this.messages=null,this.loadingMessages=!0,this.visualElementOrientation=0,this.triangleCollapseRatioThreshold=.03}initialize(){const e={attached:!0,view:this.view,isDecoration:!0},{guideLineWidth:t,guideStippleLengthPixels:i,triangleLineWidth:s,geodesicProjectionLineWidth:n,directLabelFontSize:l,verticalLabelFontSize:o,horizontalLabelFontSize:r}=this._parameters;this._segmentVisualElement=new O({...e,geometry:null,renderOccluded:4}),this._triangleVisualElement=new C({...e,width:s,renderOccluded:4}),this._rightAngleQuad=new x({...e,renderOccluded:4});const a={...e,polygonOffset:!0,renderOccluded:4};this._projectedGeodesicLine=new C({...a,width:n,stipplePattern:H(i)}),this._geodesicStartHint=new C({...a,width:t,stipplePattern:H(i)}),this._geodesicEndHint=new C({...a,width:t,stipplePattern:H(i)}),this._segmentLabel=new j({...e,fontSize:l}),this._verticalLabel=new j({...e,fontSize:o}),this._horizontalLabel=new j({...e,fontSize:r}),this.addHandles([p(()=>{const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView,i=this.view;return{view:i,camera:i.state.camera,viewMode:this.viewMode,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,orientation:this._actualVisualElementsOrientation,visualizedMeasurement:this.actualVisualizedMeasurement,stripeLength:this._measurementArrowStripeLength}},e=>this._updateGeometryAndViewMode(e),_),p(()=>({visible:this.visible,viewMode:this.viewMode}),e=>this._updateVisualElementVisibility(e),_),p(()=>({text:this._labelsText,visualizedMeasurement:this.actualVisualizedMeasurement}),e=>this._updateLabelText(e),_),p(()=>({visible:this.visible,viewMode:this.viewMode}),e=>this._updateLabelVisibility(e),_),p(()=>this._measurementArrowStripeLength,e=>this._updateSegmentStripeLength(e),_),T(()=>this._updateMessageBundle()),p(()=>this._parameters,({textBackgroundColor:e,textCalloutColor:t,textColor:i,translucentAccentColor:s,accentColor:n,contrastColor:l})=>{const{_segmentLabel:o,_verticalLabel:r,_horizontalLabel:a,_triangleVisualElement:c,_rightAngleQuad:h,_projectedGeodesicLine:u,_geodesicStartHint:d,_geodesicEndHint:m,_segmentVisualElement:g}=this;o.backgroundColor=e,o.calloutColor=t,o.textColor=i,r.backgroundColor=e,r.calloutColor=t,r.textColor=i,a.backgroundColor=e,a.calloutColor=t,a.textColor=i,c.color=s,h.color=s,u.color=s,d.color=s,m.color=s,g.color=n,g.contrastColor=l},v)]),this._updateMessageBundle()}destroy(){this._segmentVisualElement=a(this._segmentVisualElement),this._triangleVisualElement=a(this._triangleVisualElement),this._rightAngleQuad=a(this._rightAngleQuad),this._projectedGeodesicLine=a(this._projectedGeodesicLine),this._geodesicStartHint=a(this._geodesicStartHint),this._geodesicEndHint=a(this._geodesicEndHint),this._segmentLabel=a(this._segmentLabel),this._verticalLabel=a(this._verticalLabel),this._horizontalLabel=a(this._horizontalLabel),this.set("view",null)}_updateVisualElementVisibility({visible:e,viewMode:t}){if(this._segmentVisualElement.visible=!1,this._triangleVisualElement.visible=!1,this._rightAngleQuad.visible=!1,this._projectedGeodesicLine.visible=!1,this._geodesicStartHint.visible=!1,this._geodesicEndHint.visible=!1,e)switch(t){case 0:break;case 1:this._segmentVisualElement.visible=!0;break;case 2:this._segmentVisualElement.visible=!0,this._triangleVisualElement.visible=!0,this._rightAngleQuad.visible=!0;break;case 3:this._segmentVisualElement.visible=!0,this._projectedGeodesicLine.visible=!0,this._geodesicStartHint.visible=!0,this._geodesicEndHint.visible=!0}}_updateGeometryAndViewMode({view:e,camera:t,viewMode:i,elevationAlignedStartPoint:s,elevationAlignedEndPoint:n,orientation:l,visualizedMeasurement:o,stripeLength:r}){const a=e.renderCoordsHelper;if(null==a||null==s||null==n||s.equals(n))return;let c=this._startPosition,h=this._endPosition;a.toRenderCoords(s,c),a.toRenderCoords(n,h);const u=1===l?1:-1,d=u*(a.getAltitude(h)-a.getAltitude(c));d<0&&(c=this._endPosition,h=this._startPosition);const m="geodesic"===o?new D(this._startPosition,this._endPosition,a.spatialReference):new G(this._startPosition,this._endPosition);switch(this._segmentVisualElement.geometry=m,this._updateSegmentStripeLength(r),i){case 1:this._updateSegment(m,l);break;case 2:this._updateSegmentAndTriangle({view:e,camera:t,segment:m,orientation:l,startPosition:c,endPosition:h,deltaSign:u,altitudeDelta:d});break;case 3:this._updateSegmentAndProjection({view:e,orientation:l,startPosition:c,endPosition:h})}}_updateSegment(e,t){this._segmentLabel.anchor=1===t?"top":"bottom",this._segmentLabel.geometry={type:"segment",segment:e,sampleLocation:"center"}}_updateSegmentAndTriangle({view:{renderCoordsHelper:e},camera:t,segment:i,orientation:s,startPosition:n,endPosition:l,deltaSign:o,altitudeDelta:r}){const a=this._cornerPosition;e.worldUpAtPosition(n,a),V(a,a,o*Math.abs(r)),z(a,a,n),this._triangleVisualElement.geometry=[[[n[0],n[1],n[2]],[a[0],a[1],a[2]],[l[0],l[1],l[2]]]],this._rightAngleQuad.geometry={previous:n,center:a,next:l};const c=new G(n,a),h=new G(a,l),u=F(n,l,a,s,t);u&&(this._segmentLabel.anchor=u.segment,this._segmentLabel.geometry={type:"segment",segment:i,sampleLocation:"center"},this._verticalLabel.geometry={type:"segment",segment:c,sampleLocation:"center"},this._verticalLabel.anchor=u.vertical,this._horizontalLabel.geometry={type:"segment",segment:h,sampleLocation:"center"},this._horizontalLabel.anchor=u.horizontal)}_updateSegmentAndProjection({view:{renderCoordsHelper:e},orientation:t,startPosition:i,endPosition:s}){e.setAltitude(this._startPositionAtSeaLevel,0,i),e.setAltitude(this._endPositionAtSeaLevel,0,s);const n=new D(this._startPositionAtSeaLevel,this._endPositionAtSeaLevel,e.spatialReference);this._projectedGeodesicLine.setGeometryFromSegment(n),this._geodesicStartHint.setGeometryFromSegment(new G(this._startPositionAtSeaLevel,i)),this._geodesicEndHint.setGeometryFromSegment(new G(this._endPositionAtSeaLevel,s)),this._segmentLabel.geometry={type:"segment",segment:n,sampleLocation:"center"},this._segmentLabel.anchor=1===t?"top":"bottom"}_updateLabelText({text:e,visualizedMeasurement:t}){null!=e?(this._segmentLabel.text="euclidean"===t?e.directDistance:e.horizontalDistance,this._horizontalLabel.text=e.horizontalDistance,this._verticalLabel.text=e.verticalDistance):(this._segmentLabel.text=null,this._horizontalLabel.text=null,this._verticalLabel.text=null),this.notifyChange("labels")}_updateLabelVisibility({visible:e,viewMode:t}){const i=this._segmentLabel,s=this._horizontalLabel,n=this._verticalLabel;if(i.visible=!1,s.visible=!1,n.visible=!1,e)switch(t){case 1:case 3:i.visible=!0;break;case 2:i.visible=!0,s.visible=!0,n.visible=!0}}get _labelsText(){if(this.destroyed)return null;const e=this.messages,t=this.analysisView.result;if(null==t||null==e)return null;const{directDistance:i,horizontalDistance:s,verticalDistance:n}=t,l=this.analysisView.unit,o=e=>({directDistance:"",horizontalDistance:"",verticalDistance:"",...e});switch(l){case"metric":return o({directDistance:i&&m(e,i),horizontalDistance:s&&m(e,s),verticalDistance:n&&d(e,n)});case"imperial":return o({directDistance:i&&u(e,i),horizontalDistance:s&&u(e,s),verticalDistance:n&&h(e,n)});default:return o({directDistance:i&&c(e,i,l),horizontalDistance:s&&c(e,s,l),verticalDistance:n&&c(e,n,l)})}}_updateSegmentStripeLength(e){const t=this._segmentVisualElement;null!=e?(t.stripeLength=e,t.stripesEnabled=!0):t.stripesEnabled=!1}get _actualVisualElementsOrientation(){if(null!=this._triangleOrientationOverride)return this._triangleOrientationOverride;const e=this.visualElementOrientation;return 0===e?this.view.state.camera.aboveGround?1:2:e}_requiresGeodesicGuideAt(e){const t=this.view;if(!t?.state)return!1;const i=t.state.camera,s=t.renderCoordsHelper;if(!s)return!1;const n=i.computeScreenPixelSizeAt(e);return s.getAltitude(e)/n>=10}get _measurementArrowStripeLength(){const{result:e,unit:t}=this.analysisView;if(null==e)return null;let i=null;const s=e.directDistance;switch(t){case"metric":i=s&&g(s,"meters");break;case"imperial":i=s&&g(s,w(s.value,s.unit));break;default:i=s&&g(s,t)}if(null==i)return null;return o(i.value/30)*y(1,i.unit,"meters")}_updateMessageBundle(){this.loadingMessages=!0,U("esri/core/t9n/Units").then(e=>{this.messages=e}).finally(()=>{this.loadingMessages=!1})}get testData(){}};function F(e,t,i,s,n){const l=P(e,i,n,B),o=P(e,t,n,I);if(null==l||null==o)return null;const r=n.projectToRenderScreen(i,q),a=n.projectToRenderScreen(t,W),c={segment:"bottom",horizontal:"top",vertical:null==r||null==a||r[0]<a[0]?"left":"right"};if(E(l,o)>=Q){const e=Math.sign(l[1])===Math.sign(o[1]);c.segment=e?M(c.vertical):c.vertical}else{const e=J;P(i,t,n,e),E(e,o)>=Q&&(c.segment=Math.sign(e[0])===Math.sign(o[0])?M(c.horizontal):c.horizontal)}if(2===s){const e=e=>"top"===e?"bottom":"top";c.segment=e(c.segment),c.horizontal=e(c.horizontal),c.vertical=e(c.vertical)}return c}e([S()],R.prototype,"_parameters",null),e([S()],R.prototype,"_triangleOrientationOverride",void 0),e([S()],R.prototype,"messages",void 0),e([S()],R.prototype,"view",void 0),e([S()],R.prototype,"analysis",void 0),e([S()],R.prototype,"analysisView",void 0),e([S()],R.prototype,"loadingMessages",void 0),e([S()],R.prototype,"visible",null),e([S()],R.prototype,"viewMode",null),e([S()],R.prototype,"actualVisualizedMeasurement",null),e([S()],R.prototype,"visualElementOrientation",void 0),e([S()],R.prototype,"triangleCollapseRatioThreshold",void 0),e([S()],R.prototype,"allowVisualElementsOrientationChange",null),e([S()],R.prototype,"labels",null),e([S()],R.prototype,"_labelsText",null),e([S()],R.prototype,"_actualVisualElementsOrientation",null),e([S()],R.prototype,"_measurementArrowStripeLength",null),R=e([f("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementVisualization")],R);const Q=Math.cos(r(12)),q=b(),W=b(),B=L(),I=L(),J=L();export{R as DirectLineMeasurementVisualization};
5
+ import{__decorate as e}from"tslib";import"../../../../intl.js";import t from"../../../../core/Accessor.js";import{unitRGBAFromColor as i,multiplyOpacityToUnitRGBA as s,getContrast as n,multiplyOpacity as l}from"../../../../core/colorUtils.js";import"../../../../core/has.js";import{nextHighestPowerOfTen as o,deg2rad as r}from"../../../../core/mathUtils.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import{formatDecimal as c,formatImperialVerticalLength as h,formatImperialLength as u,formatMetricVerticalLength as d,formatMetricLength as m}from"../../../../core/quantityFormatUtils.js";import{toUnit as g}from"../../../../core/quantityUtils.js";import{watch as p,syncAndInitial as _,initial as v}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as b,createRenderScreenPointArray as L}from"../../../../core/screenUtils.js";import{adaptiveImperialLengthUnit as w,convertUnit as y}from"../../../../core/unitUtils.js";import{property as S}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as f}from"../../../../core/accessorSupport/decorators/subclass.js";import{dot as E}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{h as V,g as z}from"../../../../chunks/vec32.js";import{create as A}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{renderScreenSpaceTangent as P}from"../../interactive/support/viewUtils.js";import{LabelVisualElement as j,mirrorPosition as M}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as C}from"../../interactive/visualElements/LineVisualElement.js";import{MeasurementArrowVisualElement as O}from"../../interactive/visualElements/MeasurementArrowVisualElement.js";import{RightAngleQuadVisualElement as x}from"../../interactive/visualElements/RightAngleQuadVisualElement.js";import{GeodesicSegment as D,EuclideanSegment as G}from"../../interactive/visualElements/support/Segment.js";import{createStipplePatternSimple as H}from"../../webgl-engine/materials/lineStippleUtils.js";import{geodesicDistanceThreshold as k}from"../../../support/geodesicMeasurementUtils.js";import{onLocaleChange as T}from"../../../../intl/locale.js";import{fetchMessageBundle as U}from"../../../../intl/messages.js";let R=class extends t{get _parameters(){const e=this.view.effectiveTheme,{accentColor:t,textColor:o}=e,r=i(t),a=s(t,.75),c=i(n(t)),h=n(o,160);return{accentColor:r,contrastColor:c,translucentAccentColor:a,triangleLineWidth:3,geodesicProjectionLineWidth:2,guideLineWidth:2,guideStippleLengthPixels:3,directLabelFontSize:16,horizontalLabelFontSize:12,verticalLabelFontSize:12,textColor:o,textBackgroundColor:l(h,.6),textCalloutColor:l(h,.5)}}get visible(){return this.analysisView.visible}get viewMode(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView;if(null==e||null==t||e.equals(t))return 0;const i=this.analysisView.result;if(null==i)return 1;if("geodesic"===this.actualVisualizedMeasurement)return this._requiresGeodesicGuideAt(this._startPosition)||this._requiresGeodesicGuideAt(this._endPosition)?3:1;const{verticalDistance:s,horizontalDistance:n}=i,l=g(s,"meters").value,o=g(n,"meters").value;return Math.min(l/o,o/l)<this.triangleCollapseRatioThreshold?1:2}get actualVisualizedMeasurement(){const{measurementMode:e,result:t}=this.analysisView;switch(e){case 0:return null!=t&&g(t.horizontalDistance,"meters").value>k?"geodesic":"euclidean";case 1:return"euclidean";case 2:return"geodesic"}}get allowVisualElementsOrientationChange(){return null==this._triangleOrientationOverride}set allowVisualElementsOrientationChange(e){null==this._triangleOrientationOverride!==e&&(null==this._triangleOrientationOverride?this._triangleOrientationOverride=this._actualVisualElementsOrientation:this._triangleOrientationOverride=null)}get labels(){return"geodesic"===this.actualVisualizedMeasurement?{direct:null,horizontal:this._segmentLabel,vertical:this._verticalLabel}:{direct:this._segmentLabel,horizontal:this._horizontalLabel,vertical:this._verticalLabel}}constructor(e){super(e),this._segmentVisualElement=null,this._triangleVisualElement=null,this._rightAngleQuad=null,this._projectedGeodesicLine=null,this._geodesicStartHint=null,this._geodesicEndHint=null,this._segmentLabel=null,this._verticalLabel=null,this._horizontalLabel=null,this._startPosition=A(),this._endPosition=A(),this._cornerPosition=A(),this._startPositionAtSeaLevel=A(),this._endPositionAtSeaLevel=A(),this._triangleOrientationOverride=null,this.messages=null,this.loadingMessages=!0,this.visualElementOrientation=0,this.triangleCollapseRatioThreshold=.03}initialize(){const e={attached:!0,view:this.view,isDecoration:!0},{guideLineWidth:t,guideStippleLengthPixels:i,triangleLineWidth:s,geodesicProjectionLineWidth:n,directLabelFontSize:l,verticalLabelFontSize:o,horizontalLabelFontSize:r}=this._parameters;this._segmentVisualElement=new O({...e,geometry:null,renderOccluded:4}),this._triangleVisualElement=new C({...e,width:s,renderOccluded:4}),this._rightAngleQuad=new x({...e,renderOccluded:4});const a={...e,polygonOffset:!0,renderOccluded:4};this._projectedGeodesicLine=new C({...a,width:n,stipplePattern:H(i)}),this._geodesicStartHint=new C({...a,width:t,stipplePattern:H(i)}),this._geodesicEndHint=new C({...a,width:t,stipplePattern:H(i)}),this._segmentLabel=new j({...e,fontSize:l}),this._verticalLabel=new j({...e,fontSize:o}),this._horizontalLabel=new j({...e,fontSize:r}),this.addHandles([p(()=>{const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView,i=this.view;return{view:i,camera:i.state.camera,viewMode:this.viewMode,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,orientation:this._actualVisualElementsOrientation,visualizedMeasurement:this.actualVisualizedMeasurement,stripeLength:this._measurementArrowStripeLength}},e=>this._updateGeometryAndViewMode(e),_),p(()=>({visible:this.visible,viewMode:this.viewMode}),e=>this._updateVisualElementVisibility(e),_),p(()=>({text:this._labelsText,visualizedMeasurement:this.actualVisualizedMeasurement}),e=>this._updateLabelText(e),_),p(()=>({visible:this.visible,viewMode:this.viewMode}),e=>this._updateLabelVisibility(e),_),p(()=>this._measurementArrowStripeLength,e=>this._updateSegmentStripeLength(e),_),T(()=>this._updateMessageBundle()),p(()=>this._parameters,({textBackgroundColor:e,textCalloutColor:t,textColor:i,translucentAccentColor:s,accentColor:n,contrastColor:l})=>{const{_segmentLabel:o,_verticalLabel:r,_horizontalLabel:a,_triangleVisualElement:c,_rightAngleQuad:h,_projectedGeodesicLine:u,_geodesicStartHint:d,_geodesicEndHint:m,_segmentVisualElement:g}=this;o.backgroundColor=e,o.calloutColor=t,o.textColor=i,r.backgroundColor=e,r.calloutColor=t,r.textColor=i,a.backgroundColor=e,a.calloutColor=t,a.textColor=i,c.color=s,h.color=s,u.color=s,d.color=s,m.color=s,g.color=n,g.contrastColor=l},v)]),this._updateMessageBundle()}destroy(){this._segmentVisualElement=a(this._segmentVisualElement),this._triangleVisualElement=a(this._triangleVisualElement),this._rightAngleQuad=a(this._rightAngleQuad),this._projectedGeodesicLine=a(this._projectedGeodesicLine),this._geodesicStartHint=a(this._geodesicStartHint),this._geodesicEndHint=a(this._geodesicEndHint),this._segmentLabel=a(this._segmentLabel),this._verticalLabel=a(this._verticalLabel),this._horizontalLabel=a(this._horizontalLabel),this.set("view",null)}_updateVisualElementVisibility({visible:e,viewMode:t}){if(this._segmentVisualElement.visible=!1,this._triangleVisualElement.visible=!1,this._rightAngleQuad.visible=!1,this._projectedGeodesicLine.visible=!1,this._geodesicStartHint.visible=!1,this._geodesicEndHint.visible=!1,e)switch(t){case 0:break;case 1:this._segmentVisualElement.visible=!0;break;case 2:this._segmentVisualElement.visible=!0,this._triangleVisualElement.visible=!0,this._rightAngleQuad.visible=!0;break;case 3:this._segmentVisualElement.visible=!0,this._projectedGeodesicLine.visible=!0,this._geodesicStartHint.visible=!0,this._geodesicEndHint.visible=!0}}_updateGeometryAndViewMode({view:e,camera:t,viewMode:i,elevationAlignedStartPoint:s,elevationAlignedEndPoint:n,orientation:l,visualizedMeasurement:o,stripeLength:r}){const a=e.renderCoordsHelper;if(null==a||null==s||null==n||s.equals(n))return;let c=this._startPosition,h=this._endPosition;a.toRenderCoords(s,c),a.toRenderCoords(n,h);const u=1===l?1:-1,d=u*(a.getAltitude(h)-a.getAltitude(c));d<0&&(c=this._endPosition,h=this._startPosition);const m="geodesic"===o?new D(this._startPosition,this._endPosition,a.spatialReference):new G(this._startPosition,this._endPosition);switch(this._segmentVisualElement.geometry=m,this._updateSegmentStripeLength(r),i){case 1:this._updateSegment(m,l);break;case 2:this._updateSegmentAndTriangle({view:e,camera:t,segment:m,orientation:l,startPosition:c,endPosition:h,deltaSign:u,altitudeDelta:d});break;case 3:this._updateSegmentAndProjection({view:e,orientation:l,startPosition:c,endPosition:h})}}_updateSegment(e,t){this._segmentLabel.anchor=1===t?"top":"bottom",this._segmentLabel.geometry={type:"segment",segment:e,sampleLocation:"center"}}_updateSegmentAndTriangle({view:{renderCoordsHelper:e},camera:t,segment:i,orientation:s,startPosition:n,endPosition:l,deltaSign:o,altitudeDelta:r}){const a=this._cornerPosition;e.worldUpAtPosition(n,a),V(a,a,o*Math.abs(r)),z(a,a,n),this._triangleVisualElement.geometry=[[[n[0],n[1],n[2]],[a[0],a[1],a[2]],[l[0],l[1],l[2]]]],this._rightAngleQuad.geometry={previous:n,center:a,next:l};const c=new G(n,a),h=new G(a,l),u=F(n,l,a,s,t);u&&(this._segmentLabel.anchor=u.segment,this._segmentLabel.geometry={type:"segment",segment:i,sampleLocation:"center"},this._verticalLabel.geometry={type:"segment",segment:c,sampleLocation:"center"},this._verticalLabel.anchor=u.vertical,this._horizontalLabel.geometry={type:"segment",segment:h,sampleLocation:"center"},this._horizontalLabel.anchor=u.horizontal)}_updateSegmentAndProjection({view:{renderCoordsHelper:e},orientation:t,startPosition:i,endPosition:s}){e.setAltitude(this._startPositionAtSeaLevel,0,i),e.setAltitude(this._endPositionAtSeaLevel,0,s);const n=new D(this._startPositionAtSeaLevel,this._endPositionAtSeaLevel,e.spatialReference);this._projectedGeodesicLine.setGeometryFromSegment(n),this._geodesicStartHint.setGeometryFromSegment(new G(this._startPositionAtSeaLevel,i)),this._geodesicEndHint.setGeometryFromSegment(new G(this._endPositionAtSeaLevel,s)),this._segmentLabel.geometry={type:"segment",segment:n,sampleLocation:"center"},this._segmentLabel.anchor=1===t?"top":"bottom"}_updateLabelText({text:e,visualizedMeasurement:t}){null!=e?(this._segmentLabel.text="euclidean"===t?e.directDistance:e.horizontalDistance,this._horizontalLabel.text=e.horizontalDistance,this._verticalLabel.text=e.verticalDistance):(this._segmentLabel.text=null,this._horizontalLabel.text=null,this._verticalLabel.text=null),this.notifyChange("labels")}_updateLabelVisibility({visible:e,viewMode:t}){const i=this._segmentLabel,s=this._horizontalLabel,n=this._verticalLabel;if(i.visible=!1,s.visible=!1,n.visible=!1,e)switch(t){case 1:case 3:i.visible=!0;break;case 2:i.visible=!0,s.visible=!0,n.visible=!0}}get _labelsText(){if(this.destroyed)return null;const e=this.messages,t=this.analysisView.result;if(null==t||null==e)return null;const{directDistance:i,horizontalDistance:s,verticalDistance:n}=t,l=this.analysisView.unit,o=e=>({directDistance:"",horizontalDistance:"",verticalDistance:"",...e});switch(l){case"metric":return o({directDistance:i&&m(e,i),horizontalDistance:s&&m(e,s),verticalDistance:n&&d(e,n)});case"imperial":return o({directDistance:i&&u(e,i),horizontalDistance:s&&u(e,s),verticalDistance:n&&h(e,n)});default:return o({directDistance:i&&c(e,i,l),horizontalDistance:s&&c(e,s,l),verticalDistance:n&&c(e,n,l)})}}_updateSegmentStripeLength(e){const t=this._segmentVisualElement;null!=e?(t.stripeLength=e,t.stripesEnabled=!0):t.stripesEnabled=!1}get _actualVisualElementsOrientation(){if(null!=this._triangleOrientationOverride)return this._triangleOrientationOverride;const e=this.visualElementOrientation;return 0===e?this.view.state.camera.aboveGround?1:2:e}_requiresGeodesicGuideAt(e){const t=this.view;if(!t?.state)return!1;const i=t.state.camera,s=t.renderCoordsHelper;if(!s)return!1;const n=i.computeScreenPixelSizeAt(e);return s.getAltitude(e)/n>=10}get _measurementArrowStripeLength(){const{result:e,unit:t}=this.analysisView;if(null==e)return null;let i=null;const s=e.directDistance;switch(t){case"metric":i=s&&g(s,"meters");break;case"imperial":i=s&&g(s,w(s.value,s.unit));break;default:i=s&&g(s,t)}if(null==i)return null;return o(i.value/30)*y(1,i.unit,"meters")}_updateMessageBundle(){this.loadingMessages=!0,U("esri/core/t9n/Units").then(e=>{this.messages=e}).finally(()=>{this.loadingMessages=!1})}get testData(){}};function F(e,t,i,s,n){const l=P(e,i,n,B),o=P(e,t,n,I);if(null==l||null==o)return null;const r=n.projectToRenderScreen(i,q),a=n.projectToRenderScreen(t,W),c={segment:"bottom",horizontal:"top",vertical:null==r||null==a||r[0]<a[0]?"left":"right"};if(E(l,o)>=Q){const e=Math.sign(l[1])===Math.sign(o[1]);c.segment=e?M(c.vertical):c.vertical}else{const e=J;P(i,t,n,e),E(e,o)>=Q&&(c.segment=Math.sign(e[0])===Math.sign(o[0])?M(c.horizontal):c.horizontal)}if(2===s){const e=e=>"top"===e?"bottom":"top";c.segment=e(c.segment),c.horizontal=e(c.horizontal),c.vertical=e(c.vertical)}return c}e([S()],R.prototype,"_parameters",null),e([S()],R.prototype,"_triangleOrientationOverride",void 0),e([S()],R.prototype,"messages",void 0),e([S()],R.prototype,"view",void 0),e([S()],R.prototype,"analysis",void 0),e([S()],R.prototype,"analysisView",void 0),e([S()],R.prototype,"loadingMessages",void 0),e([S()],R.prototype,"visible",null),e([S()],R.prototype,"viewMode",null),e([S()],R.prototype,"actualVisualizedMeasurement",null),e([S()],R.prototype,"visualElementOrientation",void 0),e([S()],R.prototype,"triangleCollapseRatioThreshold",void 0),e([S()],R.prototype,"allowVisualElementsOrientationChange",null),e([S()],R.prototype,"labels",null),e([S()],R.prototype,"_labelsText",null),e([S()],R.prototype,"_actualVisualElementsOrientation",null),e([S()],R.prototype,"_measurementArrowStripeLength",null),R=e([f("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementVisualization")],R);const Q=Math.cos(r(12)),q=b(),W=b(),B=L(),I=L(),J=L();export{R as DirectLineMeasurementVisualization};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
+ */
5
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{destroyHandle as i,handlesGroup as o}from"../../../../core/handleUtils.js";import{removeMaybe as s}from"../../../../core/maybe.js";import{watch as r,syncAndInitial as a}from"../../../../core/reactiveUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{Settings as m}from"../../interactive/editingTools/settings.js";import{OutlineVisualElement as c}from"../../interactive/visualElements/OutlineVisualElement.js";import{GraphicState as p}from"../../layers/graphics/GraphicState.js";import{isValidInputPath as d}from"../../../analysis/ElevationProfile/elevationProfileGeometryUtils.js";import{connectVisualization as v}from"../../../analysis/ElevationProfile/elevationProfileInputVisualizationUtils.js";let h=class extends t{constructor(e){super(e),this._visualElementHandle=null}initialize(){this._settings=new m({getTheme:()=>this.view.effectiveTheme}),this.addHandles(v({analysisViewData:this.analysisViewData,remove:()=>this._remove(),show:e=>this._show(e)}))}destroy(){this._remove()}get updating(){return!1}_remove(){this._visualElementHandle=s(this._visualElementHandle)}_show(e){this._remove();const{view:t}=this,s=new c({view:t,geometry:u(e),attached:!1,renderOccluded:8,isDecoration:!0}),n=new p({graphic:e}),l=[r(()=>({draped:n.isDraped,elevationInfo:this.analysisViewData.analysis.elevationInfo}),({draped:e,elevationInfo:t})=>{s.elevationInfo=t,s.isDraped=e},a),n.on("changed",()=>s.geometry=u(e)),t.trackGraphicState(n),t.maskOccludee(e),i(s)];this._settings.visualElements.lineObjects.outline.apply(s),s.attached=!0,this._visualElementHandle=o(l)}};function u({geometry:e}){return d(e)?e:null}e([n({constructOnly:!0})],h.prototype,"view",void 0),e([n({constructOnly:!0})],h.prototype,"analysisViewData",void 0),e([n()],h.prototype,"updating",null),h=e([l("esri.views.3d.analysis.ElevationProfile.ElevationProfileGeometryVisualization3D")],h);export{h as ElevationProfileGeometryVisualization3D};