@arcgis/core 5.2.0-next.5 → 5.2.0-next.6

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 (849) hide show
  1. package/analysis/SliceAnalysis.d.ts +1 -1
  2. package/applications/Components/analysisUtils.d.ts +24 -0
  3. package/applications/Components/analysisUtils.js +1 -1
  4. package/arcade/Dictionary.js +1 -1
  5. package/arcade/Feature.js +1 -1
  6. package/arcade/Pixel.js +1 -1
  7. package/arcade/Voxel.js +1 -1
  8. package/arcade/arcade.js +1 -1
  9. package/arcade/arcadeAsyncRuntime.js +1 -1
  10. package/arcade/arcadeCompiler.js +1 -1
  11. package/arcade/arcadeRuntime.js +1 -1
  12. package/arcade/containerUtils.js +1 -1
  13. package/arcade/debug.js +1 -1
  14. package/arcade/deepClone.js +1 -1
  15. package/arcade/featureSetUtils.js +1 -1
  16. package/arcade/featureset/actions/GroupBy.js +1 -1
  17. package/arcade/featureset/actions/OrderBy.js +1 -1
  18. package/arcade/functions/convertdirection.js +1 -1
  19. package/arcade/functions/date.js +1 -1
  20. package/arcade/functions/feature.js +1 -1
  21. package/arcade/functions/featuresetbase.js +1 -1
  22. package/arcade/functions/featuresetgeom.js +1 -1
  23. package/arcade/functions/featuresetstats.js +1 -1
  24. package/arcade/functions/featuresetstring.js +1 -1
  25. package/arcade/functions/fieldStats.js +1 -1
  26. package/arcade/functions/geomasync.js +1 -1
  27. package/arcade/functions/geometry.js +1 -1
  28. package/arcade/functions/geomsync.js +1 -1
  29. package/arcade/functions/knowledgegraph.js +1 -1
  30. package/arcade/functions/maths.js +1 -1
  31. package/arcade/functions/stats.js +1 -1
  32. package/arcade/functions/string.js +1 -1
  33. package/arcade/functions/track.js +1 -1
  34. package/arcade/geometry/constructors.js +1 -1
  35. package/arcade/geometry/functions.js +1 -1
  36. package/arcade/geometry/operators.js +1 -1
  37. package/arcade/languageUtils.js +1 -1
  38. package/assets/components/assets/icon/orientedImageryFullSuperimpose16.json +1 -0
  39. package/assets/components/assets/icon/orientedImageryFullSuperimpose24.json +1 -0
  40. package/assets/components/assets/icon/orientedImageryFullSuperimpose32.json +1 -0
  41. package/assets/components/assets/icon/orientedImageryHalfSuperimpose16.json +1 -0
  42. package/assets/components/assets/icon/orientedImageryHalfSuperimpose24.json +1 -0
  43. package/assets/components/assets/icon/orientedImageryHalfSuperimpose32.json +1 -0
  44. package/assets/components/assets/icon/orientedImagerySceneOnly16.json +1 -0
  45. package/assets/components/assets/icon/orientedImagerySceneOnly24.json +1 -0
  46. package/assets/components/assets/icon/orientedImagerySceneOnly32.json +1 -0
  47. package/assets/components/assets/icon/parquetFeatureLayer16.json +1 -0
  48. package/assets/components/assets/icon/parquetFeatureLayer24.json +1 -0
  49. package/assets/components/assets/icon/parquetFeatureLayer32.json +1 -0
  50. package/assets/esri/core/workers/RemoteClient.js +1 -1
  51. package/assets/esri/core/workers/chunks/013708f40f811158d42c.js +1 -0
  52. package/assets/esri/core/workers/chunks/{544174c33628846284a1.js → 07a242ea908aa8e2ba28.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{7e0daf0864005cdd63c5.js → 0a780a883abfcdf0b900.js} +1 -1
  54. package/assets/esri/core/workers/chunks/0d9d33f29124d464a4cb.js +1 -0
  55. package/assets/esri/core/workers/chunks/{325bfac7cfa28a6d568f.js → 0e774f14ba274832f390.js} +1 -1
  56. package/assets/esri/core/workers/chunks/119d352dd586f2bb61ec.js +1 -0
  57. package/assets/esri/core/workers/chunks/{8cbaaea72f4ca2f023be.js → 129fdd1636e67997337c.js} +1 -1
  58. package/assets/esri/core/workers/chunks/130784a27661de6b52a5.js +1 -0
  59. package/assets/esri/core/workers/chunks/{942e527b9b92999886c7.js → 145364aa20b4435294c2.js} +1 -1
  60. package/assets/esri/core/workers/chunks/14c6419568d8a7a15cd6.js +1 -0
  61. package/assets/esri/core/workers/chunks/153dc2a0b08a0e44a881.js +1 -0
  62. package/assets/esri/core/workers/chunks/{9a3344f1dd22c425b8cc.js → 1595dc499a06b23b6a96.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{6c97b5bc408f051606d2.js → 166a0df6e37627e18976.js} +1 -1
  64. package/assets/esri/core/workers/chunks/168be2eac0fa3c67ae27.js +1 -0
  65. package/assets/esri/core/workers/chunks/{cf3036711bbe6095eaed.js → 16b90d8f628a412ba4ba.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{aea8e0577fb48d5c9577.js → 181e948d076a9a7aae8a.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{176e676879666f784599.js → 18e7784f13a57a75585a.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{d66f68a811c90739951a.js → 1c029b03ed836f393a50.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{e6e15e9e890b864fb395.js → 1c1515e020e32e177b54.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{0aaee272520c6e5bb617.js → 1c64e10f966e26af6fed.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{b5d0898406c7d6e6a717.js → 1dacc0b64bd27ce2de3a.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{a0b6eef4890cc61609dc.js → 1ddbf5f507ac153234be.js} +1 -1
  73. package/assets/esri/core/workers/chunks/1eeb1edca0ad5db6917c.js +1 -0
  74. package/assets/esri/core/workers/chunks/1f55d60d3adc31283296.js +1 -0
  75. package/assets/esri/core/workers/chunks/{425c04b26a6ec6d04b08.js → 201007cf1a91e2b126fc.js} +1 -1
  76. package/assets/esri/core/workers/chunks/20d0adc678f11981059c.js +1 -0
  77. package/assets/esri/core/workers/chunks/20e2d11f6de438ee883e.js +1 -0
  78. package/assets/esri/core/workers/chunks/{696967c8c6f53b94f851.js → 227eff8aa4a6f5f03bc2.js} +1 -1
  79. package/assets/esri/core/workers/chunks/24646a1176ce34039155.js +1 -0
  80. package/assets/esri/core/workers/chunks/24647e7424798dccdaf5.js +1 -0
  81. package/assets/esri/core/workers/chunks/{7601408e242dca1d25bd.js → 249616ea2d90d40a8299.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{55d168c13491fcdfb284.js → 24eaf1349ffe10e616e6.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{9250615c78f8570a9cda.js → 29615df388a0df022d8c.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{a320c69bc7528ff0d0cf.js → 2c8584ec1c3c9fd5aba2.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{6ca81e34854ce7ec6f6e.js → 2ce845c990bb4d701362.js} +1 -1
  86. package/assets/esri/core/workers/chunks/2d374cc8c54a722a7afe.js +1 -0
  87. package/assets/esri/core/workers/chunks/{0bd2b035c6ee89c725f9.js → 31442f25d550ead58fc4.js} +1 -1
  88. package/assets/esri/core/workers/chunks/319ff04282dc8ae38b56.js +2 -0
  89. package/assets/esri/core/workers/chunks/{8b8b63be961eb73250a0.js → 32323b0e0fcecd8f640e.js} +1 -1
  90. package/assets/esri/core/workers/chunks/33b4f5dfe1a16b59b010.js +1 -0
  91. package/assets/esri/core/workers/chunks/3402fb9c596b582311c7.js +1 -0
  92. package/assets/esri/core/workers/chunks/359d3acb3953e64e5a78.js +1 -0
  93. package/assets/esri/core/workers/chunks/388e71e8f2ec41bfa5a9.js +1 -0
  94. package/assets/esri/core/workers/chunks/{dd58bc675b85b4d90afa.js → 39974d1e5d3820ef1680.js} +1 -1
  95. package/assets/esri/core/workers/chunks/3a6678ee9990d7e83e15.js +1 -0
  96. package/assets/esri/core/workers/chunks/3aacaa1be5efeac23a37.js +1 -0
  97. package/assets/esri/core/workers/chunks/{2562d8905bd05ef6fd07.js → 3b3986276e70297d573b.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{d19600336cb6023d3e34.js → 3b765a8cac9e92f644f2.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{b7a0a5b895ddd2d3d038.js → 3df5394b17e9659ecb8f.js} +1 -1
  100. package/assets/esri/core/workers/chunks/3e012cd3ca4451f89f59.js +1 -0
  101. package/assets/esri/core/workers/chunks/3e3134e4bc34d4e07179.js +30 -0
  102. package/assets/esri/core/workers/chunks/{c06ae3a6ecc4a4fc67b2.js → 40910c69307e2d2d3f28.js} +1 -1
  103. package/assets/esri/core/workers/chunks/428561df7ba6f02e2d80.js +1 -0
  104. package/assets/esri/core/workers/chunks/{0881929a4a457f94f317.js → 4301cb9670fa7c907460.js} +1 -1
  105. package/assets/esri/core/workers/chunks/{299b4eecd0288348c971.js → 45323491f9005629c602.js} +1 -1
  106. package/assets/esri/core/workers/chunks/46d0a25d33b5b328cfce.js +1 -0
  107. package/assets/esri/core/workers/chunks/46d3ddf62fa7a76dd57d.js +1 -0
  108. package/assets/esri/core/workers/chunks/{51816d79c6be15e4bfcf.js → 46fbd519cc1a37923bfc.js} +1 -1
  109. package/assets/esri/core/workers/chunks/{d9d716bfd0aab30b6caf.js → 47656ec12401e53f4bd3.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{c0d7e4afbad0b20e2502.js → 47dd2bfecc5c4b5f10f0.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{f7698c855800e0af3038.js → 4845df00f6ebcce6ea3e.js} +1 -1
  112. package/assets/esri/core/workers/chunks/49f6c9e9980b8c624fd7.js +1 -0
  113. package/assets/esri/core/workers/chunks/4a23b27bfbcfa08fd9a7.js +1 -0
  114. package/assets/esri/core/workers/chunks/{8b5ee6be52e892fbd325.js → 4a9dd9f8aa98882218f3.js} +1 -1
  115. package/assets/esri/core/workers/chunks/4c54cb80c4dc9bbbd395.js +1 -0
  116. package/assets/esri/core/workers/chunks/{7c292f7b181f3b93352b.js → 4ef53455c8bc6efee80e.js} +1 -1
  117. package/assets/esri/core/workers/chunks/50dc9893e13396f5e35d.js +2 -0
  118. package/assets/esri/core/workers/chunks/{169c9eb6cd000e067c4b.js → 51ee6102f5f4840a5b47.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{a0296e6d6c37b861c5fb.js → 5359ff9492383c5bd9b1.js} +1 -1
  120. package/assets/esri/core/workers/chunks/{728ad5bbbcbf88d6249f.js → 537c5dd4cd0a067199d1.js} +1 -1
  121. package/assets/esri/core/workers/chunks/54d7f07e3348ddb6d9a2.js +1 -0
  122. package/assets/esri/core/workers/chunks/{48440a071a37590846ff.js → 54dad475dc806a38c287.js} +1 -1
  123. package/assets/esri/core/workers/chunks/5500dc39e11a0057ae16.js +1 -0
  124. package/assets/esri/core/workers/chunks/{2b2a09ce14d00b4b1187.js → 58155f24f8ed6aca7a21.js} +1 -1
  125. package/assets/esri/core/workers/chunks/{224a9f39876aa426a9bc.js → 5838f46d341d2fde42ee.js} +1 -1
  126. package/assets/esri/core/workers/chunks/{47d49777a3b3cd8e18bd.js → 58994b6bfcda5f2ada80.js} +1 -1
  127. package/assets/esri/core/workers/chunks/592a599f514de373dead.js +1 -0
  128. package/assets/esri/core/workers/chunks/{1ff61d8a8ea060e78b83.js → 5aba23584e0b230c75f5.js} +1 -1
  129. package/assets/esri/core/workers/chunks/{566c36032b456ec5b5d7.js → 5abe34bb0110694f7b42.js} +1 -1
  130. package/assets/esri/core/workers/chunks/{7dc2c21d61ba66a3f461.js → 5b238f9c345f10c5c2fa.js} +1 -1
  131. package/assets/esri/core/workers/chunks/5f9bacee6fbf9ac1bca0.js +1 -0
  132. package/assets/esri/core/workers/chunks/60915a3708a34da1977e.js +1 -0
  133. package/assets/esri/core/workers/chunks/62206d5d497b95fc4caf.js +1 -0
  134. package/assets/esri/core/workers/chunks/{69a1cbf0af059548f96a.js → 64daa2a714e59d22bbd4.js} +1 -1
  135. package/assets/esri/core/workers/chunks/65520a443e3811255bea.js +1 -0
  136. package/assets/esri/core/workers/chunks/6637f19b82555738a1d5.js +1 -0
  137. package/assets/esri/core/workers/chunks/{7c86099ed17f420b0489.js → 67ebde34377f98d17cda.js} +1 -1
  138. package/assets/esri/core/workers/chunks/6af77529c977d034d287.js +1 -0
  139. package/assets/esri/core/workers/chunks/{cdef9c3f80588ae45a04.js → 6c9933f948efd7923aa1.js} +1 -1
  140. package/assets/esri/core/workers/chunks/{fe2325efd0d8ad8369ed.js → 6cab67fc7044ee9b863b.js} +1 -1
  141. package/assets/esri/core/workers/chunks/{f239a8ecad8b692d5eaa.js → 6db274f6767102a39021.js} +1 -1
  142. package/assets/esri/core/workers/chunks/{aea384f4d88121da8f54.js → 6f0341cfa4c68e6e60b3.js} +1 -1
  143. package/assets/esri/core/workers/chunks/737de87bfb9b5f5a9c6c.js +1 -0
  144. package/assets/esri/core/workers/chunks/{558606a1af22e4a0d536.js → 73c355b895fd6a34fcb8.js} +1 -1
  145. package/assets/esri/core/workers/chunks/{85bba0db8a7a5fc1be44.js → 7601278ebced0c0c31cf.js} +1 -1
  146. package/assets/esri/core/workers/chunks/{b09ae8eb5e97fb27382f.js → 76589434d573111a8fb4.js} +1 -1
  147. package/assets/esri/core/workers/chunks/{1f3a676e7a4eae5ad566.js → 767ea5b455b3823afd09.js} +1 -1
  148. package/assets/esri/core/workers/chunks/79f2d4b3af5776ec2045.js +1 -0
  149. package/assets/esri/core/workers/chunks/{c8dedc010fcc2382af24.js → 7b564226def99fcf79d8.js} +1 -1
  150. package/assets/esri/core/workers/chunks/7cadb872b9ca96eedca5.js +1 -0
  151. package/assets/esri/core/workers/chunks/7ed3d6c72f23c628df3b.js +1 -0
  152. package/assets/esri/core/workers/chunks/{ed939fd5d3827a3f70e0.js → 81e3bd1a0634ddc2b833.js} +1 -1
  153. package/assets/esri/core/workers/chunks/8244b74e9c3a30d8d2f6.js +2 -0
  154. package/assets/esri/core/workers/chunks/{062aadf426fe97a76bbb.js → 8351012ceb466f01b8fd.js} +1 -1
  155. package/assets/esri/core/workers/chunks/8407c91cce31e087b41b.js +1 -0
  156. package/assets/esri/core/workers/chunks/{24acf3dd541347c2b297.js → 882ee7ed8a3a0215f9b9.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{98b4408e12684e37b395.js → 8a48a6760c33ed50b650.js} +1 -1
  158. package/assets/esri/core/workers/chunks/8bdca6f06c8b5fedd917.js +1 -0
  159. package/assets/esri/core/workers/chunks/8c5a41ae68775bac3446.js +1 -0
  160. package/assets/esri/core/workers/chunks/8e1865392681d390ab2e.js +1 -0
  161. package/assets/esri/core/workers/chunks/{7a823bb1b72764897dd5.js → 8f94c90fdb0333da2d0f.js} +1 -1
  162. package/assets/esri/core/workers/chunks/9482a6d7baa24bbf5693.js +1 -0
  163. package/assets/esri/core/workers/chunks/94fac056e14caed09682.js +1 -0
  164. package/assets/esri/core/workers/chunks/{f931d560f3f14598f454.js → 9dcfaca1f4fa8c8026ac.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{5570d47533efab56c732.js → 9f4681713f03365a2a53.js} +1 -1
  166. package/assets/esri/core/workers/chunks/a0fa60a24e58f7a47e41.js +1 -0
  167. package/assets/esri/core/workers/chunks/{b32a13972cb3de652339.js → a320998f18922a35899f.js} +1 -1
  168. package/assets/esri/core/workers/chunks/{aa55923ca939a0d4606c.js → a3a28c4887f802e8d96d.js} +1 -1
  169. package/assets/esri/core/workers/chunks/a806ac351ef5da04c250.js +1 -0
  170. package/assets/esri/core/workers/chunks/{8795c4895df229cb471c.js → ab94c9f62462d7a98f6a.js} +1 -1
  171. package/assets/esri/core/workers/chunks/{2a8f198f6c272f92bad5.js → abdb05754c50776c3edd.js} +1 -1
  172. package/assets/esri/core/workers/chunks/{988e91cc6cf88c34c2de.js → ace1899a8e5162b4018d.js} +1 -1
  173. package/assets/esri/core/workers/chunks/ad488985824fbb830ed6.js +1 -0
  174. package/assets/esri/core/workers/chunks/af8ef6701631ed5e5b80.js +1 -0
  175. package/assets/esri/core/workers/chunks/{a95398214e530f896a2d.js → af96cbc4fb7bef726635.js} +1 -1
  176. package/assets/esri/core/workers/chunks/b08a1255dacf6cfcf139.js +640 -0
  177. package/assets/esri/core/workers/chunks/b098469e0010a6b44df9.js +1 -0
  178. package/assets/esri/core/workers/chunks/{170f8dc97614e9609443.js → b0ac4b0b7aec70cfe6eb.js} +1 -1
  179. package/assets/esri/core/workers/chunks/{4e97c01698ef36cc5e0e.js → b1f1271434af302938e8.js} +1 -1
  180. package/assets/esri/core/workers/chunks/{2f925a424b60b4a5e8e5.js → b803e7b0d489bb628d72.js} +1 -1
  181. package/assets/esri/core/workers/chunks/bb24972603fb35dd8dcf.js +1 -0
  182. package/assets/esri/core/workers/chunks/bca6abc185dedec0f41b.js +1 -0
  183. package/assets/esri/core/workers/chunks/{79b64a52ff57c40c7800.js → bf706a5d065a357de51b.js} +1 -1
  184. package/assets/esri/core/workers/chunks/bfbd1ca28ed2f263e58f.js +1 -0
  185. package/assets/esri/core/workers/chunks/c1189316d24fb4cdb2a0.js +1 -0
  186. package/assets/esri/core/workers/chunks/c216cd5d6b5d4fe4bab3.js +2 -0
  187. package/assets/esri/core/workers/chunks/{d21bf107698fef03125e.js → c27cb2a83a1d2e004501.js} +1 -1
  188. package/assets/esri/core/workers/chunks/c44be4aaba829e6d149d.js +1 -0
  189. package/assets/esri/core/workers/chunks/c83fea0d0ebd0d8e43fd.js +1 -0
  190. package/assets/esri/core/workers/chunks/ca4245414d8ecd217f9d.js +1 -0
  191. package/assets/esri/core/workers/chunks/ca7d4d76a6bf5a3046cd.js +1 -0
  192. package/assets/esri/core/workers/chunks/cb8c4d8334fab9bd9a04.js +1 -0
  193. package/assets/esri/core/workers/chunks/{7a3b05e25de2ff150f38.js → cc479daacd2cf715baa8.js} +1 -1
  194. package/assets/esri/core/workers/chunks/{c1ffb879e0283fb2815f.js → cc62e5095e328bed3e01.js} +1 -1
  195. package/assets/esri/core/workers/chunks/{8d4881c879c86b353e08.js → cda99b543a0e1979346c.js} +1 -1
  196. package/assets/esri/core/workers/chunks/{a53a3e5548fef65a2710.js → cf826787ab8d4b27ad80.js} +1 -1
  197. package/assets/esri/core/workers/chunks/{d6d87bfa9e6d233385a9.js → d1ac98f48bb6d43d97c8.js} +2 -2
  198. package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js → d1ccc5f2d8892328ab01.js} +2 -2
  199. package/assets/esri/core/workers/chunks/d1d135a54233092ad637.js +1 -0
  200. package/assets/esri/core/workers/chunks/d35c475f004367e333eb.js +1 -0
  201. package/assets/esri/core/workers/chunks/{b44f1d08784f2e50c853.js → d3af51a6d9014ff46170.js} +1 -1
  202. package/assets/esri/core/workers/chunks/d561dc933d8fe1672d85.js +1 -0
  203. package/assets/esri/core/workers/chunks/d56780290e0218d3e9de.js +1 -0
  204. package/assets/esri/core/workers/chunks/{bbaf8baa3ca6195467e4.js → d64613209a9eb1eafb11.js} +1 -1
  205. package/assets/esri/core/workers/chunks/{cb26966cc205bd338c76.js → d81291dac1932350eccd.js} +1 -1
  206. package/assets/esri/core/workers/chunks/dddb57ff637643ccfc87.js +1 -0
  207. package/assets/esri/core/workers/chunks/{0ded5c114cbb7574f2f4.js → dfeddb7b17fa9eaae64c.js} +1 -1
  208. package/assets/esri/core/workers/chunks/e178cd0e9178d6716410.js +1 -0
  209. package/assets/esri/core/workers/chunks/{7f54d3835c0ce573a942.js → e25bcfdd8f20f8a08b19.js} +1 -1
  210. package/assets/esri/core/workers/chunks/{e0bd550b10dd402c48f1.js → e38836bfcc7a15a2fd1f.js} +1 -1
  211. package/assets/esri/core/workers/chunks/e3b713a590cce6245ee2.js +1 -0
  212. package/assets/esri/core/workers/chunks/{a40003dfe3c081d1a1d2.js → e638391801ad83fe4a68.js} +1 -1
  213. package/assets/esri/core/workers/chunks/{0b76534b60014d74ecb9.js → e7712467db46e1385cf4.js} +1 -1
  214. package/assets/esri/core/workers/chunks/e785f76c1a75cb1d1e1f.js +1 -0
  215. package/assets/esri/core/workers/chunks/{76a9b64fd573775bf6cd.js → e82488b9b3bb0c1dedb4.js} +1 -1
  216. package/assets/esri/core/workers/chunks/{15fa8b5b472131aaa68e.js → e92698f50089484c4901.js} +1 -1
  217. package/assets/esri/core/workers/chunks/e9dcc3e9dbafe9bbed84.js +1 -0
  218. package/assets/esri/core/workers/chunks/ed2cb60e4f17f46fb78d.js +1 -0
  219. package/assets/esri/core/workers/chunks/edcde00495727d506c46.js +1 -0
  220. package/assets/esri/core/workers/chunks/{86a767c2b0b1e37ff493.js → eedee0af459e6b8a6116.js} +1 -1
  221. package/assets/esri/core/workers/chunks/{009250a7bded12099dd1.js → f1fb2f12371f4c562079.js} +1 -1
  222. package/assets/esri/core/workers/chunks/{466c250537415f12eb59.js → f31a8e76f1dde23c0900.js} +1 -1
  223. package/assets/esri/core/workers/chunks/f3dfe1bd1146a6927407.js +1 -0
  224. package/assets/esri/core/workers/chunks/{6b5d2df9123dfe7e00b3.js → f563dd6cace047108b3c.js} +1 -1
  225. package/assets/esri/core/workers/chunks/{6a53c8db554be55c5885.js → f5a2c28dc26c065ea355.js} +31 -21
  226. package/assets/esri/core/workers/chunks/f60292d97bcdbf19165b.js +1 -0
  227. package/assets/esri/core/workers/chunks/f79bd469b25099a31274.js +1 -0
  228. package/assets/esri/core/workers/chunks/f9e22cf59e2e2782d70f.js +1 -0
  229. package/assets/esri/core/workers/chunks/fce7995c26953bfd8d3d.js +1 -0
  230. package/assets/esri/core/workers/chunks/{e227ae2c1a63e30e62d9.js → ff48334528d2554db4fe.js} +1 -1
  231. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +18 -14
  232. package/assets/esri/themes/base/widgets/_Grid.scss +3 -3
  233. package/assets/esri/themes/dark/main.css +1 -1
  234. package/assets/esri/themes/light/main.css +1 -1
  235. package/assets/esri/themes/light/view.css +1 -1
  236. package/chunks/AtmosphereCompositing.glsl.js +1 -1
  237. package/chunks/Bufferer-Dw9Qi4T1.js +1 -1
  238. package/chunks/Centroid-DZi-eb9F.js +1 -1
  239. package/chunks/Clouds.glsl.js +1 -1
  240. package/chunks/Compositing.glsl.js +1 -1
  241. package/chunks/CutFillComposition.glsl.js +1 -1
  242. package/chunks/CutFillDepth.glsl.js +1 -1
  243. package/chunks/CutFillMask.glsl.js +1 -1
  244. package/chunks/CutFillReduction.glsl.js +1 -1
  245. package/chunks/CutFillTargetDepth.glsl.js +1 -1
  246. package/chunks/Distance2DCalculator-CXhBP-8I.js +1 -1
  247. package/chunks/Envelope.js +1 -1
  248. package/chunks/Envelope2D.js +1 -1
  249. package/chunks/FlatGeometry.js +1 -1
  250. package/chunks/FocusAreaColor.glsl.js +1 -1
  251. package/chunks/FocusAreaMask.glsl.js +1 -1
  252. package/chunks/Fog.glsl.js +1 -1
  253. package/chunks/GaussianSplat.glsl.js +1 -1
  254. package/chunks/GaussianSplatShadow.glsl.js +1 -1
  255. package/chunks/GeodeticDistanceCalculator-Ce-woMPw.js +1 -1
  256. package/chunks/GeodeticUtils.js +1 -1
  257. package/chunks/Geometry.js +1 -1
  258. package/chunks/GeometryCleaner-BEJM7I4l.js +1 -1
  259. package/chunks/GlobalIllumination.glsl.js +20 -19
  260. package/chunks/GlobalIlluminationBlur.glsl.js +15 -12
  261. package/chunks/GlobalIlluminationUpscale.glsl.js +4 -3
  262. package/chunks/GlowBlur.glsl.js +1 -1
  263. package/chunks/GlowComposition.glsl.js +1 -1
  264. package/chunks/HazeCompositing.glsl.js +1 -1
  265. package/chunks/HighlightBlur.glsl.js +1 -1
  266. package/chunks/HighlightDownsample.glsl.js +1 -1
  267. package/chunks/Magnifier.glsl.js +1 -1
  268. package/chunks/MultiPathImpl.js +1 -1
  269. package/chunks/NoiseTextureAtlas.glsl.js +1 -1
  270. package/chunks/OITBlend.glsl.js +2 -2
  271. package/chunks/OITBlendEmission.glsl.js +1 -1
  272. package/chunks/OITDimOpaque.glsl.js +1 -1
  273. package/chunks/OperatorClip.js +1 -1
  274. package/chunks/OperatorCrosses.js +1 -1
  275. package/chunks/OperatorCut.js +1 -1
  276. package/chunks/OperatorDensify.js +1 -1
  277. package/chunks/OperatorGeneralize.js +1 -1
  278. package/chunks/OperatorGeodesicBuffer.js +1 -1
  279. package/chunks/OperatorGeodeticArea.js +1 -1
  280. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  281. package/chunks/OperatorGeodeticDistance.js +1 -1
  282. package/chunks/OperatorGeodeticLength.js +1 -1
  283. package/chunks/OperatorIntegrate.js +1 -1
  284. package/chunks/OperatorIntersects.js +1 -1
  285. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  286. package/chunks/OperatorOverlaps.js +1 -1
  287. package/chunks/OperatorProject.js +1 -1
  288. package/chunks/OperatorProximity.js +1 -1
  289. package/chunks/OperatorProximityGeodesic.js +1 -1
  290. package/chunks/OperatorShapePreservingDensify.js +1 -1
  291. package/chunks/OperatorShapePreservingLength.js +1 -1
  292. package/chunks/OperatorShapePreservingProject.js +1 -1
  293. package/chunks/OperatorSimplifyOGC.js +1 -1
  294. package/chunks/OperatorTouches.js +1 -1
  295. package/chunks/OperatorWithin.js +1 -1
  296. package/chunks/OverlayCompositing.glsl.js +1 -1
  297. package/chunks/Point2D.js +1 -1
  298. package/chunks/PointRenderer.glsl.js +1 -1
  299. package/chunks/ProjectionTransformation.js +1 -1
  300. package/chunks/RasterColorizer.glsl.js +1 -1
  301. package/chunks/ShadowCastAccumulate.glsl.js +1 -1
  302. package/chunks/ShadowCastVisualize.glsl.js +2 -2
  303. package/chunks/SideCalculator2D-BNwb5gvz.js +1 -1
  304. package/chunks/SimpleAtmosphere.glsl.js +1 -1
  305. package/chunks/SpatialReference.js +1 -1
  306. package/chunks/Terrain.glsl.js +1 -1
  307. package/chunks/Texture.glsl.js +1 -1
  308. package/chunks/Transformation2D.js +1 -1
  309. package/chunks/Viewshed.glsl.js +1 -1
  310. package/chunks/aiServices.js +1 -1
  311. package/chunks/arcade.js +1 -1
  312. package/chunks/array.js +1 -1
  313. package/chunks/boundedPlane.js +1 -1
  314. package/chunks/bundle.js +1 -1
  315. package/chunks/bundle2.js +1 -1
  316. package/chunks/constants.js +1 -1
  317. package/chunks/containsOperator.js +1 -1
  318. package/chunks/disjointOperator.js +1 -1
  319. package/chunks/distanceOperator.js +1 -1
  320. package/chunks/equalsOperator.js +1 -1
  321. package/chunks/languageUtils.js +1 -1
  322. package/chunks/pe.js +1 -1
  323. package/chunks/persistableUrlUtils.js +1 -1
  324. package/chunks/relateOperator.js +1 -1
  325. package/chunks/symmetricDifferenceOperator.js +1 -1
  326. package/chunks/unionOperator.js +1 -1
  327. package/chunks/vec2.js +1 -1
  328. package/chunks/vec3.js +1 -1
  329. package/chunks/vec4.js +1 -1
  330. package/config.js +1 -1
  331. package/core/accessorSupport/decorators/persistable.js +1 -1
  332. package/core/mapCollectionUtils.js +1 -1
  333. package/core/quantityFormatUtils.js +1 -1
  334. package/core/unitFormatUtils.js +1 -1
  335. package/editing/sharedTemplates/templateDefinitions/FeatureTemplateDefinition.js +1 -1
  336. package/editing/sharedTemplates/templateDefinitions/GroupTemplateDefinition.js +1 -1
  337. package/editing/sharedTemplates/templateDefinitions/PresetTemplateDefinition.js +1 -1
  338. package/effects/FocusArea.js +1 -1
  339. package/geometry/Circle.js +1 -1
  340. package/geometry/coordinateFormatter.js +1 -1
  341. package/geometry/geodesicUtils.js +1 -1
  342. package/geometry/operators/extendOperator.js +1 -1
  343. package/geometry/operators/gx/geodeticUtils.js +1 -1
  344. package/geometry/operators/gx/operatorAffineTransform.js +1 -1
  345. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  346. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  347. package/geometry/operators/gx/operatorBoundary.js +1 -1
  348. package/geometry/operators/gx/operatorBuffer.js +1 -1
  349. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  350. package/geometry/operators/gx/operatorDifference.js +1 -1
  351. package/geometry/operators/gx/operatorGeodesicBuffer.js +1 -1
  352. package/geometry/operators/gx/operatorGeodeticArea.js +1 -1
  353. package/geometry/operators/gx/operatorGeodeticDensify.js +1 -1
  354. package/geometry/operators/gx/operatorGeodeticDistance.js +1 -1
  355. package/geometry/operators/gx/operatorGeodeticLength.js +1 -1
  356. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  357. package/geometry/operators/gx/operatorIntersection.js +1 -1
  358. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  359. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  360. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  361. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  362. package/geometry/operators/gx/operatorOffset.js +1 -1
  363. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  364. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  365. package/geometry/operators/gx/operatorProject.js +1 -1
  366. package/geometry/operators/gx/operatorProximityGeodesic.js +1 -1
  367. package/geometry/operators/gx/operatorShapePreservingProject.js +1 -1
  368. package/geometry/operators/gx/operatorSimplify.js +1 -1
  369. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  370. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  371. package/geometry/operators/gx/operatorUnion.js +1 -1
  372. package/geometry/operators/isNearOperator.js +1 -1
  373. package/geometry/operators/json/containsOperator.js +1 -1
  374. package/geometry/operators/json/disjointOperator.js +1 -1
  375. package/geometry/operators/locateBetweenOperator.js +1 -1
  376. package/geometry/operators/offsetOperator.js +1 -1
  377. package/geometry/operators/reshapeOperator.js +1 -1
  378. package/geometry/operators/support/apiConverter.js +1 -1
  379. package/geometry/operators/support/geographicTransformationUtils.js +1 -1
  380. package/geometry/operators/support/initNoPeFactory.js +1 -1
  381. package/geometry/operators/support/jsonConverter.js +1 -1
  382. package/geometry/operators/support/projectionTransformation.js +1 -1
  383. package/geometry/operators/symmetricDifferenceOperator.js +1 -1
  384. package/geometry/operators/unionOperator.js +1 -1
  385. package/geometry/pe.js +1 -1
  386. package/geometry/support/MeshTexture.js +1 -1
  387. package/geometry/support/boundedPlane.js +1 -1
  388. package/geometry/support/buffer/math/vec3.js +1 -1
  389. package/geometry/support/buffer/math/vec4.js +1 -1
  390. package/geometry/support/buffer/utils/vec2.js +1 -1
  391. package/geometry/support/coordinateSystem.js +1 -1
  392. package/geometry/support/frustum.js +1 -1
  393. package/geometry/support/meshUtils/extent.js +1 -1
  394. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  395. package/geometry/support/meshUtils/projection.js +1 -1
  396. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  397. package/geometry/support/spatialReferenceUtils.js +1 -1
  398. package/kernel.js +1 -1
  399. package/layers/FeatureLayer.d.ts +1 -1
  400. package/layers/FeatureLayer.js +1 -1
  401. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  402. package/layers/IntegratedMeshLayer.js +1 -1
  403. package/layers/KnowledgeGraphLayer.js +1 -1
  404. package/layers/MediaLayer.d.ts +1 -1
  405. package/layers/SceneLayer.d.ts +2 -2
  406. package/layers/UnsupportedLayer.d.ts +10 -2
  407. package/layers/VectorTileLayer.d.ts +2 -2
  408. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  409. package/layers/mixins/ArcGISImageService.js +1 -1
  410. package/layers/mixins/BlendLayer.d.ts +1 -1
  411. package/layers/orientedImagery/transformations/utils.js +1 -1
  412. package/layers/raster/functions/rasterProjectionHelper.js +1 -1
  413. package/layers/save/featureLayerUtils.js +1 -1
  414. package/layers/support/FeatureFilter.d.ts +1 -1
  415. package/layers/support/FeatureReductionSelection.d.ts +1 -1
  416. package/layers/support/ImageElement.js +1 -1
  417. package/layers/support/ParquetFilesData.js +1 -1
  418. package/layers/support/RasterJobHandler.js +1 -1
  419. package/layers/support/RasterWorker.js +1 -1
  420. package/layers/support/SceneFilter.js +1 -1
  421. package/layers/support/arcgisLayers.js +1 -1
  422. package/layers/support/fetchService.js +1 -1
  423. package/layers/support/layerUtils.js +1 -1
  424. package/layers/support/layersLoader.js +1 -1
  425. package/libs/parquet/loadParquetModule.js +1 -1
  426. package/libs/text/loadTextModule.js +1 -1
  427. package/linkChart/LinkChartProperties.js +1 -1
  428. package/package.json +3 -3
  429. package/portal/PortalItem.js +1 -1
  430. package/renderers/FlowRenderer.d.ts +2 -2
  431. package/renderers/UniqueValueRenderer.js +1 -1
  432. package/rest/support/IdentifyParameters.js +1 -1
  433. package/rest/support/IdentifyResult.js +1 -1
  434. package/smartMapping/raster/renderers/flow.d.ts +2 -2
  435. package/smartMapping/renderers/type.js +1 -1
  436. package/smartMapping/renderers/univariateColorSize.js +1 -1
  437. package/smartMapping/symbology/flow.d.ts +2 -2
  438. package/smartMapping/symbology/types.d.ts +2 -2
  439. package/support/arcadeUtils.js +1 -1
  440. package/support/persistableUrlUtils.js +1 -1
  441. package/support/revision.js +1 -1
  442. package/symbols/Symbol3D.js +1 -1
  443. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  444. package/symbols/cim/CIMSymbolHelper.js +1 -1
  445. package/symbols/support/IconSymbol3DLayerResource.js +1 -1
  446. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  447. package/symbols/support/previewSymbol2D.js +1 -1
  448. package/symbols/support/urlUtils.js +1 -1
  449. package/symbols/support/webStyleSymbolUtils.js +1 -1
  450. package/views/2d/ViewStateManager.js +1 -1
  451. package/views/2d/engine/vectorTiles/shaders/VTLBackgroundMaterial.js +1 -1
  452. package/views/2d/engine/webgl/shaderGraph/graph/glsl.js +1 -1
  453. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  454. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  455. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  456. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedLineShader.js +1 -1
  457. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  458. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  459. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  460. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  461. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  462. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  463. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlitShader.js +1 -1
  464. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js +1 -1
  465. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlurShader.js +1 -1
  466. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ClipShader.js +1 -1
  467. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js +1 -1
  468. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  469. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
  470. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js +1 -1
  471. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
  472. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientFillShader.js +1 -1
  473. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientStrokeShader.js +1 -1
  474. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js +1 -1
  475. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  476. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
  477. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  478. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
  479. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
  480. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  481. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
  482. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternFillShader.js +1 -1
  483. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternOutlineFillShader.js +1 -1
  484. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PostProcessingShader.js +1 -1
  485. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  486. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js +1 -1
  487. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js +1 -1
  488. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js +1 -1
  489. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +1 -1
  490. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js +1 -1
  491. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js +1 -1
  492. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +1 -1
  493. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  494. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/MultiRasterMixin.js +1 -1
  495. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/utils.js +1 -1
  496. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vvUtils.js +1 -1
  497. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  498. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  499. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  500. package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
  501. package/views/2d/layers/BaseLayerView2D.d.ts +19 -3
  502. package/views/2d/layers/BaseLayerViewGL2D.d.ts +19 -3
  503. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  504. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  505. package/views/2d/layers/features/Processor.js +1 -1
  506. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  507. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  508. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  509. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  510. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  511. package/views/2d/navigation/ZoomBox.js +1 -1
  512. package/views/2d/navigation/actions/Pan.js +1 -1
  513. package/views/2d/navigation/actions/Pinch.js +1 -1
  514. package/views/2d/navigation/actions/Rotate.js +1 -1
  515. package/views/3d/analysis/AnalysisView3D.js +1 -1
  516. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  517. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  518. package/views/3d/analysis/LineOfSight/LineOfSightAuthoringUtils.js +1 -1
  519. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  520. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  521. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  522. package/views/3d/analysis/LineOfSightAnalysisResult.js +1 -1
  523. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  524. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  525. package/views/3d/analysis/Slice/SliceController.js +1 -1
  526. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  527. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  528. package/views/3d/analysis/Viewshed/ViewshedDrawToolRenderer.js +1 -1
  529. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  530. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  531. package/views/3d/analysis/Viewshed/ViewshedPlacementOperation.js +1 -1
  532. package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
  533. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  534. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  535. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  536. package/views/3d/analysis/Viewshed/ViewshedTool2.js +1 -1
  537. package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
  538. package/views/3d/analysis/Viewshed/viewshedToolManipulatorUtils.js +1 -1
  539. package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
  540. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  541. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  542. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  543. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementError.d.ts +1 -1
  544. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementResult.js +1 -1
  545. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  546. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  547. package/views/3d/focusAreaUtils.js +1 -1
  548. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
  549. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  550. package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
  551. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  552. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  553. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  554. package/views/3d/layers/DrapedSubView3D.js +1 -1
  555. package/views/3d/layers/FlowSubView3D.js +1 -1
  556. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  557. package/views/3d/layers/I3SMeshView3D.js +1 -1
  558. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  559. package/views/3d/layers/ImagerySubView3D.js +1 -1
  560. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  561. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  562. package/views/3d/layers/PointCloudWorker.js +1 -1
  563. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  564. package/views/3d/layers/SceneLayerWorker.js +1 -1
  565. package/views/3d/layers/SubView3D.js +1 -1
  566. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  567. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  568. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  569. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  570. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  571. package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
  572. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  573. package/views/3d/layers/i3s/I3SQueryFeatureStore.js +1 -1
  574. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  575. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  576. package/views/3d/layers/i3s/LoDUtil.js +1 -1
  577. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  578. package/views/3d/layers/i3s/meshUtils.js +1 -1
  579. package/views/3d/layers/support/FeatureTile.js +1 -1
  580. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  581. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  582. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  583. package/views/3d/layers/support/I3STreeDebugger.js +1 -1
  584. package/views/3d/layers/support/MediaLayerInteractionOptions.js +1 -1
  585. package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.js +1 -1
  586. package/views/3d/layers/support/edgeUtils.js +1 -1
  587. package/views/3d/state/ScreenSizePerspective.js +1 -1
  588. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  589. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  590. package/views/3d/state/utils/navigationUtils.js +1 -1
  591. package/views/3d/support/ViewSlice.js +1 -1
  592. package/views/3d/support/dito.js +1 -1
  593. package/views/3d/support/flow/FlowSubViewExtent3D.js +1 -1
  594. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  595. package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
  596. package/views/3d/support/orientedBoundingBox.js +1 -1
  597. package/views/3d/support/sunUtils.js +1 -1
  598. package/views/3d/terrain/OverlayRenderer.js +1 -1
  599. package/views/3d/terrain/RasterColorizer.glsl.js +1 -1
  600. package/views/3d/terrain/RasterTile.js +1 -1
  601. package/views/3d/terrain/TerrainRenderer.js +1 -1
  602. package/views/3d/webgl/RenderCamera.js +1 -1
  603. package/views/3d/webgl/RenderNode.js +1 -1
  604. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  605. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  606. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.js +1 -1
  607. package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
  608. package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
  609. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  610. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  611. package/views/3d/webgl-engine/effects/clouds/Clouds.glsl.js +1 -1
  612. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  613. package/views/3d/webgl-engine/effects/clouds/CloudsTechnique.js +1 -1
  614. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.glsl.js +1 -1
  615. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
  616. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlasTechnique.js +1 -1
  617. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColor.glsl.js +1 -1
  618. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  619. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorTechnique.js +1 -1
  620. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.glsl.js +1 -1
  621. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  622. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +1 -1
  623. package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
  624. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  625. package/views/3d/webgl-engine/effects/fog/FogTechnique.js +1 -1
  626. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  627. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  628. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
  629. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlurTechnique.js +1 -1
  630. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js +7 -0
  631. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechnique.js +1 -1
  632. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
  633. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscale.glsl.js +1 -1
  634. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscaleTechnique.js +1 -1
  635. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  636. package/views/3d/webgl-engine/effects/glow/GlowBlur.glsl.js +1 -1
  637. package/views/3d/webgl-engine/effects/glow/GlowBlurTechnique.js +1 -1
  638. package/views/3d/webgl-engine/effects/glow/GlowComposition.glsl.js +1 -1
  639. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
  640. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  641. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  642. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  643. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  644. package/views/3d/webgl-engine/effects/highlight/HighlightBlur.glsl.js +1 -1
  645. package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +1 -1
  646. package/views/3d/webgl-engine/effects/highlight/HighlightDownsample.glsl.js +1 -1
  647. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  648. package/views/3d/webgl-engine/effects/magnifier/Magnifier.glsl.js +1 -1
  649. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  650. package/views/3d/webgl-engine/effects/magnifier/MagnifierTechnique.js +1 -1
  651. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  652. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  653. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  654. package/views/3d/webgl-engine/effects/transparency/OITDimOpaque.glsl.js +1 -1
  655. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +1 -1
  656. package/views/3d/webgl-engine/lib/Compositor.js +1 -1
  657. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  658. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  659. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  660. package/views/3d/webgl-engine/lib/GaussianSplatShadowRenderNode.js +1 -1
  661. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  662. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  663. package/views/3d/webgl-engine/lib/SliceHelper.js +1 -1
  664. package/views/3d/webgl-engine/lib/Texture.glsl.js +1 -1
  665. package/views/3d/webgl-engine/lib/TextureTechnique.js +1 -1
  666. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  667. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  668. package/views/3d/webgl-engine/lib/intersectorUtils.js +1 -1
  669. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  670. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  671. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  672. package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
  673. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  674. package/views/3d/webgl-engine/shaders/CutFillComposition.glsl.js +1 -1
  675. package/views/3d/webgl-engine/shaders/CutFillCompositionTechnique.js +1 -1
  676. package/views/3d/webgl-engine/shaders/CutFillDepth.glsl.js +1 -1
  677. package/views/3d/webgl-engine/shaders/CutFillDepthTechnique.js +1 -1
  678. package/views/3d/webgl-engine/shaders/CutFillDepthTechniqueConfiguration.js +1 -1
  679. package/views/3d/webgl-engine/shaders/CutFillMask.glsl.js +1 -1
  680. package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +1 -1
  681. package/views/3d/webgl-engine/shaders/CutFillReduction.glsl.js +1 -1
  682. package/views/3d/webgl-engine/shaders/CutFillReductionTechnique.js +1 -1
  683. package/views/3d/webgl-engine/shaders/CutFillReductionTechniqueConfiguration.js +1 -1
  684. package/views/3d/webgl-engine/shaders/CutFillTargetDepth.glsl.js +1 -1
  685. package/views/3d/webgl-engine/shaders/CutFillTargetDepthTechnique.js +1 -1
  686. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  687. package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +1 -1
  688. package/views/3d/webgl-engine/shaders/GaussianSplatShadow.glsl.js +1 -1
  689. package/views/3d/webgl-engine/shaders/GaussianSplatShadowTechnique.js +1 -1
  690. package/views/3d/webgl-engine/shaders/GaussianSplatTechnique.js +1 -1
  691. package/views/3d/webgl-engine/shaders/OverlayCompositing.glsl.js +1 -1
  692. package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
  693. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  694. package/views/3d/webgl-engine/shaders/PointRendererTechnique.js +1 -1
  695. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  696. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  697. package/views/3d/webgl-engine/shaders/ShadowCastMaskTechnique.js +1 -1
  698. package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
  699. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechnique.js +1 -1
  700. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  701. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  702. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  703. package/views/3d/webgl-engine/shaders/ViewshedTechnique.js +1 -1
  704. package/views/SceneView.d.ts +1 -1
  705. package/views/Theme.js +1 -1
  706. package/views/View.js +1 -1
  707. package/views/analysis/ElevationProfile/ElevationProfileChart.js +1 -1
  708. package/views/analysis/ElevationProfile/ElevationProfileError.d.ts +1 -1
  709. package/views/analysis/LengthDimensionResult.js +1 -1
  710. package/views/draw/drawSurfaces.js +1 -1
  711. package/views/interactive/Tooltip.js +1 -1
  712. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  713. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  714. package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
  715. package/views/interactive/sketch/constraints.js +1 -1
  716. package/views/interactive/sketch/normalizedPoint.js +1 -1
  717. package/views/interactive/snapping/SnappingOptions.d.ts +3 -3
  718. package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
  719. package/views/interactive/support/utils.js +1 -1
  720. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  721. package/views/interactive/tooltip/content/TooltipContent.js +1 -1
  722. package/views/interactive/tooltip/fields/fields.js +1 -1
  723. package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
  724. package/views/interactive/tooltip/tooltipCommonUtils.js +1 -1
  725. package/views/layers/BuildingComponentSublayerView.js +1 -1
  726. package/views/layers/FeatureLikeLayerView.d.ts +1 -1
  727. package/views/layers/FeatureLikeLayerView.js +1 -1
  728. package/views/layers/GroupLayerView.js +1 -1
  729. package/views/layers/SceneLayerView.js +1 -1
  730. package/views/overlay/CrosshairOverlayItem.js +1 -1
  731. package/views/overlay/LineOverlayItem.js +1 -1
  732. package/views/support/angularMeasurementUtils.js +1 -1
  733. package/views/support/euclideanLengthMeasurementUtils.js +1 -1
  734. package/views/support/flow/dataUtils.js +1 -1
  735. package/views/support/geometry2dUtils.js +1 -1
  736. package/views/support/geometry3dUtils.js +1 -1
  737. package/views/webgl/RenderingContext.js +1 -1
  738. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +30 -2
  739. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  740. package/widgets/BatchAttributeForm/css.js +1 -1
  741. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +0 -5
  742. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  743. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  744. package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
  745. package/widgets/BatchAttributeForm/types.d.ts +68 -1
  746. package/widgets/BatchAttributeForm.js +1 -1
  747. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  748. package/widgets/BuildingExplorer/BuildingLevelPicker/constants.js +1 -1
  749. package/widgets/Daylight.d.ts +1 -1
  750. package/widgets/Directions/DirectionsViewModel.js +1 -1
  751. package/widgets/Editor/components/Settings.js +1 -1
  752. package/widgets/Editor.d.ts +8 -8
  753. package/widgets/ElevationProfile.d.ts +1 -1
  754. package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
  755. package/widgets/FeatureTable/FieldColumn.d.ts +14 -1
  756. package/widgets/Histogram/HistogramViewModel.js +1 -1
  757. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  758. package/widgets/Sketch/SketchViewModel.d.ts +38 -38
  759. package/widgets/Sketch.d.ts +39 -39
  760. package/widgets/Sketch.js +1 -1
  761. package/widgets/Slice.d.ts +1 -1
  762. package/widgets/UtilityNetworkTrace.d.ts +1 -1
  763. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  764. package/widgets/support/ContingentValuesManager.js +1 -1
  765. package/assets/esri/core/workers/chunks/069459519477bb3dc91b.js +0 -1
  766. package/assets/esri/core/workers/chunks/0b445c1cf281f158c1f1.js +0 -1
  767. package/assets/esri/core/workers/chunks/0e9804ece1fd2d59751b.js +0 -1
  768. package/assets/esri/core/workers/chunks/115664cb7d7b22a315bb.js +0 -1
  769. package/assets/esri/core/workers/chunks/123a67e84ed68b96ac59.js +0 -1
  770. package/assets/esri/core/workers/chunks/163ce1be8bfe20e77f97.js +0 -1
  771. package/assets/esri/core/workers/chunks/18201119828664373165.js +0 -1
  772. package/assets/esri/core/workers/chunks/18ebf1d3ed05c8057f7d.js +0 -1
  773. package/assets/esri/core/workers/chunks/19f07c8d0f32ec889861.js +0 -1
  774. package/assets/esri/core/workers/chunks/1bd8a7f92a428eedb22e.js +0 -1
  775. package/assets/esri/core/workers/chunks/1f537c05c2f643acb5e7.js +0 -1
  776. package/assets/esri/core/workers/chunks/241aeff6afd074ce105b.js +0 -1
  777. package/assets/esri/core/workers/chunks/2855357a2c1f2ab03fb7.js +0 -1
  778. package/assets/esri/core/workers/chunks/2e8db0f05df2e38a14e1.js +0 -2
  779. package/assets/esri/core/workers/chunks/30e191d36aa95823c018.js +0 -1
  780. package/assets/esri/core/workers/chunks/315bf08dff4757ffbed3.js +0 -1
  781. package/assets/esri/core/workers/chunks/31c01885ee6d70a2bde2.js +0 -1
  782. package/assets/esri/core/workers/chunks/3292b3883f203637b5a7.js +0 -1
  783. package/assets/esri/core/workers/chunks/32f24a66f684de3c243d.js +0 -1
  784. package/assets/esri/core/workers/chunks/35527a01d61cabbfd33e.js +0 -1
  785. package/assets/esri/core/workers/chunks/3aebbed6d4fd1b993a35.js +0 -1
  786. package/assets/esri/core/workers/chunks/3f1d533efe4300d19e6a.js +0 -1
  787. package/assets/esri/core/workers/chunks/413d2fa54508e6f42c74.js +0 -1
  788. package/assets/esri/core/workers/chunks/4325fa92dafca465ae26.js +0 -1
  789. package/assets/esri/core/workers/chunks/4364a3e706294bb6ae41.js +0 -1
  790. package/assets/esri/core/workers/chunks/438f35d41c6851736818.js +0 -30
  791. package/assets/esri/core/workers/chunks/453c9e8d438d061e1736.js +0 -1
  792. package/assets/esri/core/workers/chunks/479e34b0abc10499bd3a.js +0 -1
  793. package/assets/esri/core/workers/chunks/49675e77a351abda2728.js +0 -1
  794. package/assets/esri/core/workers/chunks/4cdf80e2e60501dd4756.js +0 -1
  795. package/assets/esri/core/workers/chunks/51edfe21d4c6ee22c83d.js +0 -1
  796. package/assets/esri/core/workers/chunks/5524a71d1abc9568ce26.js +0 -1
  797. package/assets/esri/core/workers/chunks/557e39e5156b313597f9.js +0 -1
  798. package/assets/esri/core/workers/chunks/55b765c72d13b3b911f9.js +0 -1
  799. package/assets/esri/core/workers/chunks/5dc86a3a40d16b576bb5.js +0 -1
  800. package/assets/esri/core/workers/chunks/6182d39e2095d4460b88.js +0 -1
  801. package/assets/esri/core/workers/chunks/621d71d26bd20e296138.js +0 -1
  802. package/assets/esri/core/workers/chunks/67dffb896b6ef4b2038b.js +0 -1
  803. package/assets/esri/core/workers/chunks/694f9571e2723d3d4b02.js +0 -1
  804. package/assets/esri/core/workers/chunks/69ad5930ff6040c6c561.js +0 -1
  805. package/assets/esri/core/workers/chunks/6af88bb722bbb37db198.js +0 -2
  806. package/assets/esri/core/workers/chunks/70d8f5bdb452cee41536.js +0 -2
  807. package/assets/esri/core/workers/chunks/728151d24334027af635.js +0 -1
  808. package/assets/esri/core/workers/chunks/78af4b7a379c40f497a7.js +0 -1
  809. package/assets/esri/core/workers/chunks/7f1fcddc8dd42a1b67d9.js +0 -1
  810. package/assets/esri/core/workers/chunks/86443e47ad99e555753a.js +0 -1
  811. package/assets/esri/core/workers/chunks/86f2de7dda7992ae706c.js +0 -1
  812. package/assets/esri/core/workers/chunks/895114ccd2603830960f.js +0 -1
  813. package/assets/esri/core/workers/chunks/927c8ca7fd385b28a1b7.js +0 -640
  814. package/assets/esri/core/workers/chunks/95d82c619dcbec2e1050.js +0 -1
  815. package/assets/esri/core/workers/chunks/979bab62cad788180770.js +0 -1
  816. package/assets/esri/core/workers/chunks/9d70247d820085a2c190.js +0 -1
  817. package/assets/esri/core/workers/chunks/a0aaf14c8f9a007d88ac.js +0 -1
  818. package/assets/esri/core/workers/chunks/a0fce639319d59becd01.js +0 -2
  819. package/assets/esri/core/workers/chunks/aa03f770178693167aa0.js +0 -1
  820. package/assets/esri/core/workers/chunks/aea439d4c2308f88b295.js +0 -1
  821. package/assets/esri/core/workers/chunks/af45110f07e4b5162bae.js +0 -1
  822. package/assets/esri/core/workers/chunks/b0c647af49c9d563b852.js +0 -1
  823. package/assets/esri/core/workers/chunks/b640651c7d86cfe654bf.js +0 -1
  824. package/assets/esri/core/workers/chunks/b78fb24b47d9f31f18c6.js +0 -1
  825. package/assets/esri/core/workers/chunks/b8dda9e55caba0e2b4c2.js +0 -1
  826. package/assets/esri/core/workers/chunks/ba693317ed3939587f30.js +0 -1
  827. package/assets/esri/core/workers/chunks/c13c532fe38ddc5d7ca6.js +0 -1
  828. package/assets/esri/core/workers/chunks/c4872cf3b71d00f450e1.js +0 -1
  829. package/assets/esri/core/workers/chunks/c5b7ff8650235c464dbf.js +0 -1
  830. package/assets/esri/core/workers/chunks/caf80facb0322be054ab.js +0 -1
  831. package/assets/esri/core/workers/chunks/cc48354c54358777e996.js +0 -1
  832. package/assets/esri/core/workers/chunks/d5423df247be82fa085a.js +0 -1
  833. package/assets/esri/core/workers/chunks/d598d08dbf2796742e8c.js +0 -1
  834. package/assets/esri/core/workers/chunks/da4f7d7099ba88f31f45.js +0 -1
  835. package/assets/esri/core/workers/chunks/dbb1ac41fd5da4fd849b.js +0 -1
  836. package/assets/esri/core/workers/chunks/dc259eed58fde3f5cb5c.js +0 -1
  837. package/assets/esri/core/workers/chunks/e0036fa0324a96a88248.js +0 -1
  838. package/assets/esri/core/workers/chunks/e29d182460564c2a52ad.js +0 -1
  839. package/assets/esri/core/workers/chunks/eda083e9d12e45da0a7b.js +0 -1
  840. package/assets/esri/core/workers/chunks/f0b5c140a5ba174572b6.js +0 -1
  841. package/assets/esri/core/workers/chunks/f286680e363eefdf27df.js +0 -1
  842. package/assets/esri/core/workers/chunks/fa3138dd8139008b430d.js +0 -1
  843. package/assets/esri/core/workers/chunks/fb0afb41a3d87d59f574.js +0 -1
  844. package/assets/esri/core/workers/chunks/fc9fbc8e4e459edf4e37.js +0 -1
  845. /package/assets/esri/core/workers/chunks/{6af88bb722bbb37db198.js.LICENSE.txt → 319ff04282dc8ae38b56.js.LICENSE.txt} +0 -0
  846. /package/assets/esri/core/workers/chunks/{70d8f5bdb452cee41536.js.LICENSE.txt → 50dc9893e13396f5e35d.js.LICENSE.txt} +0 -0
  847. /package/assets/esri/core/workers/chunks/{2e8db0f05df2e38a14e1.js.LICENSE.txt → 8244b74e9c3a30d8d2f6.js.LICENSE.txt} +0 -0
  848. /package/assets/esri/core/workers/chunks/{a0fce639319d59becd01.js.LICENSE.txt → c216cd5d6b5d4fe4bab3.js.LICENSE.txt} +0 -0
  849. /package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js.LICENSE.txt → d1ccc5f2d8892328ab01.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{clone as t}from"../core/lang.js";import s from"../core/Logger.js";import{deepMerge as i}from"../core/object.js";import{watch as l}from"../core/reactiveUtils.js";import{property as o,cast as r,subclass as u}from"../core/accessorSupport/decorators.js";import{diff as n}from"../core/accessorSupport/diffUtils.js";import{ensureString as a,ensureType as p}from"../core/accessorSupport/ensureType.js";import{collectArcadeFieldNames as f,collectField as d}from"../layers/support/fieldUtils.js";import c from"../portal/Portal.js";import h from"./Renderer.js";import{VisualVariablesMixin as m}from"./mixins/VisualVariablesMixin.js";import{rendererBackgroundFillSymbolProperty as y,rendererSymbolProperty as b}from"./support/commonProperties.js";import v from"./support/RendererLegendOptions.js";import{getScaleDependentSymbol as _}from"./support/scaleDependentSymbolUtils.js";import g from"./support/UniqueValue.js";import V from"./support/UniqueValueClass.js";import q from"./support/UniqueValueGroup.js";import I from"./support/UniqueValueInfo.js";import{loadArcade as S}from"../support/loadArcade.js";import{a as w,c as U}from"../chunks/persistableUrlUtils.js";import j from"../symbols/WebStyleSymbol.js";import{fetchStyle as F}from"../symbols/support/styleUtils.js";import{ensureType as O}from"../symbols/support/typeUtils.js";import{addPropertyUnsupportedError as G}from"../webdoc/support/unsupportedErrors.js";import{enumeration as D}from"../core/accessorSupport/decorators/enumeration.js";import{writer as x}from"../core/accessorSupport/decorators/writer.js";import{reader as E}from"../core/accessorSupport/decorators/reader.js";var M;const R="uvInfos-watcher",L="uvGroups-watcher",N=",",P=p(I);function C(e){const{field1:t,field2:s,field3:i,fieldDelimiter:l,uniqueValueInfos:o,valueExpression:r}=e,u=!(!t||!s);return[{classes:(o??[]).map(e=>{const{alternateSymbols:o,symbol:n,label:a,value:p,description:f}=e,[d,c,h]=u?p?.toString()?.split(l||"")||[]:[p],m=[];return(t||r)&&m.push(d),s&&m.push(c),i&&m.push(h),{alternateSymbols:o,symbol:n,label:a,values:[m],description:f}})}]}function z(e){return null!=e&&""!==e&&("string"!=typeof e||""!==e.trim()&&"<null>"!==e.toLowerCase())||(e=null),e+""}let A=M=class extends(m(h)){constructor(e){super(e),this._valueInfoMap={},this._isDefaultSymbolDerived=!1,this._isInfosSource=null,this.type="unique-value",this.backgroundFillSymbol=null,this.orderByClassesEnabled=!1,this.valueExpressionTitle=null,this.legendOptions=null,this.defaultLabel=null,this.portal=null,this.styleOrigin=null,this.diff={uniqueValueInfos(e,t){if(!e&&!t)return;if(!e||!t)return{type:"complete",oldValue:e,newValue:t};let s=!1;const i={type:"collection",added:[],removed:[],changed:[],unchanged:[]};for(let l=0;l<t.length;l++){const o=e.find(e=>e.value===t[l].value);o?n(o,t[l])?(i.changed.push({type:"complete",oldValue:o,newValue:t[l]}),s=!0):i.unchanged.push({oldValue:o,newValue:t[l]}):(i.added.push(t[l]),s=!0)}for(let l=0;l<e.length;l++){t.find(t=>t.value===e[l].value)||(i.removed.push(e[l]),s=!0)}return s?i:void 0}},this._set("uniqueValueInfos",[]),this._set("uniqueValueGroups",[])}get _cache(){return{compiledFunc:null}}set field(e){this._set("field",e),this._updateFieldDelimiter(),this._updateUniqueValues()}castField(e){return null==e||"function"==typeof e?e:a(e)}writeField(e,t,i,l){"string"==typeof e?t[i]=e:l?.messages?G(l,"UniqueValueRenderer.field","set to a function cannot be written to JSON"):s.getLogger(this).error(".field: cannot write field to JSON since it's not a string value")}set field2(e){this._set("field2",e),this._updateFieldDelimiter(),this._updateUniqueValues()}set field3(e){this._set("field3",e),this._updateUniqueValues()}set valueExpression(e){this._set("valueExpression",e),this._updateUniqueValues()}set defaultSymbol(e){this._isDefaultSymbolDerived=!1,this._set("defaultSymbol",e)}set fieldDelimiter(e){this._set("fieldDelimiter",e),this._updateUniqueValues()}readPortal(e,t,s){return s.portal||c.getDefault()}readStyleOrigin(e,t,s){if(t.styleName)return Object.freeze({styleName:t.styleName});if(t.styleUrl){const e=w(t.styleUrl,s);return Object.freeze({styleUrl:e})}}writeStyleOrigin(e,t,s,i){e.styleName?t.styleName=e.styleName:e.styleUrl&&(t.styleUrl=U(e.styleUrl,i))}set uniqueValueGroups(e){this.styleOrigin?s.getLogger(this).error("#uniqueValueGroups=","Cannot modify unique value groups of a UniqueValueRenderer created from a web style"):(this._set("uniqueValueGroups",e),this._updateInfosFromGroups(),this._isInfosSource=!1,this._watchUniqueValueGroups())}set uniqueValueInfos(e){this.styleOrigin?s.getLogger(this).error("#uniqueValueInfos=","Cannot modify unique value infos of a UniqueValueRenderer created from a web style"):(this._set("uniqueValueInfos",e),this._updateValueInfoMap(),this._updateGroupsFromInfos(),this._isInfosSource=!0,this._watchUniqueValueInfos())}addUniqueValueInfo(e,t){if(this.styleOrigin)return void s.getLogger(this).error("#addUniqueValueInfo()","Cannot modify unique value infos of a UniqueValueRenderer created from a web style");let i;i="object"==typeof e?P(e):new I({value:e,symbol:O(t)}),this.uniqueValueInfos?.push(i),this._valueInfoMap[z(i.value)]=i,this._updateGroupsFromInfos(),this._isInfosSource=!0,this._watchUniqueValueInfos()}removeUniqueValueInfo(e){if(this.styleOrigin)return void s.getLogger(this).error("#removeUniqueValueInfo()","Cannot modify unique value infos of a UniqueValueRenderer created from a web style");const t=this.uniqueValueInfos;if(t)for(let s=0;s<t.length;s++){const i=t[s];if(String(i.value)===String(e)){delete this._valueInfoMap[z(e)],t.splice(s,1);break}}this._updateGroupsFromInfos(),this._isInfosSource=!0,this._watchUniqueValueInfos()}async getUniqueValueInfo(e,t){let s=t;return this.valueExpression&&null==t?.arcade&&(s={...s,arcade:await S()}),this._getUniqueValueInfo(e,s)}getSymbol(e,t){if(this.valueExpression&&null==t?.arcade)return void s.getLogger(this).error("#getSymbol()","Please use getSymbolAsync if valueExpression is used");const i=this._getUniqueValueInfo(e,t);return _(i,t?.scale)??this.defaultSymbol}async getSymbolAsync(e,t){let s=t;if(this.valueExpression&&null==s?.arcade){const e=await S(),{arcadeUtils:t}=e;t.hasGeometryOperations(this.valueExpression)&&await t.enableGeometryOperations(),s={...s,arcade:e}}const i=this._getUniqueValueInfo(e,s);return _(i,s?.scale)??this.defaultSymbol}get symbols(){const e=[];if(this._isInfosSource)for(const t of this.uniqueValueInfos??[])t.symbol&&e.push(t.symbol),e.push(...t.alternateSymbols??[]);else for(const t of this.uniqueValueGroups??[])for(const s of t.classes??[])s.symbol&&e.push(s.symbol),e.push(...s.alternateSymbols??[]);return this.defaultSymbol&&e.push(this.defaultSymbol),e}clone(){const e=new M({field:this.field,field2:this.field2,field3:this.field3,defaultLabel:this.defaultLabel,defaultSymbol:t(this.defaultSymbol),orderByClassesEnabled:this.orderByClassesEnabled,valueExpression:this.valueExpression,valueExpressionTitle:this.valueExpressionTitle,fieldDelimiter:this.fieldDelimiter,visualVariables:t(this.visualVariables),legendOptions:t(this.legendOptions),authoringInfo:t(this.authoringInfo),backgroundFillSymbol:t(this.backgroundFillSymbol)});this._isDefaultSymbolDerived&&(e._isDefaultSymbolDerived=!0),e._set("portal",this.portal);const s=t(this.uniqueValueInfos),i=t(this.uniqueValueGroups);return this.styleOrigin&&(e._set("styleOrigin",Object.freeze(t(this.styleOrigin))),Object.freeze(s),Object.freeze(i)),e._set("uniqueValueInfos",s),e._updateValueInfoMap(),e._set("uniqueValueGroups",i),e._isInfosSource=this._isInfosSource,e._watchUniqueValueInfosAndGroups(),e}get arcadeRequired(){return this.arcadeRequiredForVisualVariables||!!this.valueExpression}async collectRequiredFields(e,t){const s=[this.collectVVRequiredFields(e,t),this.collectSymbolFields(e,t)];await Promise.all(s)}async collectSymbolFields(e,t){const s=[...this.symbols.map(s=>s.collectRequiredFields(e,t)),f(e,t,null,this.valueExpression)];d(e,t,this.field),d(e,t,this.field2),d(e,t,this.field3),await Promise.all(s)}populateFromStyle(){return F(this.styleOrigin,{portal:this.portal}).then(e=>{const t=[];return this._valueInfoMap={},e?.data&&Array.isArray(e.data.items)&&e.data.items.forEach(s=>{const i=new j({styleUrl:e.styleUrl,styleName:e.styleName,portal:this.portal,name:s.name});this.defaultSymbol||s.name!==e.data.defaultItem||(this.defaultSymbol=i,this._isDefaultSymbolDerived=!0);const l=new I({value:s.name,symbol:i});t.push(l),this._valueInfoMap[z(s.name)]=l}),this._set("uniqueValueInfos",Object.freeze(t)),this._updateGroupsFromInfos(!0),this._isInfosSource=null,this._watchUniqueValueInfos(),!this.defaultSymbol&&this.uniqueValueInfos?.length&&(this.defaultSymbol=this.uniqueValueInfos[0].symbol,this._isDefaultSymbolDerived=!0),this})}_updateFieldDelimiter(){this.field&&this.field2&&!this.fieldDelimiter&&this._set("fieldDelimiter",N)}_updateUniqueValues(){null!=this._isInfosSource&&(this._isInfosSource?this._updateGroupsFromInfos():this._updateInfosFromGroups())}_updateValueInfoMap(){this._valueInfoMap={};const{uniqueValueInfos:e}=this;if(e)for(const t of e)this._valueInfoMap[z(t.value)]=t}_watchUniqueValueInfosAndGroups(){this._watchUniqueValueInfos(),this._watchUniqueValueGroups()}_watchUniqueValueInfos(){this.removeHandles(R);const{uniqueValueInfos:e}=this;if(e){const t=[];for(const s of e)t.push(l(()=>({symbol:s.symbol,alternateSymbols:s.alternateSymbols,value:s.value,label:s.label,description:s.description}),(e,t)=>{e!==t&&(this._updateGroupsFromInfos(),this._isInfosSource=!0)},{sync:!0}));this.addHandles(t,R)}}_watchUniqueValueGroups(){this.removeHandles(L);const{uniqueValueGroups:e}=this;if(e){const t=[];for(const s of e){t.push(l(()=>({classes:s.classes}),(e,t)=>{e!==t&&(this._updateInfosFromGroups(),this._isInfosSource=!1)},{sync:!0}));for(const e of s.classes??[])t.push(l(()=>({symbol:e.symbol,alternateSymbols:e.alternateSymbols,values:e.values,label:e.label,description:e.description}),(e,t)=>{e!==t&&(this._updateInfosFromGroups(),this._isInfosSource=!1)},{sync:!0}))}this.addHandles(t,L)}}_updateInfosFromGroups(){if(!this.uniqueValueGroups)return this._set("uniqueValueInfos",null),this._updateValueInfoMap(),void this._watchUniqueValueInfos();const e=[],{field:t,field2:s,field3:i,fieldDelimiter:l,uniqueValueGroups:o,valueExpression:r}=this;if(!t&&!r)return this._set("uniqueValueInfos",e),this._updateValueInfoMap(),void this._watchUniqueValueInfos();const u=!(!t||!s);for(const n of o)for(const t of n.classes??[]){const{alternateSymbols:o,symbol:r,label:n,values:a,description:p}=t;for(const t of a??[]){const{value:a,value2:f,value3:d}=t,c=[a];s&&c.push(f),i&&c.push(d);const h=u?c.join(l||""):c[0]??void 0;e.push(new I({alternateSymbols:o,symbol:r,label:n,value:h,description:p}))}}this._set("uniqueValueInfos",e),this._updateValueInfoMap(),this._watchUniqueValueInfos()}_updateGroupsFromInfos(e=!1){if(!this.uniqueValueInfos)return this._set("uniqueValueGroups",null),void this._watchUniqueValueGroups();const{field:t,field2:s,valueExpression:i,fieldDelimiter:l,uniqueValueInfos:o}=this;if(!t&&!i||!o.length)return this._set("uniqueValueGroups",[]),void this._watchUniqueValueGroups();const r=!(!t||!s),u=o.map(e=>{const{alternateSymbols:t,symbol:s,label:i,value:o,description:u}=e,[n,a,p]=r?o?.toString()?.split(l||"")||[]:[o];return new V({alternateSymbols:t,symbol:s,label:i,description:u,values:[new g({value:n,value2:a,value3:p})]})}),n=[new q({classes:u})];e&&Object.freeze(n),this._set("uniqueValueGroups",n),this._watchUniqueValueGroups()}_getUniqueValueInfo(e,t){return this.valueExpression?this._getUnqiueValueInfoForExpression(e,t):this._getUnqiueValueInfoForFields(e)}_getUnqiueValueInfoForExpression(e,t){const{viewingMode:s,scale:i,spatialReference:l,arcade:o,timeZone:r}=t??{};let u=this._cache.compiledFunc;const n=o.arcadeUtils;if(!u){const e=n.createSyntaxTree(this.valueExpression);u=n.createFunction(e),this._cache.compiledFunc=u}const a=n.executeFunction(u,n.createExecContext(e,n.getViewInfo({viewingMode:s,scale:i,spatialReference:l}),r));return this._valueInfoMap[z(a)]}_getUnqiueValueInfoForFields(e){const t=this.field,s=e.attributes;let i;if(this.field2){const e=this.field2,l=this.field3,o=[];t&&o.push(s[t]),e&&o.push(s[e]),l&&o.push(s[l]),i=o.join(this.fieldDelimiter||"")}else t&&(i=s[t]);return this._valueInfoMap[z(i)]}static fromPortalStyle(e,t){const i=new M(t?.properties);i._set("styleOrigin",Object.freeze({styleName:e})),i._set("portal",t?.portal||c.getDefault());const l=i.populateFromStyle();return l.catch(t=>{s.getLogger(this.prototype).error(`#fromPortalStyle('${e}'[, ...])`,"Failed to create unique value renderer from style name",t)}),l}static fromStyleUrl(e,t){const i=new M(t?.properties);i._set("styleOrigin",Object.freeze({styleUrl:e}));const l=i.populateFromStyle();return l.catch(t=>{s.getLogger(this.prototype).error(`#fromStyleUrl('${e}'[, ...])`,"Failed to create unique value renderer from style URL",t)}),l}};e([o({readOnly:!0})],A.prototype,"_cache",null),e([D({uniqueValue:"unique-value"})],A.prototype,"type",void 0),e([o(y)],A.prototype,"backgroundFillSymbol",void 0),e([o({value:null,json:{type:String,read:{source:"field1"},write:{target:"field1"}}})],A.prototype,"field",null),e([r("field")],A.prototype,"castField",null),e([x("field")],A.prototype,"writeField",null),e([o({type:String,value:null,json:{write:!0}})],A.prototype,"field2",null),e([o({type:String,value:null,json:{write:!0}})],A.prototype,"field3",null),e([o({type:Boolean,json:{name:"drawInClassOrder",default:!1,write:!0,origins:{"web-scene":{write:!1}}}})],A.prototype,"orderByClassesEnabled",void 0),e([o({type:String,value:null,json:{write:!0}})],A.prototype,"valueExpression",null),e([o({type:String,json:{write:!0}})],A.prototype,"valueExpressionTitle",void 0),e([o({type:v,json:{write:!0}})],A.prototype,"legendOptions",void 0),e([o({type:String,json:{write:!0}})],A.prototype,"defaultLabel",void 0),e([o(i({...b},{json:{write:{overridePolicy(){return{enabled:!this._isDefaultSymbolDerived}}},origins:{"web-scene":{write:{overridePolicy(){return{enabled:!this._isDefaultSymbolDerived}}}}}}}))],A.prototype,"defaultSymbol",null),e([o({type:String,value:null,json:{write:!0}})],A.prototype,"fieldDelimiter",null),e([o({type:c,readOnly:!0})],A.prototype,"portal",void 0),e([E("portal",["styleName"])],A.prototype,"readPortal",null),e([o({readOnly:!0,json:{write:{enabled:!1,overridePolicy:()=>({enabled:!0})}}})],A.prototype,"styleOrigin",void 0),e([E("styleOrigin",["styleName","styleUrl"])],A.prototype,"readStyleOrigin",null),e([x("styleOrigin",{styleName:{type:String},styleUrl:{type:String}})],A.prototype,"writeStyleOrigin",null),e([o({type:[q],json:{read:{source:["uniqueValueGroups","uniqueValueInfos"],reader:(e,t,s)=>(t.uniqueValueGroups||C(t)).map(e=>q.fromJSON(e,s))},write:{overridePolicy(){return this.styleOrigin?{enabled:!1}:{enabled:!0}}}}})],A.prototype,"uniqueValueGroups",null),e([o({type:[I],json:{read:!1,write:{isRequired:!0,overridePolicy(){return this.styleOrigin?{enabled:!1}:{enabled:!0,isRequired:!0}}}}})],A.prototype,"uniqueValueInfos",null),A=M=e([u("esri.renderers.UniqueValueRenderer")],A);export{A as default};
2
+ import{__decorate as e}from"tslib";import{clone as t}from"../core/lang.js";import s from"../core/Logger.js";import{deepMerge as i}from"../core/object.js";import{watch as l}from"../core/reactiveUtils.js";import{property as o,cast as r,subclass as u}from"../core/accessorSupport/decorators.js";import{diff as n}from"../core/accessorSupport/diffUtils.js";import{ensureString as a,ensureType as p}from"../core/accessorSupport/ensureType.js";import{collectArcadeFieldNames as f,collectField as d}from"../layers/support/fieldUtils.js";import c from"../portal/Portal.js";import h from"./Renderer.js";import{VisualVariablesMixin as m}from"./mixins/VisualVariablesMixin.js";import{rendererBackgroundFillSymbolProperty as y,rendererSymbolProperty as b}from"./support/commonProperties.js";import v from"./support/RendererLegendOptions.js";import{getScaleDependentSymbol as _}from"./support/scaleDependentSymbolUtils.js";import g from"./support/UniqueValue.js";import V from"./support/UniqueValueClass.js";import q from"./support/UniqueValueGroup.js";import I from"./support/UniqueValueInfo.js";import{loadArcade as S}from"../support/loadArcade.js";import{f as w,t as U}from"../chunks/persistableUrlUtils.js";import j from"../symbols/WebStyleSymbol.js";import{fetchStyle as F}from"../symbols/support/styleUtils.js";import{ensureType as O}from"../symbols/support/typeUtils.js";import{addPropertyUnsupportedError as G}from"../webdoc/support/unsupportedErrors.js";import{enumeration as D}from"../core/accessorSupport/decorators/enumeration.js";import{writer as x}from"../core/accessorSupport/decorators/writer.js";import{reader as E}from"../core/accessorSupport/decorators/reader.js";var M;const R="uvInfos-watcher",L="uvGroups-watcher",N=",",P=p(I);function C(e){const{field1:t,field2:s,field3:i,fieldDelimiter:l,uniqueValueInfos:o,valueExpression:r}=e,u=!(!t||!s);return[{classes:(o??[]).map(e=>{const{alternateSymbols:o,symbol:n,label:a,value:p,description:f}=e,[d,c,h]=u?p?.toString()?.split(l||"")||[]:[p],m=[];return(t||r)&&m.push(d),s&&m.push(c),i&&m.push(h),{alternateSymbols:o,symbol:n,label:a,values:[m],description:f}})}]}function z(e){return null!=e&&""!==e&&("string"!=typeof e||""!==e.trim()&&"<null>"!==e.toLowerCase())||(e=null),e+""}let A=M=class extends(m(h)){constructor(e){super(e),this._valueInfoMap={},this._isDefaultSymbolDerived=!1,this._isInfosSource=null,this.type="unique-value",this.backgroundFillSymbol=null,this.orderByClassesEnabled=!1,this.valueExpressionTitle=null,this.legendOptions=null,this.defaultLabel=null,this.portal=null,this.styleOrigin=null,this.diff={uniqueValueInfos(e,t){if(!e&&!t)return;if(!e||!t)return{type:"complete",oldValue:e,newValue:t};let s=!1;const i={type:"collection",added:[],removed:[],changed:[],unchanged:[]};for(let l=0;l<t.length;l++){const o=e.find(e=>e.value===t[l].value);o?n(o,t[l])?(i.changed.push({type:"complete",oldValue:o,newValue:t[l]}),s=!0):i.unchanged.push({oldValue:o,newValue:t[l]}):(i.added.push(t[l]),s=!0)}for(let l=0;l<e.length;l++){t.find(t=>t.value===e[l].value)||(i.removed.push(e[l]),s=!0)}return s?i:void 0}},this._set("uniqueValueInfos",[]),this._set("uniqueValueGroups",[])}get _cache(){return{compiledFunc:null}}set field(e){this._set("field",e),this._updateFieldDelimiter(),this._updateUniqueValues()}castField(e){return null==e||"function"==typeof e?e:a(e)}writeField(e,t,i,l){"string"==typeof e?t[i]=e:l?.messages?G(l,"UniqueValueRenderer.field","set to a function cannot be written to JSON"):s.getLogger(this).error(".field: cannot write field to JSON since it's not a string value")}set field2(e){this._set("field2",e),this._updateFieldDelimiter(),this._updateUniqueValues()}set field3(e){this._set("field3",e),this._updateUniqueValues()}set valueExpression(e){this._set("valueExpression",e),this._updateUniqueValues()}set defaultSymbol(e){this._isDefaultSymbolDerived=!1,this._set("defaultSymbol",e)}set fieldDelimiter(e){this._set("fieldDelimiter",e),this._updateUniqueValues()}readPortal(e,t,s){return s.portal||c.getDefault()}readStyleOrigin(e,t,s){if(t.styleName)return Object.freeze({styleName:t.styleName});if(t.styleUrl){const e=w(t.styleUrl,s);return Object.freeze({styleUrl:e})}}writeStyleOrigin(e,t,s,i){e.styleName?t.styleName=e.styleName:e.styleUrl&&(t.styleUrl=U(e.styleUrl,i))}set uniqueValueGroups(e){this.styleOrigin?s.getLogger(this).error("#uniqueValueGroups=","Cannot modify unique value groups of a UniqueValueRenderer created from a web style"):(this._set("uniqueValueGroups",e),this._updateInfosFromGroups(),this._isInfosSource=!1,this._watchUniqueValueGroups())}set uniqueValueInfos(e){this.styleOrigin?s.getLogger(this).error("#uniqueValueInfos=","Cannot modify unique value infos of a UniqueValueRenderer created from a web style"):(this._set("uniqueValueInfos",e),this._updateValueInfoMap(),this._updateGroupsFromInfos(),this._isInfosSource=!0,this._watchUniqueValueInfos())}addUniqueValueInfo(e,t){if(this.styleOrigin)return void s.getLogger(this).error("#addUniqueValueInfo()","Cannot modify unique value infos of a UniqueValueRenderer created from a web style");let i;i="object"==typeof e?P(e):new I({value:e,symbol:O(t)}),this.uniqueValueInfos?.push(i),this._valueInfoMap[z(i.value)]=i,this._updateGroupsFromInfos(),this._isInfosSource=!0,this._watchUniqueValueInfos()}removeUniqueValueInfo(e){if(this.styleOrigin)return void s.getLogger(this).error("#removeUniqueValueInfo()","Cannot modify unique value infos of a UniqueValueRenderer created from a web style");const t=this.uniqueValueInfos;if(t)for(let s=0;s<t.length;s++){const i=t[s];if(String(i.value)===String(e)){delete this._valueInfoMap[z(e)],t.splice(s,1);break}}this._updateGroupsFromInfos(),this._isInfosSource=!0,this._watchUniqueValueInfos()}async getUniqueValueInfo(e,t){let s=t;return this.valueExpression&&null==t?.arcade&&(s={...s,arcade:await S()}),this._getUniqueValueInfo(e,s)}getSymbol(e,t){if(this.valueExpression&&null==t?.arcade)return void s.getLogger(this).error("#getSymbol()","Please use getSymbolAsync if valueExpression is used");const i=this._getUniqueValueInfo(e,t);return _(i,t?.scale)??this.defaultSymbol}async getSymbolAsync(e,t){let s=t;if(this.valueExpression&&null==s?.arcade){const e=await S(),{arcadeUtils:t}=e;t.hasGeometryOperations(this.valueExpression)&&await t.enableGeometryOperations(),s={...s,arcade:e}}const i=this._getUniqueValueInfo(e,s);return _(i,s?.scale)??this.defaultSymbol}get symbols(){const e=[];if(this._isInfosSource)for(const t of this.uniqueValueInfos??[])t.symbol&&e.push(t.symbol),e.push(...t.alternateSymbols??[]);else for(const t of this.uniqueValueGroups??[])for(const s of t.classes??[])s.symbol&&e.push(s.symbol),e.push(...s.alternateSymbols??[]);return this.defaultSymbol&&e.push(this.defaultSymbol),e}clone(){const e=new M({field:this.field,field2:this.field2,field3:this.field3,defaultLabel:this.defaultLabel,defaultSymbol:t(this.defaultSymbol),orderByClassesEnabled:this.orderByClassesEnabled,valueExpression:this.valueExpression,valueExpressionTitle:this.valueExpressionTitle,fieldDelimiter:this.fieldDelimiter,visualVariables:t(this.visualVariables),legendOptions:t(this.legendOptions),authoringInfo:t(this.authoringInfo),backgroundFillSymbol:t(this.backgroundFillSymbol)});this._isDefaultSymbolDerived&&(e._isDefaultSymbolDerived=!0),e._set("portal",this.portal);const s=t(this.uniqueValueInfos),i=t(this.uniqueValueGroups);return this.styleOrigin&&(e._set("styleOrigin",Object.freeze(t(this.styleOrigin))),Object.freeze(s),Object.freeze(i)),e._set("uniqueValueInfos",s),e._updateValueInfoMap(),e._set("uniqueValueGroups",i),e._isInfosSource=this._isInfosSource,e._watchUniqueValueInfosAndGroups(),e}get arcadeRequired(){return this.arcadeRequiredForVisualVariables||!!this.valueExpression}async collectRequiredFields(e,t){const s=[this.collectVVRequiredFields(e,t),this.collectSymbolFields(e,t)];await Promise.all(s)}async collectSymbolFields(e,t){const s=[...this.symbols.map(s=>s.collectRequiredFields(e,t)),f(e,t,null,this.valueExpression)];d(e,t,this.field),d(e,t,this.field2),d(e,t,this.field3),await Promise.all(s)}populateFromStyle(){return F(this.styleOrigin,{portal:this.portal}).then(e=>{const t=[];return this._valueInfoMap={},e?.data&&Array.isArray(e.data.items)&&e.data.items.forEach(s=>{const i=new j({styleUrl:e.styleUrl,styleName:e.styleName,portal:this.portal,name:s.name});this.defaultSymbol||s.name!==e.data.defaultItem||(this.defaultSymbol=i,this._isDefaultSymbolDerived=!0);const l=new I({value:s.name,symbol:i});t.push(l),this._valueInfoMap[z(s.name)]=l}),this._set("uniqueValueInfos",Object.freeze(t)),this._updateGroupsFromInfos(!0),this._isInfosSource=null,this._watchUniqueValueInfos(),!this.defaultSymbol&&this.uniqueValueInfos?.length&&(this.defaultSymbol=this.uniqueValueInfos[0].symbol,this._isDefaultSymbolDerived=!0),this})}_updateFieldDelimiter(){this.field&&this.field2&&!this.fieldDelimiter&&this._set("fieldDelimiter",N)}_updateUniqueValues(){null!=this._isInfosSource&&(this._isInfosSource?this._updateGroupsFromInfos():this._updateInfosFromGroups())}_updateValueInfoMap(){this._valueInfoMap={};const{uniqueValueInfos:e}=this;if(e)for(const t of e)this._valueInfoMap[z(t.value)]=t}_watchUniqueValueInfosAndGroups(){this._watchUniqueValueInfos(),this._watchUniqueValueGroups()}_watchUniqueValueInfos(){this.removeHandles(R);const{uniqueValueInfos:e}=this;if(e){const t=[];for(const s of e)t.push(l(()=>({symbol:s.symbol,alternateSymbols:s.alternateSymbols,value:s.value,label:s.label,description:s.description}),(e,t)=>{e!==t&&(this._updateGroupsFromInfos(),this._isInfosSource=!0)},{sync:!0}));this.addHandles(t,R)}}_watchUniqueValueGroups(){this.removeHandles(L);const{uniqueValueGroups:e}=this;if(e){const t=[];for(const s of e){t.push(l(()=>({classes:s.classes}),(e,t)=>{e!==t&&(this._updateInfosFromGroups(),this._isInfosSource=!1)},{sync:!0}));for(const e of s.classes??[])t.push(l(()=>({symbol:e.symbol,alternateSymbols:e.alternateSymbols,values:e.values,label:e.label,description:e.description}),(e,t)=>{e!==t&&(this._updateInfosFromGroups(),this._isInfosSource=!1)},{sync:!0}))}this.addHandles(t,L)}}_updateInfosFromGroups(){if(!this.uniqueValueGroups)return this._set("uniqueValueInfos",null),this._updateValueInfoMap(),void this._watchUniqueValueInfos();const e=[],{field:t,field2:s,field3:i,fieldDelimiter:l,uniqueValueGroups:o,valueExpression:r}=this;if(!t&&!r)return this._set("uniqueValueInfos",e),this._updateValueInfoMap(),void this._watchUniqueValueInfos();const u=!(!t||!s);for(const n of o)for(const t of n.classes??[]){const{alternateSymbols:o,symbol:r,label:n,values:a,description:p}=t;for(const t of a??[]){const{value:a,value2:f,value3:d}=t,c=[a];s&&c.push(f),i&&c.push(d);const h=u?c.join(l||""):c[0]??void 0;e.push(new I({alternateSymbols:o,symbol:r,label:n,value:h,description:p}))}}this._set("uniqueValueInfos",e),this._updateValueInfoMap(),this._watchUniqueValueInfos()}_updateGroupsFromInfos(e=!1){if(!this.uniqueValueInfos)return this._set("uniqueValueGroups",null),void this._watchUniqueValueGroups();const{field:t,field2:s,valueExpression:i,fieldDelimiter:l,uniqueValueInfos:o}=this;if(!t&&!i||!o.length)return this._set("uniqueValueGroups",[]),void this._watchUniqueValueGroups();const r=!(!t||!s),u=o.map(e=>{const{alternateSymbols:t,symbol:s,label:i,value:o,description:u}=e,[n,a,p]=r?o?.toString()?.split(l||"")||[]:[o];return new V({alternateSymbols:t,symbol:s,label:i,description:u,values:[new g({value:n,value2:a,value3:p})]})}),n=[new q({classes:u})];e&&Object.freeze(n),this._set("uniqueValueGroups",n),this._watchUniqueValueGroups()}_getUniqueValueInfo(e,t){return this.valueExpression?this._getUnqiueValueInfoForExpression(e,t):this._getUnqiueValueInfoForFields(e)}_getUnqiueValueInfoForExpression(e,t){const{viewingMode:s,scale:i,spatialReference:l,arcade:o,timeZone:r}=t??{};let u=this._cache.compiledFunc;const n=o.arcadeUtils;if(!u){const e=n.createSyntaxTree(this.valueExpression);u=n.createFunction(e),this._cache.compiledFunc=u}const a=n.executeFunction(u,n.createExecContext(e,n.getViewInfo({viewingMode:s,scale:i,spatialReference:l}),r));return this._valueInfoMap[z(a)]}_getUnqiueValueInfoForFields(e){const t=this.field,s=e.attributes;let i;if(this.field2){const e=this.field2,l=this.field3,o=[];t&&o.push(s[t]),e&&o.push(s[e]),l&&o.push(s[l]),i=o.join(this.fieldDelimiter||"")}else t&&(i=s[t]);return this._valueInfoMap[z(i)]}static fromPortalStyle(e,t){const i=new M(t?.properties);i._set("styleOrigin",Object.freeze({styleName:e})),i._set("portal",t?.portal||c.getDefault());const l=i.populateFromStyle();return l.catch(t=>{s.getLogger(this.prototype).error(`#fromPortalStyle('${e}'[, ...])`,"Failed to create unique value renderer from style name",t)}),l}static fromStyleUrl(e,t){const i=new M(t?.properties);i._set("styleOrigin",Object.freeze({styleUrl:e}));const l=i.populateFromStyle();return l.catch(t=>{s.getLogger(this.prototype).error(`#fromStyleUrl('${e}'[, ...])`,"Failed to create unique value renderer from style URL",t)}),l}};e([o({readOnly:!0})],A.prototype,"_cache",null),e([D({uniqueValue:"unique-value"})],A.prototype,"type",void 0),e([o(y)],A.prototype,"backgroundFillSymbol",void 0),e([o({value:null,json:{type:String,read:{source:"field1"},write:{target:"field1"}}})],A.prototype,"field",null),e([r("field")],A.prototype,"castField",null),e([x("field")],A.prototype,"writeField",null),e([o({type:String,value:null,json:{write:!0}})],A.prototype,"field2",null),e([o({type:String,value:null,json:{write:!0}})],A.prototype,"field3",null),e([o({type:Boolean,json:{name:"drawInClassOrder",default:!1,write:!0,origins:{"web-scene":{write:!1}}}})],A.prototype,"orderByClassesEnabled",void 0),e([o({type:String,value:null,json:{write:!0}})],A.prototype,"valueExpression",null),e([o({type:String,json:{write:!0}})],A.prototype,"valueExpressionTitle",void 0),e([o({type:v,json:{write:!0}})],A.prototype,"legendOptions",void 0),e([o({type:String,json:{write:!0}})],A.prototype,"defaultLabel",void 0),e([o(i({...b},{json:{write:{overridePolicy(){return{enabled:!this._isDefaultSymbolDerived}}},origins:{"web-scene":{write:{overridePolicy(){return{enabled:!this._isDefaultSymbolDerived}}}}}}}))],A.prototype,"defaultSymbol",null),e([o({type:String,value:null,json:{write:!0}})],A.prototype,"fieldDelimiter",null),e([o({type:c,readOnly:!0})],A.prototype,"portal",void 0),e([E("portal",["styleName"])],A.prototype,"readPortal",null),e([o({readOnly:!0,json:{write:{enabled:!1,overridePolicy:()=>({enabled:!0})}}})],A.prototype,"styleOrigin",void 0),e([E("styleOrigin",["styleName","styleUrl"])],A.prototype,"readStyleOrigin",null),e([x("styleOrigin",{styleName:{type:String},styleUrl:{type:String}})],A.prototype,"writeStyleOrigin",null),e([o({type:[q],json:{read:{source:["uniqueValueGroups","uniqueValueInfos"],reader:(e,t,s)=>(t.uniqueValueGroups||C(t)).map(e=>q.fromJSON(e,s))},write:{overridePolicy(){return this.styleOrigin?{enabled:!1}:{enabled:!0}}}}})],A.prototype,"uniqueValueGroups",null),e([o({type:[I],json:{read:!1,write:{isRequired:!0,overridePolicy(){return this.styleOrigin?{enabled:!1}:{enabled:!0,isRequired:!0}}}}})],A.prototype,"uniqueValueInfos",null),A=M=e([u("esri.renderers.UniqueValueRenderer")],A);export{A as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../core/Collection.js";import{JSONSupport as o}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";import{ensureClass as s}from"../../core/accessorSupport/ensureType.js";import p from"../../geometry/Extent.js";import n from"../../geometry/SpatialReference.js";import{fromJSON as l}from"../../geometry/support/jsonUtils.js";import{geometryTypes as y}from"../../geometry/support/typeUtils.js";import m from"../../time/TimeExtent.js";import{writer as u}from"../../core/accessorSupport/decorators/writer.js";var a;let d=a=class extends o{static from(t){return s(a,t)}constructor(t){super(t),this.dpi=96,this.floors=null,this.gdbVersion=null,this.geometry=null,this.geometryPrecision=null,this.height=400,this.historicMoment=null,this.layerIds=null,this.layerOption="top",this.mapExtent=null,this.maxAllowableOffset=null,this.returnFieldName=!0,this.returnGeometry=!1,this.returnM=!1,this.returnUnformattedValues=!0,this.returnZ=!1,this.spatialReference=null,this.timeExtent=null,this.tolerance=null,this.width=400}writeHistoricMoment(t,e){e.historicMoment=t&&t.getTime()}get sublayers(){return this._get("sublayers")??null}set sublayers(t){this._set("sublayers",s(e,t))}};t([r({type:Number,json:{write:!0}})],d.prototype,"dpi",void 0),t([r()],d.prototype,"floors",void 0),t([r({type:String,json:{write:!0}})],d.prototype,"gdbVersion",void 0),t([r({types:y,json:{read:l,write:!0}})],d.prototype,"geometry",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"geometryPrecision",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"height",void 0),t([r({type:Date})],d.prototype,"historicMoment",void 0),t([u("historicMoment")],d.prototype,"writeHistoricMoment",null),t([r({type:[Number],json:{write:!0}})],d.prototype,"layerIds",void 0),t([r({type:["top","visible","all","popup"],json:{write:!0}})],d.prototype,"layerOption",void 0),t([r({type:p,json:{write:!0}})],d.prototype,"mapExtent",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"maxAllowableOffset",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnFieldName",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnGeometry",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnM",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnUnformattedValues",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnZ",void 0),t([r({type:n,json:{write:!0}})],d.prototype,"spatialReference",void 0),t([r()],d.prototype,"sublayers",null),t([r({type:m,json:{write:!0}})],d.prototype,"timeExtent",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"tolerance",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"width",void 0),d=a=t([i("esri.rest.support.IdentifyParameters")],d);const c=d;export{c as default};
2
+ import{__decorate as t}from"tslib";import e from"../../core/Collection.js";import{JSONSupport as o}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";import{ensureClass as s}from"../../core/accessorSupport/ensureType.js";import p from"../../geometry/Extent.js";import n from"../../geometry/SpatialReference.js";import{fromJSON as l}from"../../geometry/support/jsonUtils.js";import{geometryTypes as y}from"../../geometry/support/typeUtils.js";import m from"../../time/TimeExtent.js";import{writer as u}from"../../core/accessorSupport/decorators/writer.js";var a;let d=a=class extends o{static from(t){return s(a,t)}constructor(t){super(t),this.dpi=96,this.floors=null,this.gdbVersion=null,this.geometry=null,this.geometryPrecision=null,this.height=400,this.historicMoment=null,this.layerIds=null,this.layerOption="top",this.mapExtent=null,this.maxAllowableOffset=null,this.returnFieldName=!0,this.returnGeometry=!1,this.returnM=!1,this.returnUnformattedValues=!0,this.returnZ=!1,this.spatialReference=null,this.timeExtent=null,this.tolerance=null,this.width=400}writeHistoricMoment(t,e){e.historicMoment=t&&t.getTime()}get sublayers(){return this._get("sublayers")??null}set sublayers(t){this._set("sublayers",s(e,t))}};t([r({type:Number,json:{write:!0}})],d.prototype,"dpi",void 0),t([r()],d.prototype,"floors",void 0),t([r({type:String,json:{write:!0}})],d.prototype,"gdbVersion",void 0),t([r({types:y,json:{read:l,write:!0}})],d.prototype,"geometry",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"geometryPrecision",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"height",void 0),t([r({type:Date})],d.prototype,"historicMoment",void 0),t([u("historicMoment")],d.prototype,"writeHistoricMoment",null),t([r({type:[Number],json:{write:!0}})],d.prototype,"layerIds",void 0),t([r({type:["top","visible","all","popup"],json:{write:!0}})],d.prototype,"layerOption",void 0),t([r({type:p,json:{write:!0}})],d.prototype,"mapExtent",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"maxAllowableOffset",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnFieldName",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnGeometry",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnM",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnUnformattedValues",void 0),t([r({type:Boolean,json:{write:!0}})],d.prototype,"returnZ",void 0),t([r({type:n,json:{write:!0}})],d.prototype,"spatialReference",void 0),t([r()],d.prototype,"sublayers",null),t([r({type:m,json:{write:!0}})],d.prototype,"timeExtent",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"tolerance",void 0),t([r({type:Number,json:{write:!0}})],d.prototype,"width",void 0),d=a=t([i("esri.rest.support.IdentifyParameters")],d);export{d as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../Graphic.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{property as o,subclass as s}from"../../core/accessorSupport/decorators.js";import{typeKebabDictionary as p}from"../../geometry/support/typeUtils.js";import{reader as i}from"../../core/accessorSupport/decorators/reader.js";import{writer as a}from"../../core/accessorSupport/decorators/writer.js";let u=class extends r{constructor(t){super(t),this.displayFieldName=null,this.feature=null,this.layerId=null,this.layerName=null}readFeature(t,r){return e.fromJSON({attributes:{...r.attributes},geometry:{...r.geometry}})}writeFeature(t,e){if(!t)return;const{attributes:r,geometry:o}=t;r&&(e.attributes={...r}),null!=o&&(e.geometry=o.toJSON(),e.geometryType=p.toJSON(o.type))}};t([o({type:String,json:{write:!0}})],u.prototype,"displayFieldName",void 0),t([o({type:e})],u.prototype,"feature",void 0),t([i("feature",["attributes","geometry"])],u.prototype,"readFeature",null),t([a("feature")],u.prototype,"writeFeature",null),t([o({type:Number,json:{write:!0}})],u.prototype,"layerId",void 0),t([o({type:String,json:{write:!0}})],u.prototype,"layerName",void 0),u=t([s("esri.rest.support.IdentifyResult")],u);const l=u;export{l as default};
2
+ import{__decorate as t}from"tslib";import e from"../../Graphic.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{property as o,subclass as p}from"../../core/accessorSupport/decorators.js";import{typeKebabDictionary as s}from"../../geometry/support/typeUtils.js";import{reader as i}from"../../core/accessorSupport/decorators/reader.js";import{writer as a}from"../../core/accessorSupport/decorators/writer.js";let u=class extends r{constructor(t){super(t),this.displayFieldName=null,this.feature=null,this.layerId=null,this.layerName=null}readFeature(t,r){return e.fromJSON({attributes:{...r.attributes},geometry:{...r.geometry}})}writeFeature(t,e){if(!t)return;const{attributes:r,geometry:o}=t;r&&(e.attributes={...r}),null!=o&&(e.geometry=o.toJSON(),e.geometryType=s.toJSON(o.type))}};t([o({type:String,json:{write:!0}})],u.prototype,"displayFieldName",void 0),t([o({type:e})],u.prototype,"feature",void 0),t([i("feature",["attributes","geometry"])],u.prototype,"readFeature",null),t([a("feature")],u.prototype,"writeFeature",null),t([o({type:Number,json:{write:!0}})],u.prototype,"layerId",void 0),t([o({type:String,json:{write:!0}})],u.prototype,"layerName",void 0),u=t([p("esri.rest.support.IdentifyResult")],u);export{u as default};
@@ -61,8 +61,8 @@ export interface FlowRendererParameters extends RasterRendererParameters {
61
61
  * Possible values are listed below.
62
62
  * | Value | Description | Example |
63
63
  * | ----- | ----------- | ------- |
64
- * | flow-line | Renders the uv and magnitude data as animated flow lines. This is ideal for representing wind and other atmospheric data. | ![flow-line](https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-flow-line-2.webm) |
65
- * | wave-front | Renders UV and magnitude data in a wave-like animation. This theme works well for ocean data. | ![above](https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-wave-front-2.webm) |
64
+ * | flow-line | Renders the uv and magnitude data as animated flow lines. This is ideal for representing wind and other atmospheric data. | <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-flow-line-2.webm" aria-label="flow-line" autoplay muted playsinline loop></video> |
65
+ * | wave-front | Renders UV and magnitude data in a wave-like animation. This theme works well for ocean data. | <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-wave-front-2.webm" aria-label="above" autoplay muted playsinline loop></video> |
66
66
  *
67
67
  * > [!WARNING]
68
68
  * >
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import o from"../../renderers/PointCloudUniqueValueRenderer.js";import t from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as a,calculateDateFormatInterval as u,dateFormatIntervalOptions as p}from"../../renderers/support/utils.js";import m from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import d from"../heuristics/outline.js";import c from"../heuristics/sizeRange.js";import{spliceVisualVariables as f,processRegenerateParams as y,getRendererToUpdate as v,getStyleType as b,hasOutlineVV as g,hasScaleDependentSizeVV as h,findOutlineVVIndex as w,findScaleDependentSizeVVIndex as T}from"./support/regenerateUtils.js";import{getPointSizeAlgorithm as z,errorCallback as E,getBasemapInfo as x,isValidPointSize as I,verifyBasicFieldValidity as V,getSymbolSizeFromScheme as M,getSymbolOutlineFromScheme as j,createSymbol as S}from"./support/utils.js";import O from"../statistics/uniqueValues.js";import{verifyBinningParams as q}from"../support/binningUtils.js";import{getFieldsList as U,fieldDelimiter as C,isAnyDateField as B}from"../support/utils.js";import{createLayerAdapter as R,getLayerTypeLabels as P,binningCapableLayerTypes as Z,featureCapableLayerTypes as F}from"../support/adapters/support/layerUtils.js";import{cloneScheme as D,getSchemes as k}from"../symbology/type.js";async function A(e){if(!e?.layer||!e.field&&!e.valueExpression)throw new i("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new i("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");e.forBinning&&q(e,"type-renderer");const n={...e,layer:e.layer};n.symbolType=n.symbolType||"2d",n.defaultSymbolEnabled??=!0,n.sortBy??="count",n.sortEnabled??=!0,n.statistics=l(n.statistics);const r=null==n.numTypes?10:n.numTypes,o=e.forBinning?Z:F,t=R(n.layer,o,e.forBinning);if(!t)throw new i("type-renderer:invalid-parameters","'layer' must be one of these types: "+P(o).join(", "));const s=null!=n.signal?{signal:n.signal}:null;await t.load(s);const a=t.geometryType;n.outlineOptimizationEnabled="polygon"===a&&n.outlineOptimizationEnabled;const u="featureReduction"in e.layer&&"cluster"===e.layer.featureReduction?.type;if(n.sizeOptimizationEnabled=!("point"!==a&&"multipoint"!==a&&"polyline"!==a||u)&&n.sizeOptimizationEnabled,"mesh"===a)n.symbolType="3d-volumetric",n.colorMixMode=n.colorMixMode||"replace",n.edgesType=n.edgesType||"none";else{if("3d-volumetric-uniform"===n.symbolType&&"point"!==a)throw new i("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(n.symbolType.includes("3d-volumetric")&&"3d"!==n.view?.type)throw new i("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const p=await U({field:n.field,field2:n.field2,field3:n.field3,valueExpression:n.valueExpression}),m=V(t,p,"type-renderer:invalid-parameters");if(m)throw m;return{...n,layer:t,numTypes:r}}async function L(e){const l="regenerate-type-renderer";await y(e,l);const n=await v(e),r=b(n);if(!r||!["type","type-size"].includes(r))throw new i(`${l}:invalid-parameters`,"Renderer is invalid");const{field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u}=n,p=n.uniqueValueInfos.length,{layer:m,forBinning:d,filter:c,view:f,signal:w}=e,T=g(n),z=h(n),E=await A({layer:m,field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u,numTypes:p,outlineOptimizationEnabled:T,sizeOptimizationEnabled:z,forBinning:d,filter:c,view:f,signal:w});return{...e,creatorParameters:E,renderer:n}}async function $(e){if(!e?.layer||!e.field)throw new i("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const n={...e,layer:e.layer};n.statistics=l(n.statistics);const r=[10],o=R(n.layer,r);if(!o)throw new i("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+P(r).join(", "));if(n.layer=o,n.density=n.density||25,n.size=n.size||"100%",!I(n.size))throw new i("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");const t=null!=n.signal?{signal:n.signal}:null;await o.load(t);const s=await U({field:n.field}),a=V(o,s,"type-point-cloud-class-renderer:invalid-parameters");if(a)throw a;return n}async function G(e){let i=e.typeScheme,l=null,n=null;const r=await x(e.basemap,e.view);if(l=null!=r.basemapId?r.basemapId:null,n=null!=r.basemapTheme?r.basemapTheme:null,i)return{scheme:D(i),basemapId:l,basemapTheme:n};const o=k({numColors:e.numColors,basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return o&&(i=o.primaryScheme,l=o.basemapId,n=o.basemapTheme),{scheme:i,basemapId:l,basemapTheme:n}}function H(e,i){let l;return l=e.label<i.label?-1:e.label>i.label?1:0,l}function J(e,i){let l;return l=e.value<i.value?-1:e.value>i.value?1:0,l}function K(e,i){let l=i.count-e.count;return 0===l&&(l=H(e,i)),l}function N(e,i){let l=i.count-e.count;return 0===l&&(l=J(e,i)),l}function Q(e,i,l){let n;"count"===i?(n=N,l&&"codedValues"in l&&l.codedValues&&(n=K)):"value"===i&&(n=J,l&&"codedValues"in l&&l.codedValues&&(n=H)),n&&e.sort(n)}async function W(e,i,l,r){const o=await n("esri/smartMapping/t9n/smartMapping"),{field:u,field2:p,field3:m}=i,d=e.uniqueValueInfos,c=i.layer,f=u?c.getField(u):null,y=f?c.getFieldDomain(f.name):null,v=-1===i.numTypes?d.length:i.numTypes,b=c.geometryType,g=new t({field:u,field2:p,field3:m,fieldDelimiter:u&&p?C:null}),h=[],w=[],T={value:null,domain:y,fieldInfo:f};d.forEach((e,i)=>{T.value=e.value,e.label=a(T);const l=e.value;(null===l||"string"==typeof l&&l.toLowerCase().includes("<null>"))&&h.unshift(i)});for(const n of h)w.unshift(d.splice(n,1)[0]);!1!==i.sortEnabled&&Q(d,i.sortBy,y),X(T,i,d);const z=l?.opacity,E=await G({numColors:d.length,basemap:i.basemap,geometryType:b,typeScheme:i.typeScheme,worldScale:!!i.symbolType?.includes("3d-volumetric"),view:i.view}),x=E.scheme,I=x.colors.map(e=>e.clone()),V=M(x,b),O=j(x,b,z);d.forEach((e,l)=>{T.value=e.value,e.label=a(T),e.symbol=S(b,{type:i.symbolType,color:I[l],size:V,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})}),i.valueExpression&&(g.valueExpression=i.valueExpression,g.valueExpressionTitle=i.valueExpressionTitle),i.legendOptions&&(g.legendOptions=new s(i.legendOptions));for(let n=0;n<v;n++){const e=d[n];e&&g.addUniqueValueInfo({value:e.value,label:e.label,symbol:S(b,{type:i.symbolType,color:I[n].clone(),size:V,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})}i.defaultSymbolEnabled&&(g.defaultSymbol=S(b,{type:i.symbolType,color:x.noDataColor,size:V,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),g.defaultLabel=o.other);for(const n of w)n.symbol=S(b,{type:i.symbolType,color:x.noDataColor,size:V,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),d.push(n);const q=[],U=g.uniqueValueInfos?.length??0,B=U===d.length?-1:U;if(B>-1)for(let n=B;n<d.length;n++)q.push({...d[n]});return l?.visualVariables?.length&&(g.visualVariables=l.visualVariables.map(e=>e.clone())),r?.minSize&&(g.visualVariables?g.visualVariables.push(r.minSize):g.visualVariables=[r.minSize]),{renderer:g,uniqueValueInfos:d,excludedUniqueValueInfos:q,typeScheme:D(x),basemapId:E.basemapId,basemapTheme:E.basemapTheme}}function X(e,i,l){const{field:n,numTypes:o,layer:t,view:s}=i,a=n?t.getField(n):null;if(a&&(B(a)||r(a))){const i=l.filter((e,i)=>i<o).map(e=>e.value),n=r(a)?null:u(i),m=n?p[n]:void 0;if(e.dateFormatOptions={fieldType:a.type,format:m},s){const i=t.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:"preferredTimeZone"in i?i.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in i&&i.datesInUnknownTimezone}}}}async function Y(i,l){const n=i.uniqueValueInfos,r=await G({numColors:n.length,basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:l}),o=r?.scheme,t="point-cloud-class"===o?.theme,s=t?o.colors:e(o?.colors??[],n.length);return Q(n,"value"),n.map((e,i)=>{const l=e.value;let n=null;return t?(n=s[l],n||(n=s[s.length-1])):n=s[i],new m({values:[l],color:n,label:e.label})})}async function _(e){const i=await A(e),{layer:l,view:n,signal:r,filter:o}=i,t={layer:l,field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression,returnAllCodedValues:i.returnAllCodedValues,view:n,filter:o,signal:r},[s,a,u]=await Promise.all([null!=i.statistics?i.statistics:O(t),i.outlineOptimizationEnabled?d({layer:l,view:n,signal:r,filter:o}).catch(E):null,i.sizeOptimizationEnabled?c({layer:l,view:n,signal:r,filter:o}).catch(E):null]);return W(s,i,a,u)}async function ee(e){const{creatorParameters:i,view:l,signal:n,filter:r,renderer:o}=await L(e),{layer:t,outlineOptimizationEnabled:s,sizeOptimizationEnabled:a}=i,[u,p]=await Promise.all([s?d({layer:t,view:l,signal:n,filter:r}).catch(E):null,a?c({layer:t,view:l,signal:n,filter:r}).catch(E):null]);return f(o,u?.visualVariables,w),f(o,p?.minSize,T),{renderer:o}}async function ie(e){const i=await $(e),l=null!=i.statistics?i.statistics:await O({layer:i.layer,field:i.field,signal:i.signal});return{renderer:new o({field:i.field,pointsPerInch:i.density??void 0,pointSizeAlgorithm:z(i.size),colorUniqueValueInfos:await Y(l,i.typeScheme)})}}export{ie as createPCClassRenderer,_ as createRenderer,G as getTypeSchemeData,ee as regenerateRenderer};
2
+ import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import o from"../../renderers/PointCloudUniqueValueRenderer.js";import t from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as a,calculateDateFormatInterval as u,dateFormatIntervalOptions as p}from"../../renderers/support/utils.js";import m from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import d from"../heuristics/outline.js";import c from"../heuristics/sizeRange.js";import{spliceVisualVariables as f,findOutlineVVIndex as y,findScaleDependentSizeVVIndex as v,processRegenerateParams as b,getRendererToUpdate as g,getStyleType as h,hasOutlineVV as w,hasScaleDependentSizeVV as T}from"./support/regenerateUtils.js";import{getPointSizeAlgorithm as z,errorCallback as E,getBasemapInfo as x,isValidPointSize as I,verifyBasicFieldValidity as V,getSymbolSizeFromScheme as M,getSymbolOutlineFromScheme as j,createSymbol as S}from"./support/utils.js";import O from"../statistics/uniqueValues.js";import{verifyBinningParams as q}from"../support/binningUtils.js";import{getFieldsList as U,fieldDelimiter as C,isAnyDateField as B}from"../support/utils.js";import{createLayerAdapter as R,getLayerTypeLabels as P,binningCapableLayerTypes as Z,featureCapableLayerTypes as F}from"../support/adapters/support/layerUtils.js";import{cloneScheme as D,getSchemes as k}from"../symbology/type.js";async function A(e){if(!e?.layer||!e.field&&!e.valueExpression)throw new i("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new i("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");e.forBinning&&q(e,"type-renderer");const n={...e,layer:e.layer};n.symbolType=n.symbolType||"2d",n.defaultSymbolEnabled??=!0,n.sortBy??="count",n.sortEnabled??=!0,n.statistics=l(n.statistics);const r=null==n.numTypes?10:n.numTypes,o=e.forBinning?Z:F,t=R(n.layer,o,e.forBinning);if(!t)throw new i("type-renderer:invalid-parameters","'layer' must be one of these types: "+P(o).join(", "));const s=null!=n.signal?{signal:n.signal}:null;await t.load(s);const a=t.geometryType;n.outlineOptimizationEnabled="polygon"===a&&n.outlineOptimizationEnabled;const u="featureReduction"in e.layer&&"cluster"===e.layer.featureReduction?.type;if(n.sizeOptimizationEnabled=!("point"!==a&&"multipoint"!==a&&"polyline"!==a||u)&&n.sizeOptimizationEnabled,"mesh"===a)n.symbolType="3d-volumetric",n.colorMixMode=n.colorMixMode||"replace",n.edgesType=n.edgesType||"none";else{if("3d-volumetric-uniform"===n.symbolType&&"point"!==a)throw new i("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(n.symbolType.includes("3d-volumetric")&&"3d"!==n.view?.type)throw new i("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const p=await U({field:n.field,field2:n.field2,field3:n.field3,valueExpression:n.valueExpression}),m=V(t,p,"type-renderer:invalid-parameters");if(m)throw m;return{...n,layer:t,numTypes:r}}async function L(e){const l="regenerate-type-renderer";await b(e,l);const n=await g(e),r=h(n);if(!r||!["type","type-size"].includes(r))throw new i(`${l}:invalid-parameters`,"Renderer is invalid");const{field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u}=n,p=n.uniqueValueInfos.length,{layer:m,forBinning:d,filter:c,view:f,signal:y}=e,v=w(n),z=T(n),E=await A({layer:m,field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u,numTypes:p,outlineOptimizationEnabled:v,sizeOptimizationEnabled:z,forBinning:d,filter:c,view:f,signal:y});return{...e,creatorParameters:E,renderer:n}}async function $(e){if(!e?.layer||!e.field)throw new i("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const n={...e,layer:e.layer};n.statistics=l(n.statistics);const r=[10],o=R(n.layer,r);if(!o)throw new i("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+P(r).join(", "));if(n.layer=o,n.density=n.density||25,n.size=n.size||"100%",!I(n.size))throw new i("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");const t=null!=n.signal?{signal:n.signal}:null;await o.load(t);const s=await U({field:n.field}),a=V(o,s,"type-point-cloud-class-renderer:invalid-parameters");if(a)throw a;return n}async function G(e){let i=e.typeScheme,l=null,n=null;const r=await x(e.basemap,e.view);if(l=null!=r.basemapId?r.basemapId:null,n=null!=r.basemapTheme?r.basemapTheme:null,i)return{scheme:D(i),basemapId:l,basemapTheme:n};const o=k({numColors:e.numColors,basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return o&&(i=o.primaryScheme,l=o.basemapId,n=o.basemapTheme),{scheme:i,basemapId:l,basemapTheme:n}}function H(e,i){let l;return l=e.label<i.label?-1:e.label>i.label?1:0,l}function J(e,i){let l;return l=e.value<i.value?-1:e.value>i.value?1:0,l}function K(e,i){let l=i.count-e.count;return 0===l&&(l=H(e,i)),l}function N(e,i){let l=i.count-e.count;return 0===l&&(l=J(e,i)),l}function Q(e,i,l){let n;"count"===i?(n=N,l&&"codedValues"in l&&l.codedValues&&(n=K)):"value"===i&&(n=J,l&&"codedValues"in l&&l.codedValues&&(n=H)),n&&e.sort(n)}async function W(e,i,l,r){const o=await n("esri/smartMapping/t9n/smartMapping"),{field:u,field2:p,field3:m}=i,d=e.uniqueValueInfos,c=i.layer,f=u?c.getField(u):null,y=f?c.getFieldDomain(f.name):null,v=-1===i.numTypes?d.length:i.numTypes,b=c.geometryType,g=new t({field:u,field2:p,field3:m,fieldDelimiter:u&&p?C:null}),h=[],w=[],T={value:null,domain:y,fieldInfo:f};d.forEach((e,i)=>{T.value=e.value,e.label=a(T);const l=e.value;(null===l||"string"==typeof l&&l.toLowerCase().includes("<null>"))&&h.unshift(i)});for(const n of h)w.unshift(d.splice(n,1)[0]);!1!==i.sortEnabled&&Q(d,i.sortBy,y),X(T,i,d);const z=l?.opacity,E=await G({numColors:d.length,basemap:i.basemap,geometryType:b,typeScheme:i.typeScheme,worldScale:!!i.symbolType?.includes("3d-volumetric"),view:i.view}),x=E.scheme,I=x.colors.map(e=>e.clone()),V=M(x,b),O=j(x,b,z);d.forEach((e,l)=>{T.value=e.value,e.label=a(T),e.symbol=S(b,{type:i.symbolType,color:I[l],size:V,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})}),i.valueExpression&&(g.valueExpression=i.valueExpression,g.valueExpressionTitle=i.valueExpressionTitle),i.legendOptions&&(g.legendOptions=new s(i.legendOptions));for(let n=0;n<v;n++){const e=d[n];e&&g.addUniqueValueInfo({value:e.value,label:e.label,symbol:S(b,{type:i.symbolType,color:I[n].clone(),size:V,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})}i.defaultSymbolEnabled&&(g.defaultSymbol=S(b,{type:i.symbolType,color:x.noDataColor,size:V,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),g.defaultLabel=o.other);for(const n of w)n.symbol=S(b,{type:i.symbolType,color:x.noDataColor,size:V,outline:O,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),d.push(n);const q=[],U=g.uniqueValueInfos?.length??0,B=U===d.length?-1:U;if(B>-1)for(let n=B;n<d.length;n++)q.push({...d[n]});return l?.visualVariables?.length&&(g.visualVariables=l.visualVariables.map(e=>e.clone())),r?.minSize&&(g.visualVariables?g.visualVariables.push(r.minSize):g.visualVariables=[r.minSize]),{renderer:g,uniqueValueInfos:d,excludedUniqueValueInfos:q,typeScheme:D(x),basemapId:E.basemapId,basemapTheme:E.basemapTheme}}function X(e,i,l){const{field:n,numTypes:o,layer:t,view:s}=i,a=n?t.getField(n):null;if(a&&(B(a)||r(a))){const i=l.filter((e,i)=>i<o).map(e=>e.value),n=r(a)?null:u(i),m=n?p[n]:void 0;if(e.dateFormatOptions={fieldType:a.type,format:m},s){const i=t.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:"preferredTimeZone"in i?i.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in i&&i.datesInUnknownTimezone}}}}async function Y(i,l){const n=i.uniqueValueInfos,r=await G({numColors:n.length,basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:l}),o=r?.scheme,t="point-cloud-class"===o?.theme,s=t?o.colors:e(o?.colors??[],n.length);return Q(n,"value"),n.map((e,i)=>{const l=e.value;let n=null;return t?(n=s[l],n||(n=s[s.length-1])):n=s[i],new m({values:[l],color:n,label:e.label})})}async function _(e){const i=await A(e),{layer:l,view:n,signal:r,filter:o}=i,t={layer:l,field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression,returnAllCodedValues:i.returnAllCodedValues,view:n,filter:o,signal:r},[s,a,u]=await Promise.all([null!=i.statistics?i.statistics:O(t),i.outlineOptimizationEnabled?d({layer:l,view:n,signal:r,filter:o}).catch(E):null,i.sizeOptimizationEnabled?c({layer:l,view:n,signal:r,filter:o}).catch(E):null]);return W(s,i,a,u)}async function ee(e){const{creatorParameters:i,view:l,signal:n,filter:r,renderer:o}=await L(e),{layer:t,outlineOptimizationEnabled:s,sizeOptimizationEnabled:a}=i,[u,p]=await Promise.all([s?d({layer:t,view:l,signal:n,filter:r}).catch(E):null,a?c({layer:t,view:l,signal:n,filter:r}).catch(E):null]);return f(o,u?.visualVariables,y),f(o,p?.minSize,v),{renderer:o}}async function ie(e){const i=await $(e),l=null!=i.statistics?i.statistics:await O({layer:i.layer,field:i.field,signal:i.signal});return{renderer:new o({field:i.field,pointsPerInch:i.density??void 0,pointSizeAlgorithm:z(i.size),colorUniqueValueInfos:await Y(l,i.typeScheme)})}}export{ie as createPCClassRenderer,_ as createRenderer,G as getTypeSchemeData,ee as regenerateRenderer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../core/Error.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as o}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createContinuousRenderer as l,createVisualVariables as t,regenerateContinuousRenderer as r}from"./size.js";import{isColorVV as u,updateAuthoringInfoVisualVariable as p,spliceVisualVariables as m,getAuthoringInfoVisualVariable as c,processRegenerateParams as v,getRendererToUpdate as d,getStyleType as f,hasOutlineVV as b,hasScaleDependentSizeVV as y,findSizeVVIndex as w}from"./support/regenerateUtils.js";import{verifyBasicFieldValidity as h,createStopValuesForAboveBelow as z,clampAboveAndBelowStopValues as g,createDefaultStopValues as V}from"./support/utils.js";import{verifyBinningParams as O}from"../support/binningUtils.js";import{isAnyDateField as x,getFieldsList as E}from"../support/utils.js";import{binningCapableLayerTypes as S,featureCapableLayerTypes as I,createLayerAdapter as T,getLayerTypeLabels as j}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as B}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as q}from"../../symbols/support/cimSymbolUtils.js";import D from"../../symbols/support/Symbol3DMaterial.js";const U=2**53-1;async function C(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===i.theme&&i.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");i.forBinning&&O(i,"univariate-colorsize-visual-variables");const a={...i,layer:i.layer},s=i.forBinning?S:I,o=T(a.layer,s,i.forBinning);if(!o)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+j(s).join(", "));a.layer=o,a.theme=a.theme||a.colorOptions?.theme?a.theme:"high-to-low";const n=null!=a.signal?{signal:a.signal}:null;await o.load(n);const l=await E({field:a.field,normalizationField:a.normalizationField,valueExpression:a.valueExpression}),t=h(o,l,"univariate-colorsize-visual-variables:invalid-parameters");if(t)throw t;return a}function F(e,i){const a={...e},{sizeOptions:s,theme:o}=a,n=a.legendOptions||a.sizeOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===o?null:o,legendOptions:n}}function k(e,i){const a={...e},s=a.colorOptions,o=a.theme||s?.theme,n=a.legendOptions||a.colorOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:o,legendOptions:n}}async function A(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");i.forBinning&&O(i,"univariate-colorsize-continuous-renderer");const a={...i,layer:i.layer};a.symbolType=a.symbolType||"2d",a.colorOptions||(a.colorOptions={}),a.colorOptions.isContinuous=a.colorOptions.isContinuous??!1;const s=i.forBinning?S:I,o=T(a.layer,s,i.forBinning);if(!o)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+j(s).join(", "));const n=null!=a.signal?{signal:a.signal}:null;if(await o.load(n),"above-and-below"===a.theme&&a.symbolOptions){if(a.symbolType.includes("3d-volumetric"))throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==o.geometryType&&"polygon"!==o.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const l=await E({field:a.field,normalizationField:a.normalizationField,valueExpression:a.valueExpression}),t=h(o,l,"univariate-colorsize-continuous-renderer:invalid-parameters");if(t)throw t;return{...a,layer:o}}function M(e){const i={...e},a={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete a.sizeOptimizationEnabled,{...i,...a}}async function P(i){const a="regenerate-univariate-color-size-renderer";await v(i,a);const s=await d(i);if("univariate-color-size"!==f(s))throw new e(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:o,forBinning:n,filter:l,view:t,signal:r}=i,{field:u,normalizationField:p,valueExpression:m,valueExpressionTitle:c}=s,w=b(s),h=y(s),z=s.authoringInfo?.univariateTheme,g=await A({layer:o,field:u,normalizationField:p,valueExpression:m,valueExpressionTitle:c,outlineOptimizationEnabled:w,theme:z,colorOptions:{isContinuous:"above-and-below"===z?s.visualVariables?.some(e=>"color"===e.type):void 0},sizeOptions:{sizeOptimizationEnabled:h},forBinning:n,filter:l,view:t,signal:r});return{...i,creatorParameters:g,renderer:s}}function R(e,i){if("type"in e&&"cim"===e.type)q(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach(e=>{"material"in e&&null!=e.material&&"color"in e.material&&(e.material?e.material.color=i:e.material=new D({color:i}))})}else"color"in e&&(e.color=i)}function L(e,i,a){if((i?.symbolStyle||i?.symbols)&&("point"===a||"polygon"===a))return i.symbols||B(i.symbolStyle);const s=e.classBreakInfos[0].symbol;return{above:s.clone(),below:s.clone()}}function $(e,i,s){const o=s.symbolOptions,n=s.layer,l=o?.symbols?"custom":o?.symbolStyle,t=s.colorOptions?.isContinuous;if(G(e,i,t),l||!t){const s=i.size.visualVariables[0].stops,{above:r,below:u}=L(e,o,n.geometryType);if(!t){const e=i.color.colorScheme.colors,a=e[0];R(r,e[e.length-1]),R(u,a)}e.classBreakInfos=[new a({minValue:-U,maxValue:s[2].value,symbol:u}),new a({minValue:s[2].value,maxValue:U,symbol:r})],l&&e.authoringInfo&&(e.authoringInfo.univariateSymbolStyle=l)}}function G(e,i,a=!0){const s=i?.authoringInfo?.clone(),o=s?.visualVariables?.some(e=>"reference-size"===e.theme),n=o?[]:i.size.visualVariables.map(e=>e.clone());a?n.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables?.filter(e=>"size"===e.type),e.visualVariables&&n.push(...e.visualVariables.filter(e=>"target"in e&&"outline"===e.target).map(e=>e.clone())),e.authoringInfo=s,e.visualVariables=n}function H(e){const i={...e},a=i.symbolType,s=!!a?.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const o=i;return o.worldScale=s,s&&(o.sizeOptions={...o.sizeOptions},o.sizeOptions.axis="3d-volumetric-uniform"===a?"all":"height"),o}async function J(e,i,a,n){const l=i[0],t=i[1],r=Math.round((t-l)/2)+l,u=e.clone();u.stops=[new s({value:a[0],size:t}),new s({value:a[1],size:r}),new s({value:a[2],size:l}),new s({value:a[3],size:r}),new s({value:a[4],size:t})],e.stops=[new s({value:n[0],size:o(u,n[0])}),new s({value:n[1],size:o(u,n[1])}),new s({value:n[2],size:o(u,n[2])}),new s({value:n[3],size:o(u,n[3])}),new s({value:n[4],size:o(u,n[4])})]}async function K(e,i,a,s,o){const n=e.find(e=>"width-and-depth"!==e.axis&&!e.target),l="number"==typeof n?.minSize?n?.minSize:null,t="number"==typeof n?.maxSize?n?.maxSize:null;if(null!=n?.minDataValue&&null!=l&&null!=t)if(s)if("above-and-below"===s){n.minDataValue=null,n.maxDataValue=null,n.minSize=null,n.maxSize=null;const e=z(a,o),s=g(e,a);await J(n,[l,t],e,s),i.stops.forEach((e,i)=>e.value=s[i])}else{const{minDataValue:e,maxDataValue:a}=n,s=V(e,a,5);i.stops.forEach((e,i)=>e.value=s[i]),n.minDataValue=s[0],n.maxDataValue=s[s.length-1]}else n.minDataValue=i.stops[0].value,n.maxDataValue=i.stops[i.stops.length-1].value}function N(e,a,s){const{theme:o,minValue:n,maxValue:l}=e,t=a.authoringInfo.visualVariables[0].clone(),r=s.authoringInfo.visualVariables[0].clone(),{stops:u}=a.visualVariable;return"above-and-below"===o?(t.minSliderValue=r.minSliderValue=n??u[0].value,t.maxSliderValue=r.maxSliderValue=l??u.at(-1)?.value,r.theme="above-and-below"):o&&"high-to-low"!==o||"reference-size"!==r.theme||2!==r.sizeStops?.length||(r.sizeStops[0].value=u[0].value,r.sizeStops[1].value=u.at(-1)?.value),new i({type:"univariate-color-size",univariateTheme:o,visualVariables:[t,r]})}async function Q(e){const i=await C(e),a=await n(k(i)),{visualVariable:s,statistics:o}=a,l=await t(F(i,o)),r=l.visualVariables,u=e.layer,p=e.field?u.getField(e.field):null;return await K(r,s,o,i.theme,x(p)),{basemapId:l.basemapId,basemapTheme:l.basemapTheme,statistics:o,defaultValuesUsed:a.defaultValuesUsed,color:{visualVariable:s,colorScheme:a.colorScheme},size:{visualVariables:r,sizeScheme:l.sizeScheme},authoringInfo:N(i,a,l)}}async function W(e){return X(e)}async function X(e){const i=await A(e),{renderer:a,statistics:s,defaultValuesUsed:o}=await l(M(i)),n=H(i);n.statistics=s;const t=await Q(n);return"above-and-below"===i.theme?$(a,t,i):G(a,t),{renderer:a,statistics:s,defaultValuesUsed:o,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}async function Y(e){const{creatorParameters:i}=await P(e),{layer:a,field:s,theme:o,colorOptions:l}=i,{renderer:v,statistics:d}=await r(e),f=await C({...H(i),statistics:d}),b=await n(k(f)),y=b.visualVariable,h=(await t(F(f))).visualVariables,z=s?a.getField(s):null;await K(h,y,d,o,x(z));const g=l?.isContinuous||"above-and-below"!==o,V=v.visualVariables?.find(u);g&&V?.stops&&(V.stops.forEach((e,i)=>e.value=y.stops[i].value),p(v,b.authoringInfo,"color")),m(v,h,w);const O=c(v,"size");if((!o||"high-to-low"===o)&&"reference-size"===O?.theme&&2===O.sizeStops?.length){const{stops:e}=y;O.sizeStops[0].value=e[0].value,O.sizeStops[1].value=e.at(-1)?.value}if("above-and-below"===o&&h[0]?.stops){const e=h[0].stops;v.classBreakInfos[0].maxValue=e[2].value,v.classBreakInfos[1].minValue=e[2].value}return{renderer:v}}export{W as createContinuousRenderer,X as createRenderer,Q as createVisualVariables,Y as regenerateRenderer};
2
+ import e from"../../core/Error.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as o}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createContinuousRenderer as l,createVisualVariables as t,regenerateContinuousRenderer as r}from"./size.js";import{isColorVV as u,updateAuthoringInfoVisualVariable as p,spliceVisualVariables as m,findSizeVVIndex as c,getAuthoringInfoVisualVariable as v,processRegenerateParams as d,getRendererToUpdate as f,getStyleType as b,hasOutlineVV as y,hasScaleDependentSizeVV as w}from"./support/regenerateUtils.js";import{verifyBasicFieldValidity as h,createStopValuesForAboveBelow as z,clampAboveAndBelowStopValues as g,createDefaultStopValues as V}from"./support/utils.js";import{verifyBinningParams as O}from"../support/binningUtils.js";import{isAnyDateField as x,getFieldsList as E}from"../support/utils.js";import{binningCapableLayerTypes as S,featureCapableLayerTypes as I,createLayerAdapter as T,getLayerTypeLabels as j}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as B}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as q}from"../../symbols/support/cimSymbolUtils.js";import D from"../../symbols/support/Symbol3DMaterial.js";const U=2**53-1;async function C(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===i.theme&&i.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");i.forBinning&&O(i,"univariate-colorsize-visual-variables");const a={...i,layer:i.layer},s=i.forBinning?S:I,o=T(a.layer,s,i.forBinning);if(!o)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+j(s).join(", "));a.layer=o,a.theme=a.theme||a.colorOptions?.theme?a.theme:"high-to-low";const n=null!=a.signal?{signal:a.signal}:null;await o.load(n);const l=await E({field:a.field,normalizationField:a.normalizationField,valueExpression:a.valueExpression}),t=h(o,l,"univariate-colorsize-visual-variables:invalid-parameters");if(t)throw t;return a}function F(e,i){const a={...e},{sizeOptions:s,theme:o}=a,n=a.legendOptions||a.sizeOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===o?null:o,legendOptions:n}}function k(e,i){const a={...e},s=a.colorOptions,o=a.theme||s?.theme,n=a.legendOptions||a.colorOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:o,legendOptions:n}}async function A(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");i.forBinning&&O(i,"univariate-colorsize-continuous-renderer");const a={...i,layer:i.layer};a.symbolType=a.symbolType||"2d",a.colorOptions||(a.colorOptions={}),a.colorOptions.isContinuous=a.colorOptions.isContinuous??!1;const s=i.forBinning?S:I,o=T(a.layer,s,i.forBinning);if(!o)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+j(s).join(", "));const n=null!=a.signal?{signal:a.signal}:null;if(await o.load(n),"above-and-below"===a.theme&&a.symbolOptions){if(a.symbolType.includes("3d-volumetric"))throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==o.geometryType&&"polygon"!==o.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const l=await E({field:a.field,normalizationField:a.normalizationField,valueExpression:a.valueExpression}),t=h(o,l,"univariate-colorsize-continuous-renderer:invalid-parameters");if(t)throw t;return{...a,layer:o}}function M(e){const i={...e},a={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete a.sizeOptimizationEnabled,{...i,...a}}async function P(i){const a="regenerate-univariate-color-size-renderer";await d(i,a);const s=await f(i);if("univariate-color-size"!==b(s))throw new e(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:o,forBinning:n,filter:l,view:t,signal:r}=i,{field:u,normalizationField:p,valueExpression:m,valueExpressionTitle:c}=s,v=y(s),h=w(s),z=s.authoringInfo?.univariateTheme,g=await A({layer:o,field:u,normalizationField:p,valueExpression:m,valueExpressionTitle:c,outlineOptimizationEnabled:v,theme:z,colorOptions:{isContinuous:"above-and-below"===z?s.visualVariables?.some(e=>"color"===e.type):void 0},sizeOptions:{sizeOptimizationEnabled:h},forBinning:n,filter:l,view:t,signal:r});return{...i,creatorParameters:g,renderer:s}}function R(e,i){if("type"in e&&"cim"===e.type)q(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach(e=>{"material"in e&&null!=e.material&&"color"in e.material&&(e.material?e.material.color=i:e.material=new D({color:i}))})}else"color"in e&&(e.color=i)}function L(e,i,a){if((i?.symbolStyle||i?.symbols)&&("point"===a||"polygon"===a))return i.symbols||B(i.symbolStyle);const s=e.classBreakInfos[0].symbol;return{above:s.clone(),below:s.clone()}}function $(e,i,s){const o=s.symbolOptions,n=s.layer,l=o?.symbols?"custom":o?.symbolStyle,t=s.colorOptions?.isContinuous;if(G(e,i,t),l||!t){const s=i.size.visualVariables[0].stops,{above:r,below:u}=L(e,o,n.geometryType);if(!t){const e=i.color.colorScheme.colors,a=e[0];R(r,e[e.length-1]),R(u,a)}e.classBreakInfos=[new a({minValue:-U,maxValue:s[2].value,symbol:u}),new a({minValue:s[2].value,maxValue:U,symbol:r})],l&&e.authoringInfo&&(e.authoringInfo.univariateSymbolStyle=l)}}function G(e,i,a=!0){const s=i?.authoringInfo?.clone(),o=s?.visualVariables?.some(e=>"reference-size"===e.theme),n=o?[]:i.size.visualVariables.map(e=>e.clone());a?n.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables?.filter(e=>"size"===e.type),e.visualVariables&&n.push(...e.visualVariables.filter(e=>"target"in e&&"outline"===e.target).map(e=>e.clone())),e.authoringInfo=s,e.visualVariables=n}function H(e){const i={...e},a=i.symbolType,s=!!a?.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const o=i;return o.worldScale=s,s&&(o.sizeOptions={...o.sizeOptions},o.sizeOptions.axis="3d-volumetric-uniform"===a?"all":"height"),o}async function J(e,i,a,n){const l=i[0],t=i[1],r=Math.round((t-l)/2)+l,u=e.clone();u.stops=[new s({value:a[0],size:t}),new s({value:a[1],size:r}),new s({value:a[2],size:l}),new s({value:a[3],size:r}),new s({value:a[4],size:t})],e.stops=[new s({value:n[0],size:o(u,n[0])}),new s({value:n[1],size:o(u,n[1])}),new s({value:n[2],size:o(u,n[2])}),new s({value:n[3],size:o(u,n[3])}),new s({value:n[4],size:o(u,n[4])})]}async function K(e,i,a,s,o){const n=e.find(e=>"width-and-depth"!==e.axis&&!e.target),l="number"==typeof n?.minSize?n?.minSize:null,t="number"==typeof n?.maxSize?n?.maxSize:null;if(null!=n?.minDataValue&&null!=l&&null!=t)if(s)if("above-and-below"===s){n.minDataValue=null,n.maxDataValue=null,n.minSize=null,n.maxSize=null;const e=z(a,o),s=g(e,a);await J(n,[l,t],e,s),i.stops.forEach((e,i)=>e.value=s[i])}else{const{minDataValue:e,maxDataValue:a}=n,s=V(e,a,5);i.stops.forEach((e,i)=>e.value=s[i]),n.minDataValue=s[0],n.maxDataValue=s[s.length-1]}else n.minDataValue=i.stops[0].value,n.maxDataValue=i.stops[i.stops.length-1].value}function N(e,a,s){const{theme:o,minValue:n,maxValue:l}=e,t=a.authoringInfo.visualVariables[0].clone(),r=s.authoringInfo.visualVariables[0].clone(),{stops:u}=a.visualVariable;return"above-and-below"===o?(t.minSliderValue=r.minSliderValue=n??u[0].value,t.maxSliderValue=r.maxSliderValue=l??u.at(-1)?.value,r.theme="above-and-below"):o&&"high-to-low"!==o||"reference-size"!==r.theme||2!==r.sizeStops?.length||(r.sizeStops[0].value=u[0].value,r.sizeStops[1].value=u.at(-1)?.value),new i({type:"univariate-color-size",univariateTheme:o,visualVariables:[t,r]})}async function Q(e){const i=await C(e),a=await n(k(i)),{visualVariable:s,statistics:o}=a,l=await t(F(i,o)),r=l.visualVariables,u=e.layer,p=e.field?u.getField(e.field):null;return await K(r,s,o,i.theme,x(p)),{basemapId:l.basemapId,basemapTheme:l.basemapTheme,statistics:o,defaultValuesUsed:a.defaultValuesUsed,color:{visualVariable:s,colorScheme:a.colorScheme},size:{visualVariables:r,sizeScheme:l.sizeScheme},authoringInfo:N(i,a,l)}}async function W(e){return X(e)}async function X(e){const i=await A(e),{renderer:a,statistics:s,defaultValuesUsed:o}=await l(M(i)),n=H(i);n.statistics=s;const t=await Q(n);return"above-and-below"===i.theme?$(a,t,i):G(a,t),{renderer:a,statistics:s,defaultValuesUsed:o,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}async function Y(e){const{creatorParameters:i}=await P(e),{layer:a,field:s,theme:o,colorOptions:l}=i,{renderer:d,statistics:f}=await r(e),b=await C({...H(i),statistics:f}),y=await n(k(b)),w=y.visualVariable,h=(await t(F(b))).visualVariables,z=s?a.getField(s):null;await K(h,w,f,o,x(z));const g=l?.isContinuous||"above-and-below"!==o,V=d.visualVariables?.find(u);g&&V?.stops&&(V.stops.forEach((e,i)=>e.value=w.stops[i].value),p(d,y.authoringInfo,"color")),m(d,h,c);const O=v(d,"size");if((!o||"high-to-low"===o)&&"reference-size"===O?.theme&&2===O.sizeStops?.length){const{stops:e}=w;O.sizeStops[0].value=e[0].value,O.sizeStops[1].value=e.at(-1)?.value}if("above-and-below"===o&&h[0]?.stops){const e=h[0].stops;d.classBreakInfos[0].maxValue=e[2].value,d.classBreakInfos[1].minValue=e[2].value}return{renderer:d}}export{W as createContinuousRenderer,X as createRenderer,Q as createVisualVariables,Y as regenerateRenderer};
@@ -96,8 +96,8 @@ export interface GetSchemesParameters {
96
96
  * Possible values are listed below.
97
97
  * | Value | Description | Example |
98
98
  * | ----- | ----------- | ------- |
99
- * | flow-line | Renders the uv and magnitude data as animated flow lines. This is ideal for representing wind and other atmospheric data. | ![flow-line](https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-flow-line-2.webm) |
100
- * | wave-front | Renders UV and magnitude data in a wave-like animation. This theme works well for ocean data. | ![above](https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-wave-front-2.webm) |
99
+ * | flow-line | Renders the uv and magnitude data as animated flow lines. This is ideal for representing wind and other atmospheric data. | <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-flow-line-2.webm" aria-label="flow-line" autoplay muted playsinline loop></video> |
100
+ * | wave-front | Renders UV and magnitude data in a wave-like animation. This theme works well for ocean data. | <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-wave-front-2.webm" aria-label="above" autoplay muted playsinline loop></video> |
101
101
  *
102
102
  * > [!WARNING]
103
103
  * >
@@ -1749,8 +1749,8 @@ export interface FlowScheme {
1749
1749
  * Possible values are listed below.
1750
1750
  * | Value | Description | Example |
1751
1751
  * | ----- | ----------- | ------- |
1752
- * | flow-line | Renders the uv and magnitude data as animated flow lines. This is ideal for representing wind and other atmospheric data. | ![flow-line](https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-flow-line-2.webm) |
1753
- * | wave-front | Renders UV and magnitude data in a wave-like animation. This theme works well for ocean data. | ![above](https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-wave-front-2.webm) |
1752
+ * | flow-line | Renders the uv and magnitude data as animated flow lines. This is ideal for representing wind and other atmospheric data. | <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-flow-line-2.webm" aria-label="flow-line" autoplay muted playsinline loop></video> |
1753
+ * | wave-front | Renders UV and magnitude data in a wave-like animation. This theme works well for ocean data. | <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/renderers/animated-flow/sm-wave-front-2.webm" aria-label="wave-front" autoplay muted playsinline loop></video> |
1754
1754
  *
1755
1755
  * > [!WARNING]
1756
1756
  * >
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{isPopupTemplate as e}from"../popupTemplateUtils.js";import{b as r,v as n,x as t,f as o,h as i,j as l,l as u,s,n as c,D as f,z as p,B as m}from"../chunks/arcade.js";export{a as arcade}from"../chunks/arcade.js";import{ArcadeDate as d}from"../arcade/ArcadeDate.js";import{toSymbolId as y}from"../arcade/arcadeEnvironment.js";import v from"../arcade/Dictionary.js";import{Feature as g}from"../arcade/Feature.js";import{P as x,E as j,K as S,L as h,M as w}from"../chunks/languageUtils.js";import{Pixel as b}from"../arcade/Pixel.js";import{Voxel as A}from"../arcade/Voxel.js";import{clone as E}from"../core/lang.js";import{DateOnly as $}from"../core/sql/DateOnly.js";import{TimeOnly as F}from"../core/sql/TimeOnly.js";import I from"../geometry/Extent.js";import P from"../geometry/Multipoint.js";import M from"../geometry/Point.js";import D from"../geometry/Polygon.js";import _ from"../geometry/Polyline.js";import{isLabelClass as z}from"../layers/support/labelUtils.js";import{isSizeVariable as R}from"../renderers/visualVariables/support/sizeVariableUtils.js";import{isArray as T,isString as k,isBoolean as J,isNumber as C}from"./guards.js";const O={vars:{$feature:"any",$view:"any"}};function U(e){return e.replaceAll(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function V(e){return null==e?null:T(e)||x(e)?"array":j(e)?"date":k(e)?"text":J(e)?"boolean":C(e)?"number":e instanceof v?"dictionary":S(e)?"feature":e instanceof M?"point":e instanceof D?"polygon":e instanceof _?"polyline":e instanceof P?"multipoint":e instanceof I?"extent":e instanceof $?"dateOnly":e instanceof F?"time":h(e)?"featureSet":w(e)?"featureSetCollection":null}function Z(e){if(!e)return null;try{return n(e)}catch(r){}return null}function q(e,n){const t="string"==typeof e?Z(e):e;if(!t)return null;try{return n=n||E(O),r(t,n)}catch(o){}return null}function G(e,r,n){return{vars:{$feature:null==e?new g:g.createFromGraphic(e,n),$view:r?.view},spatialReference:r?.sr,timeZone:n??null}}function L(e,r,n){return g.createFromGraphicLikeObject(r,e,n,null)}function B(e,r){null!=e.vars&&(e.vars.$feature=r)}function K(e,r){let n;try{n=l(e,r)}catch(t){n=null}return n}function N(e,r){let n;try{n=e?e(r):null}catch(t){n=null}return n}function H(e,r){try{return e?e(r):Promise.resolve(null)}catch(n){return Promise.resolve(null)}}const Q=["$feature","$aggregatedFeatures","$voxel"].map(e=>y(e));function W(e,r){if(!e)return[];const n="string"==typeof e?Z(e):e;if(!n)return[];const t=new Map;if(Array.isArray(r)||null==r)for(const i of Q)t.set(i,r);else for(const[i,a]of r)t.set(y(i),a);const o=u(n).flatMap(({varId:e,memberNamePattern:r})=>{if(!t.has(e))return[];if(r.includes("*")){const n=t.get(e);if(null==n)return[];const o=new RegExp(`^${r.split(/\*+/).map(U).join(".*")}$`,"i");return n.filter(e=>o.test(e))}return r.toLowerCase()});return[...new Set(o.sort())]}function X(e){return t(e,"$view")}function Y(e,r){return!!e&&t(e,r)}function ee(e){if(!e||null==e.spatialReference&&(null==e.scale||null==e.viewingMode))return;let r,n;const{timeProperties:t,timeZone:o}=e;if(null!=t){const{currentStart:e,currentEnd:i}=t;null!=o?(r=null!=e?d.dateJSAndZoneToArcadeDate(e,o):null,n=null!=i?d.dateJSAndZoneToArcadeDate(i,o):null):(r=null!=e?d.dateJSToArcadeDate(e):null,n=null!=i?d.dateJSToArcadeDate(i):null)}return{view:e.viewingMode&&null!=e.scale?new v({__proto__:null,viewingMode:e.viewingMode,scale:e.scale,timeProperties:null!=r||null!=n?new v({__proto__:null,currentStart:r,currentEnd:n,startIncluded:!0,endIncluded:!0}):null}):null,sr:e.spatialReference}}function re({url:e,spatialReference:r,lrucache:n,interceptor:t}){const o=c();return o?o.createFeatureSetCollectionFromService(e,r,n,t):null}function ne({layer:e,spatialReference:r,outFields:n,returnGeometry:t,lrucache:o,interceptor:i}){if(null===e)return null;const a=c();return a?a.constructFeatureSet(e,r,n,t??!0,o,i):null}function te(e){if(null===e?.map)return null;const r=c();return r?r.createFeatureSetCollectionFromMap(e.map,e.spatialReference,e.lrucache,e.interceptor):null}function oe(e,r){return v.convertJsonToArcade(e,r)}function ie(e,r,n=[]){return s(e,r,n)}function ae(){return i()}function le(){return o()}function ue(e){return"type"in e&&("class-breaks"===e.type||"dictionary"===e.type||"dot-density"===e.type||"pie-chart"===e.type||"simple"===e.type||"unique-value"===e.type)}function se(r,n){if(!r)return!1;if("string"==typeof r)return n(r);const t=r;if(ue(t)){if("dot-density"===t.type){const e=t.attributes?.some(e=>n(e.valueExpression));if(e)return e}const e=t.visualVariables,r=!!e&&e.some(e=>{let r=n(e.valueExpression);return"size"===e.type&&(R(e.minSize)&&(r=r||n(e.minSize.valueExpression)),R(e.maxSize)&&(r=r||n(e.maxSize.valueExpression))),r});return!(!("valueExpression"in t)||!n(t.valueExpression))||r}if(z(t)){const e=t.labelExpressionInfo?.expression;return!(!e||!n(e))||!1}return!!e(t)&&(!!t.expressionInfos&&t.expressionInfos.some(e=>n(e.expression))||Array.isArray(t.content)&&t.content.some(e=>"expression"===e.type&&n(e.expressionInfo?.expression)))}function ce(e){const r=Z(e);return!!r&&p(r)}function fe(e){return se(e,ce)}function pe(e){if("renderer"in e&&e.renderer&&fe(e.renderer))return!0;if("labelingInfo"in e&&e.labelingInfo)for(const r of e.labelingInfo)if(fe(r))return!0;return!1}function me(e){const r=Z(e);return!!r&&m(r)}function de(e){return se(e,me)}function ye(e){return se(e,e=>{const r=Z(e);return!!r&&f(r)})}export{v as Dictionary,b as Pixel,A as Voxel,g as arcadeFeature,ne as convertFeatureLayerToFeatureSet,oe as convertJsonToArcade,te as convertMapToFeatureSetCollection,re as convertServiceUrlToWorkspace,G as createExecContext,L as createFeature,q as createFunction,Z as createSyntaxTree,X as dependsOnView,le as enableFeatureSetOperations,ae as enableGeometryOperations,K as evalSyntaxTree,H as executeAsyncFunction,N as executeFunction,W as extractFieldNames,V as getArcadeType,ee as getViewInfo,fe as hasGeometryFunctions,de as hasGeometryOperations,Y as hasVariable,pe as layerHasGeometryFunctions,ie as loadScriptDependencies,ye as requiresTrack,B as updateExecContext};
2
+ import{isPopupTemplate as e}from"../popupTemplateUtils.js";import{c as r,p as n,r as t,e as o,a,b as l,d as u,l as s,f as c,s as f,g as p,h as m}from"../chunks/arcade.js";export{i as arcade}from"../chunks/arcade.js";import{ArcadeDate as d}from"../arcade/ArcadeDate.js";import{toSymbolId as y}from"../arcade/arcadeEnvironment.js";import v from"../arcade/Dictionary.js";import{Feature as g}from"../arcade/Feature.js";import{j as x,e as j,k as S,m as h,l as w}from"../chunks/languageUtils.js";import{Pixel as b}from"../arcade/Pixel.js";import{Voxel as A}from"../arcade/Voxel.js";import{clone as $}from"../core/lang.js";import{DateOnly as E}from"../core/sql/DateOnly.js";import{TimeOnly as F}from"../core/sql/TimeOnly.js";import I from"../geometry/Extent.js";import P from"../geometry/Multipoint.js";import M from"../geometry/Point.js";import _ from"../geometry/Polygon.js";import D from"../geometry/Polyline.js";import{isLabelClass as R}from"../layers/support/labelUtils.js";import{isSizeVariable as T}from"../renderers/visualVariables/support/sizeVariableUtils.js";import{isArray as k,isString as z,isBoolean as J,isNumber as C}from"./guards.js";const O={vars:{$feature:"any",$view:"any"}};function U(e){return e.replaceAll(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function V(e){return null==e?null:k(e)||x(e)?"array":j(e)?"date":z(e)?"text":J(e)?"boolean":C(e)?"number":e instanceof v?"dictionary":S(e)?"feature":e instanceof M?"point":e instanceof _?"polygon":e instanceof D?"polyline":e instanceof P?"multipoint":e instanceof I?"extent":e instanceof E?"dateOnly":e instanceof F?"time":h(e)?"featureSet":w(e)?"featureSetCollection":null}function Z(e){if(!e)return null;try{return n(e)}catch(r){}return null}function q(e,n){const t="string"==typeof e?Z(e):e;if(!t)return null;try{return n=n||$(O),r(t,n)}catch(o){}return null}function G(e,r,n){return{vars:{$feature:null==e?new g:g.createFromGraphic(e,n),$view:r?.view},spatialReference:r?.sr,timeZone:n??null}}function L(e,r,n){return g.createFromGraphicLikeObject(r,e,n,null)}function N(e,r){null!=e.vars&&(e.vars.$feature=r)}function B(e,r){let n;try{n=l(e,r)}catch(t){n=null}return n}function H(e,r){let n;try{n=e?e(r):null}catch(t){n=null}return n}function K(e,r){try{return e?e(r):Promise.resolve(null)}catch(n){return Promise.resolve(null)}}const Q=["$feature","$aggregatedFeatures","$voxel"].map(e=>y(e));function W(e,r){if(!e)return[];const n="string"==typeof e?Z(e):e;if(!n)return[];const t=new Map;if(Array.isArray(r)||null==r)for(const i of Q)t.set(i,r);else for(const[i,a]of r)t.set(y(i),a);const o=u(n).flatMap(({varId:e,memberNamePattern:r})=>{if(!t.has(e))return[];if(r.includes("*")){const n=t.get(e);if(null==n)return[];const o=new RegExp(`^${r.split(/\*+/).map(U).join(".*")}$`,"i");return n.filter(e=>o.test(e))}return r.toLowerCase()});return[...new Set(o.sort())]}function X(e){return t(e,"$view")}function Y(e,r){return!!e&&t(e,r)}function ee(e){if(!e||null==e.spatialReference&&(null==e.scale||null==e.viewingMode))return;let r,n;const{timeProperties:t,timeZone:o}=e;if(null!=t){const{currentStart:e,currentEnd:i}=t;null!=o?(r=null!=e?d.dateJSAndZoneToArcadeDate(e,o):null,n=null!=i?d.dateJSAndZoneToArcadeDate(i,o):null):(r=null!=e?d.dateJSToArcadeDate(e):null,n=null!=i?d.dateJSToArcadeDate(i):null)}return{view:e.viewingMode&&null!=e.scale?new v({__proto__:null,viewingMode:e.viewingMode,scale:e.scale,timeProperties:null!=r||null!=n?new v({__proto__:null,currentStart:r,currentEnd:n,startIncluded:!0,endIncluded:!0}):null}):null,sr:e.spatialReference}}function re({url:e,spatialReference:r,lrucache:n,interceptor:t}){const o=c();return o?o.createFeatureSetCollectionFromService(e,r,n,t):null}function ne({layer:e,spatialReference:r,outFields:n,returnGeometry:t,lrucache:o,interceptor:i}){if(null===e)return null;const a=c();return a?a.constructFeatureSet(e,r,n,t??!0,o,i):null}function te(e){if(null===e?.map)return null;const r=c();return r?r.createFeatureSetCollectionFromMap(e.map,e.spatialReference,e.lrucache,e.interceptor):null}function oe(e,r){return v.convertJsonToArcade(e,r)}function ie(e,r,n=[]){return s(e,r,n)}function ae(){return a()}function le(){return o()}function ue(e){return"type"in e&&("class-breaks"===e.type||"dictionary"===e.type||"dot-density"===e.type||"pie-chart"===e.type||"simple"===e.type||"unique-value"===e.type)}function se(r,n){if(!r)return!1;if("string"==typeof r)return n(r);const t=r;if(ue(t)){if("dot-density"===t.type){const e=t.attributes?.some(e=>n(e.valueExpression));if(e)return e}const e=t.visualVariables,r=!!e&&e.some(e=>{let r=n(e.valueExpression);return"size"===e.type&&(T(e.minSize)&&(r=r||n(e.minSize.valueExpression)),T(e.maxSize)&&(r=r||n(e.maxSize.valueExpression))),r});return!(!("valueExpression"in t)||!n(t.valueExpression))||r}if(R(t)){const e=t.labelExpressionInfo?.expression;return!(!e||!n(e))||!1}return!!e(t)&&(!!t.expressionInfos&&t.expressionInfos.some(e=>n(e.expression))||Array.isArray(t.content)&&t.content.some(e=>"expression"===e.type&&n(e.expressionInfo?.expression)))}function ce(e){const r=Z(e);return!!r&&p(r)}function fe(e){return se(e,ce)}function pe(e){if("renderer"in e&&e.renderer&&fe(e.renderer))return!0;if("labelingInfo"in e&&e.labelingInfo)for(const r of e.labelingInfo)if(fe(r))return!0;return!1}function me(e){const r=Z(e);return!!r&&m(r)}function de(e){return se(e,me)}function ye(e){return se(e,e=>{const r=Z(e);return!!r&&f(r)})}export{v as Dictionary,b as Pixel,A as Voxel,g as arcadeFeature,ne as convertFeatureLayerToFeatureSet,oe as convertJsonToArcade,te as convertMapToFeatureSetCollection,re as convertServiceUrlToWorkspace,G as createExecContext,L as createFeature,q as createFunction,Z as createSyntaxTree,X as dependsOnView,le as enableFeatureSetOperations,ae as enableGeometryOperations,B as evalSyntaxTree,K as executeAsyncFunction,H as executeFunction,W as extractFieldNames,V as getArcadeType,ee as getViewInfo,fe as hasGeometryFunctions,de as hasGeometryOperations,Y as hasVariable,pe as layerHasGeometryFunctions,ie as loadScriptDependencies,ye as requiresTrack,N as updateExecContext};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../kernel.js";import"../core/urlUtils.js";import"../portal/support/urlUtils.js";export{e as ensureMainOnlineDomain,f as fromCDNUrl,a as fromJSON,i as itemIdFromResourceUrl,b as prefixAndFilenameFromResourceUrl,r as read,t as toCDNUrl,c as toJSON,w as write}from"../chunks/persistableUrlUtils.js";
2
+ import"../kernel.js";import"../core/urlUtils.js";import"../portal/support/urlUtils.js";export{e as ensureMainOnlineDomain,c as fromCDNUrl,f as fromJSON,i as itemIdFromResourceUrl,p as prefixAndFilenameFromResourceUrl,r as read,a as toCDNUrl,t as toJSON,w as write}from"../chunks/persistableUrlUtils.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- const c="20260602",e="d086a4603725c86ac66ed9eef179162238cb5d85";export{c as buildDate,e as commitHash};
2
+ const d="20260603",e="d8b35e2d829435550e5cd4e2b9a1680f9363cd5b";export{d as buildDate,e as commitHash};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import r from"../core/Collection.js";import{referenceSetter as t,castForReferenceSetter as o}from"../core/collectionUtils.js";import s from"../core/Logger.js";import{isAbsolute as l,normalize as i,hasSamePortal as a}from"../core/urlUtils.js";import m from"../core/Warning.js";import{property as y,cast as n,subclass as p}from"../core/accessorSupport/decorators.js";import c from"../portal/Portal.js";import{a as b,c as g}from"../chunks/persistableUrlUtils.js";import u from"./ExtrudeSymbol3DLayer.js";import f from"./FillSymbol3DLayer.js";import d from"./IconSymbol3DLayer.js";import j from"./LineSymbol3DLayer.js";import h from"./ObjectSymbol3DLayer.js";import S from"./PathSymbol3DLayer.js";import L from"./Symbol.js";import O from"./Symbol3DLayer.js";import U from"./TextSymbol3DLayer.js";import _ from"./WaterSymbol3DLayer.js";import D from"./support/StyleOrigin.js";import{Thumbnail as w}from"./support/Thumbnail.js";import{reader as N}from"../core/accessorSupport/decorators/reader.js";import{writer as x}from"../core/accessorSupport/decorators/writer.js";const v={icon:d,object:h,line:j,path:S,fill:f,extrude:u,text:U,water:_},C=r.ofType({base:O,key:"type",typeMap:v,errorContext:"symbol-layer"});let T=class extends L{constructor(e){super(e),this.styleOrigin=null,this.thumbnail=null,this.type=null;const t=this.__accessor__&&this.__accessor__.metadata&&this.__accessor__.metadata.symbolLayers,o=t?.type,s=o||r;this._set("symbolLayers",new s)}get color(){return null}set color(e){this.constructed&&s.getLogger(this).error("Symbol3D does not support colors on the symbol level. Colors may be set on individual symbol layer materials instead.")}set symbolLayers(e){t(e,this._get("symbolLayers"))}readStyleOrigin(e,r,t){if(e.styleUrl&&e.name){const r=b(e.styleUrl,t);return new D({styleUrl:r,name:e.name})}if(e.styleName&&e.name)return new D({portal:t?.portal||c.getDefault(),styleName:e.styleName,name:e.name});t?.messages&&t.messages.push(new m("symbol3d:incomplete-style-origin","Style origin requires either a 'styleUrl' or 'styleName' and a 'name' property",{context:t,definition:e}))}writeStyleOrigin(e,r,t,o){if(e.styleUrl&&e.name){let t=g(e.styleUrl,o);l(t)&&(t=i(t)),r.styleOrigin={styleUrl:t,name:e.name}}else e.styleName&&e.name&&(e.portal&&o?.portal&&!a(e.portal.restUrl,o.portal.restUrl)?o?.messages&&o.messages.push(new m("symbol:cross-portal","The symbol style origin cannot be persisted because it refers to an item on a different portal than the one being saved to.",{symbol:this})):r.styleOrigin={styleName:e.styleName,name:e.name})}normalizeCtorArgs(e){return e instanceof O||e&&v[e.type]?{symbolLayers:[e]}:Array.isArray(e)?{symbolLayers:e}:e}};e([y({json:{read:!1,write:!1}})],T.prototype,"color",null),e([y({type:C,nonNullable:!0,json:{write:!0}}),n(o)],T.prototype,"symbolLayers",null),e([y({type:D})],T.prototype,"styleOrigin",void 0),e([N("styleOrigin")],T.prototype,"readStyleOrigin",null),e([x("styleOrigin",{"styleOrigin.styleUrl":{type:String},"styleOrigin.styleName":{type:String},"styleOrigin.name":{type:String}})],T.prototype,"writeStyleOrigin",null),e([y({type:w,json:{read:!1}})],T.prototype,"thumbnail",void 0),e([y({type:["point-3d","line-3d","polygon-3d","mesh-3d","label-3d"],readOnly:!0})],T.prototype,"type",void 0),T=e([p("esri.symbols.Symbol3D")],T);export{T as default};
2
+ import{__decorate as e}from"tslib";import r from"../core/Collection.js";import{referenceSetter as t,castForReferenceSetter as o}from"../core/collectionUtils.js";import s from"../core/Logger.js";import{isAbsolute as l,normalize as i,hasSamePortal as a}from"../core/urlUtils.js";import m from"../core/Warning.js";import{property as y,cast as n,subclass as p}from"../core/accessorSupport/decorators.js";import c from"../portal/Portal.js";import{f as b,t as f}from"../chunks/persistableUrlUtils.js";import g from"./ExtrudeSymbol3DLayer.js";import u from"./FillSymbol3DLayer.js";import d from"./IconSymbol3DLayer.js";import j from"./LineSymbol3DLayer.js";import h from"./ObjectSymbol3DLayer.js";import S from"./PathSymbol3DLayer.js";import L from"./Symbol.js";import O from"./Symbol3DLayer.js";import U from"./TextSymbol3DLayer.js";import _ from"./WaterSymbol3DLayer.js";import D from"./support/StyleOrigin.js";import{Thumbnail as w}from"./support/Thumbnail.js";import{reader as N}from"../core/accessorSupport/decorators/reader.js";import{writer as x}from"../core/accessorSupport/decorators/writer.js";const v={icon:d,object:h,line:j,path:S,fill:u,extrude:g,text:U,water:_},C=r.ofType({base:O,key:"type",typeMap:v,errorContext:"symbol-layer"});let T=class extends L{constructor(e){super(e),this.styleOrigin=null,this.thumbnail=null,this.type=null;const t=this.__accessor__&&this.__accessor__.metadata&&this.__accessor__.metadata.symbolLayers,o=t?.type,s=o||r;this._set("symbolLayers",new s)}get color(){return null}set color(e){this.constructed&&s.getLogger(this).error("Symbol3D does not support colors on the symbol level. Colors may be set on individual symbol layer materials instead.")}set symbolLayers(e){t(e,this._get("symbolLayers"))}readStyleOrigin(e,r,t){if(e.styleUrl&&e.name){const r=b(e.styleUrl,t);return new D({styleUrl:r,name:e.name})}if(e.styleName&&e.name)return new D({portal:t?.portal||c.getDefault(),styleName:e.styleName,name:e.name});t?.messages&&t.messages.push(new m("symbol3d:incomplete-style-origin","Style origin requires either a 'styleUrl' or 'styleName' and a 'name' property",{context:t,definition:e}))}writeStyleOrigin(e,r,t,o){if(e.styleUrl&&e.name){let t=f(e.styleUrl,o);l(t)&&(t=i(t)),r.styleOrigin={styleUrl:t,name:e.name}}else e.styleName&&e.name&&(e.portal&&o?.portal&&!a(e.portal.restUrl,o.portal.restUrl)?o?.messages&&o.messages.push(new m("symbol:cross-portal","The symbol style origin cannot be persisted because it refers to an item on a different portal than the one being saved to.",{symbol:this})):r.styleOrigin={styleName:e.styleName,name:e.name})}normalizeCtorArgs(e){return e instanceof O||e&&v[e.type]?{symbolLayers:[e]}:Array.isArray(e)?{symbolLayers:e}:e}};e([y({json:{read:!1,write:!1}})],T.prototype,"color",null),e([y({type:C,nonNullable:!0,json:{write:!0}}),n(o)],T.prototype,"symbolLayers",null),e([y({type:D})],T.prototype,"styleOrigin",void 0),e([N("styleOrigin")],T.prototype,"readStyleOrigin",null),e([x("styleOrigin",{"styleOrigin.styleUrl":{type:String},"styleOrigin.styleName":{type:String},"styleOrigin.name":{type:String}})],T.prototype,"writeStyleOrigin",null),e([y({type:w,json:{read:!1}})],T.prototype,"thumbnail",void 0),e([y({type:["point-3d","line-3d","polygon-3d","mesh-3d","label-3d"],readOnly:!0})],T.prototype,"type",void 0),T=e([p("esri.symbols.Symbol3D")],T);export{T as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{defaultFontFamily as t}from"../../core/fontUtils.js";import has from"../../core/has.js";import{clone as e}from"../../core/lang.js";import r from"../../core/Logger.js";import{deg2rad as s}from"../../core/mathUtils.js";import i from"../../core/ObjectPool.js";import{pt2px as n,px2pt as o}from"../../core/screenUtils.js";import{GeometryCursor as a}from"../../geometry/GeometryCursor.js";import{create as l,fromValues as h,empty as c,expandPointInPlace as m,center as f,width as u,height as d,diagonal as g}from"../../geometry/support/aaBoundingRect.js";import{getBoundsXY as p}from"../../geometry/support/boundsUtils.js";import{polygonCentroid as _}from"../../geometry/support/centroid.js";import{segmentIntersects as y}from"../../geometry/support/intersectsBase.js";import{isExtent as P,isPolygon as S,isPolyline as x,isPoint as w,isMultipoint as M}from"../../geometry/support/jsonTypeUtils.js";import{SimpleEffectCursor as b}from"./CIMEffects.js";import k from"./CIMImageColorSubstitutionHelper.js";import{getEffectOperator as T,getPlacementOperator as C}from"./CIMOperators.js";import{Placement as v}from"./CIMPlacements.js";import{defaultCIMValues as I}from"./defaultCIMValues.js";import{getFirstFrame as R}from"./imageUtils.js";import{rotate as z}from"./mathUtils.js";import{addColorStops as L}from"./rasterizingUtils.js";import U from"./Rect.js";import F from"./TextRasterizer.js";import{isCIMFill as A,getSize as j,getNumericValue as G,getEffectsInflateSize as D,isSVGImage as H,getRelativeGradientSize as E,fromCIMFontDecoration as B,fromCIMFontStyle as X,fromCIMHorizontalAlignment as J,fromCIMVerticalAlignment as N,getFillColor as O,getStrokeColor as q,getStrokeWidth as V,getFontWeight as W,getFontStyle as Y}from"./utils.js";import{destroyHiddenSvg as K,createHiddenSvg as $,createSvgElement as Q}from"../../views/2d/engine/svgUtils.js";import{magicLabelLineHeight as Z,glyphSize as tt,hittestToleranceSmallSymbol as et,hittestSmallSymbolThreshold as rt}from"../../views/2d/engine/webgl/definitions.js";import{shapeGlyphs as st}from"../../views/2d/engine/webgl/mesh/templates/shapingUtils.js";import{roundPtToWholePixel as it,getLineWidth as nt}from"../../views/2d/layers/graphics/graphicsUtils.js";const ot=Math.PI/180,at=.5,lt=()=>r.getLogger("esri.symbols.cim.CIMSymbolDrawHelper");class ht{constructor(t){this._t=t}static createIdentity(){return new ht([1,0,0,0,1,0])}clone(){const t=this._t;return new ht(t.slice())}transform(t){const e=this._t;return[e[0]*t[0]+e[1]*t[1]+e[2],e[3]*t[0]+e[4]*t[1]+e[5]]}static createScale(t,e){return new ht([t,0,0,0,e,0])}scale(t,e){const r=this._t;return r[0]*=t,r[1]*=t,r[2]*=t,r[3]*=e,r[4]*=e,r[5]*=e,this}scaleRatio(){return Math.sqrt(this._t[0]*this._t[0]+this._t[1]*this._t[1])}static createTranslate(t,e){return new ht([0,0,t,0,0,e])}translate(t,e){const r=this._t;return r[2]+=t,r[5]+=e,this}static createRotate(t){const e=Math.cos(t),r=Math.sin(t);return new ht([e,-r,0,r,e,0])}rotate(t){return ht.multiply(this,ht.createRotate(t),this)}angle(){const t=this._t[0],e=this._t[3],r=Math.sqrt(t*t+e*e);return[t/r,e/r]}static multiply(t,e,r){const s=t._t,i=e._t,n=s[0]*i[0]+s[3]*i[1],o=s[1]*i[0]+s[4]*i[1],a=s[2]*i[0]+s[5]*i[1]+i[2],l=s[0]*i[3]+s[3]*i[4],h=s[1]*i[3]+s[4]*i[4],c=s[2]*i[3]+s[5]*i[4]+i[5],m=r._t;return m[0]=n,m[1]=o,m[2]=a,m[3]=l,m[4]=h,m[5]=c,r}invert(){const t=this._t;let e=t[0]*t[4]-t[1]*t[3];if(0===e)return new ht([0,0,0,0,0,0]);e=1/e;const r=(t[1]*t[5]-t[2]*t[4])*e,s=(t[2]*t[3]-t[0]*t[5])*e,i=t[4]*e,n=-t[1]*e,o=-t[3]*e,a=t[0]*e;return new ht([i,n,r,o,a,s])}}class ct{constructor(t,e){this._resourceManager=t,this._transfos=[],this._sizeTransfos=[],this._geomUnitsPerPoint=1,this._placementPool=new i(()=>new v,void 0,void 0,100),this._earlyReturn=!1,this._mapRotation=0,this._transfos.push(e||ht.createIdentity()),this._sizeTransfos.push(e?e.scaleRatio():1)}setTransform(t,e){this._transfos=[t||ht.createIdentity()],this._sizeTransfos=[e||(t?t.scaleRatio():1)]}setGeomUnitsPerPoint(t){this._geomUnitsPerPoint=t}transformPt(t){return this._transfos[this._transfos.length-1].transform(t)}transformSize(t){return t*this._sizeTransfos[this._sizeTransfos.length-1]}reverseTransformPt(t){return this._transfos[this._transfos.length-1].invert().transform(t)}reverseTransformSize(t){return t/this._sizeTransfos[this._sizeTransfos.length-1]}reverseTransformScalar(t){return t/this._transfos[this._transfos.length-1].scaleRatio()}getTransformAngle(){return this._transfos[this._transfos.length-1].angle()}geomUnitsPerPoint(){return this.isEmbedded()?1:this._geomUnitsPerPoint}prevGeomUnitsPerPoint(){return this._transfos.length>2?1:this._geomUnitsPerPoint}isEmbedded(){return this._transfos.length>1}back(){return this._transfos[this._transfos.length-1]}push(t,e){const r=e?t.scaleRatio():1;ht.multiply(t,this.back(),t),this._transfos.push(t),this._sizeTransfos.push(this._sizeTransfos[this._sizeTransfos.length-1]*r)}pop(){this._transfos.splice(-1,1),this._sizeTransfos.splice(-1,1)}drawSymbol(t,e,r){if(t)switch(t.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this.drawMultiLayerSymbol(t,e);break;case"CIMTextSymbol":this.drawTextSymbol(t,e,r)}}drawMultiLayerSymbol(t,e){if(!t||!e)return;const r=t.symbolLayers;if(!r)return;const s=t.effects;if(s&&s.length>0){const t=this.executeEffects(s,e);if(t){let e=t.next();for(;e;)this.drawSymbolLayers(r,e.asJSON()),e=t.next()}}else this.drawSymbolLayers(r,e)}executeEffects(t,e){const r=this.geomUnitsPerPoint(),s=null,i=D(t),n=!1;let o=new b(a.fromJSONCIM(e));for(const a of t){const t=T(a);t&&(o=t.execute(o,a,{geomUnitsPerPoint:r,tileKey:s,maxInflateSize:i,scale:null,spatialReference:e.spatialReference,preventClipping:n}))}return o}drawSymbolLayers(t,e){let r=t.length;for(;r--;){const s=t[r];if(!s||!1===s.enable)continue;const i=s.effects;if(i&&i.length>0){const t=this.executeEffects(i,e);if(t){let e=null;for(;(e=t.next())&&(this.drawSymbolLayer(s,e.asJSON()),!this._earlyReturn););}}else this.drawSymbolLayer(s,e);if(this._earlyReturn)return}}drawSymbolLayer(t,e){switch(t.type){case"CIMSolidFill":this.drawSolidFill(e,t.color,t.path);break;case"CIMHatchFill":this.drawHatchFill(e,t);break;case"CIMPictureFill":this.drawPictureFill(e,t);break;case"CIMGradientFill":this.drawGradientFill(e,t);break;case"CIMSolidStroke":this.drawSolidStroke(e,t.color,t.width,t.capStyle,t.joinStyle,t.miterLimit,t.path);break;case"CIMPictureStroke":this.drawPictureStroke(e,t);break;case"CIMGradientStroke":this.drawGradientStroke(e,t);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":this.drawMarkerLayer(t,e)}}drawHatchFill(t,e){const r=dt(e,t,this.geomUnitsPerPoint());r&&(this.pushClipPath(t),this.drawMultiLayerSymbol(e.lineSymbol,r),this.popClipPath())}drawPictureFill(t,e){}drawGradientFill(t,e){}drawPictureStroke(t,e){}drawGradientStroke(t,e){}drawMarkerLayer(t,e){const r=t.markerPlacement;if(r){const s=C(r);if(s){const i="CIMMarkerPlacementInsidePolygon"===r.type||"CIMMarkerPlacementPolygonCenter"===r.type&&r.clipAtBoundary;i&&this.pushClipPath(e);const n=s.execute(a.fromJSONCIM(e),r,this.geomUnitsPerPoint(),null);if(n){let e=null;for(;(e=n.next())&&(this.drawMarker(t,e),!this._earlyReturn););}i&&this.popClipPath()}}else{const r=this._placementPool.acquire();if(w(e))r.tx=e.x,r.ty=e.y,this.drawMarker(t,r);else if(S(e)){const s=_(e);s&&([r.tx,r.ty]=s,this.drawMarker(t,r))}else if(x(e)){for(const s of e.paths)for(const e of s)if(r.tx=e[0],r.ty=e[1],this.drawMarker(t,r),this._earlyReturn)break}else for(const s of e.points)if(r.tx=s[0],r.ty=s[1],this.drawMarker(t,r),this._earlyReturn)break;this._placementPool.release(r)}}drawMarker(t,e){switch(t.type){case"CIMCharacterMarker":case"CIMPictureMarker":this.drawPictureMarker(t,e);break;case"CIMVectorMarker":this.drawVectorMarker(t,e)}}drawPictureMarker(t,e){if(!t)return;const r=this._resourceManager.getResource(t.url),s=G(t.size,I.CIMPictureMarker.size);if(null==r||s<=0)return;const i=r.width,n=r.height;if(!i||!n)return;const o=i/n,a=G(t.scaleX,1),l=ht.createIdentity(),h=t.anchorPoint;if(h){let e=h.x,r=h.y;"Absolute"!==t.anchorPointUnits&&(e*=s*o*a,r*=s),l.translate(-e,-r)}let c=G(t.rotation);t.rotateClockwise&&(c=-c),this._mapRotation&&(c+=this._mapRotation),c&&l.rotate(c*ot);let m=G(t.offsetX),f=G(t.offsetY);if(m||f){if(this._mapRotation){const t=ot*this._mapRotation,e=Math.cos(t),r=Math.sin(t),s=m*r+f*e;m=m*e-f*r,f=s}l.translate(m,f)}const u=this.geomUnitsPerPoint();1!==u&&l.scale(u,u);const d=e.getAngle();d&&l.rotate(d),l.translate(e.tx,e.ty),this.push(l,!1),this.drawImage(t,s),this.pop()}drawVectorMarker(t,e){if(!t)return;const r=t.markerGraphics;if(!r)return;const s=G(t.size,I.CIMVectorMarker.size),i=t.frame,n=i?i.ymax-i.ymin:0,o=s&&n?s/n:1,a=ht.createIdentity();i&&a.translate(.5*-(i.xmax+i.xmin),.5*-(i.ymax+i.ymin));const l=t.anchorPoint;if(l){let e=l.x,r=l.y;"Absolute"!==t.anchorPointUnits?i&&(e*=i.xmax-i.xmin,r*=i.ymax-i.ymin):(e/=o,r/=o),a.translate(-e,-r)}1!==o&&a.scale(o,o);let h=G(t.rotation);t.rotateClockwise&&(h=-h),this._mapRotation&&(h+=this._mapRotation),h&&a.rotate(h*ot);let c=G(t.offsetX),m=G(t.offsetY);if(c||m){if(this._mapRotation){const t=ot*this._mapRotation,e=Math.cos(t),r=Math.sin(t),s=c*r+m*e;c=c*e-m*r,m=s}a.translate(c,m)}const f=this.geomUnitsPerPoint();1!==f&&a.scale(f,f);const u=e.getAngle();u&&a.rotate(u),a.translate(e.tx,e.ty),this.push(a,t.scaleSymbolsProportionally);for(const d of r){d?.symbol&&d.geometry||lt().error("Invalid marker graphic",d);let t=d.textString;if("number"==typeof t&&(t=t.toString()),this.drawSymbol(d.symbol,d.geometry,t),this._earlyReturn)break}this.pop()}drawTextSymbol(t,e,r){if(!t)return;if(!w(e))return;if(G(t.height,I.CIMTextSymbol.height)<=0)return;const s=ht.createIdentity();let i=G(t.angle);i=-i,i&&s.rotate(i*ot);const n=G(t.offsetX),o=G(t.offsetY);(n||o)&&s.translate(n,o);const a=this.geomUnitsPerPoint();1!==a&&s.scale(a,a),s.translate(e.x,e.y),this.push(s,!1),this.drawText(t,r),this.pop()}}class mt extends ct{constructor(t,e){super(t,e),this.reset()}reset(){this._xmin=this._ymin=1/0,this._xmax=this._ymax=-1/0,this._clipCount=0}envelope(){return new U(this._xmin,this._ymin,this._xmax-this._xmin,this._ymax-this._ymin)}bounds(){return h(this._xmin,this._ymin,this._xmax,this._ymax)}drawSolidFill(t){if(t&&!(this._clipCount>0))if(S(t))this._processPath(t.rings,0);else if(x(t))this._processPath(t.paths,0);else if(P(t)){const e=yt(t);e&&this._processPath(e.rings,0)}else console.error("drawSolidFill Unexpected geometry type!")}drawSolidStroke(t,e,r){if(!t||this._clipCount>0||null==r||r<=0)return;const s=Math.max(.5*this.transformSize(G(r,I.CIMSolidStroke.width)),.5*at);if(S(t))this._processPath(t.rings,s);else if(x(t))this._processPath(t.paths,s);else if(P(t)){const e=yt(t);e&&this._processPath(e.rings,s)}else console.error("drawSolidStroke unexpected geometry type!")}drawMarkerLayer(t,e){S(e)&&t.markerPlacement&&("CIMMarkerPlacementInsidePolygon"===t.markerPlacement.type||"CIMMarkerPlacementPolygonCenter"===t.markerPlacement.type&&t.markerPlacement.clipAtBoundary)?this._processPath(e.rings,0):super.drawMarkerLayer(t,e)}drawHatchFill(t,e){this.drawSolidFill(t)}drawPictureFill(t,e){this.drawSolidFill(t)}drawGradientFill(t,e){this.drawSolidFill(t)}drawPictureStroke(t,e){this.drawSolidStroke(t,null,e.width)}drawGradientStroke(t,e){this.drawSolidStroke(t,null,e.width)}pushClipPath(t){this.drawSolidFill(t),this._clipCount++}popClipPath(){this._clipCount--}drawImage(t,e){const{url:r}=t,s=G(t.scaleX,1);let i=s*e,n=e;const o=this._resourceManager.getResource(r);if(null!=o){const t=o.height/o.width;i=s*(e?t>1?e:e/t:o.width),n=e?t>1?e*t:e:o.height}this._merge(this.transformPt([-i/2,-n/2]),0),this._merge(this.transformPt([-i/2,n/2]),0),this._merge(this.transformPt([i/2,-n/2]),0),this._merge(this.transformPt([i/2,n/2]),0)}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new F);const r=St(t);let[s,i]=this._textRasterizer.computeTextSize(e,r);s=o(s),i=o(i);const n=this.transformSize(1)*this.reverseTransformScalar(1);s*=n,i*=n;const a=t.horizontalAlignment??I.CIMTextSymbol.horizontalalignment,l=t.verticalAlignment??I.CIMTextSymbol.verticalalignment;let h=0;switch(a){case"Left":h=s/2;break;case"Right":h=-s/2}let c=0;switch(l){case"Bottom":c=i/2;break;case"Top":c=-i/2;break;case"Baseline":c=i/6}this._merge(this.transformPt([-s/2+h,-i/2+c]),0),this._merge(this.transformPt([-s/2+h,i/2+c]),0),this._merge(this.transformPt([s/2+h,-i/2+c]),0),this._merge(this.transformPt([s/2+h,i/2+c]),0)}_processPath(t,e){if(t)for(const r of t){const t=r?r.length:0;if(t>1){this._merge(this.transformPt(r[0]),e);for(let s=1;s<t;s++)this._merge(this.transformPt(r[s]),e)}}}_merge(t,e){t[0]-e<this._xmin&&(this._xmin=t[0]-e),t[0]+e>this._xmax&&(this._xmax=t[0]+e),t[1]-e<this._ymin&&(this._ymin=t[1]-e),t[1]+e>this._ymax&&(this._ymax=t[1]+e)}}class ft extends ct{constructor(){super(...arguments),this._hittestType="point",this._searchTarget=[],this._searchDistPoint=0,this._textInfo=null,this._svg=null,this._path=null,this._canvas=null}destroy(){this._svg=K(this._svg),this._path=null,this._canvas=null}hitTest(t,e,r,s,i,a,l,h){this._resetHittest();const c=a*n(1);switch(this.setGeomUnitsPerPoint(c),h){case"point":if(1!==t.length)return lt().error("Unexpected hittest area",t),!1;this._hittestType="point",this._searchDistPoint=l/2/c,this._searchTarget=[[t[0].x,t[0].y]];break;case"rect":if(4!==t.length)return lt().error("Unexpected hittest area",t),!1;this._hittestType="rect",this._searchDistPoint=0,this._searchTarget=t.map(t=>[t.x,t.y])}this._textInfo=s;const m=e&&("CIMPointSymbol"===e.type&&"Map"!==e.angleAlignment||"CIMTextSymbol"===e.type);if(this._mapRotation=m?i:0,!has("esri-mobile")){const t=o(et*window.devicePixelRatio),r=o(rt);!(("CIMLineSymbol"===e?.type||"CIMPolygonSymbol"===e?.type)&&e.symbolLayers?.some(A))&&"CIMMeshSymbol"!==e?.type&&(j(e)??0)<r&&(this._searchDistPoint=t)}return this._earlyReturn=!1,this.drawSymbol(e,r),this._earlyReturn}executeEffects(t,e){return"CIMGeometricEffectDashes"===t.at(-1)?.type&&(t=t.slice(0,-1)),super.executeEffects(t,e)}drawSolidFill(t,e,r){null!=r?this._hittestSvgPath(t,r,!0):this._hitTestFill(t)}drawHatchFill(t,e){this._hitTestFill(t)}drawPictureFill(t,e){this._hitTestFill(t)}drawGradientFill(t,e){this._hitTestFill(t)}drawSolidStroke(t,e,r,s,i,n,o){null!=o?this._hittestSvgPath(t,o,!1,r):this._hitTestStroke(t,r)}drawPictureStroke(t,e){this._hitTestStroke(t,e.width)}drawGradientStroke(t,e){this._hitTestStroke(t,e.width)}drawMarkerLayer(t,e){t.markerPlacement&&("CIMMarkerPlacementInsidePolygon"===t.markerPlacement.type||"CIMMarkerPlacementPolygonCenter"===t.markerPlacement.type&&t.markerPlacement.clipAtBoundary)?this._hitTestFill(e):super.drawMarkerLayer(t,e)}pushClipPath(t){}popClipPath(){}drawImage(t,e){const{url:r}=t,s=G(t.scaleX,1),i=this._resourceManager.getResource(r);if(null==i||0===i.height||0===e)return;const n=e*this.geomUnitsPerPoint(),o=n*s*(i.width/i.height);if("point"===this._hittestType){const t=this.reverseTransformPt(this._searchTarget[0]),e=this._searchDistPoint;Math.abs(t[0])<o/2+e&&Math.abs(t[1])<n/2+e&&(this._earlyReturn=!0)}else{const t=o/2,e=n/2,r=[[-t,e],[t,e],[t,-e],[-t,-e],[-t,e]];bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,[r])&&(this._earlyReturn=!0)}}drawText(t,e){const r=this._textInfo;if(!r)return;const s=r.get(t);if(!s)return;if(!s.glyphMosaicItems.glyphs.length)return;const i=it(G(t.height,I.CIMTextSymbol.height)),{lineGapType:n,lineGap:o}=t,a=n?Pt(n,G(o),i):0,l=t.horizontalAlignment??I.CIMTextSymbol.horizontalalignment,h=t.verticalAlignment??I.CIMTextSymbol.verticalalignment,c="CIMBackgroundCallout"===t.callout?.type,m=st(s.glyphMosaicItems,{scale:i/tt,angle:0,xOffset:0,yOffset:0,horizontalAlignment:l,verticalAlignment:h,maxLineWidth:nt(t.lineWidth),lineHeight:Z*Math.max(.25,Math.min(a||1,4)),decoration:t.font.decoration||"none",useCIMAngleBehavior:!0,hasBackground:c});if("point"===this._hittestType){const t=this.reverseTransformPt(this._searchTarget[0]),e=t[0],r=t[1];for(const s of m.glyphs){const[t,i]=s.offsets.topLeft,[n,o]=s.offsets.bottomRight;if(e>t&&e<n&&r>-o&&r<-i){this._earlyReturn=!0;break}}}else for(const f of m.glyphs){const[t,e]=f.offsets.topLeft,[r,s]=f.offsets.bottomRight,i=[[t,-e],[r,-e],[r,-s],[t,-s],[t,-e]];if(bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,[i])){this._earlyReturn=!0;break}}}_hitTestFill(t){let e=null;if(P(t)){const r=t;e=[[[r.xmin,r.ymin],[r.xmin,r.ymax],[r.xmax,r.ymax],[r.xmax,r.ymin],[r.xmin,r.ymin]]]}else if(S(t))e=t.rings;else{if(!x(t))return;e=t.paths}if("point"===this._hittestType){const t=this.reverseTransformPt(this._searchTarget[0]);if(gt(t,e)&&(this._earlyReturn=!0),!this._earlyReturn){pt(t,e,this.reverseTransformScalar(this._searchDistPoint)*this.prevGeomUnitsPerPoint())&&(this._earlyReturn=!0)}}else{bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,e)&&(this._earlyReturn=!0)}}_getSvgPath(){return null!=this._svg&&null!=this._path||(this._svg??=$(),this._path??=Q("path"),this._svg.appendChild(this._path)),this._path}_getCanvasContext(t,e){return this._canvas??=document.createElement("canvas"),this._canvas.width=t,this._canvas.height=e,this._canvas.getContext("2d",{willReadFrequently:!0})}_hittestSvgPath(t,e,r,s=0){const i=l();p(i,t);const n={x:i[0],y:i[1],width:i[2]-i[0],height:i[3]-i[1]},o=this._getSvgPath();o.setAttribute("d",e);const a=o.getBBox();if("point"===this._hittestType){const t=this.reverseTransformScalar(this._searchDistPoint)*this.prevGeomUnitsPerPoint(),i=this.reverseTransformPt(this._searchTarget[0]);let o=Math.max(a.width/n.width,a.height/n.height),l=1;const h=2*t*o;h<1&&(l=2/h,o*=l,a.x*=l,a.y*=l,a.width*=l,a.height*=l);const c=1+s*o/2,m=this._getCanvasContext(a.width+2*c,a.height+2*c);m.setTransform(l,0,0,l,-a.x+c,-a.y+c);const f=new Path2D(e);r?m.fill(f):(m.lineWidth=s*(o/l),m.stroke(f));const u=(n.width*o-a.width)/2,d=(n.height*o-a.height)/2,g=Math.floor((i[0]-n.x-t)*o-u+c),p=Math.floor((n.height-(i[1]-n.y)-t)*o+d+c),_=Math.ceil(2*t*o),y=Math.ceil(2*t*o),P=m.getImageData(g,p,_,y).data;for(let e=3;e<P.length;e+=4)if(P[e]>127.5)return void(this._earlyReturn=!0)}else{const t=[[n.x,n.y],[n.x,n.y+n.height],[n.x+n.width,n.y+n.height],[n.x+n.width,n.y],[n.x,n.y]];if(bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,[t]))return void(this._earlyReturn=!0)}}_hitTestStroke(t,e){let r=null;if(P(t)){const e=t;r=[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]}else if(S(t))r=t.rings;else{if(!x(t))return;r=t.paths}if("point"===this._hittestType){pt(this.reverseTransformPt(this._searchTarget[0]),r,G(e,I.CIMSolidStroke.width)*this.geomUnitsPerPoint()/2+this.reverseTransformScalar(this._searchDistPoint)*this.prevGeomUnitsPerPoint())&&(this._earlyReturn=!0)}else{bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,r)&&(this._earlyReturn=!0)}}_resetHittest(){this.setTransform(),this._hittestType="point",this._searchTarget=[],this._searchDistPoint=0,this._textInfo=null}}class ut extends ct{constructor(t,e,r,s){super(e,r),this._applyAdditionalRenderProps=s,this._colorSubstitutionHelper=new k,this._ctx=t}drawSolidFill(t,e){if(!t)return;if(S(t))this._buildPath(t.rings,!0);else if(x(t))this._buildPath(t.paths,!0);else if(P(t))this._buildPath(yt(t).rings,!0);else{if(!M(t))return;console.log("CanvasDrawHelper.drawSolidFill - No implementation!")}const r=this._ctx;r.fillStyle="string"==typeof e?e:"rgba("+Math.round(e[0])+","+Math.round(e[1])+","+Math.round(e[2])+","+(e[3]??255)/255+")",r.fill("evenodd")}drawSolidStroke(t,e,r,s,i,n){if(!t||!e||0===r)return;if(S(t))this._buildPath(t.rings,!0);else if(x(t))this._buildPath(t.paths,!1);else{if(!P(t))return void console.log("CanvasDrawHelper.drawSolidStroke isn't implemented!");this._buildPath(yt(t).rings,!0)}const o=this._ctx;o.strokeStyle="string"==typeof e?e:"rgba("+Math.round(e[0])+","+Math.round(e[1])+","+Math.round(e[2])+","+(e[3]??255)/255+")",o.lineWidth=Math.max(this.transformSize(r),at),this._setCapStyle(s),this._setJoinStyle(i),o.miterLimit=n,o.stroke()}pushClipPath(t){if(this._ctx.save(),S(t))this._buildPath(t.rings,!0);else if(x(t))this._buildPath(t.paths,!0);else{if(!P(t))return;this._buildPath(yt(t).rings,!0)}this._ctx.clip("evenodd")}popClipPath(){this._ctx.restore()}drawImage(t,e){const{colorSubstitutions:r,url:s,tintColor:i}=t,n=G(t.scaleX,1),o=this._resourceManager.getResource(s);if(null==o)return;let a=e*(o.width/o.height),l=e;e||(a=o.width,l=o.height);const h=H(s)||"src"in o&&H(o.src);let c="getFrame"in o?R(o):o;r&&(c=this._colorSubstitutionHelper.applyColorSubstitution(c,r)),this._applyAdditionalRenderProps&&!h&&i&&(c=this._colorSubstitutionHelper.tintImageData(c,i));const m=this.transformPt([0,0]),[f,u]=this.getTransformAngle(),d=this.transformSize(1),g=this._ctx;g.save(),g.setTransform({m11:n*d*f,m12:n*d*u,m21:-d*u,m22:d*f,m41:m[0],m42:m[1]}),g.drawImage(c,-a/2,-l/2,a,l),g.restore()}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new F);const r=St(t,this.transformSize(o(1))),s=this._textRasterizer.rasterizeText(e,r);if(!s)return;const{size:i,anchorX:n,anchorY:a,canvas:l}=s,h=i[0]*(n+.5),c=i[1]*(a-.5),m=this._ctx,f=this.transformPt([0,0]),[u,d]=this.getTransformAngle(),g=1;m.save(),m.setTransform({m11:g*u,m12:g*d,m21:-g*d,m22:g*u,m41:f[0]-g*h,m42:f[1]+g*c}),m.drawImage(l,0,0),m.restore()}drawPictureFill(t,e){if(!t)return;let{colorSubstitutions:r,height:s,offsetX:i,offsetY:n,rotation:o,scaleX:a,tintColor:l,url:h}=e;const c=this._resourceManager.getResource(h);if(null==c)return;if(S(t))this._buildPath(t.rings,!0);else if(x(t))this._buildPath(t.paths,!0);else if(P(t))this._buildPath(yt(t).rings,!0);else{if(!M(t))return;console.log("CanvasDrawHelper.drawPictureFill - No implementation!")}const m=this._ctx,f=H(h)||"src"in c&&H(c.src);let u,d="getFrame"in c?R(c):c;if(r&&(d=this._colorSubstitutionHelper.applyColorSubstitution(d,r)),this._applyAdditionalRenderProps){f||l&&(d=this._colorSubstitutionHelper.tintImageData(d,l)),u=m.createPattern(d,"repeat");const t=this.transformSize(1);o||(o=0),i?i*=t:i=0,n?n*=t:n=0,s&&(s*=t);const e=s?s/c.height:1,r=a&&s?a*s/c.width:1;if(0!==o||1!==e||1!==r||0!==i||0!==n){const t=new DOMMatrix;t.rotateSelf(0,0,-o).translateSelf(i,n).scaleSelf(r,e,1),u.setTransform(t)}}else u=m.createPattern(d,"repeat");m.save(),m.fillStyle=u,m.fill("evenodd"),m.restore()}drawPictureStroke(t,r){if(!t)return;let{colorSubstitutions:s,capStyle:i,joinStyle:o,miterLimit:a,tintColor:l,url:h,width:c}=r;const m=this._resourceManager.getResource(h);if(null==m)return;let f;if(S(t))f=t.rings;else if(x(t))f=t.paths;else{if(!P(t))return M(t)?void console.log("CanvasDrawHelper.drawPictureStroke - No implementation!"):void 0;f=yt(t).rings}c||(c=m.width);const u=H(h)||"src"in m&&H(m.src);let d="getFrame"in m?R(m):m;s&&(d=this._colorSubstitutionHelper.applyColorSubstitution(d,s)),this._applyAdditionalRenderProps&&(u||l&&(d=this._colorSubstitutionHelper.tintImageData(d,l)));const g=Math.max(this.transformSize(n(c)),.5),p=g/d.width,_=this._ctx,y=_.createPattern(d,"repeat-y");let w,b;_.save(),this._setCapStyle(i),this._setJoinStyle(o),void 0!==a&&(_.miterLimit=a),_.lineWidth=g;for(let n of f)if(n=e(n),wt(n),n&&!(n.length<=1)){w=this.transformPt(n[0]);for(let t=1;t<n.length;t++){b=this.transformPt(n[t]);const e=_t(w,b),r=new DOMMatrix;r.translateSelf(0,w[1]-g/2).scaleSelf(p,p,1).rotateSelf(0,0,90-e),y.setTransform(r),_.strokeStyle=y,_.beginPath(),_.moveTo(w[0],w[1]),_.lineTo(b[0],b[1]),_.stroke(),w=b}}_.restore()}drawGradientFill(t,e){if(!t)return;let r;if(S(t))r=t.rings;else if(x(t))r=t.paths;else{if(!P(t))return void lt().error("Unable to draw gradient fill");r=yt(t).rings}this._buildPath(r,!0);const{angle:i,gradientMethod:o,gradientSize:a,gradientSizeUnits:l}=e,h=I.CIMGradientFill,p=e.gradientType??h.gradientType,_=-s(i??0),y=c();for(const s of r){const t=s?s.length:0;if(t>1)for(let e=0;e<t;e++){let t=this.transformPt(s[e]);"Linear"!==o&&"Rectangular"!==o||(t=z(t,-_)),m(y,t)}}const[w,M,b,k]=y,T=this._ctx;switch(T.save(),o){case"Buffered":lt().error(`Gradient method "${o}" currently unsupported.`);break;case"Linear":{const t=(M+k)/2,r="Absolute"===l?this.transformSize(n(a)):E(a,h.gradientSize)*(b-w),[s,i]="Discrete"===p?[b,b-r]:[w+r,w],o=z([s,t],_),c=z([i,t],_),m=T.createLinearGradient(o[0],o[1],c[0],c[1]);L(m,e),T.fillStyle=m,T.fill("evenodd");break}case"Circular":{const t=f(y),r=g(y)/2,s="Absolute"===l?this.transformSize(n(a)):E(a,h.gradientSize)*r,[i,o]="Discrete"===p?[r,r-s]:[s,0],c=T.createRadialGradient(t[0],t[1],i,t[0],t[1],o);L(c,e),T.fillStyle=c,T.fill("evenodd");break}case"Rectangular":{const r=f(y),s=r[0],i=r[1],o=z(r,_),c=(r,s,i,n,a,l,h,c)=>{T.save(),this.pushClipPath(t);const m=z([a,l],_),f=z([h,c],_);T.beginPath(),T.moveTo(o[0],o[1]),T.lineTo(m[0],m[1]),T.lineTo(f[0],f[1]),T.lineTo(o[0],o[1]),T.clip();const u=z([r,s],_),d=z([i,n],_),g=T.createLinearGradient(u[0],u[1],d[0],d[1]);L(g,e),T.fillStyle=g,T.fill("evenodd"),T.restore()};let m="Absolute"===l?this.transformSize(n(a)):E(a,h.gradientSize)*(u(y)/2),[g,P]="Discrete"===p?[b,b-m]:[s+m,s];c(g,i,P,i,b,M,b,k),[g,P]="Discrete"===p?[w,w+m]:[s-m,s],c(g,i,P,i,w,k,w,M),m="Absolute"===l?this.transformSize(n(a)):E(a,h.gradientSize)*(d(y)/2);let[S,x]="Discrete"===p?[k,k-m]:[i+m,i];c(s,S,s,x,b,k,w,k),[S,x]="Discrete"===p?[M,M+m]:[i-m,i],c(s,S,s,x,w,M,b,M);break}}T.restore()}drawGradientStroke(t,r){const{capStyle:s,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,joinStyle:l,miterLimit:h,width:c}=r;if(!t||0===c)return;let m;if(S(t))m=t.rings;else if(x(t))m=t.paths;else{if(!P(t))return void lt().error("Unable to draw gradient stroke");m=yt(t).rings}const f=r.gradientType??I.CIMGradientStroke.gradientType,u=Math.max(this.transformSize(n(c)),.5),d=this._ctx;let g,p;d.save(),this._setCapStyle(s),this._setJoinStyle(l),void 0!==h&&(d.miterLimit=h),d.lineWidth=u;for(let _ of m){if(_=e(_),wt(_),!_||_.length<=1)continue;let t=0;g=this.transformPt(_[0]);for(let e=1;e<_.length;e++){p=this.transformPt(_[e]);const r=p[0]-g[0],s=p[1]-g[1];t+=Math.sqrt(r*r+s*s),g=p}const s="Absolute"===a?this.transformSize(n(o)):E(o,I.CIMGradientStroke.gradientSize)*("AcrossLine"===i?u:t);let l=0;g=this.transformPt(_[0]);for(let e=1;e<_.length;e++){p=this.transformPt(_[e]);const n=p[0]-g[0],o=p[1]-g[1],a=Math.sqrt(n*n+o*o);let h,c,m,y;switch(i){case"AcrossLine":{const[t,e]=z([n/a,o/a],-Math.PI/2),r=u/2,i="Discrete"===f?r:s-r;h=(g[0]+p[0])/2+t*i,c=(g[1]+p[1])/2+e*i,m=h-t*s,y=c-e*s;break}case"AlongLine":{const e=n/a,r=o/a;"Discrete"===f?(h=g[0]-e*l,c=g[1]-r*l,m=h+e*s,y=c+r*s):(m=g[0]+e*(t-l),y=g[1]+r*(t-l),h=m-e*s,c=y-r*s);break}default:return lt().error("Unrecognized gradient method:",i),void d.restore()}const P=d.createLinearGradient(h,c,m,y);L(P,r),d.strokeStyle=P,d.beginPath(),d.moveTo(g[0],g[1]),d.lineTo(p[0],p[1]),d.stroke(),l+=a,g=p}}d.restore()}_buildPath(t,e){const r=this._ctx;if(r.beginPath(),t)for(const s of t){const t=s?s.length:0;if(t>1){let i=this.transformPt(s[0]);r.moveTo(i[0],i[1]);for(let e=1;e<t;e++)i=this.transformPt(s[e]),r.lineTo(i[0],i[1]);e&&r.closePath()}}}_setCapStyle(t){switch(t){case"Butt":this._ctx.lineCap="butt";break;case"Round":this._ctx.lineCap="round";break;case"Square":this._ctx.lineCap="square"}}_setJoinStyle(t){switch(t){case"Bevel":this._ctx.lineJoin="bevel";break;case"Round":this._ctx.lineJoin="round";break;case"Miter":this._ctx.lineJoin="miter"}}}function dt(t,e,r){let s=G(t.separation,I.CIMHatchFill.separation)*r,i=G(t.rotation);if(0===s)return null;s<0&&(s=-s);let n=0;const o=.5*s;for(;n>o;)n-=s;for(;n<-o;)n+=s;const a=l();p(a,e),a[0]-=o,a[1]-=o,a[2]+=o,a[3]+=o;const h=[[a[0],a[1]],[a[0],a[3]],[a[2],a[3]],[a[2],a[1]]];for(;i>180;)i-=180;for(;i<0;)i+=180;const c=Math.cos(i*ot),m=Math.sin(i*ot),f=-s*m,u=s*c;let d,g,_,y;n=G(t.offsetX)*r*m-G(t.offsetY)*r*c,d=_=Number.MAX_VALUE,g=y=-Number.MAX_VALUE;for(const l of h){const t=l[0],e=l[1],r=c*t+m*e,s=-m*t+c*e;d=Math.min(d,r),_=Math.min(_,s),g=Math.max(g,r),y=Math.max(y,s)}_=Math.floor(_/s)*s;let P=c*d-m*_-f*n/s,S=m*d+c*_-u*n/s,x=c*g-m*_-f*n/s,w=m*g+c*_-u*n/s;const M=1+Math.round((y-_)/s),b=[];for(let l=0;l<M;l++)P+=f,S+=u,x+=f,w+=u,b.push([[P,S],[x,w]]);return{paths:b}}function gt(t,e){let r=0;for(const s of e){const e=s.length;for(let i=1;i<e;i++){const e=s[i-1],n=s[i];if(e[1]>t[1]==n[1]>t[1])continue;(n[0]-e[0])*(t[1]-e[1])-(n[1]-e[1])*(t[0]-e[0])>0?r++:r--}}return 0!==r}function pt(t,e,r){for(const s of e){const e=s.length;for(let i=1;i<e;i++){const e=s[i-1],n=s[i];let o=(n[0]-e[0])*(n[0]-e[0])+(n[1]-e[1])*(n[1]-e[1]);if(0===o)continue;o=Math.sqrt(o);const a=((n[0]-e[0])*(t[1]-e[1])-(n[1]-e[1])*(t[0]-e[0]))/o;if(Math.abs(a)<r){const s=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/o;if(s>-r&&s<o+r)return!0}}}return!1}function _t(t,e){const r=e[0]-t[0],s=e[1]-t[1];return 180/Math.PI*Math.atan2(s,r)}const yt=t=>t?{spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]}:null,Pt=(t,e,r)=>{switch(t){case"ExtraLeading":return 1+e/r;case"Multiple":return e;case"Exact":return e/r}};function St(e,r=1){const s=B(e),i=X(e.fontStyleName),n=e.fontFamilyName??t,{weight:o,style:a}=i,l=r*(e.height||5),h=J(e.horizontalAlignment),c=N(e.verticalAlignment),m=O(e),f=O(e.haloSymbol),u=null!=f?r*(e.haloSize??0):0,d=q(e.symbol),g=r*(V(e.symbol)||0),p="CIMBackgroundCallout"===e.callout?.type?e.callout.backgroundSymbol:null,_=O(p),y=V(p),P=q(p);return{color:m,size:l,horizontalAlignment:h,verticalAlignment:c,font:{family:n,style:Y(a),weight:W(o),decoration:s},outline:{size:g||0,color:d},halo:{size:u||0,color:f,style:a},backgroundColor:_,borderLine:null!=y&&null!=P?{size:y,color:P}:null,pixelRatio:1,premultiplyColors:!0}}const xt=1e-4;function wt(t){let e,r,s,i,n,o=t[0],a=1;for(;a<t.length;)e=t[a][0]-o[0],r=t[a][1]-o[1],i=0!==e?r/e:Math.PI/2,void 0!==s&&Math.abs(i-s)<=xt?(t.splice(a-1,1),o=n):(n=o,o=t[a],a++),s=i}function Mt(t){const e=1e-6,r=t[0],s=t[t.length-1];return Math.abs(r[0]-s[0])<=e&&Math.abs(r[1]-s[1])<=e}function bt(t,e){t.length>1&&!Mt(t)&&(t=[...t,t[0]]);for(let r=0;r<e.length;r++){const s=e[r],i=s.length;for(const e of s)if(gt(e,[t]))return!0;if(Mt(s))for(const r of t)if(gt(r,e))return!0;for(let e=1;e<i;e++){const r=s[e-1],i=s[e];for(let e=0;e<t.length;e++){const s=t[e],n=t[(e+1)%t.length];if(y(r,i,s,n))return!0}}}return!1}export{ct as CIMSymbolDrawHelper,ut as CanvasDrawHelper,mt as EnvDrawHelper,ft as HittestDrawHelper,ht as Transformation,ot as cDegToRad,Pt as lineGapType2LineHeight};
2
+ import{defaultFontFamily as t}from"../../core/fontUtils.js";import has from"../../core/has.js";import{clone as e}from"../../core/lang.js";import r from"../../core/Logger.js";import{deg2rad as s}from"../../core/mathUtils.js";import i from"../../core/ObjectPool.js";import{px2pt as n,pt2px as o}from"../../core/screenUtils.js";import{GeometryCursor as a}from"../../geometry/GeometryCursor.js";import{fromValues as l,empty as h,expandPointInPlace as c,center as m,width as f,height as u,diagonal as d,create as g}from"../../geometry/support/aaBoundingRect.js";import{getBoundsXY as p}from"../../geometry/support/boundsUtils.js";import{polygonCentroid as _}from"../../geometry/support/centroid.js";import{segmentIntersects as y}from"../../geometry/support/intersectsBase.js";import{isPolygon as P,isPolyline as S,isExtent as x,isMultipoint as w,isPoint as M}from"../../geometry/support/jsonTypeUtils.js";import{SimpleEffectCursor as b}from"./CIMEffects.js";import k from"./CIMImageColorSubstitutionHelper.js";import{getEffectOperator as T,getPlacementOperator as C}from"./CIMOperators.js";import{Placement as v}from"./CIMPlacements.js";import{defaultCIMValues as I}from"./defaultCIMValues.js";import{getFirstFrame as R}from"./imageUtils.js";import{rotate as z}from"./mathUtils.js";import{addColorStops as L}from"./rasterizingUtils.js";import U from"./Rect.js";import F from"./TextRasterizer.js";import{getNumericValue as A,isSVGImage as j,getRelativeGradientSize as G,getEffectsInflateSize as D,fromCIMFontDecoration as H,fromCIMFontStyle as E,fromCIMHorizontalAlignment as B,fromCIMVerticalAlignment as X,getFillColor as J,getStrokeColor as N,getStrokeWidth as O,getFontWeight as q,getFontStyle as V,isCIMFill as W,getSize as Y}from"./utils.js";import{destroyHiddenSvg as K,createHiddenSvg as $,createSvgElement as Q}from"../../views/2d/engine/svgUtils.js";import{magicLabelLineHeight as Z,glyphSize as tt,hittestToleranceSmallSymbol as et,hittestSmallSymbolThreshold as rt}from"../../views/2d/engine/webgl/definitions.js";import{shapeGlyphs as st}from"../../views/2d/engine/webgl/mesh/templates/shapingUtils.js";import{roundPtToWholePixel as it,getLineWidth as nt}from"../../views/2d/layers/graphics/graphicsUtils.js";const ot=Math.PI/180,at=.5,lt=()=>r.getLogger("esri.symbols.cim.CIMSymbolDrawHelper");class ht{constructor(t){this._t=t}static createIdentity(){return new ht([1,0,0,0,1,0])}clone(){const t=this._t;return new ht(t.slice())}transform(t){const e=this._t;return[e[0]*t[0]+e[1]*t[1]+e[2],e[3]*t[0]+e[4]*t[1]+e[5]]}static createScale(t,e){return new ht([t,0,0,0,e,0])}scale(t,e){const r=this._t;return r[0]*=t,r[1]*=t,r[2]*=t,r[3]*=e,r[4]*=e,r[5]*=e,this}scaleRatio(){return Math.sqrt(this._t[0]*this._t[0]+this._t[1]*this._t[1])}static createTranslate(t,e){return new ht([0,0,t,0,0,e])}translate(t,e){const r=this._t;return r[2]+=t,r[5]+=e,this}static createRotate(t){const e=Math.cos(t),r=Math.sin(t);return new ht([e,-r,0,r,e,0])}rotate(t){return ht.multiply(this,ht.createRotate(t),this)}angle(){const t=this._t[0],e=this._t[3],r=Math.sqrt(t*t+e*e);return[t/r,e/r]}static multiply(t,e,r){const s=t._t,i=e._t,n=s[0]*i[0]+s[3]*i[1],o=s[1]*i[0]+s[4]*i[1],a=s[2]*i[0]+s[5]*i[1]+i[2],l=s[0]*i[3]+s[3]*i[4],h=s[1]*i[3]+s[4]*i[4],c=s[2]*i[3]+s[5]*i[4]+i[5],m=r._t;return m[0]=n,m[1]=o,m[2]=a,m[3]=l,m[4]=h,m[5]=c,r}invert(){const t=this._t;let e=t[0]*t[4]-t[1]*t[3];if(0===e)return new ht([0,0,0,0,0,0]);e=1/e;const r=(t[1]*t[5]-t[2]*t[4])*e,s=(t[2]*t[3]-t[0]*t[5])*e,i=t[4]*e,n=-t[1]*e,o=-t[3]*e,a=t[0]*e;return new ht([i,n,r,o,a,s])}}class ct{constructor(t,e){this._resourceManager=t,this._transfos=[],this._sizeTransfos=[],this._geomUnitsPerPoint=1,this._placementPool=new i(()=>new v,void 0,void 0,100),this._earlyReturn=!1,this._mapRotation=0,this._transfos.push(e||ht.createIdentity()),this._sizeTransfos.push(e?e.scaleRatio():1)}setTransform(t,e){this._transfos=[t||ht.createIdentity()],this._sizeTransfos=[e||(t?t.scaleRatio():1)]}setGeomUnitsPerPoint(t){this._geomUnitsPerPoint=t}transformPt(t){return this._transfos[this._transfos.length-1].transform(t)}transformSize(t){return t*this._sizeTransfos[this._sizeTransfos.length-1]}reverseTransformPt(t){return this._transfos[this._transfos.length-1].invert().transform(t)}reverseTransformSize(t){return t/this._sizeTransfos[this._sizeTransfos.length-1]}reverseTransformScalar(t){return t/this._transfos[this._transfos.length-1].scaleRatio()}getTransformAngle(){return this._transfos[this._transfos.length-1].angle()}geomUnitsPerPoint(){return this.isEmbedded()?1:this._geomUnitsPerPoint}prevGeomUnitsPerPoint(){return this._transfos.length>2?1:this._geomUnitsPerPoint}isEmbedded(){return this._transfos.length>1}back(){return this._transfos[this._transfos.length-1]}push(t,e){const r=e?t.scaleRatio():1;ht.multiply(t,this.back(),t),this._transfos.push(t),this._sizeTransfos.push(this._sizeTransfos[this._sizeTransfos.length-1]*r)}pop(){this._transfos.splice(-1,1),this._sizeTransfos.splice(-1,1)}drawSymbol(t,e,r){if(t)switch(t.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this.drawMultiLayerSymbol(t,e);break;case"CIMTextSymbol":this.drawTextSymbol(t,e,r)}}drawMultiLayerSymbol(t,e){if(!t||!e)return;const r=t.symbolLayers;if(!r)return;const s=t.effects;if(s&&s.length>0){const t=this.executeEffects(s,e);if(t){let e=t.next();for(;e;)this.drawSymbolLayers(r,e.asJSON()),e=t.next()}}else this.drawSymbolLayers(r,e)}executeEffects(t,e){const r=this.geomUnitsPerPoint(),s=null,i=D(t),n=!1;let o=new b(a.fromJSONCIM(e));for(const a of t){const t=T(a);t&&(o=t.execute(o,a,{geomUnitsPerPoint:r,tileKey:s,maxInflateSize:i,scale:null,spatialReference:e.spatialReference,preventClipping:n}))}return o}drawSymbolLayers(t,e){let r=t.length;for(;r--;){const s=t[r];if(!s||!1===s.enable)continue;const i=s.effects;if(i&&i.length>0){const t=this.executeEffects(i,e);if(t){let e=null;for(;(e=t.next())&&(this.drawSymbolLayer(s,e.asJSON()),!this._earlyReturn););}}else this.drawSymbolLayer(s,e);if(this._earlyReturn)return}}drawSymbolLayer(t,e){switch(t.type){case"CIMSolidFill":this.drawSolidFill(e,t.color,t.path);break;case"CIMHatchFill":this.drawHatchFill(e,t);break;case"CIMPictureFill":this.drawPictureFill(e,t);break;case"CIMGradientFill":this.drawGradientFill(e,t);break;case"CIMSolidStroke":this.drawSolidStroke(e,t.color,t.width,t.capStyle,t.joinStyle,t.miterLimit,t.path);break;case"CIMPictureStroke":this.drawPictureStroke(e,t);break;case"CIMGradientStroke":this.drawGradientStroke(e,t);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":this.drawMarkerLayer(t,e)}}drawHatchFill(t,e){const r=dt(e,t,this.geomUnitsPerPoint());r&&(this.pushClipPath(t),this.drawMultiLayerSymbol(e.lineSymbol,r),this.popClipPath())}drawPictureFill(t,e){}drawGradientFill(t,e){}drawPictureStroke(t,e){}drawGradientStroke(t,e){}drawMarkerLayer(t,e){const r=t.markerPlacement;if(r){const s=C(r);if(s){const i="CIMMarkerPlacementInsidePolygon"===r.type||"CIMMarkerPlacementPolygonCenter"===r.type&&r.clipAtBoundary;i&&this.pushClipPath(e);const n=s.execute(a.fromJSONCIM(e),r,this.geomUnitsPerPoint(),null);if(n){let e=null;for(;(e=n.next())&&(this.drawMarker(t,e),!this._earlyReturn););}i&&this.popClipPath()}}else{const r=this._placementPool.acquire();if(M(e))r.tx=e.x,r.ty=e.y,this.drawMarker(t,r);else if(P(e)){const s=_(e);s&&([r.tx,r.ty]=s,this.drawMarker(t,r))}else if(S(e)){for(const s of e.paths)for(const e of s)if(r.tx=e[0],r.ty=e[1],this.drawMarker(t,r),this._earlyReturn)break}else for(const s of e.points)if(r.tx=s[0],r.ty=s[1],this.drawMarker(t,r),this._earlyReturn)break;this._placementPool.release(r)}}drawMarker(t,e){switch(t.type){case"CIMCharacterMarker":case"CIMPictureMarker":this.drawPictureMarker(t,e);break;case"CIMVectorMarker":this.drawVectorMarker(t,e)}}drawPictureMarker(t,e){if(!t)return;const r=this._resourceManager.getResource(t.url),s=A(t.size,I.CIMPictureMarker.size);if(null==r||s<=0)return;const i=r.width,n=r.height;if(!i||!n)return;const o=i/n,a=A(t.scaleX,1),l=ht.createIdentity(),h=t.anchorPoint;if(h){let e=h.x,r=h.y;"Absolute"!==t.anchorPointUnits&&(e*=s*o*a,r*=s),l.translate(-e,-r)}let c=A(t.rotation);t.rotateClockwise&&(c=-c),this._mapRotation&&(c+=this._mapRotation),c&&l.rotate(c*ot);let m=A(t.offsetX),f=A(t.offsetY);if(m||f){if(this._mapRotation){const t=ot*this._mapRotation,e=Math.cos(t),r=Math.sin(t),s=m*r+f*e;m=m*e-f*r,f=s}l.translate(m,f)}const u=this.geomUnitsPerPoint();1!==u&&l.scale(u,u);const d=e.getAngle();d&&l.rotate(d),l.translate(e.tx,e.ty),this.push(l,!1),this.drawImage(t,s),this.pop()}drawVectorMarker(t,e){if(!t)return;const r=t.markerGraphics;if(!r)return;const s=A(t.size,I.CIMVectorMarker.size),i=t.frame,n=i?i.ymax-i.ymin:0,o=s&&n?s/n:1,a=ht.createIdentity();i&&a.translate(.5*-(i.xmax+i.xmin),.5*-(i.ymax+i.ymin));const l=t.anchorPoint;if(l){let e=l.x,r=l.y;"Absolute"!==t.anchorPointUnits?i&&(e*=i.xmax-i.xmin,r*=i.ymax-i.ymin):(e/=o,r/=o),a.translate(-e,-r)}1!==o&&a.scale(o,o);let h=A(t.rotation);t.rotateClockwise&&(h=-h),this._mapRotation&&(h+=this._mapRotation),h&&a.rotate(h*ot);let c=A(t.offsetX),m=A(t.offsetY);if(c||m){if(this._mapRotation){const t=ot*this._mapRotation,e=Math.cos(t),r=Math.sin(t),s=c*r+m*e;c=c*e-m*r,m=s}a.translate(c,m)}const f=this.geomUnitsPerPoint();1!==f&&a.scale(f,f);const u=e.getAngle();u&&a.rotate(u),a.translate(e.tx,e.ty),this.push(a,t.scaleSymbolsProportionally);for(const d of r){d?.symbol&&d.geometry||lt().error("Invalid marker graphic",d);let t=d.textString;if("number"==typeof t&&(t=t.toString()),this.drawSymbol(d.symbol,d.geometry,t),this._earlyReturn)break}this.pop()}drawTextSymbol(t,e,r){if(!t)return;if(!M(e))return;if(A(t.height,I.CIMTextSymbol.height)<=0)return;const s=ht.createIdentity();let i=A(t.angle);i=-i,i&&s.rotate(i*ot);const n=A(t.offsetX),o=A(t.offsetY);(n||o)&&s.translate(n,o);const a=this.geomUnitsPerPoint();1!==a&&s.scale(a,a),s.translate(e.x,e.y),this.push(s,!1),this.drawText(t,r),this.pop()}}class mt extends ct{constructor(t,e){super(t,e),this.reset()}reset(){this._xmin=this._ymin=1/0,this._xmax=this._ymax=-1/0,this._clipCount=0}envelope(){return new U(this._xmin,this._ymin,this._xmax-this._xmin,this._ymax-this._ymin)}bounds(){return l(this._xmin,this._ymin,this._xmax,this._ymax)}drawSolidFill(t){if(t&&!(this._clipCount>0))if(P(t))this._processPath(t.rings,0);else if(S(t))this._processPath(t.paths,0);else if(x(t)){const e=yt(t);e&&this._processPath(e.rings,0)}else console.error("drawSolidFill Unexpected geometry type!")}drawSolidStroke(t,e,r){if(!t||this._clipCount>0||null==r||r<=0)return;const s=Math.max(.5*this.transformSize(A(r,I.CIMSolidStroke.width)),.5*at);if(P(t))this._processPath(t.rings,s);else if(S(t))this._processPath(t.paths,s);else if(x(t)){const e=yt(t);e&&this._processPath(e.rings,s)}else console.error("drawSolidStroke unexpected geometry type!")}drawMarkerLayer(t,e){P(e)&&t.markerPlacement&&("CIMMarkerPlacementInsidePolygon"===t.markerPlacement.type||"CIMMarkerPlacementPolygonCenter"===t.markerPlacement.type&&t.markerPlacement.clipAtBoundary)?this._processPath(e.rings,0):super.drawMarkerLayer(t,e)}drawHatchFill(t,e){this.drawSolidFill(t)}drawPictureFill(t,e){this.drawSolidFill(t)}drawGradientFill(t,e){this.drawSolidFill(t)}drawPictureStroke(t,e){this.drawSolidStroke(t,null,e.width)}drawGradientStroke(t,e){this.drawSolidStroke(t,null,e.width)}pushClipPath(t){this.drawSolidFill(t),this._clipCount++}popClipPath(){this._clipCount--}drawImage(t,e){const{url:r}=t,s=A(t.scaleX,1);let i=s*e,n=e;const o=this._resourceManager.getResource(r);if(null!=o){const t=o.height/o.width;i=s*(e?t>1?e:e/t:o.width),n=e?t>1?e*t:e:o.height}this._merge(this.transformPt([-i/2,-n/2]),0),this._merge(this.transformPt([-i/2,n/2]),0),this._merge(this.transformPt([i/2,-n/2]),0),this._merge(this.transformPt([i/2,n/2]),0)}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new F);const r=St(t);let[s,i]=this._textRasterizer.computeTextSize(e,r);s=n(s),i=n(i);const o=this.transformSize(1)*this.reverseTransformScalar(1);s*=o,i*=o;const a=t.horizontalAlignment??I.CIMTextSymbol.horizontalalignment,l=t.verticalAlignment??I.CIMTextSymbol.verticalalignment;let h=0;switch(a){case"Left":h=s/2;break;case"Right":h=-s/2}let c=0;switch(l){case"Bottom":c=i/2;break;case"Top":c=-i/2;break;case"Baseline":c=i/6}this._merge(this.transformPt([-s/2+h,-i/2+c]),0),this._merge(this.transformPt([-s/2+h,i/2+c]),0),this._merge(this.transformPt([s/2+h,-i/2+c]),0),this._merge(this.transformPt([s/2+h,i/2+c]),0)}_processPath(t,e){if(t)for(const r of t){const t=r?r.length:0;if(t>1){this._merge(this.transformPt(r[0]),e);for(let s=1;s<t;s++)this._merge(this.transformPt(r[s]),e)}}}_merge(t,e){t[0]-e<this._xmin&&(this._xmin=t[0]-e),t[0]+e>this._xmax&&(this._xmax=t[0]+e),t[1]-e<this._ymin&&(this._ymin=t[1]-e),t[1]+e>this._ymax&&(this._ymax=t[1]+e)}}class ft extends ct{constructor(){super(...arguments),this._hittestType="point",this._searchTarget=[],this._searchDistPoint=0,this._textInfo=null,this._svg=null,this._path=null,this._canvas=null}destroy(){this._svg=K(this._svg),this._path=null,this._canvas=null}hitTest(t,e,r,s,i,a,l,h){this._resetHittest();const c=a*o(1);switch(this.setGeomUnitsPerPoint(c),h){case"point":if(1!==t.length)return lt().error("Unexpected hittest area",t),!1;this._hittestType="point",this._searchDistPoint=l/2/c,this._searchTarget=[[t[0].x,t[0].y]];break;case"rect":if(4!==t.length)return lt().error("Unexpected hittest area",t),!1;this._hittestType="rect",this._searchDistPoint=0,this._searchTarget=t.map(t=>[t.x,t.y])}this._textInfo=s;const m=e&&("CIMPointSymbol"===e.type&&"Map"!==e.angleAlignment||"CIMTextSymbol"===e.type);if(this._mapRotation=m?i:0,!has("esri-mobile")){const t=n(et*window.devicePixelRatio),r=n(rt);!(("CIMLineSymbol"===e?.type||"CIMPolygonSymbol"===e?.type)&&e.symbolLayers?.some(W))&&"CIMMeshSymbol"!==e?.type&&(Y(e)??0)<r&&(this._searchDistPoint=t)}return this._earlyReturn=!1,this.drawSymbol(e,r),this._earlyReturn}executeEffects(t,e){return"CIMGeometricEffectDashes"===t.at(-1)?.type&&(t=t.slice(0,-1)),super.executeEffects(t,e)}drawSolidFill(t,e,r){null!=r?this._hittestSvgPath(t,r,!0):this._hitTestFill(t)}drawHatchFill(t,e){this._hitTestFill(t)}drawPictureFill(t,e){this._hitTestFill(t)}drawGradientFill(t,e){this._hitTestFill(t)}drawSolidStroke(t,e,r,s,i,n,o){null!=o?this._hittestSvgPath(t,o,!1,r):this._hitTestStroke(t,r)}drawPictureStroke(t,e){this._hitTestStroke(t,e.width)}drawGradientStroke(t,e){this._hitTestStroke(t,e.width)}drawMarkerLayer(t,e){t.markerPlacement&&("CIMMarkerPlacementInsidePolygon"===t.markerPlacement.type||"CIMMarkerPlacementPolygonCenter"===t.markerPlacement.type&&t.markerPlacement.clipAtBoundary)?this._hitTestFill(e):super.drawMarkerLayer(t,e)}pushClipPath(t){}popClipPath(){}drawImage(t,e){const{url:r}=t,s=A(t.scaleX,1),i=this._resourceManager.getResource(r);if(null==i||0===i.height||0===e)return;const n=e*this.geomUnitsPerPoint(),o=n*s*(i.width/i.height);if("point"===this._hittestType){const t=this.reverseTransformPt(this._searchTarget[0]),e=this._searchDistPoint;Math.abs(t[0])<o/2+e&&Math.abs(t[1])<n/2+e&&(this._earlyReturn=!0)}else{const t=o/2,e=n/2,r=[[-t,e],[t,e],[t,-e],[-t,-e],[-t,e]];bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,[r])&&(this._earlyReturn=!0)}}drawText(t,e){const r=this._textInfo;if(!r)return;const s=r.get(t);if(!s)return;if(!s.glyphMosaicItems.glyphs.length)return;const i=it(A(t.height,I.CIMTextSymbol.height)),{lineGapType:n,lineGap:o}=t,a=n?Pt(n,A(o),i):0,l=t.horizontalAlignment??I.CIMTextSymbol.horizontalalignment,h=t.verticalAlignment??I.CIMTextSymbol.verticalalignment,c="CIMBackgroundCallout"===t.callout?.type,m=st(s.glyphMosaicItems,{scale:i/tt,angle:0,xOffset:0,yOffset:0,horizontalAlignment:l,verticalAlignment:h,maxLineWidth:nt(t.lineWidth),lineHeight:Z*Math.max(.25,Math.min(a||1,4)),decoration:t.font.decoration||"none",useCIMAngleBehavior:!0,hasBackground:c});if("point"===this._hittestType){const t=this.reverseTransformPt(this._searchTarget[0]),e=t[0],r=t[1];for(const s of m.glyphs){const[t,i]=s.offsets.topLeft,[n,o]=s.offsets.bottomRight;if(e>t&&e<n&&r>-o&&r<-i){this._earlyReturn=!0;break}}}else for(const f of m.glyphs){const[t,e]=f.offsets.topLeft,[r,s]=f.offsets.bottomRight,i=[[t,-e],[r,-e],[r,-s],[t,-s],[t,-e]];if(bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,[i])){this._earlyReturn=!0;break}}}_hitTestFill(t){let e=null;if(x(t)){const r=t;e=[[[r.xmin,r.ymin],[r.xmin,r.ymax],[r.xmax,r.ymax],[r.xmax,r.ymin],[r.xmin,r.ymin]]]}else if(P(t))e=t.rings;else{if(!S(t))return;e=t.paths}if("point"===this._hittestType){const t=this.reverseTransformPt(this._searchTarget[0]);if(gt(t,e)&&(this._earlyReturn=!0),!this._earlyReturn){pt(t,e,this.reverseTransformScalar(this._searchDistPoint)*this.prevGeomUnitsPerPoint())&&(this._earlyReturn=!0)}}else{bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,e)&&(this._earlyReturn=!0)}}_getSvgPath(){return null!=this._svg&&null!=this._path||(this._svg??=$(),this._path??=Q("path"),this._svg.appendChild(this._path)),this._path}_getCanvasContext(t,e){return this._canvas??=document.createElement("canvas"),this._canvas.width=t,this._canvas.height=e,this._canvas.getContext("2d",{willReadFrequently:!0})}_hittestSvgPath(t,e,r,s=0){const i=g();p(i,t);const n={x:i[0],y:i[1],width:i[2]-i[0],height:i[3]-i[1]},o=this._getSvgPath();o.setAttribute("d",e);const a=o.getBBox();if("point"===this._hittestType){const t=this.reverseTransformScalar(this._searchDistPoint)*this.prevGeomUnitsPerPoint(),i=this.reverseTransformPt(this._searchTarget[0]);let o=Math.max(a.width/n.width,a.height/n.height),l=1;const h=2*t*o;h<1&&(l=2/h,o*=l,a.x*=l,a.y*=l,a.width*=l,a.height*=l);const c=1+s*o/2,m=this._getCanvasContext(a.width+2*c,a.height+2*c);m.setTransform(l,0,0,l,-a.x+c,-a.y+c);const f=new Path2D(e);r?m.fill(f):(m.lineWidth=s*(o/l),m.stroke(f));const u=(n.width*o-a.width)/2,d=(n.height*o-a.height)/2,g=Math.floor((i[0]-n.x-t)*o-u+c),p=Math.floor((n.height-(i[1]-n.y)-t)*o+d+c),_=Math.ceil(2*t*o),y=Math.ceil(2*t*o),P=m.getImageData(g,p,_,y).data;for(let e=3;e<P.length;e+=4)if(P[e]>127.5)return void(this._earlyReturn=!0)}else{const t=[[n.x,n.y],[n.x,n.y+n.height],[n.x+n.width,n.y+n.height],[n.x+n.width,n.y],[n.x,n.y]];if(bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,[t]))return void(this._earlyReturn=!0)}}_hitTestStroke(t,e){let r=null;if(x(t)){const e=t;r=[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]}else if(P(t))r=t.rings;else{if(!S(t))return;r=t.paths}if("point"===this._hittestType){pt(this.reverseTransformPt(this._searchTarget[0]),r,A(e,I.CIMSolidStroke.width)*this.geomUnitsPerPoint()/2+this.reverseTransformScalar(this._searchDistPoint)*this.prevGeomUnitsPerPoint())&&(this._earlyReturn=!0)}else{bt(this.isEmbedded()?this._searchTarget.map(t=>this.reverseTransformPt(t)):this._searchTarget,r)&&(this._earlyReturn=!0)}}_resetHittest(){this.setTransform(),this._hittestType="point",this._searchTarget=[],this._searchDistPoint=0,this._textInfo=null}}class ut extends ct{constructor(t,e,r,s){super(e,r),this._applyAdditionalRenderProps=s,this._colorSubstitutionHelper=new k,this._ctx=t}drawSolidFill(t,e){if(!t)return;if(P(t))this._buildPath(t.rings,!0);else if(S(t))this._buildPath(t.paths,!0);else if(x(t))this._buildPath(yt(t).rings,!0);else{if(!w(t))return;console.log("CanvasDrawHelper.drawSolidFill - No implementation!")}const r=this._ctx;r.fillStyle="string"==typeof e?e:"rgba("+Math.round(e[0])+","+Math.round(e[1])+","+Math.round(e[2])+","+(e[3]??255)/255+")",r.fill("evenodd")}drawSolidStroke(t,e,r,s,i,n){if(!t||!e||0===r)return;if(P(t))this._buildPath(t.rings,!0);else if(S(t))this._buildPath(t.paths,!1);else{if(!x(t))return void console.log("CanvasDrawHelper.drawSolidStroke isn't implemented!");this._buildPath(yt(t).rings,!0)}const o=this._ctx;o.strokeStyle="string"==typeof e?e:"rgba("+Math.round(e[0])+","+Math.round(e[1])+","+Math.round(e[2])+","+(e[3]??255)/255+")",o.lineWidth=Math.max(this.transformSize(r),at),this._setCapStyle(s),this._setJoinStyle(i),o.miterLimit=n,o.stroke()}pushClipPath(t){if(this._ctx.save(),P(t))this._buildPath(t.rings,!0);else if(S(t))this._buildPath(t.paths,!0);else{if(!x(t))return;this._buildPath(yt(t).rings,!0)}this._ctx.clip("evenodd")}popClipPath(){this._ctx.restore()}drawImage(t,e){const{colorSubstitutions:r,url:s,tintColor:i}=t,n=A(t.scaleX,1),o=this._resourceManager.getResource(s);if(null==o)return;let a=e*(o.width/o.height),l=e;e||(a=o.width,l=o.height);const h=j(s)||"src"in o&&j(o.src);let c="getFrame"in o?R(o):o;r&&(c=this._colorSubstitutionHelper.applyColorSubstitution(c,r)),this._applyAdditionalRenderProps&&!h&&i&&(c=this._colorSubstitutionHelper.tintImageData(c,i));const m=this.transformPt([0,0]),[f,u]=this.getTransformAngle(),d=this.transformSize(1),g=this._ctx;g.save(),g.setTransform({m11:n*d*f,m12:n*d*u,m21:-d*u,m22:d*f,m41:m[0],m42:m[1]}),g.drawImage(c,-a/2,-l/2,a,l),g.restore()}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new F);const r=St(t,this.transformSize(n(1))),s=this._textRasterizer.rasterizeText(e,r);if(!s)return;const{size:i,anchorX:o,anchorY:a,canvas:l}=s,h=i[0]*(o+.5),c=i[1]*(a-.5),m=this._ctx,f=this.transformPt([0,0]),[u,d]=this.getTransformAngle(),g=1;m.save(),m.setTransform({m11:g*u,m12:g*d,m21:-g*d,m22:g*u,m41:f[0]-g*h,m42:f[1]+g*c}),m.drawImage(l,0,0),m.restore()}drawPictureFill(t,e){if(!t)return;let{colorSubstitutions:r,height:s,offsetX:i,offsetY:n,rotation:o,scaleX:a,tintColor:l,url:h}=e;const c=this._resourceManager.getResource(h);if(null==c)return;if(P(t))this._buildPath(t.rings,!0);else if(S(t))this._buildPath(t.paths,!0);else if(x(t))this._buildPath(yt(t).rings,!0);else{if(!w(t))return;console.log("CanvasDrawHelper.drawPictureFill - No implementation!")}const m=this._ctx,f=j(h)||"src"in c&&j(c.src);let u,d="getFrame"in c?R(c):c;if(r&&(d=this._colorSubstitutionHelper.applyColorSubstitution(d,r)),this._applyAdditionalRenderProps){f||l&&(d=this._colorSubstitutionHelper.tintImageData(d,l)),u=m.createPattern(d,"repeat");const t=this.transformSize(1);o||(o=0),i?i*=t:i=0,n?n*=t:n=0,s&&(s*=t);const e=s?s/c.height:1,r=a&&s?a*s/c.width:1;if(0!==o||1!==e||1!==r||0!==i||0!==n){const t=new DOMMatrix;t.rotateSelf(0,0,-o).translateSelf(i,n).scaleSelf(r,e,1),u.setTransform(t)}}else u=m.createPattern(d,"repeat");m.save(),m.fillStyle=u,m.fill("evenodd"),m.restore()}drawPictureStroke(t,r){if(!t)return;let{colorSubstitutions:s,capStyle:i,joinStyle:n,miterLimit:a,tintColor:l,url:h,width:c}=r;const m=this._resourceManager.getResource(h);if(null==m)return;let f;if(P(t))f=t.rings;else if(S(t))f=t.paths;else{if(!x(t))return w(t)?void console.log("CanvasDrawHelper.drawPictureStroke - No implementation!"):void 0;f=yt(t).rings}c||(c=m.width);const u=j(h)||"src"in m&&j(m.src);let d="getFrame"in m?R(m):m;s&&(d=this._colorSubstitutionHelper.applyColorSubstitution(d,s)),this._applyAdditionalRenderProps&&(u||l&&(d=this._colorSubstitutionHelper.tintImageData(d,l)));const g=Math.max(this.transformSize(o(c)),.5),p=g/d.width,_=this._ctx,y=_.createPattern(d,"repeat-y");let M,b;_.save(),this._setCapStyle(i),this._setJoinStyle(n),void 0!==a&&(_.miterLimit=a),_.lineWidth=g;for(let o of f)if(o=e(o),wt(o),o&&!(o.length<=1)){M=this.transformPt(o[0]);for(let t=1;t<o.length;t++){b=this.transformPt(o[t]);const e=_t(M,b),r=new DOMMatrix;r.translateSelf(0,M[1]-g/2).scaleSelf(p,p,1).rotateSelf(0,0,90-e),y.setTransform(r),_.strokeStyle=y,_.beginPath(),_.moveTo(M[0],M[1]),_.lineTo(b[0],b[1]),_.stroke(),M=b}}_.restore()}drawGradientFill(t,e){if(!t)return;let r;if(P(t))r=t.rings;else if(S(t))r=t.paths;else{if(!x(t))return void lt().error("Unable to draw gradient fill");r=yt(t).rings}this._buildPath(r,!0);const{angle:i,gradientMethod:n,gradientSize:a,gradientSizeUnits:l}=e,g=I.CIMGradientFill,p=e.gradientType??g.gradientType,_=-s(i??0),y=h();for(const s of r){const t=s?s.length:0;if(t>1)for(let e=0;e<t;e++){let t=this.transformPt(s[e]);"Linear"!==n&&"Rectangular"!==n||(t=z(t,-_)),c(y,t)}}const[w,M,b,k]=y,T=this._ctx;switch(T.save(),n){case"Buffered":lt().error(`Gradient method "${n}" currently unsupported.`);break;case"Linear":{const t=(M+k)/2,r="Absolute"===l?this.transformSize(o(a)):G(a,g.gradientSize)*(b-w),[s,i]="Discrete"===p?[b,b-r]:[w+r,w],n=z([s,t],_),h=z([i,t],_),c=T.createLinearGradient(n[0],n[1],h[0],h[1]);L(c,e),T.fillStyle=c,T.fill("evenodd");break}case"Circular":{const t=m(y),r=d(y)/2,s="Absolute"===l?this.transformSize(o(a)):G(a,g.gradientSize)*r,[i,n]="Discrete"===p?[r,r-s]:[s,0],h=T.createRadialGradient(t[0],t[1],i,t[0],t[1],n);L(h,e),T.fillStyle=h,T.fill("evenodd");break}case"Rectangular":{const r=m(y),s=r[0],i=r[1],n=z(r,_),h=(r,s,i,o,a,l,h,c)=>{T.save(),this.pushClipPath(t);const m=z([a,l],_),f=z([h,c],_);T.beginPath(),T.moveTo(n[0],n[1]),T.lineTo(m[0],m[1]),T.lineTo(f[0],f[1]),T.lineTo(n[0],n[1]),T.clip();const u=z([r,s],_),d=z([i,o],_),g=T.createLinearGradient(u[0],u[1],d[0],d[1]);L(g,e),T.fillStyle=g,T.fill("evenodd"),T.restore()};let c="Absolute"===l?this.transformSize(o(a)):G(a,g.gradientSize)*(f(y)/2),[d,P]="Discrete"===p?[b,b-c]:[s+c,s];h(d,i,P,i,b,M,b,k),[d,P]="Discrete"===p?[w,w+c]:[s-c,s],h(d,i,P,i,w,k,w,M),c="Absolute"===l?this.transformSize(o(a)):G(a,g.gradientSize)*(u(y)/2);let[S,x]="Discrete"===p?[k,k-c]:[i+c,i];h(s,S,s,x,b,k,w,k),[S,x]="Discrete"===p?[M,M+c]:[i-c,i],h(s,S,s,x,w,M,b,M);break}}T.restore()}drawGradientStroke(t,r){const{capStyle:s,gradientMethod:i,gradientSize:n,gradientSizeUnits:a,joinStyle:l,miterLimit:h,width:c}=r;if(!t||0===c)return;let m;if(P(t))m=t.rings;else if(S(t))m=t.paths;else{if(!x(t))return void lt().error("Unable to draw gradient stroke");m=yt(t).rings}const f=r.gradientType??I.CIMGradientStroke.gradientType,u=Math.max(this.transformSize(o(c)),.5),d=this._ctx;let g,p;d.save(),this._setCapStyle(s),this._setJoinStyle(l),void 0!==h&&(d.miterLimit=h),d.lineWidth=u;for(let _ of m){if(_=e(_),wt(_),!_||_.length<=1)continue;let t=0;g=this.transformPt(_[0]);for(let e=1;e<_.length;e++){p=this.transformPt(_[e]);const r=p[0]-g[0],s=p[1]-g[1];t+=Math.sqrt(r*r+s*s),g=p}const s="Absolute"===a?this.transformSize(o(n)):G(n,I.CIMGradientStroke.gradientSize)*("AcrossLine"===i?u:t);let l=0;g=this.transformPt(_[0]);for(let e=1;e<_.length;e++){p=this.transformPt(_[e]);const n=p[0]-g[0],o=p[1]-g[1],a=Math.sqrt(n*n+o*o);let h,c,m,y;switch(i){case"AcrossLine":{const[t,e]=z([n/a,o/a],-Math.PI/2),r=u/2,i="Discrete"===f?r:s-r;h=(g[0]+p[0])/2+t*i,c=(g[1]+p[1])/2+e*i,m=h-t*s,y=c-e*s;break}case"AlongLine":{const e=n/a,r=o/a;"Discrete"===f?(h=g[0]-e*l,c=g[1]-r*l,m=h+e*s,y=c+r*s):(m=g[0]+e*(t-l),y=g[1]+r*(t-l),h=m-e*s,c=y-r*s);break}default:return lt().error("Unrecognized gradient method:",i),void d.restore()}const P=d.createLinearGradient(h,c,m,y);L(P,r),d.strokeStyle=P,d.beginPath(),d.moveTo(g[0],g[1]),d.lineTo(p[0],p[1]),d.stroke(),l+=a,g=p}}d.restore()}_buildPath(t,e){const r=this._ctx;if(r.beginPath(),t)for(const s of t){const t=s?s.length:0;if(t>1){let i=this.transformPt(s[0]);r.moveTo(i[0],i[1]);for(let e=1;e<t;e++)i=this.transformPt(s[e]),r.lineTo(i[0],i[1]);e&&r.closePath()}}}_setCapStyle(t){switch(t){case"Butt":this._ctx.lineCap="butt";break;case"Round":this._ctx.lineCap="round";break;case"Square":this._ctx.lineCap="square"}}_setJoinStyle(t){switch(t){case"Bevel":this._ctx.lineJoin="bevel";break;case"Round":this._ctx.lineJoin="round";break;case"Miter":this._ctx.lineJoin="miter"}}}function dt(t,e,r){let s=A(t.separation,I.CIMHatchFill.separation)*r,i=A(t.rotation);if(0===s)return null;s<0&&(s=-s);let n=0;const o=.5*s;for(;n>o;)n-=s;for(;n<-o;)n+=s;const a=g();p(a,e),a[0]-=o,a[1]-=o,a[2]+=o,a[3]+=o;const l=[[a[0],a[1]],[a[0],a[3]],[a[2],a[3]],[a[2],a[1]]];for(;i>180;)i-=180;for(;i<0;)i+=180;const h=Math.cos(i*ot),c=Math.sin(i*ot),m=-s*c,f=s*h;let u,d,_,y;n=A(t.offsetX)*r*c-A(t.offsetY)*r*h,u=_=Number.MAX_VALUE,d=y=-Number.MAX_VALUE;for(const g of l){const t=g[0],e=g[1],r=h*t+c*e,s=-c*t+h*e;u=Math.min(u,r),_=Math.min(_,s),d=Math.max(d,r),y=Math.max(y,s)}_=Math.floor(_/s)*s;let P=h*u-c*_-m*n/s,S=c*u+h*_-f*n/s,x=h*d-c*_-m*n/s,w=c*d+h*_-f*n/s;const M=1+Math.round((y-_)/s),b=[];for(let g=0;g<M;g++)P+=m,S+=f,x+=m,w+=f,b.push([[P,S],[x,w]]);return{paths:b}}function gt(t,e){let r=0;for(const s of e){const e=s.length;for(let i=1;i<e;i++){const e=s[i-1],n=s[i];if(e[1]>t[1]==n[1]>t[1])continue;(n[0]-e[0])*(t[1]-e[1])-(n[1]-e[1])*(t[0]-e[0])>0?r++:r--}}return 0!==r}function pt(t,e,r){for(const s of e){const e=s.length;for(let i=1;i<e;i++){const e=s[i-1],n=s[i];let o=(n[0]-e[0])*(n[0]-e[0])+(n[1]-e[1])*(n[1]-e[1]);if(0===o)continue;o=Math.sqrt(o);const a=((n[0]-e[0])*(t[1]-e[1])-(n[1]-e[1])*(t[0]-e[0]))/o;if(Math.abs(a)<r){const s=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/o;if(s>-r&&s<o+r)return!0}}}return!1}function _t(t,e){const r=e[0]-t[0],s=e[1]-t[1];return 180/Math.PI*Math.atan2(s,r)}const yt=t=>t?{spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]}:null,Pt=(t,e,r)=>{switch(t){case"ExtraLeading":return 1+e/r;case"Multiple":return e;case"Exact":return e/r}};function St(e,r=1){const s=H(e),i=E(e.fontStyleName),n=e.fontFamilyName??t,{weight:o,style:a}=i,l=r*(e.height||5),h=B(e.horizontalAlignment),c=X(e.verticalAlignment),m=J(e),f=J(e.haloSymbol),u=null!=f?r*(e.haloSize??0):0,d=N(e.symbol),g=r*(O(e.symbol)||0),p="CIMBackgroundCallout"===e.callout?.type?e.callout.backgroundSymbol:null,_=J(p),y=O(p),P=N(p);return{color:m,size:l,horizontalAlignment:h,verticalAlignment:c,font:{family:n,style:V(a),weight:q(o),decoration:s},outline:{size:g||0,color:d},halo:{size:u||0,color:f,style:a},backgroundColor:_,borderLine:null!=y&&null!=P?{size:y,color:P}:null,pixelRatio:1,premultiplyColors:!0}}const xt=1e-4;function wt(t){let e,r,s,i,n,o=t[0],a=1;for(;a<t.length;)e=t[a][0]-o[0],r=t[a][1]-o[1],i=0!==e?r/e:Math.PI/2,void 0!==s&&Math.abs(i-s)<=xt?(t.splice(a-1,1),o=n):(n=o,o=t[a],a++),s=i}function Mt(t){const e=1e-6,r=t[0],s=t[t.length-1];return Math.abs(r[0]-s[0])<=e&&Math.abs(r[1]-s[1])<=e}function bt(t,e){t.length>1&&!Mt(t)&&(t=[...t,t[0]]);for(let r=0;r<e.length;r++){const s=e[r],i=s.length;for(const e of s)if(gt(e,[t]))return!0;if(Mt(s))for(const r of t)if(gt(r,e))return!0;for(let e=1;e<i;e++){const r=s[e-1],i=s[e];for(let e=0;e<t.length;e++){const s=t[e],n=t[(e+1)%t.length];if(y(r,i,s,n))return!0}}}return!1}export{ct as CIMSymbolDrawHelper,ut as CanvasDrawHelper,mt as EnvDrawHelper,ft as HittestDrawHelper,ht as Transformation,ot as cDegToRad,Pt as lineGapType2LineHeight};