@carbon/web-components 1.36.1 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/dist/accordion.min.js +1 -1
  2. package/dist/accordion.rtl.min.js +1 -1
  3. package/dist/breadcrumb.min.js +1 -1
  4. package/dist/breadcrumb.rtl.min.js +1 -1
  5. package/dist/{button-4e0b32c8.js → button-035465bb.js} +1 -1
  6. package/dist/{button-99f6b809.js → button-1a16f30e.js} +1 -1
  7. package/dist/button.min.js +1 -1
  8. package/dist/button.rtl.min.js +1 -1
  9. package/dist/{checkbox-d61e0f46.js → checkbox-61c8aa71.js} +1 -1
  10. package/dist/{checkbox-39ba54c6.js → checkbox-93412a35.js} +1 -1
  11. package/dist/checkbox.min.js +1 -1
  12. package/dist/checkbox.rtl.min.js +1 -1
  13. package/dist/code-snippet.min.js +2 -2
  14. package/dist/code-snippet.rtl.min.js +2 -2
  15. package/dist/combo-box.min.js +1 -1
  16. package/dist/combo-box.rtl.min.js +1 -1
  17. package/dist/{content-switcher-item-f853369b.js → content-switcher-item-6df85f1c.js} +1 -1
  18. package/dist/{content-switcher-item-55452b53.js → content-switcher-item-88761ecf.js} +1 -1
  19. package/dist/content-switcher.min.js +1 -1
  20. package/dist/content-switcher.rtl.min.js +1 -1
  21. package/dist/{copy-button-9fb90a01.js → copy-button-07fadd2e.js} +1 -1
  22. package/dist/{copy-button-7a7bbaf8.js → copy-button-d62f4b6e.js} +1 -1
  23. package/dist/copy-button.min.js +1 -1
  24. package/dist/copy-button.rtl.min.js +1 -1
  25. package/dist/data-table.min.js +2 -2
  26. package/dist/data-table.rtl.min.js +2 -2
  27. package/dist/date-picker.min.js +3 -3
  28. package/dist/date-picker.rtl.min.js +3 -3
  29. package/dist/{dropdown-item-2d248e51.js → dropdown-item-0d7d9847.js} +1 -1
  30. package/dist/{dropdown-item-9c062c1c.js → dropdown-item-5ea25a90.js} +1 -1
  31. package/dist/dropdown.min.js +1 -1
  32. package/dist/dropdown.rtl.min.js +1 -1
  33. package/dist/file-uploader.min.js +2 -2
  34. package/dist/file-uploader.rtl.min.js +2 -2
  35. package/dist/{floating-menu-72acc1bc.js → floating-menu-14b01da2.js} +1 -1
  36. package/dist/floating-menu.min.js +1 -1
  37. package/dist/floating-menu.rtl.min.js +1 -1
  38. package/dist/form.min.js +1 -1
  39. package/dist/form.rtl.min.js +1 -1
  40. package/dist/inline-loading.min.js +2 -2
  41. package/dist/inline-loading.rtl.min.js +2 -2
  42. package/dist/{input-d66d0e9c.js → input-13d32d6b.js} +2 -2
  43. package/dist/{input-47f04966.js → input-e5ad8493.js} +2 -2
  44. package/dist/input.min.js +1 -1
  45. package/dist/input.rtl.min.js +1 -1
  46. package/dist/{link-f9de12ea.js → link-00bbdb76.js} +1 -1
  47. package/dist/{link-afe664a3.js → link-1e3fcabc.js} +1 -1
  48. package/dist/link.min.js +1 -1
  49. package/dist/link.rtl.min.js +1 -1
  50. package/dist/list.min.js +1 -1
  51. package/dist/list.rtl.min.js +1 -1
  52. package/dist/{loading-926a29f5.js → loading-2a5481c6.js} +1 -1
  53. package/dist/{loading-a1c01e84.js → loading-5f4a55c9.js} +1 -1
  54. package/dist/{loading-icon-9d1c486a.js → loading-icon-4be51b70.js} +1 -1
  55. package/dist/loading.min.js +1 -1
  56. package/dist/loading.rtl.min.js +1 -1
  57. package/dist/modal.min.js +2 -2
  58. package/dist/modal.rtl.min.js +2 -2
  59. package/dist/multi-select.min.js +1 -1
  60. package/dist/multi-select.rtl.min.js +1 -1
  61. package/dist/notification.min.js +1 -1
  62. package/dist/notification.rtl.min.js +1 -1
  63. package/dist/number-input.min.js +2 -2
  64. package/dist/number-input.rtl.min.js +2 -2
  65. package/dist/overflow-menu.min.js +2 -2
  66. package/dist/overflow-menu.rtl.min.js +2 -2
  67. package/dist/pagination.min.js +1 -1
  68. package/dist/pagination.rtl.min.js +1 -1
  69. package/dist/progress-indicator.min.js +2 -12
  70. package/dist/progress-indicator.rtl.min.js +2 -12
  71. package/dist/radio-button.min.js +1 -1
  72. package/dist/radio-button.rtl.min.js +1 -1
  73. package/dist/{search-e6781408.js → search-7746f7ab.js} +1 -1
  74. package/dist/{search-f36f74c2.js → search-dc317efe.js} +1 -1
  75. package/dist/search.min.js +1 -1
  76. package/dist/search.rtl.min.js +1 -1
  77. package/dist/select.min.js +1 -1
  78. package/dist/select.rtl.min.js +1 -1
  79. package/dist/skeleton-placeholder.min.js +1 -1
  80. package/dist/skeleton-placeholder.rtl.min.js +1 -1
  81. package/dist/skeleton-text.min.js +1 -1
  82. package/dist/skeleton-text.rtl.min.js +1 -1
  83. package/dist/skip-to-content.min.js +1 -1
  84. package/dist/skip-to-content.rtl.min.js +1 -1
  85. package/dist/slider.min.js +1 -1
  86. package/dist/slider.rtl.min.js +1 -1
  87. package/dist/structured-list.min.js +1 -1
  88. package/dist/structured-list.rtl.min.js +1 -1
  89. package/dist/tabs.min.js +2 -2
  90. package/dist/tabs.rtl.min.js +2 -2
  91. package/dist/tag.min.js +1 -1
  92. package/dist/tag.rtl.min.js +1 -1
  93. package/dist/textarea.min.js +1 -1
  94. package/dist/textarea.rtl.min.js +1 -1
  95. package/dist/tile.min.js +1 -1
  96. package/dist/tile.rtl.min.js +1 -1
  97. package/dist/toggle.min.js +2 -2
  98. package/dist/toggle.rtl.min.js +2 -2
  99. package/dist/tooltip.min.js +2 -2
  100. package/dist/tooltip.rtl.min.js +2 -2
  101. package/dist/ui-shell.min.js +2 -2
  102. package/dist/ui-shell.rtl.min.js +2 -2
  103. package/es/components/accordion/accordion-item.js +19 -1
  104. package/es/components/accordion/accordion-item.js.map +1 -1
  105. package/es/components/accordion/accordion.js.map +1 -1
  106. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  107. package/es/components/breadcrumb/breadcrumb-overflow-menu.js +5 -1
  108. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  109. package/es/components/breadcrumb/breadcrumb.js +6 -1
  110. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  111. package/es/components/button/button-skeleton.js +21 -1
  112. package/es/components/button/button-skeleton.js.map +1 -1
  113. package/es/components/button/button.js +34 -2
  114. package/es/components/button/button.js.map +1 -1
  115. package/es/components/checkbox/checkbox.js +18 -1
  116. package/es/components/checkbox/checkbox.js.map +1 -1
  117. package/es/components/code-snippet/code-snippet-skeleton.js +5 -1
  118. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  119. package/es/components/code-snippet/code-snippet.js +26 -5
  120. package/es/components/code-snippet/code-snippet.js.map +1 -1
  121. package/es/components/combo-box/combo-box.js +23 -2
  122. package/es/components/combo-box/combo-box.js.map +1 -1
  123. package/es/components/content-switcher/content-switcher-item.js +11 -1
  124. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  125. package/es/components/content-switcher/content-switcher.js +7 -1
  126. package/es/components/content-switcher/content-switcher.js.map +1 -1
  127. package/es/components/copy-button/copy-button.js +15 -2
  128. package/es/components/copy-button/copy-button.js.map +1 -1
  129. package/es/components/data-table/table-batch-actions.js +15 -1
  130. package/es/components/data-table/table-batch-actions.js.map +1 -1
  131. package/es/components/data-table/table-body.js.map +1 -1
  132. package/es/components/data-table/table-cell-skeleton.js.map +1 -1
  133. package/es/components/data-table/table-cell.js.map +1 -1
  134. package/es/components/data-table/table-expand-row.js +10 -1
  135. package/es/components/data-table/table-expand-row.js.map +1 -1
  136. package/es/components/data-table/table-expanded-row.js +7 -1
  137. package/es/components/data-table/table-expanded-row.js.map +1 -1
  138. package/es/components/data-table/table-head.js.map +1 -1
  139. package/es/components/data-table/table-header-cell.js +12 -1
  140. package/es/components/data-table/table-header-cell.js.map +1 -1
  141. package/es/components/data-table/table-row.js +22 -1
  142. package/es/components/data-table/table-row.js.map +1 -1
  143. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  144. package/es/components/data-table/table-toolbar-search.js +8 -1
  145. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  146. package/es/components/data-table/table-toolbar.js.map +1 -1
  147. package/es/components/data-table/table.js.map +1 -1
  148. package/es/components/date-picker/date-picker-input-skeleton.js +4 -1
  149. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  150. package/es/components/date-picker/date-picker-input.js +30 -2
  151. package/es/components/date-picker/date-picker-input.js.map +1 -1
  152. package/es/components/date-picker/date-picker.js +12 -1
  153. package/es/components/date-picker/date-picker.js.map +1 -1
  154. package/es/components/dropdown/dropdown-item.js +6 -1
  155. package/es/components/dropdown/dropdown-item.js.map +1 -1
  156. package/es/components/dropdown/dropdown-skeleton.js +8 -1
  157. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  158. package/es/components/dropdown/dropdown.js +72 -4
  159. package/es/components/dropdown/dropdown.js.map +1 -1
  160. package/es/components/file-uploader/drop-container.js +16 -1
  161. package/es/components/file-uploader/drop-container.js.map +1 -1
  162. package/es/components/file-uploader/file-uploader-item.js +29 -3
  163. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  164. package/es/components/file-uploader/file-uploader.js +12 -1
  165. package/es/components/file-uploader/file-uploader.js.map +1 -1
  166. package/es/components/floating-menu/floating-menu.d.ts +1 -1
  167. package/es/components/floating-menu/floating-menu.js +5 -2
  168. package/es/components/floating-menu/floating-menu.js.map +1 -1
  169. package/es/components/form/form-item.js.map +1 -1
  170. package/es/components/inline-loading/inline-loading.js +14 -3
  171. package/es/components/inline-loading/inline-loading.js.map +1 -1
  172. package/es/components/input/input.d.ts +1 -1
  173. package/es/components/input/input.js +48 -4
  174. package/es/components/input/input.js.map +1 -1
  175. package/es/components/link/link.js +26 -3
  176. package/es/components/link/link.js.map +1 -1
  177. package/es/components/list/list-item.js +8 -1
  178. package/es/components/list/list-item.js.map +1 -1
  179. package/es/components/list/ordered-list.js +5 -1
  180. package/es/components/list/ordered-list.js.map +1 -1
  181. package/es/components/list/unordered-list.js +5 -1
  182. package/es/components/list/unordered-list.js.map +1 -1
  183. package/es/components/loading/loading-icon.js +16 -1
  184. package/es/components/loading/loading-icon.js.map +1 -1
  185. package/es/components/loading/loading.js.map +1 -1
  186. package/es/components/modal/modal-body.js.map +1 -1
  187. package/es/components/modal/modal-close-button.js +9 -1
  188. package/es/components/modal/modal-close-button.js.map +1 -1
  189. package/es/components/modal/modal-footer.js +5 -1
  190. package/es/components/modal/modal-footer.js.map +1 -1
  191. package/es/components/modal/modal-header.js.map +1 -1
  192. package/es/components/modal/modal-heading.js.map +1 -1
  193. package/es/components/modal/modal-label.js.map +1 -1
  194. package/es/components/modal/modal.js +20 -1
  195. package/es/components/modal/modal.js.map +1 -1
  196. package/es/components/multi-select/multi-select-item.js +19 -1
  197. package/es/components/multi-select/multi-select-item.js.map +1 -1
  198. package/es/components/multi-select/multi-select.js +35 -3
  199. package/es/components/multi-select/multi-select.js.map +1 -1
  200. package/es/components/notification/inline-notification.js +27 -3
  201. package/es/components/notification/inline-notification.js.map +1 -1
  202. package/es/components/notification/toast-notification.js +21 -2
  203. package/es/components/notification/toast-notification.js.map +1 -1
  204. package/es/components/number-input/number-input-skeleton.js +4 -1
  205. package/es/components/number-input/number-input-skeleton.js.map +1 -1
  206. package/es/components/number-input/number-input.d.ts +1 -1
  207. package/es/components/number-input/number-input.js +80 -6
  208. package/es/components/number-input/number-input.js.map +1 -1
  209. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  210. package/es/components/overflow-menu/overflow-menu-item.js +16 -1
  211. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  212. package/es/components/overflow-menu/overflow-menu.js +5 -1
  213. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  214. package/es/components/pagination/page-sizes-select.js +14 -1
  215. package/es/components/pagination/page-sizes-select.js.map +1 -1
  216. package/es/components/pagination/pages-select.js +25 -2
  217. package/es/components/pagination/pages-select.js.map +1 -1
  218. package/es/components/pagination/pagination.js +30 -1
  219. package/es/components/pagination/pagination.js.map +1 -1
  220. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  221. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  222. package/es/components/progress-indicator/progress-step-skeleton.js +10 -1
  223. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  224. package/es/components/progress-indicator/progress-step.js +19 -2
  225. package/es/components/progress-indicator/progress-step.js.map +1 -1
  226. package/es/components/radio-button/radio-button-group.js.map +1 -1
  227. package/es/components/radio-button/radio-button-skeleton.js +4 -1
  228. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  229. package/es/components/radio-button/radio-button.js +14 -1
  230. package/es/components/radio-button/radio-button.js.map +1 -1
  231. package/es/components/search/search-skeleton.js +4 -1
  232. package/es/components/search/search-skeleton.js.map +1 -1
  233. package/es/components/search/search.js +25 -1
  234. package/es/components/search/search.js.map +1 -1
  235. package/es/components/select/select.js +58 -4
  236. package/es/components/select/select.js.map +1 -1
  237. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  238. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  239. package/es/components/skip-to-content/skip-to-content.js +5 -1
  240. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  241. package/es/components/slider/slider-input.js +12 -1
  242. package/es/components/slider/slider-input.js.map +1 -1
  243. package/es/components/slider/slider-skeleton.js +12 -1
  244. package/es/components/slider/slider-skeleton.js.map +1 -1
  245. package/es/components/slider/slider.js +45 -1
  246. package/es/components/slider/slider.js.map +1 -1
  247. package/es/components/structured-list/structured-list-body.js.map +1 -1
  248. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  249. package/es/components/structured-list/structured-list-head.js.map +1 -1
  250. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  251. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  252. package/es/components/structured-list/structured-list-header-row.js +4 -1
  253. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  254. package/es/components/structured-list/structured-list-row.js +14 -1
  255. package/es/components/structured-list/structured-list-row.js.map +1 -1
  256. package/es/components/structured-list/structured-list.js +3 -1
  257. package/es/components/structured-list/structured-list.js.map +1 -1
  258. package/es/components/tabs/tab-skeleton.js.map +1 -1
  259. package/es/components/tabs/tab.js +11 -1
  260. package/es/components/tabs/tab.js.map +1 -1
  261. package/es/components/tabs/tabs-skeleton.js +8 -1
  262. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  263. package/es/components/tabs/tabs.js +26 -1
  264. package/es/components/tabs/tabs.js.map +1 -1
  265. package/es/components/tag/filter-tag.js +6 -1
  266. package/es/components/tag/filter-tag.js.map +1 -1
  267. package/es/components/tag/tag.css.js +1 -1
  268. package/es/components/tag/tag.js.map +1 -1
  269. package/es/components/textarea/textarea-skeleton.js +4 -1
  270. package/es/components/textarea/textarea-skeleton.js.map +1 -1
  271. package/es/components/textarea/textarea.js +32 -1
  272. package/es/components/textarea/textarea.js.map +1 -1
  273. package/es/components/tile/expandable-tile.js +17 -1
  274. package/es/components/tile/expandable-tile.js.map +1 -1
  275. package/es/components/tile/selectable-tile.js +17 -1
  276. package/es/components/tile/selectable-tile.js.map +1 -1
  277. package/es/components/tile/tile-group.js.map +1 -1
  278. package/es/components/tile/tile.js.map +1 -1
  279. package/es/components/toggle/toggle.js +33 -2
  280. package/es/components/toggle/toggle.js.map +1 -1
  281. package/es/components/tooltip/tooltip-body.js +4 -1
  282. package/es/components/tooltip/tooltip-body.js.map +1 -1
  283. package/es/components/tooltip/tooltip-definition.js +8 -1
  284. package/es/components/tooltip/tooltip-definition.js.map +1 -1
  285. package/es/components/tooltip/tooltip-footer.js.map +1 -1
  286. package/es/components/tooltip/tooltip-icon.js +11 -1
  287. package/es/components/tooltip/tooltip-icon.js.map +1 -1
  288. package/es/components/tooltip/tooltip.js +4 -1
  289. package/es/components/tooltip/tooltip.js.map +1 -1
  290. package/es/components/ui-shell/header-menu-button.js +10 -1
  291. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  292. package/es/components/ui-shell/header-menu.js +19 -1
  293. package/es/components/ui-shell/header-menu.js.map +1 -1
  294. package/es/components/ui-shell/header-name.js +10 -2
  295. package/es/components/ui-shell/header-name.js.map +1 -1
  296. package/es/components/ui-shell/header-nav-item.js +11 -1
  297. package/es/components/ui-shell/header-nav-item.js.map +1 -1
  298. package/es/components/ui-shell/header-nav.js +9 -1
  299. package/es/components/ui-shell/header-nav.js.map +1 -1
  300. package/es/components/ui-shell/header.js.map +1 -1
  301. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  302. package/es/components/ui-shell/side-nav-link.js +16 -1
  303. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  304. package/es/components/ui-shell/side-nav-menu-item.js +7 -1
  305. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  306. package/es/components/ui-shell/side-nav-menu.js +30 -1
  307. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  308. package/es/components/ui-shell/side-nav.js.map +1 -1
  309. package/es/globals/internal/storybook-cdn.d.ts +1 -1
  310. package/es/globals/internal/storybook-cdn.js +2 -2
  311. package/es/globals/internal/storybook-cdn.js.map +1 -1
  312. package/package.json +4 -3
  313. package/scss/components/tag/tag.scss +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"code-snippet.js","names":["classMap","html","property","query","LitElement","ChevronDown16","settings","FocusMixin","_createHandleFeedbackTooltip","createHandleCopyButtonFeedbackTooltip","_renderButton","renderCopyButton","CODE_SNIPPET_COLOR_SCHEME","CODE_SNIPPET_TYPE","styles","carbonElement","customElement","prefix","renderExpando","children","handleClick","_t","_","class","role","renderCode","assistiveText","expanded","classes","Boolean","_t2","BXCodeSnippet","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","key","value","_handleClickCopyButton","ownerDocument","doc","selection","defaultView","getSelection","removeAllRanges","code","createElement","className","pre","textContent","appendChild","body","range","createRange","selectNodeContents","addRange","execCommand","_handleCopyButtonFeedbackTooltip","copyButtonFeedbackTimeout","removeChild","showFeedback","_showCopyButtonFeedback","requestUpdate","_handleClickExpando","_expanded","_handleSlotChange","type","_preNode","preNode","MULTI","getBoundingClientRect","height","_showExpando","decorators","attribute","reflect","REGULAR","Number","SINGLE","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","exec","navigator","userAgent","render","codeAssistiveText","collapseButtonText","copyButtonAssistiveText","copyButtonFeedbackText","expandButtonText","showCopyButtonFeedback","showExpando","handleClickCopyButton","handleClickExpando","handleSlotChange","_t3","_t4","feedbackText","handleClickButton","_t5","_t6","undefined","_t7","_t8","_t9","_t10","static"],"sources":["components/code-snippet/code-snippet.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query, LitElement } from 'lit-element';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport {\n _createHandleFeedbackTooltip as createHandleCopyButtonFeedbackTooltip,\n _renderButton as renderCopyButton,\n} from '../copy-button/copy-button';\nimport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE } from './defs';\nimport styles from './code-snippet.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE };\n\nconst { prefix } = settings;\n\n/**\n * @param values The values to render.\n * @param values.children The child nodes.\n * @param values.handleClick The handler for the `click` event on the button.\n * @returns The template result for the expando.\n */\nconst renderExpando = ({\n children,\n handleClick,\n}: {\n children: string | TemplateResult;\n handleClick: EventListener;\n}) => html`\n <button\n type=\"button\"\n class=\"${prefix}--snippet-btn--expand\"\n @click=\"${handleClick}\">\n <span id=\"button-text\" class=\"${prefix}--snippet-btn--text\">\n ${children}\n </span>\n ${ChevronDown16({\n 'aria-labeledby': 'button-text',\n class: `${prefix}--icon-chevron--down ${prefix}--snippet__icon`,\n role: 'img',\n })}\n </button>\n`;\n\n/**\n * @param values The values to render.\n * @param values.assistiveText The assistive text to announce that the node is for code snippet.\n * @param [values.expanded] `true` to show the expanded state (for multi-line variant).\n * @param values.children The child nodes.\n * @returns The template result for the code snippet.\n */\nconst renderCode = ({\n assistiveText,\n expanded,\n children,\n}: {\n assistiveText: string;\n expanded?: boolean;\n children: string | TemplateResult;\n}) => {\n const classes = classMap({\n [`${prefix}--snippet-container`]: true,\n [`${prefix}-ce--snippet-container--expanded`]: Boolean(expanded),\n });\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n <div role=\"textbox\" tabindex=\"0\" class=\"${classes}\" aria-label=\"${assistiveText}\"><code><pre>${children}</pre></code></div>\n `;\n};\n\n/**\n * Basic code snippet.\n *\n * @element bx-code-snippet\n */\n@customElement(`${prefix}-code-snippet`)\nclass BXCodeSnippet extends FocusMixin(LitElement) {\n /**\n * `true` to expand multi-line variant of code snippet.\n */\n private _expanded = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _showCopyButtonFeedback = false;\n\n /**\n * `true` to show the expando.\n */\n private _showExpando = false;\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickCopyButton() {\n const { ownerDocument: doc } = this;\n const selection = doc!.defaultView!.getSelection();\n selection!.removeAllRanges();\n const code = doc!.createElement('code');\n code.className = `${prefix}--visually-hidden`;\n const pre = doc!.createElement('pre');\n pre.textContent = this.textContent;\n code.appendChild(pre);\n // Using `<code>` in shadow DOM seems to lose the LFs in some browsers\n doc!.body.appendChild(code);\n const range = doc!.createRange();\n range.selectNodeContents(code);\n selection!.addRange(range);\n doc!.execCommand('copy');\n this._handleCopyButtonFeedbackTooltip(this.copyButtonFeedbackTimeout);\n doc!.body.removeChild(code);\n selection!.removeAllRanges();\n }\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleCopyButtonFeedbackTooltip =\n createHandleCopyButtonFeedbackTooltip(\n ({ showFeedback = false }: { showFeedback?: boolean }) => {\n this._showCopyButtonFeedback = showFeedback;\n this.requestUpdate();\n }\n );\n\n /**\n * Handles `click` event on the expando.\n */\n private _handleClickExpando() {\n this._expanded = !this._expanded;\n this.requestUpdate();\n }\n\n /**\n * Handles change in slot content to determine if the content\n */\n private _handleSlotChange() {\n const { type, _preNode: preNode } = this;\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n if (preNode.getBoundingClientRect().height > 255) {\n this._showExpando = true;\n this.requestUpdate();\n }\n }\n }\n\n /**\n * The `<pre>` element in the shadow DOM.\n */\n @query('pre')\n private _preNode!: HTMLPreElement;\n\n /**\n * An assistive text for screen reader to advice a DOM node is for code snippet.\n */\n @property({ attribute: 'code-assistive-text' })\n codeAssistiveText = 'code-snippet';\n\n /**\n * The context content for the collapse button.\n */\n @property({ attribute: 'collapse-button-text' })\n collapseButtonText = 'Show less';\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = CODE_SNIPPET_COLOR_SCHEME.REGULAR;\n\n /**\n * An assistive text for screen reader to announce, telling that the button copies the content to the clipboard.\n */\n @property({ attribute: 'copy-button-assistive-text' })\n copyButtonAssistiveText = 'Copy to clipboard';\n\n /**\n * The feedback text for the copy button.\n */\n @property({ attribute: 'copy-button-feedback-text' })\n copyButtonFeedbackText = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip for the copy button should remain.\n */\n @property({ type: Number, attribute: 'copy-button-feedback-timeout' })\n copyButtonFeedbackTimeout = 2000;\n\n /**\n * The context content for the expand button.\n */\n @property({ attribute: 'expand-button-text' })\n expandButtonText = 'Show more';\n\n /**\n * The type of code snippet.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n codeAssistiveText,\n collapseButtonText,\n copyButtonAssistiveText,\n copyButtonFeedbackText,\n expandButtonText,\n type,\n _expanded: expanded,\n _showCopyButtonFeedback: showCopyButtonFeedback,\n _showExpando: showExpando,\n _handleClickCopyButton: handleClickCopyButton,\n _handleClickExpando: handleClickExpando,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n if (type === CODE_SNIPPET_TYPE.SINGLE) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n `;\n }\n\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n ${!showExpando\n ? undefined\n : renderExpando({\n children: expanded\n ? html`<slot name=\"collapse-button-text\">${collapseButtonText}</slot>`\n : html`<slot name=\"expand-button-text\">${expandButtonText}</slot>`,\n handleClick: handleClickExpando,\n })}\n `;\n }\n\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet ${prefix}--snippet--inline`,\n children: html`<code aria-label=\"${codeAssistiveText}\"><slot></slot></code>`,\n })}\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippet;\n"],"mappings":"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"}
