@refinitiv-ui/elements 5.3.3 → 5.3.4

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 (558) hide show
  1. package/lib/accordion/custom-elements.json +49 -0
  2. package/lib/accordion/index.d.ts +76 -0
  3. package/lib/accordion/index.js +139 -0
  4. package/lib/accordion/themes/halo/dark/index.js +3 -0
  5. package/lib/accordion/themes/halo/light/index.js +3 -0
  6. package/lib/accordion/themes/solar/charcoal/index.js +3 -0
  7. package/lib/accordion/themes/solar/pearl/index.js +3 -0
  8. package/lib/appstate-bar/custom-elements.json +49 -0
  9. package/lib/appstate-bar/index.d.ts +65 -0
  10. package/lib/appstate-bar/index.js +103 -0
  11. package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
  12. package/lib/appstate-bar/themes/halo/light/index.js +3 -0
  13. package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
  14. package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
  15. package/lib/autosuggest/custom-elements.json +223 -0
  16. package/lib/autosuggest/helpers/const.d.ts +2 -0
  17. package/lib/autosuggest/helpers/const.js +3 -0
  18. package/lib/autosuggest/helpers/types.d.ts +54 -0
  19. package/lib/autosuggest/helpers/types.js +1 -0
  20. package/lib/autosuggest/helpers/utils.d.ts +39 -0
  21. package/lib/autosuggest/helpers/utils.js +76 -0
  22. package/lib/autosuggest/index.d.ts +533 -0
  23. package/lib/autosuggest/index.js +1248 -0
  24. package/lib/autosuggest/themes/halo/dark/index.js +5 -0
  25. package/lib/autosuggest/themes/halo/light/index.js +5 -0
  26. package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
  27. package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
  28. package/lib/button/custom-elements.json +119 -0
  29. package/lib/button/index.d.ts +132 -0
  30. package/lib/button/index.js +213 -0
  31. package/lib/button/themes/halo/dark/index.js +3 -0
  32. package/lib/button/themes/halo/light/index.js +3 -0
  33. package/lib/button/themes/solar/charcoal/index.js +3 -0
  34. package/lib/button/themes/solar/pearl/index.js +3 -0
  35. package/lib/button-bar/custom-elements.json +26 -0
  36. package/lib/button-bar/index.d.ts +76 -0
  37. package/lib/button-bar/index.js +157 -0
  38. package/lib/button-bar/themes/halo/dark/index.js +3 -0
  39. package/lib/button-bar/themes/halo/light/index.js +3 -0
  40. package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
  41. package/lib/button-bar/themes/solar/pearl/index.js +3 -0
  42. package/lib/calendar/custom-elements.json +199 -0
  43. package/lib/calendar/index.d.ts +321 -0
  44. package/lib/calendar/index.js +926 -0
  45. package/lib/calendar/locales.d.ts +31 -0
  46. package/lib/calendar/locales.js +144 -0
  47. package/lib/calendar/themes/halo/dark/index.js +3 -0
  48. package/lib/calendar/themes/halo/light/index.js +3 -0
  49. package/lib/calendar/themes/solar/charcoal/index.js +3 -0
  50. package/lib/calendar/themes/solar/pearl/index.js +3 -0
  51. package/lib/calendar/types.d.ts +33 -0
  52. package/lib/calendar/types.js +6 -0
  53. package/lib/calendar/utils.d.ts +12 -0
  54. package/lib/calendar/utils.js +17 -0
  55. package/lib/canvas/custom-elements.json +69 -0
  56. package/lib/canvas/index.d.ts +100 -0
  57. package/lib/canvas/index.js +175 -0
  58. package/lib/canvas/themes/halo/dark/index.js +2 -0
  59. package/lib/canvas/themes/halo/light/index.js +2 -0
  60. package/lib/canvas/themes/solar/charcoal/index.js +2 -0
  61. package/lib/canvas/themes/solar/pearl/index.js +2 -0
  62. package/lib/card/custom-elements.json +59 -0
  63. package/lib/card/helpers/types.d.ts +12 -0
  64. package/lib/card/helpers/types.js +1 -0
  65. package/lib/card/index.d.ts +140 -0
  66. package/lib/card/index.js +247 -0
  67. package/lib/card/themes/halo/dark/index.js +5 -0
  68. package/lib/card/themes/halo/light/index.js +5 -0
  69. package/lib/card/themes/solar/charcoal/index.js +5 -0
  70. package/lib/card/themes/solar/pearl/index.js +5 -0
  71. package/lib/chart/custom-elements.json +42 -0
  72. package/lib/chart/helpers/index.d.ts +2 -0
  73. package/lib/chart/helpers/index.js +2 -0
  74. package/lib/chart/helpers/legend.d.ts +5 -0
  75. package/lib/chart/helpers/legend.js +78 -0
  76. package/lib/chart/helpers/merge.d.ts +15 -0
  77. package/lib/chart/helpers/merge.js +28 -0
  78. package/lib/chart/helpers/types.d.ts +69 -0
  79. package/lib/chart/helpers/types.js +1 -0
  80. package/lib/chart/index.d.ts +187 -0
  81. package/lib/chart/index.js +493 -0
  82. package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
  83. package/lib/chart/plugins/doughnut-center-label.js +196 -0
  84. package/lib/chart/themes/halo/dark/index.js +4 -0
  85. package/lib/chart/themes/halo/light/index.js +4 -0
  86. package/lib/chart/themes/solar/charcoal/index.js +4 -0
  87. package/lib/chart/themes/solar/pearl/index.js +4 -0
  88. package/lib/checkbox/custom-elements.json +71 -0
  89. package/lib/checkbox/index.d.ts +89 -0
  90. package/lib/checkbox/index.js +170 -0
  91. package/lib/checkbox/themes/halo/dark/index.js +4 -0
  92. package/lib/checkbox/themes/halo/light/index.js +4 -0
  93. package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
  94. package/lib/checkbox/themes/solar/pearl/index.js +4 -0
  95. package/lib/clock/custom-elements.json +108 -0
  96. package/lib/clock/index.d.ts +309 -0
  97. package/lib/clock/index.js +564 -0
  98. package/lib/clock/themes/halo/dark/index.js +2 -0
  99. package/lib/clock/themes/halo/light/index.js +2 -0
  100. package/lib/clock/themes/solar/charcoal/index.js +2 -0
  101. package/lib/clock/themes/solar/pearl/index.js +2 -0
  102. package/lib/clock/utils/TickManager.d.ts +14 -0
  103. package/lib/clock/utils/TickManager.js +66 -0
  104. package/lib/clock/utils/timestamps.d.ts +6 -0
  105. package/lib/clock/utils/timestamps.js +6 -0
  106. package/lib/collapse/custom-elements.json +79 -0
  107. package/lib/collapse/index.d.ts +119 -0
  108. package/lib/collapse/index.js +199 -0
  109. package/lib/collapse/themes/halo/dark/index.js +5 -0
  110. package/lib/collapse/themes/halo/light/index.js +5 -0
  111. package/lib/collapse/themes/solar/charcoal/index.js +5 -0
  112. package/lib/collapse/themes/solar/pearl/index.js +5 -0
  113. package/lib/color-dialog/custom-elements.json +193 -0
  114. package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
  115. package/lib/color-dialog/elements/color-palettes.js +105 -0
  116. package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
  117. package/lib/color-dialog/elements/grayscale-palettes.js +164 -0
  118. package/lib/color-dialog/elements/palettes.d.ts +58 -0
  119. package/lib/color-dialog/elements/palettes.js +119 -0
  120. package/lib/color-dialog/helpers/color-helpers.d.ts +62 -0
  121. package/lib/color-dialog/helpers/color-helpers.js +258 -0
  122. package/lib/color-dialog/helpers/value-model.d.ts +75 -0
  123. package/lib/color-dialog/helpers/value-model.js +139 -0
  124. package/lib/color-dialog/index.d.ts +232 -0
  125. package/lib/color-dialog/index.js +457 -0
  126. package/lib/color-dialog/themes/halo/dark/index.js +7 -0
  127. package/lib/color-dialog/themes/halo/light/index.js +7 -0
  128. package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
  129. package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
  130. package/lib/combo-box/custom-elements.json +207 -0
  131. package/lib/combo-box/helpers/filter.d.ts +10 -0
  132. package/lib/combo-box/helpers/filter.js +29 -0
  133. package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
  134. package/lib/combo-box/helpers/keyboard-event.js +19 -0
  135. package/lib/combo-box/helpers/types.d.ts +11 -0
  136. package/lib/combo-box/helpers/types.js +1 -0
  137. package/lib/combo-box/index.d.ts +523 -0
  138. package/lib/combo-box/index.js +1146 -0
  139. package/lib/combo-box/themes/halo/dark/index.js +8 -0
  140. package/lib/combo-box/themes/halo/light/index.js +8 -0
  141. package/lib/combo-box/themes/solar/charcoal/index.js +8 -0
  142. package/lib/combo-box/themes/solar/pearl/index.js +8 -0
  143. package/lib/counter/custom-elements.json +35 -0
  144. package/lib/counter/index.d.ts +89 -0
  145. package/lib/counter/index.js +155 -0
  146. package/lib/counter/themes/halo/dark/index.js +3 -0
  147. package/lib/counter/themes/halo/light/index.js +3 -0
  148. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  149. package/lib/counter/themes/solar/pearl/index.js +3 -0
  150. package/lib/counter/utils.d.ts +13 -0
  151. package/lib/counter/utils.js +52 -0
  152. package/lib/datetime-picker/custom-elements.json +333 -0
  153. package/lib/datetime-picker/index.d.ts +498 -0
  154. package/lib/datetime-picker/index.js +1164 -0
  155. package/lib/datetime-picker/locales.d.ts +8 -0
  156. package/lib/datetime-picker/locales.js +46 -0
  157. package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
  158. package/lib/datetime-picker/themes/halo/light/index.js +7 -0
  159. package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
  160. package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
  161. package/lib/datetime-picker/types.d.ts +3 -0
  162. package/lib/datetime-picker/types.js +1 -0
  163. package/lib/datetime-picker/utils.d.ts +55 -0
  164. package/lib/datetime-picker/utils.js +92 -0
  165. package/lib/dialog/custom-elements.json +136 -0
  166. package/lib/dialog/draggable-element.d.ts +14 -0
  167. package/lib/dialog/draggable-element.js +221 -0
  168. package/lib/dialog/index.d.ts +199 -0
  169. package/lib/dialog/index.js +331 -0
  170. package/lib/dialog/themes/halo/dark/index.js +7 -0
  171. package/lib/dialog/themes/halo/light/index.js +7 -0
  172. package/lib/dialog/themes/solar/charcoal/index.js +7 -0
  173. package/lib/dialog/themes/solar/pearl/index.js +7 -0
  174. package/lib/email-field/custom-elements.json +199 -0
  175. package/lib/email-field/index.d.ts +152 -0
  176. package/lib/email-field/index.js +287 -0
  177. package/lib/email-field/themes/halo/dark/index.js +3 -0
  178. package/lib/email-field/themes/halo/light/index.js +3 -0
  179. package/lib/email-field/themes/solar/charcoal/index.js +3 -0
  180. package/lib/email-field/themes/solar/pearl/index.js +3 -0
  181. package/lib/events.d.ts +121 -0
  182. package/lib/events.js +2 -0
  183. package/lib/flag/custom-elements.json +35 -0
  184. package/lib/flag/index.d.ts +94 -0
  185. package/lib/flag/index.js +168 -0
  186. package/lib/flag/themes/halo/dark/index.js +2 -0
  187. package/lib/flag/themes/halo/light/index.js +2 -0
  188. package/lib/flag/themes/solar/charcoal/index.js +2 -0
  189. package/lib/flag/themes/solar/pearl/index.js +2 -0
  190. package/lib/flag/utils/FlagLoader.d.ts +47 -0
  191. package/lib/flag/utils/FlagLoader.js +86 -0
  192. package/lib/header/custom-elements.json +36 -0
  193. package/lib/header/index.d.ts +46 -0
  194. package/lib/header/index.js +76 -0
  195. package/lib/header/themes/halo/dark/index.js +2 -0
  196. package/lib/header/themes/halo/light/index.js +2 -0
  197. package/lib/header/themes/solar/charcoal/index.js +2 -0
  198. package/lib/header/themes/solar/pearl/index.js +2 -0
  199. package/lib/heatmap/custom-elements.json +151 -0
  200. package/lib/heatmap/helpers/color.d.ts +30 -0
  201. package/lib/heatmap/helpers/color.js +68 -0
  202. package/lib/heatmap/helpers/text.d.ts +26 -0
  203. package/lib/heatmap/helpers/text.js +91 -0
  204. package/lib/heatmap/helpers/track.d.ts +102 -0
  205. package/lib/heatmap/helpers/track.js +160 -0
  206. package/lib/heatmap/helpers/types.d.ts +40 -0
  207. package/lib/heatmap/helpers/types.js +1 -0
  208. package/lib/heatmap/index.d.ts +453 -0
  209. package/lib/heatmap/index.js +1104 -0
  210. package/lib/heatmap/themes/halo/dark/index.js +4 -0
  211. package/lib/heatmap/themes/halo/light/index.js +4 -0
  212. package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
  213. package/lib/heatmap/themes/solar/pearl/index.js +4 -0
  214. package/lib/icon/custom-elements.json +34 -0
  215. package/lib/icon/index.d.ts +87 -0
  216. package/lib/icon/index.js +161 -0
  217. package/lib/icon/themes/halo/dark/index.js +2 -0
  218. package/lib/icon/themes/halo/light/index.js +2 -0
  219. package/lib/icon/themes/solar/charcoal/index.js +2 -0
  220. package/lib/icon/themes/solar/pearl/index.js +2 -0
  221. package/lib/icon/utils/IconLoader.d.ts +47 -0
  222. package/lib/icon/utils/IconLoader.js +86 -0
  223. package/lib/index.d.ts +2 -0
  224. package/lib/index.js +2 -0
  225. package/lib/interactive-chart/custom-elements.json +86 -0
  226. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  227. package/lib/interactive-chart/helpers/merge.js +28 -0
  228. package/lib/interactive-chart/helpers/types.d.ts +45 -0
  229. package/lib/interactive-chart/helpers/types.js +6 -0
  230. package/lib/interactive-chart/index.d.ts +380 -0
  231. package/lib/interactive-chart/index.js +1093 -0
  232. package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
  233. package/lib/interactive-chart/themes/halo/light/index.js +3 -0
  234. package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
  235. package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
  236. package/lib/item/custom-elements.json +153 -0
  237. package/lib/item/helpers/types.d.ts +57 -0
  238. package/lib/item/helpers/types.js +1 -0
  239. package/lib/item/index.d.ts +149 -0
  240. package/lib/item/index.js +252 -0
  241. package/lib/item/themes/halo/dark/index.js +4 -0
  242. package/lib/item/themes/halo/light/index.js +4 -0
  243. package/lib/item/themes/solar/charcoal/index.js +4 -0
  244. package/lib/item/themes/solar/pearl/index.js +4 -0
  245. package/lib/jsx.d.ts +223 -0
  246. package/lib/label/custom-elements.json +52 -0
  247. package/lib/label/index.d.ts +102 -0
  248. package/lib/label/index.js +252 -0
  249. package/lib/label/themes/halo/dark/index.js +3 -0
  250. package/lib/label/themes/halo/light/index.js +3 -0
  251. package/lib/label/themes/solar/charcoal/index.js +3 -0
  252. package/lib/label/themes/solar/pearl/index.js +3 -0
  253. package/lib/layout/custom-elements.json +163 -0
  254. package/lib/layout/index.d.ts +107 -0
  255. package/lib/layout/index.js +215 -0
  256. package/lib/layout/themes/halo/dark/index.js +2 -0
  257. package/lib/layout/themes/halo/light/index.js +2 -0
  258. package/lib/layout/themes/solar/charcoal/index.js +2 -0
  259. package/lib/layout/themes/solar/pearl/index.js +2 -0
  260. package/lib/led-gauge/custom-elements.json +113 -0
  261. package/lib/led-gauge/index.d.ts +143 -0
  262. package/lib/led-gauge/index.js +440 -0
  263. package/lib/led-gauge/themes/halo/dark/index.js +3 -0
  264. package/lib/led-gauge/themes/halo/light/index.js +3 -0
  265. package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
  266. package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
  267. package/lib/list/custom-elements.json +111 -0
  268. package/lib/list/extensible-function.d.ts +8 -0
  269. package/lib/list/extensible-function.js +13 -0
  270. package/lib/list/helpers/list-renderer.d.ts +9 -0
  271. package/lib/list/helpers/list-renderer.js +35 -0
  272. package/lib/list/helpers/types.d.ts +3 -0
  273. package/lib/list/helpers/types.js +1 -0
  274. package/lib/list/index.d.ts +292 -0
  275. package/lib/list/index.js +604 -0
  276. package/lib/list/renderer.d.ts +36 -0
  277. package/lib/list/renderer.js +9 -0
  278. package/lib/list/themes/halo/dark/index.js +3 -0
  279. package/lib/list/themes/halo/light/index.js +3 -0
  280. package/lib/list/themes/solar/charcoal/index.js +3 -0
  281. package/lib/list/themes/solar/pearl/index.js +3 -0
  282. package/lib/loader/custom-elements.json +9 -0
  283. package/lib/loader/index.d.ts +41 -0
  284. package/lib/loader/index.js +65 -0
  285. package/lib/loader/themes/halo/dark/index.js +2 -0
  286. package/lib/loader/themes/halo/light/index.js +2 -0
  287. package/lib/loader/themes/solar/charcoal/index.js +2 -0
  288. package/lib/loader/themes/solar/pearl/index.js +2 -0
  289. package/lib/multi-input/custom-elements.json +238 -0
  290. package/lib/multi-input/helpers/types.d.ts +11 -0
  291. package/lib/multi-input/helpers/types.js +1 -0
  292. package/lib/multi-input/index.d.ts +297 -0
  293. package/lib/multi-input/index.js +591 -0
  294. package/lib/multi-input/themes/halo/dark/index.js +4 -0
  295. package/lib/multi-input/themes/halo/light/index.js +4 -0
  296. package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
  297. package/lib/multi-input/themes/solar/pearl/index.js +4 -0
  298. package/lib/notification/custom-elements.json +95 -0
  299. package/lib/notification/elements/notification-tray.d.ts +97 -0
  300. package/lib/notification/elements/notification-tray.js +170 -0
  301. package/lib/notification/elements/notification.d.ts +90 -0
  302. package/lib/notification/elements/notification.js +157 -0
  303. package/lib/notification/helpers/status.d.ts +30 -0
  304. package/lib/notification/helpers/status.js +130 -0
  305. package/lib/notification/helpers/types.d.ts +10 -0
  306. package/lib/notification/helpers/types.js +1 -0
  307. package/lib/notification/index.d.ts +2 -0
  308. package/lib/notification/index.js +2 -0
  309. package/lib/notification/themes/halo/dark/index.js +5 -0
  310. package/lib/notification/themes/halo/light/index.js +5 -0
  311. package/lib/notification/themes/solar/charcoal/index.js +5 -0
  312. package/lib/notification/themes/solar/pearl/index.js +5 -0
  313. package/lib/number-field/custom-elements.json +200 -0
  314. package/lib/number-field/index.d.ts +294 -0
  315. package/lib/number-field/index.js +708 -0
  316. package/lib/number-field/themes/halo/dark/index.js +3 -0
  317. package/lib/number-field/themes/halo/light/index.js +3 -0
  318. package/lib/number-field/themes/solar/charcoal/index.js +3 -0
  319. package/lib/number-field/themes/solar/pearl/index.js +3 -0
  320. package/lib/overlay/custom-elements.json +342 -0
  321. package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
  322. package/lib/overlay/elements/overlay-backdrop.js +67 -0
  323. package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
  324. package/lib/overlay/elements/overlay-viewport.js +56 -0
  325. package/lib/overlay/elements/overlay.d.ts +403 -0
  326. package/lib/overlay/elements/overlay.js +1427 -0
  327. package/lib/overlay/helpers/functions.d.ts +13 -0
  328. package/lib/overlay/helpers/functions.js +16 -0
  329. package/lib/overlay/helpers/types.d.ts +97 -0
  330. package/lib/overlay/helpers/types.js +16 -0
  331. package/lib/overlay/index.d.ts +2 -0
  332. package/lib/overlay/index.js +1 -0
  333. package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
  334. package/lib/overlay/managers/backdrop-manager.js +96 -0
  335. package/lib/overlay/managers/close-manager.d.ts +54 -0
  336. package/lib/overlay/managers/close-manager.js +138 -0
  337. package/lib/overlay/managers/focus-manager.d.ts +71 -0
  338. package/lib/overlay/managers/focus-manager.js +228 -0
  339. package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
  340. package/lib/overlay/managers/interaction-lock-manager.js +375 -0
  341. package/lib/overlay/managers/viewport-manager.d.ts +93 -0
  342. package/lib/overlay/managers/viewport-manager.js +207 -0
  343. package/lib/overlay/managers/zindex-manager.d.ts +80 -0
  344. package/lib/overlay/managers/zindex-manager.js +195 -0
  345. package/lib/overlay/themes/halo/dark/index.js +4 -0
  346. package/lib/overlay/themes/halo/light/index.js +4 -0
  347. package/lib/overlay/themes/solar/charcoal/index.js +4 -0
  348. package/lib/overlay/themes/solar/pearl/index.js +4 -0
  349. package/lib/overlay-menu/custom-elements.json +196 -0
  350. package/lib/overlay-menu/helpers/types.d.ts +8 -0
  351. package/lib/overlay-menu/helpers/types.js +1 -0
  352. package/lib/overlay-menu/helpers/uuid.d.ts +7 -0
  353. package/lib/overlay-menu/helpers/uuid.js +13 -0
  354. package/lib/overlay-menu/index.d.ts +380 -0
  355. package/lib/overlay-menu/index.js +921 -0
  356. package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
  357. package/lib/overlay-menu/managers/menu-manager.js +240 -0
  358. package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
  359. package/lib/overlay-menu/themes/halo/light/index.js +5 -0
  360. package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
  361. package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
  362. package/lib/pagination/custom-elements.json +93 -0
  363. package/lib/pagination/helpers/types.d.ts +9 -0
  364. package/lib/pagination/helpers/types.js +1 -0
  365. package/lib/pagination/index.d.ts +207 -0
  366. package/lib/pagination/index.js +400 -0
  367. package/lib/pagination/themes/halo/dark/index.js +6 -0
  368. package/lib/pagination/themes/halo/light/index.js +6 -0
  369. package/lib/pagination/themes/solar/charcoal/index.js +6 -0
  370. package/lib/pagination/themes/solar/pearl/index.js +6 -0
  371. package/lib/panel/custom-elements.json +39 -0
  372. package/lib/panel/index.d.ts +48 -0
  373. package/lib/panel/index.js +77 -0
  374. package/lib/panel/themes/halo/dark/index.js +2 -0
  375. package/lib/panel/themes/halo/light/index.js +2 -0
  376. package/lib/panel/themes/solar/charcoal/index.js +2 -0
  377. package/lib/panel/themes/solar/pearl/index.js +2 -0
  378. package/lib/password-field/custom-elements.json +156 -0
  379. package/lib/password-field/index.d.ts +140 -0
  380. package/lib/password-field/index.js +258 -0
  381. package/lib/password-field/themes/halo/dark/index.js +3 -0
  382. package/lib/password-field/themes/halo/light/index.js +3 -0
  383. package/lib/password-field/themes/solar/charcoal/index.js +3 -0
  384. package/lib/password-field/themes/solar/pearl/index.js +3 -0
  385. package/lib/pill/custom-elements.json +95 -0
  386. package/lib/pill/index.d.ts +97 -0
  387. package/lib/pill/index.js +162 -0
  388. package/lib/pill/themes/halo/dark/index.js +3 -0
  389. package/lib/pill/themes/halo/light/index.js +3 -0
  390. package/lib/pill/themes/solar/charcoal/index.js +3 -0
  391. package/lib/pill/themes/solar/pearl/index.js +3 -0
  392. package/lib/progress-bar/custom-elements.json +58 -0
  393. package/lib/progress-bar/index.d.ts +82 -0
  394. package/lib/progress-bar/index.js +159 -0
  395. package/lib/progress-bar/themes/halo/dark/index.js +2 -0
  396. package/lib/progress-bar/themes/halo/light/index.js +2 -0
  397. package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
  398. package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
  399. package/lib/radio-button/custom-elements.json +84 -0
  400. package/lib/radio-button/index.d.ts +106 -0
  401. package/lib/radio-button/index.js +195 -0
  402. package/lib/radio-button/radio-button-registry.d.ts +21 -0
  403. package/lib/radio-button/radio-button-registry.js +40 -0
  404. package/lib/radio-button/themes/halo/dark/index.js +3 -0
  405. package/lib/radio-button/themes/halo/light/index.js +3 -0
  406. package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
  407. package/lib/radio-button/themes/solar/pearl/index.js +3 -0
  408. package/lib/rating/custom-elements.json +58 -0
  409. package/lib/rating/index.d.ts +91 -0
  410. package/lib/rating/index.js +158 -0
  411. package/lib/rating/themes/halo/dark/index.js +2 -0
  412. package/lib/rating/themes/halo/light/index.js +2 -0
  413. package/lib/rating/themes/solar/charcoal/index.js +2 -0
  414. package/lib/rating/themes/solar/pearl/index.js +2 -0
  415. package/lib/search-field/custom-elements.json +173 -0
  416. package/lib/search-field/index.d.ts +134 -0
  417. package/lib/search-field/index.js +254 -0
  418. package/lib/search-field/themes/halo/dark/index.js +3 -0
  419. package/lib/search-field/themes/halo/light/index.js +3 -0
  420. package/lib/search-field/themes/solar/charcoal/index.js +3 -0
  421. package/lib/search-field/themes/solar/pearl/index.js +3 -0
  422. package/lib/select/custom-elements.json +103 -0
  423. package/lib/select/helpers/types.d.ts +3 -0
  424. package/lib/select/helpers/types.js +1 -0
  425. package/lib/select/index.d.ts +388 -0
  426. package/lib/select/index.js +942 -0
  427. package/lib/select/themes/halo/dark/index.js +5 -0
  428. package/lib/select/themes/halo/light/index.js +5 -0
  429. package/lib/select/themes/solar/charcoal/index.js +5 -0
  430. package/lib/select/themes/solar/pearl/index.js +5 -0
  431. package/lib/sidebar-layout/custom-elements.json +72 -0
  432. package/lib/sidebar-layout/index.d.ts +69 -0
  433. package/lib/sidebar-layout/index.js +135 -0
  434. package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
  435. package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
  436. package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
  437. package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
  438. package/lib/slider/custom-elements.json +181 -0
  439. package/lib/slider/index.d.ts +409 -0
  440. package/lib/slider/index.js +1188 -0
  441. package/lib/slider/themes/halo/dark/index.js +3 -0
  442. package/lib/slider/themes/halo/light/index.js +3 -0
  443. package/lib/slider/themes/solar/charcoal/index.js +3 -0
  444. package/lib/slider/themes/solar/pearl/index.js +3 -0
  445. package/lib/sparkline/custom-elements.json +59 -0
  446. package/lib/sparkline/index.d.ts +107 -0
  447. package/lib/sparkline/index.js +188 -0
  448. package/lib/sparkline/themes/halo/dark/index.js +2 -0
  449. package/lib/sparkline/themes/halo/light/index.js +2 -0
  450. package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
  451. package/lib/sparkline/themes/solar/pearl/index.js +2 -0
  452. package/lib/swing-gauge/const.d.ts +22 -0
  453. package/lib/swing-gauge/const.js +26 -0
  454. package/lib/swing-gauge/custom-elements.json +109 -0
  455. package/lib/swing-gauge/helpers.d.ts +8 -0
  456. package/lib/swing-gauge/helpers.js +105 -0
  457. package/lib/swing-gauge/index.d.ts +294 -0
  458. package/lib/swing-gauge/index.js +762 -0
  459. package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
  460. package/lib/swing-gauge/themes/halo/light/index.js +3 -0
  461. package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
  462. package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
  463. package/lib/swing-gauge/types.d.ts +34 -0
  464. package/lib/swing-gauge/types.js +1 -0
  465. package/lib/tab/custom-elements.json +123 -0
  466. package/lib/tab/index.d.ts +118 -0
  467. package/lib/tab/index.js +211 -0
  468. package/lib/tab/themes/halo/dark/index.js +4 -0
  469. package/lib/tab/themes/halo/light/index.js +4 -0
  470. package/lib/tab/themes/solar/charcoal/index.js +4 -0
  471. package/lib/tab/themes/solar/pearl/index.js +4 -0
  472. package/lib/tab-bar/custom-elements.json +52 -0
  473. package/lib/tab-bar/helpers/animate.d.ts +16 -0
  474. package/lib/tab-bar/helpers/animate.js +53 -0
  475. package/lib/tab-bar/index.d.ts +108 -0
  476. package/lib/tab-bar/index.js +220 -0
  477. package/lib/tab-bar/themes/halo/dark/index.js +4 -0
  478. package/lib/tab-bar/themes/halo/light/index.js +4 -0
  479. package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
  480. package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
  481. package/lib/text-field/custom-elements.json +210 -0
  482. package/lib/text-field/index.d.ts +171 -0
  483. package/lib/text-field/index.js +319 -0
  484. package/lib/text-field/themes/halo/dark/index.js +3 -0
  485. package/lib/text-field/themes/halo/light/index.js +3 -0
  486. package/lib/text-field/themes/solar/charcoal/index.js +3 -0
  487. package/lib/text-field/themes/solar/pearl/index.js +3 -0
  488. package/lib/time-picker/custom-elements.json +124 -0
  489. package/lib/time-picker/index.d.ts +379 -0
  490. package/lib/time-picker/index.js +777 -0
  491. package/lib/time-picker/themes/halo/dark/index.js +4 -0
  492. package/lib/time-picker/themes/halo/light/index.js +4 -0
  493. package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
  494. package/lib/time-picker/themes/solar/pearl/index.js +4 -0
  495. package/lib/toggle/custom-elements.json +84 -0
  496. package/lib/toggle/index.d.ts +77 -0
  497. package/lib/toggle/index.js +134 -0
  498. package/lib/toggle/themes/halo/dark/index.js +2 -0
  499. package/lib/toggle/themes/halo/light/index.js +2 -0
  500. package/lib/toggle/themes/solar/charcoal/index.js +2 -0
  501. package/lib/toggle/themes/solar/pearl/index.js +2 -0
  502. package/lib/tooltip/custom-elements.json +62 -0
  503. package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
  504. package/lib/tooltip/elements/title-tooltip.js +18 -0
  505. package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
  506. package/lib/tooltip/elements/tooltip-element.js +54 -0
  507. package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
  508. package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
  509. package/lib/tooltip/helpers/renderer.d.ts +8 -0
  510. package/lib/tooltip/helpers/renderer.js +11 -0
  511. package/lib/tooltip/helpers/types.d.ts +23 -0
  512. package/lib/tooltip/helpers/types.js +1 -0
  513. package/lib/tooltip/index.d.ts +232 -0
  514. package/lib/tooltip/index.js +479 -0
  515. package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
  516. package/lib/tooltip/managers/tooltip-manager.js +144 -0
  517. package/lib/tooltip/themes/halo/dark/index.js +3 -0
  518. package/lib/tooltip/themes/halo/light/index.js +3 -0
  519. package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
  520. package/lib/tooltip/themes/solar/pearl/index.js +3 -0
  521. package/lib/tornado-chart/custom-elements.json +45 -0
  522. package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
  523. package/lib/tornado-chart/elements/tornado-chart.js +125 -0
  524. package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
  525. package/lib/tornado-chart/elements/tornado-item.js +209 -0
  526. package/lib/tornado-chart/index.d.ts +2 -0
  527. package/lib/tornado-chart/index.js +2 -0
  528. package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
  529. package/lib/tornado-chart/themes/halo/light/index.js +6 -0
  530. package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
  531. package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
  532. package/lib/tree/custom-elements.json +100 -0
  533. package/lib/tree/elements/tree-item.d.ts +96 -0
  534. package/lib/tree/elements/tree-item.js +182 -0
  535. package/lib/tree/elements/tree.d.ts +156 -0
  536. package/lib/tree/elements/tree.js +286 -0
  537. package/lib/tree/helpers/renderer.d.ts +5 -0
  538. package/lib/tree/helpers/renderer.js +33 -0
  539. package/lib/tree/helpers/types.d.ts +17 -0
  540. package/lib/tree/helpers/types.js +1 -0
  541. package/lib/tree/index.d.ts +4 -0
  542. package/lib/tree/index.js +3 -0
  543. package/lib/tree/managers/tree-manager.d.ts +236 -0
  544. package/lib/tree/managers/tree-manager.js +379 -0
  545. package/lib/tree/themes/halo/dark/index.js +7 -0
  546. package/lib/tree/themes/halo/light/index.js +7 -0
  547. package/lib/tree/themes/solar/charcoal/index.js +7 -0
  548. package/lib/tree/themes/solar/pearl/index.js +7 -0
  549. package/lib/tree-select/custom-elements.json +107 -0
  550. package/lib/tree-select/helpers/types.d.ts +4 -0
  551. package/lib/tree-select/helpers/types.js +1 -0
  552. package/lib/tree-select/index.d.ts +400 -0
  553. package/lib/tree-select/index.js +881 -0
  554. package/lib/tree-select/themes/halo/dark/index.js +12 -0
  555. package/lib/tree-select/themes/halo/light/index.js +12 -0
  556. package/lib/tree-select/themes/solar/charcoal/index.js +12 -0
  557. package/lib/tree-select/themes/solar/pearl/index.js +12 -0
  558. package/package.json +9 -9
