@carbon/web-components 2.11.1 → 2.12.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 (404) hide show
  1. package/dist/16-486ace1a.js +1 -1
  2. package/dist/16-51a594ce.js +1 -1
  3. package/dist/16-656090c0.js +1 -1
  4. package/dist/16-71872213.js +1 -1
  5. package/dist/16-730a41a2.js +1 -1
  6. package/dist/16-83a1cd89.js +1 -1
  7. package/dist/16-b73c677b.js +1 -1
  8. package/dist/16-d1c73001.js +1 -1
  9. package/dist/20-d069d8da.js +1 -1
  10. package/dist/accordion.min.js +8 -14
  11. package/dist/ai-skeleton.min.js +1 -1
  12. package/dist/breadcrumb.min.js +4 -4
  13. package/dist/button-21c75bab.js +1 -1
  14. package/dist/{button-set-69863a24.js → button-set-984abad1.js} +2 -2
  15. package/dist/button-skeleton-1abc1fd8.js +1 -1
  16. package/dist/button.min.js +2 -2
  17. package/dist/carbon-element-4ca9803f.js +1 -1
  18. package/dist/chat-button.min.js +1 -1
  19. package/dist/checkbox-dc5fcaff.js +109 -0
  20. package/dist/checkbox.min.js +4 -4
  21. package/dist/class-map-5edb95da.js +1 -1
  22. package/dist/code-snippet.min.js +3 -3
  23. package/dist/collection-helpers-4e32fe16.js +1 -1
  24. package/dist/combo-box.min.js +3 -3
  25. package/dist/{content-switcher-item-5b8dd42f.js → content-switcher-item-62392ba8.js} +1 -1
  26. package/dist/content-switcher.min.js +2 -2
  27. package/dist/{copy-button-d673538b.js → copy-button-8ae404e7.js} +3 -3
  28. package/dist/copy-button.min.js +2 -2
  29. package/dist/data-table.min.js +9 -9
  30. package/dist/date-picker.min.js +6 -6
  31. package/dist/defineProperty-e448b551.js +1 -1
  32. package/dist/directive-e2d48b9c.js +1 -1
  33. package/dist/dropdown-item-8284b402.js +148 -0
  34. package/dist/dropdown.min.js +2 -2
  35. package/dist/file-uploader.min.js +2 -2
  36. package/dist/{floating-menu-46199beb.js → floating-menu-4fdda50e.js} +1 -1
  37. package/dist/floating-menu.min.js +2 -2
  38. package/dist/focus-e70d1cbe.js +1 -1
  39. package/dist/form-group.min.js +3 -3
  40. package/dist/form.min.js +2 -2
  41. package/dist/get-52a048b1.js +1 -1
  42. package/dist/host-listener-b6a3d690.js +1 -1
  43. package/dist/{icon-button-09275c70.js → icon-button-9889b58b.js} +4 -4
  44. package/dist/icon-button.min.js +2 -2
  45. package/dist/if-defined-2e09d22b.js +1 -1
  46. package/dist/if-non-empty-20ce3c96.js +1 -1
  47. package/dist/inline-loading.min.js +5 -5
  48. package/dist/{layer-5f257c4a.js → layer-ee2a047c.js} +1 -1
  49. package/dist/layer.min.js +2 -2
  50. package/dist/{link-dc6f9b4e.js → link-c2b4e683.js} +1 -1
  51. package/dist/link.min.js +2 -2
  52. package/dist/list.min.js +4 -4
  53. package/dist/loading-2604f4ad.js +1 -1
  54. package/dist/loading-icon-85b7e502.js +1 -1
  55. package/dist/loading.min.js +1 -1
  56. package/dist/{modal-label-d53c98de.js → modal-label-9ee331a4.js} +1 -1
  57. package/dist/modal.min.js +2 -2
  58. package/dist/multi-select.min.js +4 -4
  59. package/dist/notification.min.js +5 -5
  60. package/dist/number-input.min.js +4 -4
  61. package/dist/objectSpread2-46e4de7a.js +1 -1
  62. package/dist/on-6c264d49.js +1 -1
  63. package/dist/overflow-menu.min.js +5 -5
  64. package/dist/pagination.min.js +5 -5
  65. package/dist/{popover-content-08cf10b0.js → popover-content-d6f3bde5.js} +2 -2
  66. package/dist/popover-controller-486f0f75.js +73 -0
  67. package/dist/popover.min.js +2 -2
  68. package/dist/progress-bar.min.js +1 -1
  69. package/dist/progress-indicator.min.js +3 -3
  70. package/dist/query-5f833318.js +1 -1
  71. package/dist/query-assigned-elements-73bd2544.js +1 -1
  72. package/dist/radio-button.min.js +2 -2
  73. package/dist/radio-group-manager-de7f9ab3.js +1 -1
  74. package/dist/search-09497355.js +102 -0
  75. package/dist/search.min.js +2 -2
  76. package/dist/select-95272984.js +141 -0
  77. package/dist/select.min.js +3 -71
  78. package/dist/settings-97cd1c3a.js +1 -1
  79. package/dist/shared-enums-c6fe8c39.js +1 -1
  80. package/dist/side-panel.min.js +11 -11
  81. package/dist/skeleton-icon-bfc7d5c8.js +1 -1
  82. package/dist/skeleton-icon.min.js +1 -1
  83. package/dist/skeleton-placeholder-403f26a3.js +1 -1
  84. package/dist/skeleton-placeholder.min.js +1 -1
  85. package/dist/skeleton-text-9d02604f.js +1 -1
  86. package/dist/skeleton-text.min.js +1 -1
  87. package/dist/skip-to-content.min.js +2 -2
  88. package/dist/slider.min.js +4 -4
  89. package/dist/slug.min.js +3 -3
  90. package/dist/spread-d515f3f1.js +1 -1
  91. package/dist/stack.min.js +1 -1
  92. package/dist/state-ddd29b9d.js +1 -1
  93. package/dist/structured-list.min.js +5 -5
  94. package/dist/tabs.min.js +5 -5
  95. package/dist/tag.min.js +5 -5
  96. package/dist/tearsheet.min.js +10 -10
  97. package/dist/text-input-5ebf4917.js +142 -0
  98. package/dist/text-input.min.js +2 -2
  99. package/dist/textarea.min.js +6 -6
  100. package/dist/tile.min.js +3 -3
  101. package/dist/toggle-tip.min.js +2 -2
  102. package/dist/toggle.min.js +2 -2
  103. package/dist/{toggletip-f95c53b0.js → toggletip-1ef069a9.js} +2 -2
  104. package/dist/{tooltip-content-d784ae2b.js → tooltip-content-a75c5632.js} +3 -3
  105. package/dist/tooltip.min.js +2 -2
  106. package/dist/ui-shell.min.js +14 -14
  107. package/dist/validity-d86ffa4f.js +1 -1
  108. package/es/components/accordion/accordion-item-skeleton.js.map +1 -1
  109. package/es/components/accordion/accordion-item.js +8 -7
  110. package/es/components/accordion/accordion-item.js.map +1 -1
  111. package/es/components/accordion/accordion-skeleton.d.ts +1 -1
  112. package/es/components/accordion/accordion-skeleton.js +5 -6
  113. package/es/components/accordion/accordion-skeleton.js.map +1 -1
  114. package/es/components/accordion/accordion.css.js +1 -1
  115. package/es/components/accordion/accordion.js +4 -3
  116. package/es/components/accordion/accordion.js.map +1 -1
  117. package/es/components/ai-skeleton/ai-skeleton-icon.js.map +1 -1
  118. package/es/components/ai-skeleton/ai-skeleton-placeholder.js.map +1 -1
  119. package/es/components/ai-skeleton/ai-skeleton-text.js.map +1 -1
  120. package/es/components/breadcrumb/breadcrumb-item.js +3 -2
  121. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  122. package/es/components/breadcrumb/breadcrumb-link.js +3 -2
  123. package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
  124. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  125. package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
  126. package/es/components/breadcrumb/breadcrumb.js +3 -2
  127. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  128. package/es/components/button/button-set-base.js +3 -2
  129. package/es/components/button/button-set-base.js.map +1 -1
  130. package/es/components/button/button-set.js +1 -1
  131. package/es/components/button/button-set.js.map +1 -1
  132. package/es/components/button/button-skeleton.js.map +1 -1
  133. package/es/components/button/button.js.map +1 -1
  134. package/es/components/chat-button/chat-button-skeleton.js.map +1 -1
  135. package/es/components/chat-button/chat-button.js.map +1 -1
  136. package/es/components/checkbox/checkbox-group.js +2 -2
  137. package/es/components/checkbox/checkbox-group.js.map +1 -1
  138. package/es/components/checkbox/checkbox-skeleton.js.map +1 -1
  139. package/es/components/checkbox/checkbox.css.js +1 -1
  140. package/es/components/checkbox/checkbox.js +2 -2
  141. package/es/components/checkbox/checkbox.js.map +1 -1
  142. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  143. package/es/components/code-snippet/code-snippet.js +3 -2
  144. package/es/components/code-snippet/code-snippet.js.map +1 -1
  145. package/es/components/combo-box/combo-box.css.js +1 -1
  146. package/es/components/combo-box/combo-box.js +14 -13
  147. package/es/components/combo-box/combo-box.js.map +1 -1
  148. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  149. package/es/components/content-switcher/content-switcher.js +6 -6
  150. package/es/components/content-switcher/content-switcher.js.map +1 -1
  151. package/es/components/copy/copy.d.ts +1 -1
  152. package/es/components/copy/copy.js +5 -4
  153. package/es/components/copy/copy.js.map +1 -1
  154. package/es/components/copy-button/copy-button.d.ts +1 -1
  155. package/es/components/copy-button/copy-button.js +1 -1
  156. package/es/components/copy-button/copy-button.js.map +1 -1
  157. package/es/components/data-table/data-table.css.js +1 -1
  158. package/es/components/data-table/table-batch-actions.js +2 -2
  159. package/es/components/data-table/table-batch-actions.js.map +1 -1
  160. package/es/components/data-table/table-body.js +3 -2
  161. package/es/components/data-table/table-body.js.map +1 -1
  162. package/es/components/data-table/table-cell-content.js.map +1 -1
  163. package/es/components/data-table/table-cell.js +3 -2
  164. package/es/components/data-table/table-cell.js.map +1 -1
  165. package/es/components/data-table/table-expanded-row.js +1 -1
  166. package/es/components/data-table/table-expanded-row.js.map +1 -1
  167. package/es/components/data-table/table-head.js +3 -2
  168. package/es/components/data-table/table-head.js.map +1 -1
  169. package/es/components/data-table/table-header-cell.js +5 -4
  170. package/es/components/data-table/table-header-cell.js.map +1 -1
  171. package/es/components/data-table/table-header-description.js.map +1 -1
  172. package/es/components/data-table/table-header-row.js +1 -1
  173. package/es/components/data-table/table-header-row.js.map +1 -1
  174. package/es/components/data-table/table-header-title.js.map +1 -1
  175. package/es/components/data-table/table-row.js +12 -11
  176. package/es/components/data-table/table-row.js.map +1 -1
  177. package/es/components/data-table/table-skeleton.js +3 -2
  178. package/es/components/data-table/table-skeleton.js.map +1 -1
  179. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  180. package/es/components/data-table/table-toolbar-search.js +5 -4
  181. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  182. package/es/components/data-table/table-toolbar.js +4 -3
  183. package/es/components/data-table/table-toolbar.js.map +1 -1
  184. package/es/components/data-table/table.js +28 -27
  185. package/es/components/data-table/table.js.map +1 -1
  186. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  187. package/es/components/date-picker/date-picker-input.js +2 -2
  188. package/es/components/date-picker/date-picker-input.js.map +1 -1
  189. package/es/components/date-picker/date-picker.css.js +1 -1
  190. package/es/components/date-picker/date-picker.js +20 -19
  191. package/es/components/date-picker/date-picker.js.map +1 -1
  192. package/es/components/dropdown/dropdown-item.js +3 -2
  193. package/es/components/dropdown/dropdown-item.js.map +1 -1
  194. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  195. package/es/components/dropdown/dropdown.css.js +1 -1
  196. package/es/components/dropdown/dropdown.js +9 -9
  197. package/es/components/dropdown/dropdown.js.map +1 -1
  198. package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
  199. package/es/components/file-uploader/file-uploader-button.js +2 -2
  200. package/es/components/file-uploader/file-uploader-button.js.map +1 -1
  201. package/es/components/file-uploader/file-uploader-drop-container.js +2 -2
  202. package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  203. package/es/components/file-uploader/file-uploader-item.js +2 -2
  204. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  205. package/es/components/file-uploader/file-uploader-skeleton.js.map +1 -1
  206. package/es/components/file-uploader/file-uploader.css.js +1 -1
  207. package/es/components/file-uploader/file-uploader.js +1 -1
  208. package/es/components/file-uploader/file-uploader.js.map +1 -1
  209. package/es/components/floating-menu/floating-menu.js +3 -3
  210. package/es/components/floating-menu/floating-menu.js.map +1 -1
  211. package/es/components/form/form-item.css.js +1 -1
  212. package/es/components/form/form-item.js.map +1 -1
  213. package/es/components/form-group/form-group.css.js +1 -1
  214. package/es/components/form-group/form-group.js.map +1 -1
  215. package/es/components/icon-button/icon-button.js +3 -2
  216. package/es/components/icon-button/icon-button.js.map +1 -1
  217. package/es/components/inline-loading/inline-loading.js +3 -2
  218. package/es/components/inline-loading/inline-loading.js.map +1 -1
  219. package/es/components/layer/layer.js +2 -2
  220. package/es/components/layer/layer.js.map +1 -1
  221. package/es/components/link/link.js +1 -1
  222. package/es/components/link/link.js.map +1 -1
  223. package/es/components/list/list-item.js +4 -3
  224. package/es/components/list/list-item.js.map +1 -1
  225. package/es/components/list/ordered-list.js.map +1 -1
  226. package/es/components/list/unordered-list.js +4 -3
  227. package/es/components/list/unordered-list.js.map +1 -1
  228. package/es/components/loading/loading.js.map +1 -1
  229. package/es/components/modal/modal-body-content.js.map +1 -1
  230. package/es/components/modal/modal-body.js.map +1 -1
  231. package/es/components/modal/modal-close-button.js.map +1 -1
  232. package/es/components/modal/modal-footer.js +1 -1
  233. package/es/components/modal/modal-footer.js.map +1 -1
  234. package/es/components/modal/modal-header.js +1 -1
  235. package/es/components/modal/modal-header.js.map +1 -1
  236. package/es/components/modal/modal-heading.js.map +1 -1
  237. package/es/components/modal/modal-label.js.map +1 -1
  238. package/es/components/modal/modal.js +8 -8
  239. package/es/components/modal/modal.js.map +1 -1
  240. package/es/components/multi-select/multi-select-item.js +1 -1
  241. package/es/components/multi-select/multi-select-item.js.map +1 -1
  242. package/es/components/multi-select/multi-select.css.js +1 -1
  243. package/es/components/multi-select/multi-select.js +18 -17
  244. package/es/components/multi-select/multi-select.js.map +1 -1
  245. package/es/components/notification/actionable-notification-button.js +3 -2
  246. package/es/components/notification/actionable-notification-button.js.map +1 -1
  247. package/es/components/notification/actionable-notification.js +5 -4
  248. package/es/components/notification/actionable-notification.js.map +1 -1
  249. package/es/components/notification/inline-notification.js +5 -4
  250. package/es/components/notification/inline-notification.js.map +1 -1
  251. package/es/components/notification/toast-notification.js.map +1 -1
  252. package/es/components/number-input/number-input-skeleton.js.map +1 -1
  253. package/es/components/number-input/number-input.css.js +1 -1
  254. package/es/components/number-input/number-input.js +10 -9
  255. package/es/components/number-input/number-input.js.map +1 -1
  256. package/es/components/overflow-menu/overflow-menu-body.js +6 -5
  257. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  258. package/es/components/overflow-menu/overflow-menu-item.js +3 -2
  259. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  260. package/es/components/overflow-menu/overflow-menu.js +6 -5
  261. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  262. package/es/components/pagination/index.d.ts +2 -1
  263. package/es/components/pagination/index.js +2 -1
  264. package/es/components/pagination/index.js.map +1 -1
  265. package/es/components/pagination/pagination.css.js +1 -1
  266. package/es/components/pagination/pagination.js +4 -4
  267. package/es/components/pagination/pagination.js.map +1 -1
  268. package/es/components/popover/popover-content.js.map +1 -1
  269. package/es/components/popover/popover.js +3 -3
  270. package/es/components/popover/popover.js.map +1 -1
  271. package/es/components/progress-bar/progress-bar.js +1 -1
  272. package/es/components/progress-bar/progress-bar.js.map +1 -1
  273. package/es/components/progress-indicator/progress-indicator-skeleton.js +1 -1
  274. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  275. package/es/components/progress-indicator/progress-indicator.js +4 -3
  276. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  277. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  278. package/es/components/progress-indicator/progress-step.js +3 -2
  279. package/es/components/progress-indicator/progress-step.js.map +1 -1
  280. package/es/components/radio-button/radio-button-group.js +4 -4
  281. package/es/components/radio-button/radio-button-group.js.map +1 -1
  282. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  283. package/es/components/radio-button/radio-button.css.js +1 -1
  284. package/es/components/radio-button/radio-button.js +5 -4
  285. package/es/components/radio-button/radio-button.js.map +1 -1
  286. package/es/components/search/search-skeleton.js.map +1 -1
  287. package/es/components/search/search.css.js +1 -1
  288. package/es/components/search/search.js +1 -1
  289. package/es/components/search/search.js.map +1 -1
  290. package/es/components/select/select-skeleton.js.map +1 -1
  291. package/es/components/select/select.css.js +1 -1
  292. package/es/components/select/select.js +14 -13
  293. package/es/components/select/select.js.map +1 -1
  294. package/es/components/side-panel/side-panel.css.js +1 -1
  295. package/es/components/side-panel/side-panel.js +10 -9
  296. package/es/components/side-panel/side-panel.js.map +1 -1
  297. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  298. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  299. package/es/components/skip-to-content/skip-to-content.js +3 -2
  300. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  301. package/es/components/slider/slider-input.js +8 -8
  302. package/es/components/slider/slider-input.js.map +1 -1
  303. package/es/components/slider/slider-skeleton.js.map +1 -1
  304. package/es/components/slider/slider.css.js +1 -1
  305. package/es/components/slider/slider.js +17 -16
  306. package/es/components/slider/slider.js.map +1 -1
  307. package/es/components/slug/slug.css.js +1 -1
  308. package/es/components/slug/slug.js +3 -2
  309. package/es/components/slug/slug.js.map +1 -1
  310. package/es/components/stack/stack.js.map +1 -1
  311. package/es/components/structured-list/structured-list-body.js +3 -2
  312. package/es/components/structured-list/structured-list-body.js.map +1 -1
  313. package/es/components/structured-list/structured-list-cell.js +3 -2
  314. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  315. package/es/components/structured-list/structured-list-head.js +3 -2
  316. package/es/components/structured-list/structured-list-head.js.map +1 -1
  317. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  318. package/es/components/structured-list/structured-list-header-cell.js +3 -2
  319. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  320. package/es/components/structured-list/structured-list-header-row.js +3 -2
  321. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  322. package/es/components/structured-list/structured-list-row.js +4 -3
  323. package/es/components/structured-list/structured-list-row.js.map +1 -1
  324. package/es/components/structured-list/structured-list.js +3 -2
  325. package/es/components/structured-list/structured-list.js.map +1 -1
  326. package/es/components/tabs/tab-skeleton.js.map +1 -1
  327. package/es/components/tabs/tab.js +3 -2
  328. package/es/components/tabs/tab.js.map +1 -1
  329. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  330. package/es/components/tabs/tabs.js +13 -12
  331. package/es/components/tabs/tabs.js.map +1 -1
  332. package/es/components/tag/tag.css.js +1 -1
  333. package/es/components/tag/tag.js +3 -3
  334. package/es/components/tag/tag.js.map +1 -1
  335. package/es/components/tearsheet/tearsheet.js +11 -10
  336. package/es/components/tearsheet/tearsheet.js.map +1 -1
  337. package/es/components/text-input/text-input-skeleton.js.map +1 -1
  338. package/es/components/text-input/text-input.css.js +1 -1
  339. package/es/components/text-input/text-input.js +5 -5
  340. package/es/components/text-input/text-input.js.map +1 -1
  341. package/es/components/textarea/textarea-skeleton.js.map +1 -1
  342. package/es/components/textarea/textarea.css.js +1 -1
  343. package/es/components/textarea/textarea.js.map +1 -1
  344. package/es/components/tile/clickable-tile.js +5 -4
  345. package/es/components/tile/clickable-tile.js.map +1 -1
  346. package/es/components/tile/expandable-tile.js +3 -3
  347. package/es/components/tile/expandable-tile.js.map +1 -1
  348. package/es/components/tile/radio-tile.js +1 -1
  349. package/es/components/tile/radio-tile.js.map +1 -1
  350. package/es/components/tile/selectable-tile.js +2 -2
  351. package/es/components/tile/selectable-tile.js.map +1 -1
  352. package/es/components/tile/tile-group.js +4 -4
  353. package/es/components/tile/tile-group.js.map +1 -1
  354. package/es/components/tile/tile.css.js +1 -1
  355. package/es/components/tile/tile.js +1 -1
  356. package/es/components/tile/tile.js.map +1 -1
  357. package/es/components/toggle/toggle.js +1 -1
  358. package/es/components/toggle/toggle.js.map +1 -1
  359. package/es/components/toggle-tip/toggletip.js +3 -3
  360. package/es/components/toggle-tip/toggletip.js.map +1 -1
  361. package/es/components/tooltip/tooltip-content.js +3 -2
  362. package/es/components/tooltip/tooltip-content.js.map +1 -1
  363. package/es/components/tooltip/tooltip.js +8 -7
  364. package/es/components/tooltip/tooltip.js.map +1 -1
  365. package/es/components/ui-shell/header-global-action.js +3 -2
  366. package/es/components/ui-shell/header-global-action.js.map +1 -1
  367. package/es/components/ui-shell/header-menu-button.js +1 -1
  368. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  369. package/es/components/ui-shell/header-menu.js +4 -3
  370. package/es/components/ui-shell/header-menu.js.map +1 -1
  371. package/es/components/ui-shell/header-name.js.map +1 -1
  372. package/es/components/ui-shell/header-nav-item.js.map +1 -1
  373. package/es/components/ui-shell/header-nav.js +3 -2
  374. package/es/components/ui-shell/header-nav.js.map +1 -1
  375. package/es/components/ui-shell/header-panel.js.map +1 -1
  376. package/es/components/ui-shell/header-side-nav-items.js +3 -2
  377. package/es/components/ui-shell/header-side-nav-items.js.map +1 -1
  378. package/es/components/ui-shell/header.js +3 -2
  379. package/es/components/ui-shell/header.js.map +1 -1
  380. package/es/components/ui-shell/side-nav-divider.js +3 -2
  381. package/es/components/ui-shell/side-nav-divider.js.map +1 -1
  382. package/es/components/ui-shell/side-nav-items.js +3 -2
  383. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  384. package/es/components/ui-shell/side-nav-link.js +3 -2
  385. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  386. package/es/components/ui-shell/side-nav-menu-item.js +4 -3
  387. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  388. package/es/components/ui-shell/side-nav-menu.js +6 -5
  389. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  390. package/es/components/ui-shell/side-nav.js +9 -8
  391. package/es/components/ui-shell/side-nav.js.map +1 -1
  392. package/es/components/ui-shell/switcher-divider.js +3 -2
  393. package/es/components/ui-shell/switcher-divider.js.map +1 -1
  394. package/es/components/ui-shell/switcher-item.js +3 -2
  395. package/es/components/ui-shell/switcher-item.js.map +1 -1
  396. package/es/components/ui-shell/switcher.js +3 -2
  397. package/es/components/ui-shell/switcher.js.map +1 -1
  398. package/package.json +6 -6
  399. package/dist/checkbox-d0a3a79f.js +0 -109
  400. package/dist/dropdown-item-91b3dc95.js +0 -148
  401. package/dist/popover-controller-cc6ccb74.js +0 -73
  402. package/dist/search-23232b04.js +0 -102
  403. package/dist/select-item-4ebf72a0.js +0 -73
  404. package/dist/text-input-ead65188.js +0 -142
