@carbon/web-components 2.0.0-rc.2 → 2.0.0-rc.3

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 (713) hide show
  1. package/custom-elements.json +267 -52
  2. package/es/components/accordion/accordion-item.d.ts.map +1 -1
  3. package/es/components/accordion/accordion-item.js +3 -2
  4. package/es/components/accordion/accordion-item.js.map +1 -1
  5. package/es/components/accordion/accordion-skeleton.js.map +1 -1
  6. package/es/components/accordion/accordion.css.js +1 -1
  7. package/es/components/accordion/accordion.d.ts.map +1 -1
  8. package/es/components/accordion/accordion.js +2 -1
  9. package/es/components/accordion/accordion.js.map +1 -1
  10. package/es/components/accordion/accordion.rtl.css.js +1 -1
  11. package/es/components/accordion/defs.d.ts +1 -1
  12. package/es/components/accordion/defs.d.ts.map +1 -1
  13. package/es/components/accordion/defs.js +1 -1
  14. package/es/components/accordion/defs.js.map +1 -1
  15. package/es/components/accordion/index.d.ts +1 -1
  16. package/es/components/accordion/index.d.ts.map +1 -1
  17. package/es/components/accordion/index.js +1 -1
  18. package/es/components/accordion/index.js.map +1 -1
  19. package/es/components/breadcrumb/breadcrumb-item.d.ts.map +1 -1
  20. package/es/components/breadcrumb/breadcrumb-item.js +2 -6
  21. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  22. package/es/components/breadcrumb/breadcrumb-link.d.ts.map +1 -1
  23. package/es/components/breadcrumb/breadcrumb-link.js +2 -6
  24. package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
  25. package/es/components/breadcrumb/breadcrumb-overflow-menu.d.ts.map +1 -1
  26. package/es/components/breadcrumb/breadcrumb-overflow-menu.js +2 -6
  27. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  28. package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -1
  29. package/es/components/breadcrumb/breadcrumb.css.js +1 -1
  30. package/es/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  31. package/es/components/breadcrumb/breadcrumb.js +3 -6
  32. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  33. package/es/components/breadcrumb/breadcrumb.rtl.css.js +1 -1
  34. package/es/components/breadcrumb/index.d.ts +1 -1
  35. package/es/components/breadcrumb/index.d.ts.map +1 -1
  36. package/es/components/breadcrumb/index.js +1 -1
  37. package/es/components/breadcrumb/index.js.map +1 -1
  38. package/es/components/button/button-set.js.map +1 -1
  39. package/es/components/button/button-skeleton.d.ts.map +1 -1
  40. package/es/components/button/button-skeleton.js +2 -4
  41. package/es/components/button/button-skeleton.js.map +1 -1
  42. package/es/components/button/button.css.js +1 -1
  43. package/es/components/button/button.d.ts.map +1 -1
  44. package/es/components/button/button.js +4 -2
  45. package/es/components/button/button.js.map +1 -1
  46. package/es/components/button/button.rtl.css.js +1 -1
  47. package/es/components/button/defs.d.ts +1 -1
  48. package/es/components/button/defs.d.ts.map +1 -1
  49. package/es/components/button/defs.js +1 -1
  50. package/es/components/button/defs.js.map +1 -1
  51. package/es/components/button/index.d.ts +1 -1
  52. package/es/components/button/index.d.ts.map +1 -1
  53. package/es/components/button/index.js +1 -1
  54. package/es/components/button/index.js.map +1 -1
  55. package/es/components/checkbox/checkbox.css.js +1 -1
  56. package/es/components/checkbox/checkbox.d.ts.map +1 -1
  57. package/es/components/checkbox/checkbox.js +3 -9
  58. package/es/components/checkbox/checkbox.js.map +1 -1
  59. package/es/components/checkbox/checkbox.rtl.css.js +1 -1
  60. package/es/components/checkbox/index.d.ts +1 -1
  61. package/es/components/checkbox/index.d.ts.map +1 -1
  62. package/es/components/checkbox/index.js +1 -1
  63. package/es/components/checkbox/index.js.map +1 -1
  64. package/es/components/code-snippet/code-snippet-skeleton.d.ts.map +1 -1
  65. package/es/components/code-snippet/code-snippet-skeleton.js +3 -4
  66. package/es/components/code-snippet/code-snippet-skeleton.js.map +1 -1
  67. package/es/components/code-snippet/code-snippet.css.js +1 -1
  68. package/es/components/code-snippet/code-snippet.d.ts.map +1 -1
  69. package/es/components/code-snippet/code-snippet.js +2 -1
  70. package/es/components/code-snippet/code-snippet.js.map +1 -1
  71. package/es/components/code-snippet/code-snippet.rtl.css.js +1 -1
  72. package/es/components/code-snippet/defs.d.ts +1 -1
  73. package/es/components/code-snippet/defs.d.ts.map +1 -1
  74. package/es/components/code-snippet/defs.js +1 -1
  75. package/es/components/code-snippet/defs.js.map +1 -1
  76. package/es/components/code-snippet/index.d.ts +1 -1
  77. package/es/components/code-snippet/index.d.ts.map +1 -1
  78. package/es/components/code-snippet/index.js +1 -1
  79. package/es/components/code-snippet/index.js.map +1 -1
  80. package/es/components/combo-box/combo-box-item.d.ts.map +1 -1
  81. package/es/components/combo-box/combo-box-item.js +2 -6
  82. package/es/components/combo-box/combo-box-item.js.map +1 -1
  83. package/es/components/combo-box/combo-box.css.js +1 -1
  84. package/es/components/combo-box/combo-box.d.ts.map +1 -1
  85. package/es/components/combo-box/combo-box.js +2 -1
  86. package/es/components/combo-box/combo-box.js.map +1 -1
  87. package/es/components/combo-box/combo-box.rtl.css.js +1 -1
  88. package/es/components/combo-box/index.d.ts +1 -1
  89. package/es/components/combo-box/index.d.ts.map +1 -1
  90. package/es/components/combo-box/index.js +1 -1
  91. package/es/components/combo-box/index.js.map +1 -1
  92. package/es/components/content-switcher/content-switcher-item.d.ts.map +1 -1
  93. package/es/components/content-switcher/content-switcher-item.js +3 -6
  94. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  95. package/es/components/content-switcher/content-switcher.css.js +1 -1
  96. package/es/components/content-switcher/content-switcher.d.ts.map +1 -1
  97. package/es/components/content-switcher/content-switcher.js +2 -1
  98. package/es/components/content-switcher/content-switcher.js.map +1 -1
  99. package/es/components/content-switcher/content-switcher.rtl.css.js +1 -1
  100. package/es/components/content-switcher/defs.d.ts +1 -1
  101. package/es/components/content-switcher/defs.d.ts.map +1 -1
  102. package/es/components/content-switcher/defs.js +1 -1
  103. package/es/components/content-switcher/defs.js.map +1 -1
  104. package/es/components/content-switcher/index.d.ts +1 -1
  105. package/es/components/content-switcher/index.d.ts.map +1 -1
  106. package/es/components/content-switcher/index.js +1 -1
  107. package/es/components/content-switcher/index.js.map +1 -1
  108. package/es/components/copy/copy.js.map +1 -1
  109. package/es/components/copy-button/copy-button.css.js +1 -1
  110. package/es/components/copy-button/copy-button.js.map +1 -1
  111. package/es/components/copy-button/copy-button.rtl.css.js +1 -1
  112. package/es/components/copy-button/index.d.ts +1 -1
  113. package/es/components/copy-button/index.d.ts.map +1 -1
  114. package/es/components/copy-button/index.js +1 -1
  115. package/es/components/copy-button/index.js.map +1 -1
  116. package/es/components/data-table/data-table.css.js +1 -1
  117. package/es/components/data-table/data-table.rtl.css.js +1 -1
  118. package/es/components/data-table/index.d.ts +1 -1
  119. package/es/components/data-table/index.d.ts.map +1 -1
  120. package/es/components/data-table/index.js +1 -1
  121. package/es/components/data-table/index.js.map +1 -1
  122. package/es/components/data-table/table-batch-actions.d.ts.map +1 -1
  123. package/es/components/data-table/table-batch-actions.js +3 -7
  124. package/es/components/data-table/table-batch-actions.js.map +1 -1
  125. package/es/components/data-table/table-body.d.ts.map +1 -1
  126. package/es/components/data-table/table-body.js +3 -6
  127. package/es/components/data-table/table-body.js.map +1 -1
  128. package/es/components/data-table/table-cell.d.ts.map +1 -1
  129. package/es/components/data-table/table-cell.js +3 -7
  130. package/es/components/data-table/table-cell.js.map +1 -1
  131. package/es/components/data-table/table-expanded-row.d.ts.map +1 -1
  132. package/es/components/data-table/table-expanded-row.js +2 -1
  133. package/es/components/data-table/table-expanded-row.js.map +1 -1
  134. package/es/components/data-table/table-head.d.ts.map +1 -1
  135. package/es/components/data-table/table-head.js +2 -6
  136. package/es/components/data-table/table-head.js.map +1 -1
  137. package/es/components/data-table/table-header-cell.d.ts.map +1 -1
  138. package/es/components/data-table/table-header-cell.js +2 -1
  139. package/es/components/data-table/table-header-cell.js.map +1 -1
  140. package/es/components/data-table/table-header-row.d.ts.map +1 -1
  141. package/es/components/data-table/table-header-row.js +1 -1
  142. package/es/components/data-table/table-header-row.js.map +1 -1
  143. package/es/components/data-table/table-row.d.ts.map +1 -1
  144. package/es/components/data-table/table-row.js +3 -2
  145. package/es/components/data-table/table-row.js.map +1 -1
  146. package/es/components/data-table/table-skeleton.js.map +1 -1
  147. package/es/components/data-table/table-toolbar-content.d.ts.map +1 -1
  148. package/es/components/data-table/table-toolbar-content.js +4 -7
  149. package/es/components/data-table/table-toolbar-content.js.map +1 -1
  150. package/es/components/data-table/table-toolbar-search.d.ts.map +1 -1
  151. package/es/components/data-table/table-toolbar-search.js +3 -7
  152. package/es/components/data-table/table-toolbar-search.js.map +1 -1
  153. package/es/components/data-table/table-toolbar.d.ts +0 -8
  154. package/es/components/data-table/table-toolbar.d.ts.map +1 -1
  155. package/es/components/data-table/table-toolbar.js +3 -30
  156. package/es/components/data-table/table-toolbar.js.map +1 -1
  157. package/es/components/data-table/table.d.ts.map +1 -1
  158. package/es/components/data-table/table.js +3 -3
  159. package/es/components/data-table/table.js.map +1 -1
  160. package/es/components/date-picker/append-to-plugin.js.map +1 -1
  161. package/es/components/date-picker/css-class-plugin.js.map +1 -1
  162. package/es/components/date-picker/date-picker-input-skeleton.d.ts.map +1 -1
  163. package/es/components/date-picker/date-picker-input-skeleton.js +3 -4
  164. package/es/components/date-picker/date-picker-input-skeleton.js.map +1 -1
  165. package/es/components/date-picker/date-picker-input.d.ts.map +1 -1
  166. package/es/components/date-picker/date-picker-input.js +2 -1
  167. package/es/components/date-picker/date-picker-input.js.map +1 -1
  168. package/es/components/date-picker/date-picker.css.js +1 -1
  169. package/es/components/date-picker/date-picker.d.ts.map +1 -1
  170. package/es/components/date-picker/date-picker.js +7 -4
  171. package/es/components/date-picker/date-picker.js.map +1 -1
  172. package/es/components/date-picker/date-picker.rtl.css.js +1 -1
  173. package/es/components/date-picker/defs.d.ts +1 -1
  174. package/es/components/date-picker/defs.d.ts.map +1 -1
  175. package/es/components/date-picker/defs.js +1 -1
  176. package/es/components/date-picker/defs.js.map +1 -1
  177. package/es/components/date-picker/fix-events-plugin.js +9 -0
  178. package/es/components/date-picker/fix-events-plugin.js.map +1 -1
  179. package/es/components/date-picker/focus-plugin.d.ts.map +1 -1
  180. package/es/components/date-picker/focus-plugin.js +14 -4
  181. package/es/components/date-picker/focus-plugin.js.map +1 -1
  182. package/es/components/date-picker/icon-plugin.js.map +1 -1
  183. package/es/components/date-picker/index.d.ts +1 -1
  184. package/es/components/date-picker/index.d.ts.map +1 -1
  185. package/es/components/date-picker/index.js +1 -1
  186. package/es/components/date-picker/index.js.map +1 -1
  187. package/es/components/date-picker/iso-date.js.map +1 -1
  188. package/es/components/date-picker/month-select-plugin.js.map +1 -1
  189. package/es/components/date-picker/range-plugin.d.ts +21 -6
  190. package/es/components/date-picker/range-plugin.d.ts.map +1 -1
  191. package/es/components/date-picker/range-plugin.js +51 -17
  192. package/es/components/date-picker/range-plugin.js.map +1 -1
  193. package/es/components/date-picker/shadow-dom-events-plugin.js.map +1 -1
  194. package/es/components/date-picker/state-handshake-plugin.js.map +1 -1
  195. package/es/components/dropdown/defs.d.ts +1 -1
  196. package/es/components/dropdown/defs.d.ts.map +1 -1
  197. package/es/components/dropdown/defs.js +1 -1
  198. package/es/components/dropdown/defs.js.map +1 -1
  199. package/es/components/dropdown/dropdown-item.d.ts.map +1 -1
  200. package/es/components/dropdown/dropdown-item.js +3 -7
  201. package/es/components/dropdown/dropdown-item.js.map +1 -1
  202. package/es/components/dropdown/dropdown-skeleton.d.ts.map +1 -1
  203. package/es/components/dropdown/dropdown-skeleton.js +2 -4
  204. package/es/components/dropdown/dropdown-skeleton.js.map +1 -1
  205. package/es/components/dropdown/dropdown.css.js +1 -1
  206. package/es/components/dropdown/dropdown.d.ts +1 -3
  207. package/es/components/dropdown/dropdown.d.ts.map +1 -1
  208. package/es/components/dropdown/dropdown.js +2 -1
  209. package/es/components/dropdown/dropdown.js.map +1 -1
  210. package/es/components/dropdown/dropdown.rtl.css.js +1 -1
  211. package/es/components/dropdown/index.d.ts +1 -1
  212. package/es/components/dropdown/index.d.ts.map +1 -1
  213. package/es/components/dropdown/index.js +1 -1
  214. package/es/components/dropdown/index.js.map +1 -1
  215. package/es/components/file-uploader/defs.d.ts +1 -1
  216. package/es/components/file-uploader/defs.d.ts.map +1 -1
  217. package/es/components/file-uploader/defs.js +1 -1
  218. package/es/components/file-uploader/defs.js.map +1 -1
  219. package/es/components/file-uploader/demo-file-uploader.js.map +1 -1
  220. package/es/components/file-uploader/file-uploader-button.d.ts.map +1 -1
  221. package/es/components/file-uploader/file-uploader-button.js +1 -0
  222. package/es/components/file-uploader/file-uploader-button.js.map +1 -1
  223. package/es/components/file-uploader/file-uploader-drop-container.d.ts.map +1 -1
  224. package/es/components/file-uploader/file-uploader-drop-container.js +2 -1
  225. package/es/components/file-uploader/file-uploader-drop-container.js.map +1 -1
  226. package/es/components/file-uploader/file-uploader-item.d.ts.map +1 -1
  227. package/es/components/file-uploader/file-uploader-item.js +2 -1
  228. package/es/components/file-uploader/file-uploader-item.js.map +1 -1
  229. package/es/components/file-uploader/file-uploader.css.js +1 -1
  230. package/es/components/file-uploader/file-uploader.d.ts.map +1 -1
  231. package/es/components/file-uploader/file-uploader.js +3 -8
  232. package/es/components/file-uploader/file-uploader.js.map +1 -1
  233. package/es/components/file-uploader/file-uploader.rtl.css.js +1 -1
  234. package/es/components/file-uploader/index.d.ts +1 -1
  235. package/es/components/file-uploader/index.d.ts.map +1 -1
  236. package/es/components/file-uploader/index.js +1 -1
  237. package/es/components/file-uploader/index.js.map +1 -1
  238. package/es/components/floating-menu/defs.d.ts +1 -1
  239. package/es/components/floating-menu/defs.d.ts.map +1 -1
  240. package/es/components/floating-menu/defs.js +1 -1
  241. package/es/components/floating-menu/defs.js.map +1 -1
  242. package/es/components/floating-menu/floating-menu-trigger.d.ts +1 -1
  243. package/es/components/floating-menu/floating-menu-trigger.d.ts.map +1 -1
  244. package/es/components/floating-menu/floating-menu.js +9 -2
  245. package/es/components/floating-menu/floating-menu.js.map +1 -1
  246. package/es/components/floating-menu/index.d.ts +1 -1
  247. package/es/components/floating-menu/index.d.ts.map +1 -1
  248. package/es/components/floating-menu/index.js +1 -1
  249. package/es/components/floating-menu/index.js.map +1 -1
  250. package/es/components/form/form-item.css.js +1 -1
  251. package/es/components/form/form-item.d.ts.map +1 -1
  252. package/es/components/form/form-item.js +2 -6
  253. package/es/components/form/form-item.js.map +1 -1
  254. package/es/components/form/form-item.rtl.css.js +1 -1
  255. package/es/components/form/index.d.ts +1 -1
  256. package/es/components/form/index.d.ts.map +1 -1
  257. package/es/components/form/index.js +1 -1
  258. package/es/components/form/index.js.map +1 -1
  259. package/es/components/form-group/form-group.css.js +1 -1
  260. package/es/components/form-group/form-group.rtl.css.js +1 -1
  261. package/es/components/icon-button/icon-button.css.js +1 -1
  262. package/es/components/icon-button/icon-button.js.map +1 -1
  263. package/es/components/icon-button/icon-button.rtl.css.js +1 -1
  264. package/es/components/inline-loading/defs.d.ts +1 -1
  265. package/es/components/inline-loading/defs.d.ts.map +1 -1
  266. package/es/components/inline-loading/defs.js +1 -1
  267. package/es/components/inline-loading/defs.js.map +1 -1
  268. package/es/components/inline-loading/index.d.ts +1 -1
  269. package/es/components/inline-loading/index.d.ts.map +1 -1
  270. package/es/components/inline-loading/index.js +1 -1
  271. package/es/components/inline-loading/index.js.map +1 -1
  272. package/es/components/inline-loading/inline-loading.css.js +1 -1
  273. package/es/components/inline-loading/inline-loading.d.ts.map +1 -1
  274. package/es/components/inline-loading/inline-loading.js +2 -1
  275. package/es/components/inline-loading/inline-loading.js.map +1 -1
  276. package/es/components/inline-loading/inline-loading.rtl.css.js +1 -1
  277. package/es/components/layer/layer.js.map +1 -1
  278. package/es/components/link/index.d.ts +1 -1
  279. package/es/components/link/index.d.ts.map +1 -1
  280. package/es/components/link/index.js +1 -1
  281. package/es/components/link/index.js.map +1 -1
  282. package/es/components/link/link.d.ts.map +1 -1
  283. package/es/components/link/link.js +3 -4
  284. package/es/components/link/link.js.map +1 -1
  285. package/es/components/list/index.d.ts +1 -1
  286. package/es/components/list/index.d.ts.map +1 -1
  287. package/es/components/list/index.js +1 -1
  288. package/es/components/list/index.js.map +1 -1
  289. package/es/components/list/list-item.d.ts.map +1 -1
  290. package/es/components/list/list-item.js +3 -7
  291. package/es/components/list/list-item.js.map +1 -1
  292. package/es/components/list/ordered-list.d.ts.map +1 -1
  293. package/es/components/list/ordered-list.js +2 -1
  294. package/es/components/list/ordered-list.js.map +1 -1
  295. package/es/components/list/unordered-list.d.ts.map +1 -1
  296. package/es/components/list/unordered-list.js +3 -4
  297. package/es/components/list/unordered-list.js.map +1 -1
  298. package/es/components/loading/defs.d.ts +1 -1
  299. package/es/components/loading/defs.d.ts.map +1 -1
  300. package/es/components/loading/defs.js +1 -1
  301. package/es/components/loading/defs.js.map +1 -1
  302. package/es/components/loading/index.d.ts +1 -1
  303. package/es/components/loading/index.d.ts.map +1 -1
  304. package/es/components/loading/index.js +1 -1
  305. package/es/components/loading/index.js.map +1 -1
  306. package/es/components/loading/loading.css.js +1 -1
  307. package/es/components/loading/loading.d.ts.map +1 -1
  308. package/es/components/loading/loading.js +3 -6
  309. package/es/components/loading/loading.js.map +1 -1
  310. package/es/components/loading/loading.rtl.css.js +1 -1
  311. package/es/components/loading/types.d.ts +1 -1
  312. package/es/components/loading/types.d.ts.map +1 -1
  313. package/es/components/loading/types.js +1 -1
  314. package/es/components/loading/types.js.map +1 -1
  315. package/es/components/modal/defs.d.ts +1 -1
  316. package/es/components/modal/defs.d.ts.map +1 -1
  317. package/es/components/modal/defs.js +1 -1
  318. package/es/components/modal/defs.js.map +1 -1
  319. package/es/components/modal/index.d.ts +1 -1
  320. package/es/components/modal/index.d.ts.map +1 -1
  321. package/es/components/modal/index.js +1 -1
  322. package/es/components/modal/index.js.map +1 -1
  323. package/es/components/modal/modal-body.d.ts.map +1 -1
  324. package/es/components/modal/modal-body.js +2 -6
  325. package/es/components/modal/modal-body.js.map +1 -1
  326. package/es/components/modal/modal-close-button.d.ts.map +1 -1
  327. package/es/components/modal/modal-close-button.js +3 -8
  328. package/es/components/modal/modal-close-button.js.map +1 -1
  329. package/es/components/modal/modal-footer-button.d.ts.map +1 -1
  330. package/es/components/modal/modal-footer-button.js +2 -6
  331. package/es/components/modal/modal-footer-button.js.map +1 -1
  332. package/es/components/modal/modal-footer.d.ts.map +1 -1
  333. package/es/components/modal/modal-footer.js +3 -6
  334. package/es/components/modal/modal-footer.js.map +1 -1
  335. package/es/components/modal/modal-header.d.ts.map +1 -1
  336. package/es/components/modal/modal-header.js +2 -6
  337. package/es/components/modal/modal-header.js.map +1 -1
  338. package/es/components/modal/modal-heading.d.ts.map +1 -1
  339. package/es/components/modal/modal-heading.js +2 -6
  340. package/es/components/modal/modal-heading.js.map +1 -1
  341. package/es/components/modal/modal-label.d.ts.map +1 -1
  342. package/es/components/modal/modal-label.js +2 -6
  343. package/es/components/modal/modal-label.js.map +1 -1
  344. package/es/components/modal/modal.css.js +1 -1
  345. package/es/components/modal/modal.d.ts.map +1 -1
  346. package/es/components/modal/modal.js +2 -1
  347. package/es/components/modal/modal.js.map +1 -1
  348. package/es/components/modal/modal.rtl.css.js +1 -1
  349. package/es/components/multi-select/multi-select-item.d.ts.map +1 -1
  350. package/es/components/multi-select/multi-select-item.js +3 -6
  351. package/es/components/multi-select/multi-select-item.js.map +1 -1
  352. package/es/components/multi-select/multi-select.css.js +1 -1
  353. package/es/components/multi-select/multi-select.d.ts.map +1 -1
  354. package/es/components/multi-select/multi-select.js +2 -1
  355. package/es/components/multi-select/multi-select.js.map +1 -1
  356. package/es/components/multi-select/multi-select.rtl.css.js +1 -1
  357. package/es/components/notification/actionable-notification-button.js.map +1 -1
  358. package/es/components/notification/actionable-notification.css.js +1 -1
  359. package/es/components/notification/actionable-notification.js.map +1 -1
  360. package/es/components/notification/actionable-notification.rtl.css.js +1 -1
  361. package/es/components/notification/inline-notification.css.js +1 -1
  362. package/es/components/notification/inline-notification.d.ts.map +1 -1
  363. package/es/components/notification/inline-notification.js +2 -1
  364. package/es/components/notification/inline-notification.js.map +1 -1
  365. package/es/components/notification/inline-notification.rtl.css.js +1 -1
  366. package/es/components/notification/toast-notification.css.js +1 -1
  367. package/es/components/notification/toast-notification.d.ts.map +1 -1
  368. package/es/components/notification/toast-notification.js +2 -1
  369. package/es/components/notification/toast-notification.js.map +1 -1
  370. package/es/components/notification/toast-notification.rtl.css.js +1 -1
  371. package/es/components/number-input/number-input-skeleton.d.ts.map +1 -1
  372. package/es/components/number-input/number-input-skeleton.js +3 -4
  373. package/es/components/number-input/number-input-skeleton.js.map +1 -1
  374. package/es/components/number-input/number-input.css.js +1 -1
  375. package/es/components/number-input/number-input.d.ts.map +1 -1
  376. package/es/components/number-input/number-input.js +2 -1
  377. package/es/components/number-input/number-input.js.map +1 -1
  378. package/es/components/number-input/number-input.rtl.css.js +1 -1
  379. package/es/components/overflow-menu/overflow-menu-body.d.ts.map +1 -1
  380. package/es/components/overflow-menu/overflow-menu-body.js +2 -1
  381. package/es/components/overflow-menu/overflow-menu-body.js.map +1 -1
  382. package/es/components/overflow-menu/overflow-menu-item.d.ts.map +1 -1
  383. package/es/components/overflow-menu/overflow-menu-item.js +2 -1
  384. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  385. package/es/components/overflow-menu/overflow-menu.css.js +1 -1
  386. package/es/components/overflow-menu/overflow-menu.d.ts.map +1 -1
  387. package/es/components/overflow-menu/overflow-menu.js +2 -4
  388. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  389. package/es/components/overflow-menu/overflow-menu.rtl.css.js +1 -1
  390. package/es/components/pagination/pagination.css.js +1 -1
  391. package/es/components/pagination/pagination.d.ts.map +1 -1
  392. package/es/components/pagination/pagination.js +12 -6
  393. package/es/components/pagination/pagination.js.map +1 -1
  394. package/es/components/pagination/pagination.rtl.css.js +1 -1
  395. package/es/components/popover/popover.css.js +1 -1
  396. package/es/components/popover/popover.js.map +1 -1
  397. package/es/components/popover/popover.rtl.css.js +1 -1
  398. package/es/components/progress-bar/progress-bar.css.js +1 -1
  399. package/es/components/progress-bar/progress-bar.js.map +1 -1
  400. package/es/components/progress-bar/progress-bar.rtl.css.js +1 -1
  401. package/es/components/progress-indicator/progress-indicator-skeleton.d.ts.map +1 -1
  402. package/es/components/progress-indicator/progress-indicator-skeleton.js +3 -4
  403. package/es/components/progress-indicator/progress-indicator-skeleton.js.map +1 -1
  404. package/es/components/progress-indicator/progress-indicator.css.js +1 -1
  405. package/es/components/progress-indicator/progress-indicator.d.ts.map +1 -1
  406. package/es/components/progress-indicator/progress-indicator.js +3 -6
  407. package/es/components/progress-indicator/progress-indicator.js.map +1 -1
  408. package/es/components/progress-indicator/progress-indicator.rtl.css.js +1 -1
  409. package/es/components/progress-indicator/progress-step-skeleton.d.ts.map +1 -1
  410. package/es/components/progress-indicator/progress-step-skeleton.js +3 -2
  411. package/es/components/progress-indicator/progress-step-skeleton.js.map +1 -1
  412. package/es/components/progress-indicator/progress-step.d.ts.map +1 -1
  413. package/es/components/progress-indicator/progress-step.js +2 -1
  414. package/es/components/progress-indicator/progress-step.js.map +1 -1
  415. package/es/components/radio-button/radio-button-group.d.ts +23 -1
  416. package/es/components/radio-button/radio-button-group.d.ts.map +1 -1
  417. package/es/components/radio-button/radio-button-group.js +111 -11
  418. package/es/components/radio-button/radio-button-group.js.map +1 -1
  419. package/es/components/radio-button/radio-button-skeleton.d.ts.map +1 -1
  420. package/es/components/radio-button/radio-button-skeleton.js +2 -4
  421. package/es/components/radio-button/radio-button-skeleton.js.map +1 -1
  422. package/es/components/radio-button/radio-button.css.js +1 -1
  423. package/es/components/radio-button/radio-button.d.ts +4 -0
  424. package/es/components/radio-button/radio-button.d.ts.map +1 -1
  425. package/es/components/radio-button/radio-button.js +20 -1
  426. package/es/components/radio-button/radio-button.js.map +1 -1
  427. package/es/components/radio-button/radio-button.rtl.css.js +1 -1
  428. package/es/components/search/search-skeleton.d.ts.map +1 -1
  429. package/es/components/search/search-skeleton.js +3 -4
  430. package/es/components/search/search-skeleton.js.map +1 -1
  431. package/es/components/search/search.css.js +1 -1
  432. package/es/components/search/search.d.ts.map +1 -1
  433. package/es/components/search/search.js +3 -12
  434. package/es/components/search/search.js.map +1 -1
  435. package/es/components/search/search.rtl.css.js +1 -1
  436. package/es/components/select/select-item-group.d.ts.map +1 -1
  437. package/es/components/select/select-item-group.js +2 -1
  438. package/es/components/select/select-item-group.js.map +1 -1
  439. package/es/components/select/select-item.d.ts.map +1 -1
  440. package/es/components/select/select-item.js +2 -1
  441. package/es/components/select/select-item.js.map +1 -1
  442. package/es/components/select/select.css.js +1 -1
  443. package/es/components/select/select.d.ts.map +1 -1
  444. package/es/components/select/select.js +3 -9
  445. package/es/components/select/select.js.map +1 -1
  446. package/es/components/select/select.rtl.css.js +1 -1
  447. package/es/components/skeleton-placeholder/skeleton-placeholder.d.ts.map +1 -1
  448. package/es/components/skeleton-placeholder/skeleton-placeholder.js +2 -6
  449. package/es/components/skeleton-placeholder/skeleton-placeholder.js.map +1 -1
  450. package/es/components/skeleton-text/skeleton-text.d.ts.map +1 -1
  451. package/es/components/skeleton-text/skeleton-text.js +2 -1
  452. package/es/components/skeleton-text/skeleton-text.js.map +1 -1
  453. package/es/components/skip-to-content/skip-to-content.css.js +1 -1
  454. package/es/components/skip-to-content/skip-to-content.d.ts.map +1 -1
  455. package/es/components/skip-to-content/skip-to-content.js +3 -6
  456. package/es/components/skip-to-content/skip-to-content.js.map +1 -1
  457. package/es/components/skip-to-content/skip-to-content.rtl.css.js +1 -1
  458. package/es/components/slider/slider-input.d.ts +4 -0
  459. package/es/components/slider/slider-input.d.ts.map +1 -1
  460. package/es/components/slider/slider-input.js +35 -15
  461. package/es/components/slider/slider-input.js.map +1 -1
  462. package/es/components/slider/slider-skeleton.d.ts.map +1 -1
  463. package/es/components/slider/slider-skeleton.js +2 -4
  464. package/es/components/slider/slider-skeleton.js.map +1 -1
  465. package/es/components/slider/slider.css.js +1 -1
  466. package/es/components/slider/slider.d.ts +17 -0
  467. package/es/components/slider/slider.d.ts.map +1 -1
  468. package/es/components/slider/slider.js +94 -7
  469. package/es/components/slider/slider.js.map +1 -1
  470. package/es/components/slider/slider.rtl.css.js +1 -1
  471. package/es/components/stack/defs.js.map +1 -1
  472. package/es/components/structured-list/structured-list-body.d.ts.map +1 -1
  473. package/es/components/structured-list/structured-list-body.js +1 -1
  474. package/es/components/structured-list/structured-list-body.js.map +1 -1
  475. package/es/components/structured-list/structured-list-cell.d.ts.map +1 -1
  476. package/es/components/structured-list/structured-list-cell.js +2 -6
  477. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  478. package/es/components/structured-list/structured-list-head.d.ts.map +1 -1
  479. package/es/components/structured-list/structured-list-head.js +1 -1
  480. package/es/components/structured-list/structured-list-head.js.map +1 -1
  481. package/es/components/structured-list/structured-list-header-cell-skeleton.d.ts.map +1 -1
  482. package/es/components/structured-list/structured-list-header-cell-skeleton.js +2 -4
  483. package/es/components/structured-list/structured-list-header-cell-skeleton.js.map +1 -1
  484. package/es/components/structured-list/structured-list-header-cell.d.ts.map +1 -1
  485. package/es/components/structured-list/structured-list-header-cell.js +2 -6
  486. package/es/components/structured-list/structured-list-header-cell.js.map +1 -1
  487. package/es/components/structured-list/structured-list-header-row.d.ts.map +1 -1
  488. package/es/components/structured-list/structured-list-header-row.js +2 -1
  489. package/es/components/structured-list/structured-list-header-row.js.map +1 -1
  490. package/es/components/structured-list/structured-list-row.d.ts +0 -3
  491. package/es/components/structured-list/structured-list-row.d.ts.map +1 -1
  492. package/es/components/structured-list/structured-list-row.js +3 -4
  493. package/es/components/structured-list/structured-list-row.js.map +1 -1
  494. package/es/components/structured-list/structured-list.css.js +1 -1
  495. package/es/components/structured-list/structured-list.d.ts.map +1 -1
  496. package/es/components/structured-list/structured-list.js +3 -6
  497. package/es/components/structured-list/structured-list.js.map +1 -1
  498. package/es/components/structured-list/structured-list.rtl.css.js +1 -1
  499. package/es/components/tabs/tab-skeleton.d.ts.map +1 -1
  500. package/es/components/tabs/tab-skeleton.js +2 -4
  501. package/es/components/tabs/tab-skeleton.js.map +1 -1
  502. package/es/components/tabs/tab.d.ts.map +1 -1
  503. package/es/components/tabs/tab.js +3 -6
  504. package/es/components/tabs/tab.js.map +1 -1
  505. package/es/components/tabs/tabs-skeleton.d.ts.map +1 -1
  506. package/es/components/tabs/tabs-skeleton.js +2 -4
  507. package/es/components/tabs/tabs-skeleton.js.map +1 -1
  508. package/es/components/tabs/tabs.css.js +1 -1
  509. package/es/components/tabs/tabs.d.ts.map +1 -1
  510. package/es/components/tabs/tabs.js +3 -8
  511. package/es/components/tabs/tabs.js.map +1 -1
  512. package/es/components/tabs/tabs.rtl.css.js +1 -1
  513. package/es/components/tag/tag.css.js +1 -1
  514. package/es/components/tag/tag.d.ts.map +1 -1
  515. package/es/components/tag/tag.js +2 -1
  516. package/es/components/tag/tag.js.map +1 -1
  517. package/es/components/tag/tag.rtl.css.js +1 -1
  518. package/es/components/text-input/text-input.css.js +1 -1
  519. package/es/components/text-input/text-input.d.ts +4 -4
  520. package/es/components/text-input/text-input.d.ts.map +1 -1
  521. package/es/components/text-input/text-input.js +13 -12
  522. package/es/components/text-input/text-input.js.map +1 -1
  523. package/es/components/text-input/text-input.rtl.css.js +1 -1
  524. package/es/components/textarea/textarea-skeleton.d.ts.map +1 -1
  525. package/es/components/textarea/textarea-skeleton.js +2 -4
  526. package/es/components/textarea/textarea-skeleton.js.map +1 -1
  527. package/es/components/textarea/textarea.css.js +1 -1
  528. package/es/components/textarea/textarea.d.ts.map +1 -1
  529. package/es/components/textarea/textarea.js +12 -14
  530. package/es/components/textarea/textarea.js.map +1 -1
  531. package/es/components/textarea/textarea.rtl.css.js +1 -1
  532. package/es/components/tile/clickable-tile.d.ts.map +1 -1
  533. package/es/components/tile/clickable-tile.js +3 -6
  534. package/es/components/tile/clickable-tile.js.map +1 -1
  535. package/es/components/tile/expandable-tile.d.ts.map +1 -1
  536. package/es/components/tile/expandable-tile.js +2 -1
  537. package/es/components/tile/expandable-tile.js.map +1 -1
  538. package/es/components/tile/radio-tile.d.ts.map +1 -1
  539. package/es/components/tile/radio-tile.js +2 -6
  540. package/es/components/tile/radio-tile.js.map +1 -1
  541. package/es/components/tile/selectable-tile.d.ts +3 -1
  542. package/es/components/tile/selectable-tile.d.ts.map +1 -1
  543. package/es/components/tile/selectable-tile.js +2 -1
  544. package/es/components/tile/selectable-tile.js.map +1 -1
  545. package/es/components/tile/tile-group.d.ts.map +1 -1
  546. package/es/components/tile/tile-group.js +3 -4
  547. package/es/components/tile/tile-group.js.map +1 -1
  548. package/es/components/tile/tile.css.js +1 -1
  549. package/es/components/tile/tile.d.ts.map +1 -1
  550. package/es/components/tile/tile.js +2 -1
  551. package/es/components/tile/tile.js.map +1 -1
  552. package/es/components/tile/tile.rtl.css.js +1 -1
  553. package/es/components/toggle/toggle.css.js +1 -1
  554. package/es/components/toggle/toggle.d.ts.map +1 -1
  555. package/es/components/toggle/toggle.js +2 -1
  556. package/es/components/toggle/toggle.js.map +1 -1
  557. package/es/components/toggle/toggle.rtl.css.js +1 -1
  558. package/es/components/toggle-tip/toggletip.css.js +1 -1
  559. package/es/components/toggle-tip/toggletip.js.map +1 -1
  560. package/es/components/toggle-tip/toggletip.rtl.css.js +1 -1
  561. package/es/components/tooltip/tooltip.css.js +1 -1
  562. package/es/components/tooltip/tooltip.d.ts +0 -1
  563. package/es/components/tooltip/tooltip.d.ts.map +1 -1
  564. package/es/components/tooltip/tooltip.js +3 -2
  565. package/es/components/tooltip/tooltip.js.map +1 -1
  566. package/es/components/tooltip/tooltip.rtl.css.js +1 -1
  567. package/es/components/ui-shell/header-global-action.d.ts +16 -1
  568. package/es/components/ui-shell/header-global-action.d.ts.map +1 -1
  569. package/es/components/ui-shell/header-global-action.js +92 -8
  570. package/es/components/ui-shell/header-global-action.js.map +1 -1
  571. package/es/components/ui-shell/header-menu-button.d.ts.map +1 -1
  572. package/es/components/ui-shell/header-menu-button.js +3 -9
  573. package/es/components/ui-shell/header-menu-button.js.map +1 -1
  574. package/es/components/ui-shell/header-menu-item.d.ts.map +1 -1
  575. package/es/components/ui-shell/header-menu-item.js +1 -1
  576. package/es/components/ui-shell/header-menu-item.js.map +1 -1
  577. package/es/components/ui-shell/header-menu.d.ts +1 -1
  578. package/es/components/ui-shell/header-menu.d.ts.map +1 -1
  579. package/es/components/ui-shell/header-menu.js +11 -17
  580. package/es/components/ui-shell/header-menu.js.map +1 -1
  581. package/es/components/ui-shell/header-name.d.ts.map +1 -1
  582. package/es/components/ui-shell/header-name.js +3 -8
  583. package/es/components/ui-shell/header-name.js.map +1 -1
  584. package/es/components/ui-shell/header-nav-item.d.ts +8 -0
  585. package/es/components/ui-shell/header-nav-item.d.ts.map +1 -1
  586. package/es/components/ui-shell/header-nav-item.js +32 -11
  587. package/es/components/ui-shell/header-nav-item.js.map +1 -1
  588. package/es/components/ui-shell/header-nav.d.ts.map +1 -1
  589. package/es/components/ui-shell/header-nav.js +2 -1
  590. package/es/components/ui-shell/header-nav.js.map +1 -1
  591. package/es/components/ui-shell/header.css.js +1 -1
  592. package/es/components/ui-shell/header.d.ts.map +1 -1
  593. package/es/components/ui-shell/header.js +1 -1
  594. package/es/components/ui-shell/header.js.map +1 -1
  595. package/es/components/ui-shell/header.rtl.css.js +1 -1
  596. package/es/components/ui-shell/index.d.ts +12 -11
  597. package/es/components/ui-shell/index.d.ts.map +1 -1
  598. package/es/components/ui-shell/index.js +12 -11
  599. package/es/components/ui-shell/index.js.map +1 -1
  600. package/es/components/ui-shell/side-nav-divider.d.ts.map +1 -1
  601. package/es/components/ui-shell/side-nav-divider.js +1 -1
  602. package/es/components/ui-shell/side-nav-divider.js.map +1 -1
  603. package/es/components/ui-shell/side-nav-items.d.ts.map +1 -1
  604. package/es/components/ui-shell/side-nav-items.js +1 -1
  605. package/es/components/ui-shell/side-nav-items.js.map +1 -1
  606. package/es/components/ui-shell/side-nav-link.d.ts +8 -0
  607. package/es/components/ui-shell/side-nav-link.d.ts.map +1 -1
  608. package/es/components/ui-shell/side-nav-link.js +33 -11
  609. package/es/components/ui-shell/side-nav-link.js.map +1 -1
  610. package/es/components/ui-shell/side-nav-menu-item.d.ts.map +1 -1
  611. package/es/components/ui-shell/side-nav-menu-item.js +3 -8
  612. package/es/components/ui-shell/side-nav-menu-item.js.map +1 -1
  613. package/es/components/ui-shell/side-nav-menu.d.ts.map +1 -1
  614. package/es/components/ui-shell/side-nav-menu.js +3 -13
  615. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  616. package/es/components/ui-shell/side-nav.css.js +1 -1
  617. package/es/components/ui-shell/side-nav.d.ts +5 -0
  618. package/es/components/ui-shell/side-nav.d.ts.map +1 -1
  619. package/es/components/ui-shell/side-nav.js +16 -2
  620. package/es/components/ui-shell/side-nav.js.map +1 -1
  621. package/es/components/ui-shell/side-nav.rtl.css.js +1 -1
  622. package/es/components/ui-shell/switcher-item.js.map +1 -1
  623. package/es/globals/decorators/carbon-element.d.ts +235 -0
  624. package/es/globals/decorators/carbon-element.d.ts.map +1 -0
  625. package/es/globals/decorators/carbon-element.js +429 -0
  626. package/es/globals/decorators/carbon-element.js.map +1 -0
  627. package/es/globals/decorators/host-listener.js.map +1 -1
  628. package/es/globals/directives/spread.d.ts +1 -1
  629. package/es/globals/directives/spread.d.ts.map +1 -1
  630. package/es/globals/directives/spread.js +1 -1
  631. package/es/globals/directives/spread.js.map +1 -1
  632. package/es/globals/internal/radio-group-manager.js +3 -4
  633. package/es/globals/internal/radio-group-manager.js.map +1 -1
  634. package/es/globals/internal/storybook-cdn.d.ts +1 -1
  635. package/es/globals/internal/storybook-cdn.d.ts.map +1 -1
  636. package/es/globals/internal/storybook-cdn.js +3 -3
  637. package/es/globals/internal/storybook-cdn.js.map +1 -1
  638. package/es/globals/mixins/focus.js.map +1 -1
  639. package/es/globals/mixins/form.js +6 -1
  640. package/es/globals/mixins/form.js.map +1 -1
  641. package/es/globals/mixins/host-listener.js.map +1 -1
  642. package/es/globals/mixins/temp-layout.css.js +12 -0
  643. package/es/globals/mixins/temp-layout.rtl.css.js +12 -0
  644. package/es/globals/mixins/validity.js +16 -0
  645. package/es/globals/mixins/validity.js.map +1 -1
  646. package/es/globals/wrappers/createReactCustomElementType.js +17 -0
  647. package/es/globals/wrappers/createReactCustomElementType.js.map +1 -1
  648. package/es/polyfills/toggle-class.js.map +1 -1
  649. package/lib/components/accordion/defs.js +1 -1
  650. package/lib/components/accordion/defs.js.map +1 -1
  651. package/lib/components/button/defs.js +1 -1
  652. package/lib/components/button/defs.js.map +1 -1
  653. package/lib/components/code-snippet/defs.js +1 -1
  654. package/lib/components/code-snippet/defs.js.map +1 -1
  655. package/lib/components/content-switcher/defs.js +1 -1
  656. package/lib/components/content-switcher/defs.js.map +1 -1
  657. package/lib/components/date-picker/defs.js +1 -1
  658. package/lib/components/date-picker/defs.js.map +1 -1
  659. package/lib/components/dropdown/defs.js +1 -1
  660. package/lib/components/dropdown/defs.js.map +1 -1
  661. package/lib/components/file-uploader/defs.js +1 -1
  662. package/lib/components/file-uploader/defs.js.map +1 -1
  663. package/lib/components/floating-menu/defs.js +1 -1
  664. package/lib/components/floating-menu/defs.js.map +1 -1
  665. package/lib/components/inline-loading/defs.js +1 -1
  666. package/lib/components/inline-loading/defs.js.map +1 -1
  667. package/lib/components/loading/defs.js +1 -1
  668. package/lib/components/loading/defs.js.map +1 -1
  669. package/lib/components/modal/defs.js +1 -1
  670. package/lib/components/modal/defs.js.map +1 -1
  671. package/lib/components/stack/defs.js.map +1 -1
  672. package/lib/globals/wrappers/createReactCustomElementType.js +16 -0
  673. package/lib/globals/wrappers/createReactCustomElementType.js.map +1 -1
  674. package/package.json +17 -16
  675. package/scss/components/accordion/accordion.scss +10 -5
  676. package/scss/components/breadcrumb/breadcrumb.scss +7 -0
  677. package/scss/components/button/button.scss +7 -2
  678. package/scss/components/code-snippet/code-snippet.scss +6 -8
  679. package/scss/components/combo-box/combo-box.scss +0 -10
  680. package/scss/components/content-switcher/content-switcher.scss +8 -21
  681. package/scss/components/copy-button/copy-button.scss +3 -3
  682. package/scss/components/data-table/_table-action.scss +4 -0
  683. package/scss/components/data-table/_table-core.scss +0 -2
  684. package/scss/components/data-table/data-table.scss +0 -1
  685. package/scss/components/date-picker/date-picker.scss +0 -3
  686. package/scss/components/dropdown/dropdown.scss +1 -2
  687. package/scss/components/file-uploader/file-uploader.scss +3 -5
  688. package/scss/components/icon-button/icon-button.scss +5 -0
  689. package/scss/components/inline-loading/inline-loading.scss +0 -3
  690. package/scss/components/modal/modal.scss +1 -4
  691. package/scss/components/multi-select/multi-select.scss +0 -3
  692. package/scss/components/notification/actionable-notification.scss +69 -24
  693. package/scss/components/notification/inline-notification.scss +76 -25
  694. package/scss/components/notification/toast-notification.scss +43 -27
  695. package/scss/components/number-input/number-input.scss +0 -3
  696. package/scss/components/overflow-menu/overflow-menu.scss +8 -3
  697. package/scss/components/pagination/pagination.scss +8 -3
  698. package/scss/components/popover/popover.scss +4 -2
  699. package/scss/components/progress-bar/progress-bar.scss +0 -5
  700. package/scss/components/progress-indicator/progress-indicator.scss +0 -3
  701. package/scss/components/radio-button/radio-button.scss +24 -1
  702. package/scss/components/search/search.scss +33 -3
  703. package/scss/components/select/select.scss +0 -3
  704. package/scss/components/slider/slider.scss +2 -3
  705. package/scss/components/structured-list/structured-list.scss +0 -5
  706. package/scss/components/tag/tag.scss +10 -5
  707. package/scss/components/text-input/text-input.scss +2 -2
  708. package/scss/components/textarea/textarea.scss +0 -3
  709. package/scss/components/tile/tile.scss +7 -8
  710. package/scss/components/tooltip/tooltip.scss +4 -4
  711. package/scss/components/ui-shell/header.scss +13 -3
  712. package/scss/components/ui-shell/side-nav.scss +0 -5
  713. package/scss/globals/mixins/temp-layout.scss +36 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["components/slider/slider.ts"],"names":[],"mappings":"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","file":"slider.d.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 { LitElement, html } from 'lit';\nimport { property, customElement, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport throttle from 'lodash-es/throttle';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport CDSSliderInput from './slider-input';\nimport styles from './slider.scss';\n\ninterface Cancelable {\n cancel(): void;\n}\n\n/**\n * The direction to move the thumb, associated with key symbols.\n */\nconst THUMB_DIRECTION = {\n Left: -1,\n ArrowLeft: -1,\n Up: -1,\n ArrowUp: -1,\n Right: 1,\n ArrowRight: 1,\n Down: 1,\n ArrowDown: 1,\n};\n\n/**\n * Slider.\n *\n * @element cds-slider\n * @slot label-text - The label text.\n * @slot max-text - The text for maximum value.\n * @slot min-text - The text for minimum value.\n * @fires cds-slider-changed - The custom event fired after the value is changed by user gesture.\n */\n@customElement(`${prefix}-slider`)\nclass CDSSlider extends HostListenerMixin(FormMixin(FocusMixin(LitElement))) {\n /**\n * The internal value of `max` property.\n */\n private _max = '100';\n\n /**\n * The internal value of `min` property.\n */\n private _min = '0';\n\n /**\n * The internal value of `step` property.\n */\n private _step = '1';\n\n /**\n * The internal value of `stepMultiplier` property.\n */\n private _stepMultiplier = '4';\n\n /**\n * The handle for the throttled listener of `pointermove` event.\n */\n private _throttledHandlePointermoveImpl:\n | (((event: PointerEvent) => void) & Cancelable)\n | null = null;\n\n /**\n * `true` if dragging of thumb is in progress.\n */\n private _dragging = false;\n\n /**\n * The rate of the thumb position in the track.\n * When we try to set a new value, we adjust the value considering `step` property.\n */\n private get _rate() {\n const { max, min, value } = this;\n // Copes with out-of-range value coming programmatically or from `<cds-slider-input>`\n return (\n (Math.min(Number(max), Math.max(Number(min), value)) - Number(min)) /\n (Number(max) - Number(min))\n );\n }\n\n private set _rate(rate: number) {\n const { max, min, step } = this;\n this.value =\n Number(min) +\n Math.round(\n ((Number(max) - Number(min)) * Math.min(1, Math.max(0, rate))) /\n Number(step)\n ) *\n Number(step);\n }\n\n /**\n * The DOM element of the thumb.\n */\n @query('#thumb')\n private _thumbNode!: HTMLDivElement;\n\n /**\n * The DOM element of the track.\n */\n @query('#track')\n private _trackNode!: HTMLDivElement;\n\n /**\n * Handles `click` event on the `<label>` to focus on the thumb.\n */\n _handleClickLabel() {\n this._thumbNode?.focus();\n }\n\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, String(value));\n }\n }\n\n /**\n * Handles `keydown` event on the thumb to increase/decrease the value.\n */\n private _handleKeydown({ key, shiftKey }: KeyboardEvent) {\n if (!this.disabled) {\n if (key in THUMB_DIRECTION) {\n const {\n max: rawMax,\n min: rawMin,\n step: rawStep,\n stepMultiplier: rawstepMultiplier,\n value,\n } = this;\n const max = Number(rawMax);\n const min = Number(rawMin);\n const step = Number(rawStep);\n const stepMultiplier = Number(rawstepMultiplier);\n const diff =\n (!shiftKey ? step : (max - min) / stepMultiplier) *\n THUMB_DIRECTION[key];\n const stepCount = (value + diff) / step;\n // Snaps to next\n this.value = Math.min(\n max,\n Math.max(\n min,\n (diff >= 0 ? Math.floor(stepCount) : Math.ceil(stepCount)) * step\n )\n );\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n intermediate: false,\n },\n })\n );\n }\n }\n }\n\n /**\n * Handles `pointerdown` event on the thumb to start dragging.\n */\n private _startDrag() {\n this._dragging = true;\n this._thumbNode.style.touchAction = 'none';\n }\n\n /**\n * Handles `pointerdown` event on the track to update the thumb position and the value as necessary.\n */\n private _handleClick(event: PointerEvent) {\n if (!this.disabled) {\n const { _trackNode: trackNode } = this;\n const isRtl =\n trackNode\n .ownerDocument!.defaultView!.getComputedStyle(trackNode)\n .getPropertyValue('direction') === 'rtl';\n const thumbPosition = event.clientX;\n const { left: trackLeft, width: trackWidth } =\n trackNode.getBoundingClientRect();\n this._rate =\n (isRtl\n ? trackLeft + trackWidth - thumbPosition\n : thumbPosition - trackLeft) / trackWidth;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n })\n );\n }\n }\n\n /**\n * Handles `pointermove` to update the thumb position and the value as necessary.\n *\n * @param event The event.\n */\n @HostListener('document:pointermove')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handlePointermove = (event: PointerEvent) => {\n const { disabled, _dragging: dragging } = this;\n if (!disabled && dragging) {\n this._throttledHandlePointermoveImpl!(event);\n }\n };\n\n /**\n * Updates thumb position and value upon user's `pointermove` gesture.\n *\n * @param event The event.\n */\n private _handlePointermoveImpl(event: PointerEvent) {\n const { disabled, _dragging: dragging, _trackNode: trackNode } = this;\n if (!disabled && dragging) {\n const isRtl =\n trackNode\n .ownerDocument!.defaultView!.getComputedStyle(trackNode)\n .getPropertyValue('direction') === 'rtl';\n const thumbPosition = event.clientX;\n const { left: trackLeft, width: trackWidth } =\n this._trackNode.getBoundingClientRect();\n this._rate =\n (isRtl\n ? trackLeft + trackWidth - thumbPosition\n : thumbPosition - trackLeft) / trackWidth;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n intermediate: true,\n },\n })\n );\n }\n }\n\n /**\n * Handles `pointerup` and `pointerleave` event to finishing dragging.\n */\n private _endDrag = () => {\n if (this._dragging) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n })\n );\n this._dragging = false;\n this._thumbNode.style.touchAction = '';\n }\n };\n\n /**\n * Handles `${prefix}-slider-input-changed` event to update the value.\n */\n @HostListener('eventChangeInput')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChangeInput = ({ detail }: CustomEvent) => {\n const { intermediate, value } = detail;\n this.value = value;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value,\n intermediate,\n },\n })\n );\n };\n\n /**\n * `true` if the check box should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * \ttrue to specify if the control is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * \tWhether the slider should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The label associated with the maximum value.\n */\n @property({ attribute: 'max-label', reflect: true })\n maxLabel = '';\n\n /**\n * The label associated with the minimum value.\n */\n @property({ attribute: 'min-label', reflect: true })\n minLabel = '';\n\n /**\n * The formatter for the text for maximum value.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatMaxText = (max: string, maxLabel: string | undefined) =>\n `${max}${maxLabel}`;\n\n /**\n * The formatter for the text for min/max value.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatMinText = (min: string, minLabel: string | undefined) =>\n `${min}${minLabel}`;\n\n /**\n * The maximum value.\n */\n @property({ type: Number, reflect: true })\n get max() {\n return this._max.toString();\n }\n\n set max(value) {\n const { max: oldMax } = this;\n this._max = value;\n this.requestUpdate('max', oldMax);\n }\n\n /**\n * The minimum value.\n */\n @property({ type: Number, reflect: true })\n get min() {\n return this._min.toString();\n }\n\n set min(value) {\n const { min: oldMin } = this;\n this._min = value;\n this.requestUpdate('min', oldMin);\n }\n\n /**\n * The form name.\n */\n @property()\n name!: string;\n\n /**\n * true to specify if the control is invalid.\n */\n @property({ type: Boolean })\n invalid = false;\n\n /**\n * The snapping step of the value.\n */\n @property({ type: Number, reflect: true })\n get step() {\n return this._step.toString();\n }\n\n set step(value) {\n const { step: oldStep } = this;\n this._step = value;\n this.requestUpdate('step', oldStep);\n }\n\n /**\n * A value determining how much the value should increase/decrease by Shift+arrow keys,\n * which will be `(max - min) / stepMultiplier`.\n */\n @property({ type: Number, reflect: true, attribute: 'step-multiplier' })\n get stepMultiplier() {\n return this._stepMultiplier.toString();\n }\n\n set stepMultiplier(value) {\n const { stepMultiplier: oldstepMultiplier } = this;\n this._stepMultiplier = value;\n this.requestUpdate('stepMultiplier', oldstepMultiplier);\n }\n\n /**\n * The value.\n */\n @property({ type: Number })\n value;\n\n connectedCallback() {\n super.connectedCallback();\n if (!this._throttledHandlePointermoveImpl) {\n this._throttledHandlePointermoveImpl = throttle(\n this._handlePointermoveImpl,\n 10\n );\n }\n }\n\n disconnectedCallback() {\n if (this._throttledHandlePointermoveImpl) {\n this._throttledHandlePointermoveImpl.cancel();\n this._throttledHandlePointermoveImpl = null;\n }\n super.disconnectedCallback();\n }\n\n shouldUpdate(changedProperties) {\n const input = this.querySelector(\n (this.constructor as typeof CDSSlider).selectorInput\n ) as CDSSliderInput;\n if (changedProperties.has('disabled')) {\n if (input) {\n input.disabled = this.disabled;\n }\n if (this.disabled) {\n this._dragging = false;\n }\n }\n if (changedProperties.has('readonly')) {\n if (input) {\n input.readonly = this.readonly;\n }\n if (this.readonly) {\n this._dragging = false;\n }\n }\n if (input) {\n ['max', 'min', 'step', 'value'].forEach((name) => {\n if (changedProperties.has(name)) {\n input[name] = this[name];\n }\n });\n\n if (changedProperties.has('value') || changedProperties.has('invalid')) {\n if (this.value < this.min || this.value > this.max || this.invalid) {\n input.invalid = true;\n } else {\n input.invalid = false;\n }\n }\n }\n return true;\n }\n\n render() {\n const {\n disabled,\n formatMaxText,\n formatMinText,\n labelText,\n max,\n min,\n maxLabel,\n minLabel,\n value,\n readonly,\n _rate: rate,\n _handleClickLabel: handleClickLabel,\n _handleKeydown: handleKeydown,\n _handleClick: handleClick,\n _startDrag: startDrag,\n _endDrag: endDrag,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n const sliderClasses = classMap({\n [`${prefix}--slider`]: true,\n [`${prefix}--slider--disabled`]: disabled,\n [`${prefix}--slider--readonly`]: readonly,\n });\n return html`\n <label class=\"${labelClasses}\" @click=\"${handleClickLabel}\">\n <slot name=\"label-text\">${labelText}</slot>\n </label>\n <div class=\"${prefix}--slider-container\">\n <span class=\"${prefix}--slider__range-label\">\n <slot name=\"min-text\">${formatMinText(min, minLabel)}</slot>\n </span>\n <div\n @keydown=\"${handleKeydown}\"\n @click=\"${handleClick}\"\n @pointerup=\"${endDrag}\"\n @pointerleave=\"${endDrag}\"\n class=\"${sliderClasses}\"\n tabindex=\"-1\"\n role=\"presentation\">\n <div\n id=\"thumb\"\n class=\"${prefix}--slider__thumb\"\n role=\"slider\"\n tabindex=\"${!readonly ? 0 : -1}\"\n aria-valuemax=\"${max}\"\n aria-valuemin=\"${min}\"\n aria-valuenow=\"${value}\"\n style=\"left: ${rate * 100}%\"\n @pointerdown=\"${startDrag}\"></div>\n <div id=\"track\" class=\"${prefix}--slider__track\"></div>\n <div class=\"${prefix}-ce--slider__filled-track-container\">\n <div\n class=\"${prefix}--slider__filled-track\"\n style=\"transform: translate(0%, -50%) scaleX(${rate})\"></div>\n </div>\n </div>\n <span class=\"${prefix}--slider__range-label\">\n <slot name=\"max-text\">${formatMaxText(max, maxLabel)}</slot>\n </span>\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * A selector that will return the `<input>` box got entering the value directly.\n */\n static get selectorInput() {\n return `${prefix}-slider-input`;\n }\n\n /**\n * The name of the custom event fired after the value is changed by user gesture.\n */\n static get eventChange() {\n return `${prefix}-slider-changed`;\n }\n\n /**\n * The name of the custom event fired after the value is changed in `<cds-slider-input>` by user gesture.\n */\n static get eventChangeInput() {\n return `${prefix}-slider-input-changed`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSSlider;\n"]}