@@ -0,0 +1,1188 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, css, ControlElement, customElement, property, styleMap, query, WarningNotice } from '@refinitiv-ui/core';
8
+ import { VERSION } from '../';
9
+ import '../number-field';
10
+ var SliderNameType;
11
+ (function (SliderNameType) {
12
+ SliderNameType["value"] = "value";
13
+ SliderNameType["from"] = "from";
14
+ SliderNameType["to"] = "to";
15
+ })(SliderNameType || (SliderNameType = {}));
16
+ var PreviousSliderNameType;
17
+ (function (PreviousSliderNameType) {
18
+ PreviousSliderNameType["value"] = "valuePrevious";
19
+ PreviousSliderNameType["from"] = "fromPrevious";
20
+ PreviousSliderNameType["to"] = "toPrevious";
21
+ })(PreviousSliderNameType || (PreviousSliderNameType = {}));
22
+ var NumberFieldNameType;
23
+ (function (NumberFieldNameType) {
24
+ NumberFieldNameType["fromInput"] = "fromInput";
25
+ NumberFieldNameType["toInput"] = "toInput";
26
+ })(NumberFieldNameType || (NumberFieldNameType = {}));
27
+ /**
28
+ * Set prevent default action and stop bubbles event
29
+ * @private
30
+ * @param event event mouse or touch
31
+ * @returns {void}
32
+ */
33
+ const preventDefault = function (event) {
34
+ event.preventDefault();
35
+ event.stopPropagation();
36
+ return event;
37
+ };
38
+ /**
39
+ * Return value that never exceed the maximum boundary
40
+ * @private
41
+ * @param value value for check clamp
42
+ * @param min max value
43
+ * @param max min value
44
+ * @returns number between two numbers
45
+ */
46
+ const clamp = function (value, min, max) {
47
+ return Math.max(min, Math.min(value, max)).toString();
48
+ };
49
+ /**
50
+ * Allows users to make selections from a range of values
51
+ *
52
+ * @attr {string} value - Value of slider. Not applicable in range mode.
53
+ * @prop {string} [value=0] - Value of slider. Not applicable in range mode.
54
+ *
55
+ * @attr {boolean} readonly - Set readonly state
56
+ * @prop {boolean} [readonly=false] - Set readonly state
57
+ *
58
+ * @attr {boolean} disabled - Set disabled state
59
+ * @prop {boolean} [disabled=false] - Set disabled state
60
+ *
61
+ * @fires value-changed - Fired when the `value` changes.
62
+ * @fires from-changed - Fired when the `from` changes.
63
+ * @fires to-changed - Fired when the `to` changes.
64
+ */
65
+ let Slider = class Slider extends ControlElement {
66
+ constructor() {
67
+ super(...arguments);
68
+ this.dragging = false;
69
+ this.stepUse = 1;
70
+ this.decimalPlaces = 0;
71
+ this.dragElements = [];
72
+ this.isEventReady = false;
73
+ this.valuePrevious = '';
74
+ this.fromPrevious = '';
75
+ this.toPrevious = '';
76
+ /**
77
+ * Specified size of increment or decrement jump between value.
78
+ */
79
+ this.step = '1';
80
+ /**
81
+ * Set minimum value of slider.
82
+ */
83
+ this.min = '0';
84
+ /**
85
+ * Slider maximum value of slider.
86
+ */
87
+ this.max = '100';
88
+ /**
89
+ * Uses with `range`. Low value of slider in range mode.
90
+ */
91
+ this.from = '0';
92
+ /**
93
+ * Uses with `range`. High value of slider in range mode
94
+ */
95
+ this.to = '100';
96
+ /**
97
+ * Set slider appearances to show pin mode.
98
+ * @ignore
99
+ * NOTE: Pin isn't applicable in Halo. Hide this from document
100
+ */
101
+ this.pin = false;
102
+ /**
103
+ * Set slider to range mode. Instead of a single value, slider will provide `from` and `to`.
104
+ */
105
+ this.range = false;
106
+ /**
107
+ * Show steps marker on slider.
108
+ */
109
+ this.showSteps = false;
110
+ /**
111
+ * Show input number field.
112
+ */
113
+ this.showInputField = null;
114
+ /**
115
+ * Uses with `range`. Set minimum allowance value (distance) between `from` and `to`.
116
+ */
117
+ this.minRange = '0';
118
+ /**
119
+ * Input number event blur and notify property
120
+ * @param event event blur input number field
121
+ * @returns {void}
122
+ */
123
+ this.onBlur = (event) => {
124
+ if (this.readonly) {
125
+ return;
126
+ }
127
+ const { value, name } = event.target;
128
+ const currentData = name;
129
+ const perviousData = `${name}Previous`;
130
+ if (value && this[currentData] !== value) {
131
+ this.updateNotifyProperty(currentData, value);
132
+ this[perviousData] = value;
133
+ }
134
+ event.preventDefault();
135
+ };
136
+ /**
137
+ * Input number event keydown y
138
+ * @param event event keydown
139
+ * @returns {void}
140
+ */
141
+ this.onKeydown = (event) => {
142
+ if (this.readonly || this.disabled) {
143
+ return;
144
+ }
145
+ this.handleEnterKey(event);
146
+ };
147
+ /**
148
+ * Start dragging event on slider
149
+ * @param event event dragstart
150
+ * @returns {void}
151
+ */
152
+ this.onDragStart = (event) => {
153
+ this.dragging = true;
154
+ this.classList.add('grabbable');
155
+ if (this.range) {
156
+ const pct = this.getMousePosition(event);
157
+ const mousePos = ((this.maxNumber - this.minNumber) * pct) + this.minNumber;
158
+ const distFrom = Math.abs(mousePos - this.fromNumber);
159
+ const distTo = Math.abs(mousePos - this.toNumber);
160
+ if (distFrom < distTo) {
161
+ this.activeThumb = this.dragElements[0];
162
+ }
163
+ else if (distFrom > distTo) {
164
+ this.activeThumb = this.dragElements[1];
165
+ }
166
+ this.dragElements.forEach((el) => {
167
+ el.style.zIndex = '5';
168
+ });
169
+ this.activeThumb.style.zIndex = '10';
170
+ // Set focus to input when drag.
171
+ if (this.isShowInputField) {
172
+ this.toggleFocusField(this.activeThumb.getAttribute('name') || '', true);
173
+ }
174
+ }
175
+ else {
176
+ this.activeThumb = this.dragElements[0];
177
+ }
178
+ this.onDrag(event);
179
+ if (event.changedTouches) {
180
+ this.addEventListener('touchmove', this.onDrag);
181
+ this.addEventListener('touchend', this.onDragEnd);
182
+ }
183
+ else {
184
+ window.addEventListener('mousemove', this.onDrag);
185
+ window.addEventListener('mouseup', this.onDragEnd);
186
+ }
187
+ };
188
+ /**
189
+ * Dragging after on dragging start event
190
+ * @param event event mousemove and touchmove
191
+ * @returns {void}
192
+ */
193
+ this.onDrag = (event) => {
194
+ if (this.minNumber !== this.maxNumber) {
195
+ const thumbPos = this.getMousePosition(event);
196
+ const closestStep = this.calculateStep(thumbPos);
197
+ // Can be dragged slider when the value is valid
198
+ if (closestStep <= 1) {
199
+ const thumbLeft = this.stepUse !== 0 ? closestStep : thumbPos;
200
+ const calStepValue = this.calculateValue(thumbLeft);
201
+ const prettyVal = Number(this.displayValue(calStepValue));
202
+ if (this.range) {
203
+ if (this.activeThumb === this.dragElements[1]) {
204
+ this.to = this.validateTo(prettyVal).toString();
205
+ }
206
+ else {
207
+ this.from = this.validateFrom(prettyVal).toString();
208
+ }
209
+ }
210
+ else {
211
+ this.value = prettyVal.toString();
212
+ }
213
+ }
214
+ }
215
+ };
216
+ /**
217
+ * End dragging event and remove dragging event
218
+ * @param e event mouseup and touchmove
219
+ * @returns {void}
220
+ */
221
+ this.onDragEnd = (e) => {
222
+ if (this.dragging) {
223
+ this.dragging = false;
224
+ const event = e;
225
+ if (event.changedTouches) {
226
+ this.removeEventListener('touchmove', this.onDrag);
227
+ this.removeEventListener('touchend', this.onDragEnd);
228
+ }
229
+ else {
230
+ window.removeEventListener('mousemove', this.onDrag);
231
+ window.removeEventListener('mouseup', this.onDragEnd);
232
+ }
233
+ this.classList.remove('grabbable');
234
+ if (this.classList.length === 0) {
235
+ this.removeAttribute('class');
236
+ }
237
+ if (!event.changedTouches) {
238
+ event.preventDefault();
239
+ }
240
+ this.dispatchDataChangedEvent();
241
+ // Reset tab index of input that's drag.
242
+ if (this.isShowInputField) {
243
+ this.toggleFocusField(this.activeThumb.getAttribute('name') || '', false);
244
+ }
245
+ }
246
+ };
247
+ }
248
+ /**
249
+ * Element version number
250
+ * @returns version number
251
+ */
252
+ static get version() {
253
+ return VERSION;
254
+ }
255
+ /**
256
+ * Converts value from string to number for calculations
257
+ * @returns value of input as a number
258
+ */
259
+ get valueNumber() {
260
+ const value = parseFloat(this.value);
261
+ if (!this.value || isNaN(value)) {
262
+ return 0;
263
+ }
264
+ return value;
265
+ }
266
+ /**
267
+ * Converts min value from string to number for calculations
268
+ * @returns minimum value of slider as a number
269
+ */
270
+ get minNumber() {
271
+ const min = parseFloat(this.min);
272
+ if (!this.min || isNaN(min)) {
273
+ return 0;
274
+ }
275
+ return min;
276
+ }
277
+ /**
278
+ * Converts max value from string to number for calculations
279
+ * @returns maximum value of slider as a number
280
+ */
281
+ get maxNumber() {
282
+ const max = parseFloat(this.max);
283
+ if (!this.max || isNaN(max)) {
284
+ return 100;
285
+ }
286
+ return max;
287
+ }
288
+ /**
289
+ * Converts step value from string to number for calculations
290
+ * @returns step value of slider as a number
291
+ */
292
+ get stepNumber() {
293
+ const step = parseFloat(this.step);
294
+ if (!this.step || isNaN(step)) {
295
+ return 1;
296
+ }
297
+ return step;
298
+ }
299
+ /**
300
+ * Converts from value from string to number for calculations
301
+ * @returns from value of slider as a number
302
+ */
303
+ get fromNumber() {
304
+ const from = parseFloat(this.from);
305
+ if (!this.from || isNaN(from)) {
306
+ return this.minNumber;
307
+ }
308
+ return from;
309
+ }
310
+ /**
311
+ * Converts to value from string to number for calculations
312
+ * @returns to value of slider as a number
313
+ */
314
+ get toNumber() {
315
+ const to = parseFloat(this.to);
316
+ if (!this.to || isNaN(to)) {
317
+ return this.maxNumber;
318
+ }
319
+ return to;
320
+ }
321
+ /**
322
+ * Converts min-range from string to number for calculations
323
+ * @returns min-range of input as a number
324
+ */
325
+ get minRangeNumber() {
326
+ const minRange = parseFloat(this.minRange);
327
+ if (!this.minRange || isNaN(minRange)) {
328
+ return 0;
329
+ }
330
+ return minRange;
331
+ }
332
+ /**
333
+ * Return hide/show input field state
334
+ * @returns {boolean} true if showInputField value is exist
335
+ */
336
+ get isShowInputField() {
337
+ return this.showInputField !== null && this.showInputField !== undefined;
338
+ }
339
+ /**
340
+ * On first updated lifecycle
341
+ * @param changedProperties changed properties
342
+ * @returns {void}
343
+ */
344
+ firstUpdated(changedProperties) {
345
+ super.firstUpdated(changedProperties);
346
+ // initialize slider
347
+ void this.updateComplete.then(() => {
348
+ this.initializeProperty();
349
+ this.initSlider();
350
+ this.updateEventListeners();
351
+ });
352
+ }
353
+ /**
354
+ * On Update lifecycle
355
+ * @param changedProperties changed properties
356
+ * @returns {void}
357
+ */
358
+ update(changedProperties) {
359
+ super.update(changedProperties);
360
+ if (changedProperties.has('disabled') || changedProperties.has('readonly')) {
361
+ this.updateEventListeners();
362
+ }
363
+ changedProperties.forEach((oldValue, propName) => {
364
+ if (['value', 'min', 'max', 'from', 'to', 'step', 'minRange'].includes(propName)) {
365
+ this.showWarningInvalidProperty(propName);
366
+ }
367
+ });
368
+ }
369
+ /**
370
+ * @param changedProperties changed properties
371
+ * @returns {void}
372
+ */
373
+ updated(changedProperties) {
374
+ super.updated(changedProperties);
375
+ changedProperties.forEach((oldValue, propName) => {
376
+ if (propName === 'value') {
377
+ this.onValueChange();
378
+ }
379
+ else if (propName === 'min') {
380
+ this.onMinChange(oldValue);
381
+ }
382
+ else if (propName === 'max') {
383
+ this.onMaxChange(oldValue);
384
+ }
385
+ else if (propName === 'from' && this.range) {
386
+ this.onValueChangeFrom();
387
+ }
388
+ else if (propName === 'to' && this.range) {
389
+ this.onValueChangeTo();
390
+ }
391
+ else if (propName === 'step') {
392
+ this.onStepChange();
393
+ }
394
+ else if (propName === 'minRange') {
395
+ this.onMinRangeChange();
396
+ }
397
+ else if (propName === 'range') {
398
+ this.initializeProperty();
399
+ this.initSlider();
400
+ }
401
+ });
402
+ }
403
+ /**
404
+ * Show Warning a warning message invalid property
405
+ * @param propName value for checking
406
+ * @returns {void}
407
+ */
408
+ showWarningInvalidProperty(propName) {
409
+ let isValid = true;
410
+ let message = '';
411
+ if (propName === 'value') {
412
+ isValid = this.isValueInBoundary(this.valueNumber, '');
413
+ message = 'value should be between min and max.';
414
+ }
415
+ else if (propName === 'min') {
416
+ isValid = this.minNumber <= this.maxNumber;
417
+ message = 'value should be less than max.';
418
+ }
419
+ else if (propName === 'max') {
420
+ isValid = this.maxNumber >= this.minNumber;
421
+ message = 'value should be more than min.';
422
+ }
423
+ else if (propName === 'from' && this.range) {
424
+ isValid = (this.fromNumber >= this.minNumber && this.fromNumber <= this.toNumber);
425
+ message = 'value should be more than min and less than to.';
426
+ }
427
+ else if (propName === 'to' && this.range) {
428
+ isValid = (this.toNumber <= this.maxNumber && this.toNumber >= this.fromNumber);
429
+ message = 'value should be less than max and more than from.';
430
+ }
431
+ else if (propName === 'step') {
432
+ isValid = ((this.maxNumber - this.minNumber) >= this.stepNumber);
433
+ message = 'value should be between min and max.';
434
+ }
435
+ else if (propName === 'minRange' && this.minRangeNumber > 0) {
436
+ const distanceFromTo = Math.abs(this.toNumber - this.fromNumber);
437
+ const distanceMinMax = Math.abs(this.maxNumber - this.minNumber);
438
+ isValid = (distanceMinMax >= this.minRangeNumber && distanceFromTo >= this.minRangeNumber);
439
+ message = 'value should be less than distance from and to, min and max.';
440
+ }
441
+ if (!isValid) {
442
+ new WarningNotice(`${this.localName}: Invalid ${propName} provided, The correct ${propName} ${message}`).show();
443
+ }
444
+ }
445
+ /**
446
+ * Initialise class properties
447
+ * @returns {void}
448
+ */
449
+ initializeProperty() {
450
+ this.stepUse = this.calculateStepRange(this.stepNumber);
451
+ if (this.minNumber !== this.maxNumber) {
452
+ // init decimal places
453
+ this.updateDecimalPlaces();
454
+ if (this.range) {
455
+ this.activeThumb = this.dragElements[1];
456
+ if (this.minRangeNumber) {
457
+ const distanceFromTo = Math.abs(this.toNumber - this.fromNumber);
458
+ const clampValueFrom = this.toNumber - this.minRangeNumber;
459
+ if (this.minRangeNumber > distanceFromTo) {
460
+ if (clampValueFrom < this.minNumber) {
461
+ this.to = (this.fromNumber + this.minRangeNumber).toString();
462
+ }
463
+ else {
464
+ this.from = clampValueFrom.toString();
465
+ }
466
+ }
467
+ }
468
+ else {
469
+ this.from = clamp((this.fromNumber || this.minNumber), this.minNumber, this.toNumber);
470
+ this.to = clamp((this.toNumber || this.maxNumber), this.fromNumber, this.maxNumber);
471
+ }
472
+ }
473
+ else {
474
+ this.value = clamp(this.valueNumber, this.minNumber, this.maxNumber);
475
+ }
476
+ }
477
+ else if (this.range) {
478
+ this.from = this.min;
479
+ this.to = this.max;
480
+ }
481
+ else {
482
+ this.value = this.min;
483
+ }
484
+ // initial old value
485
+ this.valuePrevious = this.value;
486
+ this.toPrevious = this.to;
487
+ this.fromPrevious = this.from;
488
+ }
489
+ /**
490
+ * Initialise slider properties
491
+ * @returns {void}
492
+ */
493
+ initSlider() {
494
+ var _a;
495
+ this.dragElements = [];
496
+ if (this.range) {
497
+ (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('#thumbContainer').forEach((item) => {
498
+ this.dragElements.push(item);
499
+ });
500
+ }
501
+ else {
502
+ this.dragElements = [
503
+ this.thumbContainer
504
+ ];
505
+ }
506
+ this.activeThumb = this.dragElements[0];
507
+ this.dragElements.concat(this).forEach((el) => {
508
+ el.addEventListener('drag', preventDefault);
509
+ el.addEventListener('dragstart', preventDefault);
510
+ el.addEventListener('dragend', preventDefault);
511
+ });
512
+ this.isEventReady = true;
513
+ }
514
+ /**
515
+ * Calculate step in range
516
+ * @param step value step for calculate
517
+ * @returns step value that should be inside the min / max boundary
518
+ */
519
+ calculateStepRange(step) {
520
+ const newStep = Math.abs(step);
521
+ if (newStep > this.maxNumber - this.minNumber && !this.isDecimalNumber(newStep)) {
522
+ // new step shouldn't be larger than slider
523
+ return Math.abs(this.maxNumber - this.minNumber);
524
+ }
525
+ return newStep;
526
+ }
527
+ /**
528
+ * Check if step or min number is decimal
529
+ * If yes, set number of decimal places
530
+ * @returns {void}
531
+ */
532
+ updateDecimalPlaces() {
533
+ // Set decimal places when step or min have decimal
534
+ if (this.isDecimalNumber(this.stepUse) || this.isDecimalNumber(this.minNumber)) {
535
+ const stepUseDecimal = this.countDecimals(this.stepUse);
536
+ const minDecimal = this.countDecimals(this.minNumber);
537
+ this.decimalPlaces = stepUseDecimal > minDecimal ? stepUseDecimal : minDecimal;
538
+ }
539
+ else {
540
+ this.decimalPlaces = 0;
541
+ }
542
+ }
543
+ /**
544
+ * Count decimal number
545
+ * @param value value for checking
546
+ * @returns number of decimal points
547
+ */
548
+ countDecimals(value) {
549
+ var _a;
550
+ return ((_a = Number(value).toString().split('.')[1]) === null || _a === void 0 ? void 0 : _a.length) | 0;
551
+ }
552
+ /**
553
+ * Check if decimal number e.g. 10.5, etc
554
+ * @param value value for checking
555
+ * @returns true if value is decimal
556
+ */
557
+ isDecimalNumber(value) {
558
+ return value % 1 !== 0;
559
+ }
560
+ /**
561
+ * Calculate percentage by value
562
+ * @param value value to be calculated
563
+ * @returns percentage
564
+ */
565
+ calculatePercentage(value) {
566
+ const valuePercent = Math.abs((((value || 0) - this.minNumber) / (this.maxNumber - this.minNumber)) * 100);
567
+ if (valuePercent > 100) {
568
+ return 100;
569
+ }
570
+ else if (valuePercent < 0) {
571
+ return 0;
572
+ }
573
+ else {
574
+ return valuePercent;
575
+ }
576
+ }
577
+ /**
578
+ * Add and remove event listener when have disable and readonly properties
579
+ * @returns {void}
580
+ */
581
+ updateEventListeners() {
582
+ if (this.isEventReady) {
583
+ if (this.disabled || this.readonly) {
584
+ this.slider.removeEventListener('mousedown', this.onDragStart);
585
+ this.slider.removeEventListener('touchstart', this.onDragStart);
586
+ }
587
+ else {
588
+ this.slider.addEventListener('mousedown', this.onDragStart, { passive: true });
589
+ this.slider.addEventListener('touchstart', this.onDragStart, { passive: true });
590
+ }
591
+ }
592
+ }
593
+ /**
594
+ * Handles key press keyboard events
595
+ *
596
+ * @param event Event Object
597
+ * @returns {void}
598
+ */
599
+ handleEnterKey(event) {
600
+ if (event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') {
601
+ event.target.blur();
602
+ }
603
+ }
604
+ /**
605
+ * Update notify property by input name attribute
606
+ * @param name name input attribute
607
+ * @param value input value
608
+ * @returns {void}
609
+ */
610
+ updateNotifyProperty(name, value) {
611
+ let isUpdateValue = false;
612
+ const valueSanitize = Number(this.sanitizeNumber(Number(value), 0));
613
+ if (name === 'to') {
614
+ isUpdateValue = this.isValueInBoundary(valueSanitize, 'to');
615
+ }
616
+ else {
617
+ isUpdateValue = this.isValueInBoundary(valueSanitize, '');
618
+ }
619
+ if (isUpdateValue) {
620
+ (this[name]) = value;
621
+ this.notifyPropertyChange(name, value);
622
+ }
623
+ else {
624
+ const nameInput = `${name}Input`;
625
+ this[nameInput].value = this[name];
626
+ }
627
+ }
628
+ /**
629
+ * Dispatch data {value, from, to} changed event
630
+ * @returns {void}
631
+ */
632
+ dispatchDataChangedEvent() {
633
+ const name = this.activeThumb.getAttribute('name') || '';
634
+ const currentData = name;
635
+ const previousData = `${name}Previous`;
636
+ // Dispatch event only when value or from or to changed
637
+ if (this[previousData] !== this[currentData]) {
638
+ this.notifyPropertyChange(name, this[currentData]);
639
+ this[previousData] = this[currentData];
640
+ }
641
+ }
642
+ /**
643
+ * Set focus to input from state
644
+ * @param {String} name number field's name
645
+ * @param {Boolean} focusState state of focus
646
+ * @returns {void}
647
+ */
648
+ toggleFocusField(name, focusState) {
649
+ if (name) {
650
+ this[`${name}Input`].setAttribute('tabindex', `${focusState ? 1 : 0}`);
651
+ }
652
+ }
653
+ /**
654
+ * @param event event mousemove and touchmove
655
+ * @returns mouse position by percentage
656
+ */
657
+ getMousePosition(event) {
658
+ const sliderRect = this.trackWrapper.getBoundingClientRect();
659
+ // check drag desktop or mobile
660
+ const pageX = event.changedTouches ? event.changedTouches[0].pageX : event.pageX;
661
+ const positionSize = pageX - sliderRect.left;
662
+ if (positionSize <= sliderRect.width) {
663
+ return Math.min(Math.max((pageX - sliderRect.left) / sliderRect.width, 0), 1);
664
+ }
665
+ else {
666
+ return 1;
667
+ }
668
+ }
669
+ /**
670
+ * Handle 'from' value on drag out of boundary.
671
+ * @param value value from change
672
+ * @returns validated from value.
673
+ */
674
+ validateFrom(value) {
675
+ const valueFrom = value + this.minRangeNumber;
676
+ if (valueFrom < this.toNumber && valueFrom >= this.minNumber) {
677
+ return value;
678
+ }
679
+ else {
680
+ return this.toNumber - this.minRangeNumber;
681
+ }
682
+ }
683
+ /**
684
+ * Handle 'To' value on drag out of boundary.
685
+ * @param value value to change
686
+ * @returns validated to value.
687
+ */
688
+ validateTo(value) {
689
+ const valueTo = value - this.minRangeNumber;
690
+ if (valueTo > this.fromNumber && valueTo <= this.maxNumber) {
691
+ return value;
692
+ }
693
+ else {
694
+ return this.fromNumber + this.minRangeNumber;
695
+ }
696
+ }
697
+ /**
698
+ * Calculate the nearest interval
699
+ * @param thumbPosition thumb position dragging on slider
700
+ * @returns position step on slider
701
+ */
702
+ calculateStep(thumbPosition) {
703
+ const stepSize = this.calculatePercentage(this.minNumber + this.stepUse) / 100;
704
+ // calculate step to current point to next point
705
+ const posToFixStep = Math.round(thumbPosition / stepSize) * stepSize;
706
+ if (thumbPosition <= posToFixStep + (stepSize / 2)) {
707
+ if (posToFixStep <= 1) {
708
+ return posToFixStep;
709
+ }
710
+ else {
711
+ return posToFixStep - stepSize;
712
+ }
713
+ }
714
+ else {
715
+ return posToFixStep + stepSize;
716
+ }
717
+ }
718
+ /**
719
+ * Calculate value by percentage
720
+ * @param percentage percentage to be calculated
721
+ * @returns calculated value
722
+ */
723
+ calculateValue(percentage) {
724
+ const value = this.minNumber + percentage * (this.maxNumber - this.minNumber);
725
+ // if value is outside boundary, set to boundary
726
+ if (value >= this.maxNumber) {
727
+ return this.maxNumber;
728
+ }
729
+ else if (value <= this.minNumber) {
730
+ return this.minNumber;
731
+ }
732
+ else {
733
+ return value;
734
+ }
735
+ }
736
+ /**
737
+ * Format value to display in both integer and fraction cases
738
+ * @param value value before use display
739
+ * @returns formatted value
740
+ */
741
+ displayValue(value) {
742
+ if (this.isDecimalNumber(value)) {
743
+ const valueDecimalCount = this.countDecimals(value);
744
+ // return value decimal by a boundary of max decimal
745
+ if (valueDecimalCount > this.decimalPlaces) {
746
+ return value.toFixed(this.decimalPlaces);
747
+ }
748
+ else {
749
+ return value.toString();
750
+ }
751
+ }
752
+ else {
753
+ return value.toString();
754
+ }
755
+ }
756
+ /**
757
+ * Value observer
758
+ * @returns {void}
759
+ */
760
+ onValueChange() {
761
+ if (this.readonly) {
762
+ const valuePercent = this.calculatePercentage(Number(this.value)) / 100;
763
+ const closestStep = this.calculateStep(valuePercent);
764
+ const thumbLeft = this.stepUse !== 0 ? closestStep : valuePercent;
765
+ const calStepValue = this.calculateValue(thumbLeft);
766
+ this.value = this.displayValue(calStepValue);
767
+ }
768
+ else {
769
+ const valueSanitize = Number(this.sanitizeNumber(Number(this.value), 0));
770
+ if (this.isValueInBoundary(valueSanitize, '')) {
771
+ this.value = this.displayValue(valueSanitize);
772
+ }
773
+ else {
774
+ // if value is outside boundary, set to boundary
775
+ if (valueSanitize < this.minNumber) {
776
+ this.value = this.min;
777
+ }
778
+ if (valueSanitize > this.maxNumber) {
779
+ this.value = this.max;
780
+ }
781
+ }
782
+ }
783
+ }
784
+ /**
785
+ * From value observer
786
+ * @returns {void}
787
+ */
788
+ onValueChangeFrom() {
789
+ const valueFrom = Number(this.sanitizeNumber(this.fromNumber, 0));
790
+ if (this.isValueInBoundary(valueFrom, 'from')) {
791
+ this.from = this.displayValue(this.fromNumber);
792
+ }
793
+ else {
794
+ // if value is outside boundary, set to boundary
795
+ if (valueFrom < this.minNumber) {
796
+ this.from = this.min;
797
+ }
798
+ if (valueFrom > this.toNumber) {
799
+ this.from = this.to;
800
+ }
801
+ if (this.minRangeNumber) {
802
+ const distanceFromTo = Math.abs(this.toNumber - this.fromNumber);
803
+ const distanceMin = this.toNumber - this.minRangeNumber;
804
+ if (this.minRangeNumber > distanceFromTo && distanceMin > this.minNumber) {
805
+ this.from = distanceMin.toString();
806
+ }
807
+ }
808
+ }
809
+ }
810
+ /**
811
+ * Return fallback number of the value is invalid
812
+ * @param value value for checking
813
+ * @param fallbackValue fallback value when value is not number;
814
+ * @returns sanitized number
815
+ */
816
+ sanitizeNumber(value, fallbackValue) {
817
+ let val;
818
+ if (this.isNumberValue(value) && typeof value === 'number') {
819
+ val = value.toString();
820
+ }
821
+ else {
822
+ val = fallbackValue;
823
+ }
824
+ return val.toString();
825
+ }
826
+ /**
827
+ * Check if value is number
828
+ * @param value value for checking
829
+ * @returns true if value is numeric
830
+ */
831
+ isNumberValue(value) {
832
+ return !isNaN(value) && !isNaN(Number(value));
833
+ }
834
+ /**
835
+ * Check if value is inside min / max boundary
836
+ * @param value value is checking
837
+ * @param valueFor notation variable binding if range === true
838
+ * @returns true if value and step inside a boundary
839
+ */
840
+ isValueInBoundary(value, valueFor) {
841
+ if (this.minNumber < this.maxNumber) {
842
+ // Check if value is in range
843
+ if (this.range) {
844
+ if (valueFor === 'to') {
845
+ if (value < (this.fromNumber + this.minRangeNumber) || value > this.maxNumber) {
846
+ return false;
847
+ }
848
+ }
849
+ else if (value < this.minNumber || value > (this.toNumber - this.minRangeNumber)) {
850
+ return false;
851
+ }
852
+ }
853
+ else if (value < this.minNumber || value > this.maxNumber) {
854
+ return false;
855
+ }
856
+ // check step min and max in range
857
+ if (this.stepUse < this.minNumber || this.stepUse > this.maxNumber) {
858
+ return true;
859
+ }
860
+ }
861
+ return true;
862
+ }
863
+ /**
864
+ * To value observer
865
+ * @returns {void}
866
+ */
867
+ onValueChangeTo() {
868
+ const valueTo = Number(this.sanitizeNumber(this.toNumber, 0));
869
+ if (this.isValueInBoundary(valueTo, 'to')) {
870
+ this.to = this.displayValue(valueTo);
871
+ }
872
+ else {
873
+ // if value is outside boundary, set to boundary
874
+ if (valueTo < this.fromNumber) {
875
+ this.to = this.from;
876
+ }
877
+ if (valueTo > this.maxNumber) {
878
+ this.to = this.max;
879
+ }
880
+ if (this.minRangeNumber) {
881
+ const distanceFromTo = Math.abs(this.toNumber - this.fromNumber);
882
+ const distanceMax = this.fromNumber + this.minRangeNumber;
883
+ if (this.minRangeNumber > distanceFromTo && distanceMax < this.maxNumber) {
884
+ this.to = distanceMax.toString();
885
+ }
886
+ }
887
+ }
888
+ }
889
+ /**
890
+ * Step observer
891
+ * @returns {void}
892
+ */
893
+ onStepChange() {
894
+ this.step = this.sanitizeNumber(this.stepNumber, 1);
895
+ this.stepUse = this.calculateStepRange(this.stepNumber);
896
+ // Set decimal places value when step is decimal
897
+ this.updateDecimalPlaces();
898
+ }
899
+ /**
900
+ * Min range observer
901
+ * @returns {void}
902
+ */
903
+ onMinRangeChange() {
904
+ const valueMinRange = Math.abs(Number(this.sanitizeNumber(this.minRangeNumber, 0)));
905
+ const maximumRangeMinMax = Math.abs(this.maxNumber - this.minNumber);
906
+ const maximumRangeFromTo = Math.abs(this.toNumber - this.fromNumber);
907
+ if (valueMinRange && valueMinRange >= this.stepNumber) {
908
+ if (valueMinRange <= maximumRangeMinMax && valueMinRange <= maximumRangeFromTo) {
909
+ this.minRange = valueMinRange.toString();
910
+ }
911
+ else {
912
+ this.minRange = maximumRangeMinMax.toString();
913
+ this.from = this.min;
914
+ this.to = this.max;
915
+ }
916
+ }
917
+ else {
918
+ // Reset min-range when min-range less step
919
+ this.minRange = '0';
920
+ }
921
+ }
922
+ /**
923
+ * Min observer
924
+ * @param oldValue old value of min property
925
+ * @returns {void}
926
+ */
927
+ onMinChange(oldValue) {
928
+ this.min = this.sanitizeNumber(this.minNumber, 0);
929
+ // Set decimal places value when min is decimal
930
+ this.updateDecimalPlaces();
931
+ if (this.minNumber > this.maxNumber) {
932
+ this.min = this.max;
933
+ }
934
+ else if (this.range) {
935
+ if (this.minNumber <= this.toNumber - this.minRangeNumber) {
936
+ this.from = clamp(this.fromNumber, this.minNumber, this.toNumber);
937
+ }
938
+ else if (oldValue) {
939
+ this.min = oldValue;
940
+ }
941
+ }
942
+ else {
943
+ this.value = clamp(this.valueNumber, this.minNumber, this.maxNumber);
944
+ }
945
+ }
946
+ /**
947
+ * Max observer
948
+ * @param oldValue old value of max property
949
+ * @returns {void}
950
+ */
951
+ onMaxChange(oldValue) {
952
+ this.max = this.sanitizeNumber(this.maxNumber, 100);
953
+ if (this.maxNumber < this.minNumber) {
954
+ this.max = this.min;
955
+ }
956
+ else if (this.range) {
957
+ if (this.maxNumber >= this.fromNumber + this.minRangeNumber) {
958
+ this.to = clamp(this.toNumber, this.fromNumber, this.maxNumber);
959
+ }
960
+ else if (oldValue) {
961
+ this.max = oldValue;
962
+ }
963
+ }
964
+ else {
965
+ this.value = clamp(this.valueNumber, this.minNumber, this.maxNumber);
966
+ }
967
+ }
968
+ /**
969
+ * Implement `render` Track template.
970
+ * @param range show range slider
971
+ * @returns Track template
972
+ */
973
+ renderTrackWrapper(range) {
974
+ const stepContainerSize = this.calculatePercentage(this.minNumber + this.stepNumber);
975
+ const translateX = (stepContainerSize / 2);
976
+ const stepsStyle = { transform: `translateX(${translateX}%)`, backgroundSize: `${stepContainerSize}% 100%` };
977
+ const stepContainerStyle = { transform: `translateX(-${translateX}%)` };
978
+ const trackFillStyle = range
979
+ ? { width: `${this.calculatePercentage(this.toNumber) - this.calculatePercentage(this.fromNumber)}%`, left: `${this.calculatePercentage(this.fromNumber)}%` }
980
+ : { width: `${this.calculatePercentage(Number(this.value))}%` };
981
+ return html `
982
+ <div part="track-wrapper" id="trackWrapper">
983
+ <div part="track-fill" id="trackFill" style=${styleMap(trackFillStyle)}></div>
984
+ <div part="step-container" id="stepContainer" style=${styleMap(stepContainerStyle)}>
985
+ <div part="step" id="steps" style=${styleMap(stepsStyle)}></div>
986
+ </div>
987
+ </div>
988
+ `;
989
+ }
990
+ /**
991
+ * Implement `render` Thumb template.
992
+ * @param value thumb value in track
993
+ * @param percentageValue thumb position in track
994
+ * @param name name of active thumb
995
+ * @returns Track template
996
+ */
997
+ renderThumb(value, percentageValue, name) {
998
+ const thumbStyle = { left: `${percentageValue}%` };
999
+ return html `
1000
+ <div part="thumb-container" name=${name} id="thumbContainer" style=${styleMap(thumbStyle)}>
1001
+ <div part="pin">
1002
+ <span id="pinMarker" part="pin-value-marker">${value}</span></div>
1003
+ <div part="thumb" draggable="true" id="thumb"></div>
1004
+ </div>
1005
+ `;
1006
+ }
1007
+ /**
1008
+ * Implement `render` Thumb has range template.
1009
+ * @param from thumb value start in track
1010
+ * @param to thumb value end in track
1011
+ * @returns Thumb has range template
1012
+ */
1013
+ renderThumbRange(from, to) {
1014
+ const fromPercentageValue = this.calculatePercentage(from);
1015
+ const toPercentageValue = this.calculatePercentage(to);
1016
+ return html `
1017
+ ${this.renderThumb(from, fromPercentageValue, 'from')}
1018
+ ${this.renderThumb(to, toPercentageValue, 'to')}
1019
+ `;
1020
+ }
1021
+ /**
1022
+ * Implement `render` number field has template.
1023
+ * @param value value in the slider for binding in the input value
1024
+ * @param name name input value
1025
+ * @returns {TemplateResult} number field template
1026
+ */
1027
+ renderNumberField(value, name) {
1028
+ return html `
1029
+ <ef-number-field
1030
+ @blur=${this.onBlur}
1031
+ @keydown=${this.onKeydown}
1032
+ part="input"
1033
+ name="${name}"
1034
+ no-spinner
1035
+ .value="${value}"
1036
+ min="${this.min}"
1037
+ max="${this.max}"
1038
+ step="${this.step}"
1039
+ ?disabled="${this.disabled}"
1040
+ ?readonly="${this.readonly || this.showInputField === 'readonly'}"
1041
+ ></ef-number-field>
1042
+ `;
1043
+ }
1044
+ /**
1045
+ * Define styles in a tagged template literal, using the css tag function.
1046
+ * @returns CSS template
1047
+ */
1048
+ static get styles() {
1049
+ return css `
1050
+ :host {
1051
+ display: flex;
1052
+ }
1053
+ [part=slider-wrapper] {
1054
+ position: relative;
1055
+ width: 100%;
1056
+ }
1057
+ [part=slider] {
1058
+ width: 100%;
1059
+ height: 100%;
1060
+ display: inline-block;
1061
+ }
1062
+ :host(:not([disabled]):focus){
1063
+ outline:none;
1064
+ }
1065
+ :host([show-steps]) [part=track-wrapper]::after {
1066
+ display:block;
1067
+ position: absolute;
1068
+ content: "";
1069
+ right: 0;
1070
+ }
1071
+ [part=track-wrapper]{
1072
+ content: "";
1073
+ position: absolute;
1074
+ width: 100%;
1075
+ top: 50%;
1076
+ left: 0;
1077
+ pointer-events: none;
1078
+ }
1079
+ [part=thumb-container]{
1080
+ position: absolute;
1081
+ top: 0;
1082
+ width: 100%;
1083
+ z-index: 5;
1084
+ }
1085
+ [part=thumb]{
1086
+ position: absolute;
1087
+ margin: 0 auto;
1088
+ }
1089
+ [part=pin]{
1090
+ display: flex;
1091
+ position: absolute;
1092
+ align-items: center;
1093
+ justify-content: center;
1094
+ z-index: 1;
1095
+ }
1096
+ :host([show-steps]) [part=step-container]{
1097
+ position: absolute;
1098
+ left: 0;
1099
+ width: 100%;
1100
+ }
1101
+ :host([show-steps]) [part=step]{
1102
+ width: 100%;
1103
+ position: absolute;
1104
+ left: 0;
1105
+ }
1106
+ [part=track-fill]{
1107
+ z-index: 2;
1108
+ content: "";
1109
+ position: absolute;
1110
+ left: 0;
1111
+ }
1112
+ :host([show-steps][step="0"]) [part=track-wrapper]::after{
1113
+ width: 0;
1114
+ }
1115
+ `;
1116
+ }
1117
+ /**
1118
+ * Implement `render` slider template.
1119
+ * @returns Slider template
1120
+ */
1121
+ render() {
1122
+ return html `
1123
+ ${this.range && this.isShowInputField ? this.renderNumberField(this.from, 'from') : null}
1124
+ <div part="slider-wrapper">
1125
+ <div part="slider">
1126
+ ${this.renderTrackWrapper(this.range)}
1127
+ ${this.range ? this.renderThumbRange(this.fromNumber, this.toNumber) : this.renderThumb(this.valueNumber, this.calculatePercentage(Number(this.value)), 'value')}
1128
+ </div>
1129
+ </div>
1130
+ ${this.range && this.isShowInputField ? this.renderNumberField(this.to, 'to') : null}
1131
+ ${!this.range && this.isShowInputField ? this.renderNumberField(this.value, 'value') : null}
1132
+ `;
1133
+ }
1134
+ };
1135
+ __decorate([
1136
+ property({ type: String })
1137
+ ], Slider.prototype, "step", void 0);
1138
+ __decorate([
1139
+ property({ type: String })
1140
+ ], Slider.prototype, "min", void 0);
1141
+ __decorate([
1142
+ property({ type: String })
1143
+ ], Slider.prototype, "max", void 0);
1144
+ __decorate([
1145
+ property({ type: String })
1146
+ ], Slider.prototype, "from", void 0);
1147
+ __decorate([
1148
+ property({ type: String })
1149
+ ], Slider.prototype, "to", void 0);
1150
+ __decorate([
1151
+ property({ type: Boolean, reflect: true })
1152
+ ], Slider.prototype, "pin", void 0);
1153
+ __decorate([
1154
+ property({ type: Boolean, reflect: true })
1155
+ ], Slider.prototype, "range", void 0);
1156
+ __decorate([
1157
+ property({ type: Boolean, reflect: true, attribute: 'show-steps' })
1158
+ ], Slider.prototype, "showSteps", void 0);
1159
+ __decorate([
1160
+ property({ type: String, reflect: true, attribute: 'show-input-field' })
1161
+ ], Slider.prototype, "showInputField", void 0);
1162
+ __decorate([
1163
+ property({ type: String, attribute: 'min-range' })
1164
+ ], Slider.prototype, "minRange", void 0);
1165
+ __decorate([
1166
+ query('[part="slider"]')
1167
+ ], Slider.prototype, "slider", void 0);
1168
+ __decorate([
1169
+ query('#trackWrapper')
1170
+ ], Slider.prototype, "trackWrapper", void 0);
1171
+ __decorate([
1172
+ query('#thumbContainer')
1173
+ ], Slider.prototype, "thumbContainer", void 0);
1174
+ __decorate([
1175
+ query('ef-number-field[name=value]')
1176
+ ], Slider.prototype, "valueInput", void 0);
1177
+ __decorate([
1178
+ query('ef-number-field[name=from]')
1179
+ ], Slider.prototype, "fromInput", void 0);
1180
+ __decorate([
1181
+ query('ef-number-field[name=to]')
1182
+ ], Slider.prototype, "toInput", void 0);
1183
+ Slider = __decorate([
1184
+ customElement('ef-slider', {
1185
+ alias: 'coral-slider'
1186
+ })
1187
+ ], Slider);
1188
+ export { Slider };