@esri/solutions-components 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (530) hide show
  1. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +16 -6
  2. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js.map +1 -1
  3. package/dist/cjs/solution-configuration.cjs.entry.js +10 -3
  4. package/dist/cjs/solution-configuration.cjs.entry.js.map +1 -1
  5. package/dist/cjs/solution-contents_3.cjs.entry.js +3 -1
  6. package/dist/cjs/solution-contents_3.cjs.entry.js.map +1 -1
  7. package/dist/cjs/{solution-store-e2fc11ac.js → solution-store-893499a5.js} +3 -1
  8. package/dist/cjs/solution-store-893499a5.js.map +1 -0
  9. package/dist/collection/components/solution-configuration/solution-configuration.js +9 -2
  10. package/dist/collection/components/solution-configuration/solution-configuration.js.map +1 -1
  11. package/dist/collection/components/solution-item/solution-item.js +2 -0
  12. package/dist/collection/components/solution-item/solution-item.js.map +1 -1
  13. package/dist/collection/components/solution-item-details/solution-item-details.js +15 -5
  14. package/dist/collection/components/solution-item-details/solution-item-details.js.map +1 -1
  15. package/dist/collection/utils/solution-store.js +2 -0
  16. package/dist/collection/utils/solution-store.js.map +1 -1
  17. package/dist/collection/utils/solution-store.ts +2 -0
  18. package/dist/esm/calcite-shell-panel_14.entry.js +16 -6
  19. package/dist/esm/calcite-shell-panel_14.entry.js.map +1 -1
  20. package/dist/esm/solution-configuration.entry.js +10 -3
  21. package/dist/esm/solution-configuration.entry.js.map +1 -1
  22. package/dist/esm/solution-contents_3.entry.js +3 -1
  23. package/dist/esm/solution-contents_3.entry.js.map +1 -1
  24. package/dist/esm/{solution-store-b3c65467.js → solution-store-0c58c852.js} +3 -1
  25. package/dist/esm/solution-store-0c58c852.js.map +1 -0
  26. package/dist/solutions-components/{p-b25f6ebe.js → p-659edb14.js} +3 -1
  27. package/dist/solutions-components/p-659edb14.js.map +1 -0
  28. package/dist/solutions-components/{p-638738f2.entry.js → p-77c75f3a.entry.js} +4 -2
  29. package/dist/solutions-components/p-77c75f3a.entry.js.map +1 -0
  30. package/dist/solutions-components/{p-7e8985f2.entry.js → p-90629c1d.entry.js} +11 -4
  31. package/dist/solutions-components/p-90629c1d.entry.js.map +1 -0
  32. package/dist/solutions-components/{p-542189bc.entry.js → p-984cb687.entry.js} +17 -7
  33. package/dist/solutions-components/p-984cb687.entry.js.map +1 -0
  34. package/dist/solutions-components/solutions-components.esm.js +1 -1
  35. package/dist/solutions-components/utils/solution-store.ts +2 -0
  36. package/dist/solutions-components_commit.txt +9 -6
  37. package/dist/types/components/solution-item-details/solution-item-details.d.ts +2 -1
  38. package/package.json +1 -1
  39. package/dist/cjs/solution-store-e2fc11ac.js.map +0 -1
  40. package/dist/components/ExpandToggle.js +0 -112
  41. package/dist/components/ExpandToggle.js.map +0 -1
  42. package/dist/components/Heading.js +0 -24
  43. package/dist/components/Heading.js.map +0 -1
  44. package/dist/components/_commonjsHelpers.js +0 -24
  45. package/dist/components/_commonjsHelpers.js.map +0 -1
  46. package/dist/components/action-bar.js +0 -278
  47. package/dist/components/action-bar.js.map +0 -1
  48. package/dist/components/action-group.js +0 -151
  49. package/dist/components/action-group.js.map +0 -1
  50. package/dist/components/action-menu.js +0 -358
  51. package/dist/components/action-menu.js.map +0 -1
  52. package/dist/components/action.js +0 -216
  53. package/dist/components/action.js.map +0 -1
  54. package/dist/components/array.js +0 -17
  55. package/dist/components/array.js.map +0 -1
  56. package/dist/components/buffer-tools.d.ts +0 -11
  57. package/dist/components/buffer-tools.js +0 -13
  58. package/dist/components/buffer-tools.js.map +0 -1
  59. package/dist/components/buffer-tools2.js +0 -256
  60. package/dist/components/buffer-tools2.js.map +0 -1
  61. package/dist/components/button.js +0 -265
  62. package/dist/components/button.js.map +0 -1
  63. package/dist/components/calcite-accordion-item.js +0 -246
  64. package/dist/components/calcite-accordion-item.js.map +0 -1
  65. package/dist/components/calcite-accordion.js +0 -182
  66. package/dist/components/calcite-accordion.js.map +0 -1
  67. package/dist/components/calcite-action-bar.js +0 -13
  68. package/dist/components/calcite-action-bar.js.map +0 -1
  69. package/dist/components/calcite-action-group.js +0 -13
  70. package/dist/components/calcite-action-group.js.map +0 -1
  71. package/dist/components/calcite-action-menu.js +0 -13
  72. package/dist/components/calcite-action-menu.js.map +0 -1
  73. package/dist/components/calcite-action-pad.js +0 -199
  74. package/dist/components/calcite-action-pad.js.map +0 -1
  75. package/dist/components/calcite-action.js +0 -13
  76. package/dist/components/calcite-action.js.map +0 -1
  77. package/dist/components/calcite-alert.js +0 -299
  78. package/dist/components/calcite-alert.js.map +0 -1
  79. package/dist/components/calcite-avatar.js +0 -184
  80. package/dist/components/calcite-avatar.js.map +0 -1
  81. package/dist/components/calcite-block-section.js +0 -157
  82. package/dist/components/calcite-block-section.js.map +0 -1
  83. package/dist/components/calcite-block.js +0 -277
  84. package/dist/components/calcite-block.js.map +0 -1
  85. package/dist/components/calcite-button.js +0 -13
  86. package/dist/components/calcite-button.js.map +0 -1
  87. package/dist/components/calcite-card.js +0 -189
  88. package/dist/components/calcite-card.js.map +0 -1
  89. package/dist/components/calcite-checkbox.js +0 -13
  90. package/dist/components/calcite-checkbox.js.map +0 -1
  91. package/dist/components/calcite-chip.js +0 -13
  92. package/dist/components/calcite-chip.js.map +0 -1
  93. package/dist/components/calcite-color-picker-hex-input.js +0 -13
  94. package/dist/components/calcite-color-picker-hex-input.js.map +0 -1
  95. package/dist/components/calcite-color-picker-swatch.js +0 -13
  96. package/dist/components/calcite-color-picker-swatch.js.map +0 -1
  97. package/dist/components/calcite-color-picker.js +0 -1038
  98. package/dist/components/calcite-color-picker.js.map +0 -1
  99. package/dist/components/calcite-combobox-item-group.js +0 -77
  100. package/dist/components/calcite-combobox-item-group.js.map +0 -1
  101. package/dist/components/calcite-combobox-item.js +0 -13
  102. package/dist/components/calcite-combobox-item.js.map +0 -1
  103. package/dist/components/calcite-combobox.js +0 -13
  104. package/dist/components/calcite-combobox.js.map +0 -1
  105. package/dist/components/calcite-date-picker-day.js +0 -13
  106. package/dist/components/calcite-date-picker-day.js.map +0 -1
  107. package/dist/components/calcite-date-picker-month-header.js +0 -13
  108. package/dist/components/calcite-date-picker-month-header.js.map +0 -1
  109. package/dist/components/calcite-date-picker-month.js +0 -13
  110. package/dist/components/calcite-date-picker-month.js.map +0 -1
  111. package/dist/components/calcite-date-picker.js +0 -13
  112. package/dist/components/calcite-date-picker.js.map +0 -1
  113. package/dist/components/calcite-dropdown-group.js +0 -101
  114. package/dist/components/calcite-dropdown-group.js.map +0 -1
  115. package/dist/components/calcite-dropdown-item.js +0 -237
  116. package/dist/components/calcite-dropdown-item.js.map +0 -1
  117. package/dist/components/calcite-dropdown.js +0 -13
  118. package/dist/components/calcite-dropdown.js.map +0 -1
  119. package/dist/components/calcite-fab.js +0 -146
  120. package/dist/components/calcite-fab.js.map +0 -1
  121. package/dist/components/calcite-filter.js +0 -197
  122. package/dist/components/calcite-filter.js.map +0 -1
  123. package/dist/components/calcite-flow-item.js +0 -245
  124. package/dist/components/calcite-flow-item.js.map +0 -1
  125. package/dist/components/calcite-flow.js +0 -149
  126. package/dist/components/calcite-flow.js.map +0 -1
  127. package/dist/components/calcite-graph.js +0 -13
  128. package/dist/components/calcite-graph.js.map +0 -1
  129. package/dist/components/calcite-handle.js +0 -13
  130. package/dist/components/calcite-handle.js.map +0 -1
  131. package/dist/components/calcite-icon.js +0 -13
  132. package/dist/components/calcite-icon.js.map +0 -1
  133. package/dist/components/calcite-inline-editable.js +0 -296
  134. package/dist/components/calcite-inline-editable.js.map +0 -1
  135. package/dist/components/calcite-input-date-picker.js +0 -715
  136. package/dist/components/calcite-input-date-picker.js.map +0 -1
  137. package/dist/components/calcite-input-message.js +0 -13
  138. package/dist/components/calcite-input-message.js.map +0 -1
  139. package/dist/components/calcite-input-number.js +0 -639
  140. package/dist/components/calcite-input-number.js.map +0 -1
  141. package/dist/components/calcite-input-text.js +0 -402
  142. package/dist/components/calcite-input-text.js.map +0 -1
  143. package/dist/components/calcite-input-time-picker.js +0 -436
  144. package/dist/components/calcite-input-time-picker.js.map +0 -1
  145. package/dist/components/calcite-input.js +0 -13
  146. package/dist/components/calcite-input.js.map +0 -1
  147. package/dist/components/calcite-label.js +0 -13
  148. package/dist/components/calcite-label.js.map +0 -1
  149. package/dist/components/calcite-link.js +0 -13
  150. package/dist/components/calcite-link.js.map +0 -1
  151. package/dist/components/calcite-list-item-group.js +0 -67
  152. package/dist/components/calcite-list-item-group.js.map +0 -1
  153. package/dist/components/calcite-list-item.js +0 -13
  154. package/dist/components/calcite-list-item.js.map +0 -1
  155. package/dist/components/calcite-list.js +0 -13
  156. package/dist/components/calcite-list.js.map +0 -1
  157. package/dist/components/calcite-loader.js +0 -13
  158. package/dist/components/calcite-loader.js.map +0 -1
  159. package/dist/components/calcite-modal.js +0 -500
  160. package/dist/components/calcite-modal.js.map +0 -1
  161. package/dist/components/calcite-notice.js +0 -13
  162. package/dist/components/calcite-notice.js.map +0 -1
  163. package/dist/components/calcite-option-group.js +0 -66
  164. package/dist/components/calcite-option-group.js.map +0 -1
  165. package/dist/components/calcite-option.js +0 -13
  166. package/dist/components/calcite-option.js.map +0 -1
  167. package/dist/components/calcite-pagination.js +0 -260
  168. package/dist/components/calcite-pagination.js.map +0 -1
  169. package/dist/components/calcite-panel.js +0 -13
  170. package/dist/components/calcite-panel.js.map +0 -1
  171. package/dist/components/calcite-pick-list-group.js +0 -76
  172. package/dist/components/calcite-pick-list-group.js.map +0 -1
  173. package/dist/components/calcite-pick-list-item.js +0 -13
  174. package/dist/components/calcite-pick-list-item.js.map +0 -1
  175. package/dist/components/calcite-pick-list.js +0 -175
  176. package/dist/components/calcite-pick-list.js.map +0 -1
  177. package/dist/components/calcite-popover-manager.js +0 -96
  178. package/dist/components/calcite-popover-manager.js.map +0 -1
  179. package/dist/components/calcite-popover.js +0 -13
  180. package/dist/components/calcite-popover.js.map +0 -1
  181. package/dist/components/calcite-progress.js +0 -13
  182. package/dist/components/calcite-progress.js.map +0 -1
  183. package/dist/components/calcite-radio-button-group.js +0 -134
  184. package/dist/components/calcite-radio-button-group.js.map +0 -1
  185. package/dist/components/calcite-radio-button.js +0 -312
  186. package/dist/components/calcite-radio-button.js.map +0 -1
  187. package/dist/components/calcite-radio-group-item.js +0 -13
  188. package/dist/components/calcite-radio-group-item.js.map +0 -1
  189. package/dist/components/calcite-radio-group.js +0 -13
  190. package/dist/components/calcite-radio-group.js.map +0 -1
  191. package/dist/components/calcite-rating.js +0 -203
  192. package/dist/components/calcite-rating.js.map +0 -1
  193. package/dist/components/calcite-scrim.js +0 -13
  194. package/dist/components/calcite-scrim.js.map +0 -1
  195. package/dist/components/calcite-select.js +0 -13
  196. package/dist/components/calcite-select.js.map +0 -1
  197. package/dist/components/calcite-shell-center-row.js +0 -102
  198. package/dist/components/calcite-shell-center-row.js.map +0 -1
  199. package/dist/components/calcite-shell-panel.js +0 -13
  200. package/dist/components/calcite-shell-panel.js.map +0 -1
  201. package/dist/components/calcite-shell.js +0 -13
  202. package/dist/components/calcite-shell.js.map +0 -1
  203. package/dist/components/calcite-slider.js +0 -13
  204. package/dist/components/calcite-slider.js.map +0 -1
  205. package/dist/components/calcite-sortable-list.js +0 -204
  206. package/dist/components/calcite-sortable-list.js.map +0 -1
  207. package/dist/components/calcite-split-button.js +0 -170
  208. package/dist/components/calcite-split-button.js.map +0 -1
  209. package/dist/components/calcite-stepper-item.js +0 -273
  210. package/dist/components/calcite-stepper-item.js.map +0 -1
  211. package/dist/components/calcite-stepper.js +0 -258
  212. package/dist/components/calcite-stepper.js.map +0 -1
  213. package/dist/components/calcite-switch.js +0 -13
  214. package/dist/components/calcite-switch.js.map +0 -1
  215. package/dist/components/calcite-tab-nav.js +0 -13
  216. package/dist/components/calcite-tab-nav.js.map +0 -1
  217. package/dist/components/calcite-tab-title.js +0 -13
  218. package/dist/components/calcite-tab-title.js.map +0 -1
  219. package/dist/components/calcite-tab.js +0 -13
  220. package/dist/components/calcite-tab.js.map +0 -1
  221. package/dist/components/calcite-tabs.js +0 -13
  222. package/dist/components/calcite-tabs.js.map +0 -1
  223. package/dist/components/calcite-tile-select-group.js +0 -67
  224. package/dist/components/calcite-tile-select-group.js.map +0 -1
  225. package/dist/components/calcite-tile-select.js +0 -268
  226. package/dist/components/calcite-tile-select.js.map +0 -1
  227. package/dist/components/calcite-tile.js +0 -13
  228. package/dist/components/calcite-tile.js.map +0 -1
  229. package/dist/components/calcite-time-picker.js +0 -13
  230. package/dist/components/calcite-time-picker.js.map +0 -1
  231. package/dist/components/calcite-tip-group.js +0 -43
  232. package/dist/components/calcite-tip-group.js.map +0 -1
  233. package/dist/components/calcite-tip-manager.js +0 -225
  234. package/dist/components/calcite-tip-manager.js.map +0 -1
  235. package/dist/components/calcite-tip.js +0 -164
  236. package/dist/components/calcite-tip.js.map +0 -1
  237. package/dist/components/calcite-tooltip-manager.js +0 -59
  238. package/dist/components/calcite-tooltip-manager.js.map +0 -1
  239. package/dist/components/calcite-tooltip.js +0 -13
  240. package/dist/components/calcite-tooltip.js.map +0 -1
  241. package/dist/components/calcite-tree-item.js +0 -13
  242. package/dist/components/calcite-tree-item.js.map +0 -1
  243. package/dist/components/calcite-tree.js +0 -13
  244. package/dist/components/calcite-tree.js.map +0 -1
  245. package/dist/components/calcite-value-list-item.js +0 -13
  246. package/dist/components/calcite-value-list-item.js.map +0 -1
  247. package/dist/components/calcite-value-list.js +0 -13
  248. package/dist/components/calcite-value-list.js.map +0 -1
  249. package/dist/components/check-list.d.ts +0 -11
  250. package/dist/components/check-list.js +0 -13
  251. package/dist/components/check-list.js.map +0 -1
  252. package/dist/components/check-list2.js +0 -128
  253. package/dist/components/check-list2.js.map +0 -1
  254. package/dist/components/checkbox.js +0 -167
  255. package/dist/components/checkbox.js.map +0 -1
  256. package/dist/components/chip.js +0 -172
  257. package/dist/components/chip.js.map +0 -1
  258. package/dist/components/color-picker-hex-input.js +0 -365
  259. package/dist/components/color-picker-hex-input.js.map +0 -1
  260. package/dist/components/color-picker-swatch.js +0 -2036
  261. package/dist/components/color-picker-swatch.js.map +0 -1
  262. package/dist/components/combobox-item.js +0 -184
  263. package/dist/components/combobox-item.js.map +0 -1
  264. package/dist/components/combobox.js +0 -914
  265. package/dist/components/combobox.js.map +0 -1
  266. package/dist/components/conditionalSlot.js +0 -52
  267. package/dist/components/conditionalSlot.js.map +0 -1
  268. package/dist/components/config-buffer-tools.d.ts +0 -11
  269. package/dist/components/config-buffer-tools.js +0 -185
  270. package/dist/components/config-buffer-tools.js.map +0 -1
  271. package/dist/components/config-draw-tools.d.ts +0 -11
  272. package/dist/components/config-draw-tools.js +0 -124
  273. package/dist/components/config-draw-tools.js.map +0 -1
  274. package/dist/components/config-layer-picker.d.ts +0 -11
  275. package/dist/components/config-layer-picker.js +0 -148
  276. package/dist/components/config-layer-picker.js.map +0 -1
  277. package/dist/components/config-pdf-download.d.ts +0 -11
  278. package/dist/components/config-pdf-download.js +0 -157
  279. package/dist/components/config-pdf-download.js.map +0 -1
  280. package/dist/components/date-picker-day.js +0 -113
  281. package/dist/components/date-picker-day.js.map +0 -1
  282. package/dist/components/date-picker-month-header.js +0 -226
  283. package/dist/components/date-picker-month-header.js.map +0 -1
  284. package/dist/components/date-picker-month.js +0 -346
  285. package/dist/components/date-picker-month.js.map +0 -1
  286. package/dist/components/date-picker.js +0 -577
  287. package/dist/components/date-picker.js.map +0 -1
  288. package/dist/components/date.js +0 -182
  289. package/dist/components/date.js.map +0 -1
  290. package/dist/components/debounce.js +0 -489
  291. package/dist/components/debounce.js.map +0 -1
  292. package/dist/components/dom.js +0 -233
  293. package/dist/components/dom.js.map +0 -1
  294. package/dist/components/dropdown.js +0 -507
  295. package/dist/components/dropdown.js.map +0 -1
  296. package/dist/components/filter.js +0 -765
  297. package/dist/components/filter.js.map +0 -1
  298. package/dist/components/floating-ui.js +0 -1787
  299. package/dist/components/floating-ui.js.map +0 -1
  300. package/dist/components/form.js +0 -230
  301. package/dist/components/form.js.map +0 -1
  302. package/dist/components/graph.js +0 -256
  303. package/dist/components/graph.js.map +0 -1
  304. package/dist/components/guid.js +0 -26
  305. package/dist/components/guid.js.map +0 -1
  306. package/dist/components/handle.js +0 -121
  307. package/dist/components/handle.js.map +0 -1
  308. package/dist/components/icon.js +0 -204
  309. package/dist/components/icon.js.map +0 -1
  310. package/dist/components/index.d.ts +0 -48
  311. package/dist/components/index.js +0 -190
  312. package/dist/components/index.js.map +0 -1
  313. package/dist/components/index2.js +0 -201
  314. package/dist/components/index2.js.map +0 -1
  315. package/dist/components/input-message.js +0 -103
  316. package/dist/components/input-message.js.map +0 -1
  317. package/dist/components/input.js +0 -742
  318. package/dist/components/input.js.map +0 -1
  319. package/dist/components/interactive.js +0 -53
  320. package/dist/components/interactive.js.map +0 -1
  321. package/dist/components/interfaces.js +0 -21
  322. package/dist/components/interfaces.js.map +0 -1
  323. package/dist/components/interfaces2.js +0 -23
  324. package/dist/components/interfaces2.js.map +0 -1
  325. package/dist/components/interfaces3.js +0 -72
  326. package/dist/components/interfaces3.js.map +0 -1
  327. package/dist/components/json-editor.d.ts +0 -11
  328. package/dist/components/json-editor.js +0 -13
  329. package/dist/components/json-editor.js.map +0 -1
  330. package/dist/components/json-editor2.js +0 -443
  331. package/dist/components/json-editor2.js.map +0 -1
  332. package/dist/components/key.js +0 -18
  333. package/dist/components/key.js.map +0 -1
  334. package/dist/components/label.js +0 -108
  335. package/dist/components/label.js.map +0 -1
  336. package/dist/components/label2.js +0 -133
  337. package/dist/components/label2.js.map +0 -1
  338. package/dist/components/labelFormats.js +0 -212
  339. package/dist/components/labelFormats.js.map +0 -1
  340. package/dist/components/link.js +0 -125
  341. package/dist/components/link.js.map +0 -1
  342. package/dist/components/list-item.js +0 -151
  343. package/dist/components/list-item.js.map +0 -1
  344. package/dist/components/list.js +0 -85
  345. package/dist/components/list.js.map +0 -1
  346. package/dist/components/loadModules.js +0 -30
  347. package/dist/components/loadModules.js.map +0 -1
  348. package/dist/components/loader.js +0 -118
  349. package/dist/components/loader.js.map +0 -1
  350. package/dist/components/locale.js +0 -414
  351. package/dist/components/locale.js.map +0 -1
  352. package/dist/components/locale2.js +0 -415
  353. package/dist/components/locale2.js.map +0 -1
  354. package/dist/components/map-draw-tools.d.ts +0 -11
  355. package/dist/components/map-draw-tools.js +0 -13
  356. package/dist/components/map-draw-tools.js.map +0 -1
  357. package/dist/components/map-draw-tools2.js +0 -230
  358. package/dist/components/map-draw-tools2.js.map +0 -1
  359. package/dist/components/map-layer-picker.d.ts +0 -11
  360. package/dist/components/map-layer-picker.js +0 -13
  361. package/dist/components/map-layer-picker.js.map +0 -1
  362. package/dist/components/map-layer-picker2.js +0 -190
  363. package/dist/components/map-layer-picker2.js.map +0 -1
  364. package/dist/components/map-search.d.ts +0 -11
  365. package/dist/components/map-search.js +0 -157
  366. package/dist/components/map-search.js.map +0 -1
  367. package/dist/components/map-select-tools.d.ts +0 -11
  368. package/dist/components/map-select-tools.js +0 -13
  369. package/dist/components/map-select-tools.js.map +0 -1
  370. package/dist/components/map-select-tools2.js +0 -555
  371. package/dist/components/map-select-tools2.js.map +0 -1
  372. package/dist/components/mapViewUtils.js +0 -131
  373. package/dist/components/mapViewUtils.js.map +0 -1
  374. package/dist/components/math.js +0 -26
  375. package/dist/components/math.js.map +0 -1
  376. package/dist/components/nonChromiumPlatformUtils.js +0 -505
  377. package/dist/components/nonChromiumPlatformUtils.js.map +0 -1
  378. package/dist/components/notice.js +0 -194
  379. package/dist/components/notice.js.map +0 -1
  380. package/dist/components/observers.js +0 -58
  381. package/dist/components/observers.js.map +0 -1
  382. package/dist/components/openCloseComponent.js +0 -58
  383. package/dist/components/openCloseComponent.js.map +0 -1
  384. package/dist/components/option.js +0 -111
  385. package/dist/components/option.js.map +0 -1
  386. package/dist/components/panel.js +0 -461
  387. package/dist/components/panel.js.map +0 -1
  388. package/dist/components/pdf-download.d.ts +0 -11
  389. package/dist/components/pdf-download.js +0 -13
  390. package/dist/components/pdf-download.js.map +0 -1
  391. package/dist/components/pdf-download2.js +0 -243
  392. package/dist/components/pdf-download2.js.map +0 -1
  393. package/dist/components/pick-list-item.js +0 -257
  394. package/dist/components/pick-list-item.js.map +0 -1
  395. package/dist/components/popover.js +0 -502
  396. package/dist/components/popover.js.map +0 -1
  397. package/dist/components/progress.js +0 -62
  398. package/dist/components/progress.js.map +0 -1
  399. package/dist/components/public-notification.d.ts +0 -11
  400. package/dist/components/public-notification.js +0 -784
  401. package/dist/components/public-notification.js.map +0 -1
  402. package/dist/components/publicNotificationStore.js +0 -40
  403. package/dist/components/publicNotificationStore.js.map +0 -1
  404. package/dist/components/queryUtils.js +0 -163
  405. package/dist/components/queryUtils.js.map +0 -1
  406. package/dist/components/radio-group-item.js +0 -103
  407. package/dist/components/radio-group-item.js.map +0 -1
  408. package/dist/components/radio-group.js +0 -237
  409. package/dist/components/radio-group.js.map +0 -1
  410. package/dist/components/refine-selection-tools.d.ts +0 -11
  411. package/dist/components/refine-selection-tools.js +0 -13
  412. package/dist/components/refine-selection-tools.js.map +0 -1
  413. package/dist/components/refine-selection-tools2.js +0 -500
  414. package/dist/components/refine-selection-tools2.js.map +0 -1
  415. package/dist/components/refine-selection.d.ts +0 -11
  416. package/dist/components/refine-selection.js +0 -13
  417. package/dist/components/refine-selection.js.map +0 -1
  418. package/dist/components/refine-selection2.js +0 -369
  419. package/dist/components/refine-selection2.js.map +0 -1
  420. package/dist/components/resources.js +0 -26
  421. package/dist/components/resources.js.map +0 -1
  422. package/dist/components/resources2.js +0 -23
  423. package/dist/components/resources2.js.map +0 -1
  424. package/dist/components/resources3.js +0 -40
  425. package/dist/components/resources3.js.map +0 -1
  426. package/dist/components/scrim.js +0 -85
  427. package/dist/components/scrim.js.map +0 -1
  428. package/dist/components/select.js +0 -261
  429. package/dist/components/select.js.map +0 -1
  430. package/dist/components/shared-list-render.js +0 -321
  431. package/dist/components/shared-list-render.js.map +0 -1
  432. package/dist/components/shell-panel.js +0 -283
  433. package/dist/components/shell-panel.js.map +0 -1
  434. package/dist/components/shell.js +0 -123
  435. package/dist/components/shell.js.map +0 -1
  436. package/dist/components/slider.js +0 -898
  437. package/dist/components/slider.js.map +0 -1
  438. package/dist/components/solution-configuration.d.ts +0 -11
  439. package/dist/components/solution-configuration.js +0 -2225
  440. package/dist/components/solution-configuration.js.map +0 -1
  441. package/dist/components/solution-contents.d.ts +0 -11
  442. package/dist/components/solution-contents.js +0 -13
  443. package/dist/components/solution-contents.js.map +0 -1
  444. package/dist/components/solution-contents2.js +0 -130
  445. package/dist/components/solution-contents2.js.map +0 -1
  446. package/dist/components/solution-item-details.d.ts +0 -11
  447. package/dist/components/solution-item-details.js +0 -13
  448. package/dist/components/solution-item-details.js.map +0 -1
  449. package/dist/components/solution-item-details2.js +0 -236
  450. package/dist/components/solution-item-details2.js.map +0 -1
  451. package/dist/components/solution-item-icon.d.ts +0 -11
  452. package/dist/components/solution-item-icon.js +0 -13
  453. package/dist/components/solution-item-icon.js.map +0 -1
  454. package/dist/components/solution-item-icon2.js +0 -344
  455. package/dist/components/solution-item-icon2.js.map +0 -1
  456. package/dist/components/solution-item-sharing.d.ts +0 -11
  457. package/dist/components/solution-item-sharing.js +0 -13
  458. package/dist/components/solution-item-sharing.js.map +0 -1
  459. package/dist/components/solution-item-sharing2.js +0 -169
  460. package/dist/components/solution-item-sharing2.js.map +0 -1
  461. package/dist/components/solution-item.d.ts +0 -11
  462. package/dist/components/solution-item.js +0 -13
  463. package/dist/components/solution-item.js.map +0 -1
  464. package/dist/components/solution-item2.js +0 -317
  465. package/dist/components/solution-item2.js.map +0 -1
  466. package/dist/components/solution-organization-variables.d.ts +0 -11
  467. package/dist/components/solution-organization-variables.js +0 -13
  468. package/dist/components/solution-organization-variables.js.map +0 -1
  469. package/dist/components/solution-organization-variables2.js +0 -134
  470. package/dist/components/solution-organization-variables2.js.map +0 -1
  471. package/dist/components/solution-resource-item.d.ts +0 -11
  472. package/dist/components/solution-resource-item.js +0 -13
  473. package/dist/components/solution-resource-item.js.map +0 -1
  474. package/dist/components/solution-resource-item2.js +0 -358
  475. package/dist/components/solution-resource-item2.js.map +0 -1
  476. package/dist/components/solution-spatial-ref.d.ts +0 -11
  477. package/dist/components/solution-spatial-ref.js +0 -13
  478. package/dist/components/solution-spatial-ref.js.map +0 -1
  479. package/dist/components/solution-spatial-ref2.js +0 -21448
  480. package/dist/components/solution-spatial-ref2.js.map +0 -1
  481. package/dist/components/solution-store.js +0 -4094
  482. package/dist/components/solution-store.js.map +0 -1
  483. package/dist/components/solution-template-data.d.ts +0 -11
  484. package/dist/components/solution-template-data.js +0 -13
  485. package/dist/components/solution-template-data.js.map +0 -1
  486. package/dist/components/solution-template-data2.js +0 -235
  487. package/dist/components/solution-template-data2.js.map +0 -1
  488. package/dist/components/solution-variables.d.ts +0 -11
  489. package/dist/components/solution-variables.js +0 -13
  490. package/dist/components/solution-variables.js.map +0 -1
  491. package/dist/components/solution-variables2.js +0 -152
  492. package/dist/components/solution-variables2.js.map +0 -1
  493. package/dist/components/sortable.esm.js +0 -3028
  494. package/dist/components/sortable.esm.js.map +0 -1
  495. package/dist/components/store-manager.d.ts +0 -11
  496. package/dist/components/store-manager.js +0 -85
  497. package/dist/components/store-manager.js.map +0 -1
  498. package/dist/components/switch.js +0 -141
  499. package/dist/components/switch.js.map +0 -1
  500. package/dist/components/tab-nav.js +0 -243
  501. package/dist/components/tab-nav.js.map +0 -1
  502. package/dist/components/tab-title.js +0 -278
  503. package/dist/components/tab-title.js.map +0 -1
  504. package/dist/components/tab.js +0 -156
  505. package/dist/components/tab.js.map +0 -1
  506. package/dist/components/tabs.js +0 -190
  507. package/dist/components/tabs.js.map +0 -1
  508. package/dist/components/tile.js +0 -131
  509. package/dist/components/tile.js.map +0 -1
  510. package/dist/components/time-picker.js +0 -945
  511. package/dist/components/time-picker.js.map +0 -1
  512. package/dist/components/tooltip.js +0 -401
  513. package/dist/components/tooltip.js.map +0 -1
  514. package/dist/components/tree-item.js +0 -296
  515. package/dist/components/tree-item.js.map +0 -1
  516. package/dist/components/tree.js +0 -329
  517. package/dist/components/tree.js.map +0 -1
  518. package/dist/components/utils.js +0 -121
  519. package/dist/components/utils.js.map +0 -1
  520. package/dist/components/utils2.js +0 -53
  521. package/dist/components/utils2.js.map +0 -1
  522. package/dist/components/value-list-item.js +0 -206
  523. package/dist/components/value-list-item.js.map +0 -1
  524. package/dist/components/value-list.js +0 -335
  525. package/dist/components/value-list.js.map +0 -1
  526. package/dist/esm/solution-store-b3c65467.js.map +0 -1
  527. package/dist/solutions-components/p-542189bc.entry.js.map +0 -1
  528. package/dist/solutions-components/p-638738f2.entry.js.map +0 -1
  529. package/dist/solutions-components/p-7e8985f2.entry.js.map +0 -1
  530. package/dist/solutions-components/p-b25f6ebe.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"solution-configuration.entry.js","mappings":"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","names":["utils.getSolutionVariables","utils.getOrganizationVariables","utils.getInventoryItems"],"sources":["./src/utils/templates.ts","./node_modules/@esri/arcgis-rest-request/dist/esm/utils/decode-query-string.js","./node_modules/@esri/arcgis-rest-auth/node_modules/tslib/tslib.es6.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/fetch-token.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/generate-token.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/federation-utils.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/validate-app-access.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/UserSession.js","./src/components/solution-configuration/solution-configuration.scss?tag=solution-configuration","./src/components/solution-configuration/solution-configuration.tsx"],"sourcesContent":["/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/*\r\n | Helper functions to get required values from solutions templates\r\n*/\r\nimport {\r\n //EUpdateType,\r\n IInventoryItem,\r\n //IItemDetails,\r\n //IItemShare,\r\n IOrganizationVariableItem,\r\n //IResourcePath,\r\n //SolutionModels,\r\n //ISolutionSpatialReferenceInfo,\r\n IVariableItem\r\n} from '../utils/interfaces';\r\nimport {\r\n IItemTemplate\r\n} from '@esri/solution-common';\r\n\r\n//--------------------------------------------------------------------------\r\n//\r\n// Public Functions\r\n//\r\n//--------------------------------------------------------------------------\r\n\r\n/**\r\n * Sort the solution items\r\n *\r\n * @param templates a list of item templates from the solution\r\n *\r\n * @returns a sorted list of solution items\r\n */\r\nexport function getInventoryItems(\r\n templates: IItemTemplate[]\r\n): IInventoryItem[] {\r\n const hierarchy = getItemHierarchy(templates);\r\n const ids = hierarchy.reduce((prev, cur) => {\r\n prev.push(cur.id);\r\n return prev;\r\n }, []);\r\n return templates.reduce((prev, cur) => {\r\n if (ids.indexOf(cur.itemId) > -1) {\r\n const hierarchyItems = hierarchy.filter(hi => hi.id === cur.itemId);\r\n prev.push(_getItemFromTemplate(cur, templates, hierarchyItems[0].dependencies));\r\n }\r\n return prev;\r\n }, []);\r\n}\r\n\r\n/**\r\n * Create item hierarchy that will avoid issues from cylical dependencies\r\n *\r\n * @param templates a list of item templates from the solution\r\n *\r\n * @returns a hierarchy for item and item dependency display\r\n */\r\nexport function getItemHierarchy(\r\n templates: IItemTemplate[]\r\n): any[] {\r\n const hierarchy = [];\r\n\r\n // Get the template specified by id out of a list of templates\r\n function getTemplateInSolution(templates, id): any {\r\n const iTemplate = templates.findIndex((template) => id === template.itemId);\r\n return iTemplate >= 0 ? templates[iTemplate] : null;\r\n }\r\n\r\n // Hierarchically list the dependencies of specified node\r\n function traceItemId(id, accumulatedHierarchy, alreadyVisitedIds = []): void {\r\n // Get the dependencies of the node\r\n const template = getTemplateInSolution(templates, id);\r\n /* istanbul ignore else */\r\n if (template) {\r\n const templateEntry = {\r\n id,\r\n dependencies: []\r\n };\r\n\r\n // Visit each dependency, but only if this template is not in the alreadyVisitedIds list to avoid infinite loops\r\n /* istanbul ignore else */\r\n if (alreadyVisitedIds.indexOf(id) < 0) {\r\n // Add dependency to alreadyVisitedIds list\r\n alreadyVisitedIds.push(id);\r\n\r\n template.dependencies.forEach((dependencyId) => {\r\n // Remove dependency from list of templates to visit in the top-level loop\r\n const iDependencyTemplate = templateItemIds.indexOf(dependencyId);\r\n /* istanbul ignore else */\r\n if (iDependencyTemplate >= 0) {\r\n templateItemIds.splice(iDependencyTemplate, 1);\r\n }\r\n\r\n traceItemId(dependencyId, templateEntry.dependencies, alreadyVisitedIds);\r\n });\r\n }\r\n accumulatedHierarchy.push(templateEntry);\r\n }\r\n }\r\n\r\n // Start with top-level nodes and add in the rest of the nodes to catch cycles without top-level nodes\r\n let templateItemIds: string[] = _getTopLevelItemIds(templates);\r\n\r\n const otherItems = templates\r\n .filter((template) => templateItemIds.indexOf(template.itemId) < 0) // only keep non-top-level nodes\r\n .sort((a, b) => b.dependencies.length - a.dependencies.length); // sort so that nodes with more dependencies come first--reduces stubs\r\n\r\n templateItemIds = templateItemIds.concat(otherItems.map((template) => template.itemId));\r\n\r\n // Step through the list of nodes; we'll also remove nodes as we visit them\r\n let itemId = templateItemIds.shift();\r\n while (typeof itemId !== \"undefined\") {\r\n traceItemId(itemId, hierarchy);\r\n itemId = templateItemIds.shift();\r\n }\r\n\r\n return hierarchy;\r\n}\r\n\r\n/**\r\n * Explore the solution item templates for variables we will allow users to insert at runtime\r\n *\r\n * @param templates a list of item templates from the solution\r\n * @param translations nls translation object\r\n *\r\n * @returns a list of variables from the solution item templates\r\n */\r\nexport function getSolutionVariables(\r\n templates: any[],\r\n translations: any\r\n): IVariableItem[] {\r\n const vars: IVariableItem[] = [];\r\n templates.forEach(t => {\r\n const item = {\r\n id: t.itemId,\r\n title: t.item.title || t.item.name,\r\n type: t.type,\r\n value: undefined,\r\n dependencies: [{\r\n id: t.itemId,\r\n title: translations.itemId,\r\n value: `{{${t.itemId}.itemId}}`,\r\n }]\r\n };\r\n if (t.item.url) {\r\n item.dependencies.push({\r\n id: t.itemId,\r\n title: translations.url,\r\n value: `{{${t.itemId}.url}}`,\r\n });\r\n }\r\n if (t.type === \"Feature Service\") {\r\n // TODO need to set source service name var...\r\n // TODO need to set soure service shape field name \"{{d05b3cf1ffcb4a4fa677627dfb18609e.name}}.Shape\"\r\n item.dependencies.push({\r\n id: t.itemId,\r\n title: translations.solutionExtent,\r\n value: `{{${t.itemId}.solutionExtent}}`,\r\n })\r\n _addLayersOrTables(t.properties.layers || [], item, t, translations);\r\n _addLayersOrTables(t.properties.tables || [], item, t, translations);\r\n }\r\n vars.push(item);\r\n })\r\n\r\n return vars;\r\n}\r\n\r\n/**\r\n * Set key organization variables we will allow users to insert at runtime\r\n *\r\n * @param translations nls translation object\r\n *\r\n * @returns a list of variables for the organization\r\n */\r\nexport function getOrganizationVariables(\r\n translations: any\r\n): IOrganizationVariableItem[] {\r\n const orgVars: IOrganizationVariableItem[] = [{\r\n id: \"\",\r\n title: translations.geocodeUrl,\r\n value: \"{{organization.helperServices.geocode:getDefaultLocatorURL}}\"\r\n }, {\r\n id: \"\",\r\n title: translations.geometryUrl,\r\n value: \"{{organization.helperServices.geometry.url}}\"\r\n }, {\r\n id: \"\",\r\n title: translations.portalBaseUrl,\r\n value: \"{{portalBaseUrl}}\"\r\n }, {\r\n id: \"\",\r\n title: translations.routeUrl,\r\n value: \"{{organization.helperServices.route.url}}\"\r\n }, {\r\n id: \"\",\r\n title: translations.solutionItemExtent,\r\n value: \"{{solutionItemExtent}}\"\r\n }];\r\n return orgVars;\r\n}\r\n\r\n//--------------------------------------------------------------------------\r\n//\r\n// Private Functions\r\n//\r\n//--------------------------------------------------------------------------\r\n\r\n/**\r\n * Explore a solution item template for variables we will allow users to insert at runtime.\r\n * This function will update the item argument that is passed in with the var details.\r\n *\r\n * @param children a list of layers or tables from a template\r\n * @param item an object that store key details for a given variable\r\n * @param template one of the templates from the current solution\r\n * @param translations nls translations object\r\n *\r\n */\r\nfunction _addLayersOrTables(\r\n children: any[],\r\n item: any,\r\n template: any,\r\n translations: any\r\n): void {\r\n children.forEach(l => {\r\n const name = l.name && l.name.indexOf(\"||\") > -1 ? l.name.split(\"||\")[1].replace(\"}}\", \"\").trim() : l.name;\r\n\r\n item.dependencies.push({\r\n id: template.itemId,\r\n title: `${name} (${translations.id})`,\r\n value: `{{${template.itemId}.layer${l.id}.id}}`,\r\n });\r\n item.dependencies.push({\r\n id: template.itemId,\r\n title: `${name} (${translations.name})`,\r\n value: `{{${template.itemId}.layer${l.id}.name||${name}}}`,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * Capture key details from the solution item template\r\n *\r\n * @param template one of the templates from the current solution\r\n * @param templates full list of templates\r\n * @param dependencies list of hierarchical dependencies\r\n *\r\n * @returns an IInventoryItem that is used by other components to work with this template\r\n */\r\nfunction _getItemFromTemplate(\r\n template: any,\r\n templates: any[],\r\n dependencies: any[]\r\n): IInventoryItem {\r\n return {\r\n id: template.itemId || \"\",\r\n title: template.item.title || \"\",\r\n dependencies: _getDependencies(dependencies, templates),\r\n type: template.item.type || \"\",\r\n typeKeywords: template.item.typeKeywords || []/*,\r\n solutionItem: {\r\n itemId: template.itemId,\r\n itemDetails: _getItemDetails(template.item, template.type === \"Group\"),\r\n isResource: _getIsResource(template),\r\n data: template.data,\r\n properties: template.properties,\r\n type: template.type,\r\n groupDetails: _getGroupDetails(template, templates)\r\n }*/\r\n };\r\n}\r\n\r\n/**\r\n * Capture key details from the solution item template\r\n *\r\n * @param dependencies list of dependencies from a template\r\n * @param templates full list of templates\r\n *\r\n * @returns a list of IInventoryItem that are used by other components to work with the templates\r\n */\r\nfunction _getDependencies(\r\n dependencies: any[],\r\n templates: any[]\r\n): IInventoryItem[] {\r\n const dependencyItems = [];\r\n const depIds = dependencies.reduce((prev, cur) => {\r\n prev.push(cur.id)\r\n dependencyItems.push(cur)\r\n return prev;\r\n }, []);\r\n return templates.reduce((prev, curr) => {\r\n const i = depIds.indexOf(curr.itemId);\r\n if (i > -1) {\r\n prev.push(_getItemFromTemplate(curr, templates, dependencyItems[i].dependencies));\r\n }\r\n return prev;\r\n }, []);\r\n}\r\n\r\n/**\r\n * Capture the key item details for a given template\r\n *\r\n * @param item the templates item\r\n * @param isGroup boolean to indicate if the item is a group\r\n * @param itemId the item id of the template\r\n *\r\n * @returns a IItemDetails object for the current item\r\n */\r\n/*\r\nfunction _getItemDetails(\r\n item: any,\r\n isGroup: boolean\r\n): IItemDetails {\r\n return {\r\n title: item.title || \"\",\r\n snippet: item.snippet || \"\",\r\n description: item.description || \"\",\r\n tags: item.tags || [],\r\n accessInformation: !isGroup ? item.accessInformation || \"\" : \"\",\r\n licenseInfo: !isGroup ? item.licenseInfo || \"\" : \"\"\r\n };\r\n}\r\n*/\r\n\r\n/**\r\n * Capture the key item details for a given group template\r\n *\r\n * @param template one of the templates from the current solution\r\n * @param templates full list of templates\r\n *\r\n * @returns a list of IItemShare objects\r\n */\r\n/*\r\nfunction _getGroupDetails(\r\n template: any,\r\n templates: any[]\r\n): IItemShare[] {\r\n return template.type === \"Group\" ? templates.reduce((prev, cur) => {\r\n if (cur.itemId !== template.itemId && cur.type !== \"Group\") {\r\n prev.push({\r\n id: cur.itemId,\r\n title: cur.item.name || cur.item.title,\r\n isShared: (cur.groups || []).indexOf(template.itemId) > -1,\r\n shareItem: (cur.groups || []).indexOf(template.itemId) > -1,\r\n type: cur.type,\r\n typeKeywords: cur.item.typeKeywords\r\n });\r\n }\r\n return prev;\r\n }, []) : [];\r\n}\r\n*/\r\n\r\n/**\r\n * Used to understand if we are dealing with a binary object that will support upload/download\r\n *\r\n * @param template one of the templates from the current solution\r\n *\r\n * @returns true if this item supports upload/download\r\n */\r\n/*\r\nfunction _getIsResource(\r\n template: any\r\n): boolean {\r\n return template.type !== \"Group\" && template.resources.some(r => r.indexOf(\"_info_thumbnail\") < 0) &&\r\n (template.data === null || JSON.stringify(template.data) === \"{}\");\r\n}\r\n*/\r\n\r\n/**\r\n * Sort the template ids based on their dependencies\r\n *\r\n * @param templates full list of templates\r\n *\r\n * @returns a list of Itop level item ids\r\n */\r\nfunction _getTopLevelItemIds(templates: IItemTemplate[]): string[] {\r\n // Find the top-level nodes. Start with all nodes, then remove those that other nodes depend on\r\n const topLevelItemCandidateIds = templates.map((template) => template.itemId);\r\n templates.forEach((template) => {\r\n (template.dependencies || []).forEach((dependencyId) => {\r\n const iNode = topLevelItemCandidateIds.indexOf(dependencyId);\r\n if (iNode >= 0) {\r\n // Node is somebody's dependency, so remove the node from the list of top-level nodes\r\n // If iNode == -1, then it's a shared dependency and it has already been removed\r\n topLevelItemCandidateIds.splice(iNode, 1);\r\n }\r\n });\r\n });\r\n return topLevelItemCandidateIds;\r\n}\r\n","/* Copyright (c) 2017-2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nexport function decodeParam(param) {\n var _a = param.split(\"=\"), key = _a[0], value = _a[1];\n return { key: decodeURIComponent(key), value: decodeURIComponent(value) };\n}\n/**\n * Decodes the passed query string as an object.\n *\n * @param query A string to be decoded.\n * @returns A decoded query param object.\n */\nexport function decodeQueryString(query) {\n return query\n .replace(/^#/, \"\")\n .split(\"&\")\n .reduce(function (acc, entry) {\n var _a = decodeParam(entry), key = _a.key, value = _a.value;\n acc[key] = value;\n return acc;\n }, {});\n}\n//# sourceMappingURL=decode-query-string.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* Copyright (c) 2017 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\nexport function fetchToken(url, requestOptions) {\n var options = requestOptions;\n // we generate a response, so we can't return the raw response\n options.rawResponse = false;\n return request(url, options).then(function (response) {\n var r = {\n token: response.access_token,\n username: response.username,\n expires: new Date(\n // convert seconds in response to milliseconds and add the value to the current time to calculate a static expiration timestamp\n Date.now() + (response.expires_in * 1000 - 1000)),\n ssl: response.ssl === true\n };\n if (response.refresh_token) {\n r.refreshToken = response.refresh_token;\n }\n return r;\n });\n}\n//# sourceMappingURL=fetch-token.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request, NODEJS_DEFAULT_REFERER_HEADER, } from \"@esri/arcgis-rest-request\";\nexport function generateToken(url, requestOptions) {\n var options = requestOptions;\n /* istanbul ignore else */\n if (typeof window !== \"undefined\" &&\n window.location &&\n window.location.host) {\n options.params.referer = window.location.host;\n }\n else {\n options.params.referer = NODEJS_DEFAULT_REFERER_HEADER;\n }\n return request(url, options);\n}\n//# sourceMappingURL=generate-token.js.map","import { cleanUrl } from \"@esri/arcgis-rest-request\";\n/**\n * Used to test if a URL is an ArcGIS Online URL\n */\nvar arcgisOnlineUrlRegex = /^https?:\\/\\/(\\S+)\\.arcgis\\.com.+/;\n/**\n * Used to test if a URL is production ArcGIS Online Portal\n */\nvar arcgisOnlinePortalRegex = /^https?:\\/\\/(dev|devext|qa|qaext|www)\\.arcgis\\.com\\/sharing\\/rest+/;\n/**\n * Used to test if a URL is an ArcGIS Online Organization Portal\n */\nvar arcgisOnlineOrgPortalRegex = /^https?:\\/\\/(?:[a-z0-9-]+\\.maps(dev|devext|qa|qaext)?)?.arcgis\\.com\\/sharing\\/rest/;\nexport function isOnline(url) {\n return arcgisOnlineUrlRegex.test(url);\n}\nexport function normalizeOnlinePortalUrl(portalUrl) {\n if (!arcgisOnlineUrlRegex.test(portalUrl)) {\n return portalUrl;\n }\n switch (getOnlineEnvironment(portalUrl)) {\n case \"dev\":\n return \"https://devext.arcgis.com/sharing/rest\";\n case \"qa\":\n return \"https://qaext.arcgis.com/sharing/rest\";\n default:\n return \"https://www.arcgis.com/sharing/rest\";\n }\n}\nexport function getOnlineEnvironment(url) {\n if (!arcgisOnlineUrlRegex.test(url)) {\n return null;\n }\n var match = url.match(arcgisOnlineUrlRegex);\n var subdomain = match[1].split(\".\").pop();\n if (subdomain.includes(\"dev\")) {\n return \"dev\";\n }\n if (subdomain.includes(\"qa\")) {\n return \"qa\";\n }\n return \"production\";\n}\nexport function isFederated(owningSystemUrl, portalUrl) {\n var normalizedPortalUrl = cleanUrl(normalizeOnlinePortalUrl(portalUrl)).replace(/https?:\\/\\//, \"\");\n var normalizedOwningSystemUrl = cleanUrl(owningSystemUrl).replace(/https?:\\/\\//, \"\");\n return new RegExp(normalizedOwningSystemUrl, \"i\").test(normalizedPortalUrl);\n}\nexport function canUseOnlineToken(portalUrl, requestUrl) {\n var portalIsOnline = isOnline(portalUrl);\n var requestIsOnline = isOnline(requestUrl);\n var portalEnv = getOnlineEnvironment(portalUrl);\n var requestEnv = getOnlineEnvironment(requestUrl);\n if (portalIsOnline && requestIsOnline && portalEnv === requestEnv) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=federation-utils.js.map","/* Copyright (c) 2018-2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\n/**\n * Validates that the user has access to the application\n * and if they user should be presented a \"View Only\" mode\n *\n * This is only needed/valid for Esri applications that are \"licensed\"\n * and shipped in ArcGIS Online or ArcGIS Enterprise. Most custom applications\n * should not need or use this.\n *\n * ```js\n * import { validateAppAccess } from '@esri/arcgis-rest-auth';\n *\n * return validateAppAccess('your-token', 'theClientId')\n * .then((result) => {\n * if (!result.value) {\n * // redirect or show some other ui\n * } else {\n * if (result.viewOnlyUserTypeApp) {\n * // use this to inform your app to show a \"View Only\" mode\n * }\n * }\n * })\n * .catch((err) => {\n * // two possible errors\n * // invalid clientId: {\"error\":{\"code\":400,\"messageCode\":\"GWM_0007\",\"message\":\"Invalid request\",\"details\":[]}}\n * // invalid token: {\"error\":{\"code\":498,\"message\":\"Invalid token.\",\"details\":[]}}\n * })\n * ```\n *\n * Note: This is only usable by Esri applications hosted on *arcgis.com, *esri.com or within\n * an ArcGIS Enterprise installation. Custom applications can not use this.\n *\n * @param token platform token\n * @param clientId application client id\n * @param portal Optional\n */\nexport function validateAppAccess(token, clientId, portal) {\n if (portal === void 0) { portal = \"https://www.arcgis.com/sharing/rest\"; }\n var url = portal + \"/oauth2/validateAppAccess\";\n var ro = {\n method: \"POST\",\n params: {\n f: \"json\",\n client_id: clientId,\n token: token,\n },\n };\n return request(url, ro);\n}\n//# sourceMappingURL=validate-app-access.js.map","/* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, ArcGISAuthError, cleanUrl, encodeQueryString, decodeQueryString, } from \"@esri/arcgis-rest-request\";\nimport { generateToken } from \"./generate-token\";\nimport { fetchToken } from \"./fetch-token\";\nimport { canUseOnlineToken, isFederated } from \"./federation-utils\";\nimport { validateAppAccess } from \"./validate-app-access\";\nfunction defer() {\n var deferred = {\n promise: null,\n resolve: null,\n reject: null,\n };\n deferred.promise = new Promise(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n}\n/**\n * ```js\n * import { UserSession } from '@esri/arcgis-rest-auth';\n * UserSession.beginOAuth2({\n * // register an app of your own to create a unique clientId\n * clientId: \"abc123\",\n * redirectUri: 'https://yourapp.com/authenticate.html'\n * })\n * .then(session)\n * // or\n * new UserSession({\n * username: \"jsmith\",\n * password: \"123456\"\n * })\n * // or\n * UserSession.deserialize(cache)\n * ```\n * Used to authenticate both ArcGIS Online and ArcGIS Enterprise users. `UserSession` includes helper methods for [OAuth 2.0](/arcgis-rest-js/guides/browser-authentication/) in both browser and server applications.\n */\nvar UserSession = /** @class */ (function () {\n function UserSession(options) {\n this.clientId = options.clientId;\n this._refreshToken = options.refreshToken;\n this._refreshTokenExpires = options.refreshTokenExpires;\n this.username = options.username;\n this.password = options.password;\n this._token = options.token;\n this._tokenExpires = options.tokenExpires;\n this.portal = options.portal\n ? cleanUrl(options.portal)\n : \"https://www.arcgis.com/sharing/rest\";\n this.ssl = options.ssl;\n this.provider = options.provider || \"arcgis\";\n this.tokenDuration = options.tokenDuration || 20160;\n this.redirectUri = options.redirectUri;\n this.refreshTokenTTL = options.refreshTokenTTL || 20160;\n this.server = options.server;\n this.federatedServers = {};\n this.trustedDomains = [];\n // if a non-federated server was passed explicitly, it should be trusted.\n if (options.server) {\n // if the url includes more than '/arcgis/', trim the rest\n var root = this.getServerRootUrl(options.server);\n this.federatedServers[root] = {\n token: options.token,\n expires: options.tokenExpires,\n };\n }\n this._pendingTokenRequests = {};\n }\n Object.defineProperty(UserSession.prototype, \"token\", {\n /**\n * The current ArcGIS Online or ArcGIS Enterprise `token`.\n */\n get: function () {\n return this._token;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"tokenExpires\", {\n /**\n * The expiration time of the current `token`.\n */\n get: function () {\n return this._tokenExpires;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"refreshToken\", {\n /**\n * The current token to ArcGIS Online or ArcGIS Enterprise.\n */\n get: function () {\n return this._refreshToken;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"refreshTokenExpires\", {\n /**\n * The expiration time of the current `refreshToken`.\n */\n get: function () {\n return this._refreshTokenExpires;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"trustedServers\", {\n /**\n * Deprecated, use `federatedServers` instead.\n *\n * @deprecated\n */\n get: function () {\n console.log(\"DEPRECATED: use federatedServers instead\");\n return this.federatedServers;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Begins a new browser-based OAuth 2.0 sign in. If `options.popup` is `true` the\n * authentication window will open in a new tab/window and the function will return\n * Promise&lt;UserSession&gt;. Otherwise, the user will be redirected to the\n * authorization page in their current tab/window and the function will return `undefined`.\n *\n * @browserOnly\n */\n /* istanbul ignore next */\n UserSession.beginOAuth2 = function (options, win) {\n if (win === void 0) { win = window; }\n if (options.duration) {\n console.log(\"DEPRECATED: 'duration' is deprecated - use 'expiration' instead\");\n }\n var _a = __assign({\n portal: \"https://www.arcgis.com/sharing/rest\",\n provider: \"arcgis\",\n expiration: 20160,\n popup: true,\n popupWindowFeatures: \"height=400,width=600,menubar=no,location=yes,resizable=yes,scrollbars=yes,status=yes\",\n state: options.clientId,\n locale: \"\",\n }, options), portal = _a.portal, provider = _a.provider, clientId = _a.clientId, expiration = _a.expiration, redirectUri = _a.redirectUri, popup = _a.popup, popupWindowFeatures = _a.popupWindowFeatures, state = _a.state, locale = _a.locale, params = _a.params;\n var url;\n if (provider === \"arcgis\") {\n url = portal + \"/oauth2/authorize?client_id=\" + clientId + \"&response_type=token&expiration=\" + (options.duration || expiration) + \"&redirect_uri=\" + encodeURIComponent(redirectUri) + \"&state=\" + state + \"&locale=\" + locale;\n }\n else {\n url = portal + \"/oauth2/social/authorize?client_id=\" + clientId + \"&socialLoginProviderName=\" + provider + \"&autoAccountCreateForSocial=true&response_type=token&expiration=\" + (options.duration || expiration) + \"&redirect_uri=\" + encodeURIComponent(redirectUri) + \"&state=\" + state + \"&locale=\" + locale;\n }\n // append additional params\n if (params) {\n url = url + \"&\" + encodeQueryString(params);\n }\n if (!popup) {\n win.location.href = url;\n return undefined;\n }\n var session = defer();\n win[\"__ESRI_REST_AUTH_HANDLER_\" + clientId] = function (errorString, oauthInfoString) {\n if (errorString) {\n var error = JSON.parse(errorString);\n session.reject(new ArcGISAuthError(error.errorMessage, error.error));\n return;\n }\n if (oauthInfoString) {\n var oauthInfo = JSON.parse(oauthInfoString);\n session.resolve(new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: oauthInfo.ssl,\n token: oauthInfo.token,\n tokenExpires: new Date(oauthInfo.expires),\n username: oauthInfo.username,\n }));\n }\n };\n win.open(url, \"oauth-window\", popupWindowFeatures);\n return session.promise;\n };\n /**\n * Completes a browser-based OAuth 2.0 sign in. If `options.popup` is `true` the user\n * will be returned to the previous window. Otherwise a new `UserSession`\n * will be returned. You must pass the same values for `options.popup` and\n * `options.portal` as you used in `beginOAuth2()`.\n *\n * @browserOnly\n */\n /* istanbul ignore next */\n UserSession.completeOAuth2 = function (options, win) {\n if (win === void 0) { win = window; }\n var _a = __assign({ portal: \"https://www.arcgis.com/sharing/rest\", popup: true }, options), portal = _a.portal, clientId = _a.clientId, popup = _a.popup;\n function completeSignIn(error, oauthInfo) {\n try {\n var handlerFn = void 0;\n var handlerFnName = \"__ESRI_REST_AUTH_HANDLER_\" + clientId;\n if (popup) {\n // Guard b/c IE does not support window.opener\n if (win.opener) {\n if (win.opener.parent && win.opener.parent[handlerFnName]) {\n handlerFn = win.opener.parent[handlerFnName];\n }\n else if (win.opener && win.opener[handlerFnName]) {\n // support pop-out oauth from within an iframe\n handlerFn = win.opener[handlerFnName];\n }\n }\n else {\n // IE\n if (win !== win.parent && win.parent && win.parent[handlerFnName]) {\n handlerFn = win.parent[handlerFnName];\n }\n }\n // if we have a handler fn, call it and close the window\n if (handlerFn) {\n handlerFn(error ? JSON.stringify(error) : undefined, JSON.stringify(oauthInfo));\n win.close();\n return undefined;\n }\n }\n }\n catch (e) {\n throw new ArcGISAuthError(\"Unable to complete authentication. It's possible you specified popup based oAuth2 but no handler from \\\"beginOAuth2()\\\" present. This generally happens because the \\\"popup\\\" option differs between \\\"beginOAuth2()\\\" and \\\"completeOAuth2()\\\".\");\n }\n if (error) {\n throw new ArcGISAuthError(error.errorMessage, error.error);\n }\n return new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: oauthInfo.ssl,\n token: oauthInfo.token,\n tokenExpires: oauthInfo.expires,\n username: oauthInfo.username,\n });\n }\n var params = decodeQueryString(win.location.hash);\n if (!params.access_token) {\n var error = void 0;\n var errorMessage = \"Unknown error\";\n if (params.error) {\n error = params.error;\n errorMessage = params.error_description;\n }\n return completeSignIn({ error: error, errorMessage: errorMessage });\n }\n var token = params.access_token;\n var expires = new Date(Date.now() + parseInt(params.expires_in, 10) * 1000 - 60 * 1000);\n var username = params.username;\n var ssl = params.ssl === \"true\";\n return completeSignIn(undefined, {\n token: token,\n expires: expires,\n ssl: ssl,\n username: username,\n });\n };\n /**\n * Request session information from the parent application\n *\n * When an application is embedded into another application via an IFrame, the embedded app can\n * use `window.postMessage` to request credentials from the host application. This function wraps\n * that behavior.\n *\n * The ArcGIS API for Javascript has this built into the Identity Manager as of the 4.19 release.\n *\n * Note: The parent application will not respond if the embedded app's origin is not:\n * - the same origin as the parent or *.arcgis.com (JSAPI)\n * - in the list of valid child origins (REST-JS)\n *\n *\n * @param parentOrigin origin of the parent frame. Passed into the embedded application as `parentOrigin` query param\n * @browserOnly\n */\n UserSession.fromParent = function (parentOrigin, win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n // Declare handler outside of promise scope so we can detach it\n var handler;\n // return a promise that will resolve when the handler receives\n // session information from the correct origin\n return new Promise(function (resolve, reject) {\n // create an event handler that just wraps the parentMessageHandler\n handler = function (event) {\n // ensure we only listen to events from the parent\n if (event.source === win.parent && event.data) {\n try {\n return resolve(UserSession.parentMessageHandler(event));\n }\n catch (err) {\n return reject(err);\n }\n }\n };\n // add listener\n win.addEventListener(\"message\", handler, false);\n win.parent.postMessage({ type: \"arcgis:auth:requestCredential\" }, parentOrigin);\n }).then(function (session) {\n win.removeEventListener(\"message\", handler, false);\n return session;\n });\n };\n /**\n * Begins a new server-based OAuth 2.0 sign in. This will redirect the user to\n * the ArcGIS Online or ArcGIS Enterprise authorization page.\n *\n * @nodeOnly\n */\n UserSession.authorize = function (options, response) {\n if (options.duration) {\n console.log(\"DEPRECATED: 'duration' is deprecated - use 'expiration' instead\");\n }\n var _a = __assign({ portal: \"https://arcgis.com/sharing/rest\", expiration: 20160 }, options), portal = _a.portal, clientId = _a.clientId, expiration = _a.expiration, redirectUri = _a.redirectUri;\n response.writeHead(301, {\n Location: portal + \"/oauth2/authorize?client_id=\" + clientId + \"&expiration=\" + (options.duration || expiration) + \"&response_type=code&redirect_uri=\" + encodeURIComponent(redirectUri),\n });\n response.end();\n };\n /**\n * Completes the server-based OAuth 2.0 sign in process by exchanging the `authorizationCode`\n * for a `access_token`.\n *\n * @nodeOnly\n */\n UserSession.exchangeAuthorizationCode = function (options, authorizationCode) {\n var _a = __assign({\n portal: \"https://www.arcgis.com/sharing/rest\",\n refreshTokenTTL: 20160,\n }, options), portal = _a.portal, clientId = _a.clientId, redirectUri = _a.redirectUri, refreshTokenTTL = _a.refreshTokenTTL;\n return fetchToken(portal + \"/oauth2/token\", {\n params: {\n grant_type: \"authorization_code\",\n client_id: clientId,\n redirect_uri: redirectUri,\n code: authorizationCode,\n },\n }).then(function (response) {\n return new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: response.ssl,\n redirectUri: redirectUri,\n refreshToken: response.refreshToken,\n refreshTokenTTL: refreshTokenTTL,\n refreshTokenExpires: new Date(Date.now() + (refreshTokenTTL - 1) * 60 * 1000),\n token: response.token,\n tokenExpires: response.expires,\n username: response.username,\n });\n });\n };\n UserSession.deserialize = function (str) {\n var options = JSON.parse(str);\n return new UserSession({\n clientId: options.clientId,\n refreshToken: options.refreshToken,\n refreshTokenExpires: new Date(options.refreshTokenExpires),\n username: options.username,\n password: options.password,\n token: options.token,\n tokenExpires: new Date(options.tokenExpires),\n portal: options.portal,\n ssl: options.ssl,\n tokenDuration: options.tokenDuration,\n redirectUri: options.redirectUri,\n refreshTokenTTL: options.refreshTokenTTL,\n });\n };\n /**\n * Translates authentication from the format used in the [ArcGIS API for JavaScript](https://developers.arcgis.com/javascript/).\n *\n * ```js\n * UserSession.fromCredential({\n * userId: \"jsmith\",\n * token: \"secret\"\n * });\n * ```\n *\n * @returns UserSession\n */\n UserSession.fromCredential = function (credential) {\n // At ArcGIS Online 9.1, credentials no longer include the ssl and expires properties\n // Here, we provide default values for them to cover this condition\n var ssl = typeof credential.ssl !== \"undefined\" ? credential.ssl : true;\n var expires = credential.expires || Date.now() + 7200000; /* 2 hours */\n return new UserSession({\n portal: credential.server.includes(\"sharing/rest\")\n ? credential.server\n : credential.server + \"/sharing/rest\",\n ssl: ssl,\n token: credential.token,\n username: credential.userId,\n tokenExpires: new Date(expires),\n });\n };\n /**\n * Handle the response from the parent\n * @param event DOM Event\n */\n UserSession.parentMessageHandler = function (event) {\n if (event.data.type === \"arcgis:auth:credential\") {\n return UserSession.fromCredential(event.data.credential);\n }\n if (event.data.type === \"arcgis:auth:error\") {\n var err = new Error(event.data.error.message);\n err.name = event.data.error.name;\n throw err;\n }\n else {\n throw new Error(\"Unknown message type.\");\n }\n };\n /**\n * Returns authentication in a format useable in the [ArcGIS API for JavaScript](https://developers.arcgis.com/javascript/).\n *\n * ```js\n * esriId.registerToken(session.toCredential());\n * ```\n *\n * @returns ICredential\n */\n UserSession.prototype.toCredential = function () {\n return {\n expires: this.tokenExpires.getTime(),\n server: this.portal,\n ssl: this.ssl,\n token: this.token,\n userId: this.username,\n };\n };\n /**\n * Returns information about the currently logged in [user](https://developers.arcgis.com/rest/users-groups-and-items/user.htm). Subsequent calls will *not* result in additional web traffic.\n *\n * ```js\n * session.getUser()\n * .then(response => {\n * console.log(response.role); // \"org_admin\"\n * })\n * ```\n *\n * @param requestOptions - Options for the request. NOTE: `rawResponse` is not supported by this operation.\n * @returns A Promise that will resolve with the data from the response.\n */\n UserSession.prototype.getUser = function (requestOptions) {\n var _this = this;\n if (this._pendingUserRequest) {\n return this._pendingUserRequest;\n }\n else if (this._user) {\n return Promise.resolve(this._user);\n }\n else {\n var url = this.portal + \"/community/self\";\n var options = __assign(__assign({ httpMethod: \"GET\", authentication: this }, requestOptions), { rawResponse: false });\n this._pendingUserRequest = request(url, options).then(function (response) {\n _this._user = response;\n _this._pendingUserRequest = null;\n return response;\n });\n return this._pendingUserRequest;\n }\n };\n /**\n * Returns information about the currently logged in user's [portal](https://developers.arcgis.com/rest/users-groups-and-items/portal-self.htm). Subsequent calls will *not* result in additional web traffic.\n *\n * ```js\n * session.getPortal()\n * .then(response => {\n * console.log(portal.name); // \"City of ...\"\n * })\n * ```\n *\n * @param requestOptions - Options for the request. NOTE: `rawResponse` is not supported by this operation.\n * @returns A Promise that will resolve with the data from the response.\n */\n UserSession.prototype.getPortal = function (requestOptions) {\n var _this = this;\n if (this._pendingPortalRequest) {\n return this._pendingPortalRequest;\n }\n else if (this._portalInfo) {\n return Promise.resolve(this._portalInfo);\n }\n else {\n var url = this.portal + \"/portals/self\";\n var options = __assign(__assign({ httpMethod: \"GET\", authentication: this }, requestOptions), { rawResponse: false });\n this._pendingPortalRequest = request(url, options).then(function (response) {\n _this._portalInfo = response;\n _this._pendingPortalRequest = null;\n return response;\n });\n return this._pendingPortalRequest;\n }\n };\n /**\n * Returns the username for the currently logged in [user](https://developers.arcgis.com/rest/users-groups-and-items/user.htm). Subsequent calls will *not* result in additional web traffic. This is also used internally when a username is required for some requests but is not present in the options.\n *\n * * ```js\n * session.getUsername()\n * .then(response => {\n * console.log(response); // \"casey_jones\"\n * })\n * ```\n */\n UserSession.prototype.getUsername = function () {\n if (this.username) {\n return Promise.resolve(this.username);\n }\n else if (this._user) {\n return Promise.resolve(this._user.username);\n }\n else {\n return this.getUser().then(function (user) {\n return user.username;\n });\n }\n };\n /**\n * Gets an appropriate token for the given URL. If `portal` is ArcGIS Online and\n * the request is to an ArcGIS Online domain `token` will be used. If the request\n * is to the current `portal` the current `token` will also be used. However if\n * the request is to an unknown server we will validate the server with a request\n * to our current `portal`.\n */\n UserSession.prototype.getToken = function (url, requestOptions) {\n if (canUseOnlineToken(this.portal, url)) {\n return this.getFreshToken(requestOptions);\n }\n else if (new RegExp(this.portal, \"i\").test(url)) {\n return this.getFreshToken(requestOptions);\n }\n else {\n return this.getTokenForServer(url, requestOptions);\n }\n };\n /**\n * Get application access information for the current user\n * see `validateAppAccess` function for details\n *\n * @param clientId application client id\n */\n UserSession.prototype.validateAppAccess = function (clientId) {\n return this.getToken(this.portal).then(function (token) {\n return validateAppAccess(token, clientId);\n });\n };\n UserSession.prototype.toJSON = function () {\n return {\n clientId: this.clientId,\n refreshToken: this.refreshToken,\n refreshTokenExpires: this.refreshTokenExpires,\n username: this.username,\n password: this.password,\n token: this.token,\n tokenExpires: this.tokenExpires,\n portal: this.portal,\n ssl: this.ssl,\n tokenDuration: this.tokenDuration,\n redirectUri: this.redirectUri,\n refreshTokenTTL: this.refreshTokenTTL,\n };\n };\n UserSession.prototype.serialize = function () {\n return JSON.stringify(this);\n };\n /**\n * For a \"Host\" app that embeds other platform apps via iframes, after authenticating the user\n * and creating a UserSession, the app can then enable \"post message\" style authentication by calling\n * this method.\n *\n * Internally this adds an event listener on window for the `message` event\n *\n * @param validChildOrigins Array of origins that are allowed to request authentication from the host app\n */\n UserSession.prototype.enablePostMessageAuth = function (validChildOrigins, win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n this._hostHandler = this.createPostMessageHandler(validChildOrigins);\n win.addEventListener(\"message\", this._hostHandler, false);\n };\n /**\n * For a \"Host\" app that has embedded other platform apps via iframes, when the host needs\n * to transition routes, it should call `UserSession.disablePostMessageAuth()` to remove\n * the event listener and prevent memory leaks\n */\n UserSession.prototype.disablePostMessageAuth = function (win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n win.removeEventListener(\"message\", this._hostHandler, false);\n };\n /**\n * Manually refreshes the current `token` and `tokenExpires`.\n */\n UserSession.prototype.refreshSession = function (requestOptions) {\n // make sure subsequent calls to getUser() don't returned cached metadata\n this._user = null;\n if (this.username && this.password) {\n return this.refreshWithUsernameAndPassword(requestOptions);\n }\n if (this.clientId && this.refreshToken) {\n return this.refreshWithRefreshToken();\n }\n return Promise.reject(new ArcGISAuthError(\"Unable to refresh token.\"));\n };\n /**\n * Determines the root of the ArcGIS Server or Portal for a given URL.\n *\n * @param url the URl to determine the root url for.\n */\n UserSession.prototype.getServerRootUrl = function (url) {\n var root = cleanUrl(url).split(/\\/rest(\\/admin)?\\/services(?:\\/|#|\\?|$)/)[0];\n var _a = root.match(/(https?:\\/\\/)(.+)/), match = _a[0], protocol = _a[1], domainAndPath = _a[2];\n var _b = domainAndPath.split(\"/\"), domain = _b[0], path = _b.slice(1);\n // only the domain is lowercased because in some cases an org id might be\n // in the path which cannot be lowercased.\n return \"\" + protocol + domain.toLowerCase() + \"/\" + path.join(\"/\");\n };\n /**\n * Returns the proper [`credentials`] option for `fetch` for a given domain.\n * See [trusted server](https://enterprise.arcgis.com/en/portal/latest/administer/windows/configure-security.htm#ESRI_SECTION1_70CC159B3540440AB325BE5D89DBE94A).\n * Used internally by underlying request methods to add support for specific security considerations.\n *\n * @param url The url of the request\n * @returns \"include\" or \"same-origin\"\n */\n UserSession.prototype.getDomainCredentials = function (url) {\n if (!this.trustedDomains || !this.trustedDomains.length) {\n return \"same-origin\";\n }\n return this.trustedDomains.some(function (domainWithProtocol) {\n return url.startsWith(domainWithProtocol);\n })\n ? \"include\"\n : \"same-origin\";\n };\n /**\n * Return a function that closes over the validOrigins array and\n * can be used as an event handler for the `message` event\n *\n * @param validOrigins Array of valid origins\n */\n UserSession.prototype.createPostMessageHandler = function (validOrigins) {\n var _this = this;\n // return a function that closes over the validOrigins and\n // has access to the credential\n return function (event) {\n // Verify that the origin is valid\n // Note: do not use regex's here. validOrigins is an array so we're checking that the event's origin\n // is in the array via exact match. More info about avoiding postMessage xss issues here\n // https://jlajara.gitlab.io/web/2020/07/17/Dom_XSS_PostMessage_2.html#tipsbypasses-in-postmessage-vulnerabilities\n var isValidOrigin = validOrigins.indexOf(event.origin) > -1;\n // JSAPI handles this slightly differently - instead of checking a list, it will respond if\n // event.origin === window.location.origin || event.origin.endsWith('.arcgis.com')\n // For Hub, and to enable cross domain debugging with port's in urls, we are opting to\n // use a list of valid origins\n // Ensure the message type is something we want to handle\n var isValidType = event.data.type === \"arcgis:auth:requestCredential\";\n var isTokenValid = _this.tokenExpires.getTime() > Date.now();\n if (isValidOrigin && isValidType) {\n var msg = {};\n if (isTokenValid) {\n var credential = _this.toCredential();\n // arcgis:auth:error with {name: \"\", message: \"\"}\n // the following line allows us to conform to our spec without changing other depended-on functionality\n // https://github.com/Esri/arcgis-rest-js/blob/master/packages/arcgis-rest-auth/post-message-auth-spec.md#arcgisauthcredential\n credential.server = credential.server.replace(\"/sharing/rest\", \"\");\n msg = { type: \"arcgis:auth:credential\", credential: credential };\n }\n else {\n // Return an error\n msg = {\n type: \"arcgis:auth:error\",\n error: {\n name: \"tokenExpiredError\",\n message: \"Session token was expired, and not returned to the child application\",\n },\n };\n }\n event.source.postMessage(msg, event.origin);\n }\n };\n };\n /**\n * Validates that a given URL is properly federated with our current `portal`.\n * Attempts to use the internal `federatedServers` cache first.\n */\n UserSession.prototype.getTokenForServer = function (url, requestOptions) {\n var _this = this;\n // requests to /rest/services/ and /rest/admin/services/ are both valid\n // Federated servers may have inconsistent casing, so lowerCase it\n var root = this.getServerRootUrl(url);\n var existingToken = this.federatedServers[root];\n if (existingToken &&\n existingToken.expires &&\n existingToken.expires.getTime() > Date.now()) {\n return Promise.resolve(existingToken.token);\n }\n if (this._pendingTokenRequests[root]) {\n return this._pendingTokenRequests[root];\n }\n this._pendingTokenRequests[root] = this.fetchAuthorizedDomains().then(function () {\n return request(root + \"/rest/info\", {\n credentials: _this.getDomainCredentials(url),\n })\n .then(function (response) {\n if (response.owningSystemUrl) {\n /**\n * if this server is not owned by this portal\n * bail out with an error since we know we wont\n * be able to generate a token\n */\n if (!isFederated(response.owningSystemUrl, _this.portal)) {\n throw new ArcGISAuthError(url + \" is not federated with \" + _this.portal + \".\", \"NOT_FEDERATED\");\n }\n else {\n /**\n * if the server is federated, use the relevant token endpoint.\n */\n return request(response.owningSystemUrl + \"/sharing/rest/info\", requestOptions);\n }\n }\n else if (response.authInfo &&\n _this.federatedServers[root] !== undefined) {\n /**\n * if its a stand-alone instance of ArcGIS Server that doesn't advertise\n * federation, but the root server url is recognized, use its built in token endpoint.\n */\n return Promise.resolve({\n authInfo: response.authInfo,\n });\n }\n else {\n throw new ArcGISAuthError(url + \" is not federated with any portal and is not explicitly trusted.\", \"NOT_FEDERATED\");\n }\n })\n .then(function (response) {\n return response.authInfo.tokenServicesUrl;\n })\n .then(function (tokenServicesUrl) {\n // an expired token cant be used to generate a new token\n if (_this.token && _this.tokenExpires.getTime() > Date.now()) {\n return generateToken(tokenServicesUrl, {\n params: {\n token: _this.token,\n serverUrl: url,\n expiration: _this.tokenDuration,\n client: \"referer\",\n },\n });\n // generate an entirely fresh token if necessary\n }\n else {\n return generateToken(tokenServicesUrl, {\n params: {\n username: _this.username,\n password: _this.password,\n expiration: _this.tokenDuration,\n client: \"referer\",\n },\n }).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = new Date(response.expires);\n return response;\n });\n }\n })\n .then(function (response) {\n _this.federatedServers[root] = {\n expires: new Date(response.expires),\n token: response.token,\n };\n delete _this._pendingTokenRequests[root];\n return response.token;\n });\n });\n return this._pendingTokenRequests[root];\n };\n /**\n * Returns an unexpired token for the current `portal`.\n */\n UserSession.prototype.getFreshToken = function (requestOptions) {\n var _this = this;\n if (this.token && !this.tokenExpires) {\n return Promise.resolve(this.token);\n }\n if (this.token &&\n this.tokenExpires &&\n this.tokenExpires.getTime() > Date.now()) {\n return Promise.resolve(this.token);\n }\n if (!this._pendingTokenRequests[this.portal]) {\n this._pendingTokenRequests[this.portal] = this.refreshSession(requestOptions).then(function (session) {\n _this._pendingTokenRequests[_this.portal] = null;\n return session.token;\n });\n }\n return this._pendingTokenRequests[this.portal];\n };\n /**\n * Refreshes the current `token` and `tokenExpires` with `username` and\n * `password`.\n */\n UserSession.prototype.refreshWithUsernameAndPassword = function (requestOptions) {\n var _this = this;\n var options = __assign({ params: {\n username: this.username,\n password: this.password,\n expiration: this.tokenDuration,\n } }, requestOptions);\n return generateToken(this.portal + \"/generateToken\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = new Date(response.expires);\n return _this;\n });\n };\n /**\n * Refreshes the current `token` and `tokenExpires` with `refreshToken`.\n */\n UserSession.prototype.refreshWithRefreshToken = function (requestOptions) {\n var _this = this;\n if (this.refreshToken &&\n this.refreshTokenExpires &&\n this.refreshTokenExpires.getTime() < Date.now()) {\n return this.refreshRefreshToken(requestOptions);\n }\n var options = __assign({ params: {\n client_id: this.clientId,\n refresh_token: this.refreshToken,\n grant_type: \"refresh_token\",\n } }, requestOptions);\n return fetchToken(this.portal + \"/oauth2/token\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = response.expires;\n return _this;\n });\n };\n /**\n * Exchanges an unexpired `refreshToken` for a new one, also updates `token` and\n * `tokenExpires`.\n */\n UserSession.prototype.refreshRefreshToken = function (requestOptions) {\n var _this = this;\n var options = __assign({ params: {\n client_id: this.clientId,\n refresh_token: this.refreshToken,\n redirect_uri: this.redirectUri,\n grant_type: \"exchange_refresh_token\",\n } }, requestOptions);\n return fetchToken(this.portal + \"/oauth2/token\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = response.expires;\n _this._refreshToken = response.refreshToken;\n _this._refreshTokenExpires = new Date(Date.now() + (_this.refreshTokenTTL - 1) * 60 * 1000);\n return _this;\n });\n };\n /**\n * ensures that the authorizedCrossOriginDomains are obtained from the portal and cached\n * so we can check them later.\n *\n * @returns this\n */\n UserSession.prototype.fetchAuthorizedDomains = function () {\n var _this = this;\n // if this token is for a specific server or we don't have a portal\n // don't get the portal info because we cant get the authorizedCrossOriginDomains\n if (this.server || !this.portal) {\n return Promise.resolve(this);\n }\n return this.getPortal().then(function (portalInfo) {\n /**\n * Specific domains can be configured as secure.esri.com or https://secure.esri.com this\n * normalizes to https://secure.esri.com so we can use startsWith later.\n */\n if (portalInfo.authorizedCrossOriginDomains &&\n portalInfo.authorizedCrossOriginDomains.length) {\n _this.trustedDomains = portalInfo.authorizedCrossOriginDomains\n .filter(function (d) { return !d.startsWith(\"http://\"); })\n .map(function (d) {\n if (d.startsWith(\"https://\")) {\n return d;\n }\n else {\n return \"https://\" + d;\n }\n });\n }\n return _this;\n });\n };\n return UserSession;\n}());\nexport { UserSession };\n//# sourceMappingURL=UserSession.js.map","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n.configuration-container {\r\n @apply w-full\r\n h-full\r\n relative;\r\n}\r\n\r\n.configuration {\r\n @apply absolute\r\n top-0\r\n right-0\r\n bottom-0\r\n left-0\r\n flex\r\n p-2\r\n border-lightgray;\r\n}\r\n\r\n.config-tabs {\r\n @apply w-full;\r\n}\r\n\r\n.config-tab {\r\n @apply w-full;\r\n}\r\n\r\n.config-solution {\r\n @apply\r\n absolute\r\n top-14\r\n -right-px\r\n -bottom-px\r\n -left-px\r\n flex\r\n p-2;\r\n}\r\n\r\n.config-inventory {\r\n @apply inline\r\n flex-grow-0\r\n overflow-y-auto\r\n max-w-min;\r\n}\r\n\r\n.config-inventory-hide {\r\n @apply flex-grow-0\r\n overflow-y-auto\r\n max-w-min\r\n hidden;\r\n}\r\n\r\n.config-item {\r\n @apply inline\r\n flex-grow\r\n overflow-y-auto\r\n relative\r\n m-inline-start-2;\r\n}\r\n\r\nsolution-contents {\r\n @apply relative\r\n h-full;\r\n}\r\n\r\nsolution-item {\r\n @apply relative\r\n h-full;\r\n}\r\n\r\nsolution-spatial-ref {\r\n @apply w-full\r\n h-full\r\n relative\r\n overflow-y-auto;\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Element, h, Host, Listen, Method, Prop, State, VNode, Watch } from \"@stencil/core\";\r\nimport { IInventoryItem, IItemTemplateEdit, ISolutionSpatialReferenceInfo } from \"../../utils/interfaces\";\r\nimport * as utils from \"../../utils/templates\";\r\nimport state from \"../../utils/solution-store\";\r\nimport { getProp, UserSession } from \"@esri/solution-common\";\r\nimport \"@esri/calcite-components\";\r\nimport SolutionConfiguration_T9n from \"../../assets/t9n/solution-configuration/resources.json\";\r\nimport { getLocaleComponentStrings } from \"../../utils/locale\";\r\n\r\n@Component({\r\n tag: \"solution-configuration\",\r\n styleUrl: \"solution-configuration.scss\",\r\n shadow: false\r\n})\r\nexport class SolutionConfiguration {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionConfigurationElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Credentials for requests\r\n */\r\n @Prop({ mutable: true }) authentication = new UserSession({});\r\n\r\n /**\r\n * Contains the current solution item id\r\n */\r\n @Prop({ mutable: true, reflect: true }) solutionItemId = \"\";\r\n\r\n @Watch(\"solutionItemId\") async valueWatchHandler(): Promise<void> {\r\n await this._loadSolution(this.solutionItemId);\r\n }\r\n\r\n /**\r\n * Used to show/hide loading indicator\r\n */\r\n @Prop({ mutable: true, reflect: true }) showLoading = false;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n constructor() {\r\n void this._loadSolution(this.solutionItemId);\r\n\r\n window.addEventListener(\"solutionStoreHasChanges\",\r\n (evt) => {\r\n this._updateSaveability(\r\n this._solutionStoreHasChanges = (evt as any).detail, this._solutionEditorHasChanges, this._solutionEditorHasErrors);\r\n }\r\n );\r\n window.addEventListener(\"solutionEditorHasChanges\",\r\n (evt) => {\r\n this._updateSaveability(\r\n this._solutionStoreHasChanges, this._solutionEditorHasChanges = (evt as any).detail, this._solutionEditorHasErrors);\r\n }\r\n );\r\n window.addEventListener(\"solutionEditorHasErrors\",\r\n (evt) => {\r\n this._updateSaveability(\r\n this._solutionStoreHasChanges, this._solutionEditorHasChanges, this._solutionEditorHasErrors = (evt as any).detail);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n *\r\n * @returns Promise when complete\r\n */\r\n async componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n const wkid = getProp(state.getStoreInfo(\"spatialReferenceInfo\"), \"spatialReference\");\r\n const hasServices: boolean = state.getStoreInfo(\"featureServices\").length > 0;\r\n return (\r\n <Host>\r\n {\r\n !this._solutionIsLoaded\r\n ? <calcite-loader active label='' />\r\n : null\r\n }\r\n <div class=\"configuration-container\">\r\n <div class=\"configuration\">\r\n <calcite-tabs class=\"config-tabs\">\r\n <calcite-tab-nav slot=\"tab-nav\">\r\n <calcite-tab-title>{this._translations.definitionTab}</calcite-tab-title>\r\n {hasServices ?\r\n <calcite-tab-title>{this._translations.spatialReferenceTab}</calcite-tab-title> :\r\n null\r\n }\r\n </calcite-tab-nav>\r\n <calcite-tab active class=\"config-tab\">\r\n <div class=\"config-solution\">\r\n <div class={this._treeOpen ? \"config-inventory\" : \"config-inventory-hide\"}>\r\n <solution-contents\r\n id=\"configInventory\"\r\n key={`${this.solutionItemId}-contents`}\r\n ref={(el) => (this._solutionContentsComponent = el)}\r\n />\r\n </div>\r\n <calcite-button\r\n appearance=\"transparent\"\r\n class=\"collapse-btn\"\r\n icon-start={this._treeOpen ? \"chevrons-left\" : \"chevrons-right\"}\r\n id=\"collapse-vars\"\r\n onClick={() => this._toggleTree()}\r\n scale=\"s\"\r\n title={this._treeOpen ? this._translations.collapse : this._translations.expand}\r\n />\r\n <div class=\"config-item\">\r\n <solution-item\r\n authentication={this.authentication}\r\n item-id={this._currentEditItemId}\r\n key={`${this.solutionItemId}-item`}\r\n organization-variables={this._organizationVariables}\r\n solution-item-id={this.solutionItemId}\r\n solution-variables={this._solutionVariables}\r\n />\r\n </div>\r\n </div>\r\n </calcite-tab>\r\n {\r\n hasServices\r\n ? <calcite-tab class=\"config-tab\">\r\n <div class=\"config-solution\">\r\n <solution-spatial-ref\r\n defaultWkid={wkid}\r\n id=\"configure-solution-spatial-ref\"\r\n key={`${this.solutionItemId}-spatial-ref`}\r\n locked={!wkid}\r\n services={state.getStoreInfo(\"featureServices\").map(fs => fs.name)}\r\n />\r\n </div>\r\n </calcite-tab>\r\n : null\r\n }\r\n </calcite-tabs>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the current item we are working with\r\n */\r\n @State() protected _currentEditItemId = \"\";\r\n\r\n @State() protected _organizationVariables = \"\";\r\n\r\n @State() protected _solutionContentsComponent: HTMLSolutionContentsElement;\r\n\r\n @State() protected _solutionIsLoaded = false;\r\n\r\n @State() protected _solutionVariables = \"\";\r\n\r\n /**\r\n * Contains the hierarchy of template items for the current solution.\r\n */\r\n @State() protected _templateHierarchy: IInventoryItem[] = [];\r\n\r\n /**\r\n * Contains the _translations for this component.\r\n * All UI strings should be defined here.\r\n */\r\n @State() protected _translations: typeof SolutionConfiguration_T9n;\r\n\r\n /**\r\n * Used to show/hide the content tree\r\n */\r\n @State() protected _treeOpen = true;\r\n\r\n protected _solutionStoreHasChanges = false;\r\n\r\n protected _solutionEditorHasChanges = false;\r\n\r\n protected _solutionEditorHasErrors = false;\r\n\r\n protected _canSave = false;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Listen(\"solutionItemSelected\", { target: \"window\" })\r\n _solutionItemSelected(event: CustomEvent): void {\r\n this._currentEditItemId = event.detail;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Events\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Public Methods (async)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /*\r\n @Method()\r\n async getEditModels(): Promise<ISolutionItems> {\r\n return Promise.resolve(state.items);\r\n }\r\n */\r\n\r\n @Method()\r\n async getSpatialReferenceInfo(): Promise<ISolutionSpatialReferenceInfo> {\r\n return Promise.resolve(state.getStoreInfo(\"spatialReferenceInfo\"));\r\n }\r\n\r\n /*\r\n @Method()\r\n async getSourceTemplates(): Promise<any> {\r\n return Promise.resolve(this._templates);\r\n }\r\n */\r\n\r\n @Method()\r\n async saveSolution(): Promise<void> {\r\n this._solutionIsLoaded = false;\r\n await state.saveSolution();\r\n this._solutionIsLoaded = true;\r\n this.solutionItemId = null;\r\n }\r\n\r\n @Method()\r\n async unloadSolution(): Promise<void> {\r\n this.solutionItemId = null;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Update the store with the initial values\r\n *\r\n * @param templates the solution items templates\r\n * @param isReset (defaults to false) indicates if we are resetting the controls after save\r\n */\r\n /*\r\n protected _initState(\r\n templates: any[],\r\n isReset = false\r\n ): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n if (isReset) {\r\n // clear models and state so we can refresh after save\r\n this.modelsSet = false;\r\n state.reset();\r\n }\r\n getModels(templates, this.authentication, this.solutionItemId).then(models => {\r\n state.models = models;\r\n\r\n state.featureServices = getFeatureServices(templates);\r\n state.getStoreInfo(\"spatialReferenceInfo\") = getSpatialReferenceInfo(state.featureServices, this._sourceItemData);\r\n\r\n if (isReset) {\r\n // reset for undo/redo stack and diff editor tracking\r\n const jsonEditors = Array.from(this.el.getElementsByTagName(\"json-editor\"));\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n jsonEditors.forEach(e => void e.reset());\r\n }\r\n\r\n this.modelsSet = true;\r\n resolve(true);\r\n }, () => reject);\r\n });\r\n }\r\n */\r\n\r\n /**\r\n * Set Props with the initial values\r\n *\r\n * @protected\r\n */\r\n protected _initProps(): void {\r\n const solutionData = state.getStoreInfo(\"solutionData\");\r\n\r\n this._solutionVariables = JSON.stringify(utils.getSolutionVariables(solutionData.templates, this._translations));\r\n this._organizationVariables = JSON.stringify(utils.getOrganizationVariables(this._translations));\r\n\r\n this._templateHierarchy = [...utils.getInventoryItems(solutionData.templates)];\r\n\r\n if (this._solutionContentsComponent) {\r\n this._solutionContentsComponent.templateHierarchy = this._templateHierarchy;\r\n }\r\n\r\n let firstItem: IItemTemplateEdit;\r\n if (this._templateHierarchy.length > 0) {\r\n // Start with the first item in the contents\r\n firstItem = state.getItemInfo(this._templateHierarchy[0].id);\r\n }\r\n this._currentEditItemId = firstItem ? firstItem.itemId : \"\";\r\n }\r\n\r\n /**\r\n * Loads a solution.\r\n *\r\n * @param solutionItemId AGO id of solution to load\r\n *\r\n * @returns Resolved promise when task is done\r\n *\r\n * @protected\r\n */\r\n protected async _loadSolution(solutionItemId: string): Promise<void> {\r\n if (solutionItemId) {\r\n this._solutionIsLoaded = false;\r\n await state.loadSolution(solutionItemId, this.authentication);\r\n this._initProps();\r\n this._solutionIsLoaded = true;\r\n } else {\r\n this._reset();\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Resets internal variables.\r\n *\r\n * @protected\r\n */\r\n protected _reset(): void {\r\n this._currentEditItemId = \"\";\r\n this._organizationVariables = \"\";\r\n this._solutionVariables = \"\";\r\n this._templateHierarchy = [];\r\n }\r\n\r\n /**\r\n * Toggle _treeOpen prop to show/hide content tree.\r\n *\r\n * @protected\r\n */\r\n protected _toggleTree(): void {\r\n this._treeOpen = !this._treeOpen;\r\n }\r\n\r\n /**\r\n * Dispatches an event indicating if the configuration is saveable or not. It's not saveable if there are no\r\n * changes or if there's an error in the JSON editor.\r\n *\r\n * @param solutionStoreHasChanges Are there changes in the configuration editor's internal store?\r\n * @param solutionEditorHasChanges Are there changes in the configuration editor's JSON editor?\r\n * @param solutionEditorHasErrors Are there errors in the configuration editor's JSON editor?\r\n *\r\n * @protected\r\n */\r\n protected _updateSaveability(\r\n solutionStoreHasChanges: boolean,\r\n solutionEditorHasChanges: boolean,\r\n solutionEditorHasErrors: boolean\r\n ): void {\r\n const updateSaveability = (solutionStoreHasChanges || solutionEditorHasChanges) && !solutionEditorHasErrors;\r\n\r\n if (this._canSave !== updateSaveability) {\r\n window.dispatchEvent(new CustomEvent(\"solutionCanSave\", {\r\n detail: updateSaveability,\r\n bubbles: true,\r\n cancelable: false,\r\n composed: true\r\n }));\r\n }\r\n\r\n this._canSave = updateSaveability;\r\n }\r\n\r\n /**\r\n * Save all edits from the current configuration\r\n *\r\n * @returns a response that will indicate success or failure and any associated messages\r\n */\r\n /*\r\n protected async _save() {\r\n const templateUpdates = await this._updateTemplates();\r\n const data = this._setSrInfo(templateUpdates.templates);\r\n return templateUpdates.errors.length === 0 ? save(\r\n this.solutionItemId,\r\n data,\r\n state.models,\r\n this.authentication,\r\n this._translations\r\n ).then(saveResult => {\r\n // need to trigger re-render...and re-fetch\r\n this._fetchData = true;\r\n this.modelsSet = false;\r\n return Promise.resolve(saveResult)\r\n }).catch(e => Promise.reject(e)) : Promise.reject({\r\n success: false,\r\n message: `The following templates have errors: ${templateUpdates.errors.join(\", \")}`\r\n } as IResponse);\r\n }\r\n */\r\n\r\n /**\r\n * Update the solutions templates based on the stored changes\r\n *\r\n * @returns an object that contains the updated templates as well as any errors that were found\r\n */\r\n /*\r\n protected async _updateTemplates(): Promise<IUpdateTemplateResponse> {\r\n const errors = [];\r\n const models = await this.getEditModels();\r\n let templates = this._updateGroupDependencies(models, this._templates);\r\n Object.keys(models).forEach(k => {\r\n const m = models[k];\r\n templates = templates.map(t => {\r\n if (t.itemId === m.itemId) {\r\n this._setItem(t, m);\r\n const hasDataError = this._setData(t, m);\r\n const hasPropError = this._setProps(t, m);\r\n if (hasDataError || hasPropError) {\r\n errors.push(m.itemId);\r\n }\r\n }\r\n return t;\r\n });\r\n });\r\n errors.concat(window.monaco.editor.getModelMarkers({}));\r\n return Promise.resolve({\r\n templates,\r\n errors\r\n });\r\n }\r\n */\r\n\r\n /**\r\n * Review all models and store itemIds that should be added or removed from group dependencies\r\n *\r\n * @param models the corresponding models for the current templates\r\n *\r\n * @returns group info (an object with keys of groupIds and\r\n * arrays of itemIds that should be added or removed from group dependencies)\r\n */\r\n /*\r\n protected _getGroupInfo(\r\n models: any\r\n ): any {\r\n const groupInfo = {}\r\n Object.keys(models).forEach(k => {\r\n const m = models[k];\r\n if (m.shareInfo) {\r\n const groupId = m.shareInfo.groupId;\r\n const type = m.shareInfo.shared ? \"share\" : \"unshare\";\r\n if (groupInfo[groupId]) {\r\n groupInfo[groupId][type].push(m.itemId);\r\n } else {\r\n groupInfo[groupId] = {};\r\n groupInfo[groupId][type] = [m.itemId];\r\n if (m.shareInfo.shared) {\r\n groupInfo[groupId][\"unshare\"] = [];\r\n } else {\r\n groupInfo[groupId][\"share\"] = [];\r\n }\r\n }\r\n }\r\n });\r\n return groupInfo;\r\n }\r\n */\r\n\r\n /**\r\n * Updates group dependency arrays by adding or removing itemIds\r\n *\r\n * @param templates the current templates to update\r\n * @param models the corresponding models for the current templates\r\n *\r\n * @returns updated templates array\r\n */\r\n /*\r\n protected _updateGroupDependencies(\r\n models: any,\r\n templates: any[]\r\n ): any[] {\r\n const groupInfo = this._getGroupInfo(models);\r\n Object.keys(groupInfo).forEach(k => {\r\n templates.some(t => {\r\n if (t.itemId === k) {\r\n // add share items as deps\r\n groupInfo[k].share.forEach(s => {\r\n if (t.dependencies.indexOf(s) < 0) {\r\n t.dependencies.push(s);\r\n }\r\n });\r\n\r\n // remove unshare items from deps\r\n groupInfo[k].unshare.forEach(s => {\r\n const index = t.dependencies.indexOf(s);\r\n if (index > -1) {\r\n t.dependencies.splice(index, 1);\r\n }\r\n });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n })\r\n return templates;\r\n }\r\n */\r\n\r\n /**\r\n * Add group IDs to items that should be shared\r\n * This function will update the provided template when shareInfo is available\r\n *\r\n * @param template the current template to update\r\n * @param shareInfo the corresponding shareInfo from the model for the current template\r\n *\r\n */\r\n /*\r\n protected _updateItemGroups(\r\n template: any,\r\n shareInfo: any\r\n ): void {\r\n if (shareInfo) {\r\n const groupIndex = template.groups.indexOf(shareInfo.groupId);\r\n if (groupIndex < 0 && shareInfo.shared) {\r\n template.groups.push(shareInfo.groupId);\r\n }\r\n if (groupIndex > -1 && !shareInfo.shared) {\r\n template.groups.splice(groupIndex, 1);\r\n }\r\n }\r\n }\r\n */\r\n\r\n /**\r\n * Set a templates data property with changes from the models\r\n *\r\n * @param template the current template to update\r\n * @param model the corresponding model for the current template (stores any user changes)\r\n *\r\n * @returns a boolean that indicates if any errors were detected\r\n */\r\n /*\r\n protected _setData(\r\n template: any,\r\n model: any\r\n ): boolean {\r\n return this._setTemplateProp(\r\n template,\r\n model.dataOriginalValue,\r\n model.dataCurrentValue,\r\n \"data\"\r\n );\r\n }\r\n */\r\n\r\n /**\r\n * Set a templates properties property with changes from the models\r\n *\r\n * @param template the current template to update\r\n * @param model the corresponding model for the current template (stores any user changes)\r\n *\r\n * @returns a boolean that indicates if any errors were detected\r\n */\r\n /*\r\n protected _setProps(\r\n template: any,\r\n model: any\r\n ): boolean {\r\n return this._setTemplateProp(\r\n template,\r\n model.propsOriginalValue,\r\n model.propsCurrentValue,\r\n \"properties\"\r\n );\r\n }\r\n */\r\n\r\n /**\r\n * Generic function used to set properties or data property on a given template\r\n *\r\n * @param template the current template to update\r\n * @param originValue the original value from the solution template\r\n * @param modelValue the current value from the model (will contain any edits that have been made)\r\n * @param path the path to the property we should update if any changes are found\r\n *\r\n * @returns a boolean that indicates if any errors were detected\r\n */\r\n /*\r\n protected _setTemplateProp(\r\n template: any,\r\n originValue: any,\r\n modelValue: any,\r\n path: string\r\n ): boolean {\r\n let hasError = false;\r\n try {\r\n const _originValue = JSON.parse(originValue);\r\n const _modelValue = JSON.parse(modelValue);\r\n\r\n if (_originValue && _modelValue && (JSON.stringify(_originValue) !== JSON.stringify(_modelValue))) {\r\n setProp(template, path, _modelValue);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n hasError = true;\r\n }\r\n return hasError;\r\n }\r\n */\r\n\r\n /**\r\n * Set a templates item property with changes from the models\r\n *\r\n * @param template the current template to update\r\n * @param model the corresponding model for the current template (stores any user changes)\r\n *\r\n * This function will update the template argument when edits are found\r\n */\r\n /*\r\n protected _setItem(\r\n template: any,\r\n model: any\r\n ): void {\r\n this._updateItemGroups(template, model.shareInfo);\r\n if (model.updateItemValues && Object.keys(model.updateItemValues).length > 0) {\r\n Object.keys(model.updateItemValues).forEach(k => {\r\n template.item[k] = model.updateItemValues[k];\r\n });\r\n }\r\n }\r\n */\r\n\r\n /**\r\n * Set spatial reference info in the solutions data\r\n *\r\n * @param templates a list of item templates from the solution\r\n *\r\n * @returns a cloned copy of the solutions data that has been updated with spatial reference info\r\n *\r\n */\r\n /*\r\n protected _setSrInfo(\r\n templates: any[]\r\n ): any {\r\n const srInfo: any = state.getStoreInfo(\"spatialReferenceInfo\");\r\n\r\n const serviceEnabled = typeof srInfo?.services === \"undefined\" ?\r\n false : Object.keys(srInfo.services).some(k => srInfo.services[k]);\r\n\r\n const data = cloneObject(this._sourceItemData);\r\n data.templates = templates;\r\n if (srInfo && srInfo.enabled && serviceEnabled) {\r\n const wkid = srInfo.spatialReference.wkid.toString();\r\n\r\n const wkidParam = {\r\n \"label\": \"Spatial Reference\",\r\n \"default\": wkid,\r\n \"valueType\": \"spatialReference\",\r\n \"attributes\": {\r\n \"required\": \"true\"\r\n }\r\n };\r\n\r\n const params = getProp(data, \"params\");\r\n const hasWkid = params && params.wkid;\r\n setCreateProp(\r\n data,\r\n hasWkid ? \"params.wkid.default\" : \"params.wkid\",\r\n hasWkid ? wkid : params ? wkidParam : wkid\r\n );\r\n } else if (!srInfo.enabled) {\r\n if (getProp(data, \"params.wkid\")) {\r\n delete (data.params.wkid);\r\n }\r\n }\r\n return data;\r\n }\r\n */\r\n\r\n /**\r\n * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof SolutionConfiguration_T9n;\r\n }\r\n}\r\n"],"version":3}
