@esri/solutions-components 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of @esri/solutions-components might be problematic. Click here for more details.

Files changed (892) hide show
  1. package/README.md +6 -5
  2. package/dist/cjs/CalciteExpandToggle-3e4e3b6c.js +0 -2
  3. package/dist/cjs/CalciteHeading-d765addc.js +0 -2
  4. package/dist/cjs/_commonjsHelpers-84e109b5.js +26 -0
  5. package/dist/cjs/array-cd6c0c32.js +0 -2
  6. package/dist/cjs/calcite-accordion-item.cjs.entry.js +0 -2
  7. package/dist/cjs/calcite-accordion.cjs.entry.js +0 -2
  8. package/dist/cjs/calcite-action-bar.cjs.entry.js +0 -2
  9. package/dist/cjs/calcite-action-group.cjs.entry.js +0 -2
  10. package/dist/cjs/calcite-action-menu_3.cjs.entry.js +0 -2
  11. package/dist/cjs/calcite-action-pad.cjs.entry.js +0 -2
  12. package/dist/cjs/calcite-action.cjs.entry.js +0 -2
  13. package/dist/cjs/calcite-alert.cjs.entry.js +0 -2
  14. package/dist/cjs/calcite-avatar.cjs.entry.js +0 -2
  15. package/dist/cjs/calcite-block-section.cjs.entry.js +0 -2
  16. package/dist/cjs/calcite-block.cjs.entry.js +0 -2
  17. package/dist/cjs/calcite-button.cjs.entry.js +0 -2
  18. package/dist/cjs/calcite-card.cjs.entry.js +0 -2
  19. package/dist/cjs/calcite-checkbox_4.cjs.entry.js +0 -2
  20. package/dist/cjs/calcite-chip.cjs.entry.js +0 -2
  21. package/dist/cjs/calcite-color-picker-hex-input.cjs.entry.js +3 -4
  22. package/dist/cjs/calcite-color-picker-swatch.cjs.entry.js +2 -3
  23. package/dist/cjs/calcite-color-picker.cjs.entry.js +3 -4
  24. package/dist/cjs/calcite-combobox-item-group.cjs.entry.js +0 -2
  25. package/dist/cjs/calcite-combobox-item.cjs.entry.js +0 -2
  26. package/dist/cjs/calcite-combobox.cjs.entry.js +0 -2
  27. package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js +0 -2
  28. package/dist/cjs/calcite-date-picker.cjs.entry.js +0 -2
  29. package/dist/cjs/calcite-dropdown-group.cjs.entry.js +0 -2
  30. package/dist/cjs/calcite-dropdown-item.cjs.entry.js +0 -2
  31. package/dist/cjs/calcite-dropdown.cjs.entry.js +0 -2
  32. package/dist/cjs/calcite-fab.cjs.entry.js +0 -2
  33. package/dist/cjs/calcite-filter.cjs.entry.js +0 -2
  34. package/dist/cjs/calcite-flow.cjs.entry.js +0 -2
  35. package/dist/cjs/calcite-graph.cjs.entry.js +0 -2
  36. package/dist/cjs/calcite-handle.cjs.entry.js +0 -2
  37. package/dist/cjs/calcite-icon.cjs.entry.js +0 -2
  38. package/dist/cjs/calcite-inline-editable.cjs.entry.js +0 -2
  39. package/dist/cjs/calcite-input-date-picker.cjs.entry.js +0 -2
  40. package/dist/cjs/calcite-input-message.cjs.entry.js +0 -2
  41. package/dist/cjs/calcite-input-time-picker.cjs.entry.js +0 -2
  42. package/dist/cjs/calcite-input_2.cjs.entry.js +0 -2
  43. package/dist/cjs/calcite-label.cjs.entry.js +0 -2
  44. package/dist/cjs/calcite-link.cjs.entry.js +0 -2
  45. package/dist/cjs/calcite-list-item-group.cjs.entry.js +0 -2
  46. package/dist/cjs/calcite-list-item.cjs.entry.js +0 -2
  47. package/dist/cjs/calcite-list.cjs.entry.js +0 -2
  48. package/dist/cjs/calcite-loader.cjs.entry.js +0 -2
  49. package/dist/cjs/calcite-modal.cjs.entry.js +0 -2
  50. package/dist/cjs/calcite-notice.cjs.entry.js +0 -2
  51. package/dist/cjs/calcite-option-group.cjs.entry.js +0 -2
  52. package/dist/cjs/calcite-option.cjs.entry.js +0 -2
  53. package/dist/cjs/calcite-pagination.cjs.entry.js +0 -2
  54. package/dist/cjs/calcite-panel_14.cjs.entry.js +41 -8
  55. package/dist/cjs/calcite-pick-list-group.cjs.entry.js +0 -2
  56. package/dist/cjs/calcite-pick-list-item.cjs.entry.js +0 -2
  57. package/dist/cjs/calcite-pick-list.cjs.entry.js +0 -2
  58. package/dist/cjs/calcite-popover-manager.cjs.entry.js +0 -2
  59. package/dist/cjs/calcite-radio-button-group.cjs.entry.js +0 -2
  60. package/dist/cjs/calcite-radio-button.cjs.entry.js +0 -2
  61. package/dist/cjs/calcite-radio-group-item.cjs.entry.js +0 -2
  62. package/dist/cjs/calcite-radio-group.cjs.entry.js +0 -2
  63. package/dist/cjs/calcite-radio.cjs.entry.js +0 -2
  64. package/dist/cjs/calcite-rating.cjs.entry.js +0 -2
  65. package/dist/cjs/calcite-scrim.cjs.entry.js +0 -2
  66. package/dist/cjs/calcite-select.cjs.entry.js +0 -2
  67. package/dist/cjs/calcite-shell-center-row.cjs.entry.js +0 -2
  68. package/dist/cjs/calcite-slider.cjs.entry.js +0 -2
  69. package/dist/cjs/calcite-sortable-list.cjs.entry.js +0 -2
  70. package/dist/cjs/calcite-split-button.cjs.entry.js +0 -2
  71. package/dist/cjs/calcite-stepper-item.cjs.entry.js +0 -2
  72. package/dist/cjs/calcite-stepper.cjs.entry.js +0 -2
  73. package/dist/cjs/calcite-switch.cjs.entry.js +0 -2
  74. package/dist/cjs/calcite-tile-select-group.cjs.entry.js +0 -2
  75. package/dist/cjs/calcite-tile-select.cjs.entry.js +0 -2
  76. package/dist/cjs/calcite-tile.cjs.entry.js +0 -2
  77. package/dist/cjs/calcite-time-picker.cjs.entry.js +0 -2
  78. package/dist/cjs/calcite-tip-group.cjs.entry.js +0 -2
  79. package/dist/cjs/calcite-tip-manager.cjs.entry.js +0 -2
  80. package/dist/cjs/calcite-tip.cjs.entry.js +0 -2
  81. package/dist/cjs/calcite-tooltip.cjs.entry.js +0 -2
  82. package/dist/cjs/calcite-value-list-item.cjs.entry.js +0 -2
  83. package/dist/cjs/calcite-value-list.cjs.entry.js +0 -2
  84. package/dist/cjs/common-a4edb52d.js +216 -0
  85. package/dist/cjs/date-0554c4d1.js +0 -2
  86. package/dist/cjs/debounce-df22462b.js +0 -2
  87. package/dist/cjs/dom-62511f59.js +0 -2
  88. package/dist/cjs/editStore-36fc36e6.js +2024 -0
  89. package/dist/cjs/forIn-6a1c2f6d.js +0 -2
  90. package/dist/cjs/form-0b5b2d4e.js +0 -2
  91. package/dist/cjs/generalHelpers-cee7d0da.js +168 -0
  92. package/dist/cjs/guid-c6be9504.js +0 -2
  93. package/dist/cjs/{index-706750dc.js → index-69e74dd7.js} +5 -19
  94. package/dist/cjs/index-81c17948.js +0 -2
  95. package/dist/cjs/index.cjs.js +0 -2
  96. package/dist/cjs/interfaces-5ba2c1a7.js +0 -2
  97. package/dist/cjs/key-2a6290c8.js +0 -2
  98. package/dist/cjs/label-46482470.js +0 -2
  99. package/dist/cjs/loader.cjs.js +1 -3
  100. package/dist/cjs/locale-0db34680.js +0 -2
  101. package/dist/cjs/math-71f8de66.js +0 -2
  102. package/dist/cjs/number-697ce34c.js +0 -2
  103. package/dist/cjs/observers-88bbd6ef.js +0 -2
  104. package/dist/cjs/popper-8c8dc960.js +0 -2
  105. package/dist/cjs/request-6905140c.js +550 -0
  106. package/dist/cjs/resources-20f88094.js +0 -2
  107. package/dist/cjs/resources-27c22d8a.js +0 -2
  108. package/dist/cjs/{resources-369e7421.js → resources-2a401414.js} +1 -3
  109. package/dist/cjs/resources-46af0638.js +0 -2
  110. package/dist/cjs/resources-509951f9.js +0 -2
  111. package/dist/cjs/resources-5b7958e4.js +0 -2
  112. package/dist/cjs/resources-a265534b.js +0 -2
  113. package/dist/cjs/resources-e231446d.js +0 -2
  114. package/dist/cjs/resources-ef6c71a1.js +0 -2
  115. package/dist/cjs/shared-list-render-63d3ea89.js +0 -2
  116. package/dist/cjs/solution-configuration.cjs.entry.js +172 -14
  117. package/dist/cjs/solution-contents_3.cjs.entry.js +42 -68
  118. package/dist/cjs/solutions.cjs.js +1 -3
  119. package/dist/cjs/sortable.esm-14548a17.js +0 -2
  120. package/dist/cjs/store-manager.cjs.entry.js +17 -8
  121. package/dist/cjs/templates-a0242ced.js +422 -0
  122. package/dist/cjs/time-c87dc79e.js +0 -2
  123. package/dist/cjs/utils-c19d354a.js +0 -2
  124. package/dist/cjs/utils-cb7373e6.js +0 -2
  125. package/dist/collection/assets/nls/fr/strings.js +2 -0
  126. package/dist/collection/assets/nls/strings.js +2 -0
  127. package/dist/collection/collection-manifest.json +9 -9
  128. package/dist/collection/components/json-editor/json-editor.js +40 -2
  129. package/dist/collection/components/solution-configuration/solution-configuration.js +251 -24
  130. package/dist/collection/components/solution-contents/solution-contents.js +12 -3
  131. package/dist/collection/components/solution-item/solution-item.css +1 -0
  132. package/dist/collection/components/solution-item/solution-item.js +2 -2
  133. package/dist/collection/components/solution-item-details/solution-item-details.js +4 -3
  134. package/dist/collection/components/solution-item-icon/solution-item-icon.js +0 -1
  135. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js +2 -2
  136. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js +2 -2
  137. package/dist/collection/components/solution-resource-item/solution-resource-item.js +2 -2
  138. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js +68 -68
  139. package/dist/collection/components/solution-spatial-ref/spatialreferences.js +0 -2
  140. package/dist/collection/components/solution-template-data/solution-template-data.js +4 -4
  141. package/dist/collection/components/solution-variables/solution-variables.js +2 -2
  142. package/dist/collection/components/store-manager/store-manager.js +49 -5
  143. package/dist/collection/demos/browse-solutions.html +136 -54
  144. package/dist/collection/demos/solution-configuration.html +139 -12
  145. package/dist/collection/demos/solution-spatial-ref.html +1 -1
  146. package/dist/collection/index.js +0 -1
  147. package/dist/collection/utils/common.js +25 -77
  148. package/dist/collection/utils/common.ts +42 -73
  149. package/dist/collection/utils/editStore.js +0 -1
  150. package/dist/{solutions/p-ecbfddde.js → collection/utils/interfaces.js} +16 -17
  151. package/dist/collection/utils/interfaces.ts +126 -0
  152. package/dist/collection/utils/templates.js +8 -6
  153. package/dist/collection/utils/templates.ts +19 -33
  154. package/dist/custom-elements/index.js +3161 -152
  155. package/dist/esm/CalciteExpandToggle-5df46988.js +0 -2
  156. package/dist/esm/CalciteHeading-79b4b347.js +0 -2
  157. package/dist/esm/_commonjsHelpers-84c626bc.js +22 -0
  158. package/dist/esm/array-71e0c501.js +0 -2
  159. package/dist/esm/calcite-accordion-item.entry.js +0 -2
  160. package/dist/esm/calcite-accordion.entry.js +0 -2
  161. package/dist/esm/calcite-action-bar.entry.js +0 -2
  162. package/dist/esm/calcite-action-group.entry.js +0 -2
  163. package/dist/esm/calcite-action-menu_3.entry.js +0 -2
  164. package/dist/esm/calcite-action-pad.entry.js +0 -2
  165. package/dist/esm/calcite-action.entry.js +0 -2
  166. package/dist/esm/calcite-alert.entry.js +0 -2
  167. package/dist/esm/calcite-avatar.entry.js +0 -2
  168. package/dist/esm/calcite-block-section.entry.js +0 -2
  169. package/dist/esm/calcite-block.entry.js +0 -2
  170. package/dist/esm/calcite-button.entry.js +0 -2
  171. package/dist/esm/calcite-card.entry.js +0 -2
  172. package/dist/esm/calcite-checkbox_4.entry.js +0 -2
  173. package/dist/esm/calcite-chip.entry.js +0 -2
  174. package/dist/esm/calcite-color-picker-hex-input.entry.js +3 -4
  175. package/dist/esm/calcite-color-picker-swatch.entry.js +2 -3
  176. package/dist/esm/calcite-color-picker.entry.js +3 -4
  177. package/dist/esm/calcite-combobox-item-group.entry.js +0 -2
  178. package/dist/esm/calcite-combobox-item.entry.js +0 -2
  179. package/dist/esm/calcite-combobox.entry.js +0 -2
  180. package/dist/esm/calcite-date-picker-day_3.entry.js +0 -2
  181. package/dist/esm/calcite-date-picker.entry.js +0 -2
  182. package/dist/esm/calcite-dropdown-group.entry.js +0 -2
  183. package/dist/esm/calcite-dropdown-item.entry.js +0 -2
  184. package/dist/esm/calcite-dropdown.entry.js +0 -2
  185. package/dist/esm/calcite-fab.entry.js +0 -2
  186. package/dist/esm/calcite-filter.entry.js +0 -2
  187. package/dist/esm/calcite-flow.entry.js +0 -2
  188. package/dist/esm/calcite-graph.entry.js +0 -2
  189. package/dist/esm/calcite-handle.entry.js +0 -2
  190. package/dist/esm/calcite-icon.entry.js +0 -2
  191. package/dist/esm/calcite-inline-editable.entry.js +0 -2
  192. package/dist/esm/calcite-input-date-picker.entry.js +0 -2
  193. package/dist/esm/calcite-input-message.entry.js +0 -2
  194. package/dist/esm/calcite-input-time-picker.entry.js +0 -2
  195. package/dist/esm/calcite-input_2.entry.js +0 -2
  196. package/dist/esm/calcite-label.entry.js +0 -2
  197. package/dist/esm/calcite-link.entry.js +0 -2
  198. package/dist/esm/calcite-list-item-group.entry.js +0 -2
  199. package/dist/esm/calcite-list-item.entry.js +0 -2
  200. package/dist/esm/calcite-list.entry.js +0 -2
  201. package/dist/esm/calcite-loader.entry.js +0 -2
  202. package/dist/esm/calcite-modal.entry.js +0 -2
  203. package/dist/esm/calcite-notice.entry.js +0 -2
  204. package/dist/esm/calcite-option-group.entry.js +0 -2
  205. package/dist/esm/calcite-option.entry.js +0 -2
  206. package/dist/esm/calcite-pagination.entry.js +0 -2
  207. package/dist/esm/calcite-panel_14.entry.js +37 -4
  208. package/dist/esm/calcite-pick-list-group.entry.js +0 -2
  209. package/dist/esm/calcite-pick-list-item.entry.js +0 -2
  210. package/dist/esm/calcite-pick-list.entry.js +0 -2
  211. package/dist/esm/calcite-popover-manager.entry.js +0 -2
  212. package/dist/esm/calcite-radio-button-group.entry.js +0 -2
  213. package/dist/esm/calcite-radio-button.entry.js +0 -2
  214. package/dist/esm/calcite-radio-group-item.entry.js +0 -2
  215. package/dist/esm/calcite-radio-group.entry.js +0 -2
  216. package/dist/esm/calcite-radio.entry.js +0 -2
  217. package/dist/esm/calcite-rating.entry.js +0 -2
  218. package/dist/esm/calcite-scrim.entry.js +0 -2
  219. package/dist/esm/calcite-select.entry.js +0 -2
  220. package/dist/esm/calcite-shell-center-row.entry.js +0 -2
  221. package/dist/esm/calcite-slider.entry.js +0 -2
  222. package/dist/esm/calcite-sortable-list.entry.js +0 -2
  223. package/dist/esm/calcite-split-button.entry.js +0 -2
  224. package/dist/esm/calcite-stepper-item.entry.js +0 -2
  225. package/dist/esm/calcite-stepper.entry.js +0 -2
  226. package/dist/esm/calcite-switch.entry.js +0 -2
  227. package/dist/esm/calcite-tile-select-group.entry.js +0 -2
  228. package/dist/esm/calcite-tile-select.entry.js +0 -2
  229. package/dist/esm/calcite-tile.entry.js +0 -2
  230. package/dist/esm/calcite-time-picker.entry.js +0 -2
  231. package/dist/esm/calcite-tip-group.entry.js +0 -2
  232. package/dist/esm/calcite-tip-manager.entry.js +0 -2
  233. package/dist/esm/calcite-tip.entry.js +0 -2
  234. package/dist/esm/calcite-tooltip.entry.js +0 -2
  235. package/dist/esm/calcite-value-list-item.entry.js +0 -2
  236. package/dist/esm/calcite-value-list.entry.js +0 -2
  237. package/dist/esm/common-70333fb9.js +213 -0
  238. package/dist/esm/date-5d75460a.js +0 -2
  239. package/dist/esm/debounce-23ad5849.js +0 -2
  240. package/dist/esm/dom-1cc617ae.js +0 -2
  241. package/dist/esm/editStore-197be454.js +2022 -0
  242. package/dist/esm/forIn-c922d47c.js +0 -2
  243. package/dist/esm/form-636dfed1.js +0 -2
  244. package/dist/esm/generalHelpers-91e92dc0.js +161 -0
  245. package/dist/esm/guid-740f1f1a.js +0 -2
  246. package/dist/esm/index-a3c3e3db.js +0 -2
  247. package/dist/esm/{index-934f242e.js → index-c1264d13.js} +3 -17
  248. package/dist/esm/index.js +0 -2
  249. package/dist/esm/interfaces-4f07beec.js +0 -2
  250. package/dist/esm/key-1748eb79.js +0 -2
  251. package/dist/esm/label-851f8926.js +0 -2
  252. package/dist/esm/loader.js +1 -3
  253. package/dist/esm/locale-31c8d43b.js +0 -2
  254. package/dist/esm/math-d8795f31.js +0 -2
  255. package/dist/esm/number-47ecb380.js +0 -2
  256. package/dist/esm/observers-b13ff24b.js +0 -2
  257. package/dist/esm/popper-25874f2f.js +0 -2
  258. package/dist/esm/request-9c2c9a49.js +548 -0
  259. package/dist/esm/resources-12c3b829.js +0 -2
  260. package/dist/esm/resources-32d7dd89.js +0 -2
  261. package/dist/esm/resources-466ccf86.js +0 -2
  262. package/dist/esm/resources-4cc0ef44.js +0 -2
  263. package/dist/esm/resources-861d0240.js +0 -2
  264. package/dist/esm/resources-b023c30a.js +0 -2
  265. package/dist/esm/{resources-c537bacb.js → resources-d7e09977.js} +1 -3
  266. package/dist/esm/resources-e56b6e53.js +0 -2
  267. package/dist/esm/resources-ec79cfd7.js +0 -2
  268. package/dist/esm/shared-list-render-b5dacd2e.js +0 -2
  269. package/dist/esm/solution-configuration.entry.js +172 -14
  270. package/dist/esm/solution-contents_3.entry.js +42 -68
  271. package/dist/esm/solutions.js +1 -3
  272. package/dist/esm/sortable.esm-7856912e.js +0 -2
  273. package/dist/esm/store-manager.entry.js +17 -8
  274. package/dist/esm/templates-c15e0de2.js +414 -0
  275. package/dist/esm/time-a3b29c35.js +0 -2
  276. package/dist/esm/utils-021cb956.js +0 -2
  277. package/dist/esm/utils-5fdd203c.js +0 -2
  278. package/dist/solutions/assets/nls/fr/strings.js +2 -0
  279. package/dist/solutions/assets/nls/strings.js +2 -0
  280. package/dist/solutions/demos/browse-solutions.html +136 -54
  281. package/dist/solutions/demos/solution-configuration.html +139 -12
  282. package/dist/solutions/demos/solution-spatial-ref.html +1 -1
  283. package/dist/solutions/index.esm.js +0 -2
  284. package/dist/solutions/p-03c9247d.entry.js +10 -0
  285. package/dist/solutions/p-03da5f23.entry.js +6 -0
  286. package/dist/solutions/p-054256c8.entry.js +10 -0
  287. package/dist/solutions/p-05c73b7d.js +1 -2
  288. package/dist/solutions/p-06c2b347.entry.js +6 -0
  289. package/dist/solutions/p-09a06209.entry.js +6 -0
  290. package/dist/solutions/p-09e5283f.entry.js +6 -0
  291. package/dist/solutions/p-0a0ca7d3.entry.js +6 -0
  292. package/dist/solutions/p-0b8525e2.js +1 -2
  293. package/dist/solutions/p-0bddf168.entry.js +10 -0
  294. package/dist/solutions/p-0dd00bd7.entry.js +6 -0
  295. package/dist/solutions/p-0f8fd0f8.entry.js +10 -0
  296. package/dist/solutions/p-1345c0c8.js +6 -0
  297. package/dist/solutions/p-1387e8ef.entry.js +10 -0
  298. package/dist/solutions/p-17195493.entry.js +6 -0
  299. package/dist/solutions/p-172b8454.js +38 -0
  300. package/dist/solutions/p-173c3a97.entry.js +10 -0
  301. package/dist/solutions/p-175fe700.entry.js +6 -0
  302. package/dist/solutions/p-17f21116.entry.js +6 -0
  303. package/dist/solutions/p-18657c74.entry.js +10 -0
  304. package/dist/solutions/p-20c8a31e.entry.js +14 -0
  305. package/dist/solutions/p-228131f3.js +3 -3
  306. package/dist/solutions/p-2480c2c3.entry.js +10 -0
  307. package/dist/solutions/p-291cbb4f.js +1 -2
  308. package/dist/solutions/p-29d230fb.entry.js +6 -0
  309. package/dist/solutions/p-2de43402.entry.js +10 -0
  310. package/dist/solutions/p-2e1cd889.js +1 -2
  311. package/dist/solutions/p-386bc1f5.entry.js +10 -0
  312. package/dist/solutions/p-3956acc6.entry.js +6 -0
  313. package/dist/solutions/p-3ce922dd.js +20 -0
  314. package/dist/solutions/p-3e67ed97.js +1 -2
  315. package/dist/solutions/p-3eac2c21.entry.js +10 -0
  316. package/dist/solutions/p-3fd65329.entry.js +6 -0
  317. package/dist/solutions/p-41c2e1cc.js +1 -2
  318. package/dist/solutions/p-42f5b6d1.entry.js +10 -0
  319. package/dist/solutions/p-44e661a2.js +1 -2
  320. package/dist/solutions/p-4847f326.entry.js +10 -0
  321. package/dist/solutions/p-4a5b86a0.entry.js +10 -0
  322. package/dist/solutions/p-4f8cae93.entry.js +10 -0
  323. package/dist/solutions/p-51c9f2db.entry.js +10 -0
  324. package/dist/solutions/p-52d835be.entry.js +10 -0
  325. package/dist/solutions/p-55dddf06.entry.js +10 -0
  326. package/dist/solutions/p-56a376ea.entry.js +6 -0
  327. package/dist/solutions/p-57e5029a.entry.js +6 -0
  328. package/dist/solutions/p-58b7f4aa.entry.js +10 -0
  329. package/dist/solutions/p-5cd9ccc3.entry.js +22 -0
  330. package/dist/solutions/p-5dd4cf97.entry.js +6 -0
  331. package/dist/solutions/p-5edf418e.entry.js +10 -0
  332. package/dist/solutions/p-64711824.entry.js +10 -0
  333. package/dist/solutions/p-68bf7243.entry.js +11 -0
  334. package/dist/solutions/p-7096464e.js +3 -4
  335. package/dist/solutions/p-720922e5.entry.js +10 -0
  336. package/dist/solutions/p-73e2d13f.js +1 -2
  337. package/dist/solutions/p-73e8d41c.entry.js +10 -0
  338. package/dist/solutions/p-7804ce97.js +1 -2
  339. package/dist/solutions/p-79064f42.entry.js +6 -0
  340. package/dist/solutions/p-7976d171.entry.js +6 -0
  341. package/dist/solutions/p-7a98627f.entry.js +10 -0
  342. package/dist/solutions/p-7aaed3f1.entry.js +10 -0
  343. package/dist/solutions/p-7cc9c6af.js +2 -7
  344. package/dist/solutions/p-7df393df.js +1 -2
  345. package/dist/solutions/p-7f93b2dd.entry.js +6 -0
  346. package/dist/solutions/p-82ab483b.entry.js +10 -0
  347. package/dist/solutions/p-8565f0c1.entry.js +10 -0
  348. package/dist/solutions/p-85cf288c.js +1 -2
  349. package/dist/solutions/p-8701d184.entry.js +10 -0
  350. package/dist/solutions/p-946521e1.js +2 -3
  351. package/dist/solutions/p-974d27a4.entry.js +10 -0
  352. package/dist/solutions/p-9c08ce38.entry.js +6 -0
  353. package/dist/solutions/p-9deb6df3.js +36 -0
  354. package/dist/solutions/p-9df9ac35.js +1 -2
  355. package/dist/solutions/p-9ed0c781.entry.js +6 -0
  356. package/dist/solutions/p-9f3fa133.entry.js +10 -0
  357. package/dist/solutions/p-a10dc180.js +1 -2
  358. package/dist/solutions/p-a201c2ea.entry.js +6 -0
  359. package/dist/solutions/p-a598cbb6.entry.js +10 -0
  360. package/dist/solutions/p-a59dfe85.entry.js +6 -0
  361. package/dist/solutions/p-a5fbf459.entry.js +11 -0
  362. package/dist/solutions/p-a6faf819.entry.js +10 -0
  363. package/dist/solutions/p-a8b4d400.entry.js +10 -0
  364. package/dist/solutions/p-a93a4772.entry.js +10 -0
  365. package/dist/solutions/{p-07099311.entry.js → p-a9dd9571.entry.js} +1 -2
  366. package/dist/solutions/p-a9df64c4.js +1 -2
  367. package/dist/solutions/p-aa11e35b.entry.js +10 -0
  368. package/dist/solutions/p-ae4a329c.entry.js +6 -0
  369. package/dist/solutions/p-af9be2ca.js +1 -2
  370. package/dist/solutions/p-b16a91ae.entry.js +6 -0
  371. package/dist/solutions/p-b5693287.entry.js +6 -0
  372. package/dist/solutions/p-b5bbe558.entry.js +10 -0
  373. package/dist/solutions/p-b81ebd54.entry.js +10 -0
  374. package/dist/solutions/p-b85c1b6a.entry.js +6 -0
  375. package/dist/solutions/p-bb3adfc7.entry.js +10 -0
  376. package/dist/solutions/p-c11b966c.entry.js +10 -0
  377. package/dist/solutions/p-c1e7f656.entry.js +6 -0
  378. package/dist/solutions/p-c27b17b8.entry.js +10 -0
  379. package/dist/solutions/p-c34e0641.js +1 -2
  380. package/dist/solutions/p-c5216bba.entry.js +10 -0
  381. package/dist/solutions/p-c8a69756.entry.js +10 -0
  382. package/dist/solutions/p-cb35cbb3.entry.js +6 -0
  383. package/dist/solutions/p-cb5cb9a8.js +1 -2
  384. package/dist/solutions/p-cef98db7.js +6 -0
  385. package/dist/solutions/p-d69bc5fd.entry.js +10 -0
  386. package/dist/solutions/p-de45b192.entry.js +6 -0
  387. package/dist/solutions/p-e4edca3b.js +1 -2
  388. package/dist/solutions/p-e581f631.js +1 -2
  389. package/dist/solutions/p-e762b2d1.js +3 -3
  390. package/dist/solutions/p-eb2efc0f.js +1 -2
  391. package/dist/solutions/p-ec178ea9.js +1 -2
  392. package/dist/solutions/p-ed17446f.entry.js +6 -0
  393. package/dist/solutions/p-edd6d948.entry.js +10 -0
  394. package/dist/solutions/p-ee6eca93.js +18 -0
  395. package/dist/solutions/{p-4573d7c2.js → p-f1867a12.js} +2 -3
  396. package/dist/solutions/p-f187755e.js +1 -2
  397. package/dist/solutions/p-f49bc4a8.js +1 -2
  398. package/dist/solutions/p-f75876eb.js +21 -0
  399. package/dist/solutions/p-f780039d.js +1 -2
  400. package/dist/solutions/p-fa58627d.entry.js +10 -0
  401. package/dist/solutions/p-fbdf3e06.js +2 -3
  402. package/dist/solutions/p-fc1c8168.js +3 -3
  403. package/dist/solutions/p-fd2712a3.entry.js +10 -0
  404. package/dist/solutions/solutions.esm.js +1 -2
  405. package/dist/solutions/utils/common.ts +42 -73
  406. package/dist/solutions/utils/interfaces.ts +126 -0
  407. package/dist/solutions/utils/templates.ts +19 -33
  408. package/dist/types/components/json-editor/json-editor.d.ts +11 -0
  409. package/dist/types/components/solution-configuration/solution-configuration.d.ts +73 -9
  410. package/dist/types/components/solution-contents/solution-contents.d.ts +2 -9
  411. package/dist/types/components/solution-item/solution-item.d.ts +1 -11
  412. package/dist/types/components/solution-item-details/solution-item-details.d.ts +1 -10
  413. package/dist/types/components/solution-item-sharing/solution-item-sharing.d.ts +1 -8
  414. package/dist/types/components/solution-organization-variables/solution-organization-variables.d.ts +1 -5
  415. package/dist/types/components/solution-resource-item/solution-resource-item.d.ts +1 -4
  416. package/dist/types/components/solution-spatial-ref/solution-spatial-ref.d.ts +14 -26
  417. package/dist/types/components/solution-spatial-ref/spatialreferences.d.ts +1 -4
  418. package/dist/types/components/solution-template-data/solution-template-data.d.ts +1 -7
  419. package/dist/types/components/solution-variables/solution-variables.d.ts +1 -7
  420. package/dist/types/components/store-manager/store-manager.d.ts +9 -0
  421. package/dist/types/components.d.ts +49 -17
  422. package/dist/types/utils/common.d.ts +13 -38
  423. package/dist/types/utils/interfaces.d.ts +111 -0
  424. package/dist/types/utils/templates.d.ts +2 -25
  425. package/package.json +4 -3
  426. package/dist/cjs/CalciteExpandToggle-3e4e3b6c.js.map +0 -1
  427. package/dist/cjs/CalciteHeading-d765addc.js.map +0 -1
  428. package/dist/cjs/array-cd6c0c32.js.map +0 -1
  429. package/dist/cjs/calcite-accordion-item.cjs.entry.js.map +0 -1
  430. package/dist/cjs/calcite-accordion.cjs.entry.js.map +0 -1
  431. package/dist/cjs/calcite-action-bar.cjs.entry.js.map +0 -1
  432. package/dist/cjs/calcite-action-group.cjs.entry.js.map +0 -1
  433. package/dist/cjs/calcite-action-menu_3.cjs.entry.js.map +0 -1
  434. package/dist/cjs/calcite-action-pad.cjs.entry.js.map +0 -1
  435. package/dist/cjs/calcite-action.cjs.entry.js.map +0 -1
  436. package/dist/cjs/calcite-alert.cjs.entry.js.map +0 -1
  437. package/dist/cjs/calcite-avatar.cjs.entry.js.map +0 -1
  438. package/dist/cjs/calcite-block-section.cjs.entry.js.map +0 -1
  439. package/dist/cjs/calcite-block.cjs.entry.js.map +0 -1
  440. package/dist/cjs/calcite-button.cjs.entry.js.map +0 -1
  441. package/dist/cjs/calcite-card.cjs.entry.js.map +0 -1
  442. package/dist/cjs/calcite-checkbox_4.cjs.entry.js.map +0 -1
  443. package/dist/cjs/calcite-chip.cjs.entry.js.map +0 -1
  444. package/dist/cjs/calcite-color-picker-hex-input.cjs.entry.js.map +0 -1
  445. package/dist/cjs/calcite-color-picker-swatch.cjs.entry.js.map +0 -1
  446. package/dist/cjs/calcite-color-picker.cjs.entry.js.map +0 -1
  447. package/dist/cjs/calcite-combobox-item-group.cjs.entry.js.map +0 -1
  448. package/dist/cjs/calcite-combobox-item.cjs.entry.js.map +0 -1
  449. package/dist/cjs/calcite-combobox.cjs.entry.js.map +0 -1
  450. package/dist/cjs/calcite-date-picker-day_3.cjs.entry.js.map +0 -1
  451. package/dist/cjs/calcite-date-picker.cjs.entry.js.map +0 -1
  452. package/dist/cjs/calcite-dropdown-group.cjs.entry.js.map +0 -1
  453. package/dist/cjs/calcite-dropdown-item.cjs.entry.js.map +0 -1
  454. package/dist/cjs/calcite-dropdown.cjs.entry.js.map +0 -1
  455. package/dist/cjs/calcite-fab.cjs.entry.js.map +0 -1
  456. package/dist/cjs/calcite-filter.cjs.entry.js.map +0 -1
  457. package/dist/cjs/calcite-flow.cjs.entry.js.map +0 -1
  458. package/dist/cjs/calcite-graph.cjs.entry.js.map +0 -1
  459. package/dist/cjs/calcite-handle.cjs.entry.js.map +0 -1
  460. package/dist/cjs/calcite-icon.cjs.entry.js.map +0 -1
  461. package/dist/cjs/calcite-inline-editable.cjs.entry.js.map +0 -1
  462. package/dist/cjs/calcite-input-date-picker.cjs.entry.js.map +0 -1
  463. package/dist/cjs/calcite-input-message.cjs.entry.js.map +0 -1
  464. package/dist/cjs/calcite-input-time-picker.cjs.entry.js.map +0 -1
  465. package/dist/cjs/calcite-input_2.cjs.entry.js.map +0 -1
  466. package/dist/cjs/calcite-label.cjs.entry.js.map +0 -1
  467. package/dist/cjs/calcite-link.cjs.entry.js.map +0 -1
  468. package/dist/cjs/calcite-list-item-group.cjs.entry.js.map +0 -1
  469. package/dist/cjs/calcite-list-item.cjs.entry.js.map +0 -1
  470. package/dist/cjs/calcite-list.cjs.entry.js.map +0 -1
  471. package/dist/cjs/calcite-loader.cjs.entry.js.map +0 -1
  472. package/dist/cjs/calcite-modal.cjs.entry.js.map +0 -1
  473. package/dist/cjs/calcite-notice.cjs.entry.js.map +0 -1
  474. package/dist/cjs/calcite-option-group.cjs.entry.js.map +0 -1
  475. package/dist/cjs/calcite-option.cjs.entry.js.map +0 -1
  476. package/dist/cjs/calcite-pagination.cjs.entry.js.map +0 -1
  477. package/dist/cjs/calcite-panel_14.cjs.entry.js.map +0 -1
  478. package/dist/cjs/calcite-pick-list-group.cjs.entry.js.map +0 -1
  479. package/dist/cjs/calcite-pick-list-item.cjs.entry.js.map +0 -1
  480. package/dist/cjs/calcite-pick-list.cjs.entry.js.map +0 -1
  481. package/dist/cjs/calcite-popover-manager.cjs.entry.js.map +0 -1
  482. package/dist/cjs/calcite-radio-button-group.cjs.entry.js.map +0 -1
  483. package/dist/cjs/calcite-radio-button.cjs.entry.js.map +0 -1
  484. package/dist/cjs/calcite-radio-group-item.cjs.entry.js.map +0 -1
  485. package/dist/cjs/calcite-radio-group.cjs.entry.js.map +0 -1
  486. package/dist/cjs/calcite-radio.cjs.entry.js.map +0 -1
  487. package/dist/cjs/calcite-rating.cjs.entry.js.map +0 -1
  488. package/dist/cjs/calcite-scrim.cjs.entry.js.map +0 -1
  489. package/dist/cjs/calcite-select.cjs.entry.js.map +0 -1
  490. package/dist/cjs/calcite-shell-center-row.cjs.entry.js.map +0 -1
  491. package/dist/cjs/calcite-slider.cjs.entry.js.map +0 -1
  492. package/dist/cjs/calcite-sortable-list.cjs.entry.js.map +0 -1
  493. package/dist/cjs/calcite-split-button.cjs.entry.js.map +0 -1
  494. package/dist/cjs/calcite-stepper-item.cjs.entry.js.map +0 -1
  495. package/dist/cjs/calcite-stepper.cjs.entry.js.map +0 -1
  496. package/dist/cjs/calcite-switch.cjs.entry.js.map +0 -1
  497. package/dist/cjs/calcite-tile-select-group.cjs.entry.js.map +0 -1
  498. package/dist/cjs/calcite-tile-select.cjs.entry.js.map +0 -1
  499. package/dist/cjs/calcite-tile.cjs.entry.js.map +0 -1
  500. package/dist/cjs/calcite-time-picker.cjs.entry.js.map +0 -1
  501. package/dist/cjs/calcite-tip-group.cjs.entry.js.map +0 -1
  502. package/dist/cjs/calcite-tip-manager.cjs.entry.js.map +0 -1
  503. package/dist/cjs/calcite-tip.cjs.entry.js.map +0 -1
  504. package/dist/cjs/calcite-tooltip.cjs.entry.js.map +0 -1
  505. package/dist/cjs/calcite-value-list-item.cjs.entry.js.map +0 -1
  506. package/dist/cjs/calcite-value-list.cjs.entry.js.map +0 -1
  507. package/dist/cjs/common-df66d950.js +0 -53
  508. package/dist/cjs/common-df66d950.js.map +0 -1
  509. package/dist/cjs/date-0554c4d1.js.map +0 -1
  510. package/dist/cjs/debounce-df22462b.js.map +0 -1
  511. package/dist/cjs/dom-62511f59.js.map +0 -1
  512. package/dist/cjs/editStore-7a250b85.js +0 -227
  513. package/dist/cjs/editStore-7a250b85.js.map +0 -1
  514. package/dist/cjs/forIn-6a1c2f6d.js.map +0 -1
  515. package/dist/cjs/form-0b5b2d4e.js.map +0 -1
  516. package/dist/cjs/guid-c6be9504.js.map +0 -1
  517. package/dist/cjs/index-706750dc.js.map +0 -1
  518. package/dist/cjs/index-81c17948.js.map +0 -1
  519. package/dist/cjs/index.cjs.js.map +0 -1
  520. package/dist/cjs/interfaces-5ba2c1a7.js.map +0 -1
  521. package/dist/cjs/key-2a6290c8.js.map +0 -1
  522. package/dist/cjs/label-46482470.js.map +0 -1
  523. package/dist/cjs/loader.cjs.js.map +0 -1
  524. package/dist/cjs/locale-0db34680.js.map +0 -1
  525. package/dist/cjs/math-71f8de66.js.map +0 -1
  526. package/dist/cjs/number-697ce34c.js.map +0 -1
  527. package/dist/cjs/observers-88bbd6ef.js.map +0 -1
  528. package/dist/cjs/popper-8c8dc960.js.map +0 -1
  529. package/dist/cjs/resources-20f88094.js.map +0 -1
  530. package/dist/cjs/resources-27c22d8a.js.map +0 -1
  531. package/dist/cjs/resources-369e7421.js.map +0 -1
  532. package/dist/cjs/resources-46af0638.js.map +0 -1
  533. package/dist/cjs/resources-509951f9.js.map +0 -1
  534. package/dist/cjs/resources-5b7958e4.js.map +0 -1
  535. package/dist/cjs/resources-a265534b.js.map +0 -1
  536. package/dist/cjs/resources-e231446d.js.map +0 -1
  537. package/dist/cjs/resources-ef6c71a1.js.map +0 -1
  538. package/dist/cjs/shared-list-render-63d3ea89.js.map +0 -1
  539. package/dist/cjs/solution-configuration.cjs.entry.js.map +0 -1
  540. package/dist/cjs/solution-contents_3.cjs.entry.js.map +0 -1
  541. package/dist/cjs/solutions.cjs.js.map +0 -1
  542. package/dist/cjs/sortable.esm-14548a17.js.map +0 -1
  543. package/dist/cjs/store-manager.cjs.entry.js.map +0 -1
  544. package/dist/cjs/templates-fe6dd431.js +0 -237
  545. package/dist/cjs/templates-fe6dd431.js.map +0 -1
  546. package/dist/cjs/time-c87dc79e.js.map +0 -1
  547. package/dist/cjs/utils-c19d354a.js.map +0 -1
  548. package/dist/cjs/utils-cb7373e6.js.map +0 -1
  549. package/dist/collection/components/json-editor/json-editor.js.map +0 -1
  550. package/dist/collection/components/solution-configuration/solution-configuration.js.map +0 -1
  551. package/dist/collection/components/solution-contents/solution-contents.js.map +0 -1
  552. package/dist/collection/components/solution-item/solution-item.js.map +0 -1
  553. package/dist/collection/components/solution-item-details/solution-item-details.js.map +0 -1
  554. package/dist/collection/components/solution-item-icon/solution-item-icon.js.map +0 -1
  555. package/dist/collection/components/solution-item-sharing/solution-item-sharing.js.map +0 -1
  556. package/dist/collection/components/solution-organization-variables/solution-organization-variables.js.map +0 -1
  557. package/dist/collection/components/solution-resource-item/solution-resource-item.js.map +0 -1
  558. package/dist/collection/components/solution-spatial-ref/solution-spatial-ref.js.map +0 -1
  559. package/dist/collection/components/solution-spatial-ref/spatialreferences.js.map +0 -1
  560. package/dist/collection/components/solution-template-data/solution-template-data.js.map +0 -1
  561. package/dist/collection/components/solution-variables/solution-variables.js.map +0 -1
  562. package/dist/collection/components/store-manager/store-manager.js.map +0 -1
  563. package/dist/collection/index.js.map +0 -1
  564. package/dist/collection/utils/common.js.map +0 -1
  565. package/dist/collection/utils/editStore.js.map +0 -1
  566. package/dist/collection/utils/templates.js.map +0 -1
  567. package/dist/custom-elements/index.js.map +0 -1
  568. package/dist/esm/CalciteExpandToggle-5df46988.js.map +0 -1
  569. package/dist/esm/CalciteHeading-79b4b347.js.map +0 -1
  570. package/dist/esm/array-71e0c501.js.map +0 -1
  571. package/dist/esm/calcite-accordion-item.entry.js.map +0 -1
  572. package/dist/esm/calcite-accordion.entry.js.map +0 -1
  573. package/dist/esm/calcite-action-bar.entry.js.map +0 -1
  574. package/dist/esm/calcite-action-group.entry.js.map +0 -1
  575. package/dist/esm/calcite-action-menu_3.entry.js.map +0 -1
  576. package/dist/esm/calcite-action-pad.entry.js.map +0 -1
  577. package/dist/esm/calcite-action.entry.js.map +0 -1
  578. package/dist/esm/calcite-alert.entry.js.map +0 -1
  579. package/dist/esm/calcite-avatar.entry.js.map +0 -1
  580. package/dist/esm/calcite-block-section.entry.js.map +0 -1
  581. package/dist/esm/calcite-block.entry.js.map +0 -1
  582. package/dist/esm/calcite-button.entry.js.map +0 -1
  583. package/dist/esm/calcite-card.entry.js.map +0 -1
  584. package/dist/esm/calcite-checkbox_4.entry.js.map +0 -1
  585. package/dist/esm/calcite-chip.entry.js.map +0 -1
  586. package/dist/esm/calcite-color-picker-hex-input.entry.js.map +0 -1
  587. package/dist/esm/calcite-color-picker-swatch.entry.js.map +0 -1
  588. package/dist/esm/calcite-color-picker.entry.js.map +0 -1
  589. package/dist/esm/calcite-combobox-item-group.entry.js.map +0 -1
  590. package/dist/esm/calcite-combobox-item.entry.js.map +0 -1
  591. package/dist/esm/calcite-combobox.entry.js.map +0 -1
  592. package/dist/esm/calcite-date-picker-day_3.entry.js.map +0 -1
  593. package/dist/esm/calcite-date-picker.entry.js.map +0 -1
  594. package/dist/esm/calcite-dropdown-group.entry.js.map +0 -1
  595. package/dist/esm/calcite-dropdown-item.entry.js.map +0 -1
  596. package/dist/esm/calcite-dropdown.entry.js.map +0 -1
  597. package/dist/esm/calcite-fab.entry.js.map +0 -1
  598. package/dist/esm/calcite-filter.entry.js.map +0 -1
  599. package/dist/esm/calcite-flow.entry.js.map +0 -1
  600. package/dist/esm/calcite-graph.entry.js.map +0 -1
  601. package/dist/esm/calcite-handle.entry.js.map +0 -1
  602. package/dist/esm/calcite-icon.entry.js.map +0 -1
  603. package/dist/esm/calcite-inline-editable.entry.js.map +0 -1
  604. package/dist/esm/calcite-input-date-picker.entry.js.map +0 -1
  605. package/dist/esm/calcite-input-message.entry.js.map +0 -1
  606. package/dist/esm/calcite-input-time-picker.entry.js.map +0 -1
  607. package/dist/esm/calcite-input_2.entry.js.map +0 -1
  608. package/dist/esm/calcite-label.entry.js.map +0 -1
  609. package/dist/esm/calcite-link.entry.js.map +0 -1
  610. package/dist/esm/calcite-list-item-group.entry.js.map +0 -1
  611. package/dist/esm/calcite-list-item.entry.js.map +0 -1
  612. package/dist/esm/calcite-list.entry.js.map +0 -1
  613. package/dist/esm/calcite-loader.entry.js.map +0 -1
  614. package/dist/esm/calcite-modal.entry.js.map +0 -1
  615. package/dist/esm/calcite-notice.entry.js.map +0 -1
  616. package/dist/esm/calcite-option-group.entry.js.map +0 -1
  617. package/dist/esm/calcite-option.entry.js.map +0 -1
  618. package/dist/esm/calcite-pagination.entry.js.map +0 -1
  619. package/dist/esm/calcite-panel_14.entry.js.map +0 -1
  620. package/dist/esm/calcite-pick-list-group.entry.js.map +0 -1
  621. package/dist/esm/calcite-pick-list-item.entry.js.map +0 -1
  622. package/dist/esm/calcite-pick-list.entry.js.map +0 -1
  623. package/dist/esm/calcite-popover-manager.entry.js.map +0 -1
  624. package/dist/esm/calcite-radio-button-group.entry.js.map +0 -1
  625. package/dist/esm/calcite-radio-button.entry.js.map +0 -1
  626. package/dist/esm/calcite-radio-group-item.entry.js.map +0 -1
  627. package/dist/esm/calcite-radio-group.entry.js.map +0 -1
  628. package/dist/esm/calcite-radio.entry.js.map +0 -1
  629. package/dist/esm/calcite-rating.entry.js.map +0 -1
  630. package/dist/esm/calcite-scrim.entry.js.map +0 -1
  631. package/dist/esm/calcite-select.entry.js.map +0 -1
  632. package/dist/esm/calcite-shell-center-row.entry.js.map +0 -1
  633. package/dist/esm/calcite-slider.entry.js.map +0 -1
  634. package/dist/esm/calcite-sortable-list.entry.js.map +0 -1
  635. package/dist/esm/calcite-split-button.entry.js.map +0 -1
  636. package/dist/esm/calcite-stepper-item.entry.js.map +0 -1
  637. package/dist/esm/calcite-stepper.entry.js.map +0 -1
  638. package/dist/esm/calcite-switch.entry.js.map +0 -1
  639. package/dist/esm/calcite-tile-select-group.entry.js.map +0 -1
  640. package/dist/esm/calcite-tile-select.entry.js.map +0 -1
  641. package/dist/esm/calcite-tile.entry.js.map +0 -1
  642. package/dist/esm/calcite-time-picker.entry.js.map +0 -1
  643. package/dist/esm/calcite-tip-group.entry.js.map +0 -1
  644. package/dist/esm/calcite-tip-manager.entry.js.map +0 -1
  645. package/dist/esm/calcite-tip.entry.js.map +0 -1
  646. package/dist/esm/calcite-tooltip.entry.js.map +0 -1
  647. package/dist/esm/calcite-value-list-item.entry.js.map +0 -1
  648. package/dist/esm/calcite-value-list.entry.js.map +0 -1
  649. package/dist/esm/common-ccccf04d.js +0 -50
  650. package/dist/esm/common-ccccf04d.js.map +0 -1
  651. package/dist/esm/date-5d75460a.js.map +0 -1
  652. package/dist/esm/debounce-23ad5849.js.map +0 -1
  653. package/dist/esm/dom-1cc617ae.js.map +0 -1
  654. package/dist/esm/editStore-30a293f5.js +0 -225
  655. package/dist/esm/editStore-30a293f5.js.map +0 -1
  656. package/dist/esm/forIn-c922d47c.js.map +0 -1
  657. package/dist/esm/form-636dfed1.js.map +0 -1
  658. package/dist/esm/guid-740f1f1a.js.map +0 -1
  659. package/dist/esm/index-934f242e.js.map +0 -1
  660. package/dist/esm/index-a3c3e3db.js.map +0 -1
  661. package/dist/esm/index.js.map +0 -1
  662. package/dist/esm/interfaces-4f07beec.js.map +0 -1
  663. package/dist/esm/key-1748eb79.js.map +0 -1
  664. package/dist/esm/label-851f8926.js.map +0 -1
  665. package/dist/esm/loader.js.map +0 -1
  666. package/dist/esm/locale-31c8d43b.js.map +0 -1
  667. package/dist/esm/math-d8795f31.js.map +0 -1
  668. package/dist/esm/number-47ecb380.js.map +0 -1
  669. package/dist/esm/observers-b13ff24b.js.map +0 -1
  670. package/dist/esm/popper-25874f2f.js.map +0 -1
  671. package/dist/esm/resources-12c3b829.js.map +0 -1
  672. package/dist/esm/resources-32d7dd89.js.map +0 -1
  673. package/dist/esm/resources-466ccf86.js.map +0 -1
  674. package/dist/esm/resources-4cc0ef44.js.map +0 -1
  675. package/dist/esm/resources-861d0240.js.map +0 -1
  676. package/dist/esm/resources-b023c30a.js.map +0 -1
  677. package/dist/esm/resources-c537bacb.js.map +0 -1
  678. package/dist/esm/resources-e56b6e53.js.map +0 -1
  679. package/dist/esm/resources-ec79cfd7.js.map +0 -1
  680. package/dist/esm/shared-list-render-b5dacd2e.js.map +0 -1
  681. package/dist/esm/solution-configuration.entry.js.map +0 -1
  682. package/dist/esm/solution-contents_3.entry.js.map +0 -1
  683. package/dist/esm/solutions.js.map +0 -1
  684. package/dist/esm/sortable.esm-7856912e.js.map +0 -1
  685. package/dist/esm/store-manager.entry.js.map +0 -1
  686. package/dist/esm/templates-3480c08e.js +0 -230
  687. package/dist/esm/templates-3480c08e.js.map +0 -1
  688. package/dist/esm/time-a3b29c35.js.map +0 -1
  689. package/dist/esm/utils-021cb956.js.map +0 -1
  690. package/dist/esm/utils-5fdd203c.js.map +0 -1
  691. package/dist/solutions/index.esm.js.map +0 -1
  692. package/dist/solutions/p-019fe34e.entry.js +0 -11
  693. package/dist/solutions/p-019fe34e.entry.js.map +0 -1
  694. package/dist/solutions/p-01d537aa.entry.js +0 -11
  695. package/dist/solutions/p-01d537aa.entry.js.map +0 -1
  696. package/dist/solutions/p-05c73b7d.js.map +0 -1
  697. package/dist/solutions/p-05da6de1.entry.js +0 -11
  698. package/dist/solutions/p-05da6de1.entry.js.map +0 -1
  699. package/dist/solutions/p-05eb87fc.entry.js +0 -11
  700. package/dist/solutions/p-05eb87fc.entry.js.map +0 -1
  701. package/dist/solutions/p-07099311.entry.js.map +0 -1
  702. package/dist/solutions/p-07f15398.entry.js +0 -7
  703. package/dist/solutions/p-07f15398.entry.js.map +0 -1
  704. package/dist/solutions/p-093edbdc.entry.js +0 -11
  705. package/dist/solutions/p-093edbdc.entry.js.map +0 -1
  706. package/dist/solutions/p-0b8525e2.js.map +0 -1
  707. package/dist/solutions/p-0c91e100.js +0 -7
  708. package/dist/solutions/p-0c91e100.js.map +0 -1
  709. package/dist/solutions/p-0fcee724.entry.js +0 -7
  710. package/dist/solutions/p-0fcee724.entry.js.map +0 -1
  711. package/dist/solutions/p-17a2150d.entry.js +0 -11
  712. package/dist/solutions/p-17a2150d.entry.js.map +0 -1
  713. package/dist/solutions/p-1aaa9800.entry.js +0 -7
  714. package/dist/solutions/p-1aaa9800.entry.js.map +0 -1
  715. package/dist/solutions/p-228131f3.js.map +0 -1
  716. package/dist/solutions/p-22d67647.entry.js +0 -11
  717. package/dist/solutions/p-22d67647.entry.js.map +0 -1
  718. package/dist/solutions/p-291cbb4f.js.map +0 -1
  719. package/dist/solutions/p-2a5c409a.entry.js +0 -7
  720. package/dist/solutions/p-2a5c409a.entry.js.map +0 -1
  721. package/dist/solutions/p-2aca233c.entry.js +0 -11
  722. package/dist/solutions/p-2aca233c.entry.js.map +0 -1
  723. package/dist/solutions/p-2b6ef800.entry.js +0 -7
  724. package/dist/solutions/p-2b6ef800.entry.js.map +0 -1
  725. package/dist/solutions/p-2bae730e.entry.js +0 -11
  726. package/dist/solutions/p-2bae730e.entry.js.map +0 -1
  727. package/dist/solutions/p-2d59c6d7.entry.js +0 -11
  728. package/dist/solutions/p-2d59c6d7.entry.js.map +0 -1
  729. package/dist/solutions/p-2e1cd889.js.map +0 -1
  730. package/dist/solutions/p-35eafdfb.entry.js +0 -11
  731. package/dist/solutions/p-35eafdfb.entry.js.map +0 -1
  732. package/dist/solutions/p-372da016.entry.js +0 -7
  733. package/dist/solutions/p-372da016.entry.js.map +0 -1
  734. package/dist/solutions/p-37407f95.entry.js +0 -7
  735. package/dist/solutions/p-37407f95.entry.js.map +0 -1
  736. package/dist/solutions/p-3ae90cbb.entry.js +0 -7
  737. package/dist/solutions/p-3ae90cbb.entry.js.map +0 -1
  738. package/dist/solutions/p-3c3ccd03.entry.js +0 -11
  739. package/dist/solutions/p-3c3ccd03.entry.js.map +0 -1
  740. package/dist/solutions/p-3e168893.entry.js +0 -11
  741. package/dist/solutions/p-3e168893.entry.js.map +0 -1
  742. package/dist/solutions/p-3e67ed97.js.map +0 -1
  743. package/dist/solutions/p-3ed5096e.entry.js +0 -11
  744. package/dist/solutions/p-3ed5096e.entry.js.map +0 -1
  745. package/dist/solutions/p-41c2e1cc.js.map +0 -1
  746. package/dist/solutions/p-44e661a2.js.map +0 -1
  747. package/dist/solutions/p-4573d7c2.js.map +0 -1
  748. package/dist/solutions/p-4635ae4a.entry.js +0 -11
  749. package/dist/solutions/p-4635ae4a.entry.js.map +0 -1
  750. package/dist/solutions/p-46bcadbd.entry.js +0 -11
  751. package/dist/solutions/p-46bcadbd.entry.js.map +0 -1
  752. package/dist/solutions/p-4b0b2534.entry.js +0 -11
  753. package/dist/solutions/p-4b0b2534.entry.js.map +0 -1
  754. package/dist/solutions/p-51e4c002.entry.js +0 -7
  755. package/dist/solutions/p-51e4c002.entry.js.map +0 -1
  756. package/dist/solutions/p-520d8443.entry.js +0 -11
  757. package/dist/solutions/p-520d8443.entry.js.map +0 -1
  758. package/dist/solutions/p-591d5666.entry.js +0 -11
  759. package/dist/solutions/p-591d5666.entry.js.map +0 -1
  760. package/dist/solutions/p-5aff6fc3.entry.js +0 -11
  761. package/dist/solutions/p-5aff6fc3.entry.js.map +0 -1
  762. package/dist/solutions/p-5c95f5ee.entry.js +0 -11
  763. package/dist/solutions/p-5c95f5ee.entry.js.map +0 -1
  764. package/dist/solutions/p-606933f1.entry.js +0 -11
  765. package/dist/solutions/p-606933f1.entry.js.map +0 -1
  766. package/dist/solutions/p-62464fb3.entry.js +0 -11
  767. package/dist/solutions/p-62464fb3.entry.js.map +0 -1
  768. package/dist/solutions/p-6e970d4c.entry.js +0 -7
  769. package/dist/solutions/p-6e970d4c.entry.js.map +0 -1
  770. package/dist/solutions/p-6f861da6.entry.js +0 -11
  771. package/dist/solutions/p-6f861da6.entry.js.map +0 -1
  772. package/dist/solutions/p-7096464e.js.map +0 -1
  773. package/dist/solutions/p-73e2d13f.js.map +0 -1
  774. package/dist/solutions/p-745f85bf.entry.js +0 -11
  775. package/dist/solutions/p-745f85bf.entry.js.map +0 -1
  776. package/dist/solutions/p-7480bdae.entry.js +0 -7
  777. package/dist/solutions/p-7480bdae.entry.js.map +0 -1
  778. package/dist/solutions/p-7611d9ad.entry.js +0 -11
  779. package/dist/solutions/p-7611d9ad.entry.js.map +0 -1
  780. package/dist/solutions/p-77b056db.entry.js +0 -7
  781. package/dist/solutions/p-77b056db.entry.js.map +0 -1
  782. package/dist/solutions/p-7804ce97.js.map +0 -1
  783. package/dist/solutions/p-7cc15662.entry.js +0 -15
  784. package/dist/solutions/p-7cc15662.entry.js.map +0 -1
  785. package/dist/solutions/p-7cc9c6af.js.map +0 -1
  786. package/dist/solutions/p-7d84c932.entry.js +0 -11
  787. package/dist/solutions/p-7d84c932.entry.js.map +0 -1
  788. package/dist/solutions/p-7df393df.js.map +0 -1
  789. package/dist/solutions/p-7f49ef40.entry.js +0 -11
  790. package/dist/solutions/p-7f49ef40.entry.js.map +0 -1
  791. package/dist/solutions/p-7f5c2987.entry.js +0 -7
  792. package/dist/solutions/p-7f5c2987.entry.js.map +0 -1
  793. package/dist/solutions/p-7fd90af2.entry.js +0 -11
  794. package/dist/solutions/p-7fd90af2.entry.js.map +0 -1
  795. package/dist/solutions/p-815449b1.entry.js +0 -11
  796. package/dist/solutions/p-815449b1.entry.js.map +0 -1
  797. package/dist/solutions/p-819aff56.entry.js +0 -11
  798. package/dist/solutions/p-819aff56.entry.js.map +0 -1
  799. package/dist/solutions/p-85cf288c.js.map +0 -1
  800. package/dist/solutions/p-87d812ce.entry.js +0 -7
  801. package/dist/solutions/p-87d812ce.entry.js.map +0 -1
  802. package/dist/solutions/p-8b616d33.entry.js +0 -7
  803. package/dist/solutions/p-8b616d33.entry.js.map +0 -1
  804. package/dist/solutions/p-8efca26d.entry.js +0 -7
  805. package/dist/solutions/p-8efca26d.entry.js.map +0 -1
  806. package/dist/solutions/p-946521e1.js.map +0 -1
  807. package/dist/solutions/p-970f1072.js +0 -22
  808. package/dist/solutions/p-970f1072.js.map +0 -1
  809. package/dist/solutions/p-9a953609.entry.js +0 -11
  810. package/dist/solutions/p-9a953609.entry.js.map +0 -1
  811. package/dist/solutions/p-9b381784.entry.js +0 -11
  812. package/dist/solutions/p-9b381784.entry.js.map +0 -1
  813. package/dist/solutions/p-9dad5583.entry.js +0 -11
  814. package/dist/solutions/p-9dad5583.entry.js.map +0 -1
  815. package/dist/solutions/p-9df9ac35.js.map +0 -1
  816. package/dist/solutions/p-9ee74ad4.entry.js +0 -7
  817. package/dist/solutions/p-9ee74ad4.entry.js.map +0 -1
  818. package/dist/solutions/p-9fab6046.entry.js +0 -22
  819. package/dist/solutions/p-9fab6046.entry.js.map +0 -1
  820. package/dist/solutions/p-9fc06fc3.entry.js +0 -15
  821. package/dist/solutions/p-9fc06fc3.entry.js.map +0 -1
  822. package/dist/solutions/p-a10dc180.js.map +0 -1
  823. package/dist/solutions/p-a1c40865.entry.js +0 -11
  824. package/dist/solutions/p-a1c40865.entry.js.map +0 -1
  825. package/dist/solutions/p-a3b16f15.entry.js +0 -7
  826. package/dist/solutions/p-a3b16f15.entry.js.map +0 -1
  827. package/dist/solutions/p-a7906d52.entry.js +0 -11
  828. package/dist/solutions/p-a7906d52.entry.js.map +0 -1
  829. package/dist/solutions/p-a8a106f7.entry.js +0 -7
  830. package/dist/solutions/p-a8a106f7.entry.js.map +0 -1
  831. package/dist/solutions/p-a8d2d1a3.entry.js +0 -7
  832. package/dist/solutions/p-a8d2d1a3.entry.js.map +0 -1
  833. package/dist/solutions/p-a98c5d29.entry.js +0 -11
  834. package/dist/solutions/p-a98c5d29.entry.js.map +0 -1
  835. package/dist/solutions/p-a9df64c4.js.map +0 -1
  836. package/dist/solutions/p-ad54d2e2.entry.js +0 -11
  837. package/dist/solutions/p-ad54d2e2.entry.js.map +0 -1
  838. package/dist/solutions/p-adf3704d.entry.js +0 -11
  839. package/dist/solutions/p-adf3704d.entry.js.map +0 -1
  840. package/dist/solutions/p-af46b00f.entry.js +0 -11
  841. package/dist/solutions/p-af46b00f.entry.js.map +0 -1
  842. package/dist/solutions/p-af9be2ca.js.map +0 -1
  843. package/dist/solutions/p-b797d79b.entry.js +0 -23
  844. package/dist/solutions/p-b797d79b.entry.js.map +0 -1
  845. package/dist/solutions/p-c09fc04d.entry.js +0 -11
  846. package/dist/solutions/p-c09fc04d.entry.js.map +0 -1
  847. package/dist/solutions/p-c11f84d9.entry.js +0 -11
  848. package/dist/solutions/p-c11f84d9.entry.js.map +0 -1
  849. package/dist/solutions/p-c195dbb7.entry.js +0 -7
  850. package/dist/solutions/p-c195dbb7.entry.js.map +0 -1
  851. package/dist/solutions/p-c34e0641.js.map +0 -1
  852. package/dist/solutions/p-c5428bbc.entry.js +0 -11
  853. package/dist/solutions/p-c5428bbc.entry.js.map +0 -1
  854. package/dist/solutions/p-cb5cb9a8.js.map +0 -1
  855. package/dist/solutions/p-ce3e9060.entry.js +0 -11
  856. package/dist/solutions/p-ce3e9060.entry.js.map +0 -1
  857. package/dist/solutions/p-d132d8ad.entry.js +0 -7
  858. package/dist/solutions/p-d132d8ad.entry.js.map +0 -1
  859. package/dist/solutions/p-d320e3a2.entry.js +0 -7
  860. package/dist/solutions/p-d320e3a2.entry.js.map +0 -1
  861. package/dist/solutions/p-d70ef015.entry.js +0 -11
  862. package/dist/solutions/p-d70ef015.entry.js.map +0 -1
  863. package/dist/solutions/p-e4edca3b.js.map +0 -1
  864. package/dist/solutions/p-e581f631.js.map +0 -1
  865. package/dist/solutions/p-e65a8700.entry.js +0 -11
  866. package/dist/solutions/p-e65a8700.entry.js.map +0 -1
  867. package/dist/solutions/p-e762b2d1.js.map +0 -1
  868. package/dist/solutions/p-eb2efc0f.js.map +0 -1
  869. package/dist/solutions/p-ec178ea9.js.map +0 -1
  870. package/dist/solutions/p-ecbfddde.js.map +0 -1
  871. package/dist/solutions/p-eceb11d1.js +0 -22
  872. package/dist/solutions/p-eceb11d1.js.map +0 -1
  873. package/dist/solutions/p-ede2beab.entry.js +0 -7
  874. package/dist/solutions/p-ede2beab.entry.js.map +0 -1
  875. package/dist/solutions/p-f0a6135d.entry.js +0 -11
  876. package/dist/solutions/p-f0a6135d.entry.js.map +0 -1
  877. package/dist/solutions/p-f187755e.js.map +0 -1
  878. package/dist/solutions/p-f3c6b68d.entry.js +0 -7
  879. package/dist/solutions/p-f3c6b68d.entry.js.map +0 -1
  880. package/dist/solutions/p-f49bc4a8.js.map +0 -1
  881. package/dist/solutions/p-f6e8ee98.entry.js +0 -7
  882. package/dist/solutions/p-f6e8ee98.entry.js.map +0 -1
  883. package/dist/solutions/p-f780039d.js.map +0 -1
  884. package/dist/solutions/p-fa40e7e7.entry.js +0 -7
  885. package/dist/solutions/p-fa40e7e7.entry.js.map +0 -1
  886. package/dist/solutions/p-fb25fc4a.entry.js +0 -7
  887. package/dist/solutions/p-fb25fc4a.entry.js.map +0 -1
  888. package/dist/solutions/p-fbdf3e06.js.map +0 -1
  889. package/dist/solutions/p-fc1c8168.js.map +0 -1
  890. package/dist/solutions/p-ff3697a9.entry.js +0 -7
  891. package/dist/solutions/p-ff3697a9.entry.js.map +0 -1
  892. package/dist/solutions/solutions.esm.js.map +0 -1
