@carbon/web-components 1.36.1 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/dist/accordion.min.js +1 -1
  2. package/dist/accordion.rtl.min.js +1 -1
  3. package/dist/breadcrumb.min.js +1 -1
  4. package/dist/breadcrumb.rtl.min.js +1 -1
  5. package/dist/{button-4e0b32c8.js → button-035465bb.js} +1 -1
  6. package/dist/{button-99f6b809.js → button-1a16f30e.js} +1 -1
  7. package/dist/button.min.js +1 -1
  8. package/dist/button.rtl.min.js +1 -1
  9. package/dist/{checkbox-d61e0f46.js → checkbox-61c8aa71.js} +1 -1
  10. package/dist/{checkbox-39ba54c6.js → checkbox-93412a35.js} +1 -1
  11. package/dist/checkbox.min.js +1 -1
  12. package/dist/checkbox.rtl.min.js +1 -1
  13. package/dist/code-snippet.min.js +2 -2
  14. package/dist/code-snippet.rtl.min.js +2 -2
  15. package/dist/combo-box.min.js +1 -1
  16. package/dist/combo-box.rtl.min.js +1 -1
  17. package/dist/{content-switcher-item-f853369b.js → content-switcher-item-6df85f1c.js} +1 -1
  18. package/dist/{content-switcher-item-55452b53.js → content-switcher-item-88761ecf.js} +1 -1
  19. package/dist/content-switcher.min.js +1 -1
  20. package/dist/content-switcher.rtl.min.js +1 -1
  21. package/dist/{copy-button-9fb90a01.js → copy-button-07fadd2e.js} +1 -1
  22. package/dist/{copy-button-7a7bbaf8.js → copy-button-d62f4b6e.js} +1 -1
  23. package/dist/copy-button.min.js +1 -1
  24. package/dist/copy-button.rtl.min.js +1 -1
  25. package/dist/data-table.min.js +2 -2
  26. package/dist/data-table.rtl.min.js +2 -2
  27. package/dist/date-picker.min.js +3 -3
  28. package/dist/date-picker.rtl.min.js +3 -3
  29. package/dist/{dropdown-item-2d248e51.js → dropdown-item-0d7d9847.js} +1 -1
  30. package/dist/{dropdown-item-9c062c1c.js → dropdown-item-5ea25a90.js} +1 -1
  31. package/dist/dropdown.min.js +1 -1
  32. package/dist/dropdown.rtl.min.js +1 -1
  33. package/dist/file-uploader.min.js +2 -2
  34. package/dist/file-uploader.rtl.min.js +2 -2
  35. package/dist/{floating-menu-72acc1bc.js → floating-menu-14b01da2.js} +1 -1
  36. package/dist/floating-menu.min.js +1 -1
  37. package/dist/floating-menu.rtl.min.js +1 -1
  38. package/dist/form.min.js +1 -1
  39. package/dist/form.rtl.min.js +1 -1
  40. package/dist/inline-loading.min.js +2 -2
  41. package/dist/inline-loading.rtl.min.js +2 -2
  42. package/dist/{input-d66d0e9c.js → input-13d32d6b.js} +2 -2
  43. package/dist/{input-47f04966.js → input-e5ad8493.js} +2 -2
  44. package/dist/input.min.js +1 -1
  45. package/dist/input.rtl.min.js +1 -1
  46. package/dist/{link-f9de12ea.js → link-00bbdb76.js} +1 -1
  47. package/dist/{link-afe664a3.js → link-1e3fcabc.js} +1 -1
  48. package/dist/link.min.js +1 -1
  49. package/dist/link.rtl.min.js +1 -1
  50. package/dist/list.min.js +1 -1
  51. package/dist/list.rtl.min.js +1 -1
  52. package/dist/{loading-926a29f5.js → loading-2a5481c6.js} +1 -1
  53. package/dist/{loading-a1c01e84.js → loading-5f4a55c9.js} +1 -1
  54. package/dist/{loading-icon-9d1c486a.js → loading-icon-4be51b70.js} +1 -1
  55. package/dist/loading.min.js +1 -1
  56. package/dist/loading.rtl.min.js +1 -1
  57. package/dist/modal.min.js +2 -2
  58. package/dist/modal.rtl.min.js +2 -2
  59. package/dist/multi-select.min.js +1 -1
  60. package/dist/multi-select.rtl.min.js +1 -1
  61. package/dist/notification.min.js +1 -1
  62. package/dist/notification.rtl.min.js +1 -1
  63. package/dist/number-input.min.js +2 -2
  64. package/dist/number-input.rtl.min.js +2 -2
  65. package/dist/overflow-menu.min.js +2 -2
  66. package/dist/overflow-menu.rtl.min.js +2 -2
  67. package/dist/pagination.min.js +1 -1
  68. package/dist/pagination.rtl.min.js +1 -1
  69. package/dist/progress-indicator.min.js +2 -12
  70. package/dist/progress-indicator.rtl.min.js +2 -12
  71. package/dist/radio-button.min.js +1 -1
  72. package/dist/radio-button.rtl.min.js +1 -1
  73. package/dist/{search-e6781408.js → search-7746f7ab.js} +1 -1
  74. package/dist/{search-f36f74c2.js → search-dc317efe.js} +1 -1
  75. package/dist/search.min.js +1 -1
  76. package/dist/search.rtl.min.js +1 -1
  77. package/dist/select.min.js +1 -1
  78. package/dist/select.rtl.min.js +1 -1
  79. package/dist/skeleton-placeholder.min.js +1 -1
  80. package/dist/skeleton-placeholder.rtl.min.js +1 -1
  81. package/dist/skeleton-text.min.js +1 -1
  82. package/dist/skeleton-text.rtl.min.js +1 -1
  83. package/dist/skip-to-content.min.js +1 -1
  84. package/dist/skip-to-content.rtl.min.js +1 -1
  85. package/dist/slider.min.js +1 -1
  86. package/dist/slider.rtl.min.js +1 -1
  87. package/dist/structured-list.min.js +1 -1
  88. package/dist/structured-list.rtl.min.js +1 -1
  89. package/dist/tabs.min.js +2 -2
  90. package/dist/tabs.rtl.min.js +2 -2
  91. package/dist/tag.min.js +1 -1
  92. package/dist/tag.rtl.min.js +1 -1
  93. package/dist/textarea.min.js +1 -1
  94. package/dist/textarea.rtl.min.js +1 -1
  95. package/dist/tile.min.js +1 -1
  96. package/dist/tile.rtl.min.js +1 -1
  97. package/dist/toggle.min.js +2 -2
  98. package/dist/toggle.rtl.min.js +2 -2
  99. package/dist/tooltip.min.js +2 -2
  100. package/dist/tooltip.rtl.min.js +2 -2
  101. package/dist/ui-shell.min.js +2 -2
  102. package/dist/ui-shell.rtl.min.js +2 -2
  103. package/es/components/accordion/accordion-item.js +19 -1
  104. package/es/components/accordion/accordion-item.js.map +1 -1
  105. package/es/components/accordion/accordion.js.map +1 -1
  106. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  107. package/es/components/breadcrumb/breadcrumb-overflow-menu.js +5 -1
  108. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  109. package/es/components/breadcrumb/breadcrumb.js +6 -1
  110. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  111. package/es/components/button/button-skeleton.js +21 -1
  112. package/es/components/button/button-skeleton.js.map +1 -1
  113. package/es/components/button/button.js +34 -2
  114. package/es/components/button/button.js.map +1 -1
  115. package/es/components/checkbox/checkbox.js +18 -1
  116. package/es/components/checkbox/checkbox.js.map +1 -1
  117. package/es/components/code-snippet/code-snippet-skeleton.js +5 -1
  118. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  119. package/es/components/code-snippet/code-snippet.js +26 -5
  120. package/es/components/code-snippet/code-snippet.js.map +1 -1
  121. package/es/components/combo-box/combo-box.js +23 -2
  122. package/es/components/combo-box/combo-box.js.map +1 -1
  123. package/es/components/content-switcher/content-switcher-item.js +11 -1
  124. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  125. package/es/components/content-switcher/content-switcher.js +7 -1
  126. package/es/components/content-switcher/content-switcher.js.map +1 -1
  127. package/es/components/copy-button/copy-button.js +15 -2
  128. package/es/components/copy-button/copy-button.js.map +1 -1
  129. package/es/components/data-table/table-batch-actions.js +15 -1
  130. package/es/components/data-table/table-batch-actions.js.map +1 -1
  131. package/es/components/data-table/table-body.js.map +1 -1
  132. package/es/components/data-table/table-cell-skeleton.js.map +1 -1
  133. package/es/components/data-table/table-cell.js.map +1 -1
  134. package/es/components/data-table/table-expand-row.js +10 -1
  135. package/es/components/data-table/table-expand-row.js.map +1 -1
  136. package/es/components/data-table/table-expanded-row.js +7 -1
  137. package/es/components/data-table/table-expanded-row.js.map +1 -1
  138. package/es/components/data-table/table-head.js.map +1 -1
  139. package/es/components/data-table/table-header-cell.js +12 -1
  140. package/es/components/data-table/table-header-cell.js.map +1 -1
  141. package/es/components/data-table/table-row.js +22 -1
  142. package/es/components/data-table/table-row.js.map +1 -1
  143. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  144. package/es/components/data-table/table-toolbar-search.js +8 -1
  145. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  146. package/es/components/data-table/table-toolbar.js.map +1 -1
  147. package/es/components/data-table/table.js.map +1 -1
  148. package/es/components/date-picker/date-picker-input-skeleton.js +4 -1
  149. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  150. package/es/components/date-picker/date-picker-input.js +30 -2
  151. package/es/components/date-picker/date-picker-input.js.map +1 -1
  152. package/es/components/date-picker/date-picker.js +12 -1
  153. package/es/components/date-picker/date-picker.js.map +1 -1
  154. package/es/components/dropdown/dropdown-item.js +6 -1
  155. package/es/components/dropdown/dropdown-item.js.map +1 -1
  156. package/es/components/dropdown/dropdown-skeleton.js +8 -1
  157. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  158. package/es/components/dropdown/dropdown.js +72 -4
  159. package/es/components/dropdown/dropdown.js.map +1 -1
  160. package/es/components/file-uploader/drop-container.js +16 -1
  161. package/es/components/file-uploader/drop-container.js.map +1 -1
  162. package/es/components/file-uploader/file-uploader-item.js +29 -3
  163. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  164. package/es/components/file-uploader/file-uploader.js +12 -1
  165. package/es/components/file-uploader/file-uploader.js.map +1 -1
  166. package/es/components/floating-menu/floating-menu.d.ts +1 -1
  167. package/es/components/floating-menu/floating-menu.js +5 -2
  168. package/es/components/floating-menu/floating-menu.js.map +1 -1
  169. package/es/components/form/form-item.js.map +1 -1
  170. package/es/components/inline-loading/inline-loading.js +14 -3
  171. package/es/components/inline-loading/inline-loading.js.map +1 -1
  172. package/es/components/input/input.d.ts +1 -1
  173. package/es/components/input/input.js +48 -4
  174. package/es/components/input/input.js.map +1 -1
  175. package/es/components/link/link.js +26 -3
  176. package/es/components/link/link.js.map +1 -1
  177. package/es/components/list/list-item.js +8 -1
  178. package/es/components/list/list-item.js.map +1 -1
  179. package/es/components/list/ordered-list.js +5 -1
  180. package/es/components/list/ordered-list.js.map +1 -1
  181. package/es/components/list/unordered-list.js +5 -1
  182. package/es/components/list/unordered-list.js.map +1 -1
  183. package/es/components/loading/loading-icon.js +16 -1
  184. package/es/components/loading/loading-icon.js.map +1 -1
  185. package/es/components/loading/loading.js.map +1 -1
  186. package/es/components/modal/modal-body.js.map +1 -1
  187. package/es/components/modal/modal-close-button.js +9 -1
  188. package/es/components/modal/modal-close-button.js.map +1 -1
  189. package/es/components/modal/modal-footer.js +5 -1
  190. package/es/components/modal/modal-footer.js.map +1 -1
  191. package/es/components/modal/modal-header.js.map +1 -1
  192. package/es/components/modal/modal-heading.js.map +1 -1
  193. package/es/components/modal/modal-label.js.map +1 -1
  194. package/es/components/modal/modal.js +20 -1
  195. package/es/components/modal/modal.js.map +1 -1
  196. package/es/components/multi-select/multi-select-item.js +19 -1
  197. package/es/components/multi-select/multi-select-item.js.map +1 -1
  198. package/es/components/multi-select/multi-select.js +35 -3
  199. package/es/components/multi-select/multi-select.js.map +1 -1
  200. package/es/components/notification/inline-notification.js +27 -3
  201. package/es/components/notification/inline-notification.js.map +1 -1
  202. package/es/components/notification/toast-notification.js +21 -2
  203. package/es/components/notification/toast-notification.js.map +1 -1
  204. package/es/components/number-input/number-input-skeleton.js +4 -1
  205. package/es/components/number-input/number-input-skeleton.js.map +1 -1
  206. package/es/components/number-input/number-input.d.ts +1 -1
  207. package/es/components/number-input/number-input.js +80 -6
  208. package/es/components/number-input/number-input.js.map +1 -1
  209. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  210. package/es/components/overflow-menu/overflow-menu-item.js +16 -1
  211. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  212. package/es/components/overflow-menu/overflow-menu.js +5 -1
  213. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  214. package/es/components/pagination/page-sizes-select.js +14 -1
  215. package/es/components/pagination/page-sizes-select.js.map +1 -1
  216. package/es/components/pagination/pages-select.js +25 -2
  217. package/es/components/pagination/pages-select.js.map +1 -1
  218. package/es/components/pagination/pagination.js +30 -1
  219. package/es/components/pagination/pagination.js.map +1 -1
  220. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  221. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  222. package/es/components/progress-indicator/progress-step-skeleton.js +10 -1
  223. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  224. package/es/components/progress-indicator/progress-step.js +19 -2
  225. package/es/components/progress-indicator/progress-step.js.map +1 -1
  226. package/es/components/radio-button/radio-button-group.js.map +1 -1
  227. package/es/components/radio-button/radio-button-skeleton.js +4 -1
  228. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  229. package/es/components/radio-button/radio-button.js +14 -1
  230. package/es/components/radio-button/radio-button.js.map +1 -1
  231. package/es/components/search/search-skeleton.js +4 -1
  232. package/es/components/search/search-skeleton.js.map +1 -1
  233. package/es/components/search/search.js +25 -1
  234. package/es/components/search/search.js.map +1 -1
  235. package/es/components/select/select.js +58 -4
  236. package/es/components/select/select.js.map +1 -1
  237. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  238. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  239. package/es/components/skip-to-content/skip-to-content.js +5 -1
  240. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  241. package/es/components/slider/slider-input.js +12 -1
  242. package/es/components/slider/slider-input.js.map +1 -1
  243. package/es/components/slider/slider-skeleton.js +12 -1
  244. package/es/components/slider/slider-skeleton.js.map +1 -1
  245. package/es/components/slider/slider.js +45 -1
  246. package/es/components/slider/slider.js.map +1 -1
  247. package/es/components/structured-list/structured-list-body.js.map +1 -1
  248. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  249. package/es/components/structured-list/structured-list-head.js.map +1 -1
  250. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  251. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  252. package/es/components/structured-list/structured-list-header-row.js +4 -1
  253. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  254. package/es/components/structured-list/structured-list-row.js +14 -1
  255. package/es/components/structured-list/structured-list-row.js.map +1 -1
  256. package/es/components/structured-list/structured-list.js +3 -1
  257. package/es/components/structured-list/structured-list.js.map +1 -1
  258. package/es/components/tabs/tab-skeleton.js.map +1 -1
  259. package/es/components/tabs/tab.js +11 -1
  260. package/es/components/tabs/tab.js.map +1 -1
  261. package/es/components/tabs/tabs-skeleton.js +8 -1
  262. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  263. package/es/components/tabs/tabs.js +26 -1
  264. package/es/components/tabs/tabs.js.map +1 -1
  265. package/es/components/tag/filter-tag.js +6 -1
  266. package/es/components/tag/filter-tag.js.map +1 -1
  267. package/es/components/tag/tag.css.js +1 -1
  268. package/es/components/tag/tag.js.map +1 -1
  269. package/es/components/textarea/textarea-skeleton.js +4 -1
  270. package/es/components/textarea/textarea-skeleton.js.map +1 -1
  271. package/es/components/textarea/textarea.js +32 -1
  272. package/es/components/textarea/textarea.js.map +1 -1
  273. package/es/components/tile/expandable-tile.js +17 -1
  274. package/es/components/tile/expandable-tile.js.map +1 -1
  275. package/es/components/tile/selectable-tile.js +17 -1
  276. package/es/components/tile/selectable-tile.js.map +1 -1
  277. package/es/components/tile/tile-group.js.map +1 -1
  278. package/es/components/tile/tile.js.map +1 -1
  279. package/es/components/toggle/toggle.js +33 -2
  280. package/es/components/toggle/toggle.js.map +1 -1
  281. package/es/components/tooltip/tooltip-body.js +4 -1
  282. package/es/components/tooltip/tooltip-body.js.map +1 -1
  283. package/es/components/tooltip/tooltip-definition.js +8 -1
  284. package/es/components/tooltip/tooltip-definition.js.map +1 -1
  285. package/es/components/tooltip/tooltip-footer.js.map +1 -1
  286. package/es/components/tooltip/tooltip-icon.js +11 -1
  287. package/es/components/tooltip/tooltip-icon.js.map +1 -1
  288. package/es/components/tooltip/tooltip.js +4 -1
  289. package/es/components/tooltip/tooltip.js.map +1 -1
  290. package/es/components/ui-shell/header-menu-button.js +10 -1
  291. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  292. package/es/components/ui-shell/header-menu.js +19 -1
  293. package/es/components/ui-shell/header-menu.js.map +1 -1
  294. package/es/components/ui-shell/header-name.js +10 -2
  295. package/es/components/ui-shell/header-name.js.map +1 -1
  296. package/es/components/ui-shell/header-nav-item.js +11 -1
  297. package/es/components/ui-shell/header-nav-item.js.map +1 -1
  298. package/es/components/ui-shell/header-nav.js +9 -1
  299. package/es/components/ui-shell/header-nav.js.map +1 -1
  300. package/es/components/ui-shell/header.js.map +1 -1
  301. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  302. package/es/components/ui-shell/side-nav-link.js +16 -1
  303. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  304. package/es/components/ui-shell/side-nav-menu-item.js +7 -1
  305. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  306. package/es/components/ui-shell/side-nav-menu.js +30 -1
  307. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  308. package/es/components/ui-shell/side-nav.js.map +1 -1
  309. package/es/globals/internal/storybook-cdn.d.ts +1 -1
  310. package/es/globals/internal/storybook-cdn.js +2 -2
  311. package/es/globals/internal/storybook-cdn.js.map +1 -1
  312. package/package.json +4 -3
  313. package/scss/components/tag/tag.scss +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.js","names":["html","property","query","LitElement","flatpickr","settings","FormMixin","HostListenerMixin","HostListener","getISODateString","parseISODateString","appendToPlugin","cssClassPlugin","fixEventsPlugin","focusPlugin","iconPlugin","monthSelectPlugin","rangePlugin","shadowDOMEventPlugin","stateHandshakePlugin","styles","carbonElement","customElement","prefix","DATE_PICKER_MODE","BXDatePicker","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","decorators","_mode","selectorInputFrom","selectorInputTo","querySelector","RANGE","SINGLE","SIMPLE","_datePickerPlugins","classCalendarContainer","classMonth","classWeekdays","classDays","classWeekday","classDay","classNoBorder","_selectorFlatpickrMonthYearContainer","selectorFlatpickrMonthYearContainer","_selectorFlatpickrYearContainer","selectorFlatpickrYearContainer","_selectorFlatpickrCurrentMonth","selectorFlatpickrCurrentMonth","_selectorFlatpickrMonth","selectorFlatpickrMonth","_selectorFlatpickrWeekdays","selectorFlatpickrWeekdays","_selectorFlatpickrDays","selectorFlatpickrDays","_selectorFlatpickrWeekday","selectorFlatpickrWeekday","_selectorFlatpickrDay","selectorFlatpickrDay","_classFlatpickrCurrentMonth","classFlatpickrCurrentMonth","_classFlatpickrToday","classFlatpickrToday","_floatingMenuContainerNode","floatingMenuContainerNode","mode","inputFrom","inputTo","plugins","appendTo","push","input","_datePickerOptions","_this$dateFormat","locale","defaultLocale","enabledRange","_dateInteractNode","dateInteractNode","_handleFlatpickrError","handleFlatpickrError","positionElement","minDate","undefined","maxDate","split","allowInput","dateFormat","defaultDateFormat","disableMobile","errorHandler","detail","_value","selectedDates","map","date","join","_handleFormdata","event","formData","disabled","name","append","_handleSlotChange","target","oldDateInteractNode","assignedNodes","find","node","nodeType","Node","ELEMENT_NODE","matches","_instantiateDatePicker","error","dispatchEvent","CustomEvent","eventFlatpickrError","bubbles","cancelable","composed","_releaseDatePicker","calendar","destroy","attribute","type","Boolean","reflect","oldValue","requestUpdate","connectedCallback","_get","_getPrototypeOf","prototype","call","disconnectedCallback","updated","changedProperties","open","has","set","dates","item","some","isNaN","Number","Error","close","forEach","filter","startDate","endDate","setDate","i","formatDate","Date","config","render","handleSlotChange","_t","_","static","l10ns","default","eventChange"],"sources":["components/date-picker/date-picker.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, query, LitElement } from 'lit-element';\nimport flatpickr from 'flatpickr';\nimport { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Locale as FlatpickrLocale } from 'flatpickr/dist/types/locale';\nimport {\n Options as FlatpickrOptions,\n Plugin as FlatpickrPlugin,\n} from 'flatpickr/dist/types/options';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport { getISODateString, parseISODateString } from './iso-date';\nimport BXDatePickerInput from './date-picker-input';\nimport appendToPlugin from './append-to-plugin';\nimport cssClassPlugin from './css-class-plugin';\nimport fixEventsPlugin from './fix-events-plugin';\nimport focusPlugin from './focus-plugin';\nimport iconPlugin from './icon-plugin';\nimport monthSelectPlugin from './month-select-plugin';\nimport rangePlugin from './range-plugin';\nimport shadowDOMEventPlugin from './shadow-dom-events-plugin';\nimport stateHandshakePlugin from './state-handshake-plugin';\nimport styles from './date-picker.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Date picker modes.\n */\nenum DATE_PICKER_MODE {\n /**\n * Simple mode, without calendar dropdown.\n */\n SIMPLE = 'simple',\n\n /**\n * Single date mode.\n */\n SINGLE = 'single',\n\n /**\n * Range mode.\n */\n RANGE = 'range',\n}\n\n/**\n * Date picker.\n *\n * @element bx-date-picker\n * @fires bx-date-picker-changed - The custom event fired on this element when Flatpickr updates its value.\n */\n@customElement(`${prefix}-date-picker`)\nclass BXDatePicker extends HostListenerMixin(FormMixin(LitElement)) {\n /**\n * The slotted `<bx-date-input kind=\"from\">`.\n */\n private _dateInteractNode: BXDatePickerInput | null = null;\n\n /**\n * The element to put calendar dropdown in.\n */\n @query('#floating-menu-container')\n private _floatingMenuContainerNode!: HTMLDivElement;\n\n /**\n * The internal placeholder for the `value` property.\n */\n private _value!: string;\n\n /**\n * @returns The effective date picker mode, determined by the child `<bx-date-picker-input>`.\n */\n private get _mode() {\n const { selectorInputFrom, selectorInputTo } = this\n .constructor as typeof BXDatePicker;\n if (this.querySelector(selectorInputTo)) {\n return DATE_PICKER_MODE.RANGE;\n }\n if (this.querySelector(selectorInputFrom)) {\n return DATE_PICKER_MODE.SINGLE;\n }\n return DATE_PICKER_MODE.SIMPLE;\n }\n\n /**\n * @returns The Flatpickr plugins to use.\n */\n private get _datePickerPlugins(): FlatpickrPlugin[] {\n const {\n classCalendarContainer,\n classMonth,\n classWeekdays,\n classDays,\n classWeekday,\n classDay,\n classNoBorder,\n selectorInputFrom,\n selectorInputTo,\n _selectorFlatpickrMonthYearContainer: selectorFlatpickrMonthYearContainer,\n _selectorFlatpickrYearContainer: selectorFlatpickrYearContainer,\n _selectorFlatpickrCurrentMonth: selectorFlatpickrCurrentMonth,\n _selectorFlatpickrMonth: selectorFlatpickrMonth,\n _selectorFlatpickrWeekdays: selectorFlatpickrWeekdays,\n _selectorFlatpickrDays: selectorFlatpickrDays,\n _selectorFlatpickrWeekday: selectorFlatpickrWeekday,\n _selectorFlatpickrDay: selectorFlatpickrDay,\n _classFlatpickrCurrentMonth: classFlatpickrCurrentMonth,\n _classFlatpickrToday: classFlatpickrToday,\n } = this.constructor as typeof BXDatePicker;\n const {\n _floatingMenuContainerNode: floatingMenuContainerNode,\n _mode: mode,\n } = this;\n const inputFrom = this.querySelector(selectorInputFrom);\n const inputTo = this.querySelector(selectorInputTo);\n const plugins = [\n appendToPlugin({ appendTo: floatingMenuContainerNode }),\n cssClassPlugin({\n classCalendarContainer,\n classMonth,\n classWeekdays,\n classDays,\n classWeekday,\n classDay,\n classNoBorder,\n selectorFlatpickrMonth,\n selectorFlatpickrWeekdays,\n selectorFlatpickrDays,\n selectorFlatpickrWeekday,\n selectorFlatpickrDay,\n classFlatpickrToday,\n }),\n fixEventsPlugin({\n inputFrom: inputFrom as BXDatePickerInput,\n inputTo: inputTo as BXDatePickerInput,\n }),\n focusPlugin({\n inputFrom: inputFrom as BXDatePickerInput,\n inputTo: inputTo as BXDatePickerInput,\n }),\n iconPlugin(),\n monthSelectPlugin({\n selectorFlatpickrMonthYearContainer,\n selectorFlatpickrYearContainer,\n selectorFlatpickrCurrentMonth,\n classFlatpickrCurrentMonth,\n }),\n shadowDOMEventPlugin(),\n stateHandshakePlugin(this),\n ];\n if (mode === DATE_PICKER_MODE.RANGE) {\n // Flatpickr runs event handlers of last registered plugins first.\n // Ensures `onValueUpdate` of `rangePlugin` runs first\n // given Flatpickr puts `01/01/1970 to 01/02/1970` to from date\n // where `rangePlugin` overrides it to separate them to from/to dates.\n // We want to ensure our handler of `onValueUpdate` (notably one in `<bx-date-picker-input>`)\n // gets the `<input>` value set by `rangePlugin` instead of Flatpickr core.\n plugins.push(rangePlugin({ input: inputTo as HTMLInputElement }));\n }\n return plugins;\n }\n\n /**\n * @returns The options to instantiate Flatpickr with.\n */\n private get _datePickerOptions(): FlatpickrOptions {\n const {\n locale = (this.constructor as typeof BXDatePicker).defaultLocale,\n enabledRange,\n _dateInteractNode: dateInteractNode,\n _datePickerPlugins: plugins,\n _handleFlatpickrError: handleFlatpickrError,\n } = this;\n // We use `<bx-date-picker-input>` to communicate values/events with Flatpickr,\n // but want to use `<input>` in shadow DOM to base the calendar dropdown's position on\n const { input: positionElement } = dateInteractNode!;\n const [minDate = undefined, maxDate = undefined] = !enabledRange\n ? []\n : enabledRange.split('/');\n return {\n allowInput: true,\n dateFormat:\n this.dateFormat ??\n (this.constructor as typeof BXDatePicker).defaultDateFormat,\n disableMobile: true,\n errorHandler: handleFlatpickrError,\n locale,\n maxDate,\n minDate,\n positionElement,\n plugins,\n };\n }\n\n /**\n * Handles `${prefix}-date-picker-changed` event on this element.\n */\n @HostListener('eventChange')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChange = ({ detail }: CustomEvent) => {\n this._value = detail.selectedDates\n .map((date) => getISODateString(date))\n .join('/');\n };\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 * Handles `slotchange` event in the `<slot>`.\n */\n private _handleSlotChange({ target }: Event) {\n const { _dateInteractNode: oldDateInteractNode } = this;\n const dateInteractNode = (target as HTMLSlotElement)\n .assignedNodes()\n .find(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE &&\n (node as HTMLElement).matches(\n (this.constructor as typeof BXDatePicker).selectorInputFrom\n )\n );\n if (oldDateInteractNode !== dateInteractNode) {\n this._dateInteractNode = dateInteractNode as BXDatePickerInput;\n this._instantiateDatePicker();\n }\n }\n\n /**\n * Fires a custom event to notify an error in Flatpickr.\n */\n private _handleFlatpickrError = (error: Error) => {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof BXDatePicker).eventFlatpickrError,\n {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {\n error,\n },\n }\n )\n );\n };\n\n /**\n * Instantiates Flatpickr.\n *\n * @returns The Flatpickr instance.\n */\n private _instantiateDatePicker() {\n this._releaseDatePicker();\n const { _dateInteractNode: dateInteractNode } = this;\n // `this._dateInteractNode` won't be there unless there is a slotted `<bx-date-input type=\"from\">`,\n // which means Flatpickr will never be instantiated in \"simple\" mode.\n if (dateInteractNode && dateInteractNode.input) {\n this.calendar = flatpickr(\n dateInteractNode as any,\n this._datePickerOptions\n );\n }\n return this.calendar;\n }\n\n /**\n * Releases Flatpickr instances.\n */\n private _releaseDatePicker() {\n if (this.calendar) {\n this.calendar.destroy();\n this.calendar = null;\n }\n return this.calendar;\n }\n\n /**\n * The Flatpickr instance.\n */\n calendar: FlatpickrInstance | null = null;\n\n /**\n * The date format to let Flatpickr use.\n */\n @property({ attribute: 'date-format' })\n dateFormat!: string;\n\n /**\n * Controls the disabled state of the input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The localization data.\n */\n @property({ attribute: false })\n locale!: FlatpickrLocale;\n\n /**\n * The date range that a user can pick in calendar dropdown.\n */\n @property({ attribute: 'enabled-range' })\n enabledRange!: string;\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * `true` if the date picker should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * The date(s) in ISO8601 format (date portion only), for range mode, '/' is used for separate start/end dates.\n */\n @property()\n get value() {\n return this._value;\n }\n\n set value(value: string) {\n const { _value: oldValue } = this;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._instantiateDatePicker();\n }\n\n disconnectedCallback() {\n this._releaseDatePicker();\n super.disconnectedCallback();\n }\n\n updated(changedProperties) {\n const { calendar, disabled, open } = this;\n const { selectorInputFrom, selectorInputTo } = this\n .constructor as typeof BXDatePicker;\n const inputFrom = this.querySelector(\n selectorInputFrom\n ) as BXDatePickerInput;\n const inputTo = this.querySelector(selectorInputTo) as BXDatePickerInput;\n if (calendar && changedProperties.has('dateFormat')) {\n const { dateFormat } = this;\n calendar.set({ dateFormat });\n }\n if (changedProperties.has('enabledRange')) {\n const { enabledRange } = this;\n const dates = enabledRange\n .split('/')\n .map((item) => (!item ? undefined : parseISODateString(item))); // Allows empty start/end\n if (dates.some((item) => Boolean(item && isNaN(Number(item))))) {\n // Allows empty start/end\n throw new Error(\n `Wrong date format found in \\`enabledRange\\` property: ${enabledRange}`\n );\n }\n const [minDate, maxDate] = dates;\n if (minDate && maxDate && minDate > maxDate) {\n throw new Error(\n `In \\`enabledRange\\` property, the end date shouldn't be smaller than the start date. You have: ${enabledRange}`\n );\n }\n if (calendar) {\n calendar.set({ minDate, maxDate });\n }\n }\n if (changedProperties.has('open') && calendar) {\n if (open) {\n calendar.open();\n } else {\n calendar.close();\n }\n }\n if (changedProperties.has('disabled')) {\n [inputFrom, inputTo].forEach((input) => {\n if (input) {\n input.disabled = disabled;\n }\n });\n }\n if (changedProperties.has('value')) {\n const { value } = this;\n const dates = value\n .split('/')\n .filter(Boolean)\n .map((item) => parseISODateString(item));\n if (dates.some((item) => isNaN(Number(item)))) {\n throw new Error(\n `Wrong date format found in \\`value\\` property: ${value}`\n );\n }\n const [startDate, endDate] = dates;\n if (startDate && endDate && startDate > endDate) {\n throw new Error(\n `In \\`value\\` property, the end date shouldn't be smaller than the start date. You have: ${value}`\n );\n }\n if (calendar) {\n calendar.setDate(dates);\n [inputFrom, inputTo].forEach((input, i) => {\n if (input) {\n input.value = !dates[i]\n ? ''\n : calendar.formatDate(\n new Date(dates[i]),\n calendar.config.dateFormat\n );\n }\n });\n }\n }\n }\n\n render() {\n const { _handleSlotChange: handleSlotChange } = this;\n return html`\n <a\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <div id=\"floating-menu-container\"></div>\n <a\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n `;\n }\n\n /**\n * The CSS selector for Flatpickr's month/year portion.\n */\n private static _selectorFlatpickrMonthYearContainer =\n '.flatpickr-current-month';\n\n /**\n * The CSS selector for Flatpickr's year portion.\n */\n private static _selectorFlatpickrYearContainer = '.numInputWrapper';\n\n /**\n * The CSS selector for the inner element of Flatpickr's month portion.\n */\n private static _selectorFlatpickrCurrentMonth = '.cur-month';\n\n /**\n * The CSS selector for Flatpickr's month navigator.\n */\n private static _selectorFlatpickrMonth = '.flatpickr-month';\n\n /**\n * The CSS selector for Flatpickr's container of the weekdays.\n */\n private static _selectorFlatpickrWeekdays = '.flatpickr-weekdays';\n\n /**\n * The CSS selector for Flatpickr's container of the days.\n */\n private static _selectorFlatpickrDays = '.flatpickr-days';\n\n /**\n * The CSS selector applied to Flatpickr's each weekdays.\n */\n private static _selectorFlatpickrWeekday = '.flatpickr-weekday';\n\n /**\n * The CSS selector applied to Flatpickr's each days.\n */\n private static _selectorFlatpickrDay = '.flatpickr-day';\n\n /**\n * The CSS class for the inner element of Flatpickr's month portion.\n */\n private static _classFlatpickrCurrentMonth = 'cur-month';\n\n /**\n * The CSS class applied to Flatpickr's \"today\" highlight.\n */\n private static _classFlatpickrToday = 'today';\n\n /**\n * The CSS class for the calendar dropdown.\n */\n static get classCalendarContainer() {\n return `${prefix}--date-picker__calendar`;\n }\n\n /**\n * The CSS class for the month navigator.\n */\n static get classMonth() {\n return `${prefix}--date-picker__month`;\n }\n\n /**\n * The CSS class for the container of the weekdays.\n */\n static get classWeekdays() {\n return `${prefix}--date-picker__weekdays`;\n }\n\n /**\n * The CSS class for the container of the days.\n */\n static get classDays() {\n return `${prefix}--date-picker__days`;\n }\n\n /**\n * The CSS class applied to each weekdays.\n */\n static get classWeekday() {\n return `${prefix}--date-picker__weekday`;\n }\n\n /**\n * The CSS class applied to each days.\n */\n static get classDay() {\n return `${prefix}--date-picker__day`;\n }\n\n /**\n * The CSS class applied to the \"today\" highlight if there are any dates selected.\n */\n static classNoBorder = 'no-border';\n\n /**\n * The default date format.\n */\n static defaultDateFormat = 'm/d/Y';\n\n /**\n * The default localization data.\n */\n static defaultLocale = flatpickr.l10ns.default;\n\n /**\n * A selector that will return the `<input>` to enter starting date.\n */\n static get selectorInputFrom() {\n return `${prefix}-date-picker-input[kind=\"single\"],${prefix}-date-picker-input[kind=\"from\"]`;\n }\n\n /**\n * A selector that will return the `<input>` to enter end date.\n */\n static get selectorInputTo() {\n return `${prefix}-date-picker-input[kind=\"to\"]`;\n }\n\n /**\n * The name of the custom event when Flatpickr throws an error.\n */\n static get eventFlatpickrError() {\n return `${prefix}-date-picker-flatpickr-error`;\n }\n\n /**\n * The name of the custom event fired on this element when Flatpickr updates its value.\n */\n static get eventChange() {\n return `${prefix}-date-picker-changed`;\n }\n\n static styles = styles;\n}\n\nexport default BXDatePicker;\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,QAAQ,aAAa;AAC/D,OAAOC,SAAS,MAAM,WAAW;AAOjC,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,SAAS,MAAM,2BAA2B;AACjD,OAAOC,iBAAiB,MAAM,oCAAoC;AAClE,OAAOC,YAAY,MAAM,wCAAwC;AACjE,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,YAAY;AAEjE,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,OAAOC,eAAe,MAAM,qBAAqB;AACjD,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,oBAAoB,MAAM,4BAA4B;AAC7D,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,OAAOC,MAAM,MAAM,wBAAoB;AACvC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGlB,QAAQ;;AAE3B;AACA;AACA;AAFA,IAGKmB,gBAAgB;AAiBrB;AACA;AACA;AACA;AACA;AACA;AALA,WAjBKA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;AAAA,GAAhBA,gBAAgB,KAAhBA,gBAAgB;AAAA,IAwBfC,YAAY,GAAAC,SAAA,EADjBJ,aAAa,CAAE,GAAEC,MAAO,cAAa,CAAC,aAAAI,WAAA,EAAAC,kBAAA;EAAvC,MACMH,YAAY,SAAAG,kBAAA,CAAkD;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAghBpE;EAAC;IAAAI,CAAA,EAhhBKN,YAAY;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAIsC,IAAI;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKzDlC,KAAK,CAAC,0BAA0B,CAAC;MAAAgC,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MARlC;AACF;AACA;;MAGE;AACF;AACA;;MAIE;AACF;AACA;;MAGE;AACF;AACA;MACE,SAAAE,MAAA,EAAoB;QAClB,MAAM;UAAEC,iBAAiB;UAAEC;QAAgB,CAAC,GAAG,IAAI,CAChDV,WAAkC;QACrC,IAAI,IAAI,CAACW,aAAa,CAACD,eAAe,CAAC,EAAE;UACvC,OAAOf,gBAAgB,CAACiB,KAAK;QAC/B;QACA,IAAI,IAAI,CAACD,aAAa,CAACF,iBAAiB,CAAC,EAAE;UACzC,OAAOd,gBAAgB,CAACkB,MAAM;QAChC;QACA,OAAOlB,gBAAgB,CAACmB,MAAM;MAChC;;MAEA;AACF;AACA;IAFE;MAAAV,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAAS,mBAAA,EAAoD;QAClD,MAAM;UACJC,sBAAsB;UACtBC,UAAU;UACVC,aAAa;UACbC,SAAS;UACTC,YAAY;UACZC,QAAQ;UACRC,aAAa;UACbb,iBAAiB;UACjBC,eAAe;UACfa,oCAAoC,EAAEC,mCAAmC;UACzEC,+BAA+B,EAAEC,8BAA8B;UAC/DC,8BAA8B,EAAEC,6BAA6B;UAC7DC,uBAAuB,EAAEC,sBAAsB;UAC/CC,0BAA0B,EAAEC,yBAAyB;UACrDC,sBAAsB,EAAEC,qBAAqB;UAC7CC,yBAAyB,EAAEC,wBAAwB;UACnDC,qBAAqB,EAAEC,oBAAoB;UAC3CC,2BAA2B,EAAEC,0BAA0B;UACvDC,oBAAoB,EAAEC;QACxB,CAAC,GAAG,IAAI,CAAC1C,WAAkC;QAC3C,MAAM;UACJ2C,0BAA0B,EAAEC,yBAAyB;UACrDpC,KAAK,EAAEqC;QACT,CAAC,GAAG,IAAI;QACR,MAAMC,SAAS,GAAG,IAAI,CAACnC,aAAa,CAACF,iBAAiB,CAAC;QACvD,MAAMsC,OAAO,GAAG,IAAI,CAACpC,aAAa,CAACD,eAAe,CAAC;QACnD,MAAMsC,OAAO,GAAG,CACdlE,cAAc,CAAC;UAAEmE,QAAQ,EAAEL;QAA0B,CAAC,CAAC,EACvD7D,cAAc,CAAC;UACbiC,sBAAsB;UACtBC,UAAU;UACVC,aAAa;UACbC,SAAS;UACTC,YAAY;UACZC,QAAQ;UACRC,aAAa;UACbQ,sBAAsB;UACtBE,yBAAyB;UACzBE,qBAAqB;UACrBE,wBAAwB;UACxBE,oBAAoB;UACpBI;QACF,CAAC,CAAC,EACF1D,eAAe,CAAC;UACd8D,SAAS,EAAEA,SAA8B;UACzCC,OAAO,EAAEA;QACX,CAAC,CAAC,EACF9D,WAAW,CAAC;UACV6D,SAAS,EAAEA,SAA8B;UACzCC,OAAO,EAAEA;QACX,CAAC,CAAC,EACF7D,UAAU,CAAC,CAAC,EACZC,iBAAiB,CAAC;UAChBqC,mCAAmC;UACnCE,8BAA8B;UAC9BE,6BAA6B;UAC7BY;QACF,CAAC,CAAC,EACFnD,oBAAoB,CAAC,CAAC,EACtBC,oBAAoB,CAAC,IAAI,CAAC,CAC3B;QACD,IAAIuD,IAAI,KAAKlD,gBAAgB,CAACiB,KAAK,EAAE;UACnC;UACA;UACA;UACA;UACA;UACA;UACAoC,OAAO,CAACE,IAAI,CAAC9D,WAAW,CAAC;YAAE+D,KAAK,EAAEJ;UAA4B,CAAC,CAAC,CAAC;QACnE;QACA,OAAOC,OAAO;MAChB;;MAEA;AACF;AACA;IAFE;MAAA5C,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAA8C,mBAAA,EAAmD;QAAA,IAAAC,gBAAA;QACjD,MAAM;UACJC,MAAM,GAAI,IAAI,CAACtD,WAAW,CAAyBuD,aAAa;UAChEC,YAAY;UACZC,iBAAiB,EAAEC,gBAAgB;UACnC3C,kBAAkB,EAAEiC,OAAO;UAC3BW,qBAAqB,EAAEC;QACzB,CAAC,GAAG,IAAI;QACR;QACA;QACA,MAAM;UAAET,KAAK,EAAEU;QAAgB,CAAC,GAAGH,gBAAiB;QACpD,MAAM,CAACI,OAAO,GAAGC,SAAS,EAAEC,OAAO,GAAGD,SAAS,CAAC,GAAG,CAACP,YAAY,GAC5D,EAAE,GACFA,YAAY,CAACS,KAAK,CAAC,GAAG,CAAC;QAC3B,OAAO;UACLC,UAAU,EAAE,IAAI;UAChBC,UAAU,GAAAd,gBAAA,GACR,IAAI,CAACc,UAAU,cAAAd,gBAAA,cAAAA,gBAAA,GACd,IAAI,CAACrD,WAAW,CAAyBoE,iBAAiB;UAC7DC,aAAa,EAAE,IAAI;UACnBC,YAAY,EAAEV,oBAAoB;UAClCN,MAAM;UACNU,OAAO;UACPF,OAAO;UACPD,eAAe;UACfb;QACF,CAAC;MACH;;MAEA;AACF;AACA;IAFE;MAAA5C,IAAA;MAAAG,UAAA,GAGC5B,YAAY,CAAC,aAAa,CAAC;MAAA0B,GAAA;MAAAC,MAAA;QAAA,OAEJ,CAAC;UAAEiE;QAAoB,CAAC,KAAK;UACnD,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACE,aAAa,CAC/BC,GAAG,CAAEC,IAAI,IAAK/F,gBAAgB,CAAC+F,IAAI,CAAC,CAAC,CACrCC,IAAI,CAAC,GAAG,CAAC;QACd,CAAC;MAAA;IAAA;MAAAxE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAuE,gBAAgBC,KAAY,EAAE;QAC5B,MAAM;UAAEC;QAAS,CAAC,GAAGD,KAAY,CAAC,CAAC;QACnC,MAAM;UAAEE,QAAQ;UAAEC,IAAI;UAAE3E;QAAM,CAAC,GAAG,IAAI;QACtC,IAAI,CAAC0E,QAAQ,EAAE;UACbD,QAAQ,CAACG,MAAM,CAACD,IAAI,EAAE3E,KAAK,CAAC;QAC9B;MACF;;MAEA;AACF;AACA;IAFE;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAA6E,kBAA0B;QAAEC;MAAc,CAAC,EAAE;QAC3C,MAAM;UAAE3B,iBAAiB,EAAE4B;QAAoB,CAAC,GAAG,IAAI;QACvD,MAAM3B,gBAAgB,GAAI0B,MAAM,CAC7BE,aAAa,CAAC,CAAC,CACfC,IAAI,CACFC,IAAI,IACHA,IAAI,CAACC,QAAQ,KAAKC,IAAI,CAACC,YAAY,IAClCH,IAAI,CAAiBI,OAAO,CAC1B,IAAI,CAAC5F,WAAW,CAAyBS,iBAC5C,CACJ,CAAC;QACH,IAAI4E,mBAAmB,KAAK3B,gBAAgB,EAAE;UAC5C,IAAI,CAACD,iBAAiB,GAAGC,gBAAqC;UAC9D,IAAI,CAACmC,sBAAsB,CAAC,CAAC;QAC/B;MACF;;MAEA;AACF;AACA;IAFE;MAAAzF,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAGiCwF,KAAY,IAAK;UAChD,IAAI,CAACC,aAAa,CAChB,IAAIC,WAAW,CACZ,IAAI,CAAChG,WAAW,CAAyBiG,mBAAmB,EAC7D;YACEC,OAAO,EAAE,IAAI;YACbC,UAAU,EAAE,KAAK;YACjBC,QAAQ,EAAE,IAAI;YACd7B,MAAM,EAAE;cACNuB;YACF;UACF,CACF,CACF,CAAC;QACH,CAAC;MAAA;IAAA;MAAA1F,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAED;AACF;AACA;AACA;AACA;MACE,SAAAuF,uBAAA,EAAiC;QAC/B,IAAI,CAACQ,kBAAkB,CAAC,CAAC;QACzB,MAAM;UAAE5C,iBAAiB,EAAEC;QAAiB,CAAC,GAAG,IAAI;QACpD;QACA;QACA,IAAIA,gBAAgB,IAAIA,gBAAgB,CAACP,KAAK,EAAE;UAC9C,IAAI,CAACmD,QAAQ,GAAG/H,SAAS,CACvBmF,gBAAgB,EAChB,IAAI,CAACN,kBACP,CAAC;QACH;QACA,OAAO,IAAI,CAACkD,QAAQ;MACtB;;MAEA;AACF;AACA;IAFE;MAAAlG,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAA+F,mBAAA,EAA6B;QAC3B,IAAI,IAAI,CAACC,QAAQ,EAAE;UACjB,IAAI,CAACA,QAAQ,CAACC,OAAO,CAAC,CAAC;UACvB,IAAI,CAACD,QAAQ,GAAG,IAAI;QACtB;QACA,OAAO,IAAI,CAACA,QAAQ;MACtB;;MAEA;AACF;AACA;IAFE;MAAAlG,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAGqC,IAAI;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKxCnC,QAAQ,CAAC;QAAEoI,SAAS,EAAE;MAAc,CAAC,CAAC;MAAAnG,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAMtCnC,QAAQ,CAAC;QAAEqI,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAtG,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKfnC,QAAQ,CAAC;QAAEoI,SAAS,EAAE;MAAM,CAAC,CAAC;MAAAnG,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAM9BnC,QAAQ,CAAC;QAAEoI,SAAS,EAAE;MAAgB,CAAC,CAAC;MAAAnG,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAMxCnC,QAAQ,CAAC,CAAC;MAAAiC,GAAA;MAAAC,MAAA;QAAA,OACJ,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKRnC,QAAQ,CAAC;QAAEqI,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAtG,GAAA;MAAAC,MAAA;QAAA,OACpC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKXnC,QAAQ,CAAC,CAAC;MAAAiC,GAAA;MAAAC,KAAA;MAvCX;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MACE,SAAAA,MAAA,EACY;QACV,OAAO,IAAI,CAACkE,MAAM;MACpB;IAAC;MAAApE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAA,MAAUA,MAAa,EAAE;QACvB,MAAM;UAAEkE,MAAM,EAAEoC;QAAS,CAAC,GAAG,IAAI;QACjC,IAAI,CAACpC,MAAM,GAAGlE,MAAK;QACnB,IAAI,CAACuG,aAAa,CAAC,OAAO,EAAED,QAAQ,CAAC;MACvC;IAAC;MAAAxG,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAwG,kBAAA,EAAoB;QAClBC,IAAA,CAAAC,eAAA,CA9REpH,YAAY,CAAAqH,SAAA,8BAAAC,IAAA;QA+Rd,IAAI,CAACrB,sBAAsB,CAAC,CAAC;MAC/B;IAAC;MAAAzF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA6G,qBAAA,EAAuB;QACrB,IAAI,CAACd,kBAAkB,CAAC,CAAC;QACzBU,IAAA,CAAAC,eAAA,CApSEpH,YAAY,CAAAqH,SAAA,iCAAAC,IAAA;MAqShB;IAAC;MAAA9G,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA8G,QAAQC,iBAAiB,EAAE;QACzB,MAAM;UAAEf,QAAQ;UAAEtB,QAAQ;UAAEsC;QAAK,CAAC,GAAG,IAAI;QACzC,MAAM;UAAE7G,iBAAiB;UAAEC;QAAgB,CAAC,GAAG,IAAI,CAChDV,WAAkC;QACrC,MAAM8C,SAAS,GAAG,IAAI,CAACnC,aAAa,CAClCF,iBACF,CAAsB;QACtB,MAAMsC,OAAO,GAAG,IAAI,CAACpC,aAAa,CAACD,eAAe,CAAsB;QACxE,IAAI4F,QAAQ,IAAIe,iBAAiB,CAACE,GAAG,CAAC,YAAY,CAAC,EAAE;UACnD,MAAM;YAAEpD;UAAW,CAAC,GAAG,IAAI;UAC3BmC,QAAQ,CAACkB,GAAG,CAAC;YAAErD;UAAW,CAAC,CAAC;QAC9B;QACA,IAAIkD,iBAAiB,CAACE,GAAG,CAAC,cAAc,CAAC,EAAE;UACzC,MAAM;YAAE/D;UAAa,CAAC,GAAG,IAAI;UAC7B,MAAMiE,KAAK,GAAGjE,YAAY,CACvBS,KAAK,CAAC,GAAG,CAAC,CACVS,GAAG,CAAEgD,IAAI,IAAM,CAACA,IAAI,GAAG3D,SAAS,GAAGlF,kBAAkB,CAAC6I,IAAI,CAAE,CAAC,CAAC,CAAC;UAClE,IAAID,KAAK,CAACE,IAAI,CAAED,IAAI,IAAKhB,OAAO,CAACgB,IAAI,IAAIE,KAAK,CAACC,MAAM,CAACH,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9D;YACA,MAAM,IAAII,KAAK,CACZ,yDAAwDtE,YAAa,EACxE,CAAC;UACH;UACA,MAAM,CAACM,OAAO,EAAEE,OAAO,CAAC,GAAGyD,KAAK;UAChC,IAAI3D,OAAO,IAAIE,OAAO,IAAIF,OAAO,GAAGE,OAAO,EAAE;YAC3C,MAAM,IAAI8D,KAAK,CACZ,kGAAiGtE,YAAa,EACjH,CAAC;UACH;UACA,IAAI8C,QAAQ,EAAE;YACZA,QAAQ,CAACkB,GAAG,CAAC;cAAE1D,OAAO;cAAEE;YAAQ,CAAC,CAAC;UACpC;QACF;QACA,IAAIqD,iBAAiB,CAACE,GAAG,CAAC,MAAM,CAAC,IAAIjB,QAAQ,EAAE;UAC7C,IAAIgB,IAAI,EAAE;YACRhB,QAAQ,CAACgB,IAAI,CAAC,CAAC;UACjB,CAAC,MAAM;YACLhB,QAAQ,CAACyB,KAAK,CAAC,CAAC;UAClB;QACF;QACA,IAAIV,iBAAiB,CAACE,GAAG,CAAC,UAAU,CAAC,EAAE;UACrC,CAACzE,SAAS,EAAEC,OAAO,CAAC,CAACiF,OAAO,CAAE7E,KAAK,IAAK;YACtC,IAAIA,KAAK,EAAE;cACTA,KAAK,CAAC6B,QAAQ,GAAGA,QAAQ;YAC3B;UACF,CAAC,CAAC;QACJ;QACA,IAAIqC,iBAAiB,CAACE,GAAG,CAAC,OAAO,CAAC,EAAE;UAClC,MAAM;YAAEjH;UAAM,CAAC,GAAG,IAAI;UACtB,MAAMmH,KAAK,GAAGnH,KAAK,CAChB2D,KAAK,CAAC,GAAG,CAAC,CACVgE,MAAM,CAACvB,OAAO,CAAC,CACfhC,GAAG,CAAEgD,IAAI,IAAK7I,kBAAkB,CAAC6I,IAAI,CAAC,CAAC;UAC1C,IAAID,KAAK,CAACE,IAAI,CAAED,IAAI,IAAKE,KAAK,CAACC,MAAM,CAACH,IAAI,CAAC,CAAC,CAAC,EAAE;YAC7C,MAAM,IAAII,KAAK,CACZ,kDAAiDxH,KAAM,EAC1D,CAAC;UACH;UACA,MAAM,CAAC4H,SAAS,EAAEC,OAAO,CAAC,GAAGV,KAAK;UAClC,IAAIS,SAAS,IAAIC,OAAO,IAAID,SAAS,GAAGC,OAAO,EAAE;YAC/C,MAAM,IAAIL,KAAK,CACZ,2FAA0FxH,KAAM,EACnG,CAAC;UACH;UACA,IAAIgG,QAAQ,EAAE;YACZA,QAAQ,CAAC8B,OAAO,CAACX,KAAK,CAAC;YACvB,CAAC3E,SAAS,EAAEC,OAAO,CAAC,CAACiF,OAAO,CAAC,CAAC7E,KAAK,EAAEkF,CAAC,KAAK;cACzC,IAAIlF,KAAK,EAAE;gBACTA,KAAK,CAAC7C,KAAK,GAAG,CAACmH,KAAK,CAACY,CAAC,CAAC,GACnB,EAAE,GACF/B,QAAQ,CAACgC,UAAU,CACjB,IAAIC,IAAI,CAACd,KAAK,CAACY,CAAC,CAAC,CAAC,EAClB/B,QAAQ,CAACkC,MAAM,CAACrE,UAClB,CAAC;cACP;YACF,CAAC,CAAC;UACJ;QACF;MACF;IAAC;MAAA/D,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAmI,OAAA,EAAS;QACP,MAAM;UAAEtD,iBAAiB,EAAEuD;QAAiB,CAAC,GAAG,IAAI;QACpD,OAAOvK,IAAI,CAAAwK,EAAA,KAAAA,EAAA,GAAAC,CAAA,kPAEElJ,MAAM,EAGIgJ,gBAAgB,EAG1BhJ,MAAM;MAIrB;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAIE,0BAA0B;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKqB,kBAAkB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKnB,YAAY;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKnB,kBAAkB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKf,qBAAqB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKzB,iBAAiB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKd,oBAAoB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKxB,gBAAgB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKV,WAAW;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKlB,OAAO;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA;MA3C7C;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MACE,SAAAU,uBAAA,EAAoC;QAClC,OAAQ,GAAEtB,MAAO,yBAAwB;MAC3C;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAW,WAAA,EAAwB;QACtB,OAAQ,GAAEvB,MAAO,sBAAqB;MACxC;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAY,cAAA,EAA2B;QACzB,OAAQ,GAAExB,MAAO,yBAAwB;MAC3C;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAa,UAAA,EAAuB;QACrB,OAAQ,GAAEzB,MAAO,qBAAoB;MACvC;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAc,aAAA,EAA0B;QACxB,OAAQ,GAAE1B,MAAO,wBAAuB;MAC1C;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAe,SAAA,EAAsB;QACpB,OAAQ,GAAE3B,MAAO,oBAAmB;MACtC;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAGuB,WAAW;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKP,OAAO;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKX/B,SAAS,CAACuK,KAAK,CAACC,OAAO;MAAA;IAAA;MAAA3I,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA;MAR9C;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MACE,SAAAG,kBAAA,EAA+B;QAC7B,OAAQ,GAAEf,MAAO,qCAAoCA,MAAO,iCAAgC;MAC9F;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAI,gBAAA,EAA6B;QAC3B,OAAQ,GAAEhB,MAAO,+BAA8B;MACjD;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAA2F,oBAAA,EAAiC;QAC/B,OAAQ,GAAEvG,MAAO,8BAA6B;MAChD;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAA0I,YAAA,EAAyB;QACvB,OAAQ,GAAEtJ,MAAO,sBAAqB;MACxC;IAAC;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAEef,MAAM;MAAA;IAAA;EAAA;AAAA,GA/gBGb,iBAAiB,CAACD,SAAS,CAACH,UAAU,CAAC,CAAC;AAkhBnE,eAAesB,YAAY"}
