@arcgis/core 5.2.0-next.80 → 5.2.0-next.81

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 (464) hide show
  1. package/applications/Components/imageryUtils.d.ts +5 -3
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/004966b5bf60a8a80b8c.js +1 -0
  4. package/assets/esri/core/workers/chunks/03cf74b2e488eb144ad5.js +1 -0
  5. package/assets/esri/core/workers/chunks/055802283f7e01ee87fb.js +1 -0
  6. package/assets/esri/core/workers/chunks/06df9ce870360cda06c7.js +1 -0
  7. package/assets/esri/core/workers/chunks/{08ec5461af74356e7570.js → 075eb62465edb9cbf907.js} +1 -1
  8. package/assets/esri/core/workers/chunks/09f0805b32e6cab980e6.js +1 -0
  9. package/assets/esri/core/workers/chunks/{5fe9eea35ddb428efd8b.js → 0b26c01a1190e8fd63fb.js} +1 -1
  10. package/assets/esri/core/workers/chunks/0fd7590e545864f5fff4.js +1 -0
  11. package/assets/esri/core/workers/chunks/{b9d1bb106737a05290e1.js → 104d74bc36c28c519396.js} +1 -1
  12. package/assets/esri/core/workers/chunks/14be79c4cc6137c7db95.js +1 -0
  13. package/assets/esri/core/workers/chunks/{ef47a5da641cb0d33fdf.js → 197a6d561f77ac74283a.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{e4e5a171a4874c5af4a4.js → 1a7d2912c8eac8c83c70.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{b9c61b20bbc91cb63036.js → 1c3861297f65ee1ca5d0.js} +1 -1
  16. package/assets/esri/core/workers/chunks/1d1cfe0bee506d34268e.js +1 -0
  17. package/assets/esri/core/workers/chunks/1ed6a8bb415999c4e8a6.js +1 -0
  18. package/assets/esri/core/workers/chunks/2161cf64601f28bbe72d.js +1 -0
  19. package/assets/esri/core/workers/chunks/218ddad849745d652a28.js +1 -0
  20. package/assets/esri/core/workers/chunks/{5b70295da76d9227f64b.js → 22c477147421e68f7f00.js} +1 -1
  21. package/assets/esri/core/workers/chunks/24944b625ed8dcd904f0.js +1 -0
  22. package/assets/esri/core/workers/chunks/25696c194457e42b3bdc.js +1 -0
  23. package/assets/esri/core/workers/chunks/25f6d5604a7959afd5a5.js +1 -0
  24. package/assets/esri/core/workers/chunks/{c1e5ffe9a251be5a0744.js → 278760d194203dd27fc3.js} +1 -1
  25. package/assets/esri/core/workers/chunks/28b576663ed4570ec825.js +1 -0
  26. package/assets/esri/core/workers/chunks/{841c81c280114412c95b.js → 2a4c91b006de1ceba539.js} +1 -1
  27. package/assets/esri/core/workers/chunks/2b299aec2a758bcd9731.js +1 -0
  28. package/assets/esri/core/workers/chunks/2b79b376b0d60d2f0d5c.js +1 -0
  29. package/assets/esri/core/workers/chunks/{b084829a3fd709dc47a8.js → 2d683ac4a993ec5fd6f6.js} +1 -1
  30. package/assets/esri/core/workers/chunks/2f3525df00fb265661fc.js +1 -0
  31. package/assets/esri/core/workers/chunks/{a8ec5b85c2fa6fb4f391.js → 30b40ee875d46e6fde02.js} +1 -1
  32. package/assets/esri/core/workers/chunks/31b3744f71750e512d4e.js +1 -0
  33. package/assets/esri/core/workers/chunks/3239c7994019f15e261d.js +1 -0
  34. package/assets/esri/core/workers/chunks/{d520d407043bc52e5410.js → 3336ad383c184dd07bb3.js} +1 -1
  35. package/assets/esri/core/workers/chunks/36265e5f6d396eadf0be.js +1 -0
  36. package/assets/esri/core/workers/chunks/{0ae0483b72f5e8d00d55.js → 3715d6b295016eeb5031.js} +1 -1
  37. package/assets/esri/core/workers/chunks/37a121316d114999ac70.js +1 -0
  38. package/assets/esri/core/workers/chunks/37fb38db03cb39e3c342.js +1 -0
  39. package/assets/esri/core/workers/chunks/3851ebf3548e2763b24f.js +1 -0
  40. package/assets/esri/core/workers/chunks/{9230ad807020fc2bbf8e.js → 388b71211a0ad5cbd6b9.js} +1 -1
  41. package/assets/esri/core/workers/chunks/3a4b117af89dab5153eb.js +1 -0
  42. package/assets/esri/core/workers/chunks/3a9ef47122e10cecd3a4.js +1 -0
  43. package/assets/esri/core/workers/chunks/3adba34224cba869a39c.js +1 -0
  44. package/assets/esri/core/workers/chunks/40b842d055b87e442156.js +1 -0
  45. package/assets/esri/core/workers/chunks/40ebe69b08ea54e0e780.js +1 -0
  46. package/assets/esri/core/workers/chunks/{c37b28f200b704ae6002.js → 4239d64f067417e0643c.js} +1 -1
  47. package/assets/esri/core/workers/chunks/453c69879f4b82ba13a1.js +1 -0
  48. package/assets/esri/core/workers/chunks/{bd88228f781a0399d8bd.js → 49e37f653b81f9e4f7cc.js} +1 -1
  49. package/assets/esri/core/workers/chunks/4a537054c99cbc492715.js +1 -0
  50. package/assets/esri/core/workers/chunks/4a6158994a8cc8b8664f.js +1 -0
  51. package/assets/esri/core/workers/chunks/4c15551e33a3c6cda61d.js +1 -0
  52. package/assets/esri/core/workers/chunks/4c5200e22b8a723f53f9.js +1 -0
  53. package/assets/esri/core/workers/chunks/{2bcb7e43578124538c3c.js → 4d672110aee304692f60.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{fb12d3c63fcac8391e06.js → 4eaa93859ceec1b38530.js} +1 -1
  55. package/assets/esri/core/workers/chunks/4f36596280142be1c666.js +1 -0
  56. package/assets/esri/core/workers/chunks/50e6e43ea98cb0d05d91.js +1 -0
  57. package/assets/esri/core/workers/chunks/{8e374ce47256a567ae11.js → 519745cf844c76452a46.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{3b14ed3184743df336a6.js → 53d80202b5f43542d45b.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{345510a95e893fa8040a.js → 540a3685e614bb006744.js} +1 -1
  60. package/assets/esri/core/workers/chunks/54524cc4328f31d8c25d.js +1 -0
  61. package/assets/esri/core/workers/chunks/5515005e8893bd551aaf.js +1 -0
  62. package/assets/esri/core/workers/chunks/{eee1fd629619021ea279.js → 56a6c7abfb4d88ea1bb5.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{24729603dcdbd95fd01e.js → 578904043e873424904c.js} +1 -1
  64. package/assets/esri/core/workers/chunks/58d10928959ae1e2e8d9.js +1 -0
  65. package/assets/esri/core/workers/chunks/59f0a2bd40b033ce77e4.js +1 -0
  66. package/assets/esri/core/workers/chunks/5a67bd724aa7fcdebe16.js +1 -0
  67. package/assets/esri/core/workers/chunks/{087bd698b80ca0cea71e.js → 5aadfd11df6618883c5d.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{1f888f026b004447772c.js → 5c9a398e659ecd427fb5.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{e421dee5d8b030e79ffb.js → 5d50a030bf9f4e94f69d.js} +1 -1
  70. package/assets/esri/core/workers/chunks/6065caa7981cef255277.js +1 -0
  71. package/assets/esri/core/workers/chunks/61190c833791f0833a39.js +1 -0
  72. package/assets/esri/core/workers/chunks/61312d3b5477ed9d87d9.js +2 -0
  73. package/assets/esri/core/workers/chunks/61f230e50787abbfc8ba.js +1 -0
  74. package/assets/esri/core/workers/chunks/6270acb7545be2c5126f.js +1 -0
  75. package/assets/esri/core/workers/chunks/{f3bbebedad51f776bb98.js → 62992c3d98c20f611b7b.js} +1 -1
  76. package/assets/esri/core/workers/chunks/{ac87be2210f868524996.js → 629f60ee49e0dcfb7165.js} +1 -1
  77. package/assets/esri/core/workers/chunks/645d5db85f84b1f19b59.js +1 -0
  78. package/assets/esri/core/workers/chunks/{913fb883455aeac8582b.js → 694216224d5fd3a8956d.js} +1 -1
  79. package/assets/esri/core/workers/chunks/6c372d85b5783dd2a793.js +1 -0
  80. package/assets/esri/core/workers/chunks/{702b2381acf4d1f90094.js → 6f08c8a1e8e3ffd0a96a.js} +1 -1
  81. package/assets/esri/core/workers/chunks/6f4ee60e89d154e7b1c4.js +1 -0
  82. package/assets/esri/core/workers/chunks/{c29df43817278f674707.js → 7028671ffdaafe2725bc.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{40693ee558a1eb1e93f4.js → 70c371c9f133ab9f7925.js} +1 -1
  84. package/assets/esri/core/workers/chunks/7230d74ef720431cc75e.js +1 -0
  85. package/assets/esri/core/workers/chunks/73a8a3baf0fed803ef4f.js +1 -0
  86. package/assets/esri/core/workers/chunks/74cd17aca5f7e0caac90.js +1 -0
  87. package/assets/esri/core/workers/chunks/{4d7a3b3aaf876da0891b.js → 76e6d894c33221369895.js} +1 -1
  88. package/assets/esri/core/workers/chunks/7833a82d5bac2aed565e.js +1 -0
  89. package/assets/esri/core/workers/chunks/7a05f5b0848dd11d2f4f.js +1 -0
  90. package/assets/esri/core/workers/chunks/{4c82f5f23004f905a18f.js → 7b605ed92e65083da35f.js} +1 -1
  91. package/assets/esri/core/workers/chunks/7eb94fc75926bc739233.js +1 -0
  92. package/assets/esri/core/workers/chunks/{67ebde34377f98d17cda.js → 8006ffa263fb8016afdb.js} +1 -1
  93. package/assets/esri/core/workers/chunks/809349086117f199b7a5.js +1 -0
  94. package/assets/esri/core/workers/chunks/82da6d98bd4980a3d454.js +1 -0
  95. package/assets/esri/core/workers/chunks/82e62a54b350e7a325f7.js +1 -0
  96. package/assets/esri/core/workers/chunks/836c458a7eb96391cfda.js +1 -0
  97. package/assets/esri/core/workers/chunks/851a5a0262dc8dcb67eb.js +1 -0
  98. package/assets/esri/core/workers/chunks/856dba96332509fb1d7a.js +2 -0
  99. package/assets/esri/core/workers/chunks/{d7b6985984071e78c764.js → 86035e46777ed896c658.js} +1 -1
  100. package/assets/esri/core/workers/chunks/88d6a7ebded4d359deb0.js +1 -0
  101. package/assets/esri/core/workers/chunks/{38660a8cc3623c854d88.js → 89df303abcbc0167e4d2.js} +1 -1
  102. package/assets/esri/core/workers/chunks/8cfe817299eb16cb2664.js +1 -0
  103. package/assets/esri/core/workers/chunks/8d16d53643dd8d489c25.js +1 -0
  104. package/assets/esri/core/workers/chunks/{619aa1381296172ff47b.js → 8e19b2ce9868a9a08da0.js} +1 -1
  105. package/assets/esri/core/workers/chunks/8ea28a4b1afe8bb2d313.js +1 -0
  106. package/assets/esri/core/workers/chunks/8fff4a41a54d39db470a.js +1 -0
  107. package/assets/esri/core/workers/chunks/{fe71a0604f0928113419.js → 958e161634b5bfd50625.js} +1 -1
  108. package/assets/esri/core/workers/chunks/95b9eaf7a49eeb17e62f.js +1 -0
  109. package/assets/esri/core/workers/chunks/95ff342e5c29bf91a765.js +1 -0
  110. package/assets/esri/core/workers/chunks/97162bbbedb02e42d0b8.js +1 -0
  111. package/assets/esri/core/workers/chunks/973440553c9e058b0132.js +1 -0
  112. package/assets/esri/core/workers/chunks/{680dd7b7638465eb33de.js → 98739b6e7904045edbab.js} +1 -1
  113. package/assets/esri/core/workers/chunks/9a5894e8ebdf0e97b98f.js +1 -0
  114. package/assets/esri/core/workers/chunks/9aa41d098eeda01ded3a.js +1 -0
  115. package/assets/esri/core/workers/chunks/9bd4cda90daf90189bfc.js +1 -0
  116. package/assets/esri/core/workers/chunks/{315031323e11a18154e3.js → 9c04233d18a9585b5bfe.js} +1 -1
  117. package/assets/esri/core/workers/chunks/9c17bfbfc347ac289b6e.js +1 -0
  118. package/assets/esri/core/workers/chunks/9c7afe90495766bba37f.js +1 -0
  119. package/assets/esri/core/workers/chunks/{69b9a327f23e052fced7.js → 9d5d7289a9e23efc7f73.js} +1 -1
  120. package/assets/esri/core/workers/chunks/9e49a6ce4a133476092f.js +1 -0
  121. package/assets/esri/core/workers/chunks/9e840a71906c4deef776.js +1 -0
  122. package/assets/esri/core/workers/chunks/a1bf2111fee455b16e6a.js +29 -0
  123. package/assets/esri/core/workers/chunks/{910c93bbbf8113a4a51f.js → a2a231a671ff578b7b01.js} +1 -1
  124. package/assets/esri/core/workers/chunks/{e9e4b27ba06a29e6340c.js → a3cbd3e983e21f40b253.js} +1 -1
  125. package/assets/esri/core/workers/chunks/{16929524565a677db4dc.js → a406a41a2f117247f1ef.js} +1 -1
  126. package/assets/esri/core/workers/chunks/a4b63162615a485b08dc.js +1 -0
  127. package/assets/esri/core/workers/chunks/a9e944f28bd573c8230d.js +1 -0
  128. package/assets/esri/core/workers/chunks/{6c982779d6d47ec99899.js → b0a9a770b735440846cd.js} +1 -1
  129. package/assets/esri/core/workers/chunks/b2d6fd436981c890152f.js +1 -0
  130. package/assets/esri/core/workers/chunks/b3034fbcbe77ef9e7c20.js +1 -0
  131. package/assets/esri/core/workers/chunks/b3081c0b037abc49d09b.js +1 -0
  132. package/assets/esri/core/workers/chunks/b4b4fe06364bea9b0750.js +1 -0
  133. package/assets/esri/core/workers/chunks/b661aae7e3ce955a783e.js +1 -0
  134. package/assets/esri/core/workers/chunks/{75fc0b1db8e2e3fd2458.js → b8548eb7680abeaf3cd1.js} +1 -1
  135. package/assets/esri/core/workers/chunks/b9db8d059c2ea39518e7.js +1 -0
  136. package/assets/esri/core/workers/chunks/ba8777844fef6ed3ac2b.js +1 -0
  137. package/assets/esri/core/workers/chunks/ba99a650ea64f5024185.js +1 -0
  138. package/assets/esri/core/workers/chunks/bbfd2b4af8e498b61af9.js +1 -0
  139. package/assets/esri/core/workers/chunks/{24006cea112d657f053a.js → bc30c0de6dcb106b24a1.js} +1 -1
  140. package/assets/esri/core/workers/chunks/bf5831a7c12b1e42c669.js +1 -0
  141. package/assets/esri/core/workers/chunks/bfac0f47e81055585002.js +1 -0
  142. package/assets/esri/core/workers/chunks/bfd532e33800755b1f48.js +1 -0
  143. package/assets/esri/core/workers/chunks/c30b6bbabd05e4976fba.js +1 -0
  144. package/assets/esri/core/workers/chunks/c336f300fe6100e36592.js +1 -0
  145. package/assets/esri/core/workers/chunks/c5853fbb975e169c44c5.js +1 -0
  146. package/assets/esri/core/workers/chunks/c71368cd64f240da1743.js +1 -0
  147. package/assets/esri/core/workers/chunks/c899457f19b749516275.js +1 -0
  148. package/assets/esri/core/workers/chunks/c9653a15324ca53d50e7.js +1 -0
  149. package/assets/esri/core/workers/chunks/{9937920e7993814d0b2c.js → ca695ab000a1e8765d69.js} +1 -1
  150. package/assets/esri/core/workers/chunks/{b792857a178da2dd77d6.js → cc419e1c5c1dee7ec972.js} +1 -1
  151. package/assets/esri/core/workers/chunks/{2ce845c990bb4d701362.js → cc817c9d3f8e8f8c56e4.js} +1 -1
  152. package/assets/esri/core/workers/chunks/ce81f29134ab3971bd54.js +1 -0
  153. package/assets/esri/core/workers/chunks/cf6799fd008d0d7016f7.js +1 -0
  154. package/assets/esri/core/workers/chunks/cfcb258b7e464f219434.js +1 -0
  155. package/assets/esri/core/workers/chunks/d0aaa4ad7f76f577f117.js +1 -0
  156. package/assets/esri/core/workers/chunks/{ac59218847e5ef4c4160.js → d0e00f0bb7b9435e170d.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{33e293836f5d28dc5d62.js → d13eeff678972a245d5d.js} +1 -1
  158. package/assets/esri/core/workers/chunks/d1aa87d846a884492b47.js +1 -0
  159. package/assets/esri/core/workers/chunks/{7529c0fcfb83998e63db.js → d1baf17f3219f70106f7.js} +1 -1
  160. package/assets/esri/core/workers/chunks/{2b3f76e03b7a28fc4453.js → d2448e26e19005ef9ab2.js} +1 -1
  161. package/assets/esri/core/workers/chunks/{0179949495c87466b428.js → d3a183d90f1ccc8da2bb.js} +10 -10
  162. package/assets/esri/core/workers/chunks/d433bfa2abf2ca8239ba.js +1 -0
  163. package/assets/esri/core/workers/chunks/d4b78d11a5ce4320a29a.js +1 -0
  164. package/assets/esri/core/workers/chunks/d4cc8eef64b8c84217a5.js +1 -0
  165. package/assets/esri/core/workers/chunks/d62a5a33a24418a3e283.js +1 -0
  166. package/assets/esri/core/workers/chunks/{2740f755c3a322cbd477.js → d672c2a1c8eddd235171.js} +1 -1
  167. package/assets/esri/core/workers/chunks/d845f2115848b56c0369.js +1 -0
  168. package/assets/esri/core/workers/chunks/d8b38c196b06e801c4e6.js +1 -0
  169. package/assets/esri/core/workers/chunks/da6134c7883531f21afe.js +1 -0
  170. package/assets/esri/core/workers/chunks/dbc36b85413fae52b56d.js +1 -0
  171. package/assets/esri/core/workers/chunks/{cada52d719c35d40958a.js → dbca32f0e0c2c2e2ccf3.js} +1 -1
  172. package/assets/esri/core/workers/chunks/dcec7fc66385c12ecdf0.js +1 -0
  173. package/assets/esri/core/workers/chunks/dd9af4ddefa0b998aa4b.js +1 -0
  174. package/assets/esri/core/workers/chunks/e2473de49189d93714d3.js +1 -0
  175. package/assets/esri/core/workers/chunks/e2ceddd6bcdabec77cc7.js +1 -0
  176. package/assets/esri/core/workers/chunks/e3eab61815ef1c521a6c.js +1 -0
  177. package/assets/esri/core/workers/chunks/e63f94c8097555b266ad.js +2 -0
  178. package/assets/esri/core/workers/chunks/e72fa08b0bd324514a0e.js +1 -0
  179. package/assets/esri/core/workers/chunks/e8a9a686a3c23afc9d1f.js +1 -0
  180. package/assets/esri/core/workers/chunks/eca0736953a20cfc64ad.js +2 -0
  181. package/assets/esri/core/workers/chunks/efaa455beeefbf97a4c5.js +1 -0
  182. package/assets/esri/core/workers/chunks/efd176c5ac35f313e7a2.js +1 -0
  183. package/assets/esri/core/workers/chunks/f16b6cd6b325eb600e82.js +1 -0
  184. package/assets/esri/core/workers/chunks/f1d0208c6b09c1c4b248.js +1 -0
  185. package/assets/esri/core/workers/chunks/f1fa377e8fa53b02876f.js +1 -0
  186. package/assets/esri/core/workers/chunks/f2d99f693a590f384315.js +1 -0
  187. package/assets/esri/core/workers/chunks/f57e5e7d0748d9a370f7.js +1 -0
  188. package/assets/esri/core/workers/chunks/f71a3fe5f30aa782193a.js +1 -0
  189. package/assets/esri/core/workers/chunks/{b9bdb1f05e904c3655e4.js → f834aa732c3f06525089.js} +1 -1
  190. package/assets/esri/core/workers/chunks/f9e9e79f78be32e5d475.js +1 -0
  191. package/assets/esri/core/workers/chunks/fa7a6906598d1002abfd.js +1 -0
  192. package/assets/esri/core/workers/chunks/{ebb722118a220c92efc3.js → fae32c9ce811934b6a64.js} +1 -1
  193. package/assets/esri/core/workers/chunks/fb86b334bfca4670dcfa.js +1 -0
  194. package/assets/esri/core/workers/chunks/fbb0b2f4ec0ba458ddeb.js +1 -0
  195. package/assets/esri/core/workers/chunks/{2d1ae18a28491b00091d.js → fbcc346fa603d6edac98.js} +1 -1
  196. package/assets/esri/core/workers/chunks/{1ef28d4457c8c943ad19.js → fbede01a363895b6381f.js} +1 -1
  197. package/assets/esri/core/workers/chunks/{073f1d5f89875c6aefb1.js → fc1aeea22f8c9d63864a.js} +1 -1
  198. package/assets/esri/core/workers/chunks/fc2234e0d202631f3abf.js +2 -0
  199. package/assets/esri/core/workers/chunks/fcb943c3b31b1bf62e65.js +2 -0
  200. package/assets/esri/core/workers/chunks/{8a3289e15e0ce92e3813.js → fe335441ea233cb0fad5.js} +1 -1
  201. package/assets/esri/core/workers/chunks/ffe2cbfea38b92a231d6.js +1 -0
  202. package/chunks/Bufferer-CclWhXVb.js +1 -1
  203. package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
  204. package/chunks/EmissionComposite.glsl.js +1 -1
  205. package/chunks/Envelope.js +1 -1
  206. package/chunks/GaussianSplat.glsl.js +8 -8
  207. package/chunks/GaussianSplatDepth.glsl.js +4 -4
  208. package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
  209. package/chunks/GeodeticUtils.js +1 -1
  210. package/chunks/Geometry.js +1 -1
  211. package/chunks/MultiPathImpl.js +1 -1
  212. package/chunks/OperatorCrosses.js +1 -1
  213. package/chunks/OperatorCut.js +1 -1
  214. package/chunks/OperatorGeodesicBuffer.js +1 -1
  215. package/chunks/OperatorGeodeticArea.js +1 -1
  216. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  217. package/chunks/OperatorGeodeticLength.js +1 -1
  218. package/chunks/OperatorGraphicBuffer.js +1 -1
  219. package/chunks/OperatorIntegrate.js +1 -1
  220. package/chunks/OperatorIntersects.js +1 -1
  221. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  222. package/chunks/OperatorOverlaps.js +1 -1
  223. package/chunks/OperatorProject.js +1 -1
  224. package/chunks/OperatorProximity.js +1 -1
  225. package/chunks/OperatorProximityGeodesic.js +1 -1
  226. package/chunks/OperatorShapePreservingLength.js +1 -1
  227. package/chunks/OperatorShapePreservingProject.js +1 -1
  228. package/chunks/OperatorSimplifyOGC.js +1 -1
  229. package/chunks/OperatorTouches.js +1 -1
  230. package/chunks/OperatorWithin.js +1 -1
  231. package/chunks/Point2D.js +1 -1
  232. package/chunks/ProjectionTransformation.js +1 -1
  233. package/chunks/SideCalculator2D-DX0718xq.js +1 -1
  234. package/chunks/SpatialReference.js +1 -1
  235. package/chunks/UnitFactory.js +2 -0
  236. package/chunks/containsOperator.js +1 -1
  237. package/chunks/disjointOperator.js +1 -1
  238. package/chunks/equalsOperator.js +1 -1
  239. package/chunks/relateOperator.js +1 -1
  240. package/config.js +1 -1
  241. package/geometry/operators/containsOperator.js +1 -1
  242. package/geometry/operators/disjointOperator.js +1 -1
  243. package/geometry/operators/gx/geodeticUtils.js +1 -1
  244. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  245. package/geometry/operators/gx/operatorBuffer.js +1 -1
  246. package/geometry/operators/gx/operatorDifference.js +1 -1
  247. package/geometry/operators/gx/operatorGeodesicBuffer.js +1 -1
  248. package/geometry/operators/gx/operatorGeodeticArea.js +1 -1
  249. package/geometry/operators/gx/operatorGeodeticDensify.js +1 -1
  250. package/geometry/operators/gx/operatorGeodeticDistance.js +1 -1
  251. package/geometry/operators/gx/operatorGeodeticLength.js +1 -1
  252. package/geometry/operators/gx/operatorIntersection.js +1 -1
  253. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  254. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  255. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  256. package/geometry/operators/gx/operatorProject.js +1 -1
  257. package/geometry/operators/gx/operatorProximityGeodesic.js +1 -1
  258. package/geometry/operators/gx/operatorShapePreservingProject.js +1 -1
  259. package/geometry/operators/gx/operatorSimplify.js +1 -1
  260. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  261. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  262. package/geometry/operators/gx/operatorUnion.js +1 -1
  263. package/geometry/operators/json/containsOperator.js +1 -1
  264. package/geometry/operators/json/disjointOperator.js +1 -1
  265. package/geometry/operators/projectOperator.js +1 -1
  266. package/geometry/operators/reshapeOperator.js +1 -1
  267. package/geometry/operators/support/geographicTransformationUtils.js +1 -1
  268. package/geometry/operators/support/initNoPeFactory.js +1 -1
  269. package/geometry/operators/support/jsonConverter.js +1 -1
  270. package/geometry/operators/support/projectionTransformation.js +1 -1
  271. package/geometry/projection/projectionUtilsState.js +2 -0
  272. package/geometry/projectionUtils.js +1 -1
  273. package/geometry/support/geometryUtils.js +1 -1
  274. package/kernel.js +1 -1
  275. package/layers/raster/datasets/MRFRaster.js +1 -1
  276. package/layers/raster/formats/JpgPlus.js +1 -1
  277. package/layers/raster/formats/RasterCodec.js +1 -1
  278. package/layers/raster/types.d.ts +65 -0
  279. package/package.json +2 -2
  280. package/support/revision.js +1 -1
  281. package/symbols/cim/cimAnalyzer.js +1 -1
  282. package/symbols/cim/effects/EffectRadial.js +1 -1
  283. package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
  284. package/views/2d/engine/webgl/mesh/templates/segmentUtils.js +1 -1
  285. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js +1 -1
  286. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js +1 -1
  287. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js +1 -1
  288. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  289. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  290. package/views/3d/GroundView3D.js +1 -1
  291. package/views/3d/layers/I3SMeshView3D.js +1 -1
  292. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  293. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  294. package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
  295. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  296. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  297. package/views/3d/state/controllers/RotateController.js +1 -1
  298. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  299. package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
  300. package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
  301. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  302. package/views/3d/support/QualityProfile.js +1 -1
  303. package/views/3d/support/QualitySettings.js +1 -1
  304. package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
  305. package/views/3d/terrain/PlanarPatch.js +1 -1
  306. package/views/3d/terrain/Tile.js +1 -1
  307. package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
  308. package/views/3d/webgl-engine/lib/EmissionComposite.glsl.js +1 -1
  309. package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
  310. package/views/3d/webgl-engine/lib/EmissionCompositeTechnique.js +1 -1
  311. package/views/3d/webgl-engine/lib/GaussianSplatRenderUtils.js +1 -1
  312. package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
  313. package/views/3d/webgl-engine/shaders/GaussianSplatDepthPolicy.js +1 -1
  314. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +50 -22
  315. package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
  316. package/views/support/GroundElevationSampler.js +1 -1
  317. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  318. package/widgets/BatchAttributeForm/expressions/expressionUtils.js +1 -1
  319. package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
  320. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  321. package/widgets/OrientedImageryViewer/components/ImageLocationViewModel.js +1 -1
  322. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +1 -1
  323. package/widgets/OrientedImageryViewer.js +1 -1
  324. package/assets/esri/core/workers/chunks/04105d83556409489835.js +0 -1
  325. package/assets/esri/core/workers/chunks/05b6b2c0b76afb100e33.js +0 -1
  326. package/assets/esri/core/workers/chunks/0909816f13d25cacf250.js +0 -1
  327. package/assets/esri/core/workers/chunks/0933203eee15ea50e123.js +0 -1
  328. package/assets/esri/core/workers/chunks/0b18de5147d76b68896f.js +0 -1
  329. package/assets/esri/core/workers/chunks/0d9d33f29124d464a4cb.js +0 -1
  330. package/assets/esri/core/workers/chunks/0d9fe49812554e7d7ba7.js +0 -1
  331. package/assets/esri/core/workers/chunks/0da5b27b070ab780f8b3.js +0 -1
  332. package/assets/esri/core/workers/chunks/0e333aced8b23aa49a0e.js +0 -1
  333. package/assets/esri/core/workers/chunks/0eaa8265a4cd64297545.js +0 -1
  334. package/assets/esri/core/workers/chunks/1142f8e9c80207d6bdae.js +0 -1
  335. package/assets/esri/core/workers/chunks/118ccfa2d685764752ee.js +0 -1
  336. package/assets/esri/core/workers/chunks/12a64eca4c571926d9d4.js +0 -1
  337. package/assets/esri/core/workers/chunks/1642fa1263d8f4a45101.js +0 -1
  338. package/assets/esri/core/workers/chunks/16a04fc184728d66e6e1.js +0 -1
  339. package/assets/esri/core/workers/chunks/18e0e993c0c39c962e61.js +0 -1
  340. package/assets/esri/core/workers/chunks/19233d0016e5b154c5ce.js +0 -1
  341. package/assets/esri/core/workers/chunks/1a467da4c0b33f655199.js +0 -1
  342. package/assets/esri/core/workers/chunks/1ac8a7a129ba33e05a24.js +0 -1
  343. package/assets/esri/core/workers/chunks/1d92d53186debd52e753.js +0 -1
  344. package/assets/esri/core/workers/chunks/1dba93abe84d30f05d8d.js +0 -1
  345. package/assets/esri/core/workers/chunks/2033e6d42453e4e67048.js +0 -1
  346. package/assets/esri/core/workers/chunks/20b54e7872d967f3be32.js +0 -1
  347. package/assets/esri/core/workers/chunks/2501d9459f6d14c797e5.js +0 -1
  348. package/assets/esri/core/workers/chunks/253c231b5a52f1d2d3a5.js +0 -1
  349. package/assets/esri/core/workers/chunks/257f1e8316877f611e11.js +0 -1
  350. package/assets/esri/core/workers/chunks/28924f31f5ba8ebdc60a.js +0 -1
  351. package/assets/esri/core/workers/chunks/28b09fe50b855a1d8a3f.js +0 -1
  352. package/assets/esri/core/workers/chunks/2b0558c1716425974563.js +0 -2
  353. package/assets/esri/core/workers/chunks/2e7c830b5b1fe406169f.js +0 -1
  354. package/assets/esri/core/workers/chunks/2f4ed8a63d57636a4ebe.js +0 -1
  355. package/assets/esri/core/workers/chunks/393f79843d5a78c1cc37.js +0 -1
  356. package/assets/esri/core/workers/chunks/3958d92c737b3a2a3bc2.js +0 -1
  357. package/assets/esri/core/workers/chunks/3978f00a03e97645b276.js +0 -1
  358. package/assets/esri/core/workers/chunks/3b5c5356353f1a2303a0.js +0 -1
  359. package/assets/esri/core/workers/chunks/40e48b720d89cd067892.js +0 -1
  360. package/assets/esri/core/workers/chunks/436d51b9f1b1b5abc4bc.js +0 -1
  361. package/assets/esri/core/workers/chunks/44a786aba84918f2b247.js +0 -1
  362. package/assets/esri/core/workers/chunks/463747a822499dd933ef.js +0 -1
  363. package/assets/esri/core/workers/chunks/484b251fbcbffcb58323.js +0 -1
  364. package/assets/esri/core/workers/chunks/495f90fe3d0ad32bb82d.js +0 -1
  365. package/assets/esri/core/workers/chunks/49a3888bf9e2481642ac.js +0 -1
  366. package/assets/esri/core/workers/chunks/4ce57dd39075e8fb357c.js +0 -1
  367. package/assets/esri/core/workers/chunks/5459ba8fdeb2370bb52b.js +0 -1
  368. package/assets/esri/core/workers/chunks/55924fb0de05e727f5e3.js +0 -1
  369. package/assets/esri/core/workers/chunks/55dda957c79fb285185f.js +0 -1
  370. package/assets/esri/core/workers/chunks/56e6d8c4a9ed893ce951.js +0 -1
  371. package/assets/esri/core/workers/chunks/57159bcac86d660dcceb.js +0 -1
  372. package/assets/esri/core/workers/chunks/58026fc30d8a0ded4102.js +0 -1
  373. package/assets/esri/core/workers/chunks/5eb29f0068f1c839d05e.js +0 -1
  374. package/assets/esri/core/workers/chunks/5f553da48d0ccbbfcd3c.js +0 -2
  375. package/assets/esri/core/workers/chunks/5fb76575575fe8cfb1f0.js +0 -1
  376. package/assets/esri/core/workers/chunks/6072c63a5da4366e9942.js +0 -1
  377. package/assets/esri/core/workers/chunks/626a715fdec93e188e0c.js +0 -1
  378. package/assets/esri/core/workers/chunks/6525c925bb91facb3575.js +0 -1
  379. package/assets/esri/core/workers/chunks/6529b5cc3ac6baa29fff.js +0 -2
  380. package/assets/esri/core/workers/chunks/65d1e338612e59063eba.js +0 -1
  381. package/assets/esri/core/workers/chunks/66e60351aacbd162775f.js +0 -1
  382. package/assets/esri/core/workers/chunks/694371f51c52a7a94da4.js +0 -1
  383. package/assets/esri/core/workers/chunks/69b0dcd7bcd8ec42e2c3.js +0 -1
  384. package/assets/esri/core/workers/chunks/7260e63252fa5452dc22.js +0 -1
  385. package/assets/esri/core/workers/chunks/72eb0ac55026a4f5d6a7.js +0 -1
  386. package/assets/esri/core/workers/chunks/79429c8be5da85713200.js +0 -1
  387. package/assets/esri/core/workers/chunks/79c0a966f7d11d3c217f.js +0 -1
  388. package/assets/esri/core/workers/chunks/7b470d6ad182548b9e95.js +0 -1
  389. package/assets/esri/core/workers/chunks/7b862a074816c099b9ff.js +0 -1
  390. package/assets/esri/core/workers/chunks/7baa363b3b0a442a63d2.js +0 -1
  391. package/assets/esri/core/workers/chunks/7d8eb4dbea1916320f74.js +0 -1
  392. package/assets/esri/core/workers/chunks/7ddf9b2718dd047f15e6.js +0 -1
  393. package/assets/esri/core/workers/chunks/835af7b4fd92cb4e7af0.js +0 -1
  394. package/assets/esri/core/workers/chunks/8566449c39eba55147f5.js +0 -1
  395. package/assets/esri/core/workers/chunks/864691186c449ca2c3db.js +0 -1
  396. package/assets/esri/core/workers/chunks/88d5541679e77117bf03.js +0 -1
  397. package/assets/esri/core/workers/chunks/88fd698b940dadcc6dc5.js +0 -1
  398. package/assets/esri/core/workers/chunks/894ebc64b698e5d7604b.js +0 -1
  399. package/assets/esri/core/workers/chunks/8be707044d992ef5f1d8.js +0 -1
  400. package/assets/esri/core/workers/chunks/8c1bddc88cc5f4251021.js +0 -1
  401. package/assets/esri/core/workers/chunks/8eecc6df6511c8830f5d.js +0 -1
  402. package/assets/esri/core/workers/chunks/8f0d4aec8bd3cbfefc40.js +0 -1
  403. package/assets/esri/core/workers/chunks/8fea514aada1195c8f30.js +0 -1
  404. package/assets/esri/core/workers/chunks/94bf7f0da6ad3f7ea277.js +0 -1
  405. package/assets/esri/core/workers/chunks/987594539981483a7c5e.js +0 -1
  406. package/assets/esri/core/workers/chunks/995a433936fc90d41634.js +0 -2
  407. package/assets/esri/core/workers/chunks/9bbff8237540409610b3.js +0 -1
  408. package/assets/esri/core/workers/chunks/9e1392a0c608a13ab036.js +0 -1
  409. package/assets/esri/core/workers/chunks/9f1211d2267fb7673c4d.js +0 -1
  410. package/assets/esri/core/workers/chunks/a486d99f9879f94151ba.js +0 -1
  411. package/assets/esri/core/workers/chunks/a50421fe79f264ae3619.js +0 -1
  412. package/assets/esri/core/workers/chunks/a5c115fc53edb52ce1de.js +0 -1
  413. package/assets/esri/core/workers/chunks/a739e617fc461014ad1f.js +0 -1
  414. package/assets/esri/core/workers/chunks/aa21031c8f12ca438eaa.js +0 -1
  415. package/assets/esri/core/workers/chunks/ad27689b231e282b7620.js +0 -1
  416. package/assets/esri/core/workers/chunks/aed16c3e26652960ad3f.js +0 -1
  417. package/assets/esri/core/workers/chunks/af6e8c961fd768fa7be3.js +0 -1
  418. package/assets/esri/core/workers/chunks/b3a1a93c6dc9247cb048.js +0 -1
  419. package/assets/esri/core/workers/chunks/b4abf82b8ac974a55ae1.js +0 -1
  420. package/assets/esri/core/workers/chunks/b8cd81d8fcc78d272130.js +0 -1
  421. package/assets/esri/core/workers/chunks/b9a1046ca2cd0cca5da5.js +0 -1
  422. package/assets/esri/core/workers/chunks/b9d6f89f9b8e9d1bc787.js +0 -1
  423. package/assets/esri/core/workers/chunks/bab5f4b2424b487b87ac.js +0 -1
  424. package/assets/esri/core/workers/chunks/c02b3b8b71205f6ce290.js +0 -1
  425. package/assets/esri/core/workers/chunks/c17dda6fadb8bfad0d51.js +0 -1
  426. package/assets/esri/core/workers/chunks/c21212c356f65244e34e.js +0 -1
  427. package/assets/esri/core/workers/chunks/c374e5d5980db74c4aca.js +0 -1
  428. package/assets/esri/core/workers/chunks/c6bf17b5ff6ec4b980a1.js +0 -1
  429. package/assets/esri/core/workers/chunks/c99dcc17fbd7acd2ad2e.js +0 -1
  430. package/assets/esri/core/workers/chunks/ce481eeb27ea9c1782ae.js +0 -1
  431. package/assets/esri/core/workers/chunks/cec1c87eb3749276ced4.js +0 -1
  432. package/assets/esri/core/workers/chunks/cef02ed3942c010da2e8.js +0 -29
  433. package/assets/esri/core/workers/chunks/cfdbc48f58433a3d5fc3.js +0 -1
  434. package/assets/esri/core/workers/chunks/d456520e4b119a2816b6.js +0 -1
  435. package/assets/esri/core/workers/chunks/d8da31bfe2bc4174e5aa.js +0 -1
  436. package/assets/esri/core/workers/chunks/da1c9257793c2817f40f.js +0 -1
  437. package/assets/esri/core/workers/chunks/dc0c3109b7558b4fe016.js +0 -1
  438. package/assets/esri/core/workers/chunks/ddd8f6154e265dbb6f9f.js +0 -1
  439. package/assets/esri/core/workers/chunks/de601f0d5a2a282d2efd.js +0 -1
  440. package/assets/esri/core/workers/chunks/e227eb44cd139fe2bc1b.js +0 -1
  441. package/assets/esri/core/workers/chunks/e2ddfc96ddba92302e0c.js +0 -1
  442. package/assets/esri/core/workers/chunks/e61ab8ef30bbe788b9d7.js +0 -1
  443. package/assets/esri/core/workers/chunks/e89e6eea380ca2c13b64.js +0 -1
  444. package/assets/esri/core/workers/chunks/e9d352d030dcad1619a6.js +0 -1
  445. package/assets/esri/core/workers/chunks/eb95464bd017fb839510.js +0 -1
  446. package/assets/esri/core/workers/chunks/ed4ac5568dc2815b066d.js +0 -1
  447. package/assets/esri/core/workers/chunks/ed564358cc7b3ee463a3.js +0 -1
  448. package/assets/esri/core/workers/chunks/ee63c693f2539f3bfa17.js +0 -2
  449. package/assets/esri/core/workers/chunks/ef2e0a014c982d9c7ca4.js +0 -1
  450. package/assets/esri/core/workers/chunks/ef9489d1dccb817460bb.js +0 -2
  451. package/assets/esri/core/workers/chunks/f086c6d229fb34a9d7f9.js +0 -1
  452. package/assets/esri/core/workers/chunks/f35e749bb5be39880cbe.js +0 -1
  453. package/assets/esri/core/workers/chunks/f4bc563c71c478d3912f.js +0 -1
  454. package/assets/esri/core/workers/chunks/f6150b51a9430691a040.js +0 -1
  455. package/assets/esri/core/workers/chunks/f6f7d885b4d6080e3f58.js +0 -1
  456. package/assets/esri/core/workers/chunks/f95870bb4d8e4e13e69e.js +0 -1
  457. package/assets/esri/core/workers/chunks/fa59f10ed0f182a2a7f3.js +0 -1
  458. package/assets/esri/core/workers/chunks/fc9065d0cd6285fe0f0d.js +0 -1
  459. /package/assets/esri/core/workers/chunks/{ee63c693f2539f3bfa17.js.LICENSE.txt → 61312d3b5477ed9d87d9.js.LICENSE.txt} +0 -0
  460. /package/assets/esri/core/workers/chunks/{6529b5cc3ac6baa29fff.js.LICENSE.txt → 856dba96332509fb1d7a.js.LICENSE.txt} +0 -0
  461. /package/assets/esri/core/workers/chunks/{995a433936fc90d41634.js.LICENSE.txt → e63f94c8097555b266ad.js.LICENSE.txt} +0 -0
  462. /package/assets/esri/core/workers/chunks/{5f553da48d0ccbbfcd3c.js.LICENSE.txt → eca0736953a20cfc64ad.js.LICENSE.txt} +0 -0
  463. /package/assets/esri/core/workers/chunks/{ef9489d1dccb817460bb.js.LICENSE.txt → fc2234e0d202631f3abf.js.LICENSE.txt} +0 -0
  464. /package/assets/esri/core/workers/chunks/{2b0558c1716425974563.js.LICENSE.txt → fcb943c3b31b1bf62e65.js.LICENSE.txt} +0 -0
@@ -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 r}from"../../core/lang.js";import i from"../../core/Logger.js";import{pt2px as o,px2pt as a}from"../../core/screenUtils.js";import{numericHash as s}from"../../core/string.js";import{checkForAnimations as l,globalRotation as n,getAnimationParams as p,handleAbsoluteAnchor as m,handleMarker as c,handleRelativeAnchor as f,getFrameTranslation as y,translate as d,getStaticParam as h,shouldUseAnimatedPath as u}from"./animationUtils.js";import{forEachSymbolLayer as v,CIMSymbolHelper as O}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as g}from"./constants.js";import{defaultCIMValues as S}from"./defaultCIMValues.js";import{fitVectorMarker as _}from"./fitVectorMarker.js";import{OverrideHelper as M}from"./OverrideHelper.js";import{hasRichTextFormattingTags as C}from"./richTextUtils.js";import{getExtent as k,getSDFMetrics as x,getSDFDimensions as b}from"./SDFHelper.js";import{CIMSymbolUnits as P}from"./types.js";import{colorToArray as z,normalizeAlpha as E,getSize as I,isCIMMarkerStrokePlacement as L,hasStrokeLayer as V,getTintColor as N,getNumericValue as R,normalizePrimitiveOverrideProps as T,getDefaultCIMValue as G,getEnum as A,getFillColor as w,getStrokeColor as F,fromCIMFontDecoration as X,fromCIMFontStyle as j,getStrokeWidth as Y,fromCIMVerticalAlignment as W,fromCIMHorizontalAlignment as D,getTextCasing as U,isValidCIMValue as H,uncapitalize as J}from"./utils.js";import{EffectHelper as B}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as q,randomInsidePolygonTextureSize as K}from"../../views/2d/engine/webgl/definitions.js";const Q=()=>i.getLogger("esri.symbols.cim.cimAnalyzer");function Z(e){const t=e.markerPlacement;return t&&t.angleToLine?1:0}class ${constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,r,i){if(this._cimLayers=i??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(const t of this._primitiveOverrides){const r=t.valueExpressionInfo;if(r)this._setPoMap(t.primitiveName,t.propertyName,r);else if(null!=t.value){let r=t.value;t.propertyName.includes("Color")&&(e(r)&&(r=z(r)),r=E(r)),this._setPoMap(t.primitiveName,t.propertyName,r)}}}return this._analyzeSymbol(t.symbol,r),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){const r=e?.symbolLayers;if(!r)return;for(let l=0;l<r.length;l++){const e=r[l];"CIMVectorMarker"===e.type&&(r[l]=_(e))}const i=e.effects;let o=0;const a=I(e)??0;if("CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=1),le(r,i))return this._analyzeCompositeOutlineFill(r,i,a);let s={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};s=n(s),s=p(this._poMap,e,s);const m="CIMPolygonSymbol"===e.type;let c=r.length;for(;c--;){const l=r[c];if(!l||!1===l.enable)continue;let n;i?.length&&(n=[...i]);const p=l.effects;p?.length&&(i?n.push(...p):n=[...p]);let f=null;if(n){f=[];for(const e of n){const t=M.findEffectOverrides(e,this._primitiveOverrides);t&&f.push(t)}}const y=[];switch(M.findApplicableOverrides(l,this._primitiveOverrides,y),l.type){case"CIMSolidFill":this._analyzeSolidFill(l,f,s,V(r));break;case"CIMPictureFill":this._analyzePictureFill(l,f,s);break;case"CIMHatchFill":this._analyzeHatchFill(l,f,s);break;case"CIMGradientFill":this._analyzeGradientFill(l,f);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,f,m,a,s);break;case"CIMPictureStroke":this._analyzePictureStroke(l,f,m,a,s);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,f,m,a);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(o=Z(l));const r=[],i=l.primitiveName;i&&r.push(i);const n=m&&L(l.markerPlacement);this._analyzeMarker(l,f,null,r,o,a,t,[],s,!1,n);break}default:Q().error("Cannot analyze CIM layer",l.type)}}}_analyzeSolidFill(e,t,r,i){const{primitiveName:o,type:a}=e,s=E(e.color),l=p(this._poMap,e,r);if(!i&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.effect.type)){const r=this._getValueOrOverrideExpression(a,o,"Color",s);return void this._cimLayers.push({type:"outlineFill",name:e.name,colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...g,outlineEffects:t})}this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,o,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:pe(l)})}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=N(e),s=R(e.height,S.CIMPictureFill.height);let l=R(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height),l/=r*(s/t)}const n={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,o)},m=p(this._poMap,e,r);this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,i,"TintColor",a),height:this._getValueOrOverrideExpression(o,i,"Height",s),scaleX:this._getValueOrOverrideExpression(o,i,"ScaleX",l),angle:this._getValueOrOverrideExpression(o,i,"Rotation",R(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:pe(m)})}_analyzeHatchFill(e,t,r){const{primitiveName:i,type:o}=e,a=p(this._poMap,e,r),s=this._analyzeMaterialOverrides(i,["Rotation","OffsetX","OffsetY"]),l=T(s);let n=[255,255,255,1],m=!1;if(e.lineSymbol?.symbolLayers)for(const p of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==p.type)continue;const e=p.primitiveName??i;m||!e||p.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(n=E(p.color),n=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(o,e,"Color",n),m=!0);const t=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(t){let r=null,i=null;"number"==typeof t?r=t:i=t.valueExpressionInfo;let a=l.find(e=>"strokeWidth"===e.propertyName);a?a.propertyName="width":(a={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:i,value:r,defaultValue:G(o,"width")},l.push(a))}}const c={type:"sprite-rasterization-param",resource:e,overrides:l};this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:n,height:this._getValueOrOverrideExpression(o,i,"Separation",R(e.separation,S.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(o,i,"Rotation",R(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!m,animationParams:pe(a)})}_analyzeGradientFill(e,t){const{angle:r,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,gradientType:s,interval:l,primitiveName:n,type:p}=e,m=S.CIMGradientFill,c=e.colorRamp;this._cimLayers.push({type:"gradientFill",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(n,p)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(p,n,"GradientMethod",i??"Linear"),angle:this._getValueOrOverrideExpression(p,n,"Angle",R(r,m.angle)),gradientType:this._getValueOrOverrideExpression(p,n,"GradientType",s??m.gradientType),interval:this._getValueOrOverrideExpression(p,n,"Interval",R(l,"CIMFixedColorRamp"===c.type?c.colors.length:m.interval)),gradientSize:this._getValueOrOverrideExpression(p,n,"GradientSize",R(o,m.gradientSize)),gradientSizeUnits:"Absolute"===a?P.Absolute:"Relative"===a?P.Relative:m.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,r){const i=e.find(e=>"CIMSolidFill"===e.type),o=e.find(e=>"CIMSolidStroke"===e.type);if(null==i||null==o)return;const a=[...t??[],...i.effects??[]].map(e=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),s=[...t??[],...o.effects??[]].map(e=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),l=R(o.width,S.CIMSolidStroke.width),n=A(o.capStyle,S.CIMSolidStroke.capstyle),p=A(o.joinStyle,S.CIMSolidStroke.joinstyle),m=o.miterLimit;this._cimLayers.push({type:"outlineFill",name:i.name,colorLocked:!!i.colorLocked,color:this._getValueOrOverrideExpression(i.type,i.primitiveName,"Color",E(i.color)),effects:a,outlineColorLocked:!!o.colorLocked,outlineColor:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Color",E(o.color)),outlineWidth:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Width",l),cap:this._getValueOrOverrideExpression(o.type,o.primitiveName,"CapStyle",n),join:this._getValueOrOverrideExpression(o.type,o.primitiveName,"JoinStyle",p),miterLimit:m&&this._getValueOrOverrideExpression(o.type,o.primitiveName,"MiterLimit",m),referenceWidth:r,outlineEffects:s})}_analyzeSolidStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=E(e.color),n=R(e.width,S.CIMSolidStroke.width),m=A(e.capStyle,S.CIMSolidStroke.capstyle),c=A(e.joinStyle,S.CIMSolidStroke.joinstyle),f=e.miterLimit;let y,d,h,u,v=[];if(this._analyzePrimitiveOverrides(a,t,null,null)&&(v=this._getPrimitiveMaterialOverrides(a,s)),t&&Array.isArray(t)&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&(y=e.dashTemplate,d=e.scaleDash,h=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const O=void 0!==y?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:y,primitiveName:u},overrides:v}:null,g=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:O,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"Color",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:te(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??y,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",h??0),scaleDash:d,sampleAlphaOnly:!0,animationParams:pe(g)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=N(e),n=R(e.width,S.CIMPictureStroke.width),m=A(e.capStyle,S.CIMPictureStroke.capstyle),c=A(e.joinStyle,S.CIMPictureStroke.joinstyle),f=e.miterLimit,y={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},d=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:y,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"TintColor",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:te(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:pe(d)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:p,type:m}=e,c=S.CIMGradientStroke,f=R(e.width,c.width),y=A(e.capStyle,c.capstyle),d=A(e.joinStyle,c.joinstyle),h=e.miterLimit,u=e.colorRamp;this._cimLayers.push({type:"gradientStroke",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(p,m)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(m,p,"Width",f),cap:this._getValueOrOverrideExpression(m,p,"CapStyle",y),join:this._getValueOrOverrideExpression(m,p,"JoinStyle",d),miterLimit:h&&this._getValueOrOverrideExpression(m,p,"MiterLimit",h),referenceWidth:i,isOutline:r,gradientMethod:this._getValueOrOverrideExpression(m,p,"GradientMethod",o??c.gradientMethod),gradientType:this._getValueOrOverrideExpression(m,p,"GradientType",l??c.gradientType),interval:this._getValueOrOverrideExpression(m,p,"Interval",R(n,"CIMFixedColorRamp"===u.type?u.colors.length:c.interval)),gradientSize:this._getValueOrOverrideExpression(m,p,"GradientSize",R(a,c.gradientSize)),gradientSizeUnits:"Absolute"===s?P.Absolute:"Relative"===s?P.Relative:c.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,n,y=!1,d=!1){y||=!!e.colorLocked;let h=n;if(h=m(e,h),h=c(this._poMap,e,h),h=f(e,h),h=p(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,y,h))return;const u=R(e.size,S.CIMVectorMarker.size),v=R(e.rotation),O=R(e.offsetX),g=R(e.offsetY),{primitiveName:_,type:M}=e,C=this._getValueOrOverrideExpression(M,_,"Size",u),k=this._getValueOrOverrideExpression(M,_,"Rotation",v),x=this._getValueOrOverrideExpression(M,_,"OffsetX",O),b=this._getValueOrOverrideExpression(M,_,"OffsetY",g);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,C,k,x,b,l,h,y,d);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,C,k,x,b,l,h,s,y,d)}}_analyzeMarkerInsidePolygon(e,t,r,i){const{markerPlacement:o,type:s}=e;if(!o||"CIMMarkerPlacementInsidePolygon"!==o.type||i.hasMotionAnimations)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const r=e.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;const i=o.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const l=Math.abs(o.stepX),n=Math.abs(o.stepY);if(0===l||0===n)return!0;let p,m;if("Random"===o.gridType){const e=a(K),t=Math.max(Math.floor(e/l),1);p=n*Math.max(Math.floor(e/n),1);m=t*l/p}else o.shiftOddRows?(p=2*n,m=l/n*.5):(p=n,m=l/n);const c=N(e),f="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:{...e,effects:e.effects?.filter(e=>!ae(e))},overrides:[]};return this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:f,colorLocked:r,effects:t,color:c,height:p,scaleX:m,angle:o.gridAngle??0,offsetX:R(o.offsetX),offsetY:R(o.offsetY),applyRandomOffset:"Random"===o.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0,animationParams:pe(i)}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,p,m,c,f,y,d,h){const{animatedSymbolProperties:u,primitiveName:v,type:O}=e;let g=R(e.scaleX,1);const S=N(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const _=this._createGIFAnimatedSymbolPropertiesOverrideExpression(u),M=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height);g/=r*(R(e.size)/t)}const C=[...o];let k;e.primitiveName&&C.push(e.primitiveName),u||_?k={type:"animated",url:e.url,urlHash:"H"+s(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}:(k=r(e),k.markerPlacement=null);const x={type:"sprite-rasterization-param",resource:k,overrides:this._getMaterialOverrides(C,O)};_&&x.overrides.push(..._.overrides);const b=n;this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:x,colorLocked:d,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:n,scaleX:this._getValueOrOverrideExpression(O,v,"ScaleX",g),rotation:p,offsetX:m,offsetY:c,transform:{type:"cim-marker-transform-param",params:f},color:this._getValueOrOverrideExpression(O,v,"TintColor",S),anchorPoint:{x:M.x,y:M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:1,isOutline:h,markerPlacement:i,animationParams:pe(y),baseSize:b})}_analyzeVectorMarker(e,t,r,i,o,a,s,l,n,p,m,c,f,u,v){const O=e.markerGraphics;if(!O)return;const g=e.frame;let S=0;S=g?g.ymax-g.ymin:a;const _=!!e.scaleSymbolsProportionally;if(S){const t={offsetX:n,offsetY:p,rotation:l,size:s,frameHeight:S,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:_};m=[...m,t]}r||(r=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const M of O)if(M){const s=M.symbol;if(!s)continue;const l=M.primitiveName;l&&i.push(l);let n,p=c;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&g){let t=0,r=0;const i=M.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(g.xmin+g.xmax),r+=i.y-.5*(g.ymin+g.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):g&&(t-=(g.xmax-g.xmin)*o.x,r-=(g.ymax-g.ymin)*o.y));const s={offsetX:t,offsetY:r,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:_};n=[...m,s]}const O=M.geometry,[C,k]=y(O,g);switch(0===C&&0===k||(p=d(p,C,k)),s.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":f||oe(s)?(p={...p,transform:{type:"AnimatedTransform",relativeTranslation:!1,absoluteScale:!0,selectGlobalRotation:!1,translation:h([0,0]),rotation:h(0),scale:h(S),parent:c.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,M,i,o,a,n??m,p,S,u,v)):this._analyzeMultiLayerGraphic(e,t,r,M,i,o,a,n??m,p,S,u,v);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,r,M,i,o,a,n??m,u)}l&&i.pop()}}_analyzeMultiLayerGraphic(e,t,r,i,o,a,s,l,n,p,m,c){const f=i.symbol,y=f.symbolLayers;if(y){if(!ie(y)||u(n))return se(y)?(v(f,e=>{e.colorLocked&&(m=!0)}),void this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,p,m,c)):void this._analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,p,m,c);this._analyzeCompositeMarkerGraphic(e,t,r,i,y,a,s,l,p,m,c)}}_analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,m,c,f){const y=i.symbol,d=y.symbolLayers;if(!d)return;const h=B.applyEffects(y.effects,i.geometry);if(!h)return;let u=d.length;for(;u--;){const y=d[u];if(!y||!1===y.enable)continue;const v=y.primitiveName;switch(v&&o.push(v),y.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=B.applyEffects(y.effects,h),d=k(o);if(!d)continue;const u="Relative"!==e.anchorPointUnits,O="CIMSolidStroke"===y.type?y.width:0,{frameSizeRatio:g,anchorX:_,anchorY:M,widthRatio:C,sdfPaddingRatio:P,sdfTextureSize:z}=x(d,e.frame,e.size,e.anchorPoint,u,O,e.scaleSymbolsProportionally),I="CIMSolidFill"===y.type,L={type:"sdf",geometry:o,sdfPaddingRatio:P,asFill:I,sdfTextureSize:z},{path:V}=y,N=I?E(w(y)):null==V?E(F(y)):[0,0,0,0],T=I?[0,0,0,0]:E(F(y));if(!I&&!O)break;const G=i.primitiveName;let A=null;I&&!y.colorLocked&&(A=this._maybeGetValueOrOverrideExpression(G,"FillColor"));let X=null;I||y.colorLocked||(X=this._maybeGetValueOrOverrideExpression(G,"StrokeColor"));const j=A??this._getValueOrOverrideExpression(y.type,v,"Color",N),Y=X??this._getValueOrOverrideExpression(y.type,v,"Color",T),W=this._maybeGetValueOrOverrideExpression(G,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,v,"Width",O),D=V?{type:"sprite-rasterization-param",resource:{type:"path",path:V,asFill:I},overrides:[]}:{type:"sprite-rasterization-param",resource:L,overrides:[]},U=p(this._poMap,y,n),H=R(e.size,S.CIMVectorMarker.size),J=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",H);this._cimLayers.push({type:"marker",name:y.name,groupName:e.name,spriteRasterizationParam:D,colorLocked:!!y.colorLocked||!!c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:_,y:M},isAbsoluteAnchorPoint:u,size:m,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:m,widthRatio:C,rotateClockwise:!1,referenceSize:s,sizeRatio:g,color:j,outlineColor:Y,outlineWidth:W,isOutline:f,markerPlacement:r,animationParams:pe(U),isStroke:"CIMSolidFill"!==y.type,baseSize:J,...b(o,z,P)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(y.markerPlacement){Q().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(y,t,r,o,a,s,!1,l,n,c,f)}v&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const p=[];M.findApplicableOverrides(i,this._primitiveOverrides,p);const m=i.geometry;if(!("x"in m)||!("y"in m))return;const c=i.symbol,f=X(c),y=j(c.fontStyleName),d=t(c.fontFamilyName);c.font={family:d,decoration:f,...y};const h=R(c.height,S.CIMTextSymbol.height),u=R(c.angle),v=R(c.offsetX),O=R(c.offsetY),{haloSymbol:g}=c,_=R(c.haloSize,0);let k=[0,0,0,0];if(g?.symbolLayers?.length){const e=g.symbolLayers;for(const t of e)if(t.color){k=this._getValueOrOverrideExpression(c?.haloSymbol?.type??"CIMPolygonSymbol",t.primitiveName,"Color",E(t.color));break}}const x=i.primitiveName;let b=[0,0,0,1],P=[0,0,0,0],z=0,I=!1;if(c.symbol?.symbolLayers)for(const t of c.symbol.symbolLayers){const e=t.primitiveName;if("CIMSolidStroke"===t.type)P=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Color",E(t.color)),z=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Width",Y(t)??0);else if("CIMSolidFill"===t.type){const r=E(t.color);I=I??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??x,"Color",r)}}let L=null,V=null,N=null,T=null,G=null;x&&(L=this._maybeGetValueOrOverrideExpression(x,"TextSize"),V=this._maybeGetValueOrOverrideExpression(x,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(x,"TextOffsetX"),T=this._maybeGetValueOrOverrideExpression(x,"TextOffsetY"),I||(G=this._maybeGetValueOrOverrideExpression(x,"FillColor")));const A=G??b;let w=null,F=null,U=0;if("CIMBackgroundCallout"===c.callout?.type){const e=c.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?w=E(e.color):"CIMSolidStroke"===e.type&&(F=E(e.color),U=R(e.width,S.CIMSolidStroke.width))}}const H=this._getValueOrOverrideExpression(c.type,i.primitiveName,"TextString",i.textString??"");if(null==H)return;const{fontStyleName:J}=c,B=d+(J?"-"+J.toLowerCase():"-regular"),q=this._getMaterialOverrides(o,c.type);q.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,c.type)),this._collectDictionaryTemplateOverrides(q,i);const K={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:c.font,symbol:c,primitiveName:i.primitiveName,supportsRichText:C(i.textString??"")||q.some(e=>"textString"===e.propertyName)},overrides:q};this._cimLayers.push({type:"text",lineWidth:c.lineWidth,textRasterizationParam:K,colorLocked:!!n||!!I,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:B,decoration:f,haloSize:_,haloColor:k,weight:y.weight,style:y.style,size:L??h,angle:V??u,offsetX:N??v,offsetY:T??O,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:D(c.horizontalAlignment),verticalAlignment:W(c.verticalAlignment),text:H,color:A,outlineColor:P,outlineSize:z,backgroundColor:w,borderLineColor:F,borderLineWidth:U,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=U(t.symbol);e.push({propertyName:"textString",defaultValue:"",valueExpressionInfo:{type:"dictionary-template",textCase:r,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,r,i,a,s,l,n,p,m,c,f){const y=ee(e,i),d=e.primitiveName,h=this._analyzeMaterialOverrides(d,["Rotation","OffsetX","OffsetY"]),u=T(h),[v,g,_]=O.getTextureAnchor(y,this._resourceManager,q),M=this._getMaterialOverrides(a,e.type).filter(e=>e.primitiveName!==d||!["rotation","offsetX","offsetY"].includes(e.propertyName));M.push(...u);const C={type:"sprite-rasterization-param",resource:{...y,avoidSDFRasterization:!0},overrides:M},k=R(e.size,S.CIMVectorMarker.size),x=this._getValueOrOverrideExpression(e.type,d,"Size",k);this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:C,colorLocked:c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:v,y:g},isAbsoluteAnchorPoint:!1,size:m,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:n},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:m,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:_/o(e.size),isOutline:f,markerPlacement:r,animationParams:pe(p),baseSize:x})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return M.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:ne(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return M.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-gif-animation-params",animation:e,overrides:ne(t)}}_analyzeCompositeMarkerGraphic(e,t,r,i,o,a,s,l,n,p,m){const c=i.geometry,f=o[0],y=o[1],d=k(c);if(!d)return;const h="Relative"!==e.anchorPointUnits,u=R(f.width,S.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:O,anchorY:g,widthRatio:_,sdfPaddingRatio:M,sdfTextureSize:C}=x(d,e.frame,e.size,e.anchorPoint,h,u,e.scaleSymbolsProportionally),{path:b}=y,P=y.primitiveName,z=f.primitiveName,I=i.primitiveName;let L=null;y.colorLocked||p||(L=this._maybeGetValueOrOverrideExpression(I,"FillColor"));const V=L??this._getValueOrOverrideExpression(y.type,P,"Color",E(y.color));let N=null;f.colorLocked||p||(N=this._maybeGetValueOrOverrideExpression(I,"StrokeColor"));const T=N??this._getValueOrOverrideExpression(f.type,z,"Color",E(f.color)),G=this._maybeGetValueOrOverrideExpression(I,"StrokeWidth")??this._getValueOrOverrideExpression(f.type,z,"Width",u),A={type:"sprite-rasterization-param",resource:b?{type:"path",path:b,asFill:!0}:{type:"sdf",geometry:c,sdfTextureSize:C,sdfPaddingRatio:M,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:A,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:O,y:g},isAbsoluteAnchorPoint:h,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:_,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:V,outlineColor:T,outlineWidth:G,isOutline:m,markerPlacement:r})}_setPoMap(e,t,r){let i;this._poMap[e]?i=this._poMap[e]:(i={},this._poMap[e]=i),i[t]=r}_maybeGetValueOrOverrideExpression(e,t,r){return this._getValueOrOverrideExpression("",e,t,r,!1)}_getValueOrOverrideExpression(e,t,r,i,o=!0){if(o&&!H(i)&&(i=G(e,r.toLowerCase())),null==t)return i;const a=this._poMap[t];if(null==a)return i;const s=a[r];return"string"==typeof s||"number"==typeof s||Array.isArray(s)?s:s?{valueExpressionInfo:s,defaultValue:i}:i}_analyzePrimitiveOverrides(e,t,r,i){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const o of this._primitiveOverrides)if(e.includes(o.primitiveName)&&o.valueExpressionInfo)return!0;if(null!=t)for(const o of t)if(o?.overrides.length>0)return!0;if(null!=r)for(const o of r)if(o?.overrides.length>0)return!0;if(null!=i)for(const o of i)if(o?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const r=[];for(const i of e)r.push(...this._getPrimitiveMaterialOverrides(i,t));return r}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const r=T(this._primitiveOverrides.filter(t=>t.primitiveName===e));return r.forEach(e=>e.defaultValue=G(t,e.propertyName.toLowerCase())),r}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(r=>r.primitiveName!==e||!t.includes(r.propertyName))}}function ee(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 te(e){if(e?.startsWith("Level_")){const t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function re(e,t){if(!t||0===t.length)return e;const i=r(e);return M.applyOverrides(i,t),i}const ie=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function oe(e){const t=e.symbolLayers;if(!t)return!1;const r=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)),i=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectAddControlPoints"===e.type));return!!r||!!i}function ae(e){return"CIMGeometricEffectCircularSector"===e.type||"CIMGeometricEffectRadial"===e.type||"CIMGeometricEffectTaperedPolygon"===e.type}function se(e){return e.some(e=>"CIMSolidFill"!==e.type&&"CIMSolidStroke"!==e.type&&("CIMVectorMarker"!==e.type&&"CIMPictureMarker"!==e.type||null!=e.markerPlacement))}function le(e,t){if((t?.some(e=>"CIMGeometricEffectRadial"===e.type)&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.type)||t?.some(e=>"CIMGeometricEffectCircularSector"===e.type))&&2===e.length){const t=e.find(e=>"CIMSolidFill"===e.type),r=e.find(e=>"CIMSolidStroke"===e.type),i=r?.effects?.some(e=>"CIMGeometricEffectDashes"===e.type);if(null!=t&&null!=r&&!i)return!0}return!1}function ne(e){return r(e).map(e=>({...e,propertyName:J(e.propertyName)}))}function pe(e){return u(e)?{type:"animation-params",params:e}:null}export{$ as CIMAnalyzer,re 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 r}from"../../core/lang.js";import i from"../../core/Logger.js";import{pt2px as o,px2pt as a}from"../../core/screenUtils.js";import{numericHash as s}from"../../core/string.js";import{checkForAnimations as l,globalRotation as n,getAnimationParams as p,handleAbsoluteAnchor as m,handleMarker as c,handleRelativeAnchor as f,getFrameTranslation as y,translate as d,getStaticParam as h,shouldUseAnimatedPath as u}from"./animationUtils.js";import{forEachSymbolLayer as v,CIMSymbolHelper as O}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as g}from"./constants.js";import{defaultCIMValues as S}from"./defaultCIMValues.js";import{fitVectorMarker as _}from"./fitVectorMarker.js";import{OverrideHelper as M}from"./OverrideHelper.js";import{hasRichTextFormattingTags as C}from"./richTextUtils.js";import{getExtent as k,getSDFMetrics as x,getSDFDimensions as b}from"./SDFHelper.js";import{CIMSymbolUnits as P}from"./types.js";import{colorToArray as z,normalizeAlpha as E,getSize as I,isCIMMarkerStrokePlacement as L,hasStrokeLayer as V,getTintColor as N,getNumericValue as R,normalizePrimitiveOverrideProps as T,getDefaultCIMValue as G,getEnum as A,getFillColor as w,getStrokeColor as F,fromCIMFontDecoration as X,fromCIMFontStyle as j,getStrokeWidth as Y,fromCIMVerticalAlignment as W,fromCIMHorizontalAlignment as D,getTextCasing as U,isValidCIMValue as H,uncapitalize as J}from"./utils.js";import{EffectHelper as B}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as q,randomInsidePolygonTextureSize as K}from"../../views/2d/engine/webgl/definitions.js";const Q=()=>i.getLogger("esri.symbols.cim.cimAnalyzer");function Z(e){const t=e.markerPlacement;return t&&t.angleToLine?1:0}class ${constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,r,i){if(this._cimLayers=i??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(const t of this._primitiveOverrides){const r=t.valueExpressionInfo;if(r)this._setPoMap(t.primitiveName,t.propertyName,r);else if(null!=t.value){let r=t.value;t.propertyName.includes("Color")&&(e(r)&&(r=z(r)),r=E(r)),this._setPoMap(t.primitiveName,t.propertyName,r)}}}return this._analyzeSymbol(t.symbol,r),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){const r=e?.symbolLayers;if(!r)return;for(let l=0;l<r.length;l++){const e=r[l];"CIMVectorMarker"===e.type&&(r[l]=_(e))}const i=e.effects;let o=0;const a=I(e)??0;if("CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=1),ne(r,i))return this._analyzeCompositeOutlineFill(r,i,a);let s={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};s=n(s),s=p(this._poMap,e,s);const m="CIMPolygonSymbol"===e.type;let c=r.length;for(;c--;){const l=r[c];if(!l||!1===l.enable)continue;let n;i?.length&&(n=[...i]);const p=l.effects;p?.length&&(i?n.push(...p):n=[...p]);let f=null;if(n){f=[];for(const e of n){const t=M.findEffectOverrides(e,this._primitiveOverrides);t&&f.push(t)}}const y=[];M.findApplicableOverrides(l,this._primitiveOverrides,y);const d=this._cimLayers.length;switch(l.type){case"CIMSolidFill":this._analyzeSolidFill(l,f,s,V(r));break;case"CIMPictureFill":this._analyzePictureFill(l,f,s);break;case"CIMHatchFill":this._analyzeHatchFill(l,f,s);break;case"CIMGradientFill":this._analyzeGradientFill(l,f);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,f,m,a,s);break;case"CIMPictureStroke":this._analyzePictureStroke(l,f,m,a,s);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,f,m,a);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(o=Z(l));const r=[],i=l.primitiveName;i&&r.push(i);const n=m&&L(l.markerPlacement);this._analyzeMarker(l,f,null,r,o,a,t,[],s,!1,n);break}default:Q().error("Cannot analyze CIM layer",l.type)}if(f?.some(({effect:e})=>se(e)))for(let e=d;e<this._cimLayers.length;e++)this._cimLayers[e].effectsChangeGeometryType=!0}}_analyzeSolidFill(e,t,r,i){const{primitiveName:o,type:a}=e,s=E(e.color),l=p(this._poMap,e,r);if(!i&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.effect.type)){const r=this._getValueOrOverrideExpression(a,o,"Color",s);return void this._cimLayers.push({type:"outlineFill",name:e.name,colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...g,outlineEffects:t})}this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,o,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:me(l)})}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=N(e),s=R(e.height,S.CIMPictureFill.height);let l=R(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height),l/=r*(s/t)}const n={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,o)},m=p(this._poMap,e,r);this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,i,"TintColor",a),height:this._getValueOrOverrideExpression(o,i,"Height",s),scaleX:this._getValueOrOverrideExpression(o,i,"ScaleX",l),angle:this._getValueOrOverrideExpression(o,i,"Rotation",R(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:me(m)})}_analyzeHatchFill(e,t,r){const{primitiveName:i,type:o}=e,a=p(this._poMap,e,r),s=this._analyzeMaterialOverrides(i,["Rotation","OffsetX","OffsetY"]),l=T(s);let n=[255,255,255,1],m=!1;if(e.lineSymbol?.symbolLayers)for(const p of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==p.type)continue;const e=p.primitiveName??i;m||!e||p.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(n=E(p.color),n=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(o,e,"Color",n),m=!0);const t=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(t){let r=null,i=null;"number"==typeof t?r=t:i=t.valueExpressionInfo;let a=l.find(e=>"strokeWidth"===e.propertyName);a?a.propertyName="width":(a={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:i,value:r,defaultValue:G(o,"width")},l.push(a))}}const c={type:"sprite-rasterization-param",resource:e,overrides:l};this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:n,height:this._getValueOrOverrideExpression(o,i,"Separation",R(e.separation,S.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(o,i,"Rotation",R(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!m,animationParams:me(a)})}_analyzeGradientFill(e,t){const{angle:r,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,gradientType:s,interval:l,primitiveName:n,type:p}=e,m=S.CIMGradientFill,c=e.colorRamp;this._cimLayers.push({type:"gradientFill",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(n,p)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(p,n,"GradientMethod",i??"Linear"),angle:this._getValueOrOverrideExpression(p,n,"Angle",R(r,m.angle)),gradientType:this._getValueOrOverrideExpression(p,n,"GradientType",s??m.gradientType),interval:this._getValueOrOverrideExpression(p,n,"Interval",R(l,"CIMFixedColorRamp"===c.type?c.colors.length:m.interval)),gradientSize:this._getValueOrOverrideExpression(p,n,"GradientSize",R(o,m.gradientSize)),gradientSizeUnits:"Absolute"===a?P.Absolute:"Relative"===a?P.Relative:m.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,r){const i=e.find(e=>"CIMSolidFill"===e.type),o=e.find(e=>"CIMSolidStroke"===e.type);if(null==i||null==o)return;const a=[...t??[],...i.effects??[]].map(e=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),s=[...t??[],...o.effects??[]].map(e=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),l=R(o.width,S.CIMSolidStroke.width),n=A(o.capStyle,S.CIMSolidStroke.capstyle),p=A(o.joinStyle,S.CIMSolidStroke.joinstyle),m=o.miterLimit;this._cimLayers.push({type:"outlineFill",name:i.name,colorLocked:!!i.colorLocked,color:this._getValueOrOverrideExpression(i.type,i.primitiveName,"Color",E(i.color)),effects:a,effectsChangeGeometryType:a.some(({effect:e})=>se(e))||s.some(({effect:e})=>se(e)),outlineColorLocked:!!o.colorLocked,outlineColor:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Color",E(o.color)),outlineWidth:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Width",l),cap:this._getValueOrOverrideExpression(o.type,o.primitiveName,"CapStyle",n),join:this._getValueOrOverrideExpression(o.type,o.primitiveName,"JoinStyle",p),miterLimit:m&&this._getValueOrOverrideExpression(o.type,o.primitiveName,"MiterLimit",m),referenceWidth:r,outlineEffects:s})}_analyzeSolidStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=E(e.color),n=R(e.width,S.CIMSolidStroke.width),m=A(e.capStyle,S.CIMSolidStroke.capstyle),c=A(e.joinStyle,S.CIMSolidStroke.joinstyle),f=e.miterLimit;let y,d,h,u,v=[];if(this._analyzePrimitiveOverrides(a,t,null,null)&&(v=this._getPrimitiveMaterialOverrides(a,s)),t&&Array.isArray(t)&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&(y=e.dashTemplate,d=e.scaleDash,h=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const O=void 0!==y?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:y,primitiveName:u},overrides:v}:null,g=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:O,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"Color",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:te(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??y,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",h??0),scaleDash:d,sampleAlphaOnly:!0,animationParams:me(g)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=N(e),n=R(e.width,S.CIMPictureStroke.width),m=A(e.capStyle,S.CIMPictureStroke.capstyle),c=A(e.joinStyle,S.CIMPictureStroke.joinstyle),f=e.miterLimit,y={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},d=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:y,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"TintColor",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:te(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:me(d)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:p,type:m}=e,c=S.CIMGradientStroke,f=R(e.width,c.width),y=A(e.capStyle,c.capstyle),d=A(e.joinStyle,c.joinstyle),h=e.miterLimit,u=e.colorRamp;this._cimLayers.push({type:"gradientStroke",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(p,m)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(m,p,"Width",f),cap:this._getValueOrOverrideExpression(m,p,"CapStyle",y),join:this._getValueOrOverrideExpression(m,p,"JoinStyle",d),miterLimit:h&&this._getValueOrOverrideExpression(m,p,"MiterLimit",h),referenceWidth:i,isOutline:r,gradientMethod:this._getValueOrOverrideExpression(m,p,"GradientMethod",o??c.gradientMethod),gradientType:this._getValueOrOverrideExpression(m,p,"GradientType",l??c.gradientType),interval:this._getValueOrOverrideExpression(m,p,"Interval",R(n,"CIMFixedColorRamp"===u.type?u.colors.length:c.interval)),gradientSize:this._getValueOrOverrideExpression(m,p,"GradientSize",R(a,c.gradientSize)),gradientSizeUnits:"Absolute"===s?P.Absolute:"Relative"===s?P.Relative:c.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,n,y=!1,d=!1){y||=!!e.colorLocked;let h=n;if(h=m(e,h),h=c(this._poMap,e,h),h=f(e,h),h=p(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,y,h))return;const u=R(e.size,S.CIMVectorMarker.size),v=R(e.rotation),O=R(e.offsetX),g=R(e.offsetY),{primitiveName:_,type:M}=e,C=this._getValueOrOverrideExpression(M,_,"Size",u),k=this._getValueOrOverrideExpression(M,_,"Rotation",v),x=this._getValueOrOverrideExpression(M,_,"OffsetX",O),b=this._getValueOrOverrideExpression(M,_,"OffsetY",g);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,C,k,x,b,l,h,y,d);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,C,k,x,b,l,h,s,y,d)}}_analyzeMarkerInsidePolygon(e,t,r,i){const{markerPlacement:o,type:s}=e;if(!o||"CIMMarkerPlacementInsidePolygon"!==o.type||i.hasMotionAnimations)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const r=e.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;const i=o.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const l=Math.abs(o.stepX),n=Math.abs(o.stepY);if(0===l||0===n)return!0;let p,m;if("Random"===o.gridType){const e=a(K),t=Math.max(Math.floor(e/l),1);p=n*Math.max(Math.floor(e/n),1);m=t*l/p}else o.shiftOddRows?(p=2*n,m=l/n*.5):(p=n,m=l/n);const c=N(e),f="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:{...e,effects:e.effects?.filter(e=>!ae(e))},overrides:[]};return this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:f,colorLocked:r,effects:t,color:c,height:p,scaleX:m,angle:o.gridAngle??0,offsetX:R(o.offsetX),offsetY:R(o.offsetY),applyRandomOffset:"Random"===o.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0,animationParams:me(i)}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,p,m,c,f,y,d,h){const{animatedSymbolProperties:u,primitiveName:v,type:O}=e;let g=R(e.scaleX,1);const S=N(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const _=this._createGIFAnimatedSymbolPropertiesOverrideExpression(u),M=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height);g/=r*(R(e.size)/t)}const C=[...o];let k;e.primitiveName&&C.push(e.primitiveName),u||_?k={type:"animated",url:e.url,urlHash:"H"+s(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}:(k=r(e),k.markerPlacement=null);const x={type:"sprite-rasterization-param",resource:k,overrides:this._getMaterialOverrides(C,O)};_&&x.overrides.push(..._.overrides);const b=n;this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:x,colorLocked:d,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:n,scaleX:this._getValueOrOverrideExpression(O,v,"ScaleX",g),rotation:p,offsetX:m,offsetY:c,transform:{type:"cim-marker-transform-param",params:f},color:this._getValueOrOverrideExpression(O,v,"TintColor",S),anchorPoint:{x:M.x,y:M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:1,isOutline:h,markerPlacement:i,animationParams:me(y),baseSize:b})}_analyzeVectorMarker(e,t,r,i,o,a,s,l,n,p,m,c,f,u,v){const O=e.markerGraphics;if(!O)return;const g=e.frame;let S=0;S=g?g.ymax-g.ymin:a;const _=!!e.scaleSymbolsProportionally;if(S){const t={offsetX:n,offsetY:p,rotation:l,size:s,frameHeight:S,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:_};m=[...m,t]}r||(r=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const M of O)if(M){const s=M.symbol;if(!s)continue;const l=M.primitiveName;l&&i.push(l);let n,p=c;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&g){let t=0,r=0;const i=M.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(g.xmin+g.xmax),r+=i.y-.5*(g.ymin+g.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):g&&(t-=(g.xmax-g.xmin)*o.x,r-=(g.ymax-g.ymin)*o.y));const s={offsetX:t,offsetY:r,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:_};n=[...m,s]}const O=M.geometry,[C,k]=y(O,g);switch(0===C&&0===k||(p=d(p,C,k)),s.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":f||oe(s)?(p={...p,transform:{type:"AnimatedTransform",relativeTranslation:!1,absoluteScale:!0,selectGlobalRotation:!1,translation:h([0,0]),rotation:h(0),scale:h(S),parent:c.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,M,i,o,a,n??m,p,S,u,v)):this._analyzeMultiLayerGraphic(e,t,r,M,i,o,a,n??m,p,S,u,v);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,r,M,i,o,a,n??m,u)}l&&i.pop()}}_analyzeMultiLayerGraphic(e,t,r,i,o,a,s,l,n,p,m,c){const f=i.symbol,y=f.symbolLayers;if(y){if(!ie(y)||u(n))return le(y)?(v(f,e=>{e.colorLocked&&(m=!0)}),void this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,p,m,c)):void this._analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,p,m,c);this._analyzeCompositeMarkerGraphic(e,t,r,i,y,a,s,l,p,m,c)}}_analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,m,c,f){const y=i.symbol,d=y.symbolLayers;if(!d)return;const h=B.applyEffects(y.effects,i.geometry);if(!h)return;let u=d.length;for(;u--;){const y=d[u];if(!y||!1===y.enable)continue;const v=y.primitiveName;switch(v&&o.push(v),y.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=B.applyEffects(y.effects,h),d=k(o);if(!d)continue;const u="Relative"!==e.anchorPointUnits,O="CIMSolidStroke"===y.type?y.width:0,{frameSizeRatio:g,anchorX:_,anchorY:M,widthRatio:C,sdfPaddingRatio:P,sdfTextureSize:z}=x(d,e.frame,e.size,e.anchorPoint,u,O,e.scaleSymbolsProportionally),I="CIMSolidFill"===y.type,L={type:"sdf",geometry:o,sdfPaddingRatio:P,asFill:I,sdfTextureSize:z},{path:V}=y,N=I?E(w(y)):null==V?E(F(y)):[0,0,0,0],T=I?[0,0,0,0]:E(F(y));if(!I&&!O)break;const G=i.primitiveName;let A=null;I&&!y.colorLocked&&(A=this._maybeGetValueOrOverrideExpression(G,"FillColor"));let X=null;I||y.colorLocked||(X=this._maybeGetValueOrOverrideExpression(G,"StrokeColor"));const j=A??this._getValueOrOverrideExpression(y.type,v,"Color",N),Y=X??this._getValueOrOverrideExpression(y.type,v,"Color",T),W=this._maybeGetValueOrOverrideExpression(G,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,v,"Width",O),D=V?{type:"sprite-rasterization-param",resource:{type:"path",path:V,asFill:I},overrides:[]}:{type:"sprite-rasterization-param",resource:L,overrides:[]},U=p(this._poMap,y,n),H=R(e.size,S.CIMVectorMarker.size),J=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",H);this._cimLayers.push({type:"marker",name:y.name,groupName:e.name,spriteRasterizationParam:D,colorLocked:!!y.colorLocked||!!c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:_,y:M},isAbsoluteAnchorPoint:u,size:m,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:m,widthRatio:C,rotateClockwise:!1,referenceSize:s,sizeRatio:g,color:j,outlineColor:Y,outlineWidth:W,isOutline:f,markerPlacement:r,animationParams:me(U),isStroke:"CIMSolidFill"!==y.type,baseSize:J,...b(o,z,P)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(y.markerPlacement){Q().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(y,t,r,o,a,s,!1,l,n,c,f)}v&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const p=[];M.findApplicableOverrides(i,this._primitiveOverrides,p);const m=i.geometry;if(!("x"in m)||!("y"in m))return;const c=i.symbol,f=X(c),y=j(c.fontStyleName),d=t(c.fontFamilyName);c.font={family:d,decoration:f,...y};const h=R(c.height,S.CIMTextSymbol.height),u=R(c.angle),v=R(c.offsetX),O=R(c.offsetY),{haloSymbol:g}=c,_=R(c.haloSize,0);let k=[0,0,0,0];if(g?.symbolLayers?.length){const e=g.symbolLayers;for(const t of e)if(t.color){k=this._getValueOrOverrideExpression(c?.haloSymbol?.type??"CIMPolygonSymbol",t.primitiveName,"Color",E(t.color));break}}const x=i.primitiveName;let b=[0,0,0,1],P=[0,0,0,0],z=0,I=!1;if(c.symbol?.symbolLayers)for(const t of c.symbol.symbolLayers){const e=t.primitiveName;if("CIMSolidStroke"===t.type)P=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Color",E(t.color)),z=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Width",Y(t)??0);else if("CIMSolidFill"===t.type){const r=E(t.color);I=I??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??x,"Color",r)}}let L=null,V=null,N=null,T=null,G=null;x&&(L=this._maybeGetValueOrOverrideExpression(x,"TextSize"),V=this._maybeGetValueOrOverrideExpression(x,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(x,"TextOffsetX"),T=this._maybeGetValueOrOverrideExpression(x,"TextOffsetY"),I||(G=this._maybeGetValueOrOverrideExpression(x,"FillColor")));const A=G??b;let w=null,F=null,U=0;if("CIMBackgroundCallout"===c.callout?.type){const e=c.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?w=E(e.color):"CIMSolidStroke"===e.type&&(F=E(e.color),U=R(e.width,S.CIMSolidStroke.width))}}const H=this._getValueOrOverrideExpression(c.type,i.primitiveName,"TextString",i.textString??"");if(null==H)return;const{fontStyleName:J}=c,B=d+(J?"-"+J.toLowerCase():"-regular"),q=this._getMaterialOverrides(o,c.type);q.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,c.type)),this._collectDictionaryTemplateOverrides(q,i);const K={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:c.font,symbol:c,primitiveName:i.primitiveName,supportsRichText:C(i.textString??"")||q.some(e=>"textString"===e.propertyName)},overrides:q};this._cimLayers.push({type:"text",lineWidth:c.lineWidth,textRasterizationParam:K,colorLocked:!!n||!!I,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:B,decoration:f,haloSize:_,haloColor:k,weight:y.weight,style:y.style,size:L??h,angle:V??u,offsetX:N??v,offsetY:T??O,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:D(c.horizontalAlignment),verticalAlignment:W(c.verticalAlignment),text:H,color:A,outlineColor:P,outlineSize:z,backgroundColor:w,borderLineColor:F,borderLineWidth:U,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=U(t.symbol);e.push({propertyName:"textString",defaultValue:"",valueExpressionInfo:{type:"dictionary-template",textCase:r,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,r,i,a,s,l,n,p,m,c,f){const y=ee(e,i),d=e.primitiveName,h=this._analyzeMaterialOverrides(d,["Rotation","OffsetX","OffsetY"]),u=T(h),[v,g,_]=O.getTextureAnchor(y,this._resourceManager,q),M=this._getMaterialOverrides(a,e.type).filter(e=>e.primitiveName!==d||!["rotation","offsetX","offsetY"].includes(e.propertyName));M.push(...u);const C={type:"sprite-rasterization-param",resource:{...y,avoidSDFRasterization:!0},overrides:M},k=R(e.size,S.CIMVectorMarker.size),x=this._getValueOrOverrideExpression(e.type,d,"Size",k);this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:C,colorLocked:c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:v,y:g},isAbsoluteAnchorPoint:!1,size:m,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:n},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:m,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:_/o(e.size),isOutline:f,markerPlacement:r,animationParams:me(p),baseSize:x})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return M.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:pe(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return M.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-gif-animation-params",animation:e,overrides:pe(t)}}_analyzeCompositeMarkerGraphic(e,t,r,i,o,a,s,l,n,p,m){const c=i.geometry,f=o[0],y=o[1],d=k(c);if(!d)return;const h="Relative"!==e.anchorPointUnits,u=R(f.width,S.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:O,anchorY:g,widthRatio:_,sdfPaddingRatio:M,sdfTextureSize:C}=x(d,e.frame,e.size,e.anchorPoint,h,u,e.scaleSymbolsProportionally),{path:b}=y,P=y.primitiveName,z=f.primitiveName,I=i.primitiveName;let L=null;y.colorLocked||p||(L=this._maybeGetValueOrOverrideExpression(I,"FillColor"));const V=L??this._getValueOrOverrideExpression(y.type,P,"Color",E(y.color));let N=null;f.colorLocked||p||(N=this._maybeGetValueOrOverrideExpression(I,"StrokeColor"));const T=N??this._getValueOrOverrideExpression(f.type,z,"Color",E(f.color)),G=this._maybeGetValueOrOverrideExpression(I,"StrokeWidth")??this._getValueOrOverrideExpression(f.type,z,"Width",u),A={type:"sprite-rasterization-param",resource:b?{type:"path",path:b,asFill:!0}:{type:"sdf",geometry:c,sdfTextureSize:C,sdfPaddingRatio:M,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:A,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:O,y:g},isAbsoluteAnchorPoint:h,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:_,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:V,outlineColor:T,outlineWidth:G,isOutline:m,markerPlacement:r})}_setPoMap(e,t,r){let i;this._poMap[e]?i=this._poMap[e]:(i={},this._poMap[e]=i),i[t]=r}_maybeGetValueOrOverrideExpression(e,t,r){return this._getValueOrOverrideExpression("",e,t,r,!1)}_getValueOrOverrideExpression(e,t,r,i,o=!0){if(o&&!H(i)&&(i=G(e,r.toLowerCase())),null==t)return i;const a=this._poMap[t];if(null==a)return i;const s=a[r];return"string"==typeof s||"number"==typeof s||Array.isArray(s)?s:s?{valueExpressionInfo:s,defaultValue:i}:i}_analyzePrimitiveOverrides(e,t,r,i){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const o of this._primitiveOverrides)if(e.includes(o.primitiveName)&&o.valueExpressionInfo)return!0;if(null!=t)for(const o of t)if(o?.overrides.length>0)return!0;if(null!=r)for(const o of r)if(o?.overrides.length>0)return!0;if(null!=i)for(const o of i)if(o?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const r=[];for(const i of e)r.push(...this._getPrimitiveMaterialOverrides(i,t));return r}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const r=T(this._primitiveOverrides.filter(t=>t.primitiveName===e));return r.forEach(e=>e.defaultValue=G(t,e.propertyName.toLowerCase())),r}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(r=>r.primitiveName!==e||!t.includes(r.propertyName))}}function ee(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 te(e){if(e?.startsWith("Level_")){const t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function re(e,t){if(!t||0===t.length)return e;const i=r(e);return M.applyOverrides(i,t),i}const ie=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function oe(e){const t=e.symbolLayers;if(!t)return!1;const r=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)),i=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectAddControlPoints"===e.type));return!!r||!!i}function ae(e){return se(e)}function se(e){return"CIMGeometricEffectCircularSector"===e.type||"CIMGeometricEffectRadial"===e.type||"CIMGeometricEffectTaperedPolygon"===e.type||"PrivateDimensionEffect"===e.type||"PrivateMatcherGeometryOverrideEffect"===e.type}function le(e){return e.some(e=>"CIMSolidFill"!==e.type&&"CIMSolidStroke"!==e.type&&("CIMVectorMarker"!==e.type&&"CIMPictureMarker"!==e.type||null!=e.markerPlacement))}function ne(e,t){if((t?.some(e=>"CIMGeometricEffectRadial"===e.type)&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.type)||t?.some(e=>"CIMGeometricEffectCircularSector"===e.type))&&2===e.length){const t=e.find(e=>"CIMSolidFill"===e.type),r=e.find(e=>"CIMSolidStroke"===e.type),i=r?.effects?.some(e=>"CIMGeometricEffectDashes"===e.type);if(null!=t&&null!=r&&!i)return!0}return!1}function pe(e){return r(e).map(e=>({...e,propertyName:J(e.propertyName)}))}function me(e){return u(e)?{type:"animation-params",params:e}:null}export{$ as CIMAnalyzer,re as analyzeCIMResource};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{GeometryCursor as t}from"../../../geometry/GeometryCursor.js";import{ringsCentroidCursor as e}from"../../../geometry/support/centroid.js";import{defaultCIMValues as i}from"../defaultCIMValues.js";class n{static{this.instance=null}static local(){return null===n.instance&&(n.instance=new n),n.instance}execute(t,e,i){return new r(t,e,i)}}class r{constructor(t,e,n){const r=n.geomUnitsPerPoint;this._inputGeometries=t,this._length=(void 0!==e.length?e.length:i.CIMGeometricEffectRadial.length)*r,this._angle=void 0!==e.angle?e.angle*Math.PI/180:i.CIMGeometricEffectRadial.angle,this._lx=Math.cos(this._angle)*this._length,this._ly=Math.sin(this._angle)*this._length}next(){let i=this._inputGeometries.next();for(;i;){if("esriGeometryPoint"===i.geometryType||"esriGeometryMultipoint"===i.geometryType){const e=t.createEmptyOptimizedCIM("esriGeometryPolyline");return i.nextPath()&&i.nextPoint()&&e.pushPath([[i.x,i.y],[i.x+this._lx,i.y+this._ly]]),e}if("esriGeometryPolygon"===i.geometryType){const n=e(i);if(!n)return null;const r=t.createEmptyOptimizedCIM("esriGeometryPolyline");return r.pushPath([[n[0],n[1]],[n[0]+this._lx,n[1]+this._ly]]),r}i=this._inputGeometries.next()}return null}}export{n as EffectRadial};
2
+ import{GeometryCursor as t}from"../../../geometry/GeometryCursor.js";import{ringsCentroidCursor as e}from"../../../geometry/support/centroid.js";import{defaultCIMValues as i}from"../defaultCIMValues.js";class n{static{this.instance=null}static local(){return null===n.instance&&(n.instance=new n),n.instance}execute(t,e,i){return new s(t,e,i)}}class s{constructor(t,e,n){const s=n.geomUnitsPerPoint;this._inputGeometries=t,this._executionContext=n,this._length=(void 0!==e.length?e.length:i.CIMGeometricEffectRadial.length)*s,this._angle=void 0!==e.angle?e.angle*Math.PI/180:i.CIMGeometricEffectRadial.angle,this._lx=Math.cos(this._angle)*this._length,this._ly=Math.sin(this._angle)*this._length}next(){let i=this._inputGeometries.next();for(;i;){if("esriGeometryPoint"===i.geometryType||"esriGeometryMultipoint"===i.geometryType){const e=t.createEmptyOptimizedCIM("esriGeometryPolyline");return i.nextPath()&&i.nextPoint()&&(this._executionContext.effectOrigin=[i.x,i.y],e.pushPath([[i.x,i.y],[i.x+this._lx,i.y+this._ly]])),e}if("esriGeometryPolygon"===i.geometryType){const n=e(i);if(!n)return null;const s=t.createEmptyOptimizedCIM("esriGeometryPolyline");return this._executionContext.effectOrigin=[n[0],n[1]],s.pushPath([[n[0],n[1]],[n[0]+this._lx,n[1]+this._ly]]),s}i=this._inputGeometries.next()}return null}}export{n as EffectRadial};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{UniqueSymbol as e}from"./core.js";import{isSearchCircleOverlapingSymbol as t,tileCoordChangeX as s,tileCoordChangeY as i,GridIndex as l}from"./util.js";class o{static fromSymbols(e,t){let s=e.length;if(s>=r){let i=t;do{i/=2,s/=4}while(s>n&&i>y);const r=new l(t,t,i);for(const t of e)r.getCell(t.xTile,t.yTile).push(t);return new o(t,e,r)}return new o(t,e,null)}constructor(e,t,s){this.tileCoordRange=e,this._symbols=t,this._index=s}addSymbols(e){for(const t of e)this._symbols.push(t);if(this._index)for(const t of e)this._index.getCell(t.xTile,t.yTile).push(t)}removeSymbols(e){const t=new Set(e);if(this._symbols=this._symbols.filter(e=>!t.has(e)),this._index)for(const s of this._index.cells)for(let e=0;e<s.length;e++)s[e]=s[e].filter(e=>!t.has(e))}getSymbols(){return this._symbols}getCandidate(e,t,s,i){if(!this._index){for(const l of this._symbols)if(s===l.hash&&Math.abs(e-l.xTile)<=i&&Math.abs(t-l.yTile)<=i)return l;return null}const l=this._index.getCellSpan(e-i,t-i,e+i,t+i),[o,r,n,y]=l;for(let a=r;a<=y;a++)for(let l=o;l<=n;l++){const o=this._index.cells[a][l];for(const l of o)if(s===l.hash&&Math.abs(e-l.xTile)<=i&&Math.abs(t-l.yTile)<=i)return l}return null}}const r=32,n=8,y=64,a=20;class u{constructor(e,t){this.tileCoordRange=e,this._visibleTiles=t,this._indexMapByTile=new Map,this._uniqueSymbolsByStyleLayerId=new Map,this._featureMetricUpdates=[]}get uniqueSymbols(){return null==this._uniqueSymbolLayerArray&&(this._uniqueSymbolLayerArray=this._createUniqueSymbolLayerArray()),this._uniqueSymbolLayerArray}registerVectorTile(e,t){const s=this._ensureIndexMap(e),i=t?.values()??s.keys();for(const l of i){const e=s.get(l);e&&(this._removeSymbols(l,e.getSymbols()),s.delete(l))}this._addSymbols(e.key,s,e.symbols),this._invalidate()}unregisterVectorTile(e){this._removeTile(e),this._invalidate()}flushFeatureTileUpdateMessages(){for(const e of this._featureMetricUpdates)switch(e.type){case"tile-add":this._ensureIndexMap(e.tile);break;case"tile-remove":this._removeTile(e.tile);break;case"metrics-add":{const{tile:t,metrics:s}=e,i=this._indexMapByTile.get(t);if(!i)throw new Error(`tile ${t.id} not registered!`);this._addSymbols(t.key,i,h(s));break}case"metrics-remove":{const{tile:t,metrics:s}=e,i=this._indexMapByTile.get(t);if(!i)continue;const l=h(s);for(const[e,o]of i.entries()){const t=l.get(e);t&&(o.removeSymbols(t),this._removeSymbols(e,t))}break}}this._featureMetricUpdates.length=0,this._invalidate()}registerFeatureTile(e){this._featureMetricUpdates.push({type:"tile-add",tile:e})}unregisterFeatureTile(e){this._featureMetricUpdates.push({type:"tile-remove",tile:e})}insertFeatureTileMetrics(e,t){this._featureMetricUpdates.push({type:"metrics-add",tile:e,metrics:t})}removeFeatureTileMetrics(e,t){this._featureMetricUpdates.push({type:"metrics-remove",tile:e,metrics:t})}deleteStyleLayers(e){for(const t of this._indexMapByTile.values())for(const s of e){const e=t.get(s);e&&(this._removeSymbols(s,e.getSymbols()),t.delete(s))}this._invalidate()}querySymbols(e,s,i,l){const o=[];for(const[r,n]of this._uniqueSymbolsByStyleLayerId.entries())for(const l of n){const n=l.tileSymbols.find(e=>e.selectedForRendering);n&&t(n,e,s,i)&&o.push({vtlSymbol:n,styleLayerUID:r,tileKey:n.tile.key})}return o}_ensureIndexMap(e){let t=this._indexMapByTile.get(e);return t||(t=new Map,this._indexMapByTile.set(e,t)),t}_invalidate(){this._uniqueSymbolLayerArray=null}_addSymbols(e,t,s){for(const[i,l]of s){let e=t.get(i);e?e.addSymbols(l):(e=o.fromSymbols(l,this.tileCoordRange),t.set(i,e))}this._updateUniqueSymbols(e,s)}_removeTile(e){const t=this._indexMapByTile.get(e);if(t){for(const[e,s]of t.entries())this._removeSymbols(e,s.getSymbols());this._indexMapByTile.delete(e),this._invalidate()}}_removeSymbols(e,t){for(const s of t){const t=s.uniqueSymbol;if(t){if(t.tileSymbols=t.tileSymbols.filter(e=>e!==s),0===t.tileSymbols.length){const s=this._uniqueSymbolsByStyleLayerId.get(e);s.delete(t),0===s.size&&this._uniqueSymbolsByStyleLayerId.delete(e)}s.uniqueSymbol=null}}}_updateUniqueSymbols(t,s){if(0!==s.size){for(const e of this._visibleTiles)e.parentTile||e.key.world!==t.world||e.key.level===t.level&&!e.key.equals(t)||this._matchSymbols(e,t,s);for(const[t,i]of s)for(const s of i)if(!s.uniqueSymbol){s.uniqueSymbol=new e(s);let i=this._uniqueSymbolsByStyleLayerId.get(t);i||(i=new Set,this._uniqueSymbolsByStyleLayerId.set(t,i)),i.add(s.uniqueSymbol)}}}_matchSymbols(e,t,l){if(e.key.level>t.level){const s=e.key.level-t.level;if(e.key.row>>s!==t.row||e.key.col>>s!==t.col)return}if(t.level>e.key.level){const s=t.level-e.key.level;if(t.row>>s!==e.key.row||t.col>>s!==e.key.col)return}const o=new Map;for(const[r,n]of l){const l=[],y=e.key.level<t.level?0:1<<Math.abs(e.key.level-t.level),u=this._indexMapByTile.get(e),h=u?.get(r);if(h)for(const o of n){if(o.uniqueSymbol)continue;const r=s(this.tileCoordRange,o.xTile,t,e.key),n=i(this.tileCoordRange,o.yTile,t,e.key),u=-a,c=this.tileCoordRange+a;if(!(r>=u&&r<c&&n>=u&&n<c)){l.push(o);continue}const m=h.getCandidate(r,n,o.hash,y),f=m?.uniqueSymbol;f?(o.uniqueSymbol=f,f.tileSymbols.push(o)):l.push(o)}l.length>0&&o.set(r,l)}for(const s of e.childrenTiles||[])this._matchSymbols(s,t,o)}_createUniqueSymbolLayerArray(){const e=this._uniqueSymbolsByStyleLayerId,t=new Array(e.size);let s,i=0;for(const[l,o]of e){const e=new Array(o.size);s=0;for(const t of o)e[s++]=t;t[i]={styleLayerUID:l,uniqueSymbols:e},i++}return t}}function h(e){const t=new Map;for(const s of e){const e=s.labelClassId;let i=t.get(e);i||(i=[],t.set(e,i)),i.push(s)}return t}export{u as SymbolRepository};
2
+ import{UniqueSymbol as e}from"./core.js";import{isSearchCircleOverlapingSymbol as t,tileCoordChangeX as s,tileCoordChangeY as i,GridIndex as l}from"./util.js";class o{static fromSymbols(e,t){let s=e.length;if(s>=r){let i=t;do{i/=2,s/=4}while(s>n&&i>y);const r=new l(t,t,i);for(const t of e)r.getCell(t.xTile,t.yTile)?.push(t);return new o(t,e,r)}return new o(t,e,null)}constructor(e,t,s){this.tileCoordRange=e,this._symbols=t,this._index=s}addSymbols(e){for(const t of e)this._symbols.push(t);if(this._index)for(const t of e)this._index.getCell(t.xTile,t.yTile).push(t)}removeSymbols(e){const t=new Set(e);if(this._symbols=this._symbols.filter(e=>!t.has(e)),this._index)for(const s of this._index.cells)for(let e=0;e<s.length;e++)s[e]=s[e].filter(e=>!t.has(e))}getSymbols(){return this._symbols}getCandidate(e,t,s,i){if(!this._index){for(const l of this._symbols)if(s===l.hash&&Math.abs(e-l.xTile)<=i&&Math.abs(t-l.yTile)<=i)return l;return null}const l=this._index.getCellSpan(e-i,t-i,e+i,t+i),[o,r,n,y]=l;for(let a=r;a<=y;a++)for(let l=o;l<=n;l++){const o=this._index.cells[a][l];for(const l of o)if(s===l.hash&&Math.abs(e-l.xTile)<=i&&Math.abs(t-l.yTile)<=i)return l}return null}}const r=32,n=8,y=64,a=20;class u{constructor(e,t){this.tileCoordRange=e,this._visibleTiles=t,this._indexMapByTile=new Map,this._uniqueSymbolsByStyleLayerId=new Map,this._featureMetricUpdates=[]}get uniqueSymbols(){return null==this._uniqueSymbolLayerArray&&(this._uniqueSymbolLayerArray=this._createUniqueSymbolLayerArray()),this._uniqueSymbolLayerArray}registerVectorTile(e,t){const s=this._ensureIndexMap(e),i=t?.values()??s.keys();for(const l of i){const e=s.get(l);e&&(this._removeSymbols(l,e.getSymbols()),s.delete(l))}this._addSymbols(e.key,s,e.symbols),this._invalidate()}unregisterVectorTile(e){this._removeTile(e),this._invalidate()}flushFeatureTileUpdateMessages(){for(const e of this._featureMetricUpdates)switch(e.type){case"tile-add":this._ensureIndexMap(e.tile);break;case"tile-remove":this._removeTile(e.tile);break;case"metrics-add":{const{tile:t,metrics:s}=e,i=this._indexMapByTile.get(t);if(!i)throw new Error(`tile ${t.id} not registered!`);this._addSymbols(t.key,i,h(s));break}case"metrics-remove":{const{tile:t,metrics:s}=e,i=this._indexMapByTile.get(t);if(!i)continue;const l=h(s);for(const[e,o]of i.entries()){const t=l.get(e);t&&(o.removeSymbols(t),this._removeSymbols(e,t))}break}}this._featureMetricUpdates.length=0,this._invalidate()}registerFeatureTile(e){this._featureMetricUpdates.push({type:"tile-add",tile:e})}unregisterFeatureTile(e){this._featureMetricUpdates.push({type:"tile-remove",tile:e})}insertFeatureTileMetrics(e,t){this._featureMetricUpdates.push({type:"metrics-add",tile:e,metrics:t})}removeFeatureTileMetrics(e,t){this._featureMetricUpdates.push({type:"metrics-remove",tile:e,metrics:t})}deleteStyleLayers(e){for(const t of this._indexMapByTile.values())for(const s of e){const e=t.get(s);e&&(this._removeSymbols(s,e.getSymbols()),t.delete(s))}this._invalidate()}querySymbols(e,s,i,l){const o=[];for(const[r,n]of this._uniqueSymbolsByStyleLayerId.entries())for(const l of n){const n=l.tileSymbols.find(e=>e.selectedForRendering);n&&t(n,e,s,i)&&o.push({vtlSymbol:n,styleLayerUID:r,tileKey:n.tile.key})}return o}_ensureIndexMap(e){let t=this._indexMapByTile.get(e);return t||(t=new Map,this._indexMapByTile.set(e,t)),t}_invalidate(){this._uniqueSymbolLayerArray=null}_addSymbols(e,t,s){for(const[i,l]of s){let e=t.get(i);e?e.addSymbols(l):(e=o.fromSymbols(l,this.tileCoordRange),t.set(i,e))}this._updateUniqueSymbols(e,s)}_removeTile(e){const t=this._indexMapByTile.get(e);if(t){for(const[e,s]of t.entries())this._removeSymbols(e,s.getSymbols());this._indexMapByTile.delete(e),this._invalidate()}}_removeSymbols(e,t){for(const s of t){const t=s.uniqueSymbol;if(t){if(t.tileSymbols=t.tileSymbols.filter(e=>e!==s),0===t.tileSymbols.length){const s=this._uniqueSymbolsByStyleLayerId.get(e);s.delete(t),0===s.size&&this._uniqueSymbolsByStyleLayerId.delete(e)}s.uniqueSymbol=null}}}_updateUniqueSymbols(t,s){if(0!==s.size){for(const e of this._visibleTiles)e.parentTile||e.key.world!==t.world||e.key.level===t.level&&!e.key.equals(t)||this._matchSymbols(e,t,s);for(const[t,i]of s)for(const s of i)if(!s.uniqueSymbol){s.uniqueSymbol=new e(s);let i=this._uniqueSymbolsByStyleLayerId.get(t);i||(i=new Set,this._uniqueSymbolsByStyleLayerId.set(t,i)),i.add(s.uniqueSymbol)}}}_matchSymbols(e,t,l){if(e.key.level>t.level){const s=e.key.level-t.level;if(e.key.row>>s!==t.row||e.key.col>>s!==t.col)return}if(t.level>e.key.level){const s=t.level-e.key.level;if(t.row>>s!==e.key.row||t.col>>s!==e.key.col)return}const o=new Map;for(const[r,n]of l){const l=[],y=e.key.level<t.level?0:1<<Math.abs(e.key.level-t.level),u=this._indexMapByTile.get(e),h=u?.get(r);if(h)for(const o of n){if(o.uniqueSymbol)continue;const r=s(this.tileCoordRange,o.xTile,t,e.key),n=i(this.tileCoordRange,o.yTile,t,e.key),u=-a,c=this.tileCoordRange+a;if(!(r>=u&&r<c&&n>=u&&n<c)){l.push(o);continue}const m=h.getCandidate(r,n,o.hash,y),f=m?.uniqueSymbol;f?(o.uniqueSymbol=f,f.tileSymbols.push(o)):l.push(o)}l.length>0&&o.set(r,l)}for(const s of e.childrenTiles||[])this._matchSymbols(s,t,o)}_createUniqueSymbolLayerArray(){const e=this._uniqueSymbolsByStyleLayerId,t=new Array(e.size);let s,i=0;for(const[l,o]of e){const e=new Array(o.size);s=0;for(const t of o)e[s++]=t;t[i]={styleLayerUID:l,uniqueSymbols:e},i++}return t}}function h(e){const t=new Map;for(const s of e){const e=s.labelClassId;let i=t.get(e);i||(i=[],t.set(e,i)),i.push(s)}return t}export{u as SymbolRepository};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- function t(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function e(t,e){return Math.sqrt(t*t+e*e)}function n(t){const n=e(t[0],t[1]);t[0]/=n,t[1]/=n}function s(t,n){return e(t[0]-n[0],t[1]-n[1])}function i(t,e){return t[e+1]}function r(t){return t.length-1}function h(t){let e=0;for(let n=0;n<r(t);n++)e+=a(t,n);return e}function a(t,e,n=1){let[s,r]=i(t,e);return[s,r]=[Math.round(s),Math.round(r)],Math.sqrt(s*s+r*r)*n}class d{constructor(t,e,n,s,i){this._segments=t,this._index=e,this._distance=n,this._xStart=s,this._yStart=i,this._done=!1}static create(t){return new d(t,0,0,t[0][0],t[0][1])}clone(){return new d(this._segments,this._index,this._distance,this.xStart,this.yStart)}equals(t){return this._index===t._index||t._index===this._index-1&&(0===this._distance||1===t._distance)||t._index===this._index+1&&(1===this._distance||0===t._distance)}leq(t){return this._index<t._index||this._index===t._index&&this._distance<=t._distance}geq(t){return this._index>t._index||this._index===t._index&&this._distance>=t._distance}get _segment(){return this._segments[this._index+1]}get angle(){const t=this.dy,e=(0*t+-1*-this.dx)/(1*this.length);let n=Math.acos(e);return t>0&&(n=2*Math.PI-n),n}get xStart(){return this._xStart}get yStart(){return this._yStart}get x(){return this.xStart+this.distance*this.dx}get y(){return this.yStart+this.distance*this.dy}get dx(){return this._segment[0]}get dy(){return this._segment[1]}get xMidpoint(){return this.xStart+.5*this.dx}get yMidpoint(){return this.yStart+.5*this.dy}get xEnd(){return this.xStart+this.dx}get yEnd(){return this.yStart+this.dy}get length(){const{dx:t,dy:e}=this;return Math.sqrt(t*t+e*e)}get remainingLength(){return this.length*(1-this._distance)}get backwardLength(){return this.length*this._distance}get distance(){return this._distance}get done(){return this._done}hasPrev(){return this._index-1>=0}hasNext(){return this._index+1<r(this._segments)}next(){return this.hasNext()?(this._xStart+=this.dx,this._yStart+=this.dy,this._distance=0,this._index+=1,this):null}prev(){return this.hasPrev()?(this._index-=1,this._xStart-=this.dx,this._yStart-=this.dy,this._distance=1,this):(this._done=!0,null)}_seekBackwards(t,e){const n=this.backwardLength;if(t<=n)return this._distance=(n-t)/this.length,this;let s=this.backwardLength;for(;this.prev();){if(s+this.length>t)return this._seekBackwards(t-s);s+=this.length}return this._distance=0,e?this:null}seek(t,e=!1){if(t<0)return this._seekBackwards(Math.abs(t),e);if(t<=this.remainingLength)return this._distance=(this.backwardLength+t)/this.length,this;let n=this.remainingLength;for(;this.next();){if(n+this.length>t)return this.seek(t-n,e);n+=this.length}return this._distance=1,e?this:null}}function u(t,e,n,s=!0){const i=h(t),r=d.create(t),a=i/2;if(!s)return r.seek(a),void n(r.clone(),0,a+0*e,i);const u=Math.max((i-e)/2,0),c=Math.floor(u/e),_=a-c*e;r.seek(_);for(let h=-c;h<=c;h++)n(r.clone(),h,a+h*e,i),r.seek(e)}function c(t,e){const n=e;for(let s=0;s<t.length;s++){let e=t[s];_(e,n);const i=[];i.push(e[0]);for(let t=1;t<e.length;t++){const[n,s]=e[t-1],[r,h]=e[t],a=r-n,d=h-s;i.push([a,d])}t[s]=i,e=i}return t}function _(e,i){const r=1e-6;if(i<=0)return;const h=e.length;if(h<3)return;const a=[];let d=0;a.push(0);for(let t=1;t<h;t++)d+=s(e[t],e[t-1]),a.push(d);i=Math.min(i,.2*d);const u=[];u.push(e[0][0]),u.push(e[0][1]);const c=e[h-1][0],_=e[h-1][1],o=t([0,0],e[0],e[1]);n(o),e[0][0]+=i*o[0],e[0][1]+=i*o[1],t(o,e[h-1],e[h-2]),n(o),e[h-1][0]+=i*o[0],e[h-1][1]+=i*o[1];for(let t=1;t<h;t++)a[t]+=i;a[h-1]+=i;const g=.5*i;for(let t=1;t<h-1;t++){let n=0,s=0,d=0;for(let h=t-1;h>=0&&!(a[h+1]<a[t]-g);h--){const u=g+a[h+1]-a[t],c=a[h+1]-a[h],_=a[t]-a[h]<g?1:u/c;if(Math.abs(_)<r)break;const o=_*_,l=_*u-.5*o*c,x=_*c/i,f=e[h+1],y=e[h][0]-f[0],S=e[h][1]-f[1];n+=x/l*(f[0]*_*u+.5*o*(u*y-c*f[0])-o*_*c*y/3),s+=x/l*(f[1]*_*u+.5*o*(u*S-c*f[1])-o*_*c*S/3),d+=x}for(let u=t+1;u<h&&!(a[u-1]>a[t]+g);u++){const h=g-a[u-1]+a[t],c=a[u]-a[u-1],_=a[u]-a[t]<g?1:h/c;if(Math.abs(_)<r)break;const o=_*_,l=_*h-.5*o*c,x=_*c/i,f=e[u-1],y=e[u][0]-f[0],S=e[u][1]-f[1];n+=x/l*(f[0]*_*h+.5*o*(h*y-c*f[0])-o*_*c*y/3),s+=x/l*(f[1]*_*h+.5*o*(h*S-c*f[1])-o*_*c*S/3),d+=x}u.push(n/d),u.push(s/d)}u.push(c),u.push(_);for(let t=0,n=0;t<h;t++)e[t][0]=u[n++],e[t][1]=u[n++]}export{d as SegmentCursor,u as pathDivide,h as pathLength,i as segmentAt,r as segmentCount,a as segmentLength,c as smoothPaths};
2
+ function t(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function e(t,e){return Math.sqrt(t*t+e*e)}function n(t){const n=e(t[0],t[1]);t[0]/=n,t[1]/=n}function s(t,n){return e(t[0]-n[0],t[1]-n[1])}function i(t,e){return t[e+1]}function r(t){return t.length-1}function h(t){let e=0;for(let n=0;n<r(t);n++)e+=a(t,n);return e}function a(t,e,n=1){let[s,r]=i(t,e);return[s,r]=[Math.round(s),Math.round(r)],Math.sqrt(s*s+r*r)*n}class d{constructor(t,e,n,s,i){this._segments=t,this._index=e,this._distance=n,this._xStart=s,this._yStart=i,this._done=!1}static create(t){return new d(t,0,0,t[0][0],t[0][1])}clone(){return new d(this._segments,this._index,this._distance,this.xStart,this.yStart)}equals(t){return this._index===t._index||t._index===this._index-1&&(0===this._distance||1===t._distance)||t._index===this._index+1&&(1===this._distance||0===t._distance)}leq(t){return this._index<t._index||this._index===t._index&&this._distance<=t._distance}geq(t){return this._index>t._index||this._index===t._index&&this._distance>=t._distance}get _segment(){return this._segments[this._index+1]}get angle(){const t=this.dy,e=(0*t+-1*-this.dx)/(1*this.length);let n=Math.acos(e);return t>0&&(n=2*Math.PI-n),n}get xStart(){return this._xStart}get yStart(){return this._yStart}get x(){return this.xStart+this.distance*this.dx}get y(){return this.yStart+this.distance*this.dy}get dx(){return this._segment[0]}get dy(){return this._segment[1]}get xMidpoint(){return this.xStart+.5*this.dx}get yMidpoint(){return this.yStart+.5*this.dy}get xEnd(){return this.xStart+this.dx}get yEnd(){return this.yStart+this.dy}get length(){const{dx:t,dy:e}=this;return Math.sqrt(t*t+e*e)}get remainingLength(){return this.length*(1-this._distance)}get backwardLength(){return this.length*this._distance}get distance(){return this._distance}get done(){return this._done}hasPrev(){return this._index-1>=0}hasNext(){return this._index+1<r(this._segments)}next(){return this.hasNext()?(this._xStart+=this.dx,this._yStart+=this.dy,this._distance=0,this._index+=1,this):null}prev(){return this.hasPrev()?(this._index-=1,this._xStart-=this.dx,this._yStart-=this.dy,this._distance=1,this):(this._done=!0,null)}_seekBackwards(t,e){const n=this.backwardLength;if(t<=n)return this._distance=(n-t)/this.length,this;let s=this.backwardLength;for(;this.prev();){if(s+this.length>t)return this._seekBackwards(t-s);s+=this.length}return this._distance=0,e?this:null}seek(t,e=!1){if(t<0)return this._seekBackwards(Math.abs(t),e);if(t<=this.remainingLength)return this._distance=(this.backwardLength+t)/this.length,this;let n=this.remainingLength;for(;this.next();){if(n+this.length>t)return this.seek(t-n,e);n+=this.length}return this._distance=1,e?this:null}}function u(t,e,n,s=!0){const i=h(t);if(0===i)return;const r=d.create(t),a=i/2;if(!s)return r.seek(a),void n(r.clone(),0,a+0*e,i);const u=Math.max((i-e)/2,0),c=Math.floor(u/e),o=a-c*e;r.seek(o);for(let h=-c;h<=c;h++)n(r.clone(),h,a+h*e,i),r.seek(e)}function c(t,e){const n=e;for(let s=0;s<t.length;s++){let e=t[s];o(e,n);const i=[];i.push(e[0]);for(let t=1;t<e.length;t++){const[n,s]=e[t-1],[r,h]=e[t],a=r-n,d=h-s;i.push([a,d])}t[s]=i,e=i}return t}function o(e,i){const r=1e-6;if(i<=0)return;const h=e.length;if(h<3)return;const a=[];let d=0;a.push(0);for(let t=1;t<h;t++)d+=s(e[t],e[t-1]),a.push(d);i=Math.min(i,.2*d);const u=[];u.push(e[0][0]),u.push(e[0][1]);const c=e[h-1][0],o=e[h-1][1],_=t([0,0],e[0],e[1]);n(_),e[0][0]+=i*_[0],e[0][1]+=i*_[1],t(_,e[h-1],e[h-2]),n(_),e[h-1][0]+=i*_[0],e[h-1][1]+=i*_[1];for(let t=1;t<h;t++)a[t]+=i;a[h-1]+=i;const g=.5*i;for(let t=1;t<h-1;t++){let n=0,s=0,d=0;for(let h=t-1;h>=0&&!(a[h+1]<a[t]-g);h--){const u=g+a[h+1]-a[t],c=a[h+1]-a[h],o=a[t]-a[h]<g?1:u/c;if(Math.abs(o)<r)break;const _=o*o,l=o*u-.5*_*c,x=o*c/i,f=e[h+1],y=e[h][0]-f[0],S=e[h][1]-f[1];n+=x/l*(f[0]*o*u+.5*_*(u*y-c*f[0])-_*o*c*y/3),s+=x/l*(f[1]*o*u+.5*_*(u*S-c*f[1])-_*o*c*S/3),d+=x}for(let u=t+1;u<h&&!(a[u-1]>a[t]+g);u++){const h=g-a[u-1]+a[t],c=a[u]-a[u-1],o=a[u]-a[t]<g?1:h/c;if(Math.abs(o)<r)break;const _=o*o,l=o*h-.5*_*c,x=o*c/i,f=e[u-1],y=e[u][0]-f[0],S=e[u][1]-f[1];n+=x/l*(f[0]*o*h+.5*_*(h*y-c*f[0])-_*o*c*y/3),s+=x/l*(f[1]*o*h+.5*_*(h*S-c*f[1])-_*o*c*S/3),d+=x}u.push(n/d),u.push(s/d)}u.push(c),u.push(o);for(let t=0,n=0;t<h;t++)e[t][0]=u[n++],e[t][1]=u[n++]}export{d as SegmentCursor,u as pathDivide,h as pathLength,i as segmentAt,r as segmentCount,a as segmentLength,c as smoothPaths};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{AFillMeshWriter as t}from"./AFillMeshWriter.js";import{processColorInput as e,getMinMaxZoom as o}from"./meshWriterUtils.js";import{DataType as r}from"../../../../../../webgl/enums.js";const a={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:r.HALF_FLOAT,count:2,pack:({scaleInfo:t},{tileInfo:e})=>o(t,e)}},attributes:{id:{type:r.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:r.UNSIGNED_BYTE,count:1},pos:{type:r.SHORT,count:2,pack:"position",packPrecisionFactor:10},color:{type:r.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>e(t)}}};class i extends t{constructor(){super(...arguments),this.vertexSpec=a}get _effectRotation(){const{effectRotation:t,effectRotationType:e,viewRotation:o}=this.evaluatedMeshParams;return null==t&&null==o?null:{value:t,type:e,viewRotation:o}}createTesselationParams(t){return null}}export{i as FillMeshWriter,a as fillVertexSpec};
2
+ import{AFillMeshWriter as t}from"./AFillMeshWriter.js";import{processColorInput as e,getMinMaxZoom as o}from"./meshWriterUtils.js";import{DataType as i}from"../../../../../../webgl/enums.js";const r={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:i.HALF_FLOAT,count:2,pack:({scaleInfo:t},{tileInfo:e})=>o(t,e)}},attributes:{id:{type:i.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:i.UNSIGNED_BYTE,count:1},pos:{type:i.SHORT,count:2,pack:"position",packPrecisionFactor:10},color:{type:i.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>e(t)}}};class n extends t{constructor(){super(...arguments),this.vertexSpec=r}get _effectRotation(){const{effectRotation:t,effectRotationType:e,useEffectOrigin:o,viewRotation:i}=this.evaluatedMeshParams;return null==t&&null==i?null:{value:t,type:e,useEffectOrigin:!!o,viewRotation:i}}createTesselationParams(t){return null}}export{n as FillMeshWriter,r as fillVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{CIMSymbolUnits as t}from"../../../../../../../symbols/cim/types.js";import{spritePadding as e,gradientTextureExternalPadding as r}from"../../../definitions.js";import{AFillMeshWriter as i}from"./AFillMeshWriter.js";import{fillVertexSpec as s}from"./FillMeshWriter.js";import{gradientFillMethods as a,bitset as o}from"./gradientFillConstants.js";import{getGradientSizeHelper as n}from"./GradientSizeHelper.js";import{getBitMask as l}from"./meshWriterUtils.js";import{DataType as c}from"../../../../../../webgl/enums.js";const p={createComputedParams:t=>t,optionalAttributes:s.optionalAttributes,attributes:{...s.attributes,bitset:{type:c.UNSIGNED_BYTE,count:1,pack:({gradientSizeUnits:e,gradientType:r})=>{let i=0;return e===t.Absolute&&(i|=l(o.isAbsolute)),"discrete"===r.toLowerCase()&&(i|=l(o.isDiscrete)),i}},tlbr:{count:4,type:c.UNSIGNED_SHORT,pack:({sprite:t})=>{const{rect:i,width:s,height:a}=t,o=i.x+e+r,n=i.y+e;return[o,n,o+s-2*r,n+a]}},relativePosition:{count:2,type:c.HALF_FLOAT,packTessellation:({gradientStats:t},e,r,i)=>t?.getRelativePosition(r,i)??[0,0]},relativeGradientSize:{count:2,type:c.HALF_FLOAT,packTessellation:({gradientStats:t})=>t?.relativeSize??[1,1]},gradientMethod:{count:1,type:c.UNSIGNED_BYTE,pack:({gradientMethod:t})=>{switch(t.toLowerCase()){case"rectangular":return a.rectangular;case"circular":return a.circular;default:return a.linear}}}}};class u extends i{constructor(){super(...arguments),this.vertexSpec=p}get _effectRotation(){const{effectRotation:t,effectRotationType:e,viewRotation:r}=this.evaluatedMeshParams;return null==t&&null==r?null:{value:t,type:e,viewRotation:r}}get _preventEffectClipping(){return!0}createTesselationParams(t){return{gradientStats:n(this._unclippedGeometry,this.evaluatedMeshParams)}}_write(t,{target:e,effectGeometry:r}){const i=r?.asOptimized()??e.readGeometryForDisplay();this._unclippedGeometry=i;const s=this._clip(i);if(!s)return void(this._unclippedGeometry=null);const a=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,a),this._writeGeometry(t,e,s),this._unclippedGeometry=null,t.recordEnd()}}export{u as GradientFillMeshWriter,p as gradientFillVertexSpec};
2
+ import{CIMSymbolUnits as t}from"../../../../../../../symbols/cim/types.js";import{spritePadding as e,gradientTextureExternalPadding as r}from"../../../definitions.js";import{AFillMeshWriter as i}from"./AFillMeshWriter.js";import{fillVertexSpec as s}from"./FillMeshWriter.js";import{gradientFillMethods as a,bitset as o}from"./gradientFillConstants.js";import{getGradientSizeHelper as n}from"./GradientSizeHelper.js";import{getBitMask as l}from"./meshWriterUtils.js";import{DataType as c}from"../../../../../../webgl/enums.js";const u={createComputedParams:t=>t,optionalAttributes:s.optionalAttributes,attributes:{...s.attributes,bitset:{type:c.UNSIGNED_BYTE,count:1,pack:({gradientSizeUnits:e,gradientType:r})=>{let i=0;return e===t.Absolute&&(i|=l(o.isAbsolute)),"discrete"===r.toLowerCase()&&(i|=l(o.isDiscrete)),i}},tlbr:{count:4,type:c.UNSIGNED_SHORT,pack:({sprite:t})=>{const{rect:i,width:s,height:a}=t,o=i.x+e+r,n=i.y+e;return[o,n,o+s-2*r,n+a]}},relativePosition:{count:2,type:c.HALF_FLOAT,packTessellation:({gradientStats:t},e,r,i)=>t?.getRelativePosition(r,i)??[0,0]},relativeGradientSize:{count:2,type:c.HALF_FLOAT,packTessellation:({gradientStats:t})=>t?.relativeSize??[1,1]},gradientMethod:{count:1,type:c.UNSIGNED_BYTE,pack:({gradientMethod:t})=>{switch(t.toLowerCase()){case"rectangular":return a.rectangular;case"circular":return a.circular;default:return a.linear}}}}};class p extends i{constructor(){super(...arguments),this.vertexSpec=u}get _effectRotation(){const{effectRotation:t,effectRotationType:e,useEffectOrigin:r,viewRotation:i}=this.evaluatedMeshParams;return null==t&&null==i?null:{value:t,type:e,useEffectOrigin:!!r,viewRotation:i}}get _preventEffectClipping(){return!0}createTesselationParams(t){return{gradientStats:n(this._unclippedGeometry,this.evaluatedMeshParams)}}_write(t,{target:e,effectGeometry:r}){const i=r?.asOptimized()??e.readGeometryForDisplay();this._unclippedGeometry=i;const s=this._clip(i);if(!s)return void(this._unclippedGeometry=null);const a=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,a),this._writeGeometry(t,e,s),this._unclippedGeometry=null,t.recordEnd()}}export{p as GradientFillMeshWriter,u as gradientFillVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{thinLineHalfWidthThreshold as s}from"../../../definitions.js";import{LineTessellation as i}from"../../../TurboLine.js";import{clipLinesMarshall as r}from"../../../mesh/templates/templateUtils.js";import{processLineCapInput as o,processLineJoinInput as n,packRounded as a,processColorInput as c,getMinMaxZoom as h}from"../fill/meshWriterUtils.js";import{MeshWriter as l}from"../mesh/MeshWriter.js";import{getLineClippingMargin as m}from"../mesh/utils.js";import{DataType as u}from"../../../../../../webgl/enums.js";class f{constructor(){this.extrusionOffsetX=0,this.extrusionOffsetY=0,this.normalX=0,this.normalY=0,this.directionX=0,this.directionY=0,this.distance=0,this.pathLength=0,this.distanceOffset=0,this.lineLength=0}}const p={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:u.HALF_FLOAT,count:2,pack:({scaleInfo:t},{tileInfo:e})=>h(t,e)}},attributes:{id:{type:u.UNSIGNED_BYTE,count:3,pack:"id"},pos:{type:u.SHORT,count:2,pack:"position",packPrecisionFactor:10},bitset:{type:u.UNSIGNED_BYTE,count:1},color:{type:u.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>c(t)},offset:{type:u.BYTE,count:2,packPrecisionFactor:16,packTessellation:({extrusionOffsetX:t,extrusionOffsetY:e})=>[a(t,16),a(e,16)]},normal:{type:u.BYTE,count:2,packPrecisionFactor:16,packTessellation:({normalX:t,normalY:e})=>[a(t,16),a(e,16)]},halfWidth:{type:u.HALF_FLOAT,count:1,pack:({width:e})=>t(.5*e)},referenceHalfWidth:{type:u.HALF_FLOAT,count:1,pack:({referenceWidth:e})=>t(.5*e)}}};class d{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0,this.distanceOffset=0}}const _=65535;class x extends l{get _effectRotation(){const{effectRotation:t,effectRotationType:e,viewRotation:s}=this.evaluatedMeshParams;return null==t&&null==s?null:{value:t,type:e,viewRotation:s}}constructor(t,e,s,i){super(t,e,s,i),this.vertexSpec=p,this._currentWrite=new d,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:_,textured:!1},this._tessParams=new f,this._initializeTessellator()}writeLineVertices(t,e,s){const i=this._getLines(e);null!=i&&this._writeVertices(t,s,i)}_initializeTessellator(){this._lineTessellator=new i(this._writeTesselatedVertex.bind(this),this._writeTriangle.bind(this),!0)}_write(t,{target:s,effectGeometry:i}){const r=i??e.fromFeatureSetReaderCIM(s);r&&this._writeGeometry(t,s,r)}_writeGeometry(t,e,s,i){t.recordStart(this.instanceId,this.attributeLayout,i),this.writeLineVertices(t,s,e),t.recordEnd()}_getLines(t){return r(t,m(this.evaluatedMeshParams))}_writeVertices(e,i,r){const{_currentWrite:a,_tessellationOptions:c,evaluatedMeshParams:h}=this,{width:l,capType:m,joinType:u,miterLimit:f,hasSizeVV:p}=h,d=t(.5*l);c.halfWidth=d,c.capType=o(m),c.joinType=n(u),c.miterLimit=f;const x=!p;a.out=e,a.id=i.getDisplayId(),a.vertexCount=0,a.indexCount=0,a.vertexFrom=e.vertexCount(),a.vertexBounds=x&&d<s?0:1;for(const{line:t,start:s,pathLength:o}of r)c.initialDistance=s%_,a.pathLength=o,a.distanceOffset=Math.floor(s/_)*_,this._lineTessellator.tessellate(t,c,x)}_writeTesselatedVertex(t,e,s,i,r,o,n,a,c,h,l){const{out:m,id:u,vertexBounds:f,pathLength:p,distanceOffset:d}=this._currentWrite;return this.hasEffects&&m.recordBounds(t,e,f,f),this._tessParams.extrusionOffsetX=n,this._tessParams.extrusionOffsetY=a,this._tessParams.normalX=c,this._tessParams.normalY=h,this._tessParams.directionX=r,this._tessParams.directionY=o,this._tessParams.distance=l,this._tessParams.pathLength=p,this._tessParams.distanceOffset=d,this._writeVertex(m,u,t,e,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(t,e,s){const{out:i}=this._currentWrite;i.indexEnsureSize(3),i.indexWrite(t),i.indexWrite(e),i.indexWrite(s),this._currentWrite.indexCount+=3}}export{x as LineMeshWriter,f as LineTessellationParams,p as LineVertexSpec};
2
+ import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{thinLineHalfWidthThreshold as s}from"../../../definitions.js";import{LineTessellation as i}from"../../../TurboLine.js";import{clipLinesMarshall as r}from"../../../mesh/templates/templateUtils.js";import{processLineCapInput as o,processLineJoinInput as n,packRounded as a,processColorInput as c,getMinMaxZoom as h}from"../fill/meshWriterUtils.js";import{MeshWriter as l}from"../mesh/MeshWriter.js";import{getLineClippingMargin as u}from"../mesh/utils.js";import{DataType as f}from"../../../../../../webgl/enums.js";class m{constructor(){this.extrusionOffsetX=0,this.extrusionOffsetY=0,this.normalX=0,this.normalY=0,this.directionX=0,this.directionY=0,this.distance=0,this.pathLength=0,this.distanceOffset=0,this.lineLength=0}}const p={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:f.HALF_FLOAT,count:2,pack:({scaleInfo:t},{tileInfo:e})=>h(t,e)}},attributes:{id:{type:f.UNSIGNED_BYTE,count:3,pack:"id"},pos:{type:f.SHORT,count:2,pack:"position",packPrecisionFactor:10},bitset:{type:f.UNSIGNED_BYTE,count:1},color:{type:f.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>c(t)},offset:{type:f.BYTE,count:2,packPrecisionFactor:16,packTessellation:({extrusionOffsetX:t,extrusionOffsetY:e})=>[a(t,16),a(e,16)]},normal:{type:f.BYTE,count:2,packPrecisionFactor:16,packTessellation:({normalX:t,normalY:e})=>[a(t,16),a(e,16)]},halfWidth:{type:f.HALF_FLOAT,count:1,pack:({width:e})=>t(.5*e)},referenceHalfWidth:{type:f.HALF_FLOAT,count:1,pack:({referenceWidth:e})=>t(.5*e)}}};class d{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0,this.distanceOffset=0}}const _=65535;class x extends l{get _effectRotation(){const{effectRotation:t,effectRotationType:e,useEffectOrigin:s,viewRotation:i}=this.evaluatedMeshParams;return null==t&&null==i?null:{value:t,type:e,useEffectOrigin:!!s,viewRotation:i}}constructor(t,e,s,i){super(t,e,s,i),this.vertexSpec=p,this._currentWrite=new d,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:_,textured:!1},this._tessParams=new m,this._initializeTessellator()}writeLineVertices(t,e,s){const i=this._getLines(e);null!=i&&this._writeVertices(t,s,i)}_initializeTessellator(){this._lineTessellator=new i(this._writeTesselatedVertex.bind(this),this._writeTriangle.bind(this),!0)}_write(t,{target:s,effectGeometry:i}){const r=i??e.fromFeatureSetReaderCIM(s);r&&this._writeGeometry(t,s,r)}_writeGeometry(t,e,s,i){t.recordStart(this.instanceId,this.attributeLayout,i),this.writeLineVertices(t,s,e),t.recordEnd()}_getLines(t){return r(t,u(this.evaluatedMeshParams))}_writeVertices(e,i,r){const{_currentWrite:a,_tessellationOptions:c,evaluatedMeshParams:h}=this,{width:l,capType:u,joinType:f,miterLimit:m,hasSizeVV:p}=h,d=t(.5*l);c.halfWidth=d,c.capType=o(u),c.joinType=n(f),c.miterLimit=m;const x=!p;a.out=e,a.id=i.getDisplayId(),a.vertexCount=0,a.indexCount=0,a.vertexFrom=e.vertexCount(),a.vertexBounds=x&&d<s?0:1;for(const{line:t,start:s,pathLength:o}of r)c.initialDistance=s%_,a.pathLength=o,a.distanceOffset=Math.floor(s/_)*_,this._lineTessellator.tessellate(t,c,x)}_writeTesselatedVertex(t,e,s,i,r,o,n,a,c,h,l){const{out:u,id:f,vertexBounds:m,pathLength:p,distanceOffset:d}=this._currentWrite;return this.hasEffects&&u.recordBounds(t,e,m,m),this._tessParams.extrusionOffsetX=n,this._tessParams.extrusionOffsetY=a,this._tessParams.normalX=c,this._tessParams.normalY=h,this._tessParams.directionX=r,this._tessParams.directionY=o,this._tessParams.distance=l,this._tessParams.pathLength=p,this._tessParams.distanceOffset=d,this._writeVertex(u,f,t,e,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(t,e,s){const{out:i}=this._currentWrite;i.indexEnsureSize(3),i.indexWrite(t),i.indexWrite(e),i.indexWrite(s),this._currentWrite.indexCount+=3}}export{x as LineMeshWriter,m as LineTessellationParams,p as LineVertexSpec};
@@ -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{loadGeometryOperatorsForEffect as t,loadGeometryOperatorsForPlacement as s}from"../../../../../../../symbols/cim/CIMEffects.js";import{getEffectsInflateSize as r}from"../../../../../../../symbols/cim/utils.js";import{EffectHelper as a}from"../../../../../../../symbols/cim/effects/EffectHelper.js";import{MeshWriterVertexPack as i}from"./MeshWriterVertexPack.js";const n=96/72;class c{constructor(e,t,s,r){this._instanceId=e,this._evaluator=t,this._enabledOptionalAttributes=s,this._viewParams=r,this._evaluator.evaluator=e=>this.vertexSpec.createComputedParams(e)}get _vertexPack(){if(!this._cachedVertexPack){const e=i.fromVertexSpec(this.vertexSpec,this._enabledOptionalAttributes);this._evaluator.hasDynamicProperties||e.pack(this._evaluator.evaluatedMeshParams,this._viewParams),this._cachedVertexPack=e}return this._cachedVertexPack}get evaluatedMeshParams(){return this._evaluator.evaluatedMeshParams}get hasEffects(){return!!this.evaluatedMeshParams.effects}get effectInfos(){return this._evaluator.inputMeshParams.effects?.effectInfos}get placementInfo(){return this._evaluator.inputMeshParams.placement}get instanceId(){return this._instanceId}get attributeLayout(){return this._vertexPack.attributeLayout}get _preventEffectClipping(){return!1}get _effectRotation(){return null}setReferences(e){this._references=e}getBoundsInfo(){return null}getTileInfo(){return this._viewParams.tileInfo}async loadDependencies(){for(const{effect:e}of this.effectInfos||[])await t(e);this.placementInfo&&await s(this.placementInfo.placement)}enqueueRequest(e,t,s){this._evaluator.hasDynamicProperties&&this._evaluator.enqueueRequest(e,t,s)}write(e,t,s,r,a,i,n,c){this.ensurePacked(t,s,r);const o=e.id||"",h=this.evaluatedMeshParams.effects,u=this._createEffectExecutionContext(s,r,o,n,c),f={target:s,options:r,level:a,viewExtent:i};if(!h||0===h.length)return void this._write(e,f);const l=this.getEffectCursor(s,h,u);if(!l)return;let m;for(;m=l.next();)m.invertY(),this._write(e,{...f,effectGeometry:m,scaleFactor:n})}ensurePacked(e,t,s){if(!this._evaluator.hasDynamicProperties)return;const r=this._evaluator.evaluateMeshParams(e,t,s);this._vertexPack.pack(r,this._viewParams)}hasArcadeDependency(e){return this._evaluator.hasArcadeDependency(e)}_writeVertex(e,t,s,r,a){const i=this.evaluatedMeshParams;this._vertexPack.writeVertex(e,t,s,r,i,a)}_createEffectExecutionContext(e,t,s,a,i){return{geomUnitsPerPoint:n,maxInflateSize:r(this.evaluatedMeshParams.effects),scale:t.$view.scale,spatialReference:e.metadata.outSpatialReference??e.metadata.spatialReference,preventClipping:this._preventEffectClipping,tileKey:s,scaleFactor:a,matcher:i,target:e}}getEffectCursor(t,s,r){null==r.scaleFactor&&(r={...r,scaleFactor:1});const i=t.readGeometryForDisplay()?.clone();if(!i)return;const n=e.fromOptimizedCIM(i,t.geometryType);n.invertY();const c=a.executeEffects(s,n,r),h=this._effectRotation,u=h?.value,f=h?.viewRotation;if("esriGeometryPoint"!==t.geometryType||(null==u||isNaN(u))&&(null==f||isNaN(f)))return c;if(n.reset(),!n.nextPath()||!n.nextPoint())return c;const l=n.x,m=n.y;n.reset();const _=(null==u||isNaN(u)?0:"arithmetic"===h?.type?90-u:u)+(null==f||isNaN(f)?0:-f);return 0===_?c:new o(c,l,m,-_*Math.PI/180)}}class o{constructor(e,t,s,r){this._cursor=e,this._centerX=t,this._centerY=s,this._cos=Math.cos(r),this._sin=Math.sin(r)}next(){const e=this._cursor.next();if(!e)return null;const t=e.clone();for(;t.nextPath();)for(;t.nextPoint();){const e=t.x-this._centerX,s=t.y-this._centerY;t.x=this._centerX+e*this._cos-s*this._sin,t.y=this._centerY+e*this._sin+s*this._cos}return t.reset(),t}}export{c as MeshWriter};
2
+ import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{loadGeometryOperatorsForEffect as t,loadGeometryOperatorsForPlacement as s}from"../../../../../../../symbols/cim/CIMEffects.js";import{getEffectsInflateSize as r}from"../../../../../../../symbols/cim/utils.js";import{EffectHelper as a}from"../../../../../../../symbols/cim/effects/EffectHelper.js";import{MeshWriterVertexPack as i}from"./MeshWriterVertexPack.js";const n=96/72;class c{constructor(e,t,s,r){this._instanceId=e,this._evaluator=t,this._enabledOptionalAttributes=s,this._viewParams=r,this._evaluator.evaluator=e=>this.vertexSpec.createComputedParams(e)}get _vertexPack(){if(!this._cachedVertexPack){const e=i.fromVertexSpec(this.vertexSpec,this._enabledOptionalAttributes);this._evaluator.hasDynamicProperties||e.pack(this._evaluator.evaluatedMeshParams,this._viewParams),this._cachedVertexPack=e}return this._cachedVertexPack}get evaluatedMeshParams(){return this._evaluator.evaluatedMeshParams}get hasEffects(){return!!this.evaluatedMeshParams.effects}get effectInfos(){return this._evaluator.inputMeshParams.effects?.effectInfos}get placementInfo(){return this._evaluator.inputMeshParams.placement}get instanceId(){return this._instanceId}get attributeLayout(){return this._vertexPack.attributeLayout}get _preventEffectClipping(){return!1}get _effectRotation(){return null}setReferences(e){this._references=e}getBoundsInfo(){return null}getTileInfo(){return this._viewParams.tileInfo}async loadDependencies(){for(const{effect:e}of this.effectInfos||[])await t(e);this.placementInfo&&await s(this.placementInfo.placement)}enqueueRequest(e,t,s){this._evaluator.hasDynamicProperties&&this._evaluator.enqueueRequest(e,t,s)}write(e,t,s,r,a,i,n,c){this.ensurePacked(t,s,r);const o=e.id||"",u=this.evaluatedMeshParams.effects,f=this._createEffectExecutionContext(s,r,o,n,c),h={target:s,options:r,level:a,viewExtent:i};if(!u||0===u.length)return void this._write(e,h);const l=this.getEffectCursor(s,u,f);if(!l)return;let m;for(;m=l.next();)m.invertY(),this._write(e,{...h,effectGeometry:m,scaleFactor:n})}ensurePacked(e,t,s){if(!this._evaluator.hasDynamicProperties)return;const r=this._evaluator.evaluateMeshParams(e,t,s);this._vertexPack.pack(r,this._viewParams)}hasArcadeDependency(e){return this._evaluator.hasArcadeDependency(e)}_writeVertex(e,t,s,r,a){const i=this.evaluatedMeshParams;this._vertexPack.writeVertex(e,t,s,r,i,a)}_createEffectExecutionContext(e,t,s,a,i){return{geomUnitsPerPoint:n,maxInflateSize:r(this.evaluatedMeshParams.effects),scale:t.$view.scale,spatialReference:e.metadata.outSpatialReference??e.metadata.spatialReference,preventClipping:this._preventEffectClipping,tileKey:s,scaleFactor:a,matcher:i,target:e}}getEffectCursor(t,s,r){null==r.scaleFactor&&(r={...r,scaleFactor:1});const i=t.readGeometryForDisplay()?.clone();if(!i)return;const n=e.fromOptimizedCIM(i,t.geometryType);n.invertY();const c=a.executeEffects(s,n,r),u=this._effectRotation,f=u?.value,h=u?.viewRotation;if((null==f||isNaN(f))&&(null==h||isNaN(h)))return c;const l=(null==f||isNaN(f)?0:"arithmetic"===u?.type?90-f:f)+(null==h||isNaN(h)?0:-h);if(0===l)return c;let m=null;return"esriGeometryPoint"===t.geometryType&&(n.reset(),n.nextPath()&&n.nextPoint()&&(m=[n.x,n.y]),n.reset()),new o(c,r,m,u?.useEffectOrigin??!1,-l*Math.PI/180)}}class o{constructor(e,t,s,r,a){this._cursor=e,this._executionContext=t,this._sourceOrigin=s,this._useEffectOrigin=r,this._cos=Math.cos(a),this._sin=Math.sin(a)}next(){this._executionContext.effectOrigin=null;const e=this._cursor.next();if(!e)return null;const t=(this._useEffectOrigin?this._executionContext.effectOrigin:null)??this._sourceOrigin;if(!t)return e;const[s,r]=t,a=e.clone();for(;a.nextPath();)for(;a.nextPoint();){const e=a.x-s,t=a.y-r;a.x=s+e*this._cos-t*this._sin,a.y=r+e*this._sin+t*this._cos}return a.reset(),a}}export{c as MeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../../../../../core/Logger.js";import{CIMSymbolHelper as a}from"../../../../../../../symbols/cim/CIMSymbolHelper.js";import{defaultCIMValues as i}from"../../../../../../../symbols/cim/defaultCIMValues.js";import{Techniques as n}from"../../../../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{getMaxSizeVVSize as t,noVisualVariables as l}from"../VisualVariablesSchema.js";import{getAnimatedTechniqueSprite as o,hasSizeVVUniform as r}from"./utils.js";function s(a,i){if(a&&i){const n=a.toLowerCase(),t=i.get(n);if(void 0!==t)return{name:n,index:t};e.getLogger("esri.views.2d.layers.features.schema.processor.symbols/ComplexSymbolSchema").warn(`Invalid symbol layer name: "${a}"`)}return null}function c(e,a){if(a?.enabled&&a.drawOrder){const i=a.drawOrder.map(e=>e.toLowerCase()).slice().reverse(),n=new Map;for(const a of e)if(a.groupName&&a.name){const e=a.name.toLowerCase(),t=a.groupName.toLowerCase(),l=i.indexOf(t);-1!==l&&(n.has(l)||n.set(l,[]),n.get(l).push(e))}const t=[];i.forEach((e,a)=>{n.has(a)?t.push(...n.get(a)):t.push(e)});const l=new Map;return t.forEach((e,a)=>{l.set(e,a)}),l}return null}function u(e){return e.minScale||e.maxScale?{minScale:e.minScale??0,maxScale:e.maxScale??0}:null}function f(e){if(null==e)return null;if(Array.isArray(e)){const[a,i,n,t]=e;return[a,i,n,255*t]}return"string"==typeof e?e:{...e,defaultValue:f(e?.defaultValue)}}async function m(e,i){const{cimResourceManager:n,cimAnalyzer:t,scaleExpression:l,symbolLayerDrawing:o}=i.schemaOptions,r=e.symbol;if(null==r)return[];await a.normalizeSymbolAndFetchResources(r,n);const s=t.analyzeSymbolReference(e,!1),f=u(e),m=c(s,o),S="CIMPointSymbol"===r.type&&"Map"!==r.angleAlignment?i.schemaOptions.viewRotation:null,b={scaleInfo:f,scaleExpression:l,rotationVariable:i.rotationVariable??null,viewRotation:S,layerOrderMap:m},V=[];for(const a of s)switch(a.type){case"marker":V.push(...p(a,i,b));break;case"fill":V.push(...g(a,i,b));break;case"outlineFill":V.push(...d(a,i,b));break;case"gradientFill":V.push(...I(a,i,b));break;case"line":V.push(...R(a,i,b));break;case"gradientStroke":V.push(...L(a,i,b));break;case"text":V.push(...x(a,i,b))}return V}function p(e,a,i){const{uniforms:t,schemaOptions:o}=a,{store:r}=o,{layerOrderMap:c}=i,u=e.isOutline?{...l,visualVariableSizeScaleStops:t.visualVariableSizeOutlineScaleStops}:{visualVariableColor:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue,visualVariableRotation:t.visualVariableRotation};if(e.animationParams){const{hasShiftAnimation:a}=e.animationParams.params,t=a?n.animatedMarkerShift:n.animatedMarker;return S(r.ensureInstance(t,{uniforms:u,optionalAttributes:{zoomRange:!0,value1Position2Value2:e.animationParams.params.hasShiftAnimation,lineLength:a}},s(e.name,c)),e,l,i)}return V(r.ensureInstance(n.marker,{uniforms:u,optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,c)),e,t,i)}function S(e,a,i,n){if(!a.animationParams)return[];return[e.createMeshInfo({pixelDimensions:a.pixelDimensions,texelDimensions:a.texelDimensions,effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,sprite:o(a),animations:a.animationParams,scaleInfo:n.scaleInfo,scaleSymbolsProportionally:a.scaleSymbolsProportionally,strokeWidth:a.outlineWidth,isMapAligned:1===a.alignment,colorLocked:a.colorLocked,isStroke:a.isStroke,baseSize:a.baseSize,placement:a.markerPlacement,referenceSize:a.referenceSize,angleToLine:!!a.markerPlacement&&(a.markerPlacement.placement&&"angleToLine"in a.markerPlacement.placement&&a.markerPlacement.placement.angleToLine),sizeRatio:a.sizeRatio,patternHeight:null})]}function b(e,a,i,n){if(!a.animationParams)return[];return[e.createMeshInfo({effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,sprite:o(a),animations:a.animationParams,scaleInfo:n.scaleInfo,scaleSymbolsProportionally:!1,strokeWidth:1,isMapAligned:!0,colorLocked:a.colorLocked||!1,isStroke:!1,baseSize:"width"in a?a.width:-1,placement:null,referenceSize:2,angleToLine:!1,sizeRatio:1,patternHeight:"fill"===a.type&&a.spriteRasterizationParam?a.height:null,joinType:"join"in a?a.join:"round",capType:"cap"in a?a.cap:"round",miterLimit:"miterLimit"in a&&a.miterLimit||2,angle:"angle"in a?a.angle:0})]}function V(e,a,n,{scaleInfo:l,scaleExpression:o}){const s=r(n);return[e.createMeshInfo({size:a.size,scaleX:a.scaleX,anchorX:a.anchorPoint.x,anchorY:a.anchorPoint.y,angle:a.rotation,color:f(a.color)??[0,0,0,0],colorLocked:a.colorLocked,frameHeight:a.frameHeight,widthRatio:a.widthRatio,scaleInfo:l,offsetX:a.offsetX,offsetY:a.offsetY,outlineColor:f(a.outlineColor)??[0,0,0,0],outlineSize:a.outlineWidth,referenceSize:a.referenceSize||i.CIMVectorMarker.size,rotateClockwise:a.rotateClockwise,scaleFactor:o??1,sizeRatio:a.sizeRatio,alignment:a.alignment,isAbsoluteAnchorPoint:a.isAbsoluteAnchorPoint,scaleSymbolsProportionally:a.scaleSymbolsProportionally,sprite:a.spriteRasterizationParam,hasSizeVV:s,placement:a.markerPlacement,effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,transforms:a.transform,minPixelBuffer:t(n)})]}function h(e,a,i){const{uniforms:t,schemaOptions:o}=a,{store:r}=o,{layerOrderMap:c}=i,u={visualVariableColor:e.colorLocked?null:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity};if(e.animationParams){const a=n.animatedFill;return b(r.ensureInstance(a,{uniforms:{...u,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableSizeScaleStops:null,visualVariableRotation:null},optionalAttributes:{zoomRange:!0,value1Position2Value2:!1,lineLength:!1}},s(e.name,c)),e,l,i)}return v(r.ensureInstance(n.fill,{uniforms:u,optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,c)),e,i)}function d(e,a,i){const{uniforms:t,schemaOptions:l}=a,{store:o}=l,{layerOrderMap:r}=i;return z(o.ensureInstance(n.outlineFill,{uniforms:{visualVariableColor:e.colorLocked?null:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null},optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,r)),e,i)}function z(e,a,i){const n=f(a.color)??[0,0,0,0],t=f(a.outlineColor)??[0,0,0,0];return[e.createMeshInfo({color:n,outlineColor:t,width:a.outlineWidth,referenceWidth:a.referenceWidth,capType:a.cap,joinType:a.join,miterLimit:a.miterLimit,outlineUsesColorVV:!a.outlineColorLocked,hasSizeVV:!1,scaleInfo:i.scaleInfo,...P(!!a.effects?.length||!!a.outlineEffects?.length,i.rotationVariable,i.viewRotation),effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,outlineEffects:a.outlineEffects?{type:"cim-effect-infos",effectInfos:a.outlineEffects}:null})]}function v(e,a,{scaleInfo:i,rotationVariable:n,viewRotation:t}){return[e.createMeshInfo({color:f(a.color)??[0,0,0,0],scaleInfo:i,...P(!!a.effects?.length,n,t),effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null})]}function g(e,a,i){const{layerOrderMap:t}=i;if(!e.spriteRasterizationParam)return h(e,a,i);const{uniforms:o,schemaOptions:r}=a,{store:c}=r,u={visualVariableColor:e.colorLocked?null:o.visualVariableColor,visualVariableOpacity:o.visualVariableOpacity};if(e.animationParams){const a=n.animatedFill;return b(c.ensureInstance(a,{uniforms:{...u,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableSizeScaleStops:null,visualVariableRotation:null},optionalAttributes:{zoomRange:!0,value1Position2Value2:!1,lineLength:!1,angle:!!e.angle}},s(e.name,t)),e,l,i)}return y(c.ensureInstance(n.complexFill,{uniforms:u,optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,t)),e,null!=o.visualVariableColor,i)}function y(e,a,i,{scaleInfo:n,rotationVariable:t,viewRotation:l}){if(!a.spriteRasterizationParam)throw new Error("InternalError: Sprite should always be defined");const o=!!a.hasUnresolvedReplacementColor&&(!i||a.colorLocked),r=a.sampleAlphaOnly&&!o,s=a.spriteRasterizationParam;return[e.createMeshInfo({color:f(a.color)??[0,0,0,0],height:a.height,aspectRatio:a.scaleX,offsetX:a.offsetX,offsetY:a.offsetY,scaleX:1,scaleY:1,angle:a.angle,applyRandomOffset:a.applyRandomOffset,sampleAlphaOnly:r,scaleProportionally:"CIMHatchFill"===s.resource.type,sprite:s,scaleInfo:n,...P(!!a.effects?.length,t,l),effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null})]}function I(e,a,i){const{uniforms:t,schemaOptions:l}=a,{store:o}=l,{layerOrderMap:r}=i;return M(o.ensureInstance(n.gradientFill,{uniforms:{visualVariableColor:null,visualVariableOpacity:t.visualVariableOpacity},optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,r)),e,i)}function M(e,a,{scaleInfo:i,rotationVariable:n,viewRotation:t}){if(!a.spriteRasterizationParam)throw new Error("InternalError: Sprite should always be defined");const l=a.spriteRasterizationParam;return[e.createMeshInfo({color:f(a.color)??[0,0,0,0],angle:a.angle,gradientMethod:a.gradientMethod,gradientSize:a.gradientSize,gradientSizeUnits:a.gradientSizeUnits,gradientType:a.gradientType,sprite:l,scaleInfo:i,...P(!!a.effects?.length,n,t),effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null})]}function R(e,a,i){const{uniforms:t,schemaOptions:o}=a,{store:r}=o,{layerOrderMap:c}=i,u=e.isOutline?{...l,visualVariableSizeScaleStops:t.visualVariableSizeOutlineScaleStops}:{visualVariableColor:e.colorLocked?null:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue};if(e.animationParams){const{hasShiftAnimation:a}=e.animationParams.params,t=n.animatedLine;return b(r.ensureInstance(t,{uniforms:{...u,visualVariableRotation:null},optionalAttributes:{zoomRange:!0,value1Position2Value2:!1,accumulatedDistance:!0,segmentDirection:!0,normal:!0,lineLength:a,angle:!1}},s(e.name,c)),e,l,i)}const f={uniforms:u,optionalAttributes:{zoomRange:!!i.scaleInfo}},m=!!(u.visualVariableSizeMinMaxValue||u.visualVariableSizeScaleStops||u.visualVariableSizeStops||u.visualVariableSizeUnitValue);if(!e.spriteRasterizationParam){return C(r.ensureInstance(n.line,f,s(e.name,c)),e,m,i)}return w(r.ensureInstance(n.texturedLine,f,s(e.name,c)),e,m,i)}function O(e,a,{scaleInfo:i,rotationVariable:n,viewRotation:t}){return{color:f(e.color)??[0,0,0,0],width:e.width,referenceWidth:e.referenceWidth,capType:e.cap,joinType:e.join,miterLimit:e.miterLimit,scaleInfo:i,hasSizeVV:a,...P(!!e.effects?.length,n,t),effects:e.effects?{type:"cim-effect-infos",effectInfos:e.effects}:null}}function P(e,a,i){if(!e)return{};const n={};if(null!=i&&(n.viewRotation=i),!a)return n;const t=a.valueExpression??(a.field?`$feature[${JSON.stringify(a.field)}]`:null);return t?(n.effectRotation={valueExpressionInfo:{type:"CIMExpressionInfo",expression:t},defaultValue:0},n.effectRotationType=a.rotationType,n):n}function C(e,a,i,n){if(a.spriteRasterizationParam)throw new Error("InternalError: Sprite should not be defined");const t=O(a,i,n);return[e.createMeshInfo(t)]}function w(e,a,i,n){const{spriteRasterizationParam:t,scaleDash:l,sampleAlphaOnly:o}=a;if(!t)throw new Error("InternalError: Sprite should be defined");return[e.createMeshInfo({...O(a,i,n),offsetAlongLine:a.offsetAlongLine??0,shouldScaleDash:l??!1,shouldSampleAlphaOnly:o,isSDF:"CIMPictureStroke"!==t.resource.type&&"CIMGradientStroke"!==t.resource.type,sprite:t})]}function L(e,a,i){const{uniforms:t,schemaOptions:o}=a,{store:r}=o,{layerOrderMap:c}=i;return k(r.ensureInstance(n.gradientStroke,{uniforms:e.isOutline?{...l,visualVariableSizeScaleStops:t.visualVariableSizeOutlineScaleStops}:{visualVariableColor:null,visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,c)),e,i)}function k(e,a,i){if(!a.spriteRasterizationParam)throw new Error("InternalError: Sprite should always be defined");const n=a.spriteRasterizationParam;return[e.createMeshInfo({...O(a,!1,i),gradientMethod:a.gradientMethod,gradientSize:a.gradientSize,gradientSizeUnits:a.gradientSizeUnits,gradientType:a.gradientType,sprite:n,effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null})]}function x(e,a,i){const{uniforms:t,schemaOptions:l}=a,{store:o}=l,{layerOrderMap:r}=i;return A(o.ensureInstance(n.text,{uniforms:{visualVariableColor:e.colorLocked?null:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity,visualVariableRotation:t.visualVariableRotation,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!!i.scaleInfo,referenceSymbol:!1,clipAngle:!1,visibility:!1}},s(e.name,r)),e,t,i)}function A(e,a,i,{scaleInfo:n,scaleExpression:l}){return[e.createMeshInfo({alignment:a.alignment,boxBackgroundColor:f(a.backgroundColor),boxBorderLineColor:f(a.borderLineColor),boxBorderLineSize:a.borderLineWidth??0,color:f(a.color)??[0,0,0,0],offsetX:a.offsetX,offsetY:a.offsetY,postAngle:a.angle,fontSize:a.size,referenceSize:a.referenceSize,decoration:a.decoration,haloColor:f(a.haloColor)??[0,0,0,0],haloSize:a.haloSize??0,outlineColor:f(a.outlineColor)??[0,0,0,0],outlineSize:a.outlineSize,lineWidth:a.lineWidth||512,lineHeightRatio:1,horizontalAlignment:a.horizontalAlignment??"center",verticalAlignment:a.verticalAlignment??"baseline",useCIMAngleBehavior:!1,glyphs:a.textRasterizationParam,scaleInfo:n,effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,placement:a.markerPlacement,transforms:a.transform,scaleFactor:l??1,minPixelBuffer:t(i),repeatLabel:null,repeatLabelDistance:null,allowOverrun:null,labelPosition:null,layerId:null,labelClassId:null})]}export{S as createAnimatedMarkerMeshInfos,b as createAnimatedPolyMeshInfos,y as createComplexFillMeshInfos,V as createComplexMarkerMeshInfos,v as createComplexSimpleFillMeshInfos,C as createComplexSimpleLineMeshInfos,z as createComplexSimpleOutlineFillMeshInfos,m as createComplexSymbolInstances,A as createComplexTextMeshInfos,w as createComplexTexturedLineMeshInfos,M as createGradientFillMeshInfos,k as createGradientStrokeMeshInfos,u as getScaleInfo};
2
+ import e from"../../../../../../../core/Logger.js";import{CIMSymbolHelper as a}from"../../../../../../../symbols/cim/CIMSymbolHelper.js";import{defaultCIMValues as i}from"../../../../../../../symbols/cim/defaultCIMValues.js";import{Techniques as n}from"../../../../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{getMaxSizeVVSize as t,noVisualVariables as l}from"../VisualVariablesSchema.js";import{getAnimatedTechniqueSprite as o,hasSizeVVUniform as r}from"./utils.js";function s(a,i){if(a&&i){const n=a.toLowerCase(),t=i.get(n);if(void 0!==t)return{name:n,index:t};e.getLogger("esri.views.2d.layers.features.schema.processor.symbols/ComplexSymbolSchema").warn(`Invalid symbol layer name: "${a}"`)}return null}function c(e,a){if(a?.enabled&&a.drawOrder){const i=a.drawOrder.map(e=>e.toLowerCase()).slice().reverse(),n=new Map;for(const a of e)if(a.groupName&&a.name){const e=a.name.toLowerCase(),t=a.groupName.toLowerCase(),l=i.indexOf(t);-1!==l&&(n.has(l)||n.set(l,[]),n.get(l).push(e))}const t=[];i.forEach((e,a)=>{n.has(a)?t.push(...n.get(a)):t.push(e)});const l=new Map;return t.forEach((e,a)=>{l.set(e,a)}),l}return null}function u(e){return e.minScale||e.maxScale?{minScale:e.minScale??0,maxScale:e.maxScale??0}:null}function f(e){if(null==e)return null;if(Array.isArray(e)){const[a,i,n,t]=e;return[a,i,n,255*t]}return"string"==typeof e?e:{...e,defaultValue:f(e?.defaultValue)}}async function m(e,i){const{cimResourceManager:n,cimAnalyzer:t,scaleExpression:l,symbolLayerDrawing:o}=i.schemaOptions,r=e.symbol;if(null==r)return[];await a.normalizeSymbolAndFetchResources(r,n);const s=t.analyzeSymbolReference(e,!1),f=u(e),m=c(s,o),S="CIMPointSymbol"===r.type&&"Map"!==r.angleAlignment?i.schemaOptions.viewRotation:null,b={scaleInfo:f,scaleExpression:l,rotationVariable:i.rotationVariable??null,viewRotation:S,layerOrderMap:m},V=[];for(const a of s)switch(a.type){case"marker":V.push(...p(a,i,b));break;case"fill":V.push(...y(a,i,b));break;case"outlineFill":V.push(...d(a,i,b));break;case"gradientFill":V.push(...I(a,i,b));break;case"line":V.push(...R(a,i,b));break;case"gradientStroke":V.push(...k(a,i,b));break;case"text":V.push(...w(a,i,b))}return V}function p(e,a,i){const{uniforms:t,schemaOptions:o}=a,{store:r}=o,{layerOrderMap:c}=i,u=e.isOutline?{...l,visualVariableSizeScaleStops:t.visualVariableSizeOutlineScaleStops}:{visualVariableColor:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue,visualVariableRotation:t.visualVariableRotation};if(e.animationParams){const{hasShiftAnimation:a}=e.animationParams.params,t=a?n.animatedMarkerShift:n.animatedMarker;return S(r.ensureInstance(t,{uniforms:u,optionalAttributes:{zoomRange:!0,value1Position2Value2:e.animationParams.params.hasShiftAnimation,lineLength:a}},s(e.name,c)),e,l,i)}return V(r.ensureInstance(n.marker,{uniforms:u,optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,c)),e,t,i)}function S(e,a,i,n){if(!a.animationParams)return[];return[e.createMeshInfo({pixelDimensions:a.pixelDimensions,texelDimensions:a.texelDimensions,effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,sprite:o(a),animations:a.animationParams,scaleInfo:n.scaleInfo,scaleSymbolsProportionally:a.scaleSymbolsProportionally,strokeWidth:a.outlineWidth,isMapAligned:1===a.alignment,colorLocked:a.colorLocked,isStroke:a.isStroke,baseSize:a.baseSize,placement:a.markerPlacement,referenceSize:a.referenceSize,angleToLine:!!a.markerPlacement&&(a.markerPlacement.placement&&"angleToLine"in a.markerPlacement.placement&&a.markerPlacement.placement.angleToLine),sizeRatio:a.sizeRatio,patternHeight:null})]}function b(e,a,i,n){if(!a.animationParams)return[];return[e.createMeshInfo({effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,sprite:o(a),animations:a.animationParams,scaleInfo:n.scaleInfo,scaleSymbolsProportionally:!1,strokeWidth:1,isMapAligned:!0,colorLocked:a.colorLocked||!1,isStroke:!1,baseSize:"width"in a?a.width:-1,placement:null,referenceSize:2,angleToLine:!1,sizeRatio:1,patternHeight:"fill"===a.type&&a.spriteRasterizationParam?a.height:null,joinType:"join"in a?a.join:"round",capType:"cap"in a?a.cap:"round",miterLimit:"miterLimit"in a&&a.miterLimit||2,angle:"angle"in a?a.angle:0})]}function V(e,a,n,{scaleInfo:l,scaleExpression:o}){const s=r(n);return[e.createMeshInfo({size:a.size,scaleX:a.scaleX,anchorX:a.anchorPoint.x,anchorY:a.anchorPoint.y,angle:a.rotation,color:f(a.color)??[0,0,0,0],colorLocked:a.colorLocked,frameHeight:a.frameHeight,widthRatio:a.widthRatio,scaleInfo:l,offsetX:a.offsetX,offsetY:a.offsetY,outlineColor:f(a.outlineColor)??[0,0,0,0],outlineSize:a.outlineWidth,referenceSize:a.referenceSize||i.CIMVectorMarker.size,rotateClockwise:a.rotateClockwise,scaleFactor:o??1,sizeRatio:a.sizeRatio,alignment:a.alignment,isAbsoluteAnchorPoint:a.isAbsoluteAnchorPoint,scaleSymbolsProportionally:a.scaleSymbolsProportionally,sprite:a.spriteRasterizationParam,hasSizeVV:s,placement:a.markerPlacement,effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,transforms:a.transform,minPixelBuffer:t(n)})]}function h(e,a,i){const{uniforms:t,schemaOptions:o}=a,{store:r}=o,{layerOrderMap:c}=i,u={visualVariableColor:e.colorLocked?null:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity};if(e.animationParams){const a=n.animatedFill;return b(r.ensureInstance(a,{uniforms:{...u,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableSizeScaleStops:null,visualVariableRotation:null},optionalAttributes:{zoomRange:!0,value1Position2Value2:!1,lineLength:!1}},s(e.name,c)),e,l,i)}return v(r.ensureInstance(n.fill,{uniforms:u,optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,c)),e,i)}function d(e,a,i){const{uniforms:t,schemaOptions:l}=a,{store:o}=l,{layerOrderMap:r}=i;return z(o.ensureInstance(n.outlineFill,{uniforms:{visualVariableColor:e.colorLocked?null:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:null,visualVariableSizeScaleStops:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null},optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,r)),e,i)}function z(e,a,i){const n=f(a.color)??[0,0,0,0],t=f(a.outlineColor)??[0,0,0,0];return[e.createMeshInfo({color:n,outlineColor:t,width:a.outlineWidth,referenceWidth:a.referenceWidth,capType:a.cap,joinType:a.join,miterLimit:a.miterLimit,outlineUsesColorVV:!a.outlineColorLocked,hasSizeVV:!1,scaleInfo:i.scaleInfo,...P(a,i),effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,outlineEffects:a.outlineEffects?{type:"cim-effect-infos",effectInfos:a.outlineEffects}:null})]}function v(e,a,i){const{scaleInfo:n}=i;return[e.createMeshInfo({color:f(a.color)??[0,0,0,0],scaleInfo:n,...P(a,i),effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null})]}function y(e,a,i){const{layerOrderMap:t}=i;if(!e.spriteRasterizationParam)return h(e,a,i);const{uniforms:o,schemaOptions:r}=a,{store:c}=r,u={visualVariableColor:e.colorLocked?null:o.visualVariableColor,visualVariableOpacity:o.visualVariableOpacity};if(e.animationParams){const a=n.animatedFill;return b(c.ensureInstance(a,{uniforms:{...u,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null,visualVariableSizeScaleStops:null,visualVariableRotation:null},optionalAttributes:{zoomRange:!0,value1Position2Value2:!1,lineLength:!1,angle:!!e.angle}},s(e.name,t)),e,l,i)}return g(c.ensureInstance(n.complexFill,{uniforms:u,optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,t)),e,null!=o.visualVariableColor,i)}function g(e,a,i,n){const{scaleInfo:t}=n;if(!a.spriteRasterizationParam)throw new Error("InternalError: Sprite should always be defined");const l=!!a.hasUnresolvedReplacementColor&&(!i||a.colorLocked),o=a.sampleAlphaOnly&&!l,r=a.spriteRasterizationParam;return[e.createMeshInfo({color:f(a.color)??[0,0,0,0],height:a.height,aspectRatio:a.scaleX,offsetX:a.offsetX,offsetY:a.offsetY,scaleX:1,scaleY:1,angle:a.angle,applyRandomOffset:a.applyRandomOffset,sampleAlphaOnly:o,scaleProportionally:"CIMHatchFill"===r.resource.type,sprite:r,scaleInfo:t,...P(a,n),effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null})]}function I(e,a,i){const{uniforms:t,schemaOptions:l}=a,{store:o}=l,{layerOrderMap:r}=i;return M(o.ensureInstance(n.gradientFill,{uniforms:{visualVariableColor:null,visualVariableOpacity:t.visualVariableOpacity},optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,r)),e,i)}function M(e,a,i){const{scaleInfo:n}=i;if(!a.spriteRasterizationParam)throw new Error("InternalError: Sprite should always be defined");const t=a.spriteRasterizationParam;return[e.createMeshInfo({color:f(a.color)??[0,0,0,0],angle:a.angle,gradientMethod:a.gradientMethod,gradientSize:a.gradientSize,gradientSizeUnits:a.gradientSizeUnits,gradientType:a.gradientType,sprite:t,scaleInfo:n,...P(a,i),effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null})]}function R(e,a,i){const{uniforms:t,schemaOptions:o}=a,{store:r}=o,{layerOrderMap:c}=i,u=e.isOutline?{...l,visualVariableSizeScaleStops:t.visualVariableSizeOutlineScaleStops}:{visualVariableColor:e.colorLocked?null:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue};if(e.animationParams){const{hasShiftAnimation:a}=e.animationParams.params,t=n.animatedLine;return b(r.ensureInstance(t,{uniforms:{...u,visualVariableRotation:null},optionalAttributes:{zoomRange:!0,value1Position2Value2:!1,accumulatedDistance:!0,segmentDirection:!0,normal:!0,lineLength:a,angle:!1}},s(e.name,c)),e,l,i)}const f={uniforms:u,optionalAttributes:{zoomRange:!!i.scaleInfo}},m=!!(u.visualVariableSizeMinMaxValue||u.visualVariableSizeScaleStops||u.visualVariableSizeStops||u.visualVariableSizeUnitValue);if(!e.spriteRasterizationParam){return C(r.ensureInstance(n.line,f,s(e.name,c)),e,m,i)}return L(r.ensureInstance(n.texturedLine,f,s(e.name,c)),e,m,i)}function O(e,a,i){const{scaleInfo:n}=i;return{color:f(e.color)??[0,0,0,0],width:e.width,referenceWidth:e.referenceWidth,capType:e.cap,joinType:e.join,miterLimit:e.miterLimit,scaleInfo:n,hasSizeVV:a,...P(e,i),effects:e.effects?{type:"cim-effect-infos",effectInfos:e.effects}:null}}function P(e,{rotationVariable:a,viewRotation:i}){if(!e.effects?.length&&!e.outlineEffects?.length)return{};const n={};if(e.effectsChangeGeometryType&&(n.useEffectOrigin=!0),null!=i&&(n.viewRotation=i),!a)return n;const t=a.valueExpression??(a.field?`$feature[${JSON.stringify(a.field)}]`:null);return t?(n.effectRotation={valueExpressionInfo:{type:"CIMExpressionInfo",expression:t},defaultValue:0},n.effectRotationType=a.rotationType,n):n}function C(e,a,i,n){if(a.spriteRasterizationParam)throw new Error("InternalError: Sprite should not be defined");const t=O(a,i,n);return[e.createMeshInfo(t)]}function L(e,a,i,n){const{spriteRasterizationParam:t,scaleDash:l,sampleAlphaOnly:o}=a;if(!t)throw new Error("InternalError: Sprite should be defined");return[e.createMeshInfo({...O(a,i,n),offsetAlongLine:a.offsetAlongLine??0,shouldScaleDash:l??!1,shouldSampleAlphaOnly:o,isSDF:"CIMPictureStroke"!==t.resource.type&&"CIMGradientStroke"!==t.resource.type,sprite:t})]}function k(e,a,i){const{uniforms:t,schemaOptions:o}=a,{store:r}=o,{layerOrderMap:c}=i;return x(r.ensureInstance(n.gradientStroke,{uniforms:e.isOutline?{...l,visualVariableSizeScaleStops:t.visualVariableSizeOutlineScaleStops}:{visualVariableColor:null,visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!!i.scaleInfo}},s(e.name,c)),e,i)}function x(e,a,i){if(!a.spriteRasterizationParam)throw new Error("InternalError: Sprite should always be defined");const n=a.spriteRasterizationParam;return[e.createMeshInfo({...O(a,!1,i),gradientMethod:a.gradientMethod,gradientSize:a.gradientSize,gradientSizeUnits:a.gradientSizeUnits,gradientType:a.gradientType,sprite:n,effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null})]}function w(e,a,i){const{uniforms:t,schemaOptions:l}=a,{store:o}=l,{layerOrderMap:r}=i;return A(o.ensureInstance(n.text,{uniforms:{visualVariableColor:e.colorLocked?null:t.visualVariableColor,visualVariableOpacity:t.visualVariableOpacity,visualVariableRotation:t.visualVariableRotation,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!!i.scaleInfo,referenceSymbol:!1,clipAngle:!1,visibility:!1}},s(e.name,r)),e,t,i)}function A(e,a,i,{scaleInfo:n,scaleExpression:l}){return[e.createMeshInfo({alignment:a.alignment,boxBackgroundColor:f(a.backgroundColor),boxBorderLineColor:f(a.borderLineColor),boxBorderLineSize:a.borderLineWidth??0,color:f(a.color)??[0,0,0,0],offsetX:a.offsetX,offsetY:a.offsetY,postAngle:a.angle,fontSize:a.size,referenceSize:a.referenceSize,decoration:a.decoration,haloColor:f(a.haloColor)??[0,0,0,0],haloSize:a.haloSize??0,outlineColor:f(a.outlineColor)??[0,0,0,0],outlineSize:a.outlineSize,lineWidth:a.lineWidth||512,lineHeightRatio:1,horizontalAlignment:a.horizontalAlignment??"center",verticalAlignment:a.verticalAlignment??"baseline",useCIMAngleBehavior:!1,glyphs:a.textRasterizationParam,scaleInfo:n,effects:a.effects?{type:"cim-effect-infos",effectInfos:a.effects}:null,placement:a.markerPlacement,transforms:a.transform,scaleFactor:l??1,minPixelBuffer:t(i),repeatLabel:null,repeatLabelDistance:null,allowOverrun:null,labelPosition:null,layerId:null,labelClassId:null})]}export{S as createAnimatedMarkerMeshInfos,b as createAnimatedPolyMeshInfos,g as createComplexFillMeshInfos,V as createComplexMarkerMeshInfos,v as createComplexSimpleFillMeshInfos,C as createComplexSimpleLineMeshInfos,z as createComplexSimpleOutlineFillMeshInfos,m as createComplexSymbolInstances,A as createComplexTextMeshInfos,L as createComplexTexturedLineMeshInfos,M as createGradientFillMeshInfos,x as createGradientStrokeMeshInfos,u as getScaleInfo};
@@ -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/Error.js";import{EventedMixin as r}from"../../core/Evented.js";import{when as n,watch as i}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{create as o,equals as l,intersection as u}from"../../geometry/support/aaBoundingRect.js";import d from"../GroundView.js";import{ElevationRange as p}from"./support/ElevationRange.js";import{toBoundingRect as h}from"./support/extentUtils.js";import{webMercatorWorldExtent as g,geographicWorldExtent as c}from"./terrain/TerrainConst.js";import{isIntegratedMeshLayerView as y}from"../support/layerViewUtils.js";let v=class extends(r(d)){constructor(){super(...arguments),this._integratedMeshElevationUpdateHandles=new Map}initialize(){super.initialize();const e=()=>{this.emit("elevation-query-change")};this.addHandles(n(()=>this._terrainSurface,e=>e.on("elevation-change",e=>this._elevationChange(e))));const t=this._integratedMeshElevationUpdateHandles;this.addHandles(this.view.allLayerViews.on("change",e=>{e.added.forEach(e=>{y(e)&&t.set(e,e.elevationProvider.on("elevation-change",e=>this._elevationChange(e)))}),e.removed.forEach(e=>{y(e)&&(t.get(e)?.remove(),t.delete(e))})})),this.addHandles([i(()=>this.memoizedElevationQueryDependencies,e)])}destroy(){this._integratedMeshElevationUpdateHandles.forEach(e=>e.remove()),this._integratedMeshElevationUpdateHandles.clear()}get memoizedElevationQueryDependencies(){return(this.ground?.allLayers??[]).filter(e=>"elevation"===e.type||"integrated-mesh-3dtiles"===e.type&&e.replacesTerrain).map(e=>e.memoizedElevationQueryDependencies)}_elevationChange(e){this.emit("elevation-change",e)}get _integratedMeshGroundLayerView(){const e=this.ground?.integratedMeshGround;if(e)return this.view.basemapView?.groundLayerViews.find(t=>t.layer===e)}get _terrainSurface(){return this.view.basemapTerrain}get _usingTerrain(){return this._terrainSurface?.enabled??!1}get _usingIntegratedMesh(){return this._integratedMeshGroundLayerView?.visible??!1}get spatialReference(){return this._terrainSurface?.spatialReference}get userClippingExtent(){const{spatialReference:e}=this,{clippingArea:t}=this.view;if(null==t||null==e)return null;const r=o(),n=h(t,r,e)?r:null,i=this._get("userClippingExtent");return l(n,i)?i:n}intersect(e,t,r,n){this._usingTerrain&&this._terrainSurface?.intersect(e,t,r,n);for(const i of this._integratedMeshElevationUpdateHandles.keys())i.intersect(e,t,r,n)}get updating(){return!this.suspended&&((this._source?.updating??!1)||this.layerViews.some(({updating:e})=>e))}getElevation(e,t,r,n){return this._elevationProvider?.getElevation(e,t,r,n)}getElevations(e,t,r){const{_elevationProvider:n}=this;if(n?.getElevations)return n.getElevations(e,t,r);for(let i=0;i<t;++i)r(i,null)}getSphereElevationRange(e,t,r){return this._elevationProvider?.getSphereElevationRange?.(e,t)}getRootElevationRange(){return this._elevationProvider?.getRootElevationRange?.()}get _elevationProvider(){return this._usingIntegratedMesh?this._integratedMeshGroundLayerView?.elevationProvider:this._terrainSurface}get elevationQueryCache(){return this._usingTerrain?this._terrainSurface?.elevationQueryCache:null}get elevationQueryReady(){for(const e of this.ground?.allLayers??[])if("integrated-mesh-3dtiles"===e.type&&e.replacesTerrain&&"failed"!==e.loadStatus&&null==e.queryElevationCallback)return!1;return!0}get groundExtent(){const{fullGroundExtent:e}=this;return e?this.userClippingExtent?u(e,this.userClippingExtent,o()):this.fullGroundExtent:null}get fullGroundExtent(){if(this._usingTerrain)return this._terrainSurface.fullGroundExtent;if(this._usingIntegratedMesh){const e=this.view.spatialReference;if(e.isWebMercator||e.isWGS84)return _(e);throw new t("GroundView:unsupportedSpatialReference","View spatial reference incompatible with groundLayer")}return null}get visibleElevationRange(){return this._source?.visibleElevationRange??f}get baseOpacity(){return this.ground?.opacity??1}get wireframe(){return!!this._usingTerrain&&(this._terrainSurface?.wireframe??!1)}get freeze(){return(this._usingTerrain?this._terrainSurface?.freeze:this._integratedMeshGroundLayerView?.freeze)??!1}set freeze(e){this._usingTerrain?this._terrainSurface.freeze=e:this._usingIntegratedMesh&&(this._integratedMeshGroundLayerView.freeze=e)}get suspended(){return this._usingIntegratedMesh?this._integratedMeshGroundLayerView?.suspended??!1:super.suspended}get ready(){return this._source?.ready??!1}updateOverlayParameters(){this._terrainSurface?.updateOverlayParameters()}get _source(){return this._usingTerrain?this._terrainSurface:this._usingIntegratedMesh?this._integratedMeshGroundLayerView:null}requestRender(e){this.view.stage.renderView?.requestRender(e)}};e([a()],v.prototype,"memoizedElevationQueryDependencies",null),e([a({readOnly:!0})],v.prototype,"_integratedMeshGroundLayerView",null),e([a({readOnly:!0})],v.prototype,"_terrainSurface",null),e([a({readOnly:!0})],v.prototype,"_usingTerrain",null),e([a({readOnly:!0})],v.prototype,"_usingIntegratedMesh",null),e([a({readOnly:!0})],v.prototype,"spatialReference",null),e([a({readOnly:!0})],v.prototype,"userClippingExtent",null),e([a({type:Boolean,readOnly:!0})],v.prototype,"updating",null),e([a({readOnly:!0})],v.prototype,"elevationQueryCache",null),e([a()],v.prototype,"elevationQueryReady",null),e([a({readOnly:!0})],v.prototype,"groundExtent",null),e([a({readOnly:!0})],v.prototype,"fullGroundExtent",null),e([a({readOnly:!0})],v.prototype,"visibleElevationRange",null),e([a({readOnly:!0})],v.prototype,"baseOpacity",null),e([a({readOnly:!0})],v.prototype,"wireframe",null),e([a()],v.prototype,"freeze",null),e([a({readOnly:!0})],v.prototype,"suspended",null),e([a({readOnly:!0})],v.prototype,"ready",null),e([a({readOnly:!0})],v.prototype,"_source",null),v=e([s("esri.views.3d.GroundView3D")],v);const f=new p(0,0);function _(e){return e.isWebMercator?g:c}export{v as GroundView3D};
2
+ import{__decorate as e}from"tslib";import t from"../../core/Error.js";import{EventedMixin as r}from"../../core/Evented.js";import{when as n,watch as i}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{create as o,equals as l,intersection as u}from"../../geometry/support/aaBoundingRect.js";import d from"../GroundView.js";import{ElevationRange as p}from"./support/ElevationRange.js";import{toBoundingRect as h}from"./support/extentUtils.js";import{webMercatorWorldExtent as g,geographicWorldExtent as c}from"./terrain/TerrainConst.js";import{isIntegratedMeshLayerView as y}from"../support/layerViewUtils.js";let v=class extends(r(d)){constructor(){super(...arguments),this._integratedMeshElevationUpdateHandles=new Map}initialize(){super.initialize();const e=()=>{this.emit("elevation-query-change")};this.addHandles(n(()=>this._terrainSurface,e=>e.on("elevation-change",e=>this._elevationChange(e))));const t=this._integratedMeshElevationUpdateHandles;this.addHandles(this.view.allLayerViews.on("change",e=>{e.added.forEach(e=>{y(e)&&t.set(e,e.elevationProvider.on("elevation-change",e=>this._elevationChange(e)))}),e.removed.forEach(e=>{y(e)&&(t.get(e)?.remove(),t.delete(e))})})),this.addHandles([i(()=>this.memoizedElevationQueryDependencies,e)])}destroy(){this._integratedMeshElevationUpdateHandles.forEach(e=>e.remove()),this._integratedMeshElevationUpdateHandles.clear()}get memoizedElevationQueryDependencies(){return(this.ground?.allLayers??[]).filter(e=>"elevation"===e.type||"integrated-mesh-3dtiles"===e.type&&e.replacesTerrain).map(e=>e.memoizedElevationQueryDependencies)}_elevationChange(e){this.emit("elevation-change",e)}get _integratedMeshGroundLayerView(){const e=this.ground?.integratedMeshGround;if(e)return this.view.basemapView?.groundLayerViews.find(t=>t.layer===e)}get _terrainSurface(){return this.view.basemapTerrain}get _usingTerrain(){return this._terrainSurface?.enabled??!1}get _usingIntegratedMesh(){return this._integratedMeshGroundLayerView?.visible??!1}get spatialReference(){return this._terrainSurface?.spatialReference}get userClippingExtent(){const{spatialReference:e}=this,{clippingArea:t}=this.view;if(null==t||null==e)return null;const r=o(),n=h(t,r,e)?r:null,i=this._get("userClippingExtent");return l(n,i)?i:n}intersect(e,t,r,n){this._usingTerrain&&this._terrainSurface?.intersect(e,t,r,n);for(const i of this._integratedMeshElevationUpdateHandles.keys())i.intersect(e,t,r,n)}get updating(){return!this.suspended&&((this._source?.updating??!1)||this.layerViews.some(({updating:e})=>e))}getElevation(e,t,r,n){return this._elevationProvider?.getElevation(e,t,r,n)}getElevations(e,t,r){const{_elevationProvider:n}=this;if(n?.getElevations)return n.getElevations(e,t,r);for(let i=0;i<t;++i)r(i,null)}getSphereElevationRange(e,t,r){return this._elevationProvider?.getSphereElevationRange?.(e,t)}getRootElevationRange(){return this._elevationProvider?.getRootElevationRange?.()}get _elevationProvider(){return this._usingIntegratedMesh?this._integratedMeshGroundLayerView?.elevationProvider:this._terrainSurface}get elevationQueryCache(){const e=this.view?.basemapTerrain;return e?.enabled?e.elevationQueryCache:null}get elevationQueryReady(){for(const e of this.ground?.allLayers??[])if("integrated-mesh-3dtiles"===e.type&&e.replacesTerrain&&"failed"!==e.loadStatus&&null==e.queryElevationCallback)return!1;return!0}get groundExtent(){const{fullGroundExtent:e}=this;return e?this.userClippingExtent?u(e,this.userClippingExtent,o()):this.fullGroundExtent:null}get fullGroundExtent(){if(this._usingTerrain)return this._terrainSurface.fullGroundExtent;if(this._usingIntegratedMesh){const e=this.view.spatialReference;if(e.isWebMercator||e.isWGS84)return _(e);throw new t("GroundView:unsupportedSpatialReference","View spatial reference incompatible with groundLayer")}return null}get visibleElevationRange(){return this._source?.visibleElevationRange??f}get opaque(){return this._source?.opaque??!1}get invisible(){return this._source?.invisible??!1}get baseOpacity(){return this.ground?.opacity??1}get wireframe(){return!!this._usingTerrain&&(this._terrainSurface?.wireframe??!1)}get freeze(){return(this._usingTerrain?this._terrainSurface?.freeze:this._integratedMeshGroundLayerView?.freeze)??!1}set freeze(e){this._usingTerrain?this._terrainSurface.freeze=e:this._usingIntegratedMesh&&(this._integratedMeshGroundLayerView.freeze=e)}get suspended(){return this._usingIntegratedMesh?this._integratedMeshGroundLayerView?.suspended??!1:super.suspended}get ready(){return this._source?.ready??!1}updateOverlayParameters(){this._terrainSurface?.updateOverlayParameters()}get _source(){return this._usingTerrain?this._terrainSurface:this._usingIntegratedMesh?this._integratedMeshGroundLayerView:null}requestRender(e){this.view.stage.renderView?.requestRender(e)}};e([a()],v.prototype,"memoizedElevationQueryDependencies",null),e([a({readOnly:!0})],v.prototype,"_integratedMeshGroundLayerView",null),e([a({readOnly:!0})],v.prototype,"_terrainSurface",null),e([a({readOnly:!0})],v.prototype,"_usingTerrain",null),e([a({readOnly:!0})],v.prototype,"_usingIntegratedMesh",null),e([a({readOnly:!0})],v.prototype,"spatialReference",null),e([a({readOnly:!0})],v.prototype,"userClippingExtent",null),e([a({type:Boolean,readOnly:!0})],v.prototype,"updating",null),e([a({readOnly:!0})],v.prototype,"elevationQueryCache",null),e([a()],v.prototype,"elevationQueryReady",null),e([a({readOnly:!0})],v.prototype,"groundExtent",null),e([a({readOnly:!0})],v.prototype,"fullGroundExtent",null),e([a({readOnly:!0})],v.prototype,"visibleElevationRange",null),e([a({readOnly:!0})],v.prototype,"opaque",null),e([a({readOnly:!0})],v.prototype,"invisible",null),e([a({readOnly:!0})],v.prototype,"baseOpacity",null),e([a({readOnly:!0})],v.prototype,"wireframe",null),e([a()],v.prototype,"freeze",null),e([a({readOnly:!0})],v.prototype,"suspended",null),e([a({readOnly:!0})],v.prototype,"ready",null),e([a({readOnly:!0})],v.prototype,"_source",null),v=e([s("esri.views.3d.GroundView3D")],v);const f=new p(0,0);function _(e){return e.isWebMercator?g:c}export{v as GroundView3D};