@itwin/map-layers-formats 3.5.0-dev.33

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 (247) hide show
  1. package/.nycrc +10 -0
  2. package/.rush/temp/package-deps_build_ci.json +33 -0
  3. package/.rush/temp/package-deps_cover.json +33 -0
  4. package/.rush/temp/package-deps_docs.json +33 -0
  5. package/.rush/temp/shrinkwrap-deps.json +352 -0
  6. package/README.md +11 -0
  7. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.d.ts +9 -0
  8. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -0
  9. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js +15 -0
  10. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -0
  11. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.d.ts +15 -0
  12. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.d.ts.map +1 -0
  13. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.js +135 -0
  14. package/lib/cjs/ArcGisFeature/ArcGisFeatureJSON.js.map +1 -0
  15. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.d.ts +15 -0
  16. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.d.ts.map +1 -0
  17. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js +206 -0
  18. package/lib/cjs/ArcGisFeature/ArcGisFeaturePBF.js.map +1 -0
  19. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +43 -0
  20. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -0
  21. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +412 -0
  22. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -0
  23. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.d.ts +94 -0
  24. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.d.ts.map +1 -0
  25. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js +91 -0
  26. package/lib/cjs/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -0
  27. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts +18 -0
  28. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.d.ts.map +1 -0
  29. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js +34 -0
  30. package/lib/cjs/ArcGisFeature/ArcGisFeatureReader.js.map +1 -0
  31. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.d.ts +33 -0
  32. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.d.ts.map +1 -0
  33. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js +143 -0
  34. package/lib/cjs/ArcGisFeature/ArcGisFeatureRenderer.js.map +1 -0
  35. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.d.ts +17 -0
  36. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.d.ts.map +1 -0
  37. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.js +44 -0
  38. package/lib/cjs/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -0
  39. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +86 -0
  40. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -0
  41. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +190 -0
  42. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -0
  43. package/lib/cjs/ArcGisFeature/esriPBuffer.gen.d.ts +1064 -0
  44. package/lib/cjs/ArcGisFeature/esriPBuffer.gen.d.ts.map +1 -0
  45. package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js +2271 -0
  46. package/lib/cjs/ArcGisFeature/esriPBuffer.gen.js.map +1 -0
  47. package/lib/cjs/map-layers-formats.d.ts +9 -0
  48. package/lib/cjs/map-layers-formats.d.ts.map +1 -0
  49. package/lib/cjs/map-layers-formats.js +25 -0
  50. package/lib/cjs/map-layers-formats.js.map +1 -0
  51. package/lib/cjs/mapLayersFormats.d.ts +11 -0
  52. package/lib/cjs/mapLayersFormats.d.ts.map +1 -0
  53. package/lib/cjs/mapLayersFormats.js +29 -0
  54. package/lib/cjs/mapLayersFormats.js.map +1 -0
  55. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts +2 -0
  56. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts.map +1 -0
  57. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js +35 -0
  58. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +1 -0
  59. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts +2 -0
  60. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts.map +1 -0
  61. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js +162 -0
  62. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +1 -0
  63. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts +2 -0
  64. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts.map +1 -0
  65. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js +168 -0
  66. package/lib/cjs/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +1 -0
  67. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts +2 -0
  68. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts.map +1 -0
  69. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js +657 -0
  70. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -0
  71. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts +2 -0
  72. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts.map +1 -0
  73. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js +109 -0
  74. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +1 -0
  75. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts +2 -0
  76. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts.map +1 -0
  77. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js +215 -0
  78. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +1 -0
  79. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts +2 -0
  80. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts.map +1 -0
  81. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js +95 -0
  82. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +1 -0
  83. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts +2 -0
  84. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts.map +1 -0
  85. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js +60 -0
  86. package/lib/cjs/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +1 -0
  87. package/lib/cjs/test/ArcGisFeature/Mocks.d.ts +7 -0
  88. package/lib/cjs/test/ArcGisFeature/Mocks.d.ts.map +1 -0
  89. package/lib/cjs/test/ArcGisFeature/Mocks.js +19 -0
  90. package/lib/cjs/test/ArcGisFeature/Mocks.js.map +1 -0
  91. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.d.ts +56 -0
  92. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.d.ts.map +1 -0
  93. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js +420 -0
  94. package/lib/cjs/test/ArcGisFeature/NewYorkDataset.js.map +1 -0
  95. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.d.ts +1043 -0
  96. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.d.ts.map +1 -0
  97. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js +427 -0
  98. package/lib/cjs/test/ArcGisFeature/PhillyLandmarksDataset.js.map +1 -0
  99. package/lib/cjs/test/coverage/.nyc_output/4a4a8f53-a85f-4448-a46a-5812eb4f4c28.json +1 -0
  100. package/lib/cjs/test/coverage/.nyc_output/c25e0b2e-c348-49c1-990c-2c062e25b38f.json +1 -0
  101. package/lib/cjs/test/coverage/.nyc_output/processinfo/4a4a8f53-a85f-4448-a46a-5812eb4f4c28.json +1 -0
  102. package/lib/cjs/test/coverage/.nyc_output/processinfo/c25e0b2e-c348-49c1-990c-2c062e25b38f.json +1 -0
  103. package/lib/cjs/test/coverage/.nyc_output/processinfo/index.json +1 -0
  104. package/lib/cjs/test/coverage/cobertura-coverage.xml +1162 -0
  105. package/lib/cjs/test/coverage/lcov-report/base.css +224 -0
  106. package/lib/cjs/test/coverage/lcov-report/block-navigation.js +87 -0
  107. package/lib/cjs/test/coverage/lcov-report/favicon.png +0 -0
  108. package/lib/cjs/test/coverage/lcov-report/index.html +131 -0
  109. package/lib/cjs/test/coverage/lcov-report/prettify.css +1 -0
  110. package/lib/cjs/test/coverage/lcov-report/prettify.js +2 -0
  111. package/lib/cjs/test/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  112. package/lib/cjs/test/coverage/lcov-report/sorter.js +196 -0
  113. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureFormat.ts.html +133 -0
  114. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureJSON.ts.html +550 -0
  115. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeaturePBF.ts.html +736 -0
  116. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureProvider.ts.html +1513 -0
  117. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureQuery.ts.html +793 -0
  118. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureReader.ts.html +223 -0
  119. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureRenderer.ts.html +598 -0
  120. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureResponse.ts.html +301 -0
  121. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisSymbologyRenderer.ts.html +823 -0
  122. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/index.html +236 -0
  123. package/lib/cjs/test/coverage/lcov-report/src/index.html +131 -0
  124. package/lib/cjs/test/coverage/lcov-report/src/map-layers-formats.ts.html +130 -0
  125. package/lib/cjs/test/coverage/lcov-report/src/mapLayersFormats.ts.html +163 -0
  126. package/lib/cjs/test/coverage/lcov.info +1503 -0
  127. package/lib/cjs/tsconfig.tsbuildinfo +1 -0
  128. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.d.ts +9 -0
  129. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -0
  130. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js +11 -0
  131. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -0
  132. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.d.ts +15 -0
  133. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.d.ts.map +1 -0
  134. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.js +131 -0
  135. package/lib/esm/ArcGisFeature/ArcGisFeatureJSON.js.map +1 -0
  136. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.d.ts +15 -0
  137. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.d.ts.map +1 -0
  138. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js +202 -0
  139. package/lib/esm/ArcGisFeature/ArcGisFeaturePBF.js.map +1 -0
  140. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +43 -0
  141. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -0
  142. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +408 -0
  143. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -0
  144. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.d.ts +94 -0
  145. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.d.ts.map +1 -0
  146. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js +87 -0
  147. package/lib/esm/ArcGisFeature/ArcGisFeatureQuery.js.map +1 -0
  148. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts +18 -0
  149. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.d.ts.map +1 -0
  150. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js +30 -0
  151. package/lib/esm/ArcGisFeature/ArcGisFeatureReader.js.map +1 -0
  152. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.d.ts +33 -0
  153. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.d.ts.map +1 -0
  154. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js +139 -0
  155. package/lib/esm/ArcGisFeature/ArcGisFeatureRenderer.js.map +1 -0
  156. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.d.ts +17 -0
  157. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.d.ts.map +1 -0
  158. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.js +40 -0
  159. package/lib/esm/ArcGisFeature/ArcGisFeatureResponse.js.map +1 -0
  160. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts +86 -0
  161. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.d.ts.map +1 -0
  162. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +183 -0
  163. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -0
  164. package/lib/esm/ArcGisFeature/esriPBuffer.gen.d.ts +1064 -0
  165. package/lib/esm/ArcGisFeature/esriPBuffer.gen.d.ts.map +1 -0
  166. package/lib/esm/ArcGisFeature/esriPBuffer.gen.js +2268 -0
  167. package/lib/esm/ArcGisFeature/esriPBuffer.gen.js.map +1 -0
  168. package/lib/esm/map-layers-formats.d.ts +9 -0
  169. package/lib/esm/map-layers-formats.d.ts.map +1 -0
  170. package/lib/esm/map-layers-formats.js +13 -0
  171. package/lib/esm/map-layers-formats.js.map +1 -0
  172. package/lib/esm/mapLayersFormats.d.ts +11 -0
  173. package/lib/esm/mapLayersFormats.d.ts.map +1 -0
  174. package/lib/esm/mapLayersFormats.js +25 -0
  175. package/lib/esm/mapLayersFormats.js.map +1 -0
  176. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts +2 -0
  177. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.d.ts.map +1 -0
  178. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js +33 -0
  179. package/lib/esm/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.js.map +1 -0
  180. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts +2 -0
  181. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.d.ts.map +1 -0
  182. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js +160 -0
  183. package/lib/esm/test/ArcGisFeature/ArcGisFeatureJSON.test.js.map +1 -0
  184. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts +2 -0
  185. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.d.ts.map +1 -0
  186. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js +166 -0
  187. package/lib/esm/test/ArcGisFeature/ArcGisFeaturePBF.test.js.map +1 -0
  188. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts +2 -0
  189. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.d.ts.map +1 -0
  190. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js +655 -0
  191. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -0
  192. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts +2 -0
  193. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.d.ts.map +1 -0
  194. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js +107 -0
  195. package/lib/esm/test/ArcGisFeature/ArcGisFeatureQuery.test.js.map +1 -0
  196. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts +2 -0
  197. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.d.ts.map +1 -0
  198. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js +213 -0
  199. package/lib/esm/test/ArcGisFeature/ArcGisFeatureRenderer.test.js.map +1 -0
  200. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts +2 -0
  201. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.d.ts.map +1 -0
  202. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js +93 -0
  203. package/lib/esm/test/ArcGisFeature/ArcGisFeatureResponse.test.js.map +1 -0
  204. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts +2 -0
  205. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.d.ts.map +1 -0
  206. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js +58 -0
  207. package/lib/esm/test/ArcGisFeature/ArcGisSymbologyRenderer.test.js.map +1 -0
  208. package/lib/esm/test/ArcGisFeature/Mocks.d.ts +7 -0
  209. package/lib/esm/test/ArcGisFeature/Mocks.d.ts.map +1 -0
  210. package/lib/esm/test/ArcGisFeature/Mocks.js +16 -0
  211. package/lib/esm/test/ArcGisFeature/Mocks.js.map +1 -0
  212. package/lib/esm/test/ArcGisFeature/NewYorkDataset.d.ts +56 -0
  213. package/lib/esm/test/ArcGisFeature/NewYorkDataset.d.ts.map +1 -0
  214. package/lib/esm/test/ArcGisFeature/NewYorkDataset.js +416 -0
  215. package/lib/esm/test/ArcGisFeature/NewYorkDataset.js.map +1 -0
  216. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.d.ts +1043 -0
  217. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.d.ts.map +1 -0
  218. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js +423 -0
  219. package/lib/esm/test/ArcGisFeature/PhillyLandmarksDataset.js.map +1 -0
  220. package/lib/esm/tsconfig.tsbuildinfo +1 -0
  221. package/lib/test/junit_results.xml +161 -0
  222. package/map-layers-formats.build.log +30 -0
  223. package/package.json +103 -0
  224. package/src/ArcGisFeature/ArcGisFeatureFormat.ts +16 -0
  225. package/src/ArcGisFeature/ArcGisFeatureJSON.ts +155 -0
  226. package/src/ArcGisFeature/ArcGisFeaturePBF.ts +217 -0
  227. package/src/ArcGisFeature/ArcGisFeatureProvider.ts +476 -0
  228. package/src/ArcGisFeature/ArcGisFeatureQuery.ts +236 -0
  229. package/src/ArcGisFeature/ArcGisFeatureReader.ts +46 -0
  230. package/src/ArcGisFeature/ArcGisFeatureRenderer.ts +171 -0
  231. package/src/ArcGisFeature/ArcGisFeatureResponse.ts +72 -0
  232. package/src/ArcGisFeature/ArcGisSymbologyRenderer.ts +246 -0
  233. package/src/ArcGisFeature/esriPBuffer.gen.ts +2615 -0
  234. package/src/map-layers-formats.ts +15 -0
  235. package/src/mapLayersFormats.ts +26 -0
  236. package/src/test/ArcGisFeature/ArcGisFeatureFeatureFormats.test.ts +46 -0
  237. package/src/test/ArcGisFeature/ArcGisFeatureJSON.test.ts +202 -0
  238. package/src/test/ArcGisFeature/ArcGisFeaturePBF.test.ts +227 -0
  239. package/src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts +776 -0
  240. package/src/test/ArcGisFeature/ArcGisFeatureQuery.test.ts +124 -0
  241. package/src/test/ArcGisFeature/ArcGisFeatureRenderer.test.ts +296 -0
  242. package/src/test/ArcGisFeature/ArcGisFeatureResponse.test.ts +109 -0
  243. package/src/test/ArcGisFeature/ArcGisSymbologyRenderer.test.ts +77 -0
  244. package/src/test/ArcGisFeature/Mocks.ts +19 -0
  245. package/src/test/ArcGisFeature/NewYorkDataset.ts +423 -0
  246. package/src/test/ArcGisFeature/PhillyLandmarksDataset.ts +455 -0
  247. package/tsconfig.json +21 -0
