@esri/solutions-components 0.6.16 → 0.6.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/t9n/map-tools/resources.json +2 -1
  3. package/dist/assets/t9n/map-tools/resources_en.json +2 -1
  4. package/dist/assets/t9n/solution-spatial-ref/resources.json +0 -1
  5. package/dist/assets/t9n/solution-spatial-ref/resources_en.json +0 -1
  6. package/dist/assets/t9n/solution-spatial-ref/resources_fr.json +6 -0
  7. package/dist/assets/t9n/solution-spatial-ref/resources_he.json +6 -0
  8. package/dist/assets/t9n/spatial-ref/resources.json +3 -0
  9. package/dist/assets/t9n/spatial-ref/resources_en.json +3 -0
  10. package/dist/assets/t9n/spatial-ref/resources_fr.json +3 -0
  11. package/dist/assets/t9n/spatial-ref/resources_he.json +3 -0
  12. package/dist/cjs/{basemap-gallery_6.cjs.entry.js → basemap-gallery_7.cjs.entry.js} +124 -3
  13. package/dist/cjs/{calcite-tree_3.cjs.entry.js → calcite-checkbox_3.cjs.entry.js} +123 -319
  14. package/dist/cjs/calcite-combobox_6.cjs.entry.js +1 -1
  15. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +4 -3
  16. package/dist/cjs/card-manager_3.cjs.entry.js +10 -7
  17. package/dist/{collection/components/basemap-gallery/test/basemap-gallery.e2e.js → cjs/common-13719149.js} +17 -9
  18. package/dist/cjs/crowdsource-manager.cjs.entry.js +12 -7
  19. package/dist/cjs/{downloadUtils-34a515ad.js → downloadUtils-121fd7ff.js} +2 -2
  20. package/dist/cjs/edit-card_2.cjs.entry.js +4 -3
  21. package/dist/cjs/{index.es-0ba11065.js → index.es-5c0c137a.js} +2 -2
  22. package/dist/cjs/loader.cjs.js +1 -1
  23. package/dist/cjs/map-select-tools_3.cjs.entry.js +2 -2
  24. package/dist/cjs/{mapViewUtils-a2884698.js → mapViewUtils-786a219b.js} +32 -19
  25. package/dist/cjs/public-notification.cjs.entry.js +2 -2
  26. package/dist/cjs/solution-configuration.cjs.entry.js +2 -1
  27. package/dist/cjs/solution-contents_3.cjs.entry.js +21 -21256
  28. package/dist/cjs/solution-item-icon.cjs.entry.js +327 -0
  29. package/dist/cjs/{solution-store-c443e657.js → solution-resource-f9e3b289.js} +2 -1698
  30. package/dist/cjs/solution-store-2414dd8a.js +1707 -0
  31. package/dist/cjs/solutions-components.cjs.js +1 -1
  32. package/dist/cjs/spatial-ref.cjs.entry.js +21293 -0
  33. package/dist/collection/collection-manifest.json +2 -0
  34. package/dist/collection/components/card-manager/card-manager.js +1 -1
  35. package/dist/collection/components/crowdsource-manager/crowdsource-manager.css +17 -2
  36. package/dist/collection/components/crowdsource-manager/crowdsource-manager.js +47 -6
  37. package/dist/collection/components/edit-card/edit-card.css +0 -8
  38. package/dist/collection/components/floor-filter/floor-filter.css +19 -0
  39. package/dist/collection/components/floor-filter/floor-filter.js +163 -0
  40. package/dist/collection/components/info-card/info-card.js +3 -2
  41. package/dist/collection/components/layer-table/layer-table.css +8 -0
  42. package/dist/collection/components/layer-table/layer-table.js +18 -2
  43. package/dist/collection/components/map-card/map-card.js +19 -1
  44. package/dist/collection/components/map-picker/map-picker.css +0 -4
  45. package/dist/collection/components/map-picker/map-picker.js +1 -1
  46. package/dist/collection/components/map-tools/map-tools.js +54 -1
  47. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.css +1 -7
  48. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +37 -291
  49. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.e2e.js +24 -12
  50. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.spec.js +32 -128
  51. package/dist/collection/components/spatial-ref/spatial-ref.css +20 -0
  52. package/dist/collection/components/spatial-ref/spatial-ref.js +445 -0
  53. package/dist/collection/components/spatial-ref/test/spatial-ref.e2e.js +71 -0
  54. package/dist/collection/components/spatial-ref/test/spatial-ref.spec.js +158 -0
  55. package/dist/collection/demos/crowdsource-manager.html +4 -0
  56. package/dist/collection/demos/solution-spatial-ref.html +9 -16
  57. package/dist/collection/demos/spatial-ref.html +53 -0
  58. package/dist/collection/utils/mapViewUtils.js +32 -19
  59. package/dist/collection/utils/mapViewUtils.ts +43 -20
  60. package/dist/collection/utils/{templates.e2e.js → test/templates.e2e.js} +2 -2
  61. package/dist/collection/utils/{templates.e2e.ts → test/templates.e2e.ts} +2 -2
  62. package/dist/components/card-manager2.js +1 -1
  63. package/dist/components/crowdsource-manager.js +86 -73
  64. package/dist/components/edit-card2.js +1 -1
  65. package/dist/components/floor-filter.d.ts +11 -0
  66. package/dist/components/floor-filter.js +11 -0
  67. package/dist/components/floor-filter2.js +115 -0
  68. package/dist/components/info-card2.js +3 -2
  69. package/dist/components/layer-table2.js +5 -3
  70. package/dist/components/map-card2.js +45 -37
  71. package/dist/components/map-picker2.js +2 -2
  72. package/dist/components/map-tools2.js +52 -11
  73. package/dist/components/mapViewUtils.js +32 -19
  74. package/dist/components/solution-configuration.js +79 -72
  75. package/dist/components/solution-resource-item2.js +2 -1
  76. package/dist/components/solution-resource.js +1836 -0
  77. package/dist/components/solution-spatial-ref2.js +41 -21277
  78. package/dist/components/solution-store.js +2 -1830
  79. package/dist/components/spatial-ref.d.ts +11 -0
  80. package/dist/components/spatial-ref.js +11 -0
  81. package/dist/components/spatial-ref2.js +21374 -0
  82. package/dist/esm/{basemap-gallery_6.entry.js → basemap-gallery_7.entry.js} +124 -4
  83. package/dist/esm/{calcite-tree_3.entry.js → calcite-checkbox_3.entry.js} +125 -321
  84. package/dist/esm/calcite-combobox_6.entry.js +1 -1
  85. package/dist/esm/calcite-shell-panel_14.entry.js +2 -1
  86. package/dist/esm/card-manager_3.entry.js +10 -7
  87. package/dist/{collection/components/layer-table/test/layer-table.e2e.js → esm/common-e4a8e353.js} +15 -9
  88. package/dist/esm/crowdsource-manager.entry.js +12 -7
  89. package/dist/esm/{downloadUtils-ac67a786.js → downloadUtils-287994b1.js} +2 -2
  90. package/dist/esm/edit-card_2.entry.js +4 -3
  91. package/dist/esm/{index.es-f553598f.js → index.es-a3f8409f.js} +2 -2
  92. package/dist/esm/loader.js +1 -1
  93. package/dist/esm/map-select-tools_3.entry.js +2 -2
  94. package/dist/esm/{mapViewUtils-8141d8c1.js → mapViewUtils-8bfabd80.js} +32 -19
  95. package/dist/esm/public-notification.entry.js +2 -2
  96. package/dist/esm/solution-configuration.entry.js +2 -1
  97. package/dist/esm/solution-contents_3.entry.js +20 -21255
  98. package/dist/esm/solution-item-icon.entry.js +323 -0
  99. package/dist/esm/{solution-store-b29d50f7.js → solution-resource-be35d35b.js} +1 -1697
  100. package/dist/esm/solution-store-e734626a.js +1704 -0
  101. package/dist/esm/solutions-components.js +1 -1
  102. package/dist/esm/spatial-ref.entry.js +21289 -0
  103. package/dist/solutions-components/demos/crowdsource-manager.html +4 -0
  104. package/dist/solutions-components/demos/solution-spatial-ref.html +9 -16
  105. package/dist/solutions-components/demos/spatial-ref.html +53 -0
  106. package/dist/solutions-components/{p-64d29ba2.entry.js → p-0bc27ba7.entry.js} +2 -2
  107. package/dist/{collection/components/map-card/test/map-card.e2e.js → solutions-components/p-1b228f97.js} +2 -10
  108. package/dist/solutions-components/{p-9f11a403.entry.js → p-3c5c1487.entry.js} +1 -1
  109. package/dist/solutions-components/{p-a26711e8.js → p-469c8f8a.js} +1 -1
  110. package/dist/solutions-components/p-53bc5fc1.js +36 -0
  111. package/dist/solutions-components/p-5b8c8942.entry.js +21 -0
  112. package/dist/solutions-components/p-63c6fc29.entry.js +6 -0
  113. package/dist/solutions-components/p-64945b43.entry.js +18 -0
  114. package/dist/solutions-components/{p-c8d0ce92.js → p-698c6a56.js} +2 -2
  115. package/dist/solutions-components/{p-b9d29f30.entry.js → p-734cb206.entry.js} +1 -1
  116. package/dist/solutions-components/p-770bff06.entry.js +6 -0
  117. package/dist/solutions-components/p-7741dbab.entry.js +6 -0
  118. package/dist/solutions-components/p-80465067.entry.js +6 -0
  119. package/dist/solutions-components/p-846df994.entry.js +6 -0
  120. package/dist/solutions-components/p-b3f8d2cb.js +192 -0
  121. package/dist/solutions-components/p-c26d8b36.entry.js +6 -0
  122. package/dist/solutions-components/{p-57cf6784.entry.js → p-d22be647.entry.js} +1 -1
  123. package/dist/solutions-components/{p-4d942b0f.entry.js → p-f35147d5.entry.js} +1 -1
  124. package/dist/solutions-components/p-ff0d7712.js +44 -0
  125. package/dist/solutions-components/solutions-components.esm.js +1 -1
  126. package/dist/solutions-components/utils/mapViewUtils.ts +43 -20
  127. package/dist/solutions-components/utils/{templates.e2e.ts → test/templates.e2e.ts} +2 -2
  128. package/dist/types/components/crowdsource-manager/crowdsource-manager.d.ts +9 -1
  129. package/dist/types/components/floor-filter/floor-filter.d.ts +61 -0
  130. package/dist/types/components/layer-table/layer-table.d.ts +4 -0
  131. package/dist/types/components/map-card/map-card.d.ts +4 -0
  132. package/dist/types/components/map-tools/map-tools.d.ts +24 -0
  133. package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +11 -93
  134. package/dist/types/components/spatial-ref/spatial-ref.d.ts +142 -0
  135. package/dist/types/components.d.ts +123 -16
  136. package/dist/types/preact.d.ts +8 -1
  137. package/package.json +6 -6
  138. package/dist/cjs/calcite-checkbox.cjs.entry.js +0 -136
  139. package/dist/collection/components/basemap-gallery/test/basemap-gallery.spec.js +0 -37
  140. package/dist/collection/components/buffer-tools/test/buffer-tools.e2e.js +0 -29
  141. package/dist/collection/components/buffer-tools/test/buffer-tools.spec.js +0 -160
  142. package/dist/collection/components/card-manager/test/card-manager.e2e.js +0 -29
  143. package/dist/collection/components/card-manager/test/card-manager.spec.js +0 -37
  144. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.e2e.js +0 -29
  145. package/dist/collection/components/crowdsource-manager/test/crowdsource-manager.spec.js +0 -37
  146. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.e2e.js +0 -29
  147. package/dist/collection/components/crowdsource-reporter/test/crowdsource-reporter.spec.js +0 -37
  148. package/dist/collection/components/deduct-calculator/test/deduct-calculator.e2e.js +0 -29
  149. package/dist/collection/components/deduct-calculator/test/deduct-calculator.spec.js +0 -37
  150. package/dist/collection/components/edit-card/test/edit-card.e2e.js +0 -14
  151. package/dist/collection/components/edit-card/test/edit-card.spec.js +0 -22
  152. package/dist/collection/components/info-card/test/info-card.e2e.js +0 -29
  153. package/dist/collection/components/info-card/test/info-card.spec.js +0 -37
  154. package/dist/collection/components/json-editor/test/json-editor.e2e.js +0 -36
  155. package/dist/collection/components/json-editor/test/json-editor.spec.js +0 -65
  156. package/dist/collection/components/layer-table/test/layer-table.spec.js +0 -37
  157. package/dist/collection/components/layout-manager/test/layout-manager.e2e.js +0 -29
  158. package/dist/collection/components/layout-manager/test/layout-manager.spec.js +0 -37
  159. package/dist/collection/components/list-item/test/list-item.e2e.js +0 -29
  160. package/dist/collection/components/list-item/test/list-item.spec.js +0 -37
  161. package/dist/collection/components/map-card/test/map-card.spec.js +0 -37
  162. package/dist/collection/components/map-draw-tools/test/map-draw-tools.e2e.js +0 -29
  163. package/dist/collection/components/map-draw-tools/test/map-draw-tools.spec.js +0 -37
  164. package/dist/collection/components/map-fullscreen/test/map-fullscreen.e2e.js +0 -29
  165. package/dist/collection/components/map-fullscreen/test/map-fullscreen.spec.js +0 -37
  166. package/dist/collection/components/map-layer-picker/test/map-layer-picker.e2e.js +0 -29
  167. package/dist/collection/components/map-layer-picker/test/map-layer-picker.spec.js +0 -114
  168. package/dist/collection/components/map-legend/test/map-legend.e2e.js +0 -14
  169. package/dist/collection/components/map-legend/test/map-legend.spec.js +0 -22
  170. package/dist/collection/components/map-picker/test/map-picker.e2e.js +0 -29
  171. package/dist/collection/components/map-picker/test/map-picker.spec.js +0 -37
  172. package/dist/collection/components/map-search/test/map-search.e2e.js +0 -29
  173. package/dist/collection/components/map-search/test/map-search.spec.js +0 -37
  174. package/dist/collection/components/map-select-tools/test/map-select-tools.e2e.js +0 -29
  175. package/dist/collection/components/map-select-tools/test/map-select-tools.spec.js +0 -366
  176. package/dist/collection/components/map-tools/test/map-tools.e2e.js +0 -29
  177. package/dist/collection/components/map-tools/test/map-tools.spec.js +0 -37
  178. package/dist/collection/components/pci-calculator/test/pci-calculator.e2e.js +0 -29
  179. package/dist/collection/components/pci-calculator/test/pci-calculator.spec.js +0 -37
  180. package/dist/collection/components/pdf-download/test/pdf-download.e2e.js +0 -76
  181. package/dist/collection/components/pdf-download/test/pdf-download.spec.js +0 -107
  182. package/dist/collection/components/public-notification/test/public-notification.spec.js +0 -161
  183. package/dist/collection/components/refine-selection/test/refine-selection.e2e.js +0 -14
  184. package/dist/collection/components/refine-selection/test/refine-selection.spec.js +0 -22
  185. package/dist/collection/components/solution-configuration/test/solution-configuration.e2e.js +0 -36
  186. package/dist/collection/components/solution-configuration/test/solution-configuration.spec.js +0 -119
  187. package/dist/collection/components/solution-contents/test/solution-contents.e2e.js +0 -94
  188. package/dist/collection/components/solution-contents/test/solution-contents.spec.js +0 -143
  189. package/dist/collection/components/solution-item/test/solution-item.e2e.js +0 -36
  190. package/dist/collection/components/solution-item/test/solution-item.spec.js +0 -77
  191. package/dist/collection/components/solution-item-details/test/solution-item-details.e2e.js +0 -36
  192. package/dist/collection/components/solution-item-details/test/solution-item-details.spec.js +0 -142
  193. package/dist/collection/components/solution-item-icon/test/solution-item-icon.e2e.js +0 -29
  194. package/dist/collection/components/solution-item-icon/test/solution-item-icon.spec.js +0 -39
  195. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.e2e.js +0 -36
  196. package/dist/collection/components/solution-item-sharing/test/solution-item-sharing.spec.js +0 -54
  197. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.e2e.js +0 -36
  198. package/dist/collection/components/solution-organization-variables/test/solution-organization-variables.spec.js +0 -65
  199. package/dist/collection/components/solution-resource-item/test/solution-resource-item.e2e.js +0 -36
  200. package/dist/collection/components/solution-resource-item/test/solution-resource-item.spec.js +0 -55
  201. package/dist/collection/components/solution-template-data/test/solution-template-data.e2e.js +0 -36
  202. package/dist/collection/components/solution-template-data/test/solution-template-data.spec.js +0 -60
  203. package/dist/collection/components/solution-variables/test/solution-variables.e2e.js +0 -36
  204. package/dist/collection/components/solution-variables/test/solution-variables.spec.js +0 -131
  205. package/dist/esm/calcite-checkbox.entry.js +0 -132
  206. package/dist/solutions-components/p-07d7e11f.entry.js +0 -6
  207. package/dist/solutions-components/p-16362eb4.js +0 -36
  208. package/dist/solutions-components/p-17d176b5.js +0 -230
  209. package/dist/solutions-components/p-1d9a5198.entry.js +0 -37
  210. package/dist/solutions-components/p-3707d9bd.entry.js +0 -6
  211. package/dist/solutions-components/p-4dbe8337.entry.js +0 -6
  212. package/dist/solutions-components/p-5ffaaaf4.entry.js +0 -6
  213. package/dist/solutions-components/p-736e76fb.entry.js +0 -17
  214. package/dist/solutions-components/p-99f1a767.entry.js +0 -6
  215. /package/dist/collection/components/{solution-spatial-ref → spatial-ref}/spatialreferences.js +0 -0
  216. /package/dist/types/components/{solution-spatial-ref → spatial-ref}/spatialreferences.d.ts +0 -0
