@okta/odyssey-react-mui 1.42.0 → 1.43.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 (297) hide show
  1. package/dist/cjs/DataTable/DataTable.cjs +67 -42
  2. package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
  3. package/dist/cjs/Drawer.cjs +16 -14
  4. package/dist/cjs/Drawer.cjs.map +1 -1
  5. package/dist/cjs/PasswordField.cjs +1 -1
  6. package/dist/cjs/PasswordField.cjs.map +1 -1
  7. package/dist/cjs/Select.cjs +34 -43
  8. package/dist/cjs/Select.cjs.map +1 -1
  9. package/dist/cjs/Status.cjs +2 -0
  10. package/dist/cjs/Status.cjs.map +1 -1
  11. package/dist/cjs/Typography.cjs +32 -8
  12. package/dist/cjs/Typography.cjs.map +1 -1
  13. package/dist/cjs/labs/DataFilters.cjs +1 -0
  14. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  15. package/dist/cjs/labs/DataView/BulkActionsMenu.cjs.map +1 -1
  16. package/dist/cjs/labs/DataView/CardLayoutContent.cjs.map +1 -1
  17. package/dist/cjs/labs/DataView/DataView.cjs +10 -1
  18. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  19. package/dist/cjs/labs/DataView/RowActions.cjs +3 -4
  20. package/dist/cjs/labs/DataView/RowActions.cjs.map +1 -1
  21. package/dist/cjs/labs/DataView/TableLayoutContent.cjs +2 -4
  22. package/dist/cjs/labs/DataView/TableLayoutContent.cjs.map +1 -1
  23. package/dist/cjs/labs/DataView/useFilterConversion.cjs.map +1 -1
  24. package/dist/cjs/labs/OdysseyPickers/ComposablePicker.cjs.map +1 -1
  25. package/dist/cjs/labs/OdysseyPickers/Picker.cjs +17 -11
  26. package/dist/cjs/labs/OdysseyPickers/Picker.cjs.map +1 -1
  27. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs +2 -1
  28. package/dist/cjs/labs/OdysseyPickers/PickerWithOptionAdornment.cjs.map +1 -1
  29. package/dist/cjs/labs/OdysseyPickers/SearchDropdown.cjs +2 -3
  30. package/dist/cjs/labs/OdysseyPickers/SearchDropdown.cjs.map +1 -1
  31. package/dist/cjs/properties/ts/odyssey-react-mui.cjs +0 -1
  32. package/dist/cjs/properties/ts/odyssey-react-mui.cjs.map +1 -1
  33. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs +0 -1
  34. package/dist/cjs/properties/ts/odyssey-react-mui_cs.cjs.map +1 -1
  35. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs +0 -1
  36. package/dist/cjs/properties/ts/odyssey-react-mui_da.cjs.map +1 -1
  37. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs +0 -1
  38. package/dist/cjs/properties/ts/odyssey-react-mui_de.cjs.map +1 -1
  39. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs +0 -1
  40. package/dist/cjs/properties/ts/odyssey-react-mui_el.cjs.map +1 -1
  41. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs +0 -1
  42. package/dist/cjs/properties/ts/odyssey-react-mui_es.cjs.map +1 -1
  43. package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs +0 -1
  44. package/dist/cjs/properties/ts/odyssey-react-mui_eu.cjs.map +1 -1
  45. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs +0 -1
  46. package/dist/cjs/properties/ts/odyssey-react-mui_fi.cjs.map +1 -1
  47. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs +0 -1
  48. package/dist/cjs/properties/ts/odyssey-react-mui_fr.cjs.map +1 -1
  49. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs +0 -1
  50. package/dist/cjs/properties/ts/odyssey-react-mui_ht.cjs.map +1 -1
  51. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs +0 -1
  52. package/dist/cjs/properties/ts/odyssey-react-mui_hu.cjs.map +1 -1
  53. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs +0 -1
  54. package/dist/cjs/properties/ts/odyssey-react-mui_id.cjs.map +1 -1
  55. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs +0 -1
  56. package/dist/cjs/properties/ts/odyssey-react-mui_it.cjs.map +1 -1
  57. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs +0 -1
  58. package/dist/cjs/properties/ts/odyssey-react-mui_ja.cjs.map +1 -1
  59. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs +0 -1
  60. package/dist/cjs/properties/ts/odyssey-react-mui_ko.cjs.map +1 -1
  61. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs +0 -1
  62. package/dist/cjs/properties/ts/odyssey-react-mui_ms.cjs.map +1 -1
  63. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs +0 -1
  64. package/dist/cjs/properties/ts/odyssey-react-mui_nb.cjs.map +1 -1
  65. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs +0 -1
  66. package/dist/cjs/properties/ts/odyssey-react-mui_nl_NL.cjs.map +1 -1
  67. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs +4 -2
  68. package/dist/cjs/properties/ts/odyssey-react-mui_ok_PL.cjs.map +1 -1
  69. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs +129 -126
  70. package/dist/cjs/properties/ts/odyssey-react-mui_ok_SK.cjs.map +1 -1
  71. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs +0 -1
  72. package/dist/cjs/properties/ts/odyssey-react-mui_pl.cjs.map +1 -1
  73. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs +0 -1
  74. package/dist/cjs/properties/ts/odyssey-react-mui_pt_BR.cjs.map +1 -1
  75. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs +0 -1
  76. package/dist/cjs/properties/ts/odyssey-react-mui_ro.cjs.map +1 -1
  77. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs +0 -1
  78. package/dist/cjs/properties/ts/odyssey-react-mui_ru.cjs.map +1 -1
  79. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs +0 -1
  80. package/dist/cjs/properties/ts/odyssey-react-mui_sv.cjs.map +1 -1
  81. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs +0 -1
  82. package/dist/cjs/properties/ts/odyssey-react-mui_th.cjs.map +1 -1
  83. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs +0 -1
  84. package/dist/cjs/properties/ts/odyssey-react-mui_tr.cjs.map +1 -1
  85. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs +0 -1
  86. package/dist/cjs/properties/ts/odyssey-react-mui_uk.cjs.map +1 -1
  87. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs +0 -1
  88. package/dist/cjs/properties/ts/odyssey-react-mui_vi.cjs.map +1 -1
  89. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs +0 -1
  90. package/dist/cjs/properties/ts/odyssey-react-mui_zh_CN.cjs.map +1 -1
  91. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs +0 -1
  92. package/dist/cjs/properties/ts/odyssey-react-mui_zh_TW.cjs.map +1 -1
  93. package/dist/cjs/theme/components.cjs +7 -1
  94. package/dist/cjs/theme/components.cjs.map +1 -1
  95. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +1 -0
  96. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  97. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
  98. package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
  99. package/dist/esm/DataTable/DataTable.js +67 -40
  100. package/dist/esm/DataTable/DataTable.js.map +1 -1
  101. package/dist/esm/Drawer.js +16 -14
  102. package/dist/esm/Drawer.js.map +1 -1
  103. package/dist/esm/PasswordField.js +1 -1
  104. package/dist/esm/PasswordField.js.map +1 -1
  105. package/dist/esm/Select.js +34 -43
  106. package/dist/esm/Select.js.map +1 -1
  107. package/dist/esm/Status.js +2 -0
  108. package/dist/esm/Status.js.map +1 -1
  109. package/dist/esm/Typography.js +32 -8
  110. package/dist/esm/Typography.js.map +1 -1
  111. package/dist/esm/labs/DataFilters.js +1 -0
  112. package/dist/esm/labs/DataFilters.js.map +1 -1
  113. package/dist/esm/labs/DataView/BulkActionsMenu.js.map +1 -1
  114. package/dist/esm/labs/DataView/CardLayoutContent.js.map +1 -1
  115. package/dist/esm/labs/DataView/DataView.js +10 -1
  116. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  117. package/dist/esm/labs/DataView/RowActions.js +2 -1
  118. package/dist/esm/labs/DataView/RowActions.js.map +1 -1
  119. package/dist/esm/labs/DataView/TableLayoutContent.js +2 -4
  120. package/dist/esm/labs/DataView/TableLayoutContent.js.map +1 -1
  121. package/dist/esm/labs/DataView/useFilterConversion.js.map +1 -1
  122. package/dist/esm/labs/OdysseyPickers/ComposablePicker.js.map +1 -1
  123. package/dist/esm/labs/OdysseyPickers/Picker.js +19 -13
  124. package/dist/esm/labs/OdysseyPickers/Picker.js.map +1 -1
  125. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js +2 -1
  126. package/dist/esm/labs/OdysseyPickers/PickerWithOptionAdornment.js.map +1 -1
  127. package/dist/esm/labs/OdysseyPickers/SearchDropdown.js +2 -3
  128. package/dist/esm/labs/OdysseyPickers/SearchDropdown.js.map +1 -1
  129. package/dist/esm/properties/ts/odyssey-react-mui.js +0 -1
  130. package/dist/esm/properties/ts/odyssey-react-mui.js.map +1 -1
  131. package/dist/esm/properties/ts/odyssey-react-mui_cs.js +0 -1
  132. package/dist/esm/properties/ts/odyssey-react-mui_cs.js.map +1 -1
  133. package/dist/esm/properties/ts/odyssey-react-mui_da.js +0 -1
  134. package/dist/esm/properties/ts/odyssey-react-mui_da.js.map +1 -1
  135. package/dist/esm/properties/ts/odyssey-react-mui_de.js +0 -1
  136. package/dist/esm/properties/ts/odyssey-react-mui_de.js.map +1 -1
  137. package/dist/esm/properties/ts/odyssey-react-mui_el.js +0 -1
  138. package/dist/esm/properties/ts/odyssey-react-mui_el.js.map +1 -1
  139. package/dist/esm/properties/ts/odyssey-react-mui_es.js +0 -1
  140. package/dist/esm/properties/ts/odyssey-react-mui_es.js.map +1 -1
  141. package/dist/esm/properties/ts/odyssey-react-mui_eu.js +0 -1
  142. package/dist/esm/properties/ts/odyssey-react-mui_eu.js.map +1 -1
  143. package/dist/esm/properties/ts/odyssey-react-mui_fi.js +0 -1
  144. package/dist/esm/properties/ts/odyssey-react-mui_fi.js.map +1 -1
  145. package/dist/esm/properties/ts/odyssey-react-mui_fr.js +0 -1
  146. package/dist/esm/properties/ts/odyssey-react-mui_fr.js.map +1 -1
  147. package/dist/esm/properties/ts/odyssey-react-mui_ht.js +0 -1
  148. package/dist/esm/properties/ts/odyssey-react-mui_ht.js.map +1 -1
  149. package/dist/esm/properties/ts/odyssey-react-mui_hu.js +0 -1
  150. package/dist/esm/properties/ts/odyssey-react-mui_hu.js.map +1 -1
  151. package/dist/esm/properties/ts/odyssey-react-mui_id.js +0 -1
  152. package/dist/esm/properties/ts/odyssey-react-mui_id.js.map +1 -1
  153. package/dist/esm/properties/ts/odyssey-react-mui_it.js +0 -1
  154. package/dist/esm/properties/ts/odyssey-react-mui_it.js.map +1 -1
  155. package/dist/esm/properties/ts/odyssey-react-mui_ja.js +0 -1
  156. package/dist/esm/properties/ts/odyssey-react-mui_ja.js.map +1 -1
  157. package/dist/esm/properties/ts/odyssey-react-mui_ko.js +0 -1
  158. package/dist/esm/properties/ts/odyssey-react-mui_ko.js.map +1 -1
  159. package/dist/esm/properties/ts/odyssey-react-mui_ms.js +0 -1
  160. package/dist/esm/properties/ts/odyssey-react-mui_ms.js.map +1 -1
  161. package/dist/esm/properties/ts/odyssey-react-mui_nb.js +0 -1
  162. package/dist/esm/properties/ts/odyssey-react-mui_nb.js.map +1 -1
  163. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js +0 -1
  164. package/dist/esm/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
  165. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js +4 -2
  166. package/dist/esm/properties/ts/odyssey-react-mui_ok_PL.js.map +1 -1
  167. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js +129 -126
  168. package/dist/esm/properties/ts/odyssey-react-mui_ok_SK.js.map +1 -1
  169. package/dist/esm/properties/ts/odyssey-react-mui_pl.js +0 -1
  170. package/dist/esm/properties/ts/odyssey-react-mui_pl.js.map +1 -1
  171. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js +0 -1
  172. package/dist/esm/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
  173. package/dist/esm/properties/ts/odyssey-react-mui_ro.js +0 -1
  174. package/dist/esm/properties/ts/odyssey-react-mui_ro.js.map +1 -1
  175. package/dist/esm/properties/ts/odyssey-react-mui_ru.js +0 -1
  176. package/dist/esm/properties/ts/odyssey-react-mui_ru.js.map +1 -1
  177. package/dist/esm/properties/ts/odyssey-react-mui_sv.js +0 -1
  178. package/dist/esm/properties/ts/odyssey-react-mui_sv.js.map +1 -1
  179. package/dist/esm/properties/ts/odyssey-react-mui_th.js +0 -1
  180. package/dist/esm/properties/ts/odyssey-react-mui_th.js.map +1 -1
  181. package/dist/esm/properties/ts/odyssey-react-mui_tr.js +0 -1
  182. package/dist/esm/properties/ts/odyssey-react-mui_tr.js.map +1 -1
  183. package/dist/esm/properties/ts/odyssey-react-mui_uk.js +0 -1
  184. package/dist/esm/properties/ts/odyssey-react-mui_uk.js.map +1 -1
  185. package/dist/esm/properties/ts/odyssey-react-mui_vi.js +0 -1
  186. package/dist/esm/properties/ts/odyssey-react-mui_vi.js.map +1 -1
  187. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js +0 -1
  188. package/dist/esm/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
  189. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js +0 -1
  190. package/dist/esm/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
  191. package/dist/esm/theme/components.js +7 -1
  192. package/dist/esm/theme/components.js.map +1 -1
  193. package/dist/esm/ui-shell/SideNav/SideNav.js +1 -0
  194. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  195. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
  196. package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
  197. package/dist/index.cjs +1 -1
  198. package/dist/index.d.ts +1 -1
  199. package/dist/index.mjs +1 -1
  200. package/dist/index.scss +1 -1
  201. package/dist/tsconfig.production.tsbuildinfo +1 -1
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/dist/types/DataTable/DataTable.d.ts +2 -2
  204. package/dist/types/DataTable/DataTable.d.ts.map +1 -1
  205. package/dist/types/Drawer.d.ts +24 -6
  206. package/dist/types/Drawer.d.ts.map +1 -1
  207. package/dist/types/OdysseyTranslationProvider.d.ts +1 -1
  208. package/dist/types/OdysseyTranslationProvider.d.ts.map +1 -1
  209. package/dist/types/PasswordField.d.ts.map +1 -1
  210. package/dist/types/Select.d.ts.map +1 -1
  211. package/dist/types/Status.d.ts +2 -2
  212. package/dist/types/Status.d.ts.map +1 -1
  213. package/dist/types/Typography.d.ts +16 -12
  214. package/dist/types/Typography.d.ts.map +1 -1
  215. package/dist/types/i18n.d.ts +6 -29
  216. package/dist/types/i18n.d.ts.map +1 -1
  217. package/dist/types/labs/DataFilters.d.ts.map +1 -1
  218. package/dist/types/labs/DataView/BulkActionsMenu.d.ts +1 -1
  219. package/dist/types/labs/DataView/BulkActionsMenu.d.ts.map +1 -1
  220. package/dist/types/labs/DataView/CardLayoutContent.d.ts.map +1 -1
  221. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  222. package/dist/types/labs/DataView/RowActions.d.ts +5 -4
  223. package/dist/types/labs/DataView/RowActions.d.ts.map +1 -1
  224. package/dist/types/labs/DataView/TableLayoutContent.d.ts +1 -1
  225. package/dist/types/labs/DataView/TableLayoutContent.d.ts.map +1 -1
  226. package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts +4 -1
  227. package/dist/types/labs/OdysseyPickers/ComposablePicker.d.ts.map +1 -1
  228. package/dist/types/labs/OdysseyPickers/Picker.d.ts +7 -7
  229. package/dist/types/labs/OdysseyPickers/Picker.d.ts.map +1 -1
  230. package/dist/types/labs/OdysseyPickers/PickerWithOptionAdornment.d.ts.map +1 -1
  231. package/dist/types/labs/OdysseyPickers/SearchDropdown.d.ts.map +1 -1
  232. package/dist/types/properties/ts/odyssey-react-mui.d.ts +0 -1
  233. package/dist/types/properties/ts/odyssey-react-mui.d.ts.map +1 -1
  234. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts +0 -1
  235. package/dist/types/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
  236. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts +0 -1
  237. package/dist/types/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
  238. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts +0 -1
  239. package/dist/types/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
  240. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts +0 -1
  241. package/dist/types/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
  242. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts +0 -1
  243. package/dist/types/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
  244. package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts +0 -1
  245. package/dist/types/properties/ts/odyssey-react-mui_eu.d.ts.map +1 -1
  246. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts +0 -1
  247. package/dist/types/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
  248. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts +0 -1
  249. package/dist/types/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
  250. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts +0 -1
  251. package/dist/types/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
  252. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts +0 -1
  253. package/dist/types/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
  254. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts +0 -1
  255. package/dist/types/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
  256. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts +0 -1
  257. package/dist/types/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
  258. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts +0 -1
  259. package/dist/types/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
  260. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts +0 -1
  261. package/dist/types/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
  262. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts +0 -1
  263. package/dist/types/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
  264. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts +0 -1
  265. package/dist/types/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
  266. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts +0 -1
  267. package/dist/types/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
  268. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts +3 -1
  269. package/dist/types/properties/ts/odyssey-react-mui_ok_PL.d.ts.map +1 -1
  270. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts +3 -0
  271. package/dist/types/properties/ts/odyssey-react-mui_ok_SK.d.ts.map +1 -1
  272. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts +0 -1
  273. package/dist/types/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
  274. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts +0 -1
  275. package/dist/types/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
  276. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts +0 -1
  277. package/dist/types/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
  278. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts +0 -1
  279. package/dist/types/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
  280. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts +0 -1
  281. package/dist/types/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
  282. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts +0 -1
  283. package/dist/types/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
  284. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts +0 -1
  285. package/dist/types/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
  286. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts +0 -1
  287. package/dist/types/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
  288. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts +0 -1
  289. package/dist/types/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
  290. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts +0 -1
  291. package/dist/types/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
  292. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts +0 -1
  293. package/dist/types/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
  294. package/dist/types/theme/components.d.ts.map +1 -1
  295. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  296. package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
  297. package/package.json +9 -7