@@ -0,0 +1,15 @@
1
+ import { ImageMapLayerSettings } from "@itwin/core-common";
2
+ import { MapLayerFeatureInfo } from "@itwin/core-frontend";
3
+ import { Transform } from "@itwin/core-geometry";
4
+ import { ArcGisFeatureReader } from "./ArcGisFeatureReader";
5
+ import { ArcGisFeatureRenderer } from "./ArcGisFeatureRenderer";
6
+ import { ArcGisResponseData } from "./ArcGisFeatureResponse";
7
+ /** @internal */
8
+ export declare class ArcGisFeatureJSON extends ArcGisFeatureReader {
9
+ transform: Transform | undefined;
10
+ constructor(settings: ImageMapLayerSettings, layerMetadata: any);
11
+ readAndRender(response: ArcGisResponseData, renderer: ArcGisFeatureRenderer): void;
12
+ protected static deflateCoordinates(coordinates: number[][], flatCoordinates: number[], stride: number, offset: number): number;
13
+ readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]): void;
14
+ }
15
+ //# sourceMappingURL=ArcGisFeatureJSON.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureJSON.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureJSON.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAwB,mBAAmB,EAA0B,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,gBAAgB;AAChB,qBAAa,iBAAmB,SAAQ,mBAAmB;IAClD,SAAS,EAAE,SAAS,GAAC,SAAS,CAAC;gBAEnB,QAAQ,EAAE,qBAAqB,EAAE,aAAa,EAAE,GAAG;IAI/D,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB;IAuClF,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAUhH,eAAe,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE;CAoFzF"}
@@ -0,0 +1,131 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { PropertyValueFormat, StandardTypeNames } from "@itwin/appui-abstract";
6
+ import { MapFeatureInfoRecord } from "@itwin/core-frontend";
7
+ import { ArcGisFeatureReader } from "./ArcGisFeatureReader";
8
+ /** @internal */
9
+ export class ArcGisFeatureJSON extends ArcGisFeatureReader {
10
+ constructor(settings, layerMetadata) {
11
+ super(settings, layerMetadata);
12
+ }
13
+ readAndRender(response, renderer) {
14
+ var _a, _b, _c, _d;
15
+ const responseObj = response.data;
16
+ if ((responseObj === null || responseObj === void 0 ? void 0 : responseObj.geometryType) === "esriGeometryPolyline" || (responseObj === null || responseObj === void 0 ? void 0 : responseObj.geometryType) === "esriGeometryPolygon") {
17
+ const fill = (responseObj.geometryType === "esriGeometryPolygon");
18
+ for (const feature of responseObj.features) {
19
+ let offset = 0;
20
+ const lengths = [];
21
+ const coords = [];
22
+ if ((_a = feature === null || feature === void 0 ? void 0 : feature.geometry) === null || _a === void 0 ? void 0 : _a.rings) {
23
+ for (const ring of (_b = feature === null || feature === void 0 ? void 0 : feature.geometry) === null || _b === void 0 ? void 0 : _b.rings) {
24
+ offset = ArcGisFeatureJSON.deflateCoordinates(ring, coords, 2, offset);
25
+ lengths.push(ring.length);
26
+ }
27
+ }
28
+ else if ((_c = feature === null || feature === void 0 ? void 0 : feature.geometry) === null || _c === void 0 ? void 0 : _c.paths) {
29
+ for (const path of (_d = feature === null || feature === void 0 ? void 0 : feature.geometry) === null || _d === void 0 ? void 0 : _d.paths) {
30
+ offset = ArcGisFeatureJSON.deflateCoordinates(path, coords, 2, offset);
31
+ lengths.push(path.length);
32
+ }
33
+ }
34
+ renderer.renderPath(lengths, coords, fill, 2, renderer.transform === undefined);
35
+ }
36
+ }
37
+ else if ((responseObj === null || responseObj === void 0 ? void 0 : responseObj.geometryType) === "esriGeometryPoint" || (responseObj === null || responseObj === void 0 ? void 0 : responseObj.geometryType) === "esriGeometryMultiPoint") {
38
+ for (const feature of responseObj.features) {
39
+ // TODO: Add support for multipoint
40
+ if (feature.geometry) {
41
+ const lengths = [];
42
+ const coords = [feature.geometry.x, feature.geometry.y];
43
+ renderer.renderPoint(lengths, coords, 2, renderer.transform === undefined);
44
+ }
45
+ }
46
+ }
47
+ }
48
+ // Converts an [[x1,y1], [x2,y2], ...] to [x1,y1,x2,y2, ...]
49
+ // stride is the number of dimensions
50
+ // https://github.com/openlayers/openlayers/blob/7a2f87caca9ddc1912d910f56eb5637445fc11f6/src/ol/geom/flat/deflate.js#L26
51
+ static deflateCoordinates(coordinates, flatCoordinates, stride, offset) {
52
+ for (let i = 0, ii = coordinates.length; i < ii; ++i) {
53
+ const coordinate = coordinates[i];
54
+ for (let j = 0; j < stride; ++j)
55
+ flatCoordinates[offset++] = coordinate[j];
56
+ }
57
+ return offset;
58
+ }
59
+ readFeatureInfo(response, featureInfos) {
60
+ var _a;
61
+ const responseObj = response.data;
62
+ if (responseObj === undefined || !Array.isArray(responseObj.features))
63
+ return;
64
+ const layerInfo = { layerName: this._settings.name };
65
+ // Create a signature index for every field name / type.
66
+ const fieldsType = {};
67
+ for (const fieldInfo of responseObj.fields) {
68
+ fieldsType[fieldInfo.name] = fieldInfo.type;
69
+ }
70
+ const getStandardTypeName = (fieldType) => {
71
+ switch (fieldType) {
72
+ case "esriFieldTypeInteger":
73
+ case "esriFieldTypeSmallInteger":
74
+ case "esriFieldTypeOID":
75
+ return StandardTypeNames.Integer;
76
+ case "esriFieldTypeDouble":
77
+ return StandardTypeNames.Double;
78
+ case "esriFieldTypeSingle":
79
+ return StandardTypeNames.Float;
80
+ case "esriFieldTypeDate":
81
+ return StandardTypeNames.DateTime;
82
+ default:
83
+ return StandardTypeNames.String;
84
+ }
85
+ };
86
+ const getRecordInfo = (fieldName, value) => {
87
+ const propertyValue = { valueFormat: PropertyValueFormat.Primitive };
88
+ if (value === null) {
89
+ value = undefined;
90
+ }
91
+ const strValue = `${value}`;
92
+ const fieldType = fieldsType[fieldName];
93
+ switch (fieldType) {
94
+ case "esriFieldTypeInteger":
95
+ case "esriFieldTypeSmallInteger":
96
+ case "esriFieldTypeOID":
97
+ propertyValue.value = value;
98
+ break;
99
+ case "esriFieldTypeDouble":
100
+ case "esriFieldTypeSingle":
101
+ propertyValue.value = this.toFixedWithoutPadding(value);
102
+ break;
103
+ case "esriFieldTypeDate":
104
+ propertyValue.value = new Date(value);
105
+ break;
106
+ default:
107
+ if (value !== undefined)
108
+ propertyValue.value = strValue;
109
+ break;
110
+ }
111
+ const typename = getStandardTypeName(fieldType);
112
+ propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);
113
+ return new MapFeatureInfoRecord(propertyValue, { name: fieldName, displayLabel: fieldName, typename });
114
+ };
115
+ for (const feature of responseObj.features) {
116
+ const subLayerInfo = {
117
+ subLayerName: this._layerMetadata.name,
118
+ displayFieldName: this._layerMetadata.name,
119
+ records: [],
120
+ };
121
+ for (const [key, value] of Object.entries(feature.attributes))
122
+ (_a = subLayerInfo.records) === null || _a === void 0 ? void 0 : _a.push(getRecordInfo(key, value));
123
+ if (layerInfo.info === undefined)
124
+ layerInfo.info = [];
125
+ if (!(layerInfo.info instanceof HTMLElement))
126
+ layerInfo.info.push(subLayerInfo);
127
+ }
128
+ featureInfos.push(layerInfo);
129
+ }
130
+ }
131
+ //# sourceMappingURL=ArcGisFeatureJSON.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureJSON.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureJSON.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { PrimitiveValue, PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { MapFeatureInfoRecord, MapLayerFeatureInfo, MapSubLayerFeatureInfo } from \"@itwin/core-frontend\";\r\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ArcGisFeatureReader } from \"./ArcGisFeatureReader\";\r\nimport { ArcGisFeatureRenderer } from \"./ArcGisFeatureRenderer\";\r\nimport { ArcGisFieldType, ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\n\r\n/** @internal */\r\nexport class ArcGisFeatureJSON extends ArcGisFeatureReader {\r\n public transform: Transform|undefined;\r\n\r\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\r\n super(settings, layerMetadata);\r\n }\r\n\r\n public readAndRender(response: ArcGisResponseData, renderer: ArcGisFeatureRenderer) {\r\n const responseObj = response.data;\r\n\r\n if (responseObj?.geometryType === \"esriGeometryPolyline\" || responseObj?.geometryType === \"esriGeometryPolygon\") {\r\n const fill = (responseObj.geometryType === \"esriGeometryPolygon\");\r\n for (const feature of responseObj.features) {\r\n let offset = 0;\r\n const lengths: number[] = [];\r\n const coords: number[] = [];\r\n\r\n if (feature?.geometry?.rings) {\r\n for (const ring of feature?.geometry?.rings) {\r\n offset = ArcGisFeatureJSON.deflateCoordinates(ring, coords, 2, offset);\r\n lengths.push(ring.length);\r\n }\r\n } else if (feature?.geometry?.paths) {\r\n for (const path of feature?.geometry?.paths) {\r\n offset = ArcGisFeatureJSON.deflateCoordinates(path, coords, 2, offset);\r\n lengths.push(path.length);\r\n }\r\n }\r\n renderer.renderPath(lengths, coords, fill, 2, renderer.transform === undefined);\r\n\r\n }\r\n } else if (responseObj?.geometryType === \"esriGeometryPoint\" || responseObj?.geometryType === \"esriGeometryMultiPoint\") {\r\n for (const feature of responseObj.features) {\r\n // TODO: Add support for multipoint\r\n if (feature.geometry) {\r\n const lengths: number[] = [];\r\n const coords: number[] = [feature.geometry.x, feature.geometry.y];\r\n renderer.renderPoint(lengths, coords, 2, renderer.transform === undefined);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Converts an [[x1,y1], [x2,y2], ...] to [x1,y1,x2,y2, ...]\r\n // stride is the number of dimensions\r\n // https://github.com/openlayers/openlayers/blob/7a2f87caca9ddc1912d910f56eb5637445fc11f6/src/ol/geom/flat/deflate.js#L26\r\n protected static deflateCoordinates( coordinates: number[][], flatCoordinates: number[], stride: number, offset: number) {\r\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\r\n const coordinate = coordinates[i];\r\n for (let j = 0; j < stride; ++j)\r\n flatCoordinates[offset++] = coordinate[j];\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n public readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]) {\r\n const responseObj = response.data;\r\n if (responseObj === undefined || !Array.isArray(responseObj.features))\r\n return;\r\n\r\n const layerInfo: MapLayerFeatureInfo = {layerName: this._settings.name};\r\n\r\n // Create a signature index for every field name / type.\r\n const fieldsType: {[key: string]: ArcGisFieldType} = {};\r\n for (const fieldInfo of responseObj.fields) {\r\n fieldsType[fieldInfo.name] = fieldInfo.type;\r\n }\r\n\r\n const getStandardTypeName = (fieldType: ArcGisFieldType) => {\r\n switch (fieldType) {\r\n case \"esriFieldTypeInteger\":\r\n case \"esriFieldTypeSmallInteger\":\r\n case \"esriFieldTypeOID\":\r\n return StandardTypeNames.Integer;\r\n case \"esriFieldTypeDouble\":\r\n return StandardTypeNames.Double;\r\n case \"esriFieldTypeSingle\":\r\n return StandardTypeNames.Float;\r\n case \"esriFieldTypeDate\":\r\n return StandardTypeNames.DateTime;\r\n default:\r\n return StandardTypeNames.String;\r\n }\r\n };\r\n\r\n const getRecordInfo = (fieldName: string, value: any) => {\r\n const propertyValue: PrimitiveValue = {valueFormat: PropertyValueFormat.Primitive};\r\n\r\n if (value === null) {\r\n value = undefined;\r\n }\r\n\r\n const strValue = `${value}`;\r\n const fieldType = fieldsType[fieldName];\r\n switch (fieldType) {\r\n case \"esriFieldTypeInteger\":\r\n case \"esriFieldTypeSmallInteger\":\r\n case \"esriFieldTypeOID\":\r\n propertyValue.value = value as number;\r\n break;\r\n case \"esriFieldTypeDouble\":\r\n case \"esriFieldTypeSingle\":\r\n propertyValue.value = this.toFixedWithoutPadding(value);\r\n break;\r\n case \"esriFieldTypeDate\":\r\n propertyValue.value = new Date(value);\r\n break;\r\n default:\r\n if (value !== undefined)\r\n propertyValue.value = strValue;\r\n\r\n break;\r\n }\r\n\r\n const typename = getStandardTypeName(fieldType);\r\n propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);\r\n\r\n return new MapFeatureInfoRecord (propertyValue, {name: fieldName, displayLabel: fieldName, typename});\r\n };\r\n\r\n for (const feature of responseObj.features) {\r\n const subLayerInfo: MapSubLayerFeatureInfo = {\r\n subLayerName: this._layerMetadata.name,\r\n displayFieldName: this._layerMetadata.name,\r\n records : [],\r\n };\r\n\r\n for (const [key, value] of Object.entries(feature.attributes))\r\n subLayerInfo.records?.push(getRecordInfo(key,value));\r\n\r\n if (layerInfo.info === undefined)\r\n layerInfo.info = [];\r\n\r\n if (!(layerInfo.info instanceof HTMLElement))\r\n layerInfo.info.push(subLayerInfo);\r\n }\r\n\r\n featureInfos.push(layerInfo);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,15 @@
1
+ import { ArcGisFeatureRenderer } from "./ArcGisFeatureRenderer";
2
+ import { esriPBuffer } from "../ArcGisFeature/esriPBuffer.gen";
3
+ import { MapLayerFeatureInfo } from "@itwin/core-frontend";
4
+ import { ImageMapLayerSettings } from "@itwin/core-common";
5
+ import { ArcGisFeatureReader } from "./ArcGisFeatureReader";
6
+ import { ArcGisResponseData } from "./ArcGisFeatureResponse";
7
+ import { ArcGisFeatureGeometryType } from "./ArcGisFeatureQuery";
8
+ /** @internal */
9
+ export declare class ArcGisFeaturePBF extends ArcGisFeatureReader {
10
+ constructor(settings: ImageMapLayerSettings, layerMetadata: any);
11
+ static getArcGisFeatureGeometryType(geomType: esriPBuffer.FeatureCollectionPBuffer.GeometryType): ArcGisFeatureGeometryType;
12
+ readAndRender(response: ArcGisResponseData, renderer: ArcGisFeatureRenderer): void;
13
+ readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]): void;
14
+ }
15
+ //# sourceMappingURL=ArcGisFeaturePBF.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeaturePBF.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeaturePBF.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAwB,mBAAmB,EAA0B,MAAM,sBAAsB,CAAC;AAEzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAUjE,gBAAgB;AAChB,qBAAa,gBAAiB,SAAQ,mBAAmB;gBACpC,QAAQ,EAAE,qBAAqB,EAAE,aAAa,EAAE,GAAG;WAIxD,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,wBAAwB,CAAC,YAAY,GAAG,yBAAyB;IAiB3H,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB;IA4B3E,eAAe,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE;CA8IzF"}
@@ -0,0 +1,202 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { esriPBuffer } from "../ArcGisFeature/esriPBuffer.gen";
6
+ import { MapFeatureInfoRecord } from "@itwin/core-frontend";
7
+ import { PropertyValueFormat, StandardTypeNames } from "@itwin/appui-abstract";
8
+ import { ArcGisFeatureReader } from "./ArcGisFeatureReader";
9
+ import { assert, Logger } from "@itwin/core-bentley";
10
+ const esriGeometryType = esriPBuffer.FeatureCollectionPBuffer.GeometryType;
11
+ const loggerCategory = "MapLayersFormats.ArcGISFeature";
12
+ /** @internal */
13
+ export class ArcGisFeaturePBF extends ArcGisFeatureReader {
14
+ constructor(settings, layerMetadata) {
15
+ super(settings, layerMetadata);
16
+ }
17
+ static getArcGisFeatureGeometryType(geomType) {
18
+ switch (geomType) {
19
+ case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipatch:
20
+ return "esriGeometryMultiPatch";
21
+ case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipoint:
22
+ return "esriGeometryMultipoint";
23
+ case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePoint:
24
+ return "esriGeometryPoint";
25
+ case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolygon:
26
+ return "esriGeometryPolygon";
27
+ case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolyline:
28
+ return "esriGeometryPolyline";
29
+ default:
30
+ return "esriGeometryNull";
31
+ }
32
+ }
33
+ readAndRender(response, renderer) {
34
+ var _a, _b;
35
+ if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {
36
+ const msg = "Response was not in PBF format";
37
+ assert(!msg);
38
+ Logger.logError(loggerCategory, msg);
39
+ return;
40
+ }
41
+ const collection = response.data;
42
+ if (!collection.has_queryResult || !collection.queryResult.has_featureResult || ((_b = (_a = collection === null || collection === void 0 ? void 0 : collection.queryResult) === null || _a === void 0 ? void 0 : _a.featureResult) === null || _b === void 0 ? void 0 : _b.features) === undefined)
43
+ return;
44
+ const geomType = collection.queryResult.featureResult.geometryType;
45
+ const stride = (collection.queryResult.featureResult.hasM || collection.queryResult.featureResult.hasZ) ? 3 : 2;
46
+ // console.log(`Nb Feature: ${collection.queryResult.featureResult.features.length}`);
47
+ if (geomType === esriGeometryType.esriGeometryTypePoint ||
48
+ geomType === esriGeometryType.esriGeometryTypeMultipoint) {
49
+ for (const feature of collection.queryResult.featureResult.features)
50
+ renderer.renderPoint(feature.geometry.lengths, feature.geometry.coords, stride, renderer.transform === undefined);
51
+ }
52
+ else if (geomType === esriGeometryType.esriGeometryTypePolyline || geomType === esriGeometryType.esriGeometryTypePolygon) {
53
+ const fill = (geomType === esriGeometryType.esriGeometryTypePolygon);
54
+ for (const feature of collection.queryResult.featureResult.features)
55
+ if (feature === null || feature === void 0 ? void 0 : feature.has_geometry)
56
+ renderer.renderPath(feature.geometry.lengths, feature.geometry.coords, fill, stride, renderer.transform === undefined);
57
+ }
58
+ }
59
+ readFeatureInfo(response, featureInfos) {
60
+ var _a, _b, _c;
61
+ if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {
62
+ const msg = "Response was not in PBF format";
63
+ assert(!msg);
64
+ Logger.logError(loggerCategory, msg);
65
+ }
66
+ const collection = response.data;
67
+ if (!collection.has_queryResult || !collection.queryResult.has_featureResult || ((_b = (_a = collection === null || collection === void 0 ? void 0 : collection.queryResult) === null || _a === void 0 ? void 0 : _a.featureResult) === null || _b === void 0 ? void 0 : _b.features) === undefined)
68
+ return;
69
+ const layerInfo = { layerName: this._settings.name, info: [] };
70
+ // Fields metadata is stored outside feature results, create dedicated array first
71
+ const fields = [];
72
+ for (const field of collection.queryResult.featureResult.fields)
73
+ fields.push({ name: field.name, type: field.fieldType });
74
+ const getNumericValue = (attrValue) => {
75
+ const propertyValue = { valueFormat: PropertyValueFormat.Primitive };
76
+ let typename = StandardTypeNames.Number;
77
+ if (attrValue.has_double_value) {
78
+ const value = this.toFixedWithoutPadding(attrValue.double_value);
79
+ propertyValue.value = value;
80
+ typename = StandardTypeNames.Double;
81
+ }
82
+ else if (attrValue.has_float_value) {
83
+ const value = this.toFixedWithoutPadding(attrValue.float_value);
84
+ propertyValue.value = value;
85
+ typename = StandardTypeNames.Float;
86
+ }
87
+ else if (attrValue.has_int64_value) {
88
+ propertyValue.value = attrValue.int64_value;
89
+ typename = StandardTypeNames.Integer;
90
+ }
91
+ else if (attrValue.has_sint64_value) {
92
+ propertyValue.value = attrValue.sint64_value;
93
+ typename = StandardTypeNames.Integer;
94
+ }
95
+ else if (attrValue.has_sint_value) {
96
+ propertyValue.value = attrValue.sint_value;
97
+ typename = StandardTypeNames.Integer;
98
+ }
99
+ else if (attrValue.has_uint64_value) {
100
+ propertyValue.value = attrValue.uint64_value;
101
+ typename = StandardTypeNames.Integer;
102
+ }
103
+ else if (attrValue.has_uint_value) {
104
+ propertyValue.value = attrValue.uint_value;
105
+ typename = StandardTypeNames.Integer;
106
+ }
107
+ else {
108
+ propertyValue.value = undefined;
109
+ }
110
+ return { propertyValue, typename };
111
+ };
112
+ const getRecordInfo = (fieldInfo, attrValue) => {
113
+ let propertyValue = { valueFormat: PropertyValueFormat.Primitive };
114
+ let typename = StandardTypeNames.String;
115
+ if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDouble
116
+ || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeInteger
117
+ || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSmallInteger
118
+ || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeOID
119
+ || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSingle
120
+ || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate) {
121
+ const value = getNumericValue(attrValue);
122
+ if (value.propertyValue === undefined) {
123
+ Logger.logError(loggerCategory, `Could not read numeric value for field ${fieldInfo.name}`);
124
+ return undefined;
125
+ }
126
+ if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate) {
127
+ const test = value.propertyValue.value;
128
+ propertyValue.value = new Date(test);
129
+ typename = StandardTypeNames.DateTime;
130
+ }
131
+ else {
132
+ typename = value.typename;
133
+ propertyValue = value.propertyValue;
134
+ }
135
+ }
136
+ else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeString) {
137
+ if (attrValue.has_string_value) {
138
+ propertyValue.value = attrValue.string_value;
139
+ typename = StandardTypeNames.String;
140
+ }
141
+ }
142
+ else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeGlobalID) {
143
+ if (attrValue.has_string_value) {
144
+ propertyValue.value = attrValue.string_value;
145
+ typename = StandardTypeNames.String;
146
+ }
147
+ else {
148
+ const value = getNumericValue(attrValue);
149
+ if (value.propertyValue === undefined) {
150
+ Logger.logError(loggerCategory, `Could not read GlobalId value for field ${fieldInfo.name}`);
151
+ return undefined;
152
+ }
153
+ }
154
+ }
155
+ else if (attrValue.has_string_value) {
156
+ // If we reach this case that probably mean we don't support the field type, simply try to output string value
157
+ typename = StandardTypeNames.String;
158
+ propertyValue.value = attrValue.string_value;
159
+ }
160
+ else if (attrValue.value_type === "none") {
161
+ // Sometimes fields are just empty, use an empty string
162
+ typename = StandardTypeNames.String;
163
+ propertyValue.value = undefined;
164
+ }
165
+ else {
166
+ Logger.logError(loggerCategory, `Could not read value for field ${fieldInfo.name}`);
167
+ return undefined;
168
+ }
169
+ propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);
170
+ return new MapFeatureInfoRecord(propertyValue, { name: fieldInfo.name, displayLabel: fieldInfo.name, typename });
171
+ };
172
+ // Read feature values
173
+ for (const feature of collection.queryResult.featureResult.features) {
174
+ const subLayerInfo = {
175
+ subLayerName: this._layerMetadata.name,
176
+ displayFieldName: this._layerMetadata.name,
177
+ records: [],
178
+ };
179
+ let i = 0;
180
+ for (const attrValue of feature.attributes) {
181
+ if (i > fields.length) {
182
+ Logger.logError(loggerCategory, "Error while read feature info data: fields metadata missing");
183
+ break;
184
+ }
185
+ // Convert everything to string for now
186
+ const info = getRecordInfo(fields[i], attrValue);
187
+ if (info) {
188
+ (_c = subLayerInfo.records) === null || _c === void 0 ? void 0 : _c.push(info);
189
+ }
190
+ i++;
191
+ }
192
+ if (layerInfo.info === undefined) {
193
+ layerInfo.info = [];
194
+ }
195
+ if (!(layerInfo.info instanceof HTMLElement)) {
196
+ layerInfo.info.push(subLayerInfo);
197
+ }
198
+ }
199
+ featureInfos.push(layerInfo);
200
+ }
201
+ }
202
+ //# sourceMappingURL=ArcGisFeaturePBF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeaturePBF.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeaturePBF.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport { ArcGisFeatureRenderer } from \"./ArcGisFeatureRenderer\";\r\nimport { esriPBuffer } from \"../ArcGisFeature/esriPBuffer.gen\";\r\nimport { MapFeatureInfoRecord, MapLayerFeatureInfo, MapSubLayerFeatureInfo } from \"@itwin/core-frontend\";\r\nimport { PrimitiveValue, PropertyValueFormat, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { ArcGisFeatureReader } from \"./ArcGisFeatureReader\";\r\nimport { ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\nimport { assert, Logger } from \"@itwin/core-bentley\";\r\nimport { ArcGisFeatureGeometryType } from \"./ArcGisFeatureQuery\";\r\n\r\nconst esriGeometryType = esriPBuffer.FeatureCollectionPBuffer.GeometryType;\r\nconst loggerCategory = \"MapLayersFormats.ArcGISFeature\";\r\n\r\ninterface PbfFieldInfo {\r\n name: string;\r\n type: esriPBuffer.FeatureCollectionPBuffer.FieldType;\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisFeaturePBF extends ArcGisFeatureReader {\r\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\r\n super(settings, layerMetadata);\r\n }\r\n\r\n public static getArcGisFeatureGeometryType(geomType: esriPBuffer.FeatureCollectionPBuffer.GeometryType): ArcGisFeatureGeometryType {\r\n switch (geomType) {\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipatch:\r\n return \"esriGeometryMultiPatch\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypeMultipoint:\r\n return \"esriGeometryMultipoint\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePoint:\r\n return \"esriGeometryPoint\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolygon:\r\n return \"esriGeometryPolygon\";\r\n case esriPBuffer.FeatureCollectionPBuffer.GeometryType.esriGeometryTypePolyline:\r\n return \"esriGeometryPolyline\";\r\n default:\r\n return \"esriGeometryNull\";\r\n }\r\n }\r\n\r\n public readAndRender(response: ArcGisResponseData, renderer: ArcGisFeatureRenderer) {\r\n if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {\r\n const msg = \"Response was not in PBF format\";\r\n assert(!msg);\r\n Logger.logError(loggerCategory, msg);\r\n return;\r\n }\r\n\r\n const collection = response.data;\r\n if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)\r\n return;\r\n\r\n const geomType = collection.queryResult.featureResult.geometryType;\r\n const stride = (collection.queryResult.featureResult.hasM || collection.queryResult.featureResult.hasZ) ? 3 : 2;\r\n\r\n // console.log(`Nb Feature: ${collection.queryResult.featureResult.features.length}`);\r\n if (geomType === esriGeometryType.esriGeometryTypePoint ||\r\n geomType === esriGeometryType.esriGeometryTypeMultipoint) {\r\n for (const feature of collection.queryResult.featureResult.features)\r\n renderer.renderPoint(feature.geometry.lengths, feature.geometry.coords, stride, renderer.transform === undefined);\r\n } else if (geomType === esriGeometryType.esriGeometryTypePolyline || geomType === esriGeometryType.esriGeometryTypePolygon) {\r\n const fill = (geomType === esriGeometryType.esriGeometryTypePolygon);\r\n for (const feature of collection.queryResult.featureResult.features)\r\n if (feature?.has_geometry)\r\n renderer.renderPath(feature.geometry.lengths, feature.geometry.coords, fill, stride, renderer.transform === undefined);\r\n }\r\n }\r\n\r\n public readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]) {\r\n if (!(response.data instanceof esriPBuffer.FeatureCollectionPBuffer)) {\r\n const msg = \"Response was not in PBF format\";\r\n assert(!msg);\r\n Logger.logError(loggerCategory, msg);\r\n }\r\n\r\n const collection = response.data as esriPBuffer.FeatureCollectionPBuffer;\r\n if (!collection.has_queryResult || !collection.queryResult.has_featureResult || collection?.queryResult?.featureResult?.features === undefined)\r\n return;\r\n\r\n const layerInfo: MapLayerFeatureInfo = { layerName: this._settings.name, info: [] };\r\n\r\n // Fields metadata is stored outside feature results, create dedicated array first\r\n const fields: PbfFieldInfo[] = [];\r\n for (const field of collection.queryResult.featureResult.fields)\r\n fields.push({name: field.name, type:field.fieldType});\r\n\r\n const getNumericValue = (attrValue: esriPBuffer.FeatureCollectionPBuffer.Value) => {\r\n const propertyValue: PrimitiveValue = { valueFormat: PropertyValueFormat.Primitive };\r\n let typename = StandardTypeNames.Number;\r\n if (attrValue.has_double_value) {\r\n const value = this.toFixedWithoutPadding(attrValue.double_value);\r\n propertyValue.value = value;\r\n typename = StandardTypeNames.Double;\r\n } else if (attrValue.has_float_value) {\r\n const value = this.toFixedWithoutPadding(attrValue.float_value);\r\n propertyValue.value = value;\r\n typename = StandardTypeNames.Float;\r\n } else if (attrValue.has_int64_value) {\r\n propertyValue.value = attrValue.int64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_sint64_value) {\r\n propertyValue.value = attrValue.sint64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_sint_value) {\r\n propertyValue.value = attrValue.sint_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_uint64_value) {\r\n propertyValue.value = attrValue.uint64_value;\r\n typename = StandardTypeNames.Integer;\r\n } else if (attrValue.has_uint_value) {\r\n propertyValue.value = attrValue.uint_value;\r\n typename = StandardTypeNames.Integer;\r\n } else {\r\n propertyValue.value = undefined;\r\n }\r\n\r\n return { propertyValue, typename };\r\n };\r\n\r\n const getRecordInfo = (fieldInfo: PbfFieldInfo, attrValue: esriPBuffer.FeatureCollectionPBuffer.Value) => {\r\n let propertyValue: PrimitiveValue = { valueFormat: PropertyValueFormat.Primitive };\r\n\r\n let typename = StandardTypeNames.String;\r\n if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDouble\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeInteger\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSmallInteger\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeOID\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeSingle\r\n || fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate\r\n ) {\r\n const value = getNumericValue(attrValue);\r\n if (value.propertyValue === undefined) {\r\n Logger.logError(loggerCategory, `Could not read numeric value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n\r\n if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeDate) {\r\n const test = (value.propertyValue.value as unknown) as number;\r\n propertyValue.value = new Date(test);\r\n typename = StandardTypeNames.DateTime;\r\n } else {\r\n typename = value.typename;\r\n propertyValue = value.propertyValue;\r\n }\r\n } else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeString) {\r\n if (attrValue.has_string_value) {\r\n propertyValue.value = attrValue.string_value;\r\n typename = StandardTypeNames.String;\r\n }\r\n } else if (fieldInfo.type === esriPBuffer.FeatureCollectionPBuffer.FieldType.esriFieldTypeGlobalID) {\r\n if (attrValue.has_string_value) {\r\n propertyValue.value = attrValue.string_value;\r\n typename = StandardTypeNames.String;\r\n } else {\r\n const value = getNumericValue(attrValue);\r\n if (value.propertyValue === undefined) {\r\n Logger.logError(loggerCategory, `Could not read GlobalId value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n }\r\n } else if (attrValue.has_string_value) {\r\n // If we reach this case that probably mean we don't support the field type, simply try to output string value\r\n typename = StandardTypeNames.String;\r\n propertyValue.value = attrValue.string_value;\r\n } else if (attrValue.value_type === \"none\") {\r\n // Sometimes fields are just empty, use an empty string\r\n typename = StandardTypeNames.String;\r\n propertyValue.value = undefined;\r\n } else {\r\n Logger.logError(loggerCategory, `Could not read value for field ${fieldInfo.name}`);\r\n return undefined;\r\n }\r\n\r\n propertyValue.displayValue = this.getDisplayValue(typename, propertyValue.value);\r\n\r\n return new MapFeatureInfoRecord(propertyValue, { name: fieldInfo.name, displayLabel: fieldInfo.name, typename });\r\n };\r\n\r\n // Read feature values\r\n for (const feature of collection.queryResult.featureResult.features) {\r\n const subLayerInfo: MapSubLayerFeatureInfo = {\r\n subLayerName: this._layerMetadata.name,\r\n displayFieldName: this._layerMetadata.name,\r\n records: [],\r\n };\r\n let i = 0;\r\n\r\n for (const attrValue of feature.attributes) {\r\n if (i > fields.length) {\r\n Logger.logError(loggerCategory, \"Error while read feature info data: fields metadata missing\");\r\n break;\r\n }\r\n // Convert everything to string for now\r\n const info = getRecordInfo(fields[i], attrValue);\r\n if (info) {\r\n subLayerInfo.records?.push(info);\r\n }\r\n\r\n i++;\r\n }\r\n if (layerInfo.info === undefined) {\r\n layerInfo.info = [];\r\n }\r\n if (!(layerInfo.info instanceof HTMLElement)) {\r\n layerInfo.info.push(subLayerInfo);\r\n }\r\n }\r\n\r\n featureInfos.push(layerInfo);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,43 @@
1
+ import { Cartographic, ImageMapLayerSettings, ImageSource } from "@itwin/core-common";
2
+ import { Transform } from "@itwin/core-geometry";
3
+ import { ArcGISImageryProvider, ImageryMapTileTree, MapLayerFeatureInfo, QuadId } from "@itwin/core-frontend";
4
+ import { ArcGisExtent, ArcGisFeatureFormat, ArcGisGeometry } from "./ArcGisFeatureQuery";
5
+ /**
6
+ * @internal
7
+ */
8
+ interface ArcGisFeatureUrl {
9
+ url: string;
10
+ envelope?: ArcGisExtent;
11
+ }
12
+ /** Provide tiles from a ESRI ArcGIS Feature service
13
+ * @internal
14
+ */
15
+ export declare class ArcGisFeatureProvider extends ArcGISImageryProvider {
16
+ private _drawDebugInfo;
17
+ private _debugFeatureGeom;
18
+ private _supportsCoordinatesQuantization;
19
+ private _querySupported;
20
+ private _layerId;
21
+ private _layerMetadata;
22
+ private _format;
23
+ serviceJson: any;
24
+ private _symbologyRenderer;
25
+ private static readonly _nbSubTiles;
26
+ private _outSR;
27
+ private _maxDepthFromLod;
28
+ private _minDepthFromLod;
29
+ constructor(settings: ImageMapLayerSettings);
30
+ initialize(): Promise<void>;
31
+ protected getLayerMetadata(layerId: number): Promise<any>;
32
+ get tileSize(): number;
33
+ get format(): ArcGisFeatureFormat | undefined;
34
+ constructUrl(_row: number, _column: number, _zoomLevel: number): Promise<string>;
35
+ constructFeatureUrl(row: number, column: number, zoomLevel: number, format: ArcGisFeatureFormat, geomOverride?: ArcGisGeometry, outFields?: string, tolerance?: number, returnGeometry?: boolean): ArcGisFeatureUrl | undefined;
36
+ getFeatureInfo(featureInfos: MapLayerFeatureInfo[], quadId: QuadId, carto: Cartographic, _tree: ImageryMapTileTree): Promise<void>;
37
+ private fetchTile;
38
+ drawTileDebugInfo(row: number, column: number, zoomLevel: number, context: CanvasRenderingContext2D): void;
39
+ protected computeTileWorld2CanvasTransform(row: number, column: number, zoomLevel: number): Transform | undefined;
40
+ loadTile(row: number, column: number, zoomLevel: number): Promise<ImageSource | undefined>;
41
+ }
42
+ export {};
43
+ //# sourceMappingURL=ArcGisFeatureProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureProvider.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureProvider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAkC,MAAM,oBAAoB,CAAC;AAEtH,OAAO,EAAqB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAmB,qBAAqB,EAAmB,kBAAkB,EAAE,mBAAmB,EAAiC,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE/K,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAsB,cAAc,EAAkC,MAAM,sBAAsB,CAAC;AAO7I;;EAEE;AACF,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;EAEE;AACF,qBAAa,qBAAsB,SAAQ,qBAAqB;IAE9D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,gCAAgC,CAAS;IACjD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,OAAO,CAAgC;IACxC,WAAW,EAAE,GAAG,CAAC;IACxB,OAAO,CAAC,kBAAkB,CAAoC;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAU;IAExB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAK;gBAMjB,QAAQ,EAAE,qBAAqB;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;cA2HjC,gBAAgB,CAAC,OAAO,EAAE,MAAM;IAYhD,IAAoB,QAAQ,IAAI,MAAM,CAAgB;IACtD,IAAW,MAAM,IAAI,mBAAmB,GAAC,SAAS,CAAyB;IAG9D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS;IAyD/M,cAAc,CAAC,YAAY,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YA4D3I,SAAS;IAoBf,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB;IAU3G,SAAS,CAAC,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAsBnE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CA6GjH"}