@@ -1 +0,0 @@
1
- {"file":"calcite-panel.calcite-shell.calcite-shell-panel.calcite-tab.calcite-tab-nav.calcite-tab-title.calcite-tabs.json-editor.solution-item-details.solution-item-sharing.solution-organization-variables.solution-resource-item.solution-template-data.solution-variables.entry.js","mappings":"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","names":["CSS","SLOTS","ACTION_MENU_SLOTS"],"sources":["./node_modules/@esri/calcite-components/dist/collection/components/calcite-panel/resources.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-panel/calcite-panel.css?tag=calcite-panel&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/calcite-panel/calcite-panel.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-shell/resources.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-shell/calcite-shell.css?tag=calcite-shell&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/calcite-shell/calcite-shell.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-shell-panel/resources.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-shell-panel/calcite-shell-panel.css?tag=calcite-shell-panel&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/calcite-shell-panel/calcite-shell-panel.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tab/calcite-tab.css?tag=calcite-tab&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tab/calcite-tab.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tab-nav/calcite-tab-nav.css?tag=calcite-tab-nav&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tab-nav/calcite-tab-nav.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tab-title/calcite-tab-title.css?tag=calcite-tab-title&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tab-title/calcite-tab-title.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tabs/resources.js","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tabs/calcite-tabs.css?tag=calcite-tabs&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/calcite-tabs/calcite-tabs.js","./src/components/json-editor/json-editor.css?tag=json-editor","./src/components/json-editor/json-editor.tsx","./src/components/solution-item-details/solution-item-details.css?tag=solution-item-details","./src/components/solution-item-details/solution-item-details.tsx","./src/components/solution-item-sharing/solution-item-sharing.css?tag=solution-item-sharing&encapsulation=shadow","./src/components/solution-item-sharing/solution-item-sharing.tsx","./src/components/solution-organization-variables/solution-organization-variables.css?tag=solution-organization-variables&encapsulation=shadow","./src/components/solution-organization-variables/solution-organization-variables.tsx","./src/components/solution-resource-item/solution-resource-item.css?tag=solution-resource-item&encapsulation=shadow","./src/components/solution-resource-item/solution-resource-item.tsx","./src/components/solution-template-data/solution-template-data.css?tag=solution-template-data","./src/components/solution-template-data/solution-template-data.tsx","./src/components/solution-variables/solution-variables.css?tag=solution-variables&encapsulation=shadow","./src/components/solution-variables/solution-variables.tsx"],"sourcesContent":["/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nexport const CSS = {\n backButton: \"back-button\",\n container: \"container\",\n header: \"header\",\n heading: \"heading\",\n summary: \"summary\",\n headerContent: \"header-content\",\n headerActions: \"header-actions\",\n headerActionsEnd: \"header-actions--end\",\n headerActionsStart: \"header-actions--start\",\n contentWrapper: \"content-wrapper\",\n contentContainer: \"content-container\",\n fabContainer: \"fab-container\",\n footer: \"footer\",\n menuContainer: \"menu-container\",\n menuButton: \"menu-button\",\n menu: \"menu\",\n menuOpen: \"menu--open\"\n};\nexport const ICONS = {\n close: \"x\",\n menu: \"ellipsis\",\n backLeft: \"chevron-left\",\n backRight: \"chevron-right\"\n};\nexport const SLOTS = {\n headerActionsStart: \"header-actions-start\",\n headerActionsEnd: \"header-actions-end\",\n headerMenuActions: \"header-menu-actions\",\n headerContent: \"header-content\",\n fab: \"fab\",\n footer: \"footer\",\n footerActions: \"footer-actions\"\n};\nexport const TEXT = {\n back: \"Back\",\n close: \"Close\",\n open: \"Open\",\n options: \"Options\"\n};\nexport const HEADING_LEVEL = 3;\n","/* mixins & extensions */\n\n@keyframes in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n\n:root {\n --calcite-animation-timing: 300ms;\n}\n\n.calcite-animate {\n opacity: 0;\n animation-fill-mode: both;\n animation-duration: var(--calcite-animation-timing);\n}\n\n.calcite-animate__in {\n animation-name: in;\n}\n\n.calcite-animate__in-down {\n animation-name: in-down;\n}\n\n.calcite-animate__in-up {\n animation-name: in-up;\n}\n\n.calcite-animate__in-scale {\n animation-name: in-scale;\n}\n\n/**\n* Currently only used in Checkbox.\n*/\n\n:host {\n /* Base \":host\" styles for the component */\n box-sizing: border-box;\n background-color: var(--calcite-ui-foreground-1);\n color: var(--calcite-ui-text-2);\n font-size: var(--calcite-font-size--1);\n}\n\n:host * {\n box-sizing: border-box;\n}\n\n:root {\n --calcite-popper-transition: 150ms ease-in-out;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/**\n* CSS Custom Properties\n*\n* These properties can be overridden using the component's tag as selector.\n*\n* @prop --calcite-panel-max-height: the maximum height of the panel\n* @prop --calcite-panel-max-width: the maximum width of the panel\n* @prop --calcite-panel-min-width: the minimum width of the panel\n*/\n\n:host {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n position: relative;\n width: 100%;\n --calcite-min-header-height: calc(var(--calcite-icon-size) * 3);\n --calcite-panel-max-height: unset;\n --calcite-panel-width: 100%;\n --calcite-panel-min-width: unset;\n --calcite-panel-max-width: unset;\n}\n\n/* Shared styles for header elements */\n\n.header {\n margin: 0;\n display: flex;\n align-items: center;\n align-content: space-between;\n color: var(--calcite-ui-text-2);\n fill: ;\n}\n\n.heading {\n font-weight: var(--calcite-font-weight-medium);\n margin: 0;\n padding: 0;\n}\n\n.header .heading {\n flex: 1 1 auto;\n padding: 0.5rem;\n}\n\nh1.heading {\n font-size: var(--calcite-font-size-2);\n line-height: 1.5rem;\n}\n\nh2.heading {\n font-size: var(--calcite-font-size-1);\n line-height: 1.5rem;\n}\n\nh3.heading {\n font-size: var(--calcite-font-size-0);\n line-height: 1.25rem;\n}\n\nh4.heading,\nh5.heading {\n font-size: var(--calcite-font-size--1);\n line-height: 1rem;\n}\n\n.container {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-items: stretch;\n background-color: var(--calcite-ui-background);\n width: 100%;\n padding: 0;\n margin: 0;\n max-height: var(--calcite-panel-max-height);\n width: var(--calcite-panel-width);\n max-width: var(--calcite-panel-max-width);\n min-width: var(--calcite-panel-min-width);\n transition: max-height 150ms ease-in-out, width 150ms ease-in-out;\n}\n\n:host([height-scale=s]) {\n --calcite-panel-max-height: 40vh;\n}\n\n:host([height-scale=m]) {\n --calcite-panel-max-height: 60vh;\n}\n\n:host([height-scale=l]) {\n --calcite-panel-max-height: 80vh;\n}\n\n:host([width-scale=s]) {\n --calcite-panel-width: calc(var(--calcite-panel-width-multiplier) * 12vw);\n --calcite-panel-max-width: calc(var(--calcite-panel-width-multiplier) * 300px);\n --calcite-panel-min-width: calc(var(--calcite-panel-width-multiplier) * 150px);\n}\n\n:host([width-scale=m]) {\n --calcite-panel-width: calc(var(--calcite-panel-width-multiplier) * 20vw);\n --calcite-panel-max-width: calc(var(--calcite-panel-width-multiplier) * 420px);\n --calcite-panel-min-width: calc(var(--calcite-panel-width-multiplier) * 240px);\n}\n\n:host([width-scale=l]) {\n --calcite-panel-width: calc(var(--calcite-panel-width-multiplier) * 45vw);\n --calcite-panel-max-width: calc(var(--calcite-panel-width-multiplier) * 680px);\n --calcite-panel-min-width: calc(var(--calcite-panel-width-multiplier) * 340px);\n}\n\n.container[hidden] {\n display: none;\n}\n\n:host([loading]) .container,\n:host([disabled]) .container {\n position: relative;\n z-index: 1;\n}\n\n.header {\n border-bottom: 1px solid;\n align-items: stretch;\n background-color: var(--calcite-ui-foreground-1);\n justify-content: flex-start;\n position: sticky;\n top: 0;\n border-bottom-color: var(--calcite-ui-border-3);\n width: 100%;\n flex: 0 0 auto;\n min-height: 3rem;\n z-index: 2;\n}\n\n.header-content {\n overflow: hidden;\n margin-right: auto;\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 1rem;\n padding-bottom: 1rem;\n display: flex;\n flex-direction: column;\n}\n\n.header-content .heading,\n.header-content .summary {\n padding: 0;\n display: block;\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n text-overflow: ellipsis;\n}\n\n.header-content .heading {\n font-weight: var(--calcite-font-weight-medium);\n margin-top: 0;\n margin-left: 0;\n margin-right: 0;\n margin-bottom: 0.25rem;\n font-size: var(--calcite-font-size-0);\n line-height: 1.25rem;\n}\n\n.header-content .heading:only-child {\n margin-bottom: 0;\n}\n\n.header-content .summary {\n color: var(--calcite-ui-text-2);\n font-size: var(--calcite-font-size--1);\n line-height: 1rem;\n}\n\n.back-button {\n border-color: var(--calcite-ui-border-3);\n border-style: solid;\n border-width: 0;\n border-right-width: 1px;\n}\n\n.calcite--rtl .back-button {\n border-right-width: 0;\n border-left-width: 1px;\n}\n\n.header-actions {\n display: flex;\n align-items: stretch;\n flex-direction: row;\n flex-wrap: nowrap;\n}\n\n.header-actions--end {\n margin-left: auto;\n}\n\n.menu-container:only-child {\n margin-left: auto;\n}\n\n.menu-button {\n align-self: stretch;\n flex: 0 1 auto;\n height: 100%;\n position: relative;\n}\n\n.menu {\n min-width: 10rem;\n flex-flow: column nowrap;\n}\n\n.content-wrapper {\n height: 100%;\n overflow: auto;\n}\n\n.content-container {\n align-items: stretch;\n background-color: var(--calcite-ui-background);\n display: flex;\n flex: 1 1 auto;\n flex-wrap: nowrap;\n flex-direction: column;\n}\n\n.footer {\n border-top: 1px solid;\n background-color: var(--calcite-ui-foreground-1);\n border-top-color: var(--calcite-ui-border-3);\n display: flex;\n justify-content: space-evenly;\n position: sticky;\n bottom: 0;\n width: 100%;\n flex: 0 0 auto;\n min-height: 3rem;\n padding: 0.5rem;\n}\n\n.calcite--rtl .header-content {\n margin-left: auto;\n margin-right: unset;\n}\n\n.calcite--rtl .header-actions--end {\n margin-right: auto;\n margin-left: unset;\n}\n\n.calcite--rtl .menu-container:only-child {\n margin-right: auto;\n margin-left: unset;\n}\n\n.fab-container {\n display: block;\n position: sticky;\n margin-top: 0;\n margin-bottom: 0;\n margin-left: auto;\n margin-right: auto;\n padding: 0.5rem;\n bottom: 0;\n left: 0;\n right: 0;\n width: -moz-fit-content;\n width: fit-content;\n z-index: 1;\n}","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nimport { Component, Element, Event, Method, Prop, Watch, h, Fragment } from \"@stencil/core\";\nimport { CSS, HEADING_LEVEL, ICONS, SLOTS, TEXT } from \"./resources\";\nimport { getElementDir, getSlotted } from \"../../utils/dom\";\nimport { CSS_UTILITY } from \"../../utils/resources\";\nimport { CalciteHeading } from \"../functional/CalciteHeading\";\nimport { SLOTS as ACTION_MENU_SLOTS } from \"../calcite-action-menu/resources\";\n/**\n * @slot - A slot for adding custom content.\n * @slot header-actions-start - A slot for adding actions or content to the start side of the panel header.\n * @slot header-actions-end - A slot for adding actions or content to the end side of the panel header.\n * @slot header-content - A slot for adding custom content to the header.\n * @slot header-menu-actions - A slot for adding an overflow menu with actions inside a dropdown.\n * @slot fab - A slot for adding a `calcite-fab` (floating action button) to perform an action.\n * @slot footer-actions - A slot for adding buttons to the footer.\n * @slot footer - A slot for adding custom content to the footer.\n */\nexport class CalcitePanel {\n constructor() {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n /**\n * Hides the panel.\n */\n this.dismissed = false;\n /**\n * When true, disabled prevents interaction. This state shows items with lower opacity/grayed.\n */\n this.disabled = false;\n /**\n * Displays a close button in the trailing side of the header.\n */\n this.dismissible = false;\n /**\n * Shows a back button in the header.\n */\n this.showBackButton = false;\n /**\n * When true, content is waiting to be loaded. This state shows a busy indicator.\n */\n this.loading = false;\n /**\n * Opens the action menu.\n */\n this.menuOpen = false;\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n this.setContainerRef = (node) => {\n this.containerEl = node;\n };\n this.setDismissRef = (node) => {\n this.dismissButtonEl = node;\n };\n this.setBackRef = (node) => {\n this.backButtonEl = node;\n };\n this.panelKeyUpHandler = (event) => {\n if (event.key === \"Escape\") {\n this.dismiss();\n }\n };\n this.dismiss = () => {\n this.dismissed = true;\n };\n this.panelScrollHandler = () => {\n this.calcitePanelScroll.emit();\n };\n this.backButtonClick = () => {\n this.calcitePanelBackClick.emit();\n };\n }\n dismissedHandler() {\n this.calcitePanelDismissedChange.emit();\n }\n // --------------------------------------------------------------------------\n //\n // Methods\n //\n // --------------------------------------------------------------------------\n /** Sets focus on the component. */\n async setFocus(focusId) {\n var _a, _b, _c;\n if (focusId === \"dismiss-button\") {\n (_a = this.dismissButtonEl) === null || _a === void 0 ? void 0 : _a.setFocus();\n return;\n }\n if (focusId === \"back-button\") {\n (_b = this.backButtonEl) === null || _b === void 0 ? void 0 : _b.setFocus();\n return;\n }\n (_c = this.containerEl) === null || _c === void 0 ? void 0 : _c.focus();\n }\n // --------------------------------------------------------------------------\n //\n // Render Methods\n //\n // --------------------------------------------------------------------------\n renderBackButton() {\n const { el } = this;\n const rtl = getElementDir(el) === \"rtl\";\n const { showBackButton, intlBack, backButtonClick } = this;\n const label = intlBack || TEXT.back;\n const icon = rtl ? ICONS.backRight : ICONS.backLeft;\n return showBackButton ? (h(\"calcite-action\", { \"aria-label\": label, class: CSS.backButton, icon: icon, key: \"back-button\", onClick: backButtonClick, ref: this.setBackRef, scale: \"s\", slot: SLOTS.headerActionsStart, text: label })) : null;\n }\n renderHeaderContent() {\n const { heading, headingLevel, summary } = this;\n const headingNode = heading ? (h(CalciteHeading, { class: CSS.heading, level: headingLevel || HEADING_LEVEL }, heading)) : null;\n const summaryNode = summary ? h(\"span\", { class: CSS.summary }, summary) : null;\n return headingNode || summaryNode ? (h(\"div\", { class: CSS.headerContent, key: \"header-content\" },\n headingNode,\n summaryNode)) : null;\n }\n /**\n * Allows user to override the entire header-content node.\n */\n renderHeaderSlottedContent() {\n return (h(\"div\", { class: CSS.headerContent, key: \"header-content\" },\n h(\"slot\", { name: SLOTS.headerContent })));\n }\n renderHeaderStartActions() {\n const { el } = this;\n const hasStartActions = getSlotted(el, SLOTS.headerActionsStart);\n return hasStartActions ? (h(\"div\", { class: { [CSS.headerActionsStart]: true, [CSS.headerActions]: true }, key: \"header-actions-start\" },\n h(\"slot\", { name: SLOTS.headerActionsStart }))) : null;\n }\n renderHeaderActionsEnd() {\n const { dismiss, dismissible, el, intlClose } = this;\n const text = intlClose || TEXT.close;\n const dismissibleNode = dismissible ? (h(\"calcite-action\", { \"aria-label\": text, icon: ICONS.close, onClick: dismiss, ref: this.setDismissRef, text: text })) : null;\n const slotNode = h(\"slot\", { name: SLOTS.headerActionsEnd });\n const hasEndActions = getSlotted(el, SLOTS.headerActionsEnd);\n return hasEndActions || dismissibleNode ? (h(\"div\", { class: { [CSS.headerActionsEnd]: true, [CSS.headerActions]: true }, key: \"header-actions-end\" },\n slotNode,\n dismissibleNode)) : null;\n }\n renderMenu() {\n const { el, intlOptions, menuOpen } = this;\n const hasMenuItems = getSlotted(el, SLOTS.headerMenuActions);\n return hasMenuItems ? (h(\"calcite-action-menu\", { flipPlacements: [\"top\", \"bottom\"], label: intlOptions || TEXT.options, open: menuOpen, placement: \"bottom-end\" },\n h(\"calcite-action\", { icon: ICONS.menu, slot: ACTION_MENU_SLOTS.trigger, text: intlOptions || TEXT.options }),\n h(\"slot\", { name: SLOTS.headerMenuActions }))) : null;\n }\n renderHeaderNode() {\n const { el, showBackButton } = this;\n const backButtonNode = this.renderBackButton();\n const hasHeaderSlottedContent = getSlotted(el, SLOTS.headerContent);\n const headerContentNode = hasHeaderSlottedContent\n ? this.renderHeaderSlottedContent()\n : this.renderHeaderContent();\n const actionsNodeStart = this.renderHeaderStartActions();\n const actionsNodeEnd = this.renderHeaderActionsEnd();\n const headerMenuNode = this.renderMenu();\n return actionsNodeStart ||\n headerContentNode ||\n actionsNodeEnd ||\n headerMenuNode ||\n showBackButton ? (h(\"header\", { class: CSS.header },\n backButtonNode,\n actionsNodeStart,\n headerContentNode,\n actionsNodeEnd,\n headerMenuNode)) : null;\n }\n /**\n * Allows user to override the entire footer node.\n */\n renderFooterSlottedContent() {\n const { el } = this;\n const hasFooterSlottedContent = getSlotted(el, SLOTS.footer);\n return hasFooterSlottedContent ? (h(\"footer\", { class: CSS.footer },\n h(\"slot\", { name: SLOTS.footer }))) : null;\n }\n renderFooterActions() {\n const { el } = this;\n const hasFooterActions = getSlotted(el, SLOTS.footerActions);\n return hasFooterActions ? (h(\"footer\", { class: CSS.footer },\n h(\"slot\", { name: SLOTS.footerActions }))) : null;\n }\n renderContent() {\n return (h(\"div\", { class: CSS.contentWrapper, onScroll: this.panelScrollHandler, tabIndex: 0 },\n h(\"section\", { class: CSS.contentContainer },\n h(\"slot\", null)),\n this.renderFab()));\n }\n renderFab() {\n const { el } = this;\n const hasFab = getSlotted(el, SLOTS.fab);\n return hasFab ? (h(\"div\", { class: CSS.fabContainer },\n h(\"slot\", { name: SLOTS.fab }))) : null;\n }\n render() {\n const { dismissed, disabled, dismissible, el, loading, panelKeyUpHandler } = this;\n const rtl = getElementDir(el) === \"rtl\";\n const panelNode = (h(\"article\", { \"aria-busy\": loading.toString(), class: {\n [CSS.container]: true,\n [CSS_UTILITY.rtl]: rtl\n }, hidden: dismissible && dismissed, onKeyUp: panelKeyUpHandler, ref: this.setContainerRef, tabIndex: dismissible ? 0 : -1 },\n this.renderHeaderNode(),\n this.renderContent(),\n this.renderFooterSlottedContent() || this.renderFooterActions()));\n return (h(Fragment, null,\n loading || disabled ? h(\"calcite-scrim\", { loading: loading }) : null,\n panelNode));\n }\n static get is() { return \"calcite-panel\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"calcite-panel.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"calcite-panel.css\"]\n }; }\n static get properties() { return {\n \"dismissed\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Hides the panel.\"\n },\n \"attribute\": \"dismissed\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"beforeBack\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"() => Promise<void>\",\n \"resolved\": \"() => Promise<void>\",\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"When provided, this method will be called before it is removed from the parent flow.\"\n }\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"When true, disabled prevents interaction. This state shows items with lower opacity/grayed.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"dismissible\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Displays a close button in the trailing side of the header.\"\n },\n \"attribute\": \"dismissible\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"headingLevel\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HeadingLevel\",\n \"resolved\": \"1 | 2 | 3 | 4 | 5 | 6\",\n \"references\": {\n \"HeadingLevel\": {\n \"location\": \"import\",\n \"path\": \"../functional/CalciteHeading\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Number at which section headings should start for this component.\"\n },\n \"attribute\": \"heading-level\",\n \"reflect\": false\n },\n \"showBackButton\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Shows a back button in the header.\"\n },\n \"attribute\": \"show-back-button\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"intlBack\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"'Back' text string.\"\n },\n \"attribute\": \"intl-back\",\n \"reflect\": false\n },\n \"heightScale\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Scale\",\n \"resolved\": \"\\\"l\\\" | \\\"m\\\" | \\\"s\\\"\",\n \"references\": {\n \"Scale\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies the maxiumum height of the panel.\"\n },\n \"attribute\": \"height-scale\",\n \"reflect\": true\n },\n \"widthScale\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Scale\",\n \"resolved\": \"\\\"l\\\" | \\\"m\\\" | \\\"s\\\"\",\n \"references\": {\n \"Scale\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This sets width of the panel.\"\n },\n \"attribute\": \"width-scale\",\n \"reflect\": true\n },\n \"loading\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"When true, content is waiting to be loaded. This state shows a busy indicator.\"\n },\n \"attribute\": \"loading\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"intlClose\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"'Close' text string for the close button. The close button will only be shown when 'dismissible' is true.\"\n },\n \"attribute\": \"intl-close\",\n \"reflect\": false\n },\n \"intlOptions\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"'Options' text string for the actions menu.\"\n },\n \"attribute\": \"intl-options\",\n \"reflect\": false\n },\n \"heading\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Heading text.\"\n },\n \"attribute\": \"heading\",\n \"reflect\": false\n },\n \"summary\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Summary text. A description displayed underneath the heading.\"\n },\n \"attribute\": \"summary\",\n \"reflect\": false\n },\n \"menuOpen\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Opens the action menu.\"\n },\n \"attribute\": \"menu-open\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n }; }\n static get events() { return [{\n \"method\": \"calcitePanelDismissedChange\",\n \"name\": \"calcitePanelDismissedChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the close button has been clicked.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }, {\n \"method\": \"calcitePanelScroll\",\n \"name\": \"calcitePanelScroll\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the content has been scrolled.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }, {\n \"method\": \"calcitePanelBackClick\",\n \"name\": \"calcitePanelBackClick\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the back button has been clicked.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }]; }\n static get methods() { return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"(focusId?: \\\"dismiss-button\\\" | \\\"back-button\\\") => Promise<void>\",\n \"parameters\": [{\n \"tags\": [],\n \"text\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the component.\",\n \"tags\": []\n }\n }\n }; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"dismissed\",\n \"methodName\": \"dismissedHandler\"\n }]; }\n}\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nexport const CSS = {\n main: \"main\",\n mainReversed: \"main--reversed\",\n content: \"content\",\n contentBehind: \"content--behind\",\n footer: \"footer\"\n};\nexport const SLOTS = {\n centerRow: \"center-row\",\n primaryPanel: \"primary-panel\",\n contextualPanel: \"contextual-panel\",\n header: \"header\",\n footer: \"footer\"\n};\n","/* mixins & extensions */\n\n@keyframes in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n\n:root {\n --calcite-animation-timing: 300ms;\n}\n\n.calcite-animate {\n opacity: 0;\n animation-fill-mode: both;\n animation-duration: var(--calcite-animation-timing);\n}\n\n.calcite-animate__in {\n animation-name: in;\n}\n\n.calcite-animate__in-down {\n animation-name: in-down;\n}\n\n.calcite-animate__in-up {\n animation-name: in-up;\n}\n\n.calcite-animate__in-scale {\n animation-name: in-scale;\n}\n\n/**\n* Currently only used in Checkbox.\n*/\n\n:host {\n /* Base \":host\" styles for the component */\n box-sizing: border-box;\n background-color: var(--calcite-ui-foreground-1);\n color: var(--calcite-ui-text-2);\n font-size: var(--calcite-font-size--1);\n}\n\n:host * {\n box-sizing: border-box;\n}\n\n:root {\n --calcite-popper-transition: 150ms ease-in-out;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/**\n* CSS Custom Properties\n*\n* These properties can be overridden using the component's tag as selector.\n*\n* @prop --calcite-shell-tip-spacing: the left/right positioning of the tip-manager when slotted within a shell\n*/\n\n:host {\n width: 100%;\n height: 100%;\n position: absolute;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n --calcite-shell-tip-spacing: 26vw;\n}\n\n.main {\n height: 100%;\n width: 100%;\n flex: 1 1 auto;\n display: flex;\n flex-direction: row;\n position: relative;\n justify-content: space-between;\n overflow: hidden;\n}\n\n.main--reversed {\n flex-direction: row-reverse;\n}\n\n.content {\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n height: 100%;\n overflow: auto;\n width: 100%;\n}\n\n.content ::slotted(calcite-shell-center-row),\n.content ::slotted(calcite-panel),\n.content ::slotted(calcite-flow) {\n align-self: stretch;\n flex: 1 1 auto;\n max-height: unset;\n}\n\n.content--behind {\n border-width: 0;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 0;\n display: initial;\n}\n\n::slotted(calcite-shell-center-row) {\n width: unset;\n}\n\n::slotted(.header .heading) {\n font-weight: var(--calcite-font-weight-normal);\n font-size: var(--calcite-font-size--2);\n line-height: 1.375;\n}\n\n::slotted(calcite-shell-panel),\n::slotted(calcite-shell-center-row) {\n position: relative;\n z-index: 1;\n}\n\n::slotted(calcite-panel),\n::slotted(calcite-flow) {\n border-width: 1px;\n border-color: var(--calcite-ui-border-3);\n border-style: solid;\n border-left-width: 0;\n border-right-width: 0;\n}\n\nslot[name=center-row]::slotted(calcite-shell-center-row:not([detached])) {\n border-left-width: 1px;\n border-right-width: 1px;\n border-color: var(--calcite-ui-border-3);\n}\n\n::slotted(calcite-tip-manager) {\n border-radius: 0.25rem;\n box-shadow: 0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08);\n position: absolute;\n animation: in-up var(--calcite-animation-timing) ease-in-out;\n box-sizing: border-box;\n bottom: 0.5rem;\n left: var(--calcite-shell-tip-spacing);\n right: var(--calcite-shell-tip-spacing);\n z-index: 2;\n}","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nimport { Component, Element, Prop, h, Fragment } from \"@stencil/core\";\nimport { CSS, SLOTS } from \"./resources\";\nimport { getSlotted } from \"../../utils/dom\";\n/**\n * @slot - A slot for adding content to the shell. This content will appear between any leading and trailing panels added to the shell. (eg. a map)\n * @slot header - A slot for adding header content. This content will be positioned at the top of the shell.\n * @slot footer - A slot for adding footer content. This content will be positioned at the bottom of the shell.\n * @slot primary-panel - A slot for adding the leading `calcite-shell-panel`.\n * @slot contextual-panel - A slot for adding the trailing `calcite-shell-panel`.\n * @slot center-row - A slot for adding custom content in the center row.\n */\nexport class CalciteShell {\n constructor() {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n /**\n * Positions the center content behind any calcite-shell-panels.\n */\n this.contentBehind = false;\n }\n // --------------------------------------------------------------------------\n //\n // Render Methods\n //\n // --------------------------------------------------------------------------\n renderHeader() {\n const hasHeader = !!getSlotted(this.el, SLOTS.header);\n return hasHeader ? h(\"slot\", { name: SLOTS.header }) : null;\n }\n renderContent() {\n const content = !!this.contentBehind\n ? [\n h(\"div\", { class: {\n [CSS.content]: true,\n [CSS.contentBehind]: !!this.contentBehind\n } },\n h(\"slot\", null)),\n h(\"slot\", { name: SLOTS.centerRow })\n ]\n : [\n h(\"div\", { class: CSS.content },\n h(\"slot\", null),\n h(\"slot\", { name: SLOTS.centerRow }))\n ];\n return content;\n }\n renderFooter() {\n const hasFooter = !!getSlotted(this.el, SLOTS.footer);\n return hasFooter ? (h(\"div\", { class: CSS.footer },\n h(\"slot\", { name: SLOTS.footer }))) : null;\n }\n renderMain() {\n const primaryPanel = getSlotted(this.el, SLOTS.primaryPanel);\n const mainClasses = {\n [CSS.main]: true,\n [CSS.mainReversed]: (primaryPanel === null || primaryPanel === void 0 ? void 0 : primaryPanel.position) === \"end\"\n };\n return (h(\"div\", { class: mainClasses },\n h(\"slot\", { name: SLOTS.primaryPanel }),\n this.renderContent(),\n h(\"slot\", { name: SLOTS.contextualPanel })));\n }\n render() {\n return (h(Fragment, null,\n this.renderHeader(),\n this.renderMain(),\n this.renderFooter()));\n }\n static get is() { return \"calcite-shell\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"calcite-shell.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"calcite-shell.css\"]\n }; }\n static get properties() { return {\n \"contentBehind\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Positions the center content behind any calcite-shell-panels.\"\n },\n \"attribute\": \"content-behind\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n }; }\n static get elementRef() { return \"el\"; }\n}\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nexport const CSS = {\n container: \"container\",\n content: \"content\",\n contentHeader: \"content__header\",\n contentBody: \"content__body\",\n contentDetached: \"content--detached\"\n};\nexport const SLOTS = {\n actionBar: \"action-bar\",\n header: \"header\"\n};\n","/* mixins & extensions */\n\n@keyframes in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n\n:root {\n --calcite-animation-timing: 300ms;\n}\n\n.calcite-animate {\n opacity: 0;\n animation-fill-mode: both;\n animation-duration: var(--calcite-animation-timing);\n}\n\n.calcite-animate__in {\n animation-name: in;\n}\n\n.calcite-animate__in-down {\n animation-name: in-down;\n}\n\n.calcite-animate__in-up {\n animation-name: in-up;\n}\n\n.calcite-animate__in-scale {\n animation-name: in-scale;\n}\n\n/**\n* Currently only used in Checkbox.\n*/\n\n:root {\n --calcite-popper-transition: 150ms ease-in-out;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n display: flex;\n align-items: stretch;\n flex: 0 1 auto;\n --calcite-shell-panel-detached-max-height: unset;\n}\n\n.container {\n box-sizing: border-box;\n display: flex;\n align-items: stretch;\n background-color: transparent;\n flex: 1 1 auto;\n pointer-events: none;\n color: var(--calcite-ui-text-2);\n font-size: var(--calcite-font-size--1);\n}\n\n.container * {\n box-sizing: border-box;\n}\n\n::slotted(calcite-panel),\n::slotted(calcite-flow) {\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n max-height: unset;\n max-width: unset;\n}\n\n::slotted(.calcite-match-height) {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.content {\n align-items: stretch;\n align-self: stretch;\n background-color: var(--calcite-ui-background);\n display: flex;\n padding: 0;\n pointer-events: auto;\n flex-direction: column;\n flex-wrap: nowrap;\n width: var(--calcite-shell-panel-width);\n max-width: var(--calcite-shell-panel-max-width);\n min-width: var(--calcite-shell-panel-min-width);\n transition: max-height 150ms ease-in-out, max-width 150ms ease-in-out;\n}\n\n.content__header {\n display: flex;\n flex-direction: column;\n flex: 0 1 auto;\n flex-wrap: nowrap;\n align-items: stretch;\n}\n\n.content__body {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n overflow: hidden;\n}\n\n:host([width-scale=s]) .content {\n --calcite-shell-panel-width: calc(var(--calcite-panel-width-multiplier) * 12vw);\n --calcite-shell-panel-max-width: calc(var(--calcite-panel-width-multiplier) * 300px);\n --calcite-shell-panel-min-width: calc(var(--calcite-panel-width-multiplier) * 150px);\n}\n\n:host([width-scale=m]) .content {\n --calcite-shell-panel-width: calc(var(--calcite-panel-width-multiplier) * 20vw);\n --calcite-shell-panel-max-width: calc(var(--calcite-panel-width-multiplier) * 420px);\n --calcite-shell-panel-min-width: calc(var(--calcite-panel-width-multiplier) * 240px);\n}\n\n:host([width-scale=l]) .content {\n --calcite-shell-panel-width: calc(var(--calcite-panel-width-multiplier) * 45vw);\n --calcite-shell-panel-max-width: calc(var(--calcite-panel-width-multiplier) * 680px);\n --calcite-shell-panel-min-width: calc(var(--calcite-panel-width-multiplier) * 340px);\n}\n\n:host([detached-height-scale=s]) .content--detached {\n --calcite-shell-panel-detached-max-height: 40vh;\n}\n\n:host([detached-height-scale=m]) .content--detached {\n --calcite-shell-panel-detached-max-height: 60vh;\n}\n\n:host([detached-height-scale=l]) .content--detached {\n --calcite-shell-panel-detached-max-height: 80vh;\n}\n\n.content--detached {\n border-radius: 0.25rem;\n box-shadow: 0 4px 8px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);\n height: auto;\n overflow: hidden;\n margin-top: 0.5rem;\n margin-bottom: auto;\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n max-height: var(--calcite-shell-panel-detached-max-height);\n}\n\n.content--detached ::slotted(calcite-panel),\n.content--detached ::slotted(calcite-flow) {\n max-height: unset;\n}\n\n:host([position=start]) .content--detached ::slotted(calcite-panel),\n:host([position=start]) .content--detached ::slotted(calcite-flow),\n:host([position=end]) .content--detached ::slotted(calcite-panel),\n:host([position=end]) .content--detached ::slotted(calcite-flow) {\n border-style: none;\n}\n\n.content[hidden] {\n display: none;\n}\n\nslot[name=action-bar]::slotted(calcite-action-bar),\n.content ::slotted(calcite-flow),\n.content ::slotted(calcite-panel) {\n border-width: 1px;\n border-color: var(--calcite-ui-border-3);\n border-style: solid;\n}\n\n:host([position=start]) slot[name=action-bar]::slotted(calcite-action-bar),\n:host([position=start]) .content ::slotted(calcite-flow),\n:host([position=start]) .content ::slotted(calcite-panel) {\n border-inline-start: none;\n}\n\n:host([position=end]) slot[name=action-bar]::slotted(calcite-action-bar),\n:host([position=end]) .content ::slotted(calcite-flow),\n:host([position=end]) .content ::slotted(calcite-panel) {\n border-inline-end: none;\n}","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nimport { Component, Element, Event, Prop, Watch, h } from \"@stencil/core\";\nimport { CSS, SLOTS } from \"./resources\";\nimport { getSlotted } from \"../../utils/dom\";\n/**\n * @slot - A slot for adding content to the shell panel.\n * @slot action-bar - A slot for adding a `calcite-action-bar` to the panel.\n */\nexport class CalciteShellPanel {\n constructor() {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n /**\n * Hide the content panel.\n */\n this.collapsed = false;\n /**\n * This property makes the content area appear like a \"floating\" panel.\n */\n this.detached = false;\n /**\n * Specifies the maxiumum height of the contents when detached.\n */\n this.detachedHeightScale = \"l\";\n /**\n * This sets width of the content area.\n */\n this.widthScale = \"m\";\n }\n watchHandler() {\n this.calciteShellPanelToggle.emit();\n }\n // --------------------------------------------------------------------------\n //\n // Render Methods\n //\n // --------------------------------------------------------------------------\n renderHeader() {\n const { el } = this;\n const hasHeader = getSlotted(el, SLOTS.header);\n return hasHeader ? (h(\"div\", { class: CSS.contentHeader },\n h(\"slot\", { name: SLOTS.header }))) : null;\n }\n render() {\n const { collapsed, detached, position } = this;\n const contentNode = (h(\"div\", { class: { [CSS.content]: true, [CSS.contentDetached]: detached }, hidden: collapsed },\n this.renderHeader(),\n h(\"div\", { class: CSS.contentBody },\n h(\"slot\", null))));\n const actionBarNode = h(\"slot\", { name: SLOTS.actionBar });\n const mainNodes = [actionBarNode, contentNode];\n if (position === \"end\") {\n mainNodes.reverse();\n }\n return h(\"div\", { class: { [CSS.container]: true } }, mainNodes);\n }\n static get is() { return \"calcite-shell-panel\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"calcite-shell-panel.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"calcite-shell-panel.css\"]\n }; }\n static get properties() { return {\n \"collapsed\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Hide the content panel.\"\n },\n \"attribute\": \"collapsed\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"detached\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This property makes the content area appear like a \\\"floating\\\" panel.\"\n },\n \"attribute\": \"detached\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"detachedHeightScale\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Scale\",\n \"resolved\": \"\\\"l\\\" | \\\"m\\\" | \\\"s\\\"\",\n \"references\": {\n \"Scale\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies the maxiumum height of the contents when detached.\"\n },\n \"attribute\": \"detached-height-scale\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"l\\\"\"\n },\n \"widthScale\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Scale\",\n \"resolved\": \"\\\"l\\\" | \\\"m\\\" | \\\"s\\\"\",\n \"references\": {\n \"Scale\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"This sets width of the content area.\"\n },\n \"attribute\": \"width-scale\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"m\\\"\"\n },\n \"position\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Position\",\n \"resolved\": \"\\\"end\\\" | \\\"start\\\"\",\n \"references\": {\n \"Position\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Arranges the component depending on the elements 'dir' property.\"\n },\n \"attribute\": \"position\",\n \"reflect\": true\n }\n }; }\n static get events() { return [{\n \"method\": \"calciteShellPanelToggle\",\n \"name\": \"calciteShellPanelToggle\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when collapse has been toggled.\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }]; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"collapsed\",\n \"methodName\": \"watchHandler\"\n }]; }\n}\n","/* mixins & extensions */\n\n@keyframes in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n\n:root {\n --calcite-animation-timing: 300ms;\n}\n\n.calcite-animate {\n opacity: 0;\n animation-fill-mode: both;\n animation-duration: var(--calcite-animation-timing);\n}\n\n.calcite-animate__in {\n animation-name: in;\n}\n\n.calcite-animate__in-down {\n animation-name: in-down;\n}\n\n.calcite-animate__in-up {\n animation-name: in-up;\n}\n\n.calcite-animate__in-scale {\n animation-name: in-scale;\n}\n\n/**\n* Currently only used in Checkbox.\n*/\n\n:root {\n --calcite-popper-transition: 150ms ease-in-out;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([active]) section {\n display: block;\n}\n\n:host {\n display: none;\n color: var(--calcite-ui-text-3);\n width: 100%;\n height: 100%;\n}\n\n:host([active]) {\n display: block;\n width: 100%;\n height: 100%;\n overflow: auto;\n}\n\nsection {\n height: 100%;\n width: 100%;\n display: none;\n}\n\n:host([scale=s]) {\n font-size: var(--calcite-font-size--2);\n line-height: 1rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n:host([scale=m]) {\n font-size: var(--calcite-font-size--1);\n line-height: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n:host([scale=l]) {\n font-size: var(--calcite-font-size-0);\n line-height: 1.25rem;\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nimport { Component, Prop, Element, Listen, Method, Event, h, State, Host } from \"@stencil/core\";\nimport { guid } from \"../../utils/guid\";\nimport { nodeListToArray } from \"../../utils/dom\";\n/**\n * @slot - A slot for adding custom content.\n */\nexport class CalciteTab {\n constructor() {\n /**\n * Show this tab\n */\n this.active = false;\n /** @internal Parent tabs component scale value */\n this.scale = \"m\";\n //--------------------------------------------------------------------------\n //\n // Private State/Props\n //\n //--------------------------------------------------------------------------\n /**\n * @internal\n */\n this.guid = `calcite-tab-title-${guid()}`;\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n render() {\n const id = this.el.id || this.guid;\n return (h(Host, { \"aria-expanded\": this.active.toString(), \"aria-labelledby\": this.labeledBy, id: id, role: \"tabpanel\" },\n h(\"section\", null,\n h(\"slot\", null))));\n }\n componentDidLoad() {\n this.calciteTabRegister.emit();\n }\n componentWillRender() {\n var _a;\n this.scale = (_a = this.el.closest(\"calcite-tabs\")) === null || _a === void 0 ? void 0 : _a.scale;\n }\n disconnectedCallback() {\n var _a;\n // Dispatching to body in order to be listened by other elements that are still connected to the DOM.\n (_a = document.body) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new CustomEvent(\"calciteTabUnregister\", {\n detail: this.el\n }));\n }\n //--------------------------------------------------------------------------\n //\n // Event Listeners\n //\n //--------------------------------------------------------------------------\n tabChangeHandler(event) {\n // to allow `<calcite-tabs>` to be nested we need to make sure this\n // `calciteTabChange` event was actually fired from a title that is a\n // child of the `<calcite-tabs>` that is the a parent of this tab.\n if (event.target.closest(\"calcite-tabs\") !== this.el.closest(\"calcite-tabs\")) {\n return;\n }\n if (this.tab) {\n this.active = this.tab === event.detail.tab;\n }\n else {\n this.getTabIndex().then((index) => {\n this.active = index === event.detail.tab;\n });\n }\n }\n //--------------------------------------------------------------------------\n //\n // Public Methods\n //\n //--------------------------------------------------------------------------\n /**\n * Return the index of this tab within the tab array\n */\n async getTabIndex() {\n return Array.prototype.indexOf.call(nodeListToArray(this.el.parentElement.children).filter((e) => e.matches(\"calcite-tab\")), this.el);\n }\n //--------------------------------------------------------------------------\n //\n // Private Methods\n //\n //--------------------------------------------------------------------------\n /**\n * @internal\n */\n async updateAriaInfo(tabIds = [], titleIds = []) {\n this.labeledBy = titleIds[tabIds.indexOf(this.el.id)] || null;\n }\n static get is() { return \"calcite-tab\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"calcite-tab.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"calcite-tab.css\"]\n }; }\n static get properties() { return {\n \"tab\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Optionally include a unique name for this tab,\\nbe sure to also set this name on the associated title.\"\n },\n \"attribute\": \"tab\",\n \"reflect\": true\n },\n \"active\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Show this tab\"\n },\n \"attribute\": \"active\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"scale\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"Scale\",\n \"resolved\": \"\\\"l\\\" | \\\"m\\\" | \\\"s\\\"\",\n \"references\": {\n \"Scale\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component scale value\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"scale\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"m\\\"\"\n }\n }; }\n static get states() { return {\n \"labeledBy\": {}\n }; }\n static get events() { return [{\n \"method\": \"calciteTabRegister\",\n \"name\": \"calciteTabRegister\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }]; }\n static get methods() { return {\n \"getTabIndex\": {\n \"complexType\": {\n \"signature\": \"() => Promise<number>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<number>\"\n },\n \"docs\": {\n \"text\": \"Return the index of this tab within the tab array\",\n \"tags\": []\n }\n },\n \"updateAriaInfo\": {\n \"complexType\": {\n \"signature\": \"(tabIds?: string[], titleIds?: string[]) => Promise<void>\",\n \"parameters\": [{\n \"tags\": [],\n \"text\": \"\"\n }, {\n \"tags\": [],\n \"text\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }]\n }\n }\n }; }\n static get elementRef() { return \"el\"; }\n static get listeners() { return [{\n \"name\": \"calciteTabChange\",\n \"method\": \"tabChangeHandler\",\n \"target\": \"body\",\n \"capture\": false,\n \"passive\": false\n }]; }\n}\n","/* mixins & extensions */\n\n@keyframes in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n\n:root {\n --calcite-animation-timing: 300ms;\n}\n\n.calcite-animate {\n opacity: 0;\n animation-fill-mode: both;\n animation-duration: var(--calcite-animation-timing);\n}\n\n.calcite-animate__in {\n animation-name: in;\n}\n\n.calcite-animate__in-down {\n animation-name: in-down;\n}\n\n.calcite-animate__in-up {\n animation-name: in-up;\n}\n\n.calcite-animate__in-scale {\n animation-name: in-scale;\n}\n\n/**\n* Currently only used in Checkbox.\n*/\n\n:root {\n --calcite-popper-transition: 150ms ease-in-out;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n position: relative;\n display: flex;\n}\n\n:host([scale=s]) {\n min-height: 1.5rem;\n}\n\n:host([scale=m]) {\n min-height: 2rem;\n}\n\n:host([scale=l]) {\n min-height: 2.75rem;\n}\n\n.tab-nav {\n display: flex;\n width: 100%;\n overflow: auto;\n justify-content: flex-start;\n -webkit-overflow-scrolling: touch;\n padding: 0.25rem;\n margin: -0.25rem;\n}\n\n:host([layout=center]) .tab-nav {\n justify-content: center;\n}\n\n.tab-nav-active-indicator-container {\n width: 100%;\n right: 0;\n left: 0;\n bottom: 0;\n position: absolute;\n overflow: hidden;\n height: 0.125rem;\n}\n\n.tab-nav-active-indicator {\n position: absolute;\n bottom: 0;\n display: block;\n transition-property: all;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n background-color: var(--calcite-ui-brand);\n height: 0.125rem;\n}\n\n:host([position=below]) .tab-nav-active-indicator {\n bottom: unset;\n top: 0;\n}\n\n:host([position=below]) .tab-nav-active-indicator-container {\n bottom: unset;\n top: 0;\n}\n\n:host([bordered]) .tab-nav-active-indicator-container {\n bottom: unset;\n}\n\n:host([bordered][position=below]) .tab-nav-active-indicator-container {\n bottom: 0;\n top: unset;\n}","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nimport { Component, Element, Event, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\";\nimport { getElementDir, filterDirectChildren } from \"../../utils/dom\";\n/**\n * @slot - A slot for adding `calcite-tab-title`s.\n */\nexport class CalciteTabNav {\n constructor() {\n /** @internal Parent tabs component scale value */\n this.scale = \"m\";\n /** @internal Parent tabs component layout value */\n this.layout = \"inline\";\n /** @internal Parent tabs component position value */\n this.position = \"below\";\n /** @internal Parent tabs component bordered value when layout is \"inline\" */\n this.bordered = false;\n this.animationActiveDuration = 0.3;\n //--------------------------------------------------------------------------\n //\n // Private Methods\n //\n //--------------------------------------------------------------------------\n this.handleContainerScroll = () => {\n // remove active indicator transition duration while container is scrolling to prevent wobble\n this.activeIndicatorEl.style.transitionDuration = \"0s\";\n this.updateOffsetPosition();\n };\n }\n async selectedTabChanged() {\n if (localStorage &&\n this.storageId &&\n this.selectedTab !== undefined &&\n this.selectedTab !== null) {\n localStorage.setItem(`calcite-tab-nav-${this.storageId}`, JSON.stringify(this.selectedTab));\n }\n this.calciteTabChange.emit({\n tab: this.selectedTab\n });\n this.selectedTabEl = await this.getTabTitleById(this.selectedTab);\n }\n selectedTabElChanged() {\n this.updateOffsetPosition();\n this.updateActiveWidth();\n // reset the animation time on tab selection\n this.activeIndicatorEl.style.transitionDuration = `${this.animationActiveDuration}s`;\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n componentWillLoad() {\n const storageKey = `calcite-tab-nav-${this.storageId}`;\n if (localStorage && this.storageId && localStorage.getItem(storageKey)) {\n const storedTab = JSON.parse(localStorage.getItem(storageKey));\n this.selectedTab = storedTab;\n this.calciteTabChange.emit({\n tab: this.selectedTab\n });\n }\n }\n componentWillRender() {\n var _a, _b, _c, _d;\n this.layout = (_a = this.el.closest(\"calcite-tabs\")) === null || _a === void 0 ? void 0 : _a.layout;\n this.position = (_b = this.el.closest(\"calcite-tabs\")) === null || _b === void 0 ? void 0 : _b.position;\n this.scale = (_c = this.el.closest(\"calcite-tabs\")) === null || _c === void 0 ? void 0 : _c.scale;\n this.bordered = (_d = this.el.closest(\"calcite-tabs\")) === null || _d === void 0 ? void 0 : _d.bordered;\n // fix issue with active tab-title not lining up with blue indicator\n if (this.selectedTabEl) {\n this.updateOffsetPosition();\n }\n }\n componentDidRender() {\n // if every tab title is active select the first tab.\n if (this.tabTitles.length &&\n this.tabTitles.every((title) => !title.active) &&\n !this.selectedTab) {\n this.tabTitles[0].getTabIdentifier().then((tab) => {\n this.calciteTabChange.emit({\n tab\n });\n });\n }\n }\n render() {\n const dir = getElementDir(this.el);\n const width = `${this.indicatorWidth}px`;\n const offset = `${this.indicatorOffset}px`;\n const indicatorStyle = dir !== \"rtl\" ? { width, left: offset } : { width, right: offset };\n return (h(Host, { role: \"tablist\" },\n h(\"div\", { class: \"tab-nav\", onScroll: this.handleContainerScroll, ref: (el) => (this.tabNavEl = el) },\n h(\"div\", { class: \"tab-nav-active-indicator-container\", ref: (el) => (this.activeIndicatorContainerEl = el) },\n h(\"div\", { class: \"tab-nav-active-indicator\", ref: (el) => (this.activeIndicatorEl = el), style: indicatorStyle })),\n h(\"slot\", null))));\n }\n //--------------------------------------------------------------------------\n //\n // Event Listeners\n //\n //--------------------------------------------------------------------------\n resizeHandler() {\n // remove active indicator transition duration during resize to prevent wobble\n this.activeIndicatorEl.style.transitionDuration = \"0s\";\n this.updateActiveWidth();\n this.updateOffsetPosition();\n }\n focusPreviousTabHandler(e) {\n const currentIndex = this.getIndexOfTabTitle(e.target, this.enabledTabTitles);\n const previousTab = this.enabledTabTitles[currentIndex - 1] ||\n this.enabledTabTitles[this.enabledTabTitles.length - 1];\n previousTab.focus();\n e.stopPropagation();\n e.preventDefault();\n }\n focusNextTabHandler(e) {\n const currentIndex = this.getIndexOfTabTitle(e.target, this.enabledTabTitles);\n const nextTab = this.enabledTabTitles[currentIndex + 1] || this.enabledTabTitles[0];\n nextTab.focus();\n e.stopPropagation();\n e.preventDefault();\n }\n activateTabHandler(e) {\n this.selectedTab = e.detail.tab\n ? e.detail.tab\n : this.getIndexOfTabTitle(e.target);\n e.stopPropagation();\n e.preventDefault();\n }\n /**\n * Check for active tabs on register and update selected\n */\n updateTabTitles(e) {\n if (e.target.active) {\n this.selectedTab = e.detail;\n }\n }\n globalTabChangeHandler(e) {\n if (this.syncId &&\n e.target !== this.el &&\n e.target.syncId === this.syncId &&\n this.selectedTab !== e.detail.tab) {\n this.selectedTab = e.detail.tab;\n }\n }\n updateOffsetPosition() {\n var _a, _b, _c, _d, _e;\n const dir = getElementDir(this.el);\n const navWidth = (_a = this.activeIndicatorContainerEl) === null || _a === void 0 ? void 0 : _a.offsetWidth;\n const tabLeft = (_b = this.selectedTabEl) === null || _b === void 0 ? void 0 : _b.offsetLeft;\n const tabWidth = (_c = this.selectedTabEl) === null || _c === void 0 ? void 0 : _c.offsetWidth;\n const offsetRight = navWidth - (tabLeft + tabWidth);\n this.indicatorOffset =\n dir !== \"rtl\" ? tabLeft - ((_d = this.tabNavEl) === null || _d === void 0 ? void 0 : _d.scrollLeft) : offsetRight + ((_e = this.tabNavEl) === null || _e === void 0 ? void 0 : _e.scrollLeft);\n }\n updateActiveWidth() {\n var _a;\n this.indicatorWidth = (_a = this.selectedTabEl) === null || _a === void 0 ? void 0 : _a.offsetWidth;\n }\n getIndexOfTabTitle(el, tabTitles = this.tabTitles) {\n // In most cases, since these indexes correlate with tab contents, we want to consider all tab titles.\n // However, when doing relative index operations, it makes sense to pass in this.enabledTabTitles as the 2nd arg.\n return tabTitles.indexOf(el);\n }\n async getTabTitleById(id) {\n return Promise.all(this.tabTitles.map((el) => el.getTabIdentifier())).then((ids) => {\n return this.tabTitles[ids.indexOf(id)];\n });\n }\n get tabTitles() {\n return filterDirectChildren(this.el, \"calcite-tab-title\");\n }\n get enabledTabTitles() {\n return filterDirectChildren(this.el, \"calcite-tab-title:not([disabled])\");\n }\n static get is() { return \"calcite-tab-nav\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"calcite-tab-nav.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"calcite-tab-nav.css\"]\n }; }\n static get properties() { return {\n \"storageId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Name to use when saving selected tab data to localStorage\"\n },\n \"attribute\": \"storage-id\",\n \"reflect\": false\n },\n \"syncId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Pass the same string to multiple tab navs to keep them all in sync if one changes\"\n },\n \"attribute\": \"sync-id\",\n \"reflect\": false\n },\n \"scale\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"Scale\",\n \"resolved\": \"\\\"l\\\" | \\\"m\\\" | \\\"s\\\"\",\n \"references\": {\n \"Scale\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component scale value\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"scale\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"m\\\"\"\n },\n \"layout\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"TabLayout\",\n \"resolved\": \"\\\"center\\\" | \\\"inline\\\"\",\n \"references\": {\n \"TabLayout\": {\n \"location\": \"import\",\n \"path\": \"../calcite-tabs/interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component layout value\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"layout\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"inline\\\"\"\n },\n \"position\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"TabPosition\",\n \"resolved\": \"\\\"above\\\" | \\\"below\\\"\",\n \"references\": {\n \"TabPosition\": {\n \"location\": \"import\",\n \"path\": \"../calcite-tabs/interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component position value\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"position\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"below\\\"\"\n },\n \"bordered\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component bordered value when layout is \\\"inline\\\"\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"bordered\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"indicatorOffset\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"attribute\": \"indicator-offset\",\n \"reflect\": false\n },\n \"indicatorWidth\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"attribute\": \"indicator-width\",\n \"reflect\": false\n }\n }; }\n static get states() { return {\n \"selectedTab\": {},\n \"selectedTabEl\": {}\n }; }\n static get events() { return [{\n \"method\": \"calciteTabChange\",\n \"name\": \"calciteTabChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"see\",\n \"text\": \" [TabChangeEventDetail](https://github.com/Esri/calcite-components/blob/master/src/components/calcite-tab/interfaces.ts#L1)\"\n }],\n \"text\": \"Emitted when the active tab changes\"\n },\n \"complexType\": {\n \"original\": \"TabChangeEventDetail\",\n \"resolved\": \"TabChangeEventDetail\",\n \"references\": {\n \"TabChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../calcite-tab/interfaces\"\n }\n }\n }\n }]; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"selectedTab\",\n \"methodName\": \"selectedTabChanged\"\n }, {\n \"propName\": \"selectedTabEl\",\n \"methodName\": \"selectedTabElChanged\"\n }]; }\n static get listeners() { return [{\n \"name\": \"resize\",\n \"method\": \"resizeHandler\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": true\n }, {\n \"name\": \"calciteTabsFocusPrevious\",\n \"method\": \"focusPreviousTabHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteTabsFocusNext\",\n \"method\": \"focusNextTabHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteTabsActivate\",\n \"method\": \"activateTabHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteTabTitleRegister\",\n \"method\": \"updateTabTitles\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteTabChange\",\n \"method\": \"globalTabChangeHandler\",\n \"target\": \"body\",\n \"capture\": false,\n \"passive\": false\n }]; }\n}\n","/* mixins & extensions */\n\n@keyframes in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n\n:root {\n --calcite-animation-timing: 300ms;\n}\n\n.calcite-animate {\n opacity: 0;\n animation-fill-mode: both;\n animation-duration: var(--calcite-animation-timing);\n}\n\n.calcite-animate__in {\n animation-name: in;\n}\n\n.calcite-animate__in-down {\n animation-name: in-down;\n}\n\n.calcite-animate__in-up {\n animation-name: in-up;\n}\n\n.calcite-animate__in-scale {\n animation-name: in-scale;\n}\n\n/**\n* Currently only used in Checkbox.\n*/\n\n:root {\n --calcite-popper-transition: 150ms ease-in-out;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n display: block;\n flex: 0 1 auto;\n outline: 2px solid transparent;\n outline-offset: 2px;\n margin-right: 1.25rem;\n margin-inline-start: 0;\n margin-inline-end: 1.25rem;\n}\n\n:host([layout=center]) {\n text-align: center;\n margin-top: 0;\n margin-bottom: 0;\n margin-left: 1.25rem;\n margin-right: 1.25rem;\n flex-basis: 12rem;\n}\n\n:host([position=below]) a {\n border-bottom-width: 0;\n border-top-width: 2px;\n border-top-color: transparent;\n border-top-style: solid;\n}\n\n:host a {\n outline-offset: 0;\n outline-color: transparent;\n transition: outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;\n}\n\n:host(:focus) a {\n outline: 2px solid var(--calcite-ui-brand);\n outline-offset: 2px;\n}\n\n:host(:active) a,\n:host(:focus) a,\n:host(:hover) a {\n text-decoration: none;\n color: var(--calcite-ui-text-1);\n border-color: var(--calcite-ui-border-2);\n}\n\n:host([active]) a {\n color: var(--calcite-ui-text-1);\n border-color: transparent;\n}\n\n:host([disabled]) {\n pointer-events: none;\n}\n\n:host([disabled]) span,\n:host([disabled]) a {\n pointer-events: none;\n opacity: 0.5;\n}\n\n:host([scale=s]) {\n margin-inline-end: 1rem;\n}\n\n:host([scale=s]) a,\n:host([scale=s]) span {\n font-size: var(--calcite-font-size--2);\n line-height: 1rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n:host([scale=m]) a,\n:host([scale=m]) span {\n font-size: var(--calcite-font-size--1);\n line-height: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n:host([scale=l]) {\n margin-inline-end: 1.5rem;\n}\n\n:host([scale=l]) a,\n:host([scale=l]) span {\n font-size: var(--calcite-font-size-0);\n line-height: 1.25rem;\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n\na,\nspan {\n box-sizing: border-box;\n -webkit-appearance: none;\n appearance: none;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n border-bottom-width: 2px;\n border-bottom-color: transparent;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n color: var(--calcite-ui-text-3);\n font-size: var(--calcite-font-size--1);\n line-height: 1rem;\n transition-property: all;\n transition-duration: 150ms;\n transition-timing-function: ease-in-out;\n transition-delay: 0s;\n padding-left: 0;\n padding-right: 0;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n border-bottom-style: solid;\n}\n\nspan {\n cursor: default;\n}\n\n.calcite-tab-title--icon {\n display: inline-flex;\n position: relative;\n margin: 0;\n align-self: center;\n}\n\n.calcite-tab-title--icon svg {\n transition-property: all;\n transition-duration: 150ms;\n transition-timing-function: ease-in-out;\n transition-delay: 0s;\n}\n\n.container--has-text .calcite-tab-title--icon.icon-start {\n margin-right: 0.5rem;\n}\n\n.container--has-text .calcite-tab-title--icon.icon-end {\n margin-left: 0.5rem;\n}\n\n:host([icon-start][icon-end]) .calcite-tab-title--icon:first-child {\n margin-right: 0.5rem;\n}\n\n.container--has-text.calcite--rtl .calcite-tab-title--icon.icon-end {\n margin-left: 0;\n margin-right: 0.5rem;\n}\n\n.container--has-text.calcite--rtl .calcite-tab-title--icon.icon-start {\n margin-left: 0.5rem;\n margin-right: 0;\n}\n\n:host([icon-start][icon-end]) .calcite--rtl .calcite-tab-title--icon:first-child {\n margin-left: 0.5rem;\n margin-right: 0;\n}\n\n:host([bordered]) {\n margin-inline-end: 0;\n}\n\n:host([bordered][active]) {\n box-shadow: inset 0px -2px var(--calcite-ui-foreground-1);\n}\n\n:host([bordered][active][position=below]) {\n box-shadow: inset 0 2px 0 var(--calcite-ui-foreground-1);\n}\n\n:host([bordered]:hover) a,\n:host([bordered]:focus) a,\n:host([bordered]:active) a {\n position: relative;\n}\n\n:host([bordered]:hover) a {\n background-color: var(--calcite-button-transparent-hover);\n transition-property: all;\n transition-duration: 150ms;\n transition-timing-function: ease-in-out;\n transition-delay: 0s;\n}\n\n:host([bordered]) a {\n border-bottom-style: unset;\n}\n\n:host([bordered][position=below]) a {\n border-top-style: unset;\n}\n\n:host([active][bordered]) a {\n border-left: 1px solid var(--calcite-ui-border-1);\n border-right: 1px solid var(--calcite-ui-border-1);\n}\n\n:host([bordered]) a,\n:host([bordered]) span {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n:host([bordered][scale=s]) a,\n:host([bordered][scale=s]) span {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n:host([bordered][scale=l]) a,\n:host([bordered][scale=l]) span {\n padding-left: 1rem;\n padding-right: 1rem;\n}","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nimport { Component, Prop, Event, Listen, Element, Method, h, Host, State, Build, Watch } from \"@stencil/core\";\nimport { guid } from \"../../utils/guid\";\nimport { getElementDir, getElementProp } from \"../../utils/dom\";\nimport { getKey } from \"../../utils/key\";\nimport { CSS_UTILITY } from \"../../utils/resources\";\nimport { createObserver } from \"../../utils/observers\";\n/**\n * @slot - A slot for adding text.\n */\nexport class CalciteTabTitle {\n constructor() {\n //--------------------------------------------------------------------------\n //\n // Properties\n //\n //--------------------------------------------------------------------------\n /** Show this tab title as selected */\n this.active = false;\n /** Disable this tab title */\n this.disabled = false;\n /** @internal Parent tabs component bordered value */\n this.bordered = false;\n //--------------------------------------------------------------------------\n //\n // Private State/Props\n //\n //--------------------------------------------------------------------------\n /** watches for changing text content **/\n this.mutationObserver = createObserver(\"mutation\", () => this.updateHasText());\n /** determine if there is slotted text for styling purposes */\n this.hasText = false;\n /**\n * @internal\n */\n this.guid = `calcite-tab-title-${guid()}`;\n }\n activeTabChanged() {\n if (this.active) {\n this.emitActiveTab();\n }\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n connectedCallback() {\n this.setupTextContentObserver();\n this.parentTabNavEl = this.el.closest(\"calcite-tab-nav\");\n this.parentTabsEl = this.el.closest(\"calcite-tabs\");\n }\n disconnectedCallback() {\n var _a, _b;\n (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n // Dispatching to body in order to be listened by other elements that are still connected to the DOM.\n (_b = document.body) === null || _b === void 0 ? void 0 : _b.dispatchEvent(new CustomEvent(\"calciteTabTitleUnregister\", {\n detail: this.el\n }));\n }\n componentWillLoad() {\n if (Build.isBrowser) {\n this.updateHasText();\n }\n if (this.tab && this.active) {\n this.emitActiveTab();\n }\n }\n componentWillRender() {\n if (this.parentTabsEl) {\n this.layout = this.parentTabsEl.layout;\n this.position = this.parentTabsEl.position;\n this.scale = this.parentTabsEl.scale;\n this.bordered = this.parentTabsEl.bordered;\n }\n // handle case when tab-nav is only parent\n if (!this.parentTabsEl && this.parentTabNavEl) {\n this.position = getElementProp(this.parentTabNavEl, \"position\", this.position);\n this.scale = getElementProp(this.parentTabNavEl, \"scale\", this.scale);\n }\n }\n render() {\n const dir = getElementDir(this.el);\n const id = this.el.id || this.guid;\n const Tag = this.disabled ? \"span\" : \"a\";\n const showSideBorders = this.bordered && !this.disabled && this.layout !== \"center\";\n const iconStartEl = (h(\"calcite-icon\", { class: \"calcite-tab-title--icon icon-start\", dir: dir, flipRtl: this.iconFlipRtl === \"start\" || this.iconFlipRtl === \"both\", icon: this.iconStart, scale: \"s\" }));\n const iconEndEl = (h(\"calcite-icon\", { class: \"calcite-tab-title--icon icon-end\", dir: dir, flipRtl: this.iconFlipRtl === \"end\" || this.iconFlipRtl === \"both\", icon: this.iconEnd, scale: \"s\" }));\n return (h(Host, { \"aria-controls\": this.controls, \"aria-expanded\": this.active.toString(), id: id, role: \"tab\", tabindex: this.disabled ? \"-1\" : \"0\" },\n h(Tag, { class: {\n container: true,\n \"container--has-text\": this.hasText,\n [CSS_UTILITY.rtl]: dir === \"rtl\"\n }, style: showSideBorders && { width: `${this.parentTabNavEl.indicatorWidth}px` } },\n this.iconStart ? iconStartEl : null,\n h(\"slot\", null),\n this.iconEnd ? iconEndEl : null)));\n }\n async componentDidLoad() {\n this.calciteTabTitleRegister.emit(await this.getTabIdentifier());\n }\n //--------------------------------------------------------------------------\n //\n // Event Listeners\n //\n //--------------------------------------------------------------------------\n tabChangeHandler(event) {\n if (this.parentTabNavEl === event.target) {\n if (this.tab) {\n this.active = this.tab === event.detail.tab;\n }\n else {\n this.getTabIndex().then((index) => {\n this.active = index === event.detail.tab;\n });\n }\n }\n }\n onClick() {\n this.emitActiveTab();\n }\n keyDownHandler(e) {\n switch (getKey(e.key)) {\n case \" \":\n case \"Enter\":\n this.emitActiveTab();\n e.preventDefault();\n break;\n case \"ArrowRight\":\n if (getElementDir(this.el) === \"ltr\") {\n this.calciteTabsFocusNext.emit();\n }\n else {\n this.calciteTabsFocusPrevious.emit();\n }\n break;\n case \"ArrowLeft\":\n if (getElementDir(this.el) === \"ltr\") {\n this.calciteTabsFocusPrevious.emit();\n }\n else {\n this.calciteTabsFocusNext.emit();\n }\n break;\n }\n }\n //--------------------------------------------------------------------------\n //\n // Public Methods\n //\n //--------------------------------------------------------------------------\n /**\n * Return the index of this title within the nav\n */\n async getTabIndex() {\n return Array.prototype.indexOf.call(this.el.parentElement.querySelectorAll(\"calcite-tab-title\"), this.el);\n }\n /**\n * @internal\n */\n async getTabIdentifier() {\n return this.tab ? this.tab : this.getTabIndex();\n }\n /**\n * @internal\n */\n async updateAriaInfo(tabIds = [], titleIds = []) {\n this.controls = tabIds[titleIds.indexOf(this.el.id)] || null;\n }\n updateHasText() {\n this.hasText = this.el.textContent.trim().length > 0;\n }\n setupTextContentObserver() {\n var _a;\n (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, { childList: true, subtree: true });\n }\n emitActiveTab() {\n if (!this.disabled) {\n this.calciteTabsActivate.emit({\n tab: this.tab\n });\n }\n }\n static get is() { return \"calcite-tab-title\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"calcite-tab-title.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"calcite-tab-title.css\"]\n }; }\n static get properties() { return {\n \"active\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Show this tab title as selected\"\n },\n \"attribute\": \"active\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Disable this tab title\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"iconEnd\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"optionally pass an icon to display at the end of a tab title - accepts calcite ui icon names\"\n },\n \"attribute\": \"icon-end\",\n \"reflect\": true\n },\n \"iconFlipRtl\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"FlipContext\",\n \"resolved\": \"\\\"both\\\" | \\\"end\\\" | \\\"start\\\"\",\n \"references\": {\n \"FlipContext\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"flip the icon(s) in rtl\"\n },\n \"attribute\": \"icon-flip-rtl\",\n \"reflect\": true\n },\n \"iconStart\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"optionally pass an icon to display at the start of a tab title - accepts calcite ui icon names\"\n },\n \"attribute\": \"icon-start\",\n \"reflect\": true\n },\n \"layout\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"TabLayout\",\n \"resolved\": \"\\\"center\\\" | \\\"inline\\\"\",\n \"references\": {\n \"TabLayout\": {\n \"location\": \"import\",\n \"path\": \"../calcite-tabs/interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component layout value\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"layout\",\n \"reflect\": true\n },\n \"position\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"TabPosition\",\n \"resolved\": \"\\\"above\\\" | \\\"below\\\"\",\n \"references\": {\n \"TabPosition\": {\n \"location\": \"import\",\n \"path\": \"../calcite-tabs/interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component or parent tab-nav component's position\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"position\",\n \"reflect\": true\n },\n \"scale\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"Scale\",\n \"resolved\": \"\\\"l\\\" | \\\"m\\\" | \\\"s\\\"\",\n \"references\": {\n \"Scale\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component or parent tab-nav component's scale\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"scale\",\n \"reflect\": true\n },\n \"bordered\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Parent tabs component bordered value\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"bordered\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"tab\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Optionally include a unique name for the tab title,\\nbe sure to also set this name on the associated tab.\"\n },\n \"attribute\": \"tab\",\n \"reflect\": true\n }\n }; }\n static get states() { return {\n \"controls\": {},\n \"hasText\": {}\n }; }\n static get events() { return [{\n \"method\": \"calciteTabsActivate\",\n \"name\": \"calciteTabsActivate\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"see\",\n \"text\": \" [TabChangeEventDetail](https://github.com/Esri/calcite-components/blob/master/src/components/calcite-tab/interfaces.ts#L1)\"\n }],\n \"text\": \"Fires when a specific tab is activated (`event.details`)\"\n },\n \"complexType\": {\n \"original\": \"TabChangeEventDetail\",\n \"resolved\": \"TabChangeEventDetail\",\n \"references\": {\n \"TabChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../calcite-tab/interfaces\"\n }\n }\n }\n }, {\n \"method\": \"calciteTabsFocusNext\",\n \"name\": \"calciteTabsFocusNext\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }, {\n \"method\": \"calciteTabsFocusPrevious\",\n \"name\": \"calciteTabsFocusPrevious\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n }\n }, {\n \"method\": \"calciteTabTitleRegister\",\n \"name\": \"calciteTabTitleRegister\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"TabID\",\n \"resolved\": \"number | string\",\n \"references\": {\n \"TabID\": {\n \"location\": \"import\",\n \"path\": \"../calcite-tabs/interfaces\"\n }\n }\n }\n }]; }\n static get methods() { return {\n \"getTabIndex\": {\n \"complexType\": {\n \"signature\": \"() => Promise<number>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<number>\"\n },\n \"docs\": {\n \"text\": \"Return the index of this title within the nav\",\n \"tags\": []\n }\n },\n \"getTabIdentifier\": {\n \"complexType\": {\n \"signature\": \"() => Promise<TabID>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n },\n \"TabID\": {\n \"location\": \"import\",\n \"path\": \"../calcite-tabs/interfaces\"\n }\n },\n \"return\": \"Promise<TabID>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }]\n }\n },\n \"updateAriaInfo\": {\n \"complexType\": {\n \"signature\": \"(tabIds?: string[], titleIds?: string[]) => Promise<void>\",\n \"parameters\": [{\n \"tags\": [],\n \"text\": \"\"\n }, {\n \"tags\": [],\n \"text\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }]\n }\n }\n }; }\n static get elementRef() { return \"el\"; }\n static get watchers() { return [{\n \"propName\": \"active\",\n \"methodName\": \"activeTabChanged\"\n }]; }\n static get listeners() { return [{\n \"name\": \"calciteTabChange\",\n \"method\": \"tabChangeHandler\",\n \"target\": \"body\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"click\",\n \"method\": \"onClick\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"keydown\",\n \"method\": \"keyDownHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }]; }\n}\n","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nexport const SLOTS = {\n tabNav: \"tab-nav\"\n};\n","/* mixins & extensions */\n\n@keyframes in {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n\n:root {\n --calcite-animation-timing: 300ms;\n}\n\n.calcite-animate {\n opacity: 0;\n animation-fill-mode: both;\n animation-duration: var(--calcite-animation-timing);\n}\n\n.calcite-animate__in {\n animation-name: in;\n}\n\n.calcite-animate__in-down {\n animation-name: in-down;\n}\n\n.calcite-animate__in-up {\n animation-name: in-up;\n}\n\n.calcite-animate__in-scale {\n animation-name: in-scale;\n}\n\n/**\n* Currently only used in Checkbox.\n*/\n\n:root {\n --calcite-popper-transition: 150ms ease-in-out;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n display: flex;\n flex-direction: column;\n}\n\n:host([bordered]) {\n box-shadow: inset 0 1px 0 var(--calcite-ui-border-1);\n background-color: var(--calcite-ui-foreground-1);\n}\n\n:host([bordered]:not([position=below])) ::slotted(calcite-tab-nav) {\n margin-bottom: -1px;\n}\n\n:host([bordered][position=below]) ::slotted(calcite-tab-nav) {\n margin-top: -1px;\n}\n\n:host([bordered][position=below]) {\n box-shadow: inset 0 1px 0 var(--calcite-ui-border-1), inset 0 -1px 0 var(--calcite-ui-border-1);\n}\n\n:host([bordered]) section {\n border-width: 1px;\n border-style: solid;\n border-color: var(--calcite-ui-border-1);\n}\n\n:host([bordered][scale=s]) section {\n padding: 0.75rem;\n}\n\n:host([bordered][scale=m]) section {\n padding: 0.5rem;\n}\n\n:host([bordered][scale=l]) section {\n padding: 1rem;\n}\n\n:host([position=below]) {\n flex-direction: column-reverse;\n}\n\nsection {\n display: flex;\n flex-grow: 1;\n overflow: hidden;\n border-top-width: 1px;\n border-top-color: var(--calcite-ui-border-1);\n border-top-style: solid;\n}\n\n:host([position=below]) section {\n flex-direction: column-reverse;\n border-top-width: 0;\n border-bottom-width: 1px;\n border-bottom-color: var(--calcite-ui-border-1);\n}\n\n:host([position=below]:not([bordered])) section {\n border-bottom-style: solid;\n}","/*!\n * All material copyright ESRI, All Rights Reserved, unless otherwise specified.\n * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.\n */\nimport { Component, Prop, h, Element, Listen, State, Fragment } from \"@stencil/core\";\nimport { SLOTS } from \"./resources\";\n/**\n * @slot - A slot for adding `calcite-tab`s.\n * @slot tab-nav - A slot for adding a tab navigation component.\n */\nexport class CalciteTabs {\n constructor() {\n //--------------------------------------------------------------------------\n //\n // Public Properties\n //\n //--------------------------------------------------------------------------\n /**\n * Align tab titles to the edge or fully justify them across the tab nav (\"center\")\n */\n this.layout = \"inline\";\n /**\n * Display the tabs above (default) or below the tab content\n */\n this.position = \"above\";\n /**\n * Specify the scale of the tabs component, defaults to m\n */\n this.scale = \"m\";\n /**\n * Optionally enable tabs to appear like a folder-style menu when its layout is \"inline\"\n */\n this.bordered = false;\n //--------------------------------------------------------------------------\n //\n // Events\n //\n //--------------------------------------------------------------------------\n //--------------------------------------------------------------------------\n //\n // Private State/Props\n //\n //--------------------------------------------------------------------------\n /**\n * @internal\n *\n * Stores an array of ids of `<calcite-tab-titles>`s to match up ARIA\n * attributes.\n */\n this.titles = [];\n /**\n * @internal\n *\n * Stores an array of ids of `<calcite-tab>`s to match up ARIA attributes.\n */\n this.tabs = [];\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n connectedCallback() {\n if (this.layout === \"center\") {\n this.bordered = false;\n }\n }\n render() {\n return (h(Fragment, null,\n h(\"slot\", { name: SLOTS.tabNav }),\n h(\"section\", null,\n h(\"slot\", null))));\n }\n //--------------------------------------------------------------------------\n //\n // Event Listeners\n //\n //--------------------------------------------------------------------------\n /**\n * @internal\n */\n calciteTabTitleRegister(e) {\n this.titles = [...this.titles, e.target];\n this.registryHandler();\n e.stopPropagation();\n }\n /**\n * @internal\n */\n calciteTabTitleUnregister(e) {\n this.titles = this.titles.filter((el) => el !== e.detail);\n this.registryHandler();\n e.stopPropagation();\n }\n /**\n * @internal\n */\n calciteTabRegister(e) {\n this.tabs = [...this.tabs, e.target];\n this.registryHandler();\n e.stopPropagation();\n }\n /**\n * @internal\n */\n calciteTabUnregister(e) {\n this.tabs = this.tabs.filter((el) => el !== e.detail);\n this.registryHandler();\n e.stopPropagation();\n }\n //--------------------------------------------------------------------------\n //\n // Private Methods\n //\n //--------------------------------------------------------------------------\n /**\n * @internal\n *\n * Matches up elements from the internal `tabs` and `titles` to automatically\n * update the ARIA attributes and link `<calcite-tab>` and\n * `<calcite-tab-title>` components.\n */\n async registryHandler() {\n let tabIds;\n let titleIds;\n // determine if we are using `tab` based or `index` based tab identifiers.\n if (this.tabs.some((e) => e.tab) || this.titles.some((e) => e.tab)) {\n // if we are using `tab` based identifiers sort by `tab` to account for\n // possible out of order tabs and get the id of each tab\n tabIds = this.tabs.sort((a, b) => a.tab.localeCompare(b.tab)).map((e) => e.id);\n titleIds = this.titles.sort((a, b) => a.tab.localeCompare(b.tab)).map((e) => e.id);\n }\n else {\n // if we are using index based tabs then the `<calcite-tab>` and\n // `<calcite-tab-title>` might have been rendered out of order so the\n // order of `this.tabs` and `this.titles` might not reflect the DOM state,\n // and might not match each other so we need to get the index of all the\n // tabs and titles in the DOM order to match them up as a source of truth\n const tabDomIndexes = await Promise.all(this.tabs.map((el) => el.getTabIndex()));\n const titleDomIndexes = await Promise.all(this.titles.map((el) => el.getTabIndex()));\n // once we have the DOM order as a source of truth we can build the\n // matching tabIds and titleIds arrays\n tabIds = tabDomIndexes.reduce((ids, indexInDOM, registryIndex) => {\n ids[indexInDOM] = this.tabs[registryIndex].id;\n return ids;\n }, []);\n titleIds = titleDomIndexes.reduce((ids, indexInDOM, registryIndex) => {\n ids[indexInDOM] = this.titles[registryIndex].id;\n return ids;\n }, []);\n }\n // pass all our new aria information to each `<calcite-tab>` and\n // `<calcite-tab-title>` which will check if they can update their internal\n // `controlled` or `labeledBy` states and re-render if necessary\n this.tabs.forEach((el) => el.updateAriaInfo(tabIds, titleIds));\n this.titles.forEach((el) => el.updateAriaInfo(tabIds, titleIds));\n }\n static get is() { return \"calcite-tabs\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() { return {\n \"$\": [\"calcite-tabs.scss\"]\n }; }\n static get styleUrls() { return {\n \"$\": [\"calcite-tabs.css\"]\n }; }\n static get properties() { return {\n \"layout\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"TabLayout\",\n \"resolved\": \"\\\"center\\\" | \\\"inline\\\"\",\n \"references\": {\n \"TabLayout\": {\n \"location\": \"import\",\n \"path\": \"./interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Align tab titles to the edge or fully justify them across the tab nav (\\\"center\\\")\"\n },\n \"attribute\": \"layout\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"inline\\\"\"\n },\n \"position\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"TabPosition\",\n \"resolved\": \"\\\"above\\\" | \\\"below\\\"\",\n \"references\": {\n \"TabPosition\": {\n \"location\": \"import\",\n \"path\": \"./interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Display the tabs above (default) or below the tab content\"\n },\n \"attribute\": \"position\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"above\\\"\"\n },\n \"scale\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Scale\",\n \"resolved\": \"\\\"l\\\" | \\\"m\\\" | \\\"s\\\"\",\n \"references\": {\n \"Scale\": {\n \"location\": \"import\",\n \"path\": \"../interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specify the scale of the tabs component, defaults to m\"\n },\n \"attribute\": \"scale\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"m\\\"\"\n },\n \"bordered\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Optionally enable tabs to appear like a folder-style menu when its layout is \\\"inline\\\"\"\n },\n \"attribute\": \"bordered\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n }; }\n static get states() { return {\n \"titles\": {},\n \"tabs\": {}\n }; }\n static get elementRef() { return \"el\"; }\n static get listeners() { return [{\n \"name\": \"calciteTabTitleRegister\",\n \"method\": \"calciteTabTitleRegister\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteTabTitleUnregister\",\n \"method\": \"calciteTabTitleUnregister\",\n \"target\": \"body\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteTabRegister\",\n \"method\": \"calciteTabRegister\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteTabUnregister\",\n \"method\": \"calciteTabUnregister\",\n \"target\": \"body\",\n \"capture\": false,\n \"passive\": false\n }]; }\n}\n","/** @license\r\n * Copyright 2021 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:host {\r\n display: block;\r\n}\r\n\r\n.editor-container {\r\n position: relative;\r\n height: 100%;\r\n}\r\n\r\n.editor-controls {\r\n height: 44px;\r\n background-color: #F4F4F4\r\n}\r\n\r\n.editor-buttons {\r\n float: right;\r\n}\r\n\r\nhtml[dir=\"rtl\"] .editor-buttons {\r\n float: left;\r\n padding-right: .25rem\r\n}\r\n\r\n.edit-button {\r\n padding: .25rem 0 0 .5rem;\r\n}\r\n\r\nhtml[dir=\"rtl\"] .edit-button {\r\n padding: .25rem .5rem 0 0;\r\n}\r\n\r\n.editor-text {\r\n overflow-y: auto;\r\n background-color: white;\r\n width: 100%;\r\n}\r\n\r\n.edit-width {\r\n width: 100%;\r\n}\r\n\r\n/* NEW CSS FOR MONACO */\r\n.edit-parent {\r\n width: 100%;\r\n /* adjust for edit buttons and border */\r\n height: calc(100% - 46px);\r\n box-sizing: border-box;\r\n}\r\n\r\n.json-edit-container {\r\n width: 100%;\r\n height: 100%;\r\n border: 1px solid grey;\r\n}\r\n\r\n.padding-right {\r\n /* padding for border */\r\n padding-right: 2px;\r\n}\r\n\r\nhtml[dir=\"rtl\"] .padding-right {\r\n padding-left: 2px;\r\n}\r\n\r\n.btn-container {\r\n width: 20%;\r\n height: calc(100vh - 16px);\r\n margin: 0px;\r\n padding: 0px;\r\n float: right;\r\n}\r\n\r\n.btn {\r\n height: 25px;\r\n width: 120px;\r\n display: flex;\r\n margin-bottom: 1rem;\r\n justify-content: center;\r\n}\r\n\r\n.select-ctrl {\r\n margin-bottom: 1rem;\r\n}\r\n\r\n.all-edits {\r\n margin-top: 4rem;\r\n}\r\n\r\n.not-visible {\r\n display: none;\r\n}\r\n\r\n.json-editor-position {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n max-height: 100% !important;\r\n margin: 0;\r\n padding: 0;\r\n overflow: hidden;\r\n}\r\n","/** @license\r\n * Copyright 2021 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 * Encapsulates the Monaco Editor (https://microsoft.github.io/monaco-editor/) into a\r\n * web component for JSON content.\r\n *\r\n * Attributes:\r\n * `instanceid`: id of component (required, because it's used to distinguish between multiple instances of component)\r\n * `value`: Initial content of editor\r\n *\r\n * @example\r\n * <json-editor\r\n * instanceid=\"a1f271c0de554604beed2adc1f244be1\"\r\n * value=\"{\\\"id\\\": \\\"12345\\\"}\"\r\n * ></json-editor>\r\n *\r\n * `instanceid` attribute and `value` are required\r\n *\r\n *\r\n*/\r\n\r\nimport { Component, Element, Host, h, Listen, Prop } from '@stencil/core';\r\nimport state from '../../utils/editStore';\r\nimport { getProp } from '../../utils/common';\r\n\r\n@Component({\r\n tag: 'json-editor',\r\n styleUrl: 'json-editor.css',\r\n shadow: false,\r\n assetsDirs: ['assets']\r\n})\r\nexport class JsonEditor {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n @Element() el: HTMLJsonEditorElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the original source item json as it was when the component was created.\r\n *\r\n */\r\n @Prop({ mutable: true }) original: any = \"\";\r\n\r\n /**\r\n * Contains the translations for this component.\r\n */\r\n @Prop({ mutable: true }) translations: any = {};\r\n\r\n /**\r\n * Contains the public value for this component.\r\n * This should be an item Id for one of the models in the store.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value: any = undefined;\r\n\r\n /**\r\n * Contains the public model for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) model: any; //monaco.editor.ITextModel;\r\n\r\n /**\r\n * Contains a unique identifier for when we have multiple instances of the editor.\r\n * For example when we want to show an items data as well as an items properties.\r\n *\r\n * Need to rethink this..would like it to be more generic.\r\n * We are currently tied to either data or props as this helps us know how to get the correct model from the store.\r\n */\r\n @Prop({ mutable: true, reflect: true }) instanceid: any = \"\";\r\n\r\n /**\r\n * Contains a public value to indicate if the model has any errors\r\n * that would prevent saving it.\r\n */\r\n @Prop({ mutable: true, reflect: true }) hasErrors: boolean = false;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n render() {\r\n return (\r\n <Host class=\"json-editor-position\">\r\n <div id={`${this.instanceid}-editor-container`} class=\"editor-container padding-right\">\r\n <div class=\"editor-controls\">\r\n <div class=\"editor-buttons\">\r\n {/* undo */}\r\n <calcite-button\r\n id={`${this.instanceid}-undo`}\r\n color=\"blue\"\r\n appearance=\"solid\"\r\n title={this.translations.undo}\r\n onClick={() => this._undo()}\r\n scale=\"s\"\r\n class=\"edit-button\"\r\n >\r\n <calcite-icon icon=\"undo\" scale=\"s\"></calcite-icon>\r\n </calcite-button>\r\n {/* redo */}\r\n <calcite-button\r\n id={`${this.instanceid}-redo`}\r\n color=\"blue\"\r\n appearance=\"solid\"\r\n title={this.translations.redo}\r\n onClick={() => this._redo()}\r\n scale=\"s\"\r\n class=\"edit-button\"\r\n >\r\n <calcite-icon icon=\"redo\" scale=\"s\"></calcite-icon>\r\n </calcite-button>\r\n {/* diff */}\r\n <calcite-button\r\n id={`${this.instanceid}-diff`}\r\n color=\"blue\"\r\n appearance=\"solid\"\r\n title={this.translations.diff}\r\n onClick={() => this._toggleEditor()}\r\n scale=\"s\"\r\n class=\"edit-button\"\r\n >\r\n <calcite-icon icon=\"compare\" scale=\"s\"></calcite-icon>\r\n </calcite-button>\r\n {/* search */}\r\n <calcite-button\r\n id={`${this.instanceid}-search`}\r\n appearance=\"outline\"\r\n color=\"blue\"\r\n title={this.translations.search}\r\n onClick={() => this._search()}\r\n scale=\"s\"\r\n class=\"edit-button\"\r\n >\r\n <calcite-icon icon=\"search\" scale=\"s\"></calcite-icon>\r\n </calcite-button>\r\n {/* cancel */}\r\n <calcite-button\r\n id={`${this.instanceid}-reset`}\r\n color=\"blue\"\r\n appearance=\"solid\"\r\n disabled\r\n title={this.translations.cancelEdits}\r\n onClick={() => this._reset()}\r\n scale=\"s\"\r\n class=\"edit-button\"\r\n >\r\n <calcite-icon icon=\"reset\" scale=\"s\"></calcite-icon>\r\n </calcite-button>\r\n </div>\r\n </div>\r\n <div class=\"edit-parent\">\r\n <div id={`${this.instanceid}-container`} class=\"json-edit-container\"></div>\r\n <div id={`${this.instanceid}-diff-container`} class=\"json-edit-container not-visible\"></div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n componentWillLoad(): void {\r\n this._initValueObserver();\r\n }\r\n\r\n disconnectedCallback(): void {\r\n // The doc makes me question what all we should do here\r\n // StencilJS doc: Called every time the component is disconnected from the DOM, ie, it can\r\n // be dispatched more than once, DO not confuse with a \"onDestroy\" kind of event.\r\n this._destroyEditor();\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Variables (private)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n private _editor: any;\r\n private _diffEditor: any;\r\n private _useDiffEditor: boolean = false;\r\n private _currentModel: any;\r\n private _searchBtnHandler: any;\r\n private _cancelEditsBtnHandler: any;\r\n private _loaded: boolean = false;\r\n private _valueObserver: MutationObserver;\r\n private _contentChanged: any;\r\n private _decorationsChanged: any;\r\n\r\n private _initValueObserver() {\r\n this._valueObserver = new MutationObserver(ml => {\r\n ml.forEach(mutation => {\r\n if (mutation.type === 'attributes' && mutation.attributeName === \"value\") {\r\n if (state && state.models && Object.keys(state.models).indexOf(this.value) > -1) {\r\n const newValue: string = mutation.target[mutation.attributeName];\r\n if ((newValue !== mutation.oldValue && this._loaded)) {\r\n // store the current state\r\n this._saveCurrentModel(mutation.oldValue);\r\n\r\n // get the model and state from the store\r\n this._setEditModel(newValue);\r\n } else if (!this._loaded) {\r\n this._setEditModel(this.value);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n this._valueObserver.observe(this.el, { attributes: true, attributeOldValue: true });\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Listen(\"organizationVariableSelected\", { target: 'window' })\r\n organizationVariableSelected(event: CustomEvent): void {\r\n if (this._isTabActive()) {\r\n this._insertValue(event.detail.value);\r\n }\r\n }\r\n\r\n @Listen(\"solutionVariableSelected\", { target: 'window' })\r\n solutionVariableSelected(event: CustomEvent): void {\r\n if (this._isTabActive()) {\r\n this._insertValue(event.detail.value);\r\n }\r\n }\r\n\r\n @Listen(\"modelsChanged\", { target: 'window' })\r\n _modelsChanged(): void {\r\n if (!this._loaded && this.value) {\r\n if (state && state.models && Object.keys(state.models).indexOf(this.value) > -1) {\r\n //get the model and state from the store\r\n this._setEditModel(this.value);\r\n }\r\n }\r\n }\r\n\r\n @Listen(\"solutionItemSelected\", { target: 'window' })\r\n _solutionItemSelected(event: CustomEvent): void {\r\n if (this.value && event.detail.itemId !== this.value) {\r\n this._saveCurrentModel(this.value)\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 // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Initializes the editor when the web component is connected.\r\n *\r\n * @protected\r\n */\r\n _initEditor(): void {\r\n // Set up embedded editor\r\n if (monaco && monaco.editor) {\r\n this._editor = monaco.editor.create(document.getElementById(`${this.instanceid}-container`), {\r\n model: this.model,\r\n language: 'json',\r\n readOnly: false,\r\n theme: \"vs\",\r\n minimap: {\r\n enabled: false\r\n },\r\n automaticLayout: true,\r\n scrollBeyondLastLine: false\r\n });\r\n this._currentModel = this._editor.getModel();\r\n\r\n this._contentChanged = this._currentModel.onDidChangeContent(this._onEditorChange.bind(this));\r\n this._decorationsChanged = this._editor.onDidChangeModelDecorations(this._onDecorationsChange.bind(this));\r\n\r\n this._diffEditor = monaco.editor.createDiffEditor(document.getElementById(`${this.instanceid}-diff-container`), {\r\n automaticLayout: true\r\n });\r\n this._setDiffModel();\r\n\r\n this._loaded = true;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Update the undo redo buttons as necessary\r\n *\r\n * @protected\r\n */\r\n _onEditorChange(): void {\r\n this._toggleUndoRedo();\r\n }\r\n\r\n /**\r\n * Decorations are added when errors are found in the editor content\r\n *\r\n * @protected\r\n */\r\n _onDecorationsChange(): void {\r\n const model = this._editor.getModel();\r\n if (model === null) {\r\n return;\r\n }\r\n\r\n const owner = model.getModeId();\r\n const markers = monaco.editor.getModelMarkers({ owner });\r\n\r\n this.hasErrors = markers.length > 0;\r\n }\r\n\r\n /**\r\n * Undo the current edit operation\r\n *\r\n * @protected\r\n */\r\n _undo(): void {\r\n if (this._currentModel?.canUndo()) {\r\n this._currentModel.undo();\r\n this._toggleUndoRedo();\r\n }\r\n }\r\n\r\n /**\r\n * Redo the previous edit operation\r\n *\r\n * @protected\r\n */\r\n _redo(): void {\r\n if (this._currentModel?.canRedo()) {\r\n this._currentModel.redo();\r\n this._toggleUndoRedo();\r\n }\r\n }\r\n\r\n /**\r\n * Show/Hide the appropriate editor\r\n *\r\n * @protected\r\n */\r\n _toggleEditor(): void {\r\n this._useDiffEditor = !this._useDiffEditor;\r\n let diffContainer = document.getElementById(`${this.instanceid}-diff-container`);\r\n let container = document.getElementById(`${this.instanceid}-container`);\r\n if (this._useDiffEditor) {\r\n this._setDiffModel();\r\n diffContainer.classList.remove(\"not-visible\");\r\n container.classList.add(\"not-visible\");\r\n } else {\r\n diffContainer.classList.add(\"not-visible\");\r\n container.classList.remove(\"not-visible\");\r\n }\r\n }\r\n\r\n /**\r\n * Toggle the undo and redo buttons\r\n *\r\n * @protected\r\n */\r\n _toggleUndoRedo(): void {\r\n if (this._currentModel?.canUndo()) {\r\n this._enableButton(`${this.instanceid}-undo`);\r\n } else {\r\n this._disableButton(`${this.instanceid}-undo`);\r\n }\r\n\r\n if (this._currentModel?.canRedo()) {\r\n this._enableButton(`${this.instanceid}-redo`);\r\n } else {\r\n this._disableButton(`${this.instanceid}-redo`);\r\n }\r\n\r\n if (this._currentModel?.canUndo() || this._currentModel?.canRedo()) {\r\n this._enableButton(`${this.instanceid}-reset`);\r\n } else {\r\n this._disableButton(`${this.instanceid}-reset`);\r\n }\r\n }\r\n\r\n /**\r\n * Overrides the editors selection with the value passed in\r\n *\r\n * @protected\r\n */\r\n _insertValue(v: string): void {\r\n const editor: any = this._getEditor();\r\n const range = editor.getSelection();\r\n // use pushEditOperations so it will push to the undo stack\r\n this._currentModel.pushEditOperations([],[{\r\n forceMoveMarkers: true,\r\n text: v,\r\n range\r\n }]);\r\n editor.revealRange(range);\r\n }\r\n\r\n /**\r\n * Gets the current active editor for diff editor\r\n *\r\n * @protected\r\n */\r\n _getEditor(): any {\r\n return this._useDiffEditor ? this._diffEditor : this._editor;\r\n }\r\n\r\n /**\r\n * Frees the editor events and memory when the web component is disconnected.\r\n *\r\n * @protected\r\n */\r\n _destroyEditor(): void {\r\n this._searchBtnHandler?.removeEventListener(\"click\", this._search);\r\n this._cancelEditsBtnHandler?.removeEventListener(\"click\", this._reset);\r\n \r\n this._valueObserver?.disconnect();\r\n\r\n this._contentChanged?.dispose();\r\n this._decorationsChanged?.dispose();\r\n\r\n this._editor?.dispose();\r\n\r\n this.original = \"\";\r\n }\r\n\r\n /**\r\n * Resets the stored model to the original value.\r\n *\r\n * @protected\r\n */\r\n _reset(): void {\r\n // update the model\r\n const org = this._getOriginalValue();\r\n this.model = monaco.editor.createModel(JSON.stringify(JSON.parse(org), null, '\\t'), \"json\");\r\n\r\n // update the editor\r\n this._editor.setModel(this.model);\r\n this._setCurrentModel();\r\n this._setDiffModel();\r\n this._saveCurrentModel(this.value);\r\n this._setEditorFocus();\r\n\r\n // update the ui\r\n this._toggleUndoRedo();\r\n }\r\n\r\n /**\r\n * Disables a button.\r\n *\r\n * @param buttonId Id of button to disable\r\n *\r\n * @protected\r\n */\r\n _disableButton(buttonId: string): void {\r\n document.getElementById(buttonId)?.setAttribute(\"disabled\", \"\");\r\n }\r\n\r\n /**\r\n * Enables a button.\r\n *\r\n * @param buttonId Id of button to enable\r\n *\r\n * @protected\r\n */\r\n _enableButton(buttonId: string): void {\r\n document.getElementById(buttonId)?.removeAttribute(\"disabled\");\r\n }\r\n\r\n /**\r\n * Handles click on \"Search\" button.\r\n *\r\n * @protected\r\n */\r\n _search(): void {\r\n const editor: any = this._getEditor();\r\n // force focus should likely just be a workaround\r\n //https://github.com/microsoft/monaco-editor/issues/2355\r\n editor.focus();\r\n editor.trigger('toggleFind', 'actions.find');\r\n }\r\n\r\n /**\r\n * Save the current model state to the store\r\n *\r\n * @protected\r\n */\r\n _saveCurrentModel(id: string): void {\r\n if (this._editor && id && Object.keys(state.models).indexOf(id) > -1) {\r\n state.models[id][this._isData() ? \"dataModel\" : \"propsModel\"] = this.model;\r\n state.models[id].state = this._editor.saveViewState();\r\n }\r\n }\r\n\r\n /**\r\n * Change the editors model\r\n *\r\n * @protected\r\n */\r\n _setEditModel(id): void {\r\n const data = state.models[id];\r\n\r\n this.model = this._isData() ? data.dataModel : data.propsModel;\r\n this.original = this._isData() ? data.dataOriginValue : data.propsOriginValue;\r\n\r\n if (this._editor) {\r\n this._editor.setModel(this.model);\r\n if (data.state) {\r\n this._editor.restoreViewState(data.state);\r\n }\r\n this._setDiffModel();\r\n this._setEditorFocus();\r\n } else {\r\n this._initEditor();\r\n }\r\n\r\n this._setCurrentModel();\r\n\r\n this._toggleUndoRedo();\r\n }\r\n\r\n /**\r\n * Set the current model and event handler\r\n *\r\n * @protected\r\n */\r\n _setCurrentModel(): void {\r\n this._currentModel = this._editor.getModel();\r\n if (this._contentChanged) {\r\n this._contentChanged.dispose();\r\n }\r\n this._contentChanged = this._currentModel.onDidChangeContent(this._onEditorChange.bind(this));\r\n }\r\n\r\n /**\r\n * Set the models for the diff editor\r\n *\r\n * @protected\r\n */\r\n _setDiffModel(): void {\r\n if (this._diffEditor) {\r\n this._diffEditor.setModel({\r\n original: monaco.editor.createModel(JSON.stringify(JSON.parse(this.original), null, '\\t'), \"json\"),\r\n modified: this._editor.getModel()\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Set the models for the diff editor\r\n *\r\n * @protected\r\n */\r\n _setEditorFocus(): void {\r\n if (this._useDiffEditor) {\r\n this._diffEditor.focus();\r\n } else {\r\n this._editor.focus();\r\n }\r\n }\r\n\r\n /**\r\n * When the json-editor is embedded within a solition-item component we will have two tabs\r\n * with the json editor. This provides a way for us to check if that parent tab is active \r\n * while inserting variables.\r\n *\r\n * @protected\r\n */\r\n _isTabActive(): boolean {\r\n const tab = document.getElementById(`${this.instanceid}-tab`) as HTMLCalciteTabElement;\r\n return tab ? tab.active : true;\r\n }\r\n\r\n /**\r\n * When the json-editor is embedded within a solition-item component we will have two tabs\r\n * with the json editor. One for the data section of the item and one for the props section.\r\n * This provides a way to check what one we are working with.\r\n *\r\n * @protected\r\n */\r\n _isData(): boolean {\r\n return this.instanceid === \"data\"\r\n }\r\n\r\n /**\r\n * When the json-editor is embedded within a solition-item component it needs to be aware\r\n * if the spatial reference control has modified the data.\r\n * Edits from the spatial reference control do not add to the undo/redo stack and are not removed on reset as\r\n * they are only controlled via the spatial reference control.\r\n * This allows us to use the true original value or the one that has been modified by the spatial ref control\r\n * when using the diff editor or resetting.\r\n *\r\n * @protected\r\n */\r\n _getOriginalValue(): string{\r\n const m: any = state.models[this.value];\r\n const serviceActive = getProp(state, `spatialReferenceInfo.services.${m?.name}`);\r\n const srEnabled = getProp(state, 'spatialReferenceInfo.enabled');\r\n return (serviceActive && srEnabled && !this._isData()) ? m.propsDiffOriginValue : this.original;\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2021 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.inputBottomSeparation {\r\n margin: 0 0 1.5rem 0;\r\n}\r\n\r\n.icon-inline--on-left, .esriRtl .icon-inline--on-right {\r\n margin-right: 6px;\r\n margin-left: 0;\r\n}\r\n\r\n.icon-inline--on-left, .icon-inline--on-right {\r\n display: inline;\r\n margin-top: -.15em;\r\n}\r\n\r\n.font-size--3 {\r\n font-size: 0.8125rem;\r\n line-height: 1.5\r\n}\r\n\r\n.scale-down {\r\n object-fit: scale-down;\r\n}\r\n\r\n.btn-link {\r\n -webkit-appearance: none;\r\n cursor: pointer;\r\n padding: 0;\r\n border: none;\r\n color: #6e6e6e;\r\n background: transparent;\r\n}\r\n\r\n.btn-link:hover {\r\n text-decoration: underline;\r\n}\r\n\r\n.inline-block {\r\n display: inline-block;\r\n}\r\n\r\n.flex {\r\n display: flex;\r\n}\r\n\r\n.img-container {\r\n display: inline;\r\n flex-grow: 0;\r\n}\r\n\r\n.summary-count-container {\r\n display: inline;\r\n flex-grow: 1;\r\n margin-left: 12px;\r\n}\r\n\r\n.parent-container {\r\n max-width: 100%;\r\n margin: 1rem;\r\n}\r\n\r\n.display-none {\r\n display: none;\r\n}\r\n\r\nlabel {\r\n position: relative;\r\n display: block;\r\n margin: 0 0 1.5rem 0;\r\n}\r\n","/** @license\r\n * Copyright 2021 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, VNode } from '@stencil/core';\r\nimport '@esri/calcite-components';\r\nimport state from '../../utils/editStore';\r\nimport { getProp } from '../../utils/common';\r\n\r\nexport interface IItemDetails {\r\n thumbnail: string;\r\n title: string;\r\n snippet: string;\r\n description: string;\r\n tags: string[];\r\n accessInformation?: string;\r\n licenseInfo?: string;\r\n itemId: string\r\n}\r\n\r\n@Component({\r\n tag: 'solution-item-details',\r\n styleUrl: 'solution-item-details.css',\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 * Contains the translations for this component.\r\n */\r\n @Prop({ mutable: true }) translations: any = {};\r\n\r\n /**\r\n * Contains the public value for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value: IItemDetails = {\r\n thumbnail: null,\r\n title: \"\",\r\n snippet: \"\",\r\n description: \"\",\r\n tags: [],\r\n accessInformation: \"\",\r\n licenseInfo: \"\",\r\n itemId: \"\"\r\n };\r\n\r\n @Prop({ mutable: true, reflect: true }) type = \"\";\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n render(): VNode {\r\n this._validateValue();\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.value.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\" 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\">\r\n <img class=\"scale-down\" height=\"133\" 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.value.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.value.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.value.tags && Array.isArray(this.value.tags) ? this.value.tags : [this.value.tags]).join(\",\")} />\r\n </label>\r\n </calcite-label>\r\n\r\n {this.type !== \"Group\" ? <calcite-label>{this.translations.credits}\r\n <label id=\"item-credits-label\">\r\n <calcite-input id=\"item-credits\" value={this.value.accessInformation} />\r\n </label>\r\n </calcite-label> : null}\r\n\r\n {this.type !== \"Group\" ? <calcite-label>\r\n <label id=\"item-terms-label\">{this.translations.termsOfUse}\r\n <calcite-input id=\"item-terms\" type=\"textarea\" value={this.value.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 // Variables (private)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Handle to the element for browsing for a file.\r\n */\r\n private browseForThumbnail: HTMLInputElement;\r\n\r\n /**\r\n * Handle to the snippet character-count feedback.\r\n */\r\n private itemSnippetCount: HTMLLabelElement;\r\n\r\n /**\r\n * Handle to the thumbnail image display.\r\n */\r\n private thumbnail: HTMLImageElement;\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.value.title = event.target.value;\r\n this._updateStore(\"title\", event.target.value);\r\n break;\r\n case \"item-snippet\":\r\n this.value.snippet = event.target.value;\r\n this._updateLengthLabel(this.value.snippet);\r\n this._updateStore(\"snippet\", event.target.value);\r\n break;\r\n case \"item-description\":\r\n this.value.description = event.target.value;\r\n this._updateStore(\"description\", event.target.value);\r\n break;\r\n case \"item-tags\":\r\n this.value.tags = event.target.value;\r\n this._updateStore(\"tags\", event.target.value);\r\n break;\r\n case \"item-credits\":\r\n this.value.accessInformation = event.target.value;\r\n this._updateStore(\"accessInformation\", event.target.value);\r\n break;\r\n case \"item-terms\":\r\n this.value.licenseInfo = event.target.value;\r\n this._updateStore(\"licenseInfo\", event.target.value);\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 private _getThumbnail(): void {\r\n this.browseForThumbnail.click();\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 */\r\n private _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 * Gets and displays image result from browse.\r\n *\r\n */\r\n private _updateThumbnail(\r\n event: any\r\n ): void {\r\n const files = event.currentTarget.files;\r\n if (files && files[0]) {\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n this.thumbnail.src = reader.result as string;\r\n }\r\n reader.readAsDataURL(files[0]);\r\n }\r\n }\r\n\r\n /**\r\n * Use the value from the store if it exists\r\n *\r\n */\r\n private _validateValue(): void {\r\n const m: any = getProp(state, `models.${this.value.itemId}`);\r\n if (m) {\r\n Object.keys(this.value).forEach(k => {\r\n if (m.updateItemValues.hasOwnProperty(k)) {\r\n this.value[k] = m.updateItemValues[k];\r\n } else if (m.originalItemValues.hasOwnProperty(k)) {\r\n this.value[k] = m.originalItemValues[k];\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Add or remove the value from the store\r\n *\r\n */\r\n private _updateStore(\r\n prop: string,\r\n v: string\r\n ): void {\r\n const model: any = getProp(state, `models.${this.value.itemId}`);\r\n if (model.itemOriginValue) {\r\n const item = JSON.parse(model.itemOriginValue);\r\n if (item.hasOwnProperty(prop)) {\r\n // store when it matches\r\n if (item[prop] !== v) {\r\n if (!model.originalItemValues.hasOwnProperty(prop)) {\r\n model.originalItemValues[prop] = item[prop];\r\n }\r\n model.updateItemValues[prop] = v;\r\n } else {\r\n // remove when it doesn't\r\n delete(model.updateItemValues[prop]);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2021 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:host {\r\n display: block;\r\n}\r\n\r\n.container-border {\r\n padding: 1rem;\r\n}\r\n\r\n.icon-text {\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n}","/** @license\r\n * Copyright 2021 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, Prop, VNode } from '@stencil/core';\r\nimport state from '../../utils/editStore';\r\n\r\nexport interface IItemShare {\r\n id: string;\r\n title: string;\r\n isShared: boolean;\r\n shareItem: boolean;\r\n type: string;\r\n typeKeywords: string[];\r\n}\r\n\r\n@Component({\r\n tag: 'solution-item-sharing',\r\n styleUrl: 'solution-item-sharing.css',\r\n shadow: true,\r\n})\r\nexport class SolutionItemSharing {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionItemSharingElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the translations for this component.\r\n */\r\n @Prop({ mutable: true }) translations: any = {};\r\n\r\n /**\r\n * Contains the public value for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value: IItemShare[] = [];\r\n\r\n /**\r\n * Contains the public id for the group these items will be shared or un-shared with.\r\n */\r\n @Prop({ mutable: true, reflect: true }) groupId: string;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div class=\"container-border\">\r\n {this.renderItems(this.value)}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n renderItems(\r\n objs: IItemShare[]\r\n ): VNode[] {\r\n return objs.length > 0 ? objs.map(item => {\r\n return (\r\n <calcite-label layout=\"inline\">\r\n <calcite-switch\r\n id={item.id}\r\n name=\"setting\"\r\n onCalciteSwitchChange={(event) => this._updateItem(event)}\r\n scale=\"m\"\r\n switched={item.shareItem}\r\n value=\"enabled\"\r\n />\r\n <solution-item-icon type={item.type} typeKeywords={item.typeKeywords} />\r\n <span class=\"icon-text\" title={item.title}>{item.title}</span>\r\n </calcite-label>\r\n );\r\n }) : null;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Variables (private)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\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 * Update the items share prop based on the switch state\r\n *\r\n * @param event onCalciteSwitchChange event\r\n */\r\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n _updateItem(event): void {\r\n const id: string = event.target.id;\r\n this.value = this.value.map(item => {\r\n if (item.id === id) {\r\n // update the item\r\n item.shareItem = event.target.switched;\r\n // update the store\r\n if (state?.models[id]) {\r\n let shareInfo = undefined;\r\n if (item.isShared && !event.target.switched) {\r\n shareInfo = { type: \"unshare\", groupId: this.groupId };\r\n } else if (!item.isShared && event.target.switched) {\r\n shareInfo = { type: \"share\", groupId: this.groupId };\r\n }\r\n state.models[id].shareInfo = shareInfo;\r\n }\r\n }\r\n return item;\r\n });\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2021 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:host {\r\n display: block;\r\n}\r\n\r\n.container-border {\r\n overflow-y: auto;\r\n}\r\n\r\n.org-var-header {\r\n margin: 0rem 0rem 1rem 0rem;\r\n}","/** @license\r\n * Copyright 2021 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 } from '@stencil/core';\r\n\r\nexport interface IOrganizationVariableItem {\r\n id: string;\r\n title: string;\r\n value: string;\r\n}\r\n\r\n@Component({\r\n tag: 'solution-organization-variables',\r\n styleUrl: 'solution-organization-variables.css',\r\n shadow: true,\r\n})\r\n\r\nexport class SolutionOrganizationVariables {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionOrganizationVariablesElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the translations for this component.\r\n */\r\n @Prop({ mutable: true }) translations: any = {};\r\n\r\n /**\r\n * Contains the public value for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value: IOrganizationVariableItem[] = [];\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div>\r\n <h4 class=\"org-var-header\">{this.translations.orgVariables}</h4>\r\n </div>\r\n <div class=\"container-border\">\r\n <calcite-label id=\"variable-label\">\r\n {this.renderHierarchy(this.value)}\r\n </calcite-label>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n renderHierarchy(\r\n objs: IOrganizationVariableItem[]\r\n ): VNode[] {\r\n const hierarchy = objs.map(obj => {\r\n return (\r\n <calcite-tree-item onClick={() => this._treeItemSelected(obj.id, obj.value)}>\r\n {obj.title}\r\n </calcite-tree-item>\r\n );\r\n });\r\n return hierarchy;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Variables (private)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Events\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Event() organizationVariableSelected: EventEmitter;\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 `organizationVariableSelected` event containing `itemId`, the id of the selected variable and the value of the variable.\r\n *\r\n * @param itemId Item id as reported by click event\r\n * @param value Variable id as reported by click event\r\n */\r\n private _treeItemSelected(\r\n itemId: string,\r\n value: string\r\n ): void {\r\n this.organizationVariableSelected.emit({\r\n itemId,\r\n value\r\n });\r\n }\r\n\r\n}\r\n","/** @license\r\n * Copyright 2021 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:host {\r\n display: block;\r\n}\r\n\r\n.resource-item {\r\n padding: 1rem;\r\n display: inline-block !important;\r\n}\r\n\r\n.resource-button {\r\n margin-right: 1rem;\r\n}\r\n\r\n.resource-button[dir=\"rtl\"] {\r\n margin-left: 1rem;\r\n}\r\n\r\n.display-none {\r\n display: none;\r\n}\r\n\r\n.resource-progress {\r\n padding-top: 1rem;\r\n}\r\n","/** @license\r\n * Copyright 2021 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, Host, h, Prop, State, Watch } from '@stencil/core';\r\n\r\nexport interface IResourceItem {\r\n name: string,\r\n url: string\r\n}\r\n\r\n@Component({\r\n tag: 'solution-resource-item',\r\n styleUrl: 'solution-resource-item.css',\r\n shadow: true\r\n})\r\nexport class SolutionResourceItem {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionResourceItemElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the translations for this component.\r\n */\r\n @Prop({ mutable: true }) translations: any = {};\r\n\r\n /**\r\n * Contains the public value for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value: IResourceItem = {\r\n name: \"\",\r\n url: \"\"\r\n };\r\n\r\n @State() fileName: string;\r\n\r\n @Watch('value')\r\n valueWatchHandler(v: IResourceItem, oldV: IResourceItem): void {\r\n this.fileName = v.name !== oldV.name ? v.name : this.fileName;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n componentWillLoad(): void {\r\n this.fileName = this.value.name;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div class=\"resource-item\">\r\n\r\n <input\r\n accept=\".zip\"\r\n class=\"display-none\"\r\n onChange={(event) => (this._updateFile(event))}\r\n ref={(el) => (this.browseForFile = el)}\r\n type=\"file\"\r\n />\r\n\r\n <a class=\"display-none\" download href={this.value.url} ref={(el) => (this.downloadFile = el)} />\r\n\r\n <calcite-label>\r\n {this.fileName}\r\n </calcite-label>\r\n\r\n {/* <calcite-progress\r\n class=\"display-none resource-progress\"\r\n ref={(el) => (this.uploadProgress = el)}\r\n type=\"indeterminate\"\r\n ></calcite-progress> */}\r\n\r\n <calcite-button\r\n appearance=\"solid\"\r\n class=\"resource-button\"\r\n color=\"blue\"\r\n icon-start=\"download\"\r\n onClick={() => this._downloadItem()}\r\n scale=\"m\"\r\n >\r\n {this.translations.download}\r\n </calcite-button>\r\n\r\n <calcite-button\r\n appearance=\"solid\"\r\n class=\"resource-button\"\r\n color=\"blue\"\r\n icon-start=\"upload\"\r\n onClick={() => this._updateItem()}\r\n scale=\"m\"\r\n >\r\n {this.translations.update}\r\n </calcite-button>\r\n\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Variables (private)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Handle to the element for browsing for a file.\r\n */\r\n private browseForFile: HTMLInputElement;\r\n\r\n /**\r\n * Handle to the element for downloading a file.\r\n */\r\n private downloadFile: HTMLAnchorElement;\r\n\r\n /**\r\n * Handle to the progress element to show during upload/download\r\n */\r\n //private uploadProgress: HTMLCalciteProgressElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\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 * Download file from url.\r\n *\r\n */\r\n _downloadItem(): void {\r\n this.downloadFile.click();\r\n }\r\n\r\n /**\r\n * Opens file browse dialog.\r\n *\r\n */\r\n _updateItem(): void {\r\n this.browseForFile.click();\r\n }\r\n\r\n /**\r\n * Gets and displays image result from browse.\r\n *\r\n */\r\n private _updateFile(\r\n event: any\r\n ): void {\r\n // progress goes so fast this may not be necessary\r\n //this.uploadProgress.classList.remove('display-none');\r\n const files = event.currentTarget.files;\r\n if (files && files[0]) {\r\n const name: string = files[0].name;\r\n const reader = new FileReader();\r\n reader.onloadend = (r) => {\r\n this.value = {\r\n name,\r\n url: typeof(r.target.result) === \"string\" ? r.target.result : \"\"\r\n };\r\n //this.uploadProgress.classList.add('display-none');\r\n }\r\n reader.readAsDataURL(files[0]);\r\n } else {\r\n //this.uploadProgress.classList.add('display-none');\r\n }\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2021 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:host {\r\n display: flexbox;\r\n}\r\n\r\n.solution-data-container {\r\n height: 100%;\r\n max-width: 100%;\r\n position: relative;\r\n}\r\n\r\n.solution-data-child-container {\r\n height: 100%;\r\n width: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n overflow: auto;\r\n}\r\n\r\n.solution-data-child-container-collapsed {\r\n height: 100%;\r\n width: 50px;\r\n display: flex;\r\n flex-direction: column;\r\n overflow: auto;\r\n}\r\n\r\n.inputBottomSeparation {\r\n margin: 0 0 1.5rem 0;\r\n}\r\n\r\n.json-editor {\r\n width: -webkit-fill-available;\r\n margin: 1rem;\r\n}\r\n\r\n.collapse-btn {\r\n padding: 1rem 1rem 0 1rem;\r\n}\r\n\r\n.org-vars {\r\n padding: 1rem 1rem 0 1rem;\r\n max-height: 45%;\r\n}\r\n\r\n.sol-vars {\r\n padding: 0 1rem 0 1rem;\r\n min-height: 45%;\r\n}\r\n\r\n.padding-1 {\r\n padding: 1rem;\r\n}\r\n\r\n.light {\r\n background-color: #F4F4F4;\r\n}\r\n\r\n.hide {\r\n display: none;\r\n}\r\n","/** @license\r\n * Copyright 2021 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 { VNode } from '@esri/calcite-components/dist/types/stencil-public-runtime';\r\nimport { Component, Element, Host, h, Prop } from '@stencil/core';\r\nimport { IOrganizationVariableItem } from '../solution-organization-variables/solution-organization-variables';\r\nimport { IVariableItem } from '../solution-variables/solution-variables';\r\nimport { IResourceItem } from '../solution-resource-item/solution-resource-item';\r\n\r\nexport interface ITemplateData {\r\n resourceItem?: IResourceItem,\r\n value?: any\r\n}\r\n\r\n@Component({\r\n tag: 'solution-template-data',\r\n styleUrl: 'solution-template-data.css',\r\n shadow: false\r\n})\r\n\r\nexport class SolutionTemplateData {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionTemplateDataElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the translations for this component.\r\n */\r\n @Prop({ mutable: true }) translations: any = {};\r\n\r\n /**\r\n * Contains the public value for this component.\r\n * \r\n * When working with a resource item this should contain an IResourceItem\r\n * \r\n * When working with a json type item this should contain the data and vars\r\n */\r\n @Prop({ mutable: true, reflect: true }) value: ITemplateData = {};\r\n\r\n /**\r\n * Should be set to true for items that store their data as a resource\r\n * Will allow for upload and download of the resource\r\n */\r\n @Prop({ mutable: true }) isResource = false;\r\n\r\n /**\r\n * This needs to be unique for props vs data of an item\r\n */\r\n @Prop({ mutable: true, reflect: true }) instanceid = \"\";\r\n\r\n /**\r\n * A templates itemId.\r\n * This is used to get the correct model from a store in the json-editor\r\n */\r\n @Prop({ mutable: true, reflect: true }) itemid = \"\";\r\n\r\n /**\r\n * Contains the solution based variables\r\n */\r\n @Prop({mutable: true, reflect: true}) solutionVariables: IVariableItem[] = [];\r\n\r\n /**\r\n * Contains the organization based variables\r\n */\r\n @Prop({mutable: true, reflect: true}) organizationVariables: IOrganizationVariableItem[] = [];\r\n\r\n /**\r\n * Used to show/hide the variable containers\r\n */\r\n @Prop({mutable: true, reflect: true}) varsOpen = true;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div class=\"solution-data-container\">\r\n {this.renderTemplateData(this.value)}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n renderTemplateData(data: ITemplateData): VNode {\r\n return this.isResource ? this._resourceData(data) : this._jsonData();\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\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 _jsonData(): any {\r\n return <calcite-shell class=\"light var-container\" dir=\"ltr\">\r\n <calcite-panel class=\"json-editor\">\r\n <div class=\"solution-data-child-container calcite-match-height\">\r\n <json-editor\r\n instanceid={this.instanceid}\r\n translations={this.translations}\r\n value={this.itemid}\r\n />\r\n </div>\r\n </calcite-panel>\r\n\r\n <calcite-shell-panel height-scale=\"l\" position=\"end\" slot=\"contextual-panel\" width-scale=\"xs\">\r\n <div class={this.varsOpen ? \"solution-data-child-container\" : \"solution-data-child-container-collapsed\"}>\r\n <calcite-button\r\n appearance=\"transparent\"\r\n class=\"collapse-btn\"\r\n icon-start={this.varsOpen ? \"chevrons-right\" : \"chevrons-left\"}\r\n id=\"collapse-vars\"\r\n onClick={() => this._toggleVars()}\r\n scale=\"s\"\r\n title={this.translations.cancelEdits}\r\n />\r\n <div class={this.varsOpen ? \"org-vars\" : \"org-vars hide\"} id=\"orgVars\">\r\n <solution-organization-variables\r\n translations={this.translations}\r\n value={this.organizationVariables}\r\n />\r\n </div>\r\n <div class={this.varsOpen ? \"sol-vars\" : \"sol-vars hide\"} id=\"solVars\">\r\n <solution-variables\r\n translations={this.translations}\r\n value={this.solutionVariables}\r\n />\r\n </div>\r\n </div>\r\n </calcite-shell-panel>\r\n </calcite-shell>;\r\n }\r\n\r\n _resourceData(templateData: ITemplateData): any {\r\n return <solution-resource-item translations={this.translations} value={templateData.resourceItem} />;\r\n }\r\n\r\n /**\r\n * Toggle varsOpen prop to show/hide variable containers\r\n */\r\n _toggleVars(): void {\r\n this.varsOpen = !this.varsOpen;\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2021 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:host {\r\n display: block;\r\n}\r\n\r\n.container-border {\r\n overflow-y: auto;\r\n}\r\n\r\n.org-var-header {\r\n margin: 1rem 0rem 1rem 0rem;\r\n}\r\n\r\n.icon-text {\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n}","/** @license\r\n * Copyright 2021 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 } from '@stencil/core';\r\n\r\nexport interface IVariableItem {\r\n id: string;\r\n title: string;\r\n type?: string;\r\n value: string;\r\n dependencies?: IVariableItem[];\r\n}\r\n\r\n@Component({\r\n tag: 'solution-variables',\r\n styleUrl: 'solution-variables.css',\r\n shadow: true,\r\n})\r\nexport class SolutionVariables {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionVariablesElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the translations for this component.\r\n */\r\n @Prop({ mutable: true }) translations: any = {};\r\n\r\n /**\r\n * Contains the public value for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value: IVariableItem[] = [];\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <div>\r\n <h4 class=\"org-var-header\">{this.translations.solVariables}</h4>\r\n </div>\r\n <div class=\"container-border\">\r\n <calcite-label id=\"variable-label\">\r\n {this.renderHierarchy(this.value)}\r\n </calcite-label>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n renderHierarchy(\r\n objs: IVariableItem[]\r\n ): VNode[] {\r\n const hierarchy = objs.map(obj => {\r\n return obj.dependencies && obj.dependencies.length > 0 ? (\r\n <calcite-tree-item>\r\n <solution-item-icon type={obj.type} />\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 <calcite-tree-item onClick={() => this._treeItemSelected(obj.id, obj.value)}>\r\n {obj.title}\r\n </calcite-tree-item>\r\n );\r\n });\r\n return hierarchy;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Variables (private)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Events\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Event() solutionVariableSelected: EventEmitter;\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 `solutionVariableSelected` event containing `itemId`, the id of the selected variable and the value of the variable.\r\n *\r\n * @param id Item id as reported by click event\r\n * @param value Variable id as reported by click event\r\n */\r\n private _treeItemSelected(\r\n id: string,\r\n value: string\r\n ): void {\r\n this.solutionVariableSelected.emit({\r\n itemId: id,\r\n value\r\n });\r\n }\r\n\r\n}\r\n"],"version":3}