@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,91 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ArcGisFeatureQuery = void 0;
8
+ /** @internal */
9
+ class ArcGisFeatureQuery {
10
+ // base url is expected ito be in the format of:
11
+ // https://<hostname>/arcgis/rest/services/<ServiceName>/FeatureServer
12
+ constructor(baseUrl, layerIdx, format, outSR, params) {
13
+ this.baseUrl = baseUrl;
14
+ this.layerIdx = layerIdx;
15
+ this.format = format;
16
+ this.outSR = outSR;
17
+ if (params !== undefined) {
18
+ this.resultRecordCount = params.resultRecordCount;
19
+ this.resultOffset = params.resultOffset;
20
+ this.returnGeometry = params.returnGeometry;
21
+ this.geometry = params.geometry;
22
+ this.spatialRel = params.spatialRel;
23
+ this.resultType = params.resultType;
24
+ this.maxRecordCountFactor = params.maxRecordCountFactor;
25
+ this.returnExceededLimitFeatures = params.returnExceededLimitFeatures;
26
+ this.quantizationParams = params.quantizationParameters;
27
+ this.outFields = params.outFields;
28
+ this.distance = params.distance;
29
+ }
30
+ }
31
+ toString() {
32
+ let customParams = "";
33
+ if (this.resultRecordCount !== undefined) {
34
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "resultRecordCount", `${this.resultRecordCount}`);
35
+ }
36
+ if (this.resultOffset !== undefined) {
37
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "resultOffset", `${this.resultOffset}`);
38
+ }
39
+ if (this.returnGeometry !== undefined) {
40
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "returnGeometry", this.returnGeometry ? "true" : "false");
41
+ }
42
+ if (this.resultType !== undefined) {
43
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "resultType", this.resultType);
44
+ }
45
+ if (this.maxRecordCountFactor !== undefined) {
46
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "maxRecordCountFactor", `${this.maxRecordCountFactor}`);
47
+ }
48
+ if (this.returnExceededLimitFeatures !== undefined) {
49
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "returnExceededLimitFeatures", this.returnExceededLimitFeatures ? "true" : "false");
50
+ }
51
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "outSR", `${this.outSR}`);
52
+ if (this.geometry || this.spatialRel) {
53
+ if (this.spatialRel) {
54
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "spatialRel", this.spatialRel);
55
+ }
56
+ if (this.geometry) {
57
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "geometryType", this.geometry.type);
58
+ const geomStr = JSON.stringify(this.geometry.geom);
59
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "geometry", geomStr);
60
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "inSR", `${this.geometry.geom.spatialReference.wkid}`);
61
+ }
62
+ }
63
+ else {
64
+ // No custom params, fetch all geometries
65
+ customParams = "where=1=1";
66
+ }
67
+ if (this.quantizationParams) {
68
+ const quantizationParamsStr = JSON.stringify(this.quantizationParams);
69
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "quantizationParameters", quantizationParamsStr);
70
+ }
71
+ if (this.outFields) {
72
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "outFields", this.outFields);
73
+ }
74
+ if (this.distance) {
75
+ customParams = ArcGisFeatureQuery.appendParam(customParams, "distance", `${this.distance}`);
76
+ }
77
+ return `${this.baseUrl}/${this.layerIdx}/query/?f=${this.format}&${customParams}`;
78
+ }
79
+ static appendParam(urlToAppend, paramName, paramValue) {
80
+ if (paramName.length === 0) {
81
+ return urlToAppend;
82
+ }
83
+ let url = urlToAppend;
84
+ if (urlToAppend.length > 0 && !urlToAppend.endsWith("&")) {
85
+ url = `${urlToAppend}&`;
86
+ }
87
+ return `${url}${paramName}=${paramValue}`;
88
+ }
89
+ }
90
+ exports.ArcGisFeatureQuery = ArcGisFeatureQuery;
91
+ //# sourceMappingURL=ArcGisFeatureQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureQuery.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureQuery.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\n/** @internal */\r\nexport type ArcGisFeatureResultType = \"none\" | \"standard\" | \"tile\";\r\n\r\n/** @internal */\r\nexport type ArcGisFeatureGeometryType =\r\n \"esriGeometryNull\"\r\n | \"esriGeometryPoint\"\r\n | \"esriGeometryMultipoint\"\r\n | \"esriGeometryLine\"\r\n | \"esriGeometryCircularArc\"\r\n | \"esriGeometryEllipticArc\"\r\n | \"esriGeometryBezier3Curve\"\r\n | \"esriGeometryPath\"\r\n | \"esriGeometryPolyline\"\r\n | \"esriGeometryRing\"\r\n | \"esriGeometryPolygon\"\r\n | \"esriGeometryEnvelope\"\r\n | \"esriGeometryAny\"\r\n | \"esriGeometryBag\"\r\n | \"esriGeometryMultiPatch\"\r\n | \"esriGeometryTriangleStrip\"\r\n | \"esriGeometryTriangeFan\"\r\n | \"esriGeometryRay\"\r\n | \"esriGeometrySphere\"\r\n | \"esriGeometryTriangles\";\r\n\r\n/** @internal */\r\nexport type ArcGisFeatureSpatialRel = \"esriSpatialRelIntersects\" | \"esriSpatialRelContains\" | \"esriSpatialRelCrosses\" | \"esriSpatialRelEnvelopeIntersects\" | \"esriSpatialRelIndexIntersects\" | \"esriSpatialRelOverlaps\" | \"esriSpatialRelTouches\" | \"esriSpatialRelWithin\";\r\n\r\n/** @internal */\r\nexport interface ArcGisGeometry {\r\n type: ArcGisFeatureGeometryType;\r\n geom: ArcGisExtent | ArcGisPointGeometry;\r\n}\r\n\r\n/** @internal */\r\nexport interface ArcGisSpatialReference {\r\n wkid: number;\r\n latestWkid: number;\r\n}\r\n\r\n/** @internal */\r\nexport interface ArcGisExtent {\r\n xmin: number;\r\n xmax: number;\r\n ymin: number;\r\n ymax: number;\r\n spatialReference: ArcGisSpatialReference;\r\n}\r\n\r\n/** @internal */\r\nexport interface ArcGisPointGeometry {\r\n x: number;\r\n y: number;\r\n spatialReference: ArcGisSpatialReference;\r\n}\r\n\r\n/** @internal */\r\nexport interface FeatureQueryQuantizationParams {\r\n extent: ArcGisExtent;\r\n mode: \"view\" | \"edit\";\r\n originPosition: \"upperLeft\" | \"lowerLeft\";\r\n tolerance: number;\r\n}\r\n\r\n/** @internal */\r\nexport type ArcGisFeatureFormat = \"JSON\" | \"PBF\";\r\n\r\n// Based on official documentation:\r\n// https://developers.arcgis.com/rest/services-reference/query-feature-service-layer-.htm\r\n/** @internal */\r\nexport interface ArcGisFeatureQueryParams {\r\n\r\n /** This option can be used for fetching query results up to the resultRecordCount specified.\r\n * When resultOffset is specified but this parameter is not, the map service defaults it to maxRecordCount.\r\n * The maximum value for this parameter is the value of the layer's maxRecordCount property.\r\n * The minimum value entered for this parameter cannot be below 1.\r\n * This parameter only applies if supportsPagination is true.\r\n * */\r\n resultRecordCount?: number;\r\n\r\n /** This option can be used for fetching query results up to the resultRecordCount specified.\r\n * When resultOffset is specified but this parameter is not, the map service defaults it to maxRecordCount.\r\n * The maximum value for this parameter is the value of the layer's maxRecordCount property.\r\n * The minimum value entered for this parameter cannot be below 1.\r\n * This parameter only applies if supportsPagination is true.\r\n * */\r\n resultOffset?: number;\r\n\r\n /** If true, the result includes the geometry associated with each feature returned. */\r\n returnGeometry?: boolean;\r\n geometry?: ArcGisGeometry;\r\n geometryType?: ArcGisFeatureGeometryType;\r\n spatialRel?: ArcGisFeatureSpatialRel;\r\n resultType?: ArcGisFeatureResultType;\r\n maxRecordCountFactor?: number;\r\n returnExceededLimitFeatures?: boolean;\r\n quantizationParameters?: FeatureQueryQuantizationParams;\r\n\r\n /** The list of fields to be included in the returned result set. This list is a comma-delimited list of field names.\r\n * You can also specify the wildcard \"*\" as the value of this parameter.\r\n * */\r\n outFields?: string;\r\n\r\n /** The buffer distance for the input geometries.\r\n * */\r\n distance?: number;\r\n}\r\n\r\n/** @internal */\r\nexport class ArcGisFeatureQuery {\r\n public baseUrl: string;\r\n public layerIdx: number;\r\n public format: ArcGisFeatureFormat;\r\n public resultRecordCount?: number;\r\n public resultOffset?: number;\r\n public returnGeometry?: boolean;\r\n public geometry?: ArcGisGeometry;\r\n public spatialRel?: ArcGisFeatureSpatialRel;\r\n public resultType?: ArcGisFeatureResultType;\r\n public maxRecordCountFactor?: number;\r\n public returnExceededLimitFeatures?: boolean;\r\n public outSR: number;\r\n public outFields?: string;\r\n public distance?: number;\r\n\r\n // public envelopeFilter?: CartographicRange;\r\n public quantizationParams?: FeatureQueryQuantizationParams;\r\n\r\n // base url is expected ito be in the format of:\r\n // https://<hostname>/arcgis/rest/services/<ServiceName>/FeatureServer\r\n public constructor(baseUrl: string, layerIdx: number, format: ArcGisFeatureFormat, outSR: number, params?: ArcGisFeatureQueryParams) {\r\n this.baseUrl = baseUrl;\r\n this.layerIdx = layerIdx;\r\n this.format = format;\r\n this.outSR = outSR;\r\n\r\n if (params !== undefined) {\r\n this.resultRecordCount = params.resultRecordCount;\r\n this.resultOffset = params.resultOffset;\r\n this.returnGeometry = params.returnGeometry;\r\n this.geometry = params.geometry;\r\n this.spatialRel = params.spatialRel;\r\n this.resultType = params.resultType;\r\n this.maxRecordCountFactor = params.maxRecordCountFactor;\r\n this.returnExceededLimitFeatures = params.returnExceededLimitFeatures;\r\n this.quantizationParams = params.quantizationParameters;\r\n this.outFields = params.outFields;\r\n this.distance = params.distance;\r\n }\r\n\r\n }\r\n\r\n public toString() {\r\n let customParams = \"\";\r\n\r\n if ( this.resultRecordCount !== undefined) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"resultRecordCount\", `${this.resultRecordCount}`);\r\n }\r\n\r\n if ( this.resultOffset !== undefined) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"resultOffset\", `${this.resultOffset}`);\r\n }\r\n\r\n if ( this.returnGeometry !== undefined) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"returnGeometry\", this.returnGeometry?\"true\":\"false\");\r\n }\r\n\r\n if ( this.resultType !== undefined) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"resultType\", this.resultType);\r\n }\r\n\r\n if ( this.maxRecordCountFactor !== undefined) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"maxRecordCountFactor\", `${this.maxRecordCountFactor}`);\r\n }\r\n\r\n if ( this.returnExceededLimitFeatures !== undefined) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"returnExceededLimitFeatures\", this.returnExceededLimitFeatures?\"true\":\"false\");\r\n }\r\n\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"outSR\", `${this.outSR}`);\r\n\r\n if (this.geometry || this.spatialRel) {\r\n\r\n if (this.spatialRel) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"spatialRel\", this.spatialRel);\r\n }\r\n\r\n if (this.geometry) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"geometryType\", this.geometry.type);\r\n\r\n const geomStr = JSON.stringify(this.geometry.geom);\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"geometry\", geomStr);\r\n\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"inSR\", `${this.geometry.geom.spatialReference.wkid}`);\r\n }\r\n } else {\r\n // No custom params, fetch all geometries\r\n customParams = \"where=1=1\";\r\n }\r\n\r\n if (this.quantizationParams) {\r\n const quantizationParamsStr = JSON.stringify(this.quantizationParams);\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"quantizationParameters\", quantizationParamsStr);\r\n }\r\n\r\n if (this.outFields) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"outFields\", this.outFields);\r\n }\r\n\r\n if (this.distance) {\r\n customParams = ArcGisFeatureQuery.appendParam(customParams, \"distance\", `${this.distance}`);\r\n }\r\n\r\n return `${this.baseUrl}/${this.layerIdx}/query/?f=${this.format}&${customParams}`;\r\n }\r\n\r\n private static appendParam(urlToAppend: string, paramName: string, paramValue: string) {\r\n if (paramName.length === 0) {\r\n return urlToAppend;\r\n }\r\n\r\n let url = urlToAppend;\r\n if (urlToAppend.length > 0 && !urlToAppend.endsWith(\"&\")) {\r\n url = `${urlToAppend }&`;\r\n }\r\n\r\n return `${url}${paramName}=${paramValue}`;\r\n }\r\n\r\n}\r\n"]}
@@ -0,0 +1,18 @@
1
+ import { Primitives, StandardTypeNames } from "@itwin/appui-abstract";
2
+ import { ImageMapLayerSettings } from "@itwin/core-common";
3
+ import { MapLayerFeatureInfo } from "@itwin/core-frontend";
4
+ import { ArcGisFeatureRenderer } from "./ArcGisFeatureRenderer";
5
+ import { ArcGisResponseData } from "./ArcGisFeatureResponse";
6
+ /** @internal */
7
+ export declare abstract class ArcGisFeatureReader {
8
+ floatPrecision: number | undefined;
9
+ forceDateDisplayValueToIso: boolean;
10
+ protected _settings: ImageMapLayerSettings;
11
+ protected _layerMetadata: any;
12
+ constructor(settings: ImageMapLayerSettings, layerMetadata: any);
13
+ abstract readAndRender(response: ArcGisResponseData, _renderer: ArcGisFeatureRenderer): void;
14
+ abstract readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]): void;
15
+ protected toFixedWithoutPadding: (value: number) => number;
16
+ protected getDisplayValue: (typename: StandardTypeNames, value: Primitives.Value | undefined) => string;
17
+ }
18
+ //# sourceMappingURL=ArcGisFeatureReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureReader.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureReader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,gBAAgB;AAChB,8BAAsB,mBAAmB;IAEhC,cAAc,EAAE,MAAM,GAAC,SAAS,CAAC;IAIjC,0BAA0B,UAAS;IAE1C,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC3C,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC;gBAEX,QAAQ,EAAE,qBAAqB,EAAE,aAAa,EAAE,GAAG;aAKtD,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,qBAAqB,GAAG,IAAI;aAEnF,eAAe,CAAC,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAExG,SAAS,CAAE,qBAAqB,UAAW,MAAM,YAE/C;IAEF,SAAS,CAAC,eAAe,aAAc,iBAAiB,SAAS,WAAW,KAAK,GAAC,SAAS,YAQzF;CACH"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ArcGisFeatureReader = void 0;
8
+ const appui_abstract_1 = require("@itwin/appui-abstract");
9
+ /** @internal */
10
+ class ArcGisFeatureReader {
11
+ constructor(settings, layerMetadata) {
12
+ // Force display value of date to ISO 8601 format.
13
+ // Turning this ON, will disable display value in end-user's locale
14
+ this.forceDateDisplayValueToIso = false;
15
+ this.toFixedWithoutPadding = (value) => {
16
+ return (this.floatPrecision === undefined ? value : parseFloat(value.toFixed(this.floatPrecision)));
17
+ };
18
+ this.getDisplayValue = (typename, value) => {
19
+ if (value === undefined) {
20
+ return "";
21
+ }
22
+ else if (typename === appui_abstract_1.StandardTypeNames.DateTime && this.forceDateDisplayValueToIso) {
23
+ return value.toISOString();
24
+ }
25
+ else {
26
+ return `${value}`;
27
+ }
28
+ };
29
+ this._settings = settings;
30
+ this._layerMetadata = layerMetadata;
31
+ }
32
+ }
33
+ exports.ArcGisFeatureReader = ArcGisFeatureReader;
34
+ //# sourceMappingURL=ArcGisFeatureReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureReader.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureReader.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F,0DAAsE;AAMtE,gBAAgB;AAChB,MAAsB,mBAAmB;IAWvC,YAAmB,QAA+B,EAAE,aAAkB;QAPtE,kDAAkD;QAClD,mEAAmE;QAC5D,+BAA0B,GAAG,KAAK,CAAC;QAc/B,0BAAqB,GAAG,CAAC,KAAa,EAAE,EAAE;YACnD,OAAO,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACtG,CAAC,CAAC;QAEQ,oBAAe,GAAG,CAAC,QAA2B,EAAE,KAAiC,EAAE,EAAE;YAC7F,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,OAAQ,EAAE,CAAC;aACZ;iBAAM,IAAK,QAAQ,KAAK,kCAAiB,CAAC,QAAQ,IAAI,IAAI,CAAC,0BAA0B,EAAE;gBACtF,OAAQ,KAAc,CAAC,WAAW,EAAE,CAAC;aACtC;iBAAM;gBACL,OAAO,GAAG,KAAK,EAAE,CAAC;aACnB;QACH,CAAC,CAAC;QApBA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,CAAC;CAmBF;AAjCD,kDAiCC","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 { Primitives, StandardTypeNames } from \"@itwin/appui-abstract\";\r\nimport { ImageMapLayerSettings } from \"@itwin/core-common\";\r\nimport { MapLayerFeatureInfo } from \"@itwin/core-frontend\";\r\nimport { ArcGisFeatureRenderer } from \"./ArcGisFeatureRenderer\";\r\nimport { ArcGisResponseData } from \"./ArcGisFeatureResponse\";\r\n\r\n/** @internal */\r\nexport abstract class ArcGisFeatureReader {\r\n // Optionally you can set the floating precision\r\n public floatPrecision: number|undefined;\r\n\r\n // Force display value of date to ISO 8601 format.\r\n // Turning this ON, will disable display value in end-user's locale\r\n public forceDateDisplayValueToIso = false;\r\n\r\n protected _settings: ImageMapLayerSettings;\r\n protected _layerMetadata: any;\r\n\r\n public constructor(settings: ImageMapLayerSettings, layerMetadata: any) {\r\n this._settings = settings;\r\n this._layerMetadata = layerMetadata;\r\n }\r\n\r\n public abstract readAndRender(response: ArcGisResponseData, _renderer: ArcGisFeatureRenderer): void;\r\n\r\n public abstract readFeatureInfo(response: ArcGisResponseData, featureInfos: MapLayerFeatureInfo[]): void;\r\n\r\n protected toFixedWithoutPadding = (value: number) => {\r\n return (this.floatPrecision === undefined ? value : parseFloat(value.toFixed(this.floatPrecision)));\r\n };\r\n\r\n protected getDisplayValue = (typename: StandardTypeNames, value: Primitives.Value|undefined) => {\r\n if (value === undefined) {\r\n return \"\";\r\n } else if ( typename === StandardTypeNames.DateTime && this.forceDateDisplayValueToIso) {\r\n return (value as Date).toISOString();\r\n } else {\r\n return `${value}`;\r\n }\r\n };\r\n}\r\n"]}
@@ -0,0 +1,33 @@
1
+ import { Transform } from "@itwin/core-geometry";
2
+ import { ArcGisSymbologyRenderer } from "./ArcGisSymbologyRenderer";
3
+ /** @internal */
4
+ export declare class ArcGisFeatureRenderer {
5
+ private _symbol;
6
+ private _transform;
7
+ private _context;
8
+ constructor(context: CanvasRenderingContext2D, symbol: ArcGisSymbologyRenderer, world2PixelTransform?: Transform);
9
+ get transform(): Transform | undefined;
10
+ private closePath;
11
+ private lineTo;
12
+ private moveTo;
13
+ private fill;
14
+ private stroke;
15
+ /**
16
+ * Render a path on the renderer's context.
17
+ * Note: Inputs are designed based on the PBF format, to avoid any data transformation.
18
+ * @param geometryLengths Array be used to determine the start and end of each sub-path / rings. (i.e. [5,5] = two rings of 5 vertices)
19
+ * @param geometryCoords Array that linearly encodes the vertices of each sub-path of a polyline / ring of a polygon
20
+ * @param fill Indicates if the path should be filled or not.
21
+ * @param stride Dimension of each vertices (i.e. 2 or 3. 3 could be X,Y,Z, X,YM) Currently 3rd dimension is ignored.
22
+ */
23
+ renderPath(geometryLengths: number[], geometryCoords: number[], fill: boolean, stride: number, relativeCoords: boolean): void;
24
+ /**
25
+ * Render a point on the renderer's context.
26
+ * Note: Inputs are designed based on the PBF format, to avoid any data transformation.
27
+ * @param geometryLengths Array be used to determine the start and end of each multi-point array, empty for single point.
28
+ * @param geometryCoords Array that linearly encodes vertices.
29
+ * @param stride Dimension of each vertices (i.e. 2 or 3. 3 could be X,Y,Z, X,YM) Currently 3rd dimension is ignored.
30
+ */
31
+ renderPoint(geometryLengths: number[], geometryCoords: number[], stride: number, relativeCoords: boolean): void;
32
+ }
33
+ //# sourceMappingURL=ArcGisFeatureRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureRenderer.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureRenderer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,gBAAgB;AAChB,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,uBAAuB,EAAE,oBAAoB,CAAC,EAAE,SAAS;IAMhH,IAAW,SAAS,0BAA4B;IAGhD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,MAAM;IAId;;;;;;;MAOE;IACK,UAAU,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO;IAmE7H;;;;;;MAME;IACK,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO;CA8ChH"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArcGisFeatureRenderer = void 0;
4
+ /** @internal */
5
+ class ArcGisFeatureRenderer {
6
+ constructor(context, symbol, world2PixelTransform) {
7
+ this._symbol = symbol;
8
+ this._context = context;
9
+ this._transform = world2PixelTransform;
10
+ }
11
+ get transform() { return this._transform; }
12
+ // Utility functions to make ease testing.
13
+ closePath() {
14
+ this._context.closePath();
15
+ }
16
+ lineTo(x, y) {
17
+ this._context.lineTo(x, y);
18
+ }
19
+ moveTo(x, y) {
20
+ this._context.moveTo(x, y);
21
+ }
22
+ fill() {
23
+ this._context.fill();
24
+ }
25
+ stroke() {
26
+ this._context.stroke();
27
+ }
28
+ /**
29
+ * Render a path on the renderer's context.
30
+ * Note: Inputs are designed based on the PBF format, to avoid any data transformation.
31
+ * @param geometryLengths Array be used to determine the start and end of each sub-path / rings. (i.e. [5,5] = two rings of 5 vertices)
32
+ * @param geometryCoords Array that linearly encodes the vertices of each sub-path of a polyline / ring of a polygon
33
+ * @param fill Indicates if the path should be filled or not.
34
+ * @param stride Dimension of each vertices (i.e. 2 or 3. 3 could be X,Y,Z, X,YM) Currently 3rd dimension is ignored.
35
+ */
36
+ renderPath(geometryLengths, geometryCoords, fill, stride, relativeCoords) {
37
+ if (stride < 2 || stride > 3) {
38
+ return;
39
+ }
40
+ // Keep track of our position in the in the 'coords' array:
41
+ // Every time we loop on the 'lengths' array, the position
42
+ // to start reading vertices in the 'coords' must be the sum of all previously read vertices.
43
+ let coordsOffset = 0;
44
+ // Begin the path here.
45
+ // Note: Even though path is closed inside the 'geometryLengths' loop,
46
+ // it's import to begin the path only once.
47
+ this._context.beginPath();
48
+ for (const vertexCount of geometryLengths) {
49
+ let lastPtX = 0, lastPtY = 0;
50
+ for (let vertexIdx = 0; vertexIdx < vertexCount; vertexIdx++) {
51
+ let pX = geometryCoords[coordsOffset + (vertexIdx * stride)];
52
+ let pY = geometryCoords[coordsOffset + (vertexIdx * stride) + 1];
53
+ if (vertexIdx === 0) {
54
+ // first vertex is always "absolute" and must be drawn as 'moveTo' (i.e. not lineTo)
55
+ if (relativeCoords) {
56
+ lastPtX = pX;
57
+ lastPtY = pY;
58
+ }
59
+ if (this._transform) {
60
+ const transformedPoint = this._transform.multiplyPoint2d({ x: pX, y: pY });
61
+ pX = transformedPoint.x;
62
+ pY = transformedPoint.y;
63
+ }
64
+ this.moveTo(pX, pY);
65
+ }
66
+ else {
67
+ // Following vertices are relative to the previous one (sadly not really well documented by ESRI)
68
+ // typically this happens when 'coordinates quantization' is active (i.e. no client side transformation is needed)
69
+ if (relativeCoords) {
70
+ pX = lastPtX = lastPtX + pX;
71
+ pY = lastPtY = lastPtY + pY;
72
+ }
73
+ if (this._transform) {
74
+ const transformedPoint = this._transform.multiplyPoint2d({ x: pX, y: pY });
75
+ pX = transformedPoint.x;
76
+ pY = transformedPoint.y;
77
+ }
78
+ this.lineTo(pX, pY);
79
+ }
80
+ }
81
+ coordsOffset += stride * vertexCount;
82
+ if (fill) {
83
+ // ClosePath but do not 'fill' here, only at the very end (otherwise it will mess up holes)
84
+ this.closePath();
85
+ }
86
+ }
87
+ if (fill) {
88
+ this._symbol.applyFillStyle(this._context);
89
+ this.fill();
90
+ }
91
+ this._symbol.applyStrokeStyle(this._context);
92
+ this.stroke(); // draw line path or polygon outline
93
+ }
94
+ /**
95
+ * Render a point on the renderer's context.
96
+ * Note: Inputs are designed based on the PBF format, to avoid any data transformation.
97
+ * @param geometryLengths Array be used to determine the start and end of each multi-point array, empty for single point.
98
+ * @param geometryCoords Array that linearly encodes vertices.
99
+ * @param stride Dimension of each vertices (i.e. 2 or 3. 3 could be X,Y,Z, X,YM) Currently 3rd dimension is ignored.
100
+ */
101
+ renderPoint(geometryLengths, geometryCoords, stride, relativeCoords) {
102
+ if (stride < 2 || stride > 3) {
103
+ return;
104
+ }
105
+ let coordsOffset = 0;
106
+ if (geometryLengths.length === 0) {
107
+ // Strangely, for points, 'lengths' array is empty, so we assume there is a single vertex in 'coords' array.
108
+ if (geometryCoords.length >= stride) {
109
+ if (this._transform) {
110
+ const transformedPoint = this._transform.multiplyPoint2d({ x: geometryCoords[0], y: geometryCoords[1] });
111
+ this._symbol.drawPoint(this._context, transformedPoint.x, transformedPoint.y);
112
+ }
113
+ else {
114
+ this._symbol.drawPoint(this._context, geometryCoords[0], geometryCoords[1]);
115
+ }
116
+ }
117
+ }
118
+ else {
119
+ // MULTI-POINTS: Needs testing
120
+ // I assume 'lengths' array will get populated and 'coords' array will look similar to line/polygons.
121
+ for (const vertexCount of geometryLengths) {
122
+ let lastPtX = 0, lastPtY = 0;
123
+ for (let vertexIdx = 0; vertexIdx < vertexCount; vertexIdx++) {
124
+ let pX = geometryCoords[coordsOffset + (vertexIdx * stride)];
125
+ let pY = geometryCoords[coordsOffset + (vertexIdx * stride) + 1];
126
+ if (relativeCoords) {
127
+ pX = lastPtX = lastPtX + pX;
128
+ pY = lastPtY = lastPtY + pY;
129
+ }
130
+ if (this._transform) {
131
+ const transformedPoint = this._transform.multiplyPoint2d({ x: pX, y: pY });
132
+ pX = transformedPoint.x;
133
+ pY = transformedPoint.y;
134
+ }
135
+ this._symbol.drawPoint(this._context, pX, pY);
136
+ }
137
+ coordsOffset += stride * vertexCount;
138
+ }
139
+ }
140
+ }
141
+ }
142
+ exports.ArcGisFeatureRenderer = ArcGisFeatureRenderer;
143
+ //# sourceMappingURL=ArcGisFeatureRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureRenderer.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureRenderer.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\nimport { Transform } from \"@itwin/core-geometry\";\r\nimport { ArcGisSymbologyRenderer } from \"./ArcGisSymbologyRenderer\";\r\n\r\n/** @internal */\r\nexport class ArcGisFeatureRenderer {\r\n private _symbol: ArcGisSymbologyRenderer;\r\n private _transform: Transform|undefined;\r\n private _context: CanvasRenderingContext2D;\r\n\r\n constructor(context: CanvasRenderingContext2D, symbol: ArcGisSymbologyRenderer, world2PixelTransform?: Transform) {\r\n this._symbol = symbol;\r\n this._context = context;\r\n this._transform = world2PixelTransform;\r\n }\r\n\r\n public get transform() {return this._transform;}\r\n\r\n // Utility functions to make ease testing.\r\n private closePath() {\r\n this._context.closePath();\r\n }\r\n\r\n private lineTo(x: number, y: number) {\r\n this._context.lineTo(x,y);\r\n }\r\n\r\n private moveTo(x: number, y: number) {\r\n this._context.moveTo(x,y);\r\n }\r\n\r\n private fill() {\r\n this._context.fill();\r\n }\r\n\r\n private stroke() {\r\n this._context.stroke();\r\n }\r\n\r\n /**\r\n * Render a path on the renderer's context.\r\n * Note: Inputs are designed based on the PBF format, to avoid any data transformation.\r\n * @param geometryLengths Array be used to determine the start and end of each sub-path / rings. (i.e. [5,5] = two rings of 5 vertices)\r\n * @param geometryCoords Array that linearly encodes the vertices of each sub-path of a polyline / ring of a polygon\r\n * @param fill Indicates if the path should be filled or not.\r\n * @param stride Dimension of each vertices (i.e. 2 or 3. 3 could be X,Y,Z, X,YM) Currently 3rd dimension is ignored.\r\n */\r\n public renderPath(geometryLengths: number[], geometryCoords: number[], fill: boolean, stride: number, relativeCoords: boolean) {\r\n if (stride < 2 || stride > 3) {\r\n return;\r\n }\r\n\r\n // Keep track of our position in the in the 'coords' array:\r\n // Every time we loop on the 'lengths' array, the position\r\n // to start reading vertices in the 'coords' must be the sum of all previously read vertices.\r\n let coordsOffset = 0;\r\n\r\n // Begin the path here.\r\n // Note: Even though path is closed inside the 'geometryLengths' loop,\r\n // it's import to begin the path only once.\r\n this._context.beginPath();\r\n for (const vertexCount of geometryLengths) {\r\n let lastPtX = 0, lastPtY = 0;\r\n for (let vertexIdx=0 ; vertexIdx <vertexCount; vertexIdx++) {\r\n let pX = geometryCoords[coordsOffset+(vertexIdx*stride)];\r\n let pY = geometryCoords[coordsOffset+(vertexIdx*stride)+1];\r\n if (vertexIdx === 0) {\r\n // first vertex is always \"absolute\" and must be drawn as 'moveTo' (i.e. not lineTo)\r\n if (relativeCoords) {\r\n lastPtX = pX;\r\n lastPtY = pY;\r\n }\r\n\r\n if (this._transform) {\r\n const transformedPoint = this._transform.multiplyPoint2d({x: pX, y:pY});\r\n pX = transformedPoint.x;\r\n pY = transformedPoint.y;\r\n }\r\n\r\n this.moveTo(pX, pY);\r\n } else {\r\n\r\n // Following vertices are relative to the previous one (sadly not really well documented by ESRI)\r\n // typically this happens when 'coordinates quantization' is active (i.e. no client side transformation is needed)\r\n if (relativeCoords) {\r\n pX = lastPtX = lastPtX+pX;\r\n pY = lastPtY = lastPtY+pY;\r\n }\r\n\r\n if (this._transform) {\r\n const transformedPoint = this._transform.multiplyPoint2d({x: pX, y:pY});\r\n pX = transformedPoint.x;\r\n pY = transformedPoint.y;\r\n }\r\n this.lineTo(pX, pY);\r\n }\r\n\r\n }\r\n coordsOffset+=stride*vertexCount;\r\n if (fill) {\r\n // ClosePath but do not 'fill' here, only at the very end (otherwise it will mess up holes)\r\n this.closePath();\r\n }\r\n }\r\n\r\n if (fill) {\r\n this._symbol.applyFillStyle(this._context);\r\n this.fill();\r\n }\r\n\r\n this._symbol.applyStrokeStyle(this._context);\r\n this.stroke(); // draw line path or polygon outline\r\n }\r\n\r\n /**\r\n * Render a point on the renderer's context.\r\n * Note: Inputs are designed based on the PBF format, to avoid any data transformation.\r\n * @param geometryLengths Array be used to determine the start and end of each multi-point array, empty for single point.\r\n * @param geometryCoords Array that linearly encodes vertices.\r\n * @param stride Dimension of each vertices (i.e. 2 or 3. 3 could be X,Y,Z, X,YM) Currently 3rd dimension is ignored.\r\n */\r\n public renderPoint(geometryLengths: number[], geometryCoords: number[], stride: number, relativeCoords: boolean) {\r\n\r\n if (stride < 2 || stride > 3) {\r\n return;\r\n }\r\n let coordsOffset = 0;\r\n if (geometryLengths.length === 0) {\r\n // Strangely, for points, 'lengths' array is empty, so we assume there is a single vertex in 'coords' array.\r\n if (geometryCoords.length >= stride) {\r\n\r\n if (this._transform) {\r\n const transformedPoint = this._transform.multiplyPoint2d({x: geometryCoords[0], y:geometryCoords[1]});\r\n this._symbol.drawPoint(this._context, transformedPoint.x, transformedPoint.y);\r\n } else {\r\n this._symbol.drawPoint(this._context, geometryCoords[0], geometryCoords[1]);\r\n }\r\n }\r\n } else {\r\n // MULTI-POINTS: Needs testing\r\n // I assume 'lengths' array will get populated and 'coords' array will look similar to line/polygons.\r\n for (const vertexCount of geometryLengths) {\r\n let lastPtX = 0, lastPtY = 0;\r\n for (let vertexIdx=0 ; vertexIdx <vertexCount; vertexIdx++) {\r\n let pX = geometryCoords[coordsOffset+(vertexIdx*stride)];\r\n let pY = geometryCoords[coordsOffset+(vertexIdx*stride)+1];\r\n\r\n if (relativeCoords) {\r\n pX = lastPtX = lastPtX+pX;\r\n pY = lastPtY = lastPtY+pY;\r\n }\r\n\r\n if (this._transform) {\r\n const transformedPoint = this._transform.multiplyPoint2d({x: pX, y:pY});\r\n pX = transformedPoint.x;\r\n pY = transformedPoint.y;\r\n }\r\n\r\n this._symbol.drawPoint(this._context, pX, pY);\r\n\r\n }\r\n coordsOffset+=stride*vertexCount;\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n"]}
@@ -0,0 +1,17 @@
1
+ import { ArcGisExtent, ArcGisFeatureFormat } from "./ArcGisFeatureQuery";
2
+ /** @internal */
3
+ export interface ArcGisResponseData {
4
+ data: any;
5
+ exceedTransferLimit: boolean;
6
+ }
7
+ /** @internal */
8
+ export declare type ArcGisFieldType = "esriFieldTypeInteger" | "esriFieldTypeSmallInteger" | "esriFieldTypeDouble" | "esriFieldTypeSingle" | "esriFieldTypeString" | "esriFieldTypeDate" | "esriFieldTypeGeometry" | "esriFieldTypeOID" | "esriFieldTypeBlob" | "esriFieldTypeGlobalID" | "esriFieldTypeRaster" | "esriFieldTypeGUID" | "esriFieldTypeXML";
9
+ /** @internal */
10
+ export declare class ArcGisFeatureResponse {
11
+ readonly format: ArcGisFeatureFormat;
12
+ readonly envelope: ArcGisExtent | undefined;
13
+ private _response;
14
+ constructor(format: ArcGisFeatureFormat, response: Promise<Response>, envelope?: ArcGisExtent);
15
+ getResponseData(): Promise<ArcGisResponseData | undefined>;
16
+ }
17
+ //# sourceMappingURL=ArcGisFeatureResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureResponse.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureResponse.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGzE,gBAAgB;AAChB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,GAAG,CAAC;IACV,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,gBAAgB;AAChB,oBAAY,eAAe,GACzB,sBAAsB,GACpB,2BAA2B,GAC3B,qBAAqB,GACrB,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,uBAAuB,GACvB,kBAAkB,GAClB,mBAAmB,GACnB,uBAAuB,GACvB,qBAAqB,GACrB,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB,gBAAgB;AAChB,qBAAa,qBAAqB;IAChC,SAAgB,MAAM,EAAE,mBAAmB,CAAC;IAC5C,SAAgB,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAEnD,OAAO,CAAC,SAAS,CAAoB;gBAEzB,MAAM,EAAE,mBAAmB,EAAG,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,YAAY;IAMjF,eAAe,IAAI,OAAO,CAAC,kBAAkB,GAAC,SAAS,CAAC;CA4BtE"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ArcGisFeatureResponse = void 0;
8
+ const esriPBuffer_gen_1 = require("./esriPBuffer.gen");
9
+ /** @internal */
10
+ class ArcGisFeatureResponse {
11
+ constructor(format, response, envelope) {
12
+ this.format = format;
13
+ this._response = response;
14
+ this.envelope = envelope;
15
+ }
16
+ async getResponseData() {
17
+ var _a, _b;
18
+ let data;
19
+ try {
20
+ const tileResponse = await this._response;
21
+ if (tileResponse === undefined || tileResponse.status !== 200)
22
+ return undefined;
23
+ if (this.format === "PBF") {
24
+ const byteArray = new Uint8Array(await tileResponse.arrayBuffer());
25
+ if (!byteArray || (byteArray.length === 0))
26
+ return undefined;
27
+ data = esriPBuffer_gen_1.esriPBuffer.FeatureCollectionPBuffer.deserialize(byteArray);
28
+ const collection = data;
29
+ return { data, exceedTransferLimit: (_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.exceededTransferLimit };
30
+ }
31
+ else {
32
+ data = await tileResponse.json();
33
+ if (data === undefined || data == null)
34
+ return undefined;
35
+ return { data, exceedTransferLimit: data.exceededTransferLimit };
36
+ }
37
+ }
38
+ catch (_e) {
39
+ return undefined;
40
+ }
41
+ }
42
+ }
43
+ exports.ArcGisFeatureResponse = ArcGisFeatureResponse;
44
+ //# sourceMappingURL=ArcGisFeatureResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisFeatureResponse.js","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisFeatureResponse.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAG/F,uDAAgD;AAwBhD,gBAAgB;AAChB,MAAa,qBAAqB;IAMhC,YAAY,MAA2B,EAAG,QAA2B,EAAE,QAAuB;QAC5F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,eAAe;;QAC1B,IAAI,IAAmB,CAAC;QACxB,IAAI;YACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC;YAC1C,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,KAAK,GAAG;gBAC3D,OAAO,SAAS,CAAC;YAEnB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;gBACzB,MAAM,SAAS,GAAe,IAAI,UAAU,CAAC,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;oBACxC,OAAO,SAAS,CAAC;gBAEnB,IAAI,GAAG,6BAAW,CAAC,wBAAwB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACnE,MAAM,UAAU,GAAG,IAA4C,CAAC;gBAChE,OAAO,EAAC,IAAI,EAAE,mBAAmB,EAAE,MAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,0CAAE,aAAa,0CAAE,qBAAqB,EAAC,CAAC;aAEnG;iBAAM;gBACL,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,IAAI;oBACpC,OAAO,SAAS,CAAC;gBAEnB,OAAO,EAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,EAAC,CAAC;aAChE;SAEF;QAAC,OAAM,EAAE,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;CACF;AAxCD,sDAwCC","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 { ArcGisExtent, ArcGisFeatureFormat } from \"./ArcGisFeatureQuery\";\r\nimport { esriPBuffer } from \"./esriPBuffer.gen\";\r\n\r\n/** @internal */\r\nexport interface ArcGisResponseData {\r\n data: any;\r\n exceedTransferLimit: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport type ArcGisFieldType =\r\n \"esriFieldTypeInteger\"\r\n | \"esriFieldTypeSmallInteger\"\r\n | \"esriFieldTypeDouble\"\r\n | \"esriFieldTypeSingle\"\r\n | \"esriFieldTypeString\"\r\n | \"esriFieldTypeDate\"\r\n | \"esriFieldTypeGeometry\"\r\n | \"esriFieldTypeOID\"\r\n | \"esriFieldTypeBlob\"\r\n | \"esriFieldTypeGlobalID\"\r\n | \"esriFieldTypeRaster\"\r\n | \"esriFieldTypeGUID\"\r\n | \"esriFieldTypeXML\";\r\n\r\n/** @internal */\r\nexport class ArcGisFeatureResponse {\r\n public readonly format: ArcGisFeatureFormat;\r\n public readonly envelope: ArcGisExtent | undefined;\r\n\r\n private _response: Promise<Response>;\r\n\r\n constructor(format: ArcGisFeatureFormat, response: Promise<Response>, envelope?: ArcGisExtent) {\r\n this.format = format;\r\n this._response = response;\r\n this.envelope = envelope;\r\n }\r\n\r\n public async getResponseData(): Promise<ArcGisResponseData|undefined> {\r\n let data: any|undefined;\r\n try {\r\n const tileResponse = await this._response;\r\n if (tileResponse === undefined || tileResponse.status !== 200 )\r\n return undefined;\r\n\r\n if (this.format === \"PBF\") {\r\n const byteArray: Uint8Array = new Uint8Array(await tileResponse.arrayBuffer());\r\n if (!byteArray || (byteArray.length === 0))\r\n return undefined;\r\n\r\n data = esriPBuffer.FeatureCollectionPBuffer.deserialize(byteArray);\r\n const collection = data as esriPBuffer.FeatureCollectionPBuffer;\r\n return {data, exceedTransferLimit: collection?.queryResult?.featureResult?.exceededTransferLimit};\r\n\r\n } else {\r\n data = await tileResponse.json();\r\n if (data === undefined || data == null)\r\n return undefined;\r\n\r\n return {data, exceedTransferLimit: data.exceededTransferLimit};\r\n }\r\n\r\n } catch(_e) {\r\n return undefined;\r\n }\r\n }\r\n}\r\n"]}
@@ -0,0 +1,86 @@
1
+ import { ColorDef } from "@itwin/core-common";
2
+ import { ArcGisFeatureGeometryType } from "./ArcGisFeatureQuery";
3
+ /** @internal */
4
+ export declare type EsriSymbolType = "esriSFS" | "esriPMS" | "esriSLS" | "esriSMS" | "esriTS" | "CIMSymbolReference";
5
+ interface EsriSymbol {
6
+ type: EsriSymbolType;
7
+ }
8
+ /** @internal */
9
+ export declare type EsriSLSStyle = "esriSLSDash" | "esriSLSDashDot" | "esriSLSDashDotDot" | "esriSLSDot" | "esriSLSLongDash" | "esriSLSLongDashDot" | "esriSLSNull" | "esriSLSShortDash" | "esriSLSShortDashDot" | "esriSLSShortDashDotDot" | "esriSLSShortDot" | "esriSLSSolid";
10
+ interface EsriSLSProps {
11
+ color: number[];
12
+ type: EsriSymbolType;
13
+ width: number;
14
+ style: EsriSLSStyle;
15
+ }
16
+ /** @internal */
17
+ export declare class EsriSLS implements EsriSymbol {
18
+ readonly props: EsriSLSProps;
19
+ get color(): ColorDef | undefined;
20
+ get type(): EsriSymbolType;
21
+ get width(): number;
22
+ get style(): EsriSLSStyle;
23
+ constructor(json: EsriSLSProps);
24
+ static fromJSON(json: EsriSLSProps): EsriSLS;
25
+ }
26
+ interface EsriPMSProps {
27
+ type: EsriSymbolType;
28
+ url: string;
29
+ imageData: string;
30
+ contentType: string;
31
+ width?: number;
32
+ height?: number;
33
+ xoffset?: number;
34
+ yoffset?: number;
35
+ angle?: number;
36
+ }
37
+ /** @internal */
38
+ export declare class EsriPMS implements EsriSymbol {
39
+ readonly props: EsriPMSProps;
40
+ private _image;
41
+ get type(): EsriSymbolType;
42
+ get url(): string;
43
+ get imageData(): string;
44
+ get imageUrl(): string;
45
+ get image(): HTMLImageElement;
46
+ get contentType(): string;
47
+ get width(): number | undefined;
48
+ get height(): number | undefined;
49
+ get xoffset(): number | undefined;
50
+ get yoffset(): number | undefined;
51
+ get angle(): number | undefined;
52
+ constructor(json: EsriPMSProps);
53
+ static fromJSON(json: EsriPMSProps): EsriPMS;
54
+ }
55
+ /** @internal */
56
+ export declare type EsriSFSStyleProps = "esriSFSBackwardDiagonal" | "esriSFSCross" | "esriSFSDiagonalCross" | "esriSFSForwardDiagonal" | "esriSFSHorizontal" | "esriSFSNull" | "esriSFSSolid" | "esriSFSVertical";
57
+ interface EsriSFSProps {
58
+ color?: number[];
59
+ type: EsriSymbolType;
60
+ style: EsriSFSStyleProps;
61
+ outline?: EsriSLSProps;
62
+ }
63
+ /** @internal */
64
+ export declare class EsriSFS implements EsriSymbol {
65
+ readonly props: EsriSFSProps;
66
+ private _outline;
67
+ get color(): ColorDef | undefined;
68
+ get type(): EsriSymbolType;
69
+ get style(): EsriSFSStyleProps;
70
+ get outline(): EsriSLS | undefined;
71
+ constructor(json: EsriSFSProps);
72
+ static fromJSON(json: EsriSFSProps): EsriSFS;
73
+ }
74
+ /** @internal */
75
+ export declare class ArcGisSymbologyRenderer {
76
+ private _symbol;
77
+ private static readonly defaultPMS;
78
+ private static readonly defaultSLS;
79
+ private static readonly defaultSFS;
80
+ constructor(geometryType: ArcGisFeatureGeometryType, rendererDefinition: any);
81
+ applyFillStyle(context: CanvasRenderingContext2D): void;
82
+ applyStrokeStyle(context: CanvasRenderingContext2D): void;
83
+ drawPoint(context: CanvasRenderingContext2D, ptX: number, ptY: number): void;
84
+ }
85
+ export {};
86
+ //# sourceMappingURL=ArcGisSymbologyRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArcGisSymbologyRenderer.d.ts","sourceRoot":"","sources":["../../../src/ArcGisFeature/ArcGisSymbologyRenderer.ts"],"names":[],"mappings":"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"}