1
+ {"version":3,"file":"code-snippet.js","names":["classMap","html","property","query","LitElement","ChevronDown16","settings","FocusMixin","_createHandleFeedbackTooltip","createHandleCopyButtonFeedbackTooltip","_renderButton","renderCopyButton","CODE_SNIPPET_COLOR_SCHEME","CODE_SNIPPET_TYPE","styles","carbonElement","customElement","prefix","renderExpando","children","handleClick","_t","_","class","role","renderCode","assistiveText","expanded","classes","Boolean","_t2","BXCodeSnippet","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","key","value","_handleClickCopyButton","ownerDocument","doc","selection","defaultView","getSelection","removeAllRanges","code","createElement","className","pre","textContent","appendChild","body","range","createRange","selectNodeContents","addRange","execCommand","_handleCopyButtonFeedbackTooltip","copyButtonFeedbackTimeout","removeChild","showFeedback","_showCopyButtonFeedback","requestUpdate","_handleClickExpando","_expanded","_handleSlotChange","type","_preNode","preNode","MULTI","getBoundingClientRect","height","_showExpando","decorators","attribute","reflect","REGULAR","Number","SINGLE","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","exec","navigator","userAgent","render","codeAssistiveText","collapseButtonText","copyButtonAssistiveText","copyButtonFeedbackText","expandButtonText","showCopyButtonFeedback","showExpando","handleClickCopyButton","handleClickExpando","handleSlotChange","_t3","_t4","feedbackText","handleClickButton","_t5","_t6","undefined","_t7","_t8","_t9","_t10","static"],"sources":["components/code-snippet/code-snippet.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query, LitElement } from 'lit-element';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport {\n _createHandleFeedbackTooltip as createHandleCopyButtonFeedbackTooltip,\n _renderButton as renderCopyButton,\n} from '../copy-button/copy-button';\nimport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE } from './defs';\nimport styles from './code-snippet.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { CODE_SNIPPET_COLOR_SCHEME, CODE_SNIPPET_TYPE };\n\nconst { prefix } = settings;\n\n/**\n * @param values The values to render.\n * @param values.children The child nodes.\n * @param values.handleClick The handler for the `click` event on the button.\n * @returns The template result for the expando.\n */\nconst renderExpando = ({\n children,\n handleClick,\n}: {\n children: string | TemplateResult;\n handleClick: EventListener;\n}) => html`\n <button\n type=\"button\"\n class=\"${prefix}--snippet-btn--expand\"\n @click=\"${handleClick}\">\n <span id=\"button-text\" class=\"${prefix}--snippet-btn--text\">\n ${children}\n </span>\n ${ChevronDown16({\n 'aria-labeledby': 'button-text',\n class: `${prefix}--icon-chevron--down ${prefix}--snippet__icon`,\n role: 'img',\n })}\n </button>\n`;\n\n/**\n * @param values The values to render.\n * @param values.assistiveText The assistive text to announce that the node is for code snippet.\n * @param [values.expanded] `true` to show the expanded state (for multi-line variant).\n * @param values.children The child nodes.\n * @returns The template result for the code snippet.\n */\nconst renderCode = ({\n assistiveText,\n expanded,\n children,\n}: {\n assistiveText: string;\n expanded?: boolean;\n children: string | TemplateResult;\n}) => {\n const classes = classMap({\n [`${prefix}--snippet-container`]: true,\n [`${prefix}-ce--snippet-container--expanded`]: Boolean(expanded),\n });\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n <div role=\"textbox\" tabindex=\"0\" class=\"${classes}\" aria-label=\"${assistiveText}\"><code><pre>${children}</pre></code></div>\n `;\n};\n\n/**\n * Basic code snippet.\n *\n * @element bx-code-snippet\n */\n@customElement(`${prefix}-code-snippet`)\nclass BXCodeSnippet extends FocusMixin(LitElement) {\n /**\n * `true` to expand multi-line variant of code snippet.\n */\n private _expanded = false;\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _showCopyButtonFeedback = false;\n\n /**\n * `true` to show the expando.\n */\n private _showExpando = false;\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickCopyButton() {\n const { ownerDocument: doc } = this;\n const selection = doc!.defaultView!.getSelection();\n selection!.removeAllRanges();\n const code = doc!.createElement('code');\n code.className = `${prefix}--visually-hidden`;\n const pre = doc!.createElement('pre');\n pre.textContent = this.textContent;\n code.appendChild(pre);\n // Using `<code>` in shadow DOM seems to lose the LFs in some browsers\n doc!.body.appendChild(code);\n const range = doc!.createRange();\n range.selectNodeContents(code);\n selection!.addRange(range);\n doc!.execCommand('copy');\n this._handleCopyButtonFeedbackTooltip(this.copyButtonFeedbackTimeout);\n doc!.body.removeChild(code);\n selection!.removeAllRanges();\n }\n\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleCopyButtonFeedbackTooltip =\n createHandleCopyButtonFeedbackTooltip(\n ({ showFeedback = false }: { showFeedback?: boolean }) => {\n this._showCopyButtonFeedback = showFeedback;\n this.requestUpdate();\n }\n );\n\n /**\n * Handles `click` event on the expando.\n */\n private _handleClickExpando() {\n this._expanded = !this._expanded;\n this.requestUpdate();\n }\n\n /**\n * Handles change in slot content to determine if the content\n */\n private _handleSlotChange() {\n const { type, _preNode: preNode } = this;\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n if (preNode.getBoundingClientRect().height > 255) {\n this._showExpando = true;\n this.requestUpdate();\n }\n }\n }\n\n /**\n * The `<pre>` element in the shadow DOM.\n */\n @query('pre')\n private _preNode!: HTMLPreElement;\n\n /**\n * An assistive text for screen reader to advice a DOM node is for code snippet.\n */\n @property({ attribute: 'code-assistive-text' })\n codeAssistiveText = 'code-snippet';\n\n /**\n * The context content for the collapse button.\n */\n @property({ attribute: 'collapse-button-text' })\n collapseButtonText = 'Show less';\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = CODE_SNIPPET_COLOR_SCHEME.REGULAR;\n\n /**\n * An assistive text for screen reader to announce, telling that the button copies the content to the clipboard.\n */\n @property({ attribute: 'copy-button-assistive-text' })\n copyButtonAssistiveText = 'Copy to clipboard';\n\n /**\n * The feedback text for the copy button.\n */\n @property({ attribute: 'copy-button-feedback-text' })\n copyButtonFeedbackText = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip for the copy button should remain.\n */\n @property({ type: Number, attribute: 'copy-button-feedback-timeout' })\n copyButtonFeedbackTimeout = 2000;\n\n /**\n * The context content for the expand button.\n */\n @property({ attribute: 'expand-button-text' })\n expandButtonText = 'Show more';\n\n /**\n * The type of code snippet.\n */\n @property({ reflect: true })\n type = CODE_SNIPPET_TYPE.SINGLE;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n codeAssistiveText,\n collapseButtonText,\n copyButtonAssistiveText,\n copyButtonFeedbackText,\n expandButtonText,\n type,\n _expanded: expanded,\n _showCopyButtonFeedback: showCopyButtonFeedback,\n _showExpando: showExpando,\n _handleClickCopyButton: handleClickCopyButton,\n _handleClickExpando: handleClickExpando,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n if (type === CODE_SNIPPET_TYPE.SINGLE) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n `;\n }\n\n if (type === CODE_SNIPPET_TYPE.MULTI) {\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCode({\n assistiveText: codeAssistiveText,\n expanded,\n children: html`<slot @slotchange=\"${handleSlotChange}\"></slot>`,\n })}\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet-button`,\n })}\n ${!showExpando\n ? undefined\n : renderExpando({\n children: expanded\n ? html`<slot name=\"collapse-button-text\">${collapseButtonText}</slot>`\n : html`<slot name=\"expand-button-text\">${expandButtonText}</slot>`,\n handleClick: handleClickExpando,\n })}\n `;\n }\n\n // Ensures no extra whitespace text node\n // prettier-ignore\n return html`\n ${renderCopyButton({\n assistiveText: copyButtonAssistiveText,\n feedbackText: copyButtonFeedbackText,\n showFeedback: showCopyButtonFeedback,\n handleClickButton: handleClickCopyButton,\n className: `${prefix}--snippet ${prefix}--snippet--inline`,\n children: html`<code aria-label=\"${codeAssistiveText}\"><slot></slot></code>`,\n })}\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXCodeSnippet;\n"],"mappings":"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"}
@@ -244,7 +244,19 @@ let BXComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_in
244
244
  _filterInputValue: filterInputValue,
