@esri/solutions-components 0.8.39 → 0.8.41

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 (273) hide show
  1. package/dist/assets/t9n/solution-spatial-ref/resources.json +3 -3
  2. package/dist/assets/t9n/solution-spatial-ref/resources_en.json +2 -2
  3. package/dist/assets/t9n/solution-spatial-ref/resources_fr.json +2 -2
  4. package/dist/assets/t9n/solution-spatial-ref/resources_he.json +2 -2
  5. package/dist/cjs/_commonjsHelpers-baf43783.js +20 -0
  6. package/dist/cjs/basemap-gallery_7.cjs.entry.js +3 -2
  7. package/dist/cjs/buffer-tools_3.cjs.entry.js +3 -2
  8. package/dist/cjs/calcite-action-pad_2.cjs.entry.js +3 -2
  9. package/dist/cjs/calcite-alert_4.cjs.entry.js +7 -6
  10. package/dist/cjs/calcite-block_5.cjs.entry.js +5 -4
  11. package/dist/cjs/calcite-combobox_3.cjs.entry.js +1 -1
  12. package/dist/cjs/calcite-dropdown-group_2.cjs.entry.js +3 -2
  13. package/dist/cjs/calcite-flow_6.cjs.entry.js +3 -2
  14. package/dist/cjs/calcite-pagination.cjs.entry.js +1 -1
  15. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +9 -8
  16. package/dist/cjs/card-manager_3.cjs.entry.js +6 -5
  17. package/dist/cjs/{common-03600219.js → common-7ee7ad73.js} +1 -1
  18. package/dist/cjs/consent-manager.cjs.entry.js +3 -2
  19. package/dist/cjs/{core-b459e4f2.js → core-7f0bcc12.js} +1 -1
  20. package/dist/cjs/crowdsource-manager.cjs.entry.js +3 -2
  21. package/dist/cjs/crowdsource-reporter.cjs.entry.js +3 -2
  22. package/dist/cjs/{downloadUtils-839a1425.js → downloadUtils-2e169425.js} +7 -7
  23. package/dist/cjs/{esri-loader-fce6a9cb.js → esri-loader-a56cbcbe.js} +2 -13
  24. package/dist/cjs/feature-list.cjs.entry.js +7 -6
  25. package/dist/cjs/{helpers-7cee3150.js → helpers-95c28cf3.js} +1 -1
  26. package/dist/cjs/{html2canvas-ef5cae40.js → html2canvas-29c6b9cc.js} +2 -2
  27. package/dist/cjs/{index.es-dd4d4842.js → index.es-301b8d18.js} +11 -10
  28. package/dist/cjs/instant-apps-ckeditor-wrapper_3.cjs.entry.js +6 -5
  29. package/dist/cjs/instant-apps-control-panel.cjs.entry.js +3 -2
  30. package/dist/cjs/instant-apps-create.cjs.entry.js +5 -4
  31. package/dist/cjs/instant-apps-export.cjs.entry.js +5 -4
  32. package/dist/cjs/instant-apps-header.cjs.entry.js +3 -2
  33. package/dist/cjs/instant-apps-interactive-legend-classic.cjs.entry.js +5 -4
  34. package/dist/cjs/instant-apps-interactive-legend-count_2.cjs.entry.js +4 -3
  35. package/dist/cjs/instant-apps-interactive-legend-group-legend-element-caption.cjs.entry.js +4 -3
  36. package/dist/cjs/instant-apps-interactive-legend-group-legend-element_5.cjs.entry.js +4 -3
  37. package/dist/cjs/instant-apps-interactive-legend.cjs.entry.js +6 -5
  38. package/dist/cjs/instant-apps-keyboard-shortcuts.cjs.entry.js +5 -4
  39. package/dist/cjs/instant-apps-language-switcher.cjs.entry.js +7 -6
  40. package/dist/cjs/instant-apps-language-translator.cjs.entry.js +7 -6
  41. package/dist/cjs/instant-apps-measurement.cjs.entry.js +5 -4
  42. package/dist/cjs/instant-apps-popover.cjs.entry.js +5 -4
  43. package/dist/cjs/instant-apps-scoreboard.cjs.entry.js +5 -4
  44. package/dist/cjs/instant-apps-sign-in.cjs.entry.js +5 -4
  45. package/dist/cjs/instant-apps-splash.cjs.entry.js +5 -4
  46. package/dist/cjs/{languageSwitcher-1154d55d.js → languageSwitcher-f0bb94fa.js} +1 -1
  47. package/dist/cjs/{languageUtil-d23251cd.js → languageUtil-f22ce913.js} +1 -1
  48. package/dist/cjs/layout-manager.cjs.entry.js +3 -2
  49. package/dist/cjs/{loadModules-4189814e.js → loadModules-36d49819.js} +1 -1
  50. package/dist/cjs/loader.cjs.js +1 -1
  51. package/dist/cjs/{locale-62f4cef2.js → locale-708985a1.js} +2 -2
  52. package/dist/cjs/{locale-6973733d.js → locale-f6fd03d2.js} +1 -1
  53. package/dist/cjs/map-select-tools_3.cjs.entry.js +6 -5
  54. package/dist/cjs/{popupUtils-bae7f923.js → popupUtils-36e57a27.js} +2 -2
  55. package/dist/cjs/public-notification.cjs.entry.js +6 -5
  56. package/dist/cjs/{purify-4a0e9dfb.js → purify-17c0fc4a.js} +2 -2
  57. package/dist/cjs/{restHelpersGet-afc74285.js → restHelpersGet-be451f4a.js} +1 -1
  58. package/dist/cjs/solution-configuration.cjs.entry.js +10 -350
  59. package/dist/cjs/solution-contents_3.cjs.entry.js +58 -48
  60. package/dist/cjs/solution-resource-a09a6fe0.js +145 -0
  61. package/dist/cjs/{solution-store-c8bada29.js → solution-store-d9f3ea44.js} +8 -10
  62. package/dist/cjs/solutions-components.cjs.js +1 -1
  63. package/dist/cjs/spatial-ref.cjs.entry.js +6 -5
  64. package/dist/cjs/store-manager.cjs.entry.js +17 -13
  65. package/dist/cjs/templates-f7a3bf48.js +401 -0
  66. package/dist/cjs/{utils-1de4eaa0.js → utils-31a22d49.js} +1 -1
  67. package/dist/collection/components/solution-item/solution-item.js +1 -1
  68. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.css +11 -1
  69. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +83 -47
  70. package/dist/collection/components/solution-spatial-ref/test/solution-spatial-ref.spec.js +25 -24
  71. package/dist/collection/components/solution-template-data/solution-template-data.js +1 -1
  72. package/dist/collection/components/solution-variables/solution-variables.js +1 -1
  73. package/dist/collection/components/spatial-ref/spatial-ref.js +1 -1
  74. package/dist/collection/components/store-manager/store-manager.js +11 -13
  75. package/dist/collection/demos/data/election-outreach.json +2981 -0
  76. package/dist/collection/demos/solution-item.html +7 -6
  77. package/dist/collection/demos/solution-spatial-ref.html +10 -4
  78. package/dist/collection/demos/solution-template-data.html +5 -5
  79. package/dist/collection/utils/interfaces.ts +0 -2
  80. package/dist/collection/utils/solution-store.js +6 -8
  81. package/dist/collection/utils/solution-store.ts +12 -13
  82. package/dist/collection/utils/templates.js +113 -26
  83. package/dist/collection/utils/templates.ts +125 -30
  84. package/dist/collection/utils/test/templates.e2e.js +2 -2
  85. package/dist/collection/utils/test/templates.e2e.ts +2 -2
  86. package/dist/components/_commonjsHelpers.js +16 -0
  87. package/dist/components/core.js +1 -1
  88. package/dist/components/downloadUtils.js +1 -1
  89. package/dist/components/esri-loader.js +2 -10
  90. package/dist/components/html2canvas.js +1 -1
  91. package/dist/components/index.es.js +1 -1
  92. package/dist/components/instant-apps-interactive-legend-classic2.js +1 -1
  93. package/dist/components/pagination.js +1 -1
  94. package/dist/components/purify.js +1 -1
  95. package/dist/components/solution-configuration.js +1 -342
  96. package/dist/components/solution-item2.js +1 -1
  97. package/dist/components/solution-resource.js +1 -1
  98. package/dist/components/solution-spatial-ref2.js +52 -44
  99. package/dist/components/solution-store.js +6 -8
  100. package/dist/components/solution-template-data2.js +1 -1
  101. package/dist/components/solution-variables2.js +1 -1
  102. package/dist/components/spatial-ref2.js +1 -1
  103. package/dist/components/store-manager.js +11 -13
  104. package/dist/components/templates.js +395 -0
  105. package/dist/esm/_commonjsHelpers-089957fe.js +16 -0
  106. package/dist/esm/basemap-gallery_7.entry.js +3 -2
  107. package/dist/esm/buffer-tools_3.entry.js +3 -2
  108. package/dist/esm/calcite-action-pad_2.entry.js +3 -2
  109. package/dist/esm/calcite-alert_4.entry.js +7 -6
  110. package/dist/esm/calcite-block_5.entry.js +5 -4
  111. package/dist/esm/calcite-combobox_3.entry.js +1 -1
  112. package/dist/esm/calcite-dropdown-group_2.entry.js +3 -2
  113. package/dist/esm/calcite-flow_6.entry.js +3 -2
  114. package/dist/esm/calcite-pagination.entry.js +1 -1
  115. package/dist/esm/calcite-shell-panel_14.entry.js +9 -8
  116. package/dist/esm/card-manager_3.entry.js +6 -5
  117. package/dist/esm/{common-8697fccd.js → common-96e3ddb0.js} +1 -1
  118. package/dist/esm/consent-manager.entry.js +3 -2
  119. package/dist/esm/{core-4bd4a70f.js → core-6a3c13ac.js} +1 -1
  120. package/dist/esm/crowdsource-manager.entry.js +3 -2
  121. package/dist/esm/crowdsource-reporter.entry.js +3 -2
  122. package/dist/esm/{downloadUtils-97acca92.js → downloadUtils-5fbd8a40.js} +6 -6
  123. package/dist/esm/{esri-loader-3080dcc0.js → esri-loader-781d738a.js} +2 -10
  124. package/dist/esm/feature-list.entry.js +7 -6
  125. package/dist/esm/{helpers-7c88b974.js → helpers-3d53560f.js} +1 -1
  126. package/dist/esm/{html2canvas-fd387d87.js → html2canvas-6443b68e.js} +1 -1
  127. package/dist/esm/{index.es-ee5497bc.js → index.es-66571353.js} +6 -5
  128. package/dist/esm/instant-apps-ckeditor-wrapper_3.entry.js +6 -5
  129. package/dist/esm/instant-apps-control-panel.entry.js +3 -2
  130. package/dist/esm/instant-apps-create.entry.js +5 -4
  131. package/dist/esm/instant-apps-export.entry.js +5 -4
  132. package/dist/esm/instant-apps-header.entry.js +3 -2
  133. package/dist/esm/instant-apps-interactive-legend-classic.entry.js +4 -3
  134. package/dist/esm/instant-apps-interactive-legend-count_2.entry.js +4 -3
  135. package/dist/esm/instant-apps-interactive-legend-group-legend-element-caption.entry.js +4 -3
  136. package/dist/esm/instant-apps-interactive-legend-group-legend-element_5.entry.js +4 -3
  137. package/dist/esm/instant-apps-interactive-legend.entry.js +6 -5
  138. package/dist/esm/instant-apps-keyboard-shortcuts.entry.js +5 -4
  139. package/dist/esm/instant-apps-language-switcher.entry.js +7 -6
  140. package/dist/esm/instant-apps-language-translator.entry.js +7 -6
  141. package/dist/esm/instant-apps-measurement.entry.js +5 -4
  142. package/dist/esm/instant-apps-popover.entry.js +5 -4
  143. package/dist/esm/instant-apps-scoreboard.entry.js +5 -4
  144. package/dist/esm/instant-apps-sign-in.entry.js +5 -4
  145. package/dist/esm/instant-apps-splash.entry.js +5 -4
  146. package/dist/esm/{languageSwitcher-0f693a04.js → languageSwitcher-b665499d.js} +1 -1
  147. package/dist/esm/{languageUtil-de206286.js → languageUtil-a3e6adf6.js} +1 -1
  148. package/dist/esm/layout-manager.entry.js +3 -2
  149. package/dist/esm/{loadModules-43119ac8.js → loadModules-9c062d08.js} +1 -1
  150. package/dist/esm/loader.js +1 -1
  151. package/dist/esm/{locale-42369411.js → locale-28d48640.js} +1 -1
  152. package/dist/esm/{locale-70630b7c.js → locale-b4e7d56f.js} +2 -2
  153. package/dist/esm/map-select-tools_3.entry.js +6 -5
  154. package/dist/esm/{popupUtils-98ad70f3.js → popupUtils-4a91aa2a.js} +2 -2
  155. package/dist/esm/public-notification.entry.js +6 -5
  156. package/dist/esm/{purify-caded4cd.js → purify-72515357.js} +1 -1
  157. package/dist/esm/{restHelpersGet-dab84057.js → restHelpersGet-5c822bcd.js} +1 -1
  158. package/dist/esm/solution-configuration.entry.js +7 -347
  159. package/dist/esm/solution-contents_3.entry.js +58 -48
  160. package/dist/esm/{solution-resource-a2fff3bf.js → solution-resource-3108caf7.js} +1 -1
  161. package/dist/esm/{solution-store-30a19a45.js → solution-store-1c36ce1d.js} +8 -10
  162. package/dist/esm/solutions-components.js +1 -1
  163. package/dist/esm/spatial-ref.entry.js +6 -5
  164. package/dist/esm/store-manager.entry.js +17 -13
  165. package/dist/esm/templates-824ea028.js +395 -0
  166. package/dist/esm/{utils-9bb48951.js → utils-5484fcbf.js} +1 -1
  167. package/dist/solutions-components/demos/data/election-outreach.json +2981 -0
  168. package/dist/solutions-components/demos/solution-item.html +7 -6
  169. package/dist/solutions-components/demos/solution-spatial-ref.html +10 -4
  170. package/dist/solutions-components/demos/solution-template-data.html +5 -5
  171. package/dist/solutions-components/{p-3eb49703.js → p-00291b93.js} +3 -3
  172. package/dist/solutions-components/p-0cd87dca.entry.js +6 -0
  173. package/dist/solutions-components/p-13404ad7.entry.js +6 -0
  174. package/dist/solutions-components/{p-bf27cd5f.js → p-1c3c83a5.js} +1 -1
  175. package/dist/solutions-components/p-1e6c6ec4.entry.js +6 -0
  176. package/dist/solutions-components/p-219f209e.entry.js +6 -0
  177. package/dist/solutions-components/{p-b1abf15c.entry.js → p-2467b476.entry.js} +3 -3
  178. package/dist/solutions-components/p-295f850a.entry.js +6 -0
  179. package/dist/solutions-components/p-2961c63c.entry.js +6 -0
  180. package/dist/solutions-components/{p-946ee345.js → p-2afdcdfc.js} +2 -2
  181. package/dist/solutions-components/p-2d6d44b5.entry.js +6 -0
  182. package/dist/solutions-components/p-36e199e0.entry.js +6 -0
  183. package/dist/solutions-components/{p-d27ab863.js → p-3d7cff5e.js} +1 -1
  184. package/dist/solutions-components/{p-b2f11718.entry.js → p-3e8562b5.entry.js} +1 -1
  185. package/dist/solutions-components/{p-49250010.js → p-427b4593.js} +1 -1
  186. package/dist/solutions-components/{p-f1ae51dc.js → p-44fea43a.js} +1 -1
  187. package/dist/solutions-components/{p-afd2b67b.entry.js → p-4b27da06.entry.js} +1 -1
  188. package/dist/solutions-components/{p-7fe77355.js → p-5cc6eb18.js} +1 -1
  189. package/dist/solutions-components/p-61f88049.entry.js +6 -0
  190. package/dist/solutions-components/{p-d029b513.js → p-65581d83.js} +1 -1
  191. package/dist/solutions-components/p-6a68306c.js +6 -0
  192. package/dist/solutions-components/p-6c7a990a.entry.js +6 -0
  193. package/dist/solutions-components/p-6e6e6d23.entry.js +6 -0
  194. package/dist/solutions-components/p-7696af8e.entry.js +6 -0
  195. package/dist/solutions-components/{p-7afca6b4.js → p-7d1af07b.js} +1 -1
  196. package/dist/solutions-components/{p-6c7e34c1.entry.js → p-881ead62.entry.js} +2 -2
  197. package/dist/solutions-components/p-90864588.entry.js +6 -0
  198. package/dist/solutions-components/{p-59f016a1.js → p-91142a26.js} +1 -1
  199. package/dist/solutions-components/p-932d6f29.entry.js +6 -0
  200. package/dist/solutions-components/{p-71c212e6.entry.js → p-969828ab.entry.js} +1 -1
  201. package/dist/solutions-components/p-986ee365.entry.js +6 -0
  202. package/dist/solutions-components/p-9e3b0220.entry.js +6 -0
  203. package/dist/solutions-components/{p-7996f123.js → p-a0300d31.js} +1 -1
  204. package/dist/solutions-components/p-a8d62b7d.entry.js +6 -0
  205. package/dist/solutions-components/p-ae50581b.entry.js +6 -0
  206. package/dist/solutions-components/{p-89f6ff72.js → p-af2c8aa9.js} +1 -1
  207. package/dist/solutions-components/p-b7123452.entry.js +6 -0
  208. package/dist/solutions-components/p-b92e9047.entry.js +6 -0
  209. package/dist/solutions-components/p-bb7463ed.entry.js +6 -0
  210. package/dist/solutions-components/p-bbc7dd5e.entry.js +6 -0
  211. package/dist/solutions-components/p-bd871071.entry.js +21 -0
  212. package/dist/solutions-components/p-c6fd40f9.entry.js +6 -0
  213. package/dist/solutions-components/{p-42ea2581.js → p-c742acd9.js} +1 -1
  214. package/dist/solutions-components/p-cb4842dd.entry.js +6 -0
  215. package/dist/solutions-components/{p-bd459df3.entry.js → p-ccd1e256.entry.js} +2 -2
  216. package/dist/solutions-components/p-ce4b6931.entry.js +6 -0
  217. package/dist/solutions-components/p-d2de2b2a.entry.js +6 -0
  218. package/dist/solutions-components/p-d300430b.entry.js +6 -0
  219. package/dist/solutions-components/p-d4056c1c.js +6 -0
  220. package/dist/solutions-components/p-d73b90ab.entry.js +6 -0
  221. package/dist/solutions-components/{p-4e92c1ba.entry.js → p-dae9d5b3.entry.js} +1 -1
  222. package/dist/solutions-components/p-df56c019.entry.js +6 -0
  223. package/dist/solutions-components/p-e80751f4.entry.js +6 -0
  224. package/dist/solutions-components/{p-132b1138.entry.js → p-e8ed3fa6.entry.js} +2 -2
  225. package/dist/solutions-components/{p-1d369231.js → p-eed41e1a.js} +1 -1
  226. package/dist/solutions-components/p-fdd93685.js +22 -0
  227. package/dist/solutions-components/{p-6acf6c8f.js → p-ff87b9de.js} +1 -1
  228. package/dist/solutions-components/{p-c9b22653.js → p-ffd41e25.js} +1 -1
  229. package/dist/solutions-components/solutions-components.esm.js +1 -1
  230. package/dist/solutions-components/utils/interfaces.ts +0 -2
  231. package/dist/solutions-components/utils/solution-store.ts +12 -13
  232. package/dist/solutions-components/utils/templates.ts +125 -30
  233. package/dist/solutions-components/utils/test/templates.e2e.ts +2 -2
  234. package/dist/solutions-components_commit.txt +8 -0
  235. package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +21 -25
  236. package/dist/types/components/store-manager/store-manager.d.ts +3 -3
  237. package/dist/types/components.d.ts +10 -2
  238. package/dist/types/utils/templates.d.ts +35 -5
  239. package/package.json +6 -5
  240. package/dist/cjs/solution-resource-ffe3c333.js +0 -145
  241. package/dist/solutions-components/p-11b4cd1a.entry.js +0 -6
  242. package/dist/solutions-components/p-123fcb43.entry.js +0 -6
  243. package/dist/solutions-components/p-12b84e3b.entry.js +0 -36
  244. package/dist/solutions-components/p-1a8f7075.entry.js +0 -6
  245. package/dist/solutions-components/p-2a7111ad.entry.js +0 -6
  246. package/dist/solutions-components/p-36f5dee9.entry.js +0 -6
  247. package/dist/solutions-components/p-52bcd209.entry.js +0 -6
  248. package/dist/solutions-components/p-57961ae0.entry.js +0 -6
  249. package/dist/solutions-components/p-5b2d9899.entry.js +0 -6
  250. package/dist/solutions-components/p-5bd6a732.entry.js +0 -6
  251. package/dist/solutions-components/p-5fb4ddc2.entry.js +0 -6
  252. package/dist/solutions-components/p-622f33ee.entry.js +0 -6
  253. package/dist/solutions-components/p-652140aa.entry.js +0 -6
  254. package/dist/solutions-components/p-6d0404a6.entry.js +0 -6
  255. package/dist/solutions-components/p-789eb1c2.entry.js +0 -6
  256. package/dist/solutions-components/p-7a2f1801.entry.js +0 -6
  257. package/dist/solutions-components/p-7dcf6b16.entry.js +0 -6
  258. package/dist/solutions-components/p-8413a2ae.entry.js +0 -6
  259. package/dist/solutions-components/p-941e55f0.entry.js +0 -6
  260. package/dist/solutions-components/p-9b38e6a0.entry.js +0 -6
  261. package/dist/solutions-components/p-9c1fbf73.entry.js +0 -6
  262. package/dist/solutions-components/p-9d82f0e3.entry.js +0 -6
  263. package/dist/solutions-components/p-9fa1855f.entry.js +0 -6
  264. package/dist/solutions-components/p-a2390bee.entry.js +0 -6
  265. package/dist/solutions-components/p-a805c11f.entry.js +0 -6
  266. package/dist/solutions-components/p-af1c9389.entry.js +0 -6
  267. package/dist/solutions-components/p-b7d060b0.entry.js +0 -6
  268. package/dist/solutions-components/p-c4160bf7.js +0 -6
  269. package/dist/solutions-components/p-da75df88.entry.js +0 -6
  270. package/dist/solutions-components/p-e0277e0b.entry.js +0 -6
  271. package/dist/solutions-components/p-e11a4728.entry.js +0 -6
  272. package/dist/solutions-components/p-e89c05d6.entry.js +0 -6
  273. /package/dist/solutions-components/{p-8ad54f5c.js → p-e3196917.js} +0 -0
