@esri/solutions-components 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (531) 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 +1095 -4
  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-f0547fe7.js → solution-store-893499a5.js} +8 -1
  8. package/dist/cjs/solution-store-893499a5.js.map +1 -0
  9. package/dist/collection/components/solution-configuration/solution-configuration.js +14 -11
  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 +1095 -4
  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-c1f6173a.js → solution-store-0c58c852.js} +4 -2
  25. package/dist/esm/solution-store-0c58c852.js.map +1 -0
  26. package/dist/solutions-components/{p-065830b8.js → p-659edb14.js} +4 -2
  27. package/dist/solutions-components/p-659edb14.js.map +1 -0
  28. package/dist/solutions-components/{p-ee9be0ef.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-90629c1d.entry.js +1986 -0
  31. package/dist/solutions-components/p-90629c1d.entry.js.map +1 -0
  32. package/dist/solutions-components/{p-0e7a0839.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 -7
  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-f0547fe7.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 -1141
  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-c1f6173a.js.map +0 -1
  527. package/dist/solutions-components/p-065830b8.js.map +0 -1
  528. package/dist/solutions-components/p-0e7a0839.entry.js.map +0 -1
  529. package/dist/solutions-components/p-401541a5.entry.js +0 -895
  530. package/dist/solutions-components/p-401541a5.entry.js.map +0 -1
  531. package/dist/solutions-components/p-ee9be0ef.entry.js.map +0 -1
@@ -1 +0,0 @@
1
- {"file":"solution-configuration.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;AAkCA;AACA;AACA;AACA;AACA;AAEA;;;;;;;SAOgB,iBAAiB,CAC/B,SAA0B;EAE1B,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;EAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG;IACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,IAAI,CAAC;GACb,EAAE,EAAE,CAAC,CAAC;EACP,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG;IAChC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;MAChC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;MACpE,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;KACjF;IACD,OAAO,IAAI,CAAC;GACb,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED;;;;;;;SAOgB,gBAAgB,CAC9B,SAA0B;EAE1B,MAAM,SAAS,GAAG,EAAE,CAAC;;EAGrB,SAAS,qBAAqB,CAAC,SAAS,EAAE,EAAE;IAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5E,OAAO,SAAS,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;GACrD;;EAGD,SAAS,WAAW,CAAC,EAAE,EAAE,oBAAoB,EAAE,iBAAiB,GAAG,EAAE;;IAEnE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;;IAEtD,IAAI,QAAQ,EAAE;MACZ,MAAM,aAAa,GAAG;QACpB,EAAE;QACF,YAAY,EAAE,EAAE;OACjB,CAAC;;;MAIF,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;;QAErC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3B,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY;;UAEzC,MAAM,mBAAmB,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;;UAElE,IAAI,mBAAmB,IAAI,CAAC,EAAE;YAC5B,eAAe,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;WAChD;UAED,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;SAC1E,CAAC,CAAC;OACJ;MACD,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC1C;GACF;;EAGD,IAAI,eAAe,GAAa,mBAAmB,CAAC,SAAS,CAAC,CAAC;EAE/D,MAAM,UAAU,GAAG,SAAS;KACzB,MAAM,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAClE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;EAEjE,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;;EAGxF,IAAI,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;EACrC,OAAO,OAAO,MAAM,KAAK,WAAW,EAAE;IACpC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/B,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;GAClC;EAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;SAQgB,oBAAoB,CAClC,SAAgB,EAChB,YAAiB;EAEjB,MAAM,IAAI,GAAoB,EAAE,CAAC;EACjC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG;MACX,EAAE,EAAE,CAAC,CAAC,MAAM;MACZ,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI;MAClC,IAAI,EAAE,CAAC,CAAC,IAAI;MACZ,KAAK,EAAE,SAAS;MAChB,YAAY,EAAE,CAAC;UACb,EAAE,EAAE,CAAC,CAAC,MAAM;UACZ,KAAK,EAAE,YAAY,CAAC,MAAM;UAC1B,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,WAAW;SAChC,CAAC;KACH,CAAC;IACF,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;MACd,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACrB,EAAE,EAAE,CAAC,CAAC,MAAM;QACZ,KAAK,EAAE,YAAY,CAAC,GAAG;QACvB,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,QAAQ;OAC7B,CAAC,CAAC;KACJ;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,EAAE;;;MAGhC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;QACrB,EAAE,EAAE,CAAC,CAAC,MAAM;QACZ,KAAK,EAAE,YAAY,CAAC,cAAc;QAClC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,mBAAmB;OACxC,CAAC,CAAA;MACF,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;MACrE,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;KACtE;IACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACjB,CAAC,CAAA;EAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;SAOgB,wBAAwB,CACtC,YAAiB;EAEjB,MAAM,OAAO,GAAgC,CAAC;MAC5C,EAAE,EAAE,EAAE;MACN,KAAK,EAAE,YAAY,CAAC,UAAU;MAC9B,KAAK,EAAE,8DAA8D;KACtE,EAAE;MACD,EAAE,EAAE,EAAE;MACN,KAAK,EAAE,YAAY,CAAC,WAAW;MAC/B,KAAK,EAAE,8CAA8C;KACtD,EAAE;MACD,EAAE,EAAE,EAAE;MACN,KAAK,EAAE,YAAY,CAAC,aAAa;MACjC,KAAK,EAAE,mBAAmB;KAC3B,EAAE;MACD,EAAE,EAAE,EAAE;MACN,KAAK,EAAE,YAAY,CAAC,QAAQ;MAC5B,KAAK,EAAE,2CAA2C;KACnD,EAAE;MACD,EAAE,EAAE,EAAE;MACN,KAAK,EAAE,YAAY,CAAC,kBAAkB;MACtC,KAAK,EAAE,wBAAwB;KAChC,CAAC,CAAC;EACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;AAUA,SAAS,kBAAkB,CACzB,QAAe,EACf,IAAS,EACT,QAAa,EACb,YAAiB;EAEjB,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;IAE3G,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;MACrB,EAAE,EAAE,QAAQ,CAAC,MAAM;MACnB,KAAK,EAAE,GAAG,IAAI,KAAK,YAAY,CAAC,EAAE,GAAG;MACrC,KAAK,EAAE,KAAK,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,EAAE,OAAO;KAChD,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;MACrB,EAAE,EAAE,QAAQ,CAAC,MAAM;MACnB,KAAK,EAAE,GAAG,IAAI,KAAK,YAAY,CAAC,IAAI,GAAG;MACvC,KAAK,EAAE,KAAK,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI;KAC3D,CAAC,CAAC;GACJ,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;AASA,SAAS,oBAAoB,CAC3B,QAAa,EACb,SAAgB,EAChB,YAAmB;EAEnB,OAAO;IACL,EAAE,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE;IACzB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;IAChC,YAAY,EAAE,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC;IACvD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;IAC9B,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE;;;;;;;;;;GAU/C,CAAC;AACJ,CAAC;AAED;;;;;;;;AAQA,SAAS,gBAAgB,CACvB,YAAmB,EACnB,SAAgB;EAEhB,MAAM,eAAe,GAAG,EAAE,CAAC;EAC3B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG;IAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzB,OAAO,IAAI,CAAC;GACb,EAAE,EAAE,CAAC,CAAC;EACP,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI;IACjC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;MACV,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;KACnF;IACD,OAAO,IAAI,CAAC;GACb,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED;;;;;;;;;AASA;;;;;;;;;;;;;;;AAgBA;;;;;;;;AAQA;;;;;;;;;;;;;;;;;;;;AAqBA;;;;;;;AAOA;;;;;;;;AASA;;;;;;;AAOA,SAAS,mBAAmB,CAAC,SAA0B;;EAErD,MAAM,wBAAwB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;EAC9E,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ;IACzB,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,YAAY;MACjD,MAAM,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;MAC7D,IAAI,KAAK,IAAI,CAAC,EAAE;;;QAGd,wBAAwB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;OAC3C;KACF,CAAC,CAAC;GACJ,CAAC,CAAC;EACH,OAAO,wBAAwB,CAAC;AAClC;;ACpZA,MAAM,wBAAwB,GAAG,o2BAAo2B;;MC8Bx3BA,uBAAqB;;;;;;EAyChC;;;IA8IU,6BAAwB,GAAG,KAAK,CAAC;IAEjC,8BAAyB,GAAG,KAAK,CAAC;IAElC,6BAAwB,GAAG,KAAK,CAAC;IAEjC,aAAQ,GAAG,KAAK,CAAC;;0BArK8B,EAAE;uBASL,KAAK;8BA4HnB,EAAE;kCAEE,EAAE;;6BAIP,KAAK;8BAEJ,EAAE;8BAKgB,EAAE;;qBAW7B,IAAI;IA3IjC,KAAK,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE7C,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,EAC/C,CAAC,GAAG;MACF,IAAI,CAAC,kBAAkB,CACrB,IAAI,CAAC,wBAAwB,GAAI,GAAW,CAAC,MAAM,EAAE,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACvH,CACF,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAChD,CAAC,GAAG;MACF,IAAI,CAAC,kBAAkB,CACrB,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,yBAAyB,GAAI,GAAW,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;KACvH,CACF,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,EAC/C,CAAC,GAAG;MACF,IAAI,CAAC,kBAAkB,CACrB,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,wBAAwB,GAAI,GAAW,CAAC,MAAM,CAAC,CAAC;KACvH,CACF,CAAC;GACH;EApCwB,MAAM,iBAAiB;IAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;GAC/C;;;;;;EAyCD,MAAM,iBAAiB;IACrB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;GAChC;;;;EAKD,MAAM;IACJ,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACrF,MAAM,WAAW,GAAY,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9E,QACE,EAAC,IAAI,QAED,CAAC,IAAI,CAAC,iBAAiB;QACnB,sBAAgB,MAAM,QAAC,KAAK,EAAC,EAAE,GAAG;QAClC,IAAI,EAEV,WAAK,KAAK,EAAC,yBAAyB,IAClC,WAAK,KAAK,EAAC,eAAe,IACxB,oBAAc,KAAK,EAAC,aAAa,IAC/B,uBAAiB,IAAI,EAAC,SAAS,IAC7B,6BAAoB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAqB,EACxE,WAAW;MACV,6BAAoB,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAqB;MAC/E,IAAI,CAEU,EAClB,mBAAa,MAAM,QAAC,KAAK,EAAC,YAAY,IACpC,WAAK,KAAK,EAAC,iBAAiB,IAC1B,WAAK,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,kBAAkB,GAAG,uBAAuB,IACvE,yBACE,EAAE,EAAC,iBAAiB,EACpB,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,WAAW,EACtC,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,GACnD,CACE,EACN,sBACE,UAAU,EAAC,aAAa,EACxB,KAAK,EAAC,cAAc,gBACR,IAAI,CAAC,SAAS,GAAG,eAAe,GAAG,gBAAgB,EAC/D,EAAE,EAAC,eAAe,EAClB,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EACjC,KAAK,EAAC,GAAG,EACT,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAC/E,EACF,WAAK,KAAK,EAAC,aAAa,IACtB,qBACE,cAAc,EAAE,IAAI,CAAC,cAAc,aAC1B,IAAI,CAAC,kBAAkB,EAChC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,OAAO,4BACV,IAAI,CAAC,sBAAsB,sBACjC,IAAI,CAAC,cAAc,wBACjB,IAAI,CAAC,kBAAkB,GAC3C,CACE,CACF,CACM,EAEZ,WAAW;QACP,mBAAa,KAAK,EAAC,YAAY,IAC7B,WAAK,KAAK,EAAC,iBAAiB,IAC1B,4BACE,WAAW,EAAE,IAAI,EACjB,EAAE,EAAC,gCAAgC,EACnC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,cAAc,EACzC,MAAM,EAAE,CAAC,IAAI,EACb,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,GAClE,CACE,CACM;QACd,IAAI,CAEG,CACX,CACF,CACD,EACP;GACH;;;;;;EAoDD,qBAAqB,CAAC,KAAkB;IACtC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC;GACxC;;;;;;;;;;;;;;;;;EAsBD,MAAM,uBAAuB;IAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC;GACpE;;;;;;;EAUD,MAAM,YAAY;IAChB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC/B,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;GAC5B;EAGD,MAAM,cAAc;IAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;GAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDS,UAAU;IAClB,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAExD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAACC,oBAA0B,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACjH,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAACC,wBAA8B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAEjG,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAGC,iBAAuB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAE/E,IAAI,IAAI,CAAC,0BAA0B,EAAE;MACnC,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;KAC7E;IAED,IAAI,SAA4B,CAAC;IACjC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;;MAEtC,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC9D;IACD,IAAI,CAAC,kBAAkB,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC;GAC7D;;;;;;;;;;EAWS,MAAM,aAAa,CAAC,cAAsB;IAClD,IAAI,cAAc,EAAE;MAClB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;MAC/B,MAAM,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;MAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;MAClB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KAC/B;SAAM;MACL,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;GAC1B;;;;;;EAOS,MAAM;IACd,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;IACjC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;GAC9B;;;;;;EAOS,WAAW;IACnB,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;GAClC;;;;;;;;;;;EAYS,kBAAkB,CAC1B,uBAAgC,EAChC,wBAAiC,EACjC,uBAAgC;IAEhC,MAAM,iBAAiB,GAAG,CAAC,uBAAuB,IAAI,wBAAwB,KAAK,CAAC,uBAAuB,CAAC;IAE5G,IAAI,IAAI,CAAC,QAAQ,KAAK,iBAAiB,EAAE;MACvC,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,iBAAiB,EAAE;QACtD,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,IAAI;OACf,CAAC,CAAC,CAAC;KACL;IAED,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC;GACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyTS,MAAM,gBAAgB;IAC9B,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC,CAAqC,CAAC;GAC1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["SolutionConfiguration","utils.getSolutionVariables","utils.getOrganizationVariables","utils.getInventoryItems"],"sources":["./src/utils/templates.ts","./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","/** @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: 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,11 +0,0 @@
1
- import type { Components, JSX } from "../types/components";
2
-
3
- interface SolutionContents extends Components.SolutionContents, HTMLElement {}
4
- export const SolutionContents: {
5
- prototype: SolutionContents;
6
- new (): SolutionContents;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,13 +0,0 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- import { S as SolutionContents$1, d as defineCustomElement$1 } from './solution-contents2.js';
7
-
8
- const SolutionContents = SolutionContents$1;
9
- const defineCustomElement = defineCustomElement$1;
10
-
11
- export { SolutionContents, defineCustomElement };
12
-
13
- //# sourceMappingURL=solution-contents.js.map
@@ -1 +0,0 @@
1
- {"file":"solution-contents.js","mappings":";;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1,130 +0,0 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
7
- import { d as defineCustomElement$5 } from './checkbox.js';
8
- import { d as defineCustomElement$4 } from './icon.js';
9
- import { d as defineCustomElement$3 } from './tree.js';
10
- import { d as defineCustomElement$2 } from './tree-item.js';
11
- import { d as defineCustomElement$1 } from './solution-item-icon2.js';
12
-
13
- const solutionContentsCss = ".icon-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}";
14
-
15
- const SolutionContents = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
16
- constructor() {
17
- super();
18
- this.__registerHost();
19
- this.solutionItemSelected = createEvent(this, "solutionItemSelected", 7);
20
- this.selectedItemId = undefined;
21
- this.templateHierarchy = [];
22
- }
23
- valueWatchHandler(v, oldV) {
24
- if (v && v !== oldV && Array.isArray(v) && v.length > 0) {
25
- this._treeItemSelected(v[0].id);
26
- }
27
- }
28
- //--------------------------------------------------------------------------
29
- //
30
- // Lifecycle
31
- //
32
- //--------------------------------------------------------------------------
33
- componentWillLoad() {
34
- this.valueWatchHandler(this.templateHierarchy, []);
35
- }
36
- /**
37
- * Renders the component.
38
- */
39
- render() {
40
- return (h(Host, null, h("calcite-tree", null, this.renderHierarchy(this.templateHierarchy))));
41
- }
42
- renderHierarchy(objs) {
43
- return objs.map((obj) => {
44
- const selected = this.selectedItemId && this.selectedItemId === obj.id;
45
- return (obj.dependencies && obj.dependencies.length > 0) ?
46
- (h("calcite-tree-item", { onClick: (evt) => this._treeItemSelected(obj.id, evt), selected: selected }, h("solution-item-icon", { type: obj.type, typeKeywords: obj.typeKeywords }), h("span", { class: "icon-text", title: obj.title }, obj.title), h("calcite-tree", { slot: "children" }, this.renderHierarchy(obj.dependencies))))
47
- :
48
- (h("calcite-tree-item", { onClick: (evt) => this._treeItemSelected(obj.id, evt), selected: selected }, h("solution-item-icon", { type: obj.type, typeKeywords: obj.typeKeywords }), h("span", { class: "icon-text", title: obj.title }, obj.title)));
49
- });
50
- }
51
- //--------------------------------------------------------------------------
52
- //
53
- // Public Methods (async)
54
- //
55
- //--------------------------------------------------------------------------
56
- //--------------------------------------------------------------------------
57
- //
58
- // Private Methods
59
- //
60
- //--------------------------------------------------------------------------
61
- /**
62
- * Publishes the `solutionItemSelected` event containing `solutionItem` of the selected item.
63
- *
64
- * Also toggles the expanded state of the tree item.
65
- *
66
- * @param solutionItem the selected solution item to emit
67
- * @param evt MouseEvent or undefined
68
- */
69
- _treeItemSelected(itemId, evt = undefined) {
70
- var _a;
71
- const treeItem = (_a = evt === null || evt === void 0 ? void 0 : evt.target) === null || _a === void 0 ? void 0 : _a.closest("calcite-tree-item");
72
- if (treeItem) {
73
- treeItem.expanded = !(treeItem === null || treeItem === void 0 ? void 0 : treeItem.expanded);
74
- }
75
- this.selectedItemId = itemId;
76
- this.solutionItemSelected.emit(itemId);
77
- }
78
- static get assetsDirs() { return ["item-type-icons"]; }
79
- get el() { return this; }
80
- static get watchers() { return {
81
- "templateHierarchy": ["valueWatchHandler"]
82
- }; }
83
- static get style() { return solutionContentsCss; }
84
- }, [0, "solution-contents", {
85
- "selectedItemId": [1537, "selected-item-id"],
86
- "templateHierarchy": [1040]
87
- }]);
88
- function defineCustomElement() {
89
- if (typeof customElements === "undefined") {
90
- return;
91
- }
92
- const components = ["solution-contents", "calcite-checkbox", "calcite-icon", "calcite-tree", "calcite-tree-item", "solution-item-icon"];
93
- components.forEach(tagName => { switch (tagName) {
94
- case "solution-contents":
95
- if (!customElements.get(tagName)) {
96
- customElements.define(tagName, SolutionContents);
97
- }
98
- break;
99
- case "calcite-checkbox":
100
- if (!customElements.get(tagName)) {
101
- defineCustomElement$5();
102
- }
103
- break;
104
- case "calcite-icon":
105
- if (!customElements.get(tagName)) {
106
- defineCustomElement$4();
107
- }
108
- break;
109
- case "calcite-tree":
110
- if (!customElements.get(tagName)) {
111
- defineCustomElement$3();
112
- }
113
- break;
114
- case "calcite-tree-item":
115
- if (!customElements.get(tagName)) {
116
- defineCustomElement$2();
117
- }
118
- break;
119
- case "solution-item-icon":
120
- if (!customElements.get(tagName)) {
121
- defineCustomElement$1();
122
- }
123
- break;
124
- } });
125
- }
126
- defineCustomElement();
127
-
128
- export { SolutionContents as S, defineCustomElement as d };
129
-
130
- //# sourceMappingURL=solution-contents2.js.map
@@ -1 +0,0 @@
1
- {"file":"solution-contents2.js","mappings":";;;;;;;;;;;;AAAA,MAAM,mBAAmB,GAAG,uEAAuE;;MC0BtF,gBAAgB;;;;;;6BAwBmD,EAAE;;EAEpD,iBAAiB,CAAC,CAAM,EAAE,IAAS;IAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;MACvD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACjC;GACF;;;;;;EAQD,iBAAiB;IACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;GACpD;;;;EAKD,MAAM;IACJ,QACE,EAAC,IAAI,QACH,wBACG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAChC,CACV,EACP;GACH;EAED,eAAe,CAAC,IAAsB;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;MAClB,MAAM,QAAQ,GAAY,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,CAAC,EAAE,CAAC;MAChF,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;SAEnD,yBAAmB,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,IAC1F,0BAAoB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,GAAI,EACtE,YAAM,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAG,GAAG,CAAC,KAAK,CAAQ,EAC5D,oBAAc,IAAI,EAAC,UAAU,IAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAC1B,CACG;;WAIpB,yBAAmB,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,IAC1F,0BAAoB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,GAAI,EACtE,YAAM,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,GAAG,CAAC,KAAK,IAAG,GAAG,CAAC,KAAK,CAAQ,CAC1C,CACrB,CAAC;KACL,CAAC,CAAC;GACJ;;;;;;;;;;;;;;;;;;;EA+CS,iBAAiB,CACzB,MAAc,EACd,MAAW,SAAS;;IAEpB,MAAM,QAAQ,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3D,IAAI,QAAQ,EAAE;MACZ,QAAQ,CAAC,QAAQ,GAAG,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAA,CAAC;KACzC;IACD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["./src/components/solution-contents/solution-contents.scss?tag=solution-contents","./src/components/solution-contents/solution-contents.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.icon-text {\r\n @apply truncate;\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, Event, EventEmitter, Host, h, Prop, VNode, Watch } from '@stencil/core';\r\nimport { IInventoryItem/*, ISolutionTemplateEdit */ } from '../../utils/interfaces';\r\nimport '@esri/calcite-components';\r\n\r\n@Component({\r\n tag: 'solution-contents',\r\n styleUrl: 'solution-contents.scss',\r\n shadow: false,\r\n assetsDirs: ['item-type-icons']\r\n})\r\nexport class SolutionContents {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionContentsElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the current item that is selected.\r\n */\r\n @Prop({ mutable: true, reflect: true }) selectedItemId: string;\r\n\r\n /**\r\n * Contains the public value for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) templateHierarchy: IInventoryItem[] = [];\r\n\r\n @Watch(\"templateHierarchy\") valueWatchHandler(v: any, oldV: any): void {\r\n if (v && v !== oldV && Array.isArray(v) && v.length > 0) {\r\n this._treeItemSelected(v[0].id);\r\n }\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n componentWillLoad() {\r\n this.valueWatchHandler(this.templateHierarchy, []);\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n return (\r\n <Host>\r\n <calcite-tree>\r\n {this.renderHierarchy(this.templateHierarchy)}\r\n </calcite-tree>\r\n </Host>\r\n );\r\n }\r\n\r\n renderHierarchy(objs: IInventoryItem[]): HTMLCalciteTreeItemElement[] {\r\n return objs.map((obj) => {\r\n const selected: boolean = this.selectedItemId && this.selectedItemId === obj.id;\r\n return (obj.dependencies && obj.dependencies.length > 0) ?\r\n (\r\n <calcite-tree-item onClick={(evt) => this._treeItemSelected(obj.id, evt)} selected={selected}>\r\n <solution-item-icon type={obj.type} typeKeywords={obj.typeKeywords} />\r\n <span class=\"icon-text\" title={obj.title}>{obj.title}</span>\r\n <calcite-tree slot=\"children\" >\r\n {this.renderHierarchy(obj.dependencies)}\r\n </calcite-tree>\r\n </calcite-tree-item>\r\n )\r\n :\r\n (\r\n <calcite-tree-item onClick={(evt) => this._treeItemSelected(obj.id, evt)} selected={selected}>\r\n <solution-item-icon type={obj.type} typeKeywords={obj.typeKeywords} />\r\n <span class=\"icon-text\" title={obj.title}>{obj.title}</span>\r\n </calcite-tree-item>\r\n );\r\n });\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /*@Listen(\"solutionLoaded\", { target: \"window\" })\r\n _solutionLoaded(): void {\r\n this._treeItemSelected(this.templateHierarchy[0].solutionItem);\r\n }*/\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Events\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Event() solutionItemSelected: EventEmitter<string>;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Public Methods (async)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Publishes the `solutionItemSelected` event containing `solutionItem` of the selected item.\r\n *\r\n * Also toggles the expanded state of the tree item.\r\n *\r\n * @param solutionItem the selected solution item to emit\r\n * @param evt MouseEvent or undefined\r\n */\r\n protected _treeItemSelected(\r\n itemId: string,\r\n evt: any = undefined\r\n ): void {\r\n const treeItem = evt?.target?.closest(\"calcite-tree-item\");\r\n if (treeItem) {\r\n treeItem.expanded = !treeItem?.expanded;\r\n }\r\n this.selectedItemId = itemId;\r\n this.solutionItemSelected.emit(itemId);\r\n }\r\n}\r\n"],"version":3}
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../types/components";
2
-
3
- interface SolutionItemDetails extends Components.SolutionItemDetails, HTMLElement {}
4
- export const SolutionItemDetails: {
5
- prototype: SolutionItemDetails;
6
- new (): SolutionItemDetails;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,13 +0,0 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- import { S as SolutionItemDetails$1, d as defineCustomElement$1 } from './solution-item-details2.js';
7
-
8
- const SolutionItemDetails = SolutionItemDetails$1;
9
- const defineCustomElement = defineCustomElement$1;
10
-
11
- export { SolutionItemDetails, defineCustomElement };
12
-
13
- //# sourceMappingURL=solution-item-details.js.map
@@ -1 +0,0 @@
1
- {"file":"solution-item-details.js","mappings":";;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1,236 +0,0 @@
1
- /*!
2
- * Copyright 2022 Esri
3
- * Licensed under the Apache License, Version 2.0
4
- * http://www.apache.org/licenses/LICENSE-2.0
5
- */
6
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
7
- import { s as state } from './solution-store.js';
8
- import { g as getLocaleComponentStrings } from './locale.js';
9
- import { d as defineCustomElement$4 } from './icon.js';
10
- import { d as defineCustomElement$3 } from './input.js';
11
- import { d as defineCustomElement$2 } from './label.js';
12
- import { d as defineCustomElement$1 } from './progress.js';
13
-
14
- const solutionItemDetailsCss = ".inputBottomSeparation{margin-left:0px;margin-right:0px;margin-top:0px;margin-bottom:1.5rem}.icon-inline--on-left,.icon-inline--on-right{display:inline;vertical-align:middle;-webkit-margin-end:0.375rem;margin-inline-end:0.375rem;fill:#0079c1}.scale-down{-o-object-fit:scale-down;object-fit:scale-down}.img-container{display:inline;-webkit-margin-end:1rem;margin-inline-end:1rem;max-width:363px}.summary-count-container{display:inline;flex-grow:1;-webkit-margin-start:0.75rem;margin-inline-start:0.75rem}.snippet-count-container{width:calc(100vw - 363px)}.parent-container{max-width:100%;padding:1rem}label{position:relative;margin-left:0px;margin-right:0px;margin-top:0px;margin-bottom:1.5rem;display:block;min-width:-moz-min-content;min-width:min-content;box-sizing:border-box;margin-left:0.75rem;margin-right:0.75rem;min-width:0;flex-grow:0;flex-shrink:1}label-group-1-up>.block{flex-basis:calc(100% - 1.5rem);width:calc(100% - 1.5rem)}label-group-2-up>.block{flex-basis:calc(50% - 1.5rem);width:calc(50% - 1.5rem)}label-group-3-up>.block{flex-basis:calc(33.33333% - 1.5rem);width:calc(33.33333% - 1.5rem)}label-group-4-up>.block{flex-basis:calc(25% - 1.5rem);width:calc(25% - 1.5rem)}label-group-5-up>.block{flex-basis:calc(20% - 1.5rem);width:calc(20% - 1.5rem)}label-group-6-up>.block{flex-basis:calc(16.66666% - 1.5rem);width:calc(16.66666% - 1.5rem)}label-group-7-up>.block{flex-basis:calc(14.2857% - 1.5rem);width:calc(14.2857% - 1.5rem)}label-group-8-up>.block{flex-basis:calc(12.5% - 1.5rem);width:calc(12.5% - 1.5rem)}.tablet-block-group-1-up>label{flex-basis:calc(100% - 1.5rem);width:calc(100% - 1.5rem)}.tablet-block-group-2-up>label{flex-basis:calc(50% - 1.5rem);width:calc(50% - 1.5rem)}.tablet-block-group-3-up>label{flex-basis:calc(33.33333% - 1.5rem);width:calc(33.33333% - 1.5rem)}.tablet-block-group-4-up>label{flex-basis:calc(25% - 1.5rem);width:calc(25% - 1.5rem)}.tablet-block-group-5-up>label{flex-basis:calc(20% - 1.5rem);width:calc(20% - 1.5rem)}.tablet-block-group-6-up>label{flex-basis:calc(16.66666% - 1.5rem);width:calc(16.66666% - 1.5rem)}.tablet-block-group-7-up>label{flex-basis:calc(14.2857% - 1.5rem);width:calc(14.2857% - 1.5rem)}.tablet-block-group-8-up>label{flex-basis:calc(12.5% - 1.5rem);width:calc(12.5% - 1.5rem)}.phone-block-group-1-up>label{flex-basis:calc(100% - 1.5rem);width:calc(100% - 1.5rem)}.phone-block-group-2-up>label{flex-basis:calc(50% - 1.5rem);width:calc(50% - 1.5rem)}.phone-block-group-3-up>label{flex-basis:calc(33.33333% - 1.5rem);width:calc(33.33333% - 1.5rem)}.phone-block-group-4-up>label{flex-basis:calc(25% - 1.5rem);width:calc(25% - 1.5rem)}.phone-block-group-5-up>label{flex-basis:calc(20% - 1.5rem);width:calc(20% - 1.5rem)}.phone-block-group-6-up>label{flex-basis:calc(16.66666% - 1.5rem);width:calc(16.66666% - 1.5rem)}.phone-block-group-7-up>label{flex-basis:calc(14.2857% - 1.5rem);width:calc(14.2857% - 1.5rem)}.phone-block-group-8-up>label{flex-basis:calc(12.5% - 1.5rem);width:calc(12.5% - 1.5rem)}.code-face label{letter-spacing:0em;font-family:\"Consolas\", \"Andale Mono\", \"Lucida Console\", \"Monaco\", monospace;font-weight:400;font-style:normal}.code-face label b,.code-face label strong{font-weight:400}.code-italic label{letter-spacing:0em;font-family:\"Consolas\", \"Andale Mono\", \"Lucida Console\", \"Monaco\", monospace;font-weight:400;font-style:italic}.code-italic label b,.code-italic label strong{font-weight:400}";
15
-
16
- const SolutionItemDetails = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
17
- constructor() {
18
- super();
19
- this.__registerHost();
20
- this.itemId = "";
21
- this.itemDetails = {
22
- accessInformation: "",
23
- description: "",
24
- licenseInfo: "",
25
- snippet: "",
26
- tags: [],
27
- title: ""
28
- };
29
- this.itemEdit = undefined;
30
- this._translations = undefined;
31
- this.thumbnail = undefined;
32
- this.thumbnailContainer = undefined;
33
- }
34
- itemIdWatchHandler() {
35
- this.itemEdit = state.getItemInfo(this.itemId);
36
- this.itemDetails = this.itemEdit.item;
37
- this.itemType = this.itemDetails.type;
38
- }
39
- //--------------------------------------------------------------------------
40
- //
41
- // Lifecycle
42
- //
43
- //--------------------------------------------------------------------------
44
- /**
45
- * StencilJS: Called once just after the component is first connected to the DOM.
46
- */
47
- async componentWillLoad() {
48
- return this._getTranslations();
49
- }
50
- componentDidRender() {
51
- this._loadThumb();
52
- }
53
- /**
54
- * Renders the component.
55
- */
56
- render() {
57
- return (h(Host, null, h("div", { class: "parent-container" }, h("div", { class: "inputBottomSeparation" }, h("calcite-input", { id: "item-title", value: this.itemDetails.title })), h("div", { class: "inputBottomSeparation" }, h("input", { accept: ".jpg,.gif,.png,image/jpg,image/gif,image/png", class: "display-none", onChange: (event) => (this._updateThumbnail(event)), ref: (el) => (this.browseForThumbnail = el), type: "file" }), h("button", { class: "font-size--3 btn-link inline-block trailer-quarter", onClick: () => this._getThumbnail() }, h("svg", { class: "icon-inline icon-inline--on-left", height: "16", viewBox: "0 0 16 16", width: "16" }, h("path", { d: "M14.792 2.666l-1.414-1.413a.965.965 0 0 0-1.385-.03l-1.444 1.444-8.763 8.72L.03 15.481a.371.371 0 0 0 .488.488l4.096-1.756 8.763-8.72-.001-.001.002.002 1.443-1.444a.965.965 0 0 0-.03-1.385zM1.569 14.431l.554-1.293.74.739zm2.338-.924l-1.414-1.414 7.963-7.92 1.414 1.415zm8.67-8.626l-1.413-1.414 1.29-1.29a.306.306 0 0 1 .433 0l.981.98a.306.306 0 0 1 0 .433z" })), this._translations.editThumbnail), h("div", { class: "flex" }, h("div", { class: "img-container", ref: (el) => (this.thumbnailContainer = el) }, h("img", { class: "scale-down", height: "133", id: "item-thumbnail", ref: (el) => (this.thumbnail = el), width: "200" })), h("div", { class: "snippet-count-container" }, h("calcite-input", { id: "item-snippet", maxlength: 250, type: "textarea", value: this.itemDetails.snippet }), h("label", { class: "font-size--3", id: "item-snippet-count", ref: (el) => (this.itemSnippetCount = el) })))), h("calcite-label", null, this._translations.description, h("label", { id: "item-description-label" }, h("calcite-input", { id: "item-description", type: "textarea", value: this.itemDetails.description }))), h("calcite-label", null, this._translations.tags, h("label", { id: "item-tags-label" }, h("calcite-input", { id: "item-tags", value: (this.itemDetails.tags && Array.isArray(this.itemDetails.tags) ? this.itemDetails.tags : [this.itemDetails.tags]).join(",") }))), this.itemType !== "Group" ? h("calcite-label", null, this._translations.credits, h("label", { id: "item-credits-label" }, h("calcite-input", { id: "item-credits", value: this.itemDetails.accessInformation }))) : null, this.itemType !== "Group" ? h("calcite-label", null, h("label", { id: "item-terms-label" }, this._translations.termsOfUse, h("calcite-input", { id: "item-terms", type: "textarea", value: this.itemDetails.licenseInfo }))) : null)));
58
- }
59
- //--------------------------------------------------------------------------
60
- //
61
- // Event Listeners
62
- //
63
- //--------------------------------------------------------------------------
64
- /**
65
- * Updates the component's value with changes to the input fields.
66
- */
67
- inputReceivedHandler(event) {
68
- switch (event.target.id) {
69
- case "item-title":
70
- this.itemDetails.title = event.target.value;
71
- this._updateStore();
72
- break;
73
- case "item-snippet":
74
- if (event.target.value.length > 250) {
75
- event.target.value = event.target.value.substring(0, 250);
76
- }
77
- this.itemDetails.snippet = event.target.value;
78
- this._updateLengthLabel(this.itemDetails.snippet);
79
- this._updateStore();
80
- break;
81
- case "item-description":
82
- this.itemDetails.description = event.target.value;
83
- this._updateStore();
84
- break;
85
- case "item-tags":
86
- this.itemDetails.tags = event.target.value;
87
- this._updateStore();
88
- break;
89
- case "item-credits":
90
- this.itemDetails.accessInformation = event.target.value;
91
- this._updateStore();
92
- break;
93
- case "item-terms":
94
- this.itemDetails.licenseInfo = event.target.value;
95
- this._updateStore();
96
- break;
97
- }
98
- }
99
- //--------------------------------------------------------------------------
100
- //
101
- // Events
102
- //
103
- //--------------------------------------------------------------------------
104
- //--------------------------------------------------------------------------
105
- //
106
- // Public Methods (async)
107
- //
108
- //--------------------------------------------------------------------------
109
- //--------------------------------------------------------------------------
110
- //
111
- // Private Methods
112
- //
113
- //--------------------------------------------------------------------------
114
- /**
115
- * Opens image file browse dialog.
116
- *
117
- */
118
- _getThumbnail() {
119
- this.browseForThumbnail.click();
120
- }
121
- /**
122
- * Load the templates thumbnail
123
- *
124
- */
125
- _loadThumb() {
126
- var _a;
127
- if (this.thumbnail && ((_a = this.itemEdit) === null || _a === void 0 ? void 0 : _a.thumbnail)) {
128
- // Show the thumbnail
129
- this.thumbnail.src = URL.createObjectURL(this.itemEdit.thumbnail);
130
- this.thumbnailContainer.classList.remove("empty-box");
131
- this.thumbnail.classList.remove("display-none");
132
- }
133
- else {
134
- // Replace the thumbnail with an empty box
135
- this.thumbnailContainer.classList.add("empty-box");
136
- this.thumbnail.classList.add("display-none");
137
- }
138
- }
139
- /**
140
- * Updates the length label to reflect the current number of characters
141
- * relative to the max number of characters supported.
142
- *
143
- * @param phrase the current phrase from the control
144
- */
145
- _updateLengthLabel(phrase) {
146
- this.itemSnippetCount.innerText =
147
- this._translations.snippetCountPattern.replace("{{n}}", phrase.length.toString());
148
- }
149
- /**
150
- * Add or remove the value from the store
151
- */
152
- _updateStore() {
153
- this.itemEdit = state.getItemInfo(this.itemId);
154
- this.itemEdit.item = this.itemDetails;
155
- state.setItemInfo(this.itemEdit);
156
- }
157
- /**
158
- * Gets and displays image result from browse and updates the item in the store.
159
- *
160
- * @param event The input controls event that contains the new file
161
- * @param updateStore boolean that controls if the new value is written to the store
162
- * should be false on the initial load but true the rest of the time
163
- */
164
- _updateThumbnail(event) {
165
- const files = event.target.files;
166
- if (files && files[0]) {
167
- if (this.thumbnail) {
168
- // Update UI
169
- this.thumbnail.src = URL.createObjectURL(files[0]);
170
- // Update info in store
171
- this.itemEdit = state.getItemInfo(this.itemId);
172
- this.itemEdit.thumbnail = files[0];
173
- state.replaceItemThumbnail(this.itemEdit);
174
- }
175
- }
176
- }
177
- /**
178
- * Fetches the component's translations
179
- *
180
- * @protected
181
- */
182
- async _getTranslations() {
183
- const translations = await getLocaleComponentStrings(this.el);
184
- this._translations = translations[0];
185
- }
186
- get el() { return this; }
187
- static get watchers() { return {
188
- "itemId": ["itemIdWatchHandler"]
189
- }; }
190
- static get style() { return solutionItemDetailsCss; }
191
- }, [0, "solution-item-details", {
192
- "itemId": [1537, "item-id"],
193
- "itemDetails": [32],
194
- "itemEdit": [32],
195
- "_translations": [32],
196
- "thumbnail": [32],
197
- "thumbnailContainer": [32]
198
- }, [[0, "calciteInputInput", "inputReceivedHandler"]]]);
199
- function defineCustomElement() {
200
- if (typeof customElements === "undefined") {
201
- return;
202
- }
203
- const components = ["solution-item-details", "calcite-icon", "calcite-input", "calcite-label", "calcite-progress"];
204
- components.forEach(tagName => { switch (tagName) {
205
- case "solution-item-details":
206
- if (!customElements.get(tagName)) {
207
- customElements.define(tagName, SolutionItemDetails);
208
- }
209
- break;
210
- case "calcite-icon":
211
- if (!customElements.get(tagName)) {
212
- defineCustomElement$4();
213
- }
214
- break;
215
- case "calcite-input":
216
- if (!customElements.get(tagName)) {
217
- defineCustomElement$3();
218
- }
219
- break;
220
- case "calcite-label":
221
- if (!customElements.get(tagName)) {
222
- defineCustomElement$2();
223
- }
224
- break;
225
- case "calcite-progress":
226
- if (!customElements.get(tagName)) {
227
- defineCustomElement$1();
228
- }
229
- break;
230
- } });
231
- }
232
- defineCustomElement();
233
-
234
- export { SolutionItemDetails as S, defineCustomElement as d };
235
-
236
- //# sourceMappingURL=solution-item-details2.js.map
@@ -1 +0,0 @@
1
- {"file":"solution-item-details2.js","mappings":"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","names":[],"sources":["./src/components/solution-item-details/solution-item-details.scss?tag=solution-item-details","./src/components/solution-item-details/solution-item-details.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$thumbnail-width: 363px;\r\n\r\n.inputBottomSeparation {\r\n @apply mt-0\r\n mx-0\r\n mb-6;\r\n}\r\n\r\n.icon-inline--on-left, .icon-inline--on-right {\r\n @apply inline\r\n align-middle\r\n m-inline-end-1.5;\r\n fill: $solutions-blue;\r\n}\r\n\r\n.scale-down {\r\n @apply object-scale-down;\r\n}\r\n\r\n.img-container {\r\n @apply inline\r\n m-inline-end-4;\r\n max-width: $thumbnail-width;\r\n}\r\n\r\n.summary-count-container {\r\n @apply inline\r\n flex-grow\r\n m-inline-start-3;\r\n}\r\n\r\n.snippet-count-container {\r\n width: calc(100vw - $thumbnail-width);\r\n}\r\n\r\n.parent-container {\r\n @apply max-w-full\r\n p-4;\r\n}\r\n\r\nlabel {\r\n @apply relative\r\n block\r\n mt-0\r\n mx-0\r\n mb-6\r\n min-w-min;\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, Prop, State, VNode, Watch } from '@stencil/core';\r\nimport '@esri/calcite-components';\r\nimport state from \"../../utils/solution-store\";\r\nimport SolutionItemDetails_T9n from '../../assets/t9n/solution-item-details/resources.json';\r\nimport { getLocaleComponentStrings } from '../../utils/locale';\r\nimport { IItemGeneralized } from '@esri/solution-common';\r\nimport { IItemTemplateEdit } from '../../utils/interfaces';\r\n\r\n@Component({\r\n tag: 'solution-item-details',\r\n styleUrl: 'solution-item-details.scss',\r\n shadow: false,\r\n})\r\nexport class SolutionItemDetails {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionItemDetailsElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * A template's itemId.\r\n */\r\n @Prop({ mutable: true, reflect: true }) itemId = \"\";\r\n\r\n @Watch(\"itemId\") itemIdWatchHandler(): void {\r\n this.itemEdit = state.getItemInfo(this.itemId);\r\n this.itemDetails = this.itemEdit.item;\r\n this.itemType = this.itemDetails.type;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\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 async componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n componentDidRender(): void {\r\n this._loadThumb()\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n return (\r\n <Host>\r\n <div class=\"parent-container\">\r\n <div class=\"inputBottomSeparation\">\r\n <calcite-input id=\"item-title\" value={this.itemDetails.title} />\r\n </div>\r\n\r\n <div class=\"inputBottomSeparation\">\r\n\r\n <input accept=\".jpg,.gif,.png,image/jpg,image/gif,image/png\" class=\"display-none\" onChange={(event) => (this._updateThumbnail(event))} ref={(el) => (this.browseForThumbnail = el)} type=\"file\" />\r\n\r\n <button class=\"font-size--3 btn-link inline-block trailer-quarter\" onClick={() => this._getThumbnail()}>\r\n <svg class=\"icon-inline icon-inline--on-left\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\">\r\n <path d=\"M14.792 2.666l-1.414-1.413a.965.965 0 0 0-1.385-.03l-1.444 1.444-8.763 8.72L.03 15.481a.371.371 0 0 0 .488.488l4.096-1.756 8.763-8.72-.001-.001.002.002 1.443-1.444a.965.965 0 0 0-.03-1.385zM1.569 14.431l.554-1.293.74.739zm2.338-.924l-1.414-1.414 7.963-7.92 1.414 1.415zm8.67-8.626l-1.413-1.414 1.29-1.29a.306.306 0 0 1 .433 0l.981.98a.306.306 0 0 1 0 .433z\" />\r\n </svg>{this._translations.editThumbnail}\r\n </button>\r\n\r\n <div class=\"flex\">\r\n <div class=\"img-container\" ref={(el) => (this.thumbnailContainer = el)}>\r\n <img class=\"scale-down\" height=\"133\" id=\"item-thumbnail\" ref={(el) => (this.thumbnail = el)} width=\"200\" />\r\n </div>\r\n <div class=\"snippet-count-container\">\r\n <calcite-input id=\"item-snippet\" maxlength={250} type=\"textarea\" value={this.itemDetails.snippet} />\r\n <label class=\"font-size--3\" id=\"item-snippet-count\" ref={(el) => (this.itemSnippetCount = el)} />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <calcite-label>{this._translations.description}\r\n <label id=\"item-description-label\">\r\n <calcite-input id=\"item-description\" type=\"textarea\" value={this.itemDetails.description} />\r\n </label>\r\n </calcite-label>\r\n\r\n <calcite-label>{this._translations.tags}\r\n <label id=\"item-tags-label\">\r\n <calcite-input id=\"item-tags\" value={(this.itemDetails.tags && Array.isArray(this.itemDetails.tags) ? this.itemDetails.tags : [this.itemDetails.tags]).join(\",\")} />\r\n </label>\r\n </calcite-label>\r\n\r\n {this.itemType !== \"Group\" ? <calcite-label>{this._translations.credits}\r\n <label id=\"item-credits-label\">\r\n <calcite-input id=\"item-credits\" value={this.itemDetails.accessInformation} />\r\n </label>\r\n </calcite-label> : null}\r\n\r\n {this.itemType !== \"Group\" ? <calcite-label>\r\n <label id=\"item-terms-label\">{this._translations.termsOfUse}\r\n <calcite-input id=\"item-terms\" type=\"textarea\" value={this.itemDetails.licenseInfo} />\r\n </label>\r\n </calcite-label> : null}\r\n\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 * Handle to the element for browsing for a file.\r\n */\r\n protected browseForThumbnail: HTMLInputElement;\r\n\r\n @State() itemDetails: IItemGeneralized = {\r\n accessInformation: \"\",\r\n description: \"\",\r\n licenseInfo: \"\",\r\n snippet: \"\",\r\n tags: [],\r\n title: \"\"\r\n } as any;\r\n\r\n @State() protected itemEdit: IItemTemplateEdit;\r\n\r\n protected itemType: string;\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() _translations: typeof SolutionItemDetails_T9n;\r\n\r\n /**\r\n * Handle to the snippet character-count feedback.\r\n */\r\n protected itemSnippetCount: HTMLLabelElement;\r\n\r\n /**\r\n * Handle to the thumbnail image display.\r\n */\r\n @State() protected thumbnail: HTMLImageElement;\r\n\r\n /**\r\n * Handle to the thumbnail image container.\r\n */\r\n @State() protected thumbnailContainer: HTMLElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Updates the component's value with changes to the input fields.\r\n */\r\n @Listen(\"calciteInputInput\")\r\n inputReceivedHandler(event: any): void {\r\n switch (event.target.id) {\r\n case \"item-title\":\r\n this.itemDetails.title = event.target.value;\r\n this._updateStore();\r\n break;\r\n case \"item-snippet\":\r\n if (event.target.value.length > 250) {\r\n event.target.value = event.target.value.substring(0, 250);\r\n }\r\n this.itemDetails.snippet = event.target.value;\r\n this._updateLengthLabel(this.itemDetails.snippet);\r\n this._updateStore();\r\n break;\r\n case \"item-description\":\r\n this.itemDetails.description = event.target.value;\r\n this._updateStore();\r\n break;\r\n case \"item-tags\":\r\n this.itemDetails.tags = event.target.value;\r\n this._updateStore();\r\n break;\r\n case \"item-credits\":\r\n this.itemDetails.accessInformation = event.target.value;\r\n this._updateStore();\r\n break;\r\n case \"item-terms\":\r\n this.itemDetails.licenseInfo = event.target.value;\r\n this._updateStore();\r\n break;\r\n }\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 //\r\n // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Opens image file browse dialog.\r\n *\r\n */\r\n protected _getThumbnail(): void {\r\n this.browseForThumbnail.click();\r\n }\r\n\r\n /**\r\n * Load the templates thumbnail\r\n *\r\n */\r\n protected _loadThumb(): void {\r\n if (this.thumbnail && this.itemEdit?.thumbnail) {\r\n // Show the thumbnail\r\n this.thumbnail.src = URL.createObjectURL(this.itemEdit.thumbnail);\r\n this.thumbnailContainer.classList.remove(\"empty-box\");\r\n this.thumbnail.classList.remove(\"display-none\");\r\n } else {\r\n // Replace the thumbnail with an empty box\r\n this.thumbnailContainer.classList.add(\"empty-box\");\r\n this.thumbnail.classList.add(\"display-none\");\r\n }\r\n }\r\n\r\n /**\r\n * Updates the length label to reflect the current number of characters\r\n * relative to the max number of characters supported.\r\n *\r\n * @param phrase the current phrase from the control\r\n */\r\n protected _updateLengthLabel(phrase: string): void {\r\n this.itemSnippetCount.innerText =\r\n this._translations.snippetCountPattern.replace(\"{{n}}\", phrase.length.toString());\r\n }\r\n\r\n /**\r\n * Add or remove the value from the store\r\n */\r\n protected _updateStore(\r\n ): void {\r\n this.itemEdit = state.getItemInfo(this.itemId);\r\n this.itemEdit.item = this.itemDetails;\r\n state.setItemInfo(this.itemEdit);\r\n }\r\n\r\n /**\r\n * Gets and displays image result from browse and updates the item in the store.\r\n *\r\n * @param event The input controls event that contains the new file\r\n * @param updateStore boolean that controls if the new value is written to the store\r\n * should be false on the initial load but true the rest of the time\r\n */\r\n protected _updateThumbnail(\r\n event: any\r\n ): void {\r\n const files = event.target.files;\r\n if (files && files[0]) {\r\n if (this.thumbnail) {\r\n // Update UI\r\n this.thumbnail.src = URL.createObjectURL(files[0]);\r\n\r\n // Update info in store\r\n this.itemEdit = state.getItemInfo(this.itemId);\r\n this.itemEdit.thumbnail = files[0];\r\n state.replaceItemThumbnail(this.itemEdit);\r\n }\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 SolutionItemDetails_T9n;\r\n }\r\n}\r\n"],"version":3}