@refinitiv-ui/elements 5.3.3 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/lib/accordion/custom-elements.json +49 -0
  3. package/lib/accordion/custom-elements.md +18 -0
  4. package/lib/accordion/index.d.ts +76 -0
  5. package/lib/accordion/index.js +136 -0
  6. package/lib/accordion/themes/halo/dark/index.js +3 -0
  7. package/lib/accordion/themes/halo/light/index.js +3 -0
  8. package/lib/accordion/themes/solar/charcoal/index.js +3 -0
  9. package/lib/accordion/themes/solar/pearl/index.js +3 -0
  10. package/lib/appstate-bar/custom-elements.json +49 -0
  11. package/lib/appstate-bar/custom-elements.md +22 -0
  12. package/lib/appstate-bar/index.d.ts +65 -0
  13. package/lib/appstate-bar/index.js +100 -0
  14. package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
  15. package/lib/appstate-bar/themes/halo/light/index.js +3 -0
  16. package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
  17. package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
  18. package/lib/autosuggest/custom-elements.json +233 -0
  19. package/lib/autosuggest/custom-elements.md +47 -0
  20. package/lib/autosuggest/helpers/types.d.ts +54 -0
  21. package/lib/autosuggest/helpers/types.js +1 -0
  22. package/lib/autosuggest/helpers/utils.d.ts +39 -0
  23. package/lib/autosuggest/helpers/utils.js +75 -0
  24. package/lib/autosuggest/index.d.ts +534 -0
  25. package/lib/autosuggest/index.js +1251 -0
  26. package/lib/autosuggest/themes/halo/dark/index.js +5 -0
  27. package/lib/autosuggest/themes/halo/light/index.js +5 -0
  28. package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
  29. package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
  30. package/lib/button/custom-elements.json +119 -0
  31. package/lib/button/custom-elements.md +23 -0
  32. package/lib/button/index.d.ts +132 -0
  33. package/lib/button/index.js +223 -0
  34. package/lib/button/themes/halo/dark/index.js +3 -0
  35. package/lib/button/themes/halo/light/index.js +3 -0
  36. package/lib/button/themes/solar/charcoal/index.js +3 -0
  37. package/lib/button/themes/solar/pearl/index.js +3 -0
  38. package/lib/button-bar/custom-elements.json +26 -0
  39. package/lib/button-bar/custom-elements.md +9 -0
  40. package/lib/button-bar/index.d.ts +76 -0
  41. package/lib/button-bar/index.js +155 -0
  42. package/lib/button-bar/themes/halo/dark/index.js +3 -0
  43. package/lib/button-bar/themes/halo/light/index.js +3 -0
  44. package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
  45. package/lib/button-bar/themes/solar/pearl/index.js +3 -0
  46. package/lib/calendar/constants.d.ts +22 -0
  47. package/lib/calendar/constants.js +23 -0
  48. package/lib/calendar/custom-elements.json +199 -0
  49. package/lib/calendar/custom-elements.md +35 -0
  50. package/lib/calendar/index.d.ts +321 -0
  51. package/lib/calendar/index.js +906 -0
  52. package/lib/calendar/locales.d.ts +1 -0
  53. package/lib/calendar/locales.js +40 -0
  54. package/lib/calendar/themes/halo/dark/index.js +3 -0
  55. package/lib/calendar/themes/halo/light/index.js +3 -0
  56. package/lib/calendar/themes/solar/charcoal/index.js +3 -0
  57. package/lib/calendar/themes/solar/pearl/index.js +3 -0
  58. package/lib/calendar/types.d.ts +29 -0
  59. package/lib/calendar/types.js +1 -0
  60. package/lib/calendar/utils.d.ts +42 -0
  61. package/lib/calendar/utils.js +119 -0
  62. package/lib/canvas/custom-elements.json +69 -0
  63. package/lib/canvas/custom-elements.md +27 -0
  64. package/lib/canvas/index.d.ts +100 -0
  65. package/lib/canvas/index.js +172 -0
  66. package/lib/canvas/themes/halo/dark/index.js +2 -0
  67. package/lib/canvas/themes/halo/light/index.js +2 -0
  68. package/lib/canvas/themes/solar/charcoal/index.js +2 -0
  69. package/lib/canvas/themes/solar/pearl/index.js +2 -0
  70. package/lib/card/custom-elements.json +59 -0
  71. package/lib/card/custom-elements.md +24 -0
  72. package/lib/card/helpers/types.d.ts +12 -0
  73. package/lib/card/helpers/types.js +1 -0
  74. package/lib/card/index.d.ts +140 -0
  75. package/lib/card/index.js +246 -0
  76. package/lib/card/themes/halo/dark/index.js +5 -0
  77. package/lib/card/themes/halo/light/index.js +5 -0
  78. package/lib/card/themes/solar/charcoal/index.js +5 -0
  79. package/lib/card/themes/solar/pearl/index.js +5 -0
  80. package/lib/chart/custom-elements.json +42 -0
  81. package/lib/chart/custom-elements.md +16 -0
  82. package/lib/chart/helpers/index.d.ts +2 -0
  83. package/lib/chart/helpers/index.js +2 -0
  84. package/lib/chart/helpers/legend.d.ts +5 -0
  85. package/lib/chart/helpers/legend.js +78 -0
  86. package/lib/chart/helpers/merge.d.ts +15 -0
  87. package/lib/chart/helpers/merge.js +28 -0
  88. package/lib/chart/helpers/types.d.ts +69 -0
  89. package/lib/chart/helpers/types.js +1 -0
  90. package/lib/chart/index.d.ts +187 -0
  91. package/lib/chart/index.js +491 -0
  92. package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
  93. package/lib/chart/plugins/doughnut-center-label.js +196 -0
  94. package/lib/chart/themes/halo/dark/index.js +4 -0
  95. package/lib/chart/themes/halo/light/index.js +4 -0
  96. package/lib/chart/themes/solar/charcoal/index.js +4 -0
  97. package/lib/chart/themes/solar/pearl/index.js +4 -0
  98. package/lib/checkbox/custom-elements.json +67 -0
  99. package/lib/checkbox/custom-elements.md +18 -0
  100. package/lib/checkbox/index.d.ts +95 -0
  101. package/lib/checkbox/index.js +193 -0
  102. package/lib/checkbox/themes/halo/dark/index.js +4 -0
  103. package/lib/checkbox/themes/halo/light/index.js +4 -0
  104. package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
  105. package/lib/checkbox/themes/solar/pearl/index.js +4 -0
  106. package/lib/clock/custom-elements.json +121 -0
  107. package/lib/clock/custom-elements.md +28 -0
  108. package/lib/clock/index.d.ts +319 -0
  109. package/lib/clock/index.js +581 -0
  110. package/lib/clock/themes/halo/dark/index.js +2 -0
  111. package/lib/clock/themes/halo/light/index.js +2 -0
  112. package/lib/clock/themes/solar/charcoal/index.js +2 -0
  113. package/lib/clock/themes/solar/pearl/index.js +2 -0
  114. package/lib/clock/utils/TickManager.d.ts +14 -0
  115. package/lib/clock/utils/TickManager.js +66 -0
  116. package/lib/clock/utils/timestamps.d.ts +6 -0
  117. package/lib/clock/utils/timestamps.js +6 -0
  118. package/lib/collapse/custom-elements.json +79 -0
  119. package/lib/collapse/custom-elements.md +27 -0
  120. package/lib/collapse/index.d.ts +119 -0
  121. package/lib/collapse/index.js +197 -0
  122. package/lib/collapse/themes/halo/dark/index.js +5 -0
  123. package/lib/collapse/themes/halo/light/index.js +5 -0
  124. package/lib/collapse/themes/solar/charcoal/index.js +5 -0
  125. package/lib/collapse/themes/solar/pearl/index.js +5 -0
  126. package/lib/color-dialog/custom-elements.json +193 -0
  127. package/lib/color-dialog/custom-elements.md +39 -0
  128. package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
  129. package/lib/color-dialog/elements/color-palettes.js +101 -0
  130. package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
  131. package/lib/color-dialog/elements/grayscale-palettes.js +161 -0
  132. package/lib/color-dialog/elements/palettes.d.ts +65 -0
  133. package/lib/color-dialog/elements/palettes.js +132 -0
  134. package/lib/color-dialog/helpers/color-helpers.d.ts +16 -0
  135. package/lib/color-dialog/helpers/color-helpers.js +161 -0
  136. package/lib/color-dialog/helpers/value-model.d.ts +75 -0
  137. package/lib/color-dialog/helpers/value-model.js +141 -0
  138. package/lib/color-dialog/index.d.ts +232 -0
  139. package/lib/color-dialog/index.js +459 -0
  140. package/lib/color-dialog/themes/halo/dark/index.js +7 -0
  141. package/lib/color-dialog/themes/halo/light/index.js +7 -0
  142. package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
  143. package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
  144. package/lib/combo-box/custom-elements.json +210 -0
  145. package/lib/combo-box/custom-elements.md +35 -0
  146. package/lib/combo-box/helpers/filter.d.ts +10 -0
  147. package/lib/combo-box/helpers/filter.js +29 -0
  148. package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
  149. package/lib/combo-box/helpers/keyboard-event.js +19 -0
  150. package/lib/combo-box/helpers/types.d.ts +11 -0
  151. package/lib/combo-box/helpers/types.js +1 -0
  152. package/lib/combo-box/index.d.ts +523 -0
  153. package/lib/combo-box/index.js +1146 -0
  154. package/lib/combo-box/themes/halo/dark/index.js +8 -0
  155. package/lib/combo-box/themes/halo/light/index.js +8 -0
  156. package/lib/combo-box/themes/solar/charcoal/index.js +8 -0
  157. package/lib/combo-box/themes/solar/pearl/index.js +8 -0
  158. package/lib/counter/custom-elements.json +35 -0
  159. package/lib/counter/custom-elements.md +11 -0
  160. package/lib/counter/index.d.ts +89 -0
  161. package/lib/counter/index.js +152 -0
  162. package/lib/counter/themes/halo/dark/index.js +3 -0
  163. package/lib/counter/themes/halo/light/index.js +3 -0
  164. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  165. package/lib/counter/themes/solar/pearl/index.js +3 -0
  166. package/lib/counter/utils.d.ts +13 -0
  167. package/lib/counter/utils.js +52 -0
  168. package/lib/datetime-picker/custom-elements.json +333 -0
  169. package/lib/datetime-picker/custom-elements.md +49 -0
  170. package/lib/datetime-picker/index.d.ts +498 -0
  171. package/lib/datetime-picker/index.js +1164 -0
  172. package/lib/datetime-picker/locales.d.ts +8 -0
  173. package/lib/datetime-picker/locales.js +57 -0
  174. package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
  175. package/lib/datetime-picker/themes/halo/light/index.js +7 -0
  176. package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
  177. package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
  178. package/lib/datetime-picker/types.d.ts +3 -0
  179. package/lib/datetime-picker/types.js +1 -0
  180. package/lib/datetime-picker/utils.d.ts +55 -0
  181. package/lib/datetime-picker/utils.js +92 -0
  182. package/lib/dialog/custom-elements.json +136 -0
  183. package/lib/dialog/custom-elements.md +47 -0
  184. package/lib/dialog/draggable-element.d.ts +14 -0
  185. package/lib/dialog/draggable-element.js +221 -0
  186. package/lib/dialog/index.d.ts +199 -0
  187. package/lib/dialog/index.js +331 -0
  188. package/lib/dialog/themes/halo/dark/index.js +7 -0
  189. package/lib/dialog/themes/halo/light/index.js +7 -0
  190. package/lib/dialog/themes/solar/charcoal/index.js +7 -0
  191. package/lib/dialog/themes/solar/pearl/index.js +7 -0
  192. package/lib/email-field/custom-elements.json +199 -0
  193. package/lib/email-field/custom-elements.md +35 -0
  194. package/lib/email-field/index.d.ts +152 -0
  195. package/lib/email-field/index.js +286 -0
  196. package/lib/email-field/themes/halo/dark/index.js +3 -0
  197. package/lib/email-field/themes/halo/light/index.js +3 -0
  198. package/lib/email-field/themes/solar/charcoal/index.js +3 -0
  199. package/lib/email-field/themes/solar/pearl/index.js +3 -0
  200. package/lib/events.d.ts +121 -0
  201. package/lib/events.js +1 -0
  202. package/lib/flag/custom-elements.json +35 -0
  203. package/lib/flag/custom-elements.md +10 -0
  204. package/lib/flag/index.d.ts +94 -0
  205. package/lib/flag/index.js +166 -0
  206. package/lib/flag/themes/halo/dark/index.js +2 -0
  207. package/lib/flag/themes/halo/light/index.js +2 -0
  208. package/lib/flag/themes/solar/charcoal/index.js +2 -0
  209. package/lib/flag/themes/solar/pearl/index.js +2 -0
  210. package/lib/flag/utils/FlagLoader.d.ts +47 -0
  211. package/lib/flag/utils/FlagLoader.js +86 -0
  212. package/lib/header/custom-elements.json +36 -0
  213. package/lib/header/custom-elements.md +18 -0
  214. package/lib/header/index.d.ts +46 -0
  215. package/lib/header/index.js +73 -0
  216. package/lib/header/themes/halo/dark/index.js +2 -0
  217. package/lib/header/themes/halo/light/index.js +2 -0
  218. package/lib/header/themes/solar/charcoal/index.js +2 -0
  219. package/lib/header/themes/solar/pearl/index.js +2 -0
  220. package/lib/heatmap/custom-elements.json +151 -0
  221. package/lib/heatmap/custom-elements.md +26 -0
  222. package/lib/heatmap/helpers/color.d.ts +30 -0
  223. package/lib/heatmap/helpers/color.js +68 -0
  224. package/lib/heatmap/helpers/text.d.ts +26 -0
  225. package/lib/heatmap/helpers/text.js +91 -0
  226. package/lib/heatmap/helpers/track.d.ts +102 -0
  227. package/lib/heatmap/helpers/track.js +160 -0
  228. package/lib/heatmap/helpers/types.d.ts +40 -0
  229. package/lib/heatmap/helpers/types.js +1 -0
  230. package/lib/heatmap/index.d.ts +453 -0
  231. package/lib/heatmap/index.js +1103 -0
  232. package/lib/heatmap/themes/halo/dark/index.js +4 -0
  233. package/lib/heatmap/themes/halo/light/index.js +4 -0
  234. package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
  235. package/lib/heatmap/themes/solar/pearl/index.js +4 -0
  236. package/lib/icon/custom-elements.json +36 -0
  237. package/lib/icon/custom-elements.md +8 -0
  238. package/lib/icon/index.d.ts +88 -0
  239. package/lib/icon/index.js +169 -0
  240. package/lib/icon/themes/halo/dark/index.js +2 -0
  241. package/lib/icon/themes/halo/light/index.js +2 -0
  242. package/lib/icon/themes/solar/charcoal/index.js +2 -0
  243. package/lib/icon/themes/solar/pearl/index.js +2 -0
  244. package/lib/icon/utils/IconLoader.d.ts +52 -0
  245. package/lib/icon/utils/IconLoader.js +93 -0
  246. package/lib/index.d.ts +3 -0
  247. package/lib/index.js +3 -0
  248. package/lib/interactive-chart/custom-elements.json +86 -0
  249. package/lib/interactive-chart/custom-elements.md +32 -0
  250. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  251. package/lib/interactive-chart/helpers/merge.js +28 -0
  252. package/lib/interactive-chart/helpers/types.d.ts +45 -0
  253. package/lib/interactive-chart/helpers/types.js +6 -0
  254. package/lib/interactive-chart/index.d.ts +380 -0
  255. package/lib/interactive-chart/index.js +1090 -0
  256. package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
  257. package/lib/interactive-chart/themes/halo/light/index.js +3 -0
  258. package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
  259. package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
  260. package/lib/item/custom-elements.json +151 -0
  261. package/lib/item/custom-elements.md +29 -0
  262. package/lib/item/helpers/types.d.ts +57 -0
  263. package/lib/item/helpers/types.js +1 -0
  264. package/lib/item/index.d.ts +158 -0
  265. package/lib/item/index.js +271 -0
  266. package/lib/item/themes/halo/dark/index.js +4 -0
  267. package/lib/item/themes/halo/light/index.js +4 -0
  268. package/lib/item/themes/solar/charcoal/index.js +4 -0
  269. package/lib/item/themes/solar/pearl/index.js +4 -0
  270. package/lib/jsx.d.ts +223 -0
  271. package/lib/label/custom-elements.json +52 -0
  272. package/lib/label/custom-elements.md +11 -0
  273. package/lib/label/index.d.ts +102 -0
  274. package/lib/label/index.js +244 -0
  275. package/lib/label/themes/halo/dark/index.js +3 -0
  276. package/lib/label/themes/halo/light/index.js +3 -0
  277. package/lib/label/themes/solar/charcoal/index.js +3 -0
  278. package/lib/label/themes/solar/pearl/index.js +3 -0
  279. package/lib/layout/custom-elements.json +163 -0
  280. package/lib/layout/custom-elements.md +26 -0
  281. package/lib/layout/index.d.ts +107 -0
  282. package/lib/layout/index.js +212 -0
  283. package/lib/layout/themes/halo/dark/index.js +2 -0
  284. package/lib/layout/themes/halo/light/index.js +2 -0
  285. package/lib/layout/themes/solar/charcoal/index.js +2 -0
  286. package/lib/layout/themes/solar/pearl/index.js +2 -0
  287. package/lib/led-gauge/custom-elements.json +113 -0
  288. package/lib/led-gauge/custom-elements.md +17 -0
  289. package/lib/led-gauge/index.d.ts +143 -0
  290. package/lib/led-gauge/index.js +437 -0
  291. package/lib/led-gauge/themes/halo/dark/index.js +3 -0
  292. package/lib/led-gauge/themes/halo/light/index.js +3 -0
  293. package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
  294. package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
  295. package/lib/list/custom-elements.json +111 -0
  296. package/lib/list/custom-elements.md +30 -0
  297. package/lib/list/extensible-function.d.ts +8 -0
  298. package/lib/list/extensible-function.js +13 -0
  299. package/lib/list/helpers/list-renderer.d.ts +9 -0
  300. package/lib/list/helpers/list-renderer.js +35 -0
  301. package/lib/list/helpers/types.d.ts +3 -0
  302. package/lib/list/helpers/types.js +1 -0
  303. package/lib/list/index.d.ts +292 -0
  304. package/lib/list/index.js +600 -0
  305. package/lib/list/renderer.d.ts +36 -0
  306. package/lib/list/renderer.js +9 -0
  307. package/lib/list/themes/halo/dark/index.js +3 -0
  308. package/lib/list/themes/halo/light/index.js +3 -0
  309. package/lib/list/themes/solar/charcoal/index.js +3 -0
  310. package/lib/list/themes/solar/pearl/index.js +3 -0
  311. package/lib/loader/custom-elements.json +9 -0
  312. package/lib/loader/custom-elements.md +5 -0
  313. package/lib/loader/index.d.ts +41 -0
  314. package/lib/loader/index.js +61 -0
  315. package/lib/loader/themes/halo/dark/index.js +2 -0
  316. package/lib/loader/themes/halo/light/index.js +2 -0
  317. package/lib/loader/themes/solar/charcoal/index.js +2 -0
  318. package/lib/loader/themes/solar/pearl/index.js +2 -0
  319. package/lib/multi-input/custom-elements.json +238 -0
  320. package/lib/multi-input/custom-elements.md +43 -0
  321. package/lib/multi-input/helpers/types.d.ts +11 -0
  322. package/lib/multi-input/helpers/types.js +1 -0
  323. package/lib/multi-input/index.d.ts +297 -0
  324. package/lib/multi-input/index.js +590 -0
  325. package/lib/multi-input/themes/halo/dark/index.js +4 -0
  326. package/lib/multi-input/themes/halo/light/index.js +4 -0
  327. package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
  328. package/lib/multi-input/themes/solar/pearl/index.js +4 -0
  329. package/lib/notification/custom-elements.json +95 -0
  330. package/lib/notification/custom-elements.md +26 -0
  331. package/lib/notification/elements/notification-tray.d.ts +97 -0
  332. package/lib/notification/elements/notification-tray.js +167 -0
  333. package/lib/notification/elements/notification.d.ts +90 -0
  334. package/lib/notification/elements/notification.js +154 -0
  335. package/lib/notification/helpers/status.d.ts +30 -0
  336. package/lib/notification/helpers/status.js +130 -0
  337. package/lib/notification/helpers/types.d.ts +10 -0
  338. package/lib/notification/helpers/types.js +1 -0
  339. package/lib/notification/index.d.ts +2 -0
  340. package/lib/notification/index.js +2 -0
  341. package/lib/notification/themes/halo/dark/index.js +5 -0
  342. package/lib/notification/themes/halo/light/index.js +5 -0
  343. package/lib/notification/themes/solar/charcoal/index.js +5 -0
  344. package/lib/notification/themes/solar/pearl/index.js +5 -0
  345. package/lib/number-field/custom-elements.json +200 -0
  346. package/lib/number-field/custom-elements.md +37 -0
  347. package/lib/number-field/index.d.ts +294 -0
  348. package/lib/number-field/index.js +707 -0
  349. package/lib/number-field/themes/halo/dark/index.js +3 -0
  350. package/lib/number-field/themes/halo/light/index.js +3 -0
  351. package/lib/number-field/themes/solar/charcoal/index.js +3 -0
  352. package/lib/number-field/themes/solar/pearl/index.js +3 -0
  353. package/lib/overlay/custom-elements.json +345 -0
  354. package/lib/overlay/custom-elements.md +54 -0
  355. package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
  356. package/lib/overlay/elements/overlay-backdrop.js +64 -0
  357. package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
  358. package/lib/overlay/elements/overlay-viewport.js +52 -0
  359. package/lib/overlay/elements/overlay.d.ts +403 -0
  360. package/lib/overlay/elements/overlay.js +1426 -0
  361. package/lib/overlay/helpers/functions.d.ts +13 -0
  362. package/lib/overlay/helpers/functions.js +16 -0
  363. package/lib/overlay/helpers/types.d.ts +97 -0
  364. package/lib/overlay/helpers/types.js +16 -0
  365. package/lib/overlay/index.d.ts +2 -0
  366. package/lib/overlay/index.js +1 -0
  367. package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
  368. package/lib/overlay/managers/backdrop-manager.js +96 -0
  369. package/lib/overlay/managers/close-manager.d.ts +54 -0
  370. package/lib/overlay/managers/close-manager.js +138 -0
  371. package/lib/overlay/managers/focus-manager.d.ts +71 -0
  372. package/lib/overlay/managers/focus-manager.js +228 -0
  373. package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
  374. package/lib/overlay/managers/interaction-lock-manager.js +375 -0
  375. package/lib/overlay/managers/viewport-manager.d.ts +93 -0
  376. package/lib/overlay/managers/viewport-manager.js +211 -0
  377. package/lib/overlay/managers/zindex-manager.d.ts +80 -0
  378. package/lib/overlay/managers/zindex-manager.js +195 -0
  379. package/lib/overlay/themes/halo/dark/index.js +4 -0
  380. package/lib/overlay/themes/halo/light/index.js +4 -0
  381. package/lib/overlay/themes/solar/charcoal/index.js +4 -0
  382. package/lib/overlay/themes/solar/pearl/index.js +4 -0
  383. package/lib/overlay-menu/custom-elements.json +194 -0
  384. package/lib/overlay-menu/custom-elements.md +44 -0
  385. package/lib/overlay-menu/helpers/types.d.ts +8 -0
  386. package/lib/overlay-menu/helpers/types.js +1 -0
  387. package/lib/overlay-menu/index.d.ts +385 -0
  388. package/lib/overlay-menu/index.js +933 -0
  389. package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
  390. package/lib/overlay-menu/managers/menu-manager.js +240 -0
  391. package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
  392. package/lib/overlay-menu/themes/halo/light/index.js +5 -0
  393. package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
  394. package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
  395. package/lib/pagination/custom-elements.json +93 -0
  396. package/lib/pagination/custom-elements.md +27 -0
  397. package/lib/pagination/helpers/types.d.ts +9 -0
  398. package/lib/pagination/helpers/types.js +1 -0
  399. package/lib/pagination/index.d.ts +207 -0
  400. package/lib/pagination/index.js +398 -0
  401. package/lib/pagination/themes/halo/dark/index.js +6 -0
  402. package/lib/pagination/themes/halo/light/index.js +6 -0
  403. package/lib/pagination/themes/solar/charcoal/index.js +6 -0
  404. package/lib/pagination/themes/solar/pearl/index.js +6 -0
  405. package/lib/panel/custom-elements.json +39 -0
  406. package/lib/panel/custom-elements.md +11 -0
  407. package/lib/panel/index.d.ts +48 -0
  408. package/lib/panel/index.js +74 -0
  409. package/lib/panel/themes/halo/dark/index.js +2 -0
  410. package/lib/panel/themes/halo/light/index.js +2 -0
  411. package/lib/panel/themes/solar/charcoal/index.js +2 -0
  412. package/lib/panel/themes/solar/pearl/index.js +2 -0
  413. package/lib/password-field/custom-elements.json +156 -0
  414. package/lib/password-field/custom-elements.md +31 -0
  415. package/lib/password-field/index.d.ts +141 -0
  416. package/lib/password-field/index.js +258 -0
  417. package/lib/password-field/themes/halo/dark/index.js +3 -0
  418. package/lib/password-field/themes/halo/light/index.js +3 -0
  419. package/lib/password-field/themes/solar/charcoal/index.js +3 -0
  420. package/lib/password-field/themes/solar/pearl/index.js +3 -0
  421. package/lib/pill/custom-elements.json +95 -0
  422. package/lib/pill/custom-elements.md +22 -0
  423. package/lib/pill/index.d.ts +97 -0
  424. package/lib/pill/index.js +160 -0
  425. package/lib/pill/themes/halo/dark/index.js +3 -0
  426. package/lib/pill/themes/halo/light/index.js +3 -0
  427. package/lib/pill/themes/solar/charcoal/index.js +3 -0
  428. package/lib/pill/themes/solar/pearl/index.js +3 -0
  429. package/lib/progress-bar/custom-elements.json +58 -0
  430. package/lib/progress-bar/custom-elements.md +18 -0
  431. package/lib/progress-bar/index.d.ts +82 -0
  432. package/lib/progress-bar/index.js +157 -0
  433. package/lib/progress-bar/themes/halo/dark/index.js +2 -0
  434. package/lib/progress-bar/themes/halo/light/index.js +2 -0
  435. package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
  436. package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
  437. package/lib/radio-button/custom-elements.json +82 -0
  438. package/lib/radio-button/custom-elements.md +19 -0
  439. package/lib/radio-button/index.d.ts +122 -0
  440. package/lib/radio-button/index.js +257 -0
  441. package/lib/radio-button/radio-button-registry.d.ts +22 -0
  442. package/lib/radio-button/radio-button-registry.js +93 -0
  443. package/lib/radio-button/themes/halo/dark/index.js +3 -0
  444. package/lib/radio-button/themes/halo/light/index.js +3 -0
  445. package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
  446. package/lib/radio-button/themes/solar/pearl/index.js +3 -0
  447. package/lib/rating/custom-elements.json +58 -0
  448. package/lib/rating/custom-elements.md +17 -0
  449. package/lib/rating/index.d.ts +91 -0
  450. package/lib/rating/index.js +157 -0
  451. package/lib/rating/themes/halo/dark/index.js +2 -0
  452. package/lib/rating/themes/halo/light/index.js +2 -0
  453. package/lib/rating/themes/solar/charcoal/index.js +2 -0
  454. package/lib/rating/themes/solar/pearl/index.js +2 -0
  455. package/lib/search-field/custom-elements.json +173 -0
  456. package/lib/search-field/custom-elements.md +33 -0
  457. package/lib/search-field/index.d.ts +134 -0
  458. package/lib/search-field/index.js +253 -0
  459. package/lib/search-field/themes/halo/dark/index.js +3 -0
  460. package/lib/search-field/themes/halo/light/index.js +3 -0
  461. package/lib/search-field/themes/solar/charcoal/index.js +3 -0
  462. package/lib/search-field/themes/solar/pearl/index.js +3 -0
  463. package/lib/select/custom-elements.json +103 -0
  464. package/lib/select/custom-elements.md +24 -0
  465. package/lib/select/helpers/types.d.ts +3 -0
  466. package/lib/select/helpers/types.js +1 -0
  467. package/lib/select/index.d.ts +388 -0
  468. package/lib/select/index.js +942 -0
  469. package/lib/select/themes/halo/dark/index.js +5 -0
  470. package/lib/select/themes/halo/light/index.js +5 -0
  471. package/lib/select/themes/solar/charcoal/index.js +5 -0
  472. package/lib/select/themes/solar/pearl/index.js +5 -0
  473. package/lib/sidebar-layout/custom-elements.json +72 -0
  474. package/lib/sidebar-layout/custom-elements.md +22 -0
  475. package/lib/sidebar-layout/index.d.ts +69 -0
  476. package/lib/sidebar-layout/index.js +134 -0
  477. package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
  478. package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
  479. package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
  480. package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
  481. package/lib/slider/custom-elements.json +181 -0
  482. package/lib/slider/custom-elements.md +28 -0
  483. package/lib/slider/index.d.ts +409 -0
  484. package/lib/slider/index.js +1187 -0
  485. package/lib/slider/themes/halo/dark/index.js +3 -0
  486. package/lib/slider/themes/halo/light/index.js +3 -0
  487. package/lib/slider/themes/solar/charcoal/index.js +3 -0
  488. package/lib/slider/themes/solar/pearl/index.js +3 -0
  489. package/lib/sparkline/custom-elements.json +59 -0
  490. package/lib/sparkline/custom-elements.md +16 -0
  491. package/lib/sparkline/index.d.ts +107 -0
  492. package/lib/sparkline/index.js +186 -0
  493. package/lib/sparkline/themes/halo/dark/index.js +2 -0
  494. package/lib/sparkline/themes/halo/light/index.js +2 -0
  495. package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
  496. package/lib/sparkline/themes/solar/pearl/index.js +2 -0
  497. package/lib/swing-gauge/const.d.ts +22 -0
  498. package/lib/swing-gauge/const.js +26 -0
  499. package/lib/swing-gauge/custom-elements.json +109 -0
  500. package/lib/swing-gauge/custom-elements.md +17 -0
  501. package/lib/swing-gauge/helpers.d.ts +8 -0
  502. package/lib/swing-gauge/helpers.js +105 -0
  503. package/lib/swing-gauge/index.d.ts +294 -0
  504. package/lib/swing-gauge/index.js +762 -0
  505. package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
  506. package/lib/swing-gauge/themes/halo/light/index.js +3 -0
  507. package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
  508. package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
  509. package/lib/swing-gauge/types.d.ts +34 -0
  510. package/lib/swing-gauge/types.js +1 -0
  511. package/lib/tab/custom-elements.json +123 -0
  512. package/lib/tab/custom-elements.md +22 -0
  513. package/lib/tab/index.d.ts +118 -0
  514. package/lib/tab/index.js +208 -0
  515. package/lib/tab/themes/halo/dark/index.js +4 -0
  516. package/lib/tab/themes/halo/light/index.js +4 -0
  517. package/lib/tab/themes/solar/charcoal/index.js +4 -0
  518. package/lib/tab/themes/solar/pearl/index.js +4 -0
  519. package/lib/tab-bar/custom-elements.json +52 -0
  520. package/lib/tab-bar/custom-elements.md +11 -0
  521. package/lib/tab-bar/helpers/animate.d.ts +16 -0
  522. package/lib/tab-bar/helpers/animate.js +53 -0
  523. package/lib/tab-bar/index.d.ts +108 -0
  524. package/lib/tab-bar/index.js +218 -0
  525. package/lib/tab-bar/themes/halo/dark/index.js +4 -0
  526. package/lib/tab-bar/themes/halo/light/index.js +4 -0
  527. package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
  528. package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
  529. package/lib/text-field/custom-elements.json +210 -0
  530. package/lib/text-field/custom-elements.md +37 -0
  531. package/lib/text-field/index.d.ts +193 -0
  532. package/lib/text-field/index.js +409 -0
  533. package/lib/text-field/themes/halo/dark/index.js +3 -0
  534. package/lib/text-field/themes/halo/light/index.js +3 -0
  535. package/lib/text-field/themes/solar/charcoal/index.js +3 -0
  536. package/lib/text-field/themes/solar/pearl/index.js +3 -0
  537. package/lib/time-picker/custom-elements.json +124 -0
  538. package/lib/time-picker/custom-elements.md +28 -0
  539. package/lib/time-picker/index.d.ts +379 -0
  540. package/lib/time-picker/index.js +775 -0
  541. package/lib/time-picker/themes/halo/dark/index.js +4 -0
  542. package/lib/time-picker/themes/halo/light/index.js +4 -0
  543. package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
  544. package/lib/time-picker/themes/solar/pearl/index.js +4 -0
  545. package/lib/toggle/custom-elements.json +82 -0
  546. package/lib/toggle/custom-elements.md +19 -0
  547. package/lib/toggle/index.d.ts +86 -0
  548. package/lib/toggle/index.js +152 -0
  549. package/lib/toggle/themes/halo/dark/index.js +2 -0
  550. package/lib/toggle/themes/halo/light/index.js +2 -0
  551. package/lib/toggle/themes/solar/charcoal/index.js +2 -0
  552. package/lib/toggle/themes/solar/pearl/index.js +2 -0
  553. package/lib/tooltip/custom-elements.json +62 -0
  554. package/lib/tooltip/custom-elements.md +14 -0
  555. package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
  556. package/lib/tooltip/elements/title-tooltip.js +18 -0
  557. package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
  558. package/lib/tooltip/elements/tooltip-element.js +54 -0
  559. package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
  560. package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
  561. package/lib/tooltip/helpers/renderer.d.ts +8 -0
  562. package/lib/tooltip/helpers/renderer.js +11 -0
  563. package/lib/tooltip/helpers/types.d.ts +23 -0
  564. package/lib/tooltip/helpers/types.js +1 -0
  565. package/lib/tooltip/index.d.ts +232 -0
  566. package/lib/tooltip/index.js +477 -0
  567. package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
  568. package/lib/tooltip/managers/tooltip-manager.js +140 -0
  569. package/lib/tooltip/themes/halo/dark/index.js +3 -0
  570. package/lib/tooltip/themes/halo/light/index.js +3 -0
  571. package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
  572. package/lib/tooltip/themes/solar/pearl/index.js +3 -0
  573. package/lib/tornado-chart/custom-elements.json +45 -0
  574. package/lib/tornado-chart/custom-elements.md +18 -0
  575. package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
  576. package/lib/tornado-chart/elements/tornado-chart.js +122 -0
  577. package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
  578. package/lib/tornado-chart/elements/tornado-item.js +207 -0
  579. package/lib/tornado-chart/index.d.ts +2 -0
  580. package/lib/tornado-chart/index.js +2 -0
  581. package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
  582. package/lib/tornado-chart/themes/halo/light/index.js +6 -0
  583. package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
  584. package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
  585. package/lib/tree/custom-elements.json +113 -0
  586. package/lib/tree/custom-elements.md +32 -0
  587. package/lib/tree/elements/tree-item.d.ts +96 -0
  588. package/lib/tree/elements/tree-item.js +179 -0
  589. package/lib/tree/elements/tree.d.ts +201 -0
  590. package/lib/tree/elements/tree.js +412 -0
  591. package/lib/tree/helpers/filter.d.ts +8 -0
  592. package/lib/tree/helpers/filter.js +33 -0
  593. package/lib/tree/helpers/renderer.d.ts +5 -0
  594. package/lib/tree/helpers/renderer.js +33 -0
  595. package/lib/tree/helpers/types.d.ts +25 -0
  596. package/lib/tree/helpers/types.js +1 -0
  597. package/lib/tree/index.d.ts +4 -0
  598. package/lib/tree/index.js +3 -0
  599. package/lib/tree/managers/tree-manager.d.ts +248 -0
  600. package/lib/tree/managers/tree-manager.js +395 -0
  601. package/lib/tree/themes/halo/dark/index.js +7 -0
  602. package/lib/tree/themes/halo/light/index.js +7 -0
  603. package/lib/tree/themes/solar/charcoal/index.js +7 -0
  604. package/lib/tree/themes/solar/pearl/index.js +7 -0
  605. package/lib/tree-select/custom-elements.json +107 -0
  606. package/lib/tree-select/custom-elements.md +26 -0
  607. package/lib/tree-select/helpers/types.d.ts +4 -0
  608. package/lib/tree-select/helpers/types.js +1 -0
  609. package/lib/tree-select/index.d.ts +402 -0
  610. package/lib/tree-select/index.js +890 -0
  611. package/lib/tree-select/themes/halo/dark/index.js +12 -0
  612. package/lib/tree-select/themes/halo/light/index.js +12 -0
  613. package/lib/tree-select/themes/solar/charcoal/index.js +12 -0
  614. package/lib/tree-select/themes/solar/pearl/index.js +12 -0
  615. package/lib/version.d.ts +1 -0
  616. package/lib/version.js +1 -0
  617. package/package.json +298 -15
