@esri/solutions-components 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (530) hide show
  1. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js +16 -6
  2. package/dist/cjs/calcite-shell-panel_14.cjs.entry.js.map +1 -1
  3. package/dist/cjs/solution-configuration.cjs.entry.js +10 -3
  4. package/dist/cjs/solution-configuration.cjs.entry.js.map +1 -1
  5. package/dist/cjs/solution-contents_3.cjs.entry.js +3 -1
  6. package/dist/cjs/solution-contents_3.cjs.entry.js.map +1 -1
  7. package/dist/cjs/{solution-store-e2fc11ac.js → solution-store-893499a5.js} +3 -1
  8. package/dist/cjs/solution-store-893499a5.js.map +1 -0
  9. package/dist/collection/components/solution-configuration/solution-configuration.js +9 -2
  10. package/dist/collection/components/solution-configuration/solution-configuration.js.map +1 -1
  11. package/dist/collection/components/solution-item/solution-item.js +2 -0
  12. package/dist/collection/components/solution-item/solution-item.js.map +1 -1
  13. package/dist/collection/components/solution-item-details/solution-item-details.js +15 -5
  14. package/dist/collection/components/solution-item-details/solution-item-details.js.map +1 -1
  15. package/dist/collection/utils/solution-store.js +2 -0
  16. package/dist/collection/utils/solution-store.js.map +1 -1
  17. package/dist/collection/utils/solution-store.ts +2 -0
  18. package/dist/esm/calcite-shell-panel_14.entry.js +16 -6
  19. package/dist/esm/calcite-shell-panel_14.entry.js.map +1 -1
  20. package/dist/esm/solution-configuration.entry.js +10 -3
  21. package/dist/esm/solution-configuration.entry.js.map +1 -1
  22. package/dist/esm/solution-contents_3.entry.js +3 -1
  23. package/dist/esm/solution-contents_3.entry.js.map +1 -1
  24. package/dist/esm/{solution-store-b3c65467.js → solution-store-0c58c852.js} +3 -1
  25. package/dist/esm/solution-store-0c58c852.js.map +1 -0
  26. package/dist/solutions-components/{p-b25f6ebe.js → p-659edb14.js} +3 -1
  27. package/dist/solutions-components/p-659edb14.js.map +1 -0
  28. package/dist/solutions-components/{p-638738f2.entry.js → p-77c75f3a.entry.js} +4 -2
  29. package/dist/solutions-components/p-77c75f3a.entry.js.map +1 -0
  30. package/dist/solutions-components/{p-7e8985f2.entry.js → p-90629c1d.entry.js} +11 -4
  31. package/dist/solutions-components/p-90629c1d.entry.js.map +1 -0
  32. package/dist/solutions-components/{p-542189bc.entry.js → p-984cb687.entry.js} +17 -7
  33. package/dist/solutions-components/p-984cb687.entry.js.map +1 -0
  34. package/dist/solutions-components/solutions-components.esm.js +1 -1
  35. package/dist/solutions-components/utils/solution-store.ts +2 -0
  36. package/dist/solutions-components_commit.txt +9 -6
  37. package/dist/types/components/solution-item-details/solution-item-details.d.ts +2 -1
  38. package/package.json +1 -1
  39. package/dist/cjs/solution-store-e2fc11ac.js.map +0 -1
  40. package/dist/components/ExpandToggle.js +0 -112
  41. package/dist/components/ExpandToggle.js.map +0 -1
  42. package/dist/components/Heading.js +0 -24
  43. package/dist/components/Heading.js.map +0 -1
  44. package/dist/components/_commonjsHelpers.js +0 -24
  45. package/dist/components/_commonjsHelpers.js.map +0 -1
  46. package/dist/components/action-bar.js +0 -278
  47. package/dist/components/action-bar.js.map +0 -1
  48. package/dist/components/action-group.js +0 -151
  49. package/dist/components/action-group.js.map +0 -1
  50. package/dist/components/action-menu.js +0 -358
  51. package/dist/components/action-menu.js.map +0 -1
  52. package/dist/components/action.js +0 -216
  53. package/dist/components/action.js.map +0 -1
  54. package/dist/components/array.js +0 -17
  55. package/dist/components/array.js.map +0 -1
  56. package/dist/components/buffer-tools.d.ts +0 -11
  57. package/dist/components/buffer-tools.js +0 -13
  58. package/dist/components/buffer-tools.js.map +0 -1
  59. package/dist/components/buffer-tools2.js +0 -256
  60. package/dist/components/buffer-tools2.js.map +0 -1
  61. package/dist/components/button.js +0 -265
  62. package/dist/components/button.js.map +0 -1
  63. package/dist/components/calcite-accordion-item.js +0 -246
  64. package/dist/components/calcite-accordion-item.js.map +0 -1
  65. package/dist/components/calcite-accordion.js +0 -182
  66. package/dist/components/calcite-accordion.js.map +0 -1
  67. package/dist/components/calcite-action-bar.js +0 -13
  68. package/dist/components/calcite-action-bar.js.map +0 -1
  69. package/dist/components/calcite-action-group.js +0 -13
  70. package/dist/components/calcite-action-group.js.map +0 -1
  71. package/dist/components/calcite-action-menu.js +0 -13
  72. package/dist/components/calcite-action-menu.js.map +0 -1
  73. package/dist/components/calcite-action-pad.js +0 -199
  74. package/dist/components/calcite-action-pad.js.map +0 -1
  75. package/dist/components/calcite-action.js +0 -13
  76. package/dist/components/calcite-action.js.map +0 -1
  77. package/dist/components/calcite-alert.js +0 -299
  78. package/dist/components/calcite-alert.js.map +0 -1
  79. package/dist/components/calcite-avatar.js +0 -184
  80. package/dist/components/calcite-avatar.js.map +0 -1
  81. package/dist/components/calcite-block-section.js +0 -157
  82. package/dist/components/calcite-block-section.js.map +0 -1
  83. package/dist/components/calcite-block.js +0 -277
  84. package/dist/components/calcite-block.js.map +0 -1
  85. package/dist/components/calcite-button.js +0 -13
  86. package/dist/components/calcite-button.js.map +0 -1
  87. package/dist/components/calcite-card.js +0 -189
  88. package/dist/components/calcite-card.js.map +0 -1
  89. package/dist/components/calcite-checkbox.js +0 -13
  90. package/dist/components/calcite-checkbox.js.map +0 -1
  91. package/dist/components/calcite-chip.js +0 -13
  92. package/dist/components/calcite-chip.js.map +0 -1
  93. package/dist/components/calcite-color-picker-hex-input.js +0 -13
  94. package/dist/components/calcite-color-picker-hex-input.js.map +0 -1
  95. package/dist/components/calcite-color-picker-swatch.js +0 -13
  96. package/dist/components/calcite-color-picker-swatch.js.map +0 -1
  97. package/dist/components/calcite-color-picker.js +0 -1038
  98. package/dist/components/calcite-color-picker.js.map +0 -1
  99. package/dist/components/calcite-combobox-item-group.js +0 -77
  100. package/dist/components/calcite-combobox-item-group.js.map +0 -1
  101. package/dist/components/calcite-combobox-item.js +0 -13
  102. package/dist/components/calcite-combobox-item.js.map +0 -1
  103. package/dist/components/calcite-combobox.js +0 -13
  104. package/dist/components/calcite-combobox.js.map +0 -1
  105. package/dist/components/calcite-date-picker-day.js +0 -13
  106. package/dist/components/calcite-date-picker-day.js.map +0 -1
  107. package/dist/components/calcite-date-picker-month-header.js +0 -13
  108. package/dist/components/calcite-date-picker-month-header.js.map +0 -1
  109. package/dist/components/calcite-date-picker-month.js +0 -13
  110. package/dist/components/calcite-date-picker-month.js.map +0 -1
  111. package/dist/components/calcite-date-picker.js +0 -13
  112. package/dist/components/calcite-date-picker.js.map +0 -1
  113. package/dist/components/calcite-dropdown-group.js +0 -101
  114. package/dist/components/calcite-dropdown-group.js.map +0 -1
  115. package/dist/components/calcite-dropdown-item.js +0 -237
  116. package/dist/components/calcite-dropdown-item.js.map +0 -1
  117. package/dist/components/calcite-dropdown.js +0 -13
  118. package/dist/components/calcite-dropdown.js.map +0 -1
  119. package/dist/components/calcite-fab.js +0 -146
  120. package/dist/components/calcite-fab.js.map +0 -1
  121. package/dist/components/calcite-filter.js +0 -197
  122. package/dist/components/calcite-filter.js.map +0 -1
  123. package/dist/components/calcite-flow-item.js +0 -245
  124. package/dist/components/calcite-flow-item.js.map +0 -1
  125. package/dist/components/calcite-flow.js +0 -149
  126. package/dist/components/calcite-flow.js.map +0 -1
  127. package/dist/components/calcite-graph.js +0 -13
  128. package/dist/components/calcite-graph.js.map +0 -1
  129. package/dist/components/calcite-handle.js +0 -13
  130. package/dist/components/calcite-handle.js.map +0 -1
  131. package/dist/components/calcite-icon.js +0 -13
  132. package/dist/components/calcite-icon.js.map +0 -1
  133. package/dist/components/calcite-inline-editable.js +0 -296
  134. package/dist/components/calcite-inline-editable.js.map +0 -1
  135. package/dist/components/calcite-input-date-picker.js +0 -715
  136. package/dist/components/calcite-input-date-picker.js.map +0 -1
  137. package/dist/components/calcite-input-message.js +0 -13
  138. package/dist/components/calcite-input-message.js.map +0 -1
  139. package/dist/components/calcite-input-number.js +0 -639
  140. package/dist/components/calcite-input-number.js.map +0 -1
  141. package/dist/components/calcite-input-text.js +0 -402
  142. package/dist/components/calcite-input-text.js.map +0 -1
  143. package/dist/components/calcite-input-time-picker.js +0 -436
  144. package/dist/components/calcite-input-time-picker.js.map +0 -1
  145. package/dist/components/calcite-input.js +0 -13
  146. package/dist/components/calcite-input.js.map +0 -1
  147. package/dist/components/calcite-label.js +0 -13
  148. package/dist/components/calcite-label.js.map +0 -1
  149. package/dist/components/calcite-link.js +0 -13
  150. package/dist/components/calcite-link.js.map +0 -1
  151. package/dist/components/calcite-list-item-group.js +0 -67
  152. package/dist/components/calcite-list-item-group.js.map +0 -1
  153. package/dist/components/calcite-list-item.js +0 -13
  154. package/dist/components/calcite-list-item.js.map +0 -1
  155. package/dist/components/calcite-list.js +0 -13
  156. package/dist/components/calcite-list.js.map +0 -1
  157. package/dist/components/calcite-loader.js +0 -13
  158. package/dist/components/calcite-loader.js.map +0 -1
  159. package/dist/components/calcite-modal.js +0 -500
  160. package/dist/components/calcite-modal.js.map +0 -1
  161. package/dist/components/calcite-notice.js +0 -13
  162. package/dist/components/calcite-notice.js.map +0 -1
  163. package/dist/components/calcite-option-group.js +0 -66
  164. package/dist/components/calcite-option-group.js.map +0 -1
  165. package/dist/components/calcite-option.js +0 -13
  166. package/dist/components/calcite-option.js.map +0 -1
  167. package/dist/components/calcite-pagination.js +0 -260
  168. package/dist/components/calcite-pagination.js.map +0 -1
  169. package/dist/components/calcite-panel.js +0 -13
  170. package/dist/components/calcite-panel.js.map +0 -1
  171. package/dist/components/calcite-pick-list-group.js +0 -76
  172. package/dist/components/calcite-pick-list-group.js.map +0 -1
  173. package/dist/components/calcite-pick-list-item.js +0 -13
  174. package/dist/components/calcite-pick-list-item.js.map +0 -1
  175. package/dist/components/calcite-pick-list.js +0 -175
  176. package/dist/components/calcite-pick-list.js.map +0 -1
  177. package/dist/components/calcite-popover-manager.js +0 -96
  178. package/dist/components/calcite-popover-manager.js.map +0 -1
  179. package/dist/components/calcite-popover.js +0 -13
  180. package/dist/components/calcite-popover.js.map +0 -1
  181. package/dist/components/calcite-progress.js +0 -13
  182. package/dist/components/calcite-progress.js.map +0 -1
  183. package/dist/components/calcite-radio-button-group.js +0 -134
  184. package/dist/components/calcite-radio-button-group.js.map +0 -1
  185. package/dist/components/calcite-radio-button.js +0 -312
  186. package/dist/components/calcite-radio-button.js.map +0 -1
  187. package/dist/components/calcite-radio-group-item.js +0 -13
  188. package/dist/components/calcite-radio-group-item.js.map +0 -1
  189. package/dist/components/calcite-radio-group.js +0 -13
  190. package/dist/components/calcite-radio-group.js.map +0 -1
  191. package/dist/components/calcite-rating.js +0 -203
  192. package/dist/components/calcite-rating.js.map +0 -1
  193. package/dist/components/calcite-scrim.js +0 -13
  194. package/dist/components/calcite-scrim.js.map +0 -1
  195. package/dist/components/calcite-select.js +0 -13
  196. package/dist/components/calcite-select.js.map +0 -1
  197. package/dist/components/calcite-shell-center-row.js +0 -102
  198. package/dist/components/calcite-shell-center-row.js.map +0 -1
  199. package/dist/components/calcite-shell-panel.js +0 -13
  200. package/dist/components/calcite-shell-panel.js.map +0 -1
  201. package/dist/components/calcite-shell.js +0 -13
  202. package/dist/components/calcite-shell.js.map +0 -1
  203. package/dist/components/calcite-slider.js +0 -13
  204. package/dist/components/calcite-slider.js.map +0 -1
  205. package/dist/components/calcite-sortable-list.js +0 -204
  206. package/dist/components/calcite-sortable-list.js.map +0 -1
  207. package/dist/components/calcite-split-button.js +0 -170
  208. package/dist/components/calcite-split-button.js.map +0 -1
  209. package/dist/components/calcite-stepper-item.js +0 -273
  210. package/dist/components/calcite-stepper-item.js.map +0 -1
  211. package/dist/components/calcite-stepper.js +0 -258
  212. package/dist/components/calcite-stepper.js.map +0 -1
  213. package/dist/components/calcite-switch.js +0 -13
  214. package/dist/components/calcite-switch.js.map +0 -1
  215. package/dist/components/calcite-tab-nav.js +0 -13
  216. package/dist/components/calcite-tab-nav.js.map +0 -1
  217. package/dist/components/calcite-tab-title.js +0 -13
  218. package/dist/components/calcite-tab-title.js.map +0 -1
  219. package/dist/components/calcite-tab.js +0 -13
  220. package/dist/components/calcite-tab.js.map +0 -1
  221. package/dist/components/calcite-tabs.js +0 -13
  222. package/dist/components/calcite-tabs.js.map +0 -1
  223. package/dist/components/calcite-tile-select-group.js +0 -67
  224. package/dist/components/calcite-tile-select-group.js.map +0 -1
  225. package/dist/components/calcite-tile-select.js +0 -268
  226. package/dist/components/calcite-tile-select.js.map +0 -1
  227. package/dist/components/calcite-tile.js +0 -13
  228. package/dist/components/calcite-tile.js.map +0 -1
  229. package/dist/components/calcite-time-picker.js +0 -13
  230. package/dist/components/calcite-time-picker.js.map +0 -1
  231. package/dist/components/calcite-tip-group.js +0 -43
  232. package/dist/components/calcite-tip-group.js.map +0 -1
  233. package/dist/components/calcite-tip-manager.js +0 -225
  234. package/dist/components/calcite-tip-manager.js.map +0 -1
  235. package/dist/components/calcite-tip.js +0 -164
  236. package/dist/components/calcite-tip.js.map +0 -1
  237. package/dist/components/calcite-tooltip-manager.js +0 -59
  238. package/dist/components/calcite-tooltip-manager.js.map +0 -1
  239. package/dist/components/calcite-tooltip.js +0 -13
  240. package/dist/components/calcite-tooltip.js.map +0 -1
  241. package/dist/components/calcite-tree-item.js +0 -13
  242. package/dist/components/calcite-tree-item.js.map +0 -1
  243. package/dist/components/calcite-tree.js +0 -13
  244. package/dist/components/calcite-tree.js.map +0 -1
  245. package/dist/components/calcite-value-list-item.js +0 -13
  246. package/dist/components/calcite-value-list-item.js.map +0 -1
  247. package/dist/components/calcite-value-list.js +0 -13
  248. package/dist/components/calcite-value-list.js.map +0 -1
  249. package/dist/components/check-list.d.ts +0 -11
  250. package/dist/components/check-list.js +0 -13
  251. package/dist/components/check-list.js.map +0 -1
  252. package/dist/components/check-list2.js +0 -128
  253. package/dist/components/check-list2.js.map +0 -1
  254. package/dist/components/checkbox.js +0 -167
  255. package/dist/components/checkbox.js.map +0 -1
  256. package/dist/components/chip.js +0 -172
  257. package/dist/components/chip.js.map +0 -1
  258. package/dist/components/color-picker-hex-input.js +0 -365
  259. package/dist/components/color-picker-hex-input.js.map +0 -1
  260. package/dist/components/color-picker-swatch.js +0 -2036
  261. package/dist/components/color-picker-swatch.js.map +0 -1
  262. package/dist/components/combobox-item.js +0 -184
  263. package/dist/components/combobox-item.js.map +0 -1
  264. package/dist/components/combobox.js +0 -914
  265. package/dist/components/combobox.js.map +0 -1
  266. package/dist/components/conditionalSlot.js +0 -52
  267. package/dist/components/conditionalSlot.js.map +0 -1
  268. package/dist/components/config-buffer-tools.d.ts +0 -11
  269. package/dist/components/config-buffer-tools.js +0 -185
  270. package/dist/components/config-buffer-tools.js.map +0 -1
  271. package/dist/components/config-draw-tools.d.ts +0 -11
  272. package/dist/components/config-draw-tools.js +0 -124
  273. package/dist/components/config-draw-tools.js.map +0 -1
  274. package/dist/components/config-layer-picker.d.ts +0 -11
  275. package/dist/components/config-layer-picker.js +0 -148
  276. package/dist/components/config-layer-picker.js.map +0 -1
  277. package/dist/components/config-pdf-download.d.ts +0 -11
  278. package/dist/components/config-pdf-download.js +0 -157
  279. package/dist/components/config-pdf-download.js.map +0 -1
  280. package/dist/components/date-picker-day.js +0 -113
  281. package/dist/components/date-picker-day.js.map +0 -1
  282. package/dist/components/date-picker-month-header.js +0 -226
  283. package/dist/components/date-picker-month-header.js.map +0 -1
  284. package/dist/components/date-picker-month.js +0 -346
  285. package/dist/components/date-picker-month.js.map +0 -1
  286. package/dist/components/date-picker.js +0 -577
  287. package/dist/components/date-picker.js.map +0 -1
  288. package/dist/components/date.js +0 -182
  289. package/dist/components/date.js.map +0 -1
  290. package/dist/components/debounce.js +0 -489
  291. package/dist/components/debounce.js.map +0 -1
  292. package/dist/components/dom.js +0 -233
  293. package/dist/components/dom.js.map +0 -1
  294. package/dist/components/dropdown.js +0 -507
  295. package/dist/components/dropdown.js.map +0 -1
  296. package/dist/components/filter.js +0 -765
  297. package/dist/components/filter.js.map +0 -1
  298. package/dist/components/floating-ui.js +0 -1787
  299. package/dist/components/floating-ui.js.map +0 -1
  300. package/dist/components/form.js +0 -230
  301. package/dist/components/form.js.map +0 -1
  302. package/dist/components/graph.js +0 -256
  303. package/dist/components/graph.js.map +0 -1
  304. package/dist/components/guid.js +0 -26
  305. package/dist/components/guid.js.map +0 -1
  306. package/dist/components/handle.js +0 -121
  307. package/dist/components/handle.js.map +0 -1
  308. package/dist/components/icon.js +0 -204
  309. package/dist/components/icon.js.map +0 -1
  310. package/dist/components/index.d.ts +0 -48
  311. package/dist/components/index.js +0 -190
  312. package/dist/components/index.js.map +0 -1
  313. package/dist/components/index2.js +0 -201
  314. package/dist/components/index2.js.map +0 -1
  315. package/dist/components/input-message.js +0 -103
  316. package/dist/components/input-message.js.map +0 -1
  317. package/dist/components/input.js +0 -742
  318. package/dist/components/input.js.map +0 -1
  319. package/dist/components/interactive.js +0 -53
  320. package/dist/components/interactive.js.map +0 -1
  321. package/dist/components/interfaces.js +0 -21
  322. package/dist/components/interfaces.js.map +0 -1
  323. package/dist/components/interfaces2.js +0 -23
  324. package/dist/components/interfaces2.js.map +0 -1
  325. package/dist/components/interfaces3.js +0 -72
  326. package/dist/components/interfaces3.js.map +0 -1
  327. package/dist/components/json-editor.d.ts +0 -11
  328. package/dist/components/json-editor.js +0 -13
  329. package/dist/components/json-editor.js.map +0 -1
  330. package/dist/components/json-editor2.js +0 -443
  331. package/dist/components/json-editor2.js.map +0 -1
  332. package/dist/components/key.js +0 -18
  333. package/dist/components/key.js.map +0 -1
  334. package/dist/components/label.js +0 -108
  335. package/dist/components/label.js.map +0 -1
  336. package/dist/components/label2.js +0 -133
  337. package/dist/components/label2.js.map +0 -1
  338. package/dist/components/labelFormats.js +0 -212
  339. package/dist/components/labelFormats.js.map +0 -1
  340. package/dist/components/link.js +0 -125
  341. package/dist/components/link.js.map +0 -1
  342. package/dist/components/list-item.js +0 -151
  343. package/dist/components/list-item.js.map +0 -1
  344. package/dist/components/list.js +0 -85
  345. package/dist/components/list.js.map +0 -1
  346. package/dist/components/loadModules.js +0 -30
  347. package/dist/components/loadModules.js.map +0 -1
  348. package/dist/components/loader.js +0 -118
  349. package/dist/components/loader.js.map +0 -1
  350. package/dist/components/locale.js +0 -414
  351. package/dist/components/locale.js.map +0 -1
  352. package/dist/components/locale2.js +0 -415
  353. package/dist/components/locale2.js.map +0 -1
  354. package/dist/components/map-draw-tools.d.ts +0 -11
  355. package/dist/components/map-draw-tools.js +0 -13
  356. package/dist/components/map-draw-tools.js.map +0 -1
  357. package/dist/components/map-draw-tools2.js +0 -230
  358. package/dist/components/map-draw-tools2.js.map +0 -1
  359. package/dist/components/map-layer-picker.d.ts +0 -11
  360. package/dist/components/map-layer-picker.js +0 -13
  361. package/dist/components/map-layer-picker.js.map +0 -1
  362. package/dist/components/map-layer-picker2.js +0 -190
  363. package/dist/components/map-layer-picker2.js.map +0 -1
  364. package/dist/components/map-search.d.ts +0 -11
  365. package/dist/components/map-search.js +0 -157
  366. package/dist/components/map-search.js.map +0 -1
  367. package/dist/components/map-select-tools.d.ts +0 -11
  368. package/dist/components/map-select-tools.js +0 -13
  369. package/dist/components/map-select-tools.js.map +0 -1
  370. package/dist/components/map-select-tools2.js +0 -555
  371. package/dist/components/map-select-tools2.js.map +0 -1
  372. package/dist/components/mapViewUtils.js +0 -131
  373. package/dist/components/mapViewUtils.js.map +0 -1
  374. package/dist/components/math.js +0 -26
  375. package/dist/components/math.js.map +0 -1
  376. package/dist/components/nonChromiumPlatformUtils.js +0 -505
  377. package/dist/components/nonChromiumPlatformUtils.js.map +0 -1
  378. package/dist/components/notice.js +0 -194
  379. package/dist/components/notice.js.map +0 -1
  380. package/dist/components/observers.js +0 -58
  381. package/dist/components/observers.js.map +0 -1
  382. package/dist/components/openCloseComponent.js +0 -58
  383. package/dist/components/openCloseComponent.js.map +0 -1
  384. package/dist/components/option.js +0 -111
  385. package/dist/components/option.js.map +0 -1
  386. package/dist/components/panel.js +0 -461
  387. package/dist/components/panel.js.map +0 -1
  388. package/dist/components/pdf-download.d.ts +0 -11
  389. package/dist/components/pdf-download.js +0 -13
  390. package/dist/components/pdf-download.js.map +0 -1
  391. package/dist/components/pdf-download2.js +0 -243
  392. package/dist/components/pdf-download2.js.map +0 -1
  393. package/dist/components/pick-list-item.js +0 -257
  394. package/dist/components/pick-list-item.js.map +0 -1
  395. package/dist/components/popover.js +0 -502
  396. package/dist/components/popover.js.map +0 -1
  397. package/dist/components/progress.js +0 -62
  398. package/dist/components/progress.js.map +0 -1
  399. package/dist/components/public-notification.d.ts +0 -11
  400. package/dist/components/public-notification.js +0 -784
  401. package/dist/components/public-notification.js.map +0 -1
  402. package/dist/components/publicNotificationStore.js +0 -40
  403. package/dist/components/publicNotificationStore.js.map +0 -1
  404. package/dist/components/queryUtils.js +0 -163
  405. package/dist/components/queryUtils.js.map +0 -1
  406. package/dist/components/radio-group-item.js +0 -103
  407. package/dist/components/radio-group-item.js.map +0 -1
  408. package/dist/components/radio-group.js +0 -237
  409. package/dist/components/radio-group.js.map +0 -1
  410. package/dist/components/refine-selection-tools.d.ts +0 -11
  411. package/dist/components/refine-selection-tools.js +0 -13
  412. package/dist/components/refine-selection-tools.js.map +0 -1
  413. package/dist/components/refine-selection-tools2.js +0 -500
  414. package/dist/components/refine-selection-tools2.js.map +0 -1
  415. package/dist/components/refine-selection.d.ts +0 -11
  416. package/dist/components/refine-selection.js +0 -13
  417. package/dist/components/refine-selection.js.map +0 -1
  418. package/dist/components/refine-selection2.js +0 -369
  419. package/dist/components/refine-selection2.js.map +0 -1
  420. package/dist/components/resources.js +0 -26
  421. package/dist/components/resources.js.map +0 -1
  422. package/dist/components/resources2.js +0 -23
  423. package/dist/components/resources2.js.map +0 -1
  424. package/dist/components/resources3.js +0 -40
  425. package/dist/components/resources3.js.map +0 -1
  426. package/dist/components/scrim.js +0 -85
  427. package/dist/components/scrim.js.map +0 -1
  428. package/dist/components/select.js +0 -261
  429. package/dist/components/select.js.map +0 -1
  430. package/dist/components/shared-list-render.js +0 -321
  431. package/dist/components/shared-list-render.js.map +0 -1
  432. package/dist/components/shell-panel.js +0 -283
  433. package/dist/components/shell-panel.js.map +0 -1
  434. package/dist/components/shell.js +0 -123
  435. package/dist/components/shell.js.map +0 -1
  436. package/dist/components/slider.js +0 -898
  437. package/dist/components/slider.js.map +0 -1
  438. package/dist/components/solution-configuration.d.ts +0 -11
  439. package/dist/components/solution-configuration.js +0 -2225
  440. package/dist/components/solution-configuration.js.map +0 -1
  441. package/dist/components/solution-contents.d.ts +0 -11
  442. package/dist/components/solution-contents.js +0 -13
  443. package/dist/components/solution-contents.js.map +0 -1
  444. package/dist/components/solution-contents2.js +0 -130
  445. package/dist/components/solution-contents2.js.map +0 -1
  446. package/dist/components/solution-item-details.d.ts +0 -11
  447. package/dist/components/solution-item-details.js +0 -13
  448. package/dist/components/solution-item-details.js.map +0 -1
  449. package/dist/components/solution-item-details2.js +0 -236
  450. package/dist/components/solution-item-details2.js.map +0 -1
  451. package/dist/components/solution-item-icon.d.ts +0 -11
  452. package/dist/components/solution-item-icon.js +0 -13
  453. package/dist/components/solution-item-icon.js.map +0 -1
  454. package/dist/components/solution-item-icon2.js +0 -344
  455. package/dist/components/solution-item-icon2.js.map +0 -1
  456. package/dist/components/solution-item-sharing.d.ts +0 -11
  457. package/dist/components/solution-item-sharing.js +0 -13
  458. package/dist/components/solution-item-sharing.js.map +0 -1
  459. package/dist/components/solution-item-sharing2.js +0 -169
  460. package/dist/components/solution-item-sharing2.js.map +0 -1
  461. package/dist/components/solution-item.d.ts +0 -11
  462. package/dist/components/solution-item.js +0 -13
  463. package/dist/components/solution-item.js.map +0 -1
  464. package/dist/components/solution-item2.js +0 -317
  465. package/dist/components/solution-item2.js.map +0 -1
  466. package/dist/components/solution-organization-variables.d.ts +0 -11
  467. package/dist/components/solution-organization-variables.js +0 -13
  468. package/dist/components/solution-organization-variables.js.map +0 -1
  469. package/dist/components/solution-organization-variables2.js +0 -134
  470. package/dist/components/solution-organization-variables2.js.map +0 -1
  471. package/dist/components/solution-resource-item.d.ts +0 -11
  472. package/dist/components/solution-resource-item.js +0 -13
  473. package/dist/components/solution-resource-item.js.map +0 -1
  474. package/dist/components/solution-resource-item2.js +0 -358
  475. package/dist/components/solution-resource-item2.js.map +0 -1
  476. package/dist/components/solution-spatial-ref.d.ts +0 -11
  477. package/dist/components/solution-spatial-ref.js +0 -13
  478. package/dist/components/solution-spatial-ref.js.map +0 -1
  479. package/dist/components/solution-spatial-ref2.js +0 -21448
  480. package/dist/components/solution-spatial-ref2.js.map +0 -1
  481. package/dist/components/solution-store.js +0 -4094
  482. package/dist/components/solution-store.js.map +0 -1
  483. package/dist/components/solution-template-data.d.ts +0 -11
  484. package/dist/components/solution-template-data.js +0 -13
  485. package/dist/components/solution-template-data.js.map +0 -1
  486. package/dist/components/solution-template-data2.js +0 -235
  487. package/dist/components/solution-template-data2.js.map +0 -1
  488. package/dist/components/solution-variables.d.ts +0 -11
  489. package/dist/components/solution-variables.js +0 -13
  490. package/dist/components/solution-variables.js.map +0 -1
  491. package/dist/components/solution-variables2.js +0 -152
  492. package/dist/components/solution-variables2.js.map +0 -1
  493. package/dist/components/sortable.esm.js +0 -3028
  494. package/dist/components/sortable.esm.js.map +0 -1
  495. package/dist/components/store-manager.d.ts +0 -11
  496. package/dist/components/store-manager.js +0 -85
  497. package/dist/components/store-manager.js.map +0 -1
  498. package/dist/components/switch.js +0 -141
  499. package/dist/components/switch.js.map +0 -1
  500. package/dist/components/tab-nav.js +0 -243
  501. package/dist/components/tab-nav.js.map +0 -1
  502. package/dist/components/tab-title.js +0 -278
  503. package/dist/components/tab-title.js.map +0 -1
  504. package/dist/components/tab.js +0 -156
  505. package/dist/components/tab.js.map +0 -1
  506. package/dist/components/tabs.js +0 -190
  507. package/dist/components/tabs.js.map +0 -1
  508. package/dist/components/tile.js +0 -131
  509. package/dist/components/tile.js.map +0 -1
  510. package/dist/components/time-picker.js +0 -945
  511. package/dist/components/time-picker.js.map +0 -1
  512. package/dist/components/tooltip.js +0 -401
  513. package/dist/components/tooltip.js.map +0 -1
  514. package/dist/components/tree-item.js +0 -296
  515. package/dist/components/tree-item.js.map +0 -1
  516. package/dist/components/tree.js +0 -329
  517. package/dist/components/tree.js.map +0 -1
  518. package/dist/components/utils.js +0 -121
  519. package/dist/components/utils.js.map +0 -1
  520. package/dist/components/utils2.js +0 -53
  521. package/dist/components/utils2.js.map +0 -1
  522. package/dist/components/value-list-item.js +0 -206
  523. package/dist/components/value-list-item.js.map +0 -1
  524. package/dist/components/value-list.js +0 -335
  525. package/dist/components/value-list.js.map +0 -1
  526. package/dist/esm/solution-store-b3c65467.js.map +0 -1
  527. package/dist/solutions-components/p-542189bc.entry.js.map +0 -1
  528. package/dist/solutions-components/p-638738f2.entry.js.map +0 -1
  529. package/dist/solutions-components/p-7e8985f2.entry.js.map +0 -1
  530. package/dist/solutions-components/p-b25f6ebe.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"file":"calcite-shell-panel.calcite-tab.calcite-tab-nav.calcite-tab-title.calcite-tabs.calcite-value-list.calcite-value-list-item.json-editor.solution-item-details.solution-item-sharing.solution-organization-variables.solution-resource-item.solution-template-data.solution-variables.entry.esm.js","mappings":"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","names":["CSS","SLOTS","PICK_LIST_SLOTS","ICON_TYPES"],"sources":["./node_modules/@esri/calcite-components/dist/collection/components/shell-panel/resources.js","./node_modules/@esri/calcite-components/dist/collection/components/shell-panel/shell-panel.css?tag=calcite-shell-panel&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/shell-panel/shell-panel.js","./node_modules/@esri/calcite-components/dist/collection/components/tab/tab.css?tag=calcite-tab&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/tab/tab.js","./node_modules/@esri/calcite-components/dist/collection/components/tab-nav/tab-nav.css?tag=calcite-tab-nav&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/tab-nav/tab-nav.js","./node_modules/@esri/calcite-components/dist/collection/components/tab-title/tab-title.css?tag=calcite-tab-title&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/tab-title/tab-title.js","./node_modules/@esri/calcite-components/dist/collection/components/tabs/resources.js","./node_modules/@esri/calcite-components/dist/collection/components/tabs/tabs.css?tag=calcite-tabs&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/tabs/tabs.js","./node_modules/@esri/calcite-components/dist/collection/components/value-list/resources.js","./node_modules/@esri/calcite-components/dist/collection/components/value-list/utils.js","./node_modules/@esri/calcite-components/dist/collection/components/value-list/value-list.css?tag=calcite-value-list&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/value-list/value-list.js","./node_modules/@esri/calcite-components/dist/collection/components/value-list-item/resources.js","./node_modules/@esri/calcite-components/dist/collection/components/value-list-item/value-list-item.css?tag=calcite-value-list-item&encapsulation=shadow","./node_modules/@esri/calcite-components/dist/collection/components/value-list-item/value-list-item.js","./src/components/json-editor/json-editor.scss?tag=json-editor","./src/components/json-editor/json-editor.tsx","./src/components/solution-item-details/solution-item-details.scss?tag=solution-item-details","./src/components/solution-item-details/solution-item-details.tsx","./src/components/solution-item-sharing/solution-item-sharing.scss?tag=solution-item-sharing&encapsulation=shadow","./src/components/solution-item-sharing/solution-item-sharing.tsx","./src/components/solution-organization-variables/solution-organization-variables.scss?tag=solution-organization-variables&encapsulation=shadow","./src/components/solution-organization-variables/solution-organization-variables.tsx","./src/components/solution-resource-item/solution-resource-item.scss?tag=solution-resource-item&encapsulation=shadow","./src/components/solution-resource-item/solution-resource-item.tsx","./src/components/solution-template-data/solution-template-data.scss?tag=solution-template-data","./src/components/solution-template-data/solution-template-data.tsx","./src/components/solution-variables/solution-variables.scss?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 * v1.0.0-beta.97\n */\nexport const CSS = {\n container: \"container\",\n content: \"content\",\n contentHeader: \"content__header\",\n contentBody: \"content__body\",\n contentDetached: \"content--detached\",\n separator: \"separator\"\n};\nexport const SLOTS = {\n actionBar: \"action-bar\",\n header: \"header\"\n};\nexport const TEXT = {\n resize: \"Resize\"\n};\n","/* mixins & extensions */\n@keyframes in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n:root {\n --calcite-animation-timing: calc(150ms * var(--calcite-internal-duration-factor));\n --calcite-internal-duration-factor: var(--calcite-duration-factor, 1);\n --calcite-internal-animation-timing-fast: calc(100ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-medium: calc(200ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-slow: calc(300ms * var(--calcite-internal-duration-factor));\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@media (prefers-reduced-motion: reduce) {\n :root {\n --calcite-internal-duration-factor: 0.01;\n }\n}\n/**\n* Currently only used in Checkbox.\n*/\n:root {\n --calcite-floating-ui-transition: var(--calcite-animation-timing);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host {\n pointer-events: none;\n display: flex;\n flex: 0 1 auto;\n align-items: stretch;\n --calcite-shell-panel-detached-max-height: unset;\n}\n\n.container {\n pointer-events: none;\n box-sizing: border-box;\n display: flex;\n flex: 1 1 auto;\n align-items: stretch;\n background-color: transparent;\n font-size: var(--calcite-font-size--1);\n color: var(--calcite-ui-text-2);\n}\n.container * {\n box-sizing: border-box;\n}\n\n:host(:hover) .separator:not(:hover):not(:focus), \n:host(:focus-within) .separator:not(:hover):not(:focus) {\n opacity: 1;\n background-color: var(--calcite-ui-border-3);\n}\n\n.separator {\n pointer-events: auto;\n position: absolute;\n inset-block: 0px;\n display: flex;\n block-size: 100%;\n inline-size: 0.125rem;\n background-color: transparent;\n opacity: 0;\n transition: all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;\n cursor: col-resize;\n outline: none;\n}\n.separator:hover {\n opacity: 1;\n background-color: var(--calcite-ui-border-2);\n}\n.separator:focus {\n background-color: var(--calcite-ui-brand);\n opacity: 1;\n}\n\n:host([position=start]) .separator {\n inset-inline-end: -2px;\n}\n\n:host([position=end]) .separator {\n inset-inline-start: -2px;\n}\n\n::slotted(calcite-panel), \n::slotted(calcite-flow) {\n block-size: 100%;\n inline-size: 100%;\n flex: 1 1 auto;\n max-block-size: unset;\n max-inline-size: unset;\n}\n\n::slotted(.calcite-match-height) {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.content {\n pointer-events: auto;\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: stretch;\n align-self: stretch;\n background-color: var(--calcite-ui-background);\n padding: 0px;\n inline-size: var(--calcite-shell-panel-width);\n max-inline-size: var(--calcite-shell-panel-max-width);\n min-inline-size: var(--calcite-shell-panel-min-width);\n transition: max-block-size var(--calcite-animation-timing), max-inline-size var(--calcite-animation-timing);\n}\n\n.content__header {\n display: flex;\n flex: 0 1 auto;\n flex-direction: column;\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 margin-inline: 0.5rem;\n margin-block: 0.5rem auto;\n block-size: auto;\n overflow: hidden;\n border-radius: 0.25rem;\n --tw-shadow: 0 4px 8px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);\n --tw-shadow-colored: 0 4px 8px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n max-block-size: var(--calcite-shell-panel-detached-max-height);\n}\n.content--detached ::slotted(calcite-panel),\n.content--detached ::slotted(calcite-flow) {\n max-block-size: 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:not([dismissed])) {\n border-width: 1px;\n border-style: solid;\n border-color: var(--calcite-ui-border-3);\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 * v1.0.0-beta.97\n */\nimport { h, forceUpdate } from \"@stencil/core\";\nimport { CSS, SLOTS, TEXT } from \"./resources\";\nimport { getSlotted, getElementDir, isPrimaryPointerButton } from \"../../utils/dom\";\nimport { clamp } from \"../../utils/math\";\nimport { connectConditionalSlotComponent, disconnectConditionalSlotComponent } from \"../../utils/conditionalSlot\";\n/**\n * @slot - A slot for adding content to the component.\n * @slot action-bar - A slot for adding a `calcite-action-bar` to the component.\n */\nexport class ShellPanel {\n constructor() {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n /**\n * When `true`, hides the component's content area.\n */\n this.collapsed = false;\n /**\n * When `true`, the content area displays like a floating panel.\n */\n this.detached = false;\n /**\n * When `detached`, specifies the maximum height of the component.\n */\n this.detachedHeightScale = \"l\";\n /**\n * Specifies the width of the component's content area.\n */\n this.widthScale = \"m\";\n /**\n * Accessible name for the resize separator.\n *\n * @default \"Resize\"\n */\n this.intlResize = TEXT.resize;\n /**\n * When `true` and not `detached`, the component's content area is resizable.\n */\n this.resizable = false;\n this.contentWidth = null;\n this.initialContentWidth = null;\n this.initialClientX = null;\n this.contentWidthMax = null;\n this.contentWidthMin = null;\n this.step = 1;\n this.stepMultiplier = 10;\n this.storeContentEl = (contentEl) => {\n this.contentEl = contentEl;\n };\n this.getKeyAdjustedWidth = (event) => {\n const { key } = event;\n const { el, step, stepMultiplier, contentWidthMin, contentWidthMax, initialContentWidth, position } = this;\n const multipliedStep = step * stepMultiplier;\n const MOVEMENT_KEYS = [\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Home\",\n \"End\",\n \"PageUp\",\n \"PageDown\"\n ];\n if (MOVEMENT_KEYS.indexOf(key) > -1) {\n event.preventDefault();\n }\n const dir = getElementDir(el);\n const directionKeys = [\"ArrowLeft\", \"ArrowRight\"];\n const directionFactor = dir === \"rtl\" && directionKeys.includes(key) ? -1 : 1;\n const increaseKeys = key === \"ArrowUp\" ||\n (position === \"end\" ? key === directionKeys[0] : key === directionKeys[1]);\n if (increaseKeys) {\n const stepValue = event.shiftKey ? multipliedStep : step;\n return initialContentWidth + directionFactor * stepValue;\n }\n const decreaseKeys = key === \"ArrowDown\" ||\n (position === \"end\" ? key === directionKeys[1] : key === directionKeys[0]);\n if (decreaseKeys) {\n const stepValue = event.shiftKey ? multipliedStep : step;\n return initialContentWidth - directionFactor * stepValue;\n }\n if (typeof contentWidthMin === \"number\" && key === \"Home\") {\n return contentWidthMin;\n }\n if (typeof contentWidthMax === \"number\" && key === \"End\") {\n return contentWidthMax;\n }\n if (key === \"PageDown\") {\n return initialContentWidth - multipliedStep;\n }\n if (key === \"PageUp\") {\n return initialContentWidth + multipliedStep;\n }\n return null;\n };\n this.separatorKeyDown = (event) => {\n this.setInitialContentWidth();\n const width = this.getKeyAdjustedWidth(event);\n if (typeof width === \"number\") {\n this.setContentWidth(width);\n }\n };\n this.separatorPointerMove = (event) => {\n event.preventDefault();\n const { el, initialContentWidth, position, initialClientX } = this;\n const offset = event.clientX - initialClientX;\n const dir = getElementDir(el);\n const adjustmentDirection = dir === \"rtl\" ? -1 : 1;\n const adjustedOffset = position === \"end\" ? -adjustmentDirection * offset : adjustmentDirection * offset;\n const width = initialContentWidth + adjustedOffset;\n this.setContentWidth(width);\n };\n this.separatorPointerUp = (event) => {\n if (!isPrimaryPointerButton(event)) {\n return;\n }\n event.preventDefault();\n document.removeEventListener(\"pointerup\", this.separatorPointerUp);\n document.removeEventListener(\"pointermove\", this.separatorPointerMove);\n };\n this.setInitialContentWidth = () => {\n var _a;\n this.initialContentWidth = (_a = this.contentEl) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width;\n };\n this.separatorPointerDown = (event) => {\n if (!isPrimaryPointerButton(event)) {\n return;\n }\n event.preventDefault();\n const { separatorEl } = this;\n separatorEl && document.activeElement !== separatorEl && separatorEl.focus();\n this.setInitialContentWidth();\n this.initialClientX = event.clientX;\n document.addEventListener(\"pointerup\", this.separatorPointerUp);\n document.addEventListener(\"pointermove\", this.separatorPointerMove);\n };\n this.connectSeparator = (separatorEl) => {\n this.disconnectSeparator();\n this.separatorEl = separatorEl;\n separatorEl.addEventListener(\"pointerdown\", this.separatorPointerDown);\n };\n this.disconnectSeparator = () => {\n var _a;\n (_a = this.separatorEl) === null || _a === void 0 ? void 0 : _a.removeEventListener(\"pointerdown\", this.separatorPointerDown);\n };\n }\n watchHandler() {\n this.calciteShellPanelToggle.emit();\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n connectedCallback() {\n connectConditionalSlotComponent(this);\n }\n disconnectedCallback() {\n disconnectConditionalSlotComponent(this);\n this.disconnectSeparator();\n }\n componentDidLoad() {\n this.updateAriaValues();\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, key: \"header\" }, h(\"slot\", { name: SLOTS.header }))) : null;\n }\n render() {\n const { collapsed, detached, position, initialContentWidth, contentWidth, contentWidthMax, contentWidthMin, intlResize, resizable } = this;\n const allowResizing = !detached && resizable;\n const contentNode = (h(\"div\", { class: { [CSS.content]: true, [CSS.contentDetached]: detached }, hidden: collapsed, key: \"content\", ref: this.storeContentEl, style: allowResizing && contentWidth ? { width: `${contentWidth}px` } : null }, this.renderHeader(), h(\"div\", { class: CSS.contentBody }, h(\"slot\", null))));\n const separatorNode = allowResizing ? (h(\"div\", { \"aria-label\": intlResize, \"aria-orientation\": \"horizontal\", \"aria-valuemax\": contentWidthMax, \"aria-valuemin\": contentWidthMin, \"aria-valuenow\": contentWidth !== null && contentWidth !== void 0 ? contentWidth : initialContentWidth, class: CSS.separator, key: \"separator\", onKeyDown: this.separatorKeyDown, ref: this.connectSeparator, role: \"separator\", tabIndex: 0, \"touch-action\": \"none\" })) : null;\n const actionBarNode = h(\"slot\", { key: \"action-bar\", name: SLOTS.actionBar });\n const mainNodes = [actionBarNode, contentNode, separatorNode];\n if (position === \"end\") {\n mainNodes.reverse();\n }\n return h(\"div\", { class: { [CSS.container]: true } }, mainNodes);\n }\n // --------------------------------------------------------------------------\n //\n // private Methods\n //\n // --------------------------------------------------------------------------\n setContentWidth(width) {\n const { contentWidthMax, contentWidthMin } = this;\n const roundedWidth = Math.round(width);\n this.contentWidth =\n typeof contentWidthMax === \"number\" && typeof contentWidthMin === \"number\"\n ? clamp(roundedWidth, contentWidthMin, contentWidthMax)\n : roundedWidth;\n }\n updateAriaValues() {\n const { contentEl } = this;\n const computedStyle = contentEl && getComputedStyle(contentEl);\n if (!computedStyle) {\n return;\n }\n const max = parseInt(computedStyle.getPropertyValue(\"max-width\"), 10);\n const min = parseInt(computedStyle.getPropertyValue(\"min-width\"), 10);\n const valueNow = parseInt(computedStyle.getPropertyValue(\"width\"), 10);\n if (typeof valueNow === \"number\" && !isNaN(valueNow)) {\n this.initialContentWidth = valueNow;\n }\n if (typeof max === \"number\" && !isNaN(max)) {\n this.contentWidthMax = max;\n }\n if (typeof min === \"number\" && !isNaN(min)) {\n this.contentWidthMin = min;\n }\n forceUpdate(this);\n }\n static get is() { return \"calcite-shell-panel\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"shell-panel.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"shell-panel.css\"]\n };\n }\n static get properties() {\n 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\": \"When `true`, hides the component's content area.\"\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\": \"When `true`, the content area displays 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\": \"When `detached`, specifies the maximum height of the component.\"\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\": \"Specifies the width of the component's 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\": \"Specifies the component's position. Will be flipped when the element direction is right-to-left (`\\\"rtl\\\"`).\"\n },\n \"attribute\": \"position\",\n \"reflect\": true\n },\n \"intlResize\": {\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 \"name\": \"default\",\n \"text\": \"\\\"Resize\\\"\"\n }],\n \"text\": \"Accessible name for the resize separator.\"\n },\n \"attribute\": \"intl-resize\",\n \"reflect\": false,\n \"defaultValue\": \"TEXT.resize\"\n },\n \"resizable\": {\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` and not `detached`, the component's content area is resizable.\"\n },\n \"attribute\": \"resizable\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"contentWidth\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"calciteShellPanelToggle\",\n \"name\": \"calciteShellPanelToggle\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"use a `ResizeObserver` on the component to listen for changes to its size.\"\n }],\n \"text\": \"Emitted when collapse has been toggled.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"collapsed\",\n \"methodName\": \"watchHandler\"\n }];\n }\n}\n","/* mixins & extensions */\n@keyframes in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n:root {\n --calcite-animation-timing: calc(150ms * var(--calcite-internal-duration-factor));\n --calcite-internal-duration-factor: var(--calcite-duration-factor, 1);\n --calcite-internal-animation-timing-fast: calc(100ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-medium: calc(200ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-slow: calc(300ms * var(--calcite-internal-duration-factor));\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@media (prefers-reduced-motion: reduce) {\n :root {\n --calcite-internal-duration-factor: 0.01;\n }\n}\n/**\n* Currently only used in Checkbox.\n*/\n:root {\n --calcite-floating-ui-transition: var(--calcite-animation-timing);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([selected]) section, \n:host([selected]) .container {\n display: block;\n}\n\n:host {\n display: none;\n block-size: 100%;\n inline-size: 100%;\n}\n\n:host([selected]) {\n display: block;\n block-size: 100%;\n inline-size: 100%;\n overflow: auto;\n}\n\nsection, \n.container {\n display: none;\n block-size: 100%;\n inline-size: 100%;\n}\n\n:host([scale=s]) {\n padding-block: 0.25rem;\n font-size: var(--calcite-font-size--2);\n line-height: 1rem;\n}\n\n:host([scale=m]) {\n padding-block: 0.5rem;\n font-size: var(--calcite-font-size--1);\n line-height: 1rem;\n}\n\n:host([scale=l]) {\n padding-block: 0.75rem;\n font-size: var(--calcite-font-size-0);\n line-height: 1.25rem;\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 * v1.0.0-beta.97\n */\nimport { h, Host } from \"@stencil/core\";\nimport { guid } from \"../../utils/guid\";\nimport { nodeListToArray } from \"../../utils/dom\";\n/**\n * @slot - A slot for adding content to the component.\n */\nexport class Tab {\n constructor() {\n /**\n * When `true`, the component's contents are selected.\n *\n * Only one tab can be selected within the `calcite-tabs` parent.\n *\n * @deprecated Use `selected` instead.\n */\n this.active = false;\n /**\n * When `true`, the component's contents are selected.\n *\n * Only one tab can be selected within the `calcite-tabs` parent.\n */\n this.selected = false;\n /**\n * @internal\n */\n this.scale = \"m\";\n this.guid = `calcite-tab-title-${guid()}`;\n }\n activeHandler(value) {\n this.selected = value;\n }\n selectedHandler(value) {\n this.active = value;\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n render() {\n const id = this.el.id || this.guid;\n return (h(Host, { \"aria-labelledby\": this.labeledBy, id: id }, h(\"div\", { class: \"container\", role: \"tabpanel\", tabIndex: this.selected ? 0 : -1 }, h(\"section\", null, h(\"slot\", null)))));\n }\n connectedCallback() {\n this.parentTabsEl = this.el.closest(\"calcite-tabs\");\n const isSelected = this.selected || this.active;\n if (isSelected) {\n this.activeHandler(isSelected);\n this.selectedHandler(isSelected);\n }\n }\n componentDidLoad() {\n this.calciteInternalTabRegister.emit();\n }\n componentWillRender() {\n var _a;\n this.scale = (_a = this.parentTabsEl) === 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 internalTabChangeHandler(event) {\n const targetTabsEl = event\n .composedPath()\n .find((el) => el.tagName === \"CALCITE-TABS\");\n // to allow `<calcite-tabs>` to be nested we need to make sure this\n // `calciteTabChange` event was actually fired from a within the same\n // `<calcite-tabs>` that is the a parent of this tab.\n if (targetTabsEl !== this.parentTabsEl) {\n return;\n }\n if (this.tab) {\n this.selected = this.tab === event.detail.tab;\n }\n else {\n this.getTabIndex().then((index) => {\n this.selected = index === event.detail.tab;\n });\n }\n event.stopPropagation();\n }\n //--------------------------------------------------------------------------\n //\n // Public Methods\n //\n //--------------------------------------------------------------------------\n /**\n * Returns the index of the component item within the tab array.\n */\n async getTabIndex() {\n return Array.prototype.indexOf.call(nodeListToArray(this.el.parentElement.children).filter((el) => el.matches(\"calcite-tab\")), this.el);\n }\n //--------------------------------------------------------------------------\n //\n // Private Methods\n //\n //--------------------------------------------------------------------------\n /**\n * @param tabIds\n * @param titleIds\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() {\n return {\n \"$\": [\"tab.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"tab.css\"]\n };\n }\n static get properties() {\n 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\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies a unique name for the component.\\n\\nWhen specified, use the same value on the `calcite-tab-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 \"name\": \"deprecated\",\n \"text\": \"Use `selected` instead.\"\n }],\n \"text\": \"When `true`, the component's contents are selected.\\n\\nOnly one tab can be selected within the `calcite-tabs` parent.\"\n },\n \"attribute\": \"active\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"selected\": {\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\": \"When `true`, the component's contents are selected.\\n\\nOnly one tab can be selected within the `calcite-tabs` parent.\"\n },\n \"attribute\": \"selected\",\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\": undefined\n }],\n \"text\": \"\"\n },\n \"attribute\": \"scale\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"m\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"labeledBy\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"calciteInternalTabRegister\",\n \"name\": \"calciteInternalTabRegister\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n 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\": \"Returns the index of the component item 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 \"name\": \"param\",\n \"text\": \"tabIds\"\n }],\n \"text\": \"\"\n }, {\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"titleIds\"\n }],\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\": \"param\",\n \"text\": \"tabIds\"\n }, {\n \"name\": \"param\",\n \"text\": \"titleIds\"\n }, {\n \"name\": \"internal\",\n \"text\": undefined\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"active\",\n \"methodName\": \"activeHandler\"\n }, {\n \"propName\": \"selected\",\n \"methodName\": \"selectedHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"calciteInternalTabChange\",\n \"method\": \"internalTabChangeHandler\",\n \"target\": \"body\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n","/* mixins & extensions */\n@keyframes in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n:root {\n --calcite-animation-timing: calc(150ms * var(--calcite-internal-duration-factor));\n --calcite-internal-duration-factor: var(--calcite-duration-factor, 1);\n --calcite-internal-animation-timing-fast: calc(100ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-medium: calc(200ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-slow: calc(300ms * var(--calcite-internal-duration-factor));\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@media (prefers-reduced-motion: reduce) {\n :root {\n --calcite-internal-duration-factor: 0.01;\n }\n}\n/**\n* Currently only used in Checkbox.\n*/\n:root {\n --calcite-floating-ui-transition: var(--calcite-animation-timing);\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-block-size: 1.5rem;\n}\n\n:host([scale=m]) {\n min-block-size: 2rem;\n}\n\n:host([scale=l]) {\n min-block-size: 2.75rem;\n}\n\n.tab-nav {\n display: flex;\n inline-size: 100%;\n justify-content: flex-start;\n overflow: auto;\n}\n\n.tab-nav-active-indicator-container {\n position: absolute;\n inset-inline: 0px;\n inset-block-end: 0px;\n block-size: 0.125rem;\n inline-size: 100%;\n overflow: hidden;\n}\n\n.tab-nav-active-indicator {\n position: absolute;\n inset-block-end: 0px;\n display: block;\n block-size: 0.125rem;\n background-color: var(--calcite-ui-brand);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n:host([position=below]) .tab-nav-active-indicator {\n inset-block-end: unset;\n inset-block-start: 0px;\n}\n\n:host([position=bottom]) .tab-nav-active-indicator {\n inset-block-end: unset;\n inset-block-start: 0px;\n}\n\n:host([position=below]) .tab-nav-active-indicator-container {\n inset-block-start: 0px;\n inset-block-end: unset;\n}\n\n:host([position=bottom]) .tab-nav-active-indicator-container {\n inset-block-end: unset;\n inset-block-start: 0px;\n}\n\n:host([bordered]) .tab-nav-active-indicator-container {\n inset-block-end: unset;\n}\n\n:host([bordered][position=below]) .tab-nav-active-indicator-container {\n inset-block-end: 0;\n inset-block-start: unset;\n}\n\n:host([bordered][position=bottom]) .tab-nav-active-indicator-container {\n inset-block-end: 0;\n inset-block-start: unset;\n}\n\n@media (forced-colors: active) {\n .tab-nav-active-indicator {\n background-color: highlight;\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 * v1.0.0-beta.97\n */\nimport { h, Host } from \"@stencil/core\";\nimport { getElementDir, filterDirectChildren } from \"../../utils/dom\";\nimport { createObserver } from \"../../utils/observers\";\n/**\n * @slot - A slot for adding `calcite-tab-title`s.\n */\nexport class TabNav {\n constructor() {\n /**\n * @internal\n */\n this.scale = \"m\";\n /**\n * @internal\n */\n this.layout = \"inline\";\n /**\n * @internal\n */\n this.position = \"bottom\";\n /**\n * @internal\n */\n this.bordered = false;\n this.animationActiveDuration = 0.3;\n this.resizeObserver = createObserver(\"resize\", () => {\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 //--------------------------------------------------------------------------\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.calciteInternalTabChange.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 connectedCallback() {\n var _a;\n this.parentTabsEl = this.el.closest(\"calcite-tabs\");\n (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el);\n }\n disconnectedCallback() {\n var _a;\n (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\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 }\n }\n componentWillRender() {\n const { parentTabsEl } = this;\n this.layout = parentTabsEl === null || parentTabsEl === void 0 ? void 0 : parentTabsEl.layout;\n this.position = parentTabsEl === null || parentTabsEl === void 0 ? void 0 : parentTabsEl.position;\n this.scale = parentTabsEl === null || parentTabsEl === void 0 ? void 0 : parentTabsEl.scale;\n this.bordered = parentTabsEl === null || parentTabsEl === void 0 ? void 0 : parentTabsEl.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.calciteInternalTabChange.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\" }, h(\"div\", { class: \"tab-nav\", onScroll: this.handleContainerScroll, ref: (el) => (this.tabNavEl = el) }, h(\"div\", { class: \"tab-nav-active-indicator-container\", ref: (el) => (this.activeIndicatorContainerEl = el) }, h(\"div\", { class: \"tab-nav-active-indicator\", ref: (el) => (this.activeIndicatorEl = el), style: indicatorStyle })), h(\"slot\", null))));\n }\n //--------------------------------------------------------------------------\n //\n // Event Listeners\n //\n //--------------------------------------------------------------------------\n focusPreviousTabHandler(event) {\n const currentIndex = this.getIndexOfTabTitle(event.target, this.enabledTabTitles);\n const previousTab = this.enabledTabTitles[currentIndex - 1] ||\n this.enabledTabTitles[this.enabledTabTitles.length - 1];\n previousTab === null || previousTab === void 0 ? void 0 : previousTab.focus();\n event.stopPropagation();\n event.preventDefault();\n }\n focusNextTabHandler(event) {\n const currentIndex = this.getIndexOfTabTitle(event.target, this.enabledTabTitles);\n const nextTab = this.enabledTabTitles[currentIndex + 1] || this.enabledTabTitles[0];\n nextTab === null || nextTab === void 0 ? void 0 : nextTab.focus();\n event.stopPropagation();\n event.preventDefault();\n }\n internalActivateTabHandler(event) {\n this.selectedTab = event.detail.tab\n ? event.detail.tab\n : this.getIndexOfTabTitle(event.target);\n event.stopPropagation();\n event.preventDefault();\n }\n activateTabHandler(event) {\n this.calciteTabChange.emit({\n tab: this.selectedTab\n });\n event.stopPropagation();\n event.preventDefault();\n }\n /**\n * Check for active tabs on register and update selected\n *\n * @param event\n */\n updateTabTitles(event) {\n if (event.target.active) {\n this.selectedTab = event.detail;\n }\n }\n globalInternalTabChangeHandler(event) {\n if (this.syncId &&\n event.target !== this.el &&\n event.target.syncId === this.syncId &&\n this.selectedTab !== event.detail.tab) {\n this.selectedTab = event.detail.tab;\n }\n event.stopPropagation();\n }\n iconStartChangeHandler() {\n this.updateActiveWidth();\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() {\n return {\n \"$\": [\"tab-nav.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"tab-nav.css\"]\n };\n }\n static get properties() {\n 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\": \"Specifies the name when saving selected `calcite-tab` data to `localStorage`.\"\n },\n \"attribute\": \"storage-id\",\n \"reflect\": true\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\": \"Specifies text to update multiple components to keep in sync if one changes.\"\n },\n \"attribute\": \"sync-id\",\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\": undefined\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\": \"../tabs/interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\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\\\" | \\\"bottom\\\" | \\\"top\\\"\",\n \"references\": {\n \"TabPosition\": {\n \"location\": \"import\",\n \"path\": \"../tabs/interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"attribute\": \"position\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"bottom\\\"\"\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\": undefined\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 }\n static get states() {\n return {\n \"selectedTab\": {},\n \"selectedTabEl\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"calciteTabChange\",\n \"name\": \"calciteTabChange\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"see\",\n \"text\": \"[TabChangeEventDetail](https://github.com/Esri/calcite-components/blob/master/src/components/tab/interfaces.ts#L1)\"\n }],\n \"text\": \"Emits when the selected `calcite-tab` changes.\"\n },\n \"complexType\": {\n \"original\": \"TabChangeEventDetail\",\n \"resolved\": \"TabChangeEventDetail\",\n \"references\": {\n \"TabChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../tab/interfaces\"\n }\n }\n }\n }, {\n \"method\": \"calciteInternalTabChange\",\n \"name\": \"calciteInternalTabChange\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"TabChangeEventDetail\",\n \"resolved\": \"TabChangeEventDetail\",\n \"references\": {\n \"TabChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../tab/interfaces\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"selectedTab\",\n \"methodName\": \"selectedTabChanged\"\n }, {\n \"propName\": \"selectedTabEl\",\n \"methodName\": \"selectedTabElChanged\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"calciteInternalTabsFocusPrevious\",\n \"method\": \"focusPreviousTabHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteInternalTabsFocusNext\",\n \"method\": \"focusNextTabHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteInternalTabsActivate\",\n \"method\": \"internalActivateTabHandler\",\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\": \"calciteInternalTabTitleRegister\",\n \"method\": \"updateTabTitles\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteInternalTabChange\",\n \"method\": \"globalInternalTabChangeHandler\",\n \"target\": \"body\",\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteInternalTabIconChanged\",\n \"method\": \"iconStartChangeHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n","/* mixins & extensions */\n@keyframes in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n:root {\n --calcite-animation-timing: calc(150ms * var(--calcite-internal-duration-factor));\n --calcite-internal-duration-factor: var(--calcite-duration-factor, 1);\n --calcite-internal-animation-timing-fast: calc(100ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-medium: calc(200ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-slow: calc(300ms * var(--calcite-internal-duration-factor));\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@media (prefers-reduced-motion: reduce) {\n :root {\n --calcite-internal-duration-factor: 0.01;\n }\n}\n/**\n* Currently only used in Checkbox.\n*/\n:root {\n --calcite-floating-ui-transition: var(--calcite-animation-timing);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([disabled]) {\n pointer-events: none;\n cursor: default;\n -webkit-user-select: none;\n user-select: none;\n opacity: var(--calcite-ui-opacity-disabled);\n}\n\n:host {\n display: block;\n flex: 0 1 auto;\n outline: 2px solid transparent;\n outline-offset: 2px;\n margin-inline-start: 0px;\n margin-inline-end: 1.25rem;\n}\n\n:host([layout=center]) {\n margin-block: 0px;\n margin-inline: 1.25rem;\n text-align: center;\n flex-basis: 12rem;\n margin: auto;\n}\n\n:host([position=below]) .container {\n border-block-end-width: 0px;\n border-block-start-width: 2px;\n border-block-start-color: transparent;\n border-block-start-style: solid;\n}\n\n:host([position=bottom]) .container {\n border-block-end-width: 0px;\n border-block-start-width: 2px;\n border-block-start-color: transparent;\n border-block-start-style: solid;\n}\n\n:host .container {\n outline-color: transparent;\n}\n\n:host(:focus) .container {\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 border-color: var(--calcite-ui-border-2);\n color: var(--calcite-ui-text-1);\n text-decoration-line: none;\n}\n\n:host([selected]) .container {\n border-color: transparent;\n color: var(--calcite-ui-text-1);\n}\n\n:host([disabled]) .container {\n pointer-events: none;\n opacity: 0.5;\n}\n:host([disabled]) ::slotted([calcite-hydrated][disabled]),\n:host([disabled]) [calcite-hydrated][disabled] {\n /* prevent opacity stacking */\n opacity: 1;\n}\n\n:host([scale=s]) {\n margin-inline-end: 1rem;\n}\n:host([scale=s]) .container {\n padding-block: 0.25rem;\n font-size: var(--calcite-font-size--2);\n line-height: 1rem;\n}\n\n:host([scale=m]) .container {\n padding-block: 0.5rem;\n font-size: var(--calcite-font-size--1);\n line-height: 1rem;\n}\n\n:host([scale=l]) {\n margin-inline-end: 1.5rem;\n}\n:host([scale=l]) .container {\n padding-block: 0.75rem;\n font-size: var(--calcite-font-size-0);\n line-height: 1.25rem;\n}\n\n.container {\n box-sizing: border-box;\n display: flex;\n block-size: 100%;\n inline-size: 100%;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n justify-content: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n border-block-end-width: 2px;\n padding-inline: 0px;\n padding-block: 0.5rem;\n font-size: var(--calcite-font-size--1);\n line-height: 1rem;\n color: var(--calcite-ui-text-3);\n transition: all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;\n border-block-end-color: transparent;\n border-block-end-style: solid;\n}\n\n.calcite-tab-title--icon {\n position: relative;\n margin: 0px;\n display: inline-flex;\n align-self: center;\n}\n.calcite-tab-title--icon svg {\n transition: all var(--calcite-animation-timing) ease-in-out 0s, outline 0s, outline-offset 0s;\n}\n\n.container--has-text {\n padding: 0.25rem;\n}\n\n.container--has-text .calcite-tab-title--icon.icon-start {\n margin-inline-end: 0.5rem;\n}\n\n.container--has-text .calcite-tab-title--icon.icon-end {\n margin-inline-start: 0.5rem;\n}\n\n:host([icon-start][icon-end]) .calcite-tab-title--icon:first-child {\n margin-inline-end: 0.5rem;\n}\n\n:host([bordered]) {\n margin-inline-end: 0;\n}\n\n:host([bordered][selected]) {\n box-shadow: inset 0px -2px var(--calcite-ui-foreground-1);\n}\n\n:host([bordered][selected][position=below]) {\n box-shadow: inset 0 2px 0 var(--calcite-ui-foreground-1);\n}\n\n:host([bordered][selected][position=bottom]) {\n box-shadow: inset 0 2px 0 var(--calcite-ui-foreground-1);\n}\n\n:host([bordered]:hover) .container, \n:host([bordered]:focus) .container, \n:host([bordered]:active) .container {\n position: relative;\n}\n\n:host([bordered]:hover) .container {\n background-color: var(--calcite-button-transparent-hover);\n}\n\n:host([bordered]) .container {\n border-block-end-style: unset;\n border-inline-start: 1px solid transparent;\n border-inline-end: 1px solid transparent;\n}\n\n:host([bordered][position=below]) .container {\n border-block-start-style: unset;\n}\n\n:host([bordered][position=bottom]) .container {\n border-block-start-style: unset;\n}\n\n:host([selected][bordered]) .container {\n border-inline-start-color: var(--calcite-ui-border-1);\n border-inline-end-color: var(--calcite-ui-border-1);\n}\n\n:host([bordered]) .container {\n padding-inline: 0.75rem;\n}\n\n:host([bordered][scale=s]) .container {\n padding-inline: 0.5rem;\n}\n\n:host([bordered][scale=l]) .container {\n padding-inline: 1rem;\n}\n\n@media (forced-colors: active) {\n :host {\n outline-width: 0;\n outline-offset: 0;\n }\n\n :host(:focus) .container {\n outline-color: highlight;\n }\n\n :host([bordered]) .container {\n border-block-end-style: solid;\n }\n\n :host([bordered][position=below]) .container {\n border-block-start-style: solid;\n }\n\n :host([bordered][position=bottom]) .container {\n border-block-start-style: solid;\n }\n\n :host([bordered][selected]) .container {\n border-block-end-style: none;\n }\n\n :host([bordered][position=below][selected]) .container {\n border-block-start-style: none;\n }\n\n :host([bordered][position=bottom][selected]) .container {\n border-block-start-style: none;\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 * v1.0.0-beta.97\n */\nimport { Build, h, Host } from \"@stencil/core\";\nimport { guid } from \"../../utils/guid\";\nimport { getElementDir, getElementProp, toAriaBoolean } from \"../../utils/dom\";\nimport { createObserver } from \"../../utils/observers\";\nimport { updateHostInteraction } from \"../../utils/interactive\";\n/**\n * @slot - A slot for adding text.\n */\nexport class TabTitle {\n constructor() {\n //--------------------------------------------------------------------------\n //\n // Properties\n //\n //--------------------------------------------------------------------------\n /**\n * When `true`, the component and its respective `calcite-tab` contents are selected.\n *\n * Only one tab can be selected within the `calcite-tabs` parent.\n *\n * @deprecated Use `selected` instead.\n */\n this.active = false;\n /**\n * When `true`, the component and its respective `calcite-tab` contents are selected.\n *\n * Only one tab can be selected within the `calcite-tabs` parent.\n */\n this.selected = false;\n /** When `true`, interaction is prevented and the component is displayed with lower opacity. */\n this.disabled = false;\n /**\n * @internal\n */\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 this.resizeObserver = createObserver(\"resize\", () => {\n this.calciteInternalTabIconChanged.emit();\n });\n this.guid = `calcite-tab-title-${guid()}`;\n }\n activeHandler(value) {\n this.selected = value;\n }\n selectedHandler(value) {\n this.active = value;\n if (this.selected) {\n this.emitActiveTab(false);\n }\n }\n //--------------------------------------------------------------------------\n //\n // Lifecycle\n //\n //--------------------------------------------------------------------------\n connectedCallback() {\n const { selected, active } = this;\n if (selected) {\n this.active = selected;\n }\n else if (active) {\n this.activeHandler(active);\n }\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, _c;\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 (_c = this.resizeObserver) === null || _c === void 0 ? void 0 : _c.disconnect();\n }\n componentWillLoad() {\n if (Build.isBrowser) {\n this.updateHasText();\n }\n if (this.tab && this.selected) {\n this.emitActiveTab(false);\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 id = this.el.id || this.guid;\n const iconStartEl = (h(\"calcite-icon\", { class: \"calcite-tab-title--icon icon-start\", 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\", flipRtl: this.iconFlipRtl === \"end\" || this.iconFlipRtl === \"both\", icon: this.iconEnd, scale: \"s\" }));\n return (h(Host, { \"aria-controls\": this.controls, \"aria-selected\": toAriaBoolean(this.selected), id: id, role: \"tab\", tabIndex: this.selected ? 0 : -1 }, h(\"div\", { class: {\n container: true,\n \"container--has-text\": this.hasText\n }, ref: (el) => { var _a; return (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.observe(el); } }, this.iconStart ? iconStartEl : null, h(\"slot\", null), this.iconEnd ? iconEndEl : null)));\n }\n async componentDidLoad() {\n this.calciteInternalTabTitleRegister.emit(await this.getTabIdentifier());\n }\n componentDidRender() {\n updateHostInteraction(this, () => {\n return this.selected;\n });\n }\n //--------------------------------------------------------------------------\n //\n // Event Listeners\n //\n //--------------------------------------------------------------------------\n internalTabChangeHandler(event) {\n const targetTabsEl = event\n .composedPath()\n .find((el) => el.tagName === \"CALCITE-TABS\");\n if (targetTabsEl !== this.parentTabsEl) {\n return;\n }\n if (this.tab) {\n this.selected = this.tab === event.detail.tab;\n }\n else {\n this.getTabIndex().then((index) => {\n this.selected = index === event.detail.tab;\n });\n }\n event.stopPropagation();\n }\n onClick() {\n this.emitActiveTab();\n }\n keyDownHandler(event) {\n switch (event.key) {\n case \" \":\n case \"Enter\":\n this.emitActiveTab();\n event.preventDefault();\n break;\n case \"ArrowRight\":\n event.preventDefault();\n if (getElementDir(this.el) === \"ltr\") {\n this.calciteInternalTabsFocusNext.emit();\n }\n else {\n this.calciteInternalTabsFocusPrevious.emit();\n }\n break;\n case \"ArrowLeft\":\n event.preventDefault();\n if (getElementDir(this.el) === \"ltr\") {\n this.calciteInternalTabsFocusPrevious.emit();\n }\n else {\n this.calciteInternalTabsFocusNext.emit();\n }\n break;\n }\n }\n //--------------------------------------------------------------------------\n //\n // Public Methods\n //\n //--------------------------------------------------------------------------\n /**\n * Returns the index of the title within the `calcite-tab-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 * @param tabIds\n * @param titleIds\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(userTriggered = true) {\n if (this.disabled) {\n return;\n }\n const payload = { tab: this.tab };\n this.calciteInternalTabsActivate.emit(payload);\n if (userTriggered) {\n this.calciteTabsActivate.emit(payload);\n }\n }\n static get is() { return \"calcite-tab-title\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"tab-title.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"tab-title.css\"]\n };\n }\n static get properties() {\n 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 \"name\": \"deprecated\",\n \"text\": \"Use `selected` instead.\"\n }],\n \"text\": \"When `true`, the component and its respective `calcite-tab` contents are selected.\\n\\nOnly one tab can be selected within the `calcite-tabs` parent.\"\n },\n \"attribute\": \"active\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"selected\": {\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\": \"When `true`, the component and its respective `calcite-tab` contents are selected.\\n\\nOnly one tab can be selected within the `calcite-tabs` parent.\"\n },\n \"attribute\": \"selected\",\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\": \"When `true`, interaction is prevented and the component is displayed with lower opacity.\"\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\": \"Specifies an icon to display at the end of the component.\"\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\": \"When `true`, the icon will be flipped when the element direction is right-to-left (`\\\"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\": \"Specifies an icon to display at the start of the component.\"\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\": \"../tabs/interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\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\\\" | \\\"bottom\\\" | \\\"top\\\"\",\n \"references\": {\n \"TabPosition\": {\n \"location\": \"import\",\n \"path\": \"../tabs/interfaces\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\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\": undefined\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\": undefined\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\": \"Specifies a unique name for the component.\\n\\nWhen specified, use the same value on the `calcite-tab`.\"\n },\n \"attribute\": \"tab\",\n \"reflect\": true\n }\n };\n }\n static get states() {\n return {\n \"controls\": {},\n \"hasText\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"calciteTabsActivate\",\n \"name\": \"calciteTabsActivate\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"see\",\n \"text\": \"[TabChangeEventDetail](https://github.com/Esri/calcite-components/blob/master/src/components/tab/interfaces.ts#L1)\"\n }],\n \"text\": \"Fires when a `calcite-tab` is selected. Emits the `tab` property, or the index position.\"\n },\n \"complexType\": {\n \"original\": \"TabChangeEventDetail\",\n \"resolved\": \"TabChangeEventDetail\",\n \"references\": {\n \"TabChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../tab/interfaces\"\n }\n }\n }\n }, {\n \"method\": \"calciteInternalTabsActivate\",\n \"name\": \"calciteInternalTabsActivate\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"see\",\n \"text\": \"[TabChangeEventDetail](https://github.com/Esri/calcite-components/blob/master/src/components/tab/interfaces.ts#L1)\"\n }, {\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"Fires when a `calcite-tab` is selected (`event.details`).\"\n },\n \"complexType\": {\n \"original\": \"TabChangeEventDetail\",\n \"resolved\": \"TabChangeEventDetail\",\n \"references\": {\n \"TabChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../tab/interfaces\"\n }\n }\n }\n }, {\n \"method\": \"calciteInternalTabsFocusNext\",\n \"name\": \"calciteInternalTabsFocusNext\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"calciteInternalTabsFocusPrevious\",\n \"name\": \"calciteInternalTabsFocusPrevious\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"calciteInternalTabTitleRegister\",\n \"name\": \"calciteInternalTabTitleRegister\",\n \"bubbles\": true,\n \"cancelable\": false,\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\": \"../tabs/interfaces\"\n }\n }\n }\n }, {\n \"method\": \"calciteInternalTabIconChanged\",\n \"name\": \"calciteInternalTabIconChanged\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n 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\": \"Returns the index of the title within the `calcite-tab-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\": \"../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 \"name\": \"param\",\n \"text\": \"tabIds\"\n }],\n \"text\": \"\"\n }, {\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"titleIds\"\n }],\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\": \"param\",\n \"text\": \"tabIds\"\n }, {\n \"name\": \"param\",\n \"text\": \"titleIds\"\n }, {\n \"name\": \"internal\",\n \"text\": undefined\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"active\",\n \"methodName\": \"activeHandler\"\n }, {\n \"propName\": \"selected\",\n \"methodName\": \"selectedHandler\"\n }];\n }\n static get listeners() {\n return [{\n \"name\": \"calciteInternalTabChange\",\n \"method\": \"internalTabChangeHandler\",\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","/*!\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 * v1.0.0-beta.97\n */\nexport const SLOTS = {\n tabNav: \"tab-nav\"\n};\n","/* mixins & extensions */\n@keyframes in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n:root {\n --calcite-animation-timing: calc(150ms * var(--calcite-internal-duration-factor));\n --calcite-internal-duration-factor: var(--calcite-duration-factor, 1);\n --calcite-internal-animation-timing-fast: calc(100ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-medium: calc(200ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-slow: calc(300ms * var(--calcite-internal-duration-factor));\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@media (prefers-reduced-motion: reduce) {\n :root {\n --calcite-internal-duration-factor: 0.01;\n }\n}\n/**\n* Currently only used in Checkbox.\n*/\n:root {\n --calcite-floating-ui-transition: var(--calcite-animation-timing);\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-block-end: -1px;\n}\n\n:host([bordered]:not([position=bottom])) ::slotted(calcite-tab-nav) {\n margin-block-end: -1px;\n}\n\n:host([bordered][position=below]) ::slotted(calcite-tab-nav) {\n margin-block-start: -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][position=bottom]) {\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\n:host([position=bottom]) {\n flex-direction: column-reverse;\n}\n\nsection {\n display: flex;\n flex-grow: 1;\n overflow: hidden;\n border-block-start-width: 1px;\n border-block-start-color: var(--calcite-ui-border-1);\n border-block-start-style: solid;\n}\n\n:host([position=below]) section {\n flex-direction: column-reverse;\n border-block-start-width: 0px;\n border-block-end-width: 1px;\n border-block-end-color: var(--calcite-ui-border-1);\n}\n\n:host([position=bottom]) section {\n flex-direction: column-reverse;\n border-block-start-width: 0px;\n border-block-end-width: 1px;\n border-block-end-color: var(--calcite-ui-border-1);\n}\n\n:host([position=below]:not([bordered])) section {\n border-block-end-style: solid;\n}\n\n:host([position=bottom]:not([bordered])) section {\n border-block-end-style: solid;\n}\n\n@media (forced-colors: active) {\n :host([bordered]) section {\n border-block-start-width: 0px;\n border-block-end-width: 1px;\n }\n\n :host([position=below][bordered]) section {\n border-block-start-width: 1px;\n border-block-end-width: 0px;\n }\n\n :host([position=bottom][bordered]) section {\n border-block-start-width: 1px;\n border-block-end-width: 0px;\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 * v1.0.0-beta.97\n */\nimport { h, 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 `calcite-tab-nav`.\n */\nexport class Tabs {\n constructor() {\n //--------------------------------------------------------------------------\n //\n // Public Properties\n //\n //--------------------------------------------------------------------------\n /**\n * Specifies the layout of the `calcite-tab-nav`, justifying the `calcite-tab-title`s to the start (`\"inline\"`), or across and centered (`\"center\"`).\n */\n this.layout = \"inline\";\n /**\n * Specifies the position of the component in relation to the `calcite-tab`s. The `\"above\"` and `\"below\"` values are deprecated.\n *\n */\n this.position = \"top\";\n /**\n * Specifies the size of the component.\n */\n this.scale = \"m\";\n /**\n * When `true`, the component will display with a folder style menu.\n */\n this.bordered = false;\n //--------------------------------------------------------------------------\n //\n // Events\n //\n //--------------------------------------------------------------------------\n //--------------------------------------------------------------------------\n //\n // Private State/Props\n //\n //--------------------------------------------------------------------------\n /**\n *\n * Stores an array of ids of `<calcite-tab-titles>`s to match up ARIA\n * attributes.\n */\n this.titles = [];\n /**\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 render() {\n return (h(Fragment, null, h(\"slot\", { name: SLOTS.tabNav }), h(\"section\", null, h(\"slot\", null))));\n }\n //--------------------------------------------------------------------------\n //\n // Event Listeners\n //\n //--------------------------------------------------------------------------\n /**\n * @param event\n * @internal\n */\n calciteInternalTabTitleRegister(event) {\n this.titles = [...this.titles, event.target];\n this.registryHandler();\n event.stopPropagation();\n }\n /**\n * @param event\n * @internal\n */\n calciteTabTitleUnregister(event) {\n this.titles = this.titles.filter((el) => el !== event.detail);\n this.registryHandler();\n event.stopPropagation();\n }\n /**\n * @param event\n * @internal\n */\n calciteInternalTabRegister(event) {\n this.tabs = [...this.tabs, event.target];\n this.registryHandler();\n event.stopPropagation();\n }\n /**\n * @param event\n * @internal\n */\n calciteTabUnregister(event) {\n this.tabs = this.tabs.filter((el) => el !== event.detail);\n this.registryHandler();\n event.stopPropagation();\n }\n //--------------------------------------------------------------------------\n //\n // Private Methods\n //\n //--------------------------------------------------------------------------\n /**\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((el) => el.tab) || this.titles.some((el) => el.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((el) => el.id);\n titleIds = this.titles.sort((a, b) => a.tab.localeCompare(b.tab)).map((el) => el.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() {\n return {\n \"$\": [\"tabs.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"tabs.css\"]\n };\n }\n static get properties() {\n 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\": \"Specifies the layout of the `calcite-tab-nav`, justifying the `calcite-tab-title`s to the start (`\\\"inline\\\"`), or across and centered (`\\\"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\\\" | \\\"bottom\\\" | \\\"top\\\"\",\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\": \"Specifies the position of the component in relation to the `calcite-tab`s. The `\\\"above\\\"` and `\\\"below\\\"` values are deprecated.\"\n },\n \"attribute\": \"position\",\n \"reflect\": true,\n \"defaultValue\": \"\\\"top\\\"\"\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\": \"Specifies the size of the component.\"\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\": \"When `true`, the component will display with a folder style menu.\"\n },\n \"attribute\": \"bordered\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"titles\": {},\n \"tabs\": {}\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"calciteInternalTabTitleRegister\",\n \"method\": \"calciteInternalTabTitleRegister\",\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\": \"calciteInternalTabRegister\",\n \"method\": \"calciteInternalTabRegister\",\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}\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 * v1.0.0-beta.97\n */\nexport const CSS = {\n container: \"container\",\n handle: \"handle\"\n};\nexport var ICON_TYPES;\n(function (ICON_TYPES) {\n ICON_TYPES[\"grip\"] = \"grip\";\n})(ICON_TYPES || (ICON_TYPES = {}));\nexport const TEXT = {\n filterResults: \"Filter results\"\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 * v1.0.0-beta.97\n */\nimport { getItemIndex } from \"../pick-list/shared-list-logic\";\nexport function getScreenReaderText(item, status, valueList) {\n const { items, intlDragHandleIdle, intlDragHandleActive, intlDragHandleChange, intlDragHandleCommit } = valueList;\n const total = items.length;\n const position = getItemIndex(valueList, item) + 1;\n if (status === \"idle\") {\n const idleText = intlDragHandleIdle\n ? replacePlaceholders(intlDragHandleIdle, item.label, position, total)\n : `${item.label}, press space and use arrow keys to reorder content. Current position ${position} of ${total}.`;\n return idleText;\n }\n else if (status === \"active\") {\n const activeText = intlDragHandleActive\n ? replacePlaceholders(intlDragHandleActive, item.label, position, total)\n : `Reordering ${item.label}, current position ${position} of ${total}.`;\n return activeText;\n }\n else if (status === \"change\") {\n const changeText = intlDragHandleChange\n ? replacePlaceholders(intlDragHandleChange, item.label, position, total)\n : `${item.label}, new position ${position} of ${total}. Press space to confirm.`;\n return changeText;\n }\n else {\n const commitText = intlDragHandleCommit\n ? replacePlaceholders(intlDragHandleCommit, item.label, position, total)\n : `${item.label}, current position ${position} of ${total}.`;\n return commitText;\n }\n}\nexport function getHandleAndItemElement(event) {\n const handle = event\n .composedPath()\n .find((item) => { var _a; return ((_a = item.dataset) === null || _a === void 0 ? void 0 : _a.jsHandle) !== undefined; });\n const item = event\n .composedPath()\n .find((item) => { var _a; return ((_a = item.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === \"calcite-value-list-item\"; });\n return { handle, item };\n}\nexport function replacePlaceholders(text, label, position, total) {\n const replacePosition = text.replace(\"${position}\", position.toString());\n const replaceLabel = replacePosition.replace(\"${item.label}\", label);\n return replaceLabel.replace(\"${total}\", total.toString());\n}\n","/* mixins & extensions */\n@keyframes in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n:root {\n --calcite-animation-timing: calc(150ms * var(--calcite-internal-duration-factor));\n --calcite-internal-duration-factor: var(--calcite-duration-factor, 1);\n --calcite-internal-animation-timing-fast: calc(100ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-medium: calc(200ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-slow: calc(300ms * var(--calcite-internal-duration-factor));\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@media (prefers-reduced-motion: reduce) {\n :root {\n --calcite-internal-duration-factor: 0.01;\n }\n}\n/**\n* Currently only used in Checkbox.\n*/\n:root {\n --calcite-floating-ui-transition: var(--calcite-animation-timing);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([disabled]) {\n pointer-events: none;\n cursor: default;\n -webkit-user-select: none;\n user-select: none;\n opacity: var(--calcite-ui-opacity-disabled);\n}\n\n:host {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-shrink: 0;\n flex-grow: 0;\n flex-direction: column;\n align-items: stretch;\n background-color: transparent;\n font-size: var(--calcite-font-size--1);\n color: var(--calcite-ui-text-2);\n}\n:host * {\n box-sizing: border-box;\n}\n\n:host([disabled]) ::slotted([calcite-hydrated][disabled]),\n:host([disabled]) [calcite-hydrated][disabled] {\n /* prevent opacity stacking */\n opacity: 1;\n}\n\ncalcite-value-list-item:last-of-type {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n:host([filter-enabled]) header {\n margin-block-end: 0.25rem;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n background-color: var(--calcite-ui-foreground-1);\n --tw-shadow: 0 1px 0 var(--calcite-ui-border-3);\n --tw-shadow-colored: 0 1px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n:host([filter-enabled]) header.sticky-pos {\n position: sticky;\n inset-block-start: 0px;\n z-index: 300;\n}\n\ncalcite-filter {\n margin-block-end: 1px;\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 * v1.0.0-beta.97\n */\nimport Sortable from \"sortablejs\";\nimport { h } from \"@stencil/core\";\nimport { CSS, ICON_TYPES } from \"./resources\";\nimport { calciteListFocusOutHandler, calciteListItemChangeHandler, calciteInternalListItemValueChangeHandler, cleanUpObserver, deselectSiblingItems, deselectRemovedItems, getItemData, handleFilter, initialize, initializeObserver, keyDownHandler, mutationObserverCallback, removeItem, selectSiblings, setFocus, setUpItems, moveItemIndex } from \"../pick-list/shared-list-logic\";\nimport List from \"../pick-list/shared-list-render\";\nimport { createObserver } from \"../../utils/observers\";\nimport { updateHostInteraction } from \"../../utils/interactive\";\nimport { getHandleAndItemElement, getScreenReaderText } from \"./utils\";\n/**\n * @slot - A slot for adding `calcite-value-list-item` elements. List items are displayed as a vertical list.\n * @slot menu-actions - A slot for adding a button and menu combination for performing actions, such as sorting.\n */\nexport class ValueList {\n constructor() {\n // --------------------------------------------------------------------------\n //\n // Properties\n //\n // --------------------------------------------------------------------------\n /**\n * When `true`, interaction is prevented and the component is displayed with lower opacity.\n */\n this.disabled = false;\n /**\n * When `true`, `calcite-value-list-item`s are sortable via a draggable button.\n */\n this.dragEnabled = false;\n /**\n * When `true`, an input appears at the top of the component that can be used by end users to filter list items.\n */\n this.filterEnabled = false;\n /**\n * When `true`, a busy indicator is displayed.\n */\n this.loading = false;\n /**\n * Similar to standard radio buttons and checkboxes.\n * When `true`, a user can select multiple `calcite-value-list-item`s at a time.\n * When `false`, only a single `calcite-value-list-item` can be selected at a time,\n * and a new selection will deselect previous selections.\n */\n this.multiple = false;\n /**\n * When `true` and single-selection is enabled, the selection changes when navigating `calcite-value-list-item`s via keyboard.\n */\n this.selectionFollowsFocus = false;\n // --------------------------------------------------------------------------\n //\n // Private Properties\n //\n // --------------------------------------------------------------------------\n this.selectedValues = new Map();\n this.dataForFilter = [];\n this.lastSelectedItem = null;\n this.mutationObserver = createObserver(\"mutation\", mutationObserverCallback.bind(this));\n this.setFilterEl = (el) => {\n this.filterEl = el;\n };\n this.deselectRemovedItems = deselectRemovedItems.bind(this);\n this.deselectSiblingItems = deselectSiblingItems.bind(this);\n this.selectSiblings = selectSiblings.bind(this);\n this.handleFilter = handleFilter.bind(this);\n this.getItemData = getItemData.bind(this);\n this.keyDownHandler = (event) => {\n if (event.defaultPrevented) {\n return;\n }\n const { handle, item } = getHandleAndItemElement(event);\n if (handle && !item.handleActivated && event.key === \" \") {\n this.updateScreenReaderText(getScreenReaderText(item, \"commit\", this));\n }\n if (!handle || !item.handleActivated) {\n keyDownHandler.call(this, event);\n return;\n }\n const { items } = this;\n if (event.key === \" \") {\n this.updateScreenReaderText(getScreenReaderText(item, \"active\", this));\n }\n if ((event.key !== \"ArrowUp\" && event.key !== \"ArrowDown\") || items.length <= 1) {\n return;\n }\n event.preventDefault();\n const { el } = this;\n const nextIndex = moveItemIndex(this, item, event.key === \"ArrowUp\" ? \"up\" : \"down\");\n if (nextIndex === items.length - 1) {\n el.appendChild(item);\n }\n else {\n const itemAtNextIndex = el.children[nextIndex];\n const insertionReferenceItem = itemAtNextIndex === item.nextElementSibling\n ? itemAtNextIndex.nextElementSibling\n : itemAtNextIndex;\n el.insertBefore(item, insertionReferenceItem);\n }\n this.items = this.getItems();\n this.calciteListOrderChange.emit(this.items.map(({ value }) => value));\n requestAnimationFrame(() => handle === null || handle === void 0 ? void 0 : handle.focus());\n item.handleActivated = true;\n this.updateHandleAriaLabel(handle, getScreenReaderText(item, \"change\", this));\n };\n this.storeAssistiveEl = (el) => {\n this.assistiveTextEl = el;\n };\n this.handleFocusIn = (event) => {\n const { handle, item } = getHandleAndItemElement(event);\n if (!(item === null || item === void 0 ? void 0 : item.handleActivated) && item && handle) {\n this.updateHandleAriaLabel(handle, getScreenReaderText(item, \"idle\", this));\n }\n };\n }\n // --------------------------------------------------------------------------\n //\n // Lifecycle\n //\n // --------------------------------------------------------------------------\n connectedCallback() {\n initialize.call(this);\n initializeObserver.call(this);\n }\n componentDidLoad() {\n this.setUpDragAndDrop();\n }\n componentDidRender() {\n updateHostInteraction(this);\n }\n disconnectedCallback() {\n cleanUpObserver.call(this);\n this.cleanUpDragAndDrop();\n }\n calciteListFocusOutHandler(event) {\n calciteListFocusOutHandler.call(this, event);\n }\n calciteListItemRemoveHandler(event) {\n removeItem.call(this, event);\n }\n calciteListItemChangeHandler(event) {\n calciteListItemChangeHandler.call(this, event);\n }\n calciteInternalListItemPropsChangeHandler(event) {\n event.stopPropagation();\n this.setUpFilter();\n }\n calciteInternalListItemValueChangeHandler(event) {\n calciteInternalListItemValueChangeHandler.call(this, event);\n event.stopPropagation();\n }\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n getItems() {\n return Array.from(this.el.querySelectorAll(\"calcite-value-list-item\"));\n }\n setUpItems() {\n setUpItems.call(this, \"calcite-value-list-item\");\n }\n setUpFilter() {\n if (this.filterEnabled) {\n this.dataForFilter = this.getItemData();\n }\n }\n setUpDragAndDrop() {\n this.cleanUpDragAndDrop();\n if (!this.dragEnabled) {\n return;\n }\n this.sortable = Sortable.create(this.el, {\n dataIdAttr: \"id\",\n handle: `.${CSS.handle}`,\n draggable: \"calcite-value-list-item\",\n group: this.group,\n onSort: () => {\n this.items = Array.from(this.el.querySelectorAll(\"calcite-value-list-item\"));\n const values = this.items.map((item) => item.value);\n this.calciteListOrderChange.emit(values);\n }\n });\n }\n cleanUpDragAndDrop() {\n var _a;\n (_a = this.sortable) === null || _a === void 0 ? void 0 : _a.destroy();\n this.sortable = null;\n }\n handleBlur() {\n if (this.dragEnabled) {\n this.updateScreenReaderText(\"\");\n }\n }\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n /** Returns the currently selected items */\n async getSelectedItems() {\n return this.selectedValues;\n }\n /**\n * Sets focus on the component.\n *\n * @param focusId\n */\n async setFocus(focusId) {\n return setFocus.call(this, focusId);\n }\n // --------------------------------------------------------------------------\n //\n // Render Methods\n //\n // --------------------------------------------------------------------------\n getIconType() {\n let type = null;\n if (this.dragEnabled) {\n type = ICON_TYPES.grip;\n }\n return type;\n }\n updateScreenReaderText(text) {\n this.assistiveTextEl.textContent = text;\n }\n updateHandleAriaLabel(handleElement, text) {\n handleElement.ariaLabel = text;\n }\n render() {\n return (h(List, { onBlur: this.handleBlur, onFocusin: this.handleFocusIn, onKeyDown: this.keyDownHandler, props: this }));\n }\n static get is() { return \"calcite-value-list\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"value-list.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"value-list.css\"]\n };\n }\n static get properties() {\n return {\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`, interaction is prevented and the component is displayed with lower opacity.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"dragEnabled\": {\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`, `calcite-value-list-item`s are sortable via a draggable button.\"\n },\n \"attribute\": \"drag-enabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"filterEnabled\": {\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`, an input appears at the top of the component that can be used by end users to filter list items.\"\n },\n \"attribute\": \"filter-enabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"filterPlaceholder\": {\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\": \"Placeholder text for the filter's input field.\"\n },\n \"attribute\": \"filter-placeholder\",\n \"reflect\": true\n },\n \"group\": {\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\": \"The component's group identifier.\\n\\nTo drag elements from one list into another, both lists must have the same group value.\"\n },\n \"attribute\": \"group\",\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`, a busy indicator is displayed.\"\n },\n \"attribute\": \"loading\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"multiple\": {\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\": \"Similar to standard radio buttons and checkboxes.\\nWhen `true`, a user can select multiple `calcite-value-list-item`s at a time.\\nWhen `false`, only a single `calcite-value-list-item` can be selected at a time,\\nand a new selection will deselect previous selections.\"\n },\n \"attribute\": \"multiple\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"selectionFollowsFocus\": {\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` and single-selection is enabled, the selection changes when navigating `calcite-value-list-item`s via keyboard.\"\n },\n \"attribute\": \"selection-follows-focus\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"intlDragHandleIdle\": {\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\": \"When `dragEnabled` is `true` and active, specifies accessible context to the `calcite-value-list-item`s initial position.\\n\\nUse \\\"`${position}` of `${total}`\\\" as a placeholder for displaying indices and `${item.label}` as a placeholder for displaying the `calcite-value-list-item` label.\"\n },\n \"attribute\": \"intl-drag-handle-idle\",\n \"reflect\": false\n },\n \"intlDragHandleActive\": {\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\": \"When `dragEnabled` is `true` and active, specifies accessible context to the component.\\n\\nUse \\\"`${position}` of `${total}`\\\" as a placeholder for displaying indices and `${item.label}` as a placeholder for displaying the `calcite-value-list-item` label.\"\n },\n \"attribute\": \"intl-drag-handle-active\",\n \"reflect\": false\n },\n \"intlDragHandleChange\": {\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\": \"When `dragEnabled` is `true` and active, specifies accessible context to the `calcite-value-list-item`s new position.\\n\\nUse \\\"`${position}` of `${total}`\\\" as a placeholder for displaying indices and `${item.label}` as a placeholder for displaying the `calcite-value-list-item` label.\"\n },\n \"attribute\": \"intl-drag-handle-change\",\n \"reflect\": false\n },\n \"intlDragHandleCommit\": {\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\": \"When `dragEnabled` is `true` and active, specifies accessible context to the `calcite-value-list-item`s current position after commit.\\n\\nUse \\\"`${position}` of `${total}`\\\" as a placeholder for displaying indices and `${item.label}` as a placeholder for displaying the `calcite-value-list-item` label.\"\n },\n \"attribute\": \"intl-drag-handle-commit\",\n \"reflect\": false\n }\n };\n }\n static get states() {\n return {\n \"selectedValues\": {},\n \"dataForFilter\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"calciteListChange\",\n \"name\": \"calciteListChange\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emits when any of the list item selections have changed.\"\n },\n \"complexType\": {\n \"original\": \"Map<string, HTMLCalciteValueListItemElement>\",\n \"resolved\": \"Map<string, HTMLCalciteValueListItemElement>\",\n \"references\": {\n \"Map\": {\n \"location\": \"global\"\n },\n \"HTMLCalciteValueListItemElement\": {\n \"location\": \"global\"\n }\n }\n }\n }, {\n \"method\": \"calciteListOrderChange\",\n \"name\": \"calciteListOrderChange\",\n \"bubbles\": true,\n \"cancelable\": false,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emits when the order of the list has changed.\"\n },\n \"complexType\": {\n \"original\": \"any[]\",\n \"resolved\": \"any[]\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"getSelectedItems\": {\n \"complexType\": {\n \"signature\": \"() => Promise<Map<string, HTMLCalciteValueListItemElement>>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n },\n \"Map\": {\n \"location\": \"global\"\n },\n \"HTMLCalciteValueListItemElement\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<Map<string, HTMLCalciteValueListItemElement>>\"\n },\n \"docs\": {\n \"text\": \"Returns the currently selected items\",\n \"tags\": []\n }\n },\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"(focusId?: ListFocusId) => Promise<void>\",\n \"parameters\": [{\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"focusId\"\n }],\n \"text\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n },\n \"ListFocusId\": {\n \"location\": \"import\",\n \"path\": \"../pick-list/shared-list-logic\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the component.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"focusId\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"focusout\",\n \"method\": \"calciteListFocusOutHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteListItemRemove\",\n \"method\": \"calciteListItemRemoveHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteListItemChange\",\n \"method\": \"calciteListItemChangeHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteInternalListItemPropsChange\",\n \"method\": \"calciteInternalListItemPropsChangeHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"calciteInternalListItemValueChange\",\n \"method\": \"calciteInternalListItemValueChangeHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\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 * v1.0.0-beta.97\n */\nexport const ICONS = {\n drag: \"drag\"\n};\nexport const SLOTS = {\n actionsEnd: \"actions-end\",\n actionsStart: \"actions-start\"\n};\n","/* mixins & extensions */\n@keyframes in {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes in-down {\n 0% {\n opacity: 0;\n transform: translate3D(0, -5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-up {\n 0% {\n opacity: 0;\n transform: translate3D(0, 5px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate3D(0, 0, 0);\n }\n}\n@keyframes in-scale {\n 0% {\n opacity: 0;\n transform: scale3D(0.95, 0.95, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3D(1, 1, 1);\n }\n}\n:root {\n --calcite-animation-timing: calc(150ms * var(--calcite-internal-duration-factor));\n --calcite-internal-duration-factor: var(--calcite-duration-factor, 1);\n --calcite-internal-animation-timing-fast: calc(100ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-medium: calc(200ms * var(--calcite-internal-duration-factor));\n --calcite-internal-animation-timing-slow: calc(300ms * var(--calcite-internal-duration-factor));\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@media (prefers-reduced-motion: reduce) {\n :root {\n --calcite-internal-duration-factor: 0.01;\n }\n}\n/**\n* Currently only used in Checkbox.\n*/\n:root {\n --calcite-floating-ui-transition: var(--calcite-animation-timing);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n:host([disabled]) {\n pointer-events: none;\n cursor: default;\n -webkit-user-select: none;\n user-select: none;\n opacity: var(--calcite-ui-opacity-disabled);\n}\n\n:host {\n margin-block-end: 1px;\n box-sizing: border-box;\n display: flex;\n background-color: var(--calcite-ui-foreground-1);\n font-size: var(--calcite-font-size--1);\n color: var(--calcite-ui-text-2);\n --tw-shadow: 0 1px 0 var(--calcite-ui-border-3);\n --tw-shadow-colored: 0 1px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n transition: background-color var(--calcite-animation-timing), box-shadow var(--calcite-animation-timing);\n}\n:host * {\n box-sizing: border-box;\n}\n\ncalcite-pick-list-item {\n position: relative;\n margin: 0px;\n flex-grow: 1;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n:host([active]), \n:host([selected]) {\n --tw-shadow: 0 0 0 1px var(--calcite-ui-brand);\n --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.handle {\n display: flex;\n cursor: move;\n align-items: center;\n justify-content: center;\n border-style: none;\n background-color: transparent;\n padding-block: 0px;\n padding-inline: 0.25rem;\n color: var(--calcite-ui-border-input);\n outline-color: transparent;\n}\n.handle:hover {\n background-color: var(--calcite-ui-foreground-2);\n color: var(--calcite-ui-text-1);\n}\n.handle:focus {\n outline: 2px solid var(--calcite-ui-brand);\n outline-offset: -2px;\n}\n.handle--activated {\n background-color: var(--calcite-ui-foreground-3);\n color: var(--calcite-ui-text-1);\n}\n.handle calcite-icon {\n color: inherit;\n}\n\n:host([disabled]) ::slotted([calcite-hydrated][disabled]),\n:host([disabled]) [calcite-hydrated][disabled] {\n /* prevent opacity stacking */\n opacity: 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 * v1.0.0-beta.97\n */\nimport { h, Host } from \"@stencil/core\";\nimport { ICON_TYPES } from \"../pick-list/resources\";\nimport { guid } from \"../../utils/guid\";\nimport { CSS, SLOTS as PICK_LIST_SLOTS } from \"../pick-list-item/resources\";\nimport { ICONS, SLOTS } from \"./resources\";\nimport { getSlotted } from \"../../utils/dom\";\nimport { connectConditionalSlotComponent, disconnectConditionalSlotComponent } from \"../../utils/conditionalSlot\";\nimport { updateHostInteraction } from \"../../utils/interactive\";\n/**\n * @slot actions-end - A slot for adding actions or content to the end side of the component.\n * @slot actions-start - A slot for adding actions or content to the start side of the component.\n */\nexport class ValueListItem {\n constructor() {\n /**\n * When `true`, interaction is prevented and the component is displayed with lower opacity.\n */\n this.disabled = false;\n /**\n * @internal\n */\n this.disableDeselect = false;\n /**\n * When `true`, prevents the content of the component from user interaction.\n */\n this.nonInteractive = false;\n /**\n * @internal\n */\n this.handleActivated = false;\n /**\n * Determines the icon SVG symbol that will be shown. Options are circle, square, grip or null.\n *\n * @see [ICON_TYPES](https://github.com/Esri/calcite-components/blob/master/src/components/pick-list/resources.ts#L5)\n */\n this.icon = null;\n /**\n * When `true`, adds an action to remove the component.\n */\n this.removable = false;\n /**\n * When `true`, the component is selected.\n */\n this.selected = false;\n this.pickListItem = null;\n this.guid = `calcite-value-list-item-${guid()}`;\n // --------------------------------------------------------------------------\n //\n // Private Methods\n //\n // --------------------------------------------------------------------------\n this.getPickListRef = (el) => (this.pickListItem = el);\n this.handleKeyDown = (event) => {\n if (event.key === \" \") {\n this.handleActivated = !this.handleActivated;\n }\n };\n this.handleBlur = () => {\n this.handleActivated = false;\n };\n this.handleSelectChange = (event) => {\n this.selected = event.detail.selected;\n };\n }\n // --------------------------------------------------------------------------\n //\n // Lifecycle\n //\n // --------------------------------------------------------------------------\n connectedCallback() {\n connectConditionalSlotComponent(this);\n }\n disconnectedCallback() {\n disconnectConditionalSlotComponent(this);\n }\n componentDidRender() {\n updateHostInteraction(this, this.el.closest(\"calcite-value-list\") ? \"managed\" : false);\n }\n // --------------------------------------------------------------------------\n //\n // Public Methods\n //\n // --------------------------------------------------------------------------\n /**\n * Toggle the selection state. By default this won't trigger an event.\n * The first argument allows the value to be coerced, rather than swapping values.\n *\n * @param coerce\n */\n async toggleSelected(coerce) {\n this.pickListItem.toggleSelected(coerce);\n }\n /** Set focus on the component. */\n async setFocus() {\n var _a;\n (_a = this.pickListItem) === null || _a === void 0 ? void 0 : _a.setFocus();\n }\n calciteListItemChangeHandler(event) {\n // adjust item payload from wrapped item before bubbling\n event.detail.item = this.el;\n }\n // --------------------------------------------------------------------------\n //\n // Render Methods\n //\n // --------------------------------------------------------------------------\n renderActionsEnd() {\n const { el } = this;\n const hasActionsEnd = getSlotted(el, SLOTS.actionsEnd);\n return hasActionsEnd ? (h(\"slot\", { name: SLOTS.actionsEnd, slot: PICK_LIST_SLOTS.actionsEnd })) : null;\n }\n renderActionsStart() {\n const { el } = this;\n const hasActionsStart = getSlotted(el, SLOTS.actionsStart);\n return hasActionsStart ? (h(\"slot\", { name: SLOTS.actionsStart, slot: PICK_LIST_SLOTS.actionsStart })) : null;\n }\n renderHandle() {\n const { icon } = this;\n if (icon === ICON_TYPES.grip) {\n return (h(\"span\", { class: {\n [CSS.handle]: true,\n [CSS.handleActivated]: this.handleActivated\n }, \"data-js-handle\": true, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, role: \"button\", tabindex: \"0\" }, h(\"calcite-icon\", { icon: ICONS.drag, scale: \"s\" })));\n }\n }\n render() {\n return (h(Host, { id: this.el.id || this.guid }, this.renderHandle(), h(\"calcite-pick-list-item\", { description: this.description, disableDeselect: this.disableDeselect, disabled: this.disabled, label: this.label, metadata: this.metadata, nonInteractive: this.nonInteractive, onCalciteListItemChange: this.handleSelectChange, ref: this.getPickListRef, removable: this.removable, selected: this.selected, value: this.value }, this.renderActionsStart(), this.renderActionsEnd())));\n }\n static get is() { return \"calcite-value-list-item\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"value-list-item.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"value-list-item.css\"]\n };\n }\n static get properties() {\n return {\n \"description\": {\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\": \"A description for the component that displays below the label text.\"\n },\n \"attribute\": \"description\",\n \"reflect\": true\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`, interaction is prevented and the component is displayed with lower opacity.\"\n },\n \"attribute\": \"disabled\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"disableDeselect\": {\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 \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"attribute\": \"disable-deselect\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"nonInteractive\": {\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`, prevents the content of the component from user interaction.\"\n },\n \"attribute\": \"non-interactive\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"handleActivated\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }],\n \"text\": \"\"\n },\n \"attribute\": \"handle-activated\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"icon\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"ICON_TYPES | null\",\n \"resolved\": \"ICON_TYPES.circle | ICON_TYPES.grip | ICON_TYPES.square\",\n \"references\": {\n \"ICON_TYPES\": {\n \"location\": \"import\",\n \"path\": \"../pick-list/resources\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"see\",\n \"text\": \"[ICON_TYPES](https://github.com/Esri/calcite-components/blob/master/src/components/pick-list/resources.ts#L5)\"\n }],\n \"text\": \"Determines the icon SVG symbol that will be shown. Options are circle, square, grip or null.\"\n },\n \"attribute\": \"icon\",\n \"reflect\": true,\n \"defaultValue\": \"null\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Label and accessible name for the component. Appears next to the icon.\"\n },\n \"attribute\": \"label\",\n \"reflect\": true\n },\n \"metadata\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Record<string, unknown>\",\n \"resolved\": \"{ [x: string]: unknown; }\",\n \"references\": {\n \"Record\": {\n \"location\": \"global\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Provides additional metadata to the component. Primary use is for a filter on the parent list.\"\n }\n },\n \"removable\": {\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`, adds an action to remove the component.\"\n },\n \"attribute\": \"removable\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"selected\": {\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\": \"When `true`, the component is selected.\"\n },\n \"attribute\": \"selected\",\n \"reflect\": true,\n \"defaultValue\": \"false\"\n },\n \"value\": {\n \"type\": \"any\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The component's value.\"\n },\n \"attribute\": \"value\",\n \"reflect\": false\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"calciteListItemRemove\",\n \"name\": \"calciteListItemRemove\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Fires when the remove button is pressed.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"toggleSelected\": {\n \"complexType\": {\n \"signature\": \"(coerce?: boolean) => Promise<void>\",\n \"parameters\": [{\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"coerce\"\n }],\n \"text\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Toggle the selection state. By default this won't trigger an event.\\nThe first argument allows the value to be coerced, rather than swapping values.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"coerce\"\n }]\n }\n },\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Set focus on the component.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"calciteListItemChange\",\n \"method\": \"calciteListItemChangeHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n:host {\r\n @apply block;\r\n}\r\n\r\n.editor-container {\r\n @apply relative\r\n h-full;\r\n}\r\n\r\n.editor-controls {\r\n @apply h-11\r\n pr-2;\r\n background-color: $solutions-background-color;\r\n}\r\n\r\n.editor-buttons {\r\n @apply float-right;\r\n}\r\n\r\nhtml[dir=\"rtl\"] .editor-buttons {\r\n @apply float-left;\r\n}\r\n\r\n.edit-error-flag {\r\n @apply pt-2;\r\n color: red;\r\n visibility: hidden;\r\n}\r\n\r\n.edit-button {\r\n @apply p-inline-start-2;\r\n}\r\n\r\n.editor-text {\r\n @apply w-full\r\n overflow-y-auto;\r\n background-color: $solutions-white;\r\n}\r\n\r\n.edit-width {\r\n @apply w-full;\r\n}\r\n\r\n/* NEW CSS FOR MONACO */\r\n.edit-parent {\r\n @apply w-full\r\n box-border;\r\n /* adjust for edit buttons and border */\r\n height: calc(100% - 46px);\r\n}\r\n\r\n.json-edit-container {\r\n @apply w-full\r\n h-full\r\n border-lightgray;\r\n}\r\n\r\n.padding-right {\r\n @apply p-inline-end-0.5;\r\n}\r\n\r\n.btn {\r\n @apply flex\r\n mb-4\r\n content-center;\r\n height: 25px;\r\n width: 120px;\r\n}\r\n\r\n.select-ctrl {\r\n @apply mb-4;\r\n}\r\n\r\n.all-edits {\r\n @apply mt-16;\r\n}\r\n\r\n.floating-title {\r\n font-size: 2rem;\r\n z-index: 100;\r\n position: absolute;\r\n left: 0.5rem;\r\n pointer-events: none;\r\n}\r\n\r\n.floating-title-button {\r\n pointer-events: auto;\r\n}\r\n\r\n.json-editor-position1 {\r\n @apply absolute\r\n left-0\r\n top-0\r\n w-full\r\n h-full\r\n m-0\r\n p-0\r\n overflow-hidden;\r\n max-height: 100% !important;\r\n}\r\n\r\n.json-editor-position2a {\r\n @apply absolute\r\n left-0\r\n top-0\r\n w-1/2\r\n h-full\r\n m-0\r\n p-0\r\n overflow-hidden;\r\n max-height: 100% !important;\r\n}\r\n\r\n.json-editor-position2b {\r\n @apply absolute\r\n right-0\r\n top-0\r\n w-1/2\r\n h-full\r\n m-0\r\n p-0\r\n overflow-hidden;\r\n max-height: 100% !important;\r\n}\r\n\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/**\r\n * Encapsulates the Monaco Editor (https://microsoft.github.io/monaco-editor/) into a\r\n * web component for JSON content. Note that the app's HTML must include the editor because\r\n * it lives in the global space.\r\n *\r\n * Attributes:\r\n * `hasErrors`: Flag indicating if the JSON currently contained in the editor has errors\r\n * `instanceid`: id of component (required if there are multiple instances of the component)\r\n * `value`: Initial content of editor\r\n *\r\n * Methods:\r\n * `getEditorContents`: Gets the contents of the editor.\r\n * `replaceCurrentSelection`: Replaces the current selection with the supplied text, inserting if nothing is selected.\r\n * `reset`: Resets the contents of the editor with the current `value`.\r\n *\r\n * @example\r\n * <script src=\"./libs/require.js\"></script>\r\n * <script src=\"./monacoConfig.js\"></script>\r\n * <script>\r\n * require.config({\r\n * \"paths\": {\r\n * \"vs\": \"./libs/monaco-editor\"\r\n * }\r\n * });\r\n * require([\"vs/editor/editor.main\"], function () {\r\n * });\r\n * </script>\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\r\nimport { Component, Element, Host, h, Method, Prop, VNode } from '@stencil/core';\r\nimport JsonEditor_T9n from '../../assets/t9n/json-editor/resources.json';\r\nimport { getLocaleComponentStrings } from '../../utils/locale';\r\n\r\n@Component({\r\n tag: 'json-editor',\r\n styleUrl: 'json-editor.scss',\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\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 a public value to indicate if the model has any changes.\r\n */\r\n @Prop({ mutable: true, reflect: true }) hasChanges: boolean = false;\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 * Contains a unique identifier for when we have multiple instances of the editor.\r\n * For example when we want to show an item's data as well as an item's properties.\r\n */\r\n @Prop({ mutable: true, reflect: true }) instanceid: any = \"\";\r\n\r\n /**\r\n * Contains the public value for this component; it is not changed by the editor.\r\n * When changed, the change overwrites the contents of the editor.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value: any = \"\";\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * StencilJS: Called once just after the component is fully loaded and the first render() occurs.\r\n */\r\n componentDidLoad(): void {\r\n const editorContainer = document.getElementById(`${this.instanceid}-container`);\r\n if (editorContainer) {\r\n this._editor = monaco.editor.create(\r\n editorContainer,\r\n {\r\n value: this.value,\r\n language: \"json\",\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 );\r\n\r\n this._currentModel = this._editor.getModel();\r\n\r\n this._contentChanged = this._currentModel.onDidChangeContent(this._onEditorChange.bind(this));\r\n\r\n // Intercept the monaco function call that shows error markers to see if our content has errors\r\n const setModelMarkers = monaco.editor.setModelMarkers;\r\n const self = this;\r\n monaco.editor.setModelMarkers = function(model, owner, markers) {\r\n // If this call was for our model, it acts like an onEditorChange event\r\n // but gives us access to the error state as well\r\n if (model.id === self._currentModel.id) {\r\n\r\n // Set the error state & dispatch event if state has changed\r\n self._flagEditorHasErrors(markers.length > 0);\r\n\r\n // Set the changed state & dispatch event if state has changed, but only if there are no errors\r\n if (!self.hasErrors) {\r\n self._flagEditorHasChanges(self._currentModel?.canUndo());\r\n if (self._currentModel?.canUndo()) {\r\n self._flagEditorContentChanged();\r\n }\r\n }\r\n\r\n // Show the error flag if there are errors\r\n const errorFlag = document.getElementById(`${self.instanceid}-errorFlag`);\r\n errorFlag.style.visibility = self.hasErrors ? \"visible\" : \"hidden\";\r\n }\r\n\r\n // Pass on the call to the next editor in a chain of intercepts or, finally, to monaco\r\n setModelMarkers.call(monaco.editor, model, owner, markers);\r\n }\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 this._toggleUndoRedo();\r\n }\r\n }\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n *\r\n * @returns Promise when complete\r\n */\r\n async componentWillLoad(): Promise<void> {\r\n this._initValueObserver();\r\n await this._getTranslations();\r\n return;\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n return (\r\n <Host>\r\n <div id={`${this.instanceid}-editor-container`} class=\"editor-container padding-right\">\r\n <div class=\"editor-controls\">\r\n <div class=\"editor-buttons\">\r\n {/* errors flag */}\r\n <calcite-icon\r\n id={`${this.instanceid}-errorFlag`}\r\n icon=\"exclamation-mark-triangle\"\r\n title={this._translations.errorFlag}\r\n scale=\"s\"\r\n class=\"edit-error-flag\"\r\n ></calcite-icon>\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 display-none\"></div>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n protected _cancelEditsBtnHandler: any;\r\n protected _contentChanged: any;\r\n protected _currentModel: any;\r\n protected _diffEditor: any;\r\n protected _editor: any;\r\n protected _loaded: boolean = false;\r\n protected _searchBtnHandler: any;\r\n protected _translations: typeof JsonEditor_T9n;\r\n protected _useDiffEditor: boolean = false;\r\n protected _valueObserver: MutationObserver;\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 * Gets the contents of the editor.\r\n *\r\n * @returns Promise resolving with the current contents of the editor\r\n */\r\n @Method()\r\n async getEditorContents(): Promise<any> {\r\n return new Promise<any>((resolve, reject) => {\r\n try {\r\n const currentValue = this._currentModel.getValue();\r\n resolve(currentValue);\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Frees the editor events and memory; to be called when the web component is no longer needed.\r\n *\r\n * Because the component lifecycle doesn't include an \"onDestroy\" event\r\n * (@see https://stenciljs.com/docs/component-lifecycle#disconnectedcallback)\r\n * and TypeScript/JavaScript does automatic garbage collection without a callback\r\n * hook until ES2021\r\n * (@see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry),\r\n * this cleanup call needs to be called manually.\r\n */\r\n @Method()\r\n async prepareForDeletion(): Promise<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\r\n this._editor?.dispose();\r\n }\r\n\r\n /**\r\n * Replaces the current selection with the supplied text, inserting if nothing is selected.\r\n *\r\n * @param replacement Text to use for replacement or insertion\r\n * @returns Promise resolving when function is done\r\n */\r\n @Method()\r\n async replaceCurrentSelection(\r\n replacement: string\r\n ): Promise<any> {\r\n const currentSelection = this._editor.getSelection();\r\n this._editor.executeEdits(\"\", [\r\n { range: currentSelection, text: replacement }\r\n ]);\r\n }\r\n\r\n /**\r\n * Resets the contents of the editor with the current `value`.\r\n *\r\n * @returns Promise resolving when function is done\r\n */\r\n @Method()\r\n async reset(): Promise<any> {\r\n return new Promise<any>((resolve, reject) => {\r\n try {\r\n this._reset();\r\n resolve({ success: true });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Private Methods\r\n //\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 protected _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 protected _enableButton(buttonId: string): void {\r\n document.getElementById(buttonId)?.removeAttribute(\"disabled\");\r\n }\r\n\r\n /**\r\n * Dispatches an event that the editor's content has changed.\r\n *\r\n * @protected\r\n */\r\n protected _flagEditorContentChanged(): void {\r\n // Event for notifying that the editor contents have changed\r\n window.dispatchEvent(new CustomEvent(\"solutionEditorContentChanged\", {\r\n detail: {\r\n id: this.instanceid,\r\n contents: this._currentModel.getValue()\r\n },\r\n bubbles: true,\r\n cancelable: false,\r\n composed: true\r\n }));\r\n }\r\n\r\n /**\r\n * Sets the editor's flag indicating if it has changes and dispatches an event when\r\n * the flag value changes.\r\n *\r\n * @param flagHasChanges Current state of change in the editor; if it doesn't match the value saved in this\r\n * object, an event is dispatched with the new value and the saved value is updated\r\n *\r\n * @protected\r\n */\r\n protected _flagEditorHasChanges(flagHasChanges: boolean): void {\r\n // Event for notifying if the editor has updated the value of its hasChanges property\r\n if (this.hasChanges !== flagHasChanges) {\r\n window.dispatchEvent(new CustomEvent(\"solutionEditorHasChanges\", {\r\n detail: flagHasChanges,\r\n bubbles: true,\r\n cancelable: false,\r\n composed: true\r\n }));\r\n this.hasChanges = flagHasChanges;\r\n }\r\n }\r\n\r\n /**\r\n * Sets the editor's flag indicating if it has errors and dispatches an event when\r\n * the flag value changes.\r\n *\r\n * @param flagHasErrors Current state of errors in the editor; if it doesn't match the value saved in this\r\n * object, an event is dispatched with the new value and the saved value is updated\r\n *\r\n * @protected\r\n */\r\n protected _flagEditorHasErrors(flagHasErrors: boolean): void {\r\n // Event for notifying if the editor has updated the value of its hasErrors property\r\n if (this.hasErrors !== flagHasErrors) {\r\n window.dispatchEvent(new CustomEvent(\"solutionEditorHasErrors\", {\r\n detail: flagHasErrors,\r\n bubbles: true,\r\n cancelable: false,\r\n composed: true\r\n }));\r\n this.hasErrors = flagHasErrors;\r\n }\r\n }\r\n\r\n /**\r\n * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof JsonEditor_T9n;\r\n }\r\n\r\n /**\r\n * Initializes the observer that will monitor and respond to changes of the value.\r\n *\r\n * @protected\r\n */\r\n protected _initValueObserver(): void {\r\n this._valueObserver = new MutationObserver(ml => {\r\n ml.forEach(mutation => {\r\n if (mutation.type === 'attributes' && mutation.attributeName === \"value\") {\r\n const newValue: string = mutation.target[mutation.attributeName];\r\n if ((newValue !== mutation.oldValue && this._loaded)) {\r\n this._currentModel.setValue(this.value);\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 * Handles activites appropriate to changes in the editor.\r\n *\r\n * @protected\r\n */\r\n protected _onEditorChange(): void {\r\n // Note: we're not flagging that the editor has changes here because this event\r\n // arrives before the model markers event, which indicates errors. We don't want\r\n // to notify about changes if there are errors.\r\n this._toggleUndoRedo();\r\n }\r\n\r\n /**\r\n * Redoes the previous edit operation.\r\n *\r\n * @protected\r\n */\r\n protected _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 * Resets the stored model to the original value.\r\n *\r\n * @protected\r\n */\r\n protected _reset(): void {\r\n // Restore the original value\r\n this._currentModel.setValue(this.value);\r\n\r\n // update the ui\r\n this._toggleUndoRedo();\r\n }\r\n\r\n /**\r\n * Handles click on \"Search\" button.\r\n *\r\n * @protected\r\n */\r\n protected _search(): void {\r\n this._editor.trigger('toggleFind', 'actions.find');\r\n }\r\n\r\n /**\r\n * Sets the models for the diff editor.\r\n *\r\n * @protected\r\n */\r\n protected _setDiffModel(): void {\r\n if (this._diffEditor) {\r\n this._diffEditor.setModel({\r\n original: monaco.editor.createModel(this.value, \"json\"),\r\n modified: this._editor.getModel()\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Shows/Hides the appropriate editor: regular or diff.\r\n *\r\n * @protected\r\n */\r\n protected _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(\"display-none\");\r\n container.classList.add(\"display-none\");\r\n } else {\r\n diffContainer.classList.add(\"display-none\");\r\n container.classList.remove(\"display-none\");\r\n }\r\n }\r\n\r\n /**\r\n * Toggles the undo and redo buttons.\r\n *\r\n * @protected\r\n */\r\n protected _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 * Undoes the current edit operation.\r\n *\r\n * @protected\r\n */\r\n protected _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","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n$thumbnail-width: 363px;\r\n\r\n.inputBottomSeparation {\r\n @apply mt-0\r\n mx-0\r\n mb-6;\r\n}\r\n\r\n.icon-inline--on-left, .icon-inline--on-right {\r\n @apply inline\r\n align-middle\r\n m-inline-end-1.5;\r\n fill: $solutions-blue;\r\n}\r\n\r\n.scale-down {\r\n @apply object-scale-down;\r\n}\r\n\r\n.img-container {\r\n @apply inline\r\n m-inline-end-4;\r\n max-width: $thumbnail-width;\r\n}\r\n\r\n.summary-count-container {\r\n @apply inline\r\n flex-grow\r\n m-inline-start-3;\r\n}\r\n\r\n.snippet-count-container {\r\n width: calc(100vw - $thumbnail-width);\r\n}\r\n\r\n.parent-container {\r\n @apply max-w-full\r\n p-4;\r\n}\r\n\r\nlabel {\r\n @apply relative\r\n block\r\n mt-0\r\n mx-0\r\n mb-6\r\n min-w-min;\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Element, h, Host, Listen, Prop, State, VNode, Watch } from '@stencil/core';\r\nimport '@esri/calcite-components';\r\nimport state from \"../../utils/solution-store\";\r\nimport SolutionItemDetails_T9n from '../../assets/t9n/solution-item-details/resources.json';\r\nimport { getLocaleComponentStrings } from '../../utils/locale';\r\nimport { IItemGeneralized } from '@esri/solution-common';\r\nimport { IItemTemplateEdit } from '../../utils/interfaces';\r\n\r\n@Component({\r\n tag: 'solution-item-details',\r\n styleUrl: 'solution-item-details.scss',\r\n shadow: false,\r\n})\r\nexport class SolutionItemDetails {\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Host element access\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @Element() el: HTMLSolutionItemDetailsElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (public)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * A template's itemId.\r\n */\r\n @Prop({ mutable: true, reflect: true }) itemId = \"\";\r\n\r\n @Watch(\"itemId\") itemIdWatchHandler(): void {\r\n console.log(\"update item details; id \" + this.itemId);//???\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n */\r\n async componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n async componentWillRender(): Promise<void> {\r\n console.log(\"update item details \" + this.itemId);//???\r\n this.itemEdit = state.getItemInfo(this.itemId);\r\n if (this.itemEdit) {\r\n this.itemDetails = this.itemEdit.item;\r\n this.itemType = this.itemDetails.type;\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n console.log(\"render item details \" + this.itemId);//???\r\n console.log(\" title \" + this.itemDetails.title);//???\r\n console.log(\" snippet \" + this.itemDetails.snippet);//???\r\n return (\r\n <Host>\r\n <div class=\"parent-container\">\r\n <div class=\"inputBottomSeparation\">\r\n <calcite-input id=\"item-title\" value={this.itemDetails.title} />\r\n </div>\r\n\r\n <div class=\"inputBottomSeparation\">\r\n\r\n <input accept=\".jpg,.gif,.png,image/jpg,image/gif,image/png\" class=\"display-none\" onChange={(event) => (this._updateThumbnail(event))} ref={(el) => (this.browseForThumbnail = el)} type=\"file\" />\r\n\r\n <button class=\"font-size--3 btn-link inline-block trailer-quarter\" onClick={() => this._getThumbnail()}>\r\n <svg class=\"icon-inline icon-inline--on-left\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\">\r\n <path d=\"M14.792 2.666l-1.414-1.413a.965.965 0 0 0-1.385-.03l-1.444 1.444-8.763 8.72L.03 15.481a.371.371 0 0 0 .488.488l4.096-1.756 8.763-8.72-.001-.001.002.002 1.443-1.444a.965.965 0 0 0-.03-1.385zM1.569 14.431l.554-1.293.74.739zm2.338-.924l-1.414-1.414 7.963-7.92 1.414 1.415zm8.67-8.626l-1.413-1.414 1.29-1.29a.306.306 0 0 1 .433 0l.981.98a.306.306 0 0 1 0 .433z\" />\r\n </svg>{this._translations.editThumbnail}\r\n </button>\r\n\r\n <div class=\"flex\">\r\n <div class=\"img-container\" ref={(el) => (this.thumbnailContainer = el)}>\r\n <img class=\"scale-down\" height=\"133\" id=\"item-thumbnail\" ref={(el) => (this.thumbnail = el)} width=\"200\" />\r\n </div>\r\n <div class=\"snippet-count-container\">\r\n <calcite-input id=\"item-snippet\" maxlength={250} type=\"textarea\" value={this.itemDetails.snippet} />\r\n <label class=\"font-size--3\" id=\"item-snippet-count\" ref={(el) => (this.itemSnippetCount = el)} />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <calcite-label>{this._translations.description}\r\n <label id=\"item-description-label\">\r\n <calcite-input id=\"item-description\" type=\"textarea\" value={this.itemDetails.description} />\r\n </label>\r\n </calcite-label>\r\n\r\n <calcite-label>{this._translations.tags}\r\n <label id=\"item-tags-label\">\r\n <calcite-input id=\"item-tags\" value={(this.itemDetails.tags && Array.isArray(this.itemDetails.tags) ? this.itemDetails.tags : [this.itemDetails.tags]).join(\",\")} />\r\n </label>\r\n </calcite-label>\r\n\r\n {this.itemType !== \"Group\" ? <calcite-label>{this._translations.credits}\r\n <label id=\"item-credits-label\">\r\n <calcite-input id=\"item-credits\" value={this.itemDetails.accessInformation} />\r\n </label>\r\n </calcite-label> : null}\r\n\r\n {this.itemType !== \"Group\" ? <calcite-label>\r\n <label id=\"item-terms-label\">{this._translations.termsOfUse}\r\n <calcite-input id=\"item-terms\" type=\"textarea\" value={this.itemDetails.licenseInfo} />\r\n </label>\r\n </calcite-label> : null}\r\n\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n componentDidRender(): void {\r\n this._loadThumb()\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Handle to the element for browsing for a file.\r\n */\r\n protected browseForThumbnail: HTMLInputElement;\r\n\r\n @State() itemDetails: IItemGeneralized = {\r\n accessInformation: \"\",\r\n description: \"\",\r\n licenseInfo: \"\",\r\n snippet: \"\",\r\n tags: [],\r\n title: \"\"\r\n } as any;\r\n\r\n @State() protected itemEdit: IItemTemplateEdit;\r\n\r\n protected itemType: string;\r\n\r\n /**\r\n * Contains the translations for this component.\r\n * All UI strings should be defined here.\r\n */\r\n @State() _translations: typeof SolutionItemDetails_T9n;\r\n\r\n /**\r\n * Handle to the snippet character-count feedback.\r\n */\r\n protected itemSnippetCount: HTMLLabelElement;\r\n\r\n /**\r\n * Handle to the thumbnail image display.\r\n */\r\n @State() protected thumbnail: HTMLImageElement;\r\n\r\n /**\r\n * Handle to the thumbnail image container.\r\n */\r\n @State() protected thumbnailContainer: HTMLElement;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Event Listeners\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Updates the component's value with changes to the input fields.\r\n */\r\n @Listen(\"calciteInputInput\")\r\n inputReceivedHandler(event: any): void {\r\n switch (event.target.id) {\r\n case \"item-title\":\r\n this.itemDetails.title = event.target.value;\r\n this._updateStore();\r\n break;\r\n case \"item-snippet\":\r\n if (event.target.value.length > 250) {\r\n event.target.value = event.target.value.substring(0, 250);\r\n }\r\n this.itemDetails.snippet = event.target.value;\r\n this._updateLengthLabel(this.itemDetails.snippet);\r\n this._updateStore();\r\n break;\r\n case \"item-description\":\r\n this.itemDetails.description = event.target.value;\r\n this._updateStore();\r\n break;\r\n case \"item-tags\":\r\n this.itemDetails.tags = event.target.value;\r\n this._updateStore();\r\n break;\r\n case \"item-credits\":\r\n this.itemDetails.accessInformation = event.target.value;\r\n this._updateStore();\r\n break;\r\n case \"item-terms\":\r\n this.itemDetails.licenseInfo = event.target.value;\r\n this._updateStore();\r\n break;\r\n }\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Events\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Public Methods (async)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Opens image file browse dialog.\r\n *\r\n */\r\n protected _getThumbnail(): void {\r\n this.browseForThumbnail.click();\r\n }\r\n\r\n /**\r\n * Load the templates thumbnail\r\n *\r\n */\r\n protected _loadThumb(): void {\r\n if (this.thumbnail && this.itemEdit?.thumbnail) {\r\n // Show the thumbnail\r\n this.thumbnail.src = URL.createObjectURL(this.itemEdit.thumbnail);\r\n this.thumbnailContainer.classList.remove(\"empty-box\");\r\n this.thumbnail.classList.remove(\"display-none\");\r\n } else {\r\n // Replace the thumbnail with an empty box\r\n this.thumbnailContainer.classList.add(\"empty-box\");\r\n this.thumbnail.classList.add(\"display-none\");\r\n }\r\n }\r\n\r\n /**\r\n * Updates the length label to reflect the current number of characters\r\n * relative to the max number of characters supported.\r\n *\r\n * @param phrase the current phrase from the control\r\n */\r\n protected _updateLengthLabel(phrase: string): void {\r\n this.itemSnippetCount.innerText =\r\n this._translations.snippetCountPattern.replace(\"{{n}}\", phrase.length.toString());\r\n }\r\n\r\n /**\r\n * Add or remove the value from the store\r\n */\r\n protected _updateStore(\r\n ): void {\r\n this.itemEdit = state.getItemInfo(this.itemId);\r\n this.itemEdit.item = this.itemDetails;\r\n state.setItemInfo(this.itemEdit);\r\n }\r\n\r\n /**\r\n * Gets and displays image result from browse and updates the item in the store.\r\n *\r\n * @param event The input controls event that contains the new file\r\n * @param updateStore boolean that controls if the new value is written to the store\r\n * should be false on the initial load but true the rest of the time\r\n */\r\n protected _updateThumbnail(\r\n event: any\r\n ): void {\r\n const files = event.target.files;\r\n if (files && files[0]) {\r\n if (this.thumbnail) {\r\n // Update UI\r\n this.thumbnail.src = URL.createObjectURL(files[0]);\r\n\r\n // Update info in store\r\n this.itemEdit = state.getItemInfo(this.itemId);\r\n this.itemEdit.thumbnail = files[0];\r\n state.replaceItemThumbnail(this.itemEdit);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof SolutionItemDetails_T9n;\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n:host {\r\n @apply block;\r\n}\r\n\r\n.container-border {\r\n @apply p-4;\r\n}\r\n\r\n.icon-text {\r\n @apply truncate;\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Element, h, Host, Method, Prop, State, VNode, Watch } from '@stencil/core';\r\nimport state from \"../../utils/solution-store\";\r\nimport { IItemShare, IItemTemplateEdit } from '../../utils/interfaces';\r\nimport SolutionItemSharing_T9n from '../../assets/t9n/solution-item-sharing/resources.json';\r\nimport { getLocaleComponentStrings } from '../../utils/locale';\r\n\r\n@Component({\r\n tag: 'solution-item-sharing',\r\n styleUrl: 'solution-item-sharing.scss',\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 * A template's groupId.\r\n */\r\n @Prop({ mutable: true, reflect: true }) groupId = \"\";\r\n\r\n @Watch(\"groupId\") itemIdWatchHandler(): void {\r\n const itemEdit = state.getItemInfo(this.groupId);\r\n this.sharing = itemEdit.groupDetails;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n */\r\n async componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n return (\r\n <Host>\r\n <div class=\"container-border\">\r\n <calcite-label>{this._translations.groupInfo}</calcite-label>\r\n {this._renderItems(this.sharing)}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the translations for this component.\r\n * All UI strings should be defined here.\r\n */\r\n @State() protected _translations: typeof SolutionItemSharing_T9n;\r\n\r\n /**\r\n * Contains the public sharing for this component.\r\n */\r\n @State() sharing: IItemShare[] = [];\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 @Method()\r\n async getShareInfo(): Promise<any> {\r\n return this.sharing;\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Render share options based on the list of share details\r\n *\r\n * @param objs list of IItemShare objects that are used to expose and store share info for the solutions items\r\n */\r\n _renderItems(\r\n objs: IItemShare[]\r\n ): VNode[] {\r\n return objs && objs.length > 0\r\n ? 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 })\r\n : null;\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.sharing = this.sharing.map((itemShare: IItemShare) => {\r\n if (itemShare.id === id) {\r\n // update the item\r\n itemShare.shareItem = event.detail.switched;\r\n\r\n // update the item in the store\r\n const itemEdit: IItemTemplateEdit = state.getItemInfo(id);\r\n\r\n if (itemShare.shareItem) {\r\n // Add the group to the item if it's not already there\r\n if (!itemEdit.groups) {\r\n itemEdit.groups = [this.groupId];\r\n } else if (itemEdit.groups.indexOf(this.groupId) < 0) {\r\n itemEdit.groups.push(this.groupId);\r\n }\r\n } else {\r\n // Remove the group from the item if it's there\r\n if (itemEdit.groups) {\r\n const i = itemEdit.groups.indexOf(this.groupId);\r\n if (i > -1) {\r\n itemEdit.groups.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n state.setItemInfo(itemEdit);\r\n }\r\n return itemShare;\r\n });\r\n }\r\n\r\n /**\r\n * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof SolutionItemSharing_T9n;\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n:host {\r\n @apply block;\r\n}\r\n\r\n.container-border {\r\n @apply overflow-y-auto;\r\n}\r\n\r\n.org-var-header {\r\n @apply mx-0\r\n mt-0\r\n mb-4;\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Element, Event, EventEmitter, Host, h, Prop, State, VNode, Watch } from '@stencil/core';\r\nimport { IOrganizationVariableItem } from '../../utils/interfaces';\r\nimport SolutionOrganizationVariables_T9n from '../../assets/t9n/solution-organization-variables/resources.json';\r\nimport { getLocaleComponentStrings } from '../../utils/locale';\r\n\r\n@Component({\r\n tag: 'solution-organization-variables',\r\n styleUrl: 'solution-organization-variables.scss',\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 public value for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value = \"\";\r\n\r\n @Watch(\"value\") valueWatchHandler(): void {\r\n this._organizationVariables = JSON.parse(this.value);\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n */\r\n async componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\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-tree id=\"variable-label\">\r\n {this._renderHierarchy(this._organizationVariables)}\r\n </calcite-tree>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @State() protected _organizationVariables: IOrganizationVariableItem[] = [];\r\n\r\n /**\r\n * Contains the translations for this component.\r\n * All UI strings should be defined here.\r\n */\r\n @State() protected _translations: typeof SolutionOrganizationVariables_T9n;\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<{ itemId: string, value: string }>;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Public Methods (async)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Renders the organization based variable items the user can insert at runtime\r\n *\r\n * @param objs a list of organization variables to render\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 * 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 protected _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 * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof SolutionOrganizationVariables_T9n;\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n:host {\r\n @apply block;\r\n}\r\n\r\n.resource-item {\r\n @apply p-4;\r\n}\r\n\r\n.resource-button {\r\n @apply m-inline-end-4;\r\n}\r\n\r\n.resource-progress {\r\n @apply pt-4;\r\n}\r\n\r\n.resources-container {\r\n @apply border-lightgray;\r\n}\r\n\r\n.margin-bottom-1 {\r\n @apply mb-4;\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Element, Host, h, Prop, State, VNode, Watch } from '@stencil/core';\r\nimport { EUpdateType, IResourcePath } from '../../utils/interfaces';\r\nimport { EFileType, UserSession } from '@esri/solution-common';\r\nimport state from \"../../utils/solution-store\";\r\nimport SolutionResourceItem_T9n from '../../assets/t9n/solution-resource-item/resources.json';\r\nimport { getLocaleComponentStrings } from '../../utils/locale';\r\n\r\n@Component({\r\n tag: 'solution-resource-item',\r\n styleUrl: 'solution-resource-item.scss',\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 * Credentials for requests\r\n */\r\n @Prop({ mutable: true }) authentication: UserSession;\r\n\r\n /**\r\n * A template's 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 @Watch(\"itemId\") itemIdWatchHandler(): void {\r\n const item = state.getItemInfo(this.itemId);\r\n this.resourceFilePaths = item.resourceFilePaths;\r\n this.resources = item.resources.map(\r\n // False linting error\r\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n (path) => path.substring(path.lastIndexOf(\"/\") + 1)\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n */\r\n componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n const hasValidResources = this._hasValidResources();\r\n return (\r\n <Host>\r\n <div class=\"resource-item\">\r\n <div class=\"margin-bottom-1\">\r\n <calcite-button\r\n appearance=\"solid\"\r\n class=\"resource-button\"\r\n color=\"blue\"\r\n onClick={() => this._addNewResource()}\r\n >{this._translations.addResource}\r\n </calcite-button>\r\n <calcite-button\r\n appearance=\"solid\"\r\n color=\"blue\"\r\n disabled={!hasValidResources}\r\n onClick={() => this._downloadAll()}\r\n >{this._translations.downloadAll}\r\n </calcite-button>\r\n </div>\r\n <div class=\"resources-container\" style={{ display: hasValidResources ? \"inherit\" : \"none\" }}>\r\n {this._renderResourceList()}\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * The templates resourceFilePaths.\r\n */\r\n @State() resourceFilePaths: IResourcePath[] = [];\r\n\r\n /**\r\n * The templates resources.\r\n */\r\n @State() resources: string[] = [];\r\n\r\n /**\r\n * Contains the translations for this component.\r\n * All UI strings should be defined here.\r\n */\r\n @State() protected _translations: typeof SolutionResourceItem_T9n;\r\n\r\n protected _removedResources: any = {};\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 * Render resources while avoiding thumbnail resoures that are managed by solution-item\r\n *\r\n */\r\n _renderResourceList(): HTMLCalciteValueListElement {\r\n return (\r\n <calcite-value-list multiple>\r\n {\r\n this.resourceFilePaths.reduce((prev, cur) => {\r\n if (cur.type !== EFileType.Thumbnail) {\r\n prev.push(this._renderResource(cur));\r\n }\r\n return prev;\r\n }, [])\r\n }\r\n </calcite-value-list>\r\n )\r\n }\r\n\r\n /**\r\n * Render the resource and supporting actions for download/update/delete/(reset..if deleted)\r\n *\r\n * @param resource the filename and url used to interact with the resource\r\n */\r\n _renderResource(\r\n resource: IResourcePath\r\n ): HTMLCalciteValueListItemElement {\r\n const resettable = resource.updateType === EUpdateType.Remove;\r\n const fullname = resource.folder ? resource.folder + \"/\" + resource.filename : resource.filename;\r\n return (\r\n <calcite-value-list-item\r\n class={resettable ? \"disabled\" : \"\"}\r\n label={fullname}\r\n nonInteractive={true}\r\n value={resource.url}\r\n >\r\n <calcite-action-group expand-disabled=\"true\" layout=\"horizontal\" slot=\"actions-end\">\r\n <calcite-action\r\n disabled={resettable}\r\n icon=\"download\"\r\n label={this._translations.download}\r\n onClick={() => this._download(resource.url, resource.filename)}\r\n scale=\"m\"\r\n text={this._translations.download}\r\n title={this._translations.download}\r\n />\r\n <calcite-action\r\n disabled={resettable}\r\n icon=\"upload-to\"\r\n label={this._translations.update}\r\n onClick={() => this._upload(resource)}\r\n scale=\"m\"\r\n text={this._translations.update}\r\n title={this._translations.update}\r\n />\r\n <calcite-action\r\n disabled={resettable}\r\n icon=\"trash\"\r\n label={this._translations.delete}\r\n onClick={() => this._delete(resource)}\r\n scale=\"m\"\r\n text={this._translations.delete}\r\n title={this._translations.delete}\r\n />\r\n {resettable ? <calcite-action\r\n icon=\"reset\"\r\n label={this._translations.reset}\r\n onClick={() => this._reset(resource.filename)}\r\n scale=\"m\"\r\n text={this._translations.reset}\r\n title={this._translations.reset}\r\n /> : <div class=\"display-none\"/>}\r\n </calcite-action-group>\r\n </calcite-value-list-item>\r\n );\r\n }\r\n\r\n /**\r\n * Adds the name to the deleted array so it will be skipped while rendering\r\n * but still exist if the user chooses to reset\r\n *\r\n * @param resource the resource to be updated\r\n */\r\n _delete(resource: IResourcePath): void {\r\n resource.updateType = EUpdateType.Remove;\r\n this.resourceFilePaths = [...this.resourceFilePaths]; // to trigger refresh\r\n this._updateStore();\r\n }\r\n\r\n /**\r\n * Remove the name from the deleted array so it will again be rendered\r\n *\r\n * @param name the name to be added to the deleted array\r\n */\r\n _reset(\r\n name: string\r\n ): void {\r\n // need to make sure I know if this reset is from the source or a new one\r\n // Because the item's `resources` array is not updated until (and if) the solution is saved,\r\n // we can use it for the reset info\r\n this.resources.some(resourceName => resourceName === name) ?\r\n // Undo removing an existing resource\r\n this.resourceFilePaths = this.resourceFilePaths.map(p => {\r\n if (p.filename === name) {\r\n p.updateType = EUpdateType.None;\r\n }\r\n return p;\r\n }) :\r\n // Undo cancelling the adding of a resource\r\n this.resourceFilePaths = this.resourceFilePaths.map(p => {\r\n if (p.filename === name) {\r\n p.updateType = EUpdateType.Add;\r\n }\r\n return p;\r\n });\r\n this._updateStore();\r\n }\r\n\r\n /**\r\n * Download all of the templates resources\r\n *\r\n */\r\n _downloadAll(): void {\r\n this.resourceFilePaths.forEach((resource: IResourcePath) => {\r\n this._download(resource.url, resource.filename);\r\n });\r\n }\r\n\r\n /**\r\n * Download the current resource\r\n *\r\n * @param url the resource url\r\n * @param name the resource name\r\n */\r\n _download(\r\n url: string,\r\n name: string\r\n ): void {\r\n // files that have been added manually do not need to be requested from the item\r\n if (url.startsWith(\"blob\")) {\r\n this.downloadFile(url, name);\r\n } else {\r\n const _url = `${url}?token=${this.authentication.token}`;\r\n void this.fetchAndDownload(_url, name);\r\n }\r\n }\r\n\r\n /**\r\n * Dynamically creates an anchor and downloads the file\r\n *\r\n * @param url the url of the resource\r\n * @param name the name of the resource\r\n */\r\n downloadFile(\r\n url: string,\r\n name: string\r\n ): void {\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.download = name;\r\n link.target = \"_blank\";\r\n link.click();\r\n }\r\n\r\n /**\r\n * Check if the template resources have any non-thumbnail resources\r\n *\r\n * @returns true if we have data resources and false if only thumbnail\r\n */\r\n _hasValidResources() : boolean {\r\n return this.resourceFilePaths.some(r => r.url.indexOf(\"_info_thumbnail\") < 0);\r\n }\r\n\r\n /**\r\n * Fetches and downloads the resource from the solution\r\n *\r\n * @param url the url of the resource\r\n * @param name the name of the resource\r\n */\r\n async fetchAndDownload(url: string, name: string): Promise<void> {\r\n const image = await fetch(url);\r\n const b = await image.blob();\r\n const bURL = URL.createObjectURL(b);\r\n this.downloadFile(bURL, name);\r\n }\r\n\r\n /**\r\n * Create an input element to support the uploading of the resource and upload the resource\r\n *\r\n * @param resource the resource to be updated\r\n */\r\n _upload(resource: IResourcePath): void {\r\n const _input = document.createElement(\"input\");\r\n _input.classList.add(\"display-none\");\r\n _input.onchange = this._updateResource.bind(this, resource);\r\n _input.type = \"file\";\r\n _input.click();\r\n }\r\n\r\n /**\r\n * Create an input element to support the uploading of a resource and add the new resource\r\n *\r\n */\r\n _addNewResource(): void {\r\n const _input = document.createElement(\"input\");\r\n _input.classList.add(\"display-none\");\r\n _input.onchange = this._add.bind(this);\r\n _input.type = \"file\";\r\n _input.click();\r\n }\r\n\r\n /**\r\n * Replace the resource file path when update action is used\r\n *\r\n * @param resourcePath the resource to be updated\r\n * @param event the input event that contains the file\r\n */\r\n _updateResource(\r\n resourcePath: IResourcePath,\r\n event: any\r\n ): void {\r\n const files = event.target.files;\r\n if (files && files[0]) {\r\n\r\n resourcePath.blob = files[0];\r\n resourcePath.updateType = EUpdateType.Update;\r\n\r\n this._updateStore();\r\n }\r\n }\r\n\r\n /**\r\n * Add the new resource to the resource file paths\r\n *\r\n * @param event the inputs event that contains the new file\r\n */\r\n _add(event: any): void {\r\n const files = event.target.files;\r\n if (files && files[0]) {\r\n const url = URL.createObjectURL(files[0]);\r\n const filename = files[0].name;\r\n\r\n // Add the item if it's not already in the resource file paths list\r\n if (!this.resourceFilePaths.some(r => r.filename === filename && r.url === url)) {\r\n this.resourceFilePaths = [\r\n ...this.resourceFilePaths,\r\n {\r\n url,\r\n type: EFileType.Data,\r\n folder: undefined,\r\n filename,\r\n blob: files[0],\r\n updateType: EUpdateType.Add\r\n }\r\n ];\r\n this._updateStore();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Add or remove the value from the store\r\n */\r\n protected _updateStore(\r\n ): void {\r\n const item = state.getItemInfo(this.itemId);\r\n item.resourceFilePaths = this.resourceFilePaths;\r\n state.setItemInfo(item);\r\n }\r\n\r\n /**\r\n * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof SolutionResourceItem_T9n;\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n:host {\r\n @apply flexbox;\r\n}\r\n\r\n.solution-data-container {\r\n position: absolute;\r\n height: -moz-available; /* This doesn't work in Firefox, but if we don't specify it and then override it with the next line, it gets automatically inserted */\r\n height: calc(100% - 48px);\r\n height: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */\r\n height: stretch;\r\n width: -moz-available; /* This doesn't work in Firefox, but if we don't specify it and then override it with the next line, it gets automatically inserted */\r\n width: 100%;\r\n width: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */\r\n width: stretch;\r\n}\r\n\r\n.solution-data-child-container {\r\n @apply h-full\r\n w-full\r\n flex\r\n flex-col\r\n overflow-y-auto;\r\n}\r\n\r\n.solution-data-editor-container {\r\n @apply h-full;\r\n}\r\n\r\n.solution-data-child-container-collapsed {\r\n @apply h-full\r\n flex\r\n flex-col\r\n overflow-auto;\r\n width: 50px;\r\n}\r\n\r\n.inputBottomSeparation {\r\n @apply mt-0\r\n mx-0\r\n mb-6;\r\n}\r\n\r\n.json-editor {\r\n @apply m-4\r\n w-auto\r\n fill-available;\r\n}\r\n\r\n.collapse-btn {\r\n @apply pt-4\r\n pb-0\r\n px-4;\r\n}\r\n\r\n.org-vars {\r\n @apply pt-4\r\n pb-0\r\n px-4;\r\n}\r\n\r\n.sol-vars {\r\n @apply py-0\r\n px-4;\r\n min-height: 45%;\r\n}\r\n\r\n.padding-1 {\r\n @apply p-4;\r\n}\r\n\r\n.light {\r\n background-color: $solutions-background-color;\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Element, Host, h, Prop, State, VNode, Watch } from '@stencil/core';\r\nimport state from \"../../utils/solution-store\";\r\nimport SolutionTemplateData_T9n from '../../assets/t9n/solution-template-data/resources.json';\r\nimport { getLocaleComponentStrings } from '../../utils/locale';\r\n\r\n@Component({\r\n tag: 'solution-template-data',\r\n styleUrl: 'solution-template-data.scss',\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 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 * 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 template's 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 @Watch(\"itemId\") itemIdWatchHandler(): void {\r\n this._initializing = true;\r\n this.value = JSON.stringify(\r\n this.instanceid === \"data\"\r\n ? state.getItemInfo(this.itemId).data\r\n : state.getItemInfo(this.itemId).properties\r\n , null, 2);\r\n }\r\n\r\n /*\r\n * Contains the organization based variables\r\n */\r\n @Prop({ mutable: true, reflect: true }) organizationVariables = \"\";\r\n\r\n /**\r\n * Contains the solution based variables\r\n */\r\n @Prop({ mutable: true, reflect: true }) solutionVariables = \"\";\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 constructor() {\r\n window.addEventListener(\"solutionEditorContentChanged\",\r\n (evt) => {\r\n if (this.itemId) {\r\n const { id, contents } = (evt as any).detail;\r\n const [itemId, instanceId] = id.split(\"|\");\r\n if (itemId == this.itemId && instanceId === this.instanceid) {\r\n if(!this._initializing && contents.length > 0) {\r\n const itemEdit = state.getItemInfo(itemId);\r\n if (instanceId === \"data\") {\r\n itemEdit.data = JSON.parse(contents);\r\n } else {\r\n itemEdit.properties = JSON.parse(contents);\r\n }\r\n state.setItemInfo(itemEdit);\r\n }\r\n this._initializing = false;\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n */\r\n componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n return (\r\n <Host>\r\n <div class=\"solution-data-container\">\r\n <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 class=\"solution-data-editor-container\"\r\n instanceid={this.itemId + \"|\" + this.instanceid}\r\n value={this.value}\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.varsOpen ? this._translations.collapse : this._translations.expand}\r\n />\r\n <div class={this.varsOpen ? \"org-vars\" : \"org-vars display-none\"} id=\"orgVars\">\r\n <solution-organization-variables\r\n value={this.organizationVariables}\r\n />\r\n </div>\r\n <div class={this.varsOpen ? \"sol-vars\" : \"sol-vars display-none\"} id=\"solVars\">\r\n <solution-variables\r\n value={this.solutionVariables}\r\n />\r\n </div>\r\n </div>\r\n </calcite-shell-panel>\r\n </calcite-shell>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Contains the translations for this component.\r\n * All UI strings should be defined here.\r\n */\r\n @State() protected _translations: typeof SolutionTemplateData_T9n;\r\n\r\n @State() protected value = \"\";\r\n\r\n protected _initializing = false;\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 * 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 /**\r\n * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof SolutionTemplateData_T9n;\r\n }\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n:host {\r\n @apply block;\r\n}\r\n\r\n.container-border {\r\n @apply overflow-y-hidden;\r\n}\r\n\r\n.org-var-header {\r\n @apply my-4\r\n mx-0;\r\n}\r\n\r\n.icon-text {\r\n @apply truncate;\r\n}\r\n","/** @license\r\n * Copyright 2022 Esri\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\nimport { Component, Element, Event, EventEmitter, Host, h, Prop, State, VNode, Watch } from '@stencil/core';\r\nimport { IVariableItem } from '../../utils/interfaces';\r\nimport SolutionVariables_T9n from '../../assets/t9n/solution-variables/resources.json';\r\nimport { getLocaleComponentStrings } from '../../utils/locale';\r\n\r\n@Component({\r\n tag: 'solution-variables',\r\n styleUrl: 'solution-variables.scss',\r\n shadow: true,\r\n})\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 public value for this component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) value = \"\";\r\n\r\n @Watch(\"value\") valueWatchHandler(): void {\r\n this._solutionVariables = JSON.parse(this.value);\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Lifecycle\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * StencilJS: Called once just after the component is first connected to the DOM.\r\n */\r\n componentWillLoad(): Promise<void> {\r\n return this._getTranslations();\r\n }\r\n\r\n /**\r\n * Renders the component.\r\n */\r\n render(): VNode {\r\n 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-tree id=\"variable-label\">\r\n {this._renderHierarchy(this._solutionVariables)}\r\n </calcite-tree>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Properties (protected)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n @State() protected _solutionVariables: IVariableItem[] = [];\r\n\r\n /**\r\n * Contains the translations for this component.\r\n * All UI strings should be defined here.\r\n */\r\n @State() protected _translations: typeof SolutionVariables_T9n;\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<{ itemId: string, value: string }>;\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Public Methods (async)\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n //--------------------------------------------------------------------------\r\n //\r\n // Private Methods\r\n //\r\n //--------------------------------------------------------------------------\r\n\r\n /**\r\n * Render the solution item variables that the user can insert into temaplates at runtime.\r\n *\r\n * @param objs a list of variable items that have been gathered from the solutions templates\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 onClick={(evt) => this._toggleExpand(evt)}>\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 * 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 protected _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 * Toggle the tree item that was clicked\r\n *\r\n * @param evt the clicks mouse event\r\n */\r\n protected _toggleExpand(\r\n evt: any = undefined\r\n ): void {\r\n const treeItem = evt?.target?.closest(\"calcite-tree-item\");\r\n if (treeItem) {\r\n treeItem.expanded = !treeItem.expanded;\r\n }\r\n }\r\n\r\n /**\r\n * Fetches the component's translations\r\n *\r\n * @protected\r\n */\r\n protected async _getTranslations(): Promise<void> {\r\n const translations = await getLocaleComponentStrings(this.el);\r\n this._translations = translations[0] as typeof SolutionVariables_T9n;\r\n }\r\n}\r\n"],"version":3}