@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,926 @@
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 { ControlElement, html, css, customElement, property, ifDefined, WarningNotice } from '@refinitiv-ui/core';
8
+ import '../button';
9
+ import { DateFormat, format, utcFormat, utcParse, isValidDate, isWeekend, isAfter, isBefore, addMonths, subMonths, isToday, isThisMonth, isThisYear, isSameDay, isSameMonth, isSameYear, toDateSegment } from '@refinitiv-ui/utils';
10
+ import { monthInfo } from './utils';
11
+ import './locales';
12
+ import { weekdaysNames, monthsNames, formatLocaleDate, ViewFormatTranslateParams } from './locales';
13
+ import { translate, getLocale, TranslatePropertyKey } from '@refinitiv-ui/translate';
14
+ import { RenderView } from './types';
15
+ import { VERSION } from '..';
16
+ const isIE = (/Trident/g).test(navigator.userAgent) || (/MSIE/g).test(navigator.userAgent);
17
+ const FIRST_DAY_OF_WEEK = 0; // 0 for Sunday
18
+ const YEARS_PER_YEAR_VIEW = 16; /* must be a square number */
19
+ const DAY_VIEW = {
20
+ rowCount: 6,
21
+ columnCount: 7,
22
+ totalCount: 6 * 7
23
+ };
24
+ const YEAR_VIEW = {
25
+ rowCount: 4,
26
+ columnCount: 4,
27
+ totalCount: 4 * 4
28
+ };
29
+ const MONTH_VIEW = {
30
+ rowCount: 4,
31
+ columnCount: 4,
32
+ totalCount: 4 * 4
33
+ };
34
+ /**
35
+ * Standard calendar element
36
+ *
37
+ * @fires value-changed - Fired when the `value` changes.
38
+ * @fires view-changed - Fired when the `view` changes.
39
+ *
40
+ * @attr {boolean} readonly - Set readonly state
41
+ * @prop {boolean} [readonly=false] - Set readonly state
42
+ *
43
+ * @attr {boolean} disabled - Set disabled state
44
+ * @prop {boolean} [disabled=false] - Set disabled state
45
+ *
46
+ * @slot footer - Adds slotted content into the footer of the calendar control
47
+ */
48
+ let Calendar = class Calendar extends ControlElement {
49
+ constructor() {
50
+ super(...arguments);
51
+ this._min = '';
52
+ this._max = '';
53
+ /**
54
+ * Only enable weekdays
55
+ */
56
+ this.weekdaysOnly = false;
57
+ /**
58
+ * Only enable weekends
59
+ */
60
+ this.weekendsOnly = false;
61
+ /**
62
+ * Custom filter, used for enabling/disabling certain dates
63
+ * @type {CalendarFilter | null}
64
+ */
65
+ this.filter = null;
66
+ this._view = '';
67
+ this.localFirstDayOfWeek = FIRST_DAY_OF_WEEK; // used from locales. 0 stands for Sunday
68
+ this._firstDayOfWeek = null; // used from setter
69
+ /**
70
+ * Set to switch to range select mode
71
+ */
72
+ this.range = false;
73
+ /**
74
+ * Set to switch to multiple select mode
75
+ */
76
+ this.multiple = false;
77
+ this._values = [];
78
+ /**
79
+ * Fill head and tail cell dates
80
+ */
81
+ this.fillCells = false;
82
+ /**
83
+ * Used for internal navigation between render views
84
+ */
85
+ this.renderView = RenderView.DAY;
86
+ this.isDateAvailable = null; /* a constructed filter based on multiple local filters */
87
+ }
88
+ /**
89
+ * Element version number
90
+ * @returns version number
91
+ */
92
+ static get version() {
93
+ return VERSION;
94
+ }
95
+ /**
96
+ * A `CSSResult` that will be used
97
+ * to style the host, slotted children
98
+ * and the internal template of the element.
99
+ * @return CSS template
100
+ */
101
+ static get styles() {
102
+ return css `
103
+ :host {
104
+ display: inline-block;
105
+ }
106
+ [part=navigation], [part=navigation] section {
107
+ display: flex;
108
+ flex-flow: row nowrap;
109
+ }
110
+ [part=navigation] {
111
+ justify-content: space-between;
112
+ }
113
+ [part=navigation] > div {
114
+ display: flex;
115
+ flex: 1;
116
+ justify-content: center;
117
+ }
118
+ [part~=cell-content] {
119
+ position: absolute;
120
+ top: 0;
121
+ bottom: 0;
122
+ left: 0;
123
+ right: 0;
124
+ pointer-events: none;
125
+ display: flex;
126
+ align-items: center;
127
+ justify-content: center;
128
+ }
129
+ [part=navigation] [part] {
130
+ flex: none;
131
+ }
132
+ [part=table] {
133
+ width: 100%;
134
+ }
135
+ [part~=row] {
136
+ display: flex;
137
+ width: 100%;
138
+ }
139
+ [part~=cell] {
140
+ position: relative;
141
+ }
142
+ [part~=cell][part~=year] {
143
+ width: calc(100% / ${YEAR_VIEW.columnCount});
144
+ padding-top: calc(100% / ${YEAR_VIEW.columnCount});
145
+ }
146
+ [part~=cell][part~=month] {
147
+ width: calc(100% / ${MONTH_VIEW.columnCount});
148
+ padding-top: calc(100% / ${MONTH_VIEW.columnCount});
149
+ }
150
+ [part~=cell][part~=day], [part~=cell][part~=day-name] {
151
+ width: calc(100% / ${DAY_VIEW.columnCount});
152
+ padding-top: calc(100% / ${DAY_VIEW.columnCount});
153
+ }
154
+ [part~=cell][tabindex] {
155
+ cursor: pointer;
156
+ }
157
+ `;
158
+ }
159
+ /**
160
+ * Set minimum date
161
+ * @param min min date
162
+ * @default -
163
+ */
164
+ set min(min) {
165
+ const oldMin = this._min;
166
+ if (!this.isValidValue(min)) {
167
+ this.warnInvalidValue(min);
168
+ min = '';
169
+ }
170
+ if (oldMin !== min) {
171
+ this._min = min;
172
+ void this.requestUpdate('min', oldMin);
173
+ }
174
+ }
175
+ get min() {
176
+ return this._min;
177
+ }
178
+ /**
179
+ * Set maximum date
180
+ * @param max max date
181
+ * @default -
182
+ */
183
+ set max(max) {
184
+ const oldMax = this._max;
185
+ if (!this.isValidValue(max)) {
186
+ this.warnInvalidValue(max);
187
+ max = '';
188
+ }
189
+ if (oldMax !== max) {
190
+ this._max = max;
191
+ void this.requestUpdate('max', oldMax);
192
+ }
193
+ }
194
+ get max() {
195
+ return this._max;
196
+ }
197
+ /**
198
+ * Current calendar view date
199
+ * @param view view date
200
+ * @default -
201
+ */
202
+ set view(view) {
203
+ if (view && !isValidDate(view, DateFormat.yyyyMM)) {
204
+ this.warnInvalidView(view);
205
+ view = '';
206
+ }
207
+ const oldView = this._view;
208
+ if (oldView !== view) {
209
+ this._view = view;
210
+ void this.requestUpdate('view', oldView);
211
+ }
212
+ }
213
+ get view() {
214
+ /* as soon as user interaction has happened, always rely on view */
215
+ return this._view || (this.value ? utcFormat(toDateSegment(this.value), DateFormat.yyyyMM) : format(new Date(), DateFormat.yyyyMM));
216
+ }
217
+ /**
218
+ * Set the first day of the week.
219
+ * 0 - for Sunday, 6 - for Saturday
220
+ * @param firstDayOfWeek The first day of the week
221
+ * @type {number | null}
222
+ */
223
+ set firstDayOfWeek(firstDayOfWeek) {
224
+ firstDayOfWeek %= 7;
225
+ const oldFirstDayOfWeek = this._firstDayOfWeek;
226
+ if (oldFirstDayOfWeek !== firstDayOfWeek) {
227
+ this._firstDayOfWeek = firstDayOfWeek;
228
+ void this.requestUpdate('firstDayOfWeek', oldFirstDayOfWeek);
229
+ }
230
+ }
231
+ get firstDayOfWeek() {
232
+ return this._firstDayOfWeek === null ? this.localFirstDayOfWeek : this._firstDayOfWeek;
233
+ }
234
+ /**
235
+ * Current date time value
236
+ * @param value Calendar value
237
+ * @default -
238
+ */
239
+ set value(value) {
240
+ this.values = [value];
241
+ }
242
+ get value() {
243
+ return this.values[0] || '';
244
+ }
245
+ /**
246
+ * Set multiple selected values
247
+ * @param values Values to set
248
+ * @type {string[]}
249
+ */
250
+ set values(values) {
251
+ const oldValues = this._values;
252
+ const newValues = this.filterAndWarnInvalidValues(values);
253
+ if (oldValues.toString() !== newValues.toString()) {
254
+ this._values = newValues;
255
+ void this.requestUpdate('values', oldValues);
256
+ }
257
+ }
258
+ get values() {
259
+ return this._values.concat();
260
+ }
261
+ /**
262
+ * Get weekday numbers.
263
+ * Sort the list based on first day of the week
264
+ */
265
+ get weekdaysNames() {
266
+ const firstDayOfWeek = this.firstDayOfWeek;
267
+ const localWeekdaysNames = this.localWeekdaysNames;
268
+ return localWeekdaysNames.slice(firstDayOfWeek).concat(localWeekdaysNames.slice(0, firstDayOfWeek));
269
+ }
270
+ /**
271
+ * Get localised month names from January to December
272
+ */
273
+ get monthsNames() {
274
+ return this.localMonthsNames;
275
+ }
276
+ /**
277
+ * Perform asynchronous update
278
+ * @returns promise
279
+ */
280
+ async performUpdate() {
281
+ const localFirstDayOfWeek = Number(await this.tPromise('FIRST_DAY_OF_WEEK'));
282
+ this.localFirstDayOfWeek = isNaN(localFirstDayOfWeek) ? FIRST_DAY_OF_WEEK : (localFirstDayOfWeek % 7);
283
+ void super.performUpdate();
284
+ }
285
+ /**
286
+ * Updates the element
287
+ * @param changedProperties Properties that has changed
288
+ * @returns {void}
289
+ */
290
+ update(changedProperties) {
291
+ if (!this.localMonthsNames || changedProperties.has(TranslatePropertyKey)) {
292
+ this.localMonthsNames = monthsNames(getLocale(this));
293
+ }
294
+ if (!this.localWeekdaysNames || changedProperties.has(TranslatePropertyKey)) {
295
+ this.localWeekdaysNames = weekdaysNames(getLocale(this));
296
+ }
297
+ this.shouldConstructFilters(changedProperties) && this.constructFilters();
298
+ super.update(changedProperties);
299
+ }
300
+ /**
301
+ * Run when an element has been first updated
302
+ * @param changedProperties properties that was changed on first update
303
+ * @returns {void}
304
+ */
305
+ firstUpdated(changedProperties) {
306
+ super.firstUpdated(changedProperties);
307
+ this.renderRoot.addEventListener('keydown', event => this.onTableKeyDown(event));
308
+ }
309
+ /**
310
+ * Show invalid view message
311
+ * @param value Invalid value
312
+ * @returns {void}
313
+ */
314
+ warnInvalidView(value) {
315
+ new WarningNotice(`The specified value "${value}" does not conform to the required format. The format is "yyyy-MM".`).once();
316
+ }
317
+ /**
318
+ * Show invalid value message
319
+ * @param value Invalid value
320
+ * @returns {void}
321
+ */
322
+ warnInvalidValue(value) {
323
+ new WarningNotice(`The specified value "${value}" does not conform to the required format. The format is "yyyy-MM-dd".`).once();
324
+ }
325
+ /**
326
+ * Validate that the value confirms the control type
327
+ * @param value Value to check
328
+ * @returns false if value is invalid
329
+ */
330
+ isValidValue(value) {
331
+ return value === '' || isValidDate(value);
332
+ }
333
+ /**
334
+ * A helper method to make sure that only valid values are passed
335
+ * Warn if passed value is invalid
336
+ * @param values Values to check
337
+ * @returns Filtered collection of values
338
+ */
339
+ filterAndWarnInvalidValues(values) {
340
+ const filtered = [];
341
+ values.forEach(value => {
342
+ if (this.isValidValue(value)) {
343
+ value && filtered.push(value);
344
+ }
345
+ else {
346
+ this.warnInvalidValue(value);
347
+ }
348
+ });
349
+ return filtered;
350
+ }
351
+ /**
352
+ * Check if there is a need to reconstruct filters
353
+ * @param changedProperties properties that was changed on first update
354
+ * @returns true if filter needs to be constructed
355
+ */
356
+ shouldConstructFilters(changedProperties) {
357
+ return changedProperties.has('min')
358
+ || changedProperties.has('max')
359
+ || changedProperties.has('weekdaysOnly')
360
+ || changedProperties.has('weekendsOnly')
361
+ || changedProperties.has('filter');
362
+ }
363
+ /**
364
+ * Construct and store a collection of filters
365
+ * First always comes default filters and last custom filters
366
+ * @returns {void}
367
+ */
368
+ constructFilters() {
369
+ const filters = [];
370
+ this.min && filters.push(date => isSameDay(date, this.min) || isAfter(date, this.min));
371
+ this.max && filters.push(date => isSameDay(date, this.max) || isBefore(date, this.max));
372
+ if (this.weekdaysOnly) {
373
+ filters.push(date => !isWeekend(date));
374
+ }
375
+ if (this.weekendsOnly) {
376
+ filters.push(date => isWeekend(date));
377
+ }
378
+ if (this.filter) {
379
+ filters.push(this.filter);
380
+ }
381
+ const filtersLength = filters.length;
382
+ if (filtersLength) {
383
+ this.isDateAvailable = (value) => {
384
+ for (let i = 0; i < filtersLength; i += 1) {
385
+ if (!filters[i](value)) {
386
+ return false;
387
+ }
388
+ }
389
+ return true;
390
+ };
391
+ }
392
+ else {
393
+ this.isDateAvailable = null;
394
+ }
395
+ }
396
+ /**
397
+ * Check if date cell is selected
398
+ * @param value A value to compare
399
+ * @param comparator A comparator to check for selection. Can be day, month or year
400
+ * @returns true if cell is selected
401
+ */
402
+ isDateCellSelected(value, comparator) {
403
+ const values = this._values;
404
+ const valuesLength = values.length;
405
+ for (let i = 0; i < valuesLength; i += 1) {
406
+ if (comparator(value, values[i])) {
407
+ return true;
408
+ }
409
+ }
410
+ return false;
411
+ }
412
+ /**
413
+ * Get cell selection model, which is used to bind values and ranges
414
+ * to cell styles
415
+ * @param value A value to compare
416
+ * @param comparator A comparator to check for selection. Can be day, month or year
417
+ * @returns cell selection model
418
+ */
419
+ getCellSelection(value, comparator) {
420
+ const values = this._values;
421
+ const selected = this.isDateCellSelected(value, comparator);
422
+ const from = values[0];
423
+ const to = values[1];
424
+ if (!this.range || !from || !to) {
425
+ return {
426
+ selected
427
+ };
428
+ }
429
+ const rangeFrom = comparator(value, from);
430
+ const rangeTo = comparator(value, to);
431
+ const range = !rangeFrom && !rangeTo && isAfter(value, from) && isBefore(value, to);
432
+ return {
433
+ selected,
434
+ range,
435
+ rangeFrom,
436
+ rangeTo
437
+ };
438
+ }
439
+ /**
440
+ * Run when next button is tapped.
441
+ * Change current view to next view
442
+ * @returns {void}
443
+ */
444
+ onNextTap() {
445
+ let viewSegment = toDateSegment(this.view);
446
+ switch (this.renderView) {
447
+ case RenderView.DAY:
448
+ viewSegment = toDateSegment(addMonths(this.view, 1));
449
+ break;
450
+ case RenderView.MONTH:
451
+ viewSegment.year += 1;
452
+ break;
453
+ case RenderView.YEAR:
454
+ viewSegment.year += YEARS_PER_YEAR_VIEW;
455
+ break;
456
+ // no default
457
+ }
458
+ this.notifyViewChange(viewSegment);
459
+ }
460
+ /**
461
+ * Run when previous button is tapped.
462
+ * Change current view to previous view
463
+ * @returns {void}
464
+ */
465
+ onPreviousTap() {
466
+ let viewSegment = toDateSegment(this.view);
467
+ switch (this.renderView) {
468
+ case RenderView.DAY:
469
+ viewSegment = toDateSegment(subMonths(this.view, 1));
470
+ break;
471
+ case RenderView.MONTH:
472
+ viewSegment.year -= 1;
473
+ break;
474
+ case RenderView.YEAR:
475
+ viewSegment.year -= YEARS_PER_YEAR_VIEW;
476
+ break;
477
+ // no default
478
+ }
479
+ this.notifyViewChange(viewSegment);
480
+ }
481
+ /**
482
+ * Run when change view button is tapped.
483
+ * Switch between views
484
+ * @returns {void}
485
+ */
486
+ onRenderViewTap() {
487
+ this.renderView = this.renderView === RenderView.DAY ? RenderView.YEAR : RenderView.DAY;
488
+ }
489
+ /**
490
+ * Run when key down event happens on calendar
491
+ * @param event Keyboard event
492
+ * @returns {void}
493
+ */
494
+ onTableKeyDown(event) {
495
+ switch (event.key) {
496
+ case ' ':
497
+ case 'Enter':
498
+ case 'Spacebar':
499
+ event.preventDefault();
500
+ this.onTableTap(event);
501
+ break;
502
+ case 'Esc':
503
+ case 'Escape':
504
+ if (this.renderView === RenderView.YEAR || this.renderView === RenderView.MONTH) {
505
+ event.preventDefault();
506
+ this.renderView = RenderView.DAY;
507
+ }
508
+ break;
509
+ // no default
510
+ }
511
+ }
512
+ /**
513
+ * Run when tap event happens ot table.
514
+ * Select the values or switch the view
515
+ * @param event Tap event
516
+ * @returns {void}
517
+ */
518
+ onTableTap(event) {
519
+ const cell = event.target; /* here we just emulate interface */
520
+ if (!cell || !cell.value) {
521
+ return;
522
+ }
523
+ const cellSegment = toDateSegment(cell.value);
524
+ const viewSegment = toDateSegment(this.view);
525
+ if (this.renderView === RenderView.YEAR) { /* YEAR -> MONTH */
526
+ viewSegment.year = cellSegment.year;
527
+ if (this.notifyViewChange(viewSegment)) {
528
+ this.renderView = RenderView.MONTH;
529
+ }
530
+ return;
531
+ }
532
+ if (this.renderView === RenderView.MONTH) { /* MONTH -> DAY */
533
+ viewSegment.year = cellSegment.year;
534
+ viewSegment.month = cellSegment.month;
535
+ if (this.notifyViewChange(viewSegment)) {
536
+ this.renderView = RenderView.DAY;
537
+ }
538
+ return;
539
+ }
540
+ this.onTapSelectValue(cell.value);
541
+ }
542
+ /**
543
+ * Run when tap event happened on DAY view and the cell has the values
544
+ * Try to select/deselect cell value
545
+ * @param value Date string
546
+ * @returns {void}
547
+ */
548
+ onTapSelectValue(value) {
549
+ if (this.readonly || this.disabled) {
550
+ return;
551
+ }
552
+ let values;
553
+ if (this.multiple) {
554
+ values = this.values.filter(oldValue => {
555
+ return oldValue !== value;
556
+ });
557
+ if (this.values.length === values.length) {
558
+ values.push(value);
559
+ }
560
+ }
561
+ else if (this.range) {
562
+ if (!this.values.length) {
563
+ values = [value];
564
+ }
565
+ else if (this.values.length === 1) { /* from is populated */
566
+ const from = this.values[0];
567
+ const to = value;
568
+ if (isAfter(to, from) || isSameDay(to, from)) {
569
+ values = [this.values[0], value];
570
+ }
571
+ else {
572
+ values = [value];
573
+ }
574
+ }
575
+ else {
576
+ values = [value];
577
+ }
578
+ }
579
+ else {
580
+ values = [value];
581
+ }
582
+ this.notifyValuesChange(values);
583
+ }
584
+ /**
585
+ * Notify that values array has been changed
586
+ * @param values A collection of string dates
587
+ * @returns {void}
588
+ */
589
+ notifyValuesChange(values) {
590
+ if (this.values.toString() !== values.toString()) {
591
+ this.values = values;
592
+ this.notifyPropertyChange('value', this.value);
593
+ }
594
+ }
595
+ /**
596
+ * Notify that view has been changed
597
+ * @param view Date
598
+ * @returns {void}
599
+ */
600
+ notifyViewChange(view) {
601
+ const viewString = utcFormat(view, DateFormat.yyyyMM);
602
+ const res = this.notifyPropertyChange('view', viewString, true);
603
+ if (res) {
604
+ this.view = viewString;
605
+ }
606
+ return res;
607
+ }
608
+ /**
609
+ * Localised format for render view
610
+ * @param segment Segment object
611
+ * @param includeMonth True to include a month
612
+ * @returns template result
613
+ */
614
+ viewFormattedDate(segment, includeMonth = false) {
615
+ const year = segment.year;
616
+ const isBC = year <= 0;
617
+ const includeEra = isBC;
618
+ const date = utcParse(segment);
619
+ // Unfortunately IE11 does not support date formatting for year <= 0
620
+ // Do manual conversion instead
621
+ if (isIE && isBC) {
622
+ return html `${formatLocaleDate(date, getLocale(this), includeMonth, includeEra)}`;
623
+ }
624
+ return html `${this.t('VIEW_FORMAT', {
625
+ date,
626
+ includeMonth,
627
+ includeEra
628
+ }, ViewFormatTranslateParams)}`;
629
+ }
630
+ /**
631
+ * Get a string representation of current view
632
+ * @returns template result
633
+ */
634
+ get formattedViewRender() {
635
+ const segment = toDateSegment(this.view);
636
+ switch (this.renderView) {
637
+ case RenderView.MONTH:
638
+ return this.viewFormattedDate(segment);
639
+ case RenderView.YEAR:
640
+ const month = segment.month;
641
+ const day = segment.day;
642
+ const fromYear = Math.floor(segment.year / YEARS_PER_YEAR_VIEW) * YEARS_PER_YEAR_VIEW;
643
+ const toYear = fromYear + YEARS_PER_YEAR_VIEW - 1;
644
+ return html `${this.viewFormattedDate({ year: fromYear, month, day })} - ${this.viewFormattedDate({ year: toYear, month, day })}`;
645
+ case RenderView.DAY:
646
+ default:
647
+ return this.viewFormattedDate(segment, true);
648
+ }
649
+ }
650
+ /**
651
+ * Render cell content template.
652
+ * If the cell is selectable (aka has value) add selection part
653
+ * @param text Text to render
654
+ * @param selectable True if cell may be selected
655
+ * @returns template result
656
+ */
657
+ renderContentBox(text = '', selectable = false) {
658
+ return html `<div part="cell-content${selectable ? ' selection' : ''}">${text}</div>`;
659
+ }
660
+ /**
661
+ * Get year view template
662
+ */
663
+ get yearView() {
664
+ const view = RenderView.YEAR;
665
+ const currentYear = toDateSegment(this.view).year;
666
+ const startIdx = Math.floor(currentYear / YEARS_PER_YEAR_VIEW) * YEARS_PER_YEAR_VIEW;
667
+ const years = [];
668
+ const rows = [];
669
+ let cells = [];
670
+ let cell;
671
+ for (let i = 0; i < YEAR_VIEW.totalCount; i += 1) {
672
+ if (i % YEAR_VIEW.columnCount === 0) {
673
+ cells = [];
674
+ rows.push({
675
+ cells
676
+ });
677
+ }
678
+ const year = startIdx + i;
679
+ const value = utcFormat({ year, month: 0, day: 1 }, DateFormat.yyyyMMdd);
680
+ cell = Object.assign({ view, text: year > 0 ? `${year}` : year === 0 ? '1' : `${Math.abs(year - 1)}`, value: `${year}`, now: isThisYear(value) }, this.getCellSelection(value, isSameYear));
681
+ cells.push(cell);
682
+ years.push(cell);
683
+ }
684
+ years[0].firstDate = true;
685
+ years[years.length - 1].lastDate = true;
686
+ return html `${this.renderRows(rows)}`;
687
+ }
688
+ /**
689
+ * Get month view template
690
+ */
691
+ get monthView() {
692
+ const view = RenderView.MONTH;
693
+ const currentYear = toDateSegment(this.view).year;
694
+ const columnCount = MONTH_VIEW.columnCount;
695
+ const monthCount = 12;
696
+ const totalCount = MONTH_VIEW.totalCount;
697
+ const monthsNames = this.monthsNames;
698
+ const before = (totalCount - monthCount) / 2;
699
+ const startIdx = monthCount - before % monthCount;
700
+ const after = before + monthCount;
701
+ const months = [];
702
+ const rows = [];
703
+ let cell;
704
+ let cells = [];
705
+ for (let i = 0; i < totalCount; i += 1) {
706
+ if (i % columnCount === 0) {
707
+ cells = [];
708
+ rows.push({
709
+ cells
710
+ });
711
+ }
712
+ const month = (startIdx + i) % monthCount; /* 0 for Jan, 11 for Dev */
713
+ const year = currentYear + Math.floor((i - before) / monthCount);
714
+ const segment = { year, month, day: 1 };
715
+ const value = utcFormat(segment, DateFormat.yyyyMMdd);
716
+ const idle = i < before || i >= after;
717
+ cell = Object.assign({ view, text: monthsNames[month], value: utcFormat(segment, DateFormat.yyyyMM), idle, now: isThisMonth(value) }, this.getCellSelection(value, isSameMonth));
718
+ cells.push(cell);
719
+ months.push(cell);
720
+ }
721
+ months[0].firstDate = true;
722
+ months[months.length - 1].lastDate = true;
723
+ return html `${this.renderRows(rows)}`;
724
+ }
725
+ /**
726
+ * Get day view template
727
+ */
728
+ get dayView() {
729
+ const view = RenderView.DAY;
730
+ const firstDayOfWeek = this.firstDayOfWeek;
731
+ const padding = (7 + utcParse(this.view).getUTCDay() - firstDayOfWeek) % 7;
732
+ const viewMonth = monthInfo(this.view);
733
+ const prevMonth = monthInfo(subMonths(this.view, 1));
734
+ const nextMonth = monthInfo(addMonths(this.view, 1));
735
+ const days = [];
736
+ const rows = [];
737
+ let cells = [];
738
+ let day;
739
+ let month;
740
+ let year;
741
+ // Generate new cells.
742
+ for (let i = 0; i < DAY_VIEW.totalCount; i += 1) {
743
+ if (i % DAY_VIEW.columnCount === 0) {
744
+ cells = [];
745
+ rows.push({
746
+ cells
747
+ });
748
+ }
749
+ const datePadding = i - padding + 1;
750
+ if (datePadding <= 0) {
751
+ if (!this.fillCells) {
752
+ cells.push({
753
+ view
754
+ });
755
+ continue;
756
+ }
757
+ day = prevMonth.days + datePadding;
758
+ month = prevMonth.month;
759
+ year = prevMonth.year;
760
+ }
761
+ else if (datePadding > viewMonth.days) {
762
+ if (!this.fillCells) {
763
+ cells.push({
764
+ view
765
+ });
766
+ continue;
767
+ }
768
+ day = datePadding - viewMonth.days;
769
+ month = nextMonth.month;
770
+ year = nextMonth.year;
771
+ }
772
+ else {
773
+ day = datePadding;
774
+ month = viewMonth.month;
775
+ year = viewMonth.year;
776
+ }
777
+ const value = utcFormat({ year, month, day }, DateFormat.yyyyMMdd);
778
+ const disabled = this.isDateAvailable ? !this.isDateAvailable(value) : false;
779
+ const dayCell = Object.assign({ view, text: day.toString(), value,
780
+ disabled, idle: month !== viewMonth.month || year !== viewMonth.year, now: isToday(value) }, this.getCellSelection(value, isSameDay));
781
+ cells.push(dayCell);
782
+ days.push(dayCell);
783
+ }
784
+ days[0].firstDate = true;
785
+ days[days.length - 1].lastDate = true;
786
+ return html `
787
+ ${this.renderWeekdayNames}
788
+ ${this.renderRows(rows)}
789
+ `;
790
+ }
791
+ /**
792
+ * Get weekday names template
793
+ */
794
+ get renderWeekdayNames() {
795
+ return html `
796
+ <div part="row day-name-row">${this.weekdaysNames.map(day => html `<div part="cell day-name">${this.renderContentBox(day)}</div>`)}</div>
797
+ `;
798
+ }
799
+ /**
800
+ * Render a view based on the current render view
801
+ */
802
+ get viewRender() {
803
+ switch (this.renderView) {
804
+ case RenderView.MONTH:
805
+ return this.monthView;
806
+ case RenderView.YEAR:
807
+ return this.yearView;
808
+ case RenderView.DAY:
809
+ default:
810
+ return this.dayView;
811
+ }
812
+ }
813
+ /**
814
+ * Render cell template. Cell can be a day, month or year
815
+ * @param cell Cell object
816
+ * @returns template result
817
+ */
818
+ renderCell(cell) {
819
+ return html `<div
820
+ part="cell ${cell.view}"
821
+ ?disabled=${cell.disabled}
822
+ .value=${cell.value}
823
+ ?idle=${cell.idle}
824
+ ?today=${cell.now}
825
+ ?first-date=${cell.firstDate}
826
+ ?last-date=${cell.lastDate}
827
+ ?selected=${cell.selected}
828
+ ?range=${cell.range}
829
+ ?range-from=${cell.rangeFrom}
830
+ ?range-to=${cell.rangeTo}
831
+ tabindex=${ifDefined(cell.value !== undefined && !cell.disabled ? 0 : undefined)}
832
+ >${this.renderContentBox(cell.text, cell.value !== undefined)}</div>`;
833
+ }
834
+ /**
835
+ * Render view rows
836
+ * @param rows A collection of rows with cells
837
+ * @returns template result
838
+ */
839
+ renderRows(rows) {
840
+ return rows.map(row => html `<div part="row">${row.cells.map(cell => this.renderCell(cell))}</div>`);
841
+ }
842
+ /**
843
+ * A `TemplateResult` that will be used
844
+ * to render the updated internal template.
845
+ * @return Render template
846
+ */
847
+ render() {
848
+ return html `
849
+ <div part="navigation">
850
+ <ef-button
851
+ part="btn-prev"
852
+ icon="left"
853
+ @tap=${this.onPreviousTap}></ef-button>
854
+ <ef-button
855
+ part="btn-view"
856
+ textpos="before"
857
+ .icon="${this.renderView === RenderView.DAY ? 'down' : 'up'}"
858
+ @tap="${this.onRenderViewTap}">${this.formattedViewRender}</ef-button>
859
+ <ef-button
860
+ part="btn-next"
861
+ icon="right"
862
+ @tap=${this.onNextTap}></ef-button>
863
+ </div>
864
+ <div part="table"
865
+ @tap=${this.onTableTap}>${this.viewRender}</div>
866
+ <div part="footer"><slot name="footer"></slot></div>
867
+ `;
868
+ }
869
+ };
870
+ __decorate([
871
+ property({ type: String })
872
+ ], Calendar.prototype, "min", null);
873
+ __decorate([
874
+ property({ type: String })
875
+ ], Calendar.prototype, "max", null);
876
+ __decorate([
877
+ property({ type: Boolean, attribute: 'weekdays-only' })
878
+ ], Calendar.prototype, "weekdaysOnly", void 0);
879
+ __decorate([
880
+ property({ type: Boolean, attribute: 'weekends-only' })
881
+ ], Calendar.prototype, "weekendsOnly", void 0);
882
+ __decorate([
883
+ property({ attribute: false })
884
+ ], Calendar.prototype, "filter", void 0);
885
+ __decorate([
886
+ property({ type: String })
887
+ ], Calendar.prototype, "view", null);
888
+ __decorate([
889
+ property({ type: Number, attribute: 'first-day-of-week' })
890
+ ], Calendar.prototype, "firstDayOfWeek", null);
891
+ __decorate([
892
+ property({ type: Boolean, reflect: true })
893
+ ], Calendar.prototype, "range", void 0);
894
+ __decorate([
895
+ property({ type: Boolean, reflect: true })
896
+ ], Calendar.prototype, "multiple", void 0);
897
+ __decorate([
898
+ property({ type: String })
899
+ ], Calendar.prototype, "value", null);
900
+ __decorate([
901
+ property({
902
+ converter: {
903
+ fromAttribute: function (value) {
904
+ return value.split(',');
905
+ }
906
+ }
907
+ })
908
+ ], Calendar.prototype, "values", null);
909
+ __decorate([
910
+ property({ type: Boolean, attribute: 'fill-cells' })
911
+ ], Calendar.prototype, "fillCells", void 0);
912
+ __decorate([
913
+ translate({ mode: 'directive', scope: 'ef-calendar' })
914
+ ], Calendar.prototype, "t", void 0);
915
+ __decorate([
916
+ translate({ mode: 'promise', scope: 'ef-calendar' })
917
+ ], Calendar.prototype, "tPromise", void 0);
918
+ __decorate([
919
+ property({ type: String })
920
+ ], Calendar.prototype, "renderView", void 0);
921
+ Calendar = __decorate([
922
+ customElement('ef-calendar', {
923
+ alias: 'coral-calendar'
924
+ })
925
+ ], Calendar);
926
+ export { Calendar };