@itwin/map-layers-formats 4.1.0-dev.5 → 4.1.0-dev.50

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 (78) hide show
  1. package/.rush/temp/operation/build/all.log +0 -2
  2. package/.rush/temp/operation/build/state.json +1 -1
  3. package/.rush/temp/operation/cover/all.log +12 -7
  4. package/.rush/temp/operation/cover/state.json +1 -1
  5. package/.rush/temp/operation/docs/all.log +2 -2
  6. package/.rush/temp/operation/docs/state.json +1 -1
  7. package/.rush/temp/package-deps_build.json +9 -9
  8. package/.rush/temp/package-deps_cover.json +9 -9
  9. package/.rush/temp/package-deps_docs.json +9 -9
  10. package/.rush/temp/shrinkwrap-deps.json +70 -80
  11. package/CHANGELOG.json +57 -0
  12. package/CHANGELOG.md +44 -1
  13. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -1
  14. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js +3 -0
  15. package/lib/cjs/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
  16. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts +3 -0
  17. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
  18. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js +49 -11
  19. package/lib/cjs/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  20. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js +3 -3
  21. package/lib/cjs/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  22. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js +139 -7
  23. package/lib/cjs/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
  24. package/lib/cjs/test/ArcGisFeature/Mocks.d.ts.map +1 -1
  25. package/lib/cjs/test/ArcGisFeature/Mocks.js +1 -1
  26. package/lib/cjs/test/ArcGisFeature/Mocks.js.map +1 -1
  27. package/lib/cjs/test/coverage/.nyc_output/49eeff8d-f0c9-43b5-9fa7-717e2ee4f36b.json +1 -0
  28. package/lib/cjs/test/coverage/.nyc_output/processinfo/49eeff8d-f0c9-43b5-9fa7-717e2ee4f36b.json +1 -0
  29. package/lib/cjs/test/coverage/.nyc_output/processinfo/b749190e-f7e9-4cdb-80df-74589d31e28d.json +1 -0
  30. package/lib/cjs/test/coverage/.nyc_output/processinfo/index.json +1 -1
  31. package/lib/cjs/test/coverage/cobertura-coverage.xml +295 -258
  32. package/lib/cjs/test/coverage/lcov-report/index.html +18 -18
  33. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureFormat.ts.html +21 -9
  34. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureJSON.ts.html +1 -1
  35. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeaturePBF.ts.html +1 -1
  36. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureProvider.ts.html +202 -76
  37. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureQuery.ts.html +1 -1
  38. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureReader.ts.html +1 -1
  39. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureRenderer.ts.html +1 -1
  40. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisFeatureResponse.ts.html +1 -1
  41. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/ArcGisSymbologyRenderer.ts.html +13 -13
  42. package/lib/cjs/test/coverage/lcov-report/src/ArcGisFeature/index.html +26 -26
  43. package/lib/cjs/test/coverage/lcov-report/src/index.html +1 -1
  44. package/lib/cjs/test/coverage/lcov-report/src/map-layers-formats.ts.html +1 -1
  45. package/lib/cjs/test/coverage/lcov-report/src/mapLayersFormats.ts.html +1 -1
  46. package/lib/cjs/test/coverage/lcov.info +429 -388
  47. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  48. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.d.ts.map +1 -1
  49. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js +4 -1
  50. package/lib/esm/ArcGisFeature/ArcGisFeatureFormat.js.map +1 -1
  51. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts +3 -0
  52. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.d.ts.map +1 -1
  53. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js +49 -11
  54. package/lib/esm/ArcGisFeature/ArcGisFeatureProvider.js.map +1 -1
  55. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js +3 -3
  56. package/lib/esm/ArcGisFeature/ArcGisSymbologyRenderer.js.map +1 -1
  57. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js +140 -8
  58. package/lib/esm/test/ArcGisFeature/ArcGisFeatureProvider.test.js.map +1 -1
  59. package/lib/esm/test/ArcGisFeature/Mocks.d.ts.map +1 -1
  60. package/lib/esm/test/ArcGisFeature/Mocks.js +1 -1
  61. package/lib/esm/test/ArcGisFeature/Mocks.js.map +1 -1
  62. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  63. package/lib/test/junit_results.xml +53 -43
  64. package/map-layers-formats.build.cache.log +2 -0
  65. package/map-layers-formats.cover.log +103 -0
  66. package/{map-layers-formats.build.log → map-layers-formats.docs.log} +2 -2
  67. package/map-layers-formats.lint.error.log +1 -0
  68. package/map-layers-formats.lint.log +2 -0
  69. package/package.json +12 -12
  70. package/src/ArcGisFeature/ArcGisFeatureFormat.ts +5 -1
  71. package/src/ArcGisFeature/ArcGisFeatureProvider.ts +53 -11
  72. package/src/ArcGisFeature/ArcGisSymbologyRenderer.ts +3 -3
  73. package/src/test/ArcGisFeature/ArcGisFeatureProvider.test.ts +180 -8
  74. package/src/test/ArcGisFeature/Mocks.ts +1 -1
  75. package/lib/cjs/test/coverage/.nyc_output/97a409cb-0529-4dd9-9185-4c9a271c836a.json +0 -1
  76. package/lib/cjs/test/coverage/.nyc_output/processinfo/530a1eef-b22f-4875-a81e-1eabc667f480.json +0 -1
  77. package/lib/cjs/test/coverage/.nyc_output/processinfo/97a409cb-0529-4dd9-9185-4c9a271c836a.json +0 -1
  78. /package/lib/cjs/test/coverage/.nyc_output/{530a1eef-b22f-4875-a81e-1eabc667f480.json → b749190e-f7e9-4cdb-80df-74589d31e28d.json} +0 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">91.5% </span>