@@ -0,0 +1,933 @@
1
+ var OverlayMenu_1;
2
+ import { __decorate } from "tslib";
3
+ import { html, css, WarningNotice } from '@refinitiv-ui/core';
4
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
5
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
6
+ import { ifDefined } from '@refinitiv-ui/core/lib/directives/if-defined.js';
7
+ import { VERSION } from '../version.js';
8
+ import { AnimationTaskRunner } from '@refinitiv-ui/utils/lib/async.js';
9
+ import { CollectionComposer } from '@refinitiv-ui/utils/lib/collection.js';
10
+ import { uuid } from '@refinitiv-ui/utils/lib/uuid.js';
11
+ import '../icon/index.js';
12
+ import '../item/index.js';
13
+ import { Item } from '../item/index.js';
14
+ import { Overlay } from '../overlay/index.js';
15
+ import { applyLock } from '../overlay/managers/interaction-lock-manager.js';
16
+ import { OpenedMenusManager } from './managers/menu-manager.js';
17
+ /**
18
+ * Overlay that supports single-level and multi-level menus
19
+ * @fires item-trigger - Dispatched when user clicks on item
20
+ * @fires opened-changed - Dispatched when when opened attribute changes internally. Prevent default to stop opening/closing pipeline
21
+ *
22
+ * @attr {boolean} opened - True if the menu is currently displayed
23
+ * @prop {boolean} [opened=false] - True if the menu is currently displayed
24
+ *
25
+ * @attr {boolean} with-backdrop - True to show backdrop
26
+ * @prop {boolean} [withBackdrop=false] - True to show backdrop
27
+ *
28
+ * @attr {boolean} no-cancel-on-esc-key - Set to true to disable canceling the overlay with the ESC key
29
+ * @prop {boolean} [noCancelOnEscKey=false] - Set to true to disable canceling the overlay with the ESC key
30
+ *
31
+ * @attr {boolean} no-cancel-on-outside-click - Set to true to disable canceling the overlay by clicking outside it
32
+ * @prop {boolean} [noCancelOnOutsideClick=false] - Set to true to disable canceling the overlay by clicking outside it
33
+ *
34
+ * @attr {boolean} lock-position-target - Set to true to lock position target
35
+ * @prop {boolean} [lockPositionTarget=false] - Set to true to lock position target
36
+ *
37
+ * @prop {HTMLElement|null} [positionTarget=null] - Position next to the HTML element
38
+ *
39
+ * @attr {string} transition-style - Set the transition style
40
+ * @prop {string|null} [transitionStyle=null] - Set the transition style
41
+ *
42
+ * @prop {string} [value=] - Returns the first selected item from values.
43
+ *
44
+ * @attr {number} x - Set a specific x coordinate
45
+ * @prop {number} x - Set a specific x coordinate
46
+ *
47
+ * @attr {number} y - Set a specific y coordinate
48
+ * @prop {number} y - Set a specific y coordinate
49
+ *
50
+ * @attr {number} horizontal-offset - A pixel value that will be added to the position calculated on the horizontal axis. The offset will be applied either to the `left` or `right` depending on the `positionTarget`
51
+ * @prop {number} horizontalOffset - A pixel value that will be added to the position calculated on the horizontal axis. The offset will be applied either to the `left` or `right` depending on the `positionTarget`
52
+ *
53
+ * @attr {number} vertical-offset - A pixel value that will be added to the position calculated on the vertical axis. The offset will be applied either to the `top` or `bottom` depending on the `positionTarget`
54
+ * @prop {number} verticalOffset - A pixel value that will be added to the position calculated on the vertical axis. The offset will be applied either to the `top` or `bottom` depending on the `positionTarget`
55
+ *
56
+ * @attr {number} offset - A pixel value that will be added to the position calculated on the vertical or horizontal axis. The offset is applied dynamically depending on the `positionTarget`
57
+ * @prop {number} offset - A pixel value that will be added to the position calculated on the vertical or horizontal axis. The offset is applied dynamically depending on the `positionTarget`
58
+ *
59
+ * @attr {{} | undefined} position - Set position and align against the attach target.
60
+ * @prop {{} | undefined} position - Set position and align against the attach target.
61
+ */
62
+ let OverlayMenu = OverlayMenu_1 = class OverlayMenu extends Overlay {
63
+ constructor() {
64
+ super();
65
+ this.dataDisconnectThrottler = new AnimationTaskRunner();
66
+ this.oldInteractiveElements = [];
67
+ this.menuIndex = {};
68
+ this.composer = new CollectionComposer([]);
69
+ this.lazyRendered = false; /* speed up rendering by not populating overlay on first load */
70
+ /**
71
+ * Switch to compact style menu
72
+ */
73
+ this.compact = false;
74
+ /**
75
+ * A flag indicating that the menu is nested
76
+ * Used for styling
77
+ */
78
+ this.nested = false;
79
+ /**
80
+ * @ignore
81
+ */
82
+ this.withShadow = true;
83
+ /**
84
+ * @ignore
85
+ */
86
+ this.lockPositionTarget = true;
87
+ /**
88
+ * @ignore
89
+ */
90
+ this.focusBoundary = null;
91
+ /**
92
+ * @ignore
93
+ */
94
+ this.position = ['bottom-start', 'top-start'];
95
+ /**
96
+ * @ignore
97
+ */
98
+ this.toItem = this.toItem.bind(this);
99
+ /**
100
+ * @ignore
101
+ */
102
+ this.modificationUpdate = this.modificationUpdate.bind(this);
103
+ }
104
+ /**
105
+ * Element version number
106
+ * @returns version number
107
+ */
108
+ static get version() {
109
+ return VERSION;
110
+ }
111
+ /**
112
+ * A `CSSResultGroup` that will be used
113
+ * to style the host, slotted children
114
+ * and the internal template of the element.
115
+ * @return CSS template
116
+ */
117
+ static get styles() {
118
+ return [
119
+ super.styles,
120
+ css `
121
+ :host {
122
+ overflow-y: auto;
123
+ overflow-x: hidden;
124
+ }
125
+ :host([compact]:not([active])) { /* active is set in menu-manager */
126
+ opacity: 0;
127
+ }
128
+ `
129
+ ];
130
+ }
131
+ /**
132
+ * Array of item's values
133
+ * @type {string[]}
134
+ */
135
+ get values() {
136
+ return this.withData ? this.getDataValues() : this.getSlottedValues();
137
+ }
138
+ set values(values) {
139
+ const oldValues = this.values;
140
+ if (String(values) === String(oldValues)) {
141
+ return;
142
+ }
143
+ this.withData ? this.setDataValues(values) : this.setSlottedValues(values);
144
+ this.requestUpdate('values', oldValues);
145
+ }
146
+ /**
147
+ * Returns the first selected item value.
148
+ */
149
+ get value() {
150
+ return this.values.length > 0 ? this.values[0] : '';
151
+ }
152
+ set value(value) {
153
+ const valueToString = String(value);
154
+ this.values = valueToString && value !== null ? [valueToString] : [];
155
+ }
156
+ /**
157
+ * Construct the menu from data object.
158
+ * Cannot be used with internal content
159
+ */
160
+ get data() {
161
+ return this._data;
162
+ }
163
+ set data(value) {
164
+ const oldValue = this._data;
165
+ if (oldValue === value) {
166
+ return;
167
+ }
168
+ else if (Array.isArray(value)) {
169
+ value.forEach(function (item) {
170
+ if (item && item.value !== undefined && item.value !== null) {
171
+ item.value = String(item.value);
172
+ }
173
+ });
174
+ this.composer = new CollectionComposer(value);
175
+ }
176
+ else if (value instanceof CollectionComposer) {
177
+ this.composer = value;
178
+ }
179
+ else {
180
+ new WarningNotice('ef-overlay-menu: invalid data provided').show();
181
+ this.composer = new CollectionComposer([]);
182
+ }
183
+ this._data = value;
184
+ this.composer.on('modification', // Listen for modifications
185
+ this.modificationUpdate // Update the template
186
+ );
187
+ this.requestUpdate('data', oldValue);
188
+ }
189
+ /**
190
+ * Get values from data collection
191
+ * @returns data values
192
+ */
193
+ getDataValues() {
194
+ const items = this.getDataDescendants();
195
+ const selected = items.filter(item => this.composer.getItemPropertyValue(item, 'selected') === true);
196
+ return selected.map(item => this.composer.getItemPropertyValue(item, 'value') || '');
197
+ }
198
+ /**
199
+ * Set values to data collection
200
+ * @param values data values
201
+ * @returns {void}
202
+ */
203
+ setDataValues(values) {
204
+ const items = this.getDataDescendants();
205
+ items.forEach(item => {
206
+ const value = this.composer.getItemPropertyValue(item, 'value') || '';
207
+ const found = values.some(userValue => String(userValue) === value);
208
+ this.composer.setItemPropertyValue(item, 'selected', found);
209
+ });
210
+ }
211
+ /**
212
+ * Get values from slotted element collection
213
+ * @returns slotted item values
214
+ */
215
+ getSlottedValues() {
216
+ const items = this.getSlottedDescendants();
217
+ const selected = items.filter(item => item.selected === true);
218
+ return selected.map(item => item.value);
219
+ }
220
+ /**
221
+ * Set values to slotted elements
222
+ * @param values element values
223
+ * @returns {void}
224
+ */
225
+ setSlottedValues(values) {
226
+ const items = this.getSlottedDescendants();
227
+ items.forEach(item => {
228
+ item.selected = values.includes(item.value);
229
+ });
230
+ }
231
+ /**
232
+ * A flag to check whether menu is constructed from data
233
+ * or from slotted content
234
+ * It is not possible to combine two
235
+ */
236
+ get withData() {
237
+ return this._data !== undefined;
238
+ }
239
+ /**
240
+ * True if menu is fully opened and is currently in focus
241
+ */
242
+ get isActive() {
243
+ return this.fullyOpened && OpenedMenusManager.isActiveMenu(this);
244
+ }
245
+ /**
246
+ * Get descendant as data item
247
+ * Valid only for CC
248
+ * @returns descendant data item
249
+ */
250
+ getDataDescendants() {
251
+ return (this.parentDataItem
252
+ ? this.composer.getItemDescendants(this.parentDataItem, Infinity)
253
+ : this.composer.queryItems(() => true, Infinity));
254
+ }
255
+ /**
256
+ * Get descendant as item
257
+ * Valid only for slotted
258
+ * @param [parent=this] parent menu
259
+ * @returns descendant item
260
+ */
261
+ getSlottedDescendants(parent = this) {
262
+ const items = parent.children;
263
+ const descendants = [];
264
+ for (let i = 0; i < items.length; i += 1) {
265
+ const item = items[i];
266
+ if (item instanceof Item) {
267
+ descendants.push(item);
268
+ if (item.for) {
269
+ const menu = document.getElementById(item.for);
270
+ if (menu && menu instanceof OverlayMenu_1) {
271
+ descendants.push(...this.getSlottedDescendants(menu));
272
+ }
273
+ }
274
+ }
275
+ }
276
+ return descendants;
277
+ }
278
+ /**
279
+ * Filter items out of children
280
+ */
281
+ get items() {
282
+ const children = this.withData ? this.renderRoot.children : this.children;
283
+ const items = [];
284
+ for (let i = 0; i < children.length; i += 1) {
285
+ const item = children[i];
286
+ if (item instanceof Item && this.isHighlightable(item)) {
287
+ items.push(item);
288
+ }
289
+ }
290
+ return items;
291
+ }
292
+ /**
293
+ * Invoked when a component is removed from the document’s DOM.
294
+ * @return {void}
295
+ */
296
+ disconnectedCallback() {
297
+ super.disconnectedCallback();
298
+ this.disconnectNestedMenus();
299
+ }
300
+ /**
301
+ * Called when the element’s DOM has been updated and rendered
302
+ * @param changedProperties Properties that has changed
303
+ * @returns shouldUpdate
304
+ */
305
+ shouldUpdate(changedProperties) {
306
+ const shouldUpdate = super.shouldUpdate(changedProperties);
307
+ return shouldUpdate
308
+ || changedProperties.size === 0 /* this is to support empty requestUpdate() */
309
+ || changedProperties.has('values')
310
+ || changedProperties.has('data')
311
+ || (this.opened && changedProperties.has('compact'))
312
+ || (this.opened && changedProperties.has('modification'));
313
+ }
314
+ /**
315
+ * Reflects property values to attributes and calls render to render DOM via lit-html.
316
+ * @param changedProperties Properties which have changed
317
+ * @return {void}
318
+ */
319
+ update(changedProperties) {
320
+ if (changedProperties.has('opened')) {
321
+ if (this.opened) {
322
+ this.opening();
323
+ }
324
+ else {
325
+ this.closing();
326
+ }
327
+ }
328
+ if (changedProperties.has('data')) {
329
+ this.constructDataMenus();
330
+ }
331
+ if (changedProperties.has('opened') && this.opened) {
332
+ this.lazyRendered = true;
333
+ }
334
+ super.update(changedProperties);
335
+ }
336
+ /**
337
+ * Called after the component is first rendered
338
+ * @param changedProperties Properties which have changed
339
+ * @return {void}
340
+ */
341
+ firstUpdated(changedProperties) {
342
+ super.firstUpdated(changedProperties);
343
+ this.addEventListener('keydown', this.onKeyDown);
344
+ this.addEventListener('keyup', this.onKeyUp);
345
+ this.renderRoot.addEventListener('tap', (event) => this.onItemTap(event));
346
+ this.renderRoot.addEventListener('mousemove', (event) => this.onItemMouseMove(event)); /* listen shadow root to support data */
347
+ }
348
+ /**
349
+ * Called after render life-cycle finished
350
+ * @param changedProperties Properties which have changed
351
+ * @return {void}
352
+ */
353
+ updated(changedProperties) {
354
+ super.updated(changedProperties);
355
+ if (changedProperties.has('data')) {
356
+ // Manages items constructed by constructDataMenus after they have been rendered
357
+ this.onDataChange();
358
+ }
359
+ }
360
+ /**
361
+ * Run when the overlay has closed, managers are de-registered
362
+ * and closing transition has finished
363
+ * @return {void}
364
+ */
365
+ onClosed() {
366
+ // do not keep light DOM nodes and disconnect on next render
367
+ this.dataDisconnectThrottler.schedule(() => {
368
+ this.disconnectNestedMenus();
369
+ });
370
+ this.setItemHighlight();
371
+ this.restoreNestedProperties();
372
+ super.onClosed();
373
+ }
374
+ /**
375
+ * Restore properties back to original before bounding to parent menu
376
+ * @returns {void}
377
+ */
378
+ restoreNestedProperties() {
379
+ if (this.nested) {
380
+ this.nested = false;
381
+ this.position = this.oldPosition;
382
+ this.positionTarget = this.oldPositionTarget;
383
+ this.interactiveElements = this.oldInteractiveElements;
384
+ this.oldPositionTarget = undefined;
385
+ this.oldPosition = undefined;
386
+ this.oldInteractiveElements = [];
387
+ }
388
+ }
389
+ /**
390
+ * Selects all data from CollectionComposer
391
+ * @return all MenuItems stored in CollectionComposer
392
+ */
393
+ getAllComposedData() {
394
+ const items = this.parentDataItem
395
+ ? this.composer.getItemChildren(this.parentDataItem)
396
+ : this.composer.queryItems(() => true, 0);
397
+ return items;
398
+ }
399
+ /**
400
+ * Get menu depth from the collection composer
401
+ * @returns depth
402
+ */
403
+ getDataDepth() {
404
+ return this.parentDataItem ? this.composer.getItemDepth(this.parentDataItem) + 1 : 0;
405
+ }
406
+ /**
407
+ * Run while overlay is opening
408
+ * @return {void}
409
+ */
410
+ opening() {
411
+ const parentMenuItem = OpenedMenusManager.getParentMenuItem(this);
412
+ this.dataDisconnectThrottler.cancel();
413
+ this.restoreNestedProperties();
414
+ if (parentMenuItem) {
415
+ this.nested = true;
416
+ this.noCancelOnOutsideClick = true;
417
+ this.oldPositionTarget = this.positionTarget;
418
+ this.oldInteractiveElements = this.interactiveElements;
419
+ this.oldPosition = this.position;
420
+ let parentMenu = OpenedMenusManager.getParentMenu(this);
421
+ if (!this.compact) {
422
+ this.positionTarget = parentMenuItem;
423
+ const interactiveElements = [];
424
+ while (parentMenu) {
425
+ interactiveElements.push(parentMenu, ...parentMenu.interactiveElements);
426
+ parentMenu = OpenedMenusManager.getParentMenu(parentMenu);
427
+ }
428
+ this.interactiveElements = (this.oldInteractiveElements || []).concat(interactiveElements);
429
+ this.position = ['right-start', 'left-start'];
430
+ }
431
+ else {
432
+ this.positionTarget = parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.positionTarget;
433
+ this.position = parentMenu === null || parentMenu === void 0 ? void 0 : parentMenu.position;
434
+ }
435
+ // Managers are applied in shouldUpdate lifecycles (as not every property causes re-render)
436
+ // The process must follow certain order (which is better not to touch)
437
+ // `applyLock` fixes a problem when changes in properties above where not take into account
438
+ applyLock();
439
+ }
440
+ this.registerMenu();
441
+ }
442
+ /**
443
+ * Run while overlay is closing
444
+ * @return {void}
445
+ */
446
+ closing() {
447
+ OpenedMenusManager.deregister(this);
448
+ }
449
+ /**
450
+ * Run when modification has happened in CC
451
+ * @returns {void}
452
+ */
453
+ modificationUpdate() {
454
+ this.constructDataMenus();
455
+ this.requestUpdate();
456
+ }
457
+ /**
458
+ * Construct menu items and nested menus from data object
459
+ * @return {void}
460
+ */
461
+ constructDataMenus() {
462
+ const data = this.getAllComposedData();
463
+ const depth = this.getDataDepth();
464
+ const oldMenuIndex = this.menuIndex;
465
+ this.menuIndex = {};
466
+ // try to match existing menus via CC
467
+ // this is true if modification are done via CC APIs
468
+ const findMenuByDataItem = (dataItem) => {
469
+ var _a, _b;
470
+ const menuId = (((_a = this.composer) === null || _a === void 0 ? void 0 : _a.getItemPropertyValue(dataItem, 'for')) || '');
471
+ return (_b = oldMenuIndex[menuId]) === null || _b === void 0 ? void 0 : _b.menu;
472
+ };
473
+ // try to match existing menus by item value and depth
474
+ // this happens if new data has been supplied, which might be identical
475
+ const findMenuByDataId = (id) => {
476
+ for (const menuId in oldMenuIndex) {
477
+ const { menu, dataId } = oldMenuIndex[menuId];
478
+ if (dataId === id) {
479
+ return menu;
480
+ }
481
+ }
482
+ };
483
+ data.forEach((dataItem, index) => {
484
+ var _a;
485
+ // has menu
486
+ if (dataItem.items && dataItem.items.length) {
487
+ const dataId = `${dataItem.value || index}-${depth}`;
488
+ const menu = findMenuByDataItem(dataItem) || findMenuByDataId(dataId) || this.toOverlayMenu();
489
+ menu.parentDataItem = dataItem;
490
+ menu.data = this.composer;
491
+ const menuId = menu.id;
492
+ this.menuIndex[menuId] = {
493
+ menu,
494
+ dataId
495
+ };
496
+ delete oldMenuIndex[menuId];
497
+ (_a = this.composer) === null || _a === void 0 ? void 0 : _a.setItemPropertyValue(dataItem, 'for', menuId);
498
+ }
499
+ });
500
+ // delete all non-required menus
501
+ for (const menuId in oldMenuIndex) {
502
+ const { menu } = oldMenuIndex[menuId];
503
+ if (menu.parentNode) {
504
+ menu.parentNode.removeChild(menu);
505
+ }
506
+ }
507
+ }
508
+ /**
509
+ * Remove all nested menus from the light DOM
510
+ * @return {void}
511
+ */
512
+ disconnectNestedMenus() {
513
+ var _a;
514
+ for (const menuIndex in this.menuIndex) {
515
+ const { menu } = this.menuIndex[menuIndex];
516
+ (_a = menu.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(menu);
517
+ }
518
+ }
519
+ /**
520
+ * This function must be called to register menu or menu items
521
+ * @return {void}
522
+ */
523
+ registerMenu() {
524
+ if (this.opened) {
525
+ OpenedMenusManager.register(this);
526
+ }
527
+ }
528
+ /**
529
+ * Fired when mouse move event happens
530
+ * @param event Mouse move event
531
+ * @return {void}
532
+ */
533
+ onItemMouseMove(event) {
534
+ if (!this.fullyOpened) {
535
+ return;
536
+ }
537
+ const item = this.getItem(event.target);
538
+ if (item) {
539
+ // set focus on menu to reset item focus
540
+ // happens only if move on item
541
+ if (this.isActive) {
542
+ if (document.activeElement !== this) {
543
+ this.focus();
544
+ }
545
+ else {
546
+ const renderRoot = this.renderRoot;
547
+ if (renderRoot.activeElement) {
548
+ renderRoot.activeElement.blur();
549
+ }
550
+ }
551
+ }
552
+ this.setItemHighlight(item);
553
+ if (!this.compact) {
554
+ this.setOpenedMenu(item);
555
+ }
556
+ }
557
+ }
558
+ /**
559
+ * Provide keyboard item selection
560
+ * @param event Keyup event
561
+ * @return {void}
562
+ */
563
+ onKeyUp(event) {
564
+ if (!this.isActive || event.defaultPrevented) {
565
+ return;
566
+ }
567
+ switch (event.key) {
568
+ case ' ': // space
569
+ case 'Spacebar': // space
570
+ case 'Enter':
571
+ this.onEnter();
572
+ break;
573
+ default:
574
+ return;
575
+ }
576
+ event.preventDefault();
577
+ }
578
+ /**
579
+ * Provide keyboard navigation
580
+ * @param event Keydown event
581
+ * @return {void}
582
+ */
583
+ onKeyDown(event) {
584
+ if (!this.isActive || event.defaultPrevented) {
585
+ return;
586
+ }
587
+ switch (event.key) {
588
+ case 'Down':
589
+ case 'ArrowDown':
590
+ this.focusElement(1, true);
591
+ break;
592
+ case 'Up':
593
+ case 'ArrowUp':
594
+ this.focusElement(-1, true);
595
+ break;
596
+ case 'Left':
597
+ case 'ArrowLeft':
598
+ this.onArrowLeft();
599
+ break;
600
+ case 'Right':
601
+ case 'ArrowRight':
602
+ this.onArrowRight();
603
+ break;
604
+ case 'Tab':
605
+ this.focusElement(event.shiftKey ? -1 : 1, true);
606
+ break;
607
+ default:
608
+ return;
609
+ }
610
+ event.preventDefault();
611
+ }
612
+ /**
613
+ * Fired when mouse click event happens on the menu.
614
+ * @param event Tap event
615
+ * @return {void}
616
+ */
617
+ onItemTap(event) {
618
+ const item = this.getItem(event.target);
619
+ if (item) {
620
+ // set highlighted item for mobile
621
+ this.setItemHighlight(item);
622
+ this.setOpenedMenu(item);
623
+ this.dispatchItemTrigger(item);
624
+ }
625
+ }
626
+ /**
627
+ * Dispatch item trigger even
628
+ * @param item Menu item
629
+ * @returns {void}
630
+ */
631
+ dispatchItemTrigger(item) {
632
+ const event = new CustomEvent('item-trigger', {
633
+ detail: {
634
+ value: item.value
635
+ },
636
+ bubbles: true,
637
+ composed: true
638
+ });
639
+ item.dispatchEvent(event);
640
+ }
641
+ /**
642
+ * Run when back item is clicked in compact mode
643
+ * @return {void}
644
+ */
645
+ onBackItemTap() {
646
+ if (!this.fullyOpened) {
647
+ return;
648
+ }
649
+ this.setOpened(false);
650
+ }
651
+ /**
652
+ * Run when mouse is over back item in compact mode
653
+ * @return {void}
654
+ */
655
+ onBackItemMouseMove() {
656
+ if (!this.fullyOpened) {
657
+ return;
658
+ }
659
+ this.setItemHighlight();
660
+ }
661
+ /**
662
+ * Manually execute click if return key is pressed
663
+ * @return {void}
664
+ */
665
+ onEnter() {
666
+ const menuHighlightedItem = this.menuHighlightedItem;
667
+ if (menuHighlightedItem) {
668
+ this.setOpenedMenu(menuHighlightedItem);
669
+ menuHighlightedItem.click();
670
+ }
671
+ }
672
+ /**
673
+ * Highlight next or previous highlightable element if present
674
+ * @param direction -1 - up/next; 1 - down/previous
675
+ * @param [circular=false] Set to true to have circular navigation over items
676
+ * @return {void}
677
+ */
678
+ focusElement(direction, circular = false) {
679
+ const menuHighlightedItem = this.menuHighlightedItem;
680
+ const children = this.items;
681
+ const idx = menuHighlightedItem ? children.indexOf(menuHighlightedItem) : -1;
682
+ let focusElement;
683
+ if (direction === 1) {
684
+ focusElement = idx === -1 ? children[0] : children[idx + 1];
685
+ }
686
+ else {
687
+ focusElement = idx === -1 ? children[children.length - 1] : children[idx - 1];
688
+ }
689
+ if (circular && !focusElement) {
690
+ focusElement = direction === 1 ? children[0] : children[children.length - 1];
691
+ }
692
+ if (focusElement) {
693
+ focusElement.focus();
694
+ this.setItemHighlight(focusElement);
695
+ focusElement.scrollIntoView(false);
696
+ }
697
+ }
698
+ /**
699
+ * Run when left arrow is pressed.
700
+ * Close current menu if possible
701
+ * @return {void}
702
+ */
703
+ onArrowLeft() {
704
+ if (OpenedMenusManager.isNested(this)) {
705
+ this.setOpened(false);
706
+ }
707
+ }
708
+ /**
709
+ * Run when right arrow is pressed.
710
+ * Open menu if possible
711
+ * @return {void}
712
+ */
713
+ onArrowRight() {
714
+ this.setOpenedMenu(this.menuHighlightedItem);
715
+ }
716
+ /**
717
+ * Open/close nested menu
718
+ * @param menuItem Item to open/close menu for. Undefined to close all opened nested menus
719
+ * @return {void}
720
+ */
721
+ setOpenedMenu(menuItem) {
722
+ const menu = menuItem && menuItem.for && this.menuIndex[menuItem.for] ? this.menuIndex[menuItem.for].menu : undefined;
723
+ menu && this.insertNestedMenu(menu);
724
+ OpenedMenusManager.toggleNestedMenuFor(this, menuItem);
725
+ }
726
+ /**
727
+ * Highlight an item with all ancestors to the top menu
728
+ * @param [item] An item to highlight
729
+ * @return {void}
730
+ */
731
+ setItemHighlight(item) {
732
+ if (this.menuHighlightedItem === item) {
733
+ return;
734
+ }
735
+ if (this.menuHighlightedItem) {
736
+ this.menuHighlightedItem.highlighted = false;
737
+ }
738
+ this.menuHighlightedItem = item;
739
+ if (item) {
740
+ item.highlighted = true;
741
+ }
742
+ }
743
+ /**
744
+ * Check whether an item can be highlighted
745
+ * @param item Item to check
746
+ * @return true of the item can be highlighted
747
+ */
748
+ isHighlightable(item) {
749
+ return item.highlightable && !!item.offsetHeight;
750
+ }
751
+ /**
752
+ * Get first ef-item in the ancestor tree
753
+ * @param target HTML element to start searching from
754
+ * @return item item if found
755
+ */
756
+ getItem(target) {
757
+ if (!target) {
758
+ return null;
759
+ }
760
+ let node = target;
761
+ const items = this.items;
762
+ while (node) {
763
+ if (node instanceof Item && items.includes(node)) {
764
+ return node;
765
+ }
766
+ if (node === this) {
767
+ return null;
768
+ }
769
+ node = node.parentNode;
770
+ }
771
+ return null;
772
+ }
773
+ /**
774
+ * Run when `data` collection has been set or updated
775
+ * @return {void}
776
+ */
777
+ onDataChange() {
778
+ // OpenedMenusManager.toggleNestedMenuFor(this);
779
+ this.onMenuReHighlight();
780
+ }
781
+ /**
782
+ * Run when the default slot items have changed
783
+ * @return {void}
784
+ */
785
+ onSlotChange() {
786
+ // closes opened child menu if any
787
+ // OpenedMenusManager.toggleNestedMenuFor(this);
788
+ this.onMenuReHighlight();
789
+ }
790
+ /**
791
+ * If data has changed, try to keep the highlighted item unless
792
+ * highlighted item has been removed itself
793
+ * @returns {void}
794
+ */
795
+ onMenuReHighlight() {
796
+ const highlighted = this.menuHighlightedItem;
797
+ if (highlighted && !this.items.includes(highlighted)) {
798
+ this.setItemHighlight();
799
+ }
800
+ }
801
+ /**
802
+ * Insert nested menu if it is not attached
803
+ * For `data` menus only
804
+ * @param menu Menu element
805
+ * @return {void}
806
+ */
807
+ insertNestedMenu(menu) {
808
+ if (menu.parentNode || !this.parentNode) {
809
+ return;
810
+ }
811
+ if (this.nextElementSibling) {
812
+ this.parentNode.insertBefore(menu, this.nextElementSibling);
813
+ }
814
+ else {
815
+ this.parentNode.appendChild(menu);
816
+ }
817
+ }
818
+ /**
819
+ * Create overlay menu from items
820
+ * Inherit properties from current menu
821
+ * @return menu element
822
+ */
823
+ toOverlayMenu() {
824
+ const menu = document.createElement('ef-overlay-menu');
825
+ menu.transitionStyle = this.transitionStyle;
826
+ menu.noCancelOnOutsideClick = true;
827
+ menu.compact = this.compact;
828
+ menu.id = uuid();
829
+ return menu;
830
+ }
831
+ /**
832
+ * Create template for menu item
833
+ * @param item JSON object to parse
834
+ * @return template result
835
+ */
836
+ toItem(item) {
837
+ const composer = this.composer;
838
+ const type = composer.getItemPropertyValue(item, 'type');
839
+ if (type === 'divider') {
840
+ return html `<ef-item type="divider"></ef-item>`;
841
+ }
842
+ const tooltip = composer.getItemPropertyValue(item, 'tooltip');
843
+ const label = composer.getItemPropertyValue(item, 'label');
844
+ const icon = composer.getItemPropertyValue(item, 'icon');
845
+ if (type === 'header') {
846
+ return html `<ef-item
847
+ type="header"
848
+ title=${ifDefined(tooltip || undefined)}
849
+ .label=${label}
850
+ .icon=${icon}></ef-item>`;
851
+ }
852
+ const disabled = composer.getItemPropertyValue(item, 'disabled');
853
+ const selected = composer.getItemPropertyValue(item, 'selected');
854
+ const readonly = composer.getItemPropertyValue(item, 'readonly');
855
+ const subLabel = composer.getItemPropertyValue(item, 'subLabel');
856
+ const value = composer.getItemPropertyValue(item, 'value');
857
+ const forMenu = composer.getItemPropertyValue(item, 'for');
858
+ const highlighted = composer.getItemPropertyValue(item, 'highlighted');
859
+ // type text
860
+ return html `<ef-item
861
+ title=${ifDefined(tooltip || undefined)}
862
+ ?disabled=${disabled}
863
+ ?selected=${selected}
864
+ ?highlighted=${highlighted}
865
+ ?readonly=${readonly}
866
+ .label=${label}
867
+ .subLabel=${subLabel}
868
+ .icon=${icon}
869
+ .value=${value}
870
+ .for=${ifDefined(forMenu || undefined)}>
871
+ </ef-item>`;
872
+ }
873
+ /**
874
+ * Construct items from data
875
+ * @returns {TemplateResult} Template result
876
+ */
877
+ get fromDataItems() {
878
+ if (!this.lazyRendered) {
879
+ return;
880
+ }
881
+ return this.getAllComposedData().map(this.toItem);
882
+ }
883
+ /**
884
+ * Construct back item for compact menu
885
+ * @returns {TemplateResult} Template result
886
+ */
887
+ compactBackItem() {
888
+ if (!this.compact || !OpenedMenusManager.isNested(this)) {
889
+ return undefined;
890
+ }
891
+ return html `
892
+ <ef-item part="menu-back" id="back" label="Back" @tap=${this.onBackItemTap} @mousemove=${this.onBackItemMouseMove}>
893
+ <ef-icon slot="left" icon="left"></ef-icon>
894
+ </ef-item>
895
+ `;
896
+ }
897
+ /**
898
+ * A `TemplateResult` that will be used
899
+ * to render the updated internal template.
900
+ * @returns {TemplateResult} Render template
901
+ */
902
+ render() {
903
+ /**
904
+ * Use JavaScript expressions to include property values in
905
+ * the element template.
906
+ */
907
+ return html `
908
+ ${this.compactBackItem()}
909
+ ${this.withData ? this.fromDataItems : html `<slot @slotchange=${this.onSlotChange}></slot>`}
910
+ `;
911
+ }
912
+ };
913
+ __decorate([
914
+ property({ type: Boolean, reflect: true })
915
+ ], OverlayMenu.prototype, "compact", void 0);
916
+ __decorate([
917
+ property({ type: Array, attribute: false })
918
+ ], OverlayMenu.prototype, "values", null);
919
+ __decorate([
920
+ property({ type: String })
921
+ ], OverlayMenu.prototype, "value", null);
922
+ __decorate([
923
+ property({ type: Object, attribute: false })
924
+ ], OverlayMenu.prototype, "data", null);
925
+ __decorate([
926
+ property({ type: Boolean, reflect: true })
927
+ ], OverlayMenu.prototype, "nested", void 0);
928
+ OverlayMenu = OverlayMenu_1 = __decorate([
929
+ customElement('ef-overlay-menu', {
930
+ alias: 'emerald-popup-menu'
931
+ })
932
+ ], OverlayMenu);
933
+ export { OverlayMenu };