1
+ {"version":3,"sources":["components/slider/slider.ts"],"names":[],"mappings":"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","file":"slider.d.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 { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport throttle from 'lodash-es/throttle';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport CDSSliderInput from './slider-input';\nimport styles from './slider.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\ninterface Cancelable {\n cancel(): void;\n}\n\n/**\n * The direction to move the thumb, associated with key symbols.\n */\nconst THUMB_DIRECTION = {\n Left: -1,\n ArrowLeft: -1,\n Up: -1,\n ArrowUp: -1,\n Right: 1,\n ArrowRight: 1,\n Down: 1,\n ArrowDown: 1,\n};\n\n/**\n * Slider.\n *\n * @element cds-slider\n * @slot label-text - The label text.\n * @slot max-text - The text for maximum value.\n * @slot min-text - The text for minimum value.\n * @fires cds-slider-changed - The custom event fired after the value is changed by user gesture.\n */\n@customElement(`${prefix}-slider`)\nclass CDSSlider extends HostListenerMixin(FormMixin(FocusMixin(LitElement))) {\n /**\n * The internal value of `max` property.\n */\n private _max = '100';\n\n /**\n * The internal value of `min` property.\n */\n private _min = '0';\n\n /**\n * The internal value of `step` property.\n */\n private _step = '1';\n\n /**\n * The internal value of `stepMultiplier` property.\n */\n private _stepMultiplier = '4';\n\n /**\n * The handle for the throttled listener of `pointermove` event.\n */\n private _throttledHandlePointermoveImpl:\n | (((event: PointerEvent) => void) & Cancelable)\n | null = null;\n\n /**\n * `true` if dragging of thumb is in progress.\n */\n private _dragging = false;\n\n /**\n * The rate of the thumb position in the track.\n * When we try to set a new value, we adjust the value considering `step` property.\n */\n private get _rate() {\n const { max, min, value } = this;\n // Copes with out-of-range value coming programmatically or from `<cds-slider-input>`\n return (\n (Math.min(Number(max), Math.max(Number(min), value)) - Number(min)) /\n (Number(max) - Number(min))\n );\n }\n\n private set _rate(rate: number) {\n const { max, min, step } = this;\n this.value =\n Number(min) +\n Math.round(\n ((Number(max) - Number(min)) * Math.min(1, Math.max(0, rate))) /\n Number(step)\n ) *\n Number(step);\n }\n\n /**\n * The DOM element of the thumb.\n */\n @query('#thumb')\n private _thumbNode!: HTMLDivElement;\n\n /**\n * The DOM element of the track.\n */\n @query('#track')\n private _trackNode!: HTMLDivElement;\n\n /**\n * Handles `click` event on the `<label>` to focus on the thumb.\n */\n _handleClickLabel() {\n this._thumbNode?.focus();\n }\n\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, String(value));\n }\n }\n\n /**\n * Handles `keydown` event on the thumb to increase/decrease the value.\n */\n private _handleKeydown({ key, shiftKey }: KeyboardEvent) {\n if (!this.disabled) {\n if (key in THUMB_DIRECTION) {\n const {\n max: rawMax,\n min: rawMin,\n step: rawStep,\n stepMultiplier: rawstepMultiplier,\n value,\n } = this;\n const max = Number(rawMax);\n const min = Number(rawMin);\n const step = Number(rawStep);\n const stepMultiplier = Number(rawstepMultiplier);\n const diff =\n (!shiftKey ? step : (max - min) / stepMultiplier) *\n THUMB_DIRECTION[key];\n const stepCount = (value + diff) / step;\n // Snaps to next\n this.value = Math.min(\n max,\n Math.max(\n min,\n (diff >= 0 ? Math.floor(stepCount) : Math.ceil(stepCount)) * step\n )\n );\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n intermediate: false,\n },\n })\n );\n }\n }\n }\n\n /**\n * Handles `pointerdown` event on the thumb to start dragging.\n */\n private _startDrag() {\n this._dragging = true;\n this._thumbNode.style.touchAction = 'none';\n }\n\n /**\n * Handles `pointerdown` event on the track to update the thumb position and the value as necessary.\n */\n private _handleClick(event: PointerEvent) {\n if (!this.disabled) {\n const { _trackNode: trackNode } = this;\n const isRtl =\n trackNode\n .ownerDocument!.defaultView!.getComputedStyle(trackNode)\n .getPropertyValue('direction') === 'rtl';\n const thumbPosition = event.clientX;\n const { left: trackLeft, width: trackWidth } =\n trackNode.getBoundingClientRect();\n this._rate =\n (isRtl\n ? trackLeft + trackWidth - thumbPosition\n : thumbPosition - trackLeft) / trackWidth;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n })\n );\n }\n }\n\n /**\n * Handles `pointermove` to update the thumb position and the value as necessary.\n *\n * @param event The event.\n */\n @HostListener('document:pointermove')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handlePointermove = (event: PointerEvent) => {\n const { disabled, _dragging: dragging } = this;\n if (!disabled && dragging) {\n this._throttledHandlePointermoveImpl!(event);\n }\n };\n\n /**\n * Updates thumb position and value upon user's `pointermove` gesture.\n *\n * @param event The event.\n */\n private _handlePointermoveImpl(event: PointerEvent) {\n const { disabled, _dragging: dragging, _trackNode: trackNode } = this;\n if (!disabled && dragging) {\n const isRtl =\n trackNode\n .ownerDocument!.defaultView!.getComputedStyle(trackNode)\n .getPropertyValue('direction') === 'rtl';\n const thumbPosition = event.clientX;\n const { left: trackLeft, width: trackWidth } =\n this._trackNode.getBoundingClientRect();\n this._rate =\n (isRtl\n ? trackLeft + trackWidth - thumbPosition\n : thumbPosition - trackLeft) / trackWidth;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n intermediate: true,\n },\n })\n );\n }\n }\n\n /**\n * Handles `pointerup` and `pointerleave` event to finishing dragging.\n */\n private _endDrag = () => {\n if (this._dragging) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n })\n );\n this._dragging = false;\n this._thumbNode.style.touchAction = '';\n }\n };\n\n /**\n * Handles `${prefix}-slider-input-changed` event to update the value.\n */\n @HostListener('eventChangeInput')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChangeInput = ({ detail }: CustomEvent) => {\n const { intermediate, value } = detail;\n this.value = value;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value,\n intermediate,\n },\n })\n );\n };\n\n /**\n * `true` if the check box should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * \ttrue to specify if the control is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * \tWhether the slider should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The label associated with the maximum value.\n */\n @property({ attribute: 'max-label', reflect: true })\n maxLabel = '';\n\n /**\n * The label associated with the minimum value.\n */\n @property({ attribute: 'min-label', reflect: true })\n minLabel = '';\n\n /**\n * The formatter for the text for maximum value.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatMaxText = (max: string, maxLabel: string | undefined) =>\n `${max}${maxLabel}`;\n\n /**\n * The formatter for the text for min/max value.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatMinText = (min: string, minLabel: string | undefined) =>\n `${min}${minLabel}`;\n\n /**\n * The maximum value.\n */\n @property({ type: Number, reflect: true })\n get max() {\n return this._max.toString();\n }\n\n set max(value) {\n const { max: oldMax } = this;\n this._max = value;\n this.requestUpdate('max', oldMax);\n }\n\n /**\n * The minimum value.\n */\n @property({ type: Number, reflect: true })\n get min() {\n return this._min.toString();\n }\n\n set min(value) {\n const { min: oldMin } = this;\n this._min = value;\n this.requestUpdate('min', oldMin);\n }\n\n /**\n * The form name.\n */\n @property()\n name!: string;\n\n /**\n * true to specify if the control is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * true to specify if the control should display warn icon and text.\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * The snapping step of the value.\n */\n @property({ type: Number, reflect: true })\n get step() {\n return this._step.toString();\n }\n\n set step(value) {\n const { step: oldStep } = this;\n this._step = value;\n this.requestUpdate('step', oldStep);\n }\n\n /**\n * A value determining how much the value should increase/decrease by Shift+arrow keys,\n * which will be `(max - min) / stepMultiplier`.\n */\n @property({ type: Number, reflect: true, attribute: 'step-multiplier' })\n get stepMultiplier() {\n return this._stepMultiplier.toString();\n }\n\n set stepMultiplier(value) {\n const { stepMultiplier: oldstepMultiplier } = this;\n this._stepMultiplier = value;\n this.requestUpdate('stepMultiplier', oldstepMultiplier);\n }\n\n /**\n * The value.\n */\n @property({ type: Number })\n value;\n\n /**\n * is slide input valid\n */\n @property({ type: Boolean })\n isValid;\n\n _getInputValidity(input) {\n if (this.invalid) {\n return false;\n }\n\n if (\n input?.valueAsNumber > Number(this.max) ||\n input?.valueAsNumber < Number(this.min)\n ) {\n return false;\n }\n return true;\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this._throttledHandlePointermoveImpl) {\n this._throttledHandlePointermoveImpl = throttle(\n this._handlePointermoveImpl,\n 10\n );\n }\n }\n\n disconnectedCallback() {\n if (this._throttledHandlePointermoveImpl) {\n this._throttledHandlePointermoveImpl.cancel();\n this._throttledHandlePointermoveImpl = null;\n }\n super.disconnectedCallback();\n }\n\n shouldUpdate(changedProperties) {\n const input = this.querySelector(\n (this.constructor as typeof CDSSlider).selectorInput\n ) as CDSSliderInput;\n if (changedProperties.has('disabled')) {\n if (input) {\n input.disabled = this.disabled;\n }\n if (this.disabled) {\n this._dragging = false;\n }\n }\n if (changedProperties.has('readonly')) {\n if (input) {\n input.readonly = this.readonly;\n }\n if (this.readonly) {\n this._dragging = false;\n }\n }\n if (input) {\n ['max', 'min', 'step', 'value'].forEach((name) => {\n if (changedProperties.has(name)) {\n input[name] = this[name];\n }\n });\n\n if (\n changedProperties.has('value') ||\n changedProperties.has('invalid') ||\n changedProperties.has('warn') ||\n changedProperties.has('readonly')\n ) {\n const innerInput = input?.shadowRoot?.querySelector('input');\n\n this.isValid = this._getInputValidity(innerInput);\n\n if (!this.readonly && !this.isValid) {\n input.invalid = true;\n } else {\n input.invalid = false;\n }\n\n if (!this.readonly && !this.invalid && this.warn && this.isValid) {\n input.warn = true;\n } else {\n input.warn = false;\n }\n }\n }\n return true;\n }\n\n render() {\n const {\n disabled,\n formatMaxText,\n formatMinText,\n labelText,\n max,\n min,\n maxLabel,\n minLabel,\n readonly,\n invalidText,\n isValid,\n warn,\n warnText,\n value,\n _rate: rate,\n _handleClickLabel: handleClickLabel,\n _handleKeydown: handleKeydown,\n _handleClick: handleClick,\n _startDrag: startDrag,\n _endDrag: endDrag,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n const sliderClasses = classMap({\n [`${prefix}--slider`]: true,\n [`${prefix}--slider--disabled`]: disabled,\n [`${prefix}--slider--readonly`]: readonly,\n });\n\n return html`\n <label class=\"${labelClasses}\" @click=\"${handleClickLabel}\">\n <slot name=\"label-text\">${labelText}</slot>\n </label>\n <div class=\"${prefix}--slider-container\">\n <span class=\"${prefix}--slider__range-label\">\n <slot name=\"min-text\">${formatMinText(min, minLabel)}</slot>\n </span>\n <div\n @keydown=\"${handleKeydown}\"\n @click=\"${handleClick}\"\n @pointerup=\"${endDrag}\"\n @pointerleave=\"${endDrag}\"\n class=\"${sliderClasses}\"\n tabindex=\"-1\"\n role=\"presentation\">\n <div\n id=\"thumb\"\n class=\"${prefix}--slider__thumb\"\n role=\"slider\"\n tabindex=\"${!readonly ? 0 : -1}\"\n aria-valuemax=\"${max}\"\n aria-valuemin=\"${min}\"\n aria-valuenow=\"${value}\"\n style=\"left: ${rate * 100}%\"\n @pointerdown=\"${startDrag}\"></div>\n <div id=\"track\" class=\"${prefix}--slider__track\"></div>\n <div class=\"${prefix}-ce--slider__filled-track-container\">\n <div\n class=\"${prefix}--slider__filled-track\"\n style=\"transform: translate(0%, -50%) scaleX(${rate})\"></div>\n </div>\n </div>\n <span class=\"${prefix}--slider__range-label\">\n <slot name=\"max-text\">${formatMaxText(max, maxLabel)}</slot>\n </span>\n <slot></slot>\n </div>\n\n ${!readonly && !isValid\n ? html`\n <div\n class=\"${prefix}--slider__validation-msg ${prefix}--slider__validation-msg--invalid ${prefix}--form-requirement\">\n ${invalidText}\n </div>\n `\n : null}\n ${!readonly && warn && isValid\n ? html`<div\n class=\"${prefix}--slider__validation-msg ${prefix}--form-requirement\">\n ${warnText}\n </div>`\n : null}\n `;\n }\n\n /**\n * A selector that will return the `<input>` box got entering the value directly.\n */\n static get selectorInput() {\n return `${prefix}-slider-input`;\n }\n\n /**\n * The name of the custom event fired after the value is changed by user gesture.\n */\n static get eventChange() {\n return `${prefix}-slider-changed`;\n }\n\n /**\n * The name of the custom event fired after the value is changed in `<cds-slider-input>` by user gesture.\n */\n static get eventChangeInput() {\n return `${prefix}-slider-input-changed`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSSlider;\n"]}
@@ -3,7 +3,9 @@ import _decorate from "@babel/runtime/helpers/esm/decorate";
3
3
  import _get from "@babel/runtime/helpers/esm/get";