@@ -859,7 +859,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
859
859
  }, {
860
860
  kind: "get",
861
861
  key: "_classes",
862
- value: function _classes() {
862
+ value: function () {
863
863
  const {
864
864
  disabled,
865
865
  size,
@@ -1007,7 +1007,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
1007
1007
  /**
1008
1008
  * A selector that will return highlighted items.
1009
1009
  */
1010
- function selectorItemHighlighted() {
1010
+ function () {
1011
1011
  return `${prefix}-dropdown-item[highlighted]`;
1012
1012
  }
1013
1013
 
@@ -1018,7 +1018,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
1018
1018
  kind: "get",
1019
1019
  static: true,
1020
1020
  key: "selectorItem",
1021
- value: function selectorItem() {
1021
+ value: function () {
1022
1022
  return `${prefix}-dropdown-item`;
1023
1023
  }
1024
1024
 
@@ -1029,7 +1029,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
1029
1029
  kind: "get",
1030
1030
  static: true,
1031
1031
  key: "selectorItemSelected",
1032
- value: function selectorItemSelected() {
1032
+ value: function () {
1033
1033
  return `${prefix}-dropdown-item[selected]`;
1034
1034
  }
1035
1035
 
@@ -1041,7 +1041,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
1041
1041
  kind: "get",
1042
1042
  static: true,
1043
1043
  key: "eventBeforeSelect",
1044
- value: function eventBeforeSelect() {
1044
+ value: function () {
1045
1045
  return `${prefix}-dropdown-beingselected`;
1046
1046
  }
1047
1047
 
@@ -1052,7 +1052,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
1052
1052
  kind: "get",
1053
1053
  static: true,
1054
1054
  key: "eventSelect",
1055
- value: function eventSelect() {
1055
+ value: function () {
1056
1056
  return `${prefix}-dropdown-selected`;
1057
1057
  }
1058
1058
 
@@ -1064,7 +1064,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
1064
1064
  kind: "get",
1065
1065
  static: true,
1066
1066
  key: "eventBeforeToggle",
1067
- value: function eventBeforeToggle() {
1067
+ value: function () {
1068
1068
  return `${prefix}-dropdown-beingtoggled`;
1069
1069
  }
1070
1070
 
@@ -1075,7 +1075,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
1075
1075
  kind: "get",
1076
1076
  static: true,
1077
1077
  key: "eventToggle",
1078
- value: function eventToggle() {
1078
+ value: function () {
1079
1079
  return `${prefix}-dropdown-toggled`;
1080
1080
  }
1081
1081
 
@@ -1086,7 +1086,7 @@ let CDSDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_in
1086
1086
  kind: "get",
1087
1087
  static: true,
1088
1088
  key: "slugItem",
1089
- value: function slugItem() {
1089
+ value: function () {
1090
1090
  return `${prefix}-slug`;
1091
1091
  }
1092
1092
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","names":["classMap","ifDefined","LitElement","html","property","query","state","prefix","ChevronDown16","WarningFilled16","WarningAltFilled16","FocusMixin","FormMixin","HostListenerMixin","ValidityMixin","HostListener","find","forEach","indexOf","DROPDOWN_DIRECTION","DROPDOWN_KEYBOARD_ACTION","DROPDOWN_SIZE","DROPDOWN_TYPE","NAVIGATION_DIRECTION","styles","carbonElement","customElement","CDSDropdown","_decorate","_initialize","_ValidityMixin","constructor","args","F","d","kind","key","value","decorators","_selectionShouldChange","itemToSelect","_selectionDidChange","_activeDescendant","id","querySelectorAll","selectorItemSelected","item","selected","setAttribute","_handleUserInitiatedToggle","_handleClickInner","event","readOnly","shadowRoot","contains","target","closest","selectorItem","_handleUserInitiatedSelectItem","_handleKeydownInner","action","getAction","open","NAVIGATING","_clearHighlight","CLOSING","_navigate","_handleKeypressInner","TRIGGERING","highlightedItem","querySelector","selectorItemHighlighted","_handleFocusOut","relatedTarget","_handleSlotchangeHelperText","requestUpdate","_handleSlotchangeLabelText","_handleSlugSlotChange","hasContent","assignedNodes","filter","elem","matches","undefined","slugItem","_hasSlug","Boolean","hasAttribute","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","afterSelectEvent","eventSelect","force","eventBeforeToggle","eventToggle","disabled","highlighted","direction","_items$nextIndex","items","highlightedIndex","nextIndex","length","i","nextItem","scrollIntoView","block","nextItemId","_renderPrecedingLabel","_renderLabel","label","_selectedItemContent","selectedItemContent","_t","_","_renderTitleLabel","hideLabel","titleText","_slotTitleTextNode","slotTitleTextNode","handleSlotchangeLabelText","labelClasses","hasTitleText","_t2","_renderFollowingLabel","_handleFormdata","formData","name","append","type","String","reflect","attribute","BOTTOM","MEDIUM","DEFAULT","shouldUpdate","changedProperties","has","size","removeAttribute","range","ownerDocument","createRange","selectNodeContents","cloneContents","updated","_changedProperties","_this$shadowRoot","_this$querySelector","classList","toggle","_classes","invalid","warn","inline","INLINE","selectedItemsCount","render","ariaLabel","classes","helperText","invalidText","toggleLabelClosed","toggleLabelOpen","warnText","activeDescendant","_shouldTriggerBeFocusable","shouldTriggerBeFocusable","handleClickInner","handleKeydownInner","handleKeypressInner","handleSlotchangeHelperText","handleSlugSlotChange","_slotHelperTextNode","slotHelperTextNode","activeDescendantFallback","_items$","helperClasses","iconContainerClasses","toggleLabel","hasHelperText","validityIcon","class","warningIcon","helperMessage","menuBody","_t3","_t4","static","Set","shadowRootOptions","delegatesFocus","TRIGGER_KEYS","NONE"],"sources":["components/dropdown/dropdown.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\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/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LitElement, html, TemplateResult } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport WarningFilled16 from '@carbon/icons/lib/warning--filled/16';\nimport WarningAltFilled16 from '@carbon/icons/lib/warning--alt--filled/16';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport HostListener from '../../globals/decorators/host-listener';\nimport {\n find,\n forEach,\n indexOf,\n} from '../../globals/internal/collection-helpers';\nimport {\n DROPDOWN_DIRECTION,\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n} from './defs';\nimport CDSDropdownItem from './dropdown-item';\nimport styles from './dropdown.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_DIRECTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n};\n\n/**\n * Dropdown.\n *\n * @element cds-dropdown\n * @csspart label-text The label text.\n * @csspart helper-text The helper text.\n * @csspart trigger-button The trigger button.\n * @csspart menu-body The menu body.\n * @csspart validity-message The validity message.\n * @fires cds-dropdown-beingselected\n * The custom event fired before a dropdown item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-dropdown-beingtoggled\n * The custom event fired before the open state of this dropdown is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-dropdown-selected - The custom event fired after a dropdown item is selected upon a user gesture.\n * @fires cds-dropdown-toggled - The custom event fired after the open state of this dropdown is toggled upon a user gesture.\n */\n@customElement(`${prefix}-dropdown`)\nclass CDSDropdown extends ValidityMixin(\n HostListenerMixin(FormMixin(FocusMixin(LitElement)))\n) {\n /**\n * `true` if there is a slug.\n */\n protected _hasSlug = false;\n\n @state()\n protected _activeDescendant?: string;\n\n /**\n * The content of the selected item.\n */\n protected _selectedItemContent: DocumentFragment | null = null;\n\n /**\n * `true` if the trigger button should be focusable.\n * Derived class can set `false` to this if the trigger button contains another primary focusable element (e.g. `<input>`).\n */\n protected _shouldTriggerBeFocusable = true;\n\n /**\n * The list box `<div>` node.\n */\n @query(`.${prefix}--list-box`)\n protected _listBoxNode!: HTMLDivElement;\n\n /**\n * The `<slot>` element for the helper text in the shadow DOM.\n */\n @query('slot[name=\"helper-text\"]')\n protected _slotHelperTextNode!: HTMLSlotElement;\n\n /**\n * The `<slot>` element for the title text in the shadow DOM.\n */\n @query('slot[name=\"title-text\"]')\n protected _slotTitleTextNode!: HTMLSlotElement;\n\n /**\n * @param itemToSelect A dropdown item. Absense of this argument means clearing selection.\n * @returns `true` if the selection of this dropdown should change if the given item is selected upon user interaction.\n */\n protected _selectionShouldChange(itemToSelect?: CDSDropdownItem) {\n return !itemToSelect || itemToSelect.value !== this.value;\n }\n\n /**\n * A callback that runs after change in dropdown selection upon user interaction is confirmed.\n *\n * @param itemToSelect\n * A dropdown item.\n * Absense of this argument means clearing selection, which may be handled by a derived class.\n */\n protected _selectionDidChange(itemToSelect?: CDSDropdownItem) {\n if (itemToSelect) {\n this.value = itemToSelect.value;\n this._activeDescendant = itemToSelect.id;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSDropdownItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n this._handleUserInitiatedToggle(false);\n }\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 _handleClickInner(event: MouseEvent) {\n if (this.readOnly) {\n return;\n }\n\n if (this.shadowRoot!.contains(event.target as Node)) {\n this._handleUserInitiatedToggle();\n } else {\n const item = (event.target as Element).closest(\n (this.constructor as typeof CDSDropdown).selectorItem\n ) as CDSDropdownItem;\n if (this.contains(item)) {\n this._handleUserInitiatedSelectItem(item);\n }\n }\n }\n\n /**\n * Handler for the `keydown` event on the top-level element in the shadow DOM.\n */\n protected _handleKeydownInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.NAVIGATING:\n this._handleUserInitiatedToggle(true);\n // If this menu gets open with an arrow key, reset the highlight\n this._clearHighlight();\n break;\n default:\n break;\n }\n } else {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.CLOSING:\n this._handleUserInitiatedToggle(false);\n break;\n case DROPDOWN_KEYBOARD_ACTION.NAVIGATING:\n this._navigate(NAVIGATION_DIRECTION[key]);\n break;\n default:\n break;\n }\n }\n }\n\n /**\n * Handler for the `keypress` event on the top-level element in the shadow DOM.\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n this._handleUserInitiatedToggle(true);\n break;\n default:\n break;\n }\n } else {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n {\n const constructor = this.constructor as typeof CDSDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSDropdownItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else {\n this._handleUserInitiatedToggle(false);\n }\n }\n break;\n default:\n break;\n }\n }\n }\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n @HostListener('focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n if (!this.contains(event.relatedTarget as Node)) {\n this._handleUserInitiatedToggle(false);\n }\n }\n\n /**\n * Handles `slotchange` event for the `<slot>` for helper text.\n */\n protected _handleSlotchangeHelperText() {\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event for the `<slot>` for label text.\n */\n protected _handleSlotchangeLabelText() {\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlugSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSDropdown).slugItem\n )\n : false\n );\n\n this._hasSlug = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n\n /**\n * Handles user-initiated selection of a dropdown item.\n *\n * @param [item] The dropdown item user wants to select. Absense of this argument means clearing selection.\n */\n protected _handleUserInitiatedSelectItem(item?: CDSDropdownItem) {\n if (item?.hasAttribute('disabled')) {\n return;\n }\n\n if (this._selectionShouldChange(item)) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof CDSDropdown;\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 * Handles user-initiated toggling the open state.\n *\n * @param [force] If specified, forces the open state to the given one.\n */\n protected _handleUserInitiatedToggle(force = !this.open) {\n const { eventBeforeToggle, eventToggle } = this\n .constructor as typeof CDSDropdown;\n\n const { disabled } = this;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n open: force,\n },\n };\n if (!disabled) {\n if (this.dispatchEvent(new CustomEvent(eventBeforeToggle, init))) {\n this.open = force;\n if (!this.open) {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemHighlighted\n ),\n (item) => {\n (item as CDSDropdownItem).highlighted = false;\n }\n );\n }\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent(eventToggle, init));\n }\n }\n }\n\n /**\n * Clears the selection of dropdown items.\n */\n protected _clearHighlight() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItem\n ),\n (item) => {\n (item as CDSDropdownItem).highlighted = false;\n }\n );\n }\n\n /**\n * Navigate through dropdown items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n );\n const highlightedIndex = indexOf(items, highlightedItem!);\n let nextIndex = highlightedIndex + direction;\n\n if (items[nextIndex]?.hasAttribute('disabled')) {\n nextIndex += direction;\n }\n if (nextIndex < 0) {\n nextIndex = items.length - 1;\n }\n if (nextIndex >= items.length) {\n nextIndex = 0;\n }\n forEach(items, (item, i) => {\n (item as CDSDropdownItem).highlighted = i === nextIndex;\n });\n\n const nextItem = items[nextIndex];\n // Using `{ block: 'nearest' }` to prevent scrolling unless scrolling is absolutely necessary.\n // `scrollIntoViewOptions` seems to work in latest Safari despite of MDN/caniuse table.\n // IE falls back to the old behavior.\n nextItem.scrollIntoView({ block: 'nearest' });\n\n const nextItemId = nextItem.id;\n if (nextItemId) {\n this._activeDescendant = nextItemId;\n }\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * @returns The content preceding the trigger button.\n */\n protected _renderPrecedingLabel(): TemplateResult | void {\n return undefined;\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * @returns The main content of the trigger button.\n */\n protected _renderLabel(): TemplateResult {\n const { label, _selectedItemContent: selectedItemContent } = this;\n return html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || label}</span\n >\n `;\n }\n\n /**\n * @returns The title label.\n */\n protected _renderTitleLabel(): TemplateResult {\n const {\n disabled,\n hideLabel,\n titleText,\n _slotTitleTextNode: slotTitleTextNode,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const hasTitleText =\n titleText ||\n (slotTitleTextNode && slotTitleTextNode.assignedNodes().length > 0);\n\n return html`\n <label\n id=\"dropdown-label\"\n part=\"title-text\"\n class=\"${labelClasses}\"\n for=\"trigger-button\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n </label>\n `;\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * @returns The content following the trigger button.\n */\n protected _renderFollowingLabel(): TemplateResult | void {\n return undefined;\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles event to include selected value on the parent form.\n *\n * @param event The event.\n */\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * 'aria-label' of the ListBox component.\n * Specify a label to be read by screen readers on the container node\n */\n @property({ type: String, reflect: true, attribute: 'aria-label' })\n ariaLabel = '';\n\n /**\n * Specify the direction of the dropdown. Can be either top or bottom.\n */\n @property({ type: String, reflect: true })\n direction = DROPDOWN_DIRECTION.BOTTOM;\n\n /**\n * `true` if this dropdown should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify whether the title text should be hidden or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * `true` to show the UI of the invalid state.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Provide the title text that will be read by a screen reader when visiting this control\n */\n @property({ attribute: 'title-text' })\n titleText = '';\n\n /**\n * Name for the dropdown in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * `true` if this dropdown should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Whether or not the Dropdown is readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'read-only' })\n readOnly = false;\n\n /**\n * `true` if the value is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n /**\n * The `aria-label` attribute for the UI indicating the closed state.\n */\n @property({ attribute: 'toggle-label-closed' })\n toggleLabelClosed = '';\n\n /**\n * The `aria-label` attribute for the UI indicating the open state.\n */\n @property({ attribute: 'toggle-label-open' })\n toggleLabelOpen = '';\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * `true` if this dropdown should use the inline UI variant.\n */\n @property({ reflect: true })\n type = DROPDOWN_TYPE.DEFAULT;\n\n /**\n * The validity message.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof CDSDropdown;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSDropdownItem).size = this.size;\n });\n }\n if (changedProperties.has('disabled') && this.disabled) {\n const { disabled } = this;\n // Propagate `disabled` attribute to descendants until `:host-context()` gets supported in all major browsers\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n if (disabled) {\n (elem as CDSDropdownItem).disabled = disabled;\n } else {\n (elem as CDSDropdownItem).removeAttribute('disabled');\n }\n });\n }\n if (changedProperties.has('value')) {\n // `<cds-multi-select>` updates selection beforehand\n // because our rendering logic for `<cds-multi-select>` looks for selected items via `qSA()`\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSDropdownItem).selected =\n (elem as CDSDropdownItem).value === this.value;\n });\n const item = find(\n this.querySelectorAll(selectorItem),\n (elem) => (elem as CDSDropdownItem).value === this.value\n );\n if (item) {\n const range = this.ownerDocument!.createRange();\n range.selectNodeContents(item);\n this._selectedItemContent = range.cloneContents();\n } else {\n this._selectedItemContent = null;\n }\n }\n return true;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updated(_changedProperties) {\n this._hasSlug\n ? this.setAttribute('slug', '')\n : this.removeAttribute('slug');\n\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\n );\n }\n\n /**\n * The CSS class list for dropdown listbox\n */\n protected get _classes() {\n const { disabled, size, type, invalid, open, warn } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n\n const selectedItemsCount = this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ).length;\n\n return classMap({\n [`${prefix}--dropdown`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--disabled`]: disabled,\n [`${prefix}--list-box--inline`]: inline,\n [`${prefix}--list-box--expanded`]: open,\n [`${prefix}--list-box--${size}`]: size,\n [`${prefix}--dropdown--invalid`]: invalid,\n [`${prefix}--dropdown--warn`]: warn,\n [`${prefix}--dropdown--inline`]: inline,\n [`${prefix}--dropdown--selected`]: selectedItemsCount > 0,\n });\n }\n\n render() {\n const {\n ariaLabel,\n _classes: classes,\n disabled,\n helperText,\n invalid,\n invalidText,\n open,\n toggleLabelClosed,\n toggleLabelOpen,\n type,\n warn,\n warnText,\n _activeDescendant: activeDescendant,\n _shouldTriggerBeFocusable: shouldTriggerBeFocusable,\n _handleClickInner: handleClickInner,\n _handleKeydownInner: handleKeydownInner,\n _handleKeypressInner: handleKeypressInner,\n _handleSlotchangeHelperText: handleSlotchangeHelperText,\n _handleSlugSlotChange: handleSlugSlotChange,\n _slotHelperTextNode: slotHelperTextNode,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n const helperClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: disabled,\n });\n const iconContainerClasses = classMap({\n [`${prefix}--list-box__menu-icon`]: true,\n [`${prefix}--list-box__menu-icon--open`]: open,\n });\n const toggleLabel =\n (open ? toggleLabelOpen : toggleLabelClosed) || undefined;\n const hasHelperText =\n helperText ||\n invalidText ||\n warnText ||\n (slotHelperTextNode && slotHelperTextNode.assignedNodes().length > 0);\n const validityIcon = !invalid\n ? undefined\n : WarningFilled16({\n class: `${prefix}--list-box__invalid-icon`,\n 'aria-label': toggleLabel,\n });\n const warningIcon =\n !warn || (invalid && warn)\n ? undefined\n : WarningAltFilled16({\n class: `${prefix}--list-box__invalid-icon ${prefix}--list-box__invalid-icon--warning`,\n 'aria-label': toggleLabel,\n });\n const helperMessage = invalid ? invalidText : warn ? warnText : helperText;\n const menuBody = html`\n <div\n aria-labelledby=\"${ifDefined(ariaLabel ? undefined : 'dropdown-label')}\"\n aria-label=\"${ifDefined(ariaLabel ? ariaLabel : undefined)}\"\n id=\"menu-body\"\n part=\"menu-body\"\n class=\"${prefix}--list-box__menu\"\n role=\"listbox\"\n tabindex=\"-1\"\n ?hidden=${!open}>\n <slot></slot>\n </div>\n `;\n return html`\n ${this._renderTitleLabel()}\n <div\n class=\"${classes}\"\n ?data-invalid=${invalid}\n @click=${handleClickInner}\n @keydown=${handleKeydownInner}\n @keypress=${handleKeypressInner}>\n <div\n id=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'trigger-button'\n )}\"\n class=\"${prefix}--list-box__field\"\n part=\"trigger-button\"\n tabindex=\"${ifDefined(!shouldTriggerBeFocusable ? undefined : '0')}\"\n role=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'combobox'\n )}\"\n aria-labelledby=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'dropdown-label'\n )}\"\n aria-expanded=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : String(open)\n )}\"\n aria-haspopup=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'listbox'\n )}\"\n aria-controls=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'menu-body'\n )}\"\n aria-activedescendant=\"${ifDefined(\n !shouldTriggerBeFocusable\n ? undefined\n : open\n ? activeDescendant ?? activeDescendantFallback\n : ''\n )}\">\n ${this._renderPrecedingLabel()}${this._renderLabel()}${validityIcon}${warningIcon}${this._renderFollowingLabel()}\n <div id=\"trigger-caret\" class=\"${iconContainerClasses}\">\n ${ChevronDown16({ 'aria-label': toggleLabel })}\n </div>\n </div>\n <slot name=\"slug\" @slotchange=${handleSlugSlotChange}></slot>\n ${menuBody}\n </div>\n <div\n part=\"helper-text\"\n class=\"${helperClasses}\"\n ?hidden=\"${(inline && !warn && !invalid) || !hasHelperText}\">\n <slot name=\"helper-text\" @slotchange=\"${handleSlotchangeHelperText}\"\n >${helperMessage}</slot\n >\n </div>\n `;\n }\n\n /**\n * Symbols of keys that triggers opening/closing menu and selecting/deselecting menu item.\n */\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}-dropdown-item[highlighted]`;\n }\n\n /**\n * A selector that will return dropdown items.\n */\n static get selectorItem() {\n return `${prefix}-dropdown-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-dropdown-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a dropdown 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}-dropdown-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a dropdown item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-dropdown-selected`;\n }\n\n /**\n * The name of the custom event fired before this dropdown item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this dropdown item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-dropdown-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this dropdown item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-dropdown-toggled`;\n }\n\n /**\n * A selector that will return the slug item.\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n\n /**\n * @returns A action for dropdown for the given key symbol.\n */\n static getAction(key: string) {\n if (key === 'Escape') {\n return DROPDOWN_KEYBOARD_ACTION.CLOSING;\n }\n if (key in NAVIGATION_DIRECTION) {\n return DROPDOWN_KEYBOARD_ACTION.NAVIGATING;\n }\n if (this.TRIGGER_KEYS.has(key)) {\n return DROPDOWN_KEYBOARD_ACTION.TRIGGERING;\n }\n return DROPDOWN_KEYBOARD_ACTION.NONE;\n }\n}\n\nexport default CDSDropdown;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dropdown.js","names":["classMap","ifDefined","LitElement","html","property","query","state","prefix","ChevronDown16","WarningFilled16","WarningAltFilled16","FocusMixin","FormMixin","HostListenerMixin","ValidityMixin","HostListener","find","forEach","indexOf","DROPDOWN_DIRECTION","DROPDOWN_KEYBOARD_ACTION","DROPDOWN_SIZE","DROPDOWN_TYPE","NAVIGATION_DIRECTION","styles","carbonElement","customElement","CDSDropdown","_decorate","_initialize","_ValidityMixin","constructor","args","F","d","kind","key","value","decorators","_selectionShouldChange","itemToSelect","_selectionDidChange","_activeDescendant","id","querySelectorAll","selectorItemSelected","item","selected","setAttribute","_handleUserInitiatedToggle","_handleClickInner","event","readOnly","shadowRoot","contains","target","closest","selectorItem","_handleUserInitiatedSelectItem","_handleKeydownInner","action","getAction","open","NAVIGATING","_clearHighlight","CLOSING","_navigate","_handleKeypressInner","TRIGGERING","highlightedItem","querySelector","selectorItemHighlighted","_handleFocusOut","relatedTarget","_handleSlotchangeHelperText","requestUpdate","_handleSlotchangeLabelText","_handleSlugSlotChange","hasContent","assignedNodes","filter","elem","matches","undefined","slugItem","_hasSlug","Boolean","hasAttribute","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","afterSelectEvent","eventSelect","force","eventBeforeToggle","eventToggle","disabled","highlighted","direction","_items$nextIndex","items","highlightedIndex","nextIndex","length","i","nextItem","scrollIntoView","block","nextItemId","_renderPrecedingLabel","_renderLabel","label","_selectedItemContent","selectedItemContent","_t","_","_renderTitleLabel","hideLabel","titleText","_slotTitleTextNode","slotTitleTextNode","handleSlotchangeLabelText","labelClasses","hasTitleText","_t2","_renderFollowingLabel","_handleFormdata","formData","name","append","type","String","reflect","attribute","BOTTOM","MEDIUM","DEFAULT","shouldUpdate","changedProperties","has","size","removeAttribute","range","ownerDocument","createRange","selectNodeContents","cloneContents","updated","_changedProperties","_this$shadowRoot","_this$querySelector","classList","toggle","invalid","warn","inline","INLINE","selectedItemsCount","render","ariaLabel","_classes","classes","helperText","invalidText","toggleLabelClosed","toggleLabelOpen","warnText","activeDescendant","_shouldTriggerBeFocusable","shouldTriggerBeFocusable","handleClickInner","handleKeydownInner","handleKeypressInner","handleSlotchangeHelperText","handleSlugSlotChange","_slotHelperTextNode","slotHelperTextNode","activeDescendantFallback","_items$","helperClasses","iconContainerClasses","toggleLabel","hasHelperText","validityIcon","class","warningIcon","helperMessage","menuBody","_t3","_t4","static","Set","shadowRootOptions","delegatesFocus","TRIGGER_KEYS","NONE"],"sources":["components/dropdown/dropdown.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\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/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LitElement, html, TemplateResult } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport WarningFilled16 from '@carbon/icons/lib/warning--filled/16';\nimport WarningAltFilled16 from '@carbon/icons/lib/warning--alt--filled/16';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport HostListener from '../../globals/decorators/host-listener';\nimport {\n find,\n forEach,\n indexOf,\n} from '../../globals/internal/collection-helpers';\nimport {\n DROPDOWN_DIRECTION,\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n} from './defs';\nimport CDSDropdownItem from './dropdown-item';\nimport styles from './dropdown.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_DIRECTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n};\n\n/**\n * Dropdown.\n *\n * @element cds-dropdown\n * @csspart label-text The label text.\n * @csspart helper-text The helper text.\n * @csspart trigger-button The trigger button.\n * @csspart menu-body The menu body.\n * @csspart validity-message The validity message.\n * @fires cds-dropdown-beingselected\n * The custom event fired before a dropdown item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires cds-dropdown-beingtoggled\n * The custom event fired before the open state of this dropdown is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires cds-dropdown-selected - The custom event fired after a dropdown item is selected upon a user gesture.\n * @fires cds-dropdown-toggled - The custom event fired after the open state of this dropdown is toggled upon a user gesture.\n */\n@customElement(`${prefix}-dropdown`)\nclass CDSDropdown extends ValidityMixin(\n HostListenerMixin(FormMixin(FocusMixin(LitElement)))\n) {\n /**\n * `true` if there is a slug.\n */\n protected _hasSlug = false;\n\n @state()\n protected _activeDescendant?: string;\n\n /**\n * The content of the selected item.\n */\n protected _selectedItemContent: DocumentFragment | null = null;\n\n /**\n * `true` if the trigger button should be focusable.\n * Derived class can set `false` to this if the trigger button contains another primary focusable element (e.g. `<input>`).\n */\n protected _shouldTriggerBeFocusable = true;\n\n /**\n * The list box `<div>` node.\n */\n @query(`.${prefix}--list-box`)\n protected _listBoxNode!: HTMLDivElement;\n\n /**\n * The `<slot>` element for the helper text in the shadow DOM.\n */\n @query('slot[name=\"helper-text\"]')\n protected _slotHelperTextNode!: HTMLSlotElement;\n\n /**\n * The `<slot>` element for the title text in the shadow DOM.\n */\n @query('slot[name=\"title-text\"]')\n protected _slotTitleTextNode!: HTMLSlotElement;\n\n /**\n * @param itemToSelect A dropdown item. Absense of this argument means clearing selection.\n * @returns `true` if the selection of this dropdown should change if the given item is selected upon user interaction.\n */\n protected _selectionShouldChange(itemToSelect?: CDSDropdownItem) {\n return !itemToSelect || itemToSelect.value !== this.value;\n }\n\n /**\n * A callback that runs after change in dropdown selection upon user interaction is confirmed.\n *\n * @param itemToSelect\n * A dropdown item.\n * Absense of this argument means clearing selection, which may be handled by a derived class.\n */\n protected _selectionDidChange(itemToSelect?: CDSDropdownItem) {\n if (itemToSelect) {\n this.value = itemToSelect.value;\n this._activeDescendant = itemToSelect.id;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ),\n (item) => {\n (item as CDSDropdownItem).selected = false;\n item.setAttribute('aria-selected', 'false');\n }\n );\n itemToSelect.selected = true;\n itemToSelect.setAttribute('aria-selected', 'true');\n this._handleUserInitiatedToggle(false);\n }\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 _handleClickInner(event: MouseEvent) {\n if (this.readOnly) {\n return;\n }\n\n if (this.shadowRoot!.contains(event.target as Node)) {\n this._handleUserInitiatedToggle();\n } else {\n const item = (event.target as Element).closest(\n (this.constructor as typeof CDSDropdown).selectorItem\n ) as CDSDropdownItem;\n if (this.contains(item)) {\n this._handleUserInitiatedSelectItem(item);\n }\n }\n }\n\n /**\n * Handler for the `keydown` event on the top-level element in the shadow DOM.\n */\n protected _handleKeydownInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.NAVIGATING:\n this._handleUserInitiatedToggle(true);\n // If this menu gets open with an arrow key, reset the highlight\n this._clearHighlight();\n break;\n default:\n break;\n }\n } else {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.CLOSING:\n this._handleUserInitiatedToggle(false);\n break;\n case DROPDOWN_KEYBOARD_ACTION.NAVIGATING:\n this._navigate(NAVIGATION_DIRECTION[key]);\n break;\n default:\n break;\n }\n }\n }\n\n /**\n * Handler for the `keypress` event on the top-level element in the shadow DOM.\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof CDSDropdown).getAction(key);\n if (!this.open) {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n this._handleUserInitiatedToggle(true);\n break;\n default:\n break;\n }\n } else {\n switch (action) {\n case DROPDOWN_KEYBOARD_ACTION.TRIGGERING:\n {\n const constructor = this.constructor as typeof CDSDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as CDSDropdownItem;\n if (highlightedItem) {\n this._handleUserInitiatedSelectItem(highlightedItem);\n } else {\n this._handleUserInitiatedToggle(false);\n }\n }\n break;\n default:\n break;\n }\n }\n }\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n @HostListener('focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n protected _handleFocusOut(event: FocusEvent) {\n if (!this.contains(event.relatedTarget as Node)) {\n this._handleUserInitiatedToggle(false);\n }\n }\n\n /**\n * Handles `slotchange` event for the `<slot>` for helper text.\n */\n protected _handleSlotchangeHelperText() {\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event for the `<slot>` for label text.\n */\n protected _handleSlotchangeLabelText() {\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlugSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSDropdown).slugItem\n )\n : false\n );\n\n this._hasSlug = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n\n /**\n * Handles user-initiated selection of a dropdown item.\n *\n * @param [item] The dropdown item user wants to select. Absense of this argument means clearing selection.\n */\n protected _handleUserInitiatedSelectItem(item?: CDSDropdownItem) {\n if (item?.hasAttribute('disabled')) {\n return;\n }\n\n if (this._selectionShouldChange(item)) {\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n item,\n },\n };\n const constructor = this.constructor as typeof CDSDropdown;\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 * Handles user-initiated toggling the open state.\n *\n * @param [force] If specified, forces the open state to the given one.\n */\n protected _handleUserInitiatedToggle(force = !this.open) {\n const { eventBeforeToggle, eventToggle } = this\n .constructor as typeof CDSDropdown;\n\n const { disabled } = this;\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n open: force,\n },\n };\n if (!disabled) {\n if (this.dispatchEvent(new CustomEvent(eventBeforeToggle, init))) {\n this.open = force;\n if (!this.open) {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemHighlighted\n ),\n (item) => {\n (item as CDSDropdownItem).highlighted = false;\n }\n );\n }\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent(eventToggle, init));\n }\n }\n }\n\n /**\n * Clears the selection of dropdown items.\n */\n protected _clearHighlight() {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItem\n ),\n (item) => {\n (item as CDSDropdownItem).highlighted = false;\n }\n );\n }\n\n /**\n * Navigate through dropdown items.\n *\n * @param direction `-1` to navigate backward, `1` to navigate forward.\n */\n protected _navigate(direction: number) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n );\n const highlightedIndex = indexOf(items, highlightedItem!);\n let nextIndex = highlightedIndex + direction;\n\n if (items[nextIndex]?.hasAttribute('disabled')) {\n nextIndex += direction;\n }\n if (nextIndex < 0) {\n nextIndex = items.length - 1;\n }\n if (nextIndex >= items.length) {\n nextIndex = 0;\n }\n forEach(items, (item, i) => {\n (item as CDSDropdownItem).highlighted = i === nextIndex;\n });\n\n const nextItem = items[nextIndex];\n // Using `{ block: 'nearest' }` to prevent scrolling unless scrolling is absolutely necessary.\n // `scrollIntoViewOptions` seems to work in latest Safari despite of MDN/caniuse table.\n // IE falls back to the old behavior.\n nextItem.scrollIntoView({ block: 'nearest' });\n\n const nextItemId = nextItem.id;\n if (nextItemId) {\n this._activeDescendant = nextItemId;\n }\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * @returns The content preceding the trigger button.\n */\n protected _renderPrecedingLabel(): TemplateResult | void {\n return undefined;\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * @returns The main content of the trigger button.\n */\n protected _renderLabel(): TemplateResult {\n const { label, _selectedItemContent: selectedItemContent } = this;\n return html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || label}</span\n >\n `;\n }\n\n /**\n * @returns The title label.\n */\n protected _renderTitleLabel(): TemplateResult {\n const {\n disabled,\n hideLabel,\n titleText,\n _slotTitleTextNode: slotTitleTextNode,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const hasTitleText =\n titleText ||\n (slotTitleTextNode && slotTitleTextNode.assignedNodes().length > 0);\n\n return html`\n <label\n id=\"dropdown-label\"\n part=\"title-text\"\n class=\"${labelClasses}\"\n for=\"trigger-button\"\n ?hidden=\"${!hasTitleText}\">\n <slot name=\"title-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${titleText}</slot\n >\n </label>\n `;\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * @returns The content following the trigger button.\n */\n protected _renderFollowingLabel(): TemplateResult | void {\n return undefined;\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Handles event to include selected value on the parent form.\n *\n * @param event The event.\n */\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * 'aria-label' of the ListBox component.\n * Specify a label to be read by screen readers on the container node\n */\n @property({ type: String, reflect: true, attribute: 'aria-label' })\n ariaLabel = '';\n\n /**\n * Specify the direction of the dropdown. Can be either top or bottom.\n */\n @property({ type: String, reflect: true })\n direction = DROPDOWN_DIRECTION.BOTTOM;\n\n /**\n * `true` if this dropdown should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify whether the title text should be hidden or not\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * `true` to show the UI of the invalid state.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Provide the title text that will be read by a screen reader when visiting this control\n */\n @property({ attribute: 'title-text' })\n titleText = '';\n\n /**\n * Name for the dropdown in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * `true` if this dropdown should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Whether or not the Dropdown is readonly\n */\n @property({ type: Boolean, reflect: true, attribute: 'read-only' })\n readOnly = false;\n\n /**\n * `true` if the value is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.MEDIUM;\n\n /**\n * The `aria-label` attribute for the UI indicating the closed state.\n */\n @property({ attribute: 'toggle-label-closed' })\n toggleLabelClosed = '';\n\n /**\n * The `aria-label` attribute for the UI indicating the open state.\n */\n @property({ attribute: 'toggle-label-open' })\n toggleLabelOpen = '';\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * `true` if this dropdown should use the inline UI variant.\n */\n @property({ reflect: true })\n type = DROPDOWN_TYPE.DEFAULT;\n\n /**\n * The validity message.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the selected item.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof CDSDropdown;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSDropdownItem).size = this.size;\n });\n }\n if (changedProperties.has('disabled') && this.disabled) {\n const { disabled } = this;\n // Propagate `disabled` attribute to descendants until `:host-context()` gets supported in all major browsers\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n if (disabled) {\n (elem as CDSDropdownItem).disabled = disabled;\n } else {\n (elem as CDSDropdownItem).removeAttribute('disabled');\n }\n });\n }\n if (changedProperties.has('value')) {\n // `<cds-multi-select>` updates selection beforehand\n // because our rendering logic for `<cds-multi-select>` looks for selected items via `qSA()`\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as CDSDropdownItem).selected =\n (elem as CDSDropdownItem).value === this.value;\n });\n const item = find(\n this.querySelectorAll(selectorItem),\n (elem) => (elem as CDSDropdownItem).value === this.value\n );\n if (item) {\n const range = this.ownerDocument!.createRange();\n range.selectNodeContents(item);\n this._selectedItemContent = range.cloneContents();\n } else {\n this._selectedItemContent = null;\n }\n }\n return true;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updated(_changedProperties) {\n this._hasSlug\n ? this.setAttribute('slug', '')\n : this.removeAttribute('slug');\n\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\n );\n }\n\n /**\n * The CSS class list for dropdown listbox\n */\n protected get _classes() {\n const { disabled, size, type, invalid, open, warn } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n\n const selectedItemsCount = this.querySelectorAll(\n (this.constructor as typeof CDSDropdown).selectorItemSelected\n ).length;\n\n return classMap({\n [`${prefix}--dropdown`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--disabled`]: disabled,\n [`${prefix}--list-box--inline`]: inline,\n [`${prefix}--list-box--expanded`]: open,\n [`${prefix}--list-box--${size}`]: size,\n [`${prefix}--dropdown--invalid`]: invalid,\n [`${prefix}--dropdown--warn`]: warn,\n [`${prefix}--dropdown--inline`]: inline,\n [`${prefix}--dropdown--selected`]: selectedItemsCount > 0,\n });\n }\n\n render() {\n const {\n ariaLabel,\n _classes: classes,\n disabled,\n helperText,\n invalid,\n invalidText,\n open,\n toggleLabelClosed,\n toggleLabelOpen,\n type,\n warn,\n warnText,\n _activeDescendant: activeDescendant,\n _shouldTriggerBeFocusable: shouldTriggerBeFocusable,\n _handleClickInner: handleClickInner,\n _handleKeydownInner: handleKeydownInner,\n _handleKeypressInner: handleKeypressInner,\n _handleSlotchangeHelperText: handleSlotchangeHelperText,\n _handleSlugSlotChange: handleSlugSlotChange,\n _slotHelperTextNode: slotHelperTextNode,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n\n let activeDescendantFallback: string | undefined;\n if (open && !activeDescendant) {\n const constructor = this.constructor as typeof CDSDropdown;\n const items = this.querySelectorAll(constructor.selectorItem);\n activeDescendantFallback = items[0]?.id;\n }\n\n const helperClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: disabled,\n });\n const iconContainerClasses = classMap({\n [`${prefix}--list-box__menu-icon`]: true,\n [`${prefix}--list-box__menu-icon--open`]: open,\n });\n const toggleLabel =\n (open ? toggleLabelOpen : toggleLabelClosed) || undefined;\n const hasHelperText =\n helperText ||\n invalidText ||\n warnText ||\n (slotHelperTextNode && slotHelperTextNode.assignedNodes().length > 0);\n const validityIcon = !invalid\n ? undefined\n : WarningFilled16({\n class: `${prefix}--list-box__invalid-icon`,\n 'aria-label': toggleLabel,\n });\n const warningIcon =\n !warn || (invalid && warn)\n ? undefined\n : WarningAltFilled16({\n class: `${prefix}--list-box__invalid-icon ${prefix}--list-box__invalid-icon--warning`,\n 'aria-label': toggleLabel,\n });\n const helperMessage = invalid ? invalidText : warn ? warnText : helperText;\n const menuBody = html`\n <div\n aria-labelledby=\"${ifDefined(ariaLabel ? undefined : 'dropdown-label')}\"\n aria-label=\"${ifDefined(ariaLabel ? ariaLabel : undefined)}\"\n id=\"menu-body\"\n part=\"menu-body\"\n class=\"${prefix}--list-box__menu\"\n role=\"listbox\"\n tabindex=\"-1\"\n ?hidden=${!open}>\n <slot></slot>\n </div>\n `;\n return html`\n ${this._renderTitleLabel()}\n <div\n class=\"${classes}\"\n ?data-invalid=${invalid}\n @click=${handleClickInner}\n @keydown=${handleKeydownInner}\n @keypress=${handleKeypressInner}>\n <div\n id=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'trigger-button'\n )}\"\n class=\"${prefix}--list-box__field\"\n part=\"trigger-button\"\n tabindex=\"${ifDefined(!shouldTriggerBeFocusable ? undefined : '0')}\"\n role=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'combobox'\n )}\"\n aria-labelledby=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'dropdown-label'\n )}\"\n aria-expanded=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : String(open)\n )}\"\n aria-haspopup=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'listbox'\n )}\"\n aria-controls=\"${ifDefined(\n !shouldTriggerBeFocusable ? undefined : 'menu-body'\n )}\"\n aria-activedescendant=\"${ifDefined(\n !shouldTriggerBeFocusable\n ? undefined\n : open\n ? activeDescendant ?? activeDescendantFallback\n : ''\n )}\">\n ${this._renderPrecedingLabel()}${this._renderLabel()}${validityIcon}${warningIcon}${this._renderFollowingLabel()}\n <div id=\"trigger-caret\" class=\"${iconContainerClasses}\">\n ${ChevronDown16({ 'aria-label': toggleLabel })}\n </div>\n </div>\n <slot name=\"slug\" @slotchange=${handleSlugSlotChange}></slot>\n ${menuBody}\n </div>\n <div\n part=\"helper-text\"\n class=\"${helperClasses}\"\n ?hidden=\"${(inline && !warn && !invalid) || !hasHelperText}\">\n <slot name=\"helper-text\" @slotchange=\"${handleSlotchangeHelperText}\"\n >${helperMessage}</slot\n >\n </div>\n `;\n }\n\n /**\n * Symbols of keys that triggers opening/closing menu and selecting/deselecting menu item.\n */\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}-dropdown-item[highlighted]`;\n }\n\n /**\n * A selector that will return dropdown items.\n */\n static get selectorItem() {\n return `${prefix}-dropdown-item`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-dropdown-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before a dropdown 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}-dropdown-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a dropdown item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-dropdown-selected`;\n }\n\n /**\n * The name of the custom event fired before this dropdown item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this dropdown item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-dropdown-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this dropdown item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-dropdown-toggled`;\n }\n\n /**\n * A selector that will return the slug item.\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n\n /**\n * @returns A action for dropdown for the given key symbol.\n */\n static getAction(key: string) {\n if (key === 'Escape') {\n return DROPDOWN_KEYBOARD_ACTION.CLOSING;\n }\n if (key in NAVIGATION_DIRECTION) {\n return DROPDOWN_KEYBOARD_ACTION.NAVIGATING;\n }\n if (this.TRIGGER_KEYS.has(key)) {\n return DROPDOWN_KEYBOARD_ACTION.TRIGGERING;\n }\n return DROPDOWN_KEYBOARD_ACTION.NONE;\n }\n}\n\nexport default CDSDropdown;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"demo-file-uploader.js","names":["html","LitElement","property","carbonElement","customElement","delay","prefix","ifDefined","FILE_UPLOADER_ITEM_STATE","BUTTON_SIZE","CDSCEDemoFileUploader","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleChange","event","addedFiles","detail","newFiles","map","item","id","Math","random","toString","slice","file","state","UPLOADING","multiple","_files","files","_simulateUpload","simulateUpload","concat","requestUpdate","forEach","length","_handleDelete","fileId","idToDelete","target","dataset","filter","data","size","_objectSpread","EDIT","invalid","errorSubject","errorBody","rand","COMPLETE","decorators","type","Boolean","reflect","attribute","MEDIUM","render","accept","button","buttonKind","buttonLabel","disabled","labelDescription","labelTitle","inputState","iconDescription","handleChange","handleDelete","_t","_","_t2","inputName","_t3","_t4","name","default"],"sources":["components/file-uploader/demo-file-uploader.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\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, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nimport { delay } from 'bluebird';\nimport { prefix } from '../../globals/settings';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport './index';\nimport { FILE_UPLOADER_ITEM_STATE } from './file-uploader-item';\nimport { BUTTON_SIZE } from '../button/button';\nimport { FileData } from './stories/types';\n\n/**\n * A class to manage file uploading states, like sending file contents to server.\n * DEMONSTRATION-PURPOSE ONLY.\n * Data/state handling in file uploading tends to involve lots of application-specific logics\n * and thus abstracting everything in a library won't be a good return on investment\n * vs. letting users copy code here and implement features that fit their needs.\n */\n@customElement(`${prefix}-ce-demo-file-uploader`)\nexport default class CDSCEDemoFileUploader extends LitElement {\n /**\n * The files being uploaded.\n */\n private _files: FileData[] = [];\n\n /**\n * Handles `cds-drop-container-changed` on `<cds-file-drop-container>`.\n *\n * @param event The event.\n */\n private _handleChange(event: CustomEvent) {\n const { addedFiles } = event.detail;\n const newFiles: FileData[] = addedFiles.map(\n (item) =>\n ({\n id: Math.random().toString(36).slice(2),\n file: item,\n state: FILE_UPLOADER_ITEM_STATE.UPLOADING,\n } as FileData)\n );\n const { multiple, _files: files, _simulateUpload: simulateUpload } = this;\n if (multiple) {\n this._files = files.concat(newFiles);\n this.requestUpdate();\n newFiles.forEach(simulateUpload, this);\n } else if (addedFiles.length > 0) {\n this._files = files.concat(newFiles[0]);\n this.requestUpdate();\n this._simulateUpload(newFiles[0]);\n }\n }\n\n /**\n * Handles `cds-file-uploader-item-deleted` on `<cds-file-uploader-item>`.\n *\n * @param event The event.\n */\n private _handleDelete(event: CustomEvent) {\n const { fileId: idToDelete } = (event.target as HTMLElement).dataset;\n this._files = this._files.filter(({ id }) => idToDelete !== id);\n this.requestUpdate();\n }\n\n /**\n * Simulates updating file.\n *\n * @param data The data of the file being uploaded.\n */\n private async _simulateUpload(data: FileData) {\n const { id, file } = data;\n if (file.size > 524288) {\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n invalid: true,\n errorSubject: 'File size exceeds limit',\n errorBody:\n '500kb max file size. Select a new file and try again.',\n }\n );\n this.requestUpdate();\n } else {\n // Simulates network request time\n const rand = Math.random() * 1000;\n await delay(rand);\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.COMPLETE,\n }\n );\n this.requestUpdate();\n // Shows x icon after 1 second\n await delay(1000);\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n }\n );\n this.requestUpdate();\n }\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n button = false;\n\n /**\n * Button kind.\n */\n @property({ attribute: 'button-kind' })\n buttonKind = 'primary';\n\n /**\n * Button label.\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Add file';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Icon description.\n */\n @property({ attribute: 'icon-description' })\n iconDescription = '';\n\n /**\n * The input name.\n */\n @property({ attribute: 'input-name' })\n inputName = '';\n\n /**\n * The label description text.\n */\n @property({ attribute: 'label-description' })\n labelDescription = '';\n\n /**\n * The label title.\n */\n @property({ attribute: 'label-title' })\n labelTitle = '';\n\n /**\n * `true` if the drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The size of the button item.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true, attribute: 'input-state' })\n inputState = '';\n\n render() {\n const {\n accept,\n button,\n buttonKind,\n buttonLabel,\n disabled,\n labelDescription,\n labelTitle,\n multiple,\n size,\n inputState,\n iconDescription,\n _files: files,\n _handleChange: handleChange,\n _handleDelete: handleDelete,\n } = this;\n return html`\n <cds-file-uploader\n label-description=\"${ifDefined(labelDescription)}\"\n label-title=\"${ifDefined(labelTitle)}\"\n ?disabled=\"${disabled}\">\n ${!button\n ? html` <cds-file-uploader-drop-container\n accept=\"${ifDefined(accept)}\"\n ?multiple=\"${multiple}\"\n name=\"${ifDefined(this.inputName)}\"\n @cds-file-uploader-drop-container-changed=\"${handleChange}\">\n Drag and drop files here or click to upload\n </cds-file-uploader-drop-container>`\n : html` <cds-file-uploader-button\n size=\"${ifDefined(size)}\"\n button-kind=\"${buttonKind}\"\n accept=\"${ifDefined(accept)}\"\n name=\"${ifDefined(this.inputName)}\"\n ?multiple=\"${multiple}\"\n @cds-file-uploader-button-changed=\"${handleChange}\">\n ${buttonLabel}\n </cds-file-uploader-button>`}\n ${files.map(\n ({ id, invalid, file, state, errorSubject, errorBody }) => html`\n <cds-file-uploader-item\n data-file-id=\"${id}\"\n ?invalid=\"${invalid}\"\n state=\"${inputState || ifDefined(state)}\"\n icon-description=\"${ifDefined(iconDescription)}\"\n error-subject=\"${ifDefined(errorSubject)}\"\n error-body=\"${ifDefined(errorBody)}\"\n @cds-file-uploader-item-deleted=\"${handleDelete}\">\n ${file.name}\n </cds-file-uploader-item>\n `\n )}\n </cds-file-uploader>\n `;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"demo-file-uploader.js","names":["html","LitElement","property","carbonElement","customElement","delay","prefix","ifDefined","FILE_UPLOADER_ITEM_STATE","BUTTON_SIZE","CDSCEDemoFileUploader","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","_handleChange","event","addedFiles","detail","newFiles","map","item","id","Math","random","toString","slice","file","state","UPLOADING","multiple","_files","files","_simulateUpload","simulateUpload","concat","requestUpdate","forEach","length","_handleDelete","fileId","idToDelete","target","dataset","filter","data","size","_objectSpread","EDIT","invalid","errorSubject","errorBody","rand","COMPLETE","decorators","type","Boolean","reflect","attribute","MEDIUM","render","accept","button","buttonKind","buttonLabel","disabled","labelDescription","labelTitle","inputState","iconDescription","handleChange","handleDelete","_t","_","_t2","inputName","_t3","_t4","name","default"],"sources":["components/file-uploader/demo-file-uploader.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2024\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, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nimport { delay } from 'bluebird';\nimport { prefix } from '../../globals/settings';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport './index';\nimport { FILE_UPLOADER_ITEM_STATE } from './file-uploader-item';\nimport { BUTTON_SIZE } from '../button/button';\nimport { FileData } from './stories/types';\n\n/**\n * A class to manage file uploading states, like sending file contents to server.\n * DEMONSTRATION-PURPOSE ONLY.\n * Data/state handling in file uploading tends to involve lots of application-specific logics\n * and thus abstracting everything in a library won't be a good return on investment\n * vs. letting users copy code here and implement features that fit their needs.\n */\n@customElement(`${prefix}-ce-demo-file-uploader`)\nexport default class CDSCEDemoFileUploader extends LitElement {\n /**\n * The files being uploaded.\n */\n private _files: FileData[] = [];\n\n /**\n * Handles `cds-drop-container-changed` on `<cds-file-drop-container>`.\n *\n * @param event The event.\n */\n private _handleChange(event: CustomEvent) {\n const { addedFiles } = event.detail;\n const newFiles: FileData[] = addedFiles.map(\n (item) =>\n ({\n id: Math.random().toString(36).slice(2),\n file: item,\n state: FILE_UPLOADER_ITEM_STATE.UPLOADING,\n } as FileData)\n );\n const { multiple, _files: files, _simulateUpload: simulateUpload } = this;\n if (multiple) {\n this._files = files.concat(newFiles);\n this.requestUpdate();\n newFiles.forEach(simulateUpload, this);\n } else if (addedFiles.length > 0) {\n this._files = files.concat(newFiles[0]);\n this.requestUpdate();\n this._simulateUpload(newFiles[0]);\n }\n }\n\n /**\n * Handles `cds-file-uploader-item-deleted` on `<cds-file-uploader-item>`.\n *\n * @param event The event.\n */\n private _handleDelete(event: CustomEvent) {\n const { fileId: idToDelete } = (event.target as HTMLElement).dataset;\n this._files = this._files.filter(({ id }) => idToDelete !== id);\n this.requestUpdate();\n }\n\n /**\n * Simulates updating file.\n *\n * @param data The data of the file being uploaded.\n */\n private async _simulateUpload(data: FileData) {\n const { id, file } = data;\n if (file.size > 524288) {\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n invalid: true,\n errorSubject: 'File size exceeds limit',\n errorBody:\n '500kb max file size. Select a new file and try again.',\n }\n );\n this.requestUpdate();\n } else {\n // Simulates network request time\n const rand = Math.random() * 1000;\n await delay(rand);\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.COMPLETE,\n }\n );\n this.requestUpdate();\n // Shows x icon after 1 second\n await delay(1000);\n this._files = this._files.map((item) =>\n id !== item.id\n ? item\n : {\n ...item,\n state: FILE_UPLOADER_ITEM_STATE.EDIT,\n }\n );\n this.requestUpdate();\n }\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n button = false;\n\n /**\n * Button kind.\n */\n @property({ attribute: 'button-kind' })\n buttonKind = 'primary';\n\n /**\n * Button label.\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Add file';\n\n /**\n * `true` if the drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Icon description.\n */\n @property({ attribute: 'icon-description' })\n iconDescription = '';\n\n /**\n * The input name.\n */\n @property({ attribute: 'input-name' })\n inputName = '';\n\n /**\n * The label description text.\n */\n @property({ attribute: 'label-description' })\n labelDescription = '';\n\n /**\n * The label title.\n */\n @property({ attribute: 'label-title' })\n labelTitle = '';\n\n /**\n * `true` if the drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The size of the button item.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The state of this file uploader item.\n */\n @property({ reflect: true, attribute: 'input-state' })\n inputState = '';\n\n render() {\n const {\n accept,\n button,\n buttonKind,\n buttonLabel,\n disabled,\n labelDescription,\n labelTitle,\n multiple,\n size,\n inputState,\n iconDescription,\n _files: files,\n _handleChange: handleChange,\n _handleDelete: handleDelete,\n } = this;\n return html`\n <cds-file-uploader\n label-description=\"${ifDefined(labelDescription)}\"\n label-title=\"${ifDefined(labelTitle)}\"\n ?disabled=\"${disabled}\">\n ${!button\n ? html` <cds-file-uploader-drop-container\n accept=\"${ifDefined(accept)}\"\n ?multiple=\"${multiple}\"\n name=\"${ifDefined(this.inputName)}\"\n @cds-file-uploader-drop-container-changed=\"${handleChange}\">\n Drag and drop files here or click to upload\n </cds-file-uploader-drop-container>`\n : html` <cds-file-uploader-button\n size=\"${ifDefined(size)}\"\n button-kind=\"${buttonKind}\"\n accept=\"${ifDefined(accept)}\"\n name=\"${ifDefined(this.inputName)}\"\n ?multiple=\"${multiple}\"\n @cds-file-uploader-button-changed=\"${handleChange}\">\n ${buttonLabel}\n </cds-file-uploader-button>`}\n ${files.map(\n ({ id, invalid, file, state, errorSubject, errorBody }) => html`\n <cds-file-uploader-item\n data-file-id=\"${id}\"\n ?invalid=\"${invalid}\"\n state=\"${inputState || ifDefined(state)}\"\n icon-description=\"${ifDefined(iconDescription)}\"\n error-subject=\"${ifDefined(errorSubject)}\"\n error-body=\"${ifDefined(errorBody)}\"\n @cds-file-uploader-item-deleted=\"${handleDelete}\">\n ${file.name}\n </cds-file-uploader-item>\n `\n )}\n </cds-file-uploader>\n `;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -269,7 +269,7 @@ let CDSFileUploaderButton = _decorate([customElement(`${prefix}-file-uploader-bu
269
269
  kind: "get",
270
270
  static: true,
271
271
  key: "eventChange",
272
- value: function eventChange() {
272
+ value: function () {
273
273
  return `${prefix}-file-uploader-button-changed`;
274
274
  }
275
275
 
@@ -280,7 +280,7 @@ let CDSFileUploaderButton = _decorate([customElement(`${prefix}-file-uploader-bu
280
280
  kind: "get",
281
281
  static: true,
282
282
  key: "selectorInput",
283
- value: function selectorInput() {
283
+ value: function () {
284
284
  return `.${prefix}--file-input`;
285
285
  }
286
286
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-button.js","names":["classMap","LitElement","html","property","carbonElement","customElement","prefix","HostListenerMixin","ifNonEmpty","styles","BUTTON_KIND","BUTTON_SIZE","FORM_ELEMENT_COLOR_SCHEME","TILE_COLOR_SCHEME","CDSFileUploaderButton","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleClick","event","_this$shadowRoot","_this$shadowRoot2","target","selectorInput","shadowRoot","querySelector","setAttribute","click","_handleKeyDown","_this$shadowRoot3","_this$shadowRoot4","_handleChange","_this$shadowRoot5","addedFiles","_getFiles","eventChange","dispatchEvent","CustomEvent","bubbles","composed","detail","fileInput","_ref","files","type","dataTransfer","accept","test","Array","from","acceptedTypes","Set","split","prototype","filter","call","name","mimeType","_fileExtensionRegExp$","fileExtensionRegExp","hasFileExtension","fileExtension","undefined","exec","has","decorators","reflect","attribute","PRIMARY","MEDIUM","Boolean","render","disabled","multiple","buttonKind","size","handleChange","labelClasses","buttonClasses","_t","_","static"],"sources":["components/file-uploader/file-uploader-button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2024\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/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss';\nimport { BUTTON_KIND, BUTTON_SIZE } from '../button/defs';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * File uploader button .\n *\n * @element cds-file-uploader-container\n * @fires cds-file-uploader-button-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-button`)\nclass CDSFileUploaderButton extends HostListenerMixin(LitElement) {\n /**\n * Handles `click` event on the button.\n */\n private _handleClick(event) {\n event.target.value = null;\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n\n /**\n * Handles `keydown` event on the button.\n */\n private _handleKeyDown(event) {\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n if (event.key === 'Enter' || event.key === 'Space') {\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n }\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const addedFiles = this._getFiles(event);\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderButton;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = '';\n }\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event: Event | DragEvent) {\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : fileExtensionRegExp.exec(name) ?? [];\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * Button kind.\n */\n @property({ reflect: true, attribute: 'button-kind' })\n buttonKind = BUTTON_KIND.PRIMARY;\n\n /**\n * Button size.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n buttonKind,\n size,\n _handleChange: handleChange,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const buttonClasses = classMap({\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--${buttonKind}`]: buttonKind,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--btn--disabled`]: disabled,\n [`${prefix}--btn--${size}`]: size,\n });\n return html`\n <button\n type=\"button\"\n class=\"${buttonClasses}\"\n @click=\"${this._handleClick}\"\n @keydown=\"${this._handleKeyDown}\">\n <slot></slot>\n </button>\n <label class=\"${labelClasses}\" for=\"file\"> </label>\n <input\n id=\"file\"\n type=\"file\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n name=\"${ifNonEmpty(name)}\"\n @change=\"${handleChange}\" />\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-button-changed`;\n }\n\n /**\n * A selector that will return the file `<input>`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"file-uploader-button.js","names":["classMap","LitElement","html","property","carbonElement","customElement","prefix","HostListenerMixin","ifNonEmpty","styles","BUTTON_KIND","BUTTON_SIZE","FORM_ELEMENT_COLOR_SCHEME","TILE_COLOR_SCHEME","CDSFileUploaderButton","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleClick","event","_this$shadowRoot","_this$shadowRoot2","target","selectorInput","shadowRoot","querySelector","setAttribute","click","_handleKeyDown","_this$shadowRoot3","_this$shadowRoot4","_handleChange","_this$shadowRoot5","addedFiles","_getFiles","eventChange","dispatchEvent","CustomEvent","bubbles","composed","detail","fileInput","_ref","files","type","dataTransfer","accept","test","Array","from","acceptedTypes","Set","split","prototype","filter","call","name","mimeType","_fileExtensionRegExp$","fileExtensionRegExp","hasFileExtension","fileExtension","undefined","exec","has","decorators","reflect","attribute","PRIMARY","MEDIUM","Boolean","render","disabled","multiple","buttonKind","size","handleChange","labelClasses","buttonClasses","_t","_","static"],"sources":["components/file-uploader/file-uploader-button.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2024\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/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss';\nimport { BUTTON_KIND, BUTTON_SIZE } from '../button/defs';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * File uploader button .\n *\n * @element cds-file-uploader-container\n * @fires cds-file-uploader-button-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-button`)\nclass CDSFileUploaderButton extends HostListenerMixin(LitElement) {\n /**\n * Handles `click` event on the button.\n */\n private _handleClick(event) {\n event.target.value = null;\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n\n /**\n * Handles `keydown` event on the button.\n */\n private _handleKeyDown(event) {\n const { selectorInput } = this.constructor as typeof CDSFileUploaderButton;\n if (event.key === 'Enter' || event.key === 'Space') {\n this?.shadowRoot?.querySelector(selectorInput)?.setAttribute('value', '');\n (this?.shadowRoot?.querySelector(selectorInput) as HTMLElement).click();\n }\n }\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const addedFiles = this._getFiles(event);\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderButton;\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = '';\n }\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event: Event | DragEvent) {\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : fileExtensionRegExp.exec(name) ?? [];\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * Button kind.\n */\n @property({ reflect: true, attribute: 'button-kind' })\n buttonKind = BUTTON_KIND.PRIMARY;\n\n /**\n * Button size.\n */\n @property({ reflect: true })\n size = BUTTON_SIZE.MEDIUM;\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n buttonKind,\n size,\n _handleChange: handleChange,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const buttonClasses = classMap({\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--${buttonKind}`]: buttonKind,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--btn--disabled`]: disabled,\n [`${prefix}--btn--${size}`]: size,\n });\n return html`\n <button\n type=\"button\"\n class=\"${buttonClasses}\"\n @click=\"${this._handleClick}\"\n @keydown=\"${this._handleKeyDown}\">\n <slot></slot>\n </button>\n <label class=\"${labelClasses}\" for=\"file\"> </label>\n <input\n id=\"file\"\n type=\"file\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n name=\"${ifNonEmpty(name)}\"\n @change=\"${handleChange}\" />\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-button-changed`;\n }\n\n /**\n * A selector that will return the file `<input>`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderButton;\n"],"mappings":"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","ignoreList":[]}
@@ -250,7 +250,7 @@ let CDSFileUploaderDropContainer = _decorate([customElement(`${prefix}-file-uplo
250
250
  kind: "get",
251
251
  static: true,
252
252
  key: "eventChange",
253
- value: function eventChange() {
253
+ value: function () {
254
254
  return `${prefix}-file-uploader-drop-container-changed`;
255
255
  }
256
256
 
@@ -261,7 +261,7 @@ let CDSFileUploaderDropContainer = _decorate([customElement(`${prefix}-file-uplo
261
261
  kind: "get",
262
262
  static: true,
263
263
  key: "selectorInput",
264
- value: function selectorInput() {
264
+ value: function () {
265
265
  return `.${prefix}--file-input`;
266
266
  }
267
267
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploader-drop-container.js","names":["classMap","LitElement","html","property","prefix","HostListenerMixin","HostListener","ifNonEmpty","styles","carbonElement","customElement","FORM_ELEMENT_COLOR_SCHEME","TILE_COLOR_SCHEME","dropEffects","dragover","dragleave","CDSFileUploaderDropContainer","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleChange","event","_ref","_this$shadowRoot","eventChange","selectorInput","files","type","dataTransfer","target","addedFiles","_getFiles","dispatchEvent","CustomEvent","bubbles","composed","detail","fileInput","shadowRoot","querySelector","decorators","_handleDrag","preventDefault","disabled","dropEffect","_active","requestUpdate","accept","test","Array","from","acceptedTypes","Set","split","prototype","filter","call","name","mimeType","_fileExtensionRegExp$","fileExtensionRegExp","hasFileExtension","fileExtension","undefined","exec","has","Boolean","reflect","render","multiple","active","handleChange","labelClasses","dropareaClasses","_t","_","static"],"sources":["components/file-uploader/file-uploader-drop-container.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 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/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.\n */\nconst dropEffects = {\n dragover: 'copy',\n dragleave: 'move',\n};\n\n/**\n * File uploader drop container.\n *\n * @element cds-file-uploader-drop-container\n * @fires cds-file-uploader-drop-container-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-drop-container`)\nclass CDSFileUploaderDropContainer extends HostListenerMixin(LitElement) {\n /**\n * `true` to show the active state of this UI.\n */\n private _active = false;\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderDropContainer;\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const addedFiles = this._getFiles(event, files);\n\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = ''; // carbon-web-components#904\n }\n }\n\n /**\n * Handles `dragover`, `dragleave` and `drop` events.\n *\n * @param event The event.\n */\n @HostListener('dragover')\n @HostListener('dragleave')\n @HostListener('drop')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleDrag(event: DragEvent) {\n event.preventDefault(); // Prevents page navigation upon dropping\n if (this.disabled) {\n return;\n }\n const { dataTransfer, type } = event;\n const dropEffect = dropEffects[type];\n if (dataTransfer && dropEffect) {\n dataTransfer.dropEffect = dropEffect;\n }\n this._active = type === 'dragover';\n if (type === 'drop') {\n this._handleChange(event);\n }\n this.requestUpdate();\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event, files) {\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : fileExtensionRegExp.exec(name) ?? [];\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n _active: active,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const dropareaClasses = classMap({\n [`${prefix}--file__drop-container`]: true,\n [`${prefix}--file__drop-container--drag-over`]: active,\n });\n return html`\n <label class=\"${labelClasses}\" for=\"file\" tabindex=\"0\">\n <div class=\"${dropareaClasses}\" role=\"button\">\n <slot></slot>\n <input\n id=\"file\"\n type=\"file\"\n name=\"${ifNonEmpty(name)}\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n @change=\"${handleChange}\" />\n </div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-drop-container-changed`;\n }\n\n /**\n * A selector that will return the file `<input>`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderDropContainer;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"file-uploader-drop-container.js","names":["classMap","LitElement","html","property","prefix","HostListenerMixin","HostListener","ifNonEmpty","styles","carbonElement","customElement","FORM_ELEMENT_COLOR_SCHEME","TILE_COLOR_SCHEME","dropEffects","dragover","dragleave","CDSFileUploaderDropContainer","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleChange","event","_ref","_this$shadowRoot","eventChange","selectorInput","files","type","dataTransfer","target","addedFiles","_getFiles","dispatchEvent","CustomEvent","bubbles","composed","detail","fileInput","shadowRoot","querySelector","decorators","_handleDrag","preventDefault","disabled","dropEffect","_active","requestUpdate","accept","test","Array","from","acceptedTypes","Set","split","prototype","filter","call","name","mimeType","_fileExtensionRegExp$","fileExtensionRegExp","hasFileExtension","fileExtension","undefined","exec","has","Boolean","reflect","render","multiple","active","handleChange","labelClasses","dropareaClasses","_t","_","static"],"sources":["components/file-uploader/file-uploader-drop-container.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 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/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport styles from './file-uploader.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { FORM_ELEMENT_COLOR_SCHEME as TILE_COLOR_SCHEME } from '../../globals/shared-enums';\n\n/**\n * The value to set to `event.dataTransfer.dropEffect`, keyed by the event nane.\n */\nconst dropEffects = {\n dragover: 'copy',\n dragleave: 'move',\n};\n\n/**\n * File uploader drop container.\n *\n * @element cds-file-uploader-drop-container\n * @fires cds-file-uploader-drop-container-changed The custom event fired when there is a user gesture to select files to upload.\n */\n@customElement(`${prefix}-file-uploader-drop-container`)\nclass CDSFileUploaderDropContainer extends HostListenerMixin(LitElement) {\n /**\n * `true` to show the active state of this UI.\n */\n private _active = false;\n\n /**\n * Handles user gesture to select files to upload.\n *\n * @param event The event.\n */\n private _handleChange(event: Event | DragEvent) {\n const { eventChange, selectorInput } = this\n .constructor as typeof CDSFileUploaderDropContainer;\n const { files } =\n (event.type === 'drop'\n ? (event as DragEvent).dataTransfer\n : (event.target as HTMLInputElement)) ?? {};\n const addedFiles = this._getFiles(event, files);\n\n this.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n addedFiles,\n },\n })\n );\n\n const fileInput = this?.shadowRoot?.querySelector(selectorInput);\n if (fileInput) {\n (fileInput as HTMLInputElement).value = ''; // carbon-web-components#904\n }\n }\n\n /**\n * Handles `dragover`, `dragleave` and `drop` events.\n *\n * @param event The event.\n */\n @HostListener('dragover')\n @HostListener('dragleave')\n @HostListener('drop')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleDrag(event: DragEvent) {\n event.preventDefault(); // Prevents page navigation upon dropping\n if (this.disabled) {\n return;\n }\n const { dataTransfer, type } = event;\n const dropEffect = dropEffects[type];\n if (dataTransfer && dropEffect) {\n dataTransfer.dropEffect = dropEffect;\n }\n this._active = type === 'dragover';\n if (type === 'drop') {\n this._handleChange(event);\n }\n this.requestUpdate();\n }\n\n /**\n * @param event The event.\n * @returns The list of files user chose to upload.\n */\n private _getFiles(event, files) {\n const { accept } = this;\n if (!accept || !/^(change|drop)$/.test(event.type)) {\n return Array.from(files ?? []);\n }\n const acceptedTypes = new Set(accept.split(' '));\n return Array.prototype.filter.call(\n files,\n ({ name, type: mimeType = '' }) => {\n const fileExtensionRegExp = /\\.[^.]+$/;\n const hasFileExtension = fileExtensionRegExp.test(name);\n const [fileExtension] = !hasFileExtension\n ? [undefined]\n : fileExtensionRegExp.exec(name) ?? [];\n\n return (\n acceptedTypes.has(mimeType) ||\n (fileExtension && acceptedTypes.has(fileExtension))\n );\n }\n ) as File[];\n }\n\n /**\n * The file types the file input should accept, separated by space.\n */\n @property()\n accept = '';\n\n /**\n * `true` if this drop container should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this drop container should accept more than one files at once.\n * Note that even with `false` set here, user _can_ select multiple files one by one.\n */\n @property({ type: Boolean, reflect: true })\n multiple = false;\n\n /**\n * The name of the input.\n */\n @property({ reflect: true })\n name = '';\n\n /**\n * The shadow DOM slot to put this drop container in.\n */\n @property({ reflect: true })\n slot = 'drop-container';\n\n render() {\n const {\n accept,\n disabled,\n multiple,\n name,\n _active: active,\n _handleChange: handleChange,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--file-browse-btn`]: true,\n [`${prefix}--file-browse-btn--disabled`]: disabled,\n });\n const dropareaClasses = classMap({\n [`${prefix}--file__drop-container`]: true,\n [`${prefix}--file__drop-container--drag-over`]: active,\n });\n return html`\n <label class=\"${labelClasses}\" for=\"file\" tabindex=\"0\">\n <div class=\"${dropareaClasses}\" role=\"button\">\n <slot></slot>\n <input\n id=\"file\"\n type=\"file\"\n name=\"${ifNonEmpty(name)}\"\n class=\"${prefix}--file-input\"\n tabindex=\"-1\"\n accept=\"${ifNonEmpty(accept)}\"\n ?disabled=\"${disabled}\"\n ?multiple=\"${multiple}\"\n @change=\"${handleChange}\" />\n </div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired when there is a user gesture to select files to upload.\n */\n static get eventChange() {\n return `${prefix}-file-uploader-drop-container-changed`;\n }\n\n /**\n * A selector that will return the file `<input>`.\n */\n static get selectorInput() {\n return `.${prefix}--file-input`;\n }\n\n static styles = styles;\n}\n\nexport default CDSFileUploaderDropContainer;\n"],"mappings":"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","ignoreList":[]}
@@ -254,7 +254,7 @@ let CDSFileUploaderItem = _decorate([customElement(`${prefix}-file-uploader-item
254
254
  kind: "get",
255
255
  static: true,
256
256
  key: "eventBeforeDelete",
257
- value: function eventBeforeDelete() {
257
+ value: function () {
258
258
  return `${prefix}-file-uploader-item-beingdeleted`;
259
259
  }
260
260
 
@@ -265,7 +265,7 @@ let CDSFileUploaderItem = _decorate([customElement(`${prefix}-file-uploader-item
265
265
  kind: "get",
266
266
  static: true,
267
267
  key: "eventDelete",
268
- value: function eventDelete() {
268
+ value: function () {
269
269
  return `${prefix}-file-uploader-item-deleted`;
270
270
  }
271
271
  }, {