@@ -0,0 +1,71 @@
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /** @license
7
+ * Copyright 2022 Esri
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ import { newE2EPage } from "@stencil/core/testing";
22
+ describe('spatial-ref', () => {
23
+ let page;
24
+ beforeEach(async () => {
25
+ page = await newE2EPage();
26
+ });
27
+ it('renders', async () => {
28
+ await page.setContent('<spatial-ref/>');
29
+ const spatial_ref = await page.find('spatial-ref');
30
+ expect(spatial_ref).toHaveClass('hydrated');
31
+ expect(await spatial_ref.getProperty('defaultWkid')).toBe(102100);
32
+ expect(await spatial_ref.getProperty('value')).toBe('102100');
33
+ });
34
+ it('select first value after typing in search field', async () => {
35
+ await page.setContent('<spatial-ref/>');
36
+ const spatial_ref = await page.find('spatial-ref');
37
+ expect(await spatial_ref.getProperty('value')).toBe('102100');
38
+ const input = await page.find('calcite-input >>> input');
39
+ await input.focus();
40
+ await page.keyboard.type('wyoming');
41
+ await page.waitForChanges();
42
+ await page.keyboard.press('Enter');
43
+ await page.waitForChanges();
44
+ expect(await spatial_ref.getProperty('value')).toBe('2862');
45
+ });
46
+ xit('select tabbed-to value after typing in search field', async () => {
47
+ await page.setContent('<spatial-ref/>');
48
+ const spatial_ref = await page.find('spatial-ref');
49
+ expect(await spatial_ref.getProperty('value')).toBe('102100');
50
+ const input = await page.find('calcite-input >>> input');
51
+ await input.focus();
52
+ await page.keyboard.type('wyoming');
53
+ await page.waitForChanges();
54
+ // Enter the list of suggested projections
55
+ await page.keyboard.press('Tab');
56
+ await page.waitForChanges();
57
+ // And tab down to one of them
58
+ await page.keyboard.press('Tab');
59
+ await page.waitForChanges();
60
+ await page.keyboard.press('Tab');
61
+ await page.waitForChanges();
62
+ await page.keyboard.press('Tab');
63
+ await page.waitForChanges();
64
+ // Select it, and use second selection to make it the current projection
65
+ await page.keyboard.press('Enter');
66
+ await page.waitForChanges();
67
+ await page.keyboard.press('Enter');
68
+ await page.waitForChanges();
69
+ expect(await spatial_ref.getProperty('value')).toBe('2865');
70
+ });
71
+ });
@@ -0,0 +1,158 @@
1
+ /*!
2
+ * Copyright 2022 Esri
3
+ * Licensed under the Apache License, Version 2.0
4
+ * http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ /** @license
7
+ * Copyright 2022 Esri
8
+ *
9
+ * Licensed under the Apache License, Version 2.0 (the "License");
10
+ * you may not use this file except in compliance with the License.
11
+ * You may obtain a copy of the License at
12
+ *
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS,
17
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ * See the License for the specific language governing permissions and
19
+ * limitations under the License.
20
+ */
21
+ import * as locale from "../../../utils/locale";
22
+ import { h } from "@stencil/core";
23
+ import { newSpecPage } from "@stencil/core/testing";
24
+ import { SpatialRef } from "../spatial-ref";
25
+ describe('spatial-ref', () => {
26
+ beforeEach(() => {
27
+ jest.spyOn(locale, 'getLocaleComponentStrings').mockImplementation(() => Promise.resolve([{ "spatialReferencePlaceholder": "Search for spatial reference using name or WKID" }, "en"]));
28
+ });
29
+ afterEach(() => {
30
+ jest.clearAllMocks();
31
+ });
32
+ it('renders', async () => {
33
+ const page = await newSpecPage({
34
+ components: [SpatialRef],
35
+ supportsShadowDom: false,
36
+ template: () => (h("spatial-ref", null))
37
+ });
38
+ expect(page.root).toEqualHtml(`
39
+ <spatial-ref default-wkid="102100" value="102100">
40
+ <div>
41
+ <calcite-input id="calcite-sr-search" placeholder="Search for spatial reference using name or WKID"></calcite-input>
42
+ <calcite-tree id="calcite-sr-tree" slot="children">
43
+ <div class="spatial-ref-container" id="solution-wkid-container">
44
+ <calcite-tree-item aria-selected="" id="102100" selected="">
45
+ <div>
46
+ WGS 1984 Web Mercator Auxiliary Sphere (102100)
47
+ </div>
48
+ </calcite-tree-item>
49
+ </div>
50
+ </calcite-tree>
51
+ </div>
52
+ </spatial-ref>
53
+ `);
54
+ });
55
+ it('creates description for known WKID', async () => {
56
+ await newSpecPage({
57
+ components: [SpatialRef],
58
+ template: () => (h("spatial-ref", null))
59
+ });
60
+ const component = document.querySelector('spatial-ref');
61
+ component.wkidToDisplay(4326)
62
+ .then(result => expect(result).toEqual('GCS WGS 1984 (4326)'));
63
+ });
64
+ it('creates description for unknown WKID', async () => {
65
+ await newSpecPage({
66
+ components: [SpatialRef],
67
+ template: () => (h("spatial-ref", null))
68
+ });
69
+ const component = document.querySelector('spatial-ref');
70
+ component.wkidToDisplay(0)
71
+ .then(result => expect(result).toEqual('WKID 0'));
72
+ });
73
+ it('creates description for default component value', async () => {
74
+ await newSpecPage({
75
+ components: [SpatialRef],
76
+ template: () => (h("spatial-ref", null))
77
+ });
78
+ const component = document.querySelector('spatial-ref');
79
+ component.createSpatialRefDisplay(null)
80
+ .then(result => {
81
+ expect(result.display).toEqual('WGS 1984 Web Mercator Auxiliary Sphere (102100)');
82
+ expect(result.usingWkid).toBeTruthy();
83
+ expect(result.wkid).toEqual(102100);
84
+ expect(result.wkt).toEqual('');
85
+ });
86
+ });
87
+ it('creates description for WKID component value', async () => {
88
+ await newSpecPage({
89
+ components: [SpatialRef],
90
+ template: () => (h("spatial-ref", null))
91
+ });
92
+ const component = document.querySelector('spatial-ref');
93
+ component.createSpatialRefDisplay("4151")
94
+ .then(result => {
95
+ expect(result.display).toEqual('GCS Swiss TRF 1995 (4151)');
96
+ expect(result.usingWkid).toBeTruthy();
97
+ expect(result.wkid).toEqual(4151);
98
+ expect(result.wkt).toEqual('');
99
+ });
100
+ });
101
+ it('creates description for WKT component value', async () => {
102
+ await newSpecPage({
103
+ components: [SpatialRef],
104
+ template: () => (h("spatial-ref", null))
105
+ });
106
+ const component = document.querySelector('spatial-ref');
107
+ component.createSpatialRefDisplay('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]')
108
+ .then(result => {
109
+ expect(result.display).toEqual('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]');
110
+ expect(result.usingWkid).toBeFalsy();
111
+ expect(result.wkid).toEqual(0);
112
+ expect(result.wkt).toEqual('PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]');
113
+ });
114
+ });
115
+ it('sets default component value', async () => {
116
+ await newSpecPage({
117
+ components: [SpatialRef],
118
+ template: () => (h("spatial-ref", null))
119
+ });
120
+ const component = document.querySelector('spatial-ref');
121
+ component.getSpatialRef()
122
+ .then(result => {
123
+ expect(result.display).toEqual('WGS 1984 Web Mercator Auxiliary Sphere (102100)');
124
+ expect(result.usingWkid).toBeTruthy();
125
+ expect(result.wkid).toEqual(102100);
126
+ expect(result.wkt).toEqual('');
127
+ });
128
+ });
129
+ it('sets WKID component value', async () => {
130
+ await newSpecPage({
131
+ components: [SpatialRef],
132
+ template: () => (h("spatial-ref", { value: "4151" }))
133
+ });
134
+ const component = document.querySelector('spatial-ref');
135
+ component.getSpatialRef()
136
+ .then(result => {
137
+ expect(result.display).toEqual('GCS Swiss TRF 1995 (4151)');
138
+ expect(result.usingWkid).toBeTruthy();
139
+ expect(result.wkid).toEqual(4151);
140
+ expect(result.wkt).toEqual('');
141
+ });
142
+ });
143
+ it('sets WKT component value', async () => {
144
+ const v = `PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]`;
145
+ await newSpecPage({
146
+ components: [SpatialRef],
147
+ template: () => (h("spatial-ref", { value: v }))
148
+ });
149
+ const component = document.querySelector('spatial-ref');
150
+ component.getSpatialRef()
151
+ .then(result => {
152
+ expect(result.display).toEqual(v);
153
+ expect(result.usingWkid).toBeFalsy();
154
+ expect(result.wkid).toEqual(0);
155
+ expect(result.wkt).toEqual(v);
156
+ });
157
+ });
158
+ });
@@ -85,6 +85,7 @@
85
85
  ...[{
86
86
  id: "ce3dec81bf714d3bb71da9691ab686d1",
87
87
  name: "Popup Configured Map",
88
+ // filters: {},
88
89
  // layerInfos: [{
89
90
  // id: "Requests_681",
90
91
  // columnTemplates: [{
@@ -122,6 +123,9 @@
122
123
  }, {
123
124
  id: "f5b01c17a09941eaad63e7b4e6c7d880",
124
125
  name: "Attachments Map"
126
+ }, {
127
+ id: "b422923b7a4c4958b9788118255f2f0a",
128
+ name: "Floor aware map"
125
129
  }]