4
4
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
5
5
  let _ = t => t,
6
- _t;
6
+ _t,
7
+ _t2,
8
+ _t3;
7
9
  /**
8
10
  * @license
9
11
  *
@@ -14,7 +16,7 @@ let _ = t => t,
14
16
  */
15
17
 
16
18
  import { LitElement, html } from 'lit';
17
- import { property, customElement, query } from 'lit/decorators.js';
19
+ import { property, query } from 'lit/decorators.js';
18
20
  import { classMap } from 'lit/directives/class-map.js';
19
21
  import throttle from 'lodash-es/throttle';
20
22
  import { prefix } from '../../globals/settings';
@@ -23,6 +25,7 @@ import FormMixin from '../../globals/mixins/form';
23
25
  import HostListenerMixin from '../../globals/mixins/host-listener';
24
26
  import HostListener from '../../globals/decorators/host-listener';
25
27
  import styles from "././slider.css.js";
28
+ import { carbonElement as customElement } from '../../globals/decorators/carbon-element';
26
29
  /**
27
30
  * The direction to move the thumb, associated with key symbols.
28
31
  */
@@ -530,12 +533,41 @@ let CDSSlider = _decorate([customElement(`${prefix}-slider`)], function (_initia
530
533
  }, {
531
534
  kind: "field",
532
535
  decorators: [property({
533
- type: Boolean
536
+ type: Boolean,
537
+ reflect: true
534
538
  })],
535
539
  key: "invalid",
536
540
  value() {
537
541
  return false;
538
542
  }
543
+ }, {
544
+ kind: "field",
545
+ decorators: [property({
546
+ attribute: 'invalid-text'
547
+ })],
548
+ key: "invalidText",
549
+ value() {
550
+ return '';
551
+ }
552
+ }, {
553
+ kind: "field",
554
+ decorators: [property({
555
+ type: Boolean,
556
+ reflect: true
557
+ })],
558
+ key: "warn",
559
+ value() {
560
+ return false;
561
+ }
562
+ }, {
563
+ kind: "field",
564
+ decorators: [property({
565
+ attribute: 'warn-text'
566
+ })],
567
+ key: "warnText",
568
+ value() {
569
+ return '';
570
+ }
539
571
  }, {
540
572
  kind: "get",
541
573
  decorators: [property({
@@ -547,6 +579,15 @@ let CDSSlider = _decorate([customElement(`${prefix}-slider`)], function (_initia
547
579
  /**
548
580
  * true to specify if the control is invalid.
549
581
  */
582
+ /**
583
+ * Message which is displayed if the value is invalid.
584
+ */
585
+ /**
586
+ * true to specify if the control should display warn icon and text.
587
+ */
588
+ /**
589
+ * Provide the text that is displayed when the control is in warning state
590
+ */
550
591
  /**
551
592
  * The snapping step of the value.
552
593
  */
@@ -600,6 +641,29 @@ let CDSSlider = _decorate([customElement(`${prefix}-slider`)], function (_initia
600
641
  })],
601
642
  key: "value",
602
643
  value: void 0
644
+ }, {
645
+ kind: "field",
646
+ decorators: [property({
647
+ type: Boolean
648
+ })],
649
+ key: "isValid",
650
+ value: void 0
651
+ }, {
652
+ kind: "method",
653
+ key: "_getInputValidity",
654
+ value:
655
+ /**
656
+ * is slide input valid
657
+ */
658
+ function _getInputValidity(input) {
659
+ if (this.invalid) {
660
+ return false;
661
+ }
662
+ if ((input === null || input === void 0 ? void 0 : input.valueAsNumber) > Number(this.max) || (input === null || input === void 0 ? void 0 : input.valueAsNumber) < Number(this.min)) {
663
+ return false;
664
+ }
665
+ return true;
666
+ }
603
667
  }, {
604
668
  kind: "method",
605
669
  key: "connectedCallback",
@@ -646,12 +710,20 @@ let CDSSlider = _decorate([customElement(`${prefix}-slider`)], function (_initia
646
710
  input[name] = this[name];
647
711
  }
648
712
  });
649
- if (changedProperties.has('value') || changedProperties.has('invalid')) {
650
- if (this.value < this.min || this.value > this.max || this.invalid) {
713
+ if (changedProperties.has('value') || changedProperties.has('invalid') || changedProperties.has('warn') || changedProperties.has('readonly')) {
714
+ var _input$shadowRoot;
715
+ const innerInput = input === null || input === void 0 ? void 0 : (_input$shadowRoot = input.shadowRoot) === null || _input$shadowRoot === void 0 ? void 0 : _input$shadowRoot.querySelector('input');
716
+ this.isValid = this._getInputValidity(innerInput);
717
+ if (!this.readonly && !this.isValid) {
651
718
  input.invalid = true;
652
719
  } else {
653
720
  input.invalid = false;
654
721
  }
722
+ if (!this.readonly && !this.invalid && this.warn && this.isValid) {
723
+ input.warn = true;
724
+ } else {
725
+ input.warn = false;
726
+ }
655
727
  }
656
728
  }
657
729
  return true;
@@ -669,8 +741,12 @@ let CDSSlider = _decorate([customElement(`${prefix}-slider`)], function (_initia
669
741
  min,
670
742
  maxLabel,
671
743
  minLabel,
672
- value,
673
744
  readonly,
745
+ invalidText,
746
+ isValid,
747
+ warn,
748
+ warnText,
749
+ value,
674
750
  _rate: rate,
675
751
  _handleClickLabel: handleClickLabel,
676
752
  _handleKeydown: handleKeydown,
@@ -725,7 +801,18 @@ let CDSSlider = _decorate([customElement(`${prefix}-slider`)], function (_initia
725
801
  </span>
726
802
  <slot></slot>
727
803
  </div>
728
- `), labelClasses, handleClickLabel, labelText, prefix, prefix, formatMinText(min, minLabel), handleKeydown, handleClick, endDrag, endDrag, sliderClasses, prefix, !readonly ? 0 : -1, max, min, value, rate * 100, startDrag, prefix, prefix, prefix, rate, prefix, formatMaxText(max, maxLabel));
804
+
805
+ ${0}
806
+ ${0}
807
+ `), labelClasses, handleClickLabel, labelText, prefix, prefix, formatMinText(min, minLabel), handleKeydown, handleClick, endDrag, endDrag, sliderClasses, prefix, !readonly ? 0 : -1, max, min, value, rate * 100, startDrag, prefix, prefix, prefix, rate, prefix, formatMaxText(max, maxLabel), !readonly && !isValid ? html(_t2 || (_t2 = _`
808
+ <div
809
+ class="${0}--slider__validation-msg ${0}--slider__validation-msg--invalid ${0}--form-requirement">
810
+ ${0}
811
+ </div>
812
+ `), prefix, prefix, prefix, invalidText) : null, !readonly && warn && isValid ? html(_t3 || (_t3 = _`<div
813
+ class="${0}--slider__validation-msg ${0}--form-requirement">
814
+ ${0}
815
+ </div>`), prefix, prefix, warnText) : null);
729
816
  }
730
817
 
731
818
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"slider.js","names":["LitElement","html","property","customElement","query","classMap","throttle","prefix","FocusMixin","FormMixin","HostListenerMixin","HostListener","styles","THUMB_DIRECTION","Left","ArrowLeft","Up","ArrowUp","Right","ArrowRight","Down","ArrowDown","CDSSlider","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_rate","max","min","Math","Number","rate","step","round","decorators","_handleClickLabel","_this$_thumbNode","_thumbNode","focus","_handleFormdata","event","formData","disabled","name","append","String","_handleKeydown","shiftKey","rawMax","rawMin","rawStep","stepMultiplier","rawstepMultiplier","diff","stepCount","floor","ceil","dispatchEvent","CustomEvent","eventChange","bubbles","composed","detail","intermediate","_startDrag","_dragging","style","touchAction","_handleClick","_trackNode","trackNode","isRtl","ownerDocument","defaultView","getComputedStyle","getPropertyValue","thumbPosition","clientX","left","trackLeft","width","trackWidth","getBoundingClientRect","dragging","_throttledHandlePointermoveImpl","_handlePointermoveImpl","type","Boolean","reflect","attribute","maxLabel","minLabel","_max","toString","oldMax","requestUpdate","_min","oldMin","_step","oldStep","_stepMultiplier","oldstepMultiplier","connectedCallback","_get","_getPrototypeOf","prototype","call","disconnectedCallback","cancel","shouldUpdate","changedProperties","input","querySelector","selectorInput","has","readonly","forEach","invalid","render","formatMaxText","formatMinText","labelText","handleClickLabel","handleKeydown","handleClick","startDrag","_endDrag","endDrag","labelClasses","sliderClasses","_t","_","static","eventChangeInput","_objectSpread","shadowRootOptions","delegatesFocus"],"sources":["components/slider/slider.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 { LitElement, html } from 'lit';\nimport { property, customElement, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport throttle from 'lodash-es/throttle';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport CDSSliderInput from './slider-input';\nimport styles from './slider.scss';\n\ninterface Cancelable {\n cancel(): void;\n}\n\n/**\n * The direction to move the thumb, associated with key symbols.\n */\nconst THUMB_DIRECTION = {\n Left: -1,\n ArrowLeft: -1,\n Up: -1,\n ArrowUp: -1,\n Right: 1,\n ArrowRight: 1,\n Down: 1,\n ArrowDown: 1,\n};\n\n/**\n * Slider.\n *\n * @element cds-slider\n * @slot label-text - The label text.\n * @slot max-text - The text for maximum value.\n * @slot min-text - The text for minimum value.\n * @fires cds-slider-changed - The custom event fired after the value is changed by user gesture.\n */\n@customElement(`${prefix}-slider`)\nclass CDSSlider extends HostListenerMixin(FormMixin(FocusMixin(LitElement))) {\n /**\n * The internal value of `max` property.\n */\n private _max = '100';\n\n /**\n * The internal value of `min` property.\n */\n private _min = '0';\n\n /**\n * The internal value of `step` property.\n */\n private _step = '1';\n\n /**\n * The internal value of `stepMultiplier` property.\n */\n private _stepMultiplier = '4';\n\n /**\n * The handle for the throttled listener of `pointermove` event.\n */\n private _throttledHandlePointermoveImpl:\n | (((event: PointerEvent) => void) & Cancelable)\n | null = null;\n\n /**\n * `true` if dragging of thumb is in progress.\n */\n private _dragging = false;\n\n /**\n * The rate of the thumb position in the track.\n * When we try to set a new value, we adjust the value considering `step` property.\n */\n private get _rate() {\n const { max, min, value } = this;\n // Copes with out-of-range value coming programmatically or from `<cds-slider-input>`\n return (\n (Math.min(Number(max), Math.max(Number(min), value)) - Number(min)) /\n (Number(max) - Number(min))\n );\n }\n\n private set _rate(rate: number) {\n const { max, min, step } = this;\n this.value =\n Number(min) +\n Math.round(\n ((Number(max) - Number(min)) * Math.min(1, Math.max(0, rate))) /\n Number(step)\n ) *\n Number(step);\n }\n\n /**\n * The DOM element of the thumb.\n */\n @query('#thumb')\n private _thumbNode!: HTMLDivElement;\n\n /**\n * The DOM element of the track.\n */\n @query('#track')\n private _trackNode!: HTMLDivElement;\n\n /**\n * Handles `click` event on the `<label>` to focus on the thumb.\n */\n _handleClickLabel() {\n this._thumbNode?.focus();\n }\n\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, String(value));\n }\n }\n\n /**\n * Handles `keydown` event on the thumb to increase/decrease the value.\n */\n private _handleKeydown({ key, shiftKey }: KeyboardEvent) {\n if (!this.disabled) {\n if (key in THUMB_DIRECTION) {\n const {\n max: rawMax,\n min: rawMin,\n step: rawStep,\n stepMultiplier: rawstepMultiplier,\n value,\n } = this;\n const max = Number(rawMax);\n const min = Number(rawMin);\n const step = Number(rawStep);\n const stepMultiplier = Number(rawstepMultiplier);\n const diff =\n (!shiftKey ? step : (max - min) / stepMultiplier) *\n THUMB_DIRECTION[key];\n const stepCount = (value + diff) / step;\n // Snaps to next\n this.value = Math.min(\n max,\n Math.max(\n min,\n (diff >= 0 ? Math.floor(stepCount) : Math.ceil(stepCount)) * step\n )\n );\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n intermediate: false,\n },\n })\n );\n }\n }\n }\n\n /**\n * Handles `pointerdown` event on the thumb to start dragging.\n */\n private _startDrag() {\n this._dragging = true;\n this._thumbNode.style.touchAction = 'none';\n }\n\n /**\n * Handles `pointerdown` event on the track to update the thumb position and the value as necessary.\n */\n private _handleClick(event: PointerEvent) {\n if (!this.disabled) {\n const { _trackNode: trackNode } = this;\n const isRtl =\n trackNode\n .ownerDocument!.defaultView!.getComputedStyle(trackNode)\n .getPropertyValue('direction') === 'rtl';\n const thumbPosition = event.clientX;\n const { left: trackLeft, width: trackWidth } =\n trackNode.getBoundingClientRect();\n this._rate =\n (isRtl\n ? trackLeft + trackWidth - thumbPosition\n : thumbPosition - trackLeft) / trackWidth;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n })\n );\n }\n }\n\n /**\n * Handles `pointermove` to update the thumb position and the value as necessary.\n *\n * @param event The event.\n */\n @HostListener('document:pointermove')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handlePointermove = (event: PointerEvent) => {\n const { disabled, _dragging: dragging } = this;\n if (!disabled && dragging) {\n this._throttledHandlePointermoveImpl!(event);\n }\n };\n\n /**\n * Updates thumb position and value upon user's `pointermove` gesture.\n *\n * @param event The event.\n */\n private _handlePointermoveImpl(event: PointerEvent) {\n const { disabled, _dragging: dragging, _trackNode: trackNode } = this;\n if (!disabled && dragging) {\n const isRtl =\n trackNode\n .ownerDocument!.defaultView!.getComputedStyle(trackNode)\n .getPropertyValue('direction') === 'rtl';\n const thumbPosition = event.clientX;\n const { left: trackLeft, width: trackWidth } =\n this._trackNode.getBoundingClientRect();\n this._rate =\n (isRtl\n ? trackLeft + trackWidth - thumbPosition\n : thumbPosition - trackLeft) / trackWidth;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n intermediate: true,\n },\n })\n );\n }\n }\n\n /**\n * Handles `pointerup` and `pointerleave` event to finishing dragging.\n */\n private _endDrag = () => {\n if (this._dragging) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n })\n );\n this._dragging = false;\n this._thumbNode.style.touchAction = '';\n }\n };\n\n /**\n * Handles `${prefix}-slider-input-changed` event to update the value.\n */\n @HostListener('eventChangeInput')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChangeInput = ({ detail }: CustomEvent) => {\n const { intermediate, value } = detail;\n this.value = value;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value,\n intermediate,\n },\n })\n );\n };\n\n /**\n * `true` if the check box should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * \ttrue to specify if the control is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * \tWhether the slider should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The label associated with the maximum value.\n */\n @property({ attribute: 'max-label', reflect: true })\n maxLabel = '';\n\n /**\n * The label associated with the minimum value.\n */\n @property({ attribute: 'min-label', reflect: true })\n minLabel = '';\n\n /**\n * The formatter for the text for maximum value.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatMaxText = (max: string, maxLabel: string | undefined) =>\n `${max}${maxLabel}`;\n\n /**\n * The formatter for the text for min/max value.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatMinText = (min: string, minLabel: string | undefined) =>\n `${min}${minLabel}`;\n\n /**\n * The maximum value.\n */\n @property({ type: Number, reflect: true })\n get max() {\n return this._max.toString();\n }\n\n set max(value) {\n const { max: oldMax } = this;\n this._max = value;\n this.requestUpdate('max', oldMax);\n }\n\n /**\n * The minimum value.\n */\n @property({ type: Number, reflect: true })\n get min() {\n return this._min.toString();\n }\n\n set min(value) {\n const { min: oldMin } = this;\n this._min = value;\n this.requestUpdate('min', oldMin);\n }\n\n /**\n * The form name.\n */\n @property()\n name!: string;\n\n /**\n * true to specify if the control is invalid.\n */\n @property({ type: Boolean })\n invalid = false;\n\n /**\n * The snapping step of the value.\n */\n @property({ type: Number, reflect: true })\n get step() {\n return this._step.toString();\n }\n\n set step(value) {\n const { step: oldStep } = this;\n this._step = value;\n this.requestUpdate('step', oldStep);\n }\n\n /**\n * A value determining how much the value should increase/decrease by Shift+arrow keys,\n * which will be `(max - min) / stepMultiplier`.\n */\n @property({ type: Number, reflect: true, attribute: 'step-multiplier' })\n get stepMultiplier() {\n return this._stepMultiplier.toString();\n }\n\n set stepMultiplier(value) {\n const { stepMultiplier: oldstepMultiplier } = this;\n this._stepMultiplier = value;\n this.requestUpdate('stepMultiplier', oldstepMultiplier);\n }\n\n /**\n * The value.\n */\n @property({ type: Number })\n value;\n\n connectedCallback() {\n super.connectedCallback();\n if (!this._throttledHandlePointermoveImpl) {\n this._throttledHandlePointermoveImpl = throttle(\n this._handlePointermoveImpl,\n 10\n );\n }\n }\n\n disconnectedCallback() {\n if (this._throttledHandlePointermoveImpl) {\n this._throttledHandlePointermoveImpl.cancel();\n this._throttledHandlePointermoveImpl = null;\n }\n super.disconnectedCallback();\n }\n\n shouldUpdate(changedProperties) {\n const input = this.querySelector(\n (this.constructor as typeof CDSSlider).selectorInput\n ) as CDSSliderInput;\n if (changedProperties.has('disabled')) {\n if (input) {\n input.disabled = this.disabled;\n }\n if (this.disabled) {\n this._dragging = false;\n }\n }\n if (changedProperties.has('readonly')) {\n if (input) {\n input.readonly = this.readonly;\n }\n if (this.readonly) {\n this._dragging = false;\n }\n }\n if (input) {\n ['max', 'min', 'step', 'value'].forEach((name) => {\n if (changedProperties.has(name)) {\n input[name] = this[name];\n }\n });\n\n if (changedProperties.has('value') || changedProperties.has('invalid')) {\n if (this.value < this.min || this.value > this.max || this.invalid) {\n input.invalid = true;\n } else {\n input.invalid = false;\n }\n }\n }\n return true;\n }\n\n render() {\n const {\n disabled,\n formatMaxText,\n formatMinText,\n labelText,\n max,\n min,\n maxLabel,\n minLabel,\n value,\n readonly,\n _rate: rate,\n _handleClickLabel: handleClickLabel,\n _handleKeydown: handleKeydown,\n _handleClick: handleClick,\n _startDrag: startDrag,\n _endDrag: endDrag,\n } = this;\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n const sliderClasses = classMap({\n [`${prefix}--slider`]: true,\n [`${prefix}--slider--disabled`]: disabled,\n [`${prefix}--slider--readonly`]: readonly,\n });\n return html`\n <label class=\"${labelClasses}\" @click=\"${handleClickLabel}\">\n <slot name=\"label-text\">${labelText}</slot>\n </label>\n <div class=\"${prefix}--slider-container\">\n <span class=\"${prefix}--slider__range-label\">\n <slot name=\"min-text\">${formatMinText(min, minLabel)}</slot>\n </span>\n <div\n @keydown=\"${handleKeydown}\"\n @click=\"${handleClick}\"\n @pointerup=\"${endDrag}\"\n @pointerleave=\"${endDrag}\"\n class=\"${sliderClasses}\"\n tabindex=\"-1\"\n role=\"presentation\">\n <div\n id=\"thumb\"\n class=\"${prefix}--slider__thumb\"\n role=\"slider\"\n tabindex=\"${!readonly ? 0 : -1}\"\n aria-valuemax=\"${max}\"\n aria-valuemin=\"${min}\"\n aria-valuenow=\"${value}\"\n style=\"left: ${rate * 100}%\"\n @pointerdown=\"${startDrag}\"></div>\n <div id=\"track\" class=\"${prefix}--slider__track\"></div>\n <div class=\"${prefix}-ce--slider__filled-track-container\">\n <div\n class=\"${prefix}--slider__filled-track\"\n style=\"transform: translate(0%, -50%) scaleX(${rate})\"></div>\n </div>\n </div>\n <span class=\"${prefix}--slider__range-label\">\n <slot name=\"max-text\">${formatMaxText(max, maxLabel)}</slot>\n </span>\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * A selector that will return the `<input>` box got entering the value directly.\n */\n static get selectorInput() {\n return `${prefix}-slider-input`;\n }\n\n /**\n * The name of the custom event fired after the value is changed by user gesture.\n */\n static get eventChange() {\n return `${prefix}-slider-changed`;\n }\n\n /**\n * The name of the custom event fired after the value is changed in `<cds-slider-input>` by user gesture.\n */\n static get eventChangeInput() {\n return `${prefix}-slider-input-changed`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSSlider;\n"],"mappings":"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"}
1
+ {"version":3,"file":"slider.js","names":["LitElement","html","property","query","classMap","throttle","prefix","FocusMixin","FormMixin","HostListenerMixin","HostListener","styles","carbonElement","customElement","THUMB_DIRECTION","Left","ArrowLeft","Up","ArrowUp","Right","ArrowRight","Down","ArrowDown","CDSSlider","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_rate","max","min","Math","Number","rate","step","round","decorators","_handleClickLabel","_this$_thumbNode","_thumbNode","focus","_handleFormdata","event","formData","disabled","name","append","String","_handleKeydown","shiftKey","rawMax","rawMin","rawStep","stepMultiplier","rawstepMultiplier","diff","stepCount","floor","ceil","dispatchEvent","CustomEvent","eventChange","bubbles","composed","detail","intermediate","_startDrag","_dragging","style","touchAction","_handleClick","_trackNode","trackNode","isRtl","ownerDocument","defaultView","getComputedStyle","getPropertyValue","thumbPosition","clientX","left","trackLeft","width","trackWidth","getBoundingClientRect","dragging","_throttledHandlePointermoveImpl","_handlePointermoveImpl","type","Boolean","reflect","attribute","maxLabel","minLabel","_max","toString","oldMax","requestUpdate","_min","oldMin","_step","oldStep","_stepMultiplier","oldstepMultiplier","_getInputValidity","input","invalid","valueAsNumber","connectedCallback","_get","_getPrototypeOf","prototype","call","disconnectedCallback","cancel","shouldUpdate","changedProperties","querySelector","selectorInput","has","readonly","forEach","_input$shadowRoot","innerInput","shadowRoot","isValid","warn","render","formatMaxText","formatMinText","labelText","invalidText","warnText","handleClickLabel","handleKeydown","handleClick","startDrag","_endDrag","endDrag","labelClasses","sliderClasses","_t","_","_t2","_t3","static","eventChangeInput","_objectSpread","shadowRootOptions","delegatesFocus"],"sources":["components/slider/slider.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 { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport throttle from 'lodash-es/throttle';\nimport { prefix } from '../../globals/settings';\nimport FocusMixin from '../../globals/mixins/focus';\nimport FormMixin from '../../globals/mixins/form';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport HostListener from '../../globals/decorators/host-listener';\nimport CDSSliderInput from './slider-input';\nimport styles from './slider.scss';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\ninterface Cancelable {\n cancel(): void;\n}\n\n/**\n * The direction to move the thumb, associated with key symbols.\n */\nconst THUMB_DIRECTION = {\n Left: -1,\n ArrowLeft: -1,\n Up: -1,\n ArrowUp: -1,\n Right: 1,\n ArrowRight: 1,\n Down: 1,\n ArrowDown: 1,\n};\n\n/**\n * Slider.\n *\n * @element cds-slider\n * @slot label-text - The label text.\n * @slot max-text - The text for maximum value.\n * @slot min-text - The text for minimum value.\n * @fires cds-slider-changed - The custom event fired after the value is changed by user gesture.\n */\n@customElement(`${prefix}-slider`)\nclass CDSSlider extends HostListenerMixin(FormMixin(FocusMixin(LitElement))) {\n /**\n * The internal value of `max` property.\n */\n private _max = '100';\n\n /**\n * The internal value of `min` property.\n */\n private _min = '0';\n\n /**\n * The internal value of `step` property.\n */\n private _step = '1';\n\n /**\n * The internal value of `stepMultiplier` property.\n */\n private _stepMultiplier = '4';\n\n /**\n * The handle for the throttled listener of `pointermove` event.\n */\n private _throttledHandlePointermoveImpl:\n | (((event: PointerEvent) => void) & Cancelable)\n | null = null;\n\n /**\n * `true` if dragging of thumb is in progress.\n */\n private _dragging = false;\n\n /**\n * The rate of the thumb position in the track.\n * When we try to set a new value, we adjust the value considering `step` property.\n */\n private get _rate() {\n const { max, min, value } = this;\n // Copes with out-of-range value coming programmatically or from `<cds-slider-input>`\n return (\n (Math.min(Number(max), Math.max(Number(min), value)) - Number(min)) /\n (Number(max) - Number(min))\n );\n }\n\n private set _rate(rate: number) {\n const { max, min, step } = this;\n this.value =\n Number(min) +\n Math.round(\n ((Number(max) - Number(min)) * Math.min(1, Math.max(0, rate))) /\n Number(step)\n ) *\n Number(step);\n }\n\n /**\n * The DOM element of the thumb.\n */\n @query('#thumb')\n private _thumbNode!: HTMLDivElement;\n\n /**\n * The DOM element of the track.\n */\n @query('#track')\n private _trackNode!: HTMLDivElement;\n\n /**\n * Handles `click` event on the `<label>` to focus on the thumb.\n */\n _handleClickLabel() {\n this._thumbNode?.focus();\n }\n\n _handleFormdata(event: Event) {\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, String(value));\n }\n }\n\n /**\n * Handles `keydown` event on the thumb to increase/decrease the value.\n */\n private _handleKeydown({ key, shiftKey }: KeyboardEvent) {\n if (!this.disabled) {\n if (key in THUMB_DIRECTION) {\n const {\n max: rawMax,\n min: rawMin,\n step: rawStep,\n stepMultiplier: rawstepMultiplier,\n value,\n } = this;\n const max = Number(rawMax);\n const min = Number(rawMin);\n const step = Number(rawStep);\n const stepMultiplier = Number(rawstepMultiplier);\n const diff =\n (!shiftKey ? step : (max - min) / stepMultiplier) *\n THUMB_DIRECTION[key];\n const stepCount = (value + diff) / step;\n // Snaps to next\n this.value = Math.min(\n max,\n Math.max(\n min,\n (diff >= 0 ? Math.floor(stepCount) : Math.ceil(stepCount)) * step\n )\n );\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n intermediate: false,\n },\n })\n );\n }\n }\n }\n\n /**\n * Handles `pointerdown` event on the thumb to start dragging.\n */\n private _startDrag() {\n this._dragging = true;\n this._thumbNode.style.touchAction = 'none';\n }\n\n /**\n * Handles `pointerdown` event on the track to update the thumb position and the value as necessary.\n */\n private _handleClick(event: PointerEvent) {\n if (!this.disabled) {\n const { _trackNode: trackNode } = this;\n const isRtl =\n trackNode\n .ownerDocument!.defaultView!.getComputedStyle(trackNode)\n .getPropertyValue('direction') === 'rtl';\n const thumbPosition = event.clientX;\n const { left: trackLeft, width: trackWidth } =\n trackNode.getBoundingClientRect();\n this._rate =\n (isRtl\n ? trackLeft + trackWidth - thumbPosition\n : thumbPosition - trackLeft) / trackWidth;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n })\n );\n }\n }\n\n /**\n * Handles `pointermove` to update the thumb position and the value as necessary.\n *\n * @param event The event.\n */\n @HostListener('document:pointermove')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handlePointermove = (event: PointerEvent) => {\n const { disabled, _dragging: dragging } = this;\n if (!disabled && dragging) {\n this._throttledHandlePointermoveImpl!(event);\n }\n };\n\n /**\n * Updates thumb position and value upon user's `pointermove` gesture.\n *\n * @param event The event.\n */\n private _handlePointermoveImpl(event: PointerEvent) {\n const { disabled, _dragging: dragging, _trackNode: trackNode } = this;\n if (!disabled && dragging) {\n const isRtl =\n trackNode\n .ownerDocument!.defaultView!.getComputedStyle(trackNode)\n .getPropertyValue('direction') === 'rtl';\n const thumbPosition = event.clientX;\n const { left: trackLeft, width: trackWidth } =\n this._trackNode.getBoundingClientRect();\n this._rate =\n (isRtl\n ? trackLeft + trackWidth - thumbPosition\n : thumbPosition - trackLeft) / trackWidth;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n intermediate: true,\n },\n })\n );\n }\n }\n\n /**\n * Handles `pointerup` and `pointerleave` event to finishing dragging.\n */\n private _endDrag = () => {\n if (this._dragging) {\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n },\n })\n );\n this._dragging = false;\n this._thumbNode.style.touchAction = '';\n }\n };\n\n /**\n * Handles `${prefix}-slider-input-changed` event to update the value.\n */\n @HostListener('eventChangeInput')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleChangeInput = ({ detail }: CustomEvent) => {\n const { intermediate, value } = detail;\n this.value = value;\n this.dispatchEvent(\n new CustomEvent((this.constructor as typeof CDSSlider).eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n value,\n intermediate,\n },\n })\n );\n };\n\n /**\n * `true` if the check box should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * \ttrue to specify if the control is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * \tWhether the slider should be read-only\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The label associated with the maximum value.\n */\n @property({ attribute: 'max-label', reflect: true })\n maxLabel = '';\n\n /**\n * The label associated with the minimum value.\n */\n @property({ attribute: 'min-label', reflect: true })\n minLabel = '';\n\n /**\n * The formatter for the text for maximum value.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatMaxText = (max: string, maxLabel: string | undefined) =>\n `${max}${maxLabel}`;\n\n /**\n * The formatter for the text for min/max value.\n * Should be changed upon the locale the UI is rendered with.\n */\n @property({ attribute: false })\n formatMinText = (min: string, minLabel: string | undefined) =>\n `${min}${minLabel}`;\n\n /**\n * The maximum value.\n */\n @property({ type: Number, reflect: true })\n get max() {\n return this._max.toString();\n }\n\n set max(value) {\n const { max: oldMax } = this;\n this._max = value;\n this.requestUpdate('max', oldMax);\n }\n\n /**\n * The minimum value.\n */\n @property({ type: Number, reflect: true })\n get min() {\n return this._min.toString();\n }\n\n set min(value) {\n const { min: oldMin } = this;\n this._min = value;\n this.requestUpdate('min', oldMin);\n }\n\n /**\n * The form name.\n */\n @property()\n name!: string;\n\n /**\n * true to specify if the control is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * true to specify if the control should display warn icon and text.\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * The snapping step of the value.\n */\n @property({ type: Number, reflect: true })\n get step() {\n return this._step.toString();\n }\n\n set step(value) {\n const { step: oldStep } = this;\n this._step = value;\n this.requestUpdate('step', oldStep);\n }\n\n /**\n * A value determining how much the value should increase/decrease by Shift+arrow keys,\n * which will be `(max - min) / stepMultiplier`.\n */\n @property({ type: Number, reflect: true, attribute: 'step-multiplier' })\n get stepMultiplier() {\n return this._stepMultiplier.toString();\n }\n\n set stepMultiplier(value) {\n const { stepMultiplier: oldstepMultiplier } = this;\n this._stepMultiplier = value;\n this.requestUpdate('stepMultiplier', oldstepMultiplier);\n }\n\n /**\n * The value.\n */\n @property({ type: Number })\n value;\n\n /**\n * is slide input valid\n */\n @property({ type: Boolean })\n isValid;\n\n _getInputValidity(input) {\n if (this.invalid) {\n return false;\n }\n\n if (\n input?.valueAsNumber > Number(this.max) ||\n input?.valueAsNumber < Number(this.min)\n ) {\n return false;\n }\n return true;\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this._throttledHandlePointermoveImpl) {\n this._throttledHandlePointermoveImpl = throttle(\n this._handlePointermoveImpl,\n 10\n );\n }\n }\n\n disconnectedCallback() {\n if (this._throttledHandlePointermoveImpl) {\n this._throttledHandlePointermoveImpl.cancel();\n this._throttledHandlePointermoveImpl = null;\n }\n super.disconnectedCallback();\n }\n\n shouldUpdate(changedProperties) {\n const input = this.querySelector(\n (this.constructor as typeof CDSSlider).selectorInput\n ) as CDSSliderInput;\n if (changedProperties.has('disabled')) {\n if (input) {\n input.disabled = this.disabled;\n }\n if (this.disabled) {\n this._dragging = false;\n }\n }\n if (changedProperties.has('readonly')) {\n if (input) {\n input.readonly = this.readonly;\n }\n if (this.readonly) {\n this._dragging = false;\n }\n }\n if (input) {\n ['max', 'min', 'step', 'value'].forEach((name) => {\n if (changedProperties.has(name)) {\n input[name] = this[name];\n }\n });\n\n if (\n changedProperties.has('value') ||\n changedProperties.has('invalid') ||\n changedProperties.has('warn') ||\n changedProperties.has('readonly')\n ) {\n const innerInput = input?.shadowRoot?.querySelector('input');\n\n this.isValid = this._getInputValidity(innerInput);\n\n if (!this.readonly && !this.isValid) {\n input.invalid = true;\n } else {\n input.invalid = false;\n }\n\n if (!this.readonly && !this.invalid && this.warn && this.isValid) {\n input.warn = true;\n } else {\n input.warn = false;\n }\n }\n }\n return true;\n }\n\n render() {\n const {\n disabled,\n formatMaxText,\n formatMinText,\n labelText,\n max,\n min,\n maxLabel,\n minLabel,\n readonly,\n invalidText,\n isValid,\n warn,\n warnText,\n value,\n _rate: rate,\n _handleClickLabel: handleClickLabel,\n _handleKeydown: handleKeydown,\n _handleClick: handleClick,\n _startDrag: startDrag,\n _endDrag: endDrag,\n } = this;\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n const sliderClasses = classMap({\n [`${prefix}--slider`]: true,\n [`${prefix}--slider--disabled`]: disabled,\n [`${prefix}--slider--readonly`]: readonly,\n });\n\n return html`\n <label class=\"${labelClasses}\" @click=\"${handleClickLabel}\">\n <slot name=\"label-text\">${labelText}</slot>\n </label>\n <div class=\"${prefix}--slider-container\">\n <span class=\"${prefix}--slider__range-label\">\n <slot name=\"min-text\">${formatMinText(min, minLabel)}</slot>\n </span>\n <div\n @keydown=\"${handleKeydown}\"\n @click=\"${handleClick}\"\n @pointerup=\"${endDrag}\"\n @pointerleave=\"${endDrag}\"\n class=\"${sliderClasses}\"\n tabindex=\"-1\"\n role=\"presentation\">\n <div\n id=\"thumb\"\n class=\"${prefix}--slider__thumb\"\n role=\"slider\"\n tabindex=\"${!readonly ? 0 : -1}\"\n aria-valuemax=\"${max}\"\n aria-valuemin=\"${min}\"\n aria-valuenow=\"${value}\"\n style=\"left: ${rate * 100}%\"\n @pointerdown=\"${startDrag}\"></div>\n <div id=\"track\" class=\"${prefix}--slider__track\"></div>\n <div class=\"${prefix}-ce--slider__filled-track-container\">\n <div\n class=\"${prefix}--slider__filled-track\"\n style=\"transform: translate(0%, -50%) scaleX(${rate})\"></div>\n </div>\n </div>\n <span class=\"${prefix}--slider__range-label\">\n <slot name=\"max-text\">${formatMaxText(max, maxLabel)}</slot>\n </span>\n <slot></slot>\n </div>\n\n ${!readonly && !isValid\n ? html`\n <div\n class=\"${prefix}--slider__validation-msg ${prefix}--slider__validation-msg--invalid ${prefix}--form-requirement\">\n ${invalidText}\n </div>\n `\n : null}\n ${!readonly && warn && isValid\n ? html`<div\n class=\"${prefix}--slider__validation-msg ${prefix}--form-requirement\">\n ${warnText}\n </div>`\n : null}\n `;\n }\n\n /**\n * A selector that will return the `<input>` box got entering the value directly.\n */\n static get selectorInput() {\n return `${prefix}-slider-input`;\n }\n\n /**\n * The name of the custom event fired after the value is changed by user gesture.\n */\n static get eventChange() {\n return `${prefix}-slider-changed`;\n }\n\n /**\n * The name of the custom event fired after the value is changed in `<cds-slider-input>` by user gesture.\n */\n static get eventChangeInput() {\n return `${prefix}-slider-input-changed`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSSlider;\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAU,EAAEC,IAAI,QAAQ,KAAK;AACtC,SAASC,QAAQ,EAAEC,KAAK,QAAQ,mBAAmB;AACnD,SAASC,QAAQ,QAAQ,6BAA6B;AACtD,OAAOC,QAAQ,MAAM,oBAAoB;AACzC,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,OAAOC,UAAU,MAAM,4BAA4B;AACnD,OAAOC,SAAS,MAAM,2BAA2B;AACjD,OAAOC,iBAAiB,MAAM,oCAAoC;AAClE,OAAOC,YAAY,MAAM,wCAAwC;AAEjE,OAAOC,MAAM,MAAM,mBAAe;AAClC,SAASC,aAAa,IAAIC,aAAa,QAAQ,yCAAyC;AAMxF;AACA;AACA;AACA,MAAMC,eAAe,GAAG;EACtBC,IAAI,EAAE,CAAC,CAAC;EACRC,SAAS,EAAE,CAAC,CAAC;EACbC,EAAE,EAAE,CAAC,CAAC;EACNC,OAAO,EAAE,CAAC,CAAC;EACXC,KAAK,EAAE,CAAC;EACRC,UAAU,EAAE,CAAC;EACbC,IAAI,EAAE,CAAC;EACPC,SAAS,EAAE;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAUMC,SAAS,GAAAC,SAAA,EADdX,aAAa,CAAE,GAAEP,MAAO,SAAQ,CAAC,aAAAmB,WAAA,EAAAC,kBAAA;EAAlC,MACMH,SAAS,SAAAG,kBAAA,CAA8D;IAAAC,YAAA,GAAAC,IAAA;MAAA,SAAAA,IAAA;MAAAH,WAAA;IAAA;EAylB7E;EAAC;IAAAI,CAAA,EAzlBKN,SAAS;IAAAO,CAAA;MAAAC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAIE,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAKL,GAAG;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAKF,GAAG;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAKO,GAAG;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAOlB,IAAI;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAKK,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MA9BzB;AACF;AACA;;MAGE;AACF;AACA;;MAGE;AACF;AACA;;MAGE;AACF;AACA;;MAGE;AACF;AACA;;MAKE;AACF;AACA;;MAGE;AACF;AACA;AACA;MACE,SAAAC,MAAA,EAAoB;QAClB,MAAM;UAAEC,GAAG;UAAEC,GAAG;UAAEH;QAAM,CAAC,GAAG,IAAI;QAChC;QACA,OACE,CAACI,IAAI,CAACD,GAAG,CAACE,MAAM,CAACH,GAAG,CAAC,EAAEE,IAAI,CAACF,GAAG,CAACG,MAAM,CAACF,GAAG,CAAC,EAAEH,KAAK,CAAC,CAAC,GAAGK,MAAM,CAACF,GAAG,CAAC,KACjEE,MAAM,CAACH,GAAG,CAAC,GAAGG,MAAM,CAACF,GAAG,CAAC,CAAC;MAE/B;IAAC;MAAAL,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAC,MAAkBK,IAAY,EAAE;QAC9B,MAAM;UAAEJ,GAAG;UAAEC,GAAG;UAAEI;QAAK,CAAC,GAAG,IAAI;QAC/B,IAAI,CAACP,KAAK,GACRK,MAAM,CAACF,GAAG,CAAC,GACXC,IAAI,CAACI,KAAK,CACP,CAACH,MAAM,CAACH,GAAG,CAAC,GAAGG,MAAM,CAACF,GAAG,CAAC,IAAIC,IAAI,CAACD,GAAG,CAAC,CAAC,EAAEC,IAAI,CAACF,GAAG,CAAC,CAAC,EAAEI,IAAI,CAAC,CAAC,GAC3DD,MAAM,CAACE,IAAI,CACf,CAAC,GACCF,MAAM,CAACE,IAAI,CAAC;MAClB;;MAEA;AACF;AACA;IAFE;MAAAT,IAAA;MAAAW,UAAA,GAGCvC,KAAK,CAAC,QAAQ,CAAC;MAAA6B,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAMfvC,KAAK,CAAC,QAAQ,CAAC;MAAA6B,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAHhB;AACF;AACA;MAIE;AACF;AACA;MACE,SAAAU,kBAAA,EAAoB;QAAA,IAAAC,gBAAA;QAClB,CAAAA,gBAAA,OAAI,CAACC,UAAU,cAAAD,gBAAA,uBAAfA,gBAAA,CAAiBE,KAAK,CAAC,CAAC;MAC1B;IAAC;MAAAf,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAc,gBAAgBC,KAAY,EAAE;QAC5B,MAAM;UAAEC;QAAS,CAAC,GAAGD,KAAY,CAAC,CAAC;QACnC,MAAM;UAAEE,QAAQ;UAAEC,IAAI;UAAElB;QAAM,CAAC,GAAG,IAAI;QACtC,IAAI,CAACiB,QAAQ,EAAE;UACbD,QAAQ,CAACG,MAAM,CAACD,IAAI,EAAEE,MAAM,CAACpB,KAAK,CAAC,CAAC;QACtC;MACF;;MAEA;AACF;AACA;IAFE;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAAqB,eAAuB;QAAEtB,GAAG;QAAEuB;MAAwB,CAAC,EAAE;QACvD,IAAI,CAAC,IAAI,CAACL,QAAQ,EAAE;UAClB,IAAIlB,GAAG,IAAIlB,eAAe,EAAE;YAC1B,MAAM;cACJqB,GAAG,EAAEqB,MAAM;cACXpB,GAAG,EAAEqB,MAAM;cACXjB,IAAI,EAAEkB,OAAO;cACbC,cAAc,EAAEC,iBAAiB;cACjC3B;YACF,CAAC,GAAG,IAAI;YACR,MAAME,GAAG,GAAGG,MAAM,CAACkB,MAAM,CAAC;YAC1B,MAAMpB,GAAG,GAAGE,MAAM,CAACmB,MAAM,CAAC;YAC1B,MAAMjB,IAAI,GAAGF,MAAM,CAACoB,OAAO,CAAC;YAC5B,MAAMC,cAAc,GAAGrB,MAAM,CAACsB,iBAAiB,CAAC;YAChD,MAAMC,IAAI,GACR,CAAC,CAACN,QAAQ,GAAGf,IAAI,GAAG,CAACL,GAAG,GAAGC,GAAG,IAAIuB,cAAc,IAChD7C,eAAe,CAACkB,GAAG,CAAC;YACtB,MAAM8B,SAAS,GAAG,CAAC7B,KAAK,GAAG4B,IAAI,IAAIrB,IAAI;YACvC;YACA,IAAI,CAACP,KAAK,GAAGI,IAAI,CAACD,GAAG,CACnBD,GAAG,EACHE,IAAI,CAACF,GAAG,CACNC,GAAG,EACH,CAACyB,IAAI,IAAI,CAAC,GAAGxB,IAAI,CAAC0B,KAAK,CAACD,SAAS,CAAC,GAAGzB,IAAI,CAAC2B,IAAI,CAACF,SAAS,CAAC,IAAItB,IAC/D,CACF,CAAC;YACD,IAAI,CAACyB,aAAa,CAChB,IAAIC,WAAW,CAAE,IAAI,CAACvC,WAAW,CAAsBwC,WAAW,EAAE;cAClEC,OAAO,EAAE,IAAI;cACbC,QAAQ,EAAE,IAAI;cACdC,MAAM,EAAE;gBACNrC,KAAK,EAAE,IAAI,CAACA,KAAK;gBACjBsC,YAAY,EAAE;cAChB;YACF,CAAC,CACH,CAAC;UACH;QACF;MACF;;MAEA;AACF;AACA;IAFE;MAAAxC,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAAuC,WAAA,EAAqB;QACnB,IAAI,CAACC,SAAS,GAAG,IAAI;QACrB,IAAI,CAAC5B,UAAU,CAAC6B,KAAK,CAACC,WAAW,GAAG,MAAM;MAC5C;;MAEA;AACF;AACA;IAFE;MAAA5C,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAGA,SAAA2C,aAAqB5B,KAAmB,EAAE;QACxC,IAAI,CAAC,IAAI,CAACE,QAAQ,EAAE;UAClB,MAAM;YAAE2B,UAAU,EAAEC;UAAU,CAAC,GAAG,IAAI;UACtC,MAAMC,KAAK,GACTD,SAAS,CACNE,aAAa,CAAEC,WAAW,CAAEC,gBAAgB,CAACJ,SAAS,CAAC,CACvDK,gBAAgB,CAAC,WAAW,CAAC,KAAK,KAAK;UAC5C,MAAMC,aAAa,GAAGpC,KAAK,CAACqC,OAAO;UACnC,MAAM;YAAEC,IAAI,EAAEC,SAAS;YAAEC,KAAK,EAAEC;UAAW,CAAC,GAC1CX,SAAS,CAACY,qBAAqB,CAAC,CAAC;UACnC,IAAI,CAACxD,KAAK,GACR,CAAC6C,KAAK,GACFQ,SAAS,GAAGE,UAAU,GAAGL,aAAa,GACtCA,aAAa,GAAGG,SAAS,IAAIE,UAAU;UAC7C,IAAI,CAACxB,aAAa,CAChB,IAAIC,WAAW,CAAE,IAAI,CAACvC,WAAW,CAAsBwC,WAAW,EAAE;YAClEC,OAAO,EAAE,IAAI;YACbC,QAAQ,EAAE,IAAI;YACdC,MAAM,EAAE;cACNrC,KAAK,EAAE,IAAI,CAACA;YACd;UACF,CAAC,CACH,CAAC;QACH;MACF;;MAEA;AACF;AACA;AACA;AACA;IAJE;MAAAF,IAAA;MAAAW,UAAA,GAKChC,YAAY,CAAC,sBAAsB,CAAC;MAAAsB,GAAA;MAAAC,MAAA;QAAA,OAEPe,KAAmB,IAAK;UACpD,MAAM;YAAEE,QAAQ;YAAEuB,SAAS,EAAEkB;UAAS,CAAC,GAAG,IAAI;UAC9C,IAAI,CAACzC,QAAQ,IAAIyC,QAAQ,EAAE;YACzB,IAAI,CAACC,+BAA+B,CAAE5C,KAAK,CAAC;UAC9C;QACF,CAAC;MAAA;IAAA;MAAAjB,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAED;AACF;AACA;AACA;AACA;MACE,SAAA4D,uBAA+B7C,KAAmB,EAAE;QAClD,MAAM;UAAEE,QAAQ;UAAEuB,SAAS,EAAEkB,QAAQ;UAAEd,UAAU,EAAEC;QAAU,CAAC,GAAG,IAAI;QACrE,IAAI,CAAC5B,QAAQ,IAAIyC,QAAQ,EAAE;UACzB,MAAMZ,KAAK,GACTD,SAAS,CACNE,aAAa,CAAEC,WAAW,CAAEC,gBAAgB,CAACJ,SAAS,CAAC,CACvDK,gBAAgB,CAAC,WAAW,CAAC,KAAK,KAAK;UAC5C,MAAMC,aAAa,GAAGpC,KAAK,CAACqC,OAAO;UACnC,MAAM;YAAEC,IAAI,EAAEC,SAAS;YAAEC,KAAK,EAAEC;UAAW,CAAC,GAC1C,IAAI,CAACZ,UAAU,CAACa,qBAAqB,CAAC,CAAC;UACzC,IAAI,CAACxD,KAAK,GACR,CAAC6C,KAAK,GACFQ,SAAS,GAAGE,UAAU,GAAGL,aAAa,GACtCA,aAAa,GAAGG,SAAS,IAAIE,UAAU;UAC7C,IAAI,CAACxB,aAAa,CAChB,IAAIC,WAAW,CAAE,IAAI,CAACvC,WAAW,CAAsBwC,WAAW,EAAE;YAClEC,OAAO,EAAE,IAAI;YACbC,QAAQ,EAAE,IAAI;YACdC,MAAM,EAAE;cACNrC,KAAK,EAAE,IAAI,CAACA,KAAK;cACjBsC,YAAY,EAAE;YAChB;UACF,CAAC,CACH,CAAC;QACH;MACF;;MAEA;AACF;AACA;IAFE;MAAAxC,IAAA;MAAAC,GAAA;MAAAC,MAAA;QAAA,OAGmB,MAAM;UACvB,IAAI,IAAI,CAACwC,SAAS,EAAE;YAClB,IAAI,CAACR,aAAa,CAChB,IAAIC,WAAW,CAAE,IAAI,CAACvC,WAAW,CAAsBwC,WAAW,EAAE;cAClEC,OAAO,EAAE,IAAI;cACbC,QAAQ,EAAE,IAAI;cACdC,MAAM,EAAE;gBACNrC,KAAK,EAAE,IAAI,CAACA;cACd;YACF,CAAC,CACH,CAAC;YACD,IAAI,CAACwC,SAAS,GAAG,KAAK;YACtB,IAAI,CAAC5B,UAAU,CAAC6B,KAAK,CAACC,WAAW,GAAG,EAAE;UACxC;QACF,CAAC;MAAA;IAAA;MAAA5C,IAAA;MAAAW,UAAA,GAKAhC,YAAY,CAAC,kBAAkB,CAAC;MAAAsB,GAAA;MAAAC,MAAA;QAAA,OAEJ,CAAC;UAAEqC;QAAoB,CAAC,KAAK;UACxD,MAAM;YAAEC,YAAY;YAAEtC;UAAM,CAAC,GAAGqC,MAAM;UACtC,IAAI,CAACrC,KAAK,GAAGA,KAAK;UAClB,IAAI,CAACgC,aAAa,CAChB,IAAIC,WAAW,CAAE,IAAI,CAACvC,WAAW,CAAsBwC,WAAW,EAAE;YAClEC,OAAO,EAAE,IAAI;YACbC,QAAQ,EAAE,IAAI;YACdC,MAAM,EAAE;cACNrC,KAAK;cACLsC;YACF;UACF,CAAC,CACH,CAAC;QACH,CAAC;MAAA;IAAA;MAAAxC,IAAA;MAAAW,UAAA,GAKAxC,QAAQ,CAAC;QAAE4F,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKfxC,QAAQ,CAAC;QAAE4F,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKfxC,QAAQ,CAAC;QAAE4F,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OAChC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKfxC,QAAQ,CAAC;QAAE+F,SAAS,EAAE;MAAa,CAAC,CAAC;MAAAjE,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKbxC,QAAQ,CAAC;QAAE+F,SAAS,EAAE,WAAW;QAAED,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OACzC,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKZxC,QAAQ,CAAC;QAAE+F,SAAS,EAAE,WAAW;QAAED,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OACzC,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAMZxC,QAAQ,CAAC;QAAE+F,SAAS,EAAE;MAAM,CAAC,CAAC;MAAAjE,GAAA;MAAAC,MAAA;QAAA,OACf,CAACE,GAAW,EAAE+D,QAA4B,KACvD,GAAE/D,GAAI,GAAE+D,QAAS,EAAC;MAAA;IAAA;MAAAnE,IAAA;MAAAW,UAAA,GAMpBxC,QAAQ,CAAC;QAAE+F,SAAS,EAAE;MAAM,CAAC,CAAC;MAAAjE,GAAA;MAAAC,MAAA;QAAA,OACf,CAACG,GAAW,EAAE+D,QAA4B,KACvD,GAAE/D,GAAI,GAAE+D,QAAS,EAAC;MAAA;IAAA;MAAApE,IAAA;MAAAW,UAAA,GAKpBxC,QAAQ,CAAC;QAAE4F,IAAI,EAAExD,MAAM;QAAE0D,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,KAAA;MA3E1C;AACF;AACA;MAkBE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;AACA;MAKE;AACF;AACA;AACA;MAKE;AACF;AACA;MACE,SAAAE,IAAA,EACU;QACR,OAAO,IAAI,CAACiE,IAAI,CAACC,QAAQ,CAAC,CAAC;MAC7B;IAAC;MAAAtE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAE,IAAQF,KAAK,EAAE;QACb,MAAM;UAAEE,GAAG,EAAEmE;QAAO,CAAC,GAAG,IAAI;QAC5B,IAAI,CAACF,IAAI,GAAGnE,KAAK;QACjB,IAAI,CAACsE,aAAa,CAAC,KAAK,EAAED,MAAM,CAAC;MACnC;;MAEA;AACF;AACA;IAFE;MAAAvE,IAAA;MAAAW,UAAA,GAGCxC,QAAQ,CAAC;QAAE4F,IAAI,EAAExD,MAAM;QAAE0D,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,KAAA,EAA1C,SAAAG,IAAA,EACU;QACR,OAAO,IAAI,CAACoE,IAAI,CAACH,QAAQ,CAAC,CAAC;MAC7B;IAAC;MAAAtE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAG,IAAQH,KAAK,EAAE;QACb,MAAM;UAAEG,GAAG,EAAEqE;QAAO,CAAC,GAAG,IAAI;QAC5B,IAAI,CAACD,IAAI,GAAGvE,KAAK;QACjB,IAAI,CAACsE,aAAa,CAAC,KAAK,EAAEE,MAAM,CAAC;MACnC;;MAEA;AACF;AACA;IAFE;MAAA1E,IAAA;MAAAW,UAAA,GAGCxC,QAAQ,CAAC,CAAC;MAAA8B,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAMVxC,QAAQ,CAAC;QAAE4F,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OACjC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKdxC,QAAQ,CAAC;QAAE+F,SAAS,EAAE;MAAe,CAAC,CAAC;MAAAjE,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKfxC,QAAQ,CAAC;QAAE4F,IAAI,EAAEC,OAAO;QAAEC,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,MAAA;QAAA,OACpC,KAAK;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKXxC,QAAQ,CAAC;QAAE+F,SAAS,EAAE;MAAY,CAAC,CAAC;MAAAjE,GAAA;MAAAC,MAAA;QAAA,OAC1B,EAAE;MAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAKZxC,QAAQ,CAAC;QAAE4F,IAAI,EAAExD,MAAM;QAAE0D,OAAO,EAAE;MAAK,CAAC,CAAC;MAAAhE,GAAA;MAAAC,KAAA;MA3B1C;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MAIE;AACF;AACA;MACE,SAAAO,KAAA,EACW;QACT,OAAO,IAAI,CAACkE,KAAK,CAACL,QAAQ,CAAC,CAAC;MAC9B;IAAC;MAAAtE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAO,KAASP,KAAK,EAAE;QACd,MAAM;UAAEO,IAAI,EAAEmE;QAAQ,CAAC,GAAG,IAAI;QAC9B,IAAI,CAACD,KAAK,GAAGzE,KAAK;QAClB,IAAI,CAACsE,aAAa,CAAC,MAAM,EAAEI,OAAO,CAAC;MACrC;;MAEA;AACF;AACA;AACA;IAHE;MAAA5E,IAAA;MAAAW,UAAA,GAICxC,QAAQ,CAAC;QAAE4F,IAAI,EAAExD,MAAM;QAAE0D,OAAO,EAAE,IAAI;QAAEC,SAAS,EAAE;MAAkB,CAAC,CAAC;MAAAjE,GAAA;MAAAC,KAAA,EAAxE,SAAA0B,eAAA,EACqB;QACnB,OAAO,IAAI,CAACiD,eAAe,CAACP,QAAQ,CAAC,CAAC;MACxC;IAAC;MAAAtE,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAA0B,eAAmB1B,KAAK,EAAE;QACxB,MAAM;UAAE0B,cAAc,EAAEkD;QAAkB,CAAC,GAAG,IAAI;QAClD,IAAI,CAACD,eAAe,GAAG3E,KAAK;QAC5B,IAAI,CAACsE,aAAa,CAAC,gBAAgB,EAAEM,iBAAiB,CAAC;MACzD;;MAEA;AACF;AACA;IAFE;MAAA9E,IAAA;MAAAW,UAAA,GAGCxC,QAAQ,CAAC;QAAE4F,IAAI,EAAExD;MAAO,CAAC,CAAC;MAAAN,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAW,UAAA,GAM1BxC,QAAQ,CAAC;QAAE4F,IAAI,EAAEC;MAAQ,CAAC,CAAC;MAAA/D,GAAA;MAAAC,KAAA;IAAA;MAAAF,IAAA;MAAAC,GAAA;MAAAC,KAAA;MAH5B;AACF;AACA;MAIE,SAAA6E,kBAAkBC,KAAK,EAAE;QACvB,IAAI,IAAI,CAACC,OAAO,EAAE;UAChB,OAAO,KAAK;QACd;QAEA,IACE,CAAAD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,aAAa,IAAG3E,MAAM,CAAC,IAAI,CAACH,GAAG,CAAC,IACvC,CAAA4E,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,aAAa,IAAG3E,MAAM,CAAC,IAAI,CAACF,GAAG,CAAC,EACvC;UACA,OAAO,KAAK;QACd;QACA,OAAO,IAAI;MACb;IAAC;MAAAL,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAiF,kBAAA,EAAoB;QAClBC,IAAA,CAAAC,eAAA,CA/ZE7F,SAAS,CAAA8F,SAAA,8BAAAC,IAAA;QAgaX,IAAI,CAAC,IAAI,CAAC1B,+BAA+B,EAAE;UACzC,IAAI,CAACA,+BAA+B,GAAGvF,QAAQ,CAC7C,IAAI,CAACwF,sBAAsB,EAC3B,EACF,CAAC;QACH;MACF;IAAC;MAAA9D,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAsF,qBAAA,EAAuB;QACrB,IAAI,IAAI,CAAC3B,+BAA+B,EAAE;UACxC,IAAI,CAACA,+BAA+B,CAAC4B,MAAM,CAAC,CAAC;UAC7C,IAAI,CAAC5B,+BAA+B,GAAG,IAAI;QAC7C;QACAuB,IAAA,CAAAC,eAAA,CA7aE7F,SAAS,CAAA8F,SAAA,iCAAAC,IAAA;MA8ab;IAAC;MAAAvF,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAwF,aAAaC,iBAAiB,EAAE;QAC9B,MAAMX,KAAK,GAAG,IAAI,CAACY,aAAa,CAC7B,IAAI,CAAChG,WAAW,CAAsBiG,aACzC,CAAmB;QACnB,IAAIF,iBAAiB,CAACG,GAAG,CAAC,UAAU,CAAC,EAAE;UACrC,IAAId,KAAK,EAAE;YACTA,KAAK,CAAC7D,QAAQ,GAAG,IAAI,CAACA,QAAQ;UAChC;UACA,IAAI,IAAI,CAACA,QAAQ,EAAE;YACjB,IAAI,CAACuB,SAAS,GAAG,KAAK;UACxB;QACF;QACA,IAAIiD,iBAAiB,CAACG,GAAG,CAAC,UAAU,CAAC,EAAE;UACrC,IAAId,KAAK,EAAE;YACTA,KAAK,CAACe,QAAQ,GAAG,IAAI,CAACA,QAAQ;UAChC;UACA,IAAI,IAAI,CAACA,QAAQ,EAAE;YACjB,IAAI,CAACrD,SAAS,GAAG,KAAK;UACxB;QACF;QACA,IAAIsC,KAAK,EAAE;UACT,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAACgB,OAAO,CAAE5E,IAAI,IAAK;YAChD,IAAIuE,iBAAiB,CAACG,GAAG,CAAC1E,IAAI,CAAC,EAAE;cAC/B4D,KAAK,CAAC5D,IAAI,CAAC,GAAG,IAAI,CAACA,IAAI,CAAC;YAC1B;UACF,CAAC,CAAC;UAEF,IACEuE,iBAAiB,CAACG,GAAG,CAAC,OAAO,CAAC,IAC9BH,iBAAiB,CAACG,GAAG,CAAC,SAAS,CAAC,IAChCH,iBAAiB,CAACG,GAAG,CAAC,MAAM,CAAC,IAC7BH,iBAAiB,CAACG,GAAG,CAAC,UAAU,CAAC,EACjC;YAAA,IAAAG,iBAAA;YACA,MAAMC,UAAU,GAAGlB,KAAK,aAALA,KAAK,wBAAAiB,iBAAA,GAALjB,KAAK,CAAEmB,UAAU,cAAAF,iBAAA,uBAAjBA,iBAAA,CAAmBL,aAAa,CAAC,OAAO,CAAC;YAE5D,IAAI,CAACQ,OAAO,GAAG,IAAI,CAACrB,iBAAiB,CAACmB,UAAU,CAAC;YAEjD,IAAI,CAAC,IAAI,CAACH,QAAQ,IAAI,CAAC,IAAI,CAACK,OAAO,EAAE;cACnCpB,KAAK,CAACC,OAAO,GAAG,IAAI;YACtB,CAAC,MAAM;cACLD,KAAK,CAACC,OAAO,GAAG,KAAK;YACvB;YAEA,IAAI,CAAC,IAAI,CAACc,QAAQ,IAAI,CAAC,IAAI,CAACd,OAAO,IAAI,IAAI,CAACoB,IAAI,IAAI,IAAI,CAACD,OAAO,EAAE;cAChEpB,KAAK,CAACqB,IAAI,GAAG,IAAI;YACnB,CAAC,MAAM;cACLrB,KAAK,CAACqB,IAAI,GAAG,KAAK;YACpB;UACF;QACF;QACA,OAAO,IAAI;MACb;IAAC;MAAArG,IAAA;MAAAC,GAAA;MAAAC,KAAA,EAED,SAAAoG,OAAA,EAAS;QACP,MAAM;UACJnF,QAAQ;UACRoF,aAAa;UACbC,aAAa;UACbC,SAAS;UACTrG,GAAG;UACHC,GAAG;UACH8D,QAAQ;UACRC,QAAQ;UACR2B,QAAQ;UACRW,WAAW;UACXN,OAAO;UACPC,IAAI;UACJM,QAAQ;UACRzG,KAAK;UACLC,KAAK,EAAEK,IAAI;UACXI,iBAAiB,EAAEgG,gBAAgB;UACnCrF,cAAc,EAAEsF,aAAa;UAC7BhE,YAAY,EAAEiE,WAAW;UACzBrE,UAAU,EAAEsE,SAAS;UACrBC,QAAQ,EAAEC;QACZ,CAAC,GAAG,IAAI;QAER,MAAMC,YAAY,GAAG7I,QAAQ,CAAC;UAC5B,CAAE,GAAEE,MAAO,SAAQ,GAAG,IAAI;UAC1B,CAAE,GAAEA,MAAO,mBAAkB,GAAG4C;QAClC,CAAC,CAAC;QACF,MAAMgG,aAAa,GAAG9I,QAAQ,CAAC;UAC7B,CAAE,GAAEE,MAAO,UAAS,GAAG,IAAI;UAC3B,CAAE,GAAEA,MAAO,oBAAmB,GAAG4C,QAAQ;UACzC,CAAE,GAAE5C,MAAO,oBAAmB,GAAGwH;QACnC,CAAC,CAAC;QAEF,OAAO7H,IAAI,CAAAkJ,EAAA,KAAAA,EAAA,GAAAC,CAAC;AAChB,sBAAoB,CAAe,aAAU,CAAmB;AAChE,kCAAgC,CAAY;AAC5C;AACA,oBAAkB,CAAS;AAC3B,uBAAqB,CAAS;AAC9B,kCAAgC,CAA+B;AAC/D;AACA;AACA,sBAAoB,CAAgB;AACpC,oBAAkB,CAAc;AAChC,wBAAsB,CAAU;AAChC,2BAAyB,CAAU;AACnC,mBAAiB,CAAgB;AACjC;AACA;AACA;AACA;AACA,qBAAmB,CAAS;AAC5B;AACA,wBAAsB,CAAqB;AAC3C,6BAA2B,CAAM;AACjC,6BAA2B,CAAM;AACjC,6BAA2B,CAAQ;AACnC,2BAAyB,CAAa;AACtC,4BAA0B,CAAY;AACtC,mCAAiC,CAAS;AAC1C,wBAAsB,CAAS;AAC/B;AACA,uBAAqB,CAAS;AAC9B,6DAA2D,CAAO;AAClE;AACA;AACA,uBAAqB,CAAS;AAC9B,kCAAgC,CAA+B;AAC/D;AACA;AACA;AACA;AACA,QAAM,CAOS;AACf,QAAM,CAKS;AACf,KAAI,GApDkBH,YAAY,EAAaN,gBAAgB,EAC7BH,SAAS,EAEvBlI,MAAM,EACHA,MAAM,EACKiI,aAAa,CAACnG,GAAG,EAAE+D,QAAQ,CAAC,EAGxCyC,aAAa,EACfC,WAAW,EACPG,OAAO,EACJA,OAAO,EACfE,aAAa,EAKX5I,MAAM,EAEH,CAACwH,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,EACb3F,GAAG,EACHC,GAAG,EACHH,KAAK,EACPM,IAAI,GAAG,GAAG,EACTuG,SAAS,EACFxI,MAAM,EACjBA,MAAM,EAEPA,MAAM,EACgCiC,IAAI,EAG1CjC,MAAM,EACKgI,aAAa,CAACnG,GAAG,EAAE+D,QAAQ,CAAC,EAKtD,CAAC4B,QAAQ,IAAI,CAACK,OAAO,GACnBlI,IAAI,CAAAoJ,GAAA,KAAAA,GAAA,GAAAD,CAAC;AACf;AACA,uBAAqB,CAAS,4BAAyB,CAAS,qCAAkC,CAAS;AAC3G,gBAAc,CAAc;AAC5B;AACA,WAAU,GAHa9I,MAAM,EAA4BA,MAAM,EAAqCA,MAAM,EAC1FmI,WAAW,IAGjB,IAAI,EACN,CAACX,QAAQ,IAAIM,IAAI,IAAID,OAAO,GAC1BlI,IAAI,CAAAqJ,GAAA,KAAAA,GAAA,GAAAF,CAAC;AACf,qBAAmB,CAAS,4BAAyB,CAAS;AAC9D,cAAY,CAAW;AACvB,iBAAgB,GAFK9I,MAAM,EAA4BA,MAAM,EAC/CoI,QAAQ,IAEZ,IAAI;MAEZ;;MAEA;AACF;AACA;IAFE;MAAA3G,IAAA;MAAAwH,MAAA;MAAAvH,GAAA;MAAAC,KAAA,EAGA,SAAA2F,cAAA,EAA2B;QACzB,OAAQ,GAAEtH,MAAO,eAAc;MACjC;;MAEA;AACF;AACA;IAFE;MAAAyB,IAAA;MAAAwH,MAAA;MAAAvH,GAAA;MAAAC,KAAA,EAGA,SAAAkC,YAAA,EAAyB;QACvB,OAAQ,GAAE7D,MAAO,iBAAgB;MACnC;;MAEA;AACF;AACA;IAFE;MAAAyB,IAAA;MAAAwH,MAAA;MAAAvH,GAAA;MAAAC,KAAA,EAGA,SAAAuH,iBAAA,EAA8B;QAC5B,OAAQ,GAAElJ,MAAO,uBAAsB;MACzC;IAAC;MAAAyB,IAAA;MAAAwH,MAAA;MAAAvH,GAAA;MAAAC,MAAA;QAAA,OAAAwH,aAAA,CAAAA,aAAA,KAGIzJ,UAAU,CAAC0J,iBAAiB;UAC/BC,cAAc,EAAE;QAAI;MAAA;IAAA;MAAA5H,IAAA;MAAAwH,MAAA;MAAAvH,GAAA;MAAAC,MAAA;QAAA,OAENtB,MAAM;MAAA;IAAA;EAAA;AAAA,GAxlBAF,iBAAiB,CAACD,SAAS,CAACD,UAAU,CAACP,UAAU,CAAC,CAAC,CAAC;AA2lB5E,eAAeuB,SAAS"}