1
+ {"version":3,"file":"date-picker.js","names":["html","property","query","LitElement","flatpickr","settings","FormMixin","HostListenerMixin","HostListener","getISODateString","parseISODateString","appendToPlugin","cssClassPlugin","fixEventsPlugin","focusPlugin","iconPlugin","monthSelectPlugin","rangePlugin","shadowDOMEventPlugin","stateHandshakePlugin","styles","carbonElement","customElement","prefix","DATE_PICKER_MODE","BXDatePicker","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","decorators","_mode","selectorInputFrom","selectorInputTo","querySelector","RANGE","SINGLE","SIMPLE","_datePickerPlugins","classCalendarContainer","classMonth","classWeekdays","classDays","classWeekday","classDay","classNoBorder","_selectorFlatpickrMonthYearContainer","selectorFlatpickrMonthYearContainer","_selectorFlatpickrYearContainer","selectorFlatpickrYearContainer","_selectorFlatpickrCurrentMonth","selectorFlatpickrCurrentMonth","_selectorFlatpickrMonth","selectorFlatpickrMonth","_selectorFlatpickrWeekdays","selectorFlatpickrWeekdays","_selectorFlatpickrDays","selectorFlatpickrDays","_selectorFlatpickrWeekday","selectorFlatpickrWeekday","_selectorFlatpickrDay","selectorFlatpickrDay","_classFlatpickrCurrentMonth","classFlatpickrCurrentMonth","_classFlatpickrToday","classFlatpickrToday","_floatingMenuContainerNode","floatingMenuContainerNode","mode","inputFrom","inputTo","plugins","appendTo","push","input","_datePickerOptions","_this$dateFormat","locale","defaultLocale","enabledRange","_dateInteractNode","dateInteractNode","_handleFlatpickrError","handleFlatpickrError","positionElement","minDate","undefined","maxDate","split","allowInput","dateFormat","defaultDateFormat","disableMobile","errorHandler","detail","_value","selectedDates","map","date","join","_handleFormdata","event","formData","disabled","name","append","_handleSlotChange","target","oldDateInteractNode","assignedNodes","find","node","nodeType","Node","ELEMENT_NODE","matches","_instantiateDatePicker","error","dispatchEvent","CustomEvent","eventFlatpickrError","bubbles","cancelable","composed","_releaseDatePicker","calendar","destroy","attribute","type","Boolean","reflect","oldValue","requestUpdate","connectedCallback","_get","_getPrototypeOf","prototype","call","disconnectedCallback","updated","changedProperties","open","has","set","dates","item","some","isNaN","Number","Error","close","forEach","filter","startDate","endDate","setDate","i","formatDate","Date","config","render","handleSlotChange","_t","_","static","l10ns","default","eventChange"],"sources":["components/date-picker/date-picker.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, property, query, LitElement } from 'lit-element';\nimport flatpickr from 'flatpickr';\nimport { Instance as FlatpickrInstance } from 'flatpickr/dist/types/instance';\nimport { Locale as FlatpickrLocale } from 'flatpickr/dist/types/locale';\nimport {\n Options as FlatpickrOptions,\n Plugin as FlatpickrPlugin,\n} from 'flatpickr/dist/types/options';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport { getISODateString, parseISODateString } from './iso-date';\nimport BXDatePickerInput from './date-picker-input';\nimport appendToPlugin from './append-to-plugin';\nimport cssClassPlugin from './css-class-plugin';\nimport fixEventsPlugin from './fix-events-plugin';\nimport focusPlugin from './focus-plugin';\nimport iconPlugin from './icon-plugin';\nimport monthSelectPlugin from './month-select-plugin';\nimport rangePlugin from './range-plugin';\nimport shadowDOMEventPlugin from './shadow-dom-events-plugin';\nimport stateHandshakePlugin from './state-handshake-plugin';\nimport styles from './date-picker.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Date picker modes.\n */\nenum DATE_PICKER_MODE {\n /**\n * Simple mode, without calendar dropdown.\n */\n SIMPLE = 'simple',\n\n /**\n * Single date mode.\n */\n SINGLE = 'single',\n\n /**\n * Range mode.\n */\n RANGE = 'range',\n}\n\n/**\n * Date picker.\n *\n * @element bx-date-picker\n * @fires bx-date-picker-changed - The custom event fired on this element when Flatpickr updates its value.\n */\n@customElement(`${prefix}-date-picker`)\nclass BXDatePicker extends HostListenerMixin(FormMixin(LitElement)) {\n /**\n * The slotted `<bx-date-input kind=\"from\">`.\n */\n private _dateInteractNode: BXDatePickerInput | null = null;\n\n /**\n * The element to put calendar dropdown in.\n */\n @query('#floating-menu-container')\n private _floatingMenuContainerNode!: HTMLDivElement;\n\n /**\n * The internal placeholder for the `value` property.\n */\n private _value!: string;\n\n /**\n * @returns The effective date picker mode, determined by the child `<bx-date-picker-input>`.\n */\n private get _mode() {\n const { selectorInputFrom, selectorInputTo } = this\n .constructor as typeof BXDatePicker;\n if (this.querySelector(selectorInputTo)) {\n return DATE_PICKER_MODE.RANGE;\n }\n if (this.querySelector(selectorInputFrom)) {\n return DATE_PICKER_MODE.SINGLE;\n }\n return DATE_PICKER_MODE.SIMPLE;\n }\n\n /**\n * @returns The Flatpickr plugins to use.\n */\n private get _datePickerPlugins(): FlatpickrPlugin[] {\n const {\n classCalendarContainer,\n classMonth,\n classWeekdays,\n classDays,\n classWeekday,\n classDay,\n classNoBorder,\n selectorInputFrom,\n selectorInputTo,\n _selectorFlatpickrMonthYearContainer: selectorFlatpickrMonthYearContainer,\n _selectorFlatpickrYearContainer: selectorFlatpickrYearContainer,\n _selectorFlatpickrCurrentMonth: selectorFlatpickrCurrentMonth,\n _selectorFlatpickrMonth: selectorFlatpickrMonth,\n _selectorFlatpickrWeekdays: selectorFlatpickrWeekdays,\n _selectorFlatpickrDays: selectorFlatpickrDays,\n _selectorFlatpickrWeekday: selectorFlatpickrWeekday,\n _selectorFlatpickrDay: selectorFlatpickrDay,\n _classFlatpickrCurrentMonth: classFlatpickrCurrentMonth,\n _classFlatpickrToday: classFlatpickrToday,\n } = this.constructor as typeof BXDatePicker;\n const {\n _floatingMenuContainerNode: floatingMenuContainerNode,\n _mode: mode,\n } = this;\n const inputFrom = this.querySelector(selectorInputFrom);\n const inputTo = this.querySelector(selectorInputTo);\n const plugins = [\n appendToPlugin({ appendTo: floatingMenuContainerNode }),\n cssClassPlugin({\n classCalendarContainer,\n classMonth,\n classWeekdays,\n classDays,\n classWeekday,\n classDay,\n classNoBorder,\n selectorFlatpickrMonth,\n selectorFlatpickrWeekdays,\n selectorFlatpickrDays,\n selectorFlatpickrWeekday,\n selectorFlatpickrDay,\n classFlatpickrToday,\n }),\n fixEventsPlugin({\n inputFrom: inputFrom as BXDatePickerInput,\n inputTo: inputTo as BXDatePickerInput,\n }),\n focusPlugin({\n inputFrom: inputFrom as BXDatePickerInput,\n inputTo: inputTo as BXDatePickerInput,\n }),\n iconPlugin(),\n monthSelectPlugin({\n selectorFlatpickrMonthYearContainer,\n selectorFlatpickrYearContainer,\n selectorFlatpickrCurrentMonth,\n classFlatpickrCurrentMonth,\n }),\n shadowDOMEventPlugin(),\n stateHandshakePlugin(this),\n ];\n if (mode === DATE_PICKER_MODE.RANGE) {\n // Flatpickr runs event handlers of last registered plugins first.\n // Ensures `onValueUpdate` of `rangePlugin` runs first\n // given Flatpickr puts `01/01/1970 to 01/02/1970` to from date\n // where `rangePlugin` overrides it to separate them to from/to dates.\n // We want to ensure our handler of `onValueUpdate` (notably one in `<bx-date-picker-input>`)\n // gets the `<input>` value set by `rangePlugin` instead of Flatpickr core.\n plugins.push(rangePlugin({ input: inputTo as HTMLInputElement }));\n }\n return plugins;\n }\n\n /**\n * @returns The options to instantiate Flatpickr with.\n */\n private get _datePickerOptions(): FlatpickrOptions {\n const {\n locale = (this.constructor as typeof BXDatePicker).defaultLocale,\n enabledRange,\n _dateInteractNode: dateInteractNode,\n _datePickerPlugins: plugins,\n _handleFlatpickrError: handleFlatpickrError,\n } = this;\n // We use `<bx-date-picker-input>` to communicate values/events with Flatpickr,\n // but want to use `<input>` in shadow DOM to base the calendar dropdown's position on\n const { input: positionElement } = dateInteractNode!;\n const [minDate = undefined, maxDate = undefined] = !enabledRange\n ? []\n : enabledRange.split('/');\n return {\n allowInput: true,\n dateFormat:\n this.dateFormat ??\n (this.constructor as typeof BXDatePicker).defaultDateFormat,\n disableMobile: true,\n errorHandler: handleFlatpickrError,\n locale,\n maxDate,\n minDate,\n positionElement,\n plugins,\n };\n }\n\n /**\n * Handles `${prefix}-date-picker-changed` event on this element.\n */\n @HostListener('eventChange')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChange = ({ detail }: CustomEvent) => {\n this._value = detail.selectedDates\n .map((date) => getISODateString(date))\n .join('/');\n };\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 * Handles `slotchange` event in the `<slot>`.\n */\n private _handleSlotChange({ target }: Event) {\n const { _dateInteractNode: oldDateInteractNode } = this;\n const dateInteractNode = (target as HTMLSlotElement)\n .assignedNodes()\n .find(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE &&\n (node as HTMLElement).matches(\n (this.constructor as typeof BXDatePicker).selectorInputFrom\n )\n );\n if (oldDateInteractNode !== dateInteractNode) {\n this._dateInteractNode = dateInteractNode as BXDatePickerInput;\n this._instantiateDatePicker();\n }\n }\n\n /**\n * Fires a custom event to notify an error in Flatpickr.\n */\n private _handleFlatpickrError = (error: Error) => {\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof BXDatePicker).eventFlatpickrError,\n {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {\n error,\n },\n }\n )\n );\n };\n\n /**\n * Instantiates Flatpickr.\n *\n * @returns The Flatpickr instance.\n */\n private _instantiateDatePicker() {\n this._releaseDatePicker();\n const { _dateInteractNode: dateInteractNode } = this;\n // `this._dateInteractNode` won't be there unless there is a slotted `<bx-date-input type=\"from\">`,\n // which means Flatpickr will never be instantiated in \"simple\" mode.\n if (dateInteractNode && dateInteractNode.input) {\n this.calendar = flatpickr(\n dateInteractNode as any,\n this._datePickerOptions\n );\n }\n return this.calendar;\n }\n\n /**\n * Releases Flatpickr instances.\n */\n private _releaseDatePicker() {\n if (this.calendar) {\n this.calendar.destroy();\n this.calendar = null;\n }\n return this.calendar;\n }\n\n /**\n * The Flatpickr instance.\n */\n calendar: FlatpickrInstance | null = null;\n\n /**\n * The date format to let Flatpickr use.\n */\n @property({ attribute: 'date-format' })\n dateFormat!: string;\n\n /**\n * Controls the disabled state of the input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The localization data.\n */\n @property({ attribute: false })\n locale!: FlatpickrLocale;\n\n /**\n * The date range that a user can pick in calendar dropdown.\n */\n @property({ attribute: 'enabled-range' })\n enabledRange!: string;\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * `true` if the date picker should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * The date(s) in ISO8601 format (date portion only), for range mode, '/' is used for separate start/end dates.\n */\n @property()\n get value() {\n return this._value;\n }\n\n set value(value: string) {\n const { _value: oldValue } = this;\n this._value = value;\n this.requestUpdate('value', oldValue);\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._instantiateDatePicker();\n }\n\n disconnectedCallback() {\n this._releaseDatePicker();\n super.disconnectedCallback();\n }\n\n updated(changedProperties) {\n const { calendar, disabled, open } = this;\n const { selectorInputFrom, selectorInputTo } = this\n .constructor as typeof BXDatePicker;\n const inputFrom = this.querySelector(\n selectorInputFrom\n ) as BXDatePickerInput;\n const inputTo = this.querySelector(selectorInputTo) as BXDatePickerInput;\n if (calendar && changedProperties.has('dateFormat')) {\n const { dateFormat } = this;\n calendar.set({ dateFormat });\n }\n if (changedProperties.has('enabledRange')) {\n const { enabledRange } = this;\n const dates = enabledRange\n .split('/')\n .map((item) => (!item ? undefined : parseISODateString(item))); // Allows empty start/end\n if (dates.some((item) => Boolean(item && isNaN(Number(item))))) {\n // Allows empty start/end\n throw new Error(\n `Wrong date format found in \\`enabledRange\\` property: ${enabledRange}`\n );\n }\n const [minDate, maxDate] = dates;\n if (minDate && maxDate && minDate > maxDate) {\n throw new Error(\n `In \\`enabledRange\\` property, the end date shouldn't be smaller than the start date. You have: ${enabledRange}`\n );\n }\n if (calendar) {\n calendar.set({ minDate, maxDate });\n }\n }\n if (changedProperties.has('open') && calendar) {\n if (open) {\n calendar.open();\n } else {\n calendar.close();\n }\n }\n if (changedProperties.has('disabled')) {\n [inputFrom, inputTo].forEach((input) => {\n if (input) {\n input.disabled = disabled;\n }\n });\n }\n if (changedProperties.has('value')) {\n const { value } = this;\n const dates = value\n .split('/')\n .filter(Boolean)\n .map((item) => parseISODateString(item));\n if (dates.some((item) => isNaN(Number(item)))) {\n throw new Error(\n `Wrong date format found in \\`value\\` property: ${value}`\n );\n }\n const [startDate, endDate] = dates;\n if (startDate && endDate && startDate > endDate) {\n throw new Error(\n `In \\`value\\` property, the end date shouldn't be smaller than the start date. You have: ${value}`\n );\n }\n if (calendar) {\n calendar.setDate(dates);\n [inputFrom, inputTo].forEach((input, i) => {\n if (input) {\n input.value = !dates[i]\n ? ''\n : calendar.formatDate(\n new Date(dates[i]),\n calendar.config.dateFormat\n );\n }\n });\n }\n }\n }\n\n render() {\n const { _handleSlotChange: handleSlotChange } = this;\n return html`\n <a\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n <slot @slotchange=\"${handleSlotChange}\"></slot>\n <div id=\"floating-menu-container\"></div>\n <a\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n `;\n }\n\n /**\n * The CSS selector for Flatpickr's month/year portion.\n */\n private static _selectorFlatpickrMonthYearContainer =\n '.flatpickr-current-month';\n\n /**\n * The CSS selector for Flatpickr's year portion.\n */\n private static _selectorFlatpickrYearContainer = '.numInputWrapper';\n\n /**\n * The CSS selector for the inner element of Flatpickr's month portion.\n */\n private static _selectorFlatpickrCurrentMonth = '.cur-month';\n\n /**\n * The CSS selector for Flatpickr's month navigator.\n */\n private static _selectorFlatpickrMonth = '.flatpickr-month';\n\n /**\n * The CSS selector for Flatpickr's container of the weekdays.\n */\n private static _selectorFlatpickrWeekdays = '.flatpickr-weekdays';\n\n /**\n * The CSS selector for Flatpickr's container of the days.\n */\n private static _selectorFlatpickrDays = '.flatpickr-days';\n\n /**\n * The CSS selector applied to Flatpickr's each weekdays.\n */\n private static _selectorFlatpickrWeekday = '.flatpickr-weekday';\n\n /**\n * The CSS selector applied to Flatpickr's each days.\n */\n private static _selectorFlatpickrDay = '.flatpickr-day';\n\n /**\n * The CSS class for the inner element of Flatpickr's month portion.\n */\n private static _classFlatpickrCurrentMonth = 'cur-month';\n\n /**\n * The CSS class applied to Flatpickr's \"today\" highlight.\n */\n private static _classFlatpickrToday = 'today';\n\n /**\n * The CSS class for the calendar dropdown.\n */\n static get classCalendarContainer() {\n return `${prefix}--date-picker__calendar`;\n }\n\n /**\n * The CSS class for the month navigator.\n */\n static get classMonth() {\n return `${prefix}--date-picker__month`;\n }\n\n /**\n * The CSS class for the container of the weekdays.\n */\n static get classWeekdays() {\n return `${prefix}--date-picker__weekdays`;\n }\n\n /**\n * The CSS class for the container of the days.\n */\n static get classDays() {\n return `${prefix}--date-picker__days`;\n }\n\n /**\n * The CSS class applied to each weekdays.\n */\n static get classWeekday() {\n return `${prefix}--date-picker__weekday`;\n }\n\n /**\n * The CSS class applied to each days.\n */\n static get classDay() {\n return `${prefix}--date-picker__day`;\n }\n\n /**\n * The CSS class applied to the \"today\" highlight if there are any dates selected.\n */\n static classNoBorder = 'no-border';\n\n /**\n * The default date format.\n */\n static defaultDateFormat = 'm/d/Y';\n\n /**\n * The default localization data.\n */\n static defaultLocale = flatpickr.l10ns.default;\n\n /**\n * A selector that will return the `<input>` to enter starting date.\n */\n static get selectorInputFrom() {\n return `${prefix}-date-picker-input[kind=\"single\"],${prefix}-date-picker-input[kind=\"from\"]`;\n }\n\n /**\n * A selector that will return the `<input>` to enter end date.\n */\n static get selectorInputTo() {\n return `${prefix}-date-picker-input[kind=\"to\"]`;\n }\n\n /**\n * The name of the custom event when Flatpickr throws an error.\n */\n static get eventFlatpickrError() {\n return `${prefix}-date-picker-flatpickr-error`;\n }\n\n /**\n * The name of the custom event fired on this element when Flatpickr updates its value.\n */\n static get eventChange() {\n return `${prefix}-date-picker-changed`;\n }\n\n static styles = styles;\n}\n\nexport default BXDatePicker;\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,QAAQ,aAAa;AAC/D,OAAOC,SAAS,MAAM,WAAW;AAOjC,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,SAAS,MAAM,2BAA2B;AACjD,OAAOC,iBAAiB,MAAM,oCAAoC;AAClE,OAAOC,YAAY,MAAM,wCAAwC;AACjE,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,YAAY;AAEjE,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,OAAOC,eAAe,MAAM,qBAAqB;AACjD,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,oBAAoB,MAAM,4BAA4B;AAC7D,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,OAAOC,MAAM,MAAM,wBAAoB;AACvC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGlB,QAAQ;;AAE3B;AACA;AACA;AAFA,IAGKmB,gBAAgB;AAiBrB;AACA;AACA;AACA;AACA;AACA;AALA,WAjBKA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;AAAA,GAAhBA,gBAAgB,KAAhBA,gBAAgB;AAAA,IAwBfC,YAAY,GAAAC,SAAA,EADjBJ,aAAa,CAAE,GAAEC,MAAO,cAAa,CAAC,aAAAI,WAAA,EAAAC,kBAAA;EAAvC,MACMH,YAAY,SAAAG,kBAAA,CAAkD;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAghBpE;EAAC;IAAAI,CAAA,EAhhBKN,YAAY;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAIsC,IAAI;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKzDlC,KAAK,CAAC,0BAA0B,CAAC;MAAAgC,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MARlC;AACF;AACA;;MAGE;AACF;AACA;;MAIE;AACF;AACA;;MAGE;AACF;AACA;MACE,SAAAE,MAAA,EAAoB;QAClB,MAAM;UAAEC,iBAAiB;UAAEC;QAAgB,CAAC,GAAG,IAAI,CAChDV,WAAkC;QACrC,IAAI,IAAI,CAACW,aAAa,CAACD,eAAe,CAAC,EAAE;UACvC,OAAOf,gBAAgB,CAACiB,KAAK;QAC/B;QACA,IAAI,IAAI,CAACD,aAAa,CAACF,iBAAiB,CAAC,EAAE;UACzC,OAAOd,gBAAgB,CAACkB,MAAM;QAChC;QACA,OAAOlB,gBAAgB,CAACmB,MAAM;MAChC;;MAEA;AACF;AACA;IAFE;MAAAV,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAAS,mBAAA,EAAoD;QAClD,MAAM;UACJC,sBAAsB;UACtBC,UAAU;UACVC,aAAa;UACbC,SAAS;UACTC,YAAY;UACZC,QAAQ;UACRC,aAAa;UACbb,iBAAiB;UACjBC,eAAe;UACfa,oCAAoC,EAAEC,mCAAmC;UACzEC,+BAA+B,EAAEC,8BAA8B;UAC/DC,8BAA8B,EAAEC,6BAA6B;UAC7DC,uBAAuB,EAAEC,sBAAsB;UAC/CC,0BAA0B,EAAEC,yBAAyB;UACrDC,sBAAsB,EAAEC,qBAAqB;UAC7CC,yBAAyB,EAAEC,wBAAwB;UACnDC,qBAAqB,EAAEC,oBAAoB;UAC3CC,2BAA2B,EAAEC,0BAA0B;UACvDC,oBAAoB,EAAEC;QACxB,CAAC,GAAG,IAAI,CAAC1C,WAAkC;QAC3C,MAAM;UACJ2C,0BAA0B,EAAEC,yBAAyB;UACrDpC,KAAK,EAAEqC;QACT,CAAC,GAAG,IAAI;QACR,MAAMC,SAAS,GAAG,IAAI,CAACnC,aAAa,CAACF,iBAAiB,CAAC;QACvD,MAAMsC,OAAO,GAAG,IAAI,CAACpC,aAAa,CAACD,eAAe,CAAC;QACnD,MAAMsC,OAAO,GAAG,CACdlE,cAAc,CAAC;UAAEmE,QAAQ,EAAEL;QAA0B,CAAC,CAAC,EACvD7D,cAAc,CAAC;UACbiC,sBAAsB;UACtBC,UAAU;UACVC,aAAa;UACbC,SAAS;UACTC,YAAY;UACZC,QAAQ;UACRC,aAAa;UACbQ,sBAAsB;UACtBE,yBAAyB;UACzBE,qBAAqB;UACrBE,wBAAwB;UACxBE,oBAAoB;UACpBI;QACF,CAAC,CAAC,EACF1D,eAAe,CAAC;UACd8D,SAAS,EAAEA,SAA8B;UACzCC,OAAO,EAAEA;QACX,CAAC,CAAC,EACF9D,WAAW,CAAC;UACV6D,SAAS,EAAEA,SAA8B;UACzCC,OAAO,EAAEA;QACX,CAAC,CAAC,EACF7D,UAAU,CAAC,CAAC,EACZC,iBAAiB,CAAC;UAChBqC,mCAAmC;UACnCE,8BAA8B;UAC9BE,6BAA6B;UAC7BY;QACF,CAAC,CAAC,EACFnD,oBAAoB,CAAC,CAAC,EACtBC,oBAAoB,CAAC,IAAI,CAAC,CAC3B;QACD,IAAIuD,IAAI,KAAKlD,gBAAgB,CAACiB,KAAK,EAAE;UACnC;UACA;UACA;UACA;UACA;UACA;UACAoC,OAAO,CAACE,IAAI,CAAC9D,WAAW,CAAC;YAAE+D,KAAK,EAAEJ;UAA4B,CAAC,CAAC,CAAC;QACnE;QACA,OAAOC,OAAO;MAChB;;MAEA;AACF;AACA;IAFE;MAAA5C,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAA8C,mBAAA,EAAmD;QAAA,IAAAC,gBAAA;QACjD,MAAM;UACJC,MAAM,GAAI,IAAI,CAACtD,WAAW,CAAyBuD,aAAa;UAChEC,YAAY;UACZC,iBAAiB,EAAEC,gBAAgB;UACnC3C,kBAAkB,EAAEiC,OAAO;UAC3BW,qBAAqB,EAAEC;QACzB,CAAC,GAAG,IAAI;QACR;QACA;QACA,MAAM;UAAET,KAAK,EAAEU;QAAgB,CAAC,GAAGH,gBAAiB;QACpD,MAAM,CAACI,OAAO,GAAGC,SAAS,EAAEC,OAAO,GAAGD,SAAS,CAAC,GAAG,CAACP,YAAY,GAC5D,EAAE,GACFA,YAAY,CAACS,KAAK,CAAC,GAAG,CAAC;QAC3B,OAAO;UACLC,UAAU,EAAE,IAAI;UAChBC,UAAU,GAAAd,gBAAA,GACR,IAAI,CAACc,UAAU,cAAAd,gBAAA,cAAAA,gBAAA,GACd,IAAI,CAACrD,WAAW,CAAyBoE,iBAAiB;UAC7DC,aAAa,EAAE,IAAI;UACnBC,YAAY,EAAEV,oBAAoB;UAClCN,MAAM;UACNU,OAAO;UACPF,OAAO;UACPD,eAAe;UACfb;QACF,CAAC;MACH;;MAEA;AACF;AACA;IAFE;MAAA5C,IAAA;MAAAG,UAAA,GAGC5B,YAAY,CAAC,aAAa,CAAC;MAAA0B,GAAA;MAAAC,MAAA;QAAA,OAEJ,CAAC;UAAEiE;QAAoB,CAAC,KAAK;UACnD,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACE,aAAa,CAC/BC,GAAG,CAAEC,IAAI,IAAK/F,gBAAgB,CAAC+F,IAAI,CAAC,CAAC,CACrCC,IAAI,CAAC,GAAG,CAAC;QACd,CAAC;MAAA;IAAA;MAAAxE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAuE,gBAAgBC,KAAY,EAAE;QAC5B,MAAM;UAAEC;QAAS,CAAC,GAAGD,KAAY,CAAC,CAAC;QACnC,MAAM;UAAEE,QAAQ;UAAEC,IAAI;UAAE3E;QAAM,CAAC,GAAG,IAAI;QACtC,IAAI,CAAC0E,QAAQ,EAAE;UACbD,QAAQ,CAACG,MAAM,CAACD,IAAI,EAAE3E,KAAK,CAAC;QAC9B;MACF;;MAEA;AACF;AACA;IAFE;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAA6E,kBAA0B;QAAEC;MAAc,CAAC,EAAE;QAC3C,MAAM;UAAE3B,iBAAiB,EAAE4B;QAAoB,CAAC,GAAG,IAAI;QACvD,MAAM3B,gBAAgB,GAAI0B,MAAM,CAC7BE,aAAa,CAAC,CAAC,CACfC,IAAI,CACFC,IAAI,IACHA,IAAI,CAACC,QAAQ,KAAKC,IAAI,CAACC,YAAY,IAClCH,IAAI,CAAiBI,OAAO,CAC1B,IAAI,CAAC5F,WAAW,CAAyBS,iBAC5C,CACJ,CAAC;QACH,IAAI4E,mBAAmB,KAAK3B,gBAAgB,EAAE;UAC5C,IAAI,CAACD,iBAAiB,GAAGC,gBAAqC;UAC9D,IAAI,CAACmC,sBAAsB,CAAC,CAAC;QAC/B;MACF;;MAEA;AACF;AACA;IAFE;MAAAzF,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAGiCwF,KAAY,IAAK;UAChD,IAAI,CAACC,aAAa,CAChB,IAAIC,WAAW,CACZ,IAAI,CAAChG,WAAW,CAAyBiG,mBAAmB,EAC7D;YACEC,OAAO,EAAE,IAAI;YACbC,UAAU,EAAE,KAAK;YACjBC,QAAQ,EAAE,IAAI;YACd7B,MAAM,EAAE;cACNuB;YACF;UACF,CACF,CACF,CAAC;QACH,CAAC;MAAA;IAAA;MAAA1F,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAED;AACF;AACA;AACA;AACA;MACE,SAAAuF,uBAAA,EAAiC;QAC/B,IAAI,CAACQ,kBAAkB,CAAC,CAAC;QACzB,MAAM;UAAE5C,iBAAiB,EAAEC;QAAiB,CAAC,GAAG,IAAI;QACpD;QACA;QACA,IAAIA,gBAAgB,IAAIA,gBAAgB,CAACP,KAAK,EAAE;UAC9C,IAAI,CAACmD,QAAQ,GAAG/H,SAAS,CACvBmF,gBAAgB,EAChB,IAAI,CAACN,kBACP,CAAC;QACH;QACA,OAAO,IAAI,CAACkD,QAAQ;MACtB;;MAEA;AACF;AACA;IAFE;MAAAlG,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAA+F,mBAAA,EAA6B;QAC3B,IAAI,IAAI,CAACC,QAAQ,EAAE;UACjB,IAAI,CAACA,QAAQ,CAACC,OAAO,CAAC,CAAC;UACvB,IAAI,CAACD,QAAQ,GAAG,IAAI;QACtB;QACA,OAAO,IAAI,CAACA,QAAQ;MACtB;;MAEA;AACF;AACA;IAFE;MAAAlG,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAGqC,IAAI;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKxCnC,QAAQ,CAAC;QAAEoI,SAAS,EAAE;MAAc,CAAC,CAAC;MAAAnG,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAMtCnC,QAAQ,CAAC;QAAEqI,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAtG,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKfnC,QAAQ,CAAC;QAAEoI,SAAS,EAAE;MAAM,CAAC,CAAC;MAAAnG,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAM9BnC,QAAQ,CAAC;QAAEoI,SAAS,EAAE;MAAgB,CAAC,CAAC;MAAAnG,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAMxCnC,QAAQ,CAAC,CAAC;MAAAiC,GAAA;MAAAC,MAAA;QAAA,OACJ,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKRnC,QAAQ,CAAC;QAAEqI,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAtG,GAAA;MAAAC,MAAA;QAAA,OACpC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKXnC,QAAQ,CAAC,CAAC;MAAAiC,GAAA;MAAAC,KAAA;MAvCX;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MACE,SAAAA,MAAA,EACY;QACV,OAAO,IAAI,CAACkE,MAAM;MACpB;IAAC;MAAApE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAA,MAAUA,MAAa,EAAE;QACvB,MAAM;UAAEkE,MAAM,EAAEoC;QAAS,CAAC,GAAG,IAAI;QACjC,IAAI,CAACpC,MAAM,GAAGlE,MAAK;QACnB,IAAI,CAACuG,aAAa,CAAC,OAAO,EAAED,QAAQ,CAAC;MACvC;IAAC;MAAAxG,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAwG,kBAAA,EAAoB;QAClBC,IAAA,CAAAC,eAAA,CA9REpH,YAAY,CAAAqH,SAAA,8BAAAC,IAAA;QA+Rd,IAAI,CAACrB,sBAAsB,CAAC,CAAC;MAC/B;IAAC;MAAAzF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA6G,qBAAA,EAAuB;QACrB,IAAI,CAACd,kBAAkB,CAAC,CAAC;QACzBU,IAAA,CAAAC,eAAA,CApSEpH,YAAY,CAAAqH,SAAA,iCAAAC,IAAA;MAqShB;IAAC;MAAA9G,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA8G,QAAQC,iBAAiB,EAAE;QACzB,MAAM;UAAEf,QAAQ;UAAEtB,QAAQ;UAAEsC;QAAK,CAAC,GAAG,IAAI;QACzC,MAAM;UAAE7G,iBAAiB;UAAEC;QAAgB,CAAC,GAAG,IAAI,CAChDV,WAAkC;QACrC,MAAM8C,SAAS,GAAG,IAAI,CAACnC,aAAa,CAClCF,iBACF,CAAsB;QACtB,MAAMsC,OAAO,GAAG,IAAI,CAACpC,aAAa,CAACD,eAAe,CAAsB;QACxE,IAAI4F,QAAQ,IAAIe,iBAAiB,CAACE,GAAG,CAAC,YAAY,CAAC,EAAE;UACnD,MAAM;YAAEpD;UAAW,CAAC,GAAG,IAAI;UAC3BmC,QAAQ,CAACkB,GAAG,CAAC;YAAErD;UAAW,CAAC,CAAC;QAC9B;QACA,IAAIkD,iBAAiB,CAACE,GAAG,CAAC,cAAc,CAAC,EAAE;UACzC,MAAM;YAAE/D;UAAa,CAAC,GAAG,IAAI;UAC7B,MAAMiE,KAAK,GAAGjE,YAAY,CACvBS,KAAK,CAAC,GAAG,CAAC,CACVS,GAAG,CAAEgD,IAAI,IAAM,CAACA,IAAI,GAAG3D,SAAS,GAAGlF,kBAAkB,CAAC6I,IAAI,CAAE,CAAC,CAAC,CAAC;UAClE,IAAID,KAAK,CAACE,IAAI,CAAED,IAAI,IAAKhB,OAAO,CAACgB,IAAI,IAAIE,KAAK,CAACC,MAAM,CAACH,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9D;YACA,MAAM,IAAII,KAAK,CACZ,yDAAwDtE,YAAa,EACxE,CAAC;UACH;UACA,MAAM,CAACM,OAAO,EAAEE,OAAO,CAAC,GAAGyD,KAAK;UAChC,IAAI3D,OAAO,IAAIE,OAAO,IAAIF,OAAO,GAAGE,OAAO,EAAE;YAC3C,MAAM,IAAI8D,KAAK,CACZ,kGAAiGtE,YAAa,EACjH,CAAC;UACH;UACA,IAAI8C,QAAQ,EAAE;YACZA,QAAQ,CAACkB,GAAG,CAAC;cAAE1D,OAAO;cAAEE;YAAQ,CAAC,CAAC;UACpC;QACF;QACA,IAAIqD,iBAAiB,CAACE,GAAG,CAAC,MAAM,CAAC,IAAIjB,QAAQ,EAAE;UAC7C,IAAIgB,IAAI,EAAE;YACRhB,QAAQ,CAACgB,IAAI,CAAC,CAAC;UACjB,CAAC,MAAM;YACLhB,QAAQ,CAACyB,KAAK,CAAC,CAAC;UAClB;QACF;QACA,IAAIV,iBAAiB,CAACE,GAAG,CAAC,UAAU,CAAC,EAAE;UACrC,CAACzE,SAAS,EAAEC,OAAO,CAAC,CAACiF,OAAO,CAAE7E,KAAK,IAAK;YACtC,IAAIA,KAAK,EAAE;cACTA,KAAK,CAAC6B,QAAQ,GAAGA,QAAQ;YAC3B;UACF,CAAC,CAAC;QACJ;QACA,IAAIqC,iBAAiB,CAACE,GAAG,CAAC,OAAO,CAAC,EAAE;UAClC,MAAM;YAAEjH;UAAM,CAAC,GAAG,IAAI;UACtB,MAAMmH,KAAK,GAAGnH,KAAK,CAChB2D,KAAK,CAAC,GAAG,CAAC,CACVgE,MAAM,CAACvB,OAAO,CAAC,CACfhC,GAAG,CAAEgD,IAAI,IAAK7I,kBAAkB,CAAC6I,IAAI,CAAC,CAAC;UAC1C,IAAID,KAAK,CAACE,IAAI,CAAED,IAAI,IAAKE,KAAK,CAACC,MAAM,CAACH,IAAI,CAAC,CAAC,CAAC,EAAE;YAC7C,MAAM,IAAII,KAAK,CACZ,kDAAiDxH,KAAM,EAC1D,CAAC;UACH;UACA,MAAM,CAAC4H,SAAS,EAAEC,OAAO,CAAC,GAAGV,KAAK;UAClC,IAAIS,SAAS,IAAIC,OAAO,IAAID,SAAS,GAAGC,OAAO,EAAE;YAC/C,MAAM,IAAIL,KAAK,CACZ,2FAA0FxH,KAAM,EACnG,CAAC;UACH;UACA,IAAIgG,QAAQ,EAAE;YACZA,QAAQ,CAAC8B,OAAO,CAACX,KAAK,CAAC;YACvB,CAAC3E,SAAS,EAAEC,OAAO,CAAC,CAACiF,OAAO,CAAC,CAAC7E,KAAK,EAAEkF,CAAC,KAAK;cACzC,IAAIlF,KAAK,EAAE;gBACTA,KAAK,CAAC7C,KAAK,GAAG,CAACmH,KAAK,CAACY,CAAC,CAAC,GACnB,EAAE,GACF/B,QAAQ,CAACgC,UAAU,CACjB,IAAIC,IAAI,CAACd,KAAK,CAACY,CAAC,CAAC,CAAC,EAClB/B,QAAQ,CAACkC,MAAM,CAACrE,UAClB,CAAC;cACP;YACF,CAAC,CAAC;UACJ;QACF;MACF;IAAC;MAAA/D,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAmI,OAAA,EAAS;QACP,MAAM;UAAEtD,iBAAiB,EAAEuD;QAAiB,CAAC,GAAG,IAAI;QACpD,OAAOvK,IAAI,CAAAwK,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB;AACA,iBAAe,CAAS;AACxB;AACA;AACA,2BAAyB,CAAmB;AAC5C;AACA;AACA,iBAAe,CAAS;AACxB;AACA;AACA,KAAI,GATalJ,MAAM,EAGIgJ,gBAAgB,EAG1BhJ,MAAM;MAIrB;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAIE,0BAA0B;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKqB,kBAAkB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKnB,YAAY;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKnB,kBAAkB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKf,qBAAqB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKzB,iBAAiB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKd,oBAAoB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKxB,gBAAgB;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKV,WAAW;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKlB,OAAO;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA;MA3C7C;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MACE,SAAAU,uBAAA,EAAoC;QAClC,OAAQ,GAAEtB,MAAO,yBAAwB;MAC3C;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAW,WAAA,EAAwB;QACtB,OAAQ,GAAEvB,MAAO,sBAAqB;MACxC;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAY,cAAA,EAA2B;QACzB,OAAQ,GAAExB,MAAO,yBAAwB;MAC3C;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAa,UAAA,EAAuB;QACrB,OAAQ,GAAEzB,MAAO,qBAAoB;MACvC;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAc,aAAA,EAA0B;QACxB,OAAQ,GAAE1B,MAAO,wBAAuB;MAC1C;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAe,SAAA,EAAsB;QACpB,OAAQ,GAAE3B,MAAO,oBAAmB;MACtC;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAGuB,WAAW;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKP,OAAO;MAAA;IAAA;MAAAF,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAKX/B,SAAS,CAACuK,KAAK,CAACC,OAAO;MAAA;IAAA;MAAA3I,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA;MAR9C;AACF;AACA;MAGE;AACF;AACA;MAGE;AACF;AACA;MACE,SAAAG,kBAAA,EAA+B;QAC7B,OAAQ,GAAEf,MAAO,qCAAoCA,MAAO,iCAAgC;MAC9F;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAAI,gBAAA,EAA6B;QAC3B,OAAQ,GAAEhB,MAAO,+BAA8B;MACjD;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAA2F,oBAAA,EAAiC;QAC/B,OAAQ,GAAEvG,MAAO,8BAA6B;MAChD;;MAEA;AACF;AACA;IAFE;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,KAAA,EAGA,SAAA0I,YAAA,EAAyB;QACvB,OAAQ,GAAEtJ,MAAO,sBAAqB;MACxC;IAAC;MAAAU,IAAA;MAAAyI,MAAA;MAAAxI,GAAA;MAAAC,MAAA;QAAA,OAEef,MAAM;MAAA;IAAA;EAAA;AAAA,GA/gBGb,iBAAiB,CAACD,SAAS,CAACH,UAAU,CAAC,CAAC;AAkhBnE,eAAesB,YAAY"}
@@ -114,7 +114,12 @@ let BXDropdownItem = _decorate([customElement(`${prefix}-dropdown-item`)], funct
114
114
  const {
115
115
  selected
116
116
  } = this;
117
- return html(_t || (_t = _` <div class="${0}--list-box__menu-item__option"> <slot></slot> ${0} </div> `), prefix, !selected ? undefined : Checkmark16({
117
+ return html(_t || (_t = _`
118
+ <div class="${0}--list-box__menu-item__option">
119
+ <slot></slot>
120
+ ${0}
121
+ </div>
122
+ `), prefix, !selected ? undefined : Checkmark16({
118
123
  part: 'selected-icon',
119
124
  class: `${prefix}--list-box__menu-item__selected-icon`
120
125
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-item.js","names":["settings","html","property","LitElement","Checkmark16","DROPDOWN_SIZE","styles","carbonElement","customElement","prefix","BXDropdownItem","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","type","Boolean","reflect","key","value","REGULAR","render","selected","_t","_","undefined","part","class","static"],"sources":["components/dropdown/dropdown-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, property, LitElement } from 'lit-element';\nimport Checkmark16 from '@carbon/icons/lib/checkmark/16';\nimport { DROPDOWN_SIZE } from './dropdown';\nimport styles from './dropdown.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Dropdown item.\n *\n * @element bx-dropdown-item\n * @csspart selected-icon The selected icon.\n */\n@customElement(`${prefix}-dropdown-item`)\nclass BXDropdownItem extends LitElement {\n /**\n * `true` if this dropdown item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this dropdown item should be highlighted.\n * If `true`, parent `<dropdown>` selects/deselects this dropdown item upon keyboard interaction.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n highlighted = false;\n\n /**\n * `true` if this dropdown item should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.REGULAR;\n\n /**\n * The `value` attribute that is set to the parent `<bx-dropdown>` when this dropdown item is selected.\n */\n @property()\n value = '';\n\n render() {\n const { selected } = this;\n return html`\n <div class=\"${prefix}--list-box__menu-item__option\">\n <slot></slot>\n ${!selected\n ? undefined\n : Checkmark16({\n part: 'selected-icon',\n class: `${prefix}--list-box__menu-item__selected-icon`,\n })}\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXDropdownItem;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,OAAOC,WAAW,MAAM,0BAAgC;AACxD,SAASC,aAAa,QAAQ,YAAY;AAC1C,OAAOC,MAAM,MAAM,qBAAiB;AACpC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGT,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AALA,IAOMU,cAAc,GAAAC,SAAA,EADnBH,aAAa,CAAE,GAAEC,MAAO,gBAAe,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAzC,MACMH,cAAc,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAoDxC;EAAC;IAAAI,CAAA,EApDKN,cAAc;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIjBjB,QAAQ,CAAC;QAAEkB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAQfjB,QAAQ,CAAC;QAAEkB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAC7B,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAOlBjB,QAAQ,CAAC;QAAEkB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAKfjB,QAAQ,CAAC;QAAEoB,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACrBnB,aAAa,CAACoB,OAAO;MAAA;IAAA;MAAAP,IAAA;MAAAC,UAAA,GAK3BjB,QAAQ,CAAC,CAAC;MAAAqB,GAAA;MAAAC,MAAA;QAAA,OACH,EAAE;MAAA;IAAA;MAAAN,IAAA;MAAAK,GAAA;MAAAC,KAAA;MAjCV;AACF;AACA;;MAIE;AACF;AACA;AACA;AACA;AACA;;MAIE;AACF;AACA;AACA;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAE,OAAA,EAAS;QACP,MAAM;UAAEC;QAAS,CAAC,GAAG,IAAI;QACzB,OAAO1B,IAAI,CAAA2B,EAAA,KAAAA,EAAA,GAAAC,CAAA,gFACKpB,MAAM,EAEhB,CAACkB,QAAQ,GACPG,SAAS,GACT1B,WAAW,CAAC;UACV2B,IAAI,EAAE,eAAe;UACrBC,KAAK,EAAG,GAAEvB,MAAO;QACnB,CAAC,CAAC;MAGZ;IAAC;MAAAS,IAAA;MAAAe,MAAA;MAAAV,GAAA;MAAAC,MAAA;QAAA,OAEelB,MAAM;MAAA;IAAA;EAAA;AAAA,GAnDKH,UAAU;AAsDvC,eAAeO,cAAc"}
1
+ {"version":3,"file":"dropdown-item.js","names":["settings","html","property","LitElement","Checkmark16","DROPDOWN_SIZE","styles","carbonElement","customElement","prefix","BXDropdownItem","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","type","Boolean","reflect","key","value","REGULAR","render","selected","_t","_","undefined","part","class","static"],"sources":["components/dropdown/dropdown-item.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, property, LitElement } from 'lit-element';\nimport Checkmark16 from '@carbon/icons/lib/checkmark/16';\nimport { DROPDOWN_SIZE } from './dropdown';\nimport styles from './dropdown.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Dropdown item.\n *\n * @element bx-dropdown-item\n * @csspart selected-icon The selected icon.\n */\n@customElement(`${prefix}-dropdown-item`)\nclass BXDropdownItem extends LitElement {\n /**\n * `true` if this dropdown item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if this dropdown item should be highlighted.\n * If `true`, parent `<dropdown>` selects/deselects this dropdown item upon keyboard interaction.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n highlighted = false;\n\n /**\n * `true` if this dropdown item should be selected.\n *\n * @private\n */\n @property({ type: Boolean, reflect: true })\n selected = false;\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.REGULAR;\n\n /**\n * The `value` attribute that is set to the parent `<bx-dropdown>` when this dropdown item is selected.\n */\n @property()\n value = '';\n\n render() {\n const { selected } = this;\n return html`\n <div class=\"${prefix}--list-box__menu-item__option\">\n <slot></slot>\n ${!selected\n ? undefined\n : Checkmark16({\n part: 'selected-icon',\n class: `${prefix}--list-box__menu-item__selected-icon`,\n })}\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXDropdownItem;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,OAAOC,WAAW,MAAM,0BAAgC;AACxD,SAASC,aAAa,QAAQ,YAAY;AAC1C,OAAOC,MAAM,MAAM,qBAAiB;AACpC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGT,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AALA,IAOMU,cAAc,GAAAC,SAAA,EADnBH,aAAa,CAAE,GAAEC,MAAO,gBAAe,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAzC,MACMH,cAAc,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAoDxC;EAAC;IAAAI,CAAA,EApDKN,cAAc;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIjBjB,QAAQ,CAAC;QAAEkB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAQfjB,QAAQ,CAAC;QAAEkB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAC7B,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAOlBjB,QAAQ,CAAC;QAAEkB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAN,IAAA;MAAAC,UAAA,GAKfjB,QAAQ,CAAC;QAAEoB,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACrBnB,aAAa,CAACoB,OAAO;MAAA;IAAA;MAAAP,IAAA;MAAAC,UAAA,GAK3BjB,QAAQ,CAAC,CAAC;MAAAqB,GAAA;MAAAC,MAAA;QAAA,OACH,EAAE;MAAA;IAAA;MAAAN,IAAA;MAAAK,GAAA;MAAAC,KAAA;MAjCV;AACF;AACA;;MAIE;AACF;AACA;AACA;AACA;AACA;;MAIE;AACF;AACA;AACA;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAE,OAAA,EAAS;QACP,MAAM;UAAEC;QAAS,CAAC,GAAG,IAAI;QACzB,OAAO1B,IAAI,CAAA2B,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB,oBAAkB,CAAS;AAC3B;AACA,UAAQ,CAKO;AACf;AACA,KAAI,GATgBpB,MAAM,EAEhB,CAACkB,QAAQ,GACPG,SAAS,GACT1B,WAAW,CAAC;UACV2B,IAAI,EAAE,eAAe;UACrBC,KAAK,EAAG,GAAEvB,MAAO;QACnB,CAAC,CAAC;MAGZ;IAAC;MAAAS,IAAA;MAAAe,MAAA;MAAAV,GAAA;MAAAC,MAAA;QAAA,OAEelB,MAAM;MAAA;IAAA;EAAA;AAAA,GAnDKH,UAAU;AAsDvC,eAAeO,cAAc"}
@@ -34,7 +34,14 @@ let BXDropdownSkeleton = _decorate([customElement(`${prefix}-dropdown-skeleton`)
34
34
  kind: "method",
35
35
  key: "render",
36
36
  value: function render() {
37
- return html(_t || (_t = _` <div class="${0}--skeleton ${0}--dropdown-v2 ${0}--list-box ${0}--form-item"> <div class="${0}--list-box__field"> <span class="${0}--list-box__label"></span> </div> </div> `), prefix, prefix, prefix, prefix, prefix, prefix);
37
+ return html(_t || (_t = _`
38
+ <div
39
+ class="${0}--skeleton ${0}--dropdown-v2 ${0}--list-box ${0}--form-item">
40
+ <div class="${0}--list-box__field">
41
+ <span class="${0}--list-box__label"></span>
42
+ </div>
43
+ </div>
44
+ `), prefix, prefix, prefix, prefix, prefix, prefix);
38
45
  }
39
46
  }, {
40
47
  kind: "field",
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-skeleton.js","names":["html","LitElement","settings","styles","carbonElement","customElement","prefix","BXDropdownSkeleton","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","render","_t","_","static"],"sources":["components/dropdown/dropdown-skeleton.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport styles from './dropdown.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Skeleton version of dropdown.\n */\n@customElement(`${prefix}-dropdown-skeleton`)\nclass BXDropdownSkeleton extends LitElement {\n render() {\n return html`\n <div\n class=\"${prefix}--skeleton ${prefix}--dropdown-v2 ${prefix}--list-box ${prefix}--form-item\">\n <div class=\"${prefix}--list-box__field\">\n <span class=\"${prefix}--list-box__label\"></span>\n </div>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXDropdownSkeleton;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,UAAU,QAAQ,aAAa;AAC9C,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,MAAM,MAAM,qBAAiB;AACpC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AAFA,IAIMK,kBAAkB,GAAAC,SAAA,EADvBH,aAAa,CAAE,GAAEC,MAAO,oBAAmB,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAA7C,MACMH,kBAAkB,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAa5C;EAAC;IAAAI,CAAA,EAbKN,kBAAkB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EACtB,SAAAC,OAAA,EAAS;QACP,OAAOlB,IAAI,CAAAmB,EAAA,KAAAA,EAAA,GAAAC,CAAA,kLAEEd,MAAM,EAAcA,MAAM,EAAiBA,MAAM,EAAcA,MAAM,EAChEA,MAAM,EACHA,MAAM;MAI7B;IAAC;MAAAS,IAAA;MAAAM,MAAA;MAAAL,GAAA;MAAAC,MAAA;QAAA,OAEed,MAAM;MAAA;IAAA;EAAA;AAAA,GAZSF,UAAU;AAe3C,eAAeM,kBAAkB"}
1
+ {"version":3,"file":"dropdown-skeleton.js","names":["html","LitElement","settings","styles","carbonElement","customElement","prefix","BXDropdownSkeleton","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","key","value","render","_t","_","static"],"sources":["components/dropdown/dropdown-skeleton.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport styles from './dropdown.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Skeleton version of dropdown.\n */\n@customElement(`${prefix}-dropdown-skeleton`)\nclass BXDropdownSkeleton extends LitElement {\n render() {\n return html`\n <div\n class=\"${prefix}--skeleton ${prefix}--dropdown-v2 ${prefix}--list-box ${prefix}--form-item\">\n <div class=\"${prefix}--list-box__field\">\n <span class=\"${prefix}--list-box__label\"></span>\n </div>\n </div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXDropdownSkeleton;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,UAAU,QAAQ,aAAa;AAC9C,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,MAAM,MAAM,qBAAiB;AACpC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AAFA,IAIMK,kBAAkB,GAAAC,SAAA,EADvBH,aAAa,CAAE,GAAEC,MAAO,oBAAmB,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAA7C,MACMH,kBAAkB,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAa5C;EAAC;IAAAI,CAAA,EAbKN,kBAAkB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EACtB,SAAAC,OAAA,EAAS;QACP,OAAOlB,IAAI,CAAAmB,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB;AACA,iBAAe,CAAS,cAAW,CAAS,iBAAc,CAAS,cAAW,CAAS;AACvF,sBAAoB,CAAS;AAC7B,yBAAuB,CAAS;AAChC;AACA;AACA,KAAI,GALad,MAAM,EAAcA,MAAM,EAAiBA,MAAM,EAAcA,MAAM,EAChEA,MAAM,EACHA,MAAM;MAI7B;IAAC;MAAAS,IAAA;MAAAM,MAAA;MAAAL,GAAA;MAAAC,MAAA;QAAA,OAEed,MAAM;MAAA;IAAA;EAAA;AAAA,GAZSF,UAAU;AAe3C,eAAeM,kBAAkB"}
@@ -426,7 +426,11 @@ let BXDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_ini
426
426
  triggerContent,
427
427
  _selectedItemContent: selectedItemContent
428
428
  } = this;
429
- return html(_t || (_t = _` <span id="trigger-label" class="${0}--list-box__label">${0}</span> `), prefix, selectedItemContent || triggerContent);
429
+ return html(_t || (_t = _`
430
+ <span id="trigger-label" class="${0}--list-box__label"
431
+ >${0}</span
432
+ >
433
+ `), prefix, selectedItemContent || triggerContent);
430
434
  }
431
435
 
432
436
  /* eslint-disable class-methods-use-this */
@@ -803,13 +807,77 @@ let BXDropdown = _decorate([customElement(`${prefix}-dropdown`)], function (_ini
803
807
  const toggleLabel = (open ? toggleLabelOpen : toggleLabelClosed) || undefined;
804
808
  const hasHelperText = helperText || slotHelperTextNode && slotHelperTextNode.assignedNodes().length > 0;
805
809
  const hasLabelText = labelText || slotLabelTextNode && slotLabelTextNode.assignedNodes().length > 0;
806
- const helper = !invalid ? html(_t2 || (_t2 = _` <div part="helper-text" class="${0}" ?hidden="${0}"> <slot name="helper-text" @slotchange="${0}">${0}</slot> </div> `), helperClasses, inline || !hasHelperText, handleSlotchangeHelperText, helperText) : html(_t3 || (_t3 = _` <div part="validity-message" class="${0}"> <slot name="validity-message">${0}</slot> </div> `), `${prefix}--form-requirement`, validityMessage);
810
+ const helper = !invalid ? html(_t2 || (_t2 = _`
811
+ <div
812
+ part="helper-text"
813
+ class="${0}"
814
+ ?hidden="${0}">
815
+ <slot name="helper-text" @slotchange="${0}"
816
+ >${0}</slot
817
+ >
818
+ </div>
819
+ `), helperClasses, inline || !hasHelperText, handleSlotchangeHelperText, helperText) : html(_t3 || (_t3 = _`
820
+ <div part="validity-message" class=${0}>
821
+ <slot name="validity-message">${0}</slot>
822
+ </div>
823
+ `), `${prefix}--form-requirement`, validityMessage);
807
824
  const validityIcon = !invalid ? undefined : WarningFilled16({
808
825
  class: `${prefix}--list-box__invalid-icon`,
809
826
  'aria-label': toggleLabel
810
827
  });
811
- const menuBody = !open ? undefined : html(_t4 || (_t4 = _` <div id="menu-body" part="menu-body" class="${0}--list-box__menu" role="listbox" tabindex="-1"> <slot></slot> </div> `), prefix);
812
- return html(_t5 || (_t5 = _` <label part="label-text" class="${0}" ?hidden="${0}"> <slot name="label-text" @slotchange="${0}">${0}</slot> </label> <div role="listbox" class="${0}" ?data-invalid="${0}" @click="${0}" @keydown="${0}" @keypress="${0}"> ${0} <div part="trigger-button" role="${0}" class="${0}--list-box__field" tabindex="${0}" aria-labelledby="trigger-label" aria-expanded="${0}" aria-haspopup="listbox" aria-owns="menu-body" aria-controls="menu-body"> ${0}${0}${0} <div class="${0}"> ${0} </div> </div> ${0} </div> ${0} <div class="${0}--assistive-text" role="status" aria-live="assertive" aria-relevant="additions text"> ${0} </div> `), labelClasses, !hasLabelText, handleSlotchangeLabelText, labelText, classes, invalid, handleClickInner, handleKeydownInner, handleKeypressInner, validityIcon, ifDefined(!shouldTriggerBeFocusable ? undefined : 'button'), prefix, ifDefined(!shouldTriggerBeFocusable ? undefined : '0'), String(open), this._renderPrecedingTriggerContent(), this._renderTriggerContent(), this._renderFollowingTriggerContent(), iconContainerClasses, ChevronDown16({
828
+ const menuBody = !open ? undefined : html(_t4 || (_t4 = _`
829
+ <div
830
+ id="menu-body"
831
+ part="menu-body"
832
+ class="${0}--list-box__menu"
833
+ role="listbox"
834
+ tabindex="-1">
835
+ <slot></slot>
836
+ </div>
837
+ `), prefix);
838
+ return html(_t5 || (_t5 = _`
839
+ <label
840
+ part="label-text"
841
+ class="${0}"
842
+ ?hidden="${0}">
843
+ <slot name="label-text" @slotchange="${0}"
844
+ >${0}</slot
845
+ >
846
+ </label>
847
+ <div
848
+ role="listbox"
849
+ class="${0}"
850
+ ?data-invalid=${0}
851
+ @click=${0}
852
+ @keydown=${0}
853
+ @keypress=${0}>
854
+ ${0}
855
+ <div
856
+ part="trigger-button"
857
+ role="${0}"
858
+ class="${0}--list-box__field"
859
+ tabindex="${0}"
860
+ aria-labelledby="trigger-label"
861
+ aria-expanded="${0}"
862
+ aria-haspopup="listbox"
863
+ aria-owns="menu-body"
864
+ aria-controls="menu-body">
865
+ ${0}${0}${0}
866
+ <div class="${0}">
867
+ ${0}
868
+ </div>
869
+ </div>
870
+ ${0}
871
+ </div>
872
+ ${0}
873
+ <div
874
+ class="${0}--assistive-text"
875
+ role="status"
876
+ aria-live="assertive"
877
+ aria-relevant="additions text">
878
+ ${0}
879
+ </div>
880
+ `), labelClasses, !hasLabelText, handleSlotchangeLabelText, labelText, classes, invalid, handleClickInner, handleKeydownInner, handleKeypressInner, validityIcon, ifDefined(!shouldTriggerBeFocusable ? undefined : 'button'), prefix, ifDefined(!shouldTriggerBeFocusable ? undefined : '0'), String(open), this._renderPrecedingTriggerContent(), this._renderTriggerContent(), this._renderFollowingTriggerContent(), iconContainerClasses, ChevronDown16({
813
881
  'aria-label': toggleLabel
814
882
  }), menuBody, helper, prefix, assistiveStatusText);
815
883
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","names":["settings","classMap","ifDefined","html","property","query","LitElement","ChevronDown16","WarningFilled16","FocusMixin","FormMixin","HostListenerMixin","ValidityMixin","HostListener","find","forEach","indexOf","DROPDOWN_COLOR_SCHEME","DROPDOWN_KEYBOARD_ACTION","DROPDOWN_SIZE","DROPDOWN_TYPE","NAVIGATION_DIRECTION","styles","carbonElement","customElement","prefix","BXDropdown","_decorate","_initialize","_ValidityMixin","constructor","args","F","d","kind","key","value","decorators","_selectionShouldChange","itemToSelect","_selectionDidChange","querySelectorAll","selectorItemSelected","item","selected","_assistiveStatusText","selectedItemAssistiveText","_handleUserInitiatedToggle","_handleClickInner","event","shadowRoot","contains","target","closest","selectorItem","_handleUserInitiatedSelectItem","_handleKeydownInner","action","getAction","open","NAVIGATING","_clearHighlight","CLOSING","_navigate","_handleKeypressInner","TRIGGERING","highlightedItem","querySelector","selectorItemHighlighted","_handleFocusOut","relatedTarget","_handleSlotchangeHelperText","requestUpdate","_handleSlotchangeLabelText","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","afterSelectEvent","eventSelect","force","eventBeforeToggle","eventToggle","disabled","selectingItemsAssistiveText","triggerContent","assistiveStatusText","_selectedItemContent","selectedItemContent","selectedItemText","textContent","highlighted","direction","items","highlightedIndex","nextIndex","length","i","nextItem","scrollIntoView","block","nextItemText","_renderPrecedingTriggerContent","undefined","_renderTriggerContent","_t","_","_renderFollowingTriggerContent","_handleFormdata","formData","name","append","attribute","reflect","REGULAR","type","Boolean","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","shouldUpdate","changedProperties","has","elem","size","range","ownerDocument","createRange","selectNodeContents","cloneContents","updated","helperText","inline","INLINE","console","warn","render","colorScheme","invalid","labelText","toggleLabelClosed","toggleLabelOpen","validityMessage","_shouldTriggerBeFocusable","shouldTriggerBeFocusable","handleClickInner","handleKeydownInner","handleKeypressInner","handleSlotchangeHelperText","handleSlotchangeLabelText","_slotHelperTextNode","slotHelperTextNode","_slotLabelTextNode","slotLabelTextNode","selectedItemsCount","classes","labelClasses","helperClasses","iconContainerClasses","toggleLabel","hasHelperText","assignedNodes","hasLabelText","helper","_t2","_t3","validityIcon","class","menuBody","_t4","_t5","String","static","Set","TRIGGER_KEYS","NONE"],"sources":["components/dropdown/dropdown.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, property, query, LitElement } from 'lit-element';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport WarningFilled16 from '@carbon/icons/lib/warning--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_COLOR_SCHEME,\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n} from './defs';\nimport BXDropdownItem from './dropdown-item';\nimport styles from './dropdown.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_COLOR_SCHEME,\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n};\n\nconst { prefix } = settings;\n\n/**\n * Dropdown.\n *\n * @element bx-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 bx-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 bx-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 bx-dropdown-selected - The custom event fired after a dropdown item is selected upon a user gesture.\n * @fires bx-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 BXDropdown extends ValidityMixin(\n HostListenerMixin(FormMixin(FocusMixin(LitElement)))\n) {\n /**\n * The latest status of this dropdown, for screen reader to accounce.\n */\n protected _assistiveStatusText?: 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 label text in the shadow DOM.\n */\n @query('slot[name=\"label-text\"]')\n protected _slotLabelTextNode!: 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?: BXDropdownItem) {\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?: BXDropdownItem) {\n if (itemToSelect) {\n this.value = itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemSelected\n ),\n (item) => {\n (item as BXDropdownItem).selected = false;\n }\n );\n itemToSelect.selected = true;\n this._assistiveStatusText = this.selectedItemAssistiveText;\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.shadowRoot!.contains(event.target as Node)) {\n this._handleUserInitiatedToggle();\n } else {\n const item = (event.target as Element).closest(\n (this.constructor as typeof BXDropdown).selectorItem\n ) as BXDropdownItem;\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 BXDropdown).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 BXDropdown).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 BXDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as BXDropdownItem;\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 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?: BXDropdownItem) {\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 BXDropdown;\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: boolean = !this.open) {\n const { eventBeforeToggle, eventToggle } = this\n .constructor as typeof BXDropdown;\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 this._assistiveStatusText = this.selectingItemsAssistiveText;\n } else {\n const {\n selectedItemAssistiveText,\n triggerContent,\n _assistiveStatusText: assistiveStatusText,\n _selectedItemContent: selectedItemContent,\n } = this;\n const selectedItemText =\n (selectedItemContent && selectedItemContent.textContent) ||\n triggerContent;\n if (\n selectedItemText &&\n assistiveStatusText !== selectedItemAssistiveText\n ) {\n this._assistiveStatusText = selectedItemText;\n }\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemHighlighted\n ),\n (item) => {\n (item as BXDropdownItem).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 BXDropdown).selectorItem\n ),\n (item) => {\n (item as BXDropdownItem).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 BXDropdown;\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 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 BXDropdownItem).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 nextItemText = nextItem.textContent;\n if (nextItemText) {\n this._assistiveStatusText = nextItemText;\n }\n this.requestUpdate();\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * @returns The content preceding the trigger button.\n */\n protected _renderPrecedingTriggerContent(): 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 _renderTriggerContent(): TemplateResult {\n const { triggerContent, _selectedItemContent: selectedItemContent } = this;\n return html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || triggerContent}</span\n >\n `;\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * @returns The content following the trigger button.\n */\n protected _renderFollowingTriggerContent(): 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 * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = DROPDOWN_COLOR_SCHEME.REGULAR;\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 * `true` to show the UI of the invalid state.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\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 * `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 * An assistive text for screen reader to announce, telling the open state.\n */\n @property({ attribute: 'selecting-items-assistive-text' })\n selectingItemsAssistiveText =\n 'Selecting items. Use up and down arrow keys to navigate.';\n\n /**\n * An assistive text for screen reader to announce, telling that an item is selected.\n */\n @property({ attribute: 'selected-item-assistive-text' })\n selectedItemAssistiveText = 'Selected an item.';\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.REGULAR;\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 * The content of the trigger button.\n */\n @property({ attribute: 'trigger-content' })\n triggerContent = '';\n\n /**\n * `true` if this dropdown should use the inline UI variant.\n */\n @property({ reflect: true })\n type = DROPDOWN_TYPE.REGULAR;\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 createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof BXDropdown;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as BXDropdownItem).size = this.size;\n });\n }\n if (changedProperties.has('value')) {\n // `<bx-multi-select>` updates selection beforehand\n // because our rendering logic for `<bx-multi-select>` looks for selected items via `qSA()`\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as BXDropdownItem).selected =\n (elem as BXDropdownItem).value === this.value;\n });\n const item = find(\n this.querySelectorAll(selectorItem),\n (elem) => (elem as BXDropdownItem).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 updated(changedProperties) {\n const { helperText, type } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n const { selectorItem } = this.constructor as typeof BXDropdown;\n if (changedProperties.has('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 (elem as BXDropdownItem).disabled = disabled;\n });\n }\n if (\n (changedProperties.has('helperText') || changedProperties.has('type')) &&\n helperText &&\n inline\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Found `helperText` property/attribute usage in inline mode, that is not supported, at:',\n this\n );\n }\n }\n\n render() {\n const {\n colorScheme,\n disabled,\n helperText,\n invalid,\n labelText,\n open,\n toggleLabelClosed,\n toggleLabelOpen,\n size,\n type,\n validityMessage,\n _assistiveStatusText: assistiveStatusText,\n _shouldTriggerBeFocusable: shouldTriggerBeFocusable,\n _handleClickInner: handleClickInner,\n _handleKeydownInner: handleKeydownInner,\n _handleKeypressInner: handleKeypressInner,\n _handleSlotchangeHelperText: handleSlotchangeHelperText,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n _slotHelperTextNode: slotHelperTextNode,\n _slotLabelTextNode: slotLabelTextNode,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n const selectedItemsCount = this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemSelected\n ).length;\n const classes = classMap({\n [`${prefix}--dropdown`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--${colorScheme}`]: colorScheme,\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--inline`]: inline,\n [`${prefix}--dropdown--selected`]: selectedItemsCount > 0,\n });\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\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 (slotHelperTextNode && slotHelperTextNode.assignedNodes().length > 0);\n const hasLabelText =\n labelText ||\n (slotLabelTextNode && slotLabelTextNode.assignedNodes().length > 0);\n const helper = !invalid\n ? html`\n <div\n part=\"helper-text\"\n class=\"${helperClasses}\"\n ?hidden=\"${inline || !hasHelperText}\">\n <slot name=\"helper-text\" @slotchange=\"${handleSlotchangeHelperText}\"\n >${helperText}</slot\n >\n </div>\n `\n : html`\n <div part=\"validity-message\" class=${`${prefix}--form-requirement`}>\n <slot name=\"validity-message\">${validityMessage}</slot>\n </div>\n `;\n const validityIcon = !invalid\n ? undefined\n : WarningFilled16({\n class: `${prefix}--list-box__invalid-icon`,\n 'aria-label': toggleLabel,\n });\n const menuBody = !open\n ? undefined\n : html`\n <div\n id=\"menu-body\"\n part=\"menu-body\"\n class=\"${prefix}--list-box__menu\"\n role=\"listbox\"\n tabindex=\"-1\">\n <slot></slot>\n </div>\n `;\n return html`\n <label\n part=\"label-text\"\n class=\"${labelClasses}\"\n ?hidden=\"${!hasLabelText}\">\n <slot name=\"label-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${labelText}</slot\n >\n </label>\n <div\n role=\"listbox\"\n class=\"${classes}\"\n ?data-invalid=${invalid}\n @click=${handleClickInner}\n @keydown=${handleKeydownInner}\n @keypress=${handleKeypressInner}>\n ${validityIcon}\n <div\n part=\"trigger-button\"\n role=\"${ifDefined(!shouldTriggerBeFocusable ? undefined : 'button')}\"\n class=\"${prefix}--list-box__field\"\n tabindex=\"${ifDefined(!shouldTriggerBeFocusable ? undefined : '0')}\"\n aria-labelledby=\"trigger-label\"\n aria-expanded=\"${String(open)}\"\n aria-haspopup=\"listbox\"\n aria-owns=\"menu-body\"\n aria-controls=\"menu-body\">\n ${this._renderPrecedingTriggerContent()}${this._renderTriggerContent()}${this._renderFollowingTriggerContent()}\n <div class=\"${iconContainerClasses}\">\n ${ChevronDown16({ 'aria-label': toggleLabel })}\n </div>\n </div>\n ${menuBody}\n </div>\n ${helper}\n <div\n class=\"${prefix}--assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\">\n ${assistiveStatusText}\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 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 BXDropdown;\n"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown.js","names":["settings","classMap","ifDefined","html","property","query","LitElement","ChevronDown16","WarningFilled16","FocusMixin","FormMixin","HostListenerMixin","ValidityMixin","HostListener","find","forEach","indexOf","DROPDOWN_COLOR_SCHEME","DROPDOWN_KEYBOARD_ACTION","DROPDOWN_SIZE","DROPDOWN_TYPE","NAVIGATION_DIRECTION","styles","carbonElement","customElement","prefix","BXDropdown","_decorate","_initialize","_ValidityMixin","constructor","args","F","d","kind","key","value","decorators","_selectionShouldChange","itemToSelect","_selectionDidChange","querySelectorAll","selectorItemSelected","item","selected","_assistiveStatusText","selectedItemAssistiveText","_handleUserInitiatedToggle","_handleClickInner","event","shadowRoot","contains","target","closest","selectorItem","_handleUserInitiatedSelectItem","_handleKeydownInner","action","getAction","open","NAVIGATING","_clearHighlight","CLOSING","_navigate","_handleKeypressInner","TRIGGERING","highlightedItem","querySelector","selectorItemHighlighted","_handleFocusOut","relatedTarget","_handleSlotchangeHelperText","requestUpdate","_handleSlotchangeLabelText","init","bubbles","composed","detail","beforeSelectEvent","CustomEvent","eventBeforeSelect","_objectSpread","cancelable","dispatchEvent","afterSelectEvent","eventSelect","force","eventBeforeToggle","eventToggle","disabled","selectingItemsAssistiveText","triggerContent","assistiveStatusText","_selectedItemContent","selectedItemContent","selectedItemText","textContent","highlighted","direction","items","highlightedIndex","nextIndex","length","i","nextItem","scrollIntoView","block","nextItemText","_renderPrecedingTriggerContent","undefined","_renderTriggerContent","_t","_","_renderFollowingTriggerContent","_handleFormdata","formData","name","append","attribute","reflect","REGULAR","type","Boolean","createRenderRoot","_exec","attachShadow","mode","delegatesFocus","Number","exec","navigator","userAgent","shouldUpdate","changedProperties","has","elem","size","range","ownerDocument","createRange","selectNodeContents","cloneContents","updated","helperText","inline","INLINE","console","warn","render","colorScheme","invalid","labelText","toggleLabelClosed","toggleLabelOpen","validityMessage","_shouldTriggerBeFocusable","shouldTriggerBeFocusable","handleClickInner","handleKeydownInner","handleKeypressInner","handleSlotchangeHelperText","handleSlotchangeLabelText","_slotHelperTextNode","slotHelperTextNode","_slotLabelTextNode","slotLabelTextNode","selectedItemsCount","classes","labelClasses","helperClasses","iconContainerClasses","toggleLabel","hasHelperText","assignedNodes","hasLabelText","helper","_t2","_t3","validityIcon","class","menuBody","_t4","_t5","String","static","Set","TRIGGER_KEYS","NONE"],"sources":["components/dropdown/dropdown.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2019, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { classMap } from 'lit-html/directives/class-map';\nimport { TemplateResult } from 'lit-html';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, property, query, LitElement } from 'lit-element';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport WarningFilled16 from '@carbon/icons/lib/warning--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_COLOR_SCHEME,\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n} from './defs';\nimport BXDropdownItem from './dropdown-item';\nimport styles from './dropdown.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_COLOR_SCHEME,\n DROPDOWN_KEYBOARD_ACTION,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n NAVIGATION_DIRECTION,\n};\n\nconst { prefix } = settings;\n\n/**\n * Dropdown.\n *\n * @element bx-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 bx-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 bx-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 bx-dropdown-selected - The custom event fired after a dropdown item is selected upon a user gesture.\n * @fires bx-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 BXDropdown extends ValidityMixin(\n HostListenerMixin(FormMixin(FocusMixin(LitElement)))\n) {\n /**\n * The latest status of this dropdown, for screen reader to accounce.\n */\n protected _assistiveStatusText?: 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 label text in the shadow DOM.\n */\n @query('slot[name=\"label-text\"]')\n protected _slotLabelTextNode!: 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?: BXDropdownItem) {\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?: BXDropdownItem) {\n if (itemToSelect) {\n this.value = itemToSelect.value;\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemSelected\n ),\n (item) => {\n (item as BXDropdownItem).selected = false;\n }\n );\n itemToSelect.selected = true;\n this._assistiveStatusText = this.selectedItemAssistiveText;\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.shadowRoot!.contains(event.target as Node)) {\n this._handleUserInitiatedToggle();\n } else {\n const item = (event.target as Element).closest(\n (this.constructor as typeof BXDropdown).selectorItem\n ) as BXDropdownItem;\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 BXDropdown).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 BXDropdown).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 BXDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as BXDropdownItem;\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 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?: BXDropdownItem) {\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 BXDropdown;\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: boolean = !this.open) {\n const { eventBeforeToggle, eventToggle } = this\n .constructor as typeof BXDropdown;\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 this._assistiveStatusText = this.selectingItemsAssistiveText;\n } else {\n const {\n selectedItemAssistiveText,\n triggerContent,\n _assistiveStatusText: assistiveStatusText,\n _selectedItemContent: selectedItemContent,\n } = this;\n const selectedItemText =\n (selectedItemContent && selectedItemContent.textContent) ||\n triggerContent;\n if (\n selectedItemText &&\n assistiveStatusText !== selectedItemAssistiveText\n ) {\n this._assistiveStatusText = selectedItemText;\n }\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemHighlighted\n ),\n (item) => {\n (item as BXDropdownItem).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 BXDropdown).selectorItem\n ),\n (item) => {\n (item as BXDropdownItem).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 BXDropdown;\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 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 BXDropdownItem).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 nextItemText = nextItem.textContent;\n if (nextItemText) {\n this._assistiveStatusText = nextItemText;\n }\n this.requestUpdate();\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * @returns The content preceding the trigger button.\n */\n protected _renderPrecedingTriggerContent(): 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 _renderTriggerContent(): TemplateResult {\n const { triggerContent, _selectedItemContent: selectedItemContent } = this;\n return html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || triggerContent}</span\n >\n `;\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * @returns The content following the trigger button.\n */\n protected _renderFollowingTriggerContent(): 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 * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = DROPDOWN_COLOR_SCHEME.REGULAR;\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 * `true` to show the UI of the invalid state.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\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 * `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 * An assistive text for screen reader to announce, telling the open state.\n */\n @property({ attribute: 'selecting-items-assistive-text' })\n selectingItemsAssistiveText =\n 'Selecting items. Use up and down arrow keys to navigate.';\n\n /**\n * An assistive text for screen reader to announce, telling that an item is selected.\n */\n @property({ attribute: 'selected-item-assistive-text' })\n selectedItemAssistiveText = 'Selected an item.';\n\n /**\n * Dropdown size.\n */\n @property({ reflect: true })\n size = DROPDOWN_SIZE.REGULAR;\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 * The content of the trigger button.\n */\n @property({ attribute: 'trigger-content' })\n triggerContent = '';\n\n /**\n * `true` if this dropdown should use the inline UI variant.\n */\n @property({ reflect: true })\n type = DROPDOWN_TYPE.REGULAR;\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 createRenderRoot() {\n return this.attachShadow({\n mode: 'open',\n delegatesFocus:\n Number((/Safari\\/(\\d+)/.exec(navigator.userAgent) ?? ['', 0])[1]) <=\n 537,\n });\n }\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof BXDropdown;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as BXDropdownItem).size = this.size;\n });\n }\n if (changedProperties.has('value')) {\n // `<bx-multi-select>` updates selection beforehand\n // because our rendering logic for `<bx-multi-select>` looks for selected items via `qSA()`\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as BXDropdownItem).selected =\n (elem as BXDropdownItem).value === this.value;\n });\n const item = find(\n this.querySelectorAll(selectorItem),\n (elem) => (elem as BXDropdownItem).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 updated(changedProperties) {\n const { helperText, type } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n const { selectorItem } = this.constructor as typeof BXDropdown;\n if (changedProperties.has('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 (elem as BXDropdownItem).disabled = disabled;\n });\n }\n if (\n (changedProperties.has('helperText') || changedProperties.has('type')) &&\n helperText &&\n inline\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Found `helperText` property/attribute usage in inline mode, that is not supported, at:',\n this\n );\n }\n }\n\n render() {\n const {\n colorScheme,\n disabled,\n helperText,\n invalid,\n labelText,\n open,\n toggleLabelClosed,\n toggleLabelOpen,\n size,\n type,\n validityMessage,\n _assistiveStatusText: assistiveStatusText,\n _shouldTriggerBeFocusable: shouldTriggerBeFocusable,\n _handleClickInner: handleClickInner,\n _handleKeydownInner: handleKeydownInner,\n _handleKeypressInner: handleKeypressInner,\n _handleSlotchangeHelperText: handleSlotchangeHelperText,\n _handleSlotchangeLabelText: handleSlotchangeLabelText,\n _slotHelperTextNode: slotHelperTextNode,\n _slotLabelTextNode: slotLabelTextNode,\n } = this;\n const inline = type === DROPDOWN_TYPE.INLINE;\n const selectedItemsCount = this.querySelectorAll(\n (this.constructor as typeof BXDropdown).selectorItemSelected\n ).length;\n const classes = classMap({\n [`${prefix}--dropdown`]: true,\n [`${prefix}--list-box`]: true,\n [`${prefix}--list-box--${colorScheme}`]: colorScheme,\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--inline`]: inline,\n [`${prefix}--dropdown--selected`]: selectedItemsCount > 0,\n });\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\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 (slotHelperTextNode && slotHelperTextNode.assignedNodes().length > 0);\n const hasLabelText =\n labelText ||\n (slotLabelTextNode && slotLabelTextNode.assignedNodes().length > 0);\n const helper = !invalid\n ? html`\n <div\n part=\"helper-text\"\n class=\"${helperClasses}\"\n ?hidden=\"${inline || !hasHelperText}\">\n <slot name=\"helper-text\" @slotchange=\"${handleSlotchangeHelperText}\"\n >${helperText}</slot\n >\n </div>\n `\n : html`\n <div part=\"validity-message\" class=${`${prefix}--form-requirement`}>\n <slot name=\"validity-message\">${validityMessage}</slot>\n </div>\n `;\n const validityIcon = !invalid\n ? undefined\n : WarningFilled16({\n class: `${prefix}--list-box__invalid-icon`,\n 'aria-label': toggleLabel,\n });\n const menuBody = !open\n ? undefined\n : html`\n <div\n id=\"menu-body\"\n part=\"menu-body\"\n class=\"${prefix}--list-box__menu\"\n role=\"listbox\"\n tabindex=\"-1\">\n <slot></slot>\n </div>\n `;\n return html`\n <label\n part=\"label-text\"\n class=\"${labelClasses}\"\n ?hidden=\"${!hasLabelText}\">\n <slot name=\"label-text\" @slotchange=\"${handleSlotchangeLabelText}\"\n >${labelText}</slot\n >\n </label>\n <div\n role=\"listbox\"\n class=\"${classes}\"\n ?data-invalid=${invalid}\n @click=${handleClickInner}\n @keydown=${handleKeydownInner}\n @keypress=${handleKeypressInner}>\n ${validityIcon}\n <div\n part=\"trigger-button\"\n role=\"${ifDefined(!shouldTriggerBeFocusable ? undefined : 'button')}\"\n class=\"${prefix}--list-box__field\"\n tabindex=\"${ifDefined(!shouldTriggerBeFocusable ? undefined : '0')}\"\n aria-labelledby=\"trigger-label\"\n aria-expanded=\"${String(open)}\"\n aria-haspopup=\"listbox\"\n aria-owns=\"menu-body\"\n aria-controls=\"menu-body\">\n ${this._renderPrecedingTriggerContent()}${this._renderTriggerContent()}${this._renderFollowingTriggerContent()}\n <div class=\"${iconContainerClasses}\">\n ${ChevronDown16({ 'aria-label': toggleLabel })}\n </div>\n </div>\n ${menuBody}\n </div>\n ${helper}\n <div\n class=\"${prefix}--assistive-text\"\n role=\"status\"\n aria-live=\"assertive\"\n aria-relevant=\"additions text\">\n ${assistiveStatusText}\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 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 BXDropdown;\n"],"mappings":"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"}
@@ -214,7 +214,22 @@ let BXFileDropContainer = _decorate([customElement(`${prefix}-file-drop-containe
214
214
  [`${prefix}--file__drop-container`]: true,
215
215
  [`${prefix}--file__drop-container--drag-over`]: active
216
216
  });
217
- return html(_t || (_t = _` <label class="${0}" for="file" tabindex="0"> <div class="${0}" role="button"> <slot></slot> <input id="file" type="file" class="${0}--file-input" tabindex="-1" accept="${0}" ?disabled="${0}" ?multiple="${0}" @change="${0}"> </div> </label> `), labelClasses, dropareaClasses, prefix, ifNonEmpty(accept), disabled, multiple, handleChange);
217
+ return html(_t || (_t = _`
218
+ <label class="${0}" for="file" tabindex="0">
219
+ <div class="${0}" role="button">
220
+ <slot></slot>
221
+ <input
222
+ id="file"
223
+ type="file"
224
+ class="${0}--file-input"
225
+ tabindex="-1"
226
+ accept="${0}"
227
+ ?disabled="${0}"
228
+ ?multiple="${0}"
229
+ @change="${0}" />
230
+ </div>
231
+ </label>
232
+ `), labelClasses, dropareaClasses, prefix, ifNonEmpty(accept), disabled, multiple, handleChange);
218
233
  }
219
234
 
220
235
  /**