@esri/solutions-components 0.8.39 → 0.8.41

Sign up to get free protection for your applications and to get access to all the features.
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",