26
+ <span class="strong">91.54% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>646/706</span>
28
+ <span class='fraction'>671/733</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">85.01% </span>
33
+ <span class="strong">84.89% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>346/407</span>
35
+ <span class='fraction'>354/417</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92.3% </span>
40
+ <span class="strong">92.5% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>72/78</span>
42
+ <span class='fraction'>74/80</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">91.37% </span>
47
+ <span class="strong">91.42% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>636/696</span>
49
+ <span class='fraction'>661/723</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,17 +95,17 @@
95
95
 
96
96
  <tr>
97
97
  <td class="file high" data-value="src/ArcGisFeature"><a href="src/ArcGisFeature/index.html">src/ArcGisFeature</a></td>
98
- <td data-value="91.82" class="pic high">
98
+ <td data-value="91.85" class="pic high">
99
99
  <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
100
100
  </td>
101
- <td data-value="91.82" class="pct high">91.82%</td>
102
- <td data-value="697" class="abs high">640/697</td>
103
- <td data-value="85.43" class="pct high">85.43%</td>
104
- <td data-value="405" class="abs high">346/405</td>
105
- <td data-value="93.5" class="pct high">93.5%</td>
106
- <td data-value="77" class="abs high">72/77</td>
107
- <td data-value="91.7" class="pct high">91.7%</td>
108
- <td data-value="687" class="abs high">630/687</td>
101
+ <td data-value="91.85" class="pct high">91.85%</td>
102
+ <td data-value="724" class="abs high">665/724</td>
103
+ <td data-value="85.3" class="pct high">85.3%</td>
104
+ <td data-value="415" class="abs high">354/415</td>
105
+ <td data-value="93.67" class="pct high">93.67%</td>
106
+ <td data-value="79" class="abs high">74/79</td>
107
+ <td data-value="91.73" class="pct high">91.73%</td>
108
+ <td data-value="714" class="abs high">655/714</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2023-05-16T05:13:56.517Z
119
+ at 2023-06-30T05:15:48.760Z
120
120
  </div>
121
121
  <script src="prettify.js"></script>
122
122
  <script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">88.88% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>6/6</span>
28
+ <span class='fraction'>8/9</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>1/2</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">88.88% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/6</span>
49
+ <span class='fraction'>8/9</span>
50
50
  </div>
51
51
 
52
52
 
@@ -79,7 +79,11 @@
79
79
  <a name='L14'></a><a href='#L14'>14</a>
80
80
  <a name='L15'></a><a href='#L15'>15</a>
81
81
  <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
83
87
  <span class="cline-any cline-neutral">&nbsp;</span>
84
88
  <span class="cline-any cline-neutral">&nbsp;</span>
85
89
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -93,6 +97,10 @@
93
97
  <span class="cline-any cline-yes">1x</span>
94
98
  <span class="cline-any cline-neutral">&nbsp;</span>
95
99
  <span class="cline-any cline-yes">1x</span>
100
+ <span class="cline-any cline-yes">1x</span>
101
+ <span class="cline-any cline-no">&nbsp;</span>
102
+ <span class="cline-any cline-neutral">&nbsp;</span>
103
+ <span class="cline-any cline-yes">1x</span>
96
104
  <span class="cline-any cline-neutral">&nbsp;</span>
97
105
  <span class="cline-any cline-neutral">&nbsp;</span>
98
106
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*---------------------------------------------------------------------------------------------
@@ -100,7 +108,7 @@
100
108
  * See LICENSE.md in the project root for license terms and full copyright notice.
101
109
  *--------------------------------------------------------------------------------------------*/
102
110
  import { ImageMapLayerSettings } from "@itwin/core-common";
103
- import { ArcGisUtilities, ImageryMapLayerFormat, MapLayerImageryProvider, MapLayerSourceValidation } from "@itwin/core-frontend";
111
+ import { ArcGisUtilities, ImageryMapLayerFormat, MapLayerImageryProvider, MapLayerSourceStatus, MapLayerSourceValidation } from "@itwin/core-frontend";
104
112
  import { ArcGisFeatureProvider } from "./ArcGisFeatureProvider";
105
113
  &nbsp;
106
114
  /** @internal */
@@ -108,6 +116,10 @@ export class ArcGisFeatureMapLayerFormat extends ImageryMapLayerFormat {
108
116
  public static override formatId = "ArcGISFeature";
109
117
  public static override createImageryProvider(settings: ImageMapLayerSettings): MapLayerImageryProvider | undefined { return new ArcGisFeatureProvider(settings); }
110
118
  public static override async validateSource(url: string, userName?: string, password?: string, ignoreCache?: boolean): Promise&lt;MapLayerSourceValidation&gt; {
119
+ const urlValidation = ArcGisUtilities.validateUrl(url, "FeatureServer");
120
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (urlValidation !== MapLayerSourceStatus.Valid)
121
+ <span class="cstat-no" title="statement not covered" > return {status: urlValidation};</span>
122
+ &nbsp;
111
123
  return ArcGisUtilities.validateSource(url, this.formatId, ["query"], userName, password, ignoreCache);
112
124
  }
113
125
  }
@@ -118,7 +130,7 @@ export class ArcGisFeatureMapLayerFormat extends ImageryMapLayerFormat {
118
130
  <div class='footer quiet pad2 space-top1 center small'>
119
131
  Code coverage generated by
120
132
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
121
- at 2023-05-16T05:13:56.517Z
133
+ at 2023-06-30T05:15:48.760Z
122
134
  </div>
123
135
  <script src="../../prettify.js"></script>
124
136
  <script>
@@ -535,7 +535,7 @@ export class ArcGisFeatureJSON extends ArcGisFeatureReader {
535
535
  <div class='footer quiet pad2 space-top1 center small'>
536
536
  Code coverage generated by
537
537
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
538
- at 2023-05-16T05:13:56.517Z
538
+ at 2023-06-30T05:15:48.760Z
539
539
  </div>
540
540
  <script src="../../prettify.js"></script>
541
541
  <script>
@@ -715,7 +715,7 @@ export class ArcGisFeaturePBF extends ArcGisFeatureReader {
715
715
  <div class='footer quiet pad2 space-top1 center small'>
716
716
  Code coverage generated by
717
717
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
718
- at 2023-05-16T05:13:56.517Z
718
+ at 2023-06-30T05:15:48.760Z
719
719
  </div>
720
720
  <script src="../../prettify.js"></script>
721
721
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">88.28% </span>
26
+ <span class="strong">88.97% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>211/239</span>
28
+ <span class='fraction'>234/263</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.72% </span>
33
+ <span class="strong">83.94% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>108/129</span>
35
+ <span class='fraction'>115/137</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">82.35% </span>
40
+ <span class="strong">84.21% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>14/17</span>
42
+ <span class='fraction'>16/19</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">88.18% </span>
47
+ <span class="strong">88.88% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>209/237</span>
49
+ <span class='fraction'>232/261</span>
50
50
  </div>
51
51
 
52
52
 
@@ -550,7 +550,49 @@
550
550
  <a name='L485'></a><a href='#L485'>485</a>
551
551
  <a name='L486'></a><a href='#L486'>486</a>
552
552
  <a name='L487'></a><a href='#L487'>487</a>
553
- <a name='L488'></a><a href='#L488'>488</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
554
596
  <span class="cline-any cline-neutral">&nbsp;</span>
555
597
  <span class="cline-any cline-neutral">&nbsp;</span>
556
598
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -580,38 +622,40 @@
580
622
  <span class="cline-any cline-neutral">&nbsp;</span>
581
623
  <span class="cline-any cline-yes">1x</span>
582
624
  <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-yes">30x</span>
584
- <span class="cline-any cline-yes">30x</span>
625
+ <span class="cline-any cline-yes">35x</span>
626
+ <span class="cline-any cline-yes">35x</span>
585
627
  <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-yes">30x</span>
587
- <span class="cline-any cline-yes">30x</span>
588
- <span class="cline-any cline-yes">30x</span>
628
+ <span class="cline-any cline-yes">35x</span>
629
+ <span class="cline-any cline-yes">35x</span>
630
+ <span class="cline-any cline-yes">35x</span>
589
631
  <span class="cline-any cline-neutral">&nbsp;</span>
590
632
  <span class="cline-any cline-neutral">&nbsp;</span>
591
633
  <span class="cline-any cline-neutral">&nbsp;</span>
592
634
  <span class="cline-any cline-neutral">&nbsp;</span>
593
635
  <span class="cline-any cline-yes">1x</span>
594
- <span class="cline-any cline-yes">30x</span>
636
+ <span class="cline-any cline-yes">35x</span>
595
637
  <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-yes">30x</span>
597
- <span class="cline-any cline-yes">30x</span>
638
+ <span class="cline-any cline-yes">35x</span>
639
+ <span class="cline-any cline-yes">35x</span>
598
640
  <span class="cline-any cline-no">&nbsp;</span>
599
641
  <span class="cline-any cline-no">&nbsp;</span>
600
642
  <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-yes">1x</span>
601
644
  <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-yes">30x</span>
603
645
  <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-yes">35x</span>
604
647
  <span class="cline-any cline-neutral">&nbsp;</span>
605
648
  <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-yes">26x</span>
607
- <span class="cline-any cline-yes">26x</span>
608
649
  <span class="cline-any cline-neutral">&nbsp;</span>
609
- <span class="cline-any cline-yes">26x</span>
650
+ <span class="cline-any cline-yes">30x</span>
651
+ <span class="cline-any cline-yes">30x</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-yes">30x</span>
610
654
  <span class="cline-any cline-yes">1x</span>
611
655
  <span class="cline-any cline-yes">1x</span>
612
656
  <span class="cline-any cline-neutral">&nbsp;</span>
613
657
  <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-yes">25x</span>
658
+ <span class="cline-any cline-yes">29x</span>
615
659
  <span class="cline-any cline-neutral">&nbsp;</span>
616
660
  <span class="cline-any cline-yes">1x</span>
617
661
  <span class="cline-any cline-yes">1x</span>
@@ -619,18 +663,18 @@
619
663
  <span class="cline-any cline-neutral">&nbsp;</span>
620
664
  <span class="cline-any cline-neutral">&nbsp;</span>
621
665
  <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-yes">24x</span>
623
- <span class="cline-any cline-yes">24x</span>
624
- <span class="cline-any cline-yes">24x</span>
666
+ <span class="cline-any cline-yes">28x</span>
667
+ <span class="cline-any cline-yes">28x</span>
668
+ <span class="cline-any cline-yes">28x</span>
625
669
  <span class="cline-any cline-yes">1x</span>
626
670
  <span class="cline-any cline-neutral">&nbsp;</span>
627
671
  <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-yes">23x</span>
672
+ <span class="cline-any cline-yes">27x</span>
629
673
  <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-yes">23x</span>
631
- <span class="cline-any cline-yes">23x</span>
674
+ <span class="cline-any cline-yes">27x</span>
675
+ <span class="cline-any cline-yes">27x</span>
632
676
  <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-yes">23x</span>
677
+ <span class="cline-any cline-yes">27x</span>
634
678
  <span class="cline-any cline-yes">20x</span>
635
679
  <span class="cline-any cline-yes">20x</span>
636
680
  <span class="cline-any cline-yes">20x</span>
@@ -639,17 +683,18 @@
639
683
  <span class="cline-any cline-neutral">&nbsp;</span>
640
684
  <span class="cline-any cline-neutral">&nbsp;</span>
641
685
  <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-yes">23x</span>
686
+ <span class="cline-any cline-yes">27x</span>
643
687
  <span class="cline-any cline-neutral">&nbsp;</span>
644
688
  <span class="cline-any cline-neutral">&nbsp;</span>
645
689
  <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-yes">3x</span>
690
+ <span class="cline-any cline-yes">7x</span>
647
691
  <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-yes">2x</span>
649
- <span class="cline-any cline-yes">2x</span>
650
- <span class="cline-any cline-yes">1x</span>
651
- <span class="cline-any cline-yes">10x</span>
652
- <span class="cline-any cline-yes">9x</span>
692
+ <span class="cline-any cline-yes">6x</span>
693
+ <span class="cline-any cline-yes">6x</span>
694
+ <span class="cline-any cline-yes">5x</span>
695
+ <span class="cline-any cline-yes">5x</span>
696
+ <span class="cline-any cline-yes">5x</span>
697
+ <span class="cline-any cline-yes">5x</span>
653
698
  <span class="cline-any cline-neutral">&nbsp;</span>
654
699
  <span class="cline-any cline-neutral">&nbsp;</span>
655
700
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -675,10 +720,10 @@
675
720
  <span class="cline-any cline-neutral">&nbsp;</span>
676
721
  <span class="cline-any cline-neutral">&nbsp;</span>
677
722
  <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-yes">22x</span>
723
+ <span class="cline-any cline-yes">26x</span>
679
724
  <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-yes">21x</span>
681
- <span class="cline-any cline-yes">21x</span>
725
+ <span class="cline-any cline-yes">25x</span>
726
+ <span class="cline-any cline-yes">25x</span>
682
727
  <span class="cline-any cline-yes">1x</span>
683
728
  <span class="cline-any cline-yes">1x</span>
684
729
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -686,9 +731,9 @@
686
731
  <span class="cline-any cline-neutral">&nbsp;</span>
687
732
  <span class="cline-any cline-neutral">&nbsp;</span>
688
733
  <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-yes">21x</span>
690
- <span class="cline-any cline-yes">11x</span>
691
- <span class="cline-any cline-yes">11x</span>
734
+ <span class="cline-any cline-yes">25x</span>
735
+ <span class="cline-any cline-yes">15x</span>
736
+ <span class="cline-any cline-yes">15x</span>
692
737
  <span class="cline-any cline-neutral">&nbsp;</span>
693
738
  <span class="cline-any cline-neutral">&nbsp;</span>
694
739
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -696,54 +741,93 @@
696
741
  <span class="cline-any cline-neutral">&nbsp;</span>
697
742
  <span class="cline-any cline-neutral">&nbsp;</span>
698
743
  <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-yes">21x</span>
744
+ <span class="cline-any cline-yes">25x</span>
700
745
  <span class="cline-any cline-yes">5x</span>
701
746
  <span class="cline-any cline-neutral">&nbsp;</span>
702
747
  <span class="cline-any cline-neutral">&nbsp;</span>
703
748
  <span class="cline-any cline-neutral">&nbsp;</span>
704
749
  <span class="cline-any cline-neutral">&nbsp;</span>
705
750
  <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-yes">21x</span>
707
- <span class="cline-any cline-yes">18x</span>
708
- <span class="cline-any cline-yes">18x</span>
751
+ <span class="cline-any cline-yes">25x</span>
752
+ <span class="cline-any cline-yes">22x</span>
753
+ <span class="cline-any cline-yes">22x</span>
709
754
  <span class="cline-any cline-yes">5x</span>
710
- <span class="cline-any cline-yes">13x</span>
711
- <span class="cline-any cline-yes">13x</span>
755
+ <span class="cline-any cline-yes">17x</span>
756
+ <span class="cline-any cline-yes">17x</span>
712
757
  <span class="cline-any cline-neutral">&nbsp;</span>
713
758
  <span class="cline-any cline-neutral">&nbsp;</span>
714
759
  <span class="cline-any cline-neutral">&nbsp;</span>
715
- <span class="cline-any cline-yes">21x</span>
760
+ <span class="cline-any cline-yes">25x</span>
716
761
  <span class="cline-any cline-yes">1x</span>
717
762
  <span class="cline-any cline-yes">1x</span>
718
763
  <span class="cline-any cline-neutral">&nbsp;</span>
719
764
  <span class="cline-any cline-neutral">&nbsp;</span>
720
765
  <span class="cline-any cline-neutral">&nbsp;</span>
721
- <span class="cline-any cline-yes">20x</span>
722
- <span class="cline-any cline-yes">1x</span>
723
- <span class="cline-any cline-yes">1x</span>
766
+ <span class="cline-any cline-yes">24x</span>
767
+ <span class="cline-any cline-yes">4x</span>
768
+ <span class="cline-any cline-yes">4x</span>
769
+ <span class="cline-any cline-yes">2x</span>
724
770
  <span class="cline-any cline-neutral">&nbsp;</span>
725
771
  <span class="cline-any cline-neutral">&nbsp;</span>
726
772
  <span class="cline-any cline-neutral">&nbsp;</span>
727
- <span class="cline-any cline-yes">1x</span>
728
- <span class="cline-any cline-yes">1x</span>
729
- <span class="cline-any cline-yes">1x</span>
730
- <span class="cline-any cline-yes">1x</span>
773
+ <span class="cline-any cline-yes">24x</span>
774
+ <span class="cline-any cline-neutral">&nbsp;</span>
775
+ <span class="cline-any cline-yes">22x</span>
776
+ <span class="cline-any cline-yes">22x</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-yes">21x</span>
779
+ <span class="cline-any cline-yes">21x</span>
780
+ <span class="cline-any cline-neutral">&nbsp;</span>
781
+ <span class="cline-any cline-no">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
783
  <span class="cline-any cline-yes">1x</span>
732
784
  <span class="cline-any cline-neutral">&nbsp;</span>
733
785
  <span class="cline-any cline-neutral">&nbsp;</span>
734
786
  <span class="cline-any cline-neutral">&nbsp;</span>
735
787
  <span class="cline-any cline-neutral">&nbsp;</span>
736
- <span class="cline-any cline-yes">20x</span>
737
- <span class="cline-any cline-yes">20x</span>
738
- <span class="cline-any cline-yes">20x</span>
739
- <span class="cline-any cline-yes">20x</span>
740
- <span class="cline-any cline-yes">7x</span>
788
+ <span class="cline-any cline-yes">24x</span>
789
+ <span class="cline-any cline-yes">24x</span>
790
+ <span class="cline-any cline-yes">24x</span>
791
+ <span class="cline-any cline-yes">24x</span>
792
+ <span class="cline-any cline-yes">11x</span>
793
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-yes">24x</span>
796
+ <span class="cline-any cline-neutral">&nbsp;</span>
797
+ <span class="cline-any cline-yes">24x</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
799
  <span class="cline-any cline-neutral">&nbsp;</span>
742
800
  <span class="cline-any cline-neutral">&nbsp;</span>
743
- <span class="cline-any cline-yes">20x</span>
744
801
  <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-yes">23x</span>
803
+ <span class="cline-any cline-yes">23x</span>
804
+ <span class="cline-any cline-yes">23x</span>
805
+ <span class="cline-any cline-yes">23x</span>
806
+ <span class="cline-any cline-yes">23x</span>
807
+ <span class="cline-any cline-yes">23x</span>
808
+ <span class="cline-any cline-yes">23x</span>
809
+ <span class="cline-any cline-yes">23x</span>
745
810
  <span class="cline-any cline-yes">20x</span>
746
811
  <span class="cline-any cline-neutral">&nbsp;</span>
812
+ <span class="cline-any cline-yes">3x</span>
813
+ <span class="cline-any cline-yes">3x</span>
814
+ <span class="cline-any cline-yes">2x</span>
815
+ <span class="cline-any cline-neutral">&nbsp;</span>
816
+ <span class="cline-any cline-yes">22x</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-neutral">&nbsp;</span>
820
+ <span class="cline-any cline-yes">24x</span>
821
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-yes">24x</span>
826
+ <span class="cline-any cline-yes">24x</span>
827
+ <span class="cline-any cline-yes">24x</span>
828
+ <span class="cline-any cline-yes">24x</span>
829
+ <span class="cline-any cline-yes">24x</span>
830
+ <span class="cline-any cline-neutral">&nbsp;</span>
747
831
  <span class="cline-any cline-neutral">&nbsp;</span>
748
832
  <span class="cline-any cline-neutral">&nbsp;</span>
749
833
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -757,7 +841,7 @@
757
841
  <span class="cline-any cline-yes">1x</span>
758
842
  <span class="cline-any cline-neutral">&nbsp;</span>
759
843
  <span class="cline-any cline-neutral">&nbsp;</span>
760
- <span class="cline-any cline-yes">98x</span>
844
+ <span class="cline-any cline-yes">102x</span>
761
845
  <span class="cline-any cline-yes">23x</span>
762
846
  <span class="cline-any cline-neutral">&nbsp;</span>
763
847
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1084,6 +1168,8 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
1084
1168
  private _minDepthFromLod = 0;
1085
1169
  <span class="fstat-no" title="function not covered" > public override get m</span>inimumZoomLevel(): number { <span class="cstat-no" title="statement not covered" >return this._minDepthFromLod; </span>}
1086
1170
  <span class="fstat-no" title="function not covered" > public override get m</span>aximumZoomLevel(): number { <span class="cstat-no" title="statement not covered" >return this._maxDepthFromLod; </span>}
1171
+ &nbsp;
1172
+ private static _extentCache = new Map&lt;string, any&gt;();
1087
1173
  &nbsp;
1088
1174
  constructor(settings: ImageMapLayerSettings) {
1089
1175
  super(settings, true);
@@ -1135,8 +1221,9 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
1135
1221
  const hasDefaultVisibility = Object.keys(this.serviceJson.layers[0]).includes("defaultVisibility");
1136
1222
  if (hasDefaultVisibility) {
1137
1223
  for (const layer of this.serviceJson.layers) {
1138
- if (layer.defaultVisibility) {
1224
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (layer.defaultVisibility) {
1139
1225
  this._layerId = layer.id;
1226
+ break;
1140
1227
  }
1141
1228
  }
1142
1229
  } else {
@@ -1205,17 +1292,24 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
1205
1292
  }
1206
1293
  &nbsp;
1207
1294
  // Read range using full extent from service metadata
1208
- if (json.fullExtent) {
1209
- <span class="missing-if-branch" title="else path not taken" >E</span>if (json.fullExtent.spatialReference.latestWkid === 3857 || <span class="branch-1 cbranch-no" title="branch not covered" >json.fullExtent.spatialReference.wkid === 102100)</span> {
1210
- const range3857 = Range2d.createFrom({
1211
- low: {x: json.fullExtent.xmin, y: json.fullExtent.ymin},
1212
- high: {x: json.fullExtent.xmax, y: json.fullExtent.ymax} });
1213
- &nbsp;
1214
- const west = this.getEPSG4326Lon(range3857.xLow);
1215
- const south = this.getEPSG4326Lat(range3857.yLow);
1216
- const east = this.getEPSG4326Lon(range3857.xHigh);
1217
- const north = this.getEPSG4326Lat(range3857.yHigh);
1218
- this.cartoRange = MapCartoRectangle.fromDegrees(west, south, east, north);
1295
+ if (this._layerMetadata?.extent) {
1296
+ const layerExtent = this._layerMetadata.extent;
1297
+ if (layerExtent.spatialReference.latestWkid === 3857 || layerExtent.spatialReference.wkid === 102100) {
1298
+ this.setCartoRangeFromExtentJson(layerExtent);
1299
+ }
1300
+ }
1301
+ &nbsp;
1302
+ if (!this.cartoRange) {
1303
+ // Range could not be found (or is not in a coordinate system we support), make a request to compute the extent
1304
+ try {
1305
+ const extentJson = await this.fetchLayerExtent();
1306
+ &nbsp;
1307
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (extentJson)
1308
+ this.setCartoRangeFromExtentJson(extentJson);
1309
+ else
1310
+ <span class="cstat-no" title="statement not covered" > Logger.logWarning(loggerCategory, `Could not get features extent, disabling extent filtering`);</span>
1311
+ } catch {
1312
+ Logger.logError(loggerCategory, `Could not get feature extent`);
1219
1313
  }
1220
1314
  }
1221
1315
  &nbsp;
@@ -1231,6 +1325,38 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
1231
1325
  &nbsp;
1232
1326
  this._symbologyRenderer = new ArcGisSymbologyRenderer(this._layerMetadata?.geometryType, this._layerMetadata?.drawingInfo?.renderer);
1233
1327
  }
1328
+ &nbsp;
1329
+ private async fetchLayerExtent() {
1330
+ let extentJson: any;
1331
+ const tmpUrl = new URL(this._settings.url);
1332
+ tmpUrl.pathname = `${tmpUrl.pathname}/${this._layerId}/query`;
1333
+ tmpUrl.searchParams.append("where", "1=1");
1334
+ tmpUrl.searchParams.append("outSR", "3857");
1335
+ tmpUrl.searchParams.append("returnExtentOnly", "true");
1336
+ tmpUrl.searchParams.append("f", "json");
1337
+ const cached = ArcGisFeatureProvider._extentCache.get(tmpUrl.toString());
1338
+ if (cached) {
1339
+ extentJson = cached;
1340
+ } else {
1341
+ const response = await this.fetch(tmpUrl, { method: "GET" });
1342
+ extentJson = await response.json();
1343
+ ArcGisFeatureProvider._extentCache.set(tmpUrl.toString(), extentJson);
1344
+ }
1345
+ return (extentJson ? extentJson.extent : <span class="branch-1 cbranch-no" title="branch not covered" >undefined)</span>;
1346
+ }
1347
+ &nbsp;
1348
+ private setCartoRangeFromExtentJson(extent: any) {
1349
+ const range3857 = Range2d.createFrom({
1350
+ low: { x: extent.xmin, y: extent.ymin },
1351
+ high: { x: extent.xmax, y: extent.ymax },
1352
+ });
1353
+ &nbsp;
1354
+ const west = this.getEPSG4326Lon(range3857.xLow);
1355
+ const south = this.getEPSG4326Lat(range3857.yLow);
1356
+ const east = this.getEPSG4326Lon(range3857.xHigh);
1357
+ const north = this.getEPSG4326Lat(range3857.yHigh);
1358
+ this.cartoRange = MapCartoRectangle.fromDegrees(west, south, east, north);
1359
+ }
1234
1360
  &nbsp;
1235
1361
  protected async getLayerMetadata(layerId: number) {
1236
1362
  let metadata: ArcGISServiceMetadata|undefined;
@@ -1531,7 +1657,7 @@ export class ArcGisFeatureProvider extends ArcGISImageryProvider {
1531
1657
  <div class='footer quiet pad2 space-top1 center small'>
1532
1658
  Code coverage generated by
1533
1659
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1534
- at 2023-05-16T05:13:56.517Z
1660
+ at 2023-06-30T05:15:48.760Z
1535
1661
  </div>
1536
1662
  <script src="../../prettify.js"></script>
1537
1663
  <script>