245
245
  _handleInput: handleInput
246
246
  } = this;
247
- return html(_t || (_t = _` <input id="trigger-label" class="${0}--text-input" ?disabled="${0}" placeholder="${0}" .value="${0}" role="combobox" aria-label="${0}" aria-controls="menu-body" aria-autocomplete="list" @input="${0}"> `), prefix, disabled, triggerContent, filterInputValue, inputLabel, handleInput);
247
+ return html(_t || (_t = _`
248
+ <input
249
+ id="trigger-label"
250
+ class="${0}--text-input"
251
+ ?disabled=${0}
252
+ placeholder="${0}"
253
+ .value=${0}
254
+ role="combobox"
255
+ aria-label="${0}"
256
+ aria-controls="menu-body"
257
+ aria-autocomplete="list"
258
+ @input=${0} />
259
+ `), prefix, disabled, triggerContent, filterInputValue, inputLabel, handleInput);
248
260
  }
249
261
  }, {
250
262
  kind: "method",
@@ -254,7 +266,16 @@ let BXComboBox = _decorate([customElement(`${prefix}-combo-box`)], function (_in
254
266
  clearSelectionLabel,
255
267
  _filterInputValue: filterInputValue
256
268
  } = this;
257
- return filterInputValue.length === 0 ? undefined : html(_t2 || (_t2 = _` <div id="selection-button" role="button" class="${0}--list-box__selection" tabindex="0" title="${0}"> ${0} </div> `), prefix, clearSelectionLabel, Close16({
269
+ return filterInputValue.length === 0 ? undefined : html(_t2 || (_t2 = _`
270
+ <div
271
+ id="selection-button"
272
+ role="button"
273
+ class="${0}--list-box__selection"
274
+ tabindex="0"
275
+ title="${0}">
276
+ ${0}
277
+ </div>
278
+ `), prefix, clearSelectionLabel, Close16({
258
279
  'aria-label': clearSelectionLabel
259
280
  }));
260
281
  }
@@ -1 +1 @@
1
- {"version":3,"file":"combo-box.js","names":["settings","html","property","query","Close16","findIndex","forEach","BXDropdown","DROPDOWN_KEYBOARD_ACTION","styles","carbonElement","customElement","DROPDOWN_COLOR_SCHEME","DROPDOWN_SIZE","DROPDOWN_TYPE","prefix","BXComboBox","_decorate","_initialize","_BXDropdown","constructor","args","F","d","kind","key","value","decorators","_testItemWithQueryText","item","itemMatches","_defaultItemMatches","_filterInputNode","queryText","textContent","toLowerCase","indexOf","_handleInput","items","querySelectorAll","selectorItem","index","i","_this$_itemMenu","menuRect","_itemMenu","getBoundingClientRect","itemRect","isViewable","top","bottom","clientHeight","scrollTop","scrollBot","Math","abs","highlighted","filterInput","_filterInputValue","open","requestUpdate","_handleClickInner","event","_this$_selectionButto","_selectionButtonNode","contains","target","_handleUserInitiatedClearInput","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_selectionButto2","action","getAction","TRIGGERING","focus","_handleUserInitiatedSelectItem","_selectionShouldChange","_selectionDidChange","itemToSelect","selectorItemSelected","selected","_assistiveStatusText","selectedItemAssistiveText","_handleUserInitiatedToggle","_renderTriggerContent","disabled","inputLabel","triggerContent","filterInputValue","handleInput","_t","_","_renderFollowingTriggerContent","clearSelectionLabel","length","undefined","_t2","attribute","shouldUpdate","changedProperties","_selectedItemContent","selectedItemContent","has","updated","_listBoxNode","listBoxNode","classList","add","static","Set","selectorItemHighlighted","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query } from 'lit-element';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { findIndex, forEach } from '../../globals/internal/collection-helpers';\nimport BXDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport BXComboBoxItem from './combo-box-item';\nimport styles from './combo-box.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_COLOR_SCHEME,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\n\nconst { prefix } = settings;\n\n/**\n * Combo box.\n *\n * @element bx-combo-box\n * @fires bx-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires bx-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires bx-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires bx-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass BXComboBox extends BXDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: BXComboBoxItem,\n queryText: string\n ): boolean {\n return (\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof BXComboBox).selectorItem\n );\n const index = !this._filterInputNode.value\n ? -1\n : findIndex(items, this._testItemWithQueryText, this);\n forEach(items, (item, i) => {\n if (i === index) {\n const menuRect = this._itemMenu?.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n if (menuRect && itemRect) {\n const isViewable =\n menuRect!.top <= itemRect?.top &&\n itemRect?.bottom <= menuRect?.top + this._itemMenu!.clientHeight;\n if (!isViewable) {\n const scrollTop = itemRect?.top - menuRect?.top;\n const scrollBot = itemRect?.bottom - menuRect?.bottom;\n\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\n this._itemMenu!.scrollTop += scrollTop;\n } else {\n this._itemMenu!.scrollTop += scrollBot;\n }\n }\n }\n }\n (item as BXComboBoxItem).highlighted = i === index;\n });\n const { _filterInputNode: filterInput } = this;\n this._filterInputValue = !filterInput ? '' : filterInput.value;\n this.open = true;\n this.requestUpdate(); // If the only change is to `_filterInputValue`, auto-update doesn't happen\n }\n\n protected _handleClickInner(event: MouseEvent) {\n if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof BXDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXComboBox).selectorItem\n ),\n (item) => {\n (item as BXComboBoxItem).highlighted = false;\n }\n );\n this._filterInputValue = '';\n this._filterInputNode.focus();\n this._handleUserInitiatedSelectItem();\n }\n\n protected _handleUserInitiatedSelectItem(item?: BXComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: BXComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemSelected\n ),\n (item) => {\n (item as BXComboBoxItem).selected = false;\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n this._assistiveStatusText = this.selectedItemAssistiveText;\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderTriggerContent(): TemplateResult {\n const {\n disabled,\n inputLabel,\n triggerContent,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n } = this;\n return html`\n <input\n id=\"trigger-label\"\n class=\"${prefix}--text-input\"\n ?disabled=${disabled}\n placeholder=\"${triggerContent}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${inputLabel}\"\n aria-controls=\"menu-body\"\n aria-autocomplete=\"list\"\n @input=${handleInput} />\n `;\n }\n\n protected _renderFollowingTriggerContent(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: BXComboBoxItem, queryText: string) => boolean;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated() {\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default BXComboBox;\n"],"mappings":"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"}
1
+ {"version":3,"file":"combo-box.js","names":["settings","html","property","query","Close16","findIndex","forEach","BXDropdown","DROPDOWN_KEYBOARD_ACTION","styles","carbonElement","customElement","DROPDOWN_COLOR_SCHEME","DROPDOWN_SIZE","DROPDOWN_TYPE","prefix","BXComboBox","_decorate","_initialize","_BXDropdown","constructor","args","F","d","kind","key","value","decorators","_testItemWithQueryText","item","itemMatches","_defaultItemMatches","_filterInputNode","queryText","textContent","toLowerCase","indexOf","_handleInput","items","querySelectorAll","selectorItem","index","i","_this$_itemMenu","menuRect","_itemMenu","getBoundingClientRect","itemRect","isViewable","top","bottom","clientHeight","scrollTop","scrollBot","Math","abs","highlighted","filterInput","_filterInputValue","open","requestUpdate","_handleClickInner","event","_this$_selectionButto","_selectionButtonNode","contains","target","_handleUserInitiatedClearInput","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_selectionButto2","action","getAction","TRIGGERING","focus","_handleUserInitiatedSelectItem","_selectionShouldChange","_selectionDidChange","itemToSelect","selectorItemSelected","selected","_assistiveStatusText","selectedItemAssistiveText","_handleUserInitiatedToggle","_renderTriggerContent","disabled","inputLabel","triggerContent","filterInputValue","handleInput","_t","_","_renderFollowingTriggerContent","clearSelectionLabel","length","undefined","_t2","attribute","shouldUpdate","changedProperties","_selectedItemContent","selectedItemContent","has","updated","_listBoxNode","listBoxNode","classList","add","static","Set","selectorItemHighlighted","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/combo-box/combo-box.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { TemplateResult } from 'lit-html';\nimport { html, property, query } from 'lit-element';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport { findIndex, forEach } from '../../globals/internal/collection-helpers';\nimport BXDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport BXComboBoxItem from './combo-box-item';\nimport styles from './combo-box.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_COLOR_SCHEME,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\n\nconst { prefix } = settings;\n\n/**\n * Combo box.\n *\n * @element bx-combo-box\n * @fires bx-combo-box-beingselected\n * The custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires bx-combo-box-beingtoggled\n * The custom event fired before the open state of this combo box is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires bx-combo-box-selected - The custom event fired after a combo box item is selected upon a user gesture.\n * @fires bx-combo-box-toggled - The custom event fired after the open state of this combo box is toggled upon a user gesture.\n */\n@customElement(`${prefix}-combo-box`)\nclass BXComboBox extends BXDropdown {\n /**\n * The text content that should be set to the `<input>` for filtering.\n */\n protected _filterInputValue = '';\n\n protected _shouldTriggerBeFocusable = false;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The menu containing all selectable items.\n */\n @query('#menu-body')\n private _itemMenu!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * @param item A combo box item.\n * @returns `true` if the given combo box item matches the query text user types.\n */\n protected _testItemWithQueryText(item) {\n return (this.itemMatches || this._defaultItemMatches)(\n item,\n this._filterInputNode.value\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * The default item matching callback.\n *\n * @param item The combo box item.\n * @param queryText The query text user types.\n * @returns `true` if the given combo box item matches the given query text.\n */\n protected _defaultItemMatches(\n item: BXComboBoxItem,\n queryText: string\n ): boolean {\n return (\n item.textContent!.toLowerCase().indexOf(queryText.toLowerCase()) >= 0\n );\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof BXComboBox).selectorItem\n );\n const index = !this._filterInputNode.value\n ? -1\n : findIndex(items, this._testItemWithQueryText, this);\n forEach(items, (item, i) => {\n if (i === index) {\n const menuRect = this._itemMenu?.getBoundingClientRect();\n const itemRect = item.getBoundingClientRect();\n\n if (menuRect && itemRect) {\n const isViewable =\n menuRect!.top <= itemRect?.top &&\n itemRect?.bottom <= menuRect?.top + this._itemMenu!.clientHeight;\n if (!isViewable) {\n const scrollTop = itemRect?.top - menuRect?.top;\n const scrollBot = itemRect?.bottom - menuRect?.bottom;\n\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\n this._itemMenu!.scrollTop += scrollTop;\n } else {\n this._itemMenu!.scrollTop += scrollBot;\n }\n }\n }\n }\n (item as BXComboBoxItem).highlighted = i === index;\n });\n const { _filterInputNode: filterInput } = this;\n this._filterInputValue = !filterInput ? '' : filterInput.value;\n this.open = true;\n this.requestUpdate(); // If the only change is to `_filterInputValue`, auto-update doesn't happen\n }\n\n protected _handleClickInner(event: MouseEvent) {\n if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleClickInner(event);\n }\n }\n\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof BXDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n if (\n this._selectionButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXComboBox).selectorItem\n ),\n (item) => {\n (item as BXComboBoxItem).highlighted = false;\n }\n );\n this._filterInputValue = '';\n this._filterInputNode.focus();\n this._handleUserInitiatedSelectItem();\n }\n\n protected _handleUserInitiatedSelectItem(item?: BXComboBoxItem) {\n if (item && !this._selectionShouldChange(item)) {\n // Escape hatch for `shouldUpdate()` logic that updates `._filterInputValue()` when selection changes,\n // given we want to update the `<input>` and close the dropdown even if selection doesn't update.\n // Use case:\n // 1. Select the 2nd item in combo box drop down\n // 2. Type some text in the `<input>`\n // 3. Re-select the 2nd item in combo box drop down,\n // the `<input>` has to updated with the 2nd item and the dropdown should be closed,\n // even if there is no change in the selected value\n this._filterInputValue = item.textContent || '';\n this.open = false;\n this.requestUpdate();\n }\n super._handleUserInitiatedSelectItem(item);\n }\n\n protected _selectionDidChange(itemToSelect?: BXComboBoxItem) {\n this.value = !itemToSelect ? '' : itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemSelected\n ),\n (item) => {\n (item as BXComboBoxItem).selected = false;\n }\n );\n if (itemToSelect) {\n itemToSelect.selected = true;\n this._assistiveStatusText = this.selectedItemAssistiveText;\n }\n this._handleUserInitiatedToggle(false);\n }\n\n protected _renderTriggerContent(): TemplateResult {\n const {\n disabled,\n inputLabel,\n triggerContent,\n _filterInputValue: filterInputValue,\n _handleInput: handleInput,\n } = this;\n return html`\n <input\n id=\"trigger-label\"\n class=\"${prefix}--text-input\"\n ?disabled=${disabled}\n placeholder=\"${triggerContent}\"\n .value=${filterInputValue}\n role=\"combobox\"\n aria-label=\"${inputLabel}\"\n aria-controls=\"menu-body\"\n aria-autocomplete=\"list\"\n @input=${handleInput} />\n `;\n }\n\n protected _renderFollowingTriggerContent(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputValue: filterInputValue } = this;\n return filterInputValue.length === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * The `aria-label` attribute for the `<input>` for filtering.\n */\n @property({ attribute: 'input-label' })\n inputLabel = '';\n\n /**\n * The custom item matching callback.\n */\n @property({ attribute: false })\n itemMatches!: (item: BXComboBoxItem, queryText: string) => boolean;\n\n shouldUpdate(changedProperties) {\n super.shouldUpdate(changedProperties);\n const { _selectedItemContent: selectedItemContent } = this;\n if (selectedItemContent && changedProperties.has('value')) {\n this._filterInputValue = selectedItemContent?.textContent || '';\n }\n return true;\n }\n\n updated() {\n const { _listBoxNode: listBoxNode } = this;\n if (listBoxNode) {\n listBoxNode.classList.add(`${prefix}--combo-box`);\n }\n }\n\n // For combo box, open/selection with space key is disabled given the input box should take it over\n static TRIGGER_KEYS = new Set(['Enter']);\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-combo-box-item[highlighted]`;\n }\n\n /**\n * A selector that will return combo box items.\n */\n static get selectorItem() {\n return `${prefix}-combo-box-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-combo-box-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this combo box item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this combo box item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-combo-box-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this combo box item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-combo-box-toggled`;\n }\n\n /**\n * The name of the custom event fired before a combo box item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-combo-box-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a combo box item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-combo-box-selected`;\n }\n\n static styles = styles;\n}\n\nexport default BXComboBox;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAE/D,SAASC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,QAAQ,aAAa;AACnD,OAAOC,OAAO,MAAM,sBAA4B;AAChD,SAASC,SAAS,EAAEC,OAAO,QAAQ,2CAA2C;AAC9E,OAAOC,UAAU,IAAIC,wBAAwB,QAAQ,sBAAsB;AAE3E,OAAOC,MAAM,MAAM,sBAAkB;AACrC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,SACEC,qBAAqB,EACrBC,aAAa,EACbC,aAAa,QACR,sBAAsB;AAE7B,MAAM;EAAEC;AAAO,CAAC,GAAGf,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAZA,IAcMgB,UAAU,GAAAC,SAAA,EADfN,aAAa,CAAE,GAAEI,MAAO,YAAW,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAArC,MACMH,UAAU,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAwSpC;EAAC;IAAAI,CAAA,EAxSKN,UAAU;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAIgB,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAEM,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAK1CxB,KAAK,CAAC,OAAO,CAAC;MAAAsB,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAMdxB,KAAK,CAAC,YAAY,CAAC;MAAAsB,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAMnBxB,KAAK,CAAC,mBAAmB,CAAC;MAAAsB,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAtB3B;AACF;AACA;;MAKE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;AACA;MACE,SAAAE,uBAAiCC,IAAI,EAAE;QACrC,OAAO,CAAC,IAAI,CAACC,WAAW,IAAI,IAAI,CAACC,mBAAmB,EAClDF,IAAI,EACJ,IAAI,CAACG,gBAAgB,CAACN,KACxB,CAAC;MACH;;MAEA;MACA;AACF;AACA;AACA;AACA;AACA;AACA;IANE;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAOA,SAAAK,oBACEF,IAAoB,EACpBI,SAAiB,EACR;QACT,OACEJ,IAAI,CAACK,WAAW,CAAEC,WAAW,CAAC,CAAC,CAACC,OAAO,CAACH,SAAS,CAACE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;MAEzE;MACA;;MAEA;AACF;AACA;IAFE;MAAAX,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAAW,aAAA,EAAyB;QACvB,MAAMC,KAAK,GAAG,IAAI,CAACC,gBAAgB,CAChC,IAAI,CAACnB,WAAW,CAAuBoB,YAC1C,CAAC;QACD,MAAMC,KAAK,GAAG,CAAC,IAAI,CAACT,gBAAgB,CAACN,KAAK,GACtC,CAAC,CAAC,GACFrB,SAAS,CAACiC,KAAK,EAAE,IAAI,CAACV,sBAAsB,EAAE,IAAI,CAAC;QACvDtB,OAAO,CAACgC,KAAK,EAAE,CAACT,IAAI,EAAEa,CAAC,KAAK;UAC1B,IAAIA,CAAC,KAAKD,KAAK,EAAE;YAAA,IAAAE,eAAA;YACf,MAAMC,QAAQ,IAAAD,eAAA,GAAG,IAAI,CAACE,SAAS,cAAAF,eAAA,uBAAdA,eAAA,CAAgBG,qBAAqB,CAAC,CAAC;YACxD,MAAMC,QAAQ,GAAGlB,IAAI,CAACiB,qBAAqB,CAAC,CAAC;YAE7C,IAAIF,QAAQ,IAAIG,QAAQ,EAAE;cACxB,MAAMC,UAAU,GACdJ,QAAQ,CAAEK,GAAG,KAAIF,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,GAAG,KAC9B,CAAAF,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,KAAI,CAAAN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,GAAG,IAAG,IAAI,CAACJ,SAAS,CAAEM,YAAY;cAClE,IAAI,CAACH,UAAU,EAAE;gBACf,MAAMI,SAAS,GAAG,CAAAL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,GAAG,KAAGL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,GAAG;gBAC/C,MAAMI,SAAS,GAAG,CAAAN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,MAAM,KAAGN,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,MAAM;gBAErD,IAAII,IAAI,CAACC,GAAG,CAACH,SAAS,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACF,SAAS,CAAC,EAAE;kBAC7C,IAAI,CAACR,SAAS,CAAEO,SAAS,IAAIA,SAAS;gBACxC,CAAC,MAAM;kBACL,IAAI,CAACP,SAAS,CAAEO,SAAS,IAAIC,SAAS;gBACxC;cACF;YACF;UACF;UACCxB,IAAI,CAAoB2B,WAAW,GAAGd,CAAC,KAAKD,KAAK;QACpD,CAAC,CAAC;QACF,MAAM;UAAET,gBAAgB,EAAEyB;QAAY,CAAC,GAAG,IAAI;QAC9C,IAAI,CAACC,iBAAiB,GAAG,CAACD,WAAW,GAAG,EAAE,GAAGA,WAAW,CAAC/B,KAAK;QAC9D,IAAI,CAACiC,IAAI,GAAG,IAAI;QAChB,IAAI,CAACC,aAAa,CAAC,CAAC,CAAC,CAAC;MACxB;IAAC;MAAApC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAmC,kBAA4BC,KAAiB,EAAE;QAAA,IAAAC,qBAAA;QAC7C,KAAAA,qBAAA,GAAI,IAAI,CAACC,oBAAoB,cAAAD,qBAAA,eAAzBA,qBAAA,CAA2BE,QAAQ,CAACH,KAAK,CAACI,MAAc,CAAC,EAAE;UAC7D,IAAI,CAACC,8BAA8B,CAAC,CAAC;QACvC,CAAC,MAAM;UACLC,IAAA,CAAAC,eAAA,CAlGArD,UAAU,CAAAsD,SAAA,8BAAAC,IAAA,OAkGcT,KAAK;QAC/B;MACF;IAAC;MAAAtC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA8C,qBAA+BV,KAAoB,EAAE;QAAA,IAAAW,sBAAA;QACnD,MAAM;UAAEhD;QAAI,CAAC,GAAGqC,KAAK;QACrB,MAAMY,MAAM,GAAI,IAAI,CAACtD,WAAW,CAAuBuD,SAAS,CAAClD,GAAG,CAAC;QACrE,MAAM;UAAEmD;QAAW,CAAC,GAAGpE,wBAAwB;QAC/C,IACE,CAAAiE,sBAAA,OAAI,CAACT,oBAAoB,cAAAS,sBAAA,eAAzBA,sBAAA,CAA2BR,QAAQ,CAACH,KAAK,CAACI,MAAc,CAAC;QACzD;QACCQ,MAAM,KAAKE,UAAU,IAAInD,GAAG,KAAK,GAAG,CAAC,EACtC;UACA,IAAI,CAAC0C,8BAA8B,CAAC,CAAC;QACvC,CAAC,MAAM;UACLC,IAAA,CAAAC,eAAA,CAjHArD,UAAU,CAAAsD,SAAA,iCAAAC,IAAA,OAiHiBT,KAAK;QAClC;MACF;;MAEA;AACF;AACA;IAFE;MAAAtC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAAyC,+BAAA,EAA2C;QACzC7D,OAAO,CACL,IAAI,CAACiC,gBAAgB,CAClB,IAAI,CAACnB,WAAW,CAAuBoB,YAC1C,CAAC,EACAX,IAAI,IAAK;UACPA,IAAI,CAAoB2B,WAAW,GAAG,KAAK;QAC9C,CACF,CAAC;QACD,IAAI,CAACE,iBAAiB,GAAG,EAAE;QAC3B,IAAI,CAAC1B,gBAAgB,CAAC6C,KAAK,CAAC,CAAC;QAC7B,IAAI,CAACC,8BAA8B,CAAC,CAAC;MACvC;IAAC;MAAAtD,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAoD,+BAAyCjD,IAAqB,EAAE;QAC9D,IAAIA,IAAI,IAAI,CAAC,IAAI,CAACkD,sBAAsB,CAAClD,IAAI,CAAC,EAAE;UAC9C;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA,IAAI,CAAC6B,iBAAiB,GAAG7B,IAAI,CAACK,WAAW,IAAI,EAAE;UAC/C,IAAI,CAACyB,IAAI,GAAG,KAAK;UACjB,IAAI,CAACC,aAAa,CAAC,CAAC;QACtB;QACAQ,IAAA,CAAAC,eAAA,CApJErD,UAAU,CAAAsD,SAAA,2CAAAC,IAAA,OAoJyB1C,IAAI;MAC3C;IAAC;MAAAL,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAsD,oBAA8BC,YAA6B,EAAE;QAC3D,IAAI,CAACvD,KAAK,GAAG,CAACuD,YAAY,GAAG,EAAE,GAAGA,YAAY,CAACvD,KAAK;QACpDpB,OAAO,CACL,IAAI,CAACiC,gBAAgB,CAClB,IAAI,CAACnB,WAAW,CAAuB8D,oBAC1C,CAAC,EACArD,IAAI,IAAK;UACPA,IAAI,CAAoBsD,QAAQ,GAAG,KAAK;QAC3C,CACF,CAAC;QACD,IAAIF,YAAY,EAAE;UAChBA,YAAY,CAACE,QAAQ,GAAG,IAAI;UAC5B,IAAI,CAACC,oBAAoB,GAAG,IAAI,CAACC,yBAAyB;QAC5D;QACA,IAAI,CAACC,0BAA0B,CAAC,KAAK,CAAC;MACxC;IAAC;MAAA9D,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA6D,sBAAA,EAAkD;QAChD,MAAM;UACJC,QAAQ;UACRC,UAAU;UACVC,cAAc;UACdhC,iBAAiB,EAAEiC,gBAAgB;UACnCtD,YAAY,EAAEuD;QAChB,CAAC,GAAG,IAAI;QACR,OAAO3F,IAAI,CAAA4F,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB;AACA;AACA,iBAAe,CAAS;AACxB,oBAAkB,CAAW;AAC7B,uBAAqB,CAAiB;AACtC,iBAAe,CAAmB;AAClC;AACA,sBAAoB,CAAa;AACjC;AACA;AACA,iBAAe,CAAc;AAC7B,KAAI,GATa/E,MAAM,EACHyE,QAAQ,EACLE,cAAc,EACpBC,gBAAgB,EAEXF,UAAU,EAGfG,WAAW;MAE1B;IAAC;MAAApE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAqE,+BAAA,EAAkE;QAChE,MAAM;UAAEC,mBAAmB;UAAEtC,iBAAiB,EAAEiC;QAAiB,CAAC,GAAG,IAAI;QACzE,OAAOA,gBAAgB,CAACM,MAAM,KAAK,CAAC,GAChCC,SAAS,GACTjG,IAAI,CAAAkG,GAAA,KAAAA,GAAA,GAAAL,CAAC;AACb;AACA;AACA;AACA,qBAAmB,CAAS;AAC5B;AACA,qBAAmB,CAAsB;AACzC,cAAY,CAAiD;AAC7D;AACA,SAAQ,GALa/E,MAAM,EAENiF,mBAAmB,EAC1B5F,OAAO,CAAC;UAAE,YAAY,EAAE4F;QAAoB,CAAC,CAAC,CAEnD;MACP;;MAEA;AACF;AACA;IAFE;MAAAxE,IAAA;MAAAG,UAAA,GAGCzB,QAAQ,CAAC;QAAEkG,SAAS,EAAE;MAAwB,CAAC,CAAC;MAAA3E,GAAA;MAAAC,MAAA;QAAA,OAC3B,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKvBzB,QAAQ,CAAC;QAAEkG,SAAS,EAAE;MAAc,CAAC,CAAC;MAAA3E,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKdzB,QAAQ,CAAC;QAAEkG,SAAS,EAAE;MAAM,CAAC,CAAC;MAAA3E,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAT/B;AACF;AACA;MAIE;AACF;AACA;MAIE,SAAA2E,aAAaC,iBAAiB,EAAE;QAC9BlC,IAAA,CAAAC,eAAA,CAlOErD,UAAU,CAAAsD,SAAA,yBAAAC,IAAA,OAkOO+B,iBAAiB;QACpC,MAAM;UAAEC,oBAAoB,EAAEC;QAAoB,CAAC,GAAG,IAAI;QAC1D,IAAIA,mBAAmB,IAAIF,iBAAiB,CAACG,GAAG,CAAC,OAAO,CAAC,EAAE;UACzD,IAAI,CAAC/C,iBAAiB,GAAG,CAAA8C,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEtE,WAAW,KAAI,EAAE;QACjE;QACA,OAAO,IAAI;MACb;IAAC;MAAAV,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAgF,QAAA,EAAU;QACR,MAAM;UAAEC,YAAY,EAAEC;QAAY,CAAC,GAAG,IAAI;QAC1C,IAAIA,WAAW,EAAE;UACfA,WAAW,CAACC,SAAS,CAACC,GAAG,CAAE,GAAE/F,MAAO,aAAY,CAAC;QACnD;MACF;;MAEA;IAAA;MAAAS,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,MAAA;QAAA,OACsB,IAAIsF,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;MAAA;IAAA;MAAAxF,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,KAAA;MAExC;AACF;AACA;MACE,SAAAuF,wBAAA,EAAqC;QACnC,OAAQ,GAAElG,MAAO,8BAA6B;MAChD;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,KAAA,EAGA,SAAAc,aAAA,EAA0B;QACxB,OAAQ,GAAEzB,MAAO,iBAAgB;MACnC;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,KAAA,EAGA,SAAAwD,qBAAA,EAAkC;QAChC,OAAQ,GAAEnE,MAAO,2BAA0B;MAC7C;;MAEA;AACF;AACA;AACA;IAHE;MAAAS,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,KAAA,EAIA,SAAAwF,kBAAA,EAA+B;QAC7B,OAAQ,GAAEnG,MAAO,yBAAwB;MAC3C;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,KAAA,EAGA,SAAAyF,YAAA,EAAyB;QACvB,OAAQ,GAAEpG,MAAO,oBAAmB;MACtC;;MAEA;AACF;AACA;AACA;IAHE;MAAAS,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,KAAA,EAIA,SAAA0F,kBAAA,EAA+B;QAC7B,OAAQ,GAAErG,MAAO,0BAAyB;MAC5C;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,KAAA,EAGA,SAAA2F,YAAA,EAAyB;QACvB,OAAQ,GAAEtG,MAAO,qBAAoB;MACvC;IAAC;MAAAS,IAAA;MAAAuF,MAAA;MAAAtF,GAAA;MAAAC,MAAA;QAAA,OAEejB,MAAM;MAAA;IAAA;EAAA;AAAA,GAvSCF,UAAU;AA0SnC,eAAeS,UAAU"}
@@ -146,7 +146,17 @@ let BXContentSwitcherItem = _decorate([customElement(`${prefix}-content-switcher
146
146
  [`${prefix}--content-switcher-btn`]: true,
147
147
  [`${prefix}--content-switcher--selected`]: selected
148
148
  });
149
- return html(_t || (_t = _` <button type="button" role="tab" class="${0}" ?disabled="${0}" aria-controls="${0}" aria-selected="${0}"> <span class="${0}--content-switcher__label"><slot></slot></span> </button> `), className, disabled, ifNonNull(target), Boolean(selected), prefix);
149
+ return html(_t || (_t = _`
150
+ <button
151
+ type="button"
152
+ role="tab"
153
+ class="${0}"
154
+ ?disabled="${0}"
155
+ aria-controls="${0}"
156
+ aria-selected="${0}">
157
+ <span class="${0}--content-switcher__label"><slot></slot></span>
158
+ </button>
159
+ `), className, disabled, ifNonNull(target), Boolean(selected), prefix);
150
160
  }
151
161
  }, {
152
162
  kind: "field",
@@ -1 +1 @@
1
- {"version":3,"file":"content-switcher-item.js","names":["classMap","html","property","LitElement","settings","ifNonNull","FocusMixin","styles","carbonElement","customElement","prefix","BXContentSwitcherItem","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","type","Boolean","reflect","key","value","attribute","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","shouldUpdate","changedProperties","has","selected","target","doc","getRootNode","targetNode","getElementById","toggleAttribute","render","disabled","className","_t","_","static"],"sources":["components/content-switcher/content-switcher-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Content switcher button.\n *\n * @element bx-content-switcher-item\n */\n@customElement(`${prefix}-content-switcher-item`)\nclass BXContentSwitcherItem extends FocusMixin(LitElement) {\n /**\n * `true` if this content switcher item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` to hide the divider at the left.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-divider' })\n hideDivider = false;\n\n /**\n * `true` if the content switcher button should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The element ID of target panel.\n */\n @property()\n target!: string;\n\n /**\n * The `value` attribute that is set to the parent `<bx-content-switcher>` when this content switcher item is selected.\n */\n @property()\n value = '';\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('selected') || changedProperties.has('target')) {\n const { selected, target } = this;\n if (target) {\n const doc = this.getRootNode() as HTMLDocument;\n // `doc` can be an element if such element is orphaned\n const targetNode = doc.getElementById && doc.getElementById(target);\n if (targetNode) {\n targetNode.toggleAttribute('hidden', !selected);\n }\n }\n }\n return true;\n }\n\n render() {\n const { disabled, selected, target } = this;\n const className = classMap({\n [`${prefix}--content-switcher-btn`]: true,\n [`${prefix}--content-switcher--selected`]: selected,\n });\n return html`\n <button\n type=\"button\"\n role=\"tab\"\n class=\"${className}\"\n ?disabled=\"${disabled}\"\n aria-controls=\"${ifNonNull(target)}\"\n aria-selected=\"${Boolean(selected)}\">\n <span class=\"${prefix}--content-switcher__label\"><slot></slot></span>\n </button>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXContentSwitcherItem;\n"],"mappings":"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"}
1
+ {"version":3,"file":"content-switcher-item.js","names":["classMap","html","property","LitElement","settings","ifNonNull","FocusMixin","styles","carbonElement","customElement","prefix","BXContentSwitcherItem","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","decorators","type","Boolean","reflect","key","value","attribute","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","shouldUpdate","changedProperties","has","selected","target","doc","getRootNode","targetNode","getElementById","toggleAttribute","render","disabled","className","_t","_","static"],"sources":["components/content-switcher/content-switcher-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport ifNonNull from '../../globals/directives/if-non-null';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Content switcher button.\n *\n * @element bx-content-switcher-item\n */\n@customElement(`${prefix}-content-switcher-item`)\nclass BXContentSwitcherItem extends FocusMixin(LitElement) {\n /**\n * `true` if this content switcher item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` to hide the divider at the left.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-divider' })\n hideDivider = false;\n\n /**\n * `true` if the content switcher button should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * The element ID of target panel.\n */\n @property()\n target!: string;\n\n /**\n * The `value` attribute that is set to the parent `<bx-content-switcher>` when this content switcher item is selected.\n */\n @property()\n value = '';\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('selected') || changedProperties.has('target')) {\n const { selected, target } = this;\n if (target) {\n const doc = this.getRootNode() as HTMLDocument;\n // `doc` can be an element if such element is orphaned\n const targetNode = doc.getElementById && doc.getElementById(target);\n if (targetNode) {\n targetNode.toggleAttribute('hidden', !selected);\n }\n }\n }\n return true;\n }\n\n render() {\n const { disabled, selected, target } = this;\n const className = classMap({\n [`${prefix}--content-switcher-btn`]: true,\n [`${prefix}--content-switcher--selected`]: selected,\n });\n return html`\n <button\n type=\"button\"\n role=\"tab\"\n class=\"${className}\"\n ?disabled=\"${disabled}\"\n aria-controls=\"${ifNonNull(target)}\"\n aria-selected=\"${Boolean(selected)}\">\n <span class=\"${prefix}--content-switcher__label\"><slot></slot></span>\n </button>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXContentSwitcherItem;\n"],"mappings":"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"}
@@ -297,7 +297,13 @@ let BXContentSwitcher = _decorate([customElement(`${prefix}-content-switcher`)],
297
297
  _handleHover: handleHover,
298
298
  _handleKeydown: handleKeydown
299
299
  } = this;
300
- return html(_t || (_t = _` <slot @click="${0}" @keydown="${0}" @mouseover="${0}" @mouseout="${0}"></slot> `), this._handleClick, handleKeydown, handleHover, handleHover);
300
+ return html(_t || (_t = _`
301
+ <slot
302
+ @click="${0}"
303
+ @keydown="${0}"
304
+ @mouseover="${0}"
305
+ @mouseout="${0}"></slot>
306
+ `), this._handleClick, handleKeydown, handleHover, handleHover);
301
307
  }
302
308
  }, {
303
309
  kind: "field",
@@ -1 +1 @@
1
- {"version":3,"file":"content-switcher.js","names":["html","property","LitElement","settings","forEach","indexOf","NAVIGATION_DIRECTION","CONTENT_SWITCHER_SIZE","styles","carbonElement","customElement","prefix","capIndex","index","length","BXContentSwitcher","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleHover","target","type","selectorItem","items","querySelectorAll","closest","nextIndex","elem","i","hideDivider","_getNextItem","currentItem","direction","selectorItemEnabled","currentIndex","_handleClick","_handleUserInitiatedSelectItem","_handleKeydown","_navigate","item","disabled","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","_selectionDidChange","afterSelectEvent","eventSelect","selectorItemSelected","nextItem","querySelector","requestUpdate","itemToSelect","selected","Promise","resolve","then","focus","decorators","reflect","REGULAR","shouldUpdate","changedProperties","has","static","render","handleHover","handleKeydown","_t","_"],"sources":["components/content-switcher/content-switcher.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { forEach, indexOf } from '../../globals/internal/collection-helpers';\nimport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE } from './defs';\nimport BXSwitch from './content-switcher-item';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE };\n\nconst { prefix } = settings;\n\n/**\n * @param index The index\n * @param length The length of the array.\n * @returns The new index, adjusting overflow/underflow.\n */\nconst capIndex = (index: number, length: number) => {\n if (index < 0) {\n return length - 1;\n }\n if (index >= length) {\n return 0;\n }\n return index;\n};\n\n/**\n * Content switcher.\n *\n * @element bx-content-switcher\n * @fires bx-content-switcher-beingselected\n * The custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires bx-content-switcher-selected - The custom event fired after a a content switcher item is selected upon a user gesture.\n */\n@customElement(`${prefix}-content-switcher`)\nclass BXContentSwitcher extends LitElement {\n /**\n * Handles `mouseover`/`mouseout` events on `<slot>`.\n *\n * @param event The event.\n */\n private _handleHover({ target, type }: MouseEvent) {\n const { selectorItem } = this.constructor as typeof BXContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index =\n type !== 'mouseover'\n ? -1\n : indexOf(items, (target as Element).closest(selectorItem)!);\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<bx-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as BXSwitch).hideDivider = i === nextIndex;\n });\n }\n\n /**\n * @param currentItem The currently selected item.\n * @param direction The navigation direction.\n * @returns The item to be selected.\n */\n protected _getNextItem(currentItem: BXSwitch, direction: number) {\n const items = this.querySelectorAll(\n (this.constructor as typeof BXContentSwitcher).selectorItemEnabled\n );\n const currentIndex = indexOf(items, currentItem);\n const nextIndex = capIndex(currentIndex + direction, items.length);\n return nextIndex === currentIndex ? null : items[nextIndex];\n }\n\n /**\n * Handles `click` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n */\n protected _handleClick({ target }: MouseEvent) {\n this._handleUserInitiatedSelectItem(target as BXSwitch);\n }\n\n /**\n * Handles `keydown` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n */\n protected _handleKeydown({ key }: KeyboardEvent) {\n if (key in NAVIGATION_DIRECTION) {\n this._navigate(NAVIGATION_DIRECTION[key]);\n }\n }\n\n /**\n * Handles user-initiated selection of a content switcher item.\n *\n * @param [item] The content switcher item user wants to select.\n */\n protected _handleUserInitiatedSelectItem(item: BXSwitch) {\n if (!item.disabled && item.value !== this.value) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof BXContentSwitcher;\n const beforeSelectEvent = new CustomEvent(constructor.eventBeforeSelect, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeSelectEvent)) {\n this._selectionDidChange(item);\n const afterSelectEvent = new CustomEvent(constructor.eventSelect, init);\n this.dispatchEvent(afterSelectEvent);\n }\n }\n }\n\n /**\n * Navigates through content switcher items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const { selectorItemSelected } = this\n .constructor as typeof BXContentSwitcher;\n const nextItem = this._getNextItem(\n this.querySelector(selectorItemSelected) as BXSwitch,\n direction\n );\n if (nextItem) {\n this._handleUserInitiatedSelectItem(nextItem as BXSwitch);\n this.requestUpdate();\n }\n }\n\n /**\n * A callback that runs after change in content switcher selection upon user interaction is confirmed.\n *\n * @param itemToSelect A content switcher item.\n */\n protected _selectionDidChange(itemToSelect: BXSwitch) {\n this.value = itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXContentSwitcher).selectorItemSelected\n ),\n (item) => {\n (item as BXSwitch).selected = false;\n }\n );\n itemToSelect.selected = true;\n // Waits for rendering with the new state that updates `tabindex`\n Promise.resolve().then(() => {\n itemToSelect.focus();\n });\n }\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Content switcher size.\n */\n @property({ reflect: true })\n size = CONTENT_SWITCHER_SIZE.REGULAR;\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('value')) {\n const { selectorItem } = this.constructor as typeof BXContentSwitcher;\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as BXSwitch).selected = (elem as BXSwitch).value === this.value;\n });\n }\n return true;\n }\n\n /**\n * A selector that will return content switcher items.\n */\n static get selectorItem() {\n return `${prefix}-content-switcher-item`;\n }\n\n /**\n * A selector that will return enabled content switcher items.\n */\n static get selectorItemEnabled() {\n return `${prefix}-content-switcher-item:not([disabled])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-content-switcher-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-content-switcher-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a content switcher item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-content-switcher-selected`;\n }\n\n render() {\n const { _handleHover: handleHover, _handleKeydown: handleKeydown } = this;\n return html`\n <slot\n @click=\"${this._handleClick}\"\n @keydown=\"${handleKeydown}\"\n @mouseover=\"${handleHover}\"\n @mouseout=\"${handleHover}\"></slot>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXContentSwitcher;\n"],"mappings":"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"}
1
+ {"version":3,"file":"content-switcher.js","names":["html","property","LitElement","settings","forEach","indexOf","NAVIGATION_DIRECTION","CONTENT_SWITCHER_SIZE","styles","carbonElement","customElement","prefix","capIndex","index","length","BXContentSwitcher","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleHover","target","type","selectorItem","items","querySelectorAll","closest","nextIndex","elem","i","hideDivider","_getNextItem","currentItem","direction","selectorItemEnabled","currentIndex","_handleClick","_handleUserInitiatedSelectItem","_handleKeydown","_navigate","item","disabled","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","_selectionDidChange","afterSelectEvent","eventSelect","selectorItemSelected","nextItem","querySelector","requestUpdate","itemToSelect","selected","Promise","resolve","then","focus","decorators","reflect","REGULAR","shouldUpdate","changedProperties","has","static","render","handleHover","handleKeydown","_t","_"],"sources":["components/content-switcher/content-switcher.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { forEach, indexOf } from '../../globals/internal/collection-helpers';\nimport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE } from './defs';\nimport BXSwitch from './content-switcher-item';\nimport styles from './content-switcher.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { NAVIGATION_DIRECTION, CONTENT_SWITCHER_SIZE };\n\nconst { prefix } = settings;\n\n/**\n * @param index The index\n * @param length The length of the array.\n * @returns The new index, adjusting overflow/underflow.\n */\nconst capIndex = (index: number, length: number) => {\n if (index < 0) {\n return length - 1;\n }\n if (index >= length) {\n return 0;\n }\n return index;\n};\n\n/**\n * Content switcher.\n *\n * @element bx-content-switcher\n * @fires bx-content-switcher-beingselected\n * The custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires bx-content-switcher-selected - The custom event fired after a a content switcher item is selected upon a user gesture.\n */\n@customElement(`${prefix}-content-switcher`)\nclass BXContentSwitcher extends LitElement {\n /**\n * Handles `mouseover`/`mouseout` events on `<slot>`.\n *\n * @param event The event.\n */\n private _handleHover({ target, type }: MouseEvent) {\n const { selectorItem } = this.constructor as typeof BXContentSwitcher;\n const items = this.querySelectorAll(selectorItem);\n const index =\n type !== 'mouseover'\n ? -1\n : indexOf(items, (target as Element).closest(selectorItem)!);\n const nextIndex = index < 0 ? index : index + 1;\n forEach(this.querySelectorAll(selectorItem), (elem, i) => {\n // Specifies child `<bx-content-switcher-item>` to hide its divider instead of using CSS,\n // until `:host-context()` gets supported in all major browsers\n (elem as BXSwitch).hideDivider = i === nextIndex;\n });\n }\n\n /**\n * @param currentItem The currently selected item.\n * @param direction The navigation direction.\n * @returns The item to be selected.\n */\n protected _getNextItem(currentItem: BXSwitch, direction: number) {\n const items = this.querySelectorAll(\n (this.constructor as typeof BXContentSwitcher).selectorItemEnabled\n );\n const currentIndex = indexOf(items, currentItem);\n const nextIndex = capIndex(currentIndex + direction, items.length);\n return nextIndex === currentIndex ? null : items[nextIndex];\n }\n\n /**\n * Handles `click` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n */\n protected _handleClick({ target }: MouseEvent) {\n this._handleUserInitiatedSelectItem(target as BXSwitch);\n }\n\n /**\n * Handles `keydown` event on the top-level element in the shadow DOM.\n *\n * @param event The event.\n */\n protected _handleKeydown({ key }: KeyboardEvent) {\n if (key in NAVIGATION_DIRECTION) {\n this._navigate(NAVIGATION_DIRECTION[key]);\n }\n }\n\n /**\n * Handles user-initiated selection of a content switcher item.\n *\n * @param [item] The content switcher item user wants to select.\n */\n protected _handleUserInitiatedSelectItem(item: BXSwitch) {\n if (!item.disabled && item.value !== this.value) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof BXContentSwitcher;\n const beforeSelectEvent = new CustomEvent(constructor.eventBeforeSelect, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeSelectEvent)) {\n this._selectionDidChange(item);\n const afterSelectEvent = new CustomEvent(constructor.eventSelect, init);\n this.dispatchEvent(afterSelectEvent);\n }\n }\n }\n\n /**\n * Navigates through content switcher items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const { selectorItemSelected } = this\n .constructor as typeof BXContentSwitcher;\n const nextItem = this._getNextItem(\n this.querySelector(selectorItemSelected) as BXSwitch,\n direction\n );\n if (nextItem) {\n this._handleUserInitiatedSelectItem(nextItem as BXSwitch);\n this.requestUpdate();\n }\n }\n\n /**\n * A callback that runs after change in content switcher selection upon user interaction is confirmed.\n *\n * @param itemToSelect A content switcher item.\n */\n protected _selectionDidChange(itemToSelect: BXSwitch) {\n this.value = itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXContentSwitcher).selectorItemSelected\n ),\n (item) => {\n (item as BXSwitch).selected = false;\n }\n );\n itemToSelect.selected = true;\n // Waits for rendering with the new state that updates `tabindex`\n Promise.resolve().then(() => {\n itemToSelect.focus();\n });\n }\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Content switcher size.\n */\n @property({ reflect: true })\n size = CONTENT_SWITCHER_SIZE.REGULAR;\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('value')) {\n const { selectorItem } = this.constructor as typeof BXContentSwitcher;\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as BXSwitch).selected = (elem as BXSwitch).value === this.value;\n });\n }\n return true;\n }\n\n /**\n * A selector that will return content switcher items.\n */\n static get selectorItem() {\n return `${prefix}-content-switcher-item`;\n }\n\n /**\n * A selector that will return enabled content switcher items.\n */\n static get selectorItemEnabled() {\n return `${prefix}-content-switcher-item:not([disabled])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-content-switcher-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a content switcher item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n */\n static get eventBeforeSelect() {\n return `${prefix}-content-switcher-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a content switcher item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-content-switcher-selected`;\n }\n\n render() {\n const { _handleHover: handleHover, _handleKeydown: handleKeydown } = this;\n return html`\n <slot\n @click=\"${this._handleClick}\"\n @keydown=\"${handleKeydown}\"\n @mouseover=\"${handleHover}\"\n @mouseout=\"${handleHover}\"></slot>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXContentSwitcher;\n"],"mappings":"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"}
@@ -60,7 +60,9 @@ export const _renderButton = ({
60
60
  feedbackText,
61
61
  showFeedback: _showFeedback = false,
62
62
  className: _className = `${prefix}--snippet-button`,
63
- children: _children = html(_t || (_t = _` <slot>${0}</slot> `), Copy16({
63
+ children: _children = html(_t || (_t = _`
64
+ <slot>${0}</slot>
65
+ `), Copy16({
64
66
  class: `${prefix}--snippet__icon`
65
67
  })),
66
68
  handleClickButton
@@ -69,7 +71,18 @@ export const _renderButton = ({
69
71
  [`${prefix}--btn--copy__feedback`]: true,
70
72
  [`${prefix}--btn--copy__feedback--displayed`]: _showFeedback
71
73
  });
72
- return html(_t2 || (_t2 = _` <button type="button" class="${0}" title="${0}" @click="${0}"> ${0} <div class="${0}" data-feedback="${0}"></div> </button> `), _className, ifDefined(assistiveText), handleClickButton, _children, feedbackClasses, ifDefined(feedbackText));
74
+ return html(_t2 || (_t2 = _`
75
+ <button
76
+ type="button"
77
+ class="${0}"
78
+ title="${0}"
79
+ @click="${0}">
80
+ ${0}
81
+ <div
82
+ class="${0}"
83
+ data-feedback="${0}"></div>
84
+ </button>
85
+ `), _className, ifDefined(assistiveText), handleClickButton, _children, feedbackClasses, ifDefined(feedbackText));
73
86
  };
74
87
 
75
88
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button.js","names":["classMap","ifDefined","html","property","LitElement","Copy16","settings","FocusMixin","styles","carbonElement","customElement","prefix","_createHandleFeedbackTooltip","update","timeoutId","timeout","clearTimeout","undefined","showFeedback","setTimeout","_renderButton","assistiveText","feedbackText","className","children","_t","_","class","handleClickButton","feedbackClasses","_t2","BXCopyButton","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","key","value","_showFeedback","requestUpdate","_handleClickButton","_handleFeedbackTooltip","feedbackTimeout","decorators","attribute","type","Number","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","exec","navigator","userAgent","render","buttonAssistiveText","static"],"sources":["components/copy-button/copy-button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, property, LitElement } from 'lit-element';\nimport Copy16 from '@carbon/icons/lib/copy/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './copy-button.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Note: For `<bx-code-snippet>` only. The API is subject to change/removal.\n *\n * @param update The callback function that dictates how to update the DOM with new feedback tooltip state.\n * @returns A function that shows the feedback tooltip for the given duration.\n * @private\n */\nexport const _createHandleFeedbackTooltip = (\n update: (properties: { showFeedback?: boolean }) => void\n) => {\n let timeoutId: number | void;\n return (timeout: number) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n update({ showFeedback: true });\n timeoutId = setTimeout(() => {\n update({ showFeedback: false });\n }, timeout) as unknown as number;\n };\n};\n\n/**\n * Note: For `<bx-code-snippet>` only. The API is subject to change/removal.\n *\n * @param properties The properties to render.\n * @returns The template result for copy button from the given properties.\n * @private\n */\nexport const _renderButton = ({\n assistiveText,\n feedbackText,\n showFeedback = false,\n className = `${prefix}--snippet-button`,\n children = html`\n <slot>${Copy16({ class: `${prefix}--snippet__icon` })}</slot>\n `,\n handleClickButton,\n}: {\n assistiveText: string;\n feedbackText: string;\n showFeedback?: boolean;\n className?: string;\n children?: TemplateResult;\n handleClickButton: EventListener;\n}) => {\n const feedbackClasses = classMap({\n [`${prefix}--btn--copy__feedback`]: true,\n [`${prefix}--btn--copy__feedback--displayed`]: showFeedback,\n });\n return html`\n <button\n type=\"button\"\n class=\"${className}\"\n title=\"${ifDefined(assistiveText)}\"\n @click=\"${handleClickButton}\">\n ${children}\n <div\n class=\"${feedbackClasses}\"\n data-feedback=\"${ifDefined(feedbackText)}\"></div>\n </button>\n `;\n};\n\n/**\n * Copy button.\n *\n * @element bx-copy-button\n */\n@customElement(`${prefix}-copy-button`)\nclass BXCopyButton extends FocusMixin(LitElement) {\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleFeedbackTooltip = _createHandleFeedbackTooltip(\n ({ showFeedback = false }: { showFeedback?: boolean }) => {\n this._showFeedback = showFeedback;\n this.requestUpdate();\n }\n );\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _showFeedback = false;\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickButton() {\n this._handleFeedbackTooltip(this.feedbackTimeout);\n }\n\n /**\n * An assistive text for screen reader to announce, telling that the button copies the content to the clipboard.\n */\n @property({ attribute: 'button-assistive-text' })\n buttonAssistiveText = 'Copy to clipboard';\n\n /**\n * The feedback text.\n */\n @property({ attribute: 'feedback-text' })\n feedbackText = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n buttonAssistiveText,\n feedbackText,\n _handleClickButton: handleClickButton,\n _showFeedback: showFeedback,\n } = this;\n return _renderButton({\n assistiveText: buttonAssistiveText,\n feedbackText,\n showFeedback,\n handleClickButton,\n });\n }\n\n static styles = styles;\n}\n\nexport default BXCopyButton;\n"],"mappings":"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"}
1
+ {"version":3,"file":"copy-button.js","names":["classMap","ifDefined","html","property","LitElement","Copy16","settings","FocusMixin","styles","carbonElement","customElement","prefix","_createHandleFeedbackTooltip","update","timeoutId","timeout","clearTimeout","undefined","showFeedback","setTimeout","_renderButton","assistiveText","feedbackText","className","children","_t","_","class","handleClickButton","feedbackClasses","_t2","BXCopyButton","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","key","value","_showFeedback","requestUpdate","_handleClickButton","_handleFeedbackTooltip","feedbackTimeout","decorators","attribute","type","Number","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","exec","navigator","userAgent","render","buttonAssistiveText","static"],"sources":["components/copy-button/copy-button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, property, LitElement } from 'lit-element';\nimport Copy16 from '@carbon/icons/lib/copy/16';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport styles from './copy-button.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Note: For `<bx-code-snippet>` only. The API is subject to change/removal.\n *\n * @param update The callback function that dictates how to update the DOM with new feedback tooltip state.\n * @returns A function that shows the feedback tooltip for the given duration.\n * @private\n */\nexport const _createHandleFeedbackTooltip = (\n update: (properties: { showFeedback?: boolean }) => void\n) => {\n let timeoutId: number | void;\n return (timeout: number) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = undefined;\n }\n update({ showFeedback: true });\n timeoutId = setTimeout(() => {\n update({ showFeedback: false });\n }, timeout) as unknown as number;\n };\n};\n\n/**\n * Note: For `<bx-code-snippet>` only. The API is subject to change/removal.\n *\n * @param properties The properties to render.\n * @returns The template result for copy button from the given properties.\n * @private\n */\nexport const _renderButton = ({\n assistiveText,\n feedbackText,\n showFeedback = false,\n className = `${prefix}--snippet-button`,\n children = html`\n <slot>${Copy16({ class: `${prefix}--snippet__icon` })}</slot>\n `,\n handleClickButton,\n}: {\n assistiveText: string;\n feedbackText: string;\n showFeedback?: boolean;\n className?: string;\n children?: TemplateResult;\n handleClickButton: EventListener;\n}) => {\n const feedbackClasses = classMap({\n [`${prefix}--btn--copy__feedback`]: true,\n [`${prefix}--btn--copy__feedback--displayed`]: showFeedback,\n });\n return html`\n <button\n type=\"button\"\n class=\"${className}\"\n title=\"${ifDefined(assistiveText)}\"\n @click=\"${handleClickButton}\">\n ${children}\n <div\n class=\"${feedbackClasses}\"\n data-feedback=\"${ifDefined(feedbackText)}\"></div>\n </button>\n `;\n};\n\n/**\n * Copy button.\n *\n * @element bx-copy-button\n */\n@customElement(`${prefix}-copy-button`)\nclass BXCopyButton extends FocusMixin(LitElement) {\n /**\n * Handles showing/hiding the feedback tooltip.\n */\n private _handleFeedbackTooltip = _createHandleFeedbackTooltip(\n ({ showFeedback = false }: { showFeedback?: boolean }) => {\n this._showFeedback = showFeedback;\n this.requestUpdate();\n }\n );\n\n /**\n * `true` to show the feedback tooltip.\n */\n private _showFeedback = false;\n\n /**\n * Handles `click` event on the copy button.\n */\n private _handleClickButton() {\n this._handleFeedbackTooltip(this.feedbackTimeout);\n }\n\n /**\n * An assistive text for screen reader to announce, telling that the button copies the content to the clipboard.\n */\n @property({ attribute: 'button-assistive-text' })\n buttonAssistiveText = 'Copy to clipboard';\n\n /**\n * The feedback text.\n */\n @property({ attribute: 'feedback-text' })\n feedbackText = 'Copied!';\n\n /**\n * The number in milliseconds to determine how long the tooltip should remain.\n */\n @property({ type: Number, attribute: 'feedback-timeout' })\n feedbackTimeout = 2000;\n\n createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n render() {\n const {\n buttonAssistiveText,\n feedbackText,\n _handleClickButton: handleClickButton,\n _showFeedback: showFeedback,\n } = this;\n return _renderButton({\n assistiveText: buttonAssistiveText,\n feedbackText,\n showFeedback,\n handleClickButton,\n });\n }\n\n static styles = styles;\n}\n\nexport default BXCopyButton;\n"],"mappings":"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"}
@@ -109,7 +109,21 @@ let BXTableBatchActions = _decorate([customElement(`${prefix}-table-batch-action
109
109
  selectedRowsCount,
110
110
  _handleCancel: handleCancel
111
111
  } = this;
112
- return html(_t || (_t = _` <div class="${0}--batch-summary"> <p class="${0}--batch-summary__para"> ${0} </p> </div> <div class="${0}--action-list"> <slot></slot> <button class="${0}--btn ${0}--btn--primary ${0}--batch-summary__cancel" @click="${0}"> <slot name="cancel-button-content">Cancel</slot> </button> </div> `), prefix, prefix, formatSelectedItemsCount({
112
+ return html(_t || (_t = _`
113
+ <div class="${0}--batch-summary">
114
+ <p class="${0}--batch-summary__para">
115
+ ${0}
116
+ </p>
117
+ </div>
118
+ <div class="${0}--action-list">
119
+ <slot></slot>
120
+ <button
121
+ class="${0}--btn ${0}--btn--primary ${0}--batch-summary__cancel"
122
+ @click=${0}>
123
+ <slot name="cancel-button-content">Cancel</slot>
124
+ </button>
125
+ </div>
126
+ `), prefix, prefix, formatSelectedItemsCount({
113
127
  count: selectedRowsCount
114
128
  }), prefix, prefix, prefix, prefix, handleCancel);
115
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"table-batch-actions.js","names":["html","property","LitElement","settings","styles","carbonElement","customElement","prefix","BXTableBatchActions","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleCancel","eventClickCancel","dispatchEvent","CustomEvent","bubbles","composed","decorators","type","Boolean","reflect","attribute","count","Number","updated","changedProperties","has","setAttribute","active","render","formatSelectedItemsCount","selectedRowsCount","handleCancel","_t","_","static"],"sources":["components/data-table/table-batch-actions.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport styles from './data-table.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Table batch actions.\n *\n * @element bx-table-batch-actions\n * @fires bx-table-batch-actions-cancel-clicked - The custom event fired after the Cancel button is clicked.\n */\n@customElement(`${prefix}-table-batch-actions`)\nclass BXTableBatchActions extends LitElement {\n /**\n * Handles `click` event on the Cancel button.\n */\n private _handleCancel() {\n const { eventClickCancel } = this.constructor as typeof BXTableBatchActions;\n this.dispatchEvent(\n new CustomEvent(eventClickCancel, { bubbles: true, composed: true })\n );\n }\n\n /**\n * `true` if this batch actions bar should be active.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * The formatter for selected items. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatSelectedItemsCount = ({ count }) =>\n `${count} item${count <= 1 ? '' : 's'} selected`;\n\n /**\n * Numeric representation of the total number of items selected in a table.\n * This number is used to derive the selection message.\n */\n @property({ type: Number, attribute: 'selected-rows-count' })\n selectedRowsCount = 0;\n\n updated(changedProperties) {\n if (changedProperties.has('active')) {\n this.setAttribute('tabindex', `${this.active ? '' : '-1'}`);\n }\n }\n\n render() {\n const {\n formatSelectedItemsCount,\n selectedRowsCount,\n _handleCancel: handleCancel,\n } = this;\n return html`\n <div class=\"${prefix}--batch-summary\">\n <p class=\"${prefix}--batch-summary__para\">\n ${formatSelectedItemsCount({ count: selectedRowsCount })}\n </p>\n </div>\n <div class=\"${prefix}--action-list\">\n <slot></slot>\n <button\n class=\"${prefix}--btn ${prefix}--btn--primary ${prefix}--batch-summary__cancel\"\n @click=${handleCancel}>\n <slot name=\"cancel-button-content\">Cancel</slot>\n </button>\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired after the Cancel button is clicked.\n */\n static get eventClickCancel() {\n return `${prefix}-table-batch-actions-cancel-clicked`;\n }\n\n static styles = styles;\n}\n\nexport default BXTableBatchActions;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,MAAM,MAAM,uBAAmB;AACtC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AALA,IAOMK,mBAAmB,GAAAC,SAAA,EADxBH,aAAa,CAAE,GAAEC,MAAO,sBAAqB,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAA/C,MACMH,mBAAmB,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAoE7C;EAAC;IAAAI,CAAA,EApEKN,mBAAmB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA;MACvB;AACF;AACA;MACE,SAAAC,cAAA,EAAwB;QACtB,MAAM;UAAEC;QAAiB,CAAC,GAAG,IAAI,CAACR,WAAyC;QAC3E,IAAI,CAACS,aAAa,CAChB,IAAIC,WAAW,CAACF,gBAAgB,EAAE;UAAEG,OAAO,EAAE,IAAI;UAAEC,QAAQ,EAAE;QAAK,CAAC,CACrE,CAAC;MACH;;MAEA;AACF;AACA;IAFE;MAAAR,IAAA;MAAAS,UAAA,GAGCxB,QAAQ,CAAC;QAAEyB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAX,GAAA;MAAAC,MAAA;QAAA,OAClC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAS,UAAA,GAKbxB,QAAQ,CAAC;QAAE4B,SAAS,EAAE;MAAM,CAAC,CAAC;MAAAZ,GAAA;MAAAC,MAAA;QAAA,OACJ,CAAC;UAAEY;QAAM,CAAC,KAClC,GAAEA,KAAM,QAAOA,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,GAAI,WAAU;MAAA;IAAA;MAAAd,IAAA;MAAAS,UAAA,GAMjDxB,QAAQ,CAAC;QAAEyB,IAAI,EAAEK,MAAM;QAAEF,SAAS,EAAE;MAAsB,CAAC,CAAC;MAAAZ,GAAA;MAAAC,MAAA;QAAA,OACzC,CAAC;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAZrB;AACF;AACA;MAKE;AACF;AACA;AACA;MAIE,SAAAc,QAAQC,iBAAiB,EAAE;QACzB,IAAIA,iBAAiB,CAACC,GAAG,CAAC,QAAQ,CAAC,EAAE;UACnC,IAAI,CAACC,YAAY,CAAC,UAAU,EAAG,GAAE,IAAI,CAACC,MAAM,GAAG,EAAE,GAAG,IAAK,EAAC,CAAC;QAC7D;MACF;IAAC;MAAApB,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAmB,OAAA,EAAS;QACP,MAAM;UACJC,wBAAwB;UACxBC,iBAAiB;UACjBpB,aAAa,EAAEqB;QACjB,CAAC,GAAG,IAAI;QACR,OAAOxC,IAAI,CAAAyC,EAAA,KAAAA,EAAA,GAAAC,CAAA,uSACKnC,MAAM,EACNA,MAAM,EACd+B,wBAAwB,CAAC;UAAER,KAAK,EAAES;QAAkB,CAAC,CAAC,EAG9ChC,MAAM,EAGPA,MAAM,EAASA,MAAM,EAAkBA,MAAM,EAC7CiC,YAAY;MAK7B;;MAEA;AACF;AACA;IAFE;MAAAxB,IAAA;MAAA2B,MAAA;MAAA1B,GAAA;MAAAC,KAAA,EAGA,SAAAE,iBAAA,EAA8B;QAC5B,OAAQ,GAAEb,MAAO,qCAAoC;MACvD;IAAC;MAAAS,IAAA;MAAA2B,MAAA;MAAA1B,GAAA;MAAAC,MAAA;QAAA,OAEed,MAAM;MAAA;IAAA;EAAA;AAAA,GAnEUF,UAAU;AAsE5C,eAAeM,mBAAmB"}
1
+ {"version":3,"file":"table-batch-actions.js","names":["html","property","LitElement","settings","styles","carbonElement","customElement","prefix","BXTableBatchActions","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleCancel","eventClickCancel","dispatchEvent","CustomEvent","bubbles","composed","decorators","type","Boolean","reflect","attribute","count","Number","updated","changedProperties","has","setAttribute","active","render","formatSelectedItemsCount","selectedRowsCount","handleCancel","_t","_","static"],"sources":["components/data-table/table-batch-actions.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport styles from './data-table.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Table batch actions.\n *\n * @element bx-table-batch-actions\n * @fires bx-table-batch-actions-cancel-clicked - The custom event fired after the Cancel button is clicked.\n */\n@customElement(`${prefix}-table-batch-actions`)\nclass BXTableBatchActions extends LitElement {\n /**\n * Handles `click` event on the Cancel button.\n */\n private _handleCancel() {\n const { eventClickCancel } = this.constructor as typeof BXTableBatchActions;\n this.dispatchEvent(\n new CustomEvent(eventClickCancel, { bubbles: true, composed: true })\n );\n }\n\n /**\n * `true` if this batch actions bar should be active.\n */\n @property({ type: Boolean, reflect: true })\n active = false;\n\n /**\n * The formatter for selected items. Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatSelectedItemsCount = ({ count }) =>\n `${count} item${count <= 1 ? '' : 's'} selected`;\n\n /**\n * Numeric representation of the total number of items selected in a table.\n * This number is used to derive the selection message.\n */\n @property({ type: Number, attribute: 'selected-rows-count' })\n selectedRowsCount = 0;\n\n updated(changedProperties) {\n if (changedProperties.has('active')) {\n this.setAttribute('tabindex', `${this.active ? '' : '-1'}`);\n }\n }\n\n render() {\n const {\n formatSelectedItemsCount,\n selectedRowsCount,\n _handleCancel: handleCancel,\n } = this;\n return html`\n <div class=\"${prefix}--batch-summary\">\n <p class=\"${prefix}--batch-summary__para\">\n ${formatSelectedItemsCount({ count: selectedRowsCount })}\n </p>\n </div>\n <div class=\"${prefix}--action-list\">\n <slot></slot>\n <button\n class=\"${prefix}--btn ${prefix}--btn--primary ${prefix}--batch-summary__cancel\"\n @click=${handleCancel}>\n <slot name=\"cancel-button-content\">Cancel</slot>\n </button>\n </div>\n `;\n }\n\n /**\n * The name of the custom event fired after the Cancel button is clicked.\n */\n static get eventClickCancel() {\n return `${prefix}-table-batch-actions-cancel-clicked`;\n }\n\n static styles = styles;\n}\n\nexport default BXTableBatchActions;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-body.js","names":["settings","html","property","query","LitElement","TABLE_COLOR_SCHEME","styles","carbonElement","customElement","prefix","BXTableBody","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","key","value","_updateZebra","colorScheme","_slotNode","slotNode","assignedNodes","forEach","node","nodeType","Node","ELEMENT_NODE","odd","matches","even","ZEBRA","reflect","attribute","REGULAR","connectedCallback","hasAttribute","setAttribute","_get","_getPrototypeOf","prototype","call","updated","changedProperties","has","render","_handleSlotChange","handleSlotChange","_t","_","static"],"sources":["components/data-table/table-body.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, property, query, LitElement } from 'lit-element';\nimport { TABLE_COLOR_SCHEME } from './defs';\nimport BXTableRow from './table-row';\nimport styles from './data-table.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Data table body.\n *\n * @element bx-table-body\n */\n@customElement(`${prefix}-table-body`)\nclass BXTableBody extends LitElement {\n /**\n * The `<slot>` element in the shadow DOM.\n */\n @query('slot')\n private _slotNode!: HTMLSlotElement;\n\n /**\n * Updates `even`/`odd` properties of the child `<bx-table-row>`s.\n */\n private _updateZebra() {\n const { colorScheme, _slotNode: slotNode } = this;\n slotNode.assignedNodes().forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const odd = (node as HTMLElement).matches('*:nth-of-type(odd)');\n (node as BXTableRow).even =\n colorScheme === TABLE_COLOR_SCHEME.ZEBRA && !odd;\n (node as BXTableRow).odd =\n colorScheme === TABLE_COLOR_SCHEME.ZEBRA && odd;\n }\n });\n }\n\n /**\n * Handles `slotchange` event in the `<slot>` element in the shadow DOM.\n */\n private _handleSlotChange = () => {\n this._updateZebra();\n };\n\n /**\n * The color scheme.\n */\n @property({ reflect: true, attribute: 'color-scheme' })\n colorScheme = TABLE_COLOR_SCHEME.REGULAR;\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'rowgroup');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('colorScheme')) {\n this._updateZebra();\n }\n }\n\n render() {\n const { _handleSlotChange: handleSlotChange } = this;\n return html` <slot @slotchange=\"${handleSlotChange}\"></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default BXTableBody;\n"],"mappings":"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"}
1
+ {"version":3,"file":"table-body.js","names":["settings","html","property","query","LitElement","TABLE_COLOR_SCHEME","styles","carbonElement","customElement","prefix","BXTableBody","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","key","value","_updateZebra","colorScheme","_slotNode","slotNode","assignedNodes","forEach","node","nodeType","Node","ELEMENT_NODE","odd","matches","even","ZEBRA","reflect","attribute","REGULAR","connectedCallback","hasAttribute","setAttribute","_get","_getPrototypeOf","prototype","call","updated","changedProperties","has","render","_handleSlotChange","handleSlotChange","_t","_","static"],"sources":["components/data-table/table-body.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, property, query, LitElement } from 'lit-element';\nimport { TABLE_COLOR_SCHEME } from './defs';\nimport BXTableRow from './table-row';\nimport styles from './data-table.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Data table body.\n *\n * @element bx-table-body\n */\n@customElement(`${prefix}-table-body`)\nclass BXTableBody extends LitElement {\n /**\n * The `<slot>` element in the shadow DOM.\n */\n @query('slot')\n private _slotNode!: HTMLSlotElement;\n\n /**\n * Updates `even`/`odd` properties of the child `<bx-table-row>`s.\n */\n private _updateZebra() {\n const { colorScheme, _slotNode: slotNode } = this;\n slotNode.assignedNodes().forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const odd = (node as HTMLElement).matches('*:nth-of-type(odd)');\n (node as BXTableRow).even =\n colorScheme === TABLE_COLOR_SCHEME.ZEBRA && !odd;\n (node as BXTableRow).odd =\n colorScheme === TABLE_COLOR_SCHEME.ZEBRA && odd;\n }\n });\n }\n\n /**\n * Handles `slotchange` event in the `<slot>` element in the shadow DOM.\n */\n private _handleSlotChange = () => {\n this._updateZebra();\n };\n\n /**\n * The color scheme.\n */\n @property({ reflect: true, attribute: 'color-scheme' })\n colorScheme = TABLE_COLOR_SCHEME.REGULAR;\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'rowgroup');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('colorScheme')) {\n this._updateZebra();\n }\n }\n\n render() {\n const { _handleSlotChange: handleSlotChange } = this;\n return html` <slot @slotchange=\"${handleSlotChange}\"></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default BXTableBody;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-cell-skeleton.js","names":["html","settings","BXTableCell","carbonElement","customElement","prefix","BXTableCellSkeleton","_decorate","_initialize","_BXTableCell","constructor","args","F","d","kind","key","value","render","_t","_"],"sources":["components/data-table/table-cell-skeleton.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport BXTableCell from './table-cell';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Data table cell with skeleton content.\n *\n * @element bx-table-cell-skeleton\n */\n@customElement(`${prefix}-table-cell-skeleton`)\nclass BXTableCellSkeleton extends BXTableCell {\n render() {\n return html` <span></span> `;\n }\n}\n\nexport default BXTableCellSkeleton;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,aAAa;AAClC,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,WAAW,MAAM,cAAc;AACtC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMK,mBAAmB,GAAAC,SAAA,EADxBH,aAAa,CAAE,GAAEC,MAAO,sBAAqB,CAAC,aAAAG,WAAA,EAAAC,YAAA;EAA/C,MACMH,mBAAmB,SAAAG,YAAA,CAAqB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAI9C;EAAC;IAAAI,CAAA,EAJKN,mBAAmB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EACvB,SAAAC,OAAA,EAAS;QACP,OAAOjB,IAAI,CAAAkB,EAAA,KAAAA,EAAA,GAAAC,CAAA;MACb;IAAC;EAAA;AAAA,GAH+BjB,WAAW;AAM7C,eAAeI,mBAAmB"}
1
+ {"version":3,"file":"table-cell-skeleton.js","names":["html","settings","BXTableCell","carbonElement","customElement","prefix","BXTableCellSkeleton","_decorate","_initialize","_BXTableCell","constructor","args","F","d","kind","key","value","render","_t","_"],"sources":["components/data-table/table-cell-skeleton.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport BXTableCell from './table-cell';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Data table cell with skeleton content.\n *\n * @element bx-table-cell-skeleton\n */\n@customElement(`${prefix}-table-cell-skeleton`)\nclass BXTableCellSkeleton extends BXTableCell {\n render() {\n return html` <span></span> `;\n }\n}\n\nexport default BXTableCellSkeleton;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,aAAa;AAClC,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,WAAW,MAAM,cAAc;AACtC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMK,mBAAmB,GAAAC,SAAA,EADxBH,aAAa,CAAE,GAAEC,MAAO,sBAAqB,CAAC,aAAAG,WAAA,EAAAC,YAAA;EAA/C,MACMH,mBAAmB,SAAAG,YAAA,CAAqB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAI9C;EAAC;IAAAI,CAAA,EAJKN,mBAAmB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EACvB,SAAAC,OAAA,EAAS;QACP,OAAOjB,IAAI,CAAAkB,EAAA,KAAAA,EAAA,GAAAC,CAAC,iBAAe;MAC7B;IAAC;EAAA;AAAA,GAH+BjB,WAAW;AAM7C,eAAeI,mBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"table-cell.js","names":["settings","html","LitElement","carbonElement","customElement","styles","prefix","BXTableCell","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","connectedCallback","hasAttribute","setAttribute","_get","_getPrototypeOf","prototype","call","render","_t","_","static"],"sources":["components/data-table/table-cell.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, LitElement } from 'lit-element';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './data-table.scss';\n\nconst { prefix } = settings;\n\n/**\n * Data table cell.\n *\n * @element bx-table-cell\n */\n@customElement(`${prefix}-table-cell`)\nclass BXTableCell extends LitElement {\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'cell');\n }\n super.connectedCallback();\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default BXTableCell;\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,IAAI,EAAEC,UAAU,QAAQ,aAAa;AAC9C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,OAAOC,MAAM,MAAM,uBAAmB;AAEtC,MAAM;EAAEC;AAAO,CAAC,GAAGN,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMO,WAAW,GAAAC,SAAA,EADhBJ,aAAa,CAAE,GAAEE,MAAO,aAAY,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAtC,MACMH,WAAW,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAarC;EAAC;IAAAI,CAAA,EAbKN,WAAW;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EACf,SAAAC,kBAAA,EAAoB;QAClB,IAAI,CAAC,IAAI,CAACC,YAAY,CAAC,MAAM,CAAC,EAAE;UAC9B,IAAI,CAACC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QACnC;QACAC,IAAA,CAAAC,eAAA,CALEf,WAAW,CAAAgB,SAAA,8BAAAC,IAAA;MAMf;IAAC;MAAAT,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAQ,OAAA,EAAS;QACP,OAAOxB,IAAI,CAAAyB,EAAA,KAAAA,EAAA,GAAAC,CAAA;MACb;IAAC;MAAAZ,IAAA;MAAAa,MAAA;MAAAZ,GAAA;MAAAC,MAAA;QAAA,OAEeZ,MAAM;MAAA;IAAA;EAAA;AAAA,GAZEH,UAAU;AAepC,eAAeK,WAAW"}
1
+ {"version":3,"file":"table-cell.js","names":["settings","html","LitElement","carbonElement","customElement","styles","prefix","BXTableCell","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","connectedCallback","hasAttribute","setAttribute","_get","_getPrototypeOf","prototype","call","render","_t","_","static"],"sources":["components/data-table/table-cell.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, LitElement } from 'lit-element';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport styles from './data-table.scss';\n\nconst { prefix } = settings;\n\n/**\n * Data table cell.\n *\n * @element bx-table-cell\n */\n@customElement(`${prefix}-table-cell`)\nclass BXTableCell extends LitElement {\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'cell');\n }\n super.connectedCallback();\n }\n\n render() {\n return html` <slot></slot> `;\n }\n\n static styles = styles;\n}\n\nexport default BXTableCell;\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,IAAI,EAAEC,UAAU,QAAQ,aAAa;AAC9C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,OAAOC,MAAM,MAAM,uBAAmB;AAEtC,MAAM;EAAEC;AAAO,CAAC,GAAGN,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMO,WAAW,GAAAC,SAAA,EADhBJ,aAAa,CAAE,GAAEE,MAAO,aAAY,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAtC,MACMH,WAAW,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAarC;EAAC;IAAAI,CAAA,EAbKN,WAAW;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EACf,SAAAC,kBAAA,EAAoB;QAClB,IAAI,CAAC,IAAI,CAACC,YAAY,CAAC,MAAM,CAAC,EAAE;UAC9B,IAAI,CAACC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QACnC;QACAC,IAAA,CAAAC,eAAA,CALEf,WAAW,CAAAgB,SAAA,8BAAAC,IAAA;MAMf;IAAC;MAAAT,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAQ,OAAA,EAAS;QACP,OAAOxB,IAAI,CAAAyB,EAAA,KAAAA,EAAA,GAAAC,CAAC,iBAAe;MAC7B;IAAC;MAAAZ,IAAA;MAAAa,MAAA;MAAAZ,GAAA;MAAAC,MAAA;QAAA,OAEeZ,MAAM;MAAA;IAAA;EAAA;AAAA,GAZEH,UAAU;AAepC,eAAeK,WAAW"}