1
+ {"file":"solution-configuration.entry.js","mappings":"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","names":["utils.getSolutionVariables","utils.getOrganizationVariables","utils.getInventoryItems"],"sources":["./src/utils/templates.ts","./node_modules/@esri/arcgis-rest-request/dist/esm/utils/decode-query-string.js","./node_modules/@esri/arcgis-rest-auth/node_modules/tslib/tslib.es6.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/fetch-token.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/generate-token.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/federation-utils.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/validate-app-access.js","./node_modules/@esri/arcgis-rest-auth/dist/esm/UserSession.js","./src/components/solution-configuration/solution-configuration.scss?tag=solution-configuration","./src/components/solution-configuration/solution-configuration.tsx"],"sourcesContent":["/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/*\r\n | Helper functions to get required values from solutions templates\r\n*/\r\nimport {\r\n //EUpdateType,\r\n IInventoryItem,\r\n //IItemDetails,\r\n //IItemShare,\r\n IOrganizationVariableItem,\r\n //IResourcePath,\r\n //SolutionModels,\r\n //ISolutionSpatialReferenceInfo,\r\n IVariableItem\r\n} from '../utils/interfaces';\r\nimport {\r\n IItemTemplate\r\n} from '@esri/solution-common';\r\n\r\n//--------------------------------------------------------------------------\r\n//\r\n// Public Functions\r\n//\r\n//--------------------------------------------------------------------------\r\n\r\n/**\r\n * Sort the solution items\r\n *\r\n * @param templates a list of item templates from the solution\r\n *\r\n * @returns a sorted list of solution items\r\n */\r\nexport function getInventoryItems(\r\n templates: IItemTemplate[]\r\n): IInventoryItem[] {\r\n const hierarchy = getItemHierarchy(templates);\r\n const ids = hierarchy.reduce((prev, cur) => {\r\n prev.push(cur.id);\r\n return prev;\r\n }, []);\r\n return templates.reduce((prev, cur) => {\r\n if (ids.indexOf(cur.itemId) > -1) {\r\n const hierarchyItems = hierarchy.filter(hi => hi.id === cur.itemId);\r\n prev.push(_getItemFromTemplate(cur, templates, hierarchyItems[0].dependencies));\r\n }\r\n return prev;\r\n }, []);\r\n}\r\n\r\n/**\r\n * Create item hierarchy that will avoid issues from cylical dependencies\r\n *\r\n * @param templates a list of item templates from the solution\r\n *\r\n * @returns a hierarchy for item and item dependency display\r\n */\r\nexport function getItemHierarchy(\r\n templates: IItemTemplate[]\r\n): any[] {\r\n const hierarchy = [];\r\n\r\n // Get the template specified by id out of a list of templates\r\n function getTemplateInSolution(templates, id): any {\r\n const iTemplate = templates.findIndex((template) => id === template.itemId);\r\n return iTemplate >= 0 ? templates[iTemplate] : null;\r\n }\r\n\r\n // Hierarchically list the dependencies of specified node\r\n function traceItemId(id, accumulatedHierarchy, alreadyVisitedIds = []): void {\r\n // Get the dependencies of the node\r\n const template = getTemplateInSolution(templates, id);\r\n /* istanbul ignore else */\r\n if (template) {\r\n const templateEntry = {\r\n id,\r\n dependencies: []\r\n };\r\n\r\n // Visit each dependency, but only if this template is not in the alreadyVisitedIds list to avoid infinite loops\r\n /* istanbul ignore else */\r\n if (alreadyVisitedIds.indexOf(id) < 0) {\r\n // Add dependency to alreadyVisitedIds list\r\n alreadyVisitedIds.push(id);\r\n\r\n template.dependencies.forEach((dependencyId) => {\r\n // Remove dependency from list of templates to visit in the top-level loop\r\n const iDependencyTemplate = templateItemIds.indexOf(dependencyId);\r\n /* istanbul ignore else */\r\n if (iDependencyTemplate >= 0) {\r\n templateItemIds.splice(iDependencyTemplate, 1);\r\n }\r\n\r\n traceItemId(dependencyId, templateEntry.dependencies, alreadyVisitedIds);\r\n });\r\n }\r\n accumulatedHierarchy.push(templateEntry);\r\n }\r\n }\r\n\r\n // Start with top-level nodes and add in the rest of the nodes to catch cycles without top-level nodes\r\n let templateItemIds: string[] = _getTopLevelItemIds(templates);\r\n\r\n const otherItems = templates\r\n .filter((template) => templateItemIds.indexOf(template.itemId) < 0) // only keep non-top-level nodes\r\n .sort((a, b) => b.dependencies.length - a.dependencies.length); // sort so that nodes with more dependencies come first--reduces stubs\r\n\r\n templateItemIds = templateItemIds.concat(otherItems.map((template) => template.itemId));\r\n\r\n // Step through the list of nodes; we'll also remove nodes as we visit them\r\n let itemId = templateItemIds.shift();\r\n while (typeof itemId !== \"undefined\") {\r\n traceItemId(itemId, hierarchy);\r\n itemId = templateItemIds.shift();\r\n }\r\n\r\n return hierarchy;\r\n}\r\n\r\n/**\r\n * Explore the solution item templates for variables we will allow users to insert at runtime\r\n *\r\n * @param templates a list of item templates from the solution\r\n * @param translations nls translation object\r\n *\r\n * @returns a list of variables from the solution item templates\r\n */\r\nexport function getSolutionVariables(\r\n templates: any[],\r\n translations: any\r\n): IVariableItem[] {\r\n const vars: IVariableItem[] = [];\r\n templates.forEach(t => {\r\n const item = {\r\n id: t.itemId,\r\n title: t.item.title || t.item.name,\r\n type: t.type,\r\n value: undefined,\r\n dependencies: [{\r\n id: t.itemId,\r\n title: translations.itemId,\r\n value: `{{${t.itemId}.itemId}}`,\r\n }]\r\n };\r\n if (t.item.url) {\r\n item.dependencies.push({\r\n id: t.itemId,\r\n title: translations.url,\r\n value: `{{${t.itemId}.url}}`,\r\n });\r\n }\r\n if (t.type === \"Feature Service\") {\r\n // TODO need to set source service name var...\r\n // TODO need to set soure service shape field name \"{{d05b3cf1ffcb4a4fa677627dfb18609e.name}}.Shape\"\r\n item.dependencies.push({\r\n id: t.itemId,\r\n title: translations.solutionExtent,\r\n value: `{{${t.itemId}.solutionExtent}}`,\r\n })\r\n _addLayersOrTables(t.properties.layers || [], item, t, translations);\r\n _addLayersOrTables(t.properties.tables || [], item, t, translations);\r\n }\r\n vars.push(item);\r\n })\r\n\r\n return vars;\r\n}\r\n\r\n/**\r\n * Set key organization variables we will allow users to insert at runtime\r\n *\r\n * @param translations nls translation object\r\n *\r\n * @returns a list of variables for the organization\r\n */\r\nexport function getOrganizationVariables(\r\n translations: any\r\n): IOrganizationVariableItem[] {\r\n const orgVars: IOrganizationVariableItem[] = [{\r\n id: \"\",\r\n title: translations.geocodeUrl,\r\n value: \"{{organization.helperServices.geocode:getDefaultLocatorURL}}\"\r\n }, {\r\n id: \"\",\r\n title: translations.geometryUrl,\r\n value: \"{{organization.helperServices.geometry.url}}\"\r\n }, {\r\n id: \"\",\r\n title: translations.portalBaseUrl,\r\n value: \"{{portalBaseUrl}}\"\r\n }, {\r\n id: \"\",\r\n title: translations.routeUrl,\r\n value: \"{{organization.helperServices.route.url}}\"\r\n }, {\r\n id: \"\",\r\n title: translations.solutionItemExtent,\r\n value: \"{{solutionItemExtent}}\"\r\n }];\r\n return orgVars;\r\n}\r\n\r\n//--------------------------------------------------------------------------\r\n//\r\n// Private Functions\r\n//\r\n//--------------------------------------------------------------------------\r\n\r\n/**\r\n * Explore a solution item template for variables we will allow users to insert at runtime.\r\n * This function will update the item argument that is passed in with the var details.\r\n *\r\n * @param children a list of layers or tables from a template\r\n * @param item an object that store key details for a given variable\r\n * @param template one of the templates from the current solution\r\n * @param translations nls translations object\r\n *\r\n */\r\nfunction _addLayersOrTables(\r\n children: any[],\r\n item: any,\r\n template: any,\r\n translations: any\r\n): void {\r\n children.forEach(l => {\r\n const name = l.name && l.name.indexOf(\"||\") > -1 ? l.name.split(\"||\")[1].replace(\"}}\", \"\").trim() : l.name;\r\n\r\n item.dependencies.push({\r\n id: template.itemId,\r\n title: `${name} (${translations.id})`,\r\n value: `{{${template.itemId}.layer${l.id}.id}}`,\r\n });\r\n item.dependencies.push({\r\n id: template.itemId,\r\n title: `${name} (${translations.name})`,\r\n value: `{{${template.itemId}.layer${l.id}.name||${name}}}`,\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * Capture key details from the solution item template\r\n *\r\n * @param template one of the templates from the current solution\r\n * @param templates full list of templates\r\n * @param dependencies list of hierarchical dependencies\r\n *\r\n * @returns an IInventoryItem that is used by other components to work with this template\r\n */\r\nfunction _getItemFromTemplate(\r\n template: any,\r\n templates: any[],\r\n dependencies: any[]\r\n): IInventoryItem {\r\n return {\r\n id: template.itemId || \"\",\r\n title: template.item.title || \"\",\r\n dependencies: _getDependencies(dependencies, templates),\r\n type: template.item.type || \"\",\r\n typeKeywords: template.item.typeKeywords || []/*,\r\n solutionItem: {\r\n itemId: template.itemId,\r\n itemDetails: _getItemDetails(template.item, template.type === \"Group\"),\r\n isResource: _getIsResource(template),\r\n data: template.data,\r\n properties: template.properties,\r\n type: template.type,\r\n groupDetails: _getGroupDetails(template, templates)\r\n }*/\r\n };\r\n}\r\n\r\n/**\r\n * Capture key details from the solution item template\r\n *\r\n * @param dependencies list of dependencies from a template\r\n * @param templates full list of templates\r\n *\r\n * @returns a list of IInventoryItem that are used by other components to work with the templates\r\n */\r\nfunction _getDependencies(\r\n dependencies: any[],\r\n templates: any[]\r\n): IInventoryItem[] {\r\n const dependencyItems = [];\r\n const depIds = dependencies.reduce((prev, cur) => {\r\n prev.push(cur.id)\r\n dependencyItems.push(cur)\r\n return prev;\r\n }, []);\r\n return templates.reduce((prev, curr) => {\r\n const i = depIds.indexOf(curr.itemId);\r\n if (i > -1) {\r\n prev.push(_getItemFromTemplate(curr, templates, dependencyItems[i].dependencies));\r\n }\r\n return prev;\r\n }, []);\r\n}\r\n\r\n/**\r\n * Capture the key item details for a given template\r\n *\r\n * @param item the templates item\r\n * @param isGroup boolean to indicate if the item is a group\r\n * @param itemId the item id of the template\r\n *\r\n * @returns a IItemDetails object for the current item\r\n */\r\n/*\r\nfunction _getItemDetails(\r\n item: any,\r\n isGroup: boolean\r\n): IItemDetails {\r\n return {\r\n title: item.title || \"\",\r\n snippet: item.snippet || \"\",\r\n description: item.description || \"\",\r\n tags: item.tags || [],\r\n accessInformation: !isGroup ? item.accessInformation || \"\" : \"\",\r\n licenseInfo: !isGroup ? item.licenseInfo || \"\" : \"\"\r\n };\r\n}\r\n*/\r\n\r\n/**\r\n * Capture the key item details for a given group template\r\n *\r\n * @param template one of the templates from the current solution\r\n * @param templates full list of templates\r\n *\r\n * @returns a list of IItemShare objects\r\n */\r\n/*\r\nfunction _getGroupDetails(\r\n template: any,\r\n templates: any[]\r\n): IItemShare[] {\r\n return template.type === \"Group\" ? templates.reduce((prev, cur) => {\r\n if (cur.itemId !== template.itemId && cur.type !== \"Group\") {\r\n prev.push({\r\n id: cur.itemId,\r\n title: cur.item.name || cur.item.title,\r\n isShared: (cur.groups || []).indexOf(template.itemId) > -1,\r\n shareItem: (cur.groups || []).indexOf(template.itemId) > -1,\r\n type: cur.type,\r\n typeKeywords: cur.item.typeKeywords\r\n });\r\n }\r\n return prev;\r\n }, []) : [];\r\n}\r\n*/\r\n\r\n/**\r\n * Used to understand if we are dealing with a binary object that will support upload/download\r\n *\r\n * @param template one of the templates from the current solution\r\n *\r\n * @returns true if this item supports upload/download\r\n */\r\n/*\r\nfunction _getIsResource(\r\n template: any\r\n): boolean {\r\n return template.type !== \"Group\" && template.resources.some(r => r.indexOf(\"_info_thumbnail\") < 0) &&\r\n (template.data === null || JSON.stringify(template.data) === \"{}\");\r\n}\r\n*/\r\n\r\n/**\r\n * Sort the template ids based on their dependencies\r\n *\r\n * @param templates full list of templates\r\n *\r\n * @returns a list of Itop level item ids\r\n */\r\nfunction _getTopLevelItemIds(templates: IItemTemplate[]): string[] {\r\n // Find the top-level nodes. Start with all nodes, then remove those that other nodes depend on\r\n const topLevelItemCandidateIds = templates.map((template) => template.itemId);\r\n templates.forEach((template) => {\r\n (template.dependencies || []).forEach((dependencyId) => {\r\n const iNode = topLevelItemCandidateIds.indexOf(dependencyId);\r\n if (iNode >= 0) {\r\n // Node is somebody's dependency, so remove the node from the list of top-level nodes\r\n // If iNode == -1, then it's a shared dependency and it has already been removed\r\n topLevelItemCandidateIds.splice(iNode, 1);\r\n }\r\n });\r\n });\r\n return topLevelItemCandidateIds;\r\n}\r\n","/* Copyright (c) 2017-2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nexport function decodeParam(param) {\n var _a = param.split(\"=\"), key = _a[0], value = _a[1];\n return { key: decodeURIComponent(key), value: decodeURIComponent(value) };\n}\n/**\n * Decodes the passed query string as an object.\n *\n * @param query A string to be decoded.\n * @returns A decoded query param object.\n */\nexport function decodeQueryString(query) {\n return query\n .replace(/^#/, \"\")\n .split(\"&\")\n .reduce(function (acc, entry) {\n var _a = decodeParam(entry), key = _a.key, value = _a.value;\n acc[key] = value;\n return acc;\n }, {});\n}\n//# sourceMappingURL=decode-query-string.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* Copyright (c) 2017 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\nexport function fetchToken(url, requestOptions) {\n var options = requestOptions;\n // we generate a response, so we can't return the raw response\n options.rawResponse = false;\n return request(url, options).then(function (response) {\n var r = {\n token: response.access_token,\n username: response.username,\n expires: new Date(\n // convert seconds in response to milliseconds and add the value to the current time to calculate a static expiration timestamp\n Date.now() + (response.expires_in * 1000 - 1000)),\n ssl: response.ssl === true\n };\n if (response.refresh_token) {\n r.refreshToken = response.refresh_token;\n }\n return r;\n });\n}\n//# sourceMappingURL=fetch-token.js.map","/* Copyright (c) 2017-2018 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request, NODEJS_DEFAULT_REFERER_HEADER, } from \"@esri/arcgis-rest-request\";\nexport function generateToken(url, requestOptions) {\n var options = requestOptions;\n /* istanbul ignore else */\n if (typeof window !== \"undefined\" &&\n window.location &&\n window.location.host) {\n options.params.referer = window.location.host;\n }\n else {\n options.params.referer = NODEJS_DEFAULT_REFERER_HEADER;\n }\n return request(url, options);\n}\n//# sourceMappingURL=generate-token.js.map","import { cleanUrl } from \"@esri/arcgis-rest-request\";\n/**\n * Used to test if a URL is an ArcGIS Online URL\n */\nvar arcgisOnlineUrlRegex = /^https?:\\/\\/(\\S+)\\.arcgis\\.com.+/;\n/**\n * Used to test if a URL is production ArcGIS Online Portal\n */\nvar arcgisOnlinePortalRegex = /^https?:\\/\\/(dev|devext|qa|qaext|www)\\.arcgis\\.com\\/sharing\\/rest+/;\n/**\n * Used to test if a URL is an ArcGIS Online Organization Portal\n */\nvar arcgisOnlineOrgPortalRegex = /^https?:\\/\\/(?:[a-z0-9-]+\\.maps(dev|devext|qa|qaext)?)?.arcgis\\.com\\/sharing\\/rest/;\nexport function isOnline(url) {\n return arcgisOnlineUrlRegex.test(url);\n}\nexport function normalizeOnlinePortalUrl(portalUrl) {\n if (!arcgisOnlineUrlRegex.test(portalUrl)) {\n return portalUrl;\n }\n switch (getOnlineEnvironment(portalUrl)) {\n case \"dev\":\n return \"https://devext.arcgis.com/sharing/rest\";\n case \"qa\":\n return \"https://qaext.arcgis.com/sharing/rest\";\n default:\n return \"https://www.arcgis.com/sharing/rest\";\n }\n}\nexport function getOnlineEnvironment(url) {\n if (!arcgisOnlineUrlRegex.test(url)) {\n return null;\n }\n var match = url.match(arcgisOnlineUrlRegex);\n var subdomain = match[1].split(\".\").pop();\n if (subdomain.includes(\"dev\")) {\n return \"dev\";\n }\n if (subdomain.includes(\"qa\")) {\n return \"qa\";\n }\n return \"production\";\n}\nexport function isFederated(owningSystemUrl, portalUrl) {\n var normalizedPortalUrl = cleanUrl(normalizeOnlinePortalUrl(portalUrl)).replace(/https?:\\/\\//, \"\");\n var normalizedOwningSystemUrl = cleanUrl(owningSystemUrl).replace(/https?:\\/\\//, \"\");\n return new RegExp(normalizedOwningSystemUrl, \"i\").test(normalizedPortalUrl);\n}\nexport function canUseOnlineToken(portalUrl, requestUrl) {\n var portalIsOnline = isOnline(portalUrl);\n var requestIsOnline = isOnline(requestUrl);\n var portalEnv = getOnlineEnvironment(portalUrl);\n var requestEnv = getOnlineEnvironment(requestUrl);\n if (portalIsOnline && requestIsOnline && portalEnv === requestEnv) {\n return true;\n }\n return false;\n}\n//# sourceMappingURL=federation-utils.js.map","/* Copyright (c) 2018-2020 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { request } from \"@esri/arcgis-rest-request\";\n/**\n * Validates that the user has access to the application\n * and if they user should be presented a \"View Only\" mode\n *\n * This is only needed/valid for Esri applications that are \"licensed\"\n * and shipped in ArcGIS Online or ArcGIS Enterprise. Most custom applications\n * should not need or use this.\n *\n * ```js\n * import { validateAppAccess } from '@esri/arcgis-rest-auth';\n *\n * return validateAppAccess('your-token', 'theClientId')\n * .then((result) => {\n * if (!result.value) {\n * // redirect or show some other ui\n * } else {\n * if (result.viewOnlyUserTypeApp) {\n * // use this to inform your app to show a \"View Only\" mode\n * }\n * }\n * })\n * .catch((err) => {\n * // two possible errors\n * // invalid clientId: {\"error\":{\"code\":400,\"messageCode\":\"GWM_0007\",\"message\":\"Invalid request\",\"details\":[]}}\n * // invalid token: {\"error\":{\"code\":498,\"message\":\"Invalid token.\",\"details\":[]}}\n * })\n * ```\n *\n * Note: This is only usable by Esri applications hosted on *arcgis.com, *esri.com or within\n * an ArcGIS Enterprise installation. Custom applications can not use this.\n *\n * @param token platform token\n * @param clientId application client id\n * @param portal Optional\n */\nexport function validateAppAccess(token, clientId, portal) {\n if (portal === void 0) { portal = \"https://www.arcgis.com/sharing/rest\"; }\n var url = portal + \"/oauth2/validateAppAccess\";\n var ro = {\n method: \"POST\",\n params: {\n f: \"json\",\n client_id: clientId,\n token: token,\n },\n };\n return request(url, ro);\n}\n//# sourceMappingURL=validate-app-access.js.map","/* Copyright (c) 2017-2019 Environmental Systems Research Institute, Inc.\n * Apache-2.0 */\nimport { __assign } from \"tslib\";\nimport { request, ArcGISAuthError, cleanUrl, encodeQueryString, decodeQueryString, } from \"@esri/arcgis-rest-request\";\nimport { generateToken } from \"./generate-token\";\nimport { fetchToken } from \"./fetch-token\";\nimport { canUseOnlineToken, isFederated } from \"./federation-utils\";\nimport { validateAppAccess } from \"./validate-app-access\";\nfunction defer() {\n var deferred = {\n promise: null,\n resolve: null,\n reject: null,\n };\n deferred.promise = new Promise(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n}\n/**\n * ```js\n * import { UserSession } from '@esri/arcgis-rest-auth';\n * UserSession.beginOAuth2({\n * // register an app of your own to create a unique clientId\n * clientId: \"abc123\",\n * redirectUri: 'https://yourapp.com/authenticate.html'\n * })\n * .then(session)\n * // or\n * new UserSession({\n * username: \"jsmith\",\n * password: \"123456\"\n * })\n * // or\n * UserSession.deserialize(cache)\n * ```\n * Used to authenticate both ArcGIS Online and ArcGIS Enterprise users. `UserSession` includes helper methods for [OAuth 2.0](/arcgis-rest-js/guides/browser-authentication/) in both browser and server applications.\n */\nvar UserSession = /** @class */ (function () {\n function UserSession(options) {\n this.clientId = options.clientId;\n this._refreshToken = options.refreshToken;\n this._refreshTokenExpires = options.refreshTokenExpires;\n this.username = options.username;\n this.password = options.password;\n this._token = options.token;\n this._tokenExpires = options.tokenExpires;\n this.portal = options.portal\n ? cleanUrl(options.portal)\n : \"https://www.arcgis.com/sharing/rest\";\n this.ssl = options.ssl;\n this.provider = options.provider || \"arcgis\";\n this.tokenDuration = options.tokenDuration || 20160;\n this.redirectUri = options.redirectUri;\n this.refreshTokenTTL = options.refreshTokenTTL || 20160;\n this.server = options.server;\n this.federatedServers = {};\n this.trustedDomains = [];\n // if a non-federated server was passed explicitly, it should be trusted.\n if (options.server) {\n // if the url includes more than '/arcgis/', trim the rest\n var root = this.getServerRootUrl(options.server);\n this.federatedServers[root] = {\n token: options.token,\n expires: options.tokenExpires,\n };\n }\n this._pendingTokenRequests = {};\n }\n Object.defineProperty(UserSession.prototype, \"token\", {\n /**\n * The current ArcGIS Online or ArcGIS Enterprise `token`.\n */\n get: function () {\n return this._token;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"tokenExpires\", {\n /**\n * The expiration time of the current `token`.\n */\n get: function () {\n return this._tokenExpires;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"refreshToken\", {\n /**\n * The current token to ArcGIS Online or ArcGIS Enterprise.\n */\n get: function () {\n return this._refreshToken;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"refreshTokenExpires\", {\n /**\n * The expiration time of the current `refreshToken`.\n */\n get: function () {\n return this._refreshTokenExpires;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(UserSession.prototype, \"trustedServers\", {\n /**\n * Deprecated, use `federatedServers` instead.\n *\n * @deprecated\n */\n get: function () {\n console.log(\"DEPRECATED: use federatedServers instead\");\n return this.federatedServers;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Begins a new browser-based OAuth 2.0 sign in. If `options.popup` is `true` the\n * authentication window will open in a new tab/window and the function will return\n * Promise&lt;UserSession&gt;. Otherwise, the user will be redirected to the\n * authorization page in their current tab/window and the function will return `undefined`.\n *\n * @browserOnly\n */\n /* istanbul ignore next */\n UserSession.beginOAuth2 = function (options, win) {\n if (win === void 0) { win = window; }\n if (options.duration) {\n console.log(\"DEPRECATED: 'duration' is deprecated - use 'expiration' instead\");\n }\n var _a = __assign({\n portal: \"https://www.arcgis.com/sharing/rest\",\n provider: \"arcgis\",\n expiration: 20160,\n popup: true,\n popupWindowFeatures: \"height=400,width=600,menubar=no,location=yes,resizable=yes,scrollbars=yes,status=yes\",\n state: options.clientId,\n locale: \"\",\n }, options), portal = _a.portal, provider = _a.provider, clientId = _a.clientId, expiration = _a.expiration, redirectUri = _a.redirectUri, popup = _a.popup, popupWindowFeatures = _a.popupWindowFeatures, state = _a.state, locale = _a.locale, params = _a.params;\n var url;\n if (provider === \"arcgis\") {\n url = portal + \"/oauth2/authorize?client_id=\" + clientId + \"&response_type=token&expiration=\" + (options.duration || expiration) + \"&redirect_uri=\" + encodeURIComponent(redirectUri) + \"&state=\" + state + \"&locale=\" + locale;\n }\n else {\n url = portal + \"/oauth2/social/authorize?client_id=\" + clientId + \"&socialLoginProviderName=\" + provider + \"&autoAccountCreateForSocial=true&response_type=token&expiration=\" + (options.duration || expiration) + \"&redirect_uri=\" + encodeURIComponent(redirectUri) + \"&state=\" + state + \"&locale=\" + locale;\n }\n // append additional params\n if (params) {\n url = url + \"&\" + encodeQueryString(params);\n }\n if (!popup) {\n win.location.href = url;\n return undefined;\n }\n var session = defer();\n win[\"__ESRI_REST_AUTH_HANDLER_\" + clientId] = function (errorString, oauthInfoString) {\n if (errorString) {\n var error = JSON.parse(errorString);\n session.reject(new ArcGISAuthError(error.errorMessage, error.error));\n return;\n }\n if (oauthInfoString) {\n var oauthInfo = JSON.parse(oauthInfoString);\n session.resolve(new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: oauthInfo.ssl,\n token: oauthInfo.token,\n tokenExpires: new Date(oauthInfo.expires),\n username: oauthInfo.username,\n }));\n }\n };\n win.open(url, \"oauth-window\", popupWindowFeatures);\n return session.promise;\n };\n /**\n * Completes a browser-based OAuth 2.0 sign in. If `options.popup` is `true` the user\n * will be returned to the previous window. Otherwise a new `UserSession`\n * will be returned. You must pass the same values for `options.popup` and\n * `options.portal` as you used in `beginOAuth2()`.\n *\n * @browserOnly\n */\n /* istanbul ignore next */\n UserSession.completeOAuth2 = function (options, win) {\n if (win === void 0) { win = window; }\n var _a = __assign({ portal: \"https://www.arcgis.com/sharing/rest\", popup: true }, options), portal = _a.portal, clientId = _a.clientId, popup = _a.popup;\n function completeSignIn(error, oauthInfo) {\n try {\n var handlerFn = void 0;\n var handlerFnName = \"__ESRI_REST_AUTH_HANDLER_\" + clientId;\n if (popup) {\n // Guard b/c IE does not support window.opener\n if (win.opener) {\n if (win.opener.parent && win.opener.parent[handlerFnName]) {\n handlerFn = win.opener.parent[handlerFnName];\n }\n else if (win.opener && win.opener[handlerFnName]) {\n // support pop-out oauth from within an iframe\n handlerFn = win.opener[handlerFnName];\n }\n }\n else {\n // IE\n if (win !== win.parent && win.parent && win.parent[handlerFnName]) {\n handlerFn = win.parent[handlerFnName];\n }\n }\n // if we have a handler fn, call it and close the window\n if (handlerFn) {\n handlerFn(error ? JSON.stringify(error) : undefined, JSON.stringify(oauthInfo));\n win.close();\n return undefined;\n }\n }\n }\n catch (e) {\n throw new ArcGISAuthError(\"Unable to complete authentication. It's possible you specified popup based oAuth2 but no handler from \\\"beginOAuth2()\\\" present. This generally happens because the \\\"popup\\\" option differs between \\\"beginOAuth2()\\\" and \\\"completeOAuth2()\\\".\");\n }\n if (error) {\n throw new ArcGISAuthError(error.errorMessage, error.error);\n }\n return new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: oauthInfo.ssl,\n token: oauthInfo.token,\n tokenExpires: oauthInfo.expires,\n username: oauthInfo.username,\n });\n }\n var params = decodeQueryString(win.location.hash);\n if (!params.access_token) {\n var error = void 0;\n var errorMessage = \"Unknown error\";\n if (params.error) {\n error = params.error;\n errorMessage = params.error_description;\n }\n return completeSignIn({ error: error, errorMessage: errorMessage });\n }\n var token = params.access_token;\n var expires = new Date(Date.now() + parseInt(params.expires_in, 10) * 1000 - 60 * 1000);\n var username = params.username;\n var ssl = params.ssl === \"true\";\n return completeSignIn(undefined, {\n token: token,\n expires: expires,\n ssl: ssl,\n username: username,\n });\n };\n /**\n * Request session information from the parent application\n *\n * When an application is embedded into another application via an IFrame, the embedded app can\n * use `window.postMessage` to request credentials from the host application. This function wraps\n * that behavior.\n *\n * The ArcGIS API for Javascript has this built into the Identity Manager as of the 4.19 release.\n *\n * Note: The parent application will not respond if the embedded app's origin is not:\n * - the same origin as the parent or *.arcgis.com (JSAPI)\n * - in the list of valid child origins (REST-JS)\n *\n *\n * @param parentOrigin origin of the parent frame. Passed into the embedded application as `parentOrigin` query param\n * @browserOnly\n */\n UserSession.fromParent = function (parentOrigin, win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n // Declare handler outside of promise scope so we can detach it\n var handler;\n // return a promise that will resolve when the handler receives\n // session information from the correct origin\n return new Promise(function (resolve, reject) {\n // create an event handler that just wraps the parentMessageHandler\n handler = function (event) {\n // ensure we only listen to events from the parent\n if (event.source === win.parent && event.data) {\n try {\n return resolve(UserSession.parentMessageHandler(event));\n }\n catch (err) {\n return reject(err);\n }\n }\n };\n // add listener\n win.addEventListener(\"message\", handler, false);\n win.parent.postMessage({ type: \"arcgis:auth:requestCredential\" }, parentOrigin);\n }).then(function (session) {\n win.removeEventListener(\"message\", handler, false);\n return session;\n });\n };\n /**\n * Begins a new server-based OAuth 2.0 sign in. This will redirect the user to\n * the ArcGIS Online or ArcGIS Enterprise authorization page.\n *\n * @nodeOnly\n */\n UserSession.authorize = function (options, response) {\n if (options.duration) {\n console.log(\"DEPRECATED: 'duration' is deprecated - use 'expiration' instead\");\n }\n var _a = __assign({ portal: \"https://arcgis.com/sharing/rest\", expiration: 20160 }, options), portal = _a.portal, clientId = _a.clientId, expiration = _a.expiration, redirectUri = _a.redirectUri;\n response.writeHead(301, {\n Location: portal + \"/oauth2/authorize?client_id=\" + clientId + \"&expiration=\" + (options.duration || expiration) + \"&response_type=code&redirect_uri=\" + encodeURIComponent(redirectUri),\n });\n response.end();\n };\n /**\n * Completes the server-based OAuth 2.0 sign in process by exchanging the `authorizationCode`\n * for a `access_token`.\n *\n * @nodeOnly\n */\n UserSession.exchangeAuthorizationCode = function (options, authorizationCode) {\n var _a = __assign({\n portal: \"https://www.arcgis.com/sharing/rest\",\n refreshTokenTTL: 20160,\n }, options), portal = _a.portal, clientId = _a.clientId, redirectUri = _a.redirectUri, refreshTokenTTL = _a.refreshTokenTTL;\n return fetchToken(portal + \"/oauth2/token\", {\n params: {\n grant_type: \"authorization_code\",\n client_id: clientId,\n redirect_uri: redirectUri,\n code: authorizationCode,\n },\n }).then(function (response) {\n return new UserSession({\n clientId: clientId,\n portal: portal,\n ssl: response.ssl,\n redirectUri: redirectUri,\n refreshToken: response.refreshToken,\n refreshTokenTTL: refreshTokenTTL,\n refreshTokenExpires: new Date(Date.now() + (refreshTokenTTL - 1) * 60 * 1000),\n token: response.token,\n tokenExpires: response.expires,\n username: response.username,\n });\n });\n };\n UserSession.deserialize = function (str) {\n var options = JSON.parse(str);\n return new UserSession({\n clientId: options.clientId,\n refreshToken: options.refreshToken,\n refreshTokenExpires: new Date(options.refreshTokenExpires),\n username: options.username,\n password: options.password,\n token: options.token,\n tokenExpires: new Date(options.tokenExpires),\n portal: options.portal,\n ssl: options.ssl,\n tokenDuration: options.tokenDuration,\n redirectUri: options.redirectUri,\n refreshTokenTTL: options.refreshTokenTTL,\n });\n };\n /**\n * Translates authentication from the format used in the [ArcGIS API for JavaScript](https://developers.arcgis.com/javascript/).\n *\n * ```js\n * UserSession.fromCredential({\n * userId: \"jsmith\",\n * token: \"secret\"\n * });\n * ```\n *\n * @returns UserSession\n */\n UserSession.fromCredential = function (credential) {\n // At ArcGIS Online 9.1, credentials no longer include the ssl and expires properties\n // Here, we provide default values for them to cover this condition\n var ssl = typeof credential.ssl !== \"undefined\" ? credential.ssl : true;\n var expires = credential.expires || Date.now() + 7200000; /* 2 hours */\n return new UserSession({\n portal: credential.server.includes(\"sharing/rest\")\n ? credential.server\n : credential.server + \"/sharing/rest\",\n ssl: ssl,\n token: credential.token,\n username: credential.userId,\n tokenExpires: new Date(expires),\n });\n };\n /**\n * Handle the response from the parent\n * @param event DOM Event\n */\n UserSession.parentMessageHandler = function (event) {\n if (event.data.type === \"arcgis:auth:credential\") {\n return UserSession.fromCredential(event.data.credential);\n }\n if (event.data.type === \"arcgis:auth:error\") {\n var err = new Error(event.data.error.message);\n err.name = event.data.error.name;\n throw err;\n }\n else {\n throw new Error(\"Unknown message type.\");\n }\n };\n /**\n * Returns authentication in a format useable in the [ArcGIS API for JavaScript](https://developers.arcgis.com/javascript/).\n *\n * ```js\n * esriId.registerToken(session.toCredential());\n * ```\n *\n * @returns ICredential\n */\n UserSession.prototype.toCredential = function () {\n return {\n expires: this.tokenExpires.getTime(),\n server: this.portal,\n ssl: this.ssl,\n token: this.token,\n userId: this.username,\n };\n };\n /**\n * Returns information about the currently logged in [user](https://developers.arcgis.com/rest/users-groups-and-items/user.htm). Subsequent calls will *not* result in additional web traffic.\n *\n * ```js\n * session.getUser()\n * .then(response => {\n * console.log(response.role); // \"org_admin\"\n * })\n * ```\n *\n * @param requestOptions - Options for the request. NOTE: `rawResponse` is not supported by this operation.\n * @returns A Promise that will resolve with the data from the response.\n */\n UserSession.prototype.getUser = function (requestOptions) {\n var _this = this;\n if (this._pendingUserRequest) {\n return this._pendingUserRequest;\n }\n else if (this._user) {\n return Promise.resolve(this._user);\n }\n else {\n var url = this.portal + \"/community/self\";\n var options = __assign(__assign({ httpMethod: \"GET\", authentication: this }, requestOptions), { rawResponse: false });\n this._pendingUserRequest = request(url, options).then(function (response) {\n _this._user = response;\n _this._pendingUserRequest = null;\n return response;\n });\n return this._pendingUserRequest;\n }\n };\n /**\n * Returns information about the currently logged in user's [portal](https://developers.arcgis.com/rest/users-groups-and-items/portal-self.htm). Subsequent calls will *not* result in additional web traffic.\n *\n * ```js\n * session.getPortal()\n * .then(response => {\n * console.log(portal.name); // \"City of ...\"\n * })\n * ```\n *\n * @param requestOptions - Options for the request. NOTE: `rawResponse` is not supported by this operation.\n * @returns A Promise that will resolve with the data from the response.\n */\n UserSession.prototype.getPortal = function (requestOptions) {\n var _this = this;\n if (this._pendingPortalRequest) {\n return this._pendingPortalRequest;\n }\n else if (this._portalInfo) {\n return Promise.resolve(this._portalInfo);\n }\n else {\n var url = this.portal + \"/portals/self\";\n var options = __assign(__assign({ httpMethod: \"GET\", authentication: this }, requestOptions), { rawResponse: false });\n this._pendingPortalRequest = request(url, options).then(function (response) {\n _this._portalInfo = response;\n _this._pendingPortalRequest = null;\n return response;\n });\n return this._pendingPortalRequest;\n }\n };\n /**\n * Returns the username for the currently logged in [user](https://developers.arcgis.com/rest/users-groups-and-items/user.htm). Subsequent calls will *not* result in additional web traffic. This is also used internally when a username is required for some requests but is not present in the options.\n *\n * * ```js\n * session.getUsername()\n * .then(response => {\n * console.log(response); // \"casey_jones\"\n * })\n * ```\n */\n UserSession.prototype.getUsername = function () {\n if (this.username) {\n return Promise.resolve(this.username);\n }\n else if (this._user) {\n return Promise.resolve(this._user.username);\n }\n else {\n return this.getUser().then(function (user) {\n return user.username;\n });\n }\n };\n /**\n * Gets an appropriate token for the given URL. If `portal` is ArcGIS Online and\n * the request is to an ArcGIS Online domain `token` will be used. If the request\n * is to the current `portal` the current `token` will also be used. However if\n * the request is to an unknown server we will validate the server with a request\n * to our current `portal`.\n */\n UserSession.prototype.getToken = function (url, requestOptions) {\n if (canUseOnlineToken(this.portal, url)) {\n return this.getFreshToken(requestOptions);\n }\n else if (new RegExp(this.portal, \"i\").test(url)) {\n return this.getFreshToken(requestOptions);\n }\n else {\n return this.getTokenForServer(url, requestOptions);\n }\n };\n /**\n * Get application access information for the current user\n * see `validateAppAccess` function for details\n *\n * @param clientId application client id\n */\n UserSession.prototype.validateAppAccess = function (clientId) {\n return this.getToken(this.portal).then(function (token) {\n return validateAppAccess(token, clientId);\n });\n };\n UserSession.prototype.toJSON = function () {\n return {\n clientId: this.clientId,\n refreshToken: this.refreshToken,\n refreshTokenExpires: this.refreshTokenExpires,\n username: this.username,\n password: this.password,\n token: this.token,\n tokenExpires: this.tokenExpires,\n portal: this.portal,\n ssl: this.ssl,\n tokenDuration: this.tokenDuration,\n redirectUri: this.redirectUri,\n refreshTokenTTL: this.refreshTokenTTL,\n };\n };\n UserSession.prototype.serialize = function () {\n return JSON.stringify(this);\n };\n /**\n * For a \"Host\" app that embeds other platform apps via iframes, after authenticating the user\n * and creating a UserSession, the app can then enable \"post message\" style authentication by calling\n * this method.\n *\n * Internally this adds an event listener on window for the `message` event\n *\n * @param validChildOrigins Array of origins that are allowed to request authentication from the host app\n */\n UserSession.prototype.enablePostMessageAuth = function (validChildOrigins, win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n this._hostHandler = this.createPostMessageHandler(validChildOrigins);\n win.addEventListener(\"message\", this._hostHandler, false);\n };\n /**\n * For a \"Host\" app that has embedded other platform apps via iframes, when the host needs\n * to transition routes, it should call `UserSession.disablePostMessageAuth()` to remove\n * the event listener and prevent memory leaks\n */\n UserSession.prototype.disablePostMessageAuth = function (win) {\n /* istanbul ignore next: must pass in a mockwindow for tests so we can't cover the other branch */\n if (!win && window) {\n win = window;\n }\n win.removeEventListener(\"message\", this._hostHandler, false);\n };\n /**\n * Manually refreshes the current `token` and `tokenExpires`.\n */\n UserSession.prototype.refreshSession = function (requestOptions) {\n // make sure subsequent calls to getUser() don't returned cached metadata\n this._user = null;\n if (this.username && this.password) {\n return this.refreshWithUsernameAndPassword(requestOptions);\n }\n if (this.clientId && this.refreshToken) {\n return this.refreshWithRefreshToken();\n }\n return Promise.reject(new ArcGISAuthError(\"Unable to refresh token.\"));\n };\n /**\n * Determines the root of the ArcGIS Server or Portal for a given URL.\n *\n * @param url the URl to determine the root url for.\n */\n UserSession.prototype.getServerRootUrl = function (url) {\n var root = cleanUrl(url).split(/\\/rest(\\/admin)?\\/services(?:\\/|#|\\?|$)/)[0];\n var _a = root.match(/(https?:\\/\\/)(.+)/), match = _a[0], protocol = _a[1], domainAndPath = _a[2];\n var _b = domainAndPath.split(\"/\"), domain = _b[0], path = _b.slice(1);\n // only the domain is lowercased because in some cases an org id might be\n // in the path which cannot be lowercased.\n return \"\" + protocol + domain.toLowerCase() + \"/\" + path.join(\"/\");\n };\n /**\n * Returns the proper [`credentials`] option for `fetch` for a given domain.\n * See [trusted server](https://enterprise.arcgis.com/en/portal/latest/administer/windows/configure-security.htm#ESRI_SECTION1_70CC159B3540440AB325BE5D89DBE94A).\n * Used internally by underlying request methods to add support for specific security considerations.\n *\n * @param url The url of the request\n * @returns \"include\" or \"same-origin\"\n */\n UserSession.prototype.getDomainCredentials = function (url) {\n if (!this.trustedDomains || !this.trustedDomains.length) {\n return \"same-origin\";\n }\n return this.trustedDomains.some(function (domainWithProtocol) {\n return url.startsWith(domainWithProtocol);\n })\n ? \"include\"\n : \"same-origin\";\n };\n /**\n * Return a function that closes over the validOrigins array and\n * can be used as an event handler for the `message` event\n *\n * @param validOrigins Array of valid origins\n */\n UserSession.prototype.createPostMessageHandler = function (validOrigins) {\n var _this = this;\n // return a function that closes over the validOrigins and\n // has access to the credential\n return function (event) {\n // Verify that the origin is valid\n // Note: do not use regex's here. validOrigins is an array so we're checking that the event's origin\n // is in the array via exact match. More info about avoiding postMessage xss issues here\n // https://jlajara.gitlab.io/web/2020/07/17/Dom_XSS_PostMessage_2.html#tipsbypasses-in-postmessage-vulnerabilities\n var isValidOrigin = validOrigins.indexOf(event.origin) > -1;\n // JSAPI handles this slightly differently - instead of checking a list, it will respond if\n // event.origin === window.location.origin || event.origin.endsWith('.arcgis.com')\n // For Hub, and to enable cross domain debugging with port's in urls, we are opting to\n // use a list of valid origins\n // Ensure the message type is something we want to handle\n var isValidType = event.data.type === \"arcgis:auth:requestCredential\";\n var isTokenValid = _this.tokenExpires.getTime() > Date.now();\n if (isValidOrigin && isValidType) {\n var msg = {};\n if (isTokenValid) {\n var credential = _this.toCredential();\n // arcgis:auth:error with {name: \"\", message: \"\"}\n // the following line allows us to conform to our spec without changing other depended-on functionality\n // https://github.com/Esri/arcgis-rest-js/blob/master/packages/arcgis-rest-auth/post-message-auth-spec.md#arcgisauthcredential\n credential.server = credential.server.replace(\"/sharing/rest\", \"\");\n msg = { type: \"arcgis:auth:credential\", credential: credential };\n }\n else {\n // Return an error\n msg = {\n type: \"arcgis:auth:error\",\n error: {\n name: \"tokenExpiredError\",\n message: \"Session token was expired, and not returned to the child application\",\n },\n };\n }\n event.source.postMessage(msg, event.origin);\n }\n };\n };\n /**\n * Validates that a given URL is properly federated with our current `portal`.\n * Attempts to use the internal `federatedServers` cache first.\n */\n UserSession.prototype.getTokenForServer = function (url, requestOptions) {\n var _this = this;\n // requests to /rest/services/ and /rest/admin/services/ are both valid\n // Federated servers may have inconsistent casing, so lowerCase it\n var root = this.getServerRootUrl(url);\n var existingToken = this.federatedServers[root];\n if (existingToken &&\n existingToken.expires &&\n existingToken.expires.getTime() > Date.now()) {\n return Promise.resolve(existingToken.token);\n }\n if (this._pendingTokenRequests[root]) {\n return this._pendingTokenRequests[root];\n }\n this._pendingTokenRequests[root] = this.fetchAuthorizedDomains().then(function () {\n return request(root + \"/rest/info\", {\n credentials: _this.getDomainCredentials(url),\n })\n .then(function (response) {\n if (response.owningSystemUrl) {\n /**\n * if this server is not owned by this portal\n * bail out with an error since we know we wont\n * be able to generate a token\n */\n if (!isFederated(response.owningSystemUrl, _this.portal)) {\n throw new ArcGISAuthError(url + \" is not federated with \" + _this.portal + \".\", \"NOT_FEDERATED\");\n }\n else {\n /**\n * if the server is federated, use the relevant token endpoint.\n */\n return request(response.owningSystemUrl + \"/sharing/rest/info\", requestOptions);\n }\n }\n else if (response.authInfo &&\n _this.federatedServers[root] !== undefined) {\n /**\n * if its a stand-alone instance of ArcGIS Server that doesn't advertise\n * federation, but the root server url is recognized, use its built in token endpoint.\n */\n return Promise.resolve({\n authInfo: response.authInfo,\n });\n }\n else {\n throw new ArcGISAuthError(url + \" is not federated with any portal and is not explicitly trusted.\", \"NOT_FEDERATED\");\n }\n })\n .then(function (response) {\n return response.authInfo.tokenServicesUrl;\n })\n .then(function (tokenServicesUrl) {\n // an expired token cant be used to generate a new token\n if (_this.token && _this.tokenExpires.getTime() > Date.now()) {\n return generateToken(tokenServicesUrl, {\n params: {\n token: _this.token,\n serverUrl: url,\n expiration: _this.tokenDuration,\n client: \"referer\",\n },\n });\n // generate an entirely fresh token if necessary\n }\n else {\n return generateToken(tokenServicesUrl, {\n params: {\n username: _this.username,\n password: _this.password,\n expiration: _this.tokenDuration,\n client: \"referer\",\n },\n }).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = new Date(response.expires);\n return response;\n });\n }\n })\n .then(function (response) {\n _this.federatedServers[root] = {\n expires: new Date(response.expires),\n token: response.token,\n };\n delete _this._pendingTokenRequests[root];\n return response.token;\n });\n });\n return this._pendingTokenRequests[root];\n };\n /**\n * Returns an unexpired token for the current `portal`.\n */\n UserSession.prototype.getFreshToken = function (requestOptions) {\n var _this = this;\n if (this.token && !this.tokenExpires) {\n return Promise.resolve(this.token);\n }\n if (this.token &&\n this.tokenExpires &&\n this.tokenExpires.getTime() > Date.now()) {\n return Promise.resolve(this.token);\n }\n if (!this._pendingTokenRequests[this.portal]) {\n this._pendingTokenRequests[this.portal] = this.refreshSession(requestOptions).then(function (session) {\n _this._pendingTokenRequests[_this.portal] = null;\n return session.token;\n });\n }\n return this._pendingTokenRequests[this.portal];\n };\n /**\n * Refreshes the current `token` and `tokenExpires` with `username` and\n * `password`.\n */\n UserSession.prototype.refreshWithUsernameAndPassword = function (requestOptions) {\n var _this = this;\n var options = __assign({ params: {\n username: this.username,\n password: this.password,\n expiration: this.tokenDuration,\n } }, requestOptions);\n return generateToken(this.portal + \"/generateToken\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = new Date(response.expires);\n return _this;\n });\n };\n /**\n * Refreshes the current `token` and `tokenExpires` with `refreshToken`.\n */\n UserSession.prototype.refreshWithRefreshToken = function (requestOptions) {\n var _this = this;\n if (this.refreshToken &&\n this.refreshTokenExpires &&\n this.refreshTokenExpires.getTime() < Date.now()) {\n return this.refreshRefreshToken(requestOptions);\n }\n var options = __assign({ params: {\n client_id: this.clientId,\n refresh_token: this.refreshToken,\n grant_type: \"refresh_token\",\n } }, requestOptions);\n return fetchToken(this.portal + \"/oauth2/token\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = response.expires;\n return _this;\n });\n };\n /**\n * Exchanges an unexpired `refreshToken` for a new one, also updates `token` and\n * `tokenExpires`.\n */\n UserSession.prototype.refreshRefreshToken = function (requestOptions) {\n var _this = this;\n var options = __assign({ params: {\n client_id: this.clientId,\n refresh_token: this.refreshToken,\n redirect_uri: this.redirectUri,\n grant_type: \"exchange_refresh_token\",\n } }, requestOptions);\n return fetchToken(this.portal + \"/oauth2/token\", options).then(function (response) {\n _this._token = response.token;\n _this._tokenExpires = response.expires;\n _this._refreshToken = response.refreshToken;\n _this._refreshTokenExpires = new Date(Date.now() + (_this.refreshTokenTTL - 1) * 60 * 1000);\n return _this;\n });\n };\n /**\n * ensures that the authorizedCrossOriginDomains are obtained from the portal and cached\n * so we can check them later.\n *\n * @returns this\n */\n UserSession.prototype.fetchAuthorizedDomains = function () {\n var _this = this;\n // if this token is for a specific server or we don't have a portal\n // don't get the portal info because we cant get the authorizedCrossOriginDomains\n if (this.server || !this.portal) {\n return Promise.resolve(this);\n }\n return this.getPortal().then(function (portalInfo) {\n /**\n * Specific domains can be configured as secure.esri.com or https://secure.esri.com this\n * normalizes to https://secure.esri.com so we can use startsWith later.\n */\n if (portalInfo.authorizedCrossOriginDomains &&\n portalInfo.authorizedCrossOriginDomains.length) {\n _this.trustedDomains = portalInfo.authorizedCrossOriginDomains\n .filter(function (d) { return !d.startsWith(\"http://\"); })\n .map(function (d) {\n if (d.startsWith(\"https://\")) {\n return d;\n }\n else {\n return \"https://\" + d;\n }\n });\n }\n return _this;\n });\n };\n return UserSession;\n}());\nexport { UserSession };\n//# sourceMappingURL=UserSession.js.map","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n.configuration-container {\r\n @apply w-full\r\n h-full\r\n relative;\r\n}\r\n\r\n.configuration {\r\n @apply absolute\r\n top-0\r\n right-0\r\n bottom-0\r\n left-0\r\n flex\r\n p-2\r\n border-lightgray;\r\n}\r\n\r\n.config-tabs {\r\n @apply w-full;\r\n}\r\n\r\n.config-tab {\r\n @apply w-full;\r\n}\r\n\r\n.config-solution {\r\n @apply\r\n absolute\r\n top-14\r\n -right-px\r\n -bottom-px\r\n -left-px\r\n flex\r\n p-2;\r\n}\r\n\r\n.config-inventory {\r\n @apply inline\r\n flex-grow-0\r\n overflow-y-auto\r\n max-w-min;\r\n}\r\n\r\n.config-inventory-hide {\r\n @apply flex-grow-0\r\n overflow-y-auto\r\n max-w-min\r\n hidden;\r\n}\r\n\r\n.config-item {\r\n @apply inline\r\n flex-grow\r\n overflow-y-auto\r\n relative\r\n m-inline-start-2;\r\n}\r\n\r\nsolution-contents {\r\n @apply relative\r\n h-full;\r\n}\r\n\r\nsolution-item {\r\n @apply relative\r\n h-full;\r\n}\r\n\r\nsolution-spatial-ref {\r\n @apply w-full\r\n h-full\r\n relative\r\n overflow-y-auto;\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Element, h, Host, Listen, Method, Prop, State, VNode, Watch } from \"@stencil/core\";\r\nimport { IInventoryItem, IItemTemplateEdit, ISolutionSpatialReferenceInfo } from \"../../utils/interfaces\";\r\nimport * as utils from \"../../utils/templates\";\r\nimport state from \"../../utils/solution-store\";\r\nimport { getProp, UserSession } from \"@esri/solution-common\";\r\nimport \"@esri/calcite-components\";\r\nimport SolutionConfiguration_T9n from \"../../assets/t9n/solution-configuration/resources.json\";\r\nimport { getLocaleComponentStrings } from \"../../utils/locale\";\r\n\r\n@Component({\r\n tag: \"solution-configuration\",\r\n styleUrl: \"solution-configuration.scss\",\r\n shadow: false\r\n})\r\nexport class SolutionConfiguration {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionConfigurationElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Credentials for requests\r\n */\r\n @Prop({ mutable: true }) authentication = new UserSession({});\r\n\r\n /**\r\n * Contains the current solution item id\r\n */\r\n @Prop({ mutable: true, reflect: true }) solutionItemId = \"\";\r\n\r\n @Watch(\"solutionItemId\") async valueWatchHandler(): Promise<void> {\r\n console.log(\"update solution config \" + this.solutionItemId);//???\r\n await this._loadSolution(this.solutionItemId);\r\n }\r\n\r\n /**\r\n * Used to show/hide loading indicator\r\n */\r\n @Prop({ mutable: true, reflect: true }) showLoading = false;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n constructor() {\r\n void this._loadSolution(this.solutionItemId);\r\n\r\n window.addEventListener(\"solutionStoreHasChanges\",\r\n (evt) => {\r\n this._updateSaveability(\r\n this._solutionStoreHasChanges = (evt as any).detail, this._solutionEditorHasChanges, this._solutionEditorHasErrors);\r\n }\r\n );\r\n window.addEventListener(\"solutionEditorHasChanges\",\r\n (evt) => {\r\n this._updateSaveability(\r\n this._solutionStoreHasChanges, this._solutionEditorHasChanges = (evt as any).detail, this._solutionEditorHasErrors);\r\n }\r\n );\r\n window.addEventListener(\"solutionEditorHasErrors\",\r\n (evt) => {\r\n this._updateSaveability(\r\n this._solutionStoreHasChanges, this._solutionEditorHasChanges, this._solutionEditorHasErrors = (evt as any).detail);\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n *\r\n * @returns Promise when complete\r\n */\r\n async componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n console.log(\"render solution config \" + this.solutionItemId);//???\r\n const wkid = getProp(state.getStoreInfo(\"spatialReferenceInfo\"), \"spatialReference\");\r\n const hasServices: boolean = state.getStoreInfo(\"featureServices\").length > 0;\r\n\r\n const solutionData = state.getStoreInfo(\"solutionData\");\r\n this._solutionVariables = JSON.stringify(utils.getSolutionVariables(solutionData.templates, this._translations));\r\n this._organizationVariables = JSON.stringify(utils.getOrganizationVariables(this._translations));\r\n\r\n return (\r\n <Host>\r\n {\r\n !this._solutionIsLoaded\r\n ? <calcite-loader active label='' />\r\n : null\r\n }\r\n <div class=\"configuration-container\">\r\n <div class=\"configuration\">\r\n <calcite-tabs class=\"config-tabs\">\r\n <calcite-tab-nav slot=\"tab-nav\">\r\n <calcite-tab-title>{this._translations.definitionTab}</calcite-tab-title>\r\n {hasServices ?\r\n <calcite-tab-title>{this._translations.spatialReferenceTab}</calcite-tab-title> :\r\n null\r\n }\r\n </calcite-tab-nav>\r\n <calcite-tab active class=\"config-tab\">\r\n <div class=\"config-solution\">\r\n <div class={this._treeOpen ? \"config-inventory\" : \"config-inventory-hide\"}>\r\n <solution-contents\r\n id=\"configInventory\"\r\n key={`${this.solutionItemId}-contents`}\r\n ref={(el) => (this._solutionContentsComponent = el)}\r\n />\r\n </div>\r\n <calcite-button\r\n appearance=\"transparent\"\r\n class=\"collapse-btn\"\r\n icon-start={this._treeOpen ? \"chevrons-left\" : \"chevrons-right\"}\r\n id=\"collapse-vars\"\r\n onClick={() => this._toggleTree()}\r\n scale=\"s\"\r\n title={this._treeOpen ? this._translations.collapse : this._translations.expand}\r\n />\r\n <div class=\"config-item\">\r\n <solution-item\r\n authentication={this.authentication}\r\n item-id={this._currentEditItemId}\r\n key={`${this.solutionItemId}-item`}\r\n organization-variables={this._organizationVariables}\r\n solution-item-id={this.solutionItemId}\r\n solution-variables={this._solutionVariables}\r\n />\r\n </div>\r\n </div>\r\n </calcite-tab>\r\n {\r\n hasServices\r\n ? <calcite-tab class=\"config-tab\">\r\n <div class=\"config-solution\">\r\n <solution-spatial-ref\r\n defaultWkid={wkid}\r\n id=\"configure-solution-spatial-ref\"\r\n key={`${this.solutionItemId}-spatial-ref`}\r\n locked={!wkid}\r\n services={state.getStoreInfo(\"featureServices\").map(fs => fs.name)}\r\n />\r\n </div>\r\n </calcite-tab>\r\n : null\r\n }\r\n </calcite-tabs>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the current item we are working with\r\n */\r\n @State() protected _currentEditItemId = \"\";\r\n\r\n @State() protected _organizationVariables = \"\";\r\n\r\n @State() protected _solutionContentsComponent: HTMLSolutionContentsElement;\r\n\r\n @State() protected _solutionIsLoaded = false;\r\n\r\n @State() protected _solutionVariables = \"\";\r\n\r\n /**\r\n * Contains the hierarchy of template items for the current solution.\r\n */\r\n @State() protected _templateHierarchy: IInventoryItem[] = [];\r\n\r\n /**\r\n * Contains the _translations for this component.\r\n * All UI strings should be defined here.\r\n */\r\n @State() protected _translations: typeof SolutionConfiguration_T9n;\r\n\r\n /**\r\n * Used to show/hide the content tree\r\n */\r\n @State() protected _treeOpen = true;\r\n\r\n protected _solutionStoreHasChanges = false;\r\n\r\n protected _solutionEditorHasChanges = false;\r\n\r\n protected _solutionEditorHasErrors = false;\r\n\r\n protected _canSave = false;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Listen(\"solutionItemSelected\", { target: \"window\" })\r\n _solutionItemSelected(event: CustomEvent): void {\r\n this._currentEditItemId = event.detail;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Events\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Public Methods (async)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /*\r\n @Method()\r\n async getEditModels(): Promise<ISolutionItems> {\r\n return Promise.resolve(state.items);\r\n }\r\n */\r\n\r\n @Method()\r\n async getSpatialReferenceInfo(): Promise<ISolutionSpatialReferenceInfo> {\r\n return Promise.resolve(state.getStoreInfo(\"spatialReferenceInfo\"));\r\n }\r\n\r\n /*\r\n @Method()\r\n async getSourceTemplates(): Promise<any> {\r\n return Promise.resolve(this._templates);\r\n }\r\n */\r\n\r\n @Method()\r\n async saveSolution(): Promise<void> {\r\n this._solutionIsLoaded = false;\r\n await state.saveSolution();\r\n this._solutionIsLoaded = true;\r\n this.solutionItemId = null;\r\n }\r\n\r\n @Method()\r\n async unloadSolution(): Promise<void> {\r\n this.solutionItemId = null;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Update the store with the initial values\r\n *\r\n * @param templates the solution items templates\r\n * @param isReset (defaults to false) indicates if we are resetting the controls after save\r\n */\r\n /*\r\n protected _initState(\r\n templates: any[],\r\n isReset = false\r\n ): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n if (isReset) {\r\n // clear models and state so we can refresh after save\r\n this.modelsSet = false;\r\n state.reset();\r\n }\r\n getModels(templates, this.authentication, this.solutionItemId).then(models => {\r\n state.models = models;\r\n\r\n state.featureServices = getFeatureServices(templates);\r\n state.getStoreInfo(\"spatialReferenceInfo\") = getSpatialReferenceInfo(state.featureServices, this._sourceItemData);\r\n\r\n if (isReset) {\r\n // reset for undo/redo stack and diff editor tracking\r\n const jsonEditors = Array.from(this.el.getElementsByTagName(\"json-editor\"));\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n jsonEditors.forEach(e => void e.reset());\r\n }\r\n\r\n this.modelsSet = true;\r\n resolve(true);\r\n }, () => reject);\r\n });\r\n }\r\n */\r\n\r\n /**\r\n * Set Props with the initial values\r\n *\r\n * @protected\r\n */\r\n protected _initProps(): void {\r\n const solutionData = state.getStoreInfo(\"solutionData\");\r\n\r\n this._templateHierarchy = [...utils.getInventoryItems(solutionData.templates)];\r\n\r\n if (this._solutionContentsComponent) {\r\n this._solutionContentsComponent.templateHierarchy = this._templateHierarchy;\r\n }\r\n\r\n let firstItem: IItemTemplateEdit;\r\n if (this._templateHierarchy.length > 0) {\r\n // Start with the first item in the contents\r\n firstItem = state.getItemInfo(this._templateHierarchy[0].id);\r\n console.log(\"init with first item \" + firstItem.itemId);//???\r\n } else { console.log(\"no initial first item\");//???\r\n }\r\n this._currentEditItemId = firstItem ? firstItem.itemId : \"\";\r\n }\r\n\r\n /**\r\n * Loads a solution.\r\n *\r\n * @param solutionItemId AGO id of solution to load\r\n *\r\n * @returns Resolved promise when task is done\r\n *\r\n * @protected\r\n */\r\n protected async _loadSolution(solutionItemId: string): Promise<void> {\r\n if (solutionItemId) {\r\n this._solutionIsLoaded = false;\r\n await state.loadSolution(solutionItemId, this.authentication);\r\n this._initProps();\r\n this._solutionIsLoaded = true;\r\n } else {\r\n this._reset();\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Resets internal variables.\r\n *\r\n * @protected\r\n */\r\n protected _reset(): void {\r\n this._currentEditItemId = \"\";\r\n this._organizationVariables = \"\";\r\n this._solutionVariables = \"\";\r\n this._templateHierarchy = [];\r\n }\r\n\r\n /**\r\n * Toggle _treeOpen prop to show/hide content tree.\r\n *\r\n * @protected\r\n */\r\n protected _toggleTree(): void {\r\n this._treeOpen = !this._treeOpen;\r\n }\r\n\r\n /**\r\n * Dispatches an event indicating if the configuration is saveable or not. It's not saveable if there are no\r\n * changes or if there's an error in the JSON editor.\r\n *\r\n * @param solutionStoreHasChanges Are there changes in the configuration editor's internal store?\r\n * @param solutionEditorHasChanges Are there changes in the configuration editor's JSON editor?\r\n * @param solutionEditorHasErrors Are there errors in the configuration editor's JSON editor?\r\n *\r\n * @protected\r\n */\r\n protected _updateSaveability(\r\n solutionStoreHasChanges: boolean,\r\n solutionEditorHasChanges: boolean,\r\n solutionEditorHasErrors: boolean\r\n ): void {\r\n const updateSaveability = (solutionStoreHasChanges || solutionEditorHasChanges) && !solutionEditorHasErrors;\r\n\r\n if (this._canSave !== updateSaveability) {\r\n window.dispatchEvent(new CustomEvent(\"solutionCanSave\", {\r\n detail: updateSaveability,\r\n bubbles: true,\r\n cancelable: false,\r\n composed: true\r\n }));\r\n }\r\n\r\n this._canSave = updateSaveability;\r\n }\r\n\r\n /**\r\n * Save all edits from the current configuration\r\n *\r\n * @returns a response that will indicate success or failure and any associated messages\r\n */\r\n /*\r\n protected async _save() {\r\n const templateUpdates = await this._updateTemplates();\r\n const data = this._setSrInfo(templateUpdates.templates);\r\n return templateUpdates.errors.length === 0 ? save(\r\n this.solutionItemId,\r\n data,\r\n state.models,\r\n this.authentication,\r\n this._translations\r\n ).then(saveResult => {\r\n // need to trigger re-render...and re-fetch\r\n this._fetchData = true;\r\n this.modelsSet = false;\r\n return Promise.resolve(saveResult)\r\n }).catch(e => Promise.reject(e)) : Promise.reject({\r\n success: false,\r\n message: `The following templates have errors: ${templateUpdates.errors.join(\", \")}`\r\n } as IResponse);\r\n }\r\n */\r\n\r\n /**\r\n * Update the solutions templates based on the stored changes\r\n *\r\n * @returns an object that contains the updated templates as well as any errors that were found\r\n */\r\n /*\r\n protected async _updateTemplates(): Promise<IUpdateTemplateResponse> {\r\n const errors = [];\r\n const models = await this.getEditModels();\r\n let templates = this._updateGroupDependencies(models, this._templates);\r\n Object.keys(models).forEach(k => {\r\n const m = models[k];\r\n templates = templates.map(t => {\r\n if (t.itemId === m.itemId) {\r\n this._setItem(t, m);\r\n const hasDataError = this._setData(t, m);\r\n const hasPropError = this._setProps(t, m);\r\n if (hasDataError || hasPropError) {\r\n errors.push(m.itemId);\r\n }\r\n }\r\n return t;\r\n });\r\n });\r\n errors.concat(window.monaco.editor.getModelMarkers({}));\r\n return Promise.resolve({\r\n templates,\r\n errors\r\n });\r\n }\r\n */\r\n\r\n /**\r\n * Review all models and store itemIds that should be added or removed from group dependencies\r\n *\r\n * @param models the corresponding models for the current templates\r\n *\r\n * @returns group info (an object with keys of groupIds and\r\n * arrays of itemIds that should be added or removed from group dependencies)\r\n */\r\n /*\r\n protected _getGroupInfo(\r\n models: any\r\n ): any {\r\n const groupInfo = {}\r\n Object.keys(models).forEach(k => {\r\n const m = models[k];\r\n if (m.shareInfo) {\r\n const groupId = m.shareInfo.groupId;\r\n const type = m.shareInfo.shared ? \"share\" : \"unshare\";\r\n if (groupInfo[groupId]) {\r\n groupInfo[groupId][type].push(m.itemId);\r\n } else {\r\n groupInfo[groupId] = {};\r\n groupInfo[groupId][type] = [m.itemId];\r\n if (m.shareInfo.shared) {\r\n groupInfo[groupId][\"unshare\"] = [];\r\n } else {\r\n groupInfo[groupId][\"share\"] = [];\r\n }\r\n }\r\n }\r\n });\r\n return groupInfo;\r\n }\r\n */\r\n\r\n /**\r\n * Updates group dependency arrays by adding or removing itemIds\r\n *\r\n * @param templates the current templates to update\r\n * @param models the corresponding models for the current templates\r\n *\r\n * @returns updated templates array\r\n */\r\n /*\r\n protected _updateGroupDependencies(\r\n models: any,\r\n templates: any[]\r\n ): any[] {\r\n const groupInfo = this._getGroupInfo(models);\r\n Object.keys(groupInfo).forEach(k => {\r\n templates.some(t => {\r\n if (t.itemId === k) {\r\n // add share items as deps\r\n groupInfo[k].share.forEach(s => {\r\n if (t.dependencies.indexOf(s) < 0) {\r\n t.dependencies.push(s);\r\n }\r\n });\r\n\r\n // remove unshare items from deps\r\n groupInfo[k].unshare.forEach(s => {\r\n const index = t.dependencies.indexOf(s);\r\n if (index > -1) {\r\n t.dependencies.splice(index, 1);\r\n }\r\n });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n })\r\n return templates;\r\n }\r\n */\r\n\r\n /**\r\n * Add group IDs to items that should be shared\r\n * This function will update the provided template when shareInfo is available\r\n *\r\n * @param template the current template to update\r\n * @param shareInfo the corresponding shareInfo from the model for the current template\r\n *\r\n */\r\n /*\r\n protected _updateItemGroups(\r\n template: any,\r\n shareInfo: any\r\n ): void {\r\n if (shareInfo) {\r\n const groupIndex = template.groups.indexOf(shareInfo.groupId);\r\n if (groupIndex < 0 && shareInfo.shared) {\r\n template.groups.push(shareInfo.groupId);\r\n }\r\n if (groupIndex > -1 && !shareInfo.shared) {\r\n template.groups.splice(groupIndex, 1);\r\n }\r\n }\r\n }\r\n */\r\n\r\n /**\r\n * Set a templates data property with changes from the models\r\n *\r\n * @param template the current template to update\r\n * @param model the corresponding model for the current template (stores any user changes)\r\n *\r\n * @returns a boolean that indicates if any errors were detected\r\n */\r\n /*\r\n protected _setData(\r\n template: any,\r\n model: any\r\n ): boolean {\r\n return this._setTemplateProp(\r\n template,\r\n model.dataOriginalValue,\r\n model.dataCurrentValue,\r\n \"data\"\r\n );\r\n }\r\n */\r\n\r\n /**\r\n * Set a templates properties property with changes from the models\r\n *\r\n * @param template the current template to update\r\n * @param model the corresponding model for the current template (stores any user changes)\r\n *\r\n * @returns a boolean that indicates if any errors were detected\r\n */\r\n /*\r\n protected _setProps(\r\n template: any,\r\n model: any\r\n ): boolean {\r\n return this._setTemplateProp(\r\n template,\r\n model.propsOriginalValue,\r\n model.propsCurrentValue,\r\n \"properties\"\r\n );\r\n }\r\n */\r\n\r\n /**\r\n * Generic function used to set properties or data property on a given template\r\n *\r\n * @param template the current template to update\r\n * @param originValue the original value from the solution template\r\n * @param modelValue the current value from the model (will contain any edits that have been made)\r\n * @param path the path to the property we should update if any changes are found\r\n *\r\n * @returns a boolean that indicates if any errors were detected\r\n */\r\n /*\r\n protected _setTemplateProp(\r\n template: any,\r\n originValue: any,\r\n modelValue: any,\r\n path: string\r\n ): boolean {\r\n let hasError = false;\r\n try {\r\n const _originValue = JSON.parse(originValue);\r\n const _modelValue = JSON.parse(modelValue);\r\n\r\n if (_originValue && _modelValue && (JSON.stringify(_originValue) !== JSON.stringify(_modelValue))) {\r\n setProp(template, path, _modelValue);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n hasError = true;\r\n }\r\n return hasError;\r\n }\r\n */\r\n\r\n /**\r\n * Set a templates item property with changes from the models\r\n *\r\n * @param template the current template to update\r\n * @param model the corresponding model for the current template (stores any user changes)\r\n *\r\n * This function will update the template argument when edits are found\r\n */\r\n /*\r\n protected _setItem(\r\n template: any,\r\n model: any\r\n ): void {\r\n this._updateItemGroups(template, model.shareInfo);\r\n if (model.updateItemValues && Object.keys(model.updateItemValues).length > 0) {\r\n Object.keys(model.updateItemValues).forEach(k => {\r\n template.item[k] = model.updateItemValues[k];\r\n });\r\n }\r\n }\r\n */\r\n\r\n /**\r\n * Set spatial reference info in the solutions data\r\n *\r\n * @param templates a list of item templates from the solution\r\n *\r\n * @returns a cloned copy of the solutions data that has been updated with spatial reference info\r\n *\r\n */\r\n /*\r\n protected _setSrInfo(\r\n templates: any[]\r\n ): any {\r\n const srInfo: any = state.getStoreInfo(\"spatialReferenceInfo\");\r\n\r\n const serviceEnabled = typeof srInfo?.services === \"undefined\" ?\r\n false : Object.keys(srInfo.services).some(k => srInfo.services[k]);\r\n\r\n const data = cloneObject(this._sourceItemData);\r\n data.templates = templates;\r\n if (srInfo && srInfo.enabled && serviceEnabled) {\r\n const wkid = srInfo.spatialReference.wkid.toString();\r\n\r\n const wkidParam = {\r\n \"label\": \"Spatial Reference\",\r\n \"default\": wkid,\r\n \"valueType\": \"spatialReference\",\r\n \"attributes\": {\r\n \"required\": \"true\"\r\n }\r\n };\r\n\r\n const params = getProp(data, \"params\");\r\n const hasWkid = params && params.wkid;\r\n setCreateProp(\r\n data,\r\n hasWkid ? \"params.wkid.default\" : \"params.wkid\",\r\n hasWkid ? wkid : params ? wkidParam : wkid\r\n );\r\n } else if (!srInfo.enabled) {\r\n if (getProp(data, \"params.wkid\")) {\r\n delete (data.params.wkid);\r\n }\r\n }\r\n return data;\r\n }\r\n */\r\n\r\n /**\r\n * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof SolutionConfiguration_T9n;\r\n }\r\n}\r\n"],"version":3}