@@ -1 +1 @@
1
- {"version":3,"file":"RowActions.js","names":["memo","useCallback","useTranslation","ArrowBottomIcon","ArrowDownIcon","ArrowTopIcon","ArrowUpIcon","MenuItem","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RowActions","isRowReorderingDisabled","row","rowActionMenuItems","rowIndex","totalRows","updateRowOrder","t","handleToFrontClick","rowId","id","newRowIndex","handleForwardClick","Math","max","handleBackwardClick","handleToBackClick","children","isDisabled","onClick","MemoizedRowActions","displayName"],"sources":["../../../../src/labs/DataView/RowActions.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Fragment, ReactElement, memo, useCallback } from \"react\";\nimport { MRT_Row, MRT_RowData } from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n ArrowBottomIcon,\n ArrowDownIcon,\n ArrowTopIcon,\n ArrowUpIcon,\n} from \"../../icons.generated/index.js\";\nimport { Button, MenuButtonProps, MenuItem } from \"../../Buttons/index.js\";\nimport { DataTableProps } from \"./DataTable.js\";\n\nexport type RowActionsProps<TData extends MRT_RowData> = {\n isRowReorderingDisabled?: boolean;\n row: MRT_Row<TData>;\n rowActionButtons?: (\n row: MRT_Row<TData>,\n ) => ReactElement<typeof Button> | ReactElement<typeof Fragment>;\n rowActionMenuItems?: (row: MRT_Row<TData>) => MenuButtonProps[\"children\"];\n rowIndex: number;\n totalRows?: DataTableProps<TData>[\"totalRows\"];\n updateRowOrder?: ({\n newRowIndex,\n rowId,\n }: {\n newRowIndex: number;\n rowId: string;\n }) => void;\n};\n\nconst RowActions = <TData extends MRT_RowData>({\n isRowReorderingDisabled,\n row,\n rowActionMenuItems,\n rowIndex,\n totalRows,\n updateRowOrder,\n}: RowActionsProps<TData>) => {\n const { t } = useTranslation();\n\n const handleToFrontClick = useCallback(() => {\n if (updateRowOrder) {\n updateRowOrder({ rowId: row.id, newRowIndex: 0 });\n }\n }, [row.id, updateRowOrder]);\n\n const handleForwardClick = useCallback(() => {\n if (updateRowOrder) {\n updateRowOrder({ rowId: row.id, newRowIndex: Math.max(0, rowIndex - 1) });\n }\n }, [row.id, rowIndex, updateRowOrder]);\n\n const handleBackwardClick = useCallback(() => {\n if (updateRowOrder) {\n updateRowOrder({ rowId: row.id, newRowIndex: rowIndex + 1 });\n }\n }, [row.id, rowIndex, updateRowOrder]);\n\n const handleToBackClick = useCallback(() => {\n if (updateRowOrder) {\n updateRowOrder({\n rowId: row.id,\n newRowIndex: totalRows ? totalRows - 1 : rowIndex,\n });\n }\n }, [row.id, rowIndex, totalRows, updateRowOrder]);\n\n return (\n <>\n {rowActionMenuItems && rowActionMenuItems(row)}\n {rowActionMenuItems && updateRowOrder && <hr />}\n {updateRowOrder && (\n <>\n <MenuItem\n isDisabled={rowIndex <= 0 || isRowReorderingDisabled}\n onClick={handleToFrontClick}\n >\n <ArrowTopIcon /> {t(\"table.reorder.tofront\")}\n </MenuItem>\n <MenuItem\n isDisabled={rowIndex <= 0 || isRowReorderingDisabled}\n onClick={handleForwardClick}\n >\n <ArrowUpIcon /> {t(\"table.reorder.forward\")}\n </MenuItem>\n <MenuItem\n isDisabled={\n (totalRows ? rowIndex >= totalRows - 1 : false) ||\n isRowReorderingDisabled\n }\n onClick={handleBackwardClick}\n >\n <ArrowDownIcon /> {t(\"table.reorder.backward\")}\n </MenuItem>\n {totalRows && (\n <MenuItem\n isDisabled={rowIndex >= totalRows - 1 || isRowReorderingDisabled}\n onClick={handleToBackClick}\n >\n <ArrowBottomIcon /> {t(\"table.reorder.toback\")}\n </MenuItem>\n )}\n </>\n )}\n </>\n );\n};\n\nconst MemoizedRowActions = memo(RowActions);\nMemoizedRowActions.displayName = \"RowActions\";\n\nexport { MemoizedRowActions as RowActions };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAiCA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AAEjE,SAASC,cAAc,QAAQ,eAAe;AAE9C,SACEC,eAAe,EACfC,aAAa,EACbC,YAAY,EACZC,WAAW,QACN,gCAAgC;AACvC,SAAkCC,QAAQ,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAqB3E,MAAMC,UAAU,GAAGA,CAA4B;EAC7CC,uBAAuB;EACvBC,GAAG;EACHC,kBAAkB;EAClBC,QAAQ;EACRC,SAAS;EACTC;AACsB,CAAC,KAAK;EAC5B,MAAM;IAAEC;EAAE,CAAC,GAAGnB,cAAc,CAAC,CAAC;EAE9B,MAAMoB,kBAAkB,GAAGrB,WAAW,CAAC,MAAM;IAC3C,IAAImB,cAAc,EAAE;MAClBA,cAAc,CAAC;QAAEG,KAAK,EAAEP,GAAG,CAACQ,EAAE;QAAEC,WAAW,EAAE;MAAE,CAAC,CAAC;IACnD;EACF,CAAC,EAAE,CAACT,GAAG,CAACQ,EAAE,EAAEJ,cAAc,CAAC,CAAC;EAE5B,MAAMM,kBAAkB,GAAGzB,WAAW,CAAC,MAAM;IAC3C,IAAImB,cAAc,EAAE;MAClBA,cAAc,CAAC;QAAEG,KAAK,EAAEP,GAAG,CAACQ,EAAE;QAAEC,WAAW,EAAEE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEV,QAAQ,GAAG,CAAC;MAAE,CAAC,CAAC;IAC3E;EACF,CAAC,EAAE,CAACF,GAAG,CAACQ,EAAE,EAAEN,QAAQ,EAAEE,cAAc,CAAC,CAAC;EAEtC,MAAMS,mBAAmB,GAAG5B,WAAW,CAAC,MAAM;IAC5C,IAAImB,cAAc,EAAE;MAClBA,cAAc,CAAC;QAAEG,KAAK,EAAEP,GAAG,CAACQ,EAAE;QAAEC,WAAW,EAAEP,QAAQ,GAAG;MAAE,CAAC,CAAC;IAC9D;EACF,CAAC,EAAE,CAACF,GAAG,CAACQ,EAAE,EAAEN,QAAQ,EAAEE,cAAc,CAAC,CAAC;EAEtC,MAAMU,iBAAiB,GAAG7B,WAAW,CAAC,MAAM;IAC1C,IAAImB,cAAc,EAAE;MAClBA,cAAc,CAAC;QACbG,KAAK,EAAEP,GAAG,CAACQ,EAAE;QACbC,WAAW,EAAEN,SAAS,GAAGA,SAAS,GAAG,CAAC,GAAGD;MAC3C,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACF,GAAG,CAACQ,EAAE,EAAEN,QAAQ,EAAEC,SAAS,EAAEC,cAAc,CAAC,CAAC;EAEjD,OACET,KAAA,CAAAE,SAAA;IAAAkB,QAAA,GACGd,kBAAkB,IAAIA,kBAAkB,CAACD,GAAG,CAAC,EAC7CC,kBAAkB,IAAIG,cAAc,IAAIX,IAAA,SAAK,CAAC,EAC9CW,cAAc,IACbT,KAAA,CAAAE,SAAA;MAAAkB,QAAA,GACEpB,KAAA,CAACJ,QAAQ;QACPyB,UAAU,EAAEd,QAAQ,IAAI,CAAC,IAAIH,uBAAwB;QACrDkB,OAAO,EAAEX,kBAAmB;QAAAS,QAAA,GAE5BtB,IAAA,CAACJ,YAAY,IAAE,CAAC,KAAC,EAACgB,CAAC,CAAC,uBAAuB,CAAC;MAAA,CACpC,CAAC,EACXV,KAAA,CAACJ,QAAQ;QACPyB,UAAU,EAAEd,QAAQ,IAAI,CAAC,IAAIH,uBAAwB;QACrDkB,OAAO,EAAEP,kBAAmB;QAAAK,QAAA,GAE5BtB,IAAA,CAACH,WAAW,IAAE,CAAC,KAAC,EAACe,CAAC,CAAC,uBAAuB,CAAC;MAAA,CACnC,CAAC,EACXV,KAAA,CAACJ,QAAQ;QACPyB,UAAU,EACR,CAACb,SAAS,GAAGD,QAAQ,IAAIC,SAAS,GAAG,CAAC,GAAG,KAAK,KAC9CJ,uBACD;QACDkB,OAAO,EAAEJ,mBAAoB;QAAAE,QAAA,GAE7BtB,IAAA,CAACL,aAAa,IAAE,CAAC,KAAC,EAACiB,CAAC,CAAC,wBAAwB,CAAC;MAAA,CACtC,CAAC,EACVF,SAAS,IACRR,KAAA,CAACJ,QAAQ;QACPyB,UAAU,EAAEd,QAAQ,IAAIC,SAAS,GAAG,CAAC,IAAIJ,uBAAwB;QACjEkB,OAAO,EAAEH,iBAAkB;QAAAC,QAAA,GAE3BtB,IAAA,CAACN,eAAe,IAAE,CAAC,KAAC,EAACkB,CAAC,CAAC,sBAAsB,CAAC;MAAA,CACtC,CACX;IAAA,CACD,CACH;EAAA,CACD,CAAC;AAEP,CAAC;AAED,MAAMa,kBAAkB,GAAGlC,IAAI,CAACc,UAAU,CAAC;AAC3CoB,kBAAkB,CAACC,WAAW,GAAG,YAAY;AAE7C,SAASD,kBAAkB,IAAIpB,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"RowActions.js","names":["memo","useCallback","useTranslation","ArrowBottomIcon","ArrowDownIcon","ArrowTopIcon","ArrowUpIcon","MenuItem","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","RowActions","isRowReorderingDisabled","row","incomingRow","rowActionMenuItems","rowIndex","totalRows","updateRowOrder","t","original","handleToFrontClick","rowId","id","newRowIndex","handleForwardClick","Math","max","handleBackwardClick","handleToBackClick","children","isDisabled","onClick","MemoizedRowActions","displayName"],"sources":["../../../../src/labs/DataView/RowActions.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Fragment, ReactElement, memo, useCallback } from \"react\";\nimport { MRT_Row, MRT_RowData } from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n ArrowBottomIcon,\n ArrowDownIcon,\n ArrowTopIcon,\n ArrowUpIcon,\n} from \"../../icons.generated/index.js\";\nimport { Button, MenuButtonProps, MenuItem } from \"../../Buttons/index.js\";\nimport { DataTableProps } from \"./DataTable.js\";\n\n// Rows coming from TableLayoutContent will be in the MRT-expected row format,\n// while rows coming from CardLayoutContent will be pure data\ntype RowOrTableRow<TData extends MRT_RowData> = MRT_Row<TData> | TData;\n\nexport type RowActionsProps<TData extends MRT_RowData> = {\n isRowReorderingDisabled?: boolean;\n row: RowOrTableRow<TData>;\n rowActionButtons?: (\n row?: TData,\n ) => ReactElement<typeof Button> | ReactElement<typeof Fragment>;\n rowActionMenuItems?: (row: TData) => MenuButtonProps[\"children\"];\n rowIndex: number;\n totalRows?: DataTableProps<TData>[\"totalRows\"];\n updateRowOrder?: ({\n newRowIndex,\n rowId,\n }: {\n newRowIndex: number;\n rowId: string;\n }) => void;\n};\n\nconst RowActions = <TData extends MRT_RowData>({\n isRowReorderingDisabled,\n row: incomingRow,\n rowActionMenuItems,\n rowIndex,\n totalRows,\n updateRowOrder,\n}: RowActionsProps<TData>) => {\n const { t } = useTranslation();\n\n const row = (\n incomingRow.original ? incomingRow.original : incomingRow\n ) as TData & { id: string };\n\n const handleToFrontClick = useCallback(() => {\n if (updateRowOrder) {\n updateRowOrder({ rowId: row.id, newRowIndex: 0 });\n }\n }, [row.id, updateRowOrder]);\n\n const handleForwardClick = useCallback(() => {\n if (updateRowOrder) {\n updateRowOrder({ rowId: row.id, newRowIndex: Math.max(0, rowIndex - 1) });\n }\n }, [row.id, rowIndex, updateRowOrder]);\n\n const handleBackwardClick = useCallback(() => {\n if (updateRowOrder) {\n updateRowOrder({ rowId: row.id, newRowIndex: rowIndex + 1 });\n }\n }, [row.id, rowIndex, updateRowOrder]);\n\n const handleToBackClick = useCallback(() => {\n if (updateRowOrder) {\n updateRowOrder({\n rowId: row.id,\n newRowIndex: totalRows ? totalRows - 1 : rowIndex,\n });\n }\n }, [row.id, rowIndex, totalRows, updateRowOrder]);\n\n return (\n <>\n {rowActionMenuItems && rowActionMenuItems(row)}\n {rowActionMenuItems && updateRowOrder && <hr />}\n {updateRowOrder && (\n <>\n <MenuItem\n isDisabled={rowIndex <= 0 || isRowReorderingDisabled}\n onClick={handleToFrontClick}\n >\n <ArrowTopIcon /> {t(\"table.reorder.tofront\")}\n </MenuItem>\n <MenuItem\n isDisabled={rowIndex <= 0 || isRowReorderingDisabled}\n onClick={handleForwardClick}\n >\n <ArrowUpIcon /> {t(\"table.reorder.forward\")}\n </MenuItem>\n <MenuItem\n isDisabled={\n (totalRows ? rowIndex >= totalRows - 1 : false) ||\n isRowReorderingDisabled\n }\n onClick={handleBackwardClick}\n >\n <ArrowDownIcon /> {t(\"table.reorder.backward\")}\n </MenuItem>\n {totalRows && (\n <MenuItem\n isDisabled={rowIndex >= totalRows - 1 || isRowReorderingDisabled}\n onClick={handleToBackClick}\n >\n <ArrowBottomIcon /> {t(\"table.reorder.toback\")}\n </MenuItem>\n )}\n </>\n )}\n </>\n );\n};\n\nconst MemoizedRowActions = memo(RowActions);\nMemoizedRowActions.displayName = \"RowActions\";\n\nexport { MemoizedRowActions as RowActions };\n"],"mappings":"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","ignoreList":[]}
@@ -102,7 +102,7 @@ const TableLayoutContent = ({
102
102
  }) => {
103
103
  const currentIndex = row.index + (pagination.pageIndex - 1) * pagination.pageSize;
104
104
  return _jsxs(RowActionsContainer, {
105
- children: [tableLayoutOptions.rowActionButtons?.(row), (tableLayoutOptions.rowActionMenuItems || hasRowReordering) && _jsx(MenuButton, {
105
+ children: [tableLayoutOptions.rowActionButtons?.(row.original), (tableLayoutOptions.rowActionMenuItems || hasRowReordering) && _jsx(MenuButton, {
106
106
  ariaLabel: t("table.moreactions.arialabel"),
107
107
  buttonVariant: "floating",
108
108
  endIcon: _jsx(MoreIcon, {}),
@@ -181,9 +181,7 @@ const TableLayoutContent = ({
181
181
  display: "flex",
182
182
  visibility: "hidden"
183
183
  },
184
- children: [tableLayoutOptions.rowActionButtons && tableLayoutOptions.rowActionButtons({
185
- id: null
186
- }), (hasRowReordering === true && onReorderRows || tableLayoutOptions.rowActionMenuItems) && _jsx(Box, {
184
+ children: [tableLayoutOptions.rowActionButtons && tableLayoutOptions.rowActionButtons(), (hasRowReordering === true && onReorderRows || tableLayoutOptions.rowActionMenuItems) && _jsx(Box, {
187
185
  children: _jsx(Button, {
188
186
  endIcon: _jsx(MoreIcon, {}),
189
187
  size: "small",
@@ -1 +1 @@
1
- {"version":3,"file":"TableLayoutContent.js","names":["memo","useCallback","useMemo","useRef","useState","useEffect","styled","MRT_TableContainer","useMaterialReactTable","useTranslation","ArrowDownIcon","ArrowUnsortedIcon","ChevronDownIcon","DragIndicatorIcon","MoreIcon","Box","Button","MenuButton","dataTableImmutableSettings","displayColumnDefOptions","ScrollableTableContainer","RowActions","useOdysseyDesignTokens","useScrollIndication","jsx","_jsx","jsxs","_jsxs","TextWrapper","whiteSpace","textOverflow","overflow","RowActionsContainer","display","TableLayoutContent","columns","data","draggingRow","emptyState","enableVirtualization","getRowId","hasRowReordering","hasRowSelection","isEmpty","isLoading","isNoResults","isRowReorderingDisabled","onReorderRows","pagination","rowReorderingUtilities","rowSelection","setRowSelection","setTableState","tableLayoutOptions","tableState","totalRows","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","shouldUpdateScroll","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","tableInnerContainer","current","tableOuterContainer","odysseyDesignTokens","t","columnIds","map","column","accessorKey","columnOrder","filter","id","rowDensityClassName","rowDensity","defaultCell","cell","value","getValue","hasTextWrapping","columnDef","enableWrapping","children","draggableTableBodyRowClassName","dragHandleStyles","dragHandleText","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","renderRowActions","row","currentIndex","index","pageIndex","pageSize","rowActionButtons","rowActionMenuItems","ariaLabel","buttonVariant","endIcon","menuAlignment","size","rowIndex","undefined","innerWidthStyle","width","emptyStateContainer","sx","scrollTo","clientHeight","shouldDisplayRowActions","hasColumnWithGrow","some","grow","dataTable","state","sorting","columnSorting","columnVisibility","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","ExpandMoreIcon","header","muiTableBodyCellProps","align","className","muiTableHeadCellProps","visibility","variant","isDisabled","muiTableProps","ref","hasColumnResizing","muiTableContainerProps","muiTableBodyProps","tabIndex","height","enableColumnResizing","defaultColumn","Cell","enableRowActions","enableRowOrdering","Boolean","enableRowDragging","muiDetailPanelProps","paddingBlock","getIsExpanded","Spacing3","muiTableBodyRowProps","table","isDetailPanel","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","border","backgroundColor","HueNeutralWhite","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","disabled","renderDetailPanel","enableRowVirtualization","currentColumn","find","sortedColumn","getIsResizing","enableSorting","hasSorting","onSortingChange","sortingUpdater","newSortVal","prevState","enableRowSelection","onRowSelectionChange","renderEmptyRowsFallback","localization","collapse","collapseAll","expand","expandAll","isScrollableEnd","isScrollableStart","MemoizedTableLayoutContent","displayName"],"sources":["../../../../src/labs/DataView/TableLayoutContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n SetStateAction,\n memo,\n useCallback,\n useMemo,\n useRef,\n useState,\n ReactNode,\n Dispatch,\n ReactElement,\n useEffect,\n} from \"react\";\nimport styled, { CSSObject } from \"@emotion/styled\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_TableContainer,\n MRT_TableInstance,\n MRT_TableOptions,\n useMaterialReactTable,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n ArrowDownIcon,\n ArrowUnsortedIcon,\n ChevronDownIcon,\n DragIndicatorIcon,\n MoreIcon,\n} from \"../../icons.generated/index.js\";\nimport { Box } from \"../../Box.js\";\nimport { Button, MenuButton } from \"../../Buttons/index.js\";\nimport {\n TableLayoutProps,\n TableState,\n UniversalProps,\n} from \"./componentTypes.js\";\nimport { DataTableCell } from \"./dataTypes.js\";\nimport {\n dataTableImmutableSettings,\n displayColumnDefOptions,\n ScrollableTableContainer,\n} from \"./tableConstants.js\";\nimport { RowActions } from \"./RowActions.js\";\nimport { useOdysseyDesignTokens } from \"../../OdysseyDesignTokensContext.js\";\nimport { useScrollIndication } from \"../../DataTable/useScrollIndication.js\";\n\nconst TextWrapper = styled(\"div\")({\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n});\n\nconst RowActionsContainer = styled(\"div\")({\n display: \"flex\",\n});\n\nexport type TableLayoutContentProps<TData extends MRT_RowData> = {\n columns: TableLayoutProps<TData>[\"columns\"];\n data: MRT_RowData[];\n draggingRow?: MRT_Row<TData> | null;\n emptyState: ReactNode;\n enableVirtualization?: boolean;\n getRowId: UniversalProps<TData>[\"getRowId\"];\n hasRowReordering: UniversalProps<TData>[\"hasRowReordering\"];\n hasRowSelection: UniversalProps<TData>[\"hasRowSelection\"];\n isEmpty?: boolean;\n isLoading: boolean;\n isNoResults?: boolean;\n isRowReorderingDisabled?: boolean;\n onReorderRows: UniversalProps<TData>[\"onReorderRows\"];\n pagination: {\n pageIndex: number;\n pageSize: number;\n };\n rowReorderingUtilities: {\n dragHandleStyles: CSSObject;\n dragHandleText: {\n title: string;\n \"aria-label\": string;\n };\n draggableTableBodyRowClassName: ({\n currentRowId,\n draggingRowId,\n hoveredRowId,\n }: {\n currentRowId: string;\n draggingRowId?: string;\n hoveredRowId?: string;\n }) => string | undefined;\n handleDragHandleKeyDown: ({\n table,\n row,\n event,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n event: React.KeyboardEvent<HTMLButtonElement>;\n }) => void;\n handleDragHandleOnDragCapture: (table: MRT_TableInstance<TData>) => void;\n handleDragHandleOnDragEnd: (table: MRT_TableInstance<TData>) => void;\n resetDraggingAndHoveredRow: (table: MRT_TableInstance<TData>) => void;\n updateRowOrder: ({\n rowId,\n newRowIndex,\n }: {\n rowId: string;\n newRowIndex: number;\n }) => void;\n };\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n setTableState: Dispatch<SetStateAction<TableState>>;\n tableLayoutOptions: TableLayoutProps<TData>;\n tableState: TableState;\n totalRows: UniversalProps<TData>[\"totalRows\"];\n};\n\ntype TableLayoutContentComponent = (<TData extends MRT_RowData>(\n props: TableLayoutContentProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst TableLayoutContent = <TData extends MRT_RowData>({\n columns,\n data,\n draggingRow,\n emptyState,\n enableVirtualization,\n getRowId,\n hasRowReordering,\n hasRowSelection,\n isEmpty,\n isLoading,\n isNoResults,\n isRowReorderingDisabled,\n onReorderRows,\n pagination,\n rowReorderingUtilities,\n rowSelection,\n setRowSelection,\n setTableState,\n tableLayoutOptions,\n tableState,\n totalRows,\n}: TableLayoutContentProps<TData>) => {\n const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n useState(true);\n const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n useState(true);\n const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n useState<string>(\"100%\");\n const shouldUpdateScroll = useRef<boolean>(false);\n const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n const tableContentRef = useRef<HTMLTableElement>(null);\n\n useScrollIndication({\n setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n setTableInnerContainerWidth: setTableInnerContainerWidth,\n tableInnerContainer: tableInnerContainerRef.current,\n tableOuterContainer: tableOuterContainerRef.current,\n });\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const columnIds = useMemo(() => {\n return columns.map((column) => column.accessorKey) ?? [];\n }, [columns]);\n\n const columnOrder = useMemo(\n () => [\n \"mrt-row-drag\",\n \"mrt-row-select\",\n \"mrt-row-expand\",\n ...(columnIds?.filter((id): id is string => typeof id === \"string\") ||\n []),\n \"mrt-row-actions\",\n ],\n [columnIds],\n );\n\n const rowDensityClassName = useMemo(() => {\n return tableState.rowDensity === \"spacious\"\n ? \"MuiTableBody-spacious\"\n : tableState.rowDensity === \"compact\"\n ? \"MuiTableBody-compact\"\n : \"MuiTableBody-default\";\n }, [tableState]);\n\n const defaultCell = useCallback<\n ({ cell }: { cell: DataTableCell<TData, unknown> }) => ReactElement | string\n >(({ cell }) => {\n const value = cell.getValue<string>();\n const hasTextWrapping =\n cell.column.columnDef.hasTextWrapping ||\n cell.column.columnDef.enableWrapping;\n return hasTextWrapping ? value : <TextWrapper>{value}</TextWrapper>;\n }, []);\n\n const {\n draggableTableBodyRowClassName,\n dragHandleStyles,\n dragHandleText,\n handleDragHandleKeyDown,\n handleDragHandleOnDragCapture,\n handleDragHandleOnDragEnd,\n resetDraggingAndHoveredRow,\n updateRowOrder,\n } = rowReorderingUtilities;\n\n const renderRowActions = useCallback(\n ({ row }: { row: MRT_Row<TData> }) => {\n const currentIndex =\n row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n return (\n <RowActionsContainer>\n {tableLayoutOptions.rowActionButtons?.(row)}\n {(tableLayoutOptions.rowActionMenuItems || hasRowReordering) && (\n <MenuButton\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"floating\"\n endIcon={<MoreIcon />}\n menuAlignment=\"right\"\n size=\"small\"\n >\n <RowActions\n isRowReorderingDisabled={isRowReorderingDisabled}\n row={\n row as unknown as MRT_Row<MRT_RowData> // TODO: FIX THIS! The types are wrong. `row` is incorrectly set in `RowActions` to not be TData.\n }\n rowActionMenuItems={\n // TODO: FIX THIS! The types are wrong. `row` is incorrectly set in `RowActions` to not be TData.\n tableLayoutOptions.rowActionMenuItems as unknown as (\n row: MRT_Row<MRT_RowData>,\n ) => any // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n rowIndex={currentIndex}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows ? updateRowOrder : undefined\n }\n />\n </MenuButton>\n )}\n </RowActionsContainer>\n );\n },\n [\n hasRowReordering,\n isRowReorderingDisabled,\n onReorderRows,\n pagination.pageIndex,\n pagination.pageSize,\n t,\n tableLayoutOptions,\n totalRows,\n updateRowOrder,\n ],\n );\n\n const innerWidthStyle = useMemo(\n () => ({ width: tableInnerContainerWidth }),\n [tableInnerContainerWidth],\n );\n\n const emptyStateContainer = useCallback(\n () => <Box sx={innerWidthStyle}>{emptyState}</Box>,\n [innerWidthStyle, emptyState],\n );\n\n // Scroll to the bottom as soon as data loads after clicking the\n // loadMore pagination button\n useEffect(() => {\n if (enableVirtualization) {\n shouldUpdateScroll.current = true;\n }\n }, [enableVirtualization, pagination]);\n\n useEffect(() => {\n if (\n shouldUpdateScroll.current &&\n tableContentRef.current &&\n typeof tableInnerContainerRef.current?.scrollTo !== \"undefined\"\n ) {\n tableInnerContainerRef.current?.scrollTo(\n 0,\n tableContentRef.current.clientHeight,\n );\n shouldUpdateScroll.current = false;\n }\n }, [data]);\n\n const shouldDisplayRowActions = useMemo(\n () =>\n (hasRowReordering === true && onReorderRows) ||\n tableLayoutOptions.rowActionButtons ||\n tableLayoutOptions.rowActionMenuItems\n ? true\n : false,\n [\n hasRowReordering,\n onReorderRows,\n tableLayoutOptions.rowActionButtons,\n tableLayoutOptions.rowActionMenuItems,\n ],\n );\n\n const hasColumnWithGrow = columns.some((column) => column.grow === true);\n\n const dataTable = useMaterialReactTable<TData>({\n data: (!isEmpty && !isNoResults ? data : []) as TData[],\n columns,\n getRowId,\n state: {\n sorting: tableState.columnSorting,\n columnVisibility: tableState.columnVisibility,\n isLoading,\n rowSelection,\n columnOrder,\n },\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n ExpandMoreIcon: ChevronDownIcon,\n },\n ...dataTableImmutableSettings,\n displayColumnDefOptions: {\n ...(displayColumnDefOptions satisfies Partial<\n MRT_TableOptions<MRT_RowData>[\"displayColumnDefOptions\"]\n >),\n \"mrt-row-actions\": {\n header: \"\",\n grow: !hasColumnWithGrow,\n muiTableBodyCellProps: {\n align: \"right\" as const,\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n muiTableHeadCellProps: {\n align: \"right\" as const,\n sx: {\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n children: (\n <Box sx={{ display: \"flex\", visibility: \"hidden\" }}>\n {tableLayoutOptions.rowActionButtons &&\n // @ts-expect-error TODO: This type is wrong and needs to be fixed\n tableLayoutOptions.rowActionButtons({ id: null })}\n {((hasRowReordering === true && onReorderRows) ||\n tableLayoutOptions.rowActionMenuItems) && (\n <Box>\n <Button\n endIcon={<MoreIcon />}\n size=\"small\"\n variant=\"floating\"\n ariaLabel={t(\"table.moreactions.arialabel\")}\n isDisabled\n />\n </Box>\n )}\n </Box>\n ),\n },\n },\n },\n muiTableProps: {\n ref: tableContentRef,\n className:\n !shouldDisplayRowActions && tableLayoutOptions.hasColumnResizing\n ? hasColumnWithGrow\n ? \"ods-hide-spacer-column\"\n : \"ods-hide-spacer-column ods-column-grow\"\n : \"\",\n },\n muiTableContainerProps: {\n ref: tableInnerContainerRef,\n },\n muiTableBodyProps: () => ({\n className: rowDensityClassName,\n tabIndex: 0,\n /**\n * This is a fix for an issue related to the empty state creating a\n * vertical scrollbar when virtualization is enabled. The root cause\n * is tablebody having height: 0 when virtualization is enabled and there\n * being no data\n * https://okta.slack.com/archives/C7T2H3KNJ/p1742842106148929\n */\n sx:\n isEmpty || isNoResults\n ? {\n height: \"unset\",\n }\n : undefined,\n }),\n enableColumnResizing: tableLayoutOptions.hasColumnResizing,\n defaultColumn: {\n Cell: defaultCell,\n },\n enableRowActions:\n (hasRowReordering === true && onReorderRows) ||\n tableLayoutOptions.rowActionButtons ||\n tableLayoutOptions.rowActionMenuItems\n ? true\n : false,\n renderRowActions: ({ row }) => renderRowActions({ row }),\n enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n muiDetailPanelProps: ({ row }) => ({\n sx: {\n paddingBlock: row.getIsExpanded()\n ? `${odysseyDesignTokens.Spacing3} !important`\n : undefined,\n },\n }),\n muiTableBodyRowProps: ({ table, row, isDetailPanel }) => ({\n className: draggableTableBodyRowClassName({\n currentRowId: row.id,\n draggingRowId: draggingRow?.id,\n hoveredRowId: table.getState().hoveredRow?.id,\n }),\n sx: isDetailPanel\n ? {\n paddingBlock: \"0 !important\",\n border: 0,\n [\"&:hover\"]: {\n backgroundColor: `${odysseyDesignTokens.HueNeutralWhite} !important`,\n },\n }\n : {},\n }),\n muiRowDragHandleProps: ({ table, row }) => ({\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => resetDraggingAndHoveredRow(table),\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n disabled: isRowReorderingDisabled,\n sx: dragHandleStyles,\n ...dragHandleText,\n }),\n renderDetailPanel: tableLayoutOptions.renderDetailPanel,\n enableRowVirtualization: enableVirtualization,\n muiTableHeadCellProps: ({ column: currentColumn }) => ({\n className: tableState.columnSorting.find(\n (sortedColumn) => sortedColumn.id === currentColumn.id,\n )\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n muiTableBodyCellProps: ({ column }) => ({\n className: column.getIsResizing() ? \"isResizing\" : \"\",\n }),\n enableSorting: tableLayoutOptions.hasSorting === true, // I don't know why this needs to be true, but it still works if undefined otherwise\n onSortingChange: (sortingUpdater) => {\n const newSortVal =\n typeof sortingUpdater === \"function\"\n ? sortingUpdater(tableState.columnSorting)\n : tableState.columnSorting;\n setTableState((prevState) => ({\n ...prevState,\n columnSorting: newSortVal,\n }));\n },\n enableRowSelection: hasRowSelection,\n onRowSelectionChange: setRowSelection,\n renderEmptyRowsFallback: emptyStateContainer,\n localization: {\n collapse: t(\"table.rowexpansion.collapse\"),\n collapseAll: t(\"table.rowexpansion.collapseall\"),\n expand: t(\"table.rowexpansion.expand\"),\n expandAll: t(\"table.rowexpansion.expandall\"),\n },\n });\n\n return (\n <ScrollableTableContainer\n isScrollableEnd={!isTableContainerScrolledToEnd}\n isScrollableStart={!isTableContainerScrolledToStart}\n odysseyDesignTokens={odysseyDesignTokens}\n ref={tableOuterContainerRef}\n >\n <MRT_TableContainer table={dataTable} />\n </ScrollableTableContainer>\n );\n};\n\nconst MemoizedTableLayoutContent = memo(\n TableLayoutContent,\n) as TableLayoutContentComponent;\nMemoizedTableLayoutContent.displayName = \"TableLayoutContent\";\n\nexport { MemoizedTableLayoutContent as TableLayoutContent };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TableLayoutContent.js","names":["memo","useCallback","useMemo","useRef","useState","useEffect","styled","MRT_TableContainer","useMaterialReactTable","useTranslation","ArrowDownIcon","ArrowUnsortedIcon","ChevronDownIcon","DragIndicatorIcon","MoreIcon","Box","Button","MenuButton","dataTableImmutableSettings","displayColumnDefOptions","ScrollableTableContainer","RowActions","useOdysseyDesignTokens","useScrollIndication","jsx","_jsx","jsxs","_jsxs","TextWrapper","whiteSpace","textOverflow","overflow","RowActionsContainer","display","TableLayoutContent","columns","data","draggingRow","emptyState","enableVirtualization","getRowId","hasRowReordering","hasRowSelection","isEmpty","isLoading","isNoResults","isRowReorderingDisabled","onReorderRows","pagination","rowReorderingUtilities","rowSelection","setRowSelection","setTableState","tableLayoutOptions","tableState","totalRows","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","shouldUpdateScroll","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","tableInnerContainer","current","tableOuterContainer","odysseyDesignTokens","t","columnIds","map","column","accessorKey","columnOrder","filter","id","rowDensityClassName","rowDensity","defaultCell","cell","value","getValue","hasTextWrapping","columnDef","enableWrapping","children","draggableTableBodyRowClassName","dragHandleStyles","dragHandleText","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","renderRowActions","row","currentIndex","index","pageIndex","pageSize","rowActionButtons","original","rowActionMenuItems","ariaLabel","buttonVariant","endIcon","menuAlignment","size","rowIndex","undefined","innerWidthStyle","width","emptyStateContainer","sx","scrollTo","clientHeight","shouldDisplayRowActions","hasColumnWithGrow","some","grow","dataTable","state","sorting","columnSorting","columnVisibility","icons","ArrowDownwardIcon","DragHandleIcon","SyncAltIcon","ExpandMoreIcon","header","muiTableBodyCellProps","align","className","muiTableHeadCellProps","visibility","variant","isDisabled","muiTableProps","ref","hasColumnResizing","muiTableContainerProps","muiTableBodyProps","tabIndex","height","enableColumnResizing","defaultColumn","Cell","enableRowActions","enableRowOrdering","Boolean","enableRowDragging","muiDetailPanelProps","paddingBlock","getIsExpanded","Spacing3","muiTableBodyRowProps","table","isDetailPanel","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","border","backgroundColor","HueNeutralWhite","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","disabled","renderDetailPanel","enableRowVirtualization","currentColumn","find","sortedColumn","getIsResizing","enableSorting","hasSorting","onSortingChange","sortingUpdater","newSortVal","prevState","enableRowSelection","onRowSelectionChange","renderEmptyRowsFallback","localization","collapse","collapseAll","expand","expandAll","isScrollableEnd","isScrollableStart","MemoizedTableLayoutContent","displayName"],"sources":["../../../../src/labs/DataView/TableLayoutContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n SetStateAction,\n memo,\n useCallback,\n useMemo,\n useRef,\n useState,\n ReactNode,\n Dispatch,\n ReactElement,\n useEffect,\n} from \"react\";\nimport styled, { CSSObject } from \"@emotion/styled\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_TableContainer,\n MRT_TableInstance,\n MRT_TableOptions,\n useMaterialReactTable,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n ArrowDownIcon,\n ArrowUnsortedIcon,\n ChevronDownIcon,\n DragIndicatorIcon,\n MoreIcon,\n} from \"../../icons.generated/index.js\";\nimport { Box } from \"../../Box.js\";\nimport { Button, MenuButton } from \"../../Buttons/index.js\";\nimport {\n TableLayoutProps,\n TableState,\n UniversalProps,\n} from \"./componentTypes.js\";\nimport { DataTableCell } from \"./dataTypes.js\";\nimport {\n dataTableImmutableSettings,\n displayColumnDefOptions,\n ScrollableTableContainer,\n} from \"./tableConstants.js\";\nimport { RowActions } from \"./RowActions.js\";\nimport { useOdysseyDesignTokens } from \"../../OdysseyDesignTokensContext.js\";\nimport { useScrollIndication } from \"../../DataTable/useScrollIndication.js\";\n\nconst TextWrapper = styled(\"div\")({\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n});\n\nconst RowActionsContainer = styled(\"div\")({\n display: \"flex\",\n});\n\nexport type TableLayoutContentProps<TData extends MRT_RowData> = {\n columns: TableLayoutProps<TData>[\"columns\"];\n data: TData[];\n draggingRow?: MRT_Row<TData> | null;\n emptyState: ReactNode;\n enableVirtualization?: boolean;\n getRowId: UniversalProps<TData>[\"getRowId\"];\n hasRowReordering: UniversalProps<TData>[\"hasRowReordering\"];\n hasRowSelection: UniversalProps<TData>[\"hasRowSelection\"];\n isEmpty?: boolean;\n isLoading: boolean;\n isNoResults?: boolean;\n isRowReorderingDisabled?: boolean;\n onReorderRows: UniversalProps<TData>[\"onReorderRows\"];\n pagination: {\n pageIndex: number;\n pageSize: number;\n };\n rowReorderingUtilities: {\n dragHandleStyles: CSSObject;\n dragHandleText: {\n title: string;\n \"aria-label\": string;\n };\n draggableTableBodyRowClassName: ({\n currentRowId,\n draggingRowId,\n hoveredRowId,\n }: {\n currentRowId: string;\n draggingRowId?: string;\n hoveredRowId?: string;\n }) => string | undefined;\n handleDragHandleKeyDown: ({\n table,\n row,\n event,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n event: React.KeyboardEvent<HTMLButtonElement>;\n }) => void;\n handleDragHandleOnDragCapture: (table: MRT_TableInstance<TData>) => void;\n handleDragHandleOnDragEnd: (table: MRT_TableInstance<TData>) => void;\n resetDraggingAndHoveredRow: (table: MRT_TableInstance<TData>) => void;\n updateRowOrder: ({\n rowId,\n newRowIndex,\n }: {\n rowId: string;\n newRowIndex: number;\n }) => void;\n };\n rowSelection: MRT_RowSelectionState;\n setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n setTableState: Dispatch<SetStateAction<TableState>>;\n tableLayoutOptions: TableLayoutProps<TData>;\n tableState: TableState;\n totalRows: UniversalProps<TData>[\"totalRows\"];\n};\n\ntype TableLayoutContentComponent = (<TData extends MRT_RowData>(\n props: TableLayoutContentProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst TableLayoutContent = <TData extends MRT_RowData>({\n columns,\n data,\n draggingRow,\n emptyState,\n enableVirtualization,\n getRowId,\n hasRowReordering,\n hasRowSelection,\n isEmpty,\n isLoading,\n isNoResults,\n isRowReorderingDisabled,\n onReorderRows,\n pagination,\n rowReorderingUtilities,\n rowSelection,\n setRowSelection,\n setTableState,\n tableLayoutOptions,\n tableState,\n totalRows,\n}: TableLayoutContentProps<TData>) => {\n const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n useState(true);\n const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n useState(true);\n const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n useState<string>(\"100%\");\n const shouldUpdateScroll = useRef<boolean>(false);\n const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n const tableContentRef = useRef<HTMLTableElement>(null);\n\n useScrollIndication({\n setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n setTableInnerContainerWidth: setTableInnerContainerWidth,\n tableInnerContainer: tableInnerContainerRef.current,\n tableOuterContainer: tableOuterContainerRef.current,\n });\n\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const columnIds = useMemo(() => {\n return columns.map((column) => column.accessorKey) ?? [];\n }, [columns]);\n\n const columnOrder = useMemo(\n () => [\n \"mrt-row-drag\",\n \"mrt-row-select\",\n \"mrt-row-expand\",\n ...(columnIds?.filter((id): id is string => typeof id === \"string\") ||\n []),\n \"mrt-row-actions\",\n ],\n [columnIds],\n );\n\n const rowDensityClassName = useMemo(() => {\n return tableState.rowDensity === \"spacious\"\n ? \"MuiTableBody-spacious\"\n : tableState.rowDensity === \"compact\"\n ? \"MuiTableBody-compact\"\n : \"MuiTableBody-default\";\n }, [tableState]);\n\n const defaultCell = useCallback<\n ({ cell }: { cell: DataTableCell<TData, unknown> }) => ReactElement | string\n >(({ cell }) => {\n const value = cell.getValue<string>();\n const hasTextWrapping =\n cell.column.columnDef.hasTextWrapping ||\n cell.column.columnDef.enableWrapping;\n return hasTextWrapping ? value : <TextWrapper>{value}</TextWrapper>;\n }, []);\n\n const {\n draggableTableBodyRowClassName,\n dragHandleStyles,\n dragHandleText,\n handleDragHandleKeyDown,\n handleDragHandleOnDragCapture,\n handleDragHandleOnDragEnd,\n resetDraggingAndHoveredRow,\n updateRowOrder,\n } = rowReorderingUtilities;\n\n const renderRowActions = useCallback(\n ({ row }: { row: MRT_Row<TData> }) => {\n const currentIndex =\n row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n return (\n <RowActionsContainer>\n {tableLayoutOptions.rowActionButtons?.(row.original)}\n {(tableLayoutOptions.rowActionMenuItems || hasRowReordering) && (\n <MenuButton\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"floating\"\n endIcon={<MoreIcon />}\n menuAlignment=\"right\"\n size=\"small\"\n >\n <RowActions\n isRowReorderingDisabled={isRowReorderingDisabled}\n row={row}\n rowActionMenuItems={\n tableLayoutOptions.rowActionMenuItems as TableLayoutProps<MRT_RowData>[\"rowActionMenuItems\"]\n }\n rowIndex={currentIndex}\n totalRows={totalRows}\n updateRowOrder={\n hasRowReordering && onReorderRows ? updateRowOrder : undefined\n }\n />\n </MenuButton>\n )}\n </RowActionsContainer>\n );\n },\n [\n hasRowReordering,\n isRowReorderingDisabled,\n onReorderRows,\n pagination.pageIndex,\n pagination.pageSize,\n t,\n tableLayoutOptions,\n totalRows,\n updateRowOrder,\n ],\n );\n\n const innerWidthStyle = useMemo(\n () => ({ width: tableInnerContainerWidth }),\n [tableInnerContainerWidth],\n );\n\n const emptyStateContainer = useCallback(\n () => <Box sx={innerWidthStyle}>{emptyState}</Box>,\n [innerWidthStyle, emptyState],\n );\n\n // Scroll to the bottom as soon as data loads after clicking the\n // loadMore pagination button\n useEffect(() => {\n if (enableVirtualization) {\n shouldUpdateScroll.current = true;\n }\n }, [enableVirtualization, pagination]);\n\n useEffect(() => {\n if (\n shouldUpdateScroll.current &&\n tableContentRef.current &&\n typeof tableInnerContainerRef.current?.scrollTo !== \"undefined\"\n ) {\n tableInnerContainerRef.current?.scrollTo(\n 0,\n tableContentRef.current.clientHeight,\n );\n shouldUpdateScroll.current = false;\n }\n }, [data]);\n\n const shouldDisplayRowActions = useMemo(\n () =>\n (hasRowReordering === true && onReorderRows) ||\n tableLayoutOptions.rowActionButtons ||\n tableLayoutOptions.rowActionMenuItems\n ? true\n : false,\n [\n hasRowReordering,\n onReorderRows,\n tableLayoutOptions.rowActionButtons,\n tableLayoutOptions.rowActionMenuItems,\n ],\n );\n\n const hasColumnWithGrow = columns.some((column) => column.grow === true);\n\n const dataTable = useMaterialReactTable<TData>({\n data: !isEmpty && !isNoResults ? data : [],\n columns,\n getRowId,\n state: {\n sorting: tableState.columnSorting,\n columnVisibility: tableState.columnVisibility,\n isLoading,\n rowSelection,\n columnOrder,\n },\n icons: {\n ArrowDownwardIcon: ArrowDownIcon,\n DragHandleIcon: DragIndicatorIcon,\n SyncAltIcon: ArrowUnsortedIcon,\n ExpandMoreIcon: ChevronDownIcon,\n },\n ...dataTableImmutableSettings,\n displayColumnDefOptions: {\n ...(displayColumnDefOptions satisfies Partial<\n MRT_TableOptions<MRT_RowData>[\"displayColumnDefOptions\"]\n >),\n \"mrt-row-actions\": {\n header: \"\",\n grow: !hasColumnWithGrow,\n muiTableBodyCellProps: {\n align: \"right\" as const,\n sx: {\n overflow: \"visible\",\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n },\n muiTableHeadCellProps: {\n align: \"right\" as const,\n sx: {\n width: \"unset\",\n },\n className: \"ods-actions-cell\",\n children: (\n <Box sx={{ display: \"flex\", visibility: \"hidden\" }}>\n {tableLayoutOptions.rowActionButtons &&\n tableLayoutOptions.rowActionButtons()}\n {((hasRowReordering === true && onReorderRows) ||\n tableLayoutOptions.rowActionMenuItems) && (\n <Box>\n <Button\n endIcon={<MoreIcon />}\n size=\"small\"\n variant=\"floating\"\n ariaLabel={t(\"table.moreactions.arialabel\")}\n isDisabled\n />\n </Box>\n )}\n </Box>\n ),\n },\n },\n },\n muiTableProps: {\n ref: tableContentRef,\n className:\n !shouldDisplayRowActions && tableLayoutOptions.hasColumnResizing\n ? hasColumnWithGrow\n ? \"ods-hide-spacer-column\"\n : \"ods-hide-spacer-column ods-column-grow\"\n : \"\",\n },\n muiTableContainerProps: {\n ref: tableInnerContainerRef,\n },\n muiTableBodyProps: () => ({\n className: rowDensityClassName,\n tabIndex: 0,\n /**\n * This is a fix for an issue related to the empty state creating a\n * vertical scrollbar when virtualization is enabled. The root cause\n * is tablebody having height: 0 when virtualization is enabled and there\n * being no data\n * https://okta.slack.com/archives/C7T2H3KNJ/p1742842106148929\n */\n sx:\n isEmpty || isNoResults\n ? {\n height: \"unset\",\n }\n : undefined,\n }),\n enableColumnResizing: tableLayoutOptions.hasColumnResizing,\n defaultColumn: {\n Cell: defaultCell,\n },\n enableRowActions:\n (hasRowReordering === true && onReorderRows) ||\n tableLayoutOptions.rowActionButtons ||\n tableLayoutOptions.rowActionMenuItems\n ? true\n : false,\n renderRowActions: ({ row }) => renderRowActions({ row }),\n enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n muiDetailPanelProps: ({ row }) => ({\n sx: {\n paddingBlock: row.getIsExpanded()\n ? `${odysseyDesignTokens.Spacing3} !important`\n : undefined,\n },\n }),\n muiTableBodyRowProps: ({ table, row, isDetailPanel }) => ({\n className: draggableTableBodyRowClassName({\n currentRowId: row.id,\n draggingRowId: draggingRow?.id,\n hoveredRowId: table.getState().hoveredRow?.id,\n }),\n sx: isDetailPanel\n ? {\n paddingBlock: \"0 !important\",\n border: 0,\n [\"&:hover\"]: {\n backgroundColor: `${odysseyDesignTokens.HueNeutralWhite} !important`,\n },\n }\n : {},\n }),\n muiRowDragHandleProps: ({ table, row }) => ({\n onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n onBlur: () => resetDraggingAndHoveredRow(table),\n onDragEnd: () => handleDragHandleOnDragEnd(table),\n onDragCapture: () => handleDragHandleOnDragCapture(table),\n disabled: isRowReorderingDisabled,\n sx: dragHandleStyles,\n ...dragHandleText,\n }),\n renderDetailPanel: tableLayoutOptions.renderDetailPanel,\n enableRowVirtualization: enableVirtualization,\n muiTableHeadCellProps: ({ column: currentColumn }) => ({\n className: tableState.columnSorting.find(\n (sortedColumn) => sortedColumn.id === currentColumn.id,\n )\n ? \"isSorted\"\n : \"isUnsorted\",\n }),\n muiTableBodyCellProps: ({ column }) => ({\n className: column.getIsResizing() ? \"isResizing\" : \"\",\n }),\n enableSorting: tableLayoutOptions.hasSorting === true, // I don't know why this needs to be true, but it still works if undefined otherwise\n onSortingChange: (sortingUpdater) => {\n const newSortVal =\n typeof sortingUpdater === \"function\"\n ? sortingUpdater(tableState.columnSorting)\n : tableState.columnSorting;\n setTableState((prevState) => ({\n ...prevState,\n columnSorting: newSortVal,\n }));\n },\n enableRowSelection: hasRowSelection,\n onRowSelectionChange: setRowSelection,\n renderEmptyRowsFallback: emptyStateContainer,\n localization: {\n collapse: t(\"table.rowexpansion.collapse\"),\n collapseAll: t(\"table.rowexpansion.collapseall\"),\n expand: t(\"table.rowexpansion.expand\"),\n expandAll: t(\"table.rowexpansion.expandall\"),\n },\n });\n\n return (\n <ScrollableTableContainer\n isScrollableEnd={!isTableContainerScrolledToEnd}\n isScrollableStart={!isTableContainerScrolledToStart}\n odysseyDesignTokens={odysseyDesignTokens}\n ref={tableOuterContainerRef}\n >\n <MRT_TableContainer table={dataTable} />\n </ScrollableTableContainer>\n );\n};\n\nconst MemoizedTableLayoutContent = memo(\n TableLayoutContent,\n) as TableLayoutContentComponent;\nMemoizedTableLayoutContent.displayName = \"TableLayoutContent\";\n\nexport { MemoizedTableLayoutContent as TableLayoutContent };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAEEA,IAAI,EACJC,WAAW,EACXC,OAAO,EACPC,MAAM,EACNC,QAAQ,EAIRC,SAAS,QACJ,OAAO;AACd,OAAOC,MAAM,MAAqB,iBAAiB;AACnD,SAIEC,kBAAkB,EAGlBC,qBAAqB,QAChB,sBAAsB;AAC7B,SAASC,cAAc,QAAQ,eAAe;AAE9C,SACEC,aAAa,EACbC,iBAAiB,EACjBC,eAAe,EACfC,iBAAiB,EACjBC,QAAQ,QACH,gCAAgC;AACvC,SAASC,GAAG,QAAQ,cAAc;AAClC,SAASC,MAAM,EAAEC,UAAU,QAAQ,wBAAwB;AAO3D,SACEC,0BAA0B,EAC1BC,uBAAuB,EACvBC,wBAAwB,QACnB,qBAAqB;AAC5B,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,sBAAsB,QAAQ,qCAAqC;AAC5E,SAASC,mBAAmB,QAAQ,wCAAwC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE7E,MAAMC,WAAW,GAAGtB,MAAM,CAAC,KAAK,CAAC,CAAC;EAChCuB,UAAU,EAAE,QAAQ;EACpBC,YAAY,EAAE,UAAU;EACxBC,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,MAAMC,mBAAmB,GAAG1B,MAAM,CAAC,KAAK,CAAC,CAAC;EACxC2B,OAAO,EAAE;AACX,CAAC,CAAC;AAqEF,MAAMC,kBAAkB,GAAGA,CAA4B;EACrDC,OAAO;EACPC,IAAI;EACJC,WAAW;EACXC,UAAU;EACVC,oBAAoB;EACpBC,QAAQ;EACRC,gBAAgB;EAChBC,eAAe;EACfC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,uBAAuB;EACvBC,aAAa;EACbC,UAAU;EACVC,sBAAsB;EACtBC,YAAY;EACZC,eAAe;EACfC,aAAa;EACbC,kBAAkB;EAClBC,UAAU;EACVC;AAC8B,CAAC,KAAK;EACpC,MAAM,CAACC,+BAA+B,EAAEC,kCAAkC,CAAC,GACzErD,QAAQ,CAAC,IAAI,CAAC;EAChB,MAAM,CAACsD,6BAA6B,EAAEC,gCAAgC,CAAC,GACrEvD,QAAQ,CAAC,IAAI,CAAC;EAChB,MAAM,CAACwD,wBAAwB,EAAEC,2BAA2B,CAAC,GAC3DzD,QAAQ,CAAS,MAAM,CAAC;EAC1B,MAAM0D,kBAAkB,GAAG3D,MAAM,CAAU,KAAK,CAAC;EACjD,MAAM4D,sBAAsB,GAAG5D,MAAM,CAAiB,IAAI,CAAC;EAC3D,MAAM6D,sBAAsB,GAAG7D,MAAM,CAAiB,IAAI,CAAC;EAC3D,MAAM8D,eAAe,GAAG9D,MAAM,CAAmB,IAAI,CAAC;EAEtDoB,mBAAmB,CAAC;IAClBoC,gCAAgC,EAAEA,gCAAgC;IAClEF,kCAAkC,EAAEA,kCAAkC;IACtEI,2BAA2B,EAAEA,2BAA2B;IACxDK,mBAAmB,EAAEF,sBAAsB,CAACG,OAAO;IACnDC,mBAAmB,EAAEL,sBAAsB,CAACI;EAC9C,CAAC,CAAC;EAEF,MAAME,mBAAmB,GAAG/C,sBAAsB,CAAC,CAAC;EACpD,MAAM;IAAEgD;EAAE,CAAC,GAAG7D,cAAc,CAAC,CAAC;EAE9B,MAAM8D,SAAS,GAAGrE,OAAO,CAAC,MAAM;IAC9B,OAAOiC,OAAO,CAACqC,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACC,WAAW,CAAC,IAAI,EAAE;EAC1D,CAAC,EAAE,CAACvC,OAAO,CAAC,CAAC;EAEb,MAAMwC,WAAW,GAAGzE,OAAO,CACzB,MAAM,CACJ,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,IAAIqE,SAAS,EAAEK,MAAM,CAAEC,EAAE,IAAmB,OAAOA,EAAE,KAAK,QAAQ,CAAC,IACjE,EAAE,CAAC,EACL,iBAAiB,CAClB,EACD,CAACN,SAAS,CACZ,CAAC;EAED,MAAMO,mBAAmB,GAAG5E,OAAO,CAAC,MAAM;IACxC,OAAOoD,UAAU,CAACyB,UAAU,KAAK,UAAU,GACvC,uBAAuB,GACvBzB,UAAU,CAACyB,UAAU,KAAK,SAAS,GACjC,sBAAsB,GACtB,sBAAsB;EAC9B,CAAC,EAAE,CAACzB,UAAU,CAAC,CAAC;EAEhB,MAAM0B,WAAW,GAAG/E,WAAW,CAE7B,CAAC;IAAEgF;EAAK,CAAC,KAAK;IACd,MAAMC,KAAK,GAAGD,IAAI,CAACE,QAAQ,CAAS,CAAC;IACrC,MAAMC,eAAe,GACnBH,IAAI,CAACR,MAAM,CAACY,SAAS,CAACD,eAAe,IACrCH,IAAI,CAACR,MAAM,CAACY,SAAS,CAACC,cAAc;IACtC,OAAOF,eAAe,GAAGF,KAAK,GAAGzD,IAAA,CAACG,WAAW;MAAA2D,QAAA,EAAEL;IAAK,CAAc,CAAC;EACrE,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM;IACJM,8BAA8B;IAC9BC,gBAAgB;IAChBC,cAAc;IACdC,uBAAuB;IACvBC,6BAA6B;IAC7BC,yBAAyB;IACzBC,0BAA0B;IAC1BC;EACF,CAAC,GAAG9C,sBAAsB;EAE1B,MAAM+C,gBAAgB,GAAG/F,WAAW,CAClC,CAAC;IAAEgG;EAA6B,CAAC,KAAK;IACpC,MAAMC,YAAY,GAChBD,GAAG,CAACE,KAAK,GAAG,CAACnD,UAAU,CAACoD,SAAS,GAAG,CAAC,IAAIpD,UAAU,CAACqD,QAAQ;IAC9D,OACE1E,KAAA,CAACK,mBAAmB;MAAAuD,QAAA,GACjBlC,kBAAkB,CAACiD,gBAAgB,GAAGL,GAAG,CAACM,QAAQ,CAAC,EACnD,CAAClD,kBAAkB,CAACmD,kBAAkB,IAAI/D,gBAAgB,KACzDhB,IAAA,CAACR,UAAU;QACTwF,SAAS,EAAEnC,CAAC,CAAC,6BAA6B,CAAE;QAC5CoC,aAAa,EAAC,UAAU;QACxBC,OAAO,EAAElF,IAAA,CAACX,QAAQ,IAAE,CAAE;QACtB8F,aAAa,EAAC,OAAO;QACrBC,IAAI,EAAC,OAAO;QAAAtB,QAAA,EAEZ9D,IAAA,CAACJ,UAAU;UACTyB,uBAAuB,EAAEA,uBAAwB;UACjDmD,GAAG,EAAEA,GAAI;UACTO,kBAAkB,EAChBnD,kBAAkB,CAACmD,kBACpB;UACDM,QAAQ,EAAEZ,YAAa;UACvB3C,SAAS,EAAEA,SAAU;UACrBwC,cAAc,EACZtD,gBAAgB,IAAIM,aAAa,GAAGgD,cAAc,GAAGgB;QACtD,CACF;MAAC,CACQ,CACb;IAAA,CACkB,CAAC;EAE1B,CAAC,EACD,CACEtE,gBAAgB,EAChBK,uBAAuB,EACvBC,aAAa,EACbC,UAAU,CAACoD,SAAS,EACpBpD,UAAU,CAACqD,QAAQ,EACnB/B,CAAC,EACDjB,kBAAkB,EAClBE,SAAS,EACTwC,cAAc,CAElB,CAAC;EAED,MAAMiB,eAAe,GAAG9G,OAAO,CAC7B,OAAO;IAAE+G,KAAK,EAAErD;EAAyB,CAAC,CAAC,EAC3C,CAACA,wBAAwB,CAC3B,CAAC;EAED,MAAMsD,mBAAmB,GAAGjH,WAAW,CACrC,MAAMwB,IAAA,CAACV,GAAG;IAACoG,EAAE,EAAEH,eAAgB;IAAAzB,QAAA,EAAEjD;EAAU,CAAM,CAAC,EAClD,CAAC0E,eAAe,EAAE1E,UAAU,CAC9B,CAAC;EAIDjC,SAAS,CAAC,MAAM;IACd,IAAIkC,oBAAoB,EAAE;MACxBuB,kBAAkB,CAACK,OAAO,GAAG,IAAI;IACnC;EACF,CAAC,EAAE,CAAC5B,oBAAoB,EAAES,UAAU,CAAC,CAAC;EAEtC3C,SAAS,CAAC,MAAM;IACd,IACEyD,kBAAkB,CAACK,OAAO,IAC1BF,eAAe,CAACE,OAAO,IACvB,OAAOH,sBAAsB,CAACG,OAAO,EAAEiD,QAAQ,KAAK,WAAW,EAC/D;MACApD,sBAAsB,CAACG,OAAO,EAAEiD,QAAQ,CACtC,CAAC,EACDnD,eAAe,CAACE,OAAO,CAACkD,YAC1B,CAAC;MACDvD,kBAAkB,CAACK,OAAO,GAAG,KAAK;IACpC;EACF,CAAC,EAAE,CAAC/B,IAAI,CAAC,CAAC;EAEV,MAAMkF,uBAAuB,GAAGpH,OAAO,CACrC,MACGuC,gBAAgB,KAAK,IAAI,IAAIM,aAAa,IAC3CM,kBAAkB,CAACiD,gBAAgB,IACnCjD,kBAAkB,CAACmD,kBAAkB,GACjC,IAAI,GACJ,KAAK,EACX,CACE/D,gBAAgB,EAChBM,aAAa,EACbM,kBAAkB,CAACiD,gBAAgB,EACnCjD,kBAAkB,CAACmD,kBAAkB,CAEzC,CAAC;EAED,MAAMe,iBAAiB,GAAGpF,OAAO,CAACqF,IAAI,CAAE/C,MAAM,IAAKA,MAAM,CAACgD,IAAI,KAAK,IAAI,CAAC;EAExE,MAAMC,SAAS,GAAGlH,qBAAqB,CAAQ;IAC7C4B,IAAI,EAAE,CAACO,OAAO,IAAI,CAACE,WAAW,GAAGT,IAAI,GAAG,EAAE;IAC1CD,OAAO;IACPK,QAAQ;IACRmF,KAAK,EAAE;MACLC,OAAO,EAAEtE,UAAU,CAACuE,aAAa;MACjCC,gBAAgB,EAAExE,UAAU,CAACwE,gBAAgB;MAC7ClF,SAAS;MACTM,YAAY;MACZyB;IACF,CAAC;IACDoD,KAAK,EAAE;MACLC,iBAAiB,EAAEtH,aAAa;MAChCuH,cAAc,EAAEpH,iBAAiB;MACjCqH,WAAW,EAAEvH,iBAAiB;MAC9BwH,cAAc,EAAEvH;IAClB,CAAC;IACD,GAAGM,0BAA0B;IAC7BC,uBAAuB,EAAE;MACvB,GAAIA,uBAEF;MACF,iBAAiB,EAAE;QACjBiH,MAAM,EAAE,EAAE;QACVX,IAAI,EAAE,CAACF,iBAAiB;QACxBc,qBAAqB,EAAE;UACrBC,KAAK,EAAE,OAAgB;UACvBnB,EAAE,EAAE;YACFpF,QAAQ,EAAE,SAAS;YACnBkF,KAAK,EAAE;UACT,CAAC;UACDsB,SAAS,EAAE;QACb,CAAC;QACDC,qBAAqB,EAAE;UACrBF,KAAK,EAAE,OAAgB;UACvBnB,EAAE,EAAE;YACFF,KAAK,EAAE;UACT,CAAC;UACDsB,SAAS,EAAE,kBAAkB;UAC7BhD,QAAQ,EACN5D,KAAA,CAACZ,GAAG;YAACoG,EAAE,EAAE;cAAElF,OAAO,EAAE,MAAM;cAAEwG,UAAU,EAAE;YAAS,CAAE;YAAAlD,QAAA,GAChDlC,kBAAkB,CAACiD,gBAAgB,IAClCjD,kBAAkB,CAACiD,gBAAgB,CAAC,CAAC,EACtC,CAAE7D,gBAAgB,KAAK,IAAI,IAAIM,aAAa,IAC3CM,kBAAkB,CAACmD,kBAAkB,KACrC/E,IAAA,CAACV,GAAG;cAAAwE,QAAA,EACF9D,IAAA,CAACT,MAAM;gBACL2F,OAAO,EAAElF,IAAA,CAACX,QAAQ,IAAE,CAAE;gBACtB+F,IAAI,EAAC,OAAO;gBACZ6B,OAAO,EAAC,UAAU;gBAClBjC,SAAS,EAAEnC,CAAC,CAAC,6BAA6B,CAAE;gBAC5CqE,UAAU;cAAA,CACX;YAAC,CACC,CACN;UAAA,CACE;QAET;MACF;IACF,CAAC;IACDC,aAAa,EAAE;MACbC,GAAG,EAAE5E,eAAe;MACpBsE,SAAS,EACP,CAACjB,uBAAuB,IAAIjE,kBAAkB,CAACyF,iBAAiB,GAC5DvB,iBAAiB,GACf,wBAAwB,GACxB,wCAAwC,GAC1C;IACR,CAAC;IACDwB,sBAAsB,EAAE;MACtBF,GAAG,EAAE7E;IACP,CAAC;IACDgF,iBAAiB,EAAEA,CAAA,MAAO;MACxBT,SAAS,EAAEzD,mBAAmB;MAC9BmE,QAAQ,EAAE,CAAC;MAQX9B,EAAE,EACAxE,OAAO,IAAIE,WAAW,GAClB;QACEqG,MAAM,EAAE;MACV,CAAC,GACDnC;IACR,CAAC,CAAC;IACFoC,oBAAoB,EAAE9F,kBAAkB,CAACyF,iBAAiB;IAC1DM,aAAa,EAAE;MACbC,IAAI,EAAErE;IACR,CAAC;IACDsE,gBAAgB,EACb7G,gBAAgB,KAAK,IAAI,IAAIM,aAAa,IAC3CM,kBAAkB,CAACiD,gBAAgB,IACnCjD,kBAAkB,CAACmD,kBAAkB,GACjC,IAAI,GACJ,KAAK;IACXR,gBAAgB,EAAEA,CAAC;MAAEC;IAAI,CAAC,KAAKD,gBAAgB,CAAC;MAAEC;IAAI,CAAC,CAAC;IACxDsD,iBAAiB,EAAE9G,gBAAgB,IAAI+G,OAAO,CAACzG,aAAa,CAAC;IAC7D0G,iBAAiB,EAAEhH,gBAAgB,IAAI+G,OAAO,CAACzG,aAAa,CAAC;IAC7D2G,mBAAmB,EAAEA,CAAC;MAAEzD;IAAI,CAAC,MAAM;MACjCkB,EAAE,EAAE;QACFwC,YAAY,EAAE1D,GAAG,CAAC2D,aAAa,CAAC,CAAC,GAC7B,GAAGvF,mBAAmB,CAACwF,QAAQ,aAAa,GAC5C9C;MACN;IACF,CAAC,CAAC;IACF+C,oBAAoB,EAAEA,CAAC;MAAEC,KAAK;MAAE9D,GAAG;MAAE+D;IAAc,CAAC,MAAM;MACxDzB,SAAS,EAAE/C,8BAA8B,CAAC;QACxCyE,YAAY,EAAEhE,GAAG,CAACpB,EAAE;QACpBqF,aAAa,EAAE7H,WAAW,EAAEwC,EAAE;QAC9BsF,YAAY,EAAEJ,KAAK,CAACK,QAAQ,CAAC,CAAC,CAACC,UAAU,EAAExF;MAC7C,CAAC,CAAC;MACFsC,EAAE,EAAE6C,aAAa,GACb;QACEL,YAAY,EAAE,cAAc;QAC5BW,MAAM,EAAE,CAAC;QACT,CAAC,SAAS,GAAG;UACXC,eAAe,EAAE,GAAGlG,mBAAmB,CAACmG,eAAe;QACzD;MACF,CAAC,GACD,CAAC;IACP,CAAC,CAAC;IACFC,qBAAqB,EAAEA,CAAC;MAAEV,KAAK;MAAE9D;IAAI,CAAC,MAAM;MAC1CyE,SAAS,EAAGC,KAAK,IAAKhF,uBAAuB,CAAC;QAAEoE,KAAK;QAAE9D,GAAG;QAAE0E;MAAM,CAAC,CAAC;MACpEC,MAAM,EAAEA,CAAA,KAAM9E,0BAA0B,CAACiE,KAAK,CAAC;MAC/Cc,SAAS,EAAEA,CAAA,KAAMhF,yBAAyB,CAACkE,KAAK,CAAC;MACjDe,aAAa,EAAEA,CAAA,KAAMlF,6BAA6B,CAACmE,KAAK,CAAC;MACzDgB,QAAQ,EAAEjI,uBAAuB;MACjCqE,EAAE,EAAE1B,gBAAgB;MACpB,GAAGC;IACL,CAAC,CAAC;IACFsF,iBAAiB,EAAE3H,kBAAkB,CAAC2H,iBAAiB;IACvDC,uBAAuB,EAAE1I,oBAAoB;IAC7CiG,qBAAqB,EAAEA,CAAC;MAAE/D,MAAM,EAAEyG;IAAc,CAAC,MAAM;MACrD3C,SAAS,EAAEjF,UAAU,CAACuE,aAAa,CAACsD,IAAI,CACrCC,YAAY,IAAKA,YAAY,CAACvG,EAAE,KAAKqG,aAAa,CAACrG,EACtD,CAAC,GACG,UAAU,GACV;IACN,CAAC,CAAC;IACFwD,qBAAqB,EAAEA,CAAC;MAAE5D;IAAO,CAAC,MAAM;MACtC8D,SAAS,EAAE9D,MAAM,CAAC4G,aAAa,CAAC,CAAC,GAAG,YAAY,GAAG;IACrD,CAAC,CAAC;IACFC,aAAa,EAAEjI,kBAAkB,CAACkI,UAAU,KAAK,IAAI;IACrDC,eAAe,EAAGC,cAAc,IAAK;MACnC,MAAMC,UAAU,GACd,OAAOD,cAAc,KAAK,UAAU,GAChCA,cAAc,CAACnI,UAAU,CAACuE,aAAa,CAAC,GACxCvE,UAAU,CAACuE,aAAa;MAC9BzE,aAAa,CAAEuI,SAAS,KAAM;QAC5B,GAAGA,SAAS;QACZ9D,aAAa,EAAE6D;MACjB,CAAC,CAAC,CAAC;IACL,CAAC;IACDE,kBAAkB,EAAElJ,eAAe;IACnCmJ,oBAAoB,EAAE1I,eAAe;IACrC2I,uBAAuB,EAAE5E,mBAAmB;IAC5C6E,YAAY,EAAE;MACZC,QAAQ,EAAE1H,CAAC,CAAC,6BAA6B,CAAC;MAC1C2H,WAAW,EAAE3H,CAAC,CAAC,gCAAgC,CAAC;MAChD4H,MAAM,EAAE5H,CAAC,CAAC,2BAA2B,CAAC;MACtC6H,SAAS,EAAE7H,CAAC,CAAC,8BAA8B;IAC7C;EACF,CAAC,CAAC;EAEF,OACE7C,IAAA,CAACL,wBAAwB;IACvBgL,eAAe,EAAE,CAAC1I,6BAA8B;IAChD2I,iBAAiB,EAAE,CAAC7I,+BAAgC;IACpDa,mBAAmB,EAAEA,mBAAoB;IACzCwE,GAAG,EAAE9E,sBAAuB;IAAAwB,QAAA,EAE5B9D,IAAA,CAAClB,kBAAkB;MAACwJ,KAAK,EAAErC;IAAU,CAAE;EAAC,CAChB,CAAC;AAE/B,CAAC;AAED,MAAM4E,0BAA0B,GAAGtM,IAAI,CACrCkC,kBACF,CAAgC;AAChCoK,0BAA0B,CAACC,WAAW,GAAG,oBAAoB;AAE7D,SAASD,0BAA0B,IAAIpK,kBAAkB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterConversion.js","names":["useCallback","useMemo","useFilterConversion","columns","filters","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","id","header","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat"],"sources":["../../../../src/labs/DataView/useFilterConversion.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { useCallback, useMemo } from \"react\";\nimport { MRT_RowData } from \"material-react-table\";\n\nimport { DataFilter } from \"../DataFilters.js\";\nimport { DataTableColumn } from \"../../DataTable/index.js\";\nimport { UniversalProps, TableLayoutProps } from \"./componentTypes.js\";\n\ntype FilterConversionType<TData extends MRT_RowData> = {\n columns?: TableLayoutProps<TData>[\"columns\"];\n filters?: UniversalProps<TData>[\"filters\"];\n};\n\nexport const useFilterConversion = <TData extends MRT_RowData>({\n columns,\n filters,\n}: FilterConversionType<TData>) => {\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<MRT_RowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: (option.label ?? option.value) as string,\n value: (option.value ?? option.label) as string,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<TData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? {\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n }\n : null,\n [convertFilterSelectOptions],\n );\n\n const dataTableFilters = useMemo(() => {\n // Filters may be manually set via the `filters` variable;\n // If not, they may be inferred from `columns`\n const providedFilters = filters || columns || [];\n\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns?.find(\n (column) => column.accessorKey === item,\n );\n const filter = foundColumn && convertColumnToFilter(foundColumn);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"accessorKey\" in item) {\n const filter = convertColumnToFilter(item);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"label\" in item) {\n return accumulator.concat(item);\n }\n\n return accumulator;\n }, []);\n }, [columns, convertColumnToFilter, filters]);\n\n return dataTableFilters;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAY5C,OAAO,MAAMC,mBAAmB,GAAGA,CAA4B;EAC7DC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,0BAA0B,GAAGL,WAAW,CAC3CM,OAA4D,IAC3DA,OAAO,EAAEC,GAAG,CAAEC,MAAM,IAClB,OAAOA,MAAM,KAAK,QAAQ,GACtB;IACEC,KAAK,EAAED,MAAM;IACbE,KAAK,EAAEF;EACT,CAAC,GACD;IAGEC,KAAK,EAAGD,MAAM,CAACC,KAAK,IAAID,MAAM,CAACE,KAAgB;IAC/CA,KAAK,EAAGF,MAAM,CAACE,KAAK,IAAIF,MAAM,CAACC;EACjC,CACN,CAAC,EACH,EACF,CAAC;EAED,MAAME,qBAAqB,GAAGX,WAAW,CACtCY,MAA8B,IAC7BA,MAAM,CAACC,kBAAkB,KAAK,KAAK,IAAID,MAAM,CAACE,WAAW,GACrD;IACEC,EAAE,EAAEH,MAAM,CAACE,WAAW;IACtBL,KAAK,EAAEG,MAAM,CAACI,MAAM;IACpBC,OAAO,EAAEL,MAAM,CAACM,aAAa;IAC7BZ,OAAO,EAAED,0BAA0B,CAACO,MAAM,CAACO,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACd,0BAA0B,CAC7B,CAAC;EAED,MAAMe,gBAAgB,GAAGnB,OAAO,CAAC,MAAM;IAGrC,MAAMoB,eAAe,GAAGjB,OAAO,IAAID,OAAO,IAAI,EAAE;IAEhD,OAAOkB,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAGtB,OAAO,EAAEuB,IAAI,CAC9Bd,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKU,IACrC,CAAC;QACD,MAAMG,MAAM,GAAGF,WAAW,IAAId,qBAAqB,CAACc,WAAW,CAAC;QAChE,OAAOE,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,aAAa,IAAIC,IAAI,EAAE;QACzB,MAAMG,MAAM,GAAGhB,qBAAqB,CAACa,IAAI,CAAC;QAC1C,OAAOG,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,OAAO,IAAIC,IAAI,EAAE;QACnB,OAAOD,WAAW,CAACK,MAAM,CAACJ,IAAI,CAAC;MACjC;MAEA,OAAOD,WAAW;IACpB,CAAC,EAAE,EAAE,CAAC;EACR,CAAC,EAAE,CAACpB,OAAO,EAAEQ,qBAAqB,EAAEP,OAAO,CAAC,CAAC;EAE7C,OAAOgB,gBAAgB;AACzB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useFilterConversion.js","names":["useCallback","useMemo","useFilterConversion","columns","filters","convertFilterSelectOptions","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","id","header","variant","filterVariant","filterSelectOptions","dataTableFilters","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat"],"sources":["../../../../src/labs/DataView/useFilterConversion.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { useCallback, useMemo } from \"react\";\nimport { MRT_RowData } from \"material-react-table\";\n\nimport { DataFilter } from \"../DataFilters.js\";\nimport { DataTableColumn } from \"../../DataTable/index.js\";\nimport { UniversalProps, TableLayoutProps } from \"./componentTypes.js\";\n\ntype FilterConversionType<TData extends MRT_RowData> = {\n columns?: TableLayoutProps<TData>[\"columns\"];\n filters?: UniversalProps<TData>[\"filters\"];\n};\n\nexport const useFilterConversion = <TData extends MRT_RowData>({\n columns,\n filters,\n}: FilterConversionType<TData>) => {\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<TData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: (option.label ?? option.value) as string,\n value: (option.value ?? option.label) as string,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<TData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? {\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n }\n : null,\n [convertFilterSelectOptions],\n );\n\n const dataTableFilters = useMemo(() => {\n // Filters may be manually set via the `filters` variable;\n // If not, they may be inferred from `columns`\n const providedFilters = filters || columns || [];\n\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns?.find(\n (column) => column.accessorKey === item,\n );\n const filter = foundColumn && convertColumnToFilter(foundColumn);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"accessorKey\" in item) {\n const filter = convertColumnToFilter(item);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"label\" in item) {\n return accumulator.concat(item);\n }\n\n return accumulator;\n }, []);\n }, [columns, convertColumnToFilter, filters]);\n\n return dataTableFilters;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAY5C,OAAO,MAAMC,mBAAmB,GAAGA,CAA4B;EAC7DC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,0BAA0B,GAAGL,WAAW,CAC3CM,OAAsD,IACrDA,OAAO,EAAEC,GAAG,CAAEC,MAAM,IAClB,OAAOA,MAAM,KAAK,QAAQ,GACtB;IACEC,KAAK,EAAED,MAAM;IACbE,KAAK,EAAEF;EACT,CAAC,GACD;IAGEC,KAAK,EAAGD,MAAM,CAACC,KAAK,IAAID,MAAM,CAACE,KAAgB;IAC/CA,KAAK,EAAGF,MAAM,CAACE,KAAK,IAAIF,MAAM,CAACC;EACjC,CACN,CAAC,EACH,EACF,CAAC;EAED,MAAME,qBAAqB,GAAGX,WAAW,CACtCY,MAA8B,IAC7BA,MAAM,CAACC,kBAAkB,KAAK,KAAK,IAAID,MAAM,CAACE,WAAW,GACrD;IACEC,EAAE,EAAEH,MAAM,CAACE,WAAW;IACtBL,KAAK,EAAEG,MAAM,CAACI,MAAM;IACpBC,OAAO,EAAEL,MAAM,CAACM,aAAa;IAC7BZ,OAAO,EAAED,0BAA0B,CAACO,MAAM,CAACO,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACd,0BAA0B,CAC7B,CAAC;EAED,MAAMe,gBAAgB,GAAGnB,OAAO,CAAC,MAAM;IAGrC,MAAMoB,eAAe,GAAGjB,OAAO,IAAID,OAAO,IAAI,EAAE;IAEhD,OAAOkB,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAGtB,OAAO,EAAEuB,IAAI,CAC9Bd,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKU,IACrC,CAAC;QACD,MAAMG,MAAM,GAAGF,WAAW,IAAId,qBAAqB,CAACc,WAAW,CAAC;QAChE,OAAOE,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,aAAa,IAAIC,IAAI,EAAE;QACzB,MAAMG,MAAM,GAAGhB,qBAAqB,CAACa,IAAI,CAAC;QAC1C,OAAOG,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,OAAO,IAAIC,IAAI,EAAE;QACnB,OAAOD,WAAW,CAACK,MAAM,CAACJ,IAAI,CAAC;MACjC;MAEA,OAAOD,WAAW;IACpB,CAAC,EAAE,EAAE,CAAC;EACR,CAAC,EAAE,CAACpB,OAAO,EAAEQ,qBAAqB,EAAEP,OAAO,CAAC,CAAC;EAE7C,OAAOgB,gBAAgB;AACzB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ComposablePicker.js","names":["memo","useTranslation","PickerVirtualizationListBox","useAutocomplete","jsx","_jsx","adornmentSizeValues","ComposablePicker","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","getOptionLabel","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","hint","HintLinkComponent","label","name","nameOverride","onBlur","onChange","onInputChange","onFocus","options","renderOption","renderTags","value","testId","translate","t","inputValueProp","isVirtualizedRef","renderInput","valueProps","_Autocomplete","current","ListboxComponent","clearText","closeText","disableCloseOnSelect","disabled","freeSolo","filterSelectedOptions","fullWidth","groupBy","isOptionEqualToValue","loading","multiple","noOptionsText","readOnly","MemoizedComposablePicker","displayName"],"sources":["../../../../src/labs/OdysseyPickers/ComposablePicker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Autocomplete as MuiAutocomplete,\n AutocompleteProps as MuiAutocompleteProps,\n} from \"@mui/material\";\n\nimport { AutocompleteProps } from \"../../Autocomplete.js\";\nimport { PickerVirtualizationListBox } from \"./PickerVirtualizationListBox.js\";\nimport { useAutocomplete } from \"../../useAutocomplete.js\";\n\nexport const adornmentSizeValues = [\"small\", \"large\"] as const;\nexport type AdornmentSize = (typeof adornmentSizeValues)[number];\n\nexport type BasePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = AutocompleteProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n emptyOptionsText?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"noOptionsText\"];\n groupOptionsBy?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"groupBy\"];\n};\n\nexport type BasePickerType = {\n displayName: string;\n <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: BasePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nexport type ComposablePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n getOptionLabel?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"getOptionLabel\"];\n\n renderOption: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"];\n\n renderTags?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderTags\"];\n};\n\nconst ComposablePicker = <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n getOptionLabel,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange,\n onInputChange,\n onFocus,\n options,\n renderOption,\n renderTags,\n value,\n testId,\n translate,\n}: ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const { t } = useTranslation();\n const { inputValueProp, isVirtualizedRef, renderInput, valueProps } =\n useAutocomplete<OptionType, HasMultipleChoices, IsCustomValueAllowed>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n hasMultipleChoices,\n hint,\n HintLinkComponent,\n inputValue,\n isFullWidth,\n isOptional,\n isVirtualized,\n label,\n name: nameOverride,\n testId,\n value,\n });\n\n return (\n <MuiAutocomplete\n {...valueProps}\n {...inputValueProp}\n // conditionally provide the ListboxComponent if this needs to be virtualized\n {...(isVirtualizedRef.current && {\n ListboxComponent: PickerVirtualizationListBox,\n })}\n // AutoComplete is wrapped in a div within MUI which does not get the disabled attr. So this aria-disabled gets set in the div\n aria-disabled={isDisabled}\n clearText={t(\"clear.text\")}\n closeText={t(\"close.text\")}\n disableCloseOnSelect={hasMultipleChoices}\n disabled={isDisabled}\n freeSolo={isCustomValueAllowed}\n filterSelectedOptions={true}\n fullWidth={isFullWidth}\n getOptionLabel={getOptionLabel}\n groupBy={groupOptionsBy}\n id={idOverride}\n isOptionEqualToValue={getIsOptionEqualToValue}\n loading={isLoading}\n multiple={hasMultipleChoices}\n noOptionsText={emptyOptionsText}\n onBlur={onBlur}\n onChange={onChange}\n onInputChange={onInputChange}\n onFocus={onFocus}\n options={options}\n readOnly={isReadOnly}\n renderInput={renderInput}\n renderOption={renderOption}\n renderTags={renderTags}\n translate={translate}\n />\n );\n};\n\n// Need the `typeof ComposablePicker` because generics don't get passed through\nconst MemoizedComposablePicker = memo(\n ComposablePicker,\n) as typeof ComposablePicker;\n// @ts-expect-error displayName is expected to not be on `typeof ComposablePicker`\nMemoizedComposablePicker.displayName = \"ComposablePicker\";\n\nexport { MemoizedComposablePicker as ComposablePicker };\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAmB,OAAO;AACvC,SAASC,cAAc,QAAQ,eAAe;AAO9C,SAASC,2BAA2B,QAAQ,kCAAkC;AAC9E,SAASC,eAAe,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3D,OAAO,MAAMC,mBAAmB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU;AAiE9D,MAAMC,gBAAgB,GAAGA,CAIvB;EACAC,eAAe;EACfC,YAAY;EACZC,gBAAgB;EAChBC,YAAY;EACZC,gBAAgB;EAChBC,uBAAuB;EACvBC,cAAc;EACdC,cAAc;EACdC,kBAAkB;EAClBC,EAAE,EAAEC,UAAU;EACdC,UAAU;EACVC,oBAAoB;EACpBC,UAAU;EACVC,WAAW,GAAG,KAAK;EACnBC,SAAS;EACTC,UAAU,GAAG,KAAK;EAClBC,UAAU;EACVC,aAAa,GAAG,KAAK;EACrBC,IAAI;EACJC,iBAAiB;EACjBC,KAAK;EACLC,IAAI,EAAEC,YAAY;EAClBC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,OAAO;EACPC,OAAO;EACPC,YAAY;EACZC,UAAU;EACVC,KAAK;EACLC,MAAM;EACNC;AAKF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAE,CAAC,GAAGzC,cAAc,CAAC,CAAC;EAC9B,MAAM;IAAE0C,cAAc;IAAEC,gBAAgB;IAAEC,WAAW;IAAEC;EAAW,CAAC,GACjE3C,eAAe,CAAuD;IACpEK,eAAe;IACfC,YAAY;IACZE,YAAY;IACZC,gBAAgB;IAChBI,kBAAkB;IAClBW,IAAI;IACJC,iBAAiB;IACjBT,UAAU;IACVG,WAAW;IACXE,UAAU;IACVE,aAAa;IACbG,KAAK;IACLC,IAAI,EAAEC,YAAY;IAClBS,MAAM;IACND;EACF,CAAC,CAAC;EAEJ,OACElC,IAAA,CAAA0C,aAAA;IAAA,GACMD,UAAU;IAAA,GACVH,cAAc;IAAA,IAEbC,gBAAgB,CAACI,OAAO,IAAI;MAC/BC,gBAAgB,EAAE/C;IACpB,CAAC;IAED,iBAAemB,UAAW;IAC1B6B,SAAS,EAAER,CAAC,CAAC,YAAY,CAAE;IAC3BS,SAAS,EAAET,CAAC,CAAC,YAAY,CAAE;IAC3BU,oBAAoB,EAAEpC,kBAAmB;IACzCqC,QAAQ,EAAEhC,UAAW;IACrBiC,QAAQ,EAAElC,oBAAqB;IAC/BmC,qBAAqB,EAAE,IAAK;IAC5BC,SAAS,EAAElC,WAAY;IACvBR,cAAc,EAAEA,cAAe;IAC/B2C,OAAO,EAAE1C,cAAe;IACxBE,EAAE,EAAEC,UAAW;IACfwC,oBAAoB,EAAE7C,uBAAwB;IAC9C8C,OAAO,EAAEpC,SAAU;IACnBqC,QAAQ,EAAE5C,kBAAmB;IAC7B6C,aAAa,EAAEnD,gBAAiB;IAChCsB,MAAM,EAAEA,MAAO;IACfC,QAAQ,EAAEA,QAAS;IACnBC,aAAa,EAAEA,aAAc;IAC7BC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjB0B,QAAQ,EAAErC,UAAW;IACrBoB,WAAW,EAAEA,WAAY;IACzBR,YAAY,EAAEA,YAAa;IAC3BC,UAAU,EAAEA,UAAW;IACvBG,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CAAC;AAGD,MAAMsB,wBAAwB,GAAG/D,IAAI,CACnCO,gBACF,CAA4B;AAE5BwD,wBAAwB,CAACC,WAAW,GAAG,kBAAkB;AAEzD,SAASD,wBAAwB,IAAIxD,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"ComposablePicker.js","names":["memo","useTranslation","PickerVirtualizationListBox","useAutocomplete","jsx","_jsx","adornmentSizeValues","ComposablePicker","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","getOptionLabel","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","hint","HintLinkComponent","label","name","nameOverride","onBlur","onChange","onInputChange","onFocus","options","renderOption","renderTags","value","testId","translate","t","inputValueProp","isVirtualizedRef","renderInput","valueProps","_Autocomplete","current","ListboxComponent","clearText","closeText","disableCloseOnSelect","disabled","freeSolo","filterSelectedOptions","fullWidth","groupBy","isOptionEqualToValue","loading","multiple","noOptionsText","readOnly","MemoizedComposablePicker","displayName"],"sources":["../../../../src/labs/OdysseyPickers/ComposablePicker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { HTMLAttributes, Key, memo, ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n Autocomplete as MuiAutocomplete,\n AutocompleteProps as MuiAutocompleteProps,\n} from \"@mui/material\";\n\nimport { AutocompleteProps } from \"../../Autocomplete.js\";\nimport { PickerVirtualizationListBox } from \"./PickerVirtualizationListBox.js\";\nimport { useAutocomplete } from \"../../useAutocomplete.js\";\n\nexport const adornmentSizeValues = [\"small\", \"large\"] as const;\nexport type AdornmentSize = (typeof adornmentSizeValues)[number];\n\nexport type BaseRenderOptionProps = HTMLAttributes<HTMLLIElement> & {\n key: Key;\n};\n\nexport type BasePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = AutocompleteProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n emptyOptionsText?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"noOptionsText\"];\n groupOptionsBy?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"groupBy\"];\n};\n\nexport type BasePickerType = {\n displayName: string;\n <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: BasePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nexport type ComposablePickerProps<\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n getOptionLabel?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"getOptionLabel\"];\n\n renderOption: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"];\n\n renderTags?: MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderTags\"];\n};\n\nconst ComposablePicker = <\n OptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n getOptionLabel,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange,\n onInputChange,\n onFocus,\n options,\n renderOption,\n renderTags,\n value,\n testId,\n translate,\n}: ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const { t } = useTranslation();\n const { inputValueProp, isVirtualizedRef, renderInput, valueProps } =\n useAutocomplete<OptionType, HasMultipleChoices, IsCustomValueAllowed>({\n ariaDescribedBy,\n defaultValue,\n errorMessage,\n errorMessageList,\n hasMultipleChoices,\n hint,\n HintLinkComponent,\n inputValue,\n isFullWidth,\n isOptional,\n isVirtualized,\n label,\n name: nameOverride,\n testId,\n value,\n });\n\n return (\n <MuiAutocomplete\n {...valueProps}\n {...inputValueProp}\n // conditionally provide the ListboxComponent if this needs to be virtualized\n {...(isVirtualizedRef.current && {\n ListboxComponent: PickerVirtualizationListBox,\n })}\n // AutoComplete is wrapped in a div within MUI which does not get the disabled attr. So this aria-disabled gets set in the div\n aria-disabled={isDisabled}\n clearText={t(\"clear.text\")}\n closeText={t(\"close.text\")}\n disableCloseOnSelect={hasMultipleChoices}\n disabled={isDisabled}\n freeSolo={isCustomValueAllowed}\n filterSelectedOptions={true}\n fullWidth={isFullWidth}\n getOptionLabel={getOptionLabel}\n groupBy={groupOptionsBy}\n id={idOverride}\n isOptionEqualToValue={getIsOptionEqualToValue}\n loading={isLoading}\n multiple={hasMultipleChoices}\n noOptionsText={emptyOptionsText}\n onBlur={onBlur}\n onChange={onChange}\n onInputChange={onInputChange}\n onFocus={onFocus}\n options={options}\n readOnly={isReadOnly}\n renderInput={renderInput}\n renderOption={renderOption}\n renderTags={renderTags}\n translate={translate}\n />\n );\n};\n\n// Need the `typeof ComposablePicker` because generics don't get passed through\nconst MemoizedComposablePicker = memo(\n ComposablePicker,\n) as typeof ComposablePicker;\n// @ts-expect-error displayName is expected to not be on `typeof ComposablePicker`\nMemoizedComposablePicker.displayName = \"ComposablePicker\";\n\nexport { MemoizedComposablePicker as ComposablePicker };\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAA8BA,IAAI,QAAmB,OAAO;AAC5D,SAASC,cAAc,QAAQ,eAAe;AAO9C,SAASC,2BAA2B,QAAQ,kCAAkC;AAC9E,SAASC,eAAe,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3D,OAAO,MAAMC,mBAAmB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU;AAqE9D,MAAMC,gBAAgB,GAAGA,CAIvB;EACAC,eAAe;EACfC,YAAY;EACZC,gBAAgB;EAChBC,YAAY;EACZC,gBAAgB;EAChBC,uBAAuB;EACvBC,cAAc;EACdC,cAAc;EACdC,kBAAkB;EAClBC,EAAE,EAAEC,UAAU;EACdC,UAAU;EACVC,oBAAoB;EACpBC,UAAU;EACVC,WAAW,GAAG,KAAK;EACnBC,SAAS;EACTC,UAAU,GAAG,KAAK;EAClBC,UAAU;EACVC,aAAa,GAAG,KAAK;EACrBC,IAAI;EACJC,iBAAiB;EACjBC,KAAK;EACLC,IAAI,EAAEC,YAAY;EAClBC,MAAM;EACNC,QAAQ;EACRC,aAAa;EACbC,OAAO;EACPC,OAAO;EACPC,YAAY;EACZC,UAAU;EACVC,KAAK;EACLC,MAAM;EACNC;AAKF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAE,CAAC,GAAGzC,cAAc,CAAC,CAAC;EAC9B,MAAM;IAAE0C,cAAc;IAAEC,gBAAgB;IAAEC,WAAW;IAAEC;EAAW,CAAC,GACjE3C,eAAe,CAAuD;IACpEK,eAAe;IACfC,YAAY;IACZE,YAAY;IACZC,gBAAgB;IAChBI,kBAAkB;IAClBW,IAAI;IACJC,iBAAiB;IACjBT,UAAU;IACVG,WAAW;IACXE,UAAU;IACVE,aAAa;IACbG,KAAK;IACLC,IAAI,EAAEC,YAAY;IAClBS,MAAM;IACND;EACF,CAAC,CAAC;EAEJ,OACElC,IAAA,CAAA0C,aAAA;IAAA,GACMD,UAAU;IAAA,GACVH,cAAc;IAAA,IAEbC,gBAAgB,CAACI,OAAO,IAAI;MAC/BC,gBAAgB,EAAE/C;IACpB,CAAC;IAED,iBAAemB,UAAW;IAC1B6B,SAAS,EAAER,CAAC,CAAC,YAAY,CAAE;IAC3BS,SAAS,EAAET,CAAC,CAAC,YAAY,CAAE;IAC3BU,oBAAoB,EAAEpC,kBAAmB;IACzCqC,QAAQ,EAAEhC,UAAW;IACrBiC,QAAQ,EAAElC,oBAAqB;IAC/BmC,qBAAqB,EAAE,IAAK;IAC5BC,SAAS,EAAElC,WAAY;IACvBR,cAAc,EAAEA,cAAe;IAC/B2C,OAAO,EAAE1C,cAAe;IACxBE,EAAE,EAAEC,UAAW;IACfwC,oBAAoB,EAAE7C,uBAAwB;IAC9C8C,OAAO,EAAEpC,SAAU;IACnBqC,QAAQ,EAAE5C,kBAAmB;IAC7B6C,aAAa,EAAEnD,gBAAiB;IAChCsB,MAAM,EAAEA,MAAO;IACfC,QAAQ,EAAEA,QAAS;IACnBC,aAAa,EAAEA,aAAc;IAC7BC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjB0B,QAAQ,EAAErC,UAAW;IACrBoB,WAAW,EAAEA,WAAY;IACzBR,YAAY,EAAEA,YAAa;IAC3BC,UAAU,EAAEA,UAAW;IACvBG,SAAS,EAAEA;EAAU,CACtB,CAAC;AAEN,CAAC;AAGD,MAAMsB,wBAAwB,GAAG/D,IAAI,CACnCO,gBACF,CAA4B;AAE5BwD,wBAAwB,CAACC,WAAW,GAAG,kBAAkB;AAEzD,SAASD,wBAAwB,IAAIxD,gBAAgB","ignoreList":[]}
@@ -10,12 +10,12 @@
10
10
  * See the License for the specific language governing permissions and limitations under the License.
11
11
  */
12
12
 
13
- import { Fragment, memo, useCallback } from "react";
13
+ import { Fragment, memo, useCallback, createElement as _createElement } from "react";
14
14
  import styled from "@emotion/styled";
15
15
  import { ComposablePicker } from "./ComposablePicker.js";
16
16
  import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
17
17
  import { Heading6, Paragraph } from "../../Typography.js";
18
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
19
19
  export const StyledOption = styled.li(({
20
20
  hasAdornment
21
21
  }) => ({
@@ -64,11 +64,17 @@ export const Option = ({
64
64
  children,
65
65
  hasAdornment = false,
66
66
  muiProps
67
- }) => _jsx(StyledOption, {
68
- ...muiProps,
69
- hasAdornment: hasAdornment,
70
- children: children
71
- });
67
+ }) => {
68
+ const {
69
+ key,
70
+ ...props
71
+ } = muiProps;
72
+ return _createElement(StyledOption, {
73
+ ...props,
74
+ key: key,
75
+ hasAdornment: hasAdornment
76
+ }, children);
77
+ };
72
78
  export const OptionMetadataComponent = ({
73
79
  metaData,
74
80
  odysseyDesignTokens
@@ -213,7 +219,7 @@ const Picker = ({
213
219
  odysseyDesignTokens: odysseyDesignTokens,
214
220
  option: option
215
221
  })
216
- }, option.label);
222
+ }, option.value);
217
223
  }, [odysseyDesignTokens]);
218
224
  return _jsx(ComposablePicker, {
219
225
  ariaDescribedBy: ariaDescribedBy,
@@ -223,6 +229,8 @@ const Picker = ({
223
229
  errorMessageList: errorMessageList,
224
230
  getIsOptionEqualToValue: getIsOptionEqualToValue,
225
231
  hasMultipleChoices: hasMultipleChoices,
232
+ hint: hint,
233
+ HintLinkComponent: HintLinkComponent,
226
234
  id: idOverride,
227
235
  inputValue: inputValue,
228
236
  isCustomValueAllowed: isCustomValueAllowed,
@@ -232,19 +240,17 @@ const Picker = ({
232
240
  isOptional: isOptional,
233
241
  isReadOnly: isReadOnly,
234
242
  isVirtualized: isVirtualizedProp,
235
- hint: hint,
236
- HintLinkComponent: HintLinkComponent,
237
243
  label: label,
238
244
  name: nameOverride,
239
245
  onBlur: onBlur,
240
246
  onChange: onChangeProp,
241
- onInputChange: onInputChangeProp,
242
247
  onFocus: onFocus,
248
+ onInputChange: onInputChangeProp,
243
249
  options: options,
244
250
  renderOption: customOptionRender,
245
- value: value,
246
251
  testId: testId,
247
- translate: translate
252
+ translate: translate,
253
+ value: value
248
254
  });
249
255
  };
250
256
  const MemoizedPicker = memo(Picker);
@@ -1 +1 @@
1
- {"version":3,"file":"Picker.js","names":["Fragment","memo","useCallback","styled","ComposablePicker","useOdysseyDesignTokens","Heading6","Paragraph","jsx","_jsx","jsxs","_jsxs","StyledOption","li","hasAdornment","display","OptionLabelContainer","shouldForwardProp","prop","p","margin","OptionDescription","odysseyDesignTokens","Spacing1","color","TypographyColorSubordinate","OptionDetails","gap","Spacing3","marginBlockStart","Spacing2","OptionDetail","alignItems","svg","width","Spacing4","HueNeutral400","Option","children","muiProps","OptionMetadataComponent","metaData","map","meta","index","detailText","icon","OptionDescriptionComponent","description","OptionLabelOnlyComponent","option","label","OptionLabelDescription","component","OptionLabelDescriptionMetadata","Picker","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","value","testId","translate","customOptionRender","hasDescription","hasMetadata","isLabelOnly","renderOption","MemoizedPicker","displayName"],"sources":["../../../../src/labs/OdysseyPickers/Picker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n Fragment,\n HTMLAttributes,\n memo,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps as MuiAutocompleteProps } from \"@mui/material\";\n\nimport {\n ComposablePicker,\n type BasePickerProps,\n type BasePickerType,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Heading6, Paragraph } from \"../../Typography.js\";\n\nexport const StyledOption = styled.li<{ hasAdornment?: boolean }>(\n ({ hasAdornment }) => ({\n ...(!hasAdornment && {\n display: \"block !important\",\n }),\n }),\n);\n\nexport const OptionLabelContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(() => ({\n p: {\n margin: 0,\n },\n}));\n\nexport const OptionDescription = styled(\"p\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n margin: `${odysseyDesignTokens.Spacing1} 0 0 !important`,\n color: odysseyDesignTokens.TypographyColorSubordinate,\n}));\n\nexport const OptionDetails = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n marginBlockStart: odysseyDesignTokens.Spacing2,\n}));\n\nexport const OptionDetail = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing1,\n\n svg: {\n width: odysseyDesignTokens.Spacing4,\n color: odysseyDesignTokens.HueNeutral400,\n },\n}));\n\nexport type BaseOptionProps = {\n muiProps: HTMLAttributes<HTMLLIElement>;\n odysseyDesignTokens: DesignTokens;\n};\n\ntype OptionComponentProps = {\n hasAdornment?: boolean;\n muiProps: BaseOptionProps[\"muiProps\"];\n};\n\nexport const Option = ({\n children,\n hasAdornment = false,\n muiProps,\n}: PropsWithChildren<OptionComponentProps>) => (\n <StyledOption {...muiProps} hasAdornment={hasAdornment}>\n {children}\n </StyledOption>\n);\n\nexport const OptionMetadataComponent = ({\n metaData,\n odysseyDesignTokens,\n}: {\n metaData: OptionMetadata[];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n <OptionDetails odysseyDesignTokens={odysseyDesignTokens}>\n {metaData.map((meta: OptionMetadata, index: number) => {\n const { detailText, icon } = meta;\n return (\n <OptionDetail\n key={`${detailText}-${index}`}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {icon}\n {detailText}\n </OptionDetail>\n );\n })}\n </OptionDetails>\n );\n};\n\nexport const OptionDescriptionComponent = ({\n description,\n odysseyDesignTokens,\n}: {\n description?: LabelDescription[\"description\"];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n description && (\n <OptionDescription odysseyDesignTokens={odysseyDesignTokens}>\n {description}\n </OptionDescription>\n )\n );\n};\n\nexport type OptionProps<OptionType> = {\n option: OptionType;\n};\n\nexport const OptionLabelOnlyComponent = <OptionType extends OptionLabelOnly>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { label } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Paragraph>{label}</Paragraph>\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescription = <OptionType extends LabelDescription>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescriptionMetadata = <\n OptionType extends LabelDescriptionMetadata,\n>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label, metaData } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </Option>\n );\n};\n\nexport type OptionMetadata = {\n icon: ReactElement;\n detailText: string | number;\n};\n\nexport type OptionGroupType = { group?: string };\nexport type OptionValueType = { value: string | number };\nexport type OptionLabelType = { label: string };\nexport type BaseOptionType = OptionValueType &\n OptionGroupType &\n OptionLabelType;\nexport type Metadata = {\n metaData: OptionMetadata[];\n};\n\nexport type OptionLabelOnly = BaseOptionType;\nexport type LabelDescription = BaseOptionType & { description?: string };\nexport type LabelDescriptionMetadata = LabelDescription & Metadata;\n\nexport type PickerProps<\n OptionType extends LabelDescription | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>;\n\nexport type PickerComponentType = {\n <\n OptionType extends OptionLabelOnly,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n};\n\nconst Picker: PickerComponentType = <\n OptionType extends\n | OptionLabelOnly\n | LabelDescription\n | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customOptionRender = useCallback<\n NonNullable<\n MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"]\n >\n >(\n (muiProps, option) => {\n const hasDescription = \"description\" in option && option.description;\n const hasMetadata = \"metaData\" in option && option.metaData;\n const isLabelOnly = !hasMetadata && !hasDescription;\n\n return (\n <Fragment key={option.label}>\n {isLabelOnly ? (\n <OptionLabelOnlyComponent\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : hasMetadata ? (\n <OptionLabelDescriptionMetadata\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : (\n <OptionLabelDescription\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n )}\n </Fragment>\n );\n },\n [odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n emptyOptionsText={emptyOptionsText}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n // getOptionLabel={// getOptionLabel}\n hasMultipleChoices={hasMultipleChoices}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPicker = memo(Picker) as BasePickerType;\n\nMemoizedPicker.displayName = \"Picker\";\n\nexport { MemoizedPicker as Picker };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Picker.js","names":["Fragment","memo","useCallback","createElement","_createElement","styled","ComposablePicker","useOdysseyDesignTokens","Heading6","Paragraph","jsxs","_jsxs","jsx","_jsx","StyledOption","li","hasAdornment","display","OptionLabelContainer","shouldForwardProp","prop","p","margin","OptionDescription","odysseyDesignTokens","Spacing1","color","TypographyColorSubordinate","OptionDetails","gap","Spacing3","marginBlockStart","Spacing2","OptionDetail","alignItems","svg","width","Spacing4","HueNeutral400","Option","children","muiProps","key","props","OptionMetadataComponent","metaData","map","meta","index","detailText","icon","OptionDescriptionComponent","description","OptionLabelOnlyComponent","option","label","OptionLabelDescription","component","OptionLabelDescriptionMetadata","Picker","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","value","testId","translate","customOptionRender","hasDescription","hasMetadata","isLabelOnly","renderOption","MemoizedPicker","displayName"],"sources":["../../../../src/labs/OdysseyPickers/Picker.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n Fragment,\n memo,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n useCallback,\n} from \"react\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps as MuiAutocompleteProps } from \"@mui/material\";\n\nimport {\n ComposablePicker,\n type BasePickerProps,\n type BasePickerType,\n type BaseRenderOptionProps,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport { Heading6, Paragraph } from \"../../Typography.js\";\n\nexport const StyledOption = styled.li<{ hasAdornment?: boolean }>(\n ({ hasAdornment }) => ({\n ...(!hasAdornment && {\n display: \"block !important\",\n }),\n }),\n);\n\nexport const OptionLabelContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(() => ({\n p: {\n margin: 0,\n },\n}));\n\nexport const OptionDescription = styled(\"p\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n margin: `${odysseyDesignTokens.Spacing1} 0 0 !important`,\n color: odysseyDesignTokens.TypographyColorSubordinate,\n}));\n\nexport const OptionDetails = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n gap: odysseyDesignTokens.Spacing3,\n marginBlockStart: odysseyDesignTokens.Spacing2,\n}));\n\nexport const OptionDetail = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing1,\n\n svg: {\n width: odysseyDesignTokens.Spacing4,\n color: odysseyDesignTokens.HueNeutral400,\n },\n}));\n\nexport type BaseOptionProps = {\n muiProps: BaseRenderOptionProps;\n odysseyDesignTokens: DesignTokens;\n};\n\ntype OptionComponentProps = {\n hasAdornment?: boolean;\n muiProps: BaseOptionProps[\"muiProps\"];\n};\n\nexport const Option = ({\n children,\n hasAdornment = false,\n muiProps,\n}: PropsWithChildren<OptionComponentProps>) => {\n const { key, ...props } = muiProps;\n return (\n <StyledOption {...props} key={key} hasAdornment={hasAdornment}>\n {children}\n </StyledOption>\n );\n};\n\nexport const OptionMetadataComponent = ({\n metaData,\n odysseyDesignTokens,\n}: {\n metaData: OptionMetadata[];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n <OptionDetails odysseyDesignTokens={odysseyDesignTokens}>\n {metaData.map((meta: OptionMetadata, index: number) => {\n const { detailText, icon } = meta;\n return (\n <OptionDetail\n key={`${detailText}-${index}`}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {icon}\n {detailText}\n </OptionDetail>\n );\n })}\n </OptionDetails>\n );\n};\n\nexport const OptionDescriptionComponent = ({\n description,\n odysseyDesignTokens,\n}: {\n description?: LabelDescription[\"description\"];\n odysseyDesignTokens: DesignTokens;\n}) => {\n return (\n description && (\n <OptionDescription odysseyDesignTokens={odysseyDesignTokens}>\n {description}\n </OptionDescription>\n )\n );\n};\n\nexport type OptionProps<OptionType> = {\n option: OptionType;\n};\n\nexport const OptionLabelOnlyComponent = <OptionType extends OptionLabelOnly>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { label } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Paragraph>{label}</Paragraph>\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescription = <OptionType extends LabelDescription>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionLabelDescriptionMetadata = <\n OptionType extends LabelDescriptionMetadata,\n>({\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps & OptionProps<OptionType>) => {\n const { description, label, metaData } = option;\n\n return (\n <Option muiProps={muiProps}>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </Option>\n );\n};\n\nexport type OptionMetadata = {\n icon: ReactElement;\n detailText: string | number;\n};\n\nexport type OptionGroupType = { group?: string };\nexport type OptionValueType = { value: string | number };\nexport type OptionLabelType = { label: string };\nexport type BaseOptionType = OptionValueType &\n OptionGroupType &\n OptionLabelType;\nexport type Metadata = {\n metaData: OptionMetadata[];\n};\n\nexport type OptionLabelOnly = BaseOptionType;\nexport type LabelDescription = BaseOptionType & { description?: string };\nexport type LabelDescriptionMetadata = LabelDescription & Metadata;\n\nexport type PickerProps<\n OptionType extends LabelDescription | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>;\n\nexport type PickerComponentType = {\n <\n OptionType extends OptionLabelOnly,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n <\n OptionType extends LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>,\n ): ReactNode;\n};\n\nconst Picker: PickerComponentType = <\n OptionType extends\n | OptionLabelOnly\n | LabelDescription\n | LabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customOptionRender = useCallback<\n NonNullable<\n MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"]\n >\n >(\n (muiProps, option) => {\n const hasDescription = \"description\" in option && option.description;\n const hasMetadata = \"metaData\" in option && option.metaData;\n const isLabelOnly = !hasMetadata && !hasDescription;\n\n return (\n <Fragment key={option.value}>\n {isLabelOnly ? (\n <OptionLabelOnlyComponent\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : hasMetadata ? (\n <OptionLabelDescriptionMetadata\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : (\n <OptionLabelDescription\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n )}\n </Fragment>\n );\n },\n [odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n emptyOptionsText={emptyOptionsText}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n hasMultipleChoices={hasMultipleChoices}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onFocus={onFocus}\n onInputChange={onInputChangeProp}\n options={options}\n renderOption={customOptionRender}\n testId={testId}\n translate={translate}\n value={value}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPicker = memo(Picker) as BasePickerType;\n\nMemoizedPicker.displayName = \"Picker\";\n\nexport { MemoizedPicker as Picker };\n"],"mappings":"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","ignoreList":[]}
@@ -33,6 +33,7 @@ const OptionAdornmentContainer = styled("div", {
33
33
  height: odysseyDesignTokens.Spacing5,
34
34
  overflow: "hidden",
35
35
  marginInlineEnd: odysseyDesignTokens.Spacing3,
36
+ flexShrink: 0,
36
37
  svg: {
37
38
  width: "100%",
38
39
  height: "auto"
@@ -249,7 +250,7 @@ const PickerWithOptionAdornment = ({
249
250
  odysseyDesignTokens: odysseyDesignTokens,
250
251
  option: option
251
252
  })
252
- }, option.label);
253
+ }, option.value);
253
254
  }, [adornmentSize, odysseyDesignTokens]);
254
255
  return _jsx(ComposablePicker, {
255
256
  ariaDescribedBy: ariaDescribedBy,
@@ -1 +1 @@
1
- {"version":3,"file":"PickerWithOptionAdornment.js","names":["Fragment","memo","useCallback","styled","Box","ComposablePicker","useOdysseyDesignTokens","Option","OptionDescriptionComponent","OptionLabelContainer","OptionMetadataComponent","Heading6","Tag","jsx","_jsx","jsxs","_jsxs","OptionAdornmentContainer","shouldForwardProp","prop","adornmentSize","isTagContainer","odysseyDesignTokens","position","bottom","alignSelf","width","Spacing5","height","overflow","marginInlineEnd","Spacing3","svg","img","top","left","transform","Spacing8","Spacing4","maxHeight","Spacing2","display","OptionAdornment","adornment","isImageAdornment","children","src","alt","role","OptionWithLabelDescriptionOnly","muiProps","option","description","label","value","hasAdornment","component","OptionWithLabelDescriptionMetadata","metaData","TagAdornment","PickerWithOptionAdornment","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","testId","translate","customTagRender","values","getTagProps","map","index","key","onDelete","sx","margin","Spacing1","icon","onRemove","customOptionRender","hasMetadata","renderOption","renderTags","MemoizedPickerWithOptionAdornment","displayName"],"sources":["../../../../src/labs/OdysseyPickers/PickerWithOptionAdornment.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Fragment, memo, ReactNode, useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps as MuiAutocompleteProps } from \"@mui/material\";\n\nimport { Box } from \"../../Box.js\";\nimport {\n ComposablePicker,\n ComposablePickerProps,\n type AdornmentSize,\n type BasePickerProps,\n type BasePickerType,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport {\n type BaseOptionProps,\n type LabelDescription,\n type Metadata,\n Option,\n OptionDescriptionComponent,\n OptionLabelContainer,\n OptionMetadataComponent,\n OptionProps,\n} from \"./Picker.js\";\nimport { Heading6 } from \"../../Typography.js\";\nimport { Tag } from \"../../Tag.js\";\n\ntype Adornment = ReactNode | string;\n\ntype AdornmentLabelDescription = LabelDescription & {\n adornment: Adornment;\n};\n\ntype AdornmentLabelDescriptionMetadata = AdornmentLabelDescription & Metadata;\n\nexport type AdornmentOptionType =\n | AdornmentLabelDescription\n | AdornmentLabelDescriptionMetadata;\n\nconst OptionAdornmentContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"adornmentSize\" &&\n prop !== \"isTagContainer\",\n})<{\n adornmentSize?: AdornmentSize;\n isTagContainer?: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(\n ({\n adornmentSize = \"small\",\n isTagContainer = false,\n odysseyDesignTokens,\n }) => ({\n position: \"relative\",\n // push icon up by one px for better visual alignment\n bottom: \"1px\",\n alignSelf: \"flex-start\",\n width: odysseyDesignTokens.Spacing5,\n height: odysseyDesignTokens.Spacing5,\n overflow: \"hidden\",\n marginInlineEnd: odysseyDesignTokens.Spacing3,\n\n svg: {\n width: \"100%\",\n height: \"auto\",\n },\n\n img: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n width: \"100%\",\n transform: \"translate(-50%, -50%)\",\n },\n\n ...(adornmentSize === \"large\" &&\n !isTagContainer && {\n bottom: 0,\n width: odysseyDesignTokens.Spacing8,\n height: odysseyDesignTokens.Spacing8,\n }),\n\n ...(isTagContainer && {\n bottom: 0,\n alignSelf: \"center\",\n width: odysseyDesignTokens.Spacing4,\n height: \"auto\",\n maxHeight: odysseyDesignTokens.Spacing4,\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n\n svg: {\n display: \"flex\",\n width: \"100%\",\n height: \"auto\",\n },\n }),\n }),\n);\n\ntype OptionAdornmentProps = {\n adornment: Adornment;\n adornmentSize: AdornmentSize;\n odysseyDesignTokens: DesignTokens;\n};\n\nconst OptionAdornment = ({\n adornment,\n adornmentSize,\n odysseyDesignTokens,\n}: OptionAdornmentProps) => {\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {/* NOTE: Intentionally leaving alt as an empty string here so screen readers will ignore this image */}\n {/* Image should be sufficiently described by the adjacent title and/or description of the option */}\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n } else {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n }\n};\n\nconst OptionWithLabelDescriptionOnly = <\n OptionType extends AdornmentLabelDescription,\n>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & { adornmentSize: AdornmentSize }) => {\n const { adornment, description, label, value } = option;\n return (\n <Option hasAdornment key={value} muiProps={muiProps}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionWithLabelDescriptionMetadata = <\n OptionType extends AdornmentLabelDescriptionMetadata,\n>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & {\n adornmentSize: AdornmentSize;\n }) => {\n const { adornment, description, label, metaData, value } = option;\n\n return (\n <Option hasAdornment key={value} muiProps={muiProps}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <div>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </div>\n </Option>\n );\n};\n\ntype TagAdornmentProps = {\n adornment: Adornment;\n};\n\nconst TagAdornment = ({ adornment }: TagAdornmentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n isTagContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n }\n\n return (\n <OptionAdornmentContainer\n isTagContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n};\n\nexport type PickerWithOptionAdornmentProps<\n OptionType extends AdornmentOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n};\n\ntype PickerWithOptionAdornmentComponentType = {\n <\n OptionType extends AdornmentLabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n <\n OptionType extends AdornmentLabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nconst PickerWithOptionAdornment: PickerWithOptionAdornmentComponentType = <\n OptionType extends AdornmentOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n adornmentSize = \"small\",\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customTagRender = useCallback<\n NonNullable<\n ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >[\"renderTags\"]\n >\n >(\n (values, getTagProps) =>\n values.map((value, index) => {\n const { key, onDelete } = getTagProps({ index });\n const { adornment, label } = value;\n\n return (\n <Box\n key={key}\n sx={{\n margin: odysseyDesignTokens.Spacing1,\n marginInlineEnd: 0,\n }}\n >\n <Tag\n icon={<TagAdornment adornment={adornment} />}\n label={label}\n onRemove={onDelete}\n />\n </Box>\n );\n }),\n [odysseyDesignTokens],\n );\n\n const customOptionRender = useCallback<\n NonNullable<\n MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"]\n >\n >(\n (muiProps, option) => {\n const hasMetadata = \"metaData\" in option && option.metaData;\n\n return (\n <Fragment key={option.label}>\n {hasMetadata ? (\n <OptionWithLabelDescriptionMetadata\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : (\n <OptionWithLabelDescriptionOnly\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n )}\n </Fragment>\n );\n },\n [adornmentSize, odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n emptyOptionsText={emptyOptionsText}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n groupOptionsBy={groupOptionsBy}\n hasMultipleChoices={hasMultipleChoices}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n renderTags={customTagRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPickerWithOptionAdornment = memo(\n PickerWithOptionAdornment,\n) as BasePickerType;\n\nMemoizedPickerWithOptionAdornment.displayName = \"PickerWithOptionAdornment\";\n\nexport { MemoizedPickerWithOptionAdornment as PickerWithOptionAdornment };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PickerWithOptionAdornment.js","names":["Fragment","memo","useCallback","styled","Box","ComposablePicker","useOdysseyDesignTokens","Option","OptionDescriptionComponent","OptionLabelContainer","OptionMetadataComponent","Heading6","Tag","jsx","_jsx","jsxs","_jsxs","OptionAdornmentContainer","shouldForwardProp","prop","adornmentSize","isTagContainer","odysseyDesignTokens","position","bottom","alignSelf","width","Spacing5","height","overflow","marginInlineEnd","Spacing3","flexShrink","svg","img","top","left","transform","Spacing8","Spacing4","maxHeight","Spacing2","display","OptionAdornment","adornment","isImageAdornment","children","src","alt","role","OptionWithLabelDescriptionOnly","muiProps","option","description","label","value","hasAdornment","component","OptionWithLabelDescriptionMetadata","metaData","TagAdornment","PickerWithOptionAdornment","ariaDescribedBy","defaultValue","emptyOptionsText","errorMessage","errorMessageList","getIsOptionEqualToValue","groupOptionsBy","hasMultipleChoices","id","idOverride","inputValue","isCustomValueAllowed","isDisabled","isFullWidth","isLoading","isOptional","isReadOnly","isVirtualized","isVirtualizedProp","hint","HintLinkComponent","name","nameOverride","onBlur","onChange","onChangeProp","onInputChange","onInputChangeProp","onFocus","options","testId","translate","customTagRender","values","getTagProps","map","index","key","onDelete","sx","margin","Spacing1","icon","onRemove","customOptionRender","hasMetadata","renderOption","renderTags","MemoizedPickerWithOptionAdornment","displayName"],"sources":["../../../../src/labs/OdysseyPickers/PickerWithOptionAdornment.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Fragment, memo, ReactNode, useCallback } from \"react\";\nimport styled from \"@emotion/styled\";\nimport { AutocompleteProps as MuiAutocompleteProps } from \"@mui/material\";\n\nimport { Box } from \"../../Box.js\";\nimport {\n ComposablePicker,\n ComposablePickerProps,\n type AdornmentSize,\n type BasePickerProps,\n type BasePickerType,\n} from \"./ComposablePicker.js\";\nimport {\n useOdysseyDesignTokens,\n DesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport {\n type BaseOptionProps,\n type LabelDescription,\n type Metadata,\n Option,\n OptionDescriptionComponent,\n OptionLabelContainer,\n OptionMetadataComponent,\n OptionProps,\n} from \"./Picker.js\";\nimport { Heading6 } from \"../../Typography.js\";\nimport { Tag } from \"../../Tag.js\";\n\ntype Adornment = ReactNode | string;\n\ntype AdornmentLabelDescription = LabelDescription & {\n adornment: Adornment;\n};\n\ntype AdornmentLabelDescriptionMetadata = AdornmentLabelDescription & Metadata;\n\nexport type AdornmentOptionType =\n | AdornmentLabelDescription\n | AdornmentLabelDescriptionMetadata;\n\nconst OptionAdornmentContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"adornmentSize\" &&\n prop !== \"isTagContainer\",\n})<{\n adornmentSize?: AdornmentSize;\n isTagContainer?: boolean;\n odysseyDesignTokens: DesignTokens;\n}>(\n ({\n adornmentSize = \"small\",\n isTagContainer = false,\n odysseyDesignTokens,\n }) => ({\n position: \"relative\",\n // push icon up by one px for better visual alignment\n bottom: \"1px\",\n alignSelf: \"flex-start\",\n width: odysseyDesignTokens.Spacing5,\n height: odysseyDesignTokens.Spacing5,\n overflow: \"hidden\",\n marginInlineEnd: odysseyDesignTokens.Spacing3,\n flexShrink: 0,\n\n svg: {\n width: \"100%\",\n height: \"auto\",\n },\n\n img: {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n width: \"100%\",\n transform: \"translate(-50%, -50%)\",\n },\n\n ...(adornmentSize === \"large\" &&\n !isTagContainer && {\n bottom: 0,\n width: odysseyDesignTokens.Spacing8,\n height: odysseyDesignTokens.Spacing8,\n }),\n\n ...(isTagContainer && {\n bottom: 0,\n alignSelf: \"center\",\n width: odysseyDesignTokens.Spacing4,\n height: \"auto\",\n maxHeight: odysseyDesignTokens.Spacing4,\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n\n svg: {\n display: \"flex\",\n width: \"100%\",\n height: \"auto\",\n },\n }),\n }),\n);\n\ntype OptionAdornmentProps = {\n adornment: Adornment;\n adornmentSize: AdornmentSize;\n odysseyDesignTokens: DesignTokens;\n};\n\nconst OptionAdornment = ({\n adornment,\n adornmentSize,\n odysseyDesignTokens,\n}: OptionAdornmentProps) => {\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {/* NOTE: Intentionally leaving alt as an empty string here so screen readers will ignore this image */}\n {/* Image should be sufficiently described by the adjacent title and/or description of the option */}\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n } else {\n return (\n <OptionAdornmentContainer\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n }\n};\n\nconst OptionWithLabelDescriptionOnly = <\n OptionType extends AdornmentLabelDescription,\n>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & { adornmentSize: AdornmentSize }) => {\n const { adornment, description, label, value } = option;\n return (\n <Option hasAdornment key={value} muiProps={muiProps}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n </Option>\n );\n};\n\nconst OptionWithLabelDescriptionMetadata = <\n OptionType extends AdornmentLabelDescriptionMetadata,\n>({\n adornmentSize,\n muiProps,\n odysseyDesignTokens,\n option,\n}: BaseOptionProps &\n OptionProps<OptionType> & {\n adornmentSize: AdornmentSize;\n }) => {\n const { adornment, description, label, metaData, value } = option;\n\n return (\n <Option hasAdornment key={value} muiProps={muiProps}>\n <OptionAdornment\n adornment={adornment}\n adornmentSize={adornmentSize}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n <div>\n <OptionLabelContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Heading6 component=\"p\">{label}</Heading6>\n <OptionDescriptionComponent\n description={description}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </OptionLabelContainer>\n <OptionMetadataComponent\n metaData={metaData}\n odysseyDesignTokens={odysseyDesignTokens}\n />\n </div>\n </Option>\n );\n};\n\ntype TagAdornmentProps = {\n adornment: Adornment;\n};\n\nconst TagAdornment = ({ adornment }: TagAdornmentProps) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const isImageAdornment = typeof adornment === \"string\";\n\n if (isImageAdornment) {\n return (\n <OptionAdornmentContainer\n isTagContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <img src={adornment} alt=\"\" role=\"presentation\" />\n </OptionAdornmentContainer>\n );\n }\n\n return (\n <OptionAdornmentContainer\n isTagContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {adornment}\n </OptionAdornmentContainer>\n );\n};\n\nexport type PickerWithOptionAdornmentProps<\n OptionType extends AdornmentOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = BasePickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed> & {\n adornmentSize?: AdornmentSize;\n};\n\ntype PickerWithOptionAdornmentComponentType = {\n <\n OptionType extends AdornmentLabelDescription,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n <\n OptionType extends AdornmentLabelDescriptionMetadata,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n >(\n props: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >,\n ): ReactNode;\n};\n\nconst PickerWithOptionAdornment: PickerWithOptionAdornmentComponentType = <\n OptionType extends AdornmentOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n adornmentSize = \"small\",\n ariaDescribedBy,\n defaultValue,\n emptyOptionsText,\n errorMessage,\n errorMessageList,\n getIsOptionEqualToValue,\n groupOptionsBy,\n hasMultipleChoices,\n id: idOverride,\n inputValue,\n isCustomValueAllowed,\n isDisabled,\n isFullWidth = false,\n isLoading,\n isOptional = false,\n isReadOnly,\n isVirtualized: isVirtualizedProp = false,\n hint,\n HintLinkComponent,\n label,\n name: nameOverride,\n onBlur,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n onFocus,\n options,\n value,\n testId,\n translate,\n}: PickerWithOptionAdornmentProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const customTagRender = useCallback<\n NonNullable<\n ComposablePickerProps<\n OptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n >[\"renderTags\"]\n >\n >(\n (values, getTagProps) =>\n values.map((value, index) => {\n const { key, onDelete } = getTagProps({ index });\n const { adornment, label } = value;\n\n return (\n <Box\n key={key}\n sx={{\n margin: odysseyDesignTokens.Spacing1,\n marginInlineEnd: 0,\n }}\n >\n <Tag\n icon={<TagAdornment adornment={adornment} />}\n label={label}\n onRemove={onDelete}\n />\n </Box>\n );\n }),\n [odysseyDesignTokens],\n );\n\n const customOptionRender = useCallback<\n NonNullable<\n MuiAutocompleteProps<\n OptionType,\n HasMultipleChoices,\n undefined,\n IsCustomValueAllowed\n >[\"renderOption\"]\n >\n >(\n (muiProps, option) => {\n const hasMetadata = \"metaData\" in option && option.metaData;\n\n return (\n <Fragment key={option.value}>\n {hasMetadata ? (\n <OptionWithLabelDescriptionMetadata\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n ) : (\n <OptionWithLabelDescriptionOnly\n adornmentSize={adornmentSize}\n muiProps={muiProps}\n odysseyDesignTokens={odysseyDesignTokens}\n option={option}\n />\n )}\n </Fragment>\n );\n },\n [adornmentSize, odysseyDesignTokens],\n );\n\n return (\n <ComposablePicker<OptionType, HasMultipleChoices, IsCustomValueAllowed>\n ariaDescribedBy={ariaDescribedBy}\n defaultValue={defaultValue}\n emptyOptionsText={emptyOptionsText}\n errorMessage={errorMessage}\n errorMessageList={errorMessageList}\n getIsOptionEqualToValue={getIsOptionEqualToValue}\n groupOptionsBy={groupOptionsBy}\n hasMultipleChoices={hasMultipleChoices}\n id={idOverride}\n inputValue={inputValue}\n isCustomValueAllowed={isCustomValueAllowed}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n isOptional={isOptional}\n isReadOnly={isReadOnly}\n isVirtualized={isVirtualizedProp}\n hint={hint}\n HintLinkComponent={HintLinkComponent}\n label={label}\n name={nameOverride}\n onBlur={onBlur}\n onChange={onChangeProp}\n onInputChange={onInputChangeProp}\n onFocus={onFocus}\n options={options}\n renderOption={customOptionRender}\n renderTags={customTagRender}\n value={value}\n testId={testId}\n translate={translate}\n />\n );\n};\n\n// Need the `as BasePickerType` because generics don't get passed through\nconst MemoizedPickerWithOptionAdornment = memo(\n PickerWithOptionAdornment,\n) as BasePickerType;\n\nMemoizedPickerWithOptionAdornment.displayName = \"PickerWithOptionAdornment\";\n\nexport { MemoizedPickerWithOptionAdornment as PickerWithOptionAdornment };\n"],"mappings":"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","ignoreList":[]}