@@ -275,7 +275,6 @@ export interface ISolutionTemplateEdits {
275
275
  [templateId: string]: ISolutionTemplateEdit;
276
276
  }
277
277
 
278
- //???
279
278
  export interface ISolutionModel {
280
279
  dataModel: monaco.editor.ITextModel;
281
280
  dataOriginValue: string;
@@ -306,7 +305,6 @@ export interface ISolutionModel {
306
305
  export interface ISolutionModels {
307
306
  [key: string]: ISolutionModel;
308
307
  }
309
- //???
310
308
 
311
309
  /**
312
310
  * Feature service name and whether the service is enabled for SR configuration
@@ -53,11 +53,12 @@ import {
53
53
  // * solutionItemId: [string] id of the current solution
54
54
  // * defaultWkid: [any] value of the solution's `params.wkid.default` data property, which may be undefined
55
55
  // * solutionData: [ISolutionItemData] the solution's data, which is modified in-place
56
- // * featureServices: [array] a list of Feature service enablement status for SR configuration
56
+ // * featureServices: [array] a list of Feature services that use a spatial reference var
57
57
  // * spatialReferenceInfo: [object] the current spatial reference (if enabled) and the services that use it
58
58
  // * enabled: [boolean] use the spatial reference
59
- // * services: [object] services using this spatial reference organized by the service name
60
- // * spatialReference: [object] the spatial reference display
59
+ // * services: [object] for each service in featureServices by service name, a switch indicating if the
60
+ // custom spatial reference parameter is enabled/disabled
61
+ // * spatialReference: [object] the custom spatial reference wkid
61
62
  //
62
63
  // Store singleton method:
63
64
  // * Store: Creates singleton instance when accessed; default export from module.
@@ -79,7 +80,7 @@ import {
79
80
  //
80
81
  //--------------------------------------------------------------------------------------------------------------------//
81
82
 
82
- interface SolutionStoreData {
83
+ interface ISolutionStoreData {
83
84
  solutionItemId: string,
84
85
  defaultWkid: string,
85
86
  solutionData: ISolutionItemData,
@@ -88,7 +89,7 @@ interface SolutionStoreData {
88
89
  spatialReferenceInfo: ISolutionSpatialReferenceInfo
89
90
  }
90
91
 
91
- const EmptySolutionStore: SolutionStoreData = {
92
+ const EmptySolutionStore: ISolutionStoreData = {
92
93
  solutionItemId: "",
93
94
  defaultWkid: undefined,
94
95
  solutionData: { metadata: {}, templates: [] },
@@ -374,14 +375,12 @@ class SolutionStore
374
375
  */
375
376
  protected _flagStoreHasChanges(flagHasChanges: boolean): void {
376
377
  // Event for notifying if the store has changes or not
377
- if (this._hasChanges !== flagHasChanges) {
378
- window.dispatchEvent(new CustomEvent("solutionStoreHasChanges", {
379
- detail: flagHasChanges,
380
- bubbles: true,
381
- cancelable: false,
382
- composed: true
383
- }));
384
- }
378
+ window.dispatchEvent(new CustomEvent("solutionStoreHasChanges", {
379
+ detail: flagHasChanges,
380
+ bubbles: true,
381
+ cancelable: false,
382
+ composed: true
383
+ }));
385
384
 
386
385
  this._hasChanges = flagHasChanges;
387
386
  }
@@ -24,12 +24,13 @@ import {
24
24
  //IItemShare,
25
25
  IOrganizationVariableItem,
26
26
  //IResourcePath,
27
- //SolutionModels,
27
+ ISolutionModels,
28
28
  //ISolutionSpatialReferenceInfo,
29
29
  IVariableItem
30
30
  } from '../utils/interfaces';
31
31
  import {
32
- IItemTemplate
32
+ IItemTemplate,
33
+ getProp
33
34
  } from '@esri/solution-common';
34
35
 
35
36
  //--------------------------------------------------------------------------
@@ -38,6 +39,31 @@ import {
38
39
  //
39
40
  //--------------------------------------------------------------------------
40
41
 
42
+ /**
43
+ * Gets a list of Feature Services that are not views along with an enabled property that indicates
44
+ * if the service currently uses a spatial reference variable.
45
+ *
46
+ * @param templates a list of item templates from the solution
47
+ *
48
+ * @returns a list of feature service names and an enabled property to indicate
49
+ * if they currently use a spatial reference variable.
50
+ */
51
+ export function getFeatureServices(
52
+ templates: IItemTemplate[]
53
+ ): any[] {
54
+ return templates.reduce((prev, cur) => {
55
+ const name: string = cur.item.title || cur.item.name;
56
+ if (cur.type === "Feature Service" &&
57
+ cur.item.typeKeywords.indexOf("View Service") < 0 &&
58
+ prev.indexOf(name) < 0
59
+ ) {
60
+ const wkid = getProp(cur, "properties.service.spatialReference.wkid");
61
+ prev.push({ name, enabled: wkid.toString().startsWith("{{params.wkid||")});
62
+ }
63
+ return prev;
64
+ }, []);
65
+ }
66
+
41
67
  /**
42
68
  * Sort the solution items
43
69
  *
@@ -131,6 +157,83 @@ export function getItemHierarchy(
131
157
  return hierarchy;
132
158
  }
133
159
 
160
+ /**
161
+ * Create and store text models for the editor as well as other key values such as the original values
162
+ * that can be used to clear any temp edits.
163
+ *
164
+ * @param templates a list of item templates from the solution
165
+ *
166
+ * @returns a list of models and key values
167
+ */
168
+ export function getModels(templates: any[]): ISolutionModels {
169
+ const ids: string[] = [];
170
+ const models: ISolutionModels = {};
171
+ const monacoDefined = typeof(monaco) !== "undefined";
172
+ templates.forEach(t => {
173
+ if (ids.indexOf(t.itemId) < 0) {
174
+ ids.push(t.itemId);
175
+ models[t.itemId] = {
176
+ dataModel: monacoDefined ? monaco.editor.createModel(JSON.stringify(t.data, null, '\t'), "json") : undefined,
177
+ dataOriginValue: JSON.stringify(t.data),
178
+ propsModel: monacoDefined ? monaco.editor.createModel(JSON.stringify(t.properties, null, '\t'), "json") : undefined,
179
+ propsOriginValue: JSON.stringify(t.properties),
180
+ propsDiffOriginValue: JSON.stringify(t.properties),
181
+ state: undefined,
182
+ shareInfo: undefined,
183
+ isEditing: false,
184
+ itemId: t.itemId,
185
+ updateItemValues: {},
186
+ originalItemValues: {},
187
+ name: t.item?.name,
188
+ title: t.item?.title,
189
+ itemOriginValue: JSON.stringify(t.item),
190
+ spatialReference: t.properties?.service?.spatialReference,
191
+ resources: [], //???
192
+ resourceFilePaths: [], //???
193
+ sourceResourceFilePaths: [], //???
194
+ thumbnailOrigin: undefined, //???
195
+ thumbnailNew: undefined, //???
196
+ type: t.type
197
+ };
198
+ }
199
+ });
200
+ return models;
201
+ }
202
+
203
+ /**
204
+ * Set key organization variables we will allow users to insert at runtime
205
+ *
206
+ * @param translations nls translation object
207
+ *
208
+ * @returns a list of variables for the organization
209
+ */
210
+ export function getOrganizationVariables(
211
+ translations: any
212
+ ): IOrganizationVariableItem[] {
213
+ const orgVars: IOrganizationVariableItem[] = [{
214
+ id: "",
215
+ title: translations.geocodeUrl,
216
+ value: "{{organization.helperServices.geocode:getDefaultLocatorURL}}"
217
+ }, {
218
+ id: "",
219
+ title: translations.geometryUrl,
220
+ value: "{{organization.helperServices.geometry.url}}"
221
+ }, {
222
+ id: "",
223
+ title: translations.portalBaseUrl,
224
+ value: "{{portalBaseUrl}}"
225
+ }, {
226
+ id: "",
227
+ title: translations.routeUrl,
228
+ value: "{{organization.helperServices.route.url}}"
229
+ }, {
230
+ id: "",
231
+ title: translations.solutionItemExtent,
232
+ value: "{{solutionItemExtent}}"
233
+ }];
234
+ return orgVars;
235
+ }
236
+
134
237
  /**
135
238
  * Explore the solution item templates for variables we will allow users to insert at runtime
136
239
  *
@@ -181,37 +284,29 @@ export function getSolutionVariables(
181
284
  }
182
285
 
183
286
  /**
184
- * Set key organization variables we will allow users to insert at runtime
287
+ * Stores basic spatial reference information that is used to determine if a custom spatial reference parameter will
288
+ * be exposed while deploying this solution and if so what feature services will support it and what will the default wkid be
185
289
  *
186
- * @param translations nls translation object
290
+ * @param services a list of objects with service name and enabled property (indicates if they currently use a spatial reference var)
291
+ * @param data the data object of a solution item
187
292
  *
188
- * @returns a list of variables for the organization
293
+ * @returns an object that stores if a custom spatial reference parameter is enabled/disabled,
294
+ * a list of services and if they are enabled/disabled, and the default wkid
189
295
  */
190
- export function getOrganizationVariables(
191
- translations: any
192
- ): IOrganizationVariableItem[] {
193
- const orgVars: IOrganizationVariableItem[] = [{
194
- id: "",
195
- title: translations.geocodeUrl,
196
- value: "{{organization.helperServices.geocode:getDefaultLocatorURL}}"
197
- }, {
198
- id: "",
199
- title: translations.geometryUrl,
200
- value: "{{organization.helperServices.geometry.url}}"
201
- }, {
202
- id: "",
203
- title: translations.portalBaseUrl,
204
- value: "{{portalBaseUrl}}"
205
- }, {
206
- id: "",
207
- title: translations.routeUrl,
208
- value: "{{organization.helperServices.route.url}}"
209
- }, {
210
- id: "",
211
- title: translations.solutionItemExtent,
212
- value: "{{solutionItemExtent}}"
213
- }];
214
- return orgVars;
296
+ export function getSpatialReferenceInfo(
297
+ services: any[],
298
+ data: any
299
+ ): any {
300
+ const defaultServices: any = {};
301
+ services.forEach(service => {
302
+ defaultServices[service.name] = service.enabled;
303
+ });
304
+ const wkid = getProp(data, "params.wkid.default");
305
+ return {
306
+ enabled: wkid !== undefined && wkid !== "",
307
+ services: defaultServices,
308
+ spatialReference: wkid ? { wkid } : undefined
309
+ }
215
310
  }
216
311
 
217
312
  //--------------------------------------------------------------------------
@@ -22,8 +22,8 @@ import * as electionOutreach from '../../demos/data/election-outreach.json';
22
22
  describe("getInventoryItems", () => {
23
23
  it("can get inventory items", () => {
24
24
  const templates = electionOutreach.templates;
25
- expect(templates.length).toEqual(11)
25
+ expect(templates.length).toEqual(12)
26
26
  const actual = getInventoryItems(templates);
27
- expect(actual.length).toEqual(5);
27
+ expect(actual.length).toEqual(6);
28
28
  });
29
29
  });
@@ -0,0 +1,8 @@
1
+ Built 06/18/2024 11:11:44.38
2
+ solution-spatial-ref
3
+ commit 8861ea503aecdf435be85295ed9bae77b0383812
4
+ Merge: 891b799d 5864f250
5
+ Author: Mike Tschudi <mtschudi@esri.com>
6
+ Date: Tue Jun 18 11:04:22 2024 -0700
7
+
8
+ Merge branch 'develop' into solution-spatial-ref
@@ -1,5 +1,5 @@
1
1
  /** @license
2
- * Copyright 2022 Esri
2
+ * Copyright 2021 Esri
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -13,9 +13,13 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import { EventEmitter, VNode } from '../../stencil-public-runtime';
16
17
  import '@esri/calcite-components';
17
18
  import SolutionSpatialRef_T9n from '../../assets/t9n/solution-spatial-ref/resources.json';
18
- import { EventEmitter, VNode } from '../../stencil-public-runtime';
19
+ interface IFeatureServiceSpatialReferenceChange {
20
+ name: string;
21
+ enabled: boolean;
22
+ }
19
23
  export declare class SolutionSpatialRef {
20
24
  el: HTMLSolutionSpatialRefElement;
21
25
  /**
@@ -44,55 +48,46 @@ export declare class SolutionSpatialRef {
44
48
  * StencilJS: Called once just after the component is first connected to the DOM.
45
49
  */
46
50
  componentWillLoad(): Promise<void>;
47
- /**
48
- * Renders the component.
49
- */
50
51
  render(): VNode;
51
- /**
52
- * Current text that is being used to filter the list of spatial references.
53
- */
54
- protected _srSearchText: string;
55
52
  /**
56
53
  * Contains the translations for this component.
57
54
  * All UI strings should be defined here.
58
55
  */
59
56
  protected _translations: typeof SolutionSpatialRef_T9n;
60
- featureServiceSpatialReferenceChange: EventEmitter<{
61
- name: string;
62
- enabled: boolean;
63
- }>;
57
+ featureServiceSpatialReferenceChange: EventEmitter<IFeatureServiceSpatialReferenceChange>;
64
58
  lockedSpatialReferenceChange: EventEmitter<{
65
59
  locked: boolean;
66
60
  }>;
61
+ solutionStoreHasChanges(): void;
67
62
  /**
68
63
  * Saves changes to the embedded spatial reference value
69
64
  */
70
65
  spatialReferenceChange(event: CustomEvent): void;
71
66
  /**
72
- * Toggles the ability to set the default spatial reference.
67
+ * Create a switch control for each of the services
68
+ *
69
+ * @param services List of feature services
70
+ * @returns a node to control each feature service
73
71
  */
74
- protected _updateLocked(event: any): void;
72
+ private _getFeatureServices;
75
73
  /**
76
74
  * Enable spatial reference variable for all feature services.
77
75
  *
78
76
  * @param services list of service names
79
77
  */
80
- protected _setFeatureServiceDefaults(services: string[]): void;
78
+ private _setFeatureServiceDefaults;
81
79
  /**
82
- * Create a switch control for each of the services
83
- *
84
- * @param services List of feature services
85
- * @returns a node to control each feature service
80
+ * Updates the enabled/disabled state of the service in spatialReferenceInfo.
86
81
  */
87
- protected _getFeatureServices(services: string[]): VNode;
82
+ private _updateEnabledServices;
88
83
  /**
89
- * Updates the enabled and spatialReference prop in spatialReferenceInfo.
84
+ * Toggles the ability to set the default spatial reference.
90
85
  */
91
- protected _updateStore(): void;
86
+ private _updateLocked;
92
87
  /**
93
- * Updates the enabled/disabled state of the service in spatialReferenceInfo.
88
+ * Updates the enabled and spatialReference prop in spatialReferenceInfo.
94
89
  */
95
- protected _updateEnabledServices(event: any, name: string): void;
90
+ private _updateStore;
96
91
  /**
97
92
  * Fetches the component's translations
98
93
  *
@@ -100,3 +95,4 @@ export declare class SolutionSpatialRef {
100
95
  */
101
96
  protected _getTranslations(): Promise<void>;
102
97
  }
98
+ export {};
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  /**
17
- * The json-editor componet leverages a stencil/store to manage data.
17
+ * The json-editor component leverages a stencil/store to manage data.
18
18
  * If a component uses the json-editor but does not have logic to hydrate the store this component can be used.
19
19
  * It will create and hydrate the store based on the value provided.
20
20
  *
@@ -24,7 +24,7 @@
24
24
  *
25
25
  */
26
26
  import { EventEmitter, VNode } from '../../stencil-public-runtime';
27
- import { /*getItemDataAsJson,*/ UserSession } from '@esri/solution-common';
27
+ import { UserSession } from '@esri/solution-common';
28
28
  export declare class StoreManager {
29
29
  el: HTMLStoreManagerElement;
30
30
  /**
@@ -49,7 +49,7 @@ export declare class StoreManager {
49
49
  protected _valueObserver: any;
50
50
  /**
51
51
  * Initialize the observer that will monitor and respond to changes in the value.
52
- * When we get a new value we are dealinmg with a new solution and need to fetch the items data and load the state.
52
+ * When we get a new value we are dealing with a new solution and need to fetch the item's data and load the state.
53
53
  */
54
54
  protected _initValueObserver(): void;
55
55
  }
@@ -1425,6 +1425,10 @@ export namespace Components {
1425
1425
  * The wkid that will be used as the default when no user selection has been made.
1426
1426
  */
1427
1427
  "defaultWkid": number;
1428
+ /**
1429
+ * Indicates if the control has been enabled. The first time Spatial Reference has been enabled it should enable all feature services.
1430
+ */
1431
+ "loaded": boolean;
1428
1432
  /**
1429
1433
  * When true, all but the main switch are disabled to prevent interaction.
1430
1434
  */
@@ -2229,7 +2233,7 @@ declare global {
2229
2233
  new (): HTMLSolutionResourceItemElement;
2230
2234
  };
2231
2235
  interface HTMLSolutionSpatialRefElementEventMap {
2232
- "featureServiceSpatialReferenceChange": { name: string, enabled: boolean };
2236
+ "featureServiceSpatialReferenceChange": IFeatureServiceSpatialReferenceChange;
2233
2237
  "lockedSpatialReferenceChange": { locked: boolean };
2234
2238
  }
2235
2239
  interface HTMLSolutionSpatialRefElement extends Components.SolutionSpatialRef, HTMLStencilElement {
@@ -3825,11 +3829,15 @@ declare namespace LocalJSX {
3825
3829
  * The wkid that will be used as the default when no user selection has been made.
3826
3830
  */
3827
3831
  "defaultWkid"?: number;
3832
+ /**
3833
+ * Indicates if the control has been enabled. The first time Spatial Reference has been enabled it should enable all feature services.
3834
+ */
3835
+ "loaded"?: boolean;
3828
3836
  /**
3829
3837
  * When true, all but the main switch are disabled to prevent interaction.
3830
3838
  */
3831
3839
  "locked"?: boolean;
3832
- "onFeatureServiceSpatialReferenceChange"?: (event: SolutionSpatialRefCustomEvent<{ name: string, enabled: boolean }>) => void;
3840
+ "onFeatureServiceSpatialReferenceChange"?: (event: SolutionSpatialRefCustomEvent<IFeatureServiceSpatialReferenceChange>) => void;
3833
3841
  "onLockedSpatialReferenceChange"?: (event: SolutionSpatialRefCustomEvent<{ locked: boolean }>) => void;
3834
3842
  /**
3835
3843
  * List of service names the spatial reference should apply to
@@ -13,8 +13,18 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { IInventoryItem, IOrganizationVariableItem, IVariableItem } from '../utils/interfaces';
16
+ import { IInventoryItem, IOrganizationVariableItem, ISolutionModels, IVariableItem } from '../utils/interfaces';
17
17
  import { IItemTemplate } from '@esri/solution-common';
18
+ /**
19
+ * Gets a list of Feature Services that are not views along with an enabled property that indicates
20
+ * if the service currently uses a spatial reference variable.
21
+ *
22
+ * @param templates a list of item templates from the solution
23
+ *
24
+ * @returns a list of feature service names and an enabled property to indicate
25
+ * if they currently use a spatial reference variable.
26
+ */
27
+ export declare function getFeatureServices(templates: IItemTemplate[]): any[];
18
28
  /**
19
29
  * Sort the solution items
20
30
  *
@@ -32,14 +42,14 @@ export declare function getInventoryItems(templates: IItemTemplate[]): IInventor
32
42
  */
33
43
  export declare function getItemHierarchy(templates: IItemTemplate[]): any[];
34
44
  /**
35
- * Explore the solution item templates for variables we will allow users to insert at runtime
45
+ * Create and store text models for the editor as well as other key values such as the original values
46
+ * that can be used to clear any temp edits.
36
47
  *
37
48
  * @param templates a list of item templates from the solution
38
- * @param translations nls translation object
39
49
  *
40
- * @returns a list of variables from the solution item templates
50
+ * @returns a list of models and key values
41
51
  */
42
- export declare function getSolutionVariables(templates: any[], translations: any): IVariableItem[];
52
+ export declare function getModels(templates: any[]): ISolutionModels;
43
53
  /**
44
54
  * Set key organization variables we will allow users to insert at runtime
45
55
  *
@@ -48,3 +58,23 @@ export declare function getSolutionVariables(templates: any[], translations: any
48
58
  * @returns a list of variables for the organization
49
59
  */
50
60
  export declare function getOrganizationVariables(translations: any): IOrganizationVariableItem[];
61
+ /**
62
+ * Explore the solution item templates for variables we will allow users to insert at runtime
63
+ *
64
+ * @param templates a list of item templates from the solution
65
+ * @param translations nls translation object
66
+ *
67
+ * @returns a list of variables from the solution item templates
68
+ */
69
+ export declare function getSolutionVariables(templates: any[], translations: any): IVariableItem[];
70
+ /**
71
+ * Stores basic spatial reference information that is used to determine if a custom spatial reference parameter will
72
+ * be exposed while deploying this solution and if so what feature services will support it and what will the default wkid be
73
+ *
74
+ * @param services a list of objects with service name and enabled property (indicates if they currently use a spatial reference var)
75
+ * @param data the data object of a solution item
76
+ *
77
+ * @returns an object that stores if a custom spatial reference parameter is enabled/disabled,
78
+ * a list of services and if they are enabled/disabled, and the default wkid
79
+ */
80
+ export declare function getSpatialReferenceInfo(services: any[], data: any): any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esri/solutions-components",
3
- "version": "0.8.39",
3
+ "version": "0.8.41",
4
4
  "description": "Web Components for Esri's Solutions Applications",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -23,7 +23,7 @@
23
23
  "lint:ts": "eslint --ext .ts,.tsx src/components src/utils",
24
24
  "lint:ts:fix": "eslint --ext .ts,.tsx --fix src/components src/utils",
25
25
  "lint:ts:prettier": "prettier --write \"**/*.ts?(x)\"",
26
- "release:publish": "npm publish --access public && ts-node ./support/releaseToGitHub.ts",
26
+ "release:publish": "npm publish --access public && ts-node --esm ./support/releaseToGitHub.ts",
27
27
  "test": "stencil test --spec --e2e --detectOpenHandles --coverage --collectCoverageFrom=src/utils/*.ts",
28
28
  "test:clean": "npm run clean:src && npm run lint:ts:fix && stencil test --spec --e2e --detectOpenHandles",
29
29
  "test.watch": "stencil test --spec --e2e --watchAll",
@@ -36,6 +36,8 @@
36
36
  "@babel/preset-env": "^7.24.7",
37
37
  "@babel/preset-typescript": "^7.24.7",
38
38
  "@babel/types": "^7.24.7",
39
+ "@esri/arcgis-rest-service-admin": "^3.7.0",
40
+ "@esri/calcite-design-tokens": "^2.2.0",
39
41
  "@esri/eslint-plugin-calcite-components": "^1.2.0",
40
42
  "@esri/solution-common": "5.3.7",
41
43
  "@esri/telemetry": "8.0.0",
@@ -47,11 +49,12 @@
47
49
  "@stencil/store": "^2.0.16",
48
50
  "@types/jest": "^29.5.12",
49
51
  "@types/node": "^20.14.2",
50
- "@typescript-eslint/eslint-plugin": "^7.13.0",
52
+ "@typescript-eslint/eslint-plugin": "^7.13.1",
51
53
  "@typescript-eslint/parser": "^7.13.0",
52
54
  "arcgis-js-api": "^4.29.10",
53
55
  "autoprefixer": "^10.4.19",
54
56
  "babel-jest": "^29.7.0",
57
+ "braces": "^3.0.3",
55
58
  "dotenv": "^16.4.5",
56
59
  "eslint": "^8.56.0",
57
60
  "eslint-config-prettier": "9.1.0",
@@ -81,9 +84,7 @@
81
84
  "@esri/arcgis-rest-feature-layer": "^3.4.2",
82
85
  "@esri/arcgis-rest-portal": "^3.4.2",
83
86
  "@esri/arcgis-rest-request": "^3.4.2",
84
- "@esri/arcgis-rest-service-admin": "^3.4.2",
85
87
  "@esri/calcite-components": "2.8.2",
86
- "@esri/calcite-design-tokens": "2.1.1",
87
88
  "@esri/hub-common": "^12.37.1",
88
89
  "@esri/hub-initiatives": "^12.4.1",
89
90
  "@esri/hub-sites": "^12.6.0",