@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":"modal.js","names":["settings","classMap","html","property","query","LitElement","HostListener","HostListenerMixin","MODAL_SIZE","styles","selectorTabbable","carbonElement","customElement","prefix","PRECEDING","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","FOLLOWING","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_CONTAINED_BY","tryFocusElems","elems","reverse","i","length","elem","focus","ownerDocument","activeElement","BXModal","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","decorators","event","composedPath","indexOf","shadowRoot","_handleUserInitiatedClose","target","relatedTarget","_this$shadowRoot","open","_startSentinelNode","startSentinelNode","_endSentinelNode","endSentinelNode","oldContains","contains","currentContains","selectorTabbableForModal","comparisonResult","compareDocumentPosition","_delay","querySelectorAll","_handleClickContainer","matches","selectorCloseButton","triggeredBy","init","bubbles","cancelable","composed","detail","dispatchEvent","CustomEvent","eventBeforeClose","eventClose","attribute","type","Boolean","reflect","REGULAR","render","size","containerClass","split","filter","reduce","acc","item","_objectSpread","containerClasses","_t","_","updated","changedProperties","has","_launcher","primaryFocusNode","querySelector","selectorPrimaryFocus","static","ms","Promise","resolve","setTimeout"],"sources":["components/modal/modal.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 { html, property, query, LitElement } from 'lit-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { MODAL_SIZE } from './defs';\nimport styles from './modal.scss';\nimport { selectorTabbable } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { MODAL_SIZE };\n\nconst { prefix } = settings;\n\n// eslint-disable-next-line no-bitwise\nconst PRECEDING =\n Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;\n// eslint-disable-next-line no-bitwise\nconst FOLLOWING =\n Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;\n\n/**\n * Tries to focus on the given elements and bails out if one of them is successful.\n *\n * @param elems The elements.\n * @param reverse `true` to go through the list in reverse order.\n * @returns `true` if one of the attempts is successful, `false` otherwise.\n */\nfunction tryFocusElems(\n elems: NodeListOf<HTMLElement>,\n reverse: boolean = false\n) {\n if (!reverse) {\n for (let i = 0; i < elems.length; ++i) {\n const elem = elems[i];\n elem.focus();\n if (elem.ownerDocument!.activeElement === elem) {\n return true;\n }\n }\n } else {\n for (let i = elems.length - 1; i >= 0; --i) {\n const elem = elems[i];\n elem.focus();\n if (elem.ownerDocument!.activeElement === elem) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Modal.\n *\n * @element bx-modal\n * @csspart dialog The dialog.\n * @fires bx-modal-beingclosed\n * The custom event fired before this modal is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this modal.\n * @fires bx-modal-closed - The custom event fired after this modal is closed upon a user gesture.\n */\n@customElement(`${prefix}-modal`)\nclass BXModal extends HostListenerMixin(LitElement) {\n /**\n * The element that had focus before this modal gets open.\n */\n private _launcher: Element | null = null;\n\n /**\n * Node to track focus going outside of modal content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of modal content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('click')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: MouseEvent) => {\n if (event.composedPath().indexOf(this.shadowRoot!) < 0) {\n this._handleUserInitiatedClose(event.target);\n }\n };\n\n /**\n * Handles `blur` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot:focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = async ({ target, relatedTarget }: FocusEvent) => {\n const {\n open,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n const oldContains = target !== this && this.contains(target as Node);\n const currentContains =\n relatedTarget !== this &&\n (this.contains(relatedTarget as Node) ||\n (this.shadowRoot?.contains(relatedTarget as Node) &&\n relatedTarget !== (endSentinelNode as Node)));\n\n // Performs focus wrapping if _all_ of the following is met:\n // * This modal is open\n // * The viewport still has focus\n // * Modal body used to have focus but no longer has focus\n const { selectorTabbable: selectorTabbableForModal } = this\n .constructor as typeof BXModal;\n if (open && relatedTarget && oldContains && !currentContains) {\n const comparisonResult = (target as Node).compareDocumentPosition(\n relatedTarget as Node\n );\n // eslint-disable-next-line no-bitwise\n if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {\n await (this.constructor as typeof BXModal)._delay();\n if (\n !tryFocusElems(\n this.querySelectorAll(selectorTabbableForModal),\n true\n ) &&\n relatedTarget !== this\n ) {\n this.focus();\n }\n }\n // eslint-disable-next-line no-bitwise\n else if (\n relatedTarget === endSentinelNode ||\n comparisonResult & FOLLOWING\n ) {\n await (this.constructor as typeof BXModal)._delay();\n if (!tryFocusElems(this.querySelectorAll(selectorTabbableForModal))) {\n this.focus();\n }\n }\n }\n };\n\n @HostListener('document:keydown')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = ({ key, target }: KeyboardEvent) => {\n if (key === 'Esc' || key === 'Escape') {\n this._handleUserInitiatedClose(target);\n }\n };\n\n /**\n * Handles `click` event on the modal container.\n *\n * @param event The event.\n */\n private _handleClickContainer(event: MouseEvent) {\n if (\n (event.target as Element).matches(\n (this.constructor as typeof BXModal).selectorCloseButton\n )\n ) {\n this._handleUserInitiatedClose(event.target);\n }\n }\n\n /**\n * Handles user-initiated close request of this modal.\n *\n * @param triggeredBy The element that triggered this close request.\n */\n private _handleUserInitiatedClose(triggeredBy: EventTarget | null) {\n if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof BXModal).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof BXModal).eventClose, init)\n );\n }\n }\n }\n\n /**\n * The additional CSS class names for the container <div> of the element.\n */\n @property({ attribute: 'container-class' })\n containerClass = '';\n\n /**\n * `true` if the modal should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Modal size.\n */\n @property({ reflect: true })\n size = MODAL_SIZE.REGULAR;\n\n render() {\n const { size } = this;\n const containerClass = this.containerClass\n .split(' ')\n .filter(Boolean)\n .reduce((acc, item) => ({ ...acc, [item]: true }), {});\n const containerClasses = classMap({\n [`${prefix}--modal-container`]: true,\n [`${prefix}--modal-container--${size}`]: size,\n ...containerClass,\n });\n return html`\n <a\n id=\"start-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n <div\n part=\"dialog\"\n class=${containerClasses}\n role=\"dialog\"\n tabindex=\"-1\"\n @click=${this._handleClickContainer}>\n <slot></slot>\n </div>\n <a\n id=\"end-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n `;\n }\n\n async updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this._launcher = this.ownerDocument!.activeElement;\n const primaryFocusNode = this.querySelector(\n (this.constructor as typeof BXModal).selectorPrimaryFocus\n );\n await (this.constructor as typeof BXModal)._delay();\n if (primaryFocusNode) {\n // For cases where a `carbon-web-components` component (e.g. `<bx-btn>`) being `primaryFocusNode`,\n // where its first update/render cycle that makes it focusable happens after `<bx-modal>`'s first update/render cycle\n (primaryFocusNode as HTMLElement).focus();\n } else if (\n !tryFocusElems(\n this.querySelectorAll(\n (this.constructor as typeof BXModal).selectorTabbable\n ),\n true\n )\n ) {\n this.focus();\n }\n } else if (\n this._launcher &&\n typeof (this._launcher as HTMLElement).focus === 'function'\n ) {\n (this._launcher as HTMLElement).focus();\n this._launcher = null;\n }\n }\n }\n\n /**\n * @param ms The number of milliseconds.\n * @returns A promise that is resolves after the given milliseconds.\n */\n private static _delay(ms: number = 0) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * A selector selecting buttons that should close this modal.\n */\n static get selectorCloseButton() {\n return `[data-modal-close],${prefix}-modal-close-button`;\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * A selector selecting the nodes that should be focused when modal gets open.\n */\n static get selectorPrimaryFocus() {\n return `[data-modal-primary-focus],${prefix}-modal-footer ${prefix}-btn[kind=\"primary\"]`;\n }\n\n /**\n * The name of the custom event fired before this modal is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this modal.\n */\n static get eventBeforeClose() {\n return `${prefix}-modal-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this modal is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-modal-closed`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXModal;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,QAAQ,QAAQ,+BAA+B;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,QAAQ,aAAa;AAC/D,OAAOC,YAAY,MAAM,wCAAwC;AACjE,OAAOC,iBAAiB,MAAM,oCAAoC;AAClE,SAASC,UAAU,QAAQ,QAAQ;AACnC,OAAOC,MAAM,MAAM,kBAAc;AACjC,SAASC,gBAAgB,IAAhBA,iBAAgB,QAAQ,wBAAwB;AACzD,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,SAASJ,UAAU;AAEnB,MAAM;EAAEK;AAAO,CAAC,GAAGb,QAAQ;;AAE3B;AACA,MAAMc,SAAS,GACbC,IAAI,CAACC,2BAA2B,GAAGD,IAAI,CAACE,0BAA0B;AACpE;AACA,MAAMC,SAAS,GACbH,IAAI,CAACI,2BAA2B,GAAGJ,IAAI,CAACK,8BAA8B;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CACpBC,KAA8B,EAC9BC,OAAgB,GAAG,KAAK,EACxB;EACA,IAAI,CAACA,OAAO,EAAE;IACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,CAACG,MAAM,EAAE,EAAED,CAAC,EAAE;MACrC,MAAME,IAAI,GAAGJ,KAAK,CAACE,CAAC,CAAC;MACrBE,IAAI,CAACC,KAAK,CAAC,CAAC;MACZ,IAAID,IAAI,CAACE,aAAa,CAAEC,aAAa,KAAKH,IAAI,EAAE;QAC9C,OAAO,IAAI;MACb;IACF;EACF,CAAC,MAAM;IACL,KAAK,IAAIF,CAAC,GAAGF,KAAK,CAACG,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAE,EAAEA,CAAC,EAAE;MAC1C,MAAME,IAAI,GAAGJ,KAAK,CAACE,CAAC,CAAC;MACrBE,IAAI,CAACC,KAAK,CAAC,CAAC;MACZ,IAAID,IAAI,CAACE,aAAa,CAAEC,aAAa,KAAKH,IAAI,EAAE;QAC9C,OAAO,IAAI;MACb;IACF;EACF;EACA,OAAO,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,IAWMI,OAAO,GAAAC,SAAA,EADZnB,aAAa,CAAE,GAAEC,MAAO,QAAO,CAAC,aAAAmB,WAAA,EAAAC,kBAAA;EAAjC,MACMH,OAAO,SAAAG,kBAAA,CAAuC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA+QpD;EAAC;IAAAI,CAAA,EA/QKN,OAAO;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAIyB,IAAI;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKvCrC,KAAK,CAAC,iBAAiB,CAAC;MAAAmC,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAMxBrC,KAAK,CAAC,eAAe,CAAC;MAAAmC,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAQtBnC,YAAY,CAAC,OAAO,CAAC;MAAAiC,GAAA;MAAAC,MAAA;QAAA,OAEEE,KAAiB,IAAK;UAC5C,IAAIA,KAAK,CAACC,YAAY,CAAC,CAAC,CAACC,OAAO,CAAC,IAAI,CAACC,UAAW,CAAC,GAAG,CAAC,EAAE;YACtD,IAAI,CAACC,yBAAyB,CAACJ,KAAK,CAACK,MAAM,CAAC;UAC9C;QACF,CAAC;MAAA;IAAA;MAAAT,IAAA;MAAAG,UAAA,GAOAnC,YAAY,CAAC,qBAAqB,CAAC;MAAAiC,GAAA;MAAAC,MAAA;QAAA,OAEd,OAAO;UAAEO,MAAM;UAAEC;QAA0B,CAAC,KAAK;UAAA,IAAAC,gBAAA;UACrE,MAAM;YACJC,IAAI;YACJC,kBAAkB,EAAEC,iBAAiB;YACrCC,gBAAgB,EAAEC;UACpB,CAAC,GAAG,IAAI;UACR,MAAMC,WAAW,GAAGR,MAAM,KAAK,IAAI,IAAI,IAAI,CAACS,QAAQ,CAACT,MAAc,CAAC;UACpE,MAAMU,eAAe,GACnBT,aAAa,KAAK,IAAI,KACrB,IAAI,CAACQ,QAAQ,CAACR,aAAqB,CAAC,IAClC,EAAAC,gBAAA,OAAI,CAACJ,UAAU,cAAAI,gBAAA,uBAAfA,gBAAA,CAAiBO,QAAQ,CAACR,aAAqB,CAAC,KAC/CA,aAAa,KAAMM,eAAyB,CAAC;;UAEnD;UACA;UACA;UACA;UACA,MAAM;YAAE5C,gBAAgB,EAAEgD;UAAyB,CAAC,GAAG,IAAI,CACxDxB,WAA6B;UAChC,IAAIgB,IAAI,IAAIF,aAAa,IAAIO,WAAW,IAAI,CAACE,eAAe,EAAE;YAC5D,MAAME,gBAAgB,GAAIZ,MAAM,CAAUa,uBAAuB,CAC/DZ,aACF,CAAC;YACD;YACA,IAAIA,aAAa,KAAKI,iBAAiB,IAAIO,gBAAgB,GAAG7C,SAAS,EAAE;cACvE,MAAO,IAAI,CAACoB,WAAW,CAAoB2B,MAAM,CAAC,CAAC;cACnD,IACE,CAACxC,aAAa,CACZ,IAAI,CAACyC,gBAAgB,CAACJ,wBAAwB,CAAC,EAC/C,IACF,CAAC,IACDV,aAAa,KAAK,IAAI,EACtB;gBACA,IAAI,CAACrB,KAAK,CAAC,CAAC;cACd;YACF;YACA;YAAA,KACK,IACHqB,aAAa,KAAKM,eAAe,IACjCK,gBAAgB,GAAGzC,SAAS,EAC5B;cACA,MAAO,IAAI,CAACgB,WAAW,CAAoB2B,MAAM,CAAC,CAAC;cACnD,IAAI,CAACxC,aAAa,CAAC,IAAI,CAACyC,gBAAgB,CAACJ,wBAAwB,CAAC,CAAC,EAAE;gBACnE,IAAI,CAAC/B,KAAK,CAAC,CAAC;cACd;YACF;UACF;QACF,CAAC;MAAA;IAAA;MAAAW,IAAA;MAAAG,UAAA,GAEAnC,YAAY,CAAC,kBAAkB,CAAC;MAAAiC,GAAA;MAAAC,MAAA;QAAA,OAER,CAAC;UAAED,GAAG;UAAEQ;QAAsB,CAAC,KAAK;UAC3D,IAAIR,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,QAAQ,EAAE;YACrC,IAAI,CAACO,yBAAyB,CAACC,MAAM,CAAC;UACxC;QACF,CAAC;MAAA;IAAA;MAAAT,IAAA;MAAAC,GAAA;MAAAC,KAAA;MA5FD;AACF;AACA;;MAGE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;AACA;AACA;;MASE;AACF;AACA;AACA;AACA;;MA4DE;AACF;AACA;AACA;AACA;MACE,SAAAuB,sBAA8BrB,KAAiB,EAAE;QAC/C,IACGA,KAAK,CAACK,MAAM,CAAaiB,OAAO,CAC9B,IAAI,CAAC9B,WAAW,CAAoB+B,mBACvC,CAAC,EACD;UACA,IAAI,CAACnB,yBAAyB,CAACJ,KAAK,CAACK,MAAM,CAAC;QAC9C;MACF;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAAT,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAKA,SAAAM,0BAAkCoB,WAA+B,EAAE;QACjE,IAAI,IAAI,CAAChB,IAAI,EAAE;UACb,MAAMiB,IAAI,GAAG;YACXC,OAAO,EAAE,IAAI;YACbC,UAAU,EAAE,IAAI;YAChBC,QAAQ,EAAE,IAAI;YACdC,MAAM,EAAE;cACNL;YACF;UACF,CAAC;UACD,IACE,IAAI,CAACM,aAAa,CAChB,IAAIC,WAAW,CACZ,IAAI,CAACvC,WAAW,CAAoBwC,gBAAgB,EACrDP,IACF,CACF,CAAC,EACD;YACA,IAAI,CAACjB,IAAI,GAAG,KAAK;YACjB,IAAI,CAACsB,aAAa,CAChB,IAAIC,WAAW,CAAE,IAAI,CAACvC,WAAW,CAAoByC,UAAU,EAAER,IAAI,CACvE,CAAC;UACH;QACF;MACF;;MAEA;AACF;AACA;IAFE;MAAA7B,IAAA;MAAAG,UAAA,GAGCtC,QAAQ,CAAC;QAAEyE,SAAS,EAAE;MAAkB,CAAC,CAAC;MAAArC,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKlBtC,QAAQ,CAAC;QAAE0E,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAxC,GAAA;MAAAC,MAAA;QAAA,OACpC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKXtC,QAAQ,CAAC;QAAE4E,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAxC,GAAA;MAAAC,MAAA;QAAA,OACrBhC,UAAU,CAACwE,OAAO;MAAA;IAAA;MAAA1C,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAVzB;AACF;AACA;MAIE;AACF;AACA;MAIE,SAAAyC,OAAA,EAAS;QACP,MAAM;UAAEC;QAAK,CAAC,GAAG,IAAI;QACrB,MAAMC,cAAc,GAAG,IAAI,CAACA,cAAc,CACvCC,KAAK,CAAC,GAAG,CAAC,CACVC,MAAM,CAACP,OAAO,CAAC,CACfQ,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAAC,aAAA,CAAAA,aAAA,KAAWF,GAAG;UAAE,CAACC,IAAI,GAAG;QAAI,EAAG,EAAE,CAAC,CAAC,CAAC;QACxD,MAAME,gBAAgB,GAAGzF,QAAQ,CAAAwF,aAAA;UAC/B,CAAE,GAAE5E,MAAO,mBAAkB,GAAG,IAAI;UACpC,CAAE,GAAEA,MAAO,sBAAqBqE,IAAK,EAAC,GAAGA;QAAI,GAC1CC,cAAc,CAClB,CAAC;QACF,OAAOjF,IAAI,CAAAyF,EAAA,KAAAA,EAAA,GAAAC,CAAA,8SAGE/E,MAAM,EAKP6E,gBAAgB,EAGf,IAAI,CAAC3B,qBAAqB,EAK1BlD,MAAM;MAIrB;IAAC;MAAAyB,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,eAAAqD,QAAcC,iBAAiB,EAAE;QAC/B,IAAIA,iBAAiB,CAACC,GAAG,CAAC,MAAM,CAAC,EAAE;UACjC,IAAI,IAAI,CAAC7C,IAAI,EAAE;YACb,IAAI,CAAC8C,SAAS,GAAG,IAAI,CAACpE,aAAa,CAAEC,aAAa;YAClD,MAAMoE,gBAAgB,GAAG,IAAI,CAACC,aAAa,CACxC,IAAI,CAAChE,WAAW,CAAoBiE,oBACvC,CAAC;YACD,MAAO,IAAI,CAACjE,WAAW,CAAoB2B,MAAM,CAAC,CAAC;YACnD,IAAIoC,gBAAgB,EAAE;cACpB;cACA;cACCA,gBAAgB,CAAiBtE,KAAK,CAAC,CAAC;YAC3C,CAAC,MAAM,IACL,CAACN,aAAa,CACZ,IAAI,CAACyC,gBAAgB,CAClB,IAAI,CAAC5B,WAAW,CAAoBxB,gBACvC,CAAC,EACD,IACF,CAAC,EACD;cACA,IAAI,CAACiB,KAAK,CAAC,CAAC;YACd;UACF,CAAC,MAAM,IACL,IAAI,CAACqE,SAAS,IACd,OAAQ,IAAI,CAACA,SAAS,CAAiBrE,KAAK,KAAK,UAAU,EAC3D;YACC,IAAI,CAACqE,SAAS,CAAiBrE,KAAK,CAAC,CAAC;YACvC,IAAI,CAACqE,SAAS,GAAG,IAAI;UACvB;QACF;MACF;;MAEA;AACF;AACA;AACA;IAHE;MAAA1D,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAIA,SAAAqB,OAAsBwC,EAAU,GAAG,CAAC,EAAE;QACpC,OAAO,IAAIC,OAAO,CAAEC,OAAO,IAAK;UAC9BC,UAAU,CAACD,OAAO,EAAEF,EAAE,CAAC;QACzB,CAAC,CAAC;MACJ;;MAEA;AACF;AACA;IAFE;MAAA/D,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAGA,SAAAyB,oBAAA,EAAiC;QAC/B,OAAQ,sBAAqBpD,MAAO,qBAAoB;MAC1D;;MAEA;AACF;AACA;IAFE;MAAAyB,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAGA,SAAA9B,iBAAA,EAA8B;QAC5B,OAAOA,iBAAgB;MACzB;;MAEA;AACF;AACA;IAFE;MAAA4B,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAGA,SAAA2D,qBAAA,EAAkC;QAChC,OAAQ,8BAA6BtF,MAAO,iBAAgBA,MAAO,sBAAqB;MAC1F;;MAEA;AACF;AACA;AACA;IAHE;MAAAyB,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAIA,SAAAkC,iBAAA,EAA8B;QAC5B,OAAQ,GAAE7D,MAAO,oBAAmB;MACtC;;MAEA;AACF;AACA;IAFE;MAAAyB,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAGA,SAAAmC,WAAA,EAAwB;QACtB,OAAQ,GAAE9D,MAAO,eAAc;MACjC;IAAC;MAAAyB,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,MAAA;QAAA,OAEe/B,MAAM;MAAA;IAAA;EAAA;AAAA,GA9QFF,iBAAiB,CAACF,UAAU,CAAC;AAiRnD,eAAeyB,OAAO"}
1
+ {"version":3,"file":"modal.js","names":["settings","classMap","html","property","query","LitElement","HostListener","HostListenerMixin","MODAL_SIZE","styles","selectorTabbable","carbonElement","customElement","prefix","PRECEDING","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","FOLLOWING","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_CONTAINED_BY","tryFocusElems","elems","reverse","i","length","elem","focus","ownerDocument","activeElement","BXModal","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","decorators","event","composedPath","indexOf","shadowRoot","_handleUserInitiatedClose","target","relatedTarget","_this$shadowRoot","open","_startSentinelNode","startSentinelNode","_endSentinelNode","endSentinelNode","oldContains","contains","currentContains","selectorTabbableForModal","comparisonResult","compareDocumentPosition","_delay","querySelectorAll","_handleClickContainer","matches","selectorCloseButton","triggeredBy","init","bubbles","cancelable","composed","detail","dispatchEvent","CustomEvent","eventBeforeClose","eventClose","attribute","type","Boolean","reflect","REGULAR","render","size","containerClass","split","filter","reduce","acc","item","_objectSpread","containerClasses","_t","_","updated","changedProperties","has","_launcher","primaryFocusNode","querySelector","selectorPrimaryFocus","static","ms","Promise","resolve","setTimeout"],"sources":["components/modal/modal.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 { html, property, query, LitElement } from 'lit-element';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { MODAL_SIZE } from './defs';\nimport styles from './modal.scss';\nimport { selectorTabbable } from '../../globals/settings';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { MODAL_SIZE };\n\nconst { prefix } = settings;\n\n// eslint-disable-next-line no-bitwise\nconst PRECEDING =\n Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINS;\n// eslint-disable-next-line no-bitwise\nconst FOLLOWING =\n Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY;\n\n/**\n * Tries to focus on the given elements and bails out if one of them is successful.\n *\n * @param elems The elements.\n * @param reverse `true` to go through the list in reverse order.\n * @returns `true` if one of the attempts is successful, `false` otherwise.\n */\nfunction tryFocusElems(\n elems: NodeListOf<HTMLElement>,\n reverse: boolean = false\n) {\n if (!reverse) {\n for (let i = 0; i < elems.length; ++i) {\n const elem = elems[i];\n elem.focus();\n if (elem.ownerDocument!.activeElement === elem) {\n return true;\n }\n }\n } else {\n for (let i = elems.length - 1; i >= 0; --i) {\n const elem = elems[i];\n elem.focus();\n if (elem.ownerDocument!.activeElement === elem) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * Modal.\n *\n * @element bx-modal\n * @csspart dialog The dialog.\n * @fires bx-modal-beingclosed\n * The custom event fired before this modal is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this modal.\n * @fires bx-modal-closed - The custom event fired after this modal is closed upon a user gesture.\n */\n@customElement(`${prefix}-modal`)\nclass BXModal extends HostListenerMixin(LitElement) {\n /**\n * The element that had focus before this modal gets open.\n */\n private _launcher: Element | null = null;\n\n /**\n * Node to track focus going outside of modal content.\n */\n @query('#start-sentinel')\n private _startSentinelNode!: HTMLAnchorElement;\n\n /**\n * Node to track focus going outside of modal content.\n */\n @query('#end-sentinel')\n private _endSentinelNode!: HTMLAnchorElement;\n\n /**\n * Handles `click` event on this element.\n *\n * @param event The event.\n */\n @HostListener('click')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event: MouseEvent) => {\n if (event.composedPath().indexOf(this.shadowRoot!) < 0) {\n this._handleUserInitiatedClose(event.target);\n }\n };\n\n /**\n * Handles `blur` event on this element.\n *\n * @param event The event.\n */\n @HostListener('shadowRoot:focusout')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleBlur = async ({ target, relatedTarget }: FocusEvent) => {\n const {\n open,\n _startSentinelNode: startSentinelNode,\n _endSentinelNode: endSentinelNode,\n } = this;\n const oldContains = target !== this && this.contains(target as Node);\n const currentContains =\n relatedTarget !== this &&\n (this.contains(relatedTarget as Node) ||\n (this.shadowRoot?.contains(relatedTarget as Node) &&\n relatedTarget !== (endSentinelNode as Node)));\n\n // Performs focus wrapping if _all_ of the following is met:\n // * This modal is open\n // * The viewport still has focus\n // * Modal body used to have focus but no longer has focus\n const { selectorTabbable: selectorTabbableForModal } = this\n .constructor as typeof BXModal;\n if (open && relatedTarget && oldContains && !currentContains) {\n const comparisonResult = (target as Node).compareDocumentPosition(\n relatedTarget as Node\n );\n // eslint-disable-next-line no-bitwise\n if (relatedTarget === startSentinelNode || comparisonResult & PRECEDING) {\n await (this.constructor as typeof BXModal)._delay();\n if (\n !tryFocusElems(\n this.querySelectorAll(selectorTabbableForModal),\n true\n ) &&\n relatedTarget !== this\n ) {\n this.focus();\n }\n }\n // eslint-disable-next-line no-bitwise\n else if (\n relatedTarget === endSentinelNode ||\n comparisonResult & FOLLOWING\n ) {\n await (this.constructor as typeof BXModal)._delay();\n if (!tryFocusElems(this.querySelectorAll(selectorTabbableForModal))) {\n this.focus();\n }\n }\n }\n };\n\n @HostListener('document:keydown')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = ({ key, target }: KeyboardEvent) => {\n if (key === 'Esc' || key === 'Escape') {\n this._handleUserInitiatedClose(target);\n }\n };\n\n /**\n * Handles `click` event on the modal container.\n *\n * @param event The event.\n */\n private _handleClickContainer(event: MouseEvent) {\n if (\n (event.target as Element).matches(\n (this.constructor as typeof BXModal).selectorCloseButton\n )\n ) {\n this._handleUserInitiatedClose(event.target);\n }\n }\n\n /**\n * Handles user-initiated close request of this modal.\n *\n * @param triggeredBy The element that triggered this close request.\n */\n private _handleUserInitiatedClose(triggeredBy: EventTarget | null) {\n if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof BXModal).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof BXModal).eventClose, init)\n );\n }\n }\n }\n\n /**\n * The additional CSS class names for the container <div> of the element.\n */\n @property({ attribute: 'container-class' })\n containerClass = '';\n\n /**\n * `true` if the modal should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Modal size.\n */\n @property({ reflect: true })\n size = MODAL_SIZE.REGULAR;\n\n render() {\n const { size } = this;\n const containerClass = this.containerClass\n .split(' ')\n .filter(Boolean)\n .reduce((acc, item) => ({ ...acc, [item]: true }), {});\n const containerClasses = classMap({\n [`${prefix}--modal-container`]: true,\n [`${prefix}--modal-container--${size}`]: size,\n ...containerClass,\n });\n return html`\n <a\n id=\"start-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n <div\n part=\"dialog\"\n class=${containerClasses}\n role=\"dialog\"\n tabindex=\"-1\"\n @click=${this._handleClickContainer}>\n <slot></slot>\n </div>\n <a\n id=\"end-sentinel\"\n class=\"${prefix}--visually-hidden\"\n href=\"javascript:void 0\"\n role=\"navigation\"></a>\n `;\n }\n\n async updated(changedProperties) {\n if (changedProperties.has('open')) {\n if (this.open) {\n this._launcher = this.ownerDocument!.activeElement;\n const primaryFocusNode = this.querySelector(\n (this.constructor as typeof BXModal).selectorPrimaryFocus\n );\n await (this.constructor as typeof BXModal)._delay();\n if (primaryFocusNode) {\n // For cases where a `carbon-web-components` component (e.g. `<bx-btn>`) being `primaryFocusNode`,\n // where its first update/render cycle that makes it focusable happens after `<bx-modal>`'s first update/render cycle\n (primaryFocusNode as HTMLElement).focus();\n } else if (\n !tryFocusElems(\n this.querySelectorAll(\n (this.constructor as typeof BXModal).selectorTabbable\n ),\n true\n )\n ) {\n this.focus();\n }\n } else if (\n this._launcher &&\n typeof (this._launcher as HTMLElement).focus === 'function'\n ) {\n (this._launcher as HTMLElement).focus();\n this._launcher = null;\n }\n }\n }\n\n /**\n * @param ms The number of milliseconds.\n * @returns A promise that is resolves after the given milliseconds.\n */\n private static _delay(ms: number = 0) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n }\n\n /**\n * A selector selecting buttons that should close this modal.\n */\n static get selectorCloseButton() {\n return `[data-modal-close],${prefix}-modal-close-button`;\n }\n\n /**\n * A selector selecting tabbable nodes.\n */\n static get selectorTabbable() {\n return selectorTabbable;\n }\n\n /**\n * A selector selecting the nodes that should be focused when modal gets open.\n */\n static get selectorPrimaryFocus() {\n return `[data-modal-primary-focus],${prefix}-modal-footer ${prefix}-btn[kind=\"primary\"]`;\n }\n\n /**\n * The name of the custom event fired before this modal is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this modal.\n */\n static get eventBeforeClose() {\n return `${prefix}-modal-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this modal is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-modal-closed`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXModal;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,QAAQ,QAAQ,+BAA+B;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,UAAU,QAAQ,aAAa;AAC/D,OAAOC,YAAY,MAAM,wCAAwC;AACjE,OAAOC,iBAAiB,MAAM,oCAAoC;AAClE,SAASC,UAAU,QAAQ,QAAQ;AACnC,OAAOC,MAAM,MAAM,kBAAc;AACjC,SAASC,gBAAgB,IAAhBA,iBAAgB,QAAQ,wBAAwB;AACzD,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,SAASJ,UAAU;AAEnB,MAAM;EAAEK;AAAO,CAAC,GAAGb,QAAQ;;AAE3B;AACA,MAAMc,SAAS,GACbC,IAAI,CAACC,2BAA2B,GAAGD,IAAI,CAACE,0BAA0B;AACpE;AACA,MAAMC,SAAS,GACbH,IAAI,CAACI,2BAA2B,GAAGJ,IAAI,CAACK,8BAA8B;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CACpBC,KAA8B,EAC9BC,OAAgB,GAAG,KAAK,EACxB;EACA,IAAI,CAACA,OAAO,EAAE;IACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,CAACG,MAAM,EAAE,EAAED,CAAC,EAAE;MACrC,MAAME,IAAI,GAAGJ,KAAK,CAACE,CAAC,CAAC;MACrBE,IAAI,CAACC,KAAK,CAAC,CAAC;MACZ,IAAID,IAAI,CAACE,aAAa,CAAEC,aAAa,KAAKH,IAAI,EAAE;QAC9C,OAAO,IAAI;MACb;IACF;EACF,CAAC,MAAM;IACL,KAAK,IAAIF,CAAC,GAAGF,KAAK,CAACG,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAE,EAAEA,CAAC,EAAE;MAC1C,MAAME,IAAI,GAAGJ,KAAK,CAACE,CAAC,CAAC;MACrBE,IAAI,CAACC,KAAK,CAAC,CAAC;MACZ,IAAID,IAAI,CAACE,aAAa,CAAEC,aAAa,KAAKH,IAAI,EAAE;QAC9C,OAAO,IAAI;MACb;IACF;EACF;EACA,OAAO,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AATA,IAWMI,OAAO,GAAAC,SAAA,EADZnB,aAAa,CAAE,GAAEC,MAAO,QAAO,CAAC,aAAAmB,WAAA,EAAAC,kBAAA;EAAjC,MACMH,OAAO,SAAAG,kBAAA,CAAuC;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA+QpD;EAAC;IAAAI,CAAA,EA/QKN,OAAO;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAIyB,IAAI;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKvCrC,KAAK,CAAC,iBAAiB,CAAC;MAAAmC,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAMxBrC,KAAK,CAAC,eAAe,CAAC;MAAAmC,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAQtBnC,YAAY,CAAC,OAAO,CAAC;MAAAiC,GAAA;MAAAC,MAAA;QAAA,OAEEE,KAAiB,IAAK;UAC5C,IAAIA,KAAK,CAACC,YAAY,CAAC,CAAC,CAACC,OAAO,CAAC,IAAI,CAACC,UAAW,CAAC,GAAG,CAAC,EAAE;YACtD,IAAI,CAACC,yBAAyB,CAACJ,KAAK,CAACK,MAAM,CAAC;UAC9C;QACF,CAAC;MAAA;IAAA;MAAAT,IAAA;MAAAG,UAAA,GAOAnC,YAAY,CAAC,qBAAqB,CAAC;MAAAiC,GAAA;MAAAC,MAAA;QAAA,OAEd,OAAO;UAAEO,MAAM;UAAEC;QAA0B,CAAC,KAAK;UAAA,IAAAC,gBAAA;UACrE,MAAM;YACJC,IAAI;YACJC,kBAAkB,EAAEC,iBAAiB;YACrCC,gBAAgB,EAAEC;UACpB,CAAC,GAAG,IAAI;UACR,MAAMC,WAAW,GAAGR,MAAM,KAAK,IAAI,IAAI,IAAI,CAACS,QAAQ,CAACT,MAAc,CAAC;UACpE,MAAMU,eAAe,GACnBT,aAAa,KAAK,IAAI,KACrB,IAAI,CAACQ,QAAQ,CAACR,aAAqB,CAAC,IAClC,EAAAC,gBAAA,OAAI,CAACJ,UAAU,cAAAI,gBAAA,uBAAfA,gBAAA,CAAiBO,QAAQ,CAACR,aAAqB,CAAC,KAC/CA,aAAa,KAAMM,eAAyB,CAAC;;UAEnD;UACA;UACA;UACA;UACA,MAAM;YAAE5C,gBAAgB,EAAEgD;UAAyB,CAAC,GAAG,IAAI,CACxDxB,WAA6B;UAChC,IAAIgB,IAAI,IAAIF,aAAa,IAAIO,WAAW,IAAI,CAACE,eAAe,EAAE;YAC5D,MAAME,gBAAgB,GAAIZ,MAAM,CAAUa,uBAAuB,CAC/DZ,aACF,CAAC;YACD;YACA,IAAIA,aAAa,KAAKI,iBAAiB,IAAIO,gBAAgB,GAAG7C,SAAS,EAAE;cACvE,MAAO,IAAI,CAACoB,WAAW,CAAoB2B,MAAM,CAAC,CAAC;cACnD,IACE,CAACxC,aAAa,CACZ,IAAI,CAACyC,gBAAgB,CAACJ,wBAAwB,CAAC,EAC/C,IACF,CAAC,IACDV,aAAa,KAAK,IAAI,EACtB;gBACA,IAAI,CAACrB,KAAK,CAAC,CAAC;cACd;YACF;YACA;YAAA,KACK,IACHqB,aAAa,KAAKM,eAAe,IACjCK,gBAAgB,GAAGzC,SAAS,EAC5B;cACA,MAAO,IAAI,CAACgB,WAAW,CAAoB2B,MAAM,CAAC,CAAC;cACnD,IAAI,CAACxC,aAAa,CAAC,IAAI,CAACyC,gBAAgB,CAACJ,wBAAwB,CAAC,CAAC,EAAE;gBACnE,IAAI,CAAC/B,KAAK,CAAC,CAAC;cACd;YACF;UACF;QACF,CAAC;MAAA;IAAA;MAAAW,IAAA;MAAAG,UAAA,GAEAnC,YAAY,CAAC,kBAAkB,CAAC;MAAAiC,GAAA;MAAAC,MAAA;QAAA,OAER,CAAC;UAAED,GAAG;UAAEQ;QAAsB,CAAC,KAAK;UAC3D,IAAIR,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,QAAQ,EAAE;YACrC,IAAI,CAACO,yBAAyB,CAACC,MAAM,CAAC;UACxC;QACF,CAAC;MAAA;IAAA;MAAAT,IAAA;MAAAC,GAAA;MAAAC,KAAA;MA5FD;AACF;AACA;;MAGE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;AACA;AACA;;MASE;AACF;AACA;AACA;AACA;;MA4DE;AACF;AACA;AACA;AACA;MACE,SAAAuB,sBAA8BrB,KAAiB,EAAE;QAC/C,IACGA,KAAK,CAACK,MAAM,CAAaiB,OAAO,CAC9B,IAAI,CAAC9B,WAAW,CAAoB+B,mBACvC,CAAC,EACD;UACA,IAAI,CAACnB,yBAAyB,CAACJ,KAAK,CAACK,MAAM,CAAC;QAC9C;MACF;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAAT,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAKA,SAAAM,0BAAkCoB,WAA+B,EAAE;QACjE,IAAI,IAAI,CAAChB,IAAI,EAAE;UACb,MAAMiB,IAAI,GAAG;YACXC,OAAO,EAAE,IAAI;YACbC,UAAU,EAAE,IAAI;YAChBC,QAAQ,EAAE,IAAI;YACdC,MAAM,EAAE;cACNL;YACF;UACF,CAAC;UACD,IACE,IAAI,CAACM,aAAa,CAChB,IAAIC,WAAW,CACZ,IAAI,CAACvC,WAAW,CAAoBwC,gBAAgB,EACrDP,IACF,CACF,CAAC,EACD;YACA,IAAI,CAACjB,IAAI,GAAG,KAAK;YACjB,IAAI,CAACsB,aAAa,CAChB,IAAIC,WAAW,CAAE,IAAI,CAACvC,WAAW,CAAoByC,UAAU,EAAER,IAAI,CACvE,CAAC;UACH;QACF;MACF;;MAEA;AACF;AACA;IAFE;MAAA7B,IAAA;MAAAG,UAAA,GAGCtC,QAAQ,CAAC;QAAEyE,SAAS,EAAE;MAAkB,CAAC,CAAC;MAAArC,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKlBtC,QAAQ,CAAC;QAAE0E,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAxC,GAAA;MAAAC,MAAA;QAAA,OACpC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAG,UAAA,GAKXtC,QAAQ,CAAC;QAAE4E,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAxC,GAAA;MAAAC,MAAA;QAAA,OACrBhC,UAAU,CAACwE,OAAO;MAAA;IAAA;MAAA1C,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAVzB;AACF;AACA;MAIE;AACF;AACA;MAIE,SAAAyC,OAAA,EAAS;QACP,MAAM;UAAEC;QAAK,CAAC,GAAG,IAAI;QACrB,MAAMC,cAAc,GAAG,IAAI,CAACA,cAAc,CACvCC,KAAK,CAAC,GAAG,CAAC,CACVC,MAAM,CAACP,OAAO,CAAC,CACfQ,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAAC,aAAA,CAAAA,aAAA,KAAWF,GAAG;UAAE,CAACC,IAAI,GAAG;QAAI,EAAG,EAAE,CAAC,CAAC,CAAC;QACxD,MAAME,gBAAgB,GAAGzF,QAAQ,CAAAwF,aAAA;UAC/B,CAAE,GAAE5E,MAAO,mBAAkB,GAAG,IAAI;UACpC,CAAE,GAAEA,MAAO,sBAAqBqE,IAAK,EAAC,GAAGA;QAAI,GAC1CC,cAAc,CAClB,CAAC;QACF,OAAOjF,IAAI,CAAAyF,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB;AACA;AACA,iBAAe,CAAS;AACxB;AACA;AACA;AACA;AACA,gBAAc,CAAmB;AACjC;AACA;AACA,iBAAe,CAA6B;AAC5C;AACA;AACA;AACA;AACA,iBAAe,CAAS;AACxB;AACA;AACA,KAAI,GAhBa/E,MAAM,EAKP6E,gBAAgB,EAGf,IAAI,CAAC3B,qBAAqB,EAK1BlD,MAAM;MAIrB;IAAC;MAAAyB,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,eAAAqD,QAAcC,iBAAiB,EAAE;QAC/B,IAAIA,iBAAiB,CAACC,GAAG,CAAC,MAAM,CAAC,EAAE;UACjC,IAAI,IAAI,CAAC7C,IAAI,EAAE;YACb,IAAI,CAAC8C,SAAS,GAAG,IAAI,CAACpE,aAAa,CAAEC,aAAa;YAClD,MAAMoE,gBAAgB,GAAG,IAAI,CAACC,aAAa,CACxC,IAAI,CAAChE,WAAW,CAAoBiE,oBACvC,CAAC;YACD,MAAO,IAAI,CAACjE,WAAW,CAAoB2B,MAAM,CAAC,CAAC;YACnD,IAAIoC,gBAAgB,EAAE;cACpB;cACA;cACCA,gBAAgB,CAAiBtE,KAAK,CAAC,CAAC;YAC3C,CAAC,MAAM,IACL,CAACN,aAAa,CACZ,IAAI,CAACyC,gBAAgB,CAClB,IAAI,CAAC5B,WAAW,CAAoBxB,gBACvC,CAAC,EACD,IACF,CAAC,EACD;cACA,IAAI,CAACiB,KAAK,CAAC,CAAC;YACd;UACF,CAAC,MAAM,IACL,IAAI,CAACqE,SAAS,IACd,OAAQ,IAAI,CAACA,SAAS,CAAiBrE,KAAK,KAAK,UAAU,EAC3D;YACC,IAAI,CAACqE,SAAS,CAAiBrE,KAAK,CAAC,CAAC;YACvC,IAAI,CAACqE,SAAS,GAAG,IAAI;UACvB;QACF;MACF;;MAEA;AACF;AACA;AACA;IAHE;MAAA1D,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAIA,SAAAqB,OAAsBwC,EAAU,GAAG,CAAC,EAAE;QACpC,OAAO,IAAIC,OAAO,CAAEC,OAAO,IAAK;UAC9BC,UAAU,CAACD,OAAO,EAAEF,EAAE,CAAC;QACzB,CAAC,CAAC;MACJ;;MAEA;AACF;AACA;IAFE;MAAA/D,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAGA,SAAAyB,oBAAA,EAAiC;QAC/B,OAAQ,sBAAqBpD,MAAO,qBAAoB;MAC1D;;MAEA;AACF;AACA;IAFE;MAAAyB,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAGA,SAAA9B,iBAAA,EAA8B;QAC5B,OAAOA,iBAAgB;MACzB;;MAEA;AACF;AACA;IAFE;MAAA4B,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAGA,SAAA2D,qBAAA,EAAkC;QAChC,OAAQ,8BAA6BtF,MAAO,iBAAgBA,MAAO,sBAAqB;MAC1F;;MAEA;AACF;AACA;AACA;IAHE;MAAAyB,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAIA,SAAAkC,iBAAA,EAA8B;QAC5B,OAAQ,GAAE7D,MAAO,oBAAmB;MACtC;;MAEA;AACF;AACA;IAFE;MAAAyB,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,KAAA,EAGA,SAAAmC,WAAA,EAAwB;QACtB,OAAQ,GAAE9D,MAAO,eAAc;MACjC;IAAC;MAAAyB,IAAA;MAAA8D,MAAA;MAAA7D,GAAA;MAAAC,MAAA;QAAA,OAEe/B,MAAM;MAAA;IAAA;EAAA;AAAA,GA9QFF,iBAAiB,CAACF,UAAU,CAAC;AAiRnD,eAAeyB,OAAO"}
@@ -69,7 +69,25 @@ let BXMultiSelectItem = _decorate([customElement(`${prefix}-multi-select-item`)]
69
69
  selectionName,
70
70
  value
71
71
  } = this;
72
- return html(_t || (_t = _` <div class="${0}--list-box__menu-item__option"> <div class="${0}--form-item ${0}--checkbox-wrapper"> <input id="input" type="checkbox" class="${0}--checkbox" tabindex="-1" readonly="readonly" ?disabled="${0}" .checked="${0}" name="${0}" value="${0}"> <label for="input" class="${0}--checkbox-label"> <span class="${0}--checkbox-label-text"><slot></slot></span> </label> </div> </div> `), prefix, prefix, prefix, prefix, disabled, selected, ifDefined(selectionName || undefined), value, prefix, prefix);
72
+ return html(_t || (_t = _`
73
+ <div class="${0}--list-box__menu-item__option">
74
+ <div class="${0}--form-item ${0}--checkbox-wrapper">
75
+ <input
76
+ id="input"
77
+ type="checkbox"
78
+ class="${0}--checkbox"
79
+ tabindex="-1"
80
+ readonly
81
+ ?disabled=${0}
82
+ .checked=${0}
83
+ name="${0}"
84
+ value="${0}" />
85
+ <label for="input" class="${0}--checkbox-label">
86
+ <span class="${0}--checkbox-label-text"><slot></slot></span>
87
+ </label>
88
+ </div>
89
+ </div>
90
+ `), prefix, prefix, prefix, prefix, disabled, selected, ifDefined(selectionName || undefined), value, prefix, prefix);
73
91
  }
74
92
 
75
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select-item.js","names":["settings","ifDefined","html","property","BXDropdownItem","styles","carbonElement","customElement","prefix","BXMultiSelectItem","_decorate","_initialize","_BXDropdownItem","constructor","args","F","d","kind","decorators","type","Boolean","key","value","attribute","render","disabled","selected","selectionName","_t","_","undefined","static","selectorList"],"sources":["components/multi-select/multi-select-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 { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, property } from 'lit-element';\nimport BXDropdownItem from '../dropdown/dropdown-item';\nimport styles from './multi-select.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Multi select item.\n *\n * @element bx-multi-select-item\n */\n@customElement(`${prefix}-multi-select-item`)\nclass BXMultiSelectItem extends BXDropdownItem {\n /**\n * The property to hide when item is filtered from input\n */\n @property({ type: Boolean })\n filtered;\n\n /**\n * The `name` attribute for the `<input>` for selection.\n */\n @property({ attribute: 'selection-name' })\n selectionName = '';\n\n render() {\n const { disabled, selected, selectionName, value } = this;\n return html`\n <div class=\"${prefix}--list-box__menu-item__option\">\n <div class=\"${prefix}--form-item ${prefix}--checkbox-wrapper\">\n <input\n id=\"input\"\n type=\"checkbox\"\n class=\"${prefix}--checkbox\"\n tabindex=\"-1\"\n readonly\n ?disabled=${disabled}\n .checked=${selected}\n name=\"${ifDefined(selectionName || undefined)}\"\n value=\"${value}\" />\n <label for=\"input\" class=\"${prefix}--checkbox-label\">\n <span class=\"${prefix}--checkbox-label-text\"><slot></slot></span>\n </label>\n </div>\n </div>\n `;\n }\n\n /**\n * A selector that will return multi select.\n */\n static get selectorList() {\n return `${prefix}-multi-select`;\n }\n\n static styles = styles;\n}\n\nexport default BXMultiSelectItem;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SAASC,IAAI,EAAEC,QAAQ,QAAQ,aAAa;AAC5C,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,MAAM,MAAM,yBAAqB;AACxC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGR,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMS,iBAAiB,GAAAC,SAAA,EADtBH,aAAa,CAAE,GAAEC,MAAO,oBAAmB,CAAC,aAAAG,WAAA,EAAAC,eAAA;EAA7C,MACMH,iBAAiB,SAAAG,eAAA,CAAwB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA4C/C;EAAC;IAAAI,CAAA,EA5CKN,iBAAiB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIpBf,QAAQ,CAAC;QAAEgB,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAAC,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAM3Bf,QAAQ,CAAC;QAAEoB,SAAS,EAAE;MAAiB,CAAC,CAAC;MAAAF,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAL,IAAA;MAAAI,GAAA;MAAAC,KAAA;MAVlB;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAE,OAAA,EAAS;QACP,MAAM;UAAEC,QAAQ;UAAEC,QAAQ;UAAEC,aAAa;UAAEL;QAAM,CAAC,GAAG,IAAI;QACzD,OAAOpB,IAAI,CAAA0B,EAAA,KAAAA,EAAA,GAAAC,CAAA,sYACKrB,MAAM,EACJA,MAAM,EAAeA,MAAM,EAI5BA,MAAM,EAGHiB,QAAQ,EACTC,QAAQ,EACXzB,SAAS,CAAC0B,aAAa,IAAIG,SAAS,CAAC,EACpCR,KAAK,EACYd,MAAM,EACjBA,MAAM;MAK/B;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAc,MAAA;MAAAV,GAAA;MAAAC,KAAA,EAGA,SAAAU,aAAA,EAA0B;QACxB,OAAQ,GAAExB,MAAO,eAAc;MACjC;IAAC;MAAAS,IAAA;MAAAc,MAAA;MAAAV,GAAA;MAAAC,MAAA;QAAA,OAEejB,MAAM;MAAA;IAAA;EAAA;AAAA,GA3CQD,cAAc;AA8C9C,eAAeK,iBAAiB"}
1
+ {"version":3,"file":"multi-select-item.js","names":["settings","ifDefined","html","property","BXDropdownItem","styles","carbonElement","customElement","prefix","BXMultiSelectItem","_decorate","_initialize","_BXDropdownItem","constructor","args","F","d","kind","decorators","type","Boolean","key","value","attribute","render","disabled","selected","selectionName","_t","_","undefined","static","selectorList"],"sources":["components/multi-select/multi-select-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 { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, property } from 'lit-element';\nimport BXDropdownItem from '../dropdown/dropdown-item';\nimport styles from './multi-select.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Multi select item.\n *\n * @element bx-multi-select-item\n */\n@customElement(`${prefix}-multi-select-item`)\nclass BXMultiSelectItem extends BXDropdownItem {\n /**\n * The property to hide when item is filtered from input\n */\n @property({ type: Boolean })\n filtered;\n\n /**\n * The `name` attribute for the `<input>` for selection.\n */\n @property({ attribute: 'selection-name' })\n selectionName = '';\n\n render() {\n const { disabled, selected, selectionName, value } = this;\n return html`\n <div class=\"${prefix}--list-box__menu-item__option\">\n <div class=\"${prefix}--form-item ${prefix}--checkbox-wrapper\">\n <input\n id=\"input\"\n type=\"checkbox\"\n class=\"${prefix}--checkbox\"\n tabindex=\"-1\"\n readonly\n ?disabled=${disabled}\n .checked=${selected}\n name=\"${ifDefined(selectionName || undefined)}\"\n value=\"${value}\" />\n <label for=\"input\" class=\"${prefix}--checkbox-label\">\n <span class=\"${prefix}--checkbox-label-text\"><slot></slot></span>\n </label>\n </div>\n </div>\n `;\n }\n\n /**\n * A selector that will return multi select.\n */\n static get selectorList() {\n return `${prefix}-multi-select`;\n }\n\n static styles = styles;\n}\n\nexport default BXMultiSelectItem;\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,SAAS,QAAQ,gCAAgC;AAC1D,SAASC,IAAI,EAAEC,QAAQ,QAAQ,aAAa;AAC5C,OAAOC,cAAc,MAAM,2BAA2B;AACtD,OAAOC,MAAM,MAAM,yBAAqB;AACxC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGR,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AAJA,IAMMS,iBAAiB,GAAAC,SAAA,EADtBH,aAAa,CAAE,GAAEC,MAAO,oBAAmB,CAAC,aAAAG,WAAA,EAAAC,eAAA;EAA7C,MACMH,iBAAiB,SAAAG,eAAA,CAAwB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EA4C/C;EAAC;IAAAI,CAAA,EA5CKN,iBAAiB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIpBf,QAAQ,CAAC;QAAEgB,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAAC,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAM3Bf,QAAQ,CAAC;QAAEoB,SAAS,EAAE;MAAiB,CAAC,CAAC;MAAAF,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAL,IAAA;MAAAI,GAAA;MAAAC,KAAA;MAVlB;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAE,OAAA,EAAS;QACP,MAAM;UAAEC,QAAQ;UAAEC,QAAQ;UAAEC,aAAa;UAAEL;QAAM,CAAC,GAAG,IAAI;QACzD,OAAOpB,IAAI,CAAA0B,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB,oBAAkB,CAAS;AAC3B,sBAAoB,CAAS,eAAY,CAAS;AAClD;AACA;AACA;AACA,qBAAmB,CAAS;AAC5B;AACA;AACA,wBAAsB,CAAW;AACjC,uBAAqB,CAAW;AAChC,oBAAkB,CAAwC;AAC1D,qBAAmB,CAAQ;AAC3B,sCAAoC,CAAS;AAC7C,2BAAyB,CAAS;AAClC;AACA;AACA;AACA,KAAI,GAjBgBrB,MAAM,EACJA,MAAM,EAAeA,MAAM,EAI5BA,MAAM,EAGHiB,QAAQ,EACTC,QAAQ,EACXzB,SAAS,CAAC0B,aAAa,IAAIG,SAAS,CAAC,EACpCR,KAAK,EACYd,MAAM,EACjBA,MAAM;MAK/B;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAc,MAAA;MAAAV,GAAA;MAAAC,KAAA,EAGA,SAAAU,aAAA,EAA0B;QACxB,OAAQ,GAAExB,MAAO,eAAc;MACjC;IAAC;MAAAS,IAAA;MAAAc,MAAA;MAAAV,GAAA;MAAAC,MAAA;QAAA,OAEejB,MAAM;MAAA;IAAA;EAAA;AAAA,GA3CQD,cAAc;AA8C9C,eAAeK,iBAAiB"}
@@ -231,7 +231,17 @@ let BXMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functio
231
231
  clearSelectionLabel,
232
232
  _selectedItemsCount: selectedItemsCount
233
233
  } = this;
234
- return selectedItemsCount === 0 ? undefined : html(_t || (_t = _` <div id="selection-button" role="button" class="${0}--list-box__selection ${0}--list-box__selection--multi ${0}--tag--filter" tabindex="0" title="${0}"> ${0} ${0} </div> `), prefix, prefix, prefix, clearSelectionLabel, selectedItemsCount, Close16({
234
+ return selectedItemsCount === 0 ? undefined : html(_t || (_t = _`
235
+ <div
236
+ id="selection-button"
237
+ role="button"
238
+ class="${0}--list-box__selection ${0}--list-box__selection--multi ${0}--tag--filter"
239
+ tabindex="0"
240
+ title="${0}">
241
+ ${0}
242
+ ${0}
243
+ </div>
244
+ `), prefix, prefix, prefix, clearSelectionLabel, selectedItemsCount, Close16({
235
245
  'aria-label': clearSelectionLabel
236
246
  }));
237
247
  }
@@ -247,7 +257,20 @@ let BXMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functio
247
257
  triggerContent,
248
258
  _selectedItemContent: selectedItemContent
249
259
  } = this;
250
- return !this.filterable ? html(_t2 || (_t2 = _` <span id="trigger-label" class="${0}--list-box__label">${0}</span> `), prefix, selectedItemContent || triggerContent) : html(_t3 || (_t3 = _` <input id="trigger-label" class="${0}--text-input" placeholder="${0}" role="combobox" aria-controls="menu-body" aria-autocomplete="list" @input="${0}"> `), prefix, triggerContent, this._handleInput);
260
+ return !this.filterable ? html(_t2 || (_t2 = _`
261
+ <span id="trigger-label" class="${0}--list-box__label"
262
+ >${0}</span
263
+ >
264
+ `), prefix, selectedItemContent || triggerContent) : html(_t3 || (_t3 = _`
265
+ <input
266
+ id="trigger-label"
267
+ class="${0}--text-input"
268
+ placeholder="${0}"
269
+ role="combobox"
270
+ aria-controls="menu-body"
271
+ aria-autocomplete="list"
272
+ @input="${0}" />
273
+ `), prefix, triggerContent, this._handleInput);
251
274
  }
252
275
  }, {
253
276
  kind: "method",
@@ -257,7 +280,16 @@ let BXMultiSelect = _decorate([customElement(`${prefix}-multi-select`)], functio
257
280
  clearSelectionLabel,
258
281
  _filterInputNode: filterInputNode
259
282
  } = this;
260
- return filterInputNode && filterInputNode.value.length > 0 && this.filterable ? html(_t4 || (_t4 = _` <div id="clear-button" role="button" class="${0}--list-box__selection" tabindex="0" title="${0}"> ${0} </div> `), prefix, clearSelectionLabel, Close16({
283
+ return filterInputNode && filterInputNode.value.length > 0 && this.filterable ? html(_t4 || (_t4 = _`
284
+ <div
285
+ id="clear-button"
286
+ role="button"
287
+ class="${0}--list-box__selection"
288
+ tabindex="0"
289
+ title="${0}">
290
+ ${0}
291
+ </div>
292
+ `), prefix, clearSelectionLabel, Close16({
261
293
  'aria-label': clearSelectionLabel
262
294
  })) : undefined;
263
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select.js","names":["settings","html","property","query","Close16","filter","forEach","indexOf","BXDropdown","DROPDOWN_KEYBOARD_ACTION","styles","carbonElement","customElement","DROPDOWN_COLOR_SCHEME","DROPDOWN_SIZE","DROPDOWN_TYPE","prefix","BXMultiSelect","_decorate","_initialize","_BXDropdown","constructor","args","F","d","kind","decorators","type","Boolean","key","value","_selectionShouldChange","itemToSelect","_selectionDidChange","selected","_assistiveStatusText","selectedItemAssistiveText","unselectedItemAssistiveText","querySelectorAll","selectorItemSelected","item","_handleUserInitiatedToggle","unselectedAllAssistiveText","selectorItem","map","join","_handleClickInner","event","_this$_selectionButto","_this$_clearButtonNod","_selectionButtonNode","contains","target","_handleUserInitiatedSelectItem","filterable","_filterInputNode","focus","_triggerNode","_clearButtonNode","_handleUserInitiatedClearInput","shouldIgnoreClickInner","elem","closest","selectorIgnoreClickInner","composedPath","some","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_clearButtonNod2","_this$_selectionButto2","action","getAction","TRIGGERING","open","_handleKeypressInnerFlterable","highlightedItem","querySelector","selectorItemHighlighted","_renderPrecedingTriggerContent","clearSelectionLabel","_selectedItemsCount","selectedItemsCount","undefined","_t","_","_renderTriggerContent","triggerContent","_selectedItemContent","selectedItemContent","_t2","_t3","_handleInput","_renderFollowingTriggerContent","filterInputNode","length","_t4","items","inputValue","toLocaleLowerCase","itemValue","innerText","includes","setAttribute","removeAttribute","requestUpdate","_navigate","direction","selectorItemResults","highlightedIndex","nextIndex","i","highlighted","selectorItemFiltered","attribute","shouldUpdate","changedProperties","has","size","values","split","static","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/multi-select/multi-select.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, property, query, TemplateResult } from 'lit-element';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport {\n filter,\n forEach,\n indexOf,\n} from '../../globals/internal/collection-helpers';\nimport BXDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport BXMultiSelectItem from './multi-select-item';\nimport styles from './multi-select.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_COLOR_SCHEME,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\n\nconst { prefix } = settings;\n\n/**\n * Multi select.\n *\n * @element bx-multi-select\n * @fires bx-multi-select-beingselected\n * The custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires bx-multi-select-selected - The custom event fired after a multi select item is selected upon a user gesture.\n * @fires bx-multi-select-beingtoggled\n * The custom event fired before the open state of this multi select is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires bx-multi-select-toggled\n * The custom event fired after the open state of this multi select is toggled upon a user gesture.\n */\n@customElement(`${prefix}-multi-select`)\nclass BXMultiSelect extends BXDropdown {\n @property({ type: Boolean })\n filterable;\n\n /**\n * The count of selected items.\n */\n private _selectedItemsCount = 0;\n\n /**\n * The clear button.\n */\n @query('#clear-button')\n private _clearButtonNode!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The trigger button.\n */\n @query(`.${prefix}--list-box__field`)\n private _triggerNode!: HTMLElement;\n\n protected _selectionShouldChange(itemToSelect?: BXMultiSelectItem) {\n // If we are selecting an item, assumes we always toggle\n return Boolean(this.value || itemToSelect);\n }\n\n protected _selectionDidChange(itemToSelect?: BXMultiSelectItem) {\n if (itemToSelect) {\n itemToSelect.selected = !itemToSelect.selected;\n this._assistiveStatusText = itemToSelect.selected\n ? this.selectedItemAssistiveText\n : this.unselectedItemAssistiveText;\n } else {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXMultiSelect).selectorItemSelected\n ),\n (item) => {\n (item as BXMultiSelectItem).selected = false;\n }\n );\n this._handleUserInitiatedToggle(false);\n this._assistiveStatusText = this.unselectedAllAssistiveText;\n }\n // Change in `.selected` hasn't been reflected to the corresponding attribute yet\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof BXMultiSelect).selectorItem\n ),\n (item) => (item as BXMultiSelectItem).selected\n )\n .map((item) => (item as BXMultiSelectItem).value)\n .join(',');\n }\n\n protected _handleClickInner(event: MouseEvent) {\n if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this._clearButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else {\n const shouldIgnoreClickInner = (elem) =>\n elem.closest &&\n elem.closest(\n (this.constructor as typeof BXMultiSelect).selectorIgnoreClickInner\n );\n if (!event.composedPath().some(shouldIgnoreClickInner)) {\n super._handleClickInner(event);\n }\n if (this.filterable) this._filterInputNode.focus();\n }\n }\n\n /**\n * Handler for the `keypress` event, ensures filter still works upon entering space\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof BXDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n\n if (\n this._clearButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n this.open = true;\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this.filterable) {\n this._handleKeypressInnerFlterable(event);\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Special andler for the `keypress` event, ensures space selection for filterable\n * variation is disabled\n */\n\n protected _handleKeypressInnerFlterable(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 (key) {\n case 'Enter':\n {\n const constructor = this.constructor as typeof BXDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as BXMultiSelectItem;\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 protected _renderPrecedingTriggerContent() {\n const { clearSelectionLabel, _selectedItemsCount: selectedItemsCount } =\n this;\n return selectedItemsCount === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection ${prefix}--list-box__selection--multi ${prefix}--tag--filter\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${selectedItemsCount}\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n @returns The main content of the trigger button.\n */\n protected _renderTriggerContent(): TemplateResult {\n const { triggerContent, _selectedItemContent: selectedItemContent } = this;\n return !this.filterable\n ? html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || triggerContent}</span\n >\n `\n : html`\n <input\n id=\"trigger-label\"\n class=\"${prefix}--text-input\"\n placeholder=\"${triggerContent}\"\n role=\"combobox\"\n aria-controls=\"menu-body\"\n aria-autocomplete=\"list\"\n @input=\"${this._handleInput}\" />\n `;\n }\n\n protected _renderFollowingTriggerContent(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputNode: filterInputNode } = this;\n return filterInputNode &&\n filterInputNode.value.length > 0 &&\n this.filterable\n ? html`\n <div\n id=\"clear-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `\n : undefined;\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof BXMultiSelect).selectorItem\n );\n const inputValue = this._filterInputNode.value.toLocaleLowerCase();\n\n if (!this.open) this.open = true;\n\n forEach(items, (item) => {\n const itemValue = (item as HTMLElement).innerText.toLocaleLowerCase();\n\n if (!itemValue.includes(inputValue)) {\n (item as BXMultiSelectItem).setAttribute('filtered', '');\n (item as BXMultiSelectItem).removeAttribute('highlighted');\n } else {\n (item as BXMultiSelectItem).removeAttribute('filtered');\n }\n });\n\n this.requestUpdate();\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 if (!this.filterable) {\n this._triggerNode.focus();\n super._navigate(direction);\n } else {\n // only navigate through remaining item\n const constructor = this.constructor as typeof BXMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemResults);\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n );\n const highlightedIndex = indexOf(items, highlightedItem!);\n\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 BXMultiSelectItem).highlighted = i === nextIndex;\n });\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n const constructor = this.constructor as typeof BXMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemFiltered);\n this._filterInputNode.value = '';\n this.open = true;\n this._filterInputNode.focus();\n forEach(items, (item) => {\n (item as BXMultiSelectItem).removeAttribute('filtered');\n });\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * An assistive text for screen reader to announce, telling that an item is unselected.\n */\n @property({ attribute: 'unselected-item-assistive-text' })\n unselectedItemAssistiveText = 'Unselected an item.';\n\n /**\n * An assistive text for screen reader to announce, telling that all items are unselected.\n */\n @property({ attribute: 'unselected-all-assistive-text' })\n unselectedAllAssistiveText = 'Unselected all items.';\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof BXMultiSelect;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as BXMultiSelectItem).size = this.size;\n });\n }\n if (changedProperties.has('value')) {\n const { value } = this;\n const values = !value ? [] : value.split(',');\n // Updates selection beforehand because our rendering logic for `<bx-multi-select>` looks for selected items via `qSA()`\n const items = this.querySelectorAll(selectorItem);\n forEach(items, (elem) => {\n (elem as BXMultiSelectItem).selected =\n values.indexOf((elem as BXMultiSelectItem).value) >= 0;\n });\n this._selectedItemsCount = filter(\n items,\n (elem) => values.indexOf((elem as BXMultiSelectItem).value) >= 0\n ).length;\n }\n return true;\n }\n\n /**\n * A selector to ignore the `click` events from.\n * Primary for the checkbox label where the `click` event will happen from the associated check box.\n */\n private static get selectorIgnoreClickInner() {\n return `.${prefix}--checkbox-label`;\n }\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-multi-select-item[highlighted]`;\n }\n\n /**\n * A selector that will return multi select items.\n * We use a separate property from `.itemTagName` due to the nature in difference of tag name vs. selector.\n */\n static get selectorItem() {\n return `${prefix}-multi-select-item`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemFiltered() {\n return `${prefix}-multi-select-item[filtered]`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemResults() {\n return `${prefix}-multi-select-item:not([filtered])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-multi-select-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this multi select item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this multi select item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-multi-select-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this multi select item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-multi-select-toggled`;\n }\n\n /**\n * The name of the custom event fired before a multi select 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}-multi-select-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a multi select item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-multi-select-selected`;\n }\n\n static styles = styles;\n}\n\nexport default BXMultiSelect;\n"],"mappings":"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"}
1
+ {"version":3,"file":"multi-select.js","names":["settings","html","property","query","Close16","filter","forEach","indexOf","BXDropdown","DROPDOWN_KEYBOARD_ACTION","styles","carbonElement","customElement","DROPDOWN_COLOR_SCHEME","DROPDOWN_SIZE","DROPDOWN_TYPE","prefix","BXMultiSelect","_decorate","_initialize","_BXDropdown","constructor","args","F","d","kind","decorators","type","Boolean","key","value","_selectionShouldChange","itemToSelect","_selectionDidChange","selected","_assistiveStatusText","selectedItemAssistiveText","unselectedItemAssistiveText","querySelectorAll","selectorItemSelected","item","_handleUserInitiatedToggle","unselectedAllAssistiveText","selectorItem","map","join","_handleClickInner","event","_this$_selectionButto","_this$_clearButtonNod","_selectionButtonNode","contains","target","_handleUserInitiatedSelectItem","filterable","_filterInputNode","focus","_triggerNode","_clearButtonNode","_handleUserInitiatedClearInput","shouldIgnoreClickInner","elem","closest","selectorIgnoreClickInner","composedPath","some","_get","_getPrototypeOf","prototype","call","_handleKeypressInner","_this$_clearButtonNod2","_this$_selectionButto2","action","getAction","TRIGGERING","open","_handleKeypressInnerFlterable","highlightedItem","querySelector","selectorItemHighlighted","_renderPrecedingTriggerContent","clearSelectionLabel","_selectedItemsCount","selectedItemsCount","undefined","_t","_","_renderTriggerContent","triggerContent","_selectedItemContent","selectedItemContent","_t2","_t3","_handleInput","_renderFollowingTriggerContent","filterInputNode","length","_t4","items","inputValue","toLocaleLowerCase","itemValue","innerText","includes","setAttribute","removeAttribute","requestUpdate","_navigate","direction","selectorItemResults","highlightedIndex","nextIndex","i","highlighted","selectorItemFiltered","attribute","shouldUpdate","changedProperties","has","size","values","split","static","eventBeforeToggle","eventToggle","eventBeforeSelect","eventSelect"],"sources":["components/multi-select/multi-select.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2020, 2023\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, property, query, TemplateResult } from 'lit-element';\nimport Close16 from '@carbon/icons/lib/close/16';\nimport {\n filter,\n forEach,\n indexOf,\n} from '../../globals/internal/collection-helpers';\nimport BXDropdown, { DROPDOWN_KEYBOARD_ACTION } from '../dropdown/dropdown';\nimport BXMultiSelectItem from './multi-select-item';\nimport styles from './multi-select.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport {\n DROPDOWN_COLOR_SCHEME,\n DROPDOWN_SIZE,\n DROPDOWN_TYPE,\n} from '../dropdown/dropdown';\n\nconst { prefix } = settings;\n\n/**\n * Multi select.\n *\n * @element bx-multi-select\n * @fires bx-multi-select-beingselected\n * The custom event fired before a multi select item is selected upon a user gesture.\n * Cancellation of this event stops changing the user-initiated selection.\n * @fires bx-multi-select-selected - The custom event fired after a multi select item is selected upon a user gesture.\n * @fires bx-multi-select-beingtoggled\n * The custom event fired before the open state of this multi select is toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated toggling.\n * @fires bx-multi-select-toggled\n * The custom event fired after the open state of this multi select is toggled upon a user gesture.\n */\n@customElement(`${prefix}-multi-select`)\nclass BXMultiSelect extends BXDropdown {\n @property({ type: Boolean })\n filterable;\n\n /**\n * The count of selected items.\n */\n private _selectedItemsCount = 0;\n\n /**\n * The clear button.\n */\n @query('#clear-button')\n private _clearButtonNode!: HTMLElement;\n\n /**\n * The selection button.\n */\n @query('#selection-button')\n private _selectionButtonNode!: HTMLElement;\n\n /**\n * The `<input>` for filtering.\n */\n @query('input')\n private _filterInputNode!: HTMLInputElement;\n\n /**\n * The trigger button.\n */\n @query(`.${prefix}--list-box__field`)\n private _triggerNode!: HTMLElement;\n\n protected _selectionShouldChange(itemToSelect?: BXMultiSelectItem) {\n // If we are selecting an item, assumes we always toggle\n return Boolean(this.value || itemToSelect);\n }\n\n protected _selectionDidChange(itemToSelect?: BXMultiSelectItem) {\n if (itemToSelect) {\n itemToSelect.selected = !itemToSelect.selected;\n this._assistiveStatusText = itemToSelect.selected\n ? this.selectedItemAssistiveText\n : this.unselectedItemAssistiveText;\n } else {\n forEach(\n this.querySelectorAll(\n (this.constructor as typeof BXMultiSelect).selectorItemSelected\n ),\n (item) => {\n (item as BXMultiSelectItem).selected = false;\n }\n );\n this._handleUserInitiatedToggle(false);\n this._assistiveStatusText = this.unselectedAllAssistiveText;\n }\n // Change in `.selected` hasn't been reflected to the corresponding attribute yet\n this.value = filter(\n this.querySelectorAll(\n (this.constructor as typeof BXMultiSelect).selectorItem\n ),\n (item) => (item as BXMultiSelectItem).selected\n )\n .map((item) => (item as BXMultiSelectItem).value)\n .join(',');\n }\n\n protected _handleClickInner(event: MouseEvent) {\n if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this._clearButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedClearInput();\n } else {\n const shouldIgnoreClickInner = (elem) =>\n elem.closest &&\n elem.closest(\n (this.constructor as typeof BXMultiSelect).selectorIgnoreClickInner\n );\n if (!event.composedPath().some(shouldIgnoreClickInner)) {\n super._handleClickInner(event);\n }\n if (this.filterable) this._filterInputNode.focus();\n }\n }\n\n /**\n * Handler for the `keypress` event, ensures filter still works upon entering space\n */\n protected _handleKeypressInner(event: KeyboardEvent) {\n const { key } = event;\n const action = (this.constructor as typeof BXDropdown).getAction(key);\n const { TRIGGERING } = DROPDOWN_KEYBOARD_ACTION;\n\n if (\n this._clearButtonNode?.contains(event.target as Node) &&\n // Space key should be handled by `<input>` unless \"clear selection\" button has focus\n (action === TRIGGERING || key === ' ')\n ) {\n this._handleUserInitiatedClearInput();\n } else if (this._selectionButtonNode?.contains(event.target as Node)) {\n this._handleUserInitiatedSelectItem();\n this.open = true;\n if (this.filterable) {\n this._filterInputNode.focus();\n } else {\n this._triggerNode.focus();\n }\n } else if (this.filterable) {\n this._handleKeypressInnerFlterable(event);\n } else {\n super._handleKeypressInner(event);\n }\n }\n\n /**\n * Special andler for the `keypress` event, ensures space selection for filterable\n * variation is disabled\n */\n\n protected _handleKeypressInnerFlterable(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 (key) {\n case 'Enter':\n {\n const constructor = this.constructor as typeof BXDropdown;\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n ) as BXMultiSelectItem;\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 protected _renderPrecedingTriggerContent() {\n const { clearSelectionLabel, _selectedItemsCount: selectedItemsCount } =\n this;\n return selectedItemsCount === 0\n ? undefined\n : html`\n <div\n id=\"selection-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection ${prefix}--list-box__selection--multi ${prefix}--tag--filter\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${selectedItemsCount}\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `;\n }\n\n /**\n @returns The main content of the trigger button.\n */\n protected _renderTriggerContent(): TemplateResult {\n const { triggerContent, _selectedItemContent: selectedItemContent } = this;\n return !this.filterable\n ? html`\n <span id=\"trigger-label\" class=\"${prefix}--list-box__label\"\n >${selectedItemContent || triggerContent}</span\n >\n `\n : html`\n <input\n id=\"trigger-label\"\n class=\"${prefix}--text-input\"\n placeholder=\"${triggerContent}\"\n role=\"combobox\"\n aria-controls=\"menu-body\"\n aria-autocomplete=\"list\"\n @input=\"${this._handleInput}\" />\n `;\n }\n\n protected _renderFollowingTriggerContent(): TemplateResult | void {\n const { clearSelectionLabel, _filterInputNode: filterInputNode } = this;\n return filterInputNode &&\n filterInputNode.value.length > 0 &&\n this.filterable\n ? html`\n <div\n id=\"clear-button\"\n role=\"button\"\n class=\"${prefix}--list-box__selection\"\n tabindex=\"0\"\n title=\"${clearSelectionLabel}\">\n ${Close16({ 'aria-label': clearSelectionLabel })}\n </div>\n `\n : undefined;\n }\n\n /**\n * Handles `input` event on the `<input>` for filtering.\n */\n protected _handleInput() {\n const items = this.querySelectorAll(\n (this.constructor as typeof BXMultiSelect).selectorItem\n );\n const inputValue = this._filterInputNode.value.toLocaleLowerCase();\n\n if (!this.open) this.open = true;\n\n forEach(items, (item) => {\n const itemValue = (item as HTMLElement).innerText.toLocaleLowerCase();\n\n if (!itemValue.includes(inputValue)) {\n (item as BXMultiSelectItem).setAttribute('filtered', '');\n (item as BXMultiSelectItem).removeAttribute('highlighted');\n } else {\n (item as BXMultiSelectItem).removeAttribute('filtered');\n }\n });\n\n this.requestUpdate();\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 if (!this.filterable) {\n this._triggerNode.focus();\n super._navigate(direction);\n } else {\n // only navigate through remaining item\n const constructor = this.constructor as typeof BXMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemResults);\n const highlightedItem = this.querySelector(\n constructor.selectorItemHighlighted\n );\n const highlightedIndex = indexOf(items, highlightedItem!);\n\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 BXMultiSelectItem).highlighted = i === nextIndex;\n });\n }\n }\n\n /**\n * Handles user-initiated clearing the `<input>` for filtering.\n */\n protected _handleUserInitiatedClearInput() {\n const constructor = this.constructor as typeof BXMultiSelect;\n const items = this.querySelectorAll(constructor.selectorItemFiltered);\n this._filterInputNode.value = '';\n this.open = true;\n this._filterInputNode.focus();\n forEach(items, (item) => {\n (item as BXMultiSelectItem).removeAttribute('filtered');\n });\n }\n\n /**\n * The `aria-label` attribute for the icon to clear selection.\n */\n @property({ attribute: 'clear-selection-label' })\n clearSelectionLabel = '';\n\n /**\n * An assistive text for screen reader to announce, telling that an item is unselected.\n */\n @property({ attribute: 'unselected-item-assistive-text' })\n unselectedItemAssistiveText = 'Unselected an item.';\n\n /**\n * An assistive text for screen reader to announce, telling that all items are unselected.\n */\n @property({ attribute: 'unselected-all-assistive-text' })\n unselectedAllAssistiveText = 'Unselected all items.';\n\n shouldUpdate(changedProperties) {\n const { selectorItem } = this.constructor as typeof BXMultiSelect;\n if (changedProperties.has('size')) {\n forEach(this.querySelectorAll(selectorItem), (elem) => {\n (elem as BXMultiSelectItem).size = this.size;\n });\n }\n if (changedProperties.has('value')) {\n const { value } = this;\n const values = !value ? [] : value.split(',');\n // Updates selection beforehand because our rendering logic for `<bx-multi-select>` looks for selected items via `qSA()`\n const items = this.querySelectorAll(selectorItem);\n forEach(items, (elem) => {\n (elem as BXMultiSelectItem).selected =\n values.indexOf((elem as BXMultiSelectItem).value) >= 0;\n });\n this._selectedItemsCount = filter(\n items,\n (elem) => values.indexOf((elem as BXMultiSelectItem).value) >= 0\n ).length;\n }\n return true;\n }\n\n /**\n * A selector to ignore the `click` events from.\n * Primary for the checkbox label where the `click` event will happen from the associated check box.\n */\n private static get selectorIgnoreClickInner() {\n return `.${prefix}--checkbox-label`;\n }\n\n /**\n * A selector that will return highlighted items.\n */\n static get selectorItemHighlighted() {\n return `${prefix}-multi-select-item[highlighted]`;\n }\n\n /**\n * A selector that will return multi select items.\n * We use a separate property from `.itemTagName` due to the nature in difference of tag name vs. selector.\n */\n static get selectorItem() {\n return `${prefix}-multi-select-item`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemFiltered() {\n return `${prefix}-multi-select-item[filtered]`;\n }\n\n /**\n * A selector that will return remaining items after a filter.\n */\n static get selectorItemResults() {\n return `${prefix}-multi-select-item:not([filtered])`;\n }\n\n /**\n * A selector that will return selected items.\n */\n static get selectorItemSelected() {\n return `${prefix}-multi-select-item[selected]`;\n }\n\n /**\n * The name of the custom event fired before this multi select item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this multi select item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-multi-select-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this multi select item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-multi-select-toggled`;\n }\n\n /**\n * The name of the custom event fired before a multi select 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}-multi-select-beingselected`;\n }\n\n /**\n * The name of the custom event fired after a a multi select item is selected upon a user gesture.\n */\n static get eventSelect() {\n return `${prefix}-multi-select-selected`;\n }\n\n static styles = styles;\n}\n\nexport default BXMultiSelect;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,QAAwB,aAAa;AACnE,OAAOC,OAAO,MAAM,sBAA4B;AAChD,SACEC,MAAM,EACNC,OAAO,EACPC,OAAO,QACF,2CAA2C;AAClD,OAAOC,UAAU,IAAIC,wBAAwB,QAAQ,sBAAsB;AAE3E,OAAOC,MAAM,MAAM,yBAAqB;AACxC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,SACEC,qBAAqB,EACrBC,aAAa,EACbC,aAAa,QACR,sBAAsB;AAE7B,MAAM;EAAEC;AAAO,CAAC,GAAGhB,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbA,IAeMiB,aAAa,GAAAC,SAAA,EADlBN,aAAa,CAAE,GAAEI,MAAO,eAAc,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAxC,MACMH,aAAa,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAkZvC;EAAC;IAAAI,CAAA,EAlZKN,aAAa;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAChBxB,QAAQ,CAAC;QAAEyB,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAAC,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAI,GAAA;MAAAC,MAAA;QAAA,OAME,CAAC;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAK9BvB,KAAK,CAAC,eAAe,CAAC;MAAA0B,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAMtBvB,KAAK,CAAC,mBAAmB,CAAC;MAAA0B,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAM1BvB,KAAK,CAAC,OAAO,CAAC;MAAA0B,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAMdvB,KAAK,CAAE,IAAGa,MAAO,mBAAkB,CAAC;MAAAa,GAAA;MAAAC,KAAA;IAAA;MAAAL,IAAA;MAAAI,GAAA;MAAAC,KAAA;MA1BrC;AACF;AACA;;MAGE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE;AACF;AACA;;MAIE,SAAAC,uBAAiCC,YAAgC,EAAE;QACjE;QACA,OAAOJ,OAAO,CAAC,IAAI,CAACE,KAAK,IAAIE,YAAY,CAAC;MAC5C;IAAC;MAAAP,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAED,SAAAG,oBAA8BD,YAAgC,EAAE;QAC9D,IAAIA,YAAY,EAAE;UAChBA,YAAY,CAACE,QAAQ,GAAG,CAACF,YAAY,CAACE,QAAQ;UAC9C,IAAI,CAACC,oBAAoB,GAAGH,YAAY,CAACE,QAAQ,GAC7C,IAAI,CAACE,yBAAyB,GAC9B,IAAI,CAACC,2BAA2B;QACtC,CAAC,MAAM;UACL/B,OAAO,CACL,IAAI,CAACgC,gBAAgB,CAClB,IAAI,CAACjB,WAAW,CAA0BkB,oBAC7C,CAAC,EACAC,IAAI,IAAK;YACPA,IAAI,CAAuBN,QAAQ,GAAG,KAAK;UAC9C,CACF,CAAC;UACD,IAAI,CAACO,0BAA0B,CAAC,KAAK,CAAC;UACtC,IAAI,CAACN,oBAAoB,GAAG,IAAI,CAACO,0BAA0B;QAC7D;QACA;QACA,IAAI,CAACZ,KAAK,GAAGzB,MAAM,CACjB,IAAI,CAACiC,gBAAgB,CAClB,IAAI,CAACjB,WAAW,CAA0BsB,YAC7C,CAAC,EACAH,IAAI,IAAMA,IAAI,CAAuBN,QACxC,CAAC,CACEU,GAAG,CAAEJ,IAAI,IAAMA,IAAI,CAAuBV,KAAK,CAAC,CAChDe,IAAI,CAAC,GAAG,CAAC;MACd;IAAC;MAAApB,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAED,SAAAgB,kBAA4BC,KAAiB,EAAE;QAAA,IAAAC,qBAAA,EAAAC,qBAAA;QAC7C,KAAAD,qBAAA,GAAI,IAAI,CAACE,oBAAoB,cAAAF,qBAAA,eAAzBA,qBAAA,CAA2BG,QAAQ,CAACJ,KAAK,CAACK,MAAc,CAAC,EAAE;UAC7D,IAAI,CAACC,8BAA8B,CAAC,CAAC;UACrC,IAAI,IAAI,CAACC,UAAU,EAAE;YACnB,IAAI,CAACC,gBAAgB,CAACC,KAAK,CAAC,CAAC;UAC/B,CAAC,MAAM;YACL,IAAI,CAACC,YAAY,CAACD,KAAK,CAAC,CAAC;UAC3B;QACF,CAAC,MAAM,KAAAP,qBAAA,GAAI,IAAI,CAACS,gBAAgB,cAAAT,qBAAA,eAArBA,qBAAA,CAAuBE,QAAQ,CAACJ,KAAK,CAACK,MAAc,CAAC,EAAE;UAChE,IAAI,CAACO,8BAA8B,CAAC,CAAC;QACvC,CAAC,MAAM;UACL,MAAMC,sBAAsB,GAAIC,IAAI,IAClCA,IAAI,CAACC,OAAO,IACZD,IAAI,CAACC,OAAO,CACT,IAAI,CAACzC,WAAW,CAA0B0C,wBAC7C,CAAC;UACH,IAAI,CAAChB,KAAK,CAACiB,YAAY,CAAC,CAAC,CAACC,IAAI,CAACL,sBAAsB,CAAC,EAAE;YACtDM,IAAA,CAAAC,eAAA,CApFFlD,aAAa,CAAAmD,SAAA,8BAAAC,IAAA,OAoFatB,KAAK;UAC/B;UACA,IAAI,IAAI,CAACO,UAAU,EAAE,IAAI,CAACC,gBAAgB,CAACC,KAAK,CAAC,CAAC;QACpD;MACF;;MAEA;AACF;AACA;IAFE;MAAA/B,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAGA,SAAAwC,qBAA+BvB,KAAoB,EAAE;QAAA,IAAAwB,sBAAA,EAAAC,sBAAA;QACnD,MAAM;UAAE3C;QAAI,CAAC,GAAGkB,KAAK;QACrB,MAAM0B,MAAM,GAAI,IAAI,CAACpD,WAAW,CAAuBqD,SAAS,CAAC7C,GAAG,CAAC;QACrE,MAAM;UAAE8C;QAAW,CAAC,GAAGlE,wBAAwB;QAE/C,IACE,CAAA8D,sBAAA,OAAI,CAACb,gBAAgB,cAAAa,sBAAA,eAArBA,sBAAA,CAAuBpB,QAAQ,CAACJ,KAAK,CAACK,MAAc,CAAC;QACrD;QACCqB,MAAM,KAAKE,UAAU,IAAI9C,GAAG,KAAK,GAAG,CAAC,EACtC;UACA,IAAI,CAAC8B,8BAA8B,CAAC,CAAC;QACvC,CAAC,MAAM,KAAAa,sBAAA,GAAI,IAAI,CAACtB,oBAAoB,cAAAsB,sBAAA,eAAzBA,sBAAA,CAA2BrB,QAAQ,CAACJ,KAAK,CAACK,MAAc,CAAC,EAAE;UACpE,IAAI,CAACC,8BAA8B,CAAC,CAAC;UACrC,IAAI,CAACuB,IAAI,GAAG,IAAI;UAChB,IAAI,IAAI,CAACtB,UAAU,EAAE;YACnB,IAAI,CAACC,gBAAgB,CAACC,KAAK,CAAC,CAAC;UAC/B,CAAC,MAAM;YACL,IAAI,CAACC,YAAY,CAACD,KAAK,CAAC,CAAC;UAC3B;QACF,CAAC,MAAM,IAAI,IAAI,CAACF,UAAU,EAAE;UAC1B,IAAI,CAACuB,6BAA6B,CAAC9B,KAAK,CAAC;QAC3C,CAAC,MAAM;UACLmB,IAAA,CAAAC,eAAA,CAnHAlD,aAAa,CAAAmD,SAAA,iCAAAC,IAAA,OAmHctB,KAAK;QAClC;MACF;;MAEA;AACF;AACA;AACA;IAHE;MAAAtB,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAKA,SAAA+C,8BAAwC9B,KAAoB,EAAE;QAC5D,MAAM;UAAElB;QAAI,CAAC,GAAGkB,KAAK;QACrB,MAAM0B,MAAM,GAAI,IAAI,CAACpD,WAAW,CAAuBqD,SAAS,CAAC7C,GAAG,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC+C,IAAI,EAAE;UACd,QAAQH,MAAM;YACZ,KAAKhE,wBAAwB,CAACkE,UAAU;cACtC,IAAI,CAAClC,0BAA0B,CAAC,IAAI,CAAC;cACrC;YACF;cACE;UACJ;QACF,CAAC,MAAM;UACL,QAAQZ,GAAG;YACT,KAAK,OAAO;cACV;gBACE,MAAMR,WAAW,GAAG,IAAI,CAACA,WAAgC;gBACzD,MAAMyD,eAAe,GAAG,IAAI,CAACC,aAAa,CACxC1D,WAAW,CAAC2D,uBACd,CAAsB;gBACtB,IAAIF,eAAe,EAAE;kBACnB,IAAI,CAACzB,8BAA8B,CAACyB,eAAe,CAAC;gBACtD,CAAC,MAAM;kBACL,IAAI,CAACrC,0BAA0B,CAAC,KAAK,CAAC;gBACxC;cACF;cACA;YACF;cACE;UACJ;QACF;MACF;IAAC;MAAAhB,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAED,SAAAmD,+BAAA,EAA2C;QACzC,MAAM;UAAEC,mBAAmB;UAAEC,mBAAmB,EAAEC;QAAmB,CAAC,GACpE,IAAI;QACN,OAAOA,kBAAkB,KAAK,CAAC,GAC3BC,SAAS,GACTpF,IAAI,CAAAqF,EAAA,KAAAA,EAAA,GAAAC,CAAC;AACb;AACA;AACA;AACA,qBAAmB,CAAS,yBAAsB,CAAS,gCAA6B,CAAS;AACjG;AACA,qBAAmB,CAAsB;AACzC,cAAY,CAAqB;AACjC,cAAY,CAAiD;AAC7D;AACA,SAAQ,GANavE,MAAM,EAAyBA,MAAM,EAAgCA,MAAM,EAE3EkE,mBAAmB,EAC1BE,kBAAkB,EAClBhF,OAAO,CAAC;UAAE,YAAY,EAAE8E;QAAoB,CAAC,CAAC,CAEnD;MACP;;MAEA;AACF;AACA;IAFE;MAAAzD,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAGA,SAAA0D,sBAAA,EAAkD;QAChD,MAAM;UAAEC,cAAc;UAAEC,oBAAoB,EAAEC;QAAoB,CAAC,GAAG,IAAI;QAC1E,OAAO,CAAC,IAAI,CAACrC,UAAU,GACnBrD,IAAI,CAAA2F,GAAA,KAAAA,GAAA,GAAAL,CAAC;AACb,4CAA0C,CAAS;AACnD,eAAa,CAAwC;AACrD;AACA,SAAQ,GAHoCvE,MAAM,EACnC2E,mBAAmB,IAAIF,cAAc,IAG5CxF,IAAI,CAAA4F,GAAA,KAAAA,GAAA,GAAAN,CAAC;AACb;AACA;AACA,qBAAmB,CAAS;AAC5B,2BAAyB,CAAiB;AAC1C;AACA;AACA;AACA,sBAAoB,CAAoB;AACxC,SAAQ,GANavE,MAAM,EACAyE,cAAc,EAInB,IAAI,CAACK,YAAY,CAC9B;MACP;IAAC;MAAArE,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAED,SAAAiE,+BAAA,EAAkE;QAChE,MAAM;UAAEb,mBAAmB;UAAE3B,gBAAgB,EAAEyC;QAAgB,CAAC,GAAG,IAAI;QACvE,OAAOA,eAAe,IACpBA,eAAe,CAAClE,KAAK,CAACmE,MAAM,GAAG,CAAC,IAChC,IAAI,CAAC3C,UAAU,GACbrD,IAAI,CAAAiG,GAAA,KAAAA,GAAA,GAAAX,CAAC;AACb;AACA;AACA;AACA,qBAAmB,CAAS;AAC5B;AACA,qBAAmB,CAAsB;AACzC,cAAY,CAAiD;AAC7D;AACA,SAAQ,GALavE,MAAM,EAENkE,mBAAmB,EAC1B9E,OAAO,CAAC;UAAE,YAAY,EAAE8E;QAAoB,CAAC,CAAC,IAGpDG,SAAS;MACf;;MAEA;AACF;AACA;IAFE;MAAA5D,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAGA,SAAAgE,aAAA,EAAyB;QACvB,MAAMK,KAAK,GAAG,IAAI,CAAC7D,gBAAgB,CAChC,IAAI,CAACjB,WAAW,CAA0BsB,YAC7C,CAAC;QACD,MAAMyD,UAAU,GAAG,IAAI,CAAC7C,gBAAgB,CAACzB,KAAK,CAACuE,iBAAiB,CAAC,CAAC;QAElE,IAAI,CAAC,IAAI,CAACzB,IAAI,EAAE,IAAI,CAACA,IAAI,GAAG,IAAI;QAEhCtE,OAAO,CAAC6F,KAAK,EAAG3D,IAAI,IAAK;UACvB,MAAM8D,SAAS,GAAI9D,IAAI,CAAiB+D,SAAS,CAACF,iBAAiB,CAAC,CAAC;UAErE,IAAI,CAACC,SAAS,CAACE,QAAQ,CAACJ,UAAU,CAAC,EAAE;YAClC5D,IAAI,CAAuBiE,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;YACvDjE,IAAI,CAAuBkE,eAAe,CAAC,aAAa,CAAC;UAC5D,CAAC,MAAM;YACJlE,IAAI,CAAuBkE,eAAe,CAAC,UAAU,CAAC;UACzD;QACF,CAAC,CAAC;QAEF,IAAI,CAACC,aAAa,CAAC,CAAC;MACtB;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAAlF,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAKA,SAAA8E,UAAoBC,SAAiB,EAAE;QACrC,IAAI,CAAC,IAAI,CAACvD,UAAU,EAAE;UACpB,IAAI,CAACG,YAAY,CAACD,KAAK,CAAC,CAAC;UACzBU,IAAA,CAAAC,eAAA,CAxPAlD,aAAa,CAAAmD,SAAA,sBAAAC,IAAA,OAwPGwC,SAAS;QAC3B,CAAC,MAAM;UACL;UACA,MAAMxF,WAAW,GAAG,IAAI,CAACA,WAAmC;UAC5D,MAAM8E,KAAK,GAAG,IAAI,CAAC7D,gBAAgB,CAACjB,WAAW,CAACyF,mBAAmB,CAAC;UACpE,MAAMhC,eAAe,GAAG,IAAI,CAACC,aAAa,CACxC1D,WAAW,CAAC2D,uBACd,CAAC;UACD,MAAM+B,gBAAgB,GAAGxG,OAAO,CAAC4F,KAAK,EAAErB,eAAgB,CAAC;UAEzD,IAAIkC,SAAS,GAAGD,gBAAgB,GAAGF,SAAS;UAC5C,IAAIG,SAAS,GAAG,CAAC,EAAE;YACjBA,SAAS,GAAGb,KAAK,CAACF,MAAM,GAAG,CAAC;UAC9B;UACA,IAAIe,SAAS,IAAIb,KAAK,CAACF,MAAM,EAAE;YAC7Be,SAAS,GAAG,CAAC;UACf;UACA1G,OAAO,CAAC6F,KAAK,EAAE,CAAC3D,IAAI,EAAEyE,CAAC,KAAK;YACzBzE,IAAI,CAAuB0E,WAAW,GAAGD,CAAC,KAAKD,SAAS;UAC3D,CAAC,CAAC;QACJ;MACF;;MAEA;AACF;AACA;IAFE;MAAAvF,IAAA;MAAAI,GAAA;MAAAC,KAAA,EAGA,SAAA6B,+BAAA,EAA2C;QACzC,MAAMtC,WAAW,GAAG,IAAI,CAACA,WAAmC;QAC5D,MAAM8E,KAAK,GAAG,IAAI,CAAC7D,gBAAgB,CAACjB,WAAW,CAAC8F,oBAAoB,CAAC;QACrE,IAAI,CAAC5D,gBAAgB,CAACzB,KAAK,GAAG,EAAE;QAChC,IAAI,CAAC8C,IAAI,GAAG,IAAI;QAChB,IAAI,CAACrB,gBAAgB,CAACC,KAAK,CAAC,CAAC;QAC7BlD,OAAO,CAAC6F,KAAK,EAAG3D,IAAI,IAAK;UACtBA,IAAI,CAAuBkE,eAAe,CAAC,UAAU,CAAC;QACzD,CAAC,CAAC;MACJ;;MAEA;AACF;AACA;IAFE;MAAAjF,IAAA;MAAAC,UAAA,GAGCxB,QAAQ,CAAC;QAAEkH,SAAS,EAAE;MAAwB,CAAC,CAAC;MAAAvF,GAAA;MAAAC,MAAA;QAAA,OAC3B,EAAE;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAKvBxB,QAAQ,CAAC;QAAEkH,SAAS,EAAE;MAAiC,CAAC,CAAC;MAAAvF,GAAA;MAAAC,MAAA;QAAA,OAC5B,qBAAqB;MAAA;IAAA;MAAAL,IAAA;MAAAC,UAAA,GAKlDxB,QAAQ,CAAC;QAAEkH,SAAS,EAAE;MAAgC,CAAC,CAAC;MAAAvF,GAAA;MAAAC,MAAA;QAAA,OAC5B,uBAAuB;MAAA;IAAA;MAAAL,IAAA;MAAAI,GAAA;MAAAC,KAAA;MAVpD;AACF;AACA;MAIE;AACF;AACA;MAIE,SAAAuF,aAAaC,iBAAiB,EAAE;QAC9B,MAAM;UAAE3E;QAAa,CAAC,GAAG,IAAI,CAACtB,WAAmC;QACjE,IAAIiG,iBAAiB,CAACC,GAAG,CAAC,MAAM,CAAC,EAAE;UACjCjH,OAAO,CAAC,IAAI,CAACgC,gBAAgB,CAACK,YAAY,CAAC,EAAGkB,IAAI,IAAK;YACpDA,IAAI,CAAuB2D,IAAI,GAAG,IAAI,CAACA,IAAI;UAC9C,CAAC,CAAC;QACJ;QACA,IAAIF,iBAAiB,CAACC,GAAG,CAAC,OAAO,CAAC,EAAE;UAClC,MAAM;YAAEzF;UAAM,CAAC,GAAG,IAAI;UACtB,MAAM2F,MAAM,GAAG,CAAC3F,KAAK,GAAG,EAAE,GAAGA,KAAK,CAAC4F,KAAK,CAAC,GAAG,CAAC;UAC7C;UACA,MAAMvB,KAAK,GAAG,IAAI,CAAC7D,gBAAgB,CAACK,YAAY,CAAC;UACjDrC,OAAO,CAAC6F,KAAK,EAAGtC,IAAI,IAAK;YACtBA,IAAI,CAAuB3B,QAAQ,GAClCuF,MAAM,CAAClH,OAAO,CAAEsD,IAAI,CAAuB/B,KAAK,CAAC,IAAI,CAAC;UAC1D,CAAC,CAAC;UACF,IAAI,CAACqD,mBAAmB,GAAG9E,MAAM,CAC/B8F,KAAK,EACJtC,IAAI,IAAK4D,MAAM,CAAClH,OAAO,CAAEsD,IAAI,CAAuB/B,KAAK,CAAC,IAAI,CACjE,CAAC,CAACmE,MAAM;QACV;QACA,OAAO,IAAI;MACb;;MAEA;AACF;AACA;AACA;IAHE;MAAAxE,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAIA,SAAAiC,yBAAA,EAA8C;QAC5C,OAAQ,IAAG/C,MAAO,kBAAiB;MACrC;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAGA,SAAAkD,wBAAA,EAAqC;QACnC,OAAQ,GAAEhE,MAAO,iCAAgC;MACnD;;MAEA;AACF;AACA;AACA;IAHE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAIA,SAAAa,aAAA,EAA0B;QACxB,OAAQ,GAAE3B,MAAO,oBAAmB;MACtC;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAGA,SAAAqF,qBAAA,EAAkC;QAChC,OAAQ,GAAEnG,MAAO,8BAA6B;MAChD;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAGA,SAAAgF,oBAAA,EAAiC;QAC/B,OAAQ,GAAE9F,MAAO,oCAAmC;MACtD;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAGA,SAAAS,qBAAA,EAAkC;QAChC,OAAQ,GAAEvB,MAAO,8BAA6B;MAChD;;MAEA;AACF;AACA;AACA;IAHE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAIA,SAAA8F,kBAAA,EAA+B;QAC7B,OAAQ,GAAE5G,MAAO,4BAA2B;MAC9C;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAGA,SAAA+F,YAAA,EAAyB;QACvB,OAAQ,GAAE7G,MAAO,uBAAsB;MACzC;;MAEA;AACF;AACA;AACA;IAHE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAIA,SAAAgG,kBAAA,EAA+B;QAC7B,OAAQ,GAAE9G,MAAO,6BAA4B;MAC/C;;MAEA;AACF;AACA;IAFE;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,KAAA,EAGA,SAAAiG,YAAA,EAAyB;QACvB,OAAQ,GAAE/G,MAAO,wBAAuB;MAC1C;IAAC;MAAAS,IAAA;MAAAkG,MAAA;MAAA9F,GAAA;MAAAC,MAAA;QAAA,OAEepB,MAAM;MAAA;IAAA;EAAA;AAAA,GAjZIF,UAAU;AAoZtC,eAAeS,aAAa"}
@@ -168,7 +168,16 @@ let BXInlineNotification = _decorate([customElement(`${prefix}-inline-notificati
168
168
  _type: type,
169
169
  _handleClickCloseButton: handleClickCloseButton
170
170
  } = this;
171
- return html(_t || (_t = _` <button type="button" class="${0}--${0}-notification__close-button" aria-label="${0}" title="${0}" @click="${0}"> ${0} </button> `), prefix, type, ifDefined(closeButtonLabel), ifDefined(closeButtonLabel), handleClickCloseButton, Close20({
171
+ return html(_t || (_t = _`
172
+ <button
173
+ type="button"
174
+ class="${0}--${0}-notification__close-button"
175
+ aria-label=${0}
176
+ title=${0}
177
+ @click="${0}">
178
+ ${0}
179
+ </button>
180
+ `), prefix, type, ifDefined(closeButtonLabel), ifDefined(closeButtonLabel), handleClickCloseButton, Close20({
172
181
  class: `${prefix}--${type}-notification__close-icon`
173
182
  }));
174
183
  }
@@ -185,7 +194,17 @@ let BXInlineNotification = _decorate([customElement(`${prefix}-inline-notificati
185
194
  title,
186
195
  _type: type
187
196
  } = this;
188
- return html(_t2 || (_t2 = _` <div class="${0}--${0}-notification__text-wrapper"> <p class="${0}--${0}-notification__title"> ${0}<slot name="title"></slot> </p> <div class="${0}--${0}-notification__subtitle"> ${0}<slot name="subtitle"></slot> </div> <slot></slot> </div> `), prefix, type, prefix, type, title, prefix, type, subtitle);
197
+ return html(_t2 || (_t2 = _`
198
+ <div class="${0}--${0}-notification__text-wrapper">
199
+ <p class="${0}--${0}-notification__title">
200
+ ${0}<slot name="title"></slot>
201
+ </p>
202
+ <div class="${0}--${0}-notification__subtitle">
203
+ ${0}<slot name="subtitle"></slot>
204
+ </div>
205
+ <slot></slot>
206
+ </div>
207
+ `), prefix, type, prefix, type, title, prefix, type, subtitle);
189
208
  }
190
209
 
191
210
  /**
@@ -346,7 +365,12 @@ let BXInlineNotification = _decorate([customElement(`${prefix}-inline-notificati
346
365
  const {
347
366
  _type: type
348
367
  } = this;
349
- return html(_t4 || (_t4 = _` <div class="${0}--${0}-notification__details"> ${0}${0} </div> ${0} `), prefix, type, this._renderIcon(), this._renderText(), this._renderButton());
368
+ return html(_t4 || (_t4 = _`
369
+ <div class="${0}--${0}-notification__details">
370
+ ${0}${0}
371
+ </div>
372
+ ${0}
373
+ `), prefix, type, this._renderIcon(), this._renderText(), this._renderButton());
350
374
  }
351
375
 
352
376
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"inline-notification.js","names":["CheckmarkFilled20","Close20","ErrorFilled20","WarningFilled20","settings","html","LitElement","property","svg","ifDefined","carbonElement","customElement","FocusMixin","NOTIFICATION_KIND","NOTIFICATION_TYPE","styles","prefix","iconsForKinds","SUCCESS","INFO","undefined","WARNING","ERROR","BXInlineNotification","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","key","value","INLINE","_cancelTimeout","timeoutID","clearTimeout","_timeoutID","_initializeTimeout","timeout","setTimeout","_handleUserOrTimerInitiatedClose","bind","_handleClickCloseButton","target","triggeredBy","open","init","bubbles","cancelable","composed","detail","dispatchEvent","CustomEvent","eventBeforeClose","eventClose","_renderButton","closeButtonLabel","_type","type","handleClickCloseButton","_t","_","class","_renderText","subtitle","title","_t2","_renderIcon","iconLabel","icon","children","_t3","decorators","attribute","Boolean","reflect","Number","connectedCallback","hasAttribute","setAttribute","_get","_getPrototypeOf","prototype","call","updated","changedProperties","openChanged","has","timeoutChanged","render","_t4","static"],"sources":["components/notification/inline-notification.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 CheckmarkFilled20 from '@carbon/icons/lib/checkmark--filled/20';\nimport Close20 from '@carbon/icons/lib/close/20';\nimport ErrorFilled20 from '@carbon/icons/lib/error--filled/20';\nimport WarningFilled20 from '@carbon/icons/lib/warning--filled/20';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, LitElement, property, svg } from 'lit-element';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { NOTIFICATION_KIND, NOTIFICATION_TYPE } from './defs';\nimport styles from './inline-notification.scss';\n\nexport { NOTIFICATION_KIND, NOTIFICATION_TYPE };\n\nconst { prefix } = settings;\n\n/**\n * The default icons, keyed by notification kind.\n */\nconst iconsForKinds = {\n [NOTIFICATION_KIND.SUCCESS]: CheckmarkFilled20,\n [NOTIFICATION_KIND.INFO]: undefined,\n [NOTIFICATION_KIND.WARNING]: WarningFilled20,\n [NOTIFICATION_KIND.ERROR]: ErrorFilled20,\n};\n\n/**\n * Inline notification.\n *\n * @element bx-inline-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires bx-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires bx-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-inline-notification`)\nclass BXInlineNotification extends FocusMixin(LitElement) {\n /**\n * Current timeout identifier\n */\n protected _timeoutID: number | null = null;\n\n /**\n * Notification type.\n */\n protected _type = NOTIFICATION_TYPE.INLINE;\n\n /**\n * Cancels the current timeout configured for the notification\n *\n * @param timeoutID current timeout's identifier\n */\n protected _cancelTimeout(timeoutID: number) {\n clearTimeout(timeoutID);\n this._timeoutID = null;\n }\n\n /**\n * Overrides (if exists) the timeout to close the notification\n *\n * @param timeout the time in ms\n */\n protected _initializeTimeout(timeout: number) {\n if (this._timeoutID) {\n this._cancelTimeout(this._timeoutID);\n }\n this._timeoutID = setTimeout(\n this._handleUserOrTimerInitiatedClose.bind(this, null),\n timeout\n ) as unknown as number;\n }\n\n /**\n * Handles `click` event on the close button.\n *\n * @param event The event.\n */\n protected _handleClickCloseButton({ target }: MouseEvent) {\n this._handleUserOrTimerInitiatedClose(target);\n }\n\n /**\n * Handles user-initiated or through timer close request of this modal.\n *\n * @param triggeredBy The element that triggered this close request, if there is one.\n */\n protected _handleUserOrTimerInitiatedClose(triggeredBy: EventTarget | null) {\n if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof BXInlineNotification).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof BXInlineNotification).eventClose,\n init\n )\n );\n }\n }\n }\n\n /**\n * @returns The template part for the close button.\n */\n protected _renderButton() {\n const {\n closeButtonLabel,\n _type: type,\n _handleClickCloseButton: handleClickCloseButton,\n } = this;\n return html`\n <button\n type=\"button\"\n class=\"${prefix}--${type}-notification__close-button\"\n aria-label=${ifDefined(closeButtonLabel)}\n title=${ifDefined(closeButtonLabel)}\n @click=\"${handleClickCloseButton}\">\n ${Close20({\n class: `${prefix}--${type}-notification__close-icon`,\n })}\n </button>\n `;\n }\n\n /**\n * @returns The template part for the text contents.\n */\n protected _renderText() {\n const { subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <p class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </p>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * @returns The template part for the icon.\n */\n protected _renderIcon() {\n const { iconLabel, kind, _type: type } = this;\n const { [kind]: icon } = iconsForKinds;\n return !icon\n ? undefined\n : icon({\n class: `${prefix}--${type}-notification__icon`,\n children: !iconLabel ? undefined : svg`<title>${iconLabel}</title>`,\n });\n }\n\n /**\n * The a11y text for the close button.\n */\n @property({ attribute: 'close-button-label' })\n closeButtonLabel!: string;\n\n /**\n * `true` to hide the close button.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-close-button' })\n hideCloseButton = false;\n\n /**\n * The a11y text for the icon.\n */\n @property({ attribute: 'icon-label' })\n iconLabel!: string;\n\n /**\n * Notification kind.\n */\n @property({ reflect: true })\n kind = NOTIFICATION_KIND.SUCCESS;\n\n /**\n * Low contrast mode\n */\n @property({ type: Boolean, reflect: true, attribute: 'low-contrast' })\n lowContrast = false;\n\n /**\n * `true` if the notification should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n\n /**\n * Notification time in ms until gets closed.\n */\n @property({ type: Number, reflect: true })\n timeout: number | null = null;\n\n /**\n * The subtitle.\n */\n @property()\n subtitle = '';\n\n /**\n * The title.\n */\n @property()\n title = '';\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alert');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n const openChanged = changedProperties.has('open');\n const timeoutChanged = changedProperties.has('timeout');\n\n if (openChanged || timeoutChanged) {\n if (this.open && this.timeout) {\n this._initializeTimeout(this.timeout);\n } else if (!this.open && this._timeoutID) {\n this._cancelTimeout(this._timeoutID);\n }\n }\n }\n\n render() {\n const { _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderIcon()}${this._renderText()}\n </div>\n ${this._renderButton()}\n `;\n }\n\n /**\n * The name of the custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n */\n static get eventBeforeClose() {\n return `${prefix}-notification-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this notification is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-notification-closed`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXInlineNotification;\n"],"mappings":"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"}
1
+ {"version":3,"file":"inline-notification.js","names":["CheckmarkFilled20","Close20","ErrorFilled20","WarningFilled20","settings","html","LitElement","property","svg","ifDefined","carbonElement","customElement","FocusMixin","NOTIFICATION_KIND","NOTIFICATION_TYPE","styles","prefix","iconsForKinds","SUCCESS","INFO","undefined","WARNING","ERROR","BXInlineNotification","_decorate","_initialize","_FocusMixin","constructor","args","F","d","kind","key","value","INLINE","_cancelTimeout","timeoutID","clearTimeout","_timeoutID","_initializeTimeout","timeout","setTimeout","_handleUserOrTimerInitiatedClose","bind","_handleClickCloseButton","target","triggeredBy","open","init","bubbles","cancelable","composed","detail","dispatchEvent","CustomEvent","eventBeforeClose","eventClose","_renderButton","closeButtonLabel","_type","type","handleClickCloseButton","_t","_","class","_renderText","subtitle","title","_t2","_renderIcon","iconLabel","icon","children","_t3","decorators","attribute","Boolean","reflect","Number","connectedCallback","hasAttribute","setAttribute","_get","_getPrototypeOf","prototype","call","updated","changedProperties","openChanged","has","timeoutChanged","render","_t4","static"],"sources":["components/notification/inline-notification.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 CheckmarkFilled20 from '@carbon/icons/lib/checkmark--filled/20';\nimport Close20 from '@carbon/icons/lib/close/20';\nimport ErrorFilled20 from '@carbon/icons/lib/error--filled/20';\nimport WarningFilled20 from '@carbon/icons/lib/warning--filled/20';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport { html, LitElement, property, svg } from 'lit-element';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { NOTIFICATION_KIND, NOTIFICATION_TYPE } from './defs';\nimport styles from './inline-notification.scss';\n\nexport { NOTIFICATION_KIND, NOTIFICATION_TYPE };\n\nconst { prefix } = settings;\n\n/**\n * The default icons, keyed by notification kind.\n */\nconst iconsForKinds = {\n [NOTIFICATION_KIND.SUCCESS]: CheckmarkFilled20,\n [NOTIFICATION_KIND.INFO]: undefined,\n [NOTIFICATION_KIND.WARNING]: WarningFilled20,\n [NOTIFICATION_KIND.ERROR]: ErrorFilled20,\n};\n\n/**\n * Inline notification.\n *\n * @element bx-inline-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires bx-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires bx-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-inline-notification`)\nclass BXInlineNotification extends FocusMixin(LitElement) {\n /**\n * Current timeout identifier\n */\n protected _timeoutID: number | null = null;\n\n /**\n * Notification type.\n */\n protected _type = NOTIFICATION_TYPE.INLINE;\n\n /**\n * Cancels the current timeout configured for the notification\n *\n * @param timeoutID current timeout's identifier\n */\n protected _cancelTimeout(timeoutID: number) {\n clearTimeout(timeoutID);\n this._timeoutID = null;\n }\n\n /**\n * Overrides (if exists) the timeout to close the notification\n *\n * @param timeout the time in ms\n */\n protected _initializeTimeout(timeout: number) {\n if (this._timeoutID) {\n this._cancelTimeout(this._timeoutID);\n }\n this._timeoutID = setTimeout(\n this._handleUserOrTimerInitiatedClose.bind(this, null),\n timeout\n ) as unknown as number;\n }\n\n /**\n * Handles `click` event on the close button.\n *\n * @param event The event.\n */\n protected _handleClickCloseButton({ target }: MouseEvent) {\n this._handleUserOrTimerInitiatedClose(target);\n }\n\n /**\n * Handles user-initiated or through timer close request of this modal.\n *\n * @param triggeredBy The element that triggered this close request, if there is one.\n */\n protected _handleUserOrTimerInitiatedClose(triggeredBy: EventTarget | null) {\n if (this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n triggeredBy,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof BXInlineNotification).eventBeforeClose,\n init\n )\n )\n ) {\n this.open = false;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof BXInlineNotification).eventClose,\n init\n )\n );\n }\n }\n }\n\n /**\n * @returns The template part for the close button.\n */\n protected _renderButton() {\n const {\n closeButtonLabel,\n _type: type,\n _handleClickCloseButton: handleClickCloseButton,\n } = this;\n return html`\n <button\n type=\"button\"\n class=\"${prefix}--${type}-notification__close-button\"\n aria-label=${ifDefined(closeButtonLabel)}\n title=${ifDefined(closeButtonLabel)}\n @click=\"${handleClickCloseButton}\">\n ${Close20({\n class: `${prefix}--${type}-notification__close-icon`,\n })}\n </button>\n `;\n }\n\n /**\n * @returns The template part for the text contents.\n */\n protected _renderText() {\n const { subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__text-wrapper\">\n <p class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </p>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * @returns The template part for the icon.\n */\n protected _renderIcon() {\n const { iconLabel, kind, _type: type } = this;\n const { [kind]: icon } = iconsForKinds;\n return !icon\n ? undefined\n : icon({\n class: `${prefix}--${type}-notification__icon`,\n children: !iconLabel ? undefined : svg`<title>${iconLabel}</title>`,\n });\n }\n\n /**\n * The a11y text for the close button.\n */\n @property({ attribute: 'close-button-label' })\n closeButtonLabel!: string;\n\n /**\n * `true` to hide the close button.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-close-button' })\n hideCloseButton = false;\n\n /**\n * The a11y text for the icon.\n */\n @property({ attribute: 'icon-label' })\n iconLabel!: string;\n\n /**\n * Notification kind.\n */\n @property({ reflect: true })\n kind = NOTIFICATION_KIND.SUCCESS;\n\n /**\n * Low contrast mode\n */\n @property({ type: Boolean, reflect: true, attribute: 'low-contrast' })\n lowContrast = false;\n\n /**\n * `true` if the notification should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = true;\n\n /**\n * Notification time in ms until gets closed.\n */\n @property({ type: Number, reflect: true })\n timeout: number | null = null;\n\n /**\n * The subtitle.\n */\n @property()\n subtitle = '';\n\n /**\n * The title.\n */\n @property()\n title = '';\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'alert');\n }\n super.connectedCallback();\n }\n\n updated(changedProperties) {\n const openChanged = changedProperties.has('open');\n const timeoutChanged = changedProperties.has('timeout');\n\n if (openChanged || timeoutChanged) {\n if (this.open && this.timeout) {\n this._initializeTimeout(this.timeout);\n } else if (!this.open && this._timeoutID) {\n this._cancelTimeout(this._timeoutID);\n }\n }\n }\n\n render() {\n const { _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderIcon()}${this._renderText()}\n </div>\n ${this._renderButton()}\n `;\n }\n\n /**\n * The name of the custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n */\n static get eventBeforeClose() {\n return `${prefix}-notification-beingclosed`;\n }\n\n /**\n * The name of the custom event fired after this notification is closed upon a user gesture.\n */\n static get eventClose() {\n return `${prefix}-notification-closed`;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXInlineNotification;\n"],"mappings":"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"}
@@ -57,7 +57,20 @@ let BXToastNotification = _decorate([customElement(`${prefix}-toast-notification
57
57
  title,
58
58
  _type: type
59
59
  } = this;
60
- return html(_t || (_t = _` <div class="${0}--${0}-notification__details"> <h3 class="${0}--${0}-notification__title"> ${0}<slot name="title"></slot> </h3> <div class="${0}--${0}-notification__subtitle"> ${0}<slot name="subtitle"></slot> </div> <div class="${0}--${0}-notification__caption"> ${0}<slot name="caption"></slot> </div> <slot></slot> </div> `), prefix, type, prefix, type, title, prefix, type, subtitle, prefix, type, caption);
60
+ return html(_t || (_t = _`
61
+ <div class="${0}--${0}-notification__details">
62
+ <h3 class="${0}--${0}-notification__title">
63
+ ${0}<slot name="title"></slot>
64
+ </h3>
65
+ <div class="${0}--${0}-notification__subtitle">
66
+ ${0}<slot name="subtitle"></slot>
67
+ </div>
68
+ <div class="${0}--${0}-notification__caption">
69
+ ${0}<slot name="caption"></slot>
70
+ </div>
71
+ <slot></slot>
72
+ </div>
73
+ `), prefix, type, prefix, type, title, prefix, type, subtitle, prefix, type, caption);
61
74
  }
62
75
 
63
76
  /**
@@ -77,7 +90,13 @@ let BXToastNotification = _decorate([customElement(`${prefix}-toast-notification
77
90
  const {
78
91
  _type: type
79
92
  } = this;
80
- return html(_t2 || (_t2 = _` ${0} <div class="${0}--${0}-notification__details"> ${0} </div> ${0} `), this._renderIcon(), prefix, type, this._renderText(), this._renderButton());
93
+ return html(_t2 || (_t2 = _`
94
+ ${0}
95
+ <div class="${0}--${0}-notification__details">
96
+ ${0}
97
+ </div>
98
+ ${0}
99
+ `), this._renderIcon(), prefix, type, this._renderText(), this._renderButton());
81
100
  }
82
101
  }, {
83
102
  kind: "field",
@@ -1 +1 @@
1
- {"version":3,"file":"toast-notification.js","names":["settings","html","property","carbonElement","customElement","NOTIFICATION_TYPE","BXInlineNotification","styles","prefix","BXToastNotification","_decorate","_initialize","_BXInlineNotification","constructor","args","F","d","kind","key","value","TOAST","_renderText","caption","subtitle","title","_type","type","_t","_","decorators","render","_t2","_renderIcon","_renderButton","static"],"sources":["components/notification/toast-notification.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 } from 'lit-element';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NOTIFICATION_TYPE } from './defs';\nimport BXInlineNotification from './inline-notification';\nimport styles from './toast-notification.scss';\n\nconst { prefix } = settings;\n\n/**\n * Toast notification.\n *\n * @element bx-toast-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires bx-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires bx-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-toast-notification`)\nclass BXToastNotification extends BXInlineNotification {\n protected _type = NOTIFICATION_TYPE.TOAST;\n\n protected _renderText() {\n const { caption, subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__details\">\n <h3 class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </h3>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n <div class=\"${prefix}--${type}-notification__caption\">\n ${caption}<slot name=\"caption\"></slot>\n </div>\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * The caption.\n */\n @property()\n caption = '';\n\n render() {\n const { _type: type } = this;\n return html`\n ${this._renderIcon()}\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderText()}\n </div>\n ${this._renderButton()}\n `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXToastNotification;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,IAAI,EAAEC,QAAQ,QAAQ,aAAa;AAC5C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,SAASC,iBAAiB,QAAQ,QAAQ;AAC1C,OAAOC,oBAAoB,MAAM,uBAAuB;AACxD,OAAOC,MAAM,MAAM,+BAA2B;AAE9C,MAAM;EAAEC;AAAO,CAAC,GAAGR,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,IAYMS,mBAAmB,GAAAC,SAAA,EADxBN,aAAa,CAAE,GAAEI,MAAO,qBAAoB,CAAC,aAAAG,WAAA,EAAAC,qBAAA;EAA9C,MACMH,mBAAmB,SAAAG,qBAAA,CAA8B;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAuCvD;EAAC;IAAAI,CAAA,EAvCKN,mBAAmB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACLd,iBAAiB,CAACe,KAAK;MAAA;IAAA;MAAAH,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAEzC,SAAAE,YAAA,EAAwB;QACtB,MAAM;UAAEC,OAAO;UAAEC,QAAQ;UAAEC,KAAK;UAAEC,KAAK,EAAEC;QAAK,CAAC,GAAG,IAAI;QACtD,OAAOzB,IAAI,CAAA0B,EAAA,KAAAA,EAAA,GAAAC,CAAA,2UACKpB,MAAM,EAAKkB,IAAI,EACdlB,MAAM,EAAKkB,IAAI,EACxBF,KAAK,EAEKhB,MAAM,EAAKkB,IAAI,EACzBH,QAAQ,EAEEf,MAAM,EAAKkB,IAAI,EACzBJ,OAAO;MAKjB;;MAEA;AACF;AACA;IAFE;MAAAL,IAAA;MAAAY,UAAA,GAGC3B,QAAQ,CAAC,CAAC;MAAAgB,GAAA;MAAAC,MAAA;QAAA,OACD,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAEZ,SAAAW,OAAA,EAAS;QACP,MAAM;UAAEL,KAAK,EAAEC;QAAK,CAAC,GAAG,IAAI;QAC5B,OAAOzB,IAAI,CAAA8B,GAAA,KAAAA,GAAA,GAAAH,CAAA,2EACP,IAAI,CAACI,WAAW,CAAC,CAAC,EACNxB,MAAM,EAAKkB,IAAI,EACzB,IAAI,CAACL,WAAW,CAAC,CAAC,EAEpB,IAAI,CAACY,aAAa,CAAC,CAAC;MAE1B;IAAC;MAAAhB,IAAA;MAAAiB,MAAA;MAAAhB,GAAA;MAAAC,MAAA;QAAA,OAEeZ,MAAM;MAAA;IAAA;EAAA;AAAA,GAtCUD,oBAAoB;AAyCtD,eAAeG,mBAAmB"}
1
+ {"version":3,"file":"toast-notification.js","names":["settings","html","property","carbonElement","customElement","NOTIFICATION_TYPE","BXInlineNotification","styles","prefix","BXToastNotification","_decorate","_initialize","_BXInlineNotification","constructor","args","F","d","kind","key","value","TOAST","_renderText","caption","subtitle","title","_type","type","_t","_","decorators","render","_t2","_renderIcon","_renderButton","static"],"sources":["components/notification/toast-notification.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 } from 'lit-element';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { NOTIFICATION_TYPE } from './defs';\nimport BXInlineNotification from './inline-notification';\nimport styles from './toast-notification.scss';\n\nconst { prefix } = settings;\n\n/**\n * Toast notification.\n *\n * @element bx-toast-notification\n * @slot subtitle - The subtitle.\n * @slot title - The title.\n * @fires bx-notification-beingclosed\n * The custom event fired before this notification is being closed upon a user gesture.\n * Cancellation of this event stops the user-initiated action of closing this notification.\n * @fires bx-notification-closed - The custom event fired after this notification is closed upon a user gesture.\n */\n@customElement(`${prefix}-toast-notification`)\nclass BXToastNotification extends BXInlineNotification {\n protected _type = NOTIFICATION_TYPE.TOAST;\n\n protected _renderText() {\n const { caption, subtitle, title, _type: type } = this;\n return html`\n <div class=\"${prefix}--${type}-notification__details\">\n <h3 class=\"${prefix}--${type}-notification__title\">\n ${title}<slot name=\"title\"></slot>\n </h3>\n <div class=\"${prefix}--${type}-notification__subtitle\">\n ${subtitle}<slot name=\"subtitle\"></slot>\n </div>\n <div class=\"${prefix}--${type}-notification__caption\">\n ${caption}<slot name=\"caption\"></slot>\n </div>\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * The caption.\n */\n @property()\n caption = '';\n\n render() {\n const { _type: type } = this;\n return html`\n ${this._renderIcon()}\n <div class=\"${prefix}--${type}-notification__details\">\n ${this._renderText()}\n </div>\n ${this._renderButton()}\n `;\n }\n\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXToastNotification;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,QAAQ,MAAM,0CAA0C;AAC/D,SAASC,IAAI,EAAEC,QAAQ,QAAQ,aAAa;AAC5C,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AACxF,SAASC,iBAAiB,QAAQ,QAAQ;AAC1C,OAAOC,oBAAoB,MAAM,uBAAuB;AACxD,OAAOC,MAAM,MAAM,+BAA2B;AAE9C,MAAM;EAAEC;AAAO,CAAC,GAAGR,QAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,IAYMS,mBAAmB,GAAAC,SAAA,EADxBN,aAAa,CAAE,GAAEI,MAAO,qBAAoB,CAAC,aAAAG,WAAA,EAAAC,qBAAA;EAA9C,MACMH,mBAAmB,SAAAG,qBAAA,CAA8B;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAuCvD;EAAC;IAAAI,CAAA,EAvCKN,mBAAmB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACLd,iBAAiB,CAACe,KAAK;MAAA;IAAA;MAAAH,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAEzC,SAAAE,YAAA,EAAwB;QACtB,MAAM;UAAEC,OAAO;UAAEC,QAAQ;UAAEC,KAAK;UAAEC,KAAK,EAAEC;QAAK,CAAC,GAAG,IAAI;QACtD,OAAOzB,IAAI,CAAA0B,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB,oBAAkB,CAAS,KAAE,CAAO;AACpC,qBAAmB,CAAS,KAAE,CAAO;AACrC,YAAU,CAAQ;AAClB;AACA,sBAAoB,CAAS,KAAE,CAAO;AACtC,YAAU,CAAW;AACrB;AACA,sBAAoB,CAAS,KAAE,CAAO;AACtC,YAAU,CAAU;AACpB;AACA;AACA;AACA,KAAI,GAZgBpB,MAAM,EAAKkB,IAAI,EACdlB,MAAM,EAAKkB,IAAI,EACxBF,KAAK,EAEKhB,MAAM,EAAKkB,IAAI,EACzBH,QAAQ,EAEEf,MAAM,EAAKkB,IAAI,EACzBJ,OAAO;MAKjB;;MAEA;AACF;AACA;IAFE;MAAAL,IAAA;MAAAY,UAAA,GAGC3B,QAAQ,CAAC,CAAC;MAAAgB,GAAA;MAAAC,MAAA;QAAA,OACD,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAEZ,SAAAW,OAAA,EAAS;QACP,MAAM;UAAEL,KAAK,EAAEC;QAAK,CAAC,GAAG,IAAI;QAC5B,OAAOzB,IAAI,CAAA8B,GAAA,KAAAA,GAAA,GAAAH,CAAC;AAChB,QAAM,CAAqB;AAC3B,oBAAkB,CAAS,KAAE,CAAO;AACpC,UAAQ,CAAqB;AAC7B;AACA,QAAM,CAAuB;AAC7B,KAAI,GALI,IAAI,CAACI,WAAW,CAAC,CAAC,EACNxB,MAAM,EAAKkB,IAAI,EACzB,IAAI,CAACL,WAAW,CAAC,CAAC,EAEpB,IAAI,CAACY,aAAa,CAAC,CAAC;MAE1B;IAAC;MAAAhB,IAAA;MAAAiB,MAAA;MAAAhB,GAAA;MAAAC,MAAA;QAAA,OAEeZ,MAAM;MAAA;IAAA;EAAA;AAAA,GAtCUD,oBAAoB;AAyCtD,eAAeG,mBAAmB"}
@@ -54,7 +54,10 @@ let BXNumberInputSkeleton = _decorate([customElement(`${prefix}-number-input-ske
54
54
  const {
55
55
  hideLabel
56
56
  } = this;
57
- return html(_t || (_t = _` ${0} <div class="${0}--number ${0}--skeleton"></div> `), !hideLabel && html(_t2 || (_t2 = _` <span class="${0}--label ${0}--skeleton"></span> `), prefix, prefix), prefix, prefix);
57
+ return html(_t || (_t = _`
58
+ ${0}
59
+ <div class="${0}--number ${0}--skeleton"></div>
60
+ `), !hideLabel && html(_t2 || (_t2 = _` <span class="${0}--label ${0}--skeleton"></span> `), prefix, prefix), prefix, prefix);
58
61
  }
59
62
  }, {
60
63
  kind: "field",
@@ -1 +1 @@
1
- {"version":3,"file":"number-input-skeleton.js","names":["html","property","LitElement","settings","styles","carbonElement","customElement","prefix","BXNumberInputSkeleton","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","type","Boolean","reflect","attribute","key","value","render","hideLabel","_t","_","_t2","static"],"sources":["components/number-input/number-input-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, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport styles from './number-input.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Skeleton of number input.\n */\n@customElement(`${prefix}-number-input-skeleton`)\nclass BXNumberInputSkeleton extends LitElement {\n /**\n * `true` if the label should be hidden. Corresponds to the attribute with the same name.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n render() {\n const { hideLabel } = this;\n return html`\n ${!hideLabel &&\n html` <span class=\"${prefix}--label ${prefix}--skeleton\"></span> `}\n <div class=\"${prefix}--number ${prefix}--skeleton\"></div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXNumberInputSkeleton;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,MAAM,MAAM,yBAAqB;AACxC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AAFA,IAIMK,qBAAqB,GAAAC,SAAA,EAD1BH,aAAa,CAAE,GAAEC,MAAO,wBAAuB,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAjD,MACMH,qBAAqB,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAiB/C;EAAC;IAAAI,CAAA,EAjBKN,qBAAqB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIxBhB,QAAQ,CAAC;QAAEiB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAa,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACxD,KAAK;MAAA;IAAA;MAAAP,IAAA;MAAAM,GAAA;MAAAC,KAAA;MAJjB;AACF;AACA;;MAIE,SAAAC,OAAA,EAAS;QACP,MAAM;UAAEC;QAAU,CAAC,GAAG,IAAI;QAC1B,OAAOzB,IAAI,CAAA0B,EAAA,KAAAA,EAAA,GAAAC,CAAA,2DACP,CAACF,SAAS,IACZzB,IAAI,CAAA4B,GAAA,KAAAA,GAAA,GAAAD,CAAA,uDAAiBpB,MAAM,EAAWA,MAAM,CAAsB,EACpDA,MAAM,EAAYA,MAAM;MAE1C;IAAC;MAAAS,IAAA;MAAAa,MAAA;MAAAP,GAAA;MAAAC,MAAA;QAAA,OAEenB,MAAM;MAAA;IAAA;EAAA;AAAA,GAhBYF,UAAU;AAmB9C,eAAeM,qBAAqB"}
1
+ {"version":3,"file":"number-input-skeleton.js","names":["html","property","LitElement","settings","styles","carbonElement","customElement","prefix","BXNumberInputSkeleton","_decorate","_initialize","_LitElement","constructor","args","F","d","kind","decorators","type","Boolean","reflect","attribute","key","value","render","hideLabel","_t","_","_t2","static"],"sources":["components/number-input/number-input-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, property, LitElement } from 'lit-element';\nimport settings from 'carbon-components/es/globals/js/settings';\nimport styles from './number-input.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nconst { prefix } = settings;\n\n/**\n * Skeleton of number input.\n */\n@customElement(`${prefix}-number-input-skeleton`)\nclass BXNumberInputSkeleton extends LitElement {\n /**\n * `true` if the label should be hidden. Corresponds to the attribute with the same name.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n render() {\n const { hideLabel } = this;\n return html`\n ${!hideLabel &&\n html` <span class=\"${prefix}--label ${prefix}--skeleton\"></span> `}\n <div class=\"${prefix}--number ${prefix}--skeleton\"></div>\n `;\n }\n\n static styles = styles;\n}\n\nexport default BXNumberInputSkeleton;\n"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,aAAa;AACxD,OAAOC,QAAQ,MAAM,0CAA0C;AAC/D,OAAOC,MAAM,MAAM,yBAAqB;AACxC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAExF,MAAM;EAAEC;AAAO,CAAC,GAAGJ,QAAQ;;AAE3B;AACA;AACA;AAFA,IAIMK,qBAAqB,GAAAC,SAAA,EAD1BH,aAAa,CAAE,GAAEC,MAAO,wBAAuB,CAAC,aAAAG,WAAA,EAAAC,WAAA;EAAjD,MACMH,qBAAqB,SAAAG,WAAA,CAAoB;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAiB/C;EAAC;IAAAI,CAAA,EAjBKN,qBAAqB;IAAAO,CAAA;MAAAC,IAAA;MAAAC,UAAA,GAIxBhB,QAAQ,CAAC;QAAEiB,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAa,CAAC,CAAC;MAAAC,GAAA;MAAAC,MAAA;QAAA,OACxD,KAAK;MAAA;IAAA;MAAAP,IAAA;MAAAM,GAAA;MAAAC,KAAA;MAJjB;AACF;AACA;;MAIE,SAAAC,OAAA,EAAS;QACP,MAAM;UAAEC;QAAU,CAAC,GAAG,IAAI;QAC1B,OAAOzB,IAAI,CAAA0B,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB,QAAM,CACmE;AACzE,oBAAkB,CAAS,YAAS,CAAS;AAC7C,KAAI,GAHI,CAACF,SAAS,IACZzB,IAAI,CAAA4B,GAAA,KAAAA,GAAA,GAAAD,CAAC,iBAAc,CAAS,WAAQ,CAAS,sBAAoB,GAA5CpB,MAAM,EAAWA,MAAM,CAAsB,EACpDA,MAAM,EAAYA,MAAM;MAE1C;IAAC;MAAAS,IAAA;MAAAa,MAAA;MAAAP,GAAA;MAAAC,MAAA;QAAA,OAEenB,MAAM;MAAA;IAAA;EAAA;AAAA,GAhBYF,UAAU;AAmB9C,eAAeM,qBAAqB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license
3
3
  *
4
- * Copyright IBM Corp. 2019, 2023
4
+ * Copyright IBM Corp. 2019, 2024
5
5
  *
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.