126
130
  ];
127
131
  }
@@ -19,44 +19,37 @@
19
19
  | See the License for the specific language governing permissions and
20
20
  | limitations under the License.
21
21
  -->
22
-
23
22
  <link rel="stylesheet" href="https://unpkg.com/@esri/calcite-components@1.0.0-beta.97/dist/calcite/calcite.css" type="text/css" />
24
23
  <link rel="stylesheet" href="https://webapps-cdn.esri.com/CDN/fonts/v1.4.1/fonts.css" />
25
24
  <link rel="stylesheet" href="../solutions-components.css" type="text/css">
26
25
  <style>
27
- .full-height {
28
- height: 100%;
29
- }
26
+ .content {
27
+ padding: 20px;
28
+ }
29
+ .full-height {
30
+ height: calc(100% - 40px);
31
+ }
30
32
  </style>
31
-
32
33
  <script type="module" src="https://unpkg.com/@esri/calcite-components@1.0.0-beta.97/dist/calcite/calcite.esm.js"></script>
33
34
  <script type="module" src="../solutions-components.esm.js"></script>
34
35
  </head>
35
-
36
36
  <body>
37
37
  <h1>Demo Solution Spatial Reference</h1>
38
38
  <main id="appContainer">
39
39
  <div class="content full-height">
40
40
  <store-manager id="helper"></store-manager>
41
- <solution-spatial-ref id="demo"></solution-spatial-ref>
41
+ <solution-spatial-ref id="demo"/>
42
42
  </div>
43
43
  </main>
44
44
 
45
45
  <script src="./libs/require.js"></script>
46
46
  <script src="./libs/setLocale.js"></script>
47
47
  <script>
48
- require([],
48
+ require([], // for loading i18n in setLocale
49
49
  function () {
50
- // Initialize the configuration content
51
- const demo = document.getElementById("demo");
52
-
53
- window.addEventListener("stateLoaded", (r) => {
54
- demo.services = r.detail.featureServices.map(fs => fs.name);
55
- document.getElementById("appContainer").style.opacity = "1";
56
- });
57
-
58
50
  fetch("./data/election-outreach.json").then(result => {
59
51
  result.json().then(data => {
52
+ document.getElementById("appContainer").style.opacity = "1";
60
53
  const helper = document.getElementById("helper");
61
54
  helper.value = JSON.stringify(data.templates);
62
55
  });
@@ -0,0 +1,53 @@
1
+ <!DOCTYPE html>
2
+ <html dir="ltr" lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
6
+ <title>Spatial Reference</title>
7
+ <!--
8
+ | Copyright 2022 Esri
9
+ |
10
+ | Licensed under the Apache License, Version 2.0 (the "License");
11
+ | you may not use this file except in compliance with the License.
12
+ | You may obtain a copy of the License at
13
+ |
14
+ | http://www.apache.org/licenses/LICENSE-2.0
15
+ |
16
+ | Unless required by applicable law or agreed to in writing, software
17
+ | distributed under the License is distributed on an "AS IS" BASIS,
18
+ | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ | See the License for the specific language governing permissions and
20
+ | limitations under the License.
21
+ -->
22
+ <link rel="stylesheet" href="https://unpkg.com/@esri/calcite-components@1.0.0-beta.97/dist/calcite/calcite.css" type="text/css" />
23
+ <link rel="stylesheet" href="https://webapps-cdn.esri.com/CDN/fonts/v1.4.1/fonts.css" />
24
+ <link rel="stylesheet" href="../solutions-components.css" type="text/css">
25
+ <style>
26
+ .content {
27
+ padding: 20px;
28
+ }
29
+ .full-height {
30
+ height: calc(100% - 40px);
31
+ }
32
+ </style>
33
+ <script type="module" src="https://unpkg.com/@esri/calcite-components@1.0.0-beta.97/dist/calcite/calcite.esm.js"></script>
34
+ <script type="module" src="../solutions-components.esm.js"></script>
35
+ </head>
36
+ <body>
37
+ <h1>Demo Spatial Reference</h1>
38
+ <main id="appContainer">
39
+ <div class="content full-height">
40
+ <spatial-ref id="demo"/>
41
+ </div>
42
+ </main>
43
+
44
+ <script src="./libs/require.js"></script>
45
+ <script src="./libs/setLocale.js"></script>
46
+ <script>
47
+ require([], // for loading i18n in setLocale
48
+ function () {
49
+ document.getElementById("appContainer").style.opacity = "1";
50
+ });
51
+ </script>
52
+ </body>
53
+ </html>
@@ -42,16 +42,7 @@ export async function getMapLayerHash(mapView, onlyShowUpdatableLayers) {
42
42
  return prev;
43
43
  }, {});
44
44
  });
45
- return onlyShowUpdatableLayers ? Object.keys(layerHash).reduce(async (prev, cur) => {
46
- const layer = await getLayerOrTable(mapView, cur);
47
- await layer.when(() => {
48
- prev[cur] = {
49
- name: layerHash[cur].name,
50
- supportsUpdate: layer.editingEnabled && layer.capabilities.operations.supportsUpdate
51
- };
52
- });
53
- return prev;
54
- }, {}) : layerHash;
45
+ return _getFinalHash(onlyShowUpdatableLayers, layerHash, mapView);
55
46
  }
56
47
  /**
57
48
  * Gets the table names from the current map
@@ -73,15 +64,37 @@ export async function getMapTableHash(mapView, onlyShowUpdatableTables) {
73
64
  return prev;
74
65
  }, {});
75
66
  });
76
- return onlyShowUpdatableTables ? Object.keys(tableHash).reduce(async (prev, cur) => {
77
- const item = await getLayerOrTable(mapView, cur);
78
- await item.load();
79
- prev[cur] = {
80
- name: tableHash[cur].name,
81
- supportsUpdate: item.editingEnabled && item.capabilities.operations.supportsUpdate
82
- };
83
- return prev;
84
- }, {}) : tableHash;
67
+ return _getFinalHash(onlyShowUpdatableTables, tableHash, mapView);
68
+ }
69
+ /**
70
+ * Get the final hash
71
+ *
72
+ * @param onlyShowUpdatable boolean when true only layers that support editing and the update capability will be returned
73
+ * @param hash IMapItemHash key: layer id, values: name, supportsUpdate
74
+ * @param mapView the map view to fetch the layer from
75
+ *
76
+ * @returns Promise resolving with IMapItemHash
77
+ *
78
+ */
79
+ async function _getFinalHash(onlyShowUpdatable, hash, mapView) {
80
+ if (onlyShowUpdatable) {
81
+ const editableHash = {};
82
+ const keys = Object.keys(hash);
83
+ for (let i = 0; i < keys.length; i++) {
84
+ const id = keys[i];
85
+ const layer = await getLayerOrTable(mapView, id);
86
+ await layer.load();
87
+ await layer.when();
88
+ editableHash[id] = {
89
+ name: hash[id].name,
90
+ supportsUpdate: layer.editingEnabled && layer.capabilities.operations.supportsUpdate
91
+ };
92
+ }
93
+ return editableHash;
94
+ }
95
+ else {
96
+ return hash;
97
+ }
85
98
  }
86
99
  /**
87
100
  * Get a layer view by id
@@ -42,17 +42,11 @@ export async function getMapLayerHash(
42
42
  return prev;
43
43
  }, {});
44
44
  });
45
-
46
- return onlyShowUpdatableLayers ? Object.keys(layerHash).reduce(async (prev, cur) => {
47
- const layer = await getLayerOrTable(mapView, cur);
48
- await layer.when(() => {
49
- prev[cur] = {
50
- name: layerHash[cur].name,
51
- supportsUpdate: layer.editingEnabled && layer.capabilities.operations.supportsUpdate
52
- };
53
- });
54
- return prev;
55
- }, {}) : layerHash;
45
+ return _getFinalHash(
46
+ onlyShowUpdatableLayers,
47
+ layerHash,
48
+ mapView
49
+ );
56
50
  }
57
51
 
58
52
  /**
@@ -78,16 +72,45 @@ export async function getMapTableHash(
78
72
  return prev;
79
73
  }, {});
80
74
  });
75
+ return _getFinalHash(
76
+ onlyShowUpdatableTables,
77
+ tableHash,
78
+ mapView
79
+ );
80
+ }
81
81
 
82
- return onlyShowUpdatableTables ? Object.keys(tableHash).reduce(async (prev, cur) => {
83
- const item = await getLayerOrTable(mapView, cur);
84
- await item.load();
85
- prev[cur] = {
86
- name: tableHash[cur].name,
87
- supportsUpdate: item.editingEnabled && item.capabilities.operations.supportsUpdate
88
- };
89
- return prev;
90
- }, {}) : tableHash;
82
+ /**
83
+ * Get the final hash
84
+ *
85
+ * @param onlyShowUpdatable boolean when true only layers that support editing and the update capability will be returned
86
+ * @param hash IMapItemHash key: layer id, values: name, supportsUpdate
87
+ * @param mapView the map view to fetch the layer from
88
+ *
89
+ * @returns Promise resolving with IMapItemHash
90
+ *
91
+ */
92
+ async function _getFinalHash(
93
+ onlyShowUpdatable: boolean,
94
+ hash: IMapItemHash,
95
+ mapView: __esri.MapView
96
+ ): Promise<IMapItemHash> {
97
+ if (onlyShowUpdatable) {
98
+ const editableHash = {};
99
+ const keys = Object.keys(hash);
100
+ for (let i = 0; i < keys.length; i++) {
101
+ const id = keys[i];
102
+ const layer = await getLayerOrTable(mapView, id);
103
+ await layer.load();
104
+ await layer.when();
105
+ editableHash[id] = {
106
+ name: hash[id].name,
107
+ supportsUpdate: layer.editingEnabled && layer.capabilities.operations.supportsUpdate
108
+ };
109
+ }
110
+ return editableHash;
111
+ } else {
112
+ return hash;
113
+ }
91
114
  }
92
115
 
93
116
  /**
@@ -18,8 +18,8 @@
18
18
  * See the License for the specific language governing permissions and
19
19
  * limitations under the License.
20
20
  */
21
- import { getInventoryItems } from "./templates";
22
- import * as electionOutreach from "../demos/data/election-outreach.json";
21
+ import { getInventoryItems } from "../templates";
22
+ import * as electionOutreach from "../../demos/data/election-outreach.json";
23
23
  describe("getInventoryItems", () => {
24
24
  it("can get inventory items", () => {
25
25
  const templates = electionOutreach.templates;
@@ -16,8 +16,8 @@
16
16
 
17
17
  import {
18
18
  getInventoryItems
19
- } from "./templates";
20
- import * as electionOutreach from '../demos/data/election-outreach.json';
19
+ } from "../templates";
20
+ import * as electionOutreach from '../../demos/data/election-outreach.json';
21
21
 
22
22
  describe("getInventoryItems", () => {
23
23
  it("can get inventory items", () => {
@@ -84,7 +84,7 @@ const CardManager = /*@__PURE__*/ proxyCustomElement(class CardManager extends H
84
84
  var _a, _b;
85
85
  const featuresClass = ((_a = this._graphics) === null || _a === void 0 ? void 0 : _a.length) > 0 ? "" : "display-none";
86
86
  const messageClass = ((_b = this._graphics) === null || _b === void 0 ? void 0 : _b.length) > 0 ? "display-none" : "";
87
- return (h(Host, null, h("div", { class: "overflow-auto height-full" }, h("calcite-shell", { class: "position-relative " + featuresClass }, h("div", null, h("info-card", { graphics: this._graphics, isLoading: this._cardLoading, mapView: this.mapView, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))), h("div", { class: "padding-1 " + messageClass }, h("calcite-notice", { icon: "table", open: true }, h("div", { slot: "message" }, this._translations.selectFeaturesToStart))))));
87
+ return (h(Host, null, h("div", { class: "overflow-auto height-full" }, h("calcite-shell", { class: "position-relative " + featuresClass }, h("div", null, h("info-card", { graphics: this._graphics, isLoading: this._cardLoading, mapView: this.mapView, zoomAndScrollToSelected: this.zoomAndScrollToSelected }))), h("calcite-shell", { class: "position-relative " + messageClass }, h("div", { class: "padding-1" }, h("calcite-notice", { icon: "table", open: true }, h("div", { slot: "message" }, this._translations.selectFeaturesToStart)))))));
88
88
  }
89
89
  //--------------------------------------------------------------------------
90
90
  //