@arcgis/core 5.2.0-next.136 → 5.2.0-next.138

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 (507) hide show
  1. package/analysis/LineOfSightAnalysisObserver.d.ts +12 -0
  2. package/analysis/LineOfSightAnalysisObserver.js +1 -1
  3. package/analysis/LineOfSightAnalysisTarget.d.ts +12 -0
  4. package/analysis/LineOfSightAnalysisTarget.js +1 -1
  5. package/arcade/featureset/sources/FeatureLayerParquet.js +1 -1
  6. package/arcgisGlobal.d.ts +4 -0
  7. package/assets/components/assets/icon/blockHeightMedium16.json +1 -0
  8. package/assets/components/assets/icon/blockHeightMedium24.json +1 -0
  9. package/assets/components/assets/icon/blockHeightMedium32.json +1 -0
  10. package/assets/components/assets/icon/blockHeightShort16.json +1 -0
  11. package/assets/components/assets/icon/blockHeightShort24.json +1 -0
  12. package/assets/components/assets/icon/blockHeightShort32.json +1 -0
  13. package/assets/components/assets/icon/blockHeightTall16.json +1 -0
  14. package/assets/components/assets/icon/blockHeightTall24.json +1 -0
  15. package/assets/components/assets/icon/blockHeightTall32.json +1 -0
  16. package/assets/components/assets/icon/cursorCircle16.json +1 -0
  17. package/assets/components/assets/icon/cursorCircle24.json +1 -0
  18. package/assets/components/assets/icon/cursorCircle32.json +1 -0
  19. package/assets/components/assets/icon/dictionary16.json +1 -0
  20. package/assets/components/assets/icon/dictionary24.json +1 -0
  21. package/assets/components/assets/icon/dictionary32.json +1 -0
  22. package/assets/components/assets/icon/jobDependency16.json +1 -0
  23. package/assets/components/assets/icon/jobDependency24.json +1 -0
  24. package/assets/components/assets/icon/jobDependency32.json +1 -0
  25. package/assets/components/assets/icon/referenceChip16.json +1 -0
  26. package/assets/components/assets/icon/referenceChip24.json +1 -0
  27. package/assets/components/assets/icon/referenceChip32.json +1 -0
  28. package/assets/esri/core/workers/RemoteClient.js +1 -1
  29. package/assets/esri/core/workers/chunks/{4e6f95d8c624d513849a.js → 05963f57cbe5a5249496.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{0b8681ca4a83e97f1f71.js → 067de1910190da228291.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{3c0fd1c6cda44e9f40ab.js → 070684943698fa43c2b4.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{bc1cb4b9a02e6c78deb7.js → 076e8d2e08ff2a013736.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{c10e040368065411506a.js → 10445313d0d57b34511b.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{d537c59b46cdaaf66034.js → 1188d0a136fffc009643.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{20af3f085f60c32c6c53.js → 178083d8ed7707b45ca2.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{f5efe3e800c6e23efcf3.js → 1819c45655c836b9a8d7.js} +1 -1
  37. package/assets/esri/core/workers/chunks/1b946714ca4a1a7359d4.js +2 -0
  38. package/assets/esri/core/workers/chunks/{d8d8b38ac8a91d9e45fc.js → 1cc744ab5eee5ee3bed8.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{05e39b4de7f62c5b22cc.js → 20f75cc777af13fa249b.js} +1 -1
  40. package/assets/esri/core/workers/chunks/2a1ec30f9ad305763f81.js +2 -0
  41. package/assets/esri/core/workers/chunks/34570e6bbf559f18c1a5.js +1 -0
  42. package/assets/esri/core/workers/chunks/{60f6d5da9480dd36e877.js → 3dddae78286d05eb10fc.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{9efd30bbd02ec0d1031b.js → 3ec3589f6e74d7cb87cf.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{0bec054fca104f3bf141.js → 3f776d9fd2ab68b21fca.js} +1 -1
  45. package/assets/esri/core/workers/chunks/402a82c77420254831bc.js +1 -0
  46. package/assets/esri/core/workers/chunks/{e2ebf0ea3af2e6907987.js → 406f24ec13eb30d43405.js} +1 -1
  47. package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +1 -0
  48. package/assets/esri/core/workers/chunks/{ddedc414bb478b376221.js → 46b2d4addfc73f9183a4.js} +1 -1
  49. package/assets/esri/core/workers/chunks/498d6dfd3bb0d3490548.js +1 -0
  50. package/assets/esri/core/workers/chunks/{36ef86701883a20dd6f6.js → 4a640548032355e57acd.js} +1 -1
  51. package/assets/esri/core/workers/chunks/5566f14afb63065e438f.js +1 -0
  52. package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js → 590e6c70206122e4cc3c.js} +2 -2
  53. package/assets/esri/core/workers/chunks/{54860dd53a46cf4c47f3.js → 59295b99bdff4045a0e7.js} +1 -1
  54. package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +1 -0
  55. package/assets/esri/core/workers/chunks/{5da86409d70098fc6a10.js → 5b3cfe95314a75a735c1.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{a54678bfa0f1807b61cd.js → 5c855af73ee3c3e764fb.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{06da3409992bb1fa85b0.js → 5e90c1b49f2b7e21d05a.js} +39 -31
  58. package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +1 -0
  59. package/assets/esri/core/workers/chunks/{30f808cac8a34f95ea6e.js → 6079d27f4ab319fb8f0c.js} +1 -1
  60. package/assets/esri/core/workers/chunks/66c2a28a851130b87c04.js +1 -0
  61. package/assets/esri/core/workers/chunks/{dac90b3631f7f7158f68.js → 67f15538c51838201fc7.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js → 68d8ae42ab71d01a70a5.js} +2 -2
  63. package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +1 -0
  64. package/assets/esri/core/workers/chunks/{864e7030c4ddbfcf0114.js → 6ccf9535013fe672c93b.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{ba7f0cf7e495d3ec2d55.js → 6e62581d933e7298d1f6.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{83b5dd4029e00abd80bf.js → 700b1d5bc67b7e1b3ff3.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{f9fea72cc222a30ef2f9.js → 72399062767abdfb0bee.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{2a7fbfd77002a24bf737.js → 747461bb6a1bc2f0a64d.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{c333f6ed42985bb2b11f.js → 7851aef196eea5d6c94e.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{f0b6bd6fab5320c3082f.js → 7a05b18f655c1167ce0a.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{04296b75d0f81fbd1bb5.js → 864194927d05ebc4cc31.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{3c4a13a9f0b305394a26.js → 876f7633c15f1e31078d.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{62298dba3f6cbdc3f4ae.js → 879b2f0ff1977bca9376.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{b547b3bce729c9dac90d.js → 898359be6996fd9763b8.js} +1 -1
  75. package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +1 -0
  76. package/assets/esri/core/workers/chunks/8dc1c3042267618fd710.js +2 -0
  77. package/assets/esri/core/workers/chunks/{625f02db93d7fbf175ca.js → 9001e9a1e81bce175ddd.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{9ffa6c8d93d3443834c6.js → 912080c90b5cc2e817cf.js} +1 -1
  79. package/assets/esri/core/workers/chunks/96c50a0dda0f1503ef92.js +2 -0
  80. package/assets/esri/core/workers/chunks/{13e4379441499599c3b5.js → 9cbde13e536676767900.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{408db4f32850b77264ae.js → 9cd3fcb5fca6f9dbbcd8.js} +1 -1
  82. package/assets/esri/core/workers/chunks/a054da6cbd8ee4774a57.js +1 -0
  83. package/assets/esri/core/workers/chunks/a05790444115e4cf1bcc.js +1 -0
  84. package/assets/esri/core/workers/chunks/{d1f2685782b423ef87a6.js → a556dd4e9e6d35e33a2c.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{00d576d355599c88931e.js → bc38def1983089514e4b.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{0725e515f3004bdd5c56.js → ca2adcbcf44454484fd5.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{f3507b9e831ffd7a6bf8.js → cca8bd07bcd1d267a2e8.js} +1 -1
  88. package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +1 -0
  89. package/assets/esri/core/workers/chunks/{1d6b2a64f4e40e5cc13d.js → d201fbf3ceff946d2bd6.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{4439078780d9ba49fd26.js → d51bb11baadc741c46bc.js} +1 -1
  91. package/assets/esri/core/workers/chunks/db1ab9b9c8bf5c7635d3.js +1 -0
  92. package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +1 -0
  93. package/assets/esri/core/workers/chunks/e630f3c56c077cb2bd8e.js +1 -0
  94. package/assets/esri/core/workers/chunks/e81173724e8de8c1e65b.js +1 -0
  95. package/assets/esri/core/workers/chunks/{2025288bed125594ceda.js → f6e62d2d279a328cbed7.js} +1 -1
  96. package/assets/esri/core/workers/chunks/{47c19778fcee7154ca38.js → f8bc474434fd365ab174.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{9a20dc26cb9c7b2087cf.js → f95a1f878c9c1146180e.js} +1 -1
  98. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ar.json +1 -1
  99. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bg.json +1 -1
  100. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bs.json +1 -1
  101. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ca.json +1 -1
  102. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.cs.json +1 -1
  103. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.da.json +1 -1
  104. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.de.json +1 -1
  105. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.el.json +1 -1
  106. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
  107. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.es.json +1 -1
  108. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.et.json +1 -1
  109. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fi.json +1 -1
  110. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fr.json +1 -1
  111. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.he.json +1 -1
  112. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hr.json +1 -1
  113. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hu.json +1 -1
  114. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.id.json +1 -1
  115. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.it.json +1 -1
  116. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ja.json +1 -1
  117. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ko.json +1 -1
  118. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lt.json +1 -1
  119. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lv.json +1 -1
  120. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.nl.json +1 -1
  121. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.no.json +1 -1
  122. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pl.json +1 -1
  123. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-BR.json +1 -1
  124. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-PT.json +1 -1
  125. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ro.json +1 -1
  126. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ru.json +1 -1
  127. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sk.json +1 -1
  128. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sl.json +1 -1
  129. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sr.json +1 -1
  130. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sv.json +1 -1
  131. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.th.json +1 -1
  132. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.tr.json +1 -1
  133. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.uk.json +1 -1
  134. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.vi.json +1 -1
  135. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-CN.json +1 -1
  136. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-HK.json +1 -1
  137. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-TW.json +1 -1
  138. package/assets/esri/widgets/FeatureForm/t9n/messages.ar.json +1 -1
  139. package/assets/esri/widgets/FeatureForm/t9n/messages.bg.json +1 -1
  140. package/assets/esri/widgets/FeatureForm/t9n/messages.bs.json +1 -1
  141. package/assets/esri/widgets/FeatureForm/t9n/messages.ca.json +1 -1
  142. package/assets/esri/widgets/FeatureForm/t9n/messages.cs.json +1 -1
  143. package/assets/esri/widgets/FeatureForm/t9n/messages.da.json +1 -1
  144. package/assets/esri/widgets/FeatureForm/t9n/messages.de.json +1 -1
  145. package/assets/esri/widgets/FeatureForm/t9n/messages.el.json +1 -1
  146. package/assets/esri/widgets/FeatureForm/t9n/messages.es.json +1 -1
  147. package/assets/esri/widgets/FeatureForm/t9n/messages.et.json +1 -1
  148. package/assets/esri/widgets/FeatureForm/t9n/messages.fi.json +1 -1
  149. package/assets/esri/widgets/FeatureForm/t9n/messages.fr.json +1 -1
  150. package/assets/esri/widgets/FeatureForm/t9n/messages.he.json +1 -1
  151. package/assets/esri/widgets/FeatureForm/t9n/messages.hr.json +1 -1
  152. package/assets/esri/widgets/FeatureForm/t9n/messages.hu.json +1 -1
  153. package/assets/esri/widgets/FeatureForm/t9n/messages.id.json +1 -1
  154. package/assets/esri/widgets/FeatureForm/t9n/messages.it.json +1 -1
  155. package/assets/esri/widgets/FeatureForm/t9n/messages.ja.json +1 -1
  156. package/assets/esri/widgets/FeatureForm/t9n/messages.ko.json +1 -1
  157. package/assets/esri/widgets/FeatureForm/t9n/messages.lt.json +1 -1
  158. package/assets/esri/widgets/FeatureForm/t9n/messages.lv.json +1 -1
  159. package/assets/esri/widgets/FeatureForm/t9n/messages.nl.json +1 -1
  160. package/assets/esri/widgets/FeatureForm/t9n/messages.no.json +1 -1
  161. package/assets/esri/widgets/FeatureForm/t9n/messages.pl.json +1 -1
  162. package/assets/esri/widgets/FeatureForm/t9n/messages.pt-BR.json +1 -1
  163. package/assets/esri/widgets/FeatureForm/t9n/messages.pt-PT.json +1 -1
  164. package/assets/esri/widgets/FeatureForm/t9n/messages.ro.json +1 -1
  165. package/assets/esri/widgets/FeatureForm/t9n/messages.ru.json +1 -1
  166. package/assets/esri/widgets/FeatureForm/t9n/messages.sk.json +1 -1
  167. package/assets/esri/widgets/FeatureForm/t9n/messages.sl.json +1 -1
  168. package/assets/esri/widgets/FeatureForm/t9n/messages.sr.json +1 -1
  169. package/assets/esri/widgets/FeatureForm/t9n/messages.sv.json +1 -1
  170. package/assets/esri/widgets/FeatureForm/t9n/messages.th.json +1 -1
  171. package/assets/esri/widgets/FeatureForm/t9n/messages.tr.json +1 -1
  172. package/assets/esri/widgets/FeatureForm/t9n/messages.uk.json +1 -1
  173. package/assets/esri/widgets/FeatureForm/t9n/messages.vi.json +1 -1
  174. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-CN.json +1 -1
  175. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-HK.json +1 -1
  176. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-TW.json +1 -1
  177. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ar.json +1 -1
  178. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bg.json +1 -1
  179. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bs.json +1 -1
  180. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ca.json +1 -1
  181. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.cs.json +1 -1
  182. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.da.json +1 -1
  183. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.de.json +1 -1
  184. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.el.json +1 -1
  185. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.en.json +1 -1
  186. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.es.json +1 -1
  187. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.et.json +1 -1
  188. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fi.json +1 -1
  189. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fr.json +1 -1
  190. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.he.json +1 -1
  191. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hr.json +1 -1
  192. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hu.json +1 -1
  193. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.id.json +1 -1
  194. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.it.json +1 -1
  195. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ja.json +1 -1
  196. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ko.json +1 -1
  197. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lt.json +1 -1
  198. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lv.json +1 -1
  199. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.nl.json +1 -1
  200. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.no.json +1 -1
  201. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pl.json +1 -1
  202. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-BR.json +1 -1
  203. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-PT.json +1 -1
  204. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ro.json +1 -1
  205. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ru.json +1 -1
  206. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sk.json +1 -1
  207. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sl.json +1 -1
  208. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sr.json +1 -1
  209. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sv.json +1 -1
  210. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.th.json +1 -1
  211. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.tr.json +1 -1
  212. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.uk.json +1 -1
  213. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.vi.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-CN.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-HK.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-TW.json +1 -1
  217. package/chunks/Bufferer-CclWhXVb.js +1 -1
  218. package/chunks/Component.glsl.js +3 -3
  219. package/chunks/DefaultMaterial.glsl.js +2 -2
  220. package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
  221. package/chunks/Envelope.js +1 -1
  222. package/chunks/Envelope2D.js +1 -1
  223. package/chunks/FocusArea.glsl.js +8 -10
  224. package/chunks/GaussianSplat.glsl.js +2 -2
  225. package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
  226. package/chunks/GeodeticUtils.js +1 -1
  227. package/chunks/Geometry.js +1 -1
  228. package/chunks/GeometryCleaner-CIE8Wfmb.js +1 -1
  229. package/chunks/GlobalIllumination.glsl.js +3 -3
  230. package/chunks/LineMarker.glsl.js +35 -42
  231. package/chunks/MultiPathImpl.js +1 -1
  232. package/chunks/OperatorAffineTransform.js +1 -1
  233. package/chunks/OperatorClip.js +1 -1
  234. package/chunks/OperatorDensify.js +1 -1
  235. package/chunks/OperatorDistance.js +1 -1
  236. package/chunks/OperatorGeneralize.js +1 -1
  237. package/chunks/OperatorGeodesicBuffer.js +1 -1
  238. package/chunks/OperatorGeodeticArea.js +1 -1
  239. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  240. package/chunks/OperatorGeodeticDistance.js +1 -1
  241. package/chunks/OperatorGeodeticLength.js +1 -1
  242. package/chunks/OperatorGraphicBuffer.js +1 -1
  243. package/chunks/OperatorIntegrate.js +1 -1
  244. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  245. package/chunks/OperatorProximity.js +1 -1
  246. package/chunks/OperatorProximityGeodesic.js +1 -1
  247. package/chunks/OperatorShapePreservingLength.js +1 -1
  248. package/chunks/OperatorShapePreservingProject.js +1 -1
  249. package/chunks/OperatorSimplifyOGC.js +1 -1
  250. package/chunks/Path.glsl.js +2 -2
  251. package/chunks/Point2D.js +1 -1
  252. package/chunks/RealisticTree.glsl.js +2 -2
  253. package/chunks/RibbonLine.glsl.js +51 -57
  254. package/chunks/SideCalculator2D-DX0718xq.js +1 -1
  255. package/chunks/Terrain.glsl.js +2 -2
  256. package/chunks/Transformation2D.js +1 -1
  257. package/chunks/UnitFactory.js +1 -1
  258. package/config.js +1 -1
  259. package/core/workers/RemoteClient.js +1 -1
  260. package/core/workers/workerFactory.js +1 -1
  261. package/editing/fieldUtils.d.ts +12 -0
  262. package/editing/sharedTemplates/templateDefinitions/TemplateDefinitionBase.js +1 -1
  263. package/geometry/operators/extendOperator.js +1 -1
  264. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  265. package/geometry/operators/gx/operatorBoundary.js +1 -1
  266. package/geometry/operators/gx/operatorBuffer.js +1 -1
  267. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  268. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  269. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  270. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  271. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  272. package/geometry/operators/gx/operatorOffset.js +1 -1
  273. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  274. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  275. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  276. package/geometry/operators/isNearOperator.js +1 -1
  277. package/geometry/operators/reshapeOperator.js +1 -1
  278. package/geometry/operators/support/jsonConverter.js +1 -1
  279. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  280. package/geometry/support/ellipseUtils.js +2 -0
  281. package/interfaces.d.ts +15 -18
  282. package/kernel.js +1 -1
  283. package/layers/LinkChartLayer.js +1 -1
  284. package/layers/ParquetLayer.js +1 -1
  285. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  286. package/layers/list/LayerItemCollection.d.ts +1 -0
  287. package/layers/list/types.d.ts +5 -1
  288. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  289. package/layers/orientedImagery/queries.js +1 -1
  290. package/layers/support/TimeSeriesCalculation.d.ts +1 -1
  291. package/layers/support/TimeSeriesCalculation.js +1 -1
  292. package/layers/support/dataSeriesUtils.d.ts +10 -0
  293. package/layers/support/timeSeriesUtils.js +17 -6
  294. package/libs/lyr3d/Lyr3DModule.js +1 -1
  295. package/networks/UtilityNetwork.d.ts +15 -0
  296. package/networks/UtilityNetwork.js +1 -1
  297. package/package.json +4 -4
  298. package/popup/FeatureContent.d.ts +14 -1
  299. package/popup/FeatureContent.js +1 -1
  300. package/popup/FeatureContentCollection.d.ts +4 -10
  301. package/popup/FeatureContentCollection.js +1 -1
  302. package/popup/actions.js +1 -1
  303. package/popup/support/featureUtils.js +1 -1
  304. package/renderers/support/RenderingInfo.js +1 -1
  305. package/renderers/support/renderingInfoUtils.js +1 -1
  306. package/renderers/visualVariables/SizeVariable.d.ts +16 -20
  307. package/renderers/visualVariables/support/SizeStop.d.ts +6 -2
  308. package/rest/networks/support/TraceLocation.js +1 -1
  309. package/rest/networks/support/TraceResult.d.ts +7 -0
  310. package/rest/networks/support/TraceResult.js +1 -1
  311. package/smartMapping/renderers/color.js +1 -1
  312. package/smartMapping/renderers/opacity.js +1 -1
  313. package/smartMapping/renderers/size.js +1 -1
  314. package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
  315. package/smartMapping/statistics/histogramForTimeSeries.d.ts +11 -0
  316. package/smartMapping/statistics/histogramForTimeSeries.js +2 -0
  317. package/smartMapping/statistics/summaryStatisticsForTimeSeries.d.ts +11 -0
  318. package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +2 -0
  319. package/smartMapping/statistics/support/timeSeriesUtils.js +24 -0
  320. package/smartMapping/statistics/types.d.ts +50 -0
  321. package/support/tests/serviceMockDependencies.js +1 -1
  322. package/support/tests/setupServiceMocksMesh.js +1 -1
  323. package/symbols/cim/CIMPlacements.js +1 -1
  324. package/symbols/cim/callouts/calloutAnalysisUtils.js +1 -1
  325. package/symbols/cim/callouts/effects/BackgroundCallout.js +1 -1
  326. package/symbols/cim/callouts/effects/BalloonCallout.js +1 -1
  327. package/symbols/cim/callouts/effects/PointSymbolCallout.js +1 -1
  328. package/symbols/cim/callouts/effects/calloutUtils.js +1 -1
  329. package/symbols/cim/cimAnalyzer.js +1 -1
  330. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  331. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  332. package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
  333. package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
  334. package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
  335. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  336. package/views/2d/engine/webgl/definitions.js +1 -1
  337. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  338. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  339. package/views/2d/engine/webgl/shaderGraph/techniques/animated/ComputedAnimatedParams.js +1 -1
  340. package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
  341. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/CalloutMeshWriterPolicy.js +1 -1
  342. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  343. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextParams.js +1 -1
  344. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  345. package/views/2d/layers/SketchLayerView2D.js +1 -1
  346. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  347. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  348. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  349. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  350. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  351. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  352. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  353. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  354. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  355. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  356. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  357. package/views/2d/layers/features/layerAdapters/labelingUtils.js +1 -1
  358. package/views/2d/layers/features/schema/ExceedsLimitCache.js +1 -1
  359. package/views/2d/layers/features/schema/TimeSchema.js +2 -0
  360. package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
  361. package/views/2d/layers/features/schema/processor/MatcherSchema.js +1 -1
  362. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  363. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  364. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  365. package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
  366. package/views/2d/layers/support/vectorTileDebugUtils.js +1 -1
  367. package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
  368. package/views/2d/types.d.ts +2 -1
  369. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  370. package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
  371. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  372. package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +24 -0
  373. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  374. package/views/3d/analysis/Viewshed/ViewshedObserverManipulatedObject3D.js +1 -1
  375. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  376. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  377. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  378. package/views/3d/camera/constraintUtils.js +1 -1
  379. package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
  380. package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
  381. package/views/3d/interactive/editingTools/tooltipUtils3D.js +1 -1
  382. package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +1 -1
  383. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  384. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  385. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  386. package/views/3d/state/controllers/GroundNavigationController.js +1 -1
  387. package/views/3d/state/controllers/momentum/GroundNavigationMomentumController.js +1 -1
  388. package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
  389. package/views/3d/state/utils/groundNavigationUtils.js +1 -1
  390. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  391. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  392. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +16 -8
  393. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -1
  394. package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +12 -0
  395. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
  396. package/views/3d/webgl-engine/effects/focusArea/FocusArea.glsl.js +1 -1
  397. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  398. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  399. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  400. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  401. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  402. package/views/SelectionManager.d.ts +3 -3
  403. package/views/draw/support/Reshape.js +1 -1
  404. package/views/interactive/options/bindViewToolOptions.js +1 -1
  405. package/views/interactive/sketch/SketchLabelOptions.d.ts +3 -0
  406. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  407. package/views/interactive/sketch/SketchTooltipOptions.d.ts +3 -0
  408. package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
  409. package/views/interactive/sketch/SketchValueOptions.d.ts +3 -0
  410. package/views/interactive/sketch/SketchValueOptions.js +1 -1
  411. package/views/interactive/snapping/SnappingOptions.d.ts +3 -0
  412. package/views/interactive/snapping/SnappingOptions.js +1 -1
  413. package/views/interactive/snapping/snappingUtils.js +1 -1
  414. package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
  415. package/views/layers/SketchLayerView.d.ts +34 -0
  416. package/views/layers/SketchLayerView.js +2 -0
  417. package/views/layers/types.d.ts +3 -2
  418. package/views/selection/types.d.ts +15 -4
  419. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  420. package/widgets/BasemapGallery.js +1 -1
  421. package/widgets/Bookmarks/BookmarksViewModel.d.ts +4 -0
  422. package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +5 -1
  423. package/widgets/Bookmarks/types.d.ts +2 -0
  424. package/widgets/Editor/EditorViewModel.d.ts +31 -30
  425. package/widgets/Editor/EditorViewModel.js +1 -1
  426. package/widgets/Editor/components/Settings.js +1 -1
  427. package/widgets/Editor/types.d.ts +44 -0
  428. package/widgets/Editor.d.ts +30 -27
  429. package/widgets/Editor.js +1 -1
  430. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +1 -1
  431. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  432. package/widgets/FeatureTable/support/FeatureStore.d.ts +1 -1
  433. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  434. package/widgets/FeatureTable.d.ts +6 -0
  435. package/widgets/FeatureTable.js +1 -1
  436. package/widgets/Histogram/types.d.ts +10 -2
  437. package/widgets/HistogramRangeSlider/types.d.ts +4 -1
  438. package/widgets/LayerList/LayerListViewModel.d.ts +2 -1
  439. package/widgets/Legend/LegendViewModel.d.ts +2 -0
  440. package/widgets/Legend/styles/card/CardView.d.ts +2 -0
  441. package/widgets/Legend/styles/classic/ClassicView.d.ts +4 -1
  442. package/widgets/Legend.d.ts +3 -0
  443. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +7 -0
  444. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  445. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  446. package/widgets/OrientedImageryViewer/support/VideoFeatureCache.js +2 -0
  447. package/widgets/OrientedImageryViewer/types.d.ts +9 -0
  448. package/widgets/OrientedImageryViewer.d.ts +7 -0
  449. package/widgets/OrientedImageryViewer.js +2 -2
  450. package/widgets/PanoramicVideoViewer.js +1 -1
  451. package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
  452. package/widgets/ScaleRangeSlider/types.d.ts +9 -2
  453. package/widgets/Sketch/SketchViewModel.d.ts +32 -1
  454. package/widgets/Sketch/SketchViewModel.js +1 -1
  455. package/widgets/Sketch.d.ts +27 -1
  456. package/widgets/Sketch.js +1 -1
  457. package/widgets/Slider/types.d.ts +58 -13
  458. package/widgets/Slider.d.ts +6 -0
  459. package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.d.ts +2 -0
  460. package/widgets/smartMapping/ClassedColorSlider/ClassedColorSliderViewModel.d.ts +2 -0
  461. package/widgets/smartMapping/ClassedSizeSlider/ClassedSizeSliderViewModel.d.ts +2 -0
  462. package/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel.d.ts +2 -0
  463. package/widgets/smartMapping/ColorSlider/ColorSliderViewModel.d.ts +2 -0
  464. package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.d.ts +2 -0
  465. package/widgets/smartMapping/OpacitySlider/OpacitySliderViewModel.d.ts +2 -0
  466. package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.d.ts +3 -0
  467. package/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel.d.ts +2 -0
  468. package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +2 -0
  469. package/widgets/smartMapping/types.d.ts +30 -7
  470. package/widgets/support/FilterBuilder/FilterBuilderViewModel.d.ts +21 -11
  471. package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +1 -1
  472. package/widgets/support/FilterBuilder/types.d.ts +28 -0
  473. package/widgets/support/FilterBuilder.js +1 -1
  474. package/widgets/support/FilterCondition/FilterConditionViewModel.d.ts +24 -0
  475. package/widgets/support/FilterCondition/FilterConditionViewModel.js +1 -1
  476. package/widgets/support/FilterCondition/types.d.ts +16 -1
  477. package/widgets/support/FilterCondition.js +1 -1
  478. package/widgets/support/SnappingControls/snappingLayerListUtils.js +1 -1
  479. package/widgets/support/iconUtils.js +1 -1
  480. package/assets/esri/core/workers/chunks/0606ab6fdfc1dfea3856.js +0 -1
  481. package/assets/esri/core/workers/chunks/078dcd17f46403d44b24.js +0 -1
  482. package/assets/esri/core/workers/chunks/1289204f8ca96032c17a.js +0 -1
  483. package/assets/esri/core/workers/chunks/12b5a645c0987a0efe54.js +0 -2
  484. package/assets/esri/core/workers/chunks/152fe3d6ad7aebbd23d1.js +0 -1
  485. package/assets/esri/core/workers/chunks/17b938ba49fb1e7ab8c4.js +0 -1
  486. package/assets/esri/core/workers/chunks/1dbb3e25e005a8220779.js +0 -2
  487. package/assets/esri/core/workers/chunks/3d6fef25af7e1a51e1bd.js +0 -1
  488. package/assets/esri/core/workers/chunks/3ef367c9b7bf1588307d.js +0 -1
  489. package/assets/esri/core/workers/chunks/5f4feca26102088ea565.js +0 -1
  490. package/assets/esri/core/workers/chunks/74211d096cc3296e0968.js +0 -1
  491. package/assets/esri/core/workers/chunks/7926faab76a721a2e1c4.js +0 -1
  492. package/assets/esri/core/workers/chunks/ad28486bc6afaa346de5.js +0 -1
  493. package/assets/esri/core/workers/chunks/ad29c729e90b5866713c.js +0 -1
  494. package/assets/esri/core/workers/chunks/b72a2514aa4cc4ae7d1b.js +0 -1
  495. package/assets/esri/core/workers/chunks/bb51cf52b8ea8283f4f8.js +0 -1
  496. package/assets/esri/core/workers/chunks/be761749f8d77fbd9df5.js +0 -1
  497. package/assets/esri/core/workers/chunks/dbfd25aa0d19aed5890c.js +0 -1
  498. package/assets/esri/core/workers/chunks/de28a86775235bd5d3c4.js +0 -2
  499. package/assets/esri/core/workers/chunks/f6cfc901267a229de7a1.js +0 -2
  500. package/assets/esri/core/workers/chunks/fb147097149a89e671ff.js +0 -1
  501. package/support/revision.js +0 -2
  502. /package/assets/esri/core/workers/chunks/{1dbb3e25e005a8220779.js.LICENSE.txt → 1b946714ca4a1a7359d4.js.LICENSE.txt} +0 -0
  503. /package/assets/esri/core/workers/chunks/{f6cfc901267a229de7a1.js.LICENSE.txt → 2a1ec30f9ad305763f81.js.LICENSE.txt} +0 -0
  504. /package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js.LICENSE.txt → 590e6c70206122e4cc3c.js.LICENSE.txt} +0 -0
  505. /package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js.LICENSE.txt → 68d8ae42ab71d01a70a5.js.LICENSE.txt} +0 -0
  506. /package/assets/esri/core/workers/chunks/{de28a86775235bd5d3c4.js.LICENSE.txt → 8dc1c3042267618fd710.js.LICENSE.txt} +0 -0
  507. /package/assets/esri/core/workers/chunks/{12b5a645c0987a0efe54.js.LICENSE.txt → 96c50a0dda0f1503ef92.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{extractCalloutData as e,createPointGeometry as t,center as n,contains as r,distance as i,autoSnap as a,createLeaderPath as o}from"./calloutUtils.js";class s{constructor(){this.type=`CIMPointSymbolCallout`}static{this.instance=null}static local(){return s.instance===null&&(s.instance=new s),s.instance}execute(e,t,n){if(t?.type!==`CIMPointSymbolCallout`)throw Error(`Invalid effect type for PointSymbolCalloutEffect`);return new c(e,t,n)}}class c{constructor(e,t,n){let{geomUnitsPerPoint:r}=n;if(!r)throw Error(`geomUnitsPerPoint is required in EffectExecutionContext for PointSymbolCalloutEffect`);let i=r*(n.scaleFactor??1);this._inputGeometries=e,this._part=t.part,this._leaderTolerance=(t.leaderTolerance??0)*i,this._leaderOffset=(t.leaderOffset??0)*i,this._lineStyle=t.lineStyle,this._calloutContext=n.callout}next(){let s;for(;s=this._inputGeometries.next();){let c=e(s,this._calloutContext);if(c)return this._part===`marker`?t(n(c.bounds),s.yFactor):r(c.bounds,c.layoutAnchor)||i(a(c.bounds,c.layoutAnchor),c.layoutAnchor)<this._leaderTolerance?null:o(c.bounds,c.layoutAnchor,this._lineStyle,this._leaderOffset,s.yFactor,c.anchor)}return null}}export{s as default};
2
+ import{extractCalloutData as e,createPointGeometry as t,center as n,contains as r,getLeaderConnectionPoint as i,distance as a,createLeaderPath as o}from"./calloutUtils.js";class s{constructor(){this.type=`CIMPointSymbolCallout`}static{this.instance=null}static local(){return s.instance===null&&(s.instance=new s),s.instance}execute(e,t,n){if(t?.type!==`CIMPointSymbolCallout`)throw Error(`Invalid effect type for PointSymbolCalloutEffect`);return new c(e,t,n)}}class c{constructor(e,t,n){let{geomUnitsPerPoint:r}=n;if(!r)throw Error(`geomUnitsPerPoint is required in EffectExecutionContext for PointSymbolCalloutEffect`);let i=r*(n.scaleFactor??1);this._inputGeometries=e,this._part=t.part,this._leaderTolerance=(t.leaderTolerance??0)*i,this._leaderOffset=(t.leaderOffset??0)*i,this._gap=(t.gap??0)*i,this._geomUnitsPerPoint=i,this._lineStyle=t.lineStyle,this._calloutContext=n.callout}next(){let s;for(;s=this._inputGeometries.next();){let c=e(s,this._calloutContext);if(!c)continue;if(this._part===`marker`)return t(n(c.bounds),s.yFactor);if(r(c.bounds,c.anchor))return null;let l=i(c.bounds,c.anchor,this._lineStyle,this._gap);return a(l,c.anchor)<this._leaderTolerance?null:o(c.bounds,c.anchor,this._lineStyle,this._leaderOffset,this._gap,s.yFactor,this._geomUnitsPerPoint)}return null}}export{s as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{GeometryCursor as e}from"../../../../geometry/GeometryCursor.js";function t(e,t){let{relativeAnchor:n,relativeLayoutAnchor:r,absoluteAnchor:i,bodyBounds:a}=t??{},o=e.clone();if(o.geometryType===`esriGeometryPoint`||o.geometryType===`esriGeometryMultipoint`){if(!o.nextPath()||(o.seekPathStart(),!o.nextPoint()))return null;let e=i??(n?{x:o.x+n.x,y:o.y+n.y}:{x:o.x,y:o.y});return{anchor:e,layoutAnchor:i??(r?{x:o.x+r.x,y:o.y+r.y}:e),bounds:a?s(a,o.x,o.y):{xmin:o.x,ymin:o.y,xmax:o.x,ymax:o.y}}}if(a&&o.totalSize===1&&o.totalPoints===1){if(!o.seekPath(0)||(o.seekPathStart(),!o.nextPoint()))return null;let e=i??(n?{x:o.x+n.x,y:o.y+n.y}:{x:o.x,y:o.y});return{anchor:e,layoutAnchor:i??(r?{x:o.x+r.x,y:o.y+r.y}:e),bounds:s(a,o.x,o.y)}}if(o.totalSize<2)return null;function s(e,t,n){return{xmin:e.xmin+t,ymin:e.ymin+n,xmax:e.xmax+t,ymax:e.ymax+n}}let c=o.totalSize-1,l={xmin:1/0,ymin:1/0,xmax:-1/0,ymax:-1/0};for(let e=0;e<c;e++){if(!o.seekPath(e))return null;for(o.seekPathStart();o.nextPoint();)g(l,o.x,o.y)}return!_(l)||!o.seekPath(c)||(o.seekPathStart(),!o.nextPoint())?null:{anchor:i??{x:o.x,y:o.y},layoutAnchor:i??{x:o.x,y:o.y},bounds:l}}function n(e,t){return{left:(e?.left??0)*t,right:(e?.right??0)*t,top:(e?.top??0)*t,bottom:(e?.bottom??0)*t}}function r(e,t){return{xmin:e.xmin-t.left,ymin:e.ymin-t.bottom,xmax:e.xmax+t.right,ymax:e.ymax+t.top}}function i(e,t){return t.x>=e.xmin&&t.x<=e.xmax&&t.y>=e.ymin&&t.y<=e.ymax}function a(e){return{x:.5*(e.xmin+e.xmax),y:.5*(e.ymin+e.ymax)}}function o(e,t){let n,r,i=.5*(e.xmin+e.xmax),a=.5*(e.ymin+e.ymax);return n=t.x<e.xmin?e.xmin:t.x>e.xmax?e.xmax:t.x<i?Math.abs(t.x-e.xmin)<Math.abs(t.x-i)?e.xmin:i:Math.abs(t.x-e.xmax)<Math.abs(t.x-i)?e.xmax:i,r=t.y<e.ymin?e.ymin:t.y>e.ymax?e.ymax:t.y<a?Math.abs(t.y-e.ymin)<Math.abs(t.y-a)?e.ymin:a:Math.abs(t.y-e.ymax)<Math.abs(t.y-a)?e.ymax:a,{x:n,y:r}}function s(e,t){let n=.5*(e.xmin+e.xmax),r=.5*(e.ymin+e.ymax);if(t.x>=e.xmin&&t.x<=e.xmax){if(t.y<=e.ymin)return`bottom`;if(t.y>=e.ymax)return`top`}else if(t.x<e.xmin)return`left`;else if(t.x>e.xmax)return`right`;let i=[{side:`left`,distance:Math.abs(t.x-e.xmin)},{side:`right`,distance:Math.abs(t.x-e.xmax)},{side:`bottom`,distance:Math.abs(t.y-e.ymin)},{side:`top`,distance:Math.abs(t.y-e.ymax)}];return i.sort((e,t)=>e.distance-t.distance),i[0].distance===i[1].distance?t.x<n?`left`:t.y<r?`bottom`:`top`:i[0].side}function c(e,t,n,r,i,a=t){let c=n??0,l=s(e,t),u=c===4?N(e,t,l):o(e,t);return v(I(M(r>0?F(u,l,r):u,a,e,l,c,r)),i)}function l(e,t){return y([{x:e.xmin,y:e.ymin},{x:e.xmin,y:e.ymax},{x:e.xmax,y:e.ymax},{x:e.xmax,y:e.ymin},{x:e.xmin,y:e.ymin}],t)}function u(e,t,n,r){switch(i(e,t)?`left`:s(e,t)){case`left`:return v([{x:e.xmin-n,y:e.ymin},{x:e.xmin-n,y:e.ymax}],r);case`top`:return v([{x:e.xmin,y:e.ymax+n},{x:e.xmax,y:e.ymax+n}],r);case`right`:return v([{x:e.xmax+n,y:e.ymax},{x:e.xmax+n,y:e.ymin}],r);case`bottom`:return v([{x:e.xmax,y:e.ymin-n},{x:e.xmin,y:e.ymin-n}],r)}}function d(t,n){let r=e.createEmptyOptimizedCIM(`esriGeometryPoint`,!1,!1,n);return r.startPath(),r.pushXY(t.x,n*t.y),r.reset(),r}function f(e,t,n,r,a,o=null,s=t){let c=p(e,n),l=i(c,s)?null:D(c,s,t,n,r,o);switch(n){case 1:return x(c,l,a);case 2:return w(c,l,a);default:return b(c,l,a)}}function p(e,t){if(t!==2)return e;let n=.5*(e.xmin+e.xmax),r=.5*(e.ymin+e.ymax),i=.5*(e.xmax-e.xmin)*Math.SQRT2,a=.5*(e.ymax-e.ymin)*Math.SQRT2;return{xmin:n-i,ymin:r-a,xmax:n+i,ymax:r+a}}function m(e,t){return t===1?Math.min(e.xmax-e.xmin,e.ymax-e.ymin)/8:0}function h(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function g(e,t,n){e.xmin=Math.min(e.xmin,t),e.ymin=Math.min(e.ymin,n),e.xmax=Math.max(e.xmax,t),e.ymax=Math.max(e.ymax,n)}function _(e){return Number.isFinite(e.xmin)&&Number.isFinite(e.ymin)&&Number.isFinite(e.xmax)&&Number.isFinite(e.ymax)}function v(t,n){let r=e.createEmptyOptimizedCIM(`esriGeometryPolyline`,!1,!1,n);r.startPath();for(let e of t)r.pushXY(e.x,n*e.y);return r.reset(),r}function y(t,n){let r=e.createEmptyOptimizedCIM(`esriGeometryPolygon`,!1,!1,n);r.startPath();for(let e of L(t))r.pushXY(e.x,n*e.y);return r.reset(),r}function b(e,t,n){let r=[{x:e.xmin,y:e.ymin},{x:e.xmin,y:e.ymax},{x:e.xmax,y:e.ymax},{x:e.xmax,y:e.ymin},{x:e.xmin,y:e.ymin}];return t&&k(r,t),y(r,n)}function x(e,t,n){let r=S(e);return t&&k(r,t),y(r,n)}function S(e){let t=m(e,1),n=[{x:e.xmin+t,y:e.ymin}];return O(n,e.xmin+t,e.ymin+t,t,-Math.PI/2,-Math.PI),n.push({x:e.xmin,y:e.ymax-t}),O(n,e.xmin+t,e.ymax-t,t,Math.PI,Math.PI/2),n.push({x:e.xmax-t,y:e.ymax}),O(n,e.xmax-t,e.ymax-t,t,Math.PI/2,0),n.push({x:e.xmax,y:e.ymin+t}),O(n,e.xmax-t,e.ymin+t,t,0,-Math.PI/2),n.push(n[0]),n}function C(e,t){return y(T(e),t)}function w(e,t,n){if(!t)return C(e,n);let r=T(e),i=r.length,a=E(r,t.points[0]),o=E(r,t.points[t.points.length-1]),s=(o-a+i)%i,c=i-s;return s<=c?r.splice(a+1,Math.max(s-1,0),...t.points):r.splice(o+1,Math.max(c-1,0),...t.points.slice().reverse()),y(r,n)}function T(e){let t=.5*(e.xmin+e.xmax),n=.5*(e.ymin+e.ymax),r=.5*(e.xmax-e.xmin),i=.5*(e.ymax-e.ymin),a=[];for(let e=0;e<32;e++){let o=2*Math.PI*e/32;a.push({x:t+r*Math.cos(o),y:n+i*Math.sin(o)})}return a}function E(e,t){let n=0,r=1/0;for(let i=0;i<e.length;i++){let a=h(e[i],t);a<r&&(r=a,n=i)}return n}function D(e,t,n,r,i,a){let o=e.xmax-e.xmin,s=e.ymax-e.ymin,c=e.xmin+o/2,l=e.ymin+s/2,u=-1;if(t.x>=e.xmin&&t.x<=e.xmax?t.y<=e.ymin?u=t.x<=c?7:6:t.y>=e.ymax&&(u=t.x<=c?2:3):u=t.x<e.xmin?t.y<=l?0:1:t.y<=l?5:4,u<0)return null;let d=j(e)[u];if(h(d,t)<i)return null;let f,p,g=m(e,r),_=r===1?o/4-g:o/2,v=r===1?s/4-g:s/2,y=a==null?o/8:Math.min(a/2,Math.max(_,0)),b=a==null?s/8:Math.min(a/2,Math.max(v,0));switch(u){case 0:case 1:f={x:d.x,y:d.y-b},p={x:d.x,y:d.y+b};break;case 2:case 3:f={x:d.x-y,y:d.y},p={x:d.x+y,y:d.y};break;case 4:case 5:f={x:d.x,y:d.y+b},p={x:d.x,y:d.y-b};break;default:f={x:d.x+y,y:d.y},p={x:d.x-y,y:d.y}}return{index:u,points:[f,n,p]}}function O(e,t,n,r,i,a){for(let o=1;o<=4;o++){let s=i+(a-i)*o/4;e.push({x:t+r*Math.cos(s),y:n+r*Math.sin(s)})}}function k(e,t){let[n,,r]=t.points;for(let i=0;i<e.length-1;i++)if(A(n,e[i],e[i+1])&&A(r,e[i],e[i+1])){e.splice(i+1,0,...t.points);return}}function A(e,t,n){let r=1e-9,i=(e.x-t.x)*(n.y-t.y)-(e.y-t.y)*(n.x-t.x);return Math.abs(i)>r?!1:e.x>=Math.min(t.x,n.x)-r&&e.x<=Math.max(t.x,n.x)+r&&e.y>=Math.min(t.y,n.y)-r&&e.y<=Math.max(t.y,n.y)+r}function j(e){let t=e.xmax-e.xmin,n=e.ymax-e.ymin;return[{x:e.xmin,y:e.ymin+n/4},{x:e.xmin,y:e.ymax-n/4},{x:e.xmin+t/4,y:e.ymax},{x:e.xmax-t/4,y:e.ymax},{x:e.xmax,y:e.ymax-n/4},{x:e.xmax,y:e.ymin+n/4},{x:e.xmax-t/4,y:e.ymin},{x:e.xmin+t/4,y:e.ymin}]}function M(e,t,n,r,i,a){let o=Math.max(a,Math.min(n.xmax-n.xmin,n.ymax-n.ymin)/4);switch(i){case 1:{if(r===`left`||r===`right`){let n=.5*(e.x+t.x);return[e,{x:n,y:e.y},{x:n,y:t.y},t]}let n=.5*(e.y+t.y);return[e,{x:e.x,y:n},{x:t.x,y:n},t]}case 2:{let n=F(e,r,o);return[e,n,P(n,t,r),t]}case 3:{let n=F(e,r,o);if(r===`left`||r===`right`){let r=.5*(n.x+t.x);return[e,n,{x:r,y:n.y},{x:r,y:t.y},t]}let i=.5*(n.y+t.y);return[e,n,{x:n.x,y:i},{x:t.x,y:i},t]}case 4:{let e=r===`top`?n.ymax:n.ymin;return[{x:n.xmin,y:e},{x:n.xmax,y:e},t]}case 5:case 6:{let n=i===5?-1:1,a=h(e,t)/4||o,s={x:.5*(e.x+t.x),y:.5*(e.y+t.y)};return r===`left`||r===`right`?[e,{x:s.x,y:s.y+n*a},t]:[e,{x:s.x+n*a,y:s.y},t]}default:return[e,t]}}function N(e,t,n){return n===`left`||n===`right`?{x:n===`left`?e.xmin:e.xmax,y:e.ymin}:{x:R(t.x,e.xmin,e.xmax),y:n===`top`?e.ymax:e.ymin}}function P(e,t,n){return n===`left`||n===`right`?{x:e.x,y:t.y}:{x:t.x,y:e.y}}function F(e,t,n){switch(t){case`left`:return{x:e.x-n,y:e.y};case`top`:return{x:e.x,y:e.y+n};case`right`:return{x:e.x+n,y:e.y};case`bottom`:return{x:e.x,y:e.y-n}}}function I(e){return e.filter((t,n)=>n===0||t.x!==e[n-1].x||t.y!==e[n-1].y)}function L(e){if(!e.length)return e;let t=e[0],n=e[e.length-1];return t.x===n.x&&t.y===n.y?e:[...e,t]}function R(e,t,n){return Math.max(t,Math.min(n,e))}export{o as autoSnap,a as center,i as contains,u as createAccentBar,f as createBalloonGeometry,c as createLeaderPath,d as createPointGeometry,l as createRectangle,h as distance,g as expandBounds,t as extractCalloutData,p as getBalloonBodyBounds,m as getBalloonCornerRadius,r as inflateBounds,_ as isFiniteBounds,s as resolveLeaderSide,n as scaleMargins};
2
+ import{GeometryCursor as e}from"../../../../geometry/GeometryCursor.js";import{intersectEllipseDirection as t,intersectEllipseSegment as n}from"../../../../geometry/support/ellipseUtils.js";function r(e,t){let{relativeAnchor:n,relativeLayoutAnchor:r,absoluteAnchor:i,bodyBounds:a}=t??{},o=e.clone();if(o.geometryType===`esriGeometryPoint`||o.geometryType===`esriGeometryMultipoint`){if(!o.nextPath()||(o.seekPathStart(),!o.nextPoint()))return null;let e=i??(n?{x:o.x+n.x,y:o.y+n.y}:{x:o.x,y:o.y});return{anchor:e,layoutAnchor:i??(r?{x:o.x+r.x,y:o.y+r.y}:e),bounds:a?s(a,o.x,o.y):{xmin:o.x,ymin:o.y,xmax:o.x,ymax:o.y}}}if(a&&o.totalSize===1&&o.totalPoints===1){if(!o.seekPath(0)||(o.seekPathStart(),!o.nextPoint()))return null;let e=i??(n?{x:o.x+n.x,y:o.y+n.y}:{x:o.x,y:o.y});return{anchor:e,layoutAnchor:i??(r?{x:o.x+r.x,y:o.y+r.y}:e),bounds:s(a,o.x,o.y)}}if(o.totalSize<2)return null;function s(e,t,n){return{xmin:e.xmin+t,ymin:e.ymin+n,xmax:e.xmax+t,ymax:e.ymax+n}}let c=o.totalSize-1,l={xmin:1/0,ymin:1/0,xmax:-1/0,ymax:-1/0};for(let e=0;e<c;e++){if(!o.seekPath(e))return null;for(o.seekPathStart();o.nextPoint();)b(l,o.x,o.y)}return!x(l)||!o.seekPath(c)||(o.seekPathStart(),!o.nextPoint())?null:{anchor:i??{x:o.x,y:o.y},layoutAnchor:i??{x:o.x,y:o.y},bounds:l}}function i(e,t){return{left:(e?.left??0)*t,right:(e?.right??0)*t,top:(e?.top??0)*t,bottom:(e?.bottom??0)*t}}function a(e,t){return{xmin:e.xmin-t.left,ymin:e.ymin-t.bottom,xmax:e.xmax+t.right,ymax:e.ymax+t.top}}function o(e,t){return t.x>=e.xmin&&t.x<=e.xmax&&t.y>=e.ymin&&t.y<=e.ymax}function s(e){return{x:.5*(e.xmin+e.xmax),y:.5*(e.ymin+e.ymax)}}function c(e,t,n=0){let r,i,a=e.xmin-n,o=e.ymin-n,s=e.xmax+n,c=e.ymax+n,l=.5*(a+s),u=.5*(o+c);return r=t.x<a?a:t.x>s?s:t.x<l?Math.abs(t.x-a)<Math.abs(t.x-l)?a:l:Math.abs(t.x-s)<Math.abs(t.x-l)?s:l,i=t.y<o?o:t.y>c?c:t.y<u?Math.abs(t.y-o)<Math.abs(t.y-u)?o:u:Math.abs(t.y-c)<Math.abs(t.y-u)?c:u,{x:r,y:i}}function l(e,t,n,r,i,a,o=1,s=!1,c=e){let l=B(e,t,n??0,i,9*o,s,c);return S(q(r>0?K(l,r):l),a)}function u(e,t,n,r,i=!1,a=e){let o=n??0;return o===0&&!i?c(e,t,r):d(V(e,t,o,r,a),t,o)}function d(e,t,n){let r=H(e.start,e.end);switch(n){case 1:case 2:case 3:return r;case 4:return t.y>r.y?e.end:e.start;case 5:case 6:return y(e.start,t)>y(e.end,t)?e.end:e.start;default:return y(e.start,t)<y(e.end,t)?e.start:e.end}}function f(e,t){return C([{x:e.xmin,y:e.ymin},{x:e.xmin,y:e.ymax},{x:e.xmax,y:e.ymax},{x:e.xmax,y:e.ymin},{x:e.xmin,y:e.ymin}],t)}function p(e,t,n,r,i=null,a=e){let{start:o,end:s}=V(e,t,i??0,n,a);return S([o,s],r)}function m(t,n){let r=e.createEmptyOptimizedCIM(`esriGeometryPoint`,!1,!1,n);return r.startPath(),r.pushXY(t.x,n*t.y),r.reset(),r}function h(e,t,n,r,i,a=null,s=t,c=!0){let l=_(e,n),u=!c||o(l,s)?null:P(l,e,s,t,n,r,a);switch(n){case 1:return T(l,u,i);case 2:return O(l,u,i);default:return w(l,u,i)}}function g(e,t,n,r,i,a=null,s=t){let c=_(e,n),l=o(c,s)?null:P(c,e,s,t,n,r,a);return l?C(l.points,i):null}function _(e,t){if(t!==2)return e;let n=.5*(e.xmin+e.xmax),r=.5*(e.ymin+e.ymax),i=.5*(e.ymax-e.ymin),a=Math.max(.5*(e.xmax-e.xmin)*Math.SQRT2,1.25*i);return{xmin:n-a,ymin:r-i,xmax:n+a,ymax:r+i}}function v(e,t){return t===1?Math.min(e.xmax-e.xmin,e.ymax-e.ymin)/8:0}function y(e,t){return Math.hypot(t.x-e.x,t.y-e.y)}function b(e,t,n){e.xmin=Math.min(e.xmin,t),e.ymin=Math.min(e.ymin,n),e.xmax=Math.max(e.xmax,t),e.ymax=Math.max(e.ymax,n)}function x(e){return Number.isFinite(e.xmin)&&Number.isFinite(e.ymin)&&Number.isFinite(e.xmax)&&Number.isFinite(e.ymax)}function S(t,n){let r=e.createEmptyOptimizedCIM(`esriGeometryPolyline`,!1,!1,n);r.startPath();for(let e of t)r.pushXY(e.x,n*e.y);return r.reset(),r}function C(t,n){let r=e.createEmptyOptimizedCIM(`esriGeometryPolygon`,!1,!1,n);r.startPath();for(let e of J(t))r.pushXY(e.x,n*e.y);return r.reset(),r}function w(e,t,n){let r=[{x:e.xmin,y:e.ymin},{x:e.xmin,y:e.ymax},{x:e.xmax,y:e.ymax},{x:e.xmax,y:e.ymin},{x:e.xmin,y:e.ymin}];return t&&L(r,t),C(r,n)}function T(e,t,n){let r=E(e);return t&&L(r,t),C(r,n)}function E(e){let t=v(e,1),n=[{x:e.xmin+t,y:e.ymin}];return I(n,e.xmin+t,e.ymin+t,t,-Math.PI/2,-Math.PI),n.push({x:e.xmin,y:e.ymax-t}),I(n,e.xmin+t,e.ymax-t,t,Math.PI,Math.PI/2),n.push({x:e.xmax-t,y:e.ymax}),I(n,e.xmax-t,e.ymax-t,t,Math.PI/2,0),n.push({x:e.xmax,y:e.ymin+t}),I(n,e.xmax-t,e.ymin+t,t,0,-Math.PI/2),n.push(n[0]),n}function D(e,t){return C(A(e),t)}function O(e,t,n){if(!t)return D(e,n);let r=j(e,t.points[0]),i=j(e,t.points[t.points.length-1]),a=N(i-r),o=Math.min(a,2*Math.PI-a),s=a<=Math.PI?t.points.slice():[t.points[t.points.length-1],t.points[1],t.points[0]],c=a<=Math.PI?i:r,l=2*Math.PI-o,u=Math.max(1,Math.ceil(k*l/(2*Math.PI)));for(let t=1;t<u;t++)s.push(M(e,c+l*t/u));return C(s,n)}const k=32;function A(e){let t=[];for(let n=0;n<32;n++)t.push(M(e,2*Math.PI*n/32));return t}function j(e,t){let n=.5*(e.xmin+e.xmax),r=.5*(e.ymin+e.ymax),i=.5*(e.xmax-e.xmin),a=.5*(e.ymax-e.ymin);return N(Math.atan2((t.y-r)/a,(t.x-n)/i))}function M(e,t){let n=.5*(e.xmin+e.xmax),r=.5*(e.ymin+e.ymax),i=.5*(e.xmax-e.xmin),a=.5*(e.ymax-e.ymin);return{x:n+i*Math.cos(t),y:r+a*Math.sin(t)}}function N(e){let t=e%(2*Math.PI);return t<0?t+2*Math.PI:t}function P(e,t,n,r,i,a,o){if(i===2)return F(e,t,n,r,a,o);let s=e.xmax-e.xmin,c=e.ymax-e.ymin,l=e.xmin+s/2,u=e.ymin+c/2,d=-1;if(n.x>=e.xmin&&n.x<=e.xmax?n.y<=e.ymin?d=n.x<=l?7:6:n.y>=e.ymax&&(d=n.x<=l?2:3):d=n.x<e.xmin?n.y<=u?0:1:n.y<=u?5:4,d<0)return null;let f=z(e)[d];if(y(f,n)<a)return null;let p,m,h=v(e,i),g=i===1?s/4-h:s/2,_=i===1?c/4-h:c/2,b=o==null?s/8:Math.min(o/2,Math.max(g,0)),x=o==null?c/8:Math.min(o/2,Math.max(_,0));switch(d){case 0:case 1:p={x:f.x,y:f.y-x},m={x:f.x,y:f.y+x};break;case 2:case 3:p={x:f.x-b,y:f.y},m={x:f.x+b,y:f.y};break;case 4:case 5:p={x:f.x,y:f.y+x},m={x:f.x,y:f.y-x};break;default:p={x:f.x+b,y:f.y},m={x:f.x-b,y:f.y}}return{index:d,points:[p,r,m]}}function F(e,r,i,a,o,s){let c={x:.5*(e.xmin+e.xmax),y:.5*(e.ymin+e.ymax)},l=i.x-c.x,u=i.y-c.y,d=Math.hypot(l,u);if(d===0)return null;let f={x:l/d,y:u/d};if(y(t(e,f),i)<o)return null;let p={x:-f.y,y:f.x},m=y(c,t(e,p)),h=Math.min(r.xmax-r.xmin,r.ymax-r.ymin)/8,g=Math.min(s==null?h:s/2,m),_={x:c.x+p.x*g,y:c.y+p.y*g},v={x:c.x-p.x*g,y:c.y-p.y*g};return{index:-1,points:[n(e,i,_),a,n(e,i,v)]}}function I(e,t,n,r,i,a){for(let o=1;o<=4;o++){let s=i+(a-i)*o/4;e.push({x:t+r*Math.cos(s),y:n+r*Math.sin(s)})}}function L(e,t){let[n,,r]=t.points;for(let i=0;i<e.length-1;i++)if(R(n,e[i],e[i+1])&&R(r,e[i],e[i+1])){e.splice(i+1,0,...t.points);return}}function R(e,t,n){let r=1e-9,i=(e.x-t.x)*(n.y-t.y)-(e.y-t.y)*(n.x-t.x);return Math.abs(i)>r?!1:e.x>=Math.min(t.x,n.x)-r&&e.x<=Math.max(t.x,n.x)+r&&e.y>=Math.min(t.y,n.y)-r&&e.y<=Math.max(t.y,n.y)+r}function z(e){let t=e.xmax-e.xmin,n=e.ymax-e.ymin;return[{x:e.xmin,y:e.ymin+n/4},{x:e.xmin,y:e.ymax-n/4},{x:e.xmin+t/4,y:e.ymax},{x:e.xmax-t/4,y:e.ymax},{x:e.xmax,y:e.ymax-n/4},{x:e.xmax,y:e.ymin+n/4},{x:e.xmax-t/4,y:e.ymin},{x:e.xmin+t/4,y:e.ymin}]}function B(e,t,n,r,i,a,o){if(n===0&&!a)return[c(e,t,r),t];let s=V(e,t,n,r,o),l=d(s,t,n);switch(n){case 1:return[l,t];case 2:return[l,U(l,s.onLeft,i),t];case 3:{let e=U(l,s.onLeft,i),n=y(s.start,t)<y(s.end,t)?s.start:s.end;return[l,e,{x:e.x,y:n.y},t]}case 4:return[{x:s.onLeft?e.xmax:e.xmin,y:l.y},l,t];case 5:case 6:return W(l,t,n===5);default:return[l,t]}}function V(e,t,n,r,i){let a=t.x<=.5*(i.xmin+i.xmax);n===3&&(a=!a);let o=a?e.xmin-r:e.xmax+r;return{start:{x:o,y:e.ymin},end:{x:o,y:e.ymax},onLeft:a}}function H(e,t){return{x:.5*(e.x+t.x),y:.5*(e.y+t.y)}}function U(e,t,n){return{x:e.x+(t?-n:n),y:e.y}}function W(e,t,n){let r=y(e,t);if(r===0)return[e];let i=.75*r,a=H(e,t),o=Math.sqrt(i*i-.25*r*r),s=-(t.y-e.y)/r,c=(t.x-e.x)/r,l=n?-1:1,u=a.x+l*o*s,d=a.y+l*o*c,f=Math.atan2(e.y-d,e.x-u),p=Math.atan2(t.y-d,t.x-u)-f;n&&p>0?p-=2*Math.PI:!n&&p<0&&(p+=2*Math.PI);let m=[e];for(let e=1;e<=12;e++){let t=f+p*e/12;m.push({x:u+i*Math.cos(t),y:d+i*Math.sin(t)})}return m[12]=t,m}function G(e,t){let n=t;for(let t=1;t<e.length;t++){let r=e[t-1],i=e[t],a=y(r,i);if(n<a){let o=n/a;return[{x:r.x+o*(i.x-r.x),y:r.y+o*(i.y-r.y)},...e.slice(t)]}n-=a}return[e[e.length-1]]}function K(e,t){return G(e.slice().reverse(),t).reverse()}function q(e){return e.filter((t,n)=>n===0||t.x!==e[n-1].x||t.y!==e[n-1].y)}function J(e){if(!e.length)return e;let t=e[0],n=e[e.length-1];return t.x===n.x&&t.y===n.y?e:[...e,t]}export{c as autoSnap,s as center,o as contains,p as createAccentBar,g as createBalloonDartGeometry,h as createBalloonGeometry,l as createLeaderPath,m as createPointGeometry,f as createRectangle,y as distance,b as expandBounds,r as extractCalloutData,_ as getBalloonBodyBounds,v as getBalloonCornerRadius,u as getLeaderConnectionPoint,a as inflateBounds,x as isFiniteBounds,i as scaleMargins};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{isRGB as e}from"../../core/colorUtils.js";import{getFontFamily as t}from"../../core/fontUtils.js";import"../../core/has.js";import{clone as n}from"../../core/lang.js";import r from"../../core/Logger.js";import{pt2px as i,px2pt as a}from"../../core/screenUtils.js";import{numericHash as o}from"../../core/string.js";import{isCurvedGeometry as s}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as c}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{checkForAnimations as l,globalRotation as u,getAnimationParams as d,handleAbsoluteAnchor as f,handleMarker as p,handleRelativeAnchor as m,getFrameTranslation as h,translate as g,getStaticParam as _,shouldUseAnimatedPath as v}from"./animationUtils.js";import{CIMSymbolInflatedSizeHelper as y,CIMSymbolHelper as b,forEachSymbolLayer as x}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as S}from"./constants.js";import{defaultCIMValues as C}from"./defaultCIMValues.js";import{fitVectorMarker as w}from"./fitVectorMarker.js";import{fromCIMFontStyle as T}from"./fromCIMFontStyle.js";import{OverrideHelper as E}from"./OverrideHelper.js";import{hasRichTextFormattingTags as D}from"./richTextUtils.js";import{getSDFInfo as O,getExtent as k,getSDFMetrics as A,getSDFDimensions as j}from"./SDFHelper.js";import{CIMSymbolUnits as M}from"./types.js";import{colorToArray as N,normalizeAlpha as P,getSize as F,isCIMMarkerStrokePlacement as I,hasStrokeLayer as L,getNumericValue as R,getMaxStrokeWidth as z,getTintColor as B,normalizePrimitiveOverrideProps as V,getDefaultCIMValue as H,getEnum as U,getFillColor as W,getStrokeColor as G,fromCIMFontDecoration as K,getStrokeWidth as q,fromCIMVerticalAlignment as ee,fromCIMHorizontalAlignment as te,getTextCasing as J,isValidCIMValue as ne,uncapitalize as re}from"./utils.js";import{isSupportedCallout as ie,getPointSymbolCalloutTransforms as ae,normalizePointSymbolCalloutScale as oe,normalizeLeaderLineStyle as Y,getPointSymbolCalloutFitProperties as se,normalizeBalloonCalloutStyle as ce}from"./callouts/calloutAnalysisUtils.js";import{EffectHelper as le}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as ue,randomInsidePolygonTextureSize as de}from"../../views/2d/engine/webgl/definitions.js";const X=()=>r.getLogger(`esri.symbols.cim.cimAnalyzer`);function fe(e){let t=e.markerPlacement;return t&&t.angleToLine?1:0}class pe{constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,n,r){if(this._cimLayers=r??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(let t of this._primitiveOverrides){let n=t.valueExpressionInfo;if(n)this._setPoMap(t.primitiveName,t.propertyName,n);else if(t.value!=null){let n=t.value;t.propertyName.includes(`Color`)&&(e(n)&&(n=N(n)),n=P(n)),this._setPoMap(t.primitiveName,t.propertyName,n)}}}return this._analyzeSymbol(t.symbol,n),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case`CIMPointSymbol`:case`CIMLineSymbol`:case`CIMPolygonSymbol`:this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){let n=e?.symbolLayers;if(!n)return;for(let e=0;e<n.length;e++){let t=n[e];t.type===`CIMVectorMarker`&&(n[e]=w(t))}let r=e.effects,i=0,a=F(e)??0;e.type===`CIMPointSymbol`&&e.angleAlignment===`Map`&&(i=1);let o={transform:[0,0,0,1],fromColor:[1,1,1,1],toColor:[1,1,1,1],colorMix:[0,0,0,0],toOpacity:[1,1,1,1],opacityMix:[0,0,0,0],shift:[1,1,1,1],hasAnimations:l(e),hasShiftAnimation:!1,hasMotionAnimations:!1};o=u(o),o=d(this._poMap,e,o);let s=null;e.type===`CIMPointSymbol`&&(s=this._analyzePointSymbolHalo(e,i,a,r,o),this._analyzeCallout(e,null,[],o,a,i,t));let c=s?n.filter(e=>e!==s):n;if(Ce(c,r))return this._analyzeCompositeOutlineFill(c,r,a);this._analyzeSymbolLayer(s?{...e,symbolLayers:c}:e,null,[],o,a,i,t)}_analyzeSymbolLayer(e,t,n,r,i,a,o){let s=e?.symbolLayers;if(!s)return;let c=e.type===`CIMPolygonSymbol`,l=e.effects,u=s.length;for(;u--;){let d=s[u];if(!d||d.enable===!1)continue;let f;l?.length&&(f=[...l]);let p=d.effects;p?.length&&(l?f.push(...p):f=[...p]);let m=t?[...t]:null;if(f){m??=[];for(let e of f){let t=E.findEffectOverrides(e,this._primitiveOverrides);t&&m.push(t)}}E.findApplicableOverrides(d,this._primitiveOverrides,[]);let h=this._cimLayers.length;switch(d.type){case`CIMSolidFill`:this._analyzeSolidFill(d,m,r,L(s));break;case`CIMPictureFill`:this._analyzePictureFill(d,m,r);break;case`CIMHatchFill`:this._analyzeHatchFill(d,m,r);break;case`CIMGradientFill`:this._analyzeGradientFill(d,m);break;case`CIMSolidStroke`:this._analyzeSolidStroke(d,m,c,i,r);break;case`CIMPictureStroke`:this._analyzePictureStroke(d,m,c,i,r);break;case`CIMGradientStroke`:this._analyzeGradientStroke(d,m,c,i);break;case`CIMCharacterMarker`:case`CIMPictureMarker`:case`CIMVectorMarker`:{(e.type===`CIMLineSymbol`||e.type===`CIMPolygonSymbol`)&&(a=fe(d));let t=[],s=d.primitiveName;s&&t.push(s);let l=c&&I(d.markerPlacement);this._analyzeMarker(d,m,null,t,a,i,o,n,r,!1,l);break}default:X().error(`Cannot analyze CIM layer`,d.type)}if(m?.some(({effect:e})=>Z(e)))for(let e=h;e<this._cimLayers.length;e++)this._cimLayers[e].effectsChangeGeometryType=!0}}_analyzePointSymbolHalo(e,t,r,i,o){let{haloSymbol:s}=e,c=R(e.haloSize,0);if(c<=0||!s?.symbolLayers)return null;let u=s.symbolLayers.filter(e=>e.enable!==!1),f=u[0];if(!f)return null;let p=u.length===1&&f.type===`CIMSolidFill`;if(e.symbolLayers?.some(e=>l(e))===!0||l(s))return X().warnOnce(`CIM point symbol halos do not support independently animated symbol components`),null;let m=i?.map(e=>E.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>e!=null);if(m?.some(({effect:e})=>Z(e))){if(!p)return X().warnOnce(`Complex CIM point symbol halos are not supported with geometry-changing effects`),null;let t=e.symbolLayers?.filter(e=>e.enable!==!1)??[];if(!xe(t,m))return X().warnOnce(`CIM point symbol halos with geometry-changing effects currently require polygon-producing effects and an unambiguous solid-fill effect chain`),null;let n=t.find(e=>e.type===`CIMSolidFill`);if(!n)return null;let i=[...m,...(n.effects??[]).map(e=>E.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>e!=null)],a=z(t),o=this._getValueOrOverrideExpression(f.type,f.primitiveName,`Color`,P(f.color));return this._cimLayers.push({type:`outlineFill`,name:n.name,colorLocked:!!n.colorLocked,color:this._getValueOrOverrideExpression(n.type,n.primitiveName,`Color`,P(n.color)),effects:i,effectsChangeGeometryType:!0,outlineColorLocked:!0,outlineColor:o,outlineWidth:2*c+a,cap:`Round`,join:`Round`,referenceWidth:r,pixelBufferSize:2*c+a,outlineEffects:i}),n}let h=e.symbolLayers?.filter(e=>e.enable!==!1)??[],g=h.length===1&&h[0].type===`CIMVectorMarker`?h[0]:null,_=n(e);if(_.effects=void 0,_.angle=0,_.scaleX=1,g){let e=_.symbolLayers?.find(e=>e.type===`CIMVectorMarker`&&e.enable!==!1);e&&(e.rotation=0,e.offsetX=0,e.offsetY=0)}let v={..._,haloSize:0,haloSymbol:void 0},x=y.getPointSymbolHaloPadding(e,this._resourceManager),[S,C,w]=b.getTextureAnchor(v,this._resourceManager,ue,x),T=a(w),D=[];E.findApplicableOverrides(_,this._primitiveOverrides,D);let k=g?D.filter(e=>e.primitiveName!==g.primitiveName||![`Rotation`,`OffsetX`,`OffsetY`].includes(e.propertyName)):D,A=g?[{offsetX:this._getValueOrOverrideExpression(g.type,g.primitiveName,`OffsetX`,R(g.offsetX)),offsetY:this._getValueOrOverrideExpression(g.type,g.primitiveName,`OffsetY`,R(g.offsetY)),rotation:this._getValueOrOverrideExpression(g.type,g.primitiveName,`Rotation`,R(g.rotation)),size:T,frameHeight:T,rotateClockWise:!!g.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:!1}]:[],j=$(p?d(this._poMap,f,o):o),M,N;if(j){let e=b.getEnvelope(v,null,this._resourceManager);e&&(M=[e.width,e.height],N=[e.width+2*x,e.height+2*x])}return this._cimLayers.push({type:`marker`,spriteRasterizationParam:{type:`sprite-rasterization-param`,resource:{type:`cim-point-symbol-halo`,symbol:_,sdf:!j&&p&&O(v)!=null},overrides:k},colorLocked:!0,color:p?this._getValueOrOverrideExpression(f.type,f.primitiveName,`Color`,P(f.color)):[255,255,255,1],effects:m??null,effectsChangeGeometryType:m?.some(({effect:e})=>Z(e)),scaleSymbolsProportionally:!1,alignment:t,anchorPoint:{x:S,y:C},isAbsoluteAnchorPoint:!1,size:T,scaleX:R(e.scaleX,1),rotation:g?0:R(e.angle,0),offsetX:0,offsetY:0,outlineColor:[0,0,0,0],outlineWidth:0,transform:{type:`cim-marker-transform-param`,params:A},frameHeight:T,widthRatio:1,rotateClockwise:!1,referenceSize:r||T,sizeRatio:1,markerPlacement:null,isOutline:!1,animationParams:j,baseSize:r||T,pixelDimensions:M,texelDimensions:N}),null}_analyzeSolidFill(e,t,n,r){let{primitiveName:i,type:a}=e,o=P(e.color),s=d(this._poMap,e,n);if(!r&&t?.some(e=>e.effect.type===`CIMGeometricEffectTaperedPolygon`)){let n=this._getValueOrOverrideExpression(a,i,`Color`,o);this._cimLayers.push({type:`outlineFill`,name:e.name,colorLocked:!!e.colorLocked,color:n,effects:t,outlineColor:n,outlineColorLocked:!!e.colorLocked,...S,outlineEffects:t});return}this._cimLayers.push({type:`fill`,name:e.name,spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,i,`Color`,o),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:$(s)})}_analyzePictureFill(e,t,n){let{primitiveName:r,type:i}=e,a=B(e),o=R(e.height,C.CIMPictureFill.height),s=R(e.scaleX,1);if(`width`in e&&typeof e.width==`number`){let t=e.width,n=1,r=this._resourceManager.getResource(e.url);r!=null&&(n=r.width/r.height),s/=o/t*n}let c={type:`sprite-rasterization-param`,resource:e,overrides:this._getPrimitiveMaterialOverrides(r,i)},l=d(this._poMap,e,n);this._cimLayers.push({type:`fill`,name:e.name,spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(i,r,`TintColor`,a),height:this._getValueOrOverrideExpression(i,r,`Height`,o),scaleX:this._getValueOrOverrideExpression(i,r,`ScaleX`,s),angle:this._getValueOrOverrideExpression(i,r,`Rotation`,R(e.rotation)),offsetX:this._getValueOrOverrideExpression(i,r,`OffsetX`,R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(i,r,`OffsetY`,R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:$(l)})}_analyzeHatchFill(e,t,n){let{primitiveName:r,type:i}=e,a=d(this._poMap,e,n),o=this._analyzeMaterialOverrides(r,[`Rotation`,`OffsetX`,`OffsetY`]),s=V(o),c=[255,255,255,1],l=!1;if(e.lineSymbol?.symbolLayers)for(let t of e.lineSymbol.symbolLayers){if(t.type!==`CIMSolidStroke`)continue;let e=t.primitiveName??r;!l&&e&&!t.colorLocked&&(this._poMap[e]?.Color!=null||this._poMap[e]?.StrokeColor!=null)&&(c=P(t.color),c=this._maybeGetValueOrOverrideExpression(e,`StrokeColor`)??this._getValueOrOverrideExpression(i,e,`Color`,c),l=!0);let n=this._maybeGetValueOrOverrideExpression(e,`StrokeWidth`);if(n){let t=null,r=null;typeof n==`number`?t=n:r=n.valueExpressionInfo;let a=s.find(e=>e.propertyName===`strokeWidth`);a?a.propertyName=`width`:(a={type:`CIMPrimitiveOverride`,primitiveName:e,propertyName:`width`,valueExpressionInfo:r,value:t,defaultValue:H(i,`width`)},s.push(a))}}let u={type:`sprite-rasterization-param`,resource:e,overrides:s};this._cimLayers.push({type:`fill`,name:e.name,spriteRasterizationParam:u,colorLocked:!!e.colorLocked,effects:t,color:c,height:this._getValueOrOverrideExpression(i,r,`Separation`,R(e.separation,C.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(i,r,`Rotation`,R(e.rotation)),offsetX:this._getValueOrOverrideExpression(i,r,`OffsetX`,R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(i,r,`OffsetY`,R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!l,animationParams:$(a)})}_analyzeGradientFill(e,t){let{angle:n,gradientMethod:r,gradientSize:i,gradientSizeUnits:a,gradientType:o,interval:s,primitiveName:c,type:l}=e,u=C.CIMGradientFill,d=e.colorRamp;this._cimLayers.push({type:`gradientFill`,name:e.name,spriteRasterizationParam:{type:`sprite-rasterization-param`,resource:e,overrides:this._getPrimitiveMaterialOverrides(c,l)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(l,c,`GradientMethod`,r??`Linear`),angle:this._getValueOrOverrideExpression(l,c,`Angle`,R(n,u.angle)),gradientType:this._getValueOrOverrideExpression(l,c,`GradientType`,o??u.gradientType),interval:this._getValueOrOverrideExpression(l,c,`Interval`,R(s,d.type===`CIMFixedColorRamp`?d.colors.length:u.interval)),gradientSize:this._getValueOrOverrideExpression(l,c,`GradientSize`,R(i,u.gradientSize)),gradientSizeUnits:a===`Absolute`?M.Absolute:a===`Relative`?M.Relative:u.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,n,r=[]){let i=e.find(e=>e.type===`CIMSolidFill`),a=e.find(e=>e.type===`CIMSolidStroke`);if(i==null||a==null)return;let o=[...r,...[...t??[],...i.effects??[]].map(e=>E.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>e!=null)],s=[...r,...[...t??[],...a.effects??[]].map(e=>E.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>e!=null)],c=R(a.width,C.CIMSolidStroke.width),l=U(a.capStyle,C.CIMSolidStroke.capstyle),u=U(a.joinStyle,C.CIMSolidStroke.joinstyle),d=a.miterLimit;this._cimLayers.push({type:`outlineFill`,name:i.name,colorLocked:!!i.colorLocked,color:this._getValueOrOverrideExpression(i.type,i.primitiveName,`Color`,P(i.color)),effects:o,effectsChangeGeometryType:o.some(({effect:e})=>Z(e))||s.some(({effect:e})=>Z(e)),outlineColorLocked:!!a.colorLocked,outlineColor:this._getValueOrOverrideExpression(a.type,a.primitiveName,`Color`,P(a.color)),outlineWidth:this._getValueOrOverrideExpression(a.type,a.primitiveName,`Width`,c),cap:this._getValueOrOverrideExpression(a.type,a.primitiveName,`CapStyle`,l),join:this._getValueOrOverrideExpression(a.type,a.primitiveName,`JoinStyle`,u),miterLimit:d&&this._getValueOrOverrideExpression(a.type,a.primitiveName,`MiterLimit`,d),referenceWidth:n,outlineEffects:s})}_analyzeSolidStroke(e,t,n,r,i){let{primitiveName:a,type:o}=e,s=P(e.color),c=R(e.width,C.CIMSolidStroke.width),l=U(e.capStyle,C.CIMSolidStroke.capstyle),u=U(e.joinStyle,C.CIMSolidStroke.joinstyle),f=e.miterLimit,p=this._analyzePrimitiveOverrides(a,t,null,null),m=[];p&&(m=this._getPrimitiveMaterialOverrides(a,o));let h,g,_,v;if(t&&Array.isArray(t)&&t.length>0){let e=t[t.length-1].effect;e&&e.type===`CIMGeometricEffectDashes`&&e.lineDashEnding===`NoConstraint`&&(h=e.dashTemplate,g=e.scaleDash,_=e.offsetAlongLine,v=e.primitiveName,t=[...t],t.pop())}v!=null&&m.push(...this._getPrimitiveMaterialOverrides(v,o).filter(e=>e.propertyName===`dashTemplate`));let y=h===void 0?null:{type:`sprite-rasterization-param`,resource:{type:`dash`,dashTemplate:h,primitiveName:v},overrides:m},b=d(this._poMap,e,i);this._cimLayers.push({type:`line`,name:e.name,spriteRasterizationParam:y,isOutline:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,a,`Color`,s),width:this._getValueOrOverrideExpression(o,a,`Width`,c),cap:this._getValueOrOverrideExpression(o,a,`CapStyle`,l),join:this._getValueOrOverrideExpression(o,a,`JoinStyle`,u),miterLimit:f&&this._getValueOrOverrideExpression(o,a,`MiterLimit`,f),referenceWidth:r,zOrder:he(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(v,`DashTemplate`)??h,offsetAlongLine:this._getValueOrOverrideExpression(o,v,`OffsetAlongLine`,_??0),scaleDash:g,sampleAlphaOnly:!0,animationParams:$(b)})}_analyzePictureStroke(e,t,n,r,i){let{primitiveName:a,type:o}=e,s=B(e),c=R(e.width,C.CIMPictureStroke.width),l=U(e.capStyle,C.CIMPictureStroke.capstyle),u=U(e.joinStyle,C.CIMPictureStroke.joinstyle),f=e.miterLimit,p={type:`sprite-rasterization-param`,resource:e,overrides:this._getPrimitiveMaterialOverrides(a,o)},m=d(this._poMap,e,i);this._cimLayers.push({type:`line`,name:e.name,spriteRasterizationParam:p,isOutline:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,a,`TintColor`,s),width:this._getValueOrOverrideExpression(o,a,`Width`,c),cap:this._getValueOrOverrideExpression(o,a,`CapStyle`,l),join:this._getValueOrOverrideExpression(o,a,`JoinStyle`,u),miterLimit:f&&this._getValueOrOverrideExpression(o,a,`MiterLimit`,f),referenceWidth:r,zOrder:he(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:$(m)})}_analyzeGradientStroke(e,t,n,r){let{gradientMethod:i,gradientSize:a,gradientSizeUnits:o,gradientType:s,interval:c,primitiveName:l,type:u}=e,d=C.CIMGradientStroke,f=R(e.width,d.width),p=U(e.capStyle,d.capstyle),m=U(e.joinStyle,d.joinstyle),h=e.miterLimit,g=e.colorRamp;this._cimLayers.push({type:`gradientStroke`,name:e.name,spriteRasterizationParam:{type:`sprite-rasterization-param`,resource:e,overrides:this._getPrimitiveMaterialOverrides(l,u)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(u,l,`Width`,f),cap:this._getValueOrOverrideExpression(u,l,`CapStyle`,p),join:this._getValueOrOverrideExpression(u,l,`JoinStyle`,m),miterLimit:h&&this._getValueOrOverrideExpression(u,l,`MiterLimit`,h),referenceWidth:r,isOutline:n,gradientMethod:this._getValueOrOverrideExpression(u,l,`GradientMethod`,i??d.gradientMethod),gradientType:this._getValueOrOverrideExpression(u,l,`GradientType`,s??d.gradientType),interval:this._getValueOrOverrideExpression(u,l,`Interval`,R(c,g.type===`CIMFixedColorRamp`?g.colors.length:d.interval)),gradientSize:this._getValueOrOverrideExpression(u,l,`GradientSize`,R(a,d.gradientSize)),gradientSizeUnits:o===`Absolute`?M.Absolute:o===`Relative`?M.Relative:d.gradientSizeUnits})}_analyzeMarker(e,t,n,r,i,a,o,s,c,l=!1,u=!1){l||=!!e.colorLocked;let h=c;if(h=f(e,h),h=p(this._poMap,e,h),h=m(e,h),h=d(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,l,h))return;let g=R(e.size,C.CIMVectorMarker.size),_=R(e.rotation),v=R(e.offsetX),y=R(e.offsetY),{primitiveName:b,type:x}=e,S=this._getValueOrOverrideExpression(x,b,`Size`,g),w=this._getValueOrOverrideExpression(x,b,`Rotation`,_),T=this._getValueOrOverrideExpression(x,b,`OffsetX`,v),E=this._getValueOrOverrideExpression(x,b,`OffsetY`,y);switch(e.type){case`CIMPictureMarker`:this._analyzePictureMarker(e,t,n,r,i,a,S,w,T,E,s,h,l,u);break;case`CIMVectorMarker`:this._analyzeVectorMarker(e,t,n,r,i,a,S,w,T,E,s,h,o,l,u)}}_analyzeMarkerInsidePolygon(e,t,n,r){let{markerPlacement:i,type:o}=e;if(!i||i.type!==`CIMMarkerPlacementInsidePolygon`||r.hasMotionAnimations)return!1;if(o===`CIMVectorMarker`||o===`CIMPictureMarker`){let n=e.primitiveName;if(n&&this._analyzePrimitiveOverrides([n],t,null,null))return!1;let r=i.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;if(o===`CIMVectorMarker`){let{markerGraphics:t}=e;if(t)for(let e of t){let{symbol:t}=e;if(t?.type===`CIMPolygonSymbol`&&t.symbolLayers){let{symbolLayers:e}=t;for(let t of e)if(t.type===`CIMSolidStroke`)return!1}}}else{let{animatedSymbolProperties:t}=e;if(t)return!1}}let s=Math.abs(i.stepX),c=Math.abs(i.stepY);if(s===0||c===0)return!0;let l,u;if(i.gridType===`Random`){let e=a(de),t=Math.max(Math.floor(e/s),1);l=c*Math.max(Math.floor(e/c),1),u=t*s/l}else i.shiftOddRows?(l=c*2,u=s/c*.5):(l=c,u=s/c);let d=B(e),f=e.type===`CIMCharacterMarker`?null:{type:`sprite-rasterization-param`,resource:{...e,effects:e.effects?.filter(e=>!ye(e))},overrides:[]};return this._cimLayers.push({type:`fill`,name:e.name,spriteRasterizationParam:f,colorLocked:n,effects:t,color:d,height:l,scaleX:u,angle:i.gridAngle??0,offsetX:R(i.offsetX),offsetY:R(i.offsetY),applyRandomOffset:i.gridType===`Random`,sampleAlphaOnly:e.type!==`CIMPictureMarker`,hasUnresolvedReplacementColor:!0,animationParams:$(r)}),!0}_analyzePictureMarker(e,t,r,i,a,s,c,l,u,d,f,p,m,h){let{animatedSymbolProperties:g,primitiveName:_,type:v}=e,y=R(e.scaleX,1),b=B(e);r||=this._createMarkerPlacementOverrideExpression(e.markerPlacement);let x=this._createGIFAnimatedSymbolPropertiesOverrideExpression(g),S=e.anchorPoint??{x:0,y:0};if(`width`in e&&typeof e.width==`number`){let t=e.width,n=1,r=this._resourceManager.getResource(e.url);r!=null&&(n=r.width/r.height);let i=R(e.size);y/=i/t*n}let C=[...i];e.primitiveName&&C.push(e.primitiveName);let w;g||x?w={type:`animated`,url:e.url,urlHash:`H`+o(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(w=n(e),w.markerPlacement=null);let T={type:`sprite-rasterization-param`,resource:w,overrides:this._getMaterialOverrides(C,v)};x&&T.overrides.push(...x.overrides);let E=c;this._cimLayers.push({type:`marker`,name:e.name,spriteRasterizationParam:T,colorLocked:m,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:c,scaleX:this._getValueOrOverrideExpression(v,_,`ScaleX`,y),rotation:l,offsetX:u,offsetY:d,transform:{type:`cim-marker-transform-param`,params:f},color:this._getValueOrOverrideExpression(v,_,`TintColor`,b),anchorPoint:{x:S.x,y:S.y},isAbsoluteAnchorPoint:e.anchorPointUnits!==`Relative`,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:s,sizeRatio:1,isOutline:h,markerPlacement:r,animationParams:$(p),baseSize:E})}_analyzeVectorMarker(e,t,n,r,i,a,o,l,u,d,f,p,m,v,y){let b=e.markerGraphics;if(!b)return;let x=e.frame,S=0;S=x?x.ymax-x.ymin:a;let C=!!e.scaleSymbolsProportionally;if(S){let t={offsetX:u,offsetY:d,rotation:l,size:o,frameHeight:S,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:C};f=[...f,t]}n||=this._createMarkerPlacementOverrideExpression(e.markerPlacement);for(let o of b)if(o){let l=o.symbol;if(!l)continue;let u=o.primitiveName;u&&r.push(u);let d=p,b;if((l.type===`CIMPointSymbol`||l.type===`CIMTextSymbol`)&&x){let t=0,n=0,r=o.geometry;`x`in r&&`y`in r&&(t+=r.x-(x.xmin+x.xmax)*.5,n+=r.y-(x.ymin+x.ymax)*.5);let i=e.anchorPoint,a=!1;i&&(e.anchorPointUnits===`Absolute`?(t-=i.x,n-=i.y,a=!0):x&&(t-=(x.xmax-x.xmin)*i.x,n-=(x.ymax-x.ymin)*i.y));let s={offsetX:t,offsetY:n,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:C};b=[...f,s]}(l.type===`CIMPointSymbol`||l.type===`CIMTextSymbol`)&&this._analyzeCallout(l,t,b??f,d,a,i,m);let w=s(o.geometry)?{...o,geometry:c(o.geometry,{maxDeviation:.01})}:o,T=w.geometry,[E,D]=h(T,x);switch((E!==0||D!==0)&&(d=g(d,E,D)),l.type){case`CIMPointSymbol`:case`CIMLineSymbol`:case`CIMPolygonSymbol`:m||ve(l)?(d={...d,transform:{type:`AnimatedTransform`,relativeTranslation:!1,absoluteScale:!0,selectGlobalRotation:!1,translation:_([0,0]),rotation:_(0),scale:_(S),parent:p.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,n,w,r,i,a,b??f,d,S,v,y)):this._analyzeMultiLayerGraphic(e,t,n,w,r,i,a,b??f,d,S,v,y);break;case`CIMTextSymbol`:this._analyzeTextGraphic(t,n,w,r,i,a,b??f,v)}u&&r.pop()}}_analyzeCallout(e,t,n,r,i,a,o){let s=e.callout;if(!s||!ie(s))return;let c=t??[],{leaderTolerance:l,leaderOffset:u}=s;switch(s.type){case`CIMSimpleLineCallout`:{let{lineSymbol:e,autoSnap:t}=s,d={type:`CIMSimpleLineCallout`,leaderTolerance:l,leaderOffset:u,autoSnap:t,inflateSize:500};this._analyzeSymbolLayer(e,[...c,{type:`cim-effect-param`,effect:d,overrides:[]}],n,r,i,a,o);break}case`CIMBackgroundCallout`:{let{accentBarSymbol:e,gap:t,backgroundSymbol:d,leaderLineSymbol:f,lineStyle:p,margin:m}=s,h=e=>({type:`CIMBackgroundCallout`,leaderTolerance:l,leaderOffset:u,lineStyle:Y(p),gap:t,margin:m,inflateSize:500,part:e}),g=[...c,{type:`cim-effect-param`,effect:h(`background`),overrides:[]}];f&&this._analyzeSymbolLayer(f,[...c,{type:`cim-effect-param`,effect:h(`leader`),overrides:[]}],n,r,i,a,o);let _=d.symbolLayers??[];Q(_)?this._analyzeCompositeOutlineFill(_,null,i,g):this._analyzeSymbolLayer(d,g,n,r,i,a,o),e&&this._analyzeSymbolLayer(e,[...c,{type:`cim-effect-param`,effect:h(`accent-bar`),overrides:[]}],n,r,i,a,o);break}case`CIMBalloonCallout`:{let{balloonStyle:e,backgroundSymbol:t,fixedDartWidth:d,margin:f,useFixedDartWidth:p}=s,m={type:`CIMBalloonCallout`,leaderTolerance:l,leaderOffset:u,margin:f,balloonStyle:ce(e),dartWidth:p?d:void 0,inflateSize:500,part:`background`},h=[...c,{type:`cim-effect-param`,effect:m,overrides:[]}],g=t.symbolLayers??[];Q(g)?this._analyzeCompositeOutlineFill(g,null,i,h):this._analyzeSymbolLayer(t,h,n,r,i,a,o);break}case`CIMPointSymbolCallout`:{let{backgroundScale:e,gap:t,leaderLineSymbol:d,lineStyle:f,pointSymbol:p}=s,m=oe(e),h=ae(p,n),g=e=>({type:`CIMPointSymbolCallout`,leaderTolerance:l,leaderOffset:u,backgroundScale:m,...se(p,e),lineStyle:Y(f),gap:t,inflateSize:500,part:e});d&&this._analyzeSymbolLayer(d,[...c,{type:`cim-effect-param`,effect:g(`leader`),overrides:[]}],n,r,i,a,o),this._analyzeSymbolLayer(p,[...c,{type:`cim-effect-param`,effect:g(`marker`),overrides:[]}],h,r,i,a,o||m!==0);break}case`CIMCompositeCallout`:{let{backgroundSymbol:e,margin:t,shadowSymbol:d}=s,f={type:`CIMBalloonCallout`,leaderTolerance:l,leaderOffset:u,margin:t,balloonStyle:1,inflateSize:500,part:`background`},p=[...c,{type:`cim-effect-param`,effect:f,overrides:[]}],m=e=>{let t=e.symbolLayers??[];Q(t)?this._analyzeCompositeOutlineFill(t,null,i,p):this._analyzeSymbolLayer(e,p,n,r,i,a,o)};d&&m(d),m(e);break}}}_analyzeMultiLayerGraphic(e,t,n,r,i,a,o,s,c,l,u,d){let f=r.symbol,p=f.symbolLayers;if(p){if(_e(p)&&!v(c)){this._analyzeCompositeMarkerGraphic(e,t,n,r,p,a,o,s,l,u,d);return}if(Se(p)){x(f,e=>{e.colorLocked&&(u=!0)}),this._analyzeMultiLayerGraphicNonSDF(e,t,n,r,i,a,o,s,c,l,u,d);return}this._analyzeMarkerGraphicSymbolLayers(e,t,n,r,i,a,o,s,c,l,u,d)}}_analyzeMarkerGraphicSymbolLayers(e,t,n,r,i,a,o,s,c,l,u,f){let p=r.symbol,m=p.symbolLayers;if(!m)return;let h=le.applyEffects(p.effects,r.geometry);if(!h)return;let g=m.length;for(;g--;){let p=m[g];if(!p||p.enable===!1)continue;let _=p.primitiveName;switch(_&&i.push(_),p.type){case`CIMSolidFill`:case`CIMSolidStroke`:{let i=le.applyEffects(p.effects,h),m=k(i);if(!m)continue;let g=e.anchorPointUnits!==`Relative`,v=p.type===`CIMSolidStroke`?p.width:0,{frameSizeRatio:y,anchorX:b,anchorY:x,widthRatio:S,sdfPaddingRatio:w,sdfTextureSize:T}=A(m,e.frame,e.size,e.anchorPoint,g,v,e.scaleSymbolsProportionally),E=p.type===`CIMSolidFill`,D={type:`sdf`,geometry:i,sdfPaddingRatio:w,asFill:E,sdfTextureSize:T},{path:O}=p,M=E?P(W(p)):O==null?P(G(p)):[0,0,0,0],N=E?[0,0,0,0]:P(G(p));if(!E&&!v)break;let F=r.primitiveName,I=null;E&&!p.colorLocked&&(I=this._maybeGetValueOrOverrideExpression(F,`FillColor`));let L=null;!E&&!p.colorLocked&&(L=this._maybeGetValueOrOverrideExpression(F,`StrokeColor`));let z=I??this._getValueOrOverrideExpression(p.type,_,`Color`,M),B=L??this._getValueOrOverrideExpression(p.type,_,`Color`,N),V=this._maybeGetValueOrOverrideExpression(F,`StrokeWidth`)??this._getValueOrOverrideExpression(p.type,_,`Width`,v),H=O?{type:`sprite-rasterization-param`,resource:{type:`path`,path:O,asFill:E},overrides:[]}:{type:`sprite-rasterization-param`,resource:D,overrides:[]},U=d(this._poMap,p,c),K=R(e.size,C.CIMVectorMarker.size),q=this._getValueOrOverrideExpression(e.type,e.primitiveName,`Size`,K);this._cimLayers.push({type:`marker`,name:p.name,groupName:e.name,spriteRasterizationParam:H,colorLocked:!!p.colorLocked||!!u,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:b,y:x},isAbsoluteAnchorPoint:g,size:l,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:`cim-marker-transform-param`,params:s},frameHeight:l,widthRatio:S,rotateClockwise:!1,referenceSize:o,sizeRatio:y,color:z,outlineColor:B,outlineWidth:V,isOutline:f,markerPlacement:n,animationParams:$(U),isStroke:p.type!==`CIMSolidFill`,baseSize:q,...j(i,T,w)});break}case`CIMPictureMarker`:case`CIMVectorMarker`:if(p.markerPlacement){X().error(`Error analyzing CIM, got unexpected marker placement`);break}this._analyzeMarker(p,t,n,i,a,o,!1,s,c,u,f)}_&&i.pop()}}_analyzeTextGraphic(e,n,r,i,a,o,s,c){E.findApplicableOverrides(r,this._primitiveOverrides,[]);let l=r.geometry;if(!(`x`in l)||!(`y`in l))return;let u=r.symbol,d=K(u),f=T(u.fontStyleName),p=t(u.fontFamilyName);u.font={family:p,decoration:d,...f};let m=R(u.height,C.CIMTextSymbol.height),h=R(u.angle),g=R(u.offsetX),_=R(u.offsetY),{haloSymbol:v}=u,y=R(u.haloSize,0),b=[0,0,0,0];if(v?.symbolLayers?.length){let e=v.symbolLayers;for(let t of e)if(t.color){b=this._getValueOrOverrideExpression(u?.haloSymbol?.type??`CIMPolygonSymbol`,t.primitiveName,`Color`,P(t.color));break}}let x=r.primitiveName,S=[0,0,0,1],w=[0,0,0,0],O=0,k=!1;if(u.symbol?.symbolLayers)for(let e of u.symbol.symbolLayers){let t=e.primitiveName;if(e.type===`CIMSolidStroke`)w=this._getValueOrOverrideExpression(`CIMSolidStroke`,t,`Color`,P(e.color)),O=this._getValueOrOverrideExpression(`CIMSolidStroke`,t,`Width`,q(e)??0);else if(e.type===`CIMSolidFill`){let n=P(e.color);k??=!!e.colorLocked,S=this._getValueOrOverrideExpression(`CIMSolidFill`,t??x,`Color`,n)}}let A=null,j=null,M=null,N=null,F=null;x&&(A=this._maybeGetValueOrOverrideExpression(x,`TextSize`),j=this._maybeGetValueOrOverrideExpression(x,`TextAngle`),M=this._maybeGetValueOrOverrideExpression(x,`TextOffsetX`),N=this._maybeGetValueOrOverrideExpression(x,`TextOffsetY`),k||(F=this._maybeGetValueOrOverrideExpression(x,`FillColor`)));let I=F??S,L=null,z=null,B=0,V=u.callout?.type===`CIMBackgroundCallout`;if(u.callout?.type===`CIMBackgroundCallout`){let e=u.callout;if(e.backgroundSymbol){let t=e.backgroundSymbol.symbolLayers;if(t)for(let e of t)e.type===`CIMSolidFill`?L=P(e.color):e.type===`CIMSolidStroke`&&(z=P(e.color),B=R(e.width,C.CIMSolidStroke.width))}}let H=this._getValueOrOverrideExpression(u.type,r.primitiveName,`TextString`,r.textString??``);if(H==null)return;let{fontStyleName:U}=u,W=p+(U?`-`+U.toLowerCase():`-regular`),G=this._getMaterialOverrides(i,u.type);G.push(...this._getPrimitiveMaterialOverrides(r.primitiveName,u.type)),this._collectDictionaryTemplateOverrides(G,r);let J={type:`text-rasterization-param`,resource:{type:`text`,textString:r.textString??``,font:u.font,symbol:u,primitiveName:r.primitiveName,supportsRichText:D(r.textString??``)||G.some(e=>e.propertyName===`textString`)},overrides:G};this._cimLayers.push({type:`text`,lineWidth:u.lineWidth,textRasterizationParam:J,colorLocked:!!c||!!k,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:W,decoration:d,haloSize:y,haloColor:b,weight:f.weight,style:f.style,size:A??m,angle:j??h,offsetX:M??g,offsetY:N??_,transform:{type:`cim-marker-transform-param`,params:s},horizontalAlignment:te(u.horizontalAlignment),verticalAlignment:ee(u.verticalAlignment),text:H,color:I,outlineColor:w,outlineSize:O,backgroundColor:L,borderLineColor:z,borderLineWidth:B,useBackgroundCallout:V,referenceSize:o,sizeRatio:1,markerPlacement:n})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){let n=J(t.symbol);e.push({propertyName:`textString`,defaultValue:``,valueExpressionInfo:{type:`dictionary-template`,textCase:n,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,n,r,a,o,s,c,l,u,d,f){let p=me(e,r),m=e.primitiveName,h=this._analyzeMaterialOverrides(m,[`Rotation`,`OffsetX`,`OffsetY`]),g=V(h),[_,v,y]=b.getTextureAnchor(p,this._resourceManager,ue),x=this._getMaterialOverrides(a,e.type).filter(e=>e.primitiveName!==m||![`rotation`,`offsetX`,`offsetY`].includes(e.propertyName));x.push(...g);let S={type:`sprite-rasterization-param`,resource:{...p,avoidSDFRasterization:!0},overrides:x},w=R(e.size,C.CIMVectorMarker.size),T=this._getValueOrOverrideExpression(e.type,m,`Size`,w);this._cimLayers.push({type:`marker`,name:e.name,spriteRasterizationParam:S,colorLocked:d,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:o,anchorPoint:{x:_,y:v},isAbsoluteAnchorPoint:!1,size:u,rotation:0,offsetX:0,offsetY:0,transform:{type:`cim-marker-transform-param`,params:c},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:u,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:s,sizeRatio:y/i(e.size),isOutline:f,markerPlacement:n,animationParams:$(l),baseSize:T})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;let t=[];return E.findApplicableOverrides(e,this._primitiveOverrides,t),{type:`cim-marker-placement-param`,placement:e,overrides:we(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;let t=[];return E.findApplicableOverrides(e,this._primitiveOverrides,t),{type:`cim-gif-animation-params`,animation:e,overrides:we(t)}}_analyzeCompositeMarkerGraphic(e,t,n,r,i,a,o,s,c,l,u){let d=r.geometry,f=i[0],p=i[1],m=k(d);if(!m)return;let h=e.anchorPointUnits!==`Relative`,g=R(f.width,C.CIMSolidStroke.width),{frameSizeRatio:_,anchorX:v,anchorY:y,widthRatio:b,sdfPaddingRatio:x,sdfTextureSize:S}=A(m,e.frame,e.size,e.anchorPoint,h,g,e.scaleSymbolsProportionally),{path:w}=p,T=p.primitiveName,E=f.primitiveName,D=r.primitiveName,O=null;!p.colorLocked&&!l&&(O=this._maybeGetValueOrOverrideExpression(D,`FillColor`));let j=O??this._getValueOrOverrideExpression(p.type,T,`Color`,P(p.color)),M=null;!f.colorLocked&&!l&&(M=this._maybeGetValueOrOverrideExpression(D,`StrokeColor`));let N=M??this._getValueOrOverrideExpression(f.type,E,`Color`,P(f.color)),F=this._maybeGetValueOrOverrideExpression(D,`StrokeWidth`)??this._getValueOrOverrideExpression(f.type,E,`Width`,g),I={type:`sprite-rasterization-param`,resource:w?{type:`path`,path:w,asFill:!0}:{type:`sdf`,geometry:d,sdfTextureSize:S,sdfPaddingRatio:x,asFill:!0},overrides:[]};this._cimLayers.push({type:`marker`,name:e.name,spriteRasterizationParam:I,colorLocked:l,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:v,y},isAbsoluteAnchorPoint:h,size:c,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:`cim-marker-transform-param`,params:s},frameHeight:c,widthRatio:b,rotateClockwise:!1,referenceSize:o,sizeRatio:_,color:j,outlineColor:N,outlineWidth:F,isOutline:u,markerPlacement:n})}_setPoMap(e,t,n){let r;this._poMap[e]?r=this._poMap[e]:(r={},this._poMap[e]=r),r[t]=n}_maybeGetValueOrOverrideExpression(e,t,n){return this._getValueOrOverrideExpression(``,e,t,n,!1)}_getValueOrOverrideExpression(e,t,n,r,i=!0){if(i&&!ne(r)&&(r=H(e,n.toLowerCase())),t==null)return r;let a=this._poMap[t];if(a==null)return r;let o=a[n];return typeof o==`string`||typeof o==`number`||Array.isArray(o)?o:o?{valueExpressionInfo:o,defaultValue:r}:r}_analyzePrimitiveOverrides(e,t,n,r){if(e==null)return!1;typeof e==`string`&&(e=[e]);for(let t of this._primitiveOverrides)if(e.includes(t.primitiveName)&&t.valueExpressionInfo)return!0;if(t!=null){for(let e of t)if(e?.overrides.length>0)return!0}if(n!=null){for(let e of n)if(e?.overrides.length>0)return!0}if(r!=null){for(let e of r)if(e?.overrides.length>0)return!0}return!1}_getMaterialOverrides(e,t){if(!e)return[];let n=[];for(let r of e)n.push(...this._getPrimitiveMaterialOverrides(r,t));return n}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];let n=V(this._primitiveOverrides.filter(t=>t.primitiveName===e));return n.forEach(e=>e.defaultValue=H(t,e.propertyName.toLowerCase())),n}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(n=>n.primitiveName!==e||!t.includes(n.propertyName))}}function me(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[{...t}],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function he(e){if(e?.startsWith(`Level_`)){let t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function ge(e,t){if(!t||t.length===0)return e;let r=n(e);return E.applyOverrides(r,t),r}const _e=e=>e&&e.length===2&&e[0].enable&&e[1].enable&&e[0].type===`CIMSolidStroke`&&e[1].type===`CIMSolidFill`&&e[0].path==null&&e[1].path==null&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function ve(e){let t=e.symbolLayers;if(!t)return!1;let n=t.find(e=>e.effects?.find(e=>e.type===`CIMGeometricEffectDashes`&&e.dashTemplate!=null)),r=t.find(e=>e.effects?.find(e=>e.type===`CIMGeometricEffectAddControlPoints`));return!!n||!!r}function ye(e){return Z(e)}function Z(e){return e.type===`CIMGeometricEffectCircularSector`||e.type===`CIMGeometricEffectRadial`||e.type===`CIMGeometricEffectTaperedPolygon`||e.type===`PrivateDimensionEffect`||e.type===`PrivateMatcherGeometryOverrideEffect`}function be(e){return e.type===`CIMGeometricEffectCircularSector`||e.type===`CIMGeometricEffectTaperedPolygon`}function xe(e,t){let n=e.filter(e=>e.type===`CIMSolidFill`),r=e.every(e=>e.type===`CIMSolidFill`||e.type===`CIMSolidStroke`),i=e.filter(e=>e.effects?.length),a=i.length===0||i.length===1&&n.length===1&&i[0]===n[0];return n.length>0&&r&&a&&t.some(({effect:e})=>be(e))}function Se(e){return e.some(e=>e.type!==`CIMSolidFill`&&e.type!==`CIMSolidStroke`&&(e.type!==`CIMVectorMarker`&&e.type!==`CIMPictureMarker`||e.markerPlacement!=null))}function Ce(e,t){return!!(t?.some(e=>e.type===`CIMGeometricEffectRadial`)&&t?.some(e=>e.type===`CIMGeometricEffectTaperedPolygon`)||t?.some(e=>e.type===`CIMGeometricEffectCircularSector`))&&Q(e)}function Q(e){if(e?.length!==2)return!1;let t=e.find(e=>e.type===`CIMSolidFill`),n=e.find(e=>e.type===`CIMSolidStroke`),r=n?.effects?.some(e=>e.type===`CIMGeometricEffectDashes`);return t!=null&&n!=null&&!r}function we(e){return n(e).map(e=>({...e,propertyName:re(e.propertyName)}))}function $(e){return v(e)?{type:`animation-params`,params:e}:null}export{pe as CIMAnalyzer,ge as analyzeCIMResource};
2
+ import{isRGB as e}from"../../core/colorUtils.js";import{getFontFamily as t}from"../../core/fontUtils.js";import"../../core/has.js";import{clone as n}from"../../core/lang.js";import r from"../../core/Logger.js";import{pt2px as i,px2pt as a}from"../../core/screenUtils.js";import{numericHash as o}from"../../core/string.js";import{isCurvedGeometry as s}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as c}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{checkForAnimations as l,globalRotation as u,getAnimationParams as d,handleAbsoluteAnchor as f,handleMarker as p,handleRelativeAnchor as m,getFrameTranslation as h,translate as g,getStaticParam as _,shouldUseAnimatedPath as v}from"./animationUtils.js";import{CIMSymbolInflatedSizeHelper as y,CIMSymbolHelper as b,forEachSymbolLayer as x}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as S}from"./constants.js";import{defaultCIMValues as C}from"./defaultCIMValues.js";import{fitVectorMarker as w}from"./fitVectorMarker.js";import{fromCIMFontStyle as T}from"./fromCIMFontStyle.js";import{OverrideHelper as E}from"./OverrideHelper.js";import{hasRichTextFormattingTags as D}from"./richTextUtils.js";import{getSDFInfo as O,getExtent as k,getSDFMetrics as A,getSDFDimensions as j}from"./SDFHelper.js";import{CIMSymbolUnits as M}from"./types.js";import{colorToArray as N,normalizeAlpha as P,getSize as F,isCIMMarkerStrokePlacement as I,hasStrokeLayer as L,getNumericValue as R,getMaxStrokeWidth as z,getTintColor as B,normalizePrimitiveOverrideProps as V,getDefaultCIMValue as H,getEnum as U,getFillColor as W,getStrokeColor as G,fromCIMFontDecoration as K,getStrokeWidth as q,fromCIMVerticalAlignment as ee,fromCIMHorizontalAlignment as te,getTextCasing as J,isValidCIMValue as ne,uncapitalize as re}from"./utils.js";import{isSupportedCallout as ie,getPointSymbolCalloutTransforms as ae,normalizePointSymbolCalloutScale as oe,normalizeLeaderLineStyle as Y,getPointSymbolCalloutFitProperties as se,normalizeBalloonCalloutStyle as ce}from"./callouts/calloutAnalysisUtils.js";import{EffectHelper as le}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as ue,randomInsidePolygonTextureSize as de}from"../../views/2d/engine/webgl/definitions.js";const X=()=>r.getLogger(`esri.symbols.cim.cimAnalyzer`);function fe(e){let t=e.markerPlacement;return t&&t.angleToLine?1:0}class pe{constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,n,r){if(this._cimLayers=r??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(let t of this._primitiveOverrides){let n=t.valueExpressionInfo;if(n)this._setPoMap(t.primitiveName,t.propertyName,n);else if(t.value!=null){let n=t.value;t.propertyName.includes(`Color`)&&(e(n)&&(n=N(n)),n=P(n)),this._setPoMap(t.primitiveName,t.propertyName,n)}}}return this._analyzeSymbol(t.symbol,n),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case`CIMPointSymbol`:case`CIMLineSymbol`:case`CIMPolygonSymbol`:this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){let n=e?.symbolLayers;if(!n)return;for(let e=0;e<n.length;e++){let t=n[e];t.type===`CIMVectorMarker`&&(n[e]=w(t))}let r=e.effects,i=0,a=F(e)??0;e.type===`CIMPointSymbol`&&e.angleAlignment===`Map`&&(i=1);let o={transform:[0,0,0,1],fromColor:[1,1,1,1],toColor:[1,1,1,1],colorMix:[0,0,0,0],toOpacity:[1,1,1,1],opacityMix:[0,0,0,0],shift:[1,1,1,1],hasAnimations:l(e),hasShiftAnimation:!1,hasMotionAnimations:!1};o=u(o),o=d(this._poMap,e,o);let s=null;e.type===`CIMPointSymbol`&&(s=this._analyzePointSymbolHalo(e,i,a,r,o),this._analyzeCallout(e,null,[],o,a,i,t));let c=s?n.filter(e=>e!==s):n;if(Ce(c,r))return this._analyzeCompositeOutlineFill(c,r,a);this._analyzeSymbolLayer(s?{...e,symbolLayers:c}:e,null,[],o,a,i,t)}_analyzeSymbolLayer(e,t,n,r,i,a,o){let s=e?.symbolLayers;if(!s)return;let c=e.type===`CIMPolygonSymbol`,l=e.effects,u=s.length;for(;u--;){let d=s[u];if(!d||d.enable===!1)continue;let f;l?.length&&(f=[...l]);let p=d.effects;p?.length&&(l?f.push(...p):f=[...p]);let m=t?[...t]:null;if(f){m??=[];for(let e of f){let t=E.findEffectOverrides(e,this._primitiveOverrides);t&&m.push(t)}}E.findApplicableOverrides(d,this._primitiveOverrides,[]);let h=this._cimLayers.length;switch(d.type){case`CIMSolidFill`:this._analyzeSolidFill(d,m,r,L(s));break;case`CIMPictureFill`:this._analyzePictureFill(d,m,r);break;case`CIMHatchFill`:this._analyzeHatchFill(d,m,r);break;case`CIMGradientFill`:this._analyzeGradientFill(d,m);break;case`CIMSolidStroke`:this._analyzeSolidStroke(d,m,c,i,r);break;case`CIMPictureStroke`:this._analyzePictureStroke(d,m,c,i,r);break;case`CIMGradientStroke`:this._analyzeGradientStroke(d,m,c,i);break;case`CIMCharacterMarker`:case`CIMPictureMarker`:case`CIMVectorMarker`:{(e.type===`CIMLineSymbol`||e.type===`CIMPolygonSymbol`)&&(a=fe(d));let t=[],s=d.primitiveName;s&&t.push(s);let l=c&&I(d.markerPlacement);this._analyzeMarker(d,m,null,t,a,i,o,n,r,!1,l);break}default:X().error(`Cannot analyze CIM layer`,d.type)}if(m?.some(({effect:e})=>Z(e)))for(let e=h;e<this._cimLayers.length;e++)this._cimLayers[e].effectsChangeGeometryType=!0}}_analyzePointSymbolHalo(e,t,r,i,o){let{haloSymbol:s}=e,c=R(e.haloSize,0);if(c<=0||!s?.symbolLayers)return null;let u=s.symbolLayers.filter(e=>e.enable!==!1),f=u[0];if(!f)return null;let p=u.length===1&&f.type===`CIMSolidFill`;if(e.symbolLayers?.some(e=>l(e))===!0||l(s))return X().warnOnce(`CIM point symbol halos do not support independently animated symbol components`),null;let m=i?.map(e=>E.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>e!=null);if(m?.some(({effect:e})=>Z(e))){if(!p)return X().warnOnce(`Complex CIM point symbol halos are not supported with geometry-changing effects`),null;let t=e.symbolLayers?.filter(e=>e.enable!==!1)??[];if(!xe(t,m))return X().warnOnce(`CIM point symbol halos with geometry-changing effects currently require polygon-producing effects and an unambiguous solid-fill effect chain`),null;let n=t.find(e=>e.type===`CIMSolidFill`);if(!n)return null;let i=[...m,...(n.effects??[]).map(e=>E.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>e!=null)],a=z(t),o=this._getValueOrOverrideExpression(f.type,f.primitiveName,`Color`,P(f.color));return this._cimLayers.push({type:`outlineFill`,name:n.name,colorLocked:!!n.colorLocked,color:this._getValueOrOverrideExpression(n.type,n.primitiveName,`Color`,P(n.color)),effects:i,effectsChangeGeometryType:!0,outlineColorLocked:!0,outlineColor:o,outlineWidth:2*c+a,cap:`Round`,join:`Round`,referenceWidth:r,pixelBufferSize:2*c+a,outlineEffects:i}),n}let h=e.symbolLayers?.filter(e=>e.enable!==!1)??[],g=h.length===1&&h[0].type===`CIMVectorMarker`?h[0]:null,_=n(e);if(_.effects=void 0,_.angle=0,_.scaleX=1,g){let e=_.symbolLayers?.find(e=>e.type===`CIMVectorMarker`&&e.enable!==!1);e&&(e.rotation=0,e.offsetX=0,e.offsetY=0)}let v={..._,haloSize:0,haloSymbol:void 0},x=y.getPointSymbolHaloPadding(e,this._resourceManager),[S,C,w]=b.getTextureAnchor(v,this._resourceManager,ue,x),T=a(w),D=[];E.findApplicableOverrides(_,this._primitiveOverrides,D);let k=g?D.filter(e=>e.primitiveName!==g.primitiveName||![`Rotation`,`OffsetX`,`OffsetY`].includes(e.propertyName)):D,A=g?[{offsetX:this._getValueOrOverrideExpression(g.type,g.primitiveName,`OffsetX`,R(g.offsetX)),offsetY:this._getValueOrOverrideExpression(g.type,g.primitiveName,`OffsetY`,R(g.offsetY)),rotation:this._getValueOrOverrideExpression(g.type,g.primitiveName,`Rotation`,R(g.rotation)),size:T,frameHeight:T,rotateClockWise:!!g.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:!1}]:[],j=$(p?d(this._poMap,f,o):o),M,N;if(j){let e=b.getEnvelope(v,null,this._resourceManager);e&&(M=[e.width,e.height],N=[e.width+2*x,e.height+2*x])}return this._cimLayers.push({type:`marker`,spriteRasterizationParam:{type:`sprite-rasterization-param`,resource:{type:`cim-point-symbol-halo`,symbol:_,sdf:!j&&p&&O(v)!=null},overrides:k},colorLocked:!0,color:p?this._getValueOrOverrideExpression(f.type,f.primitiveName,`Color`,P(f.color)):[255,255,255,1],effects:m??null,effectsChangeGeometryType:m?.some(({effect:e})=>Z(e)),scaleSymbolsProportionally:!1,alignment:t,anchorPoint:{x:S,y:C},isAbsoluteAnchorPoint:!1,size:T,scaleX:R(e.scaleX,1),rotation:g?0:R(e.angle,0),offsetX:0,offsetY:0,outlineColor:[0,0,0,0],outlineWidth:0,transform:{type:`cim-marker-transform-param`,params:A},frameHeight:T,widthRatio:1,rotateClockwise:!1,referenceSize:r||T,sizeRatio:1,markerPlacement:null,isOutline:!1,animationParams:j,baseSize:r||T,pixelDimensions:M,texelDimensions:N}),null}_analyzeSolidFill(e,t,n,r){let{primitiveName:i,type:a}=e,o=P(e.color),s=d(this._poMap,e,n);if(!r&&t?.some(e=>e.effect.type===`CIMGeometricEffectTaperedPolygon`)){let n=this._getValueOrOverrideExpression(a,i,`Color`,o);this._cimLayers.push({type:`outlineFill`,name:e.name,colorLocked:!!e.colorLocked,color:n,effects:t,outlineColor:n,outlineColorLocked:!!e.colorLocked,...S,outlineEffects:t});return}this._cimLayers.push({type:`fill`,name:e.name,spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,i,`Color`,o),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:$(s)})}_analyzePictureFill(e,t,n){let{primitiveName:r,type:i}=e,a=B(e),o=R(e.height,C.CIMPictureFill.height),s=R(e.scaleX,1);if(`width`in e&&typeof e.width==`number`){let t=e.width,n=1,r=this._resourceManager.getResource(e.url);r!=null&&(n=r.width/r.height),s/=o/t*n}let c={type:`sprite-rasterization-param`,resource:e,overrides:this._getPrimitiveMaterialOverrides(r,i)},l=d(this._poMap,e,n);this._cimLayers.push({type:`fill`,name:e.name,spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(i,r,`TintColor`,a),height:this._getValueOrOverrideExpression(i,r,`Height`,o),scaleX:this._getValueOrOverrideExpression(i,r,`ScaleX`,s),angle:this._getValueOrOverrideExpression(i,r,`Rotation`,R(e.rotation)),offsetX:this._getValueOrOverrideExpression(i,r,`OffsetX`,R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(i,r,`OffsetY`,R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:$(l)})}_analyzeHatchFill(e,t,n){let{primitiveName:r,type:i}=e,a=d(this._poMap,e,n),o=this._analyzeMaterialOverrides(r,[`Rotation`,`OffsetX`,`OffsetY`]),s=V(o),c=[255,255,255,1],l=!1;if(e.lineSymbol?.symbolLayers)for(let t of e.lineSymbol.symbolLayers){if(t.type!==`CIMSolidStroke`)continue;let e=t.primitiveName??r;!l&&e&&!t.colorLocked&&(this._poMap[e]?.Color!=null||this._poMap[e]?.StrokeColor!=null)&&(c=P(t.color),c=this._maybeGetValueOrOverrideExpression(e,`StrokeColor`)??this._getValueOrOverrideExpression(i,e,`Color`,c),l=!0);let n=this._maybeGetValueOrOverrideExpression(e,`StrokeWidth`);if(n){let t=null,r=null;typeof n==`number`?t=n:r=n.valueExpressionInfo;let a=s.find(e=>e.propertyName===`strokeWidth`);a?a.propertyName=`width`:(a={type:`CIMPrimitiveOverride`,primitiveName:e,propertyName:`width`,valueExpressionInfo:r,value:t,defaultValue:H(i,`width`)},s.push(a))}}let u={type:`sprite-rasterization-param`,resource:e,overrides:s};this._cimLayers.push({type:`fill`,name:e.name,spriteRasterizationParam:u,colorLocked:!!e.colorLocked,effects:t,color:c,height:this._getValueOrOverrideExpression(i,r,`Separation`,R(e.separation,C.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(i,r,`Rotation`,R(e.rotation)),offsetX:this._getValueOrOverrideExpression(i,r,`OffsetX`,R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(i,r,`OffsetY`,R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!l,animationParams:$(a)})}_analyzeGradientFill(e,t){let{angle:n,gradientMethod:r,gradientSize:i,gradientSizeUnits:a,gradientType:o,interval:s,primitiveName:c,type:l}=e,u=C.CIMGradientFill,d=e.colorRamp;this._cimLayers.push({type:`gradientFill`,name:e.name,spriteRasterizationParam:{type:`sprite-rasterization-param`,resource:e,overrides:this._getPrimitiveMaterialOverrides(c,l)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(l,c,`GradientMethod`,r??`Linear`),angle:this._getValueOrOverrideExpression(l,c,`Angle`,R(n,u.angle)),gradientType:this._getValueOrOverrideExpression(l,c,`GradientType`,o??u.gradientType),interval:this._getValueOrOverrideExpression(l,c,`Interval`,R(s,d.type===`CIMFixedColorRamp`?d.colors.length:u.interval)),gradientSize:this._getValueOrOverrideExpression(l,c,`GradientSize`,R(i,u.gradientSize)),gradientSizeUnits:a===`Absolute`?M.Absolute:a===`Relative`?M.Relative:u.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,n,r=[]){let i=e.find(e=>e.type===`CIMSolidFill`),a=e.find(e=>e.type===`CIMSolidStroke`);if(i==null||a==null)return;let o=[...r,...[...t??[],...i.effects??[]].map(e=>E.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>e!=null)],s=[...r,...[...t??[],...a.effects??[]].map(e=>E.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>e!=null)],c=R(a.width,C.CIMSolidStroke.width),l=U(a.capStyle,C.CIMSolidStroke.capstyle),u=U(a.joinStyle,C.CIMSolidStroke.joinstyle),d=a.miterLimit;this._cimLayers.push({type:`outlineFill`,name:i.name,colorLocked:!!i.colorLocked,color:this._getValueOrOverrideExpression(i.type,i.primitiveName,`Color`,P(i.color)),effects:o,effectsChangeGeometryType:o.some(({effect:e})=>Z(e))||s.some(({effect:e})=>Z(e)),outlineColorLocked:!!a.colorLocked,outlineColor:this._getValueOrOverrideExpression(a.type,a.primitiveName,`Color`,P(a.color)),outlineWidth:this._getValueOrOverrideExpression(a.type,a.primitiveName,`Width`,c),cap:this._getValueOrOverrideExpression(a.type,a.primitiveName,`CapStyle`,l),join:this._getValueOrOverrideExpression(a.type,a.primitiveName,`JoinStyle`,u),miterLimit:d&&this._getValueOrOverrideExpression(a.type,a.primitiveName,`MiterLimit`,d),referenceWidth:n,outlineEffects:s})}_analyzeSolidStroke(e,t,n,r,i){let{primitiveName:a,type:o}=e,s=P(e.color),c=R(e.width,C.CIMSolidStroke.width),l=U(e.capStyle,C.CIMSolidStroke.capstyle),u=U(e.joinStyle,C.CIMSolidStroke.joinstyle),f=e.miterLimit,p=this._analyzePrimitiveOverrides(a,t,null,null),m=[];p&&(m=this._getPrimitiveMaterialOverrides(a,o));let h,g,_,v;if(t&&Array.isArray(t)&&t.length>0){let e=t[t.length-1].effect;e&&e.type===`CIMGeometricEffectDashes`&&e.lineDashEnding===`NoConstraint`&&(h=e.dashTemplate,g=e.scaleDash,_=e.offsetAlongLine,v=e.primitiveName,t=[...t],t.pop())}v!=null&&m.push(...this._getPrimitiveMaterialOverrides(v,o).filter(e=>e.propertyName===`dashTemplate`));let y=h===void 0?null:{type:`sprite-rasterization-param`,resource:{type:`dash`,dashTemplate:h,primitiveName:v},overrides:m},b=d(this._poMap,e,i);this._cimLayers.push({type:`line`,name:e.name,spriteRasterizationParam:y,isOutline:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,a,`Color`,s),width:this._getValueOrOverrideExpression(o,a,`Width`,c),cap:this._getValueOrOverrideExpression(o,a,`CapStyle`,l),join:this._getValueOrOverrideExpression(o,a,`JoinStyle`,u),miterLimit:f&&this._getValueOrOverrideExpression(o,a,`MiterLimit`,f),referenceWidth:r,zOrder:he(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(v,`DashTemplate`)??h,offsetAlongLine:this._getValueOrOverrideExpression(o,v,`OffsetAlongLine`,_??0),scaleDash:g,sampleAlphaOnly:!0,animationParams:$(b)})}_analyzePictureStroke(e,t,n,r,i){let{primitiveName:a,type:o}=e,s=B(e),c=R(e.width,C.CIMPictureStroke.width),l=U(e.capStyle,C.CIMPictureStroke.capstyle),u=U(e.joinStyle,C.CIMPictureStroke.joinstyle),f=e.miterLimit,p={type:`sprite-rasterization-param`,resource:e,overrides:this._getPrimitiveMaterialOverrides(a,o)},m=d(this._poMap,e,i);this._cimLayers.push({type:`line`,name:e.name,spriteRasterizationParam:p,isOutline:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,a,`TintColor`,s),width:this._getValueOrOverrideExpression(o,a,`Width`,c),cap:this._getValueOrOverrideExpression(o,a,`CapStyle`,l),join:this._getValueOrOverrideExpression(o,a,`JoinStyle`,u),miterLimit:f&&this._getValueOrOverrideExpression(o,a,`MiterLimit`,f),referenceWidth:r,zOrder:he(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:$(m)})}_analyzeGradientStroke(e,t,n,r){let{gradientMethod:i,gradientSize:a,gradientSizeUnits:o,gradientType:s,interval:c,primitiveName:l,type:u}=e,d=C.CIMGradientStroke,f=R(e.width,d.width),p=U(e.capStyle,d.capstyle),m=U(e.joinStyle,d.joinstyle),h=e.miterLimit,g=e.colorRamp;this._cimLayers.push({type:`gradientStroke`,name:e.name,spriteRasterizationParam:{type:`sprite-rasterization-param`,resource:e,overrides:this._getPrimitiveMaterialOverrides(l,u)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(u,l,`Width`,f),cap:this._getValueOrOverrideExpression(u,l,`CapStyle`,p),join:this._getValueOrOverrideExpression(u,l,`JoinStyle`,m),miterLimit:h&&this._getValueOrOverrideExpression(u,l,`MiterLimit`,h),referenceWidth:r,isOutline:n,gradientMethod:this._getValueOrOverrideExpression(u,l,`GradientMethod`,i??d.gradientMethod),gradientType:this._getValueOrOverrideExpression(u,l,`GradientType`,s??d.gradientType),interval:this._getValueOrOverrideExpression(u,l,`Interval`,R(c,g.type===`CIMFixedColorRamp`?g.colors.length:d.interval)),gradientSize:this._getValueOrOverrideExpression(u,l,`GradientSize`,R(a,d.gradientSize)),gradientSizeUnits:o===`Absolute`?M.Absolute:o===`Relative`?M.Relative:d.gradientSizeUnits})}_analyzeMarker(e,t,n,r,i,a,o,s,c,l=!1,u=!1){l||=!!e.colorLocked;let h=c;if(h=f(e,h),h=p(this._poMap,e,h),h=m(e,h),h=d(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,l,h))return;let g=R(e.size,C.CIMVectorMarker.size),_=R(e.rotation),v=R(e.offsetX),y=R(e.offsetY),{primitiveName:b,type:x}=e,S=this._getValueOrOverrideExpression(x,b,`Size`,g),w=this._getValueOrOverrideExpression(x,b,`Rotation`,_),T=this._getValueOrOverrideExpression(x,b,`OffsetX`,v),E=this._getValueOrOverrideExpression(x,b,`OffsetY`,y);switch(e.type){case`CIMPictureMarker`:this._analyzePictureMarker(e,t,n,r,i,a,S,w,T,E,s,h,l,u);break;case`CIMVectorMarker`:this._analyzeVectorMarker(e,t,n,r,i,a,S,w,T,E,s,h,o,l,u)}}_analyzeMarkerInsidePolygon(e,t,n,r){let{markerPlacement:i,type:o}=e;if(!i||i.type!==`CIMMarkerPlacementInsidePolygon`||r.hasMotionAnimations)return!1;if(o===`CIMVectorMarker`||o===`CIMPictureMarker`){let n=e.primitiveName;if(n&&this._analyzePrimitiveOverrides([n],t,null,null))return!1;let r=i.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;if(o===`CIMVectorMarker`){let{markerGraphics:t}=e;if(t)for(let e of t){let{symbol:t}=e;if(t?.type===`CIMPolygonSymbol`&&t.symbolLayers){let{symbolLayers:e}=t;for(let t of e)if(t.type===`CIMSolidStroke`)return!1}}}else{let{animatedSymbolProperties:t}=e;if(t)return!1}}let s=Math.abs(i.stepX),c=Math.abs(i.stepY);if(s===0||c===0)return!0;let l,u;if(i.gridType===`Random`){let e=a(de),t=Math.max(Math.floor(e/s),1);l=c*Math.max(Math.floor(e/c),1),u=t*s/l}else i.shiftOddRows?(l=c*2,u=s/c*.5):(l=c,u=s/c);let d=B(e),f=e.type===`CIMCharacterMarker`?null:{type:`sprite-rasterization-param`,resource:{...e,effects:e.effects?.filter(e=>!ye(e))},overrides:[]};return this._cimLayers.push({type:`fill`,name:e.name,spriteRasterizationParam:f,colorLocked:n,effects:t,color:d,height:l,scaleX:u,angle:i.gridAngle??0,offsetX:R(i.offsetX),offsetY:R(i.offsetY),applyRandomOffset:i.gridType===`Random`,sampleAlphaOnly:e.type!==`CIMPictureMarker`,hasUnresolvedReplacementColor:!0,animationParams:$(r)}),!0}_analyzePictureMarker(e,t,r,i,a,s,c,l,u,d,f,p,m,h){let{animatedSymbolProperties:g,primitiveName:_,type:v}=e,y=R(e.scaleX,1),b=B(e);r||=this._createMarkerPlacementOverrideExpression(e.markerPlacement);let x=this._createGIFAnimatedSymbolPropertiesOverrideExpression(g),S=e.anchorPoint??{x:0,y:0};if(`width`in e&&typeof e.width==`number`){let t=e.width,n=1,r=this._resourceManager.getResource(e.url);r!=null&&(n=r.width/r.height);let i=R(e.size);y/=i/t*n}let C=[...i];e.primitiveName&&C.push(e.primitiveName);let w;g||x?w={type:`animated`,url:e.url,urlHash:`H`+o(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(w=n(e),w.markerPlacement=null);let T={type:`sprite-rasterization-param`,resource:w,overrides:this._getMaterialOverrides(C,v)};x&&T.overrides.push(...x.overrides);let E=c;this._cimLayers.push({type:`marker`,name:e.name,spriteRasterizationParam:T,colorLocked:m,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:c,scaleX:this._getValueOrOverrideExpression(v,_,`ScaleX`,y),rotation:l,offsetX:u,offsetY:d,transform:{type:`cim-marker-transform-param`,params:f},color:this._getValueOrOverrideExpression(v,_,`TintColor`,b),anchorPoint:{x:S.x,y:S.y},isAbsoluteAnchorPoint:e.anchorPointUnits!==`Relative`,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:s,sizeRatio:1,isOutline:h,markerPlacement:r,animationParams:$(p),baseSize:E})}_analyzeVectorMarker(e,t,n,r,i,a,o,l,u,d,f,p,m,v,y){let b=e.markerGraphics;if(!b)return;let x=e.frame,S=0;S=x?x.ymax-x.ymin:a;let C=!!e.scaleSymbolsProportionally;if(S){let t={offsetX:u,offsetY:d,rotation:l,size:o,frameHeight:S,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:C};f=[...f,t]}n||=this._createMarkerPlacementOverrideExpression(e.markerPlacement);for(let o of b)if(o){let l=o.symbol;if(!l)continue;let u=o.primitiveName;u&&r.push(u);let d=p,b;if((l.type===`CIMPointSymbol`||l.type===`CIMTextSymbol`)&&x){let t=0,n=0,r=o.geometry;`x`in r&&`y`in r&&(t+=r.x-(x.xmin+x.xmax)*.5,n+=r.y-(x.ymin+x.ymax)*.5);let i=e.anchorPoint,a=!1;i&&(e.anchorPointUnits===`Absolute`?(t-=i.x,n-=i.y,a=!0):x&&(t-=(x.xmax-x.xmin)*i.x,n-=(x.ymax-x.ymin)*i.y));let s={offsetX:t,offsetY:n,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:C};b=[...f,s]}(l.type===`CIMPointSymbol`||l.type===`CIMTextSymbol`)&&this._analyzeCallout(l,t,b??f,d,a,i,m);let w=s(o.geometry)?{...o,geometry:c(o.geometry,{maxDeviation:.01})}:o,T=w.geometry,[E,D]=h(T,x);switch((E!==0||D!==0)&&(d=g(d,E,D)),l.type){case`CIMPointSymbol`:case`CIMLineSymbol`:case`CIMPolygonSymbol`:m||ve(l)?(d={...d,transform:{type:`AnimatedTransform`,relativeTranslation:!1,absoluteScale:!0,selectGlobalRotation:!1,translation:_([0,0]),rotation:_(0),scale:_(S),parent:p.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,n,w,r,i,a,b??f,d,S,v,y)):this._analyzeMultiLayerGraphic(e,t,n,w,r,i,a,b??f,d,S,v,y);break;case`CIMTextSymbol`:this._analyzeTextGraphic(t,n,w,r,i,a,b??f,v)}u&&r.pop()}}_analyzeCallout(e,t,n,r,i,a,o){let s=e.callout;if(!s||!ie(s))return;let c=t??[],{leaderTolerance:l,leaderOffset:u}=s;switch(s.type){case`CIMSimpleLineCallout`:{let{lineSymbol:e,autoSnap:t}=s,d={type:`CIMSimpleLineCallout`,leaderTolerance:l,leaderOffset:u,autoSnap:t,inflateSize:500};this._analyzeSymbolLayer(e,[...c,{type:`cim-effect-param`,effect:d,overrides:[]}],n,r,i,a,o);break}case`CIMBackgroundCallout`:{let{accentBarSymbol:e,gap:t,backgroundSymbol:d,leaderLineSymbol:f,lineStyle:p,margin:m}=s,h=n=>({type:`CIMBackgroundCallout`,leaderTolerance:l,leaderOffset:u,lineStyle:Y(p),gap:t,hasAccentBar:!!e,margin:m,inflateSize:500,part:n}),g=[...c,{type:`cim-effect-param`,effect:h(`background`),overrides:[]}];f&&this._analyzeSymbolLayer(f,[...c,{type:`cim-effect-param`,effect:h(`leader`),overrides:[]}],n,r,i,a,o);let _=d.symbolLayers??[];Q(_)?this._analyzeCompositeOutlineFill(_,null,i,g):this._analyzeSymbolLayer(d,g,n,r,i,a,o),e&&this._analyzeSymbolLayer(e,[...c,{type:`cim-effect-param`,effect:h(`accent-bar`),overrides:[]}],n,r,i,a,o);break}case`CIMBalloonCallout`:{let{balloonStyle:e,backgroundSymbol:t,dartSymbol:d,fixedDartWidth:f,margin:p,useDartSymbol:m,useFixedDartWidth:h}=s,g=m===!0&&d!=null,_=t=>({type:`CIMBalloonCallout`,leaderTolerance:l,leaderOffset:u,margin:p,balloonStyle:ce(e),dartWidth:h?f:void 0,inflateSize:500,part:t,separateDart:g}),v=(e,t)=>{let s=[...c,{type:`cim-effect-param`,effect:_(t),overrides:[]}],l=e.symbolLayers??[];Q(l)?this._analyzeCompositeOutlineFill(l,null,i,s):this._analyzeSymbolLayer(e,s,n,r,i,a,o)};g&&v(d,`dart`),v(t,`background`);break}case`CIMPointSymbolCallout`:{let{backgroundScale:e,gap:t,leaderLineSymbol:d,lineStyle:f,pointSymbol:p}=s,m=oe(e),h=ae(p,n),g=e=>({type:`CIMPointSymbolCallout`,leaderTolerance:l,leaderOffset:u,backgroundScale:m,...se(p,e),lineStyle:Y(f),gap:t,inflateSize:500,part:e});d&&this._analyzeSymbolLayer(d,[...c,{type:`cim-effect-param`,effect:g(`leader`),overrides:[]}],n,r,i,a,o),this._analyzeSymbolLayer(p,[...c,{type:`cim-effect-param`,effect:g(`marker`),overrides:[]}],h,r,i,a,o||m!==0);break}case`CIMCompositeCallout`:{let{backgroundSymbol:e,margin:t,shadowSymbol:d}=s,f={type:`CIMBalloonCallout`,leaderTolerance:l,leaderOffset:u,margin:t,balloonStyle:1,inflateSize:500,part:`background`},p=[...c,{type:`cim-effect-param`,effect:f,overrides:[]}],m=e=>{let t=e.symbolLayers??[];Q(t)?this._analyzeCompositeOutlineFill(t,null,i,p):this._analyzeSymbolLayer(e,p,n,r,i,a,o)};d&&m(d),m(e);break}}}_analyzeMultiLayerGraphic(e,t,n,r,i,a,o,s,c,l,u,d){let f=r.symbol,p=f.symbolLayers;if(p){if(_e(p)&&!v(c)){this._analyzeCompositeMarkerGraphic(e,t,n,r,p,a,o,s,l,u,d);return}if(Se(p)){x(f,e=>{e.colorLocked&&(u=!0)}),this._analyzeMultiLayerGraphicNonSDF(e,t,n,r,i,a,o,s,c,l,u,d);return}this._analyzeMarkerGraphicSymbolLayers(e,t,n,r,i,a,o,s,c,l,u,d)}}_analyzeMarkerGraphicSymbolLayers(e,t,n,r,i,a,o,s,c,l,u,f){let p=r.symbol,m=p.symbolLayers;if(!m)return;let h=le.applyEffects(p.effects,r.geometry);if(!h)return;let g=m.length;for(;g--;){let p=m[g];if(!p||p.enable===!1)continue;let _=p.primitiveName;switch(_&&i.push(_),p.type){case`CIMSolidFill`:case`CIMSolidStroke`:{let i=le.applyEffects(p.effects,h),m=k(i);if(!m)continue;let g=e.anchorPointUnits!==`Relative`,v=p.type===`CIMSolidStroke`?p.width:0,{frameSizeRatio:y,anchorX:b,anchorY:x,widthRatio:S,sdfPaddingRatio:w,sdfTextureSize:T}=A(m,e.frame,e.size,e.anchorPoint,g,v,e.scaleSymbolsProportionally),E=p.type===`CIMSolidFill`,D={type:`sdf`,geometry:i,sdfPaddingRatio:w,asFill:E,sdfTextureSize:T},{path:O}=p,M=E?P(W(p)):O==null?P(G(p)):[0,0,0,0],N=E?[0,0,0,0]:P(G(p));if(!E&&!v)break;let F=r.primitiveName,I=null;E&&!p.colorLocked&&(I=this._maybeGetValueOrOverrideExpression(F,`FillColor`));let L=null;!E&&!p.colorLocked&&(L=this._maybeGetValueOrOverrideExpression(F,`StrokeColor`));let z=I??this._getValueOrOverrideExpression(p.type,_,`Color`,M),B=L??this._getValueOrOverrideExpression(p.type,_,`Color`,N),V=this._maybeGetValueOrOverrideExpression(F,`StrokeWidth`)??this._getValueOrOverrideExpression(p.type,_,`Width`,v),H=O?{type:`sprite-rasterization-param`,resource:{type:`path`,path:O,asFill:E},overrides:[]}:{type:`sprite-rasterization-param`,resource:D,overrides:[]},U=d(this._poMap,p,c),K=R(e.size,C.CIMVectorMarker.size),q=this._getValueOrOverrideExpression(e.type,e.primitiveName,`Size`,K);this._cimLayers.push({type:`marker`,name:p.name,groupName:e.name,spriteRasterizationParam:H,colorLocked:!!p.colorLocked||!!u,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:b,y:x},isAbsoluteAnchorPoint:g,size:l,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:`cim-marker-transform-param`,params:s},frameHeight:l,widthRatio:S,rotateClockwise:!1,referenceSize:o,sizeRatio:y,color:z,outlineColor:B,outlineWidth:V,isOutline:f,markerPlacement:n,animationParams:$(U),isStroke:p.type!==`CIMSolidFill`,baseSize:q,...j(i,T,w)});break}case`CIMPictureMarker`:case`CIMVectorMarker`:if(p.markerPlacement){X().error(`Error analyzing CIM, got unexpected marker placement`);break}this._analyzeMarker(p,t,n,i,a,o,!1,s,c,u,f)}_&&i.pop()}}_analyzeTextGraphic(e,n,r,i,a,o,s,c){E.findApplicableOverrides(r,this._primitiveOverrides,[]);let l=r.geometry;if(!(`x`in l)||!(`y`in l))return;let u=r.symbol,d=K(u),f=T(u.fontStyleName),p=t(u.fontFamilyName);u.font={family:p,decoration:d,...f};let m=R(u.height,C.CIMTextSymbol.height),h=R(u.angle),g=R(u.offsetX),_=R(u.offsetY),{haloSymbol:v}=u,y=R(u.haloSize,0),b=[0,0,0,0];if(v?.symbolLayers?.length){let e=v.symbolLayers;for(let t of e)if(t.color){b=this._getValueOrOverrideExpression(u?.haloSymbol?.type??`CIMPolygonSymbol`,t.primitiveName,`Color`,P(t.color));break}}let x=r.primitiveName,S=[0,0,0,1],w=[0,0,0,0],O=0,k=!1;if(u.symbol?.symbolLayers)for(let e of u.symbol.symbolLayers){let t=e.primitiveName;if(e.type===`CIMSolidStroke`)w=this._getValueOrOverrideExpression(`CIMSolidStroke`,t,`Color`,P(e.color)),O=this._getValueOrOverrideExpression(`CIMSolidStroke`,t,`Width`,q(e)??0);else if(e.type===`CIMSolidFill`){let n=P(e.color);k??=!!e.colorLocked,S=this._getValueOrOverrideExpression(`CIMSolidFill`,t??x,`Color`,n)}}let A=null,j=null,M=null,N=null,F=null;x&&(A=this._maybeGetValueOrOverrideExpression(x,`TextSize`),j=this._maybeGetValueOrOverrideExpression(x,`TextAngle`),M=this._maybeGetValueOrOverrideExpression(x,`TextOffsetX`),N=this._maybeGetValueOrOverrideExpression(x,`TextOffsetY`),k||(F=this._maybeGetValueOrOverrideExpression(x,`FillColor`)));let I=F??S,L=null,z=null,B=0,V=u.callout?.type===`CIMBackgroundCallout`;if(u.callout?.type===`CIMBackgroundCallout`){let e=u.callout;if(e.backgroundSymbol){let t=e.backgroundSymbol.symbolLayers;if(t)for(let e of t)e.type===`CIMSolidFill`?L=P(e.color):e.type===`CIMSolidStroke`&&(z=P(e.color),B=R(e.width,C.CIMSolidStroke.width))}}let H=this._getValueOrOverrideExpression(u.type,r.primitiveName,`TextString`,r.textString??``);if(H==null)return;let{fontStyleName:U}=u,W=p+(U?`-`+U.toLowerCase():`-regular`),G=this._getMaterialOverrides(i,u.type);G.push(...this._getPrimitiveMaterialOverrides(r.primitiveName,u.type)),this._collectDictionaryTemplateOverrides(G,r);let J={type:`text-rasterization-param`,resource:{type:`text`,textString:r.textString??``,font:u.font,symbol:u,primitiveName:r.primitiveName,supportsRichText:D(r.textString??``)||G.some(e=>e.propertyName===`textString`)},overrides:G};this._cimLayers.push({type:`text`,lineWidth:u.lineWidth,textRasterizationParam:J,colorLocked:!!c||!!k,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:W,decoration:d,haloSize:y,haloColor:b,weight:f.weight,style:f.style,size:A??m,angle:j??h,offsetX:M??g,offsetY:N??_,transform:{type:`cim-marker-transform-param`,params:s},horizontalAlignment:te(u.horizontalAlignment),verticalAlignment:ee(u.verticalAlignment),text:H,color:I,outlineColor:w,outlineSize:O,backgroundColor:L,borderLineColor:z,borderLineWidth:B,useBackgroundCallout:V,referenceSize:o,sizeRatio:1,markerPlacement:n})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){let n=J(t.symbol);e.push({propertyName:`textString`,defaultValue:``,valueExpressionInfo:{type:`dictionary-template`,textCase:n,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,n,r,a,o,s,c,l,u,d,f){let p=me(e,r),m=e.primitiveName,h=this._analyzeMaterialOverrides(m,[`Rotation`,`OffsetX`,`OffsetY`]),g=V(h),[_,v,y]=b.getTextureAnchor(p,this._resourceManager,ue),x=this._getMaterialOverrides(a,e.type).filter(e=>e.primitiveName!==m||![`rotation`,`offsetX`,`offsetY`].includes(e.propertyName));x.push(...g);let S={type:`sprite-rasterization-param`,resource:{...p,avoidSDFRasterization:!0},overrides:x},w=R(e.size,C.CIMVectorMarker.size),T=this._getValueOrOverrideExpression(e.type,m,`Size`,w);this._cimLayers.push({type:`marker`,name:e.name,spriteRasterizationParam:S,colorLocked:d,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:o,anchorPoint:{x:_,y:v},isAbsoluteAnchorPoint:!1,size:u,rotation:0,offsetX:0,offsetY:0,transform:{type:`cim-marker-transform-param`,params:c},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:u,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:s,sizeRatio:y/i(e.size),isOutline:f,markerPlacement:n,animationParams:$(l),baseSize:T})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;let t=[];return E.findApplicableOverrides(e,this._primitiveOverrides,t),{type:`cim-marker-placement-param`,placement:e,overrides:we(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;let t=[];return E.findApplicableOverrides(e,this._primitiveOverrides,t),{type:`cim-gif-animation-params`,animation:e,overrides:we(t)}}_analyzeCompositeMarkerGraphic(e,t,n,r,i,a,o,s,c,l,u){let d=r.geometry,f=i[0],p=i[1],m=k(d);if(!m)return;let h=e.anchorPointUnits!==`Relative`,g=R(f.width,C.CIMSolidStroke.width),{frameSizeRatio:_,anchorX:v,anchorY:y,widthRatio:b,sdfPaddingRatio:x,sdfTextureSize:S}=A(m,e.frame,e.size,e.anchorPoint,h,g,e.scaleSymbolsProportionally),{path:w}=p,T=p.primitiveName,E=f.primitiveName,D=r.primitiveName,O=null;!p.colorLocked&&!l&&(O=this._maybeGetValueOrOverrideExpression(D,`FillColor`));let j=O??this._getValueOrOverrideExpression(p.type,T,`Color`,P(p.color)),M=null;!f.colorLocked&&!l&&(M=this._maybeGetValueOrOverrideExpression(D,`StrokeColor`));let N=M??this._getValueOrOverrideExpression(f.type,E,`Color`,P(f.color)),F=this._maybeGetValueOrOverrideExpression(D,`StrokeWidth`)??this._getValueOrOverrideExpression(f.type,E,`Width`,g),I={type:`sprite-rasterization-param`,resource:w?{type:`path`,path:w,asFill:!0}:{type:`sdf`,geometry:d,sdfTextureSize:S,sdfPaddingRatio:x,asFill:!0},overrides:[]};this._cimLayers.push({type:`marker`,name:e.name,spriteRasterizationParam:I,colorLocked:l,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:v,y},isAbsoluteAnchorPoint:h,size:c,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:`cim-marker-transform-param`,params:s},frameHeight:c,widthRatio:b,rotateClockwise:!1,referenceSize:o,sizeRatio:_,color:j,outlineColor:N,outlineWidth:F,isOutline:u,markerPlacement:n})}_setPoMap(e,t,n){let r;this._poMap[e]?r=this._poMap[e]:(r={},this._poMap[e]=r),r[t]=n}_maybeGetValueOrOverrideExpression(e,t,n){return this._getValueOrOverrideExpression(``,e,t,n,!1)}_getValueOrOverrideExpression(e,t,n,r,i=!0){if(i&&!ne(r)&&(r=H(e,n.toLowerCase())),t==null)return r;let a=this._poMap[t];if(a==null)return r;let o=a[n];return typeof o==`string`||typeof o==`number`||Array.isArray(o)?o:o?{valueExpressionInfo:o,defaultValue:r}:r}_analyzePrimitiveOverrides(e,t,n,r){if(e==null)return!1;typeof e==`string`&&(e=[e]);for(let t of this._primitiveOverrides)if(e.includes(t.primitiveName)&&t.valueExpressionInfo)return!0;if(t!=null){for(let e of t)if(e?.overrides.length>0)return!0}if(n!=null){for(let e of n)if(e?.overrides.length>0)return!0}if(r!=null){for(let e of r)if(e?.overrides.length>0)return!0}return!1}_getMaterialOverrides(e,t){if(!e)return[];let n=[];for(let r of e)n.push(...this._getPrimitiveMaterialOverrides(r,t));return n}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];let n=V(this._primitiveOverrides.filter(t=>t.primitiveName===e));return n.forEach(e=>e.defaultValue=H(t,e.propertyName.toLowerCase())),n}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(n=>n.primitiveName!==e||!t.includes(n.propertyName))}}function me(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[{...t}],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function he(e){if(e?.startsWith(`Level_`)){let t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function ge(e,t){if(!t||t.length===0)return e;let r=n(e);return E.applyOverrides(r,t),r}const _e=e=>e&&e.length===2&&e[0].enable&&e[1].enable&&e[0].type===`CIMSolidStroke`&&e[1].type===`CIMSolidFill`&&e[0].path==null&&e[1].path==null&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function ve(e){let t=e.symbolLayers;if(!t)return!1;let n=t.find(e=>e.effects?.find(e=>e.type===`CIMGeometricEffectDashes`&&e.dashTemplate!=null)),r=t.find(e=>e.effects?.find(e=>e.type===`CIMGeometricEffectAddControlPoints`));return!!n||!!r}function ye(e){return Z(e)}function Z(e){return e.type===`CIMGeometricEffectCircularSector`||e.type===`CIMGeometricEffectRadial`||e.type===`CIMGeometricEffectTaperedPolygon`||e.type===`PrivateDimensionEffect`||e.type===`PrivateMatcherGeometryOverrideEffect`}function be(e){return e.type===`CIMGeometricEffectCircularSector`||e.type===`CIMGeometricEffectTaperedPolygon`}function xe(e,t){let n=e.filter(e=>e.type===`CIMSolidFill`),r=e.every(e=>e.type===`CIMSolidFill`||e.type===`CIMSolidStroke`),i=e.filter(e=>e.effects?.length),a=i.length===0||i.length===1&&n.length===1&&i[0]===n[0];return n.length>0&&r&&a&&t.some(({effect:e})=>be(e))}function Se(e){return e.some(e=>e.type!==`CIMSolidFill`&&e.type!==`CIMSolidStroke`&&(e.type!==`CIMVectorMarker`&&e.type!==`CIMPictureMarker`||e.markerPlacement!=null))}function Ce(e,t){return!!(t?.some(e=>e.type===`CIMGeometricEffectRadial`)&&t?.some(e=>e.type===`CIMGeometricEffectTaperedPolygon`)||t?.some(e=>e.type===`CIMGeometricEffectCircularSector`))&&Q(e)}function Q(e){if(e?.length!==2)return!1;let t=e.find(e=>e.type===`CIMSolidFill`),n=e.find(e=>e.type===`CIMSolidStroke`),r=n?.effects?.some(e=>e.type===`CIMGeometricEffectDashes`);return t!=null&&n!=null&&!r}function we(e){return n(e).map(e=>({...e,propertyName:re(e.propertyName)}))}function $(e){return v(e)?{type:`animation-params`,params:e}:null}export{pe as CIMAnalyzer,ge as analyzeCIMResource};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{multiplyOpacity as n}from"../../../../core/colorUtils.js";import{makeHandle as r}from"../../../../core/handleUtils.js";import{isAborted as i,ignoreAbortErrors as a}from"../../../../core/promiseUtils.js";import{watch as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import d from"../../../../symbols/SimpleFillSymbol.js";import f from"../../../../symbols/SimpleLineSymbol.js";import{ExclusiveOperationManager as p}from"../../../analysis/ExclusiveOperationManager.js";import{bindViewToolOptions as m}from"../../../interactive/options/bindViewToolOptions.js";import h from"../../../../widgets/Sketch/SketchViewModel.js";function g(e){return e?.type===`polygon`}let _=class extends t{constructor(e){super(e),this._invisibleAreaSymbol=new d({color:null,outline:null}),this._invisibleLineSymbol=new f({color:null,width:0}),this._operationManager=new p,this._updatingHandles=new u}initialize(){this._sketchViewModel=new h({defaultCreateOptions:{mode:`click`},defaultUpdateOptions:{enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,enableZ:!1,highlightOptions:{enabled:!1},multipleSelectionEnabled:!1,reshapeOptions:{edgeOperation:`none`,shapeOperation:`none`},toggleToolOnClick:!1,tool:`reshape`},updateOnGraphicClick:!1,cancelUpdateOnClickAway:!1,view:this.view}),this.addHandles([o(()=>({interactive:this.measurementViewData.interactive,visible:this.measurementViewData.visible}),({interactive:e,visible:t})=>{t&&e&&this._analysis.geometry?this._operationManager.currentOperationType!==`place`&&this.reshape().catch(()=>{}):this._operationManager.stop()}),o(()=>this.measurementViewData.analysis.geometry,e=>{e||(this._operationManager.stop(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll())}),o(()=>this.measurementViewData.snappingOptions,e=>{this._sketchViewModel&&(this._sketchViewModel.snappingOptions=e)},s),m(this._sketchViewModel.sketchOptions,()=>this.view.options),o(()=>this.view.effectiveTheme.accentColor,e=>{this._areaSymbol=new d({color:n(e,.3),outline:new f({color:e,width:2})})},s)])}destroy(){this._areaSymbol?.destroy(),this._invisibleAreaSymbol.destroy(),this._invisibleLineSymbol.destroy(),this._operationManager.destroy(),this._sketchViewModel?.destroy(),this._updatingHandles.destroy()}get state(){if(!this.measurementViewData.visible||!this._operationManager.currentOperationType)return`idle`;switch(this._operationManager.currentOperationType){case`place`:return`placing`;case`reshape`:return`reshaping`}}get updating(){return!this._sketchViewModel||this._sketchViewModel.updating||this._updatingHandles.updating}async place(e){return this._operationManager.start(`place`,async t=>{if(!this._sketchViewModel||!this.measurementViewData.sketchGraphicsLayer)return;let n=this._analysis.clone(),o=this._sketchViewModel.on([`create`,`undo`,`redo`],e=>{let n=`state`in e?e.state:`active`,r=`graphic`in e?e.graphic:e.graphics?.at(0);switch(n){case`start`:case`active`:{let e=r?.geometry;e?.type===`polygon`&&(this._analysis.geometry=e);break}case`cancel`:case`complete`:t.stop(),a(this.reshape())}});t.handles.push(o,r(()=>{o.remove(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll();let r=this._analysis;if(!r.valid)return r.clear(),t.reject();if(i(e)||n.equals(r))return t.reject();t.resolve({})})),this._sketchViewModel.activeLineSymbol=this._invisibleLineSymbol,this._sketchViewModel.polygonSymbol=this._invisibleAreaSymbol,this._sketchViewModel.layer=this.measurementViewData.sketchGraphicsLayer,this._updatingHandles.consumePromise(a(this._sketchViewModel.create(`polygon`)))},e)}async reshape(e){return this._operationManager.start(`reshape`,async t=>{if(!this._sketchViewModel)return;let n=()=>!this._areaSymbol||!this._sketchViewModel||!this.measurementViewData.manipulatorGraphic||!this.measurementViewData.manipulatorGraphicsLayer?Promise.resolve():(this._sketchViewModel.activeLineSymbol=null,this._sketchViewModel.polygonSymbol=this._areaSymbol,this._sketchViewModel.layer=this.measurementViewData.manipulatorGraphicsLayer,this._updatingHandles.addPromise(a(this._sketchViewModel.update(this.measurementViewData.manipulatorGraphic,{tool:`reshape`})))),o=this._sketchViewModel.on(`update`,e=>{let r=e.graphics[0]?.geometry;this._analysis.geometry=g(r)?r:null,e.state===`complete`&&(this.measurementViewData.interactive?n():t.stop())});t.handles.push(o,r(()=>{if(o.remove(),this._sketchViewModel?.cancel(),i(e))return t.reject();t.resolve()})),await n()},e)}get _analysis(){return this.measurementViewData.analysis}};e([c()],_.prototype,`_sketchViewModel`,void 0),e([c()],_.prototype,`measurementViewData`,void 0),e([c()],_.prototype,`state`,null),e([c()],_.prototype,`updating`,null),e([c()],_.prototype,`view`,void 0),_=e([l(`esri.views.2d.analysis.AreaMeasurement.AreaMeasurementTool`)],_);export{_ as AreaMeasurementTool};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{multiplyOpacity as n}from"../../../../core/colorUtils.js";import{makeHandle as r}from"../../../../core/handleUtils.js";import{isAborted as i,ignoreAbortErrors as a}from"../../../../core/promiseUtils.js";import{watch as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import d from"../../../../symbols/SimpleFillSymbol.js";import f from"../../../../symbols/SimpleLineSymbol.js";import{ExclusiveOperationManager as p}from"../../../analysis/ExclusiveOperationManager.js";import{bindViewToolOptions as m}from"../../../interactive/options/bindViewToolOptions.js";import h from"../../../../widgets/Sketch/SketchViewModel.js";function g(e){return e?.type===`polygon`}let _=class extends t{constructor(e){super(e),this._invisibleAreaSymbol=new d({color:null,outline:null}),this._invisibleLineSymbol=new f({color:null,width:0}),this._operationManager=new p,this._updatingHandles=new u}initialize(){this._sketchViewModel=new h({defaultCreateOptions:{mode:`click`},defaultUpdateOptions:{enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,enableZ:!1,highlightOptions:{enabled:!1},multipleSelectionEnabled:!1,reshapeOptions:{edgeOperation:`none`,shapeOperation:`none`},toggleToolOnClick:!1,tool:`reshape`},updateOnGraphicClick:!1,cancelUpdateOnClickAway:!1,view:this.view}),this.addHandles([o(()=>({interactive:this.measurementViewData.interactive,visible:this.measurementViewData.visible}),({interactive:e,visible:t})=>{t&&e&&this._analysis.geometry?this._operationManager.currentOperationType!==`place`&&this.reshape().catch(()=>{}):this._operationManager.stop()}),o(()=>this.measurementViewData.analysis.geometry,e=>{e||(this._operationManager.stop(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll())}),o(()=>this.measurementViewData.snappingOptions,e=>{this._sketchViewModel&&(this._sketchViewModel.snappingOptions=e)},s),m(this._sketchViewModel.sketchOptions,()=>this.view.options,()=>({values:{displayUnits:{area:this._analysis.unit}}})),o(()=>this.view.effectiveTheme.accentColor,e=>{this._areaSymbol=new d({color:n(e,.3),outline:new f({color:e,width:2})})},s)])}destroy(){this._areaSymbol?.destroy(),this._invisibleAreaSymbol.destroy(),this._invisibleLineSymbol.destroy(),this._operationManager.destroy(),this._sketchViewModel?.destroy(),this._updatingHandles.destroy()}get state(){if(!this.measurementViewData.visible||!this._operationManager.currentOperationType)return`idle`;switch(this._operationManager.currentOperationType){case`place`:return`placing`;case`reshape`:return`reshaping`}}get updating(){return!this._sketchViewModel||this._sketchViewModel.updating||this._updatingHandles.updating}async place(e){return this._operationManager.start(`place`,async t=>{if(!this._sketchViewModel||!this.measurementViewData.sketchGraphicsLayer)return;let n=this._analysis.clone(),o=this._sketchViewModel.on([`create`,`undo`,`redo`],e=>{let n=`state`in e?e.state:`active`,r=`graphic`in e?e.graphic:e.graphics?.at(0);switch(n){case`start`:case`active`:{let e=r?.geometry;e?.type===`polygon`&&(this._analysis.geometry=e);break}case`cancel`:case`complete`:t.stop(),a(this.reshape())}});t.handles.push(o,r(()=>{o.remove(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll();let r=this._analysis;if(!r.valid)return r.clear(),t.reject();if(i(e)||n.equals(r))return t.reject();t.resolve({})})),this._sketchViewModel.activeLineSymbol=this._invisibleLineSymbol,this._sketchViewModel.polygonSymbol=this._invisibleAreaSymbol,this._sketchViewModel.layer=this.measurementViewData.sketchGraphicsLayer,this._updatingHandles.consumePromise(a(this._sketchViewModel.create(`polygon`)))},e)}async reshape(e){return this._operationManager.start(`reshape`,async t=>{if(!this._sketchViewModel)return;let n=()=>!this._areaSymbol||!this._sketchViewModel||!this.measurementViewData.manipulatorGraphic||!this.measurementViewData.manipulatorGraphicsLayer?Promise.resolve():(this._sketchViewModel.activeLineSymbol=null,this._sketchViewModel.polygonSymbol=this._areaSymbol,this._sketchViewModel.layer=this.measurementViewData.manipulatorGraphicsLayer,this._updatingHandles.addPromise(a(this._sketchViewModel.update(this.measurementViewData.manipulatorGraphic,{tool:`reshape`})))),o=this._sketchViewModel.on(`update`,e=>{let r=e.graphics[0]?.geometry;this._analysis.geometry=g(r)?r:null,e.state===`complete`&&(this.measurementViewData.interactive?n():t.stop())});t.handles.push(o,r(()=>{if(o.remove(),this._sketchViewModel?.cancel(),i(e))return t.reject();t.resolve()})),await n()},e)}get _analysis(){return this.measurementViewData.analysis}};e([c()],_.prototype,`_sketchViewModel`,void 0),e([c()],_.prototype,`measurementViewData`,void 0),e([c()],_.prototype,`state`,null),e([c()],_.prototype,`updating`,null),e([c()],_.prototype,`view`,void 0),_=e([l(`esri.views.2d.analysis.AreaMeasurement.AreaMeasurementTool`)],_);export{_ as AreaMeasurementTool};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{multiplyOpacity as n}from"../../../../core/colorUtils.js";import{makeHandle as r}from"../../../../core/handleUtils.js";import{ignoreAbortErrors as i,isAborted as a}from"../../../../core/promiseUtils.js";import{watch as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import d from"../../../../symbols/SimpleLineSymbol.js";import{ExclusiveOperationManager as f}from"../../../analysis/ExclusiveOperationManager.js";import{bindViewToolOptions as p}from"../../../interactive/options/bindViewToolOptions.js";import m from"../../../../widgets/Sketch/SketchViewModel.js";function h(e){return e?.type===`polyline`}let g=class extends t{constructor(e){super(e),this._invisibleLineSymbol=new d({color:null,width:0}),this._operationManager=new f,this._updatingHandles=new u}initialize(){this._sketchViewModel=new m({defaultCreateOptions:{mode:`click`},defaultUpdateOptions:{enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,enableZ:!1,highlightOptions:{enabled:!1},multipleSelectionEnabled:!1,reshapeOptions:{edgeOperation:`none`,shapeOperation:`none`},toggleToolOnClick:!1,tool:`reshape`},updateOnGraphicClick:!1,view:this.view}),this.addHandles([o(()=>({interactive:this.measurementViewData.interactive,visible:this.measurementViewData.visible}),({interactive:e,visible:t})=>{t&&e&&this._analysis.geometry?this._operationManager.currentOperationType!==`place`&&this.reshape().catch(()=>{}):this._operationManager.stop()}),o(()=>this.measurementViewData.analysis.geometry,e=>{e||(this._operationManager.stop(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll())}),o(()=>this.measurementViewData.snappingOptions,e=>{this._sketchViewModel&&(this._sketchViewModel.snappingOptions=e)},s),p(this._sketchViewModel.sketchOptions,()=>this.view.options),o(()=>this.view.effectiveTheme.accentColor,e=>{this._lineSymbol=new d({color:n(e,.3),width:2})},s)])}destroy(){this._invisibleLineSymbol.destroy(),this._lineSymbol?.destroy(),this._operationManager.destroy(),this._sketchViewModel?.destroy(),this._updatingHandles.destroy()}get state(){if(!this.measurementViewData.visible||!this._operationManager.currentOperationType)return`idle`;switch(this._operationManager.currentOperationType){case`place`:return`placing`;case`reshape`:return`reshaping`}}get updating(){return!this._sketchViewModel||this._sketchViewModel.updating||this._updatingHandles.updating}async place(e){return this._operationManager.start(`place`,async t=>{if(!this._sketchViewModel||!this.measurementViewData.sketchGraphicsLayer)return;let n=this._analysis.clone(),o=this._sketchViewModel.on(`create`,e=>{switch(e.state){case`start`:case`active`:{let t=e.graphic?.geometry;t?.type===`polyline`&&(this._analysis.geometry=t);break}case`cancel`:case`complete`:t.stop(),i(this.reshape())}});t.handles.push(o,r(()=>{o.remove(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll();let r=this._analysis;if(!r.valid)return r.clear(),t.reject();if(a(e)||n.equals(r))return t.reject();t.resolve({})})),this._sketchViewModel.activeLineSymbol=this._invisibleLineSymbol,this._sketchViewModel.polylineSymbol=this._invisibleLineSymbol,this._sketchViewModel.layer=this.measurementViewData.sketchGraphicsLayer,this._updatingHandles.consumePromise(i(this._sketchViewModel.create(`polyline`)))},e)}async reshape(e){return this._operationManager.start(`reshape`,async t=>{if(!this._sketchViewModel)return;let n=()=>!this._lineSymbol||!this._sketchViewModel||!this.measurementViewData.manipulatorGraphic||!this.measurementViewData.manipulatorGraphicsLayer?Promise.resolve():(this._sketchViewModel.activeLineSymbol=null,this._sketchViewModel.polylineSymbol=this._lineSymbol,this._sketchViewModel.layer=this.measurementViewData.manipulatorGraphicsLayer,this._updatingHandles.addPromise(i(this._sketchViewModel.update(this.measurementViewData.manipulatorGraphic,{tool:`reshape`})))),o=this._sketchViewModel.on(`update`,e=>{let r=e.graphics[0]?.geometry;this._analysis.geometry=h(r)?r:null,e.state===`complete`&&(this.measurementViewData.interactive?n():t.stop())});t.handles.push(o,r(()=>{if(o.remove(),this._sketchViewModel?.cancel(),a(e))return t.reject();t.resolve()})),await n()},e)}get _analysis(){return this.measurementViewData.analysis}};e([c()],g.prototype,`_sketchViewModel`,void 0),e([c()],g.prototype,`measurementViewData`,void 0),e([c()],g.prototype,`state`,null),e([c()],g.prototype,`updating`,null),e([c()],g.prototype,`view`,void 0),g=e([l(`esri.views.2d.analysis.DistanceMeasurement.DistanceMeasurementTool`)],g);export{g as DistanceMeasurementTool};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{multiplyOpacity as n}from"../../../../core/colorUtils.js";import{makeHandle as r}from"../../../../core/handleUtils.js";import{ignoreAbortErrors as i,isAborted as a}from"../../../../core/promiseUtils.js";import{watch as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import d from"../../../../symbols/SimpleLineSymbol.js";import{ExclusiveOperationManager as f}from"../../../analysis/ExclusiveOperationManager.js";import{bindViewToolOptions as p}from"../../../interactive/options/bindViewToolOptions.js";import m from"../../../../widgets/Sketch/SketchViewModel.js";function h(e){return e?.type===`polyline`}let g=class extends t{constructor(e){super(e),this._invisibleLineSymbol=new d({color:null,width:0}),this._operationManager=new f,this._updatingHandles=new u}initialize(){this._sketchViewModel=new m({defaultCreateOptions:{mode:`click`},defaultUpdateOptions:{enableMoveAllGraphics:!1,enableRotation:!1,enableScaling:!1,enableZ:!1,highlightOptions:{enabled:!1},multipleSelectionEnabled:!1,reshapeOptions:{edgeOperation:`none`,shapeOperation:`none`},toggleToolOnClick:!1,tool:`reshape`},updateOnGraphicClick:!1,view:this.view}),this.addHandles([o(()=>({interactive:this.measurementViewData.interactive,visible:this.measurementViewData.visible}),({interactive:e,visible:t})=>{t&&e&&this._analysis.geometry?this._operationManager.currentOperationType!==`place`&&this.reshape().catch(()=>{}):this._operationManager.stop()}),o(()=>this.measurementViewData.analysis.geometry,e=>{e||(this._operationManager.stop(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll())}),o(()=>this.measurementViewData.snappingOptions,e=>{this._sketchViewModel&&(this._sketchViewModel.snappingOptions=e)},s),p(this._sketchViewModel.sketchOptions,()=>this.view.options,()=>({values:{displayUnits:{length:this._analysis.unit}}})),o(()=>this.view.effectiveTheme.accentColor,e=>{this._lineSymbol=new d({color:n(e,.3),width:2})},s)])}destroy(){this._invisibleLineSymbol.destroy(),this._lineSymbol?.destroy(),this._operationManager.destroy(),this._sketchViewModel?.destroy(),this._updatingHandles.destroy()}get state(){if(!this.measurementViewData.visible||!this._operationManager.currentOperationType)return`idle`;switch(this._operationManager.currentOperationType){case`place`:return`placing`;case`reshape`:return`reshaping`}}get updating(){return!this._sketchViewModel||this._sketchViewModel.updating||this._updatingHandles.updating}async place(e){return this._operationManager.start(`place`,async t=>{if(!this._sketchViewModel||!this.measurementViewData.sketchGraphicsLayer)return;let n=this._analysis.clone(),o=this._sketchViewModel.on(`create`,e=>{switch(e.state){case`start`:case`active`:{let t=e.graphic?.geometry;t?.type===`polyline`&&(this._analysis.geometry=t);break}case`cancel`:case`complete`:t.stop(),i(this.reshape())}});t.handles.push(o,r(()=>{o.remove(),this._sketchViewModel?.cancel(),this.measurementViewData.sketchGraphicsLayer?.removeAll();let r=this._analysis;if(!r.valid)return r.clear(),t.reject();if(a(e)||n.equals(r))return t.reject();t.resolve({})})),this._sketchViewModel.activeLineSymbol=this._invisibleLineSymbol,this._sketchViewModel.polylineSymbol=this._invisibleLineSymbol,this._sketchViewModel.layer=this.measurementViewData.sketchGraphicsLayer,this._updatingHandles.consumePromise(i(this._sketchViewModel.create(`polyline`)))},e)}async reshape(e){return this._operationManager.start(`reshape`,async t=>{if(!this._sketchViewModel)return;let n=()=>!this._lineSymbol||!this._sketchViewModel||!this.measurementViewData.manipulatorGraphic||!this.measurementViewData.manipulatorGraphicsLayer?Promise.resolve():(this._sketchViewModel.activeLineSymbol=null,this._sketchViewModel.polylineSymbol=this._lineSymbol,this._sketchViewModel.layer=this.measurementViewData.manipulatorGraphicsLayer,this._updatingHandles.addPromise(i(this._sketchViewModel.update(this.measurementViewData.manipulatorGraphic,{tool:`reshape`})))),o=this._sketchViewModel.on(`update`,e=>{let r=e.graphics[0]?.geometry;this._analysis.geometry=h(r)?r:null,e.state===`complete`&&(this.measurementViewData.interactive?n():t.stop())});t.handles.push(o,r(()=>{if(o.remove(),this._sketchViewModel?.cancel(),a(e))return t.reject();t.resolve()})),await n()},e)}get _analysis(){return this.measurementViewData.analysis}};e([c()],g.prototype,`_sketchViewModel`,void 0),e([c()],g.prototype,`measurementViewData`,void 0),e([c()],g.prototype,`state`,null),e([c()],g.prototype,`updating`,null),e([c()],g.prototype,`view`,void 0),g=e([l(`esri.views.2d.analysis.DistanceMeasurement.DistanceMeasurementTool`)],g);export{g as DistanceMeasurementTool};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clone as e}from"../../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{collisionGridCellSize as t}from"./config.js";import{GridIndex as n}from"./util.js";class r{constructor(r,i,a,o,s,c){this._symbols=r,this._styleRepository=o,this._zoom=s,this._currentLayerCursor=0,this._currentSymbolCursor=0,this._styleProps=new Map,this._allNeededMatrices=new Map,this._gridIndex=new n(i,a,t),this._si=Math.sin(Math.PI*c/180),this._co=Math.cos(Math.PI*c/180),o.cachedStyles&&(this._styleProps=o.cachedStyles);for(let t of r)for(let n of t.symbols)this._allNeededMatrices.has(n.tile)||this._allNeededMatrices.set(n.tile,e(n.tile.transforms.tileUnitsToPixels))}work(e){let t=performance.now();for(;this._currentLayerCursor<this._symbols.length;this._currentLayerCursor++,this._currentSymbolCursor=0){let n=this._symbols[this._currentLayerCursor],r=this._getProperties(n.styleLayerUID),i=this._styleRepository.layerContexts?.get(n.styleLayerUID);for(;this._currentSymbolCursor<n.symbols.length;this._currentSymbolCursor++){if(this._currentSymbolCursor%100==99&&performance.now()-t>e)return!1;let a=n.symbols[this._currentSymbolCursor];if(!a.uniqueSymbol?.show)continue;let o=this._computeCoordinates(a,r,i),s=a.uniqueSymbol;if(!s.show)continue;let{iconAllowOverlap:c,textAllowOverlap:l}=r;for(let e of o){if(!e.enabled)continue;let t=s.parts[e.partIndex];t.show&&!(e.partIndex?l:c)&&this._doesCollide(e)&&(e.hard?s.show=!1:t.show=!1)}s.show&&this._insertColliders(s.parts,o,r)}}return!0}_insertColliders(e,t,n){let{iconIgnorePlacement:r,textIgnorePlacement:i}=n;for(let n of t){if(!n.enabled||(n.partIndex?i:r)||!e[n.partIndex].show)continue;let t=n.xScreen+n.dxScreen,a=n.yScreen+n.dyScreen,o=t+n.width,s=a+n.height,[c,l,u,d]=this._gridIndex.getCellSpan(t,a,o,s);for(let e=l;e<=d;e++)for(let t=c;t<=u;t++)this._gridIndex.cells[e][t].push(n)}}_computeCoordinates(e,t,n){let{iconRotationAlignment:r,textRotationAlignment:i,iconTranslate:a,iconTranslateAnchor:o,textTranslate:s,textTranslateAnchor:c}=t,l=this._si,u=this._co,d=this._zoom,f=this._allNeededMatrices.get(e.tile),p=e.uniqueSymbol,m=e.colliders(n),h=0;for(let e of m){let[t,n]=e.partIndex===0?a:s,p=e.partIndex===0?o:c,m=e.minLod<=d&&d<=e.maxLod;h+=+!m,e.enabled=m,e.xScreen=e.xTile*f[0]+e.yTile*f[3]+f[6],e.yScreen=e.xTile*f[1]+e.yTile*f[4]+f[7],p===0?(e.xScreen+=u*t-l*n,e.yScreen+=l*t+u*n):(e.xScreen+=t,e.yScreen+=n),(e.partIndex===0?r:i)===1?(e.dxScreen=e.dxPixels,e.dyScreen=e.dyPixels):(e.dxScreen=u*(e.dxPixels+e.width/2)-l*(e.dyPixels+e.height/2)-e.width/2,e.dyScreen=l*(e.dxPixels+e.width/2)+u*(e.dyPixels+e.height/2)-e.height/2)}return m.length>0&&h===m.length&&p&&(p.show=!1),m}_getProperties(e){let t=this._styleProps.get(e);if(t)return t;let n=this._styleRepository.getLayerStyleProperties?.(e,this._zoom);return this._styleProps.set(e,n),n}_doesCollide(e){let t=e.xScreen+e.dxScreen,n=e.yScreen+e.dyScreen,r=t+e.width,i=n+e.height,[a,o,s,c]=this._gridIndex.getCellSpan(t,n,r,i);for(let l=o;l<=c;l++)for(let o=a;o<=s;o++){let a=this._gridIndex.cells[l][o];for(let o of a){if(o.labelId!=null&&e.labelId!=null&&o.labelId===e.labelId)continue;let a=o.xScreen+o.dxScreen,s=o.yScreen+o.dyScreen,c=a+o.width,l=s+o.height;if(!(r<a||t>c||i<s||n>l))return!0}}return!1}}export{r as CollisionJob};
2
+ import{clone as e}from"../../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{collisionGridCellSize as t}from"./config.js";import{GridIndex as n}from"./util.js";class r{constructor(r,i,a,o,s,c,l){this._symbols=r,this._styleRepository=o,this._zoom=s,this._scale=c,this._currentLayerCursor=0,this._currentSymbolCursor=0,this._styleProps=new Map,this._allNeededMatrices=new Map,this._gridIndex=new n(i,a,t),this._si=Math.sin(Math.PI*l/180),this._co=Math.cos(Math.PI*l/180),o.cachedStyles&&(this._styleProps=o.cachedStyles);for(let t of r)for(let n of t.symbols)this._allNeededMatrices.has(n.tile)||this._allNeededMatrices.set(n.tile,e(n.tile.transforms.tileUnitsToPixels))}work(e){let t=performance.now();for(;this._currentLayerCursor<this._symbols.length;this._currentLayerCursor++,this._currentSymbolCursor=0){let n=this._symbols[this._currentLayerCursor],r=this._getProperties(n.styleLayerUID),i=this._styleRepository.layerContexts?.get(n.styleLayerUID);for(;this._currentSymbolCursor<n.symbols.length;this._currentSymbolCursor++){if(this._currentSymbolCursor%100==99&&performance.now()-t>e)return!1;let a=n.symbols[this._currentSymbolCursor];if(!a.uniqueSymbol?.show)continue;let o=this._computeCoordinates(a,r,i),s=a.uniqueSymbol;if(!s.show)continue;let{iconAllowOverlap:c,textAllowOverlap:l}=r;for(let e of o){if(!e.enabled)continue;let t=s.parts[e.partIndex];t.show&&!(e.partIndex?l:c)&&this._doesCollide(e)&&(e.hard?s.show=!1:t.show=!1)}s.show&&this._insertColliders(s.parts,o,r)}}return!0}_insertColliders(e,t,n){let{iconIgnorePlacement:r,textIgnorePlacement:i}=n;for(let n of t){if(!n.enabled||(n.partIndex?i:r)||!e[n.partIndex].show)continue;let t=n.xScreen+n.dxScreen,a=n.yScreen+n.dyScreen,o=t+n.width,s=a+n.height,[c,l,u,d]=this._gridIndex.getCellSpan(t,a,o,s);for(let e=l;e<=d;e++)for(let t=c;t<=u;t++)this._gridIndex.cells[e][t].push(n)}}_computeCoordinates(e,t,n){let{iconRotationAlignment:r,textRotationAlignment:i,iconTranslate:a,iconTranslateAnchor:o,textTranslate:s,textTranslateAnchor:c}=t,l=this._si,u=this._co,d=this._zoom,f=this._allNeededMatrices.get(e.tile),p=e.uniqueSymbol,m=e.colliders(n,this._scale),h=0;for(let e of m){let[t,n]=e.partIndex===0?a:s,p=e.partIndex===0?o:c,m=e.minLod<=d&&d<=e.maxLod;h+=+!m,e.enabled=m,e.xScreen=e.xTile*f[0]+e.yTile*f[3]+f[6],e.yScreen=e.xTile*f[1]+e.yTile*f[4]+f[7],p===0?(e.xScreen+=u*t-l*n,e.yScreen+=l*t+u*n):(e.xScreen+=t,e.yScreen+=n),(e.partIndex===0?r:i)===1?(e.dxScreen=e.dxPixels,e.dyScreen=e.dyPixels):(e.dxScreen=u*(e.dxPixels+e.width/2)-l*(e.dyPixels+e.height/2)-e.width/2,e.dyScreen=l*(e.dxPixels+e.width/2)+u*(e.dyPixels+e.height/2)-e.height/2)}return m.length>0&&h===m.length&&p&&(p.show=!1),m}_getProperties(e){let t=this._styleProps.get(e);if(t)return t;let n=this._styleRepository.getLayerStyleProperties?.(e,this._zoom);return this._styleProps.set(e,n),n}_doesCollide(e){let t=e.xScreen+e.dxScreen,n=e.yScreen+e.dyScreen,r=t+e.width,i=n+e.height,[a,o,s,c]=this._gridIndex.getCellSpan(t,n,r,i);for(let l=o;l<=c;l++)for(let o=a;o<=s;o++){let a=this._gridIndex.cells[l][o];for(let o of a){if(o.labelId!=null&&e.labelId!=null&&o.labelId===e.labelId)continue;let a=o.xScreen+o.dxScreen,s=o.yScreen+o.dyScreen,c=a+o.width,l=s+o.height;if(!(r<a||t>c||i<s||n>l))return!0}}return!1}}export{r as CollisionJob};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{signal as e}from"../../../../../core/signal.js";import{CollisionJob as t}from"./CollisionJob.js";import{declutterBudget as n,fadeDuration as r}from"./config.js";import{SymbolDeclutterer as i}from"./SymbolDeclutterer.js";import{SymbolRepository as a}from"./SymbolRepository.js";const o=1e-6;class s{constructor(t,r,s,c,l,u=n,d=()=>{}){this.styleRepository=r,this.tiles=c,this._declutterBudget=u,this._requestFeatureDeclutter=d,this._tileToHandle=new Map,this._viewState={scale:0,rotation:0,center:[0,0],size:[0,0]},this._declutterViewState={scale:0,rotation:0,center:[0,0],size:[0,0]},this._offsetFromScreenCenter=[0,0],this._completed=!1,this._fading=e(!1);let f=(e,t,n)=>this._createCollisionJob(e,t,n),p=e=>{let t=this.styleRepository.getStyleLayerByUID?.(e);if(t){if(this._zoom+o<t.minzoom||this._zoom-o>=t.maxzoom)return!1;let e=t.getLayoutProperty?.(`visibility`);if(e&&e.getValue()===1)return!1}return this.styleRepository.layerContexts?.get(e)?.effectiveVisible!==!1},m=(e,t)=>(this.styleRepository.getStyleLayerByUID?.(e.styleLayerUID)?.z??0)-(this.styleRepository.getStyleLayerByUID?.(t.styleLayerUID)?.z??0);this._symbolRepository=new a(l,c),this._symbolDeclutterer=new i(t,c,this._symbolRepository,this.styleRepository,f,s,m,p)}get symbolRepository(){return this._symbolRepository}_createCollisionJob(e,n,r){return this.updateDecluttererViewState(),new t(e,n,r,this.styleRepository,this._zoom,this._viewState.rotation)}get fading(){return this._fading.value}get decluttererOffset(){return this._offsetFromScreenCenter}registerFeatureTile(e){if(!this.symbolRepository){console.error(`InternalError: Symbol repository not yet initialized`);return}this.symbolRepository.registerFeatureTile(e),this._requestFeatureDeclutter()}unregisterFeatureTile(e){if(!this.symbolRepository){console.error(`InternalError: Symbol repository not yet initialized`);return}this._symbolRepository.unregisterFeatureTile(e),this._requestFeatureDeclutter()}insertFeatureTileMetrics(e,t){if(!this.symbolRepository){console.error(`InternalError: Symbol repository not yet initialized`);return}this.symbolRepository.insertFeatureTileMetrics(e,t),this._requestFeatureDeclutter()}removeFeatureTileMetrics(e,t){if(!this.symbolRepository){console.error(`InternalError: Symbol repository not yet initialized`);return}this.symbolRepository.removeFeatureTileMetrics(e,t),this._requestFeatureDeclutter()}addTile(e){e.decluttered=!1,this._tileToHandle.set(e,e.on(`symbols-changed`,()=>{this._symbolRepository.registerVectorTile(e),this.restartDeclutter()})),this._symbolRepository.registerVectorTile(e),this.restartDeclutter()}removeTile(e){let t=this._tileToHandle.get(e);t&&(this._symbolRepository.unregisterVectorTile(e),this.restartDeclutter(),t.remove(),this._tileToHandle.delete(e))}update(e,t){this._zoom=e,this._viewState={scale:t.scale,rotation:t.rotation,center:[t.center[0],t.center[1]],size:[t.size[0],t.size[1]]};let n=[0,0];t.toScreen(n,t.center);let r=[0,0];return t.toScreen(r,this._declutterViewState.center),this._offsetFromScreenCenter[0]=n[0]-r[0],this._offsetFromScreenCenter[1]=n[1]-r[1],this._continueDeclutter(),this._completed}restartDeclutter(){this._completed=!1,this._symbolDeclutterer.restart(),this._notifyUnstable()}clear(){this._completed=!1,this._symbolRepository=null,this._symbolDeclutterer.restart(),this._tileToHandle.forEach(e=>e.remove()),this._tileToHandle.clear()}get stale(){return this._zoom!==this._declutterZoom||this._viewState.size[0]!==this._declutterViewState.size[0]||this._viewState.size[1]!==this._declutterViewState.size[1]||this._viewState.scale!==this._declutterViewState.scale||this._viewState.rotation!==this._declutterViewState.rotation}deleteStyleLayers(e){this._symbolRepository.deleteStyleLayers(e)}_continueDeclutter(){(!this._completed||this.stale)&&(this._symbolDeclutterer.running||(this.updateDecluttererViewState(),this._symbolDeclutterer.restart()),this._symbolDeclutterer.setScreenSize(this._viewState.size[0],this._viewState.size[1]),this._completed=this._symbolDeclutterer.continue(this._declutterBudget),this._completed&&this._scheduleNotifyStable())}_scheduleNotifyStable(){this._stableNotificationHandle!=null&&clearTimeout(this._stableNotificationHandle),this._stableNotificationHandle=setTimeout(()=>{this._stableNotificationHandle=null,this._fading.value=!1},1.5*r)}_notifyUnstable(){this._stableNotificationHandle!=null&&(clearTimeout(this._stableNotificationHandle),this._stableNotificationHandle=null),this._fading.value=!0}updateDecluttererViewState(){this._declutterZoom=this._zoom,this._declutterViewState.center[0]=this._viewState.center[0],this._declutterViewState.center[1]=this._viewState.center[1],this._declutterViewState.rotation=this._viewState.rotation,this._declutterViewState.scale=this._viewState.scale,this._declutterViewState.size[0]=this._viewState.size[0],this._declutterViewState.size[1]=this._viewState.size[1],this._offsetFromScreenCenter[0]=0,this._offsetFromScreenCenter[1]=0}}export{s as SymbolFader};
2
+ import{signal as e}from"../../../../../core/signal.js";import{CollisionJob as t}from"./CollisionJob.js";import{declutterBudget as n,fadeDuration as r}from"./config.js";import{SymbolDeclutterer as i}from"./SymbolDeclutterer.js";import{SymbolRepository as a}from"./SymbolRepository.js";const o=1e-6;class s{constructor(t,r,s,c,l,u=n,d=()=>{}){this.styleRepository=r,this.tiles=c,this._declutterBudget=u,this._requestFeatureDeclutter=d,this._tileToHandle=new Map,this._viewState={scale:0,rotation:0,center:[0,0],size:[0,0]},this._declutterViewState={scale:0,rotation:0,center:[0,0],size:[0,0]},this._offsetFromScreenCenter=[0,0],this._completed=!1,this._fading=e(!1);let f=(e,t,n)=>this._createCollisionJob(e,t,n),p=e=>{let t=this.styleRepository.getStyleLayerByUID?.(e);if(t){if(this._zoom+o<t.minzoom||this._zoom-o>=t.maxzoom)return!1;let e=t.getLayoutProperty?.(`visibility`);if(e&&e.getValue()===1)return!1}return this.styleRepository.layerContexts?.get(e)?.effectiveVisible!==!1},m=(e,t)=>(this.styleRepository.getStyleLayerByUID?.(e.styleLayerUID)?.z??0)-(this.styleRepository.getStyleLayerByUID?.(t.styleLayerUID)?.z??0);this._symbolRepository=new a(l,c),this._symbolDeclutterer=new i(t,c,this._symbolRepository,this.styleRepository,f,s,m,p)}get symbolRepository(){return this._symbolRepository}_createCollisionJob(e,n,r){return this.updateDecluttererViewState(),new t(e,n,r,this.styleRepository,this._zoom,this._viewState.scale,this._viewState.rotation)}get fading(){return this._fading.value}get decluttererOffset(){return this._offsetFromScreenCenter}registerFeatureTile(e){if(!this.symbolRepository){console.error(`InternalError: Symbol repository not yet initialized`);return}this.symbolRepository.registerFeatureTile(e),this._requestFeatureDeclutter()}unregisterFeatureTile(e){if(!this.symbolRepository){console.error(`InternalError: Symbol repository not yet initialized`);return}this._symbolRepository.unregisterFeatureTile(e),this._requestFeatureDeclutter()}insertFeatureTileMetrics(e,t){if(!this.symbolRepository){console.error(`InternalError: Symbol repository not yet initialized`);return}this.symbolRepository.insertFeatureTileMetrics(e,t),this._requestFeatureDeclutter()}removeFeatureTileMetrics(e,t){if(!this.symbolRepository){console.error(`InternalError: Symbol repository not yet initialized`);return}this.symbolRepository.removeFeatureTileMetrics(e,t),this._requestFeatureDeclutter()}addTile(e){e.decluttered=!1,this._tileToHandle.set(e,e.on(`symbols-changed`,()=>{this._symbolRepository.registerVectorTile(e),this.restartDeclutter()})),this._symbolRepository.registerVectorTile(e),this.restartDeclutter()}removeTile(e){let t=this._tileToHandle.get(e);t&&(this._symbolRepository.unregisterVectorTile(e),this.restartDeclutter(),t.remove(),this._tileToHandle.delete(e))}update(e,t){this._zoom=e,this._viewState={scale:t.scale,rotation:t.rotation,center:[t.center[0],t.center[1]],size:[t.size[0],t.size[1]]};let n=[0,0];t.toScreen(n,t.center);let r=[0,0];return t.toScreen(r,this._declutterViewState.center),this._offsetFromScreenCenter[0]=n[0]-r[0],this._offsetFromScreenCenter[1]=n[1]-r[1],this._continueDeclutter(),this._completed}restartDeclutter(){this._completed=!1,this._symbolDeclutterer.restart(),this._notifyUnstable()}clear(){this._completed=!1,this._symbolRepository=null,this._symbolDeclutterer.restart(),this._tileToHandle.forEach(e=>e.remove()),this._tileToHandle.clear()}get stale(){return this._zoom!==this._declutterZoom||this._viewState.size[0]!==this._declutterViewState.size[0]||this._viewState.size[1]!==this._declutterViewState.size[1]||this._viewState.scale!==this._declutterViewState.scale||this._viewState.rotation!==this._declutterViewState.rotation}deleteStyleLayers(e){this._symbolRepository.deleteStyleLayers(e)}_continueDeclutter(){(!this._completed||this.stale)&&(this._symbolDeclutterer.running||(this.updateDecluttererViewState(),this._symbolDeclutterer.restart()),this._symbolDeclutterer.setScreenSize(this._viewState.size[0],this._viewState.size[1]),this._completed=this._symbolDeclutterer.continue(this._declutterBudget),this._completed&&this._scheduleNotifyStable())}_scheduleNotifyStable(){this._stableNotificationHandle!=null&&clearTimeout(this._stableNotificationHandle),this._stableNotificationHandle=setTimeout(()=>{this._stableNotificationHandle=null,this._fading.value=!1},1.5*r)}_notifyUnstable(){this._stableNotificationHandle!=null&&(clearTimeout(this._stableNotificationHandle),this._stableNotificationHandle=null),this._fading.value=!0}updateDecluttererViewState(){this._declutterZoom=this._zoom,this._declutterViewState.center[0]=this._viewState.center[0],this._declutterViewState.center[1]=this._viewState.center[1],this._declutterViewState.rotation=this._viewState.rotation,this._declutterViewState.scale=this._viewState.scale,this._declutterViewState.size[0]=this._viewState.size[0],this._declutterViewState.size[1]=this._viewState.size[1],this._offsetFromScreenCenter[0]=0,this._offsetFromScreenCenter[1]=0}}export{s as SymbolFader};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{identity as e,translate as t,rotate as n,scale as r}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{toRadian as a}from"../../../../../core/libs/gl-matrix-2/math/common.js";import{tileSizeInTileUnits as o}from"../constants.js";import{CollisionJob as s}from"./CollisionJob.js";import{SymbolDeclutterer as c}from"./SymbolDeclutterer.js";import{SymbolRepository as l}from"./SymbolRepository.js";import{writeOpacityToBuffers as u}from"./util.js";function d(i,d){let p=i.transforms.tileUnitsToPixels,m=a(d),h=Math.ceil(512*(Math.abs(Math.sin(m))+Math.abs(Math.cos(m))));e(f),t(f,f,[h/2,h/2]),n(f,f,m),t(f,f,[-256,-256]),r(f,f,[1/8,1/8,1]),i.transforms.tileUnitsToPixels=f;let g=[],_=new l(o,g),v=new c(`vector-tile`,g,_,null,(e,t,n)=>new s(e,t,n,i.styleRepository,i.key.level,d),(e,t)=>{u(e,t,!1)},()=>0,e=>{let t=i.styleRepository.getStyleLayerByUID(e).getLayoutProperty(`visibility`);return!(t&&t.getValue()===1)});g.push(i),_.registerVectorTile(i),v.setScreenSize(h,h),v.continue(1/0),_.unregisterVectorTile(i),i.transforms.tileUnitsToPixels=p}const f=i();export{d as declutterSingleTile};
2
+ import{identity as e,translate as t,rotate as n,scale as r}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{toRadian as a}from"../../../../../core/libs/gl-matrix-2/math/common.js";import{tileSizeInTileUnits as o}from"../constants.js";import{CollisionJob as s}from"./CollisionJob.js";import{SymbolDeclutterer as c}from"./SymbolDeclutterer.js";import{SymbolRepository as l}from"./SymbolRepository.js";import{writeOpacityToBuffers as u}from"./util.js";function d(i,d){let p=i.transforms.tileUnitsToPixels,m=a(d),h=Math.ceil(512*(Math.abs(Math.sin(m))+Math.abs(Math.cos(m))));e(f),t(f,f,[h/2,h/2]),n(f,f,m),t(f,f,[-256,-256]),r(f,f,[1/8,1/8,1]),i.transforms.tileUnitsToPixels=f;let g=[],_=new l(o,g),v=new c(`vector-tile`,g,_,null,(e,t,n)=>new s(e,t,n,i.styleRepository,i.key.level,void 0,d),(e,t)=>{u(e,t,!1)},()=>0,e=>{let t=i.styleRepository.getStyleLayerByUID(e).getLayoutProperty(`visibility`);return!(t&&t.getValue()===1)});g.push(i),_.registerVectorTile(i),v.setScreenSize(h,h),v.continue(1/0),_.unregisterVectorTile(i),i.transforms.tileUnitsToPixels=p}const f=i();export{d as declutterSingleTile};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{pt2px as e}from"../../../../../core/screenUtils.js";import{labelPlacementOffsetPadding as t}from"../definitions.js";import n from"./BoundingBox.js";import{serializeList as r,deserializeList as i}from"../util/serializationUtils.js";class a{constructor(e,t,n,r,i,a,o,s,c,l,u,d=[],f=0,p=0,m=[]){this.displayId=e,this.labelClassId=t,this.labelIdHash=n,this.hash=r,this.anchorX=i,this.anchorY=a,this.directionX=o,this.directionY=s,this.maxScale=c,this.minScale=l,this.referenceBounds=u,this.bounds=d,this.recordStart=f,this.recordCount=p,this.additionalRecordRanges=m,this.priority=0,this._colliders=null,this.referenceSymbolVVOffset=[0,0],this.uniqueSymbol=null,this.labelStoreId=null,this.selectedForRendering=!1,this._calloutCollisionBounds=null}get xTile(){return this.anchorX}get yTile(){return this.anchorY}colliders(n){if(!this._colliders){if(!n)throw Error(`InternalError: Label collision context is required to compute colliders`);let r=n.attributeView,i=t,a=this.referenceBounds?.size??0,o=Math.round(e(a)),s=n.labelingCollisionInfos[0].vvEvaluators[0];if(s!=null){let e=s(r.getVisualVariableData(this.displayId,0));if(!isNaN(e)&&e!=null&&e!==1/0){a=e;let t=(a-o)/2;this.referenceSymbolVVOffset=[this.directionX*t,this.directionY*t]}}let c=this.minScale?n.tilingScheme.scaleToZoom(this.minScale):0,l=this.maxScale?n.tilingScheme.scaleToZoom(this.maxScale):25,u=e(this.referenceBounds?.offsetX??0)+this.directionX*(i+a/2),d=-e(this.referenceBounds?.offsetY??0)+this.directionY*(i+a/2);this._colliders=this.bounds.map(e=>({labelId:this.labelIdHash,xTile:this.anchorX,yTile:this.anchorY,dxPixels:e.x-e.halfWidth+u,dyPixels:e.y-e.halfHeight+d,hard:!0,partIndex:1,width:e.width+2,height:e.height+2,angle:0,xScreen:0,yScreen:0,dxScreen:0,dyScreen:0,enabled:!0,minLod:c,maxLod:l}))}return this._colliders}get id(){return this.displayId}includeRecordRange(e,t){if(t!==0){if(e===this.recordStart+this.recordCount){this.recordCount+=t;return}this.additionalRecordRanges.push({recordStart:e,recordCount:t})}}includeCalloutCollisionBounds(e){let t=o(e);t&&(this._calloutCollisionBounds?this._calloutCollisionBounds.extend(t):(this._calloutCollisionBounds=t,this.bounds.push(t)),this._colliders=null)}includeCalloutPartCollisionBounds(e){let t=o(e);t&&!this.bounds.some(e=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height)&&(this.bounds.push(t),this._colliders=null)}serialize(e){e.push(this.displayId),e.push(this.labelClassId),e.push(this.labelIdHash),e.push(this.hash),e.push(this.recordStart),e.push(this.recordCount),e.push(this.additionalRecordRanges.length);for(let t of this.additionalRecordRanges)e.push(t.recordStart),e.push(t.recordCount);e.writeF32(this.anchorX),e.writeF32(this.anchorY),e.writeF32(this.directionX),e.writeF32(this.directionY),e.writeF32(this.maxScale),e.writeF32(this.minScale),this.referenceBounds?(e.writeF32(this.referenceBounds.size),e.writeF32(this.referenceBounds.offsetX),e.writeF32(this.referenceBounds.offsetY)):(e.writeF32(0),e.writeF32(0),e.writeF32(0)),r(e,this.bounds)}static deserialize(e){let t=e.readInt32(),r=e.readInt32(),o=e.readInt32(),s=e.readInt32(),c=e.readInt32(),l=e.readInt32(),u=e.readInt32(),d=[];for(let t=0;t<u;t++)d.push({recordStart:e.readInt32(),recordCount:e.readInt32()});let f=e.readF32(),p=e.readF32(),m=e.readF32(),h=e.readF32(),g=e.readF32(),_=e.readF32(),v=e.readF32(),y=e.readF32(),b=e.readF32(),x=i(e,n)??[];return new a(t,r,o,s,f,p,m,h,g,_,{size:v,offsetX:y,offsetY:b},x,c,l,d)}}function o(e){let t=e.xmax-e.xmin,r=e.ymax-e.ymin;return e.xmin==null||isNaN(e.xmin)||e.ymin==null||isNaN(e.ymin)||e.xmax==null||isNaN(e.xmax)||e.ymax==null||isNaN(e.ymax)||t<=0||r<=0?null:new n(e.xmin+t/2,-(e.ymin+r/2),t,r)}export{a as LabelMetric};
2
+ import{pt2px as e}from"../../../../../core/screenUtils.js";import{labelPlacementOffsetPadding as t}from"../definitions.js";import n from"./BoundingBox.js";import{serializeList as r,deserializeList as i}from"../util/serializationUtils.js";class a{constructor(e,t,n,r,i,a,o,s,c,l,u,d=[],f=0,p=0,m=[]){this.displayId=e,this.labelClassId=t,this.labelIdHash=n,this.hash=r,this.anchorX=i,this.anchorY=a,this.directionX=o,this.directionY=s,this.maxScale=c,this.minScale=l,this.referenceBounds=u,this.bounds=d,this.recordStart=f,this.recordCount=p,this.additionalRecordRanges=m,this.priority=0,this._colliders=null,this.referenceSymbolVVOffset=[0,0],this.uniqueSymbol=null,this.labelStoreId=null,this.selectedForRendering=!1,this._calloutCollisionBounds=null}get xTile(){return this.anchorX}get yTile(){return this.anchorY}colliders(n,r){if(!this._colliders||r!=null&&r!==this._collidersScale){if(!n||r==null)throw Error(`InternalError: Label collision context and view scale are required to compute colliders`);let i=n.attributeView,a=t,o=this.referenceBounds?.size??0,s=Math.round(e(o)),c=n.labelingCollisionInfos[0].vvEvaluators[0];if(this.referenceSymbolVVOffset=[0,0],c!=null){let e=c(i.getVisualVariableData(this.displayId,0),r);if(!isNaN(e)&&e!=null&&e!==1/0){o=e;let t=(o-s)/2;this.referenceSymbolVVOffset=[this.directionX*t,this.directionY*t]}}let l=this.minScale?n.tilingScheme.scaleToZoom(this.minScale):0,u=this.maxScale?n.tilingScheme.scaleToZoom(this.maxScale):25,d=e(this.referenceBounds?.offsetX??0)+this.directionX*(a+o/2),f=-e(this.referenceBounds?.offsetY??0)+this.directionY*(a+o/2);this._colliders=this.bounds.map(e=>({labelId:this.labelIdHash,xTile:this.anchorX,yTile:this.anchorY,dxPixels:e.x-e.halfWidth+d,dyPixels:e.y-e.halfHeight+f,hard:!0,partIndex:1,width:e.width+2,height:e.height+2,angle:0,xScreen:0,yScreen:0,dxScreen:0,dyScreen:0,enabled:!0,minLod:l,maxLod:u})),this._collidersScale=r}return this._colliders}get id(){return this.displayId}includeRecordRange(e,t){if(t!==0){if(e===this.recordStart+this.recordCount){this.recordCount+=t;return}this.additionalRecordRanges.push({recordStart:e,recordCount:t})}}includeCalloutCollisionBounds(e){let t=o(e);t&&(this._calloutCollisionBounds?this._calloutCollisionBounds.extend(t):(this._calloutCollisionBounds=t,this.bounds.push(t)),this._colliders=null)}includeCalloutPartCollisionBounds(e){let t=o(e);t&&!this.bounds.some(e=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height)&&(this.bounds.push(t),this._colliders=null)}serialize(e){e.push(this.displayId),e.push(this.labelClassId),e.push(this.labelIdHash),e.push(this.hash),e.push(this.recordStart),e.push(this.recordCount),e.push(this.additionalRecordRanges.length);for(let t of this.additionalRecordRanges)e.push(t.recordStart),e.push(t.recordCount);e.writeF32(this.anchorX),e.writeF32(this.anchorY),e.writeF32(this.directionX),e.writeF32(this.directionY),e.writeF32(this.maxScale),e.writeF32(this.minScale),this.referenceBounds?(e.writeF32(this.referenceBounds.size),e.writeF32(this.referenceBounds.offsetX),e.writeF32(this.referenceBounds.offsetY)):(e.writeF32(0),e.writeF32(0),e.writeF32(0)),r(e,this.bounds)}static deserialize(e){let t=e.readInt32(),r=e.readInt32(),o=e.readInt32(),s=e.readInt32(),c=e.readInt32(),l=e.readInt32(),u=e.readInt32(),d=[];for(let t=0;t<u;t++)d.push({recordStart:e.readInt32(),recordCount:e.readInt32()});let f=e.readF32(),p=e.readF32(),m=e.readF32(),h=e.readF32(),g=e.readF32(),_=e.readF32(),v=e.readF32(),y=e.readF32(),b=e.readF32(),x=i(e,n)??[];return new a(t,r,o,s,f,p,m,h,g,_,{size:v,offsetX:y,offsetY:b},x,c,l,d)}}function o(e){let t=e.xmax-e.xmin,r=e.ymax-e.ymin;return e.xmin==null||isNaN(e.xmin)||e.ymin==null||isNaN(e.ymin)||e.xmax==null||isNaN(e.xmax)||e.ymax==null||isNaN(e.ymax)||t<=0||r<=0?null:new n(e.xmin+t/2,-(e.ymin+r/2),t,r)}export{a as LabelMetric};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- const e=8,t=6,n=1e-30,r=64,i=4294967295,a=512,o=256,s=256/360,c=128,l=16777216,u=!1,d=128,f=8,p=10,m=29,h=.25,g=4,_=10,v=1,y=16,b=16,x=4,S=8,C=50,w=10,T=24,E=3,D=24,O=8,k=3,A=24,j=8,M=4,N={metrics:{width:15,height:17,left:0,top:-7,advance:14}},P=1024,F=0,I=0,L=0,R=1,z=2,B=3,V=4,H=5,U=6,W=7,G=8,K=11,q=12,J=13,Y=5,X=6,Z=5,Q=6,$=6,ee=7,te=64,ne=128,re=!1,ie=1.05,ae=3,oe=1,se=3,ce=3,le=512,ue=5,de=6,fe=1.15,pe=2,me=4,he=128,ge=256,_e=248,ve=2,ye=128,be=1,xe=8,Se=500,Ce=4,we=128,Te=1024,Ee=2,De=0,Oe=1,ke=4,Ae=8,je=16,Me=4,Ne=1,Pe=4,Fe=8,Ie=32,Le=64,Re=128,ze=4,Be=1,Ve=1<<20,He=.75,Ue=10,We=.75,Ge=12,Ke=256,qe=32,Je=512,Ye=0,Xe=1;export{Be as MAX_TILE_RESHUFFLES_PER_FRAME,Ue as RESHUFFLING_EXEMPT_DRAW_CALLS,Ve as RESHUFFLING_EXEMPT_MEMORY_BYTES,We as RESHUFFLING_TARGET_DRAW_EFFICIENCY,He as RESHUFFLING_TARGET_MEMORY_EFFICIENCY,z as animationUnit,Ke as attributeStoreInitialSize,P as attributeStoreTextureSize,N as averageGlyphMosaicItem,Xe as backbufferStencilClipped,Ye as backbufferStencilVisible,Ie as bitsetFillHasPatternHeightPrecisionFactor,Le as bitsetFillHasPatternWidthPrecisionFactor,Fe as bitsetFillHasUnresolvedReplacementColor,Pe as bitsetFillRandomPatternOffset,je as bitsetGenericConsiderAlphaOnly,Ee as bitsetGenericLockColor,Me as bitsetLineScaleDash,Oe as bitsetMarkerAlignmentMap,De as bitsetMarkerAlignmentScreen,ke as bitsetMarkerOutlineAllowColorOverride,Ae as bitsetMarkerScaleSymbolsProportionally,Ne as bitsetTypeFillOutline,we as bufferDataMinimumSize,Ce as bufferDataPoolSize,p as chartMaxFields,b as collisionBoxPadding,d as collisionBucketSize,y as collisionEarlyRejectBucketSize,v as collisionMaxZoomDelta,S as collisionPlacementPadding,x as collisionTileBoxSize,c as compressionFactorForU16,V as dataDrivenUnit0,H as dataDrivenUnit1,U as dataDrivenUnit2,u as debugLabels,he as defaultSdfTextureSize,xe as displayRecordIntPerElement,f as dotDensityMaxFields,ee as effectBitIndex,ne as effectFlag0,re as enableEarlyLabelDiscard,r as extrudeScale,te as filterFlag0,R as filterFlagsUnit,T as glyphSize,q as gpgpuUnit,be as gradientTextureExternalPadding,w as heuristicGlyphsPerFeature,C as heuristicGlyphsPerLine,le as hittestMaskTextureSize,K as hittestMaskTextureUnit,ce as hittestSmallSymbolThreshold,oe as hittestToleranceDesktop,ae as hittestToleranceMobile,se as hittestToleranceSmallSymbol,G as labelAnchorStoreUnit,M as labelPlacementOffsetPadding,W as labelStoreUnit,_ as labelU16ZoomPrecisionFactor,J as localTimeOriginUnit,m as magicLabelLineHeight,Ge as maxGeohashLevel,pe as maxGpuUploadsPerFrame,$ as maxHighlightGroups,g as maxLineHeightRatio,l as maxRepresentableInt,Je as maxTextLineWidth,h as minLineHeightRatio,qe as minTextLineWidth,n as nanMagicNumber,s as packDegreesU8,Se as patchPixelBufferAllocSize,ve as patternFillRasterizationScale,i as pictureFillColor,Te as randomInsidePolygonTextureSize,o as rasterTileSize,ye as rasterizedVectorMarkerMinSize,k as sdfBufferGlyphSDFCreator,E as sdfBufferServer,j as sdfRadiusComplex,O as sdfRadiusSimple,A as sdfSizeComplex,D as sdfSizeSimple,me as spritePadding,_e as svgSdfTextureInnerSize,ge as svgSdfTextureSize,L as textureBindingBitmap,I as textureBindingGlyphAtlas,Y as textureBindingHighlight0,X as textureBindingHighlight1,Z as textureBindingRenderer0,Q as textureBindingRenderer1,F as textureBindingSpriteAtlas,ze as textureUploadManagerBudget,Re as textureUploadManagerChunkSize,ie as thinLineHalfWidthThreshold,a as tileSize,B as visualVariableUnit,fe as vtlHighResCutoff,de as vtlTextureBindingUnitGlyphs,ue as vtlTextureBindingUnitSprites,t as webglMaxInnerStops,e as webglMaxStops};
2
+ const e=8,t=6,n=1e-30,r=64,i=4294967295,a=512,o=256,s=256/360,c=128,l=16777216,u=!1,d=128,f=8,p=10,m=29,h=.25,g=4,_=10,v=1,y=16,b=16,x=4,S=8,C=50,w=10,T=24,E=3,D=24,O=8,k=3,A=24,j=8,M=4,N={metrics:{width:15,height:17,left:0,top:-7,advance:14}},P=1024,F=0,I=0,L=0,R=1,z=2,B=3,V=4,H=5,U=6,W=7,G=8,K=11,q=12,J=13,Y=5,X=6,Z=5,Q=6,$=6,ee=7,te=64,ne=128,re=!1,ie=1.05,ae=3,oe=1,se=3,ce=3,le=512,ue=5,de=6,fe=1.15,pe=2,me=4,he=128,ge=256,_e=248,ve=2,ye=128,be=1,xe=8,Se=500,Ce=4,we=128,Te=1024,Ee=2,De=0,Oe=1,ke=4,Ae=8,je=16,Me=4,Ne=1,Pe=4,Fe=8,Ie=32,Le=64,Re=128,ze=4,Be=1,Ve=1<<20,He=.75,Ue=10,We=.75,Ge=12,Ke=256,qe=32,Je=5e3,Ye=0,Xe=1;export{Be as MAX_TILE_RESHUFFLES_PER_FRAME,Ue as RESHUFFLING_EXEMPT_DRAW_CALLS,Ve as RESHUFFLING_EXEMPT_MEMORY_BYTES,We as RESHUFFLING_TARGET_DRAW_EFFICIENCY,He as RESHUFFLING_TARGET_MEMORY_EFFICIENCY,z as animationUnit,Ke as attributeStoreInitialSize,P as attributeStoreTextureSize,N as averageGlyphMosaicItem,Xe as backbufferStencilClipped,Ye as backbufferStencilVisible,Ie as bitsetFillHasPatternHeightPrecisionFactor,Le as bitsetFillHasPatternWidthPrecisionFactor,Fe as bitsetFillHasUnresolvedReplacementColor,Pe as bitsetFillRandomPatternOffset,je as bitsetGenericConsiderAlphaOnly,Ee as bitsetGenericLockColor,Me as bitsetLineScaleDash,Oe as bitsetMarkerAlignmentMap,De as bitsetMarkerAlignmentScreen,ke as bitsetMarkerOutlineAllowColorOverride,Ae as bitsetMarkerScaleSymbolsProportionally,Ne as bitsetTypeFillOutline,we as bufferDataMinimumSize,Ce as bufferDataPoolSize,p as chartMaxFields,b as collisionBoxPadding,d as collisionBucketSize,y as collisionEarlyRejectBucketSize,v as collisionMaxZoomDelta,S as collisionPlacementPadding,x as collisionTileBoxSize,c as compressionFactorForU16,V as dataDrivenUnit0,H as dataDrivenUnit1,U as dataDrivenUnit2,u as debugLabels,he as defaultSdfTextureSize,xe as displayRecordIntPerElement,f as dotDensityMaxFields,ee as effectBitIndex,ne as effectFlag0,re as enableEarlyLabelDiscard,r as extrudeScale,te as filterFlag0,R as filterFlagsUnit,T as glyphSize,q as gpgpuUnit,be as gradientTextureExternalPadding,w as heuristicGlyphsPerFeature,C as heuristicGlyphsPerLine,le as hittestMaskTextureSize,K as hittestMaskTextureUnit,ce as hittestSmallSymbolThreshold,oe as hittestToleranceDesktop,ae as hittestToleranceMobile,se as hittestToleranceSmallSymbol,G as labelAnchorStoreUnit,M as labelPlacementOffsetPadding,W as labelStoreUnit,_ as labelU16ZoomPrecisionFactor,J as localTimeOriginUnit,m as magicLabelLineHeight,Ge as maxGeohashLevel,pe as maxGpuUploadsPerFrame,$ as maxHighlightGroups,g as maxLineHeightRatio,l as maxRepresentableInt,Je as maxTextLineWidth,h as minLineHeightRatio,qe as minTextLineWidth,n as nanMagicNumber,s as packDegreesU8,Se as patchPixelBufferAllocSize,ve as patternFillRasterizationScale,i as pictureFillColor,Te as randomInsidePolygonTextureSize,o as rasterTileSize,ye as rasterizedVectorMarkerMinSize,k as sdfBufferGlyphSDFCreator,E as sdfBufferServer,j as sdfRadiusComplex,O as sdfRadiusSimple,A as sdfSizeComplex,D as sdfSizeSimple,me as spritePadding,_e as svgSdfTextureInnerSize,ge as svgSdfTextureSize,L as textureBindingBitmap,I as textureBindingGlyphAtlas,Y as textureBindingHighlight0,X as textureBindingHighlight1,Z as textureBindingRenderer0,Q as textureBindingRenderer1,F as textureBindingSpriteAtlas,ze as textureUploadManagerBudget,Re as textureUploadManagerChunkSize,ie as thinLineHalfWidthThreshold,a as tileSize,B as visualVariableUnit,fe as vtlHighResCutoff,de as vtlTextureBindingUnitGlyphs,ue as vtlTextureBindingUnitSprites,t as webglMaxInnerStops,e as webglMaxStops};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{animationDebugFlags as t}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{generateVirtualMachineSource as n}from"../../../animations/instructions.js";import{location as r,uniform as i,texture as a,option as o}from"../../GraphShaderModule.js";import{Vec2 as s,Vec4 as c,Float as l,Sampler2D as u,cond as d,equal as f,negate as p,step as m,sin as h,cos as g,Mat3 as _,Vec3 as v,lessThanEqual as y,ifElse as b,texture2D as x,clamp as S,abs as C,block as w}from"../../graph/glsl.js";import{AnimationUniformInfo as T}from"./AnimationUniformInfo.js";import{MarkerConstants as E}from"../markers/markerConstants.js";import{FeatureVertexInput as D,AFeatureShader as O,FeatureFragmentInput as k}from"../shaders/AFeatureShader.js";import{softEdgeRatio as A}from"../shaders/constants.js";import{LocalTileOffset as j}from"../shaders/LocalTileOffset.js";import{MosaicInfo as M}from"../shaders/MosaicInfo.js";import{getBit as N,rgba2float as P}from"../shaders/utils.js";import{VisualVariableColor as F}from"../shaders/VisualVariableColor.js";import{VisualVariableOpacity as I}from"../shaders/VisualVariableOpacity.js";import{VisualVariableRotation as L}from"../shaders/VisualVariableRotation.js";import{VisualVariableSizeMinMaxValue as R}from"../shaders/VisualVariableSizeMinMaxValue.js";import{VisualVariableSizeScaleStops as z}from"../shaders/VisualVariableSizeScaleStops.js";import{VisualVariableSizeStops as B}from"../shaders/VisualVariableSizeStops.js";import{VisualVariableSizeUnitValue as V}from"../shaders/VisualVariableSizeUnitValue.js";import{getVisualVariableSize as H,getVisualVariableAngle as U}from"../shaders/vvUtils.js";class W extends D{}e([r(3,s)],W.prototype,`offset`,void 0),e([r(4,c)],W.prototype,`sizing`,void 0),e([r(5,c)],W.prototype,`value1Position2Value2`,void 0),e([r(6,c)],W.prototype,`animationPointerAndBaseSizeAndReferenceSize`,void 0),e([r(7,s)],W.prototype,`zoomRange`,void 0),e([r(8,l)],W.prototype,`lineLength`,void 0);class G extends k{}class K extends O{_vertexPreamble(e,t,n,r){let{animationPointerAndBaseSizeAndReferenceSize:i,sizing:a}=e,o=r??e.offset,s=this.getFeatureId(e.id,e.bitset),c=i.xy,u=i.z,h=i.w,g=a.xy,_=d([f(N(e.bitset,E.bitset.isMapAligned),new l(1)),this.view.getRotation().divide(180).multiply(Math.PI)],[!0,new l(0)]),v=p(_.add(t)),y=this._getEvalParams(e,g,n,v),b,x;if(!e.value1Position2Value2)x=e.pos,b=new l(0);else{let t;t=this.hittestRequest?new l(0):q(c,6,y).a.multiply(this.tile.getDisplayZoomFactor(this.tileInfo));let n=e.pos,r=e.value1Position2Value2.yz,i=e.value1Position2Value2.x,a=e.value1Position2Value2.w,o=t.subtract(i).divide(a.subtract(i));x=n.add(r.subtract(n).multiply(o)),b=m(new l(1),o).add(m(new l(0),p(o)))}x=this.getLabelPosition(x,e.id,e.bitset);let S=a.z,C=N(e.bitset,E.bitset.isStroke),w=a.w,T=N(e.bitset,E.bitset.scaleSymbolsProportionally),D=q(c,0,y),O=D.xy,k=D.z,A=D.w,j=N(e.bitset,E.bitset.isSDF),M=H(this,s,new l(h)).divide(new l(h));return{baseSize:u,animationPointer:c,strokeWidth:S,isOutline:C,unscaledDistanceToPx:w,scaleSymbolsProportionally:T,isSDF:j,position:this._getScreenPosition({id:s,pos:x,offset:o,referenceSize:h,translation:O,rotation:k,scale:A,vvScale:M}),evalParams:y,vvScale:M,scale:A,clip:b}}_getScreenPosition(e){let{pos:t,translation:n,rotation:r,scale:i,offset:a,id:o,vvScale:s}=e,c=U(this,o).multiply(Math.PI/180),u=n.x.multiply(4/3),d=n.y.multiply(-1).multiply(4/3),f=h(c),m=g(c),y=m.multiply(u).add(p(f).multiply(d)),b=f.multiply(u).add(m.multiply(d)),x=h(r.subtract(c)),S=g(r.subtract(c)),C=new l(0),w=new l(1),T=new _(w,C,C,C,w,C,y,b,w),E=new _(S,x.multiply(-1),C,x,S,C,0,0,w),D=i.multiply(s).multiply(4/3),O=E.multiply(D),k=this.tile.getViewScreenMat3(this.view).multiply(new v(t,1)),A=T.multiply(k).xy,j=O.multiply(new v(a,0)).xy;return A.add(j)}_clip(e,n,r){let i=super.clip(e,n,r),a=y(this._getLocalTimeOrigin(e),new l(0));return t.forceGlobalTimeOrigin||(i=i.add(d([a,()=>new l(2)],[!0,()=>new l(0)]))),i}_getLocalTimeOrigin(e){return this.getLocalTimeOrigin(e)}_toNdc(e){return this.view.displayMat3.multiply(new v(e,1)).xy}_getEvalParams(e,t,n,r){let{globalTime:i,animationTextureSize:a}=this.animationInfo;return{globalTime:i,localTimeOrigin:this._getLocalTimeOrigin(this.getFeatureId(e.id,e.bitset)),animationTextureSize:a,animationTexture:this.animationTexture,pixelDimensions:t,lineLength:n,globalRotation:r}}_getColor(e,t){return b(f(t.isSDF,new l(1)),this._getSDFColor(e,t),this._getSpriteColor(e,t))}_getSpriteColor(e,t){return x(this.mosaicTexture,e).multiply(t.color)}_getSDFColor(e,t){let n=x(this.mosaicTexture,e),r=new l(.5).subtract(P(n)).multiply(t.distanceToPx).multiply(A),i=S(new l(.5).subtract(r),new l(0),new l(1)),a=t.color.multiply(i),o=t.outlineSize.multiply(.5),s=C(r).subtract(o),c=S(new l(.5).subtract(s),new l(0),new l(1)),u=t.outlineColor.multiply(c);return new l(1).subtract(u.a).multiply(a).add(u)}}e([i(M)],K.prototype,`mosaicInfo`,void 0),e([i(T)],K.prototype,`animationInfo`,void 0),e([i(j)],K.prototype,`localTileOffset`,void 0),e([a(u)],K.prototype,`mosaicTexture`,void 0),e([o(F)],K.prototype,`visualVariableColor`,void 0),e([o(I)],K.prototype,`visualVariableOpacity`,void 0),e([o(R)],K.prototype,`visualVariableSizeMinMaxValue`,void 0),e([o(z)],K.prototype,`visualVariableSizeScaleStops`,void 0),e([o(B)],K.prototype,`visualVariableSizeStops`,void 0),e([o(V)],K.prototype,`visualVariableSizeUnitValue`,void 0),e([o(L)],K.prototype,`visualVariableRotation`,void 0),e([a(u)],K.prototype,`animationTexture`,void 0);function q(e,t,r){let i=e.add(new s(t,0)),a=x(r.animationTexture,i.add(.5).divide(r.animationTextureSize)).xy;return e=e.add(a),w({animationPointer:e,...r},c,null,e=>{let{out:t}=e;if(!t)throw Error(`out is null`);return n({...e,out:t})})}export{G as AAnimatedFragmentInput,K as AAnimatedShader,W as AAnimatedVertexInput,q as getValue};
2
+ import{__decorate as e}from"tslib";import{animationDebugFlags as t}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{generateVirtualMachineSource as n}from"../../../animations/instructions.js";import{location as r,uniform as i,texture as a,option as o}from"../../GraphShaderModule.js";import{Vec2 as s,Vec4 as c,Float as l,Sampler2D as u,cond as d,equal as f,negate as p,step as m,sin as h,cos as g,Mat3 as _,Vec3 as v,lessThanEqual as y,ifElse as b,texture2D as x,clamp as S,abs as C,block as w}from"../../graph/glsl.js";import{AnimationUniformInfo as T}from"./AnimationUniformInfo.js";import{MarkerConstants as E}from"../markers/markerConstants.js";import{FeatureVertexInput as D,AFeatureShader as O,FeatureFragmentInput as k}from"../shaders/AFeatureShader.js";import{softEdgeRatio as A}from"../shaders/constants.js";import{LocalTileOffset as j}from"../shaders/LocalTileOffset.js";import{MosaicInfo as M}from"../shaders/MosaicInfo.js";import{getBit as N,rgba2float as P}from"../shaders/utils.js";import{VisualVariableColor as F}from"../shaders/VisualVariableColor.js";import{VisualVariableOpacity as I}from"../shaders/VisualVariableOpacity.js";import{VisualVariableRotation as L}from"../shaders/VisualVariableRotation.js";import{VisualVariableSizeMinMaxValue as R}from"../shaders/VisualVariableSizeMinMaxValue.js";import{VisualVariableSizeScaleStops as z}from"../shaders/VisualVariableSizeScaleStops.js";import{VisualVariableSizeStops as B}from"../shaders/VisualVariableSizeStops.js";import{VisualVariableSizeUnitValue as V}from"../shaders/VisualVariableSizeUnitValue.js";import{getVisualVariableSize as H,getVisualVariableAngle as U}from"../shaders/vvUtils.js";class W extends D{}e([r(3,s)],W.prototype,`offset`,void 0),e([r(4,c)],W.prototype,`sizing`,void 0),e([r(5,c)],W.prototype,`value1Position2Value2`,void 0),e([r(6,c)],W.prototype,`animationPointerAndBaseSizeAndReferenceSize`,void 0),e([r(7,s)],W.prototype,`zoomRange`,void 0),e([r(8,l)],W.prototype,`lineLength`,void 0);class G extends k{}class K extends O{_vertexPreamble(e,t,n,r){let{animationPointerAndBaseSizeAndReferenceSize:i,sizing:a}=e,o=r??e.offset,s=this.getFeatureId(e.id,e.bitset),c=i.xy,u=i.z,h=i.w,g=a.xy,_=d([f(N(e.bitset,E.bitset.isMapAligned),new l(1)),this.view.getRotation().divide(180).multiply(Math.PI)],[!0,new l(0)]),v=p(_.add(t)),y=this._getEvalParams(e,g,n,v),b,x;if(!e.value1Position2Value2)x=e.pos,b=new l(0);else{let t;t=this.hittestRequest?new l(0):q(c,6,y).a.multiply(this.tile.getDisplayZoomFactor(this.tileInfo));let n=e.pos,r=e.value1Position2Value2.yz,i=e.value1Position2Value2.x,a=e.value1Position2Value2.w,o=t.subtract(i).divide(a.subtract(i));x=n.add(r.subtract(n).multiply(o)),b=m(new l(1),o).add(m(new l(0),p(o)))}x=this.getLabelPosition(x,e.id,e.bitset);let S=a.z,C=N(e.bitset,E.bitset.isStroke),w=a.w,T=N(e.bitset,E.bitset.scaleSymbolsProportionally),D=q(c,0,y),O=D.xy,k=D.z,A=D.w,j=N(e.bitset,E.bitset.isSDF),M=H(this,s,new l(h)).divide(new l(h));return{baseSize:u,animationPointer:c,strokeWidth:S,isOutline:C,unscaledDistanceToPx:w,scaleSymbolsProportionally:T,isSDF:j,position:this._getScreenPosition({id:s,pos:x,offset:o,referenceSize:h,translation:O,rotation:k,scale:A,vvScale:M}),evalParams:y,vvScale:M,scale:A,clip:b}}_getScreenPosition(e){let{pos:t,translation:n,rotation:r,scale:i,offset:a,id:o,vvScale:s}=e,c=U(this,o).multiply(Math.PI/180),u=n.x.multiply(4/3),d=n.y.multiply(-1).multiply(4/3),f=h(c),m=g(c),y=m.multiply(u).add(p(f).multiply(d)),b=f.multiply(u).add(m.multiply(d)),x=h(r.subtract(c)),S=g(r.subtract(c)),C=new l(0),w=new l(1),T=new _(w,C,C,C,w,C,y,b,w),E=new _(S,x.multiply(-1),C,x,S,C,0,0,w),D=i.multiply(s).multiply(4/3),O=E.multiply(D),k=this.tile.getViewScreenMat3(this.view).multiply(new v(t,1)),A=T.multiply(k).xy,j=O.multiply(new v(a,0)).xy;return A.add(j)}_clip(e,n,r){let i=super.clip(e,n,r),a=y(this._getLocalTimeOrigin(e),new l(0));return t.forceGlobalTimeOrigin||(i=i.add(d([a,()=>new l(2)],[!0,()=>new l(0)]))),i}_getLocalTimeOrigin(e){return this.getLocalTimeOrigin(e)}_toNdc(e){return this.view.displayMat3.multiply(new v(e,1)).xy}_getEvalParams(e,t,n,r){let{globalTime:i,animationTextureSize:a}=this.animationInfo;return{globalTime:i,localTimeOrigin:this._getLocalTimeOrigin(this.getFeatureId(e.id,e.bitset)),animationTextureSize:a,animationTexture:this.animationTexture,pixelDimensions:t,lineLength:n.divide(this.tile.getDisplayZoomFactor(this.tileInfo)),globalRotation:r}}_getColor(e,t){return b(f(t.isSDF,new l(1)),this._getSDFColor(e,t),this._getSpriteColor(e,t))}_getSpriteColor(e,t){return x(this.mosaicTexture,e).multiply(t.color)}_getSDFColor(e,t){let n=x(this.mosaicTexture,e),r=new l(.5).subtract(P(n)).multiply(t.distanceToPx).multiply(A),i=S(new l(.5).subtract(r),new l(0),new l(1)),a=t.color.multiply(i),o=t.outlineSize.multiply(.5),s=C(r).subtract(o),c=S(new l(.5).subtract(s),new l(0),new l(1)),u=t.outlineColor.multiply(c);return new l(1).subtract(u.a).multiply(a).add(u)}}e([i(M)],K.prototype,`mosaicInfo`,void 0),e([i(T)],K.prototype,`animationInfo`,void 0),e([i(j)],K.prototype,`localTileOffset`,void 0),e([a(u)],K.prototype,`mosaicTexture`,void 0),e([o(F)],K.prototype,`visualVariableColor`,void 0),e([o(I)],K.prototype,`visualVariableOpacity`,void 0),e([o(R)],K.prototype,`visualVariableSizeMinMaxValue`,void 0),e([o(z)],K.prototype,`visualVariableSizeScaleStops`,void 0),e([o(B)],K.prototype,`visualVariableSizeStops`,void 0),e([o(V)],K.prototype,`visualVariableSizeUnitValue`,void 0),e([o(L)],K.prototype,`visualVariableRotation`,void 0),e([a(u)],K.prototype,`animationTexture`,void 0);function q(e,t,r){let i=e.add(new s(t,0)),a=x(r.animationTexture,i.add(.5).divide(r.animationTextureSize)).xy;return e=e.add(a),w({animationPointer:e,...r},c,null,e=>{let{out:t}=e;if(!t)throw Error(`out is null`);return n({...e,out:t})})}export{G as AAnimatedFragmentInput,K as AAnimatedShader,W as AAnimatedVertexInput,q as getValue};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as t}from"../../../../../../../geometry/GeometryCursor.js";import{triangulateF32 as n}from"../../../../../../../geometry/libtess.js";import{LineTessellation as r}from"../../../TurboLine.js";import{clipLinesMarshall as i,triangulateEarcut as a,clipMarshall as o}from"../../../mesh/templates/templateUtils.js";import{AAnimatedMeshWriter as s}from"./AnimatedMeshWriter.js";import{noPatternAngle as c,lineLength as l,noTiming as u,zoomRange as d,segmentDirection as f,normal as p,accumulatedDistance as m,sizing as h,animationPointerAndBaseSizeAndReferenceSize as g,tlbr as _,offset as v,pos as y,bitset as b,id as x,patternAngle as S,noLineLength as C}from"./attributes.js";import{createComputedAnimatedMeshParams as w}from"./ComputedAnimatedParams.js";import{processLineCapInput as T,processLineJoinInput as E}from"../fill/meshWriterUtils.js";import{LineTessellationParams as D}from"../line/LineMeshWriter.js";class O extends s{_write(e,{target:n,effect:r}){let i=r?.geometry??t.fromFeatureSetReaderCIM(n);if(!i)return;let{textureBinding:a}=this.evaluatedMeshParams.sprite;e.recordStart(this.instanceId,this.attributeLayout,a);let o=n.getDisplayId();this._writePoly(e,o,i.asOptimized()),e.recordEnd()}}class k extends O{constructor(){super(...arguments),this.vertexSpec={createComputedParams:w,attributes:{id:x,bitset:b,pos:y,offset:v.fill,tlbr:_,animationPointerAndBaseSizeAndReferenceSize:g,sizing:h},optionalAttributes:{zoomRange:d,value1Position2Value2:u,lineLength:C,angle:S}}}_writePoly(e,t,r){let i=this._clip(r);if(!i)return;r=i;let o=[],s=e.vertexCount(),c;if(a(o,r)){if(o.length===0)return;c=0;for(let n of o){let i=r.coords[n*2],a=r.coords[n*2+1];this._writeVertex(e,t,i,a),c++}}else{let{coords:i,lengths:a}=r,o=n(i,a);c=o.vertexCount;for(let n=0;n<o.buffer.length/2;n++){let r=o.buffer[n*2],i=o.buffer[n*2+1];this._writeVertex(e,t,r,i)}}if(c>0){e.indexEnsureSize(c);for(let t=0;t<c;t++)e.indexWrite(t+s)}}_clip(e){let t=this.hasEffects?256:8;return o(e,t)}}class A{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0}}const j=65535;class M extends O{constructor(){super(...arguments),this.vertexSpec={createComputedParams:w,attributes:{id:x,bitset:b,pos:y,offset:v.line,tlbr:_,animationPointerAndBaseSizeAndReferenceSize:g,sizing:h,accumulatedDistance:m,normal:p,segmentDirection:f},optionalAttributes:{zoomRange:d,value1Position2Value2:u,lineLength:l,angle:c}},this._tessParams=new D,this._currentWrite=new A,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:j,textured:!1},this._lineLength=0,this._lineTessellator=new r((e,t,n,r,i,a,o,s,c,l,u)=>this._writeTesselatedVertex(e,t,n,r,i,a,o,s,c,l,u,this._lineLength),this._writeTriangle.bind(this),!1)}_writePoly(n,r,a){let o=i(t.fromOptimized(a,`esriGeometryPolyline`),64);if(o==null)return;let{_currentWrite:s,_tessellationOptions:c}=this,{baseSize:l,capType:u,joinType:d,miterLimit:f}=this.evaluatedMeshParams;c.halfWidth=e(.5*l),c.capType=T(u||`Round`),c.joinType=E(d||`Round`),c.miterLimit=f||2,s.out=n,s.id=r,s.vertexCount=0,s.indexCount=0,s.vertexFrom=n.vertexCount(),s.vertexBounds=1;for(let{line:e,start:t,pathLength:n}of o){c.initialDistance=t%j,s.pathLength=n,this._lineLength=0;for(let t=1;t<e.length;t++){let n=e[t].x-e[t-1].x,r=e[t].y-e[t-1].y;this._lineLength+=Math.sqrt(n*n+r*r)}this._lineTessellator.tessellate(e,c,!1)}}_writeTesselatedVertex(e,t,n,r,i,a,o,s,c,l,u,d){let{out:f,id:p,vertexBounds:m,pathLength:h}=this._currentWrite;return this.hasEffects&&f.recordBounds(e,t,m,m),this._tessParams.extrusionOffsetX=o,this._tessParams.extrusionOffsetY=s,this._tessParams.normalX=c,this._tessParams.normalY=l,this._tessParams.directionX=i,this._tessParams.directionY=a,this._tessParams.distance=u,this._tessParams.pathLength=h,this._tessParams.lineLength=d,this._writeVertex(f,p,e,t,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(e,t,n){let{out:r}=this._currentWrite;r.indexEnsureSize(3),r.indexWrite(e),r.indexWrite(t),r.indexWrite(n),this._currentWrite.indexCount+=3}}export{O as AAnimatedPolyMeshWriter,k as AnimatedFillMeshWriter,M as AnimatedLineMeshWriter};
2
+ import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as t}from"../../../../../../../geometry/GeometryCursor.js";import{triangulateF32 as n}from"../../../../../../../geometry/libtess.js";import{LineTessellation as r}from"../../../TurboLine.js";import{clipLinesMarshall as i,triangulateEarcut as a,clipMarshall as o}from"../../../mesh/templates/templateUtils.js";import{AAnimatedMeshWriter as s}from"./AnimatedMeshWriter.js";import{noPatternAngle as c,lineLength as l,noTiming as u,zoomRange as d,segmentDirection as f,normal as p,accumulatedDistance as m,sizing as h,animationPointerAndBaseSizeAndReferenceSize as g,tlbr as _,offset as v,pos as y,bitset as b,id as x,patternAngle as S,noLineLength as C}from"./attributes.js";import{createComputedAnimatedLineMeshParams as w,createComputedAnimatedMeshParams as T}from"./ComputedAnimatedParams.js";import{processLineCapInput as E,processLineJoinInput as D}from"../fill/meshWriterUtils.js";import{LineTessellationParams as O}from"../line/LineMeshWriter.js";class k extends s{_write(e,{target:n,effect:r}){let i=r?.geometry??t.fromFeatureSetReaderCIM(n);if(!i)return;let{textureBinding:a}=this.evaluatedMeshParams.sprite;e.recordStart(this.instanceId,this.attributeLayout,a);let o=n.getDisplayId();this._writePoly(e,o,i.asOptimized()),e.recordEnd()}}class A extends k{constructor(){super(...arguments),this.vertexSpec={createComputedParams:T,attributes:{id:x,bitset:b,pos:y,offset:v.fill,tlbr:_,animationPointerAndBaseSizeAndReferenceSize:g,sizing:h},optionalAttributes:{zoomRange:d,value1Position2Value2:u,lineLength:C,angle:S}}}_writePoly(e,t,r){r=r.justXY();let i=this._clip(r);if(!i)return;r=i;let o=[],s=e.vertexCount(),c;if(a(o,r)){if(o.length===0)return;c=0;for(let n of o){let i=r.coords[n*2],a=r.coords[n*2+1];this._writeVertex(e,t,i,a),c++}}else{let{coords:i,lengths:a}=r,o=n(i,a);c=o.vertexCount;for(let n=0;n<o.buffer.length/2;n++){let r=o.buffer[n*2],i=o.buffer[n*2+1];this._writeVertex(e,t,r,i)}}if(c>0){e.indexEnsureSize(c);for(let t=0;t<c;t++)e.indexWrite(t+s)}}_clip(e){let t=this.hasEffects?256:8;return o(e,t)}}class j{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0}}const M=65535;class N extends k{constructor(){super(...arguments),this.vertexSpec={createComputedParams:w,attributes:{id:x,bitset:b,pos:y,offset:v.line,tlbr:_,animationPointerAndBaseSizeAndReferenceSize:g,sizing:h,accumulatedDistance:m,normal:p,segmentDirection:f},optionalAttributes:{zoomRange:d,value1Position2Value2:u,lineLength:l,angle:c}},this._tessParams=new O,this._currentWrite=new j,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:M,textured:!1},this._lineLength=0,this._lineTessellator=new r((e,t,n,r,i,a,o,s,c,l,u)=>this._writeTesselatedVertex(e,t,n,r,i,a,o,s,c,l,u,this._lineLength),this._writeTriangle.bind(this),!1)}_writePoly(n,r,a){a=a.justXY();let o=i(t.fromOptimized(a,`esriGeometryPolyline`),64);if(o==null)return;let{_currentWrite:s,_tessellationOptions:c}=this,{baseSize:l,capType:u,joinType:d,miterLimit:f}=this.evaluatedMeshParams;c.halfWidth=e(.5*l),c.capType=E(u||`Round`),c.joinType=D(d||`Round`),c.miterLimit=f||2,s.out=n,s.id=r,s.vertexCount=0,s.indexCount=0,s.vertexFrom=n.vertexCount(),s.vertexBounds=1;for(let{line:e,start:t,pathLength:n}of o){c.initialDistance=t%M,s.pathLength=n,this._lineLength=0;for(let t=1;t<e.length;t++){let n=e[t].x-e[t-1].x,r=e[t].y-e[t-1].y;this._lineLength+=Math.sqrt(n*n+r*r)}this._lineTessellator.tessellate(e,c,!1)}}_writeTesselatedVertex(e,t,n,r,i,a,o,s,c,l,u,d){let{out:f,id:p,vertexBounds:m,pathLength:h}=this._currentWrite;return this.hasEffects&&f.recordBounds(e,t,m,m),this._tessParams.extrusionOffsetX=o,this._tessParams.extrusionOffsetY=s,this._tessParams.normalX=c,this._tessParams.normalY=l,this._tessParams.directionX=i,this._tessParams.directionY=a,this._tessParams.distance=u,this._tessParams.pathLength=h,this._tessParams.lineLength=d,this._writeVertex(f,p,e,t,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(e,t,n){let{out:r}=this._currentWrite;r.indexEnsureSize(3),r.indexWrite(e),r.indexWrite(t),r.indexWrite(n),this._currentWrite.indexCount+=3}}export{k as AAnimatedPolyMeshWriter,A as AnimatedFillMeshWriter,N as AnimatedLineMeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{pt2px as e}from"../../../../../../../core/screenUtils.js";function t(t){let{pixelDimensions:n,texelDimensions:r,baseSize:i,referenceSize:a,strokeWidth:o,sizeRatio:s}=t;if(n||=t.sprite.sdf?[0,0]:[t.sprite.width,t.sprite.height],r||=t.sprite.sdf?[0,0]:n,t.patternHeight!=null){let e=t.patternHeight/n[1];n[1]*=e,n[0]*=e}i===-1&&(i=n[1]),i=e(i),a=e(a),o=e(o);let c=(t.sprite.sdfDecodeCoeff??1)*s;return{...t,pixelDimensions:n,texelDimensions:r,baseSize:i,referenceSize:a,strokeWidth:o,sdfDecodeCoeff:c}}export{t as createComputedAnimatedMeshParams};
2
+ import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{dashSdfRasterizationScale as t}from"../../../../../../../symbols/cim/constants.js";function n(e){return r({...e,pixelDimensions:e.pixelDimensions??[e.sprite.width/(e.sprite.sdf?t:1),e.sprite.height]})}function r(t){let{pixelDimensions:n,texelDimensions:r,baseSize:i,referenceSize:a,strokeWidth:o,sizeRatio:s}=t;if(n||=t.sprite.sdf?[0,0]:[t.sprite.width,t.sprite.height],r||=t.sprite.sdf?[0,0]:n,t.patternHeight!=null){let e=t.patternHeight/n[1];n[1]*=e,n[0]*=e}i===-1&&(i=n[1]),i=e(i),a=e(a),o=e(o);let c=(t.sprite.sdfDecodeCoeff??1)*s;return{...t,pixelDimensions:n,texelDimensions:r,baseSize:i,referenceSize:a,strokeWidth:o,sdfDecodeCoeff:c}}export{n as createComputedAnimatedLineMeshParams,r as createComputedAnimatedMeshParams};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{applyParentTransform as t}from"../../../../../../../symbols/cim/utils.js";import{spritePadding as n}from"../../../definitions.js";class r{static from(e){return`width`in e?this.fromSimpleMeshParams(e):this.fromComplexMeshParams(e)}static fromSimpleMeshParams(t){let n=new r(t.sprite,t.color,t.outlineColor,t.minPixelBuffer,t.placement,t.scaleInfo,t.effects),{type:i,width:a,height:o,angle:s,alignment:c,outlineSize:l,referenceSize:u,sprite:d,overrideOutlineColor:f}=t;return n.rawWidth=e(a),n.rawHeight=e(o),n.angle=s,n.alignment=c,n.outlineSize=e(l),n.referenceSize=e(u),n.overrideOutlineColor=f,n.offsetX=e(t.offsetX),n.offsetY=e(t.offsetY),i===`simple`&&!d.sdf&&(n.rawWidth=d.width,n.rawHeight=d.height),n._initializeSizeComputation(!1,t.hasSizeVV),n._captureBaseSizeState(),n._computeSize(),n._captureBaseComputedSize(),n}static fromComplexMeshParams(n){let i=new r(n.sprite,n.color,n.outlineColor,n.minPixelBuffer,n.placement,n.scaleInfo,n.effects),{alignment:a,transforms:o,size:s,scaleX:c,anchorX:l,anchorY:u,angle:d,colorLocked:f,frameHeight:p,widthRatio:m,offsetX:h,offsetY:g,outlineSize:_,referenceSize:v,scaleFactor:y,sizeRatio:b,isAbsoluteAnchorPoint:x,rotateClockwise:S,scaleSymbolsProportionally:C,sprite:w}=n;if(o&&o.infos.length>0){let e=t(s,d,S,h,g,o);s=e.size,d=e.rotation,h=e.offsetX,g=e.offsetY,S=!1}y&&(s*=y,h*=y,g*=y);let T=c*(w.width/w.height);i.alignment=a,i.rawHeight=e(s),i.rawWidth=i.rawHeight*T,i.referenceSize=e(v),i.sizeRatio=b,i.sdfDecodeCoeff=(w.sdfDecodeCoeff??1)*b,i.angle=d,i.rotateClockwise=S,i.anchorX=l,i.anchorY=u,i.offsetX=e(h),i.offsetY=e(g),x&&s&&(i.anchorX=w.sdf?l/(s*m):l/(s*T),i.anchorY=u/s);let E=C&&p?s/p:1;return i.outlineSize=_!==0&&!isNaN(_)?e(_)*E:0,i.scaleSymbolsProportionally=C,i.colorLocked=f,i._initializeSizeComputation(!0,n.hasSizeVV),i._captureBaseSizeState(),i._computeSize(),i._captureBaseComputedSize(),i}constructor(e,t,n,r,i,a,o){this.sprite=e,this.color=t,this.outlineColor=n,this.minPixelBuffer=r,this.placement=i,this.scaleInfo=a,this.effects=o,this.rawWidth=0,this.rawHeight=0,this.angle=0,this.outlineSize=0,this.referenceSize=0,this.sizeRatio=1,this.sdfDecodeCoeff=1,this.alignment=0,this.scaleSymbolsProportionally=!1,this.overrideOutlineColor=!1,this.colorLocked=!1,this.anchorX=0,this.anchorY=0,this.computedWidth=0,this.computedHeight=0,this.texXmin=0,this.texYmin=0,this.texXmax=0,this.texYmax=0,this.offsetX=0,this.offsetY=0,this.rotateClockwise=!0,this._baseRawWidth=0,this._baseRawHeight=0,this._baseComputedWidth=0,this._baseComputedHeight=0,this._baseAnchorX=0,this._baseAnchorY=0,this._isCIM=!1,this._hasSizeVV=!1}applyPointSymbolCalloutBackgroundScale(e,t,n,r=0,i=1,a=1,o=!1){if(t+=2*r,n+=2*r,o&&(t+=r,n+=r),!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0||i<=0||a<=0||this._baseComputedWidth<=0||this._baseComputedHeight<=0){this.resetSizeOverride();return}let s=this._baseComputedWidth,c=this._baseComputedHeight;switch(e){case 1:{let e=t/(this._baseComputedWidth*i),r=n/(this._baseComputedHeight*a),l=o?Math.sqrt(e*e+r*r):Math.max(e,r);s*=l,c*=l;break}case 2:case 4:s=t,c=n;break;case 3:{let e=Math.max(t-this._baseComputedWidth,n-this._baseComputedHeight);s+=e,c+=e;break}}this._applyComputedSizeTarget(s,c),e!==0&&(this.anchorX=0,this.anchorY=0)}getPointSymbolCalloutBounds(e){let t=this.computedWidth,n=this.computedHeight,r=(e.xmin+e.xmax)/2+this.offsetX-this.anchorX*t,i=(e.ymin+e.ymax)/2+this.offsetY-this.anchorY*n;return{xmin:r-t/2,ymin:i-n/2,xmax:r+t/2,ymax:i+n/2}}resetSizeOverride(){this._restoreBaseSize(),this._computeSize()}get boundsInfo(){return{size:Math.max(this.computedHeight,this.computedWidth),offsetX:this.offsetX,offsetY:this.offsetY}}_initializeSizeComputation(e,t){this._isCIM=e,this._hasSizeVV=t}_captureBaseSizeState(){this._baseRawWidth=this.rawWidth,this._baseRawHeight=this.rawHeight,this._baseAnchorX=this.anchorX,this._baseAnchorY=this.anchorY}_captureBaseComputedSize(){this._baseComputedWidth=this.computedWidth,this._baseComputedHeight=this.computedHeight}_restoreBaseSize(){this.rawWidth=this._baseRawWidth,this.rawHeight=this._baseRawHeight,this.anchorX=this._baseAnchorX,this.anchorY=this._baseAnchorY}_applyComputedSizeTarget(e,t){let n=this._baseComputedWidth,r=this._baseComputedHeight;if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0||n<=0||r<=0){this.resetSizeOverride();return}this._restoreBaseSize(),this.rawWidth*=e/n,this.rawHeight*=t/r,this._computeSize()}_computeSize(){let{sprite:e}=this,t=this._hasSizeVV,r=this._isCIM,o=!!e.sdf,s=e.sdfPaddingRatio??.5,{rawWidth:c,rawHeight:l,sizeRatio:u,outlineSize:d}=this,f=e.rect,p=c*u,m=l*u,h=0,g=0;if(o){let n=1/(1-s);if(p*=n,m*=n,t)this.computedWidth=p,this.computedHeight=m;else{let t=r&&c>l?p:c,n=l,i=d+2;this.computedWidth=Math.min(t+i,p),this.computedHeight=Math.min(n+i,m);let a=Math.max(e.width,e.height)/Math.max(p,m);h=(this.computedWidth-p)*a,g=(this.computedHeight-m)*a}}else this.computedWidth=p*(f.width/e.width),this.computedHeight=m*(f.height/e.height),h=2*n,g=2*n;let _=f.x+n-h/2,v=f.y+n-g/2,y=_+e.width+h,b=v+e.height+g;this.texXmin=i(_),this.texYmin=i(v),this.texXmax=a(y),this.texYmax=a(b),this.computedWidth*=(this.texXmax-this.texXmin)/(y-_),this.computedHeight*=(this.texYmax-this.texYmin)/(b-v),this.anchorX*=p/this.computedWidth,this.anchorY*=m/this.computedHeight}}function i(e,t=1e-7){let n=Math.ceil(e);return n-e<t?n:Math.floor(e)}function a(e,t=1e-7){let n=Math.floor(e);return e-n<t?n:Math.ceil(e)}export{r as ComputedMarkerParams};
2
+ import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{applyParentTransform as t}from"../../../../../../../symbols/cim/utils.js";import{spritePadding as n}from"../../../definitions.js";const r=1.25;class i{static from(e){return`width`in e?this.fromSimpleMeshParams(e):this.fromComplexMeshParams(e)}static fromSimpleMeshParams(t){let n=new i(t.sprite,t.color,t.outlineColor,t.minPixelBuffer,t.placement,t.scaleInfo,t.effects),{type:r,width:a,height:o,angle:s,alignment:c,outlineSize:l,referenceSize:u,sprite:d,overrideOutlineColor:f}=t;return n.rawWidth=e(a),n.rawHeight=e(o),n.angle=s,n.alignment=c,n.outlineSize=e(l),n.referenceSize=e(u),n.overrideOutlineColor=f,n.offsetX=e(t.offsetX),n.offsetY=e(t.offsetY),r===`simple`&&!d.sdf&&(n.rawWidth=d.width,n.rawHeight=d.height),n._initializeSizeComputation(!1,t.hasSizeVV),n._captureBaseSizeState(),n._computeSize(),n._captureBaseComputedSize(),n}static fromComplexMeshParams(n){let r=new i(n.sprite,n.color,n.outlineColor,n.minPixelBuffer,n.placement,n.scaleInfo,n.effects),{alignment:a,transforms:o,size:s,scaleX:c,anchorX:l,anchorY:u,angle:d,colorLocked:f,frameHeight:p,widthRatio:m,offsetX:h,offsetY:g,outlineSize:_,referenceSize:v,scaleFactor:y,sizeRatio:b,isAbsoluteAnchorPoint:x,rotateClockwise:S,scaleSymbolsProportionally:C,sprite:w}=n;if(o&&o.infos.length>0){let e=t(s,d,S,h,g,o);s=e.size,d=e.rotation,h=e.offsetX,g=e.offsetY,S=!1}y&&(s*=y,h*=y,g*=y);let T=c*(w.width/w.height);r.alignment=a,r.rawHeight=e(s),r.rawWidth=r.rawHeight*T,r.referenceSize=e(v),r.sizeRatio=b,r.sdfDecodeCoeff=(w.sdfDecodeCoeff??1)*b,r.angle=d,r.rotateClockwise=S,r.anchorX=l,r.anchorY=u,r.offsetX=e(h),r.offsetY=e(g),x&&s&&(r.anchorX=w.sdf?l/(s*m):l/(s*T),r.anchorY=u/s);let E=C&&p?s/p:1;return r.outlineSize=_!==0&&!isNaN(_)?e(_)*E:0,r.scaleSymbolsProportionally=C,r.colorLocked=f,r._initializeSizeComputation(!0,n.hasSizeVV),r._captureBaseSizeState(),r._computeSize(),r._captureBaseComputedSize(),r}constructor(e,t,n,r,i,a,o){this.sprite=e,this.color=t,this.outlineColor=n,this.minPixelBuffer=r,this.placement=i,this.scaleInfo=a,this.effects=o,this.rawWidth=0,this.rawHeight=0,this.angle=0,this.outlineSize=0,this.referenceSize=0,this.sizeRatio=1,this.sdfDecodeCoeff=1,this.alignment=0,this.scaleSymbolsProportionally=!1,this.overrideOutlineColor=!1,this.colorLocked=!1,this.anchorX=0,this.anchorY=0,this.computedWidth=0,this.computedHeight=0,this.texXmin=0,this.texYmin=0,this.texXmax=0,this.texYmax=0,this.offsetX=0,this.offsetY=0,this.rotateClockwise=!0,this._baseRawWidth=0,this._baseRawHeight=0,this._baseComputedWidth=0,this._baseComputedHeight=0,this._baseAnchorX=0,this._baseAnchorY=0,this._isCIM=!1,this._hasSizeVV=!1}applyPointSymbolCalloutBackgroundScale(e,t,n,i=0,a=1,o=1,s=!1){if(t+=2*i,n+=2*i,s&&(t+=i,n+=i),!Number.isFinite(t)||!Number.isFinite(n)||t<=0||n<=0||a<=0||o<=0||this._baseComputedWidth<=0||this._baseComputedHeight<=0){this.resetSizeOverride();return}let c=this._baseComputedWidth,l=this._baseComputedHeight;switch(e){case 1:{let e=r*t/(this._baseComputedWidth*a),i=r*n/(this._baseComputedHeight*o),u=s?Math.sqrt(e*e+i*i):Math.max(e,i);c*=u,l*=u;break}case 3:{let e=Math.max(t-this._baseComputedWidth,n-this._baseComputedHeight);c+=e,l+=e;break}}this._applyComputedSizeTarget(c,l),e!==0&&(this.anchorX=0,this.anchorY=0)}getPointSymbolCalloutBounds(e){let t=this.computedWidth,n=this.computedHeight,r=(e.xmin+e.xmax)/2+this.offsetX-this.anchorX*t,i=(e.ymin+e.ymax)/2+this.offsetY-this.anchorY*n;return{xmin:r-t/2,ymin:i-n/2,xmax:r+t/2,ymax:i+n/2}}resetSizeOverride(){this._restoreBaseSize(),this._computeSize()}get boundsInfo(){return{size:Math.max(this.computedHeight,this.computedWidth),offsetX:this.offsetX,offsetY:this.offsetY}}_initializeSizeComputation(e,t){this._isCIM=e,this._hasSizeVV=t}_captureBaseSizeState(){this._baseRawWidth=this.rawWidth,this._baseRawHeight=this.rawHeight,this._baseAnchorX=this.anchorX,this._baseAnchorY=this.anchorY}_captureBaseComputedSize(){this._baseComputedWidth=this.computedWidth,this._baseComputedHeight=this.computedHeight}_restoreBaseSize(){this.rawWidth=this._baseRawWidth,this.rawHeight=this._baseRawHeight,this.anchorX=this._baseAnchorX,this.anchorY=this._baseAnchorY}_applyComputedSizeTarget(e,t){let n=this._baseComputedWidth,r=this._baseComputedHeight;if(!Number.isFinite(e)||!Number.isFinite(t)||e<=0||t<=0||n<=0||r<=0){this.resetSizeOverride();return}this._restoreBaseSize(),this.rawWidth*=e/n,this.rawHeight*=t/r,this._computeSize()}_computeSize(){let{sprite:e}=this,t=this._hasSizeVV,r=this._isCIM,i=!!e.sdf,s=e.sdfPaddingRatio??.5,{rawWidth:c,rawHeight:l,sizeRatio:u,outlineSize:d}=this,f=e.rect,p=c*u,m=l*u,h=0,g=0;if(i){let n=1/(1-s);if(p*=n,m*=n,t)this.computedWidth=p,this.computedHeight=m;else{let t=r&&c>l?p:c,n=l,i=d+2;this.computedWidth=Math.min(t+i,p),this.computedHeight=Math.min(n+i,m);let a=Math.max(e.width,e.height)/Math.max(p,m);h=(this.computedWidth-p)*a,g=(this.computedHeight-m)*a}}else this.computedWidth=p*(f.width/e.width),this.computedHeight=m*(f.height/e.height),h=2*n,g=2*n;let _=f.x+n-h/2,v=f.y+n-g/2,y=_+e.width+h,b=v+e.height+g;this.texXmin=a(_),this.texYmin=a(v),this.texXmax=o(y),this.texYmax=o(b),this.computedWidth*=(this.texXmax-this.texXmin)/(y-_),this.computedHeight*=(this.texYmax-this.texYmin)/(b-v),this.anchorX*=p/this.computedWidth,this.anchorY*=m/this.computedHeight}}function a(e,t=1e-7){let n=Math.ceil(e);return n-e<t?n:Math.floor(e)}function o(e,t=1e-7){let n=Math.floor(e);return e-n<t?n:Math.ceil(e)}export{i as ComputedMarkerParams};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{getBalloonBodyBounds as t,getBalloonCornerRadius as n,inflateBounds as r,scaleMargins as i,autoSnap as a,contains as o,distance as s,createBalloonGeometry as c,createAccentBar as l,createLeaderPath as u}from"../../../../../../../symbols/cim/callouts/effects/calloutUtils.js";const d=96/72;class f{constructor(e){this._properties=e}getEffectExecutionContextOverrides(e,t=!1){let n=this.getReferenceInfo(),r=m(e),i=n?.bodyBoundsUseReferenceScale?e.scaleFactor??1:1;return{scaleFactor:i,callout:{relativeAnchor:n?.anchor??void 0,relativeLayoutAnchor:n?.layoutAnchor??void 0,absoluteAnchor:r?{x:r.x,y:-r.y}:void 0,bodyBounds:n?p(n.bodyBounds,i):void 0,preserveInputGeometry:t}}}resolveEffectGeometry(t,n,r){let i=this._getReferencedEffectGeometry(t);return i?{geometry:i,preserveInputGeometry:!0}:{geometry:r?n:e.fromJSON({x:0,y:0}),preserveInputGeometry:!1}}getViewRotation(e){return this._properties.collisionVisibility?0:e}getCollisionBounds(e=1){let n=this.getReferenceInfo();if(!n)return;if(g(this._properties.writer))return this._properties.writer.getCalloutCollisionBounds(n,e);let r=n.bodyBoundsUseReferenceScale?e:1,i=p(n.collisionBodyBounds??n.bodyBounds,r);for(let e of this._properties.effects??[]){if(!j(e)||e.part!==`background`||e.type!==`CIMBackgroundCallout`&&e.type!==`CIMBalloonCallout`)continue;let n=e.margin,a=d*r,o={xmin:i.xmin-(n?.left??0)*a,ymin:i.ymin-(n?.bottom??0)*a,xmax:i.xmax+(n?.right??0)*a,ymax:i.ymax+(n?.top??0)*a};return e.type===`CIMBalloonCallout`?t(o,e.balloonStyle):o}}getCornerRadius(e=1){let t=this.getReferenceInfo();if(!t)return 0;let a=t.bodyBoundsUseReferenceScale?e:1,o=p(t.bodyBounds,a);for(let e of this._properties.effects??[])if(j(e)&&e.part===`background`&&e.type===`CIMBalloonCallout`)return n(r(o,i(e.margin,d*a)),e.balloonStyle);return 0}getPartCollisionBounds(e=1){let t=this.getReferenceInfo();if(!t)return[];if(_(this._properties.writer))return this._properties.writer.getCalloutPartCollisionBounds(e);let n=t.bodyBoundsUseReferenceScale?e:1,r=p(t.bodyBounds,n),i=p(t.collisionBodyBounds??t.bodyBounds,n),a=P(r),o=P(i),s=t.anchor??a,c=t.layoutAnchor??s,l={x:s.x-(a.x-o.x),y:s.y-(a.y-o.y)},u={x:c.x-(a.x-o.x),y:c.y-(a.y-o.y)},f=d*n,m=Math.max(1,h(this._properties.writer)),g=[];for(let e of this._properties.effects??[])j(e)&&g.push(...y(e,i,l,u,f,m));return g}getReferenceInfo(){return D(this._properties.reference)}getReferencedRotation(){let e=this._properties.reference;if(e&&A(e)){let t=e.getCalloutRotation();return t!=null&&Number.isFinite(t)?t:void 0}}_getReferencedEffectGeometry(e){let t=this._properties.reference;return t&&k(t)?t.getCalloutEffectGeometry(e)??void 0:void 0}}function p(e,t){return t===1?e:{xmin:e.xmin*t,ymin:e.ymin*t,xmax:e.xmax*t,ymax:e.ymax*t}}function m(e){let{matcher:t,target:n,tileKey:r}=e;return!t||!n||r==null||typeof n.getObjectId!=`function`||!(`getMatcherGeometryOverride`in t)||typeof t.getMatcherGeometryOverride!=`function`?null:t.getMatcherGeometryOverride(`${r}_${n.getObjectId()}`)?.absoluteCalloutAnchor??null}function h(e){return v(e)?e.getCalloutCollisionPadding():0}function g(e){return`getCalloutCollisionBounds`in e&&typeof e.getCalloutCollisionBounds==`function`}function _(e){return`getCalloutPartCollisionBounds`in e&&typeof e.getCalloutPartCollisionBounds==`function`}function v(e){return`getCalloutCollisionPadding`in e&&typeof e.getCalloutCollisionPadding==`function`}function y(e,t,n,r,i,a){switch(e.type){case`CIMBackgroundCallout`:return b(e,t,n,r,i,a);case`CIMBalloonCallout`:return x(e,t,n,r,i,a);case`CIMPointSymbolCallout`:return S(e,t,n,r,i,a);case`CIMSimpleLineCallout`:return w(e,t,n,r,i,a)}}function b(e,t,n,a,o,s){let c=r(t,i(e.margin,o));return e.part===`background`?[]:e.part===`accent-bar`?T(l(c,a,(e.gap??0)*o,1),s):C(c,n,a,e,o,s)}function x(e,t,n,a,o,s){let l=r(t,i(e.margin,o));return T(c(l,n,e.balloonStyle,(e.leaderTolerance??0)*o,1,e.dartWidth==null?null:e.dartWidth*o,a),s,(e,t)=>F(e,n)||F(t,n))}function S(e,t,n,r,i,a){return e.part===`marker`?[]:C(t,n,r,e,i,a)}function C(e,t,n,r,i,c){return o(e,n)||s(a(e,n),n)<(r.leaderTolerance??0)*i?[]:T(u(e,n,r.lineStyle,(r.leaderOffset??0)*i,1,t),c)}function w(e,t,n,r,i,c){let l=e.autoSnap===!1?{x:t.xmin,y:t.ymin}:a(t,r);return o(t,r)||s(l,r)<(e.leaderTolerance??0)*i?[]:E(l,n,c)}function T(e,t,n=()=>!0){let r=[];for(e.reset();e.nextPath();){let i=null;for(;e.nextPoint();){let a={x:e.x,y:e.y};i&&n(i,a)&&r.push(...E(i,a,t)),i=a}}return e.reset(),r}function E(e,t,n){let r=t.x-e.x,i=t.y-e.y,a=r!==0&&i!==0?Math.ceil(Math.max(Math.abs(r),Math.abs(i))/16):1,o=[];for(let t=0;t<a;t++){let s=t/a,c=(t+1)/a,l=e.x+r*s,u=e.y+i*s,d=e.x+r*c,f=e.y+i*c;o.push({xmin:Math.min(l,d)-n,ymin:Math.min(u,f)-n,xmax:Math.max(l,d)+n,ymax:Math.max(u,f)+n})}return o}function D(e){return O(e)?N(e.getLocalCalloutReferenceInfo()):M(e.getBoundsInfo())}function O(e){return`getLocalCalloutReferenceInfo`in e&&typeof e.getLocalCalloutReferenceInfo==`function`}function k(e){return`getCalloutEffectGeometry`in e&&typeof e.getCalloutEffectGeometry==`function`}function A(e){return`getCalloutRotation`in e&&typeof e.getCalloutRotation==`function`}function j(e){return e.type===`CIMBackgroundCallout`||e.type===`CIMBalloonCallout`||e.type===`CIMPointSymbolCallout`||e.type===`CIMSimpleLineCallout`}function M(e){if(!I(e))return;let t=e.size/2,n={xmin:e.offsetX-t,ymin:e.offsetY-t,xmax:e.offsetX+t,ymax:e.offsetY+t};return{anchor:P(n),bodyBounds:n}}function N(e){if(!e||!L(e.bodyBounds))return;let t=e.anchor??P(e.bodyBounds),n=e.layoutAnchor??t,r=e.collisionBodyBounds;if(R(t)&&R(n))return{anchor:t,...e.layoutAnchor?{layoutAnchor:n}:null,bodyBounds:e.bodyBounds,...r&&L(r)?{collisionBodyBounds:r}:null,...e.bodyBoundsUseReferenceScale?{bodyBoundsUseReferenceScale:!0}:null}}function P(e){return{x:(e.xmin+e.xmax)/2,y:(e.ymin+e.ymax)/2}}function F(e,t){return e.x===t.x&&e.y===t.y}function I(e){return e!=null&&e.offsetX!=null&&!isNaN(e.offsetX)&&e.offsetY!=null&&!isNaN(e.offsetY)&&e.size!=null&&!isNaN(e.size)}function L(e){return e.xmin!=null&&!isNaN(e.xmin)&&e.ymin!=null&&!isNaN(e.ymin)&&e.xmax!=null&&!isNaN(e.xmax)&&e.ymax!=null&&!isNaN(e.ymax)}function R(e){return e.x!=null&&!isNaN(e.x)&&e.y!=null&&!isNaN(e.y)}export{f as CalloutMeshWriterPolicy,D as getCalloutReferenceInfo,O as isLocalCalloutReferenceProvider};
2
+ import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{getBalloonBodyBounds as t,getBalloonCornerRadius as n,inflateBounds as r,scaleMargins as i,autoSnap as a,contains as o,distance as s,createBalloonDartGeometry as c,createBalloonGeometry as l,createAccentBar as u,getLeaderConnectionPoint as d,createLeaderPath as f}from"../../../../../../../symbols/cim/callouts/effects/calloutUtils.js";const p=96/72;class m{constructor(e){this._properties=e}getEffectExecutionContextOverrides(e,t=!1){let n=this.getReferenceInfo(),r=g(e),i=n?.bodyBoundsUseReferenceScale?e.scaleFactor??1:1;return{scaleFactor:i,callout:{relativeAnchor:n?.anchor??void 0,relativeLayoutAnchor:n?.layoutAnchor??void 0,absoluteAnchor:r?{x:r.x,y:-r.y}:void 0,bodyBounds:n?h(n.bodyBounds,i):void 0,preserveInputGeometry:t}}}resolveEffectGeometry(t,n,r){let i=this._getReferencedEffectGeometry(t);return i?{geometry:i,preserveInputGeometry:!0}:{geometry:r?n:e.fromJSON({x:0,y:0}),preserveInputGeometry:!1}}getViewRotation(e){return this._properties.collisionVisibility?0:e}getCollisionBounds(e=1){let n=this.getReferenceInfo();if(!n)return;if(v(this._properties.writer))return this._properties.writer.getCalloutCollisionBounds(n,e);let r=n.bodyBoundsUseReferenceScale?e:1,i=h(n.collisionBodyBounds??n.bodyBounds,r);for(let e of this._properties.effects??[]){if(!N(e)||e.part!==`background`||e.type!==`CIMBackgroundCallout`&&e.type!==`CIMBalloonCallout`)continue;let n=e.margin,a=p*r,o={xmin:i.xmin-(n?.left??0)*a,ymin:i.ymin-(n?.bottom??0)*a,xmax:i.xmax+(n?.right??0)*a,ymax:i.ymax+(n?.top??0)*a};return e.type===`CIMBalloonCallout`?t(o,e.balloonStyle):o}}getCornerRadius(e=1){let t=this.getReferenceInfo();if(!t)return 0;let a=t.bodyBoundsUseReferenceScale?e:1,o=h(t.bodyBounds,a);for(let e of this._properties.effects??[])if(N(e)&&e.part===`background`&&e.type===`CIMBalloonCallout`)return n(r(o,i(e.margin,p*a)),e.balloonStyle);return 0}getPartCollisionBounds(e=1){let t=this.getReferenceInfo();if(!t)return[];if(y(this._properties.writer))return this._properties.writer.getCalloutPartCollisionBounds(e);let n=t.bodyBoundsUseReferenceScale?e:1,r=h(t.bodyBounds,n),i=h(t.collisionBodyBounds??t.bodyBounds,n),a=I(r),o=I(i),s=t.anchor??a,c=t.layoutAnchor??s,l={x:s.x-(a.x-o.x),y:s.y-(a.y-o.y)},u={x:c.x-(a.x-o.x),y:c.y-(a.y-o.y)},d=p*n,f=Math.max(1,_(this._properties.writer)),m=[];for(let e of this._properties.effects??[])N(e)&&m.push(...x(e,i,l,u,d,f));return m}getReferenceInfo(){return k(this._properties.reference)}getReferencedRotation(){let e=this._properties.reference;if(e&&M(e)){let t=e.getCalloutRotation();return t!=null&&Number.isFinite(t)?t:void 0}}_getReferencedEffectGeometry(e){let t=this._properties.reference;return t&&j(t)?t.getCalloutEffectGeometry(e)??void 0:void 0}}function h(e,t){return t===1?e:{xmin:e.xmin*t,ymin:e.ymin*t,xmax:e.xmax*t,ymax:e.ymax*t}}function g(e){let{matcher:t,target:n,tileKey:r}=e;return!t||!n||r==null||typeof n.getObjectId!=`function`||!(`getMatcherGeometryOverride`in t)||typeof t.getMatcherGeometryOverride!=`function`?null:t.getMatcherGeometryOverride(`${r}_${n.getObjectId()}`)?.absoluteCalloutAnchor??null}function _(e){return b(e)?e.getCalloutCollisionPadding():0}function v(e){return`getCalloutCollisionBounds`in e&&typeof e.getCalloutCollisionBounds==`function`}function y(e){return`getCalloutPartCollisionBounds`in e&&typeof e.getCalloutPartCollisionBounds==`function`}function b(e){return`getCalloutCollisionPadding`in e&&typeof e.getCalloutCollisionPadding==`function`}function x(e,t,n,r,i,a){switch(e.type){case`CIMBackgroundCallout`:return S(e,t,n,i,a);case`CIMBalloonCallout`:return C(e,t,n,r,i,a);case`CIMPointSymbolCallout`:return w(e,t,n,i,a);case`CIMSimpleLineCallout`:return E(e,t,n,r,i,a)}}function S(e,t,n,a,o){let s=r(t,i(e.margin,a));return e.part===`background`?[]:e.part===`accent-bar`?D(u(s,n,(e.gap??0)*a,1,e.lineStyle,t),o):T(s,n,e,a,o,e.hasAccentBar,t)}function C(e,t,n,a,o,s){let u=r(t,i(e.margin,o));if(e.part===`background`&&e.separateDart)return[];let d=e.dartWidth==null?null:e.dartWidth*o,f=e.part===`dart`?c(u,n,e.balloonStyle,(e.leaderTolerance??0)*o,1,d,a):l(u,n,e.balloonStyle,(e.leaderTolerance??0)*o,1,d,a);return f?D(f,s,(e,t)=>L(e,n)||L(t,n)):[]}function w(e,t,n,r,i){return e.part===`marker`?[]:T(t,n,e,r,i)}function T(e,t,n,r,i,a=!1,c=e){return o(e,t)||s(d(e,t,n.lineStyle,(n.gap??0)*r,a,c),t)<(n.leaderTolerance??0)*r?[]:D(f(e,t,n.lineStyle,(n.leaderOffset??0)*r,(n.gap??0)*r,1,r,a,c),i)}function E(e,t,n,r,i,c){let l=e.autoSnap===!1?{x:t.xmin,y:t.ymin}:a(t,r);return o(t,r)||s(l,r)<(e.leaderTolerance??0)*i?[]:O(l,n,c)}function D(e,t,n=()=>!0){let r=[];for(e.reset();e.nextPath();){let i=null;for(;e.nextPoint();){let a={x:e.x,y:e.y};i&&n(i,a)&&r.push(...O(i,a,t)),i=a}}return e.reset(),r}function O(e,t,n){let r=t.x-e.x,i=t.y-e.y,a=r!==0&&i!==0?Math.ceil(Math.max(Math.abs(r),Math.abs(i))/16):1,o=[];for(let t=0;t<a;t++){let s=t/a,c=(t+1)/a,l=e.x+r*s,u=e.y+i*s,d=e.x+r*c,f=e.y+i*c;o.push({xmin:Math.min(l,d)-n,ymin:Math.min(u,f)-n,xmax:Math.max(l,d)+n,ymax:Math.max(u,f)+n})}return o}function k(e){return A(e)?F(e.getLocalCalloutReferenceInfo()):P(e.getBoundsInfo())}function A(e){return`getLocalCalloutReferenceInfo`in e&&typeof e.getLocalCalloutReferenceInfo==`function`}function j(e){return`getCalloutEffectGeometry`in e&&typeof e.getCalloutEffectGeometry==`function`}function M(e){return`getCalloutRotation`in e&&typeof e.getCalloutRotation==`function`}function N(e){return e.type===`CIMBackgroundCallout`||e.type===`CIMBalloonCallout`||e.type===`CIMPointSymbolCallout`||e.type===`CIMSimpleLineCallout`}function P(e){if(!R(e))return;let t=e.size/2,n={xmin:e.offsetX-t,ymin:e.offsetY-t,xmax:e.offsetX+t,ymax:e.offsetY+t};return{anchor:I(n),bodyBounds:n}}function F(e){if(!e||!z(e.bodyBounds))return;let t=e.anchor??I(e.bodyBounds),n=e.layoutAnchor??t,r=e.collisionBodyBounds;if(B(t)&&B(n))return{anchor:t,...e.layoutAnchor?{layoutAnchor:n}:null,bodyBounds:e.bodyBounds,...r&&z(r)?{collisionBodyBounds:r}:null,...e.bodyBoundsUseReferenceScale?{bodyBoundsUseReferenceScale:!0}:null}}function I(e){return{x:(e.xmin+e.xmax)/2,y:(e.ymin+e.ymax)/2}}function L(e,t){return e.x===t.x&&e.y===t.y}function R(e){return e!=null&&e.offsetX!=null&&!isNaN(e.offsetX)&&e.offsetY!=null&&!isNaN(e.offsetY)&&e.size!=null&&!isNaN(e.size)}function z(e){return e.xmin!=null&&!isNaN(e.xmin)&&e.ymin!=null&&!isNaN(e.ymin)&&e.xmax!=null&&!isNaN(e.xmax)&&e.ymax!=null&&!isNaN(e.ymax)}function B(e){return e.x!=null&&!isNaN(e.x)&&e.y!=null&&!isNaN(e.y)}export{m as CalloutMeshWriterPolicy,k as getCalloutReferenceInfo,A as isLocalCalloutReferenceProvider};