@cloudscape-design/components 3.0.840 → 3.0.841

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 (601) hide show
  1. package/annotation-context/annotation/annotation-icon.d.ts +2 -1
  2. package/annotation-context/annotation/annotation-icon.d.ts.map +1 -1
  3. package/annotation-context/annotation/annotation-icon.js.map +1 -1
  4. package/annotation-context/annotation/annotation-popover.d.ts +2 -1
  5. package/annotation-context/annotation/annotation-popover.d.ts.map +1 -1
  6. package/annotation-context/annotation/annotation-popover.js.map +1 -1
  7. package/annotation-context/annotation/annotation-trigger.d.ts +1 -1
  8. package/annotation-context/annotation/annotation-trigger.d.ts.map +1 -1
  9. package/annotation-context/annotation/annotation-trigger.js.map +1 -1
  10. package/annotation-context/annotation/closed-annotation.d.ts +2 -1
  11. package/annotation-context/annotation/closed-annotation.d.ts.map +1 -1
  12. package/annotation-context/annotation/closed-annotation.js.map +1 -1
  13. package/annotation-context/annotation/open-annotation.d.ts +2 -1
  14. package/annotation-context/annotation/open-annotation.d.ts.map +1 -1
  15. package/annotation-context/annotation/open-annotation.js.map +1 -1
  16. package/app-layout/classic.d.ts.map +1 -1
  17. package/app-layout/classic.js +7 -3
  18. package/app-layout/classic.js.map +1 -1
  19. package/app-layout/defaults.d.ts +2 -1
  20. package/app-layout/defaults.d.ts.map +1 -1
  21. package/app-layout/defaults.js.map +1 -1
  22. package/app-layout/split-panel/split-panel-forced-position.d.ts +5 -0
  23. package/app-layout/split-panel/split-panel-forced-position.d.ts.map +1 -0
  24. package/app-layout/split-panel/split-panel-forced-position.js +30 -0
  25. package/app-layout/split-panel/split-panel-forced-position.js.map +1 -0
  26. package/app-layout/utils/use-resize.d.ts +1 -1
  27. package/app-layout/utils/use-resize.d.ts.map +1 -1
  28. package/app-layout/utils/use-resize.js.map +1 -1
  29. package/app-layout/utils/use-split-panel-focus-control.d.ts +2 -1
  30. package/app-layout/utils/use-split-panel-focus-control.d.ts.map +1 -1
  31. package/app-layout/utils/use-split-panel-focus-control.js.map +1 -1
  32. package/app-layout/visual-refresh/context.d.ts.map +1 -1
  33. package/app-layout/visual-refresh/context.js +5 -8
  34. package/app-layout/visual-refresh/context.js.map +1 -1
  35. package/app-layout/visual-refresh/drawers.d.ts +0 -8
  36. package/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  37. package/app-layout/visual-refresh/drawers.js +1 -1
  38. package/app-layout/visual-refresh/drawers.js.map +1 -1
  39. package/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  40. package/app-layout/visual-refresh-toolbar/compute-layout.js +6 -2
  41. package/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  42. package/app-layout/visual-refresh-toolbar/drawer/local-drawer.js +1 -1
  43. package/app-layout/visual-refresh-toolbar/drawer/local-drawer.js.map +1 -1
  44. package/app-layout/visual-refresh-toolbar/index.d.ts.map +1 -1
  45. package/app-layout/visual-refresh-toolbar/index.js +32 -2
  46. package/app-layout/visual-refresh-toolbar/index.js.map +1 -1
  47. package/app-layout/visual-refresh-toolbar/split-panel/index.d.ts +1 -1
  48. package/app-layout/visual-refresh-toolbar/split-panel/index.d.ts.map +1 -1
  49. package/app-layout/visual-refresh-toolbar/split-panel/index.js +3 -1
  50. package/app-layout/visual-refresh-toolbar/split-panel/index.js.map +1 -1
  51. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.d.ts.map +1 -1
  52. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js +3 -5
  53. package/app-layout/visual-refresh-toolbar/toolbar/drawer-triggers.js.map +1 -1
  54. package/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  55. package/app-layout/visual-refresh-toolbar/toolbar/index.js +4 -1
  56. package/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  57. package/area-chart/elements/area-series.d.ts +1 -1
  58. package/area-chart/elements/area-series.d.ts.map +1 -1
  59. package/area-chart/elements/area-series.js.map +1 -1
  60. package/area-chart/elements/threshold-series.d.ts +1 -1
  61. package/area-chart/elements/threshold-series.d.ts.map +1 -1
  62. package/area-chart/elements/threshold-series.js.map +1 -1
  63. package/attribute-editor/internal.d.ts.map +1 -1
  64. package/attribute-editor/internal.js +5 -1
  65. package/attribute-editor/internal.js.map +1 -1
  66. package/attribute-editor/row.d.ts +2 -1
  67. package/attribute-editor/row.d.ts.map +1 -1
  68. package/attribute-editor/row.js.map +1 -1
  69. package/autosuggest/analytics-metadata/interfaces.d.ts +0 -4
  70. package/autosuggest/analytics-metadata/interfaces.d.ts.map +1 -1
  71. package/autosuggest/analytics-metadata/interfaces.js.map +1 -1
  72. package/autosuggest/autosuggest-option.d.ts +1 -1
  73. package/autosuggest/autosuggest-option.d.ts.map +1 -1
  74. package/autosuggest/autosuggest-option.js.map +1 -1
  75. package/autosuggest/internal.d.ts +1 -1
  76. package/autosuggest/internal.d.ts.map +1 -1
  77. package/autosuggest/internal.js.map +1 -1
  78. package/autosuggest/load-more-controller.d.ts +3 -2
  79. package/autosuggest/load-more-controller.d.ts.map +1 -1
  80. package/autosuggest/load-more-controller.js.map +1 -1
  81. package/autosuggest/options-list.d.ts +2 -1
  82. package/autosuggest/options-list.d.ts.map +1 -1
  83. package/autosuggest/options-list.js.map +1 -1
  84. package/breadcrumb-group/analytics-metadata/interfaces.d.ts +0 -7
  85. package/breadcrumb-group/analytics-metadata/interfaces.d.ts.map +1 -1
  86. package/breadcrumb-group/analytics-metadata/interfaces.js.map +1 -1
  87. package/button-dropdown/interfaces.d.ts +4 -3
  88. package/button-dropdown/interfaces.d.ts.map +1 -1
  89. package/button-dropdown/interfaces.js.map +1 -1
  90. package/button-dropdown/item-element/index.d.ts +0 -7
  91. package/button-dropdown/item-element/index.d.ts.map +1 -1
  92. package/button-dropdown/item-element/index.js.map +1 -1
  93. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.d.ts +1 -1
  94. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.d.ts.map +1 -1
  95. package/button-dropdown/mobile-expandable-group/mobile-expandable-group.js.map +1 -1
  96. package/button-dropdown/tooltip.d.ts +2 -1
  97. package/button-dropdown/tooltip.d.ts.map +1 -1
  98. package/button-dropdown/tooltip.js.map +1 -1
  99. package/button-dropdown/utils/menu-item.d.ts +3 -2
  100. package/button-dropdown/utils/menu-item.d.ts.map +1 -1
  101. package/button-dropdown/utils/menu-item.js.map +1 -1
  102. package/calendar/grid/index.d.ts +2 -1
  103. package/calendar/grid/index.d.ts.map +1 -1
  104. package/calendar/grid/index.js.map +1 -1
  105. package/code-editor/pane.d.ts +2 -1
  106. package/code-editor/pane.d.ts.map +1 -1
  107. package/code-editor/pane.js.map +1 -1
  108. package/collection-preferences/analytics-metadata/interfaces.d.ts +0 -24
  109. package/collection-preferences/analytics-metadata/interfaces.d.ts.map +1 -1
  110. package/collection-preferences/analytics-metadata/interfaces.js.map +1 -1
  111. package/collection-preferences/content-display/content-display-option.d.ts +1 -1
  112. package/collection-preferences/content-display/content-display-option.d.ts.map +1 -1
  113. package/collection-preferences/content-display/content-display-option.js.map +1 -1
  114. package/collection-preferences/content-display/index.d.ts.map +1 -1
  115. package/collection-preferences/content-display/index.js +18 -42
  116. package/collection-preferences/content-display/index.js.map +1 -1
  117. package/collection-preferences/content-display/styles.css.js +12 -13
  118. package/collection-preferences/content-display/styles.scoped.css +15 -44
  119. package/collection-preferences/content-display/styles.selectors.js +12 -13
  120. package/collection-preferences/styles.css.js +38 -39
  121. package/collection-preferences/styles.scoped.css +42 -71
  122. package/collection-preferences/styles.selectors.js +38 -39
  123. package/copy-to-clipboard/internal.d.ts +2 -1
  124. package/copy-to-clipboard/internal.d.ts.map +1 -1
  125. package/copy-to-clipboard/internal.js.map +1 -1
  126. package/date-range-picker/calendar/grids/index.d.ts +2 -1
  127. package/date-range-picker/calendar/grids/index.d.ts.map +1 -1
  128. package/date-range-picker/calendar/grids/index.js.map +1 -1
  129. package/date-range-picker/calendar/grids/monthly-grid.d.ts +2 -1
  130. package/date-range-picker/calendar/grids/monthly-grid.d.ts.map +1 -1
  131. package/date-range-picker/calendar/grids/monthly-grid.js.map +1 -1
  132. package/date-range-picker/calendar/range-inputs.d.ts +1 -1
  133. package/date-range-picker/calendar/range-inputs.d.ts.map +1 -1
  134. package/date-range-picker/calendar/range-inputs.js.map +1 -1
  135. package/date-range-picker/dropdown.d.ts +2 -2
  136. package/date-range-picker/dropdown.d.ts.map +1 -1
  137. package/date-range-picker/dropdown.js +1 -1
  138. package/date-range-picker/dropdown.js.map +1 -1
  139. package/date-range-picker/interfaces.d.ts +2 -1
  140. package/date-range-picker/interfaces.d.ts.map +1 -1
  141. package/date-range-picker/interfaces.js.map +1 -1
  142. package/date-range-picker/relative-range/index.d.ts +2 -1
  143. package/date-range-picker/relative-range/index.d.ts.map +1 -1
  144. package/date-range-picker/relative-range/index.js.map +1 -1
  145. package/drawer/implementation.d.ts +2 -1
  146. package/drawer/implementation.d.ts.map +1 -1
  147. package/drawer/implementation.js.map +1 -1
  148. package/drawer/interfaces.d.ts +2 -1
  149. package/drawer/interfaces.d.ts.map +1 -1
  150. package/drawer/interfaces.js.map +1 -1
  151. package/expandable-section/expandable-section-container.d.ts +2 -1
  152. package/expandable-section/expandable-section-container.d.ts.map +1 -1
  153. package/expandable-section/expandable-section-container.js.map +1 -1
  154. package/expandable-section/expandable-section-header.d.ts +0 -1
  155. package/expandable-section/expandable-section-header.d.ts.map +1 -1
  156. package/expandable-section/expandable-section-header.js +1 -1
  157. package/expandable-section/expandable-section-header.js.map +1 -1
  158. package/expandable-section/internal.d.ts +2 -1
  159. package/expandable-section/internal.d.ts.map +1 -1
  160. package/expandable-section/internal.js.map +1 -1
  161. package/file-token-group/file-token.d.ts +1 -1
  162. package/file-token-group/file-token.d.ts.map +1 -1
  163. package/file-token-group/file-token.js.map +1 -1
  164. package/file-upload/interfaces.d.ts +0 -5
  165. package/file-upload/interfaces.d.ts.map +1 -1
  166. package/file-upload/interfaces.js.map +1 -1
  167. package/flashbar/analytics-metadata/interfaces.d.ts +0 -6
  168. package/flashbar/analytics-metadata/interfaces.d.ts.map +1 -1
  169. package/flashbar/analytics-metadata/interfaces.js.map +1 -1
  170. package/flashbar/collapsible-flashbar.d.ts +0 -1
  171. package/flashbar/collapsible-flashbar.d.ts.map +1 -1
  172. package/flashbar/collapsible-flashbar.js.map +1 -1
  173. package/flashbar/flash.d.ts +2 -1
  174. package/flashbar/flash.d.ts.map +1 -1
  175. package/flashbar/flash.js.map +1 -1
  176. package/flashbar/non-collapsible-flashbar.d.ts +0 -1
  177. package/flashbar/non-collapsible-flashbar.d.ts.map +1 -1
  178. package/flashbar/non-collapsible-flashbar.js.map +1 -1
  179. package/flashbar/utils.d.ts +2 -1
  180. package/flashbar/utils.d.ts.map +1 -1
  181. package/flashbar/utils.js.map +1 -1
  182. package/grid/internal.d.ts +1 -1
  183. package/grid/internal.d.ts.map +1 -1
  184. package/grid/internal.js.map +1 -1
  185. package/help-panel/implementation.d.ts +2 -1
  186. package/help-panel/implementation.d.ts.map +1 -1
  187. package/help-panel/implementation.js.map +1 -1
  188. package/i18n/context.d.ts +1 -1
  189. package/i18n/context.d.ts.map +1 -1
  190. package/i18n/context.js.map +1 -1
  191. package/i18n/testing.d.ts +2 -1
  192. package/i18n/testing.d.ts.map +1 -1
  193. package/i18n/testing.js.map +1 -1
  194. package/internal/analytics/components/analytics-funnel.d.ts +0 -1
  195. package/internal/analytics/components/analytics-funnel.d.ts.map +1 -1
  196. package/internal/analytics/components/analytics-funnel.js +1 -1
  197. package/internal/analytics/components/analytics-funnel.js.map +1 -1
  198. package/internal/analytics/interfaces.d.ts +17 -24
  199. package/internal/analytics/interfaces.d.ts.map +1 -1
  200. package/internal/analytics/interfaces.js.map +1 -1
  201. package/internal/analytics/selectors.d.ts +1 -1
  202. package/internal/analytics/selectors.d.ts.map +1 -1
  203. package/internal/analytics/selectors.js +2 -1
  204. package/internal/analytics/selectors.js.map +1 -1
  205. package/internal/components/autosuggest-input/index.d.ts +2 -2
  206. package/internal/components/autosuggest-input/index.d.ts.map +1 -1
  207. package/internal/components/autosuggest-input/index.js.map +1 -1
  208. package/internal/components/cartesian-chart/highlighted-point.d.ts +1 -1
  209. package/internal/components/cartesian-chart/highlighted-point.d.ts.map +1 -1
  210. package/internal/components/cartesian-chart/highlighted-point.js.map +1 -1
  211. package/internal/components/cartesian-chart/scales.d.ts +4 -5
  212. package/internal/components/cartesian-chart/scales.d.ts.map +1 -1
  213. package/internal/components/cartesian-chart/scales.js +1 -1
  214. package/internal/components/cartesian-chart/scales.js.map +1 -1
  215. package/internal/components/cartesian-chart/vertical-marker.d.ts +1 -1
  216. package/internal/components/cartesian-chart/vertical-marker.d.ts.map +1 -1
  217. package/internal/components/cartesian-chart/vertical-marker.js.map +1 -1
  218. package/internal/components/chart-filter/index.d.ts +1 -1
  219. package/internal/components/chart-filter/index.d.ts.map +1 -1
  220. package/internal/components/chart-filter/index.js.map +1 -1
  221. package/internal/components/chart-legend/index.d.ts +1 -1
  222. package/internal/components/chart-legend/index.d.ts.map +1 -1
  223. package/internal/components/chart-legend/index.js.map +1 -1
  224. package/internal/components/chart-plot/application-controller.d.ts +1 -1
  225. package/internal/components/chart-plot/application-controller.d.ts.map +1 -1
  226. package/internal/components/chart-plot/application-controller.js.map +1 -1
  227. package/internal/components/chart-plot/focus-outline.d.ts +2 -1
  228. package/internal/components/chart-plot/focus-outline.d.ts.map +1 -1
  229. package/internal/components/chart-plot/focus-outline.js.map +1 -1
  230. package/internal/components/chart-plot/index.d.ts +1 -1
  231. package/internal/components/chart-plot/index.d.ts.map +1 -1
  232. package/internal/components/chart-plot/index.js.map +1 -1
  233. package/internal/components/chart-popover/index.d.ts +1 -1
  234. package/internal/components/chart-popover/index.d.ts.map +1 -1
  235. package/internal/components/chart-popover/index.js.map +1 -1
  236. package/internal/components/chart-series-details/index.d.ts +1 -1
  237. package/internal/components/chart-series-details/index.d.ts.map +1 -1
  238. package/internal/components/chart-series-details/index.js.map +1 -1
  239. package/internal/components/checkbox-icon/index.d.ts +1 -10
  240. package/internal/components/checkbox-icon/index.d.ts.map +1 -1
  241. package/internal/components/checkbox-icon/index.js +1 -1
  242. package/internal/components/checkbox-icon/index.js.map +1 -1
  243. package/internal/components/dnd-container/index.d.ts +28 -0
  244. package/internal/components/dnd-container/index.d.ts.map +1 -0
  245. package/internal/components/dnd-container/index.js +67 -0
  246. package/internal/components/dnd-container/index.js.map +1 -0
  247. package/internal/components/dnd-container/interfaces.d.ts +13 -0
  248. package/internal/components/dnd-container/interfaces.d.ts.map +1 -0
  249. package/internal/components/dnd-container/interfaces.js +4 -0
  250. package/internal/components/dnd-container/interfaces.js.map +1 -0
  251. package/internal/components/dnd-container/keyboard-sensor/defaults.d.ts.map +1 -0
  252. package/internal/components/dnd-container/keyboard-sensor/defaults.js.map +1 -0
  253. package/internal/components/dnd-container/keyboard-sensor/index.d.ts.map +1 -0
  254. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/index.js +1 -1
  255. package/internal/components/dnd-container/keyboard-sensor/index.js.map +1 -0
  256. package/internal/components/dnd-container/keyboard-sensor/utilities/events.d.ts +7 -0
  257. package/internal/components/dnd-container/keyboard-sensor/utilities/events.d.ts.map +1 -0
  258. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/events.js +0 -4
  259. package/internal/components/dnd-container/keyboard-sensor/utilities/events.js.map +1 -0
  260. package/internal/components/dnd-container/keyboard-sensor/utilities/listeners.d.ts.map +1 -0
  261. package/internal/components/dnd-container/keyboard-sensor/utilities/listeners.js.map +1 -0
  262. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.d.ts +8 -0
  263. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.d.ts.map +1 -0
  264. package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/scroll.js +2 -2
  265. package/internal/components/dnd-container/keyboard-sensor/utilities/scroll.js.map +1 -0
  266. package/internal/components/dnd-container/styles.css.js +6 -0
  267. package/internal/components/dnd-container/styles.scoped.css +168 -0
  268. package/internal/components/dnd-container/styles.selectors.js +7 -0
  269. package/{collection-preferences/content-display → internal/components/dnd-container}/use-drag-and-drop-reorder.d.ts +2 -4
  270. package/internal/components/dnd-container/use-drag-and-drop-reorder.d.ts.map +1 -0
  271. package/{collection-preferences/content-display → internal/components/dnd-container}/use-drag-and-drop-reorder.js +4 -4
  272. package/internal/components/dnd-container/use-drag-and-drop-reorder.js.map +1 -0
  273. package/internal/components/dnd-container/use-live-announcements.d.ts +11 -0
  274. package/internal/components/dnd-container/use-live-announcements.d.ts.map +1 -0
  275. package/{collection-preferences/content-display → internal/components/dnd-container}/use-live-announcements.js +6 -6
  276. package/internal/components/dnd-container/use-live-announcements.js.map +1 -0
  277. package/internal/components/dropdown/dropdown-fit-handler.d.ts +0 -30
  278. package/internal/components/dropdown/dropdown-fit-handler.d.ts.map +1 -1
  279. package/internal/components/dropdown/dropdown-fit-handler.js +4 -4
  280. package/internal/components/dropdown/dropdown-fit-handler.js.map +1 -1
  281. package/internal/components/focus-lock/utils.d.ts +0 -1
  282. package/internal/components/focus-lock/utils.d.ts.map +1 -1
  283. package/internal/components/focus-lock/utils.js +1 -1
  284. package/internal/components/focus-lock/utils.js.map +1 -1
  285. package/internal/components/masked-input/index.d.ts +1 -2
  286. package/internal/components/masked-input/index.d.ts.map +1 -1
  287. package/internal/components/masked-input/index.js +0 -1
  288. package/internal/components/masked-input/index.js.map +1 -1
  289. package/internal/components/masked-input/utils/mask-format.d.ts +1 -1
  290. package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
  291. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  292. package/internal/components/option/highlight-match.d.ts +2 -1
  293. package/internal/components/option/highlight-match.d.ts.map +1 -1
  294. package/internal/components/option/highlight-match.js.map +1 -1
  295. package/internal/components/option/interfaces.d.ts +3 -2
  296. package/internal/components/option/interfaces.d.ts.map +1 -1
  297. package/internal/components/option/interfaces.js.map +1 -1
  298. package/internal/components/options-list/utils/use-highlight-option.d.ts +2 -1
  299. package/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  300. package/internal/components/options-list/utils/use-highlight-option.js +2 -2
  301. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  302. package/internal/components/screenreader-only/index.d.ts +2 -1
  303. package/internal/components/screenreader-only/index.d.ts.map +1 -1
  304. package/internal/components/screenreader-only/index.js.map +1 -1
  305. package/internal/components/tab-trap/index.d.ts +2 -1
  306. package/internal/components/tab-trap/index.d.ts.map +1 -1
  307. package/internal/components/tab-trap/index.js.map +1 -1
  308. package/internal/components/transition/index.d.ts +2 -1
  309. package/internal/components/transition/index.d.ts.map +1 -1
  310. package/internal/components/transition/index.js.map +1 -1
  311. package/internal/context/single-tab-stop-navigation-context.d.ts +2 -4
  312. package/internal/context/single-tab-stop-navigation-context.d.ts.map +1 -1
  313. package/internal/context/single-tab-stop-navigation-context.js.map +1 -1
  314. package/internal/context/table-component-context.d.ts +2 -2
  315. package/internal/context/table-component-context.d.ts.map +1 -1
  316. package/internal/context/table-component-context.js +1 -1
  317. package/internal/context/table-component-context.js.map +1 -1
  318. package/internal/environment.js +1 -1
  319. package/internal/environment.json +1 -1
  320. package/internal/hooks/forward-focus/radio-group.d.ts +2 -1
  321. package/internal/hooks/forward-focus/radio-group.d.ts.map +1 -1
  322. package/internal/hooks/forward-focus/radio-group.js.map +1 -1
  323. package/internal/hooks/use-dynamic-overlap/index.d.ts +2 -1
  324. package/internal/hooks/use-dynamic-overlap/index.d.ts.map +1 -1
  325. package/internal/hooks/use-dynamic-overlap/index.js.map +1 -1
  326. package/internal/keycode.d.ts +1 -5
  327. package/internal/keycode.d.ts.map +1 -1
  328. package/internal/keycode.js +0 -4
  329. package/internal/keycode.js.map +1 -1
  330. package/internal/manifest.json +1 -1
  331. package/internal/plugins/controllers/action-buttons.d.ts +1 -1
  332. package/internal/plugins/controllers/action-buttons.d.ts.map +1 -1
  333. package/internal/plugins/controllers/action-buttons.js.map +1 -1
  334. package/internal/plugins/controllers/alert-flash-content.d.ts +3 -3
  335. package/internal/plugins/controllers/alert-flash-content.d.ts.map +1 -1
  336. package/internal/plugins/controllers/alert-flash-content.js.map +1 -1
  337. package/internal/plugins/controllers/app-layout-widget.d.ts +1 -1
  338. package/internal/plugins/controllers/app-layout-widget.d.ts.map +1 -1
  339. package/internal/plugins/controllers/app-layout-widget.js.map +1 -1
  340. package/internal/plugins/controllers/drawers.d.ts +4 -4
  341. package/internal/plugins/controllers/drawers.d.ts.map +1 -1
  342. package/internal/plugins/controllers/drawers.js.map +1 -1
  343. package/internal/utils/handle-key.d.ts +2 -1
  344. package/internal/utils/handle-key.d.ts.map +1 -1
  345. package/internal/utils/handle-key.js.map +1 -1
  346. package/internal/utils/throttle.d.ts +2 -1
  347. package/internal/utils/throttle.d.ts.map +1 -1
  348. package/internal/utils/throttle.js.map +1 -1
  349. package/live-region/internal.d.ts +1 -1
  350. package/live-region/internal.d.ts.map +1 -1
  351. package/live-region/internal.js.map +1 -1
  352. package/mixed-line-bar-chart/bar-groups.d.ts +2 -1
  353. package/mixed-line-bar-chart/bar-groups.d.ts.map +1 -1
  354. package/mixed-line-bar-chart/bar-groups.js.map +1 -1
  355. package/mixed-line-bar-chart/bar-series.d.ts +2 -1
  356. package/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
  357. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  358. package/mixed-line-bar-chart/data-series.d.ts +2 -1
  359. package/mixed-line-bar-chart/data-series.d.ts.map +1 -1
  360. package/mixed-line-bar-chart/data-series.js.map +1 -1
  361. package/mixed-line-bar-chart/interfaces.d.ts +0 -2
  362. package/mixed-line-bar-chart/interfaces.d.ts.map +1 -1
  363. package/mixed-line-bar-chart/interfaces.js.map +1 -1
  364. package/mixed-line-bar-chart/line-series.d.ts +2 -1
  365. package/mixed-line-bar-chart/line-series.d.ts.map +1 -1
  366. package/mixed-line-bar-chart/line-series.js.map +1 -1
  367. package/modal/index.d.ts.map +1 -1
  368. package/modal/index.js +8 -2
  369. package/modal/index.js.map +1 -1
  370. package/multiselect/analytics-metadata/interfaces.d.ts +0 -4
  371. package/multiselect/analytics-metadata/interfaces.d.ts.map +1 -1
  372. package/multiselect/analytics-metadata/interfaces.js.map +1 -1
  373. package/package.json +1 -1
  374. package/pie-chart/interfaces.d.ts +2 -1
  375. package/pie-chart/interfaces.d.ts.map +1 -1
  376. package/pie-chart/interfaces.js.map +1 -1
  377. package/pie-chart/labels.d.ts +1 -1
  378. package/pie-chart/labels.d.ts.map +1 -1
  379. package/pie-chart/labels.js.map +1 -1
  380. package/pie-chart/pie-chart.d.ts +2 -7
  381. package/pie-chart/pie-chart.d.ts.map +1 -1
  382. package/pie-chart/pie-chart.js.map +1 -1
  383. package/popover/arrow.d.ts +1 -1
  384. package/popover/arrow.d.ts.map +1 -1
  385. package/popover/arrow.js.map +1 -1
  386. package/popover/container.d.ts +2 -1
  387. package/popover/container.d.ts.map +1 -1
  388. package/popover/container.js.map +1 -1
  389. package/prompt-input/internal.d.ts +1 -1
  390. package/prompt-input/internal.d.ts.map +1 -1
  391. package/prompt-input/internal.js.map +1 -1
  392. package/property-filter/analytics-metadata/interfaces.d.ts +0 -15
  393. package/property-filter/analytics-metadata/interfaces.d.ts.map +1 -1
  394. package/property-filter/analytics-metadata/interfaces.js.map +1 -1
  395. package/property-filter/controller.d.ts +0 -1
  396. package/property-filter/controller.d.ts.map +1 -1
  397. package/property-filter/controller.js +1 -1
  398. package/property-filter/controller.js.map +1 -1
  399. package/property-filter/interfaces.d.ts +1 -6
  400. package/property-filter/interfaces.d.ts.map +1 -1
  401. package/property-filter/interfaces.js.map +1 -1
  402. package/property-filter/internal.d.ts +0 -2
  403. package/property-filter/internal.d.ts.map +1 -1
  404. package/property-filter/internal.js.map +1 -1
  405. package/property-filter/utils.d.ts +0 -1
  406. package/property-filter/utils.d.ts.map +1 -1
  407. package/property-filter/utils.js +1 -1
  408. package/property-filter/utils.js.map +1 -1
  409. package/s3-resource-selector/s3-modal/basic-table.d.ts +0 -6
  410. package/s3-resource-selector/s3-modal/basic-table.d.ts.map +1 -1
  411. package/s3-resource-selector/s3-modal/basic-table.js +1 -1
  412. package/s3-resource-selector/s3-modal/basic-table.js.map +1 -1
  413. package/segmented-control/segment.d.ts +2 -1
  414. package/segmented-control/segment.d.ts.map +1 -1
  415. package/segmented-control/segment.js.map +1 -1
  416. package/select/analytics-metadata/interfaces.d.ts +0 -4
  417. package/select/analytics-metadata/interfaces.d.ts.map +1 -1
  418. package/select/analytics-metadata/interfaces.js.map +1 -1
  419. package/select/utils/render-options.d.ts +2 -1
  420. package/select/utils/render-options.d.ts.map +1 -1
  421. package/select/utils/render-options.js.map +1 -1
  422. package/select/utils/use-native-search.d.ts +0 -1
  423. package/select/utils/use-native-search.d.ts.map +1 -1
  424. package/select/utils/use-native-search.js +1 -1
  425. package/select/utils/use-native-search.js.map +1 -1
  426. package/side-navigation/analytics-metadata/interfaces.d.ts +0 -2
  427. package/side-navigation/analytics-metadata/interfaces.d.ts.map +1 -1
  428. package/side-navigation/analytics-metadata/interfaces.js.map +1 -1
  429. package/side-navigation/implementation.d.ts +2 -1
  430. package/side-navigation/implementation.d.ts.map +1 -1
  431. package/side-navigation/implementation.js.map +1 -1
  432. package/side-navigation/parts.d.ts +2 -2
  433. package/side-navigation/parts.d.ts.map +1 -1
  434. package/side-navigation/parts.js.map +1 -1
  435. package/slider/internal.d.ts +2 -1
  436. package/slider/internal.d.ts.map +1 -1
  437. package/slider/internal.js.map +1 -1
  438. package/slider/slider-labels.d.ts +2 -1
  439. package/slider/slider-labels.d.ts.map +1 -1
  440. package/slider/slider-labels.js.map +1 -1
  441. package/slider/tick-marks.d.ts +2 -4
  442. package/slider/tick-marks.d.ts.map +1 -1
  443. package/slider/tick-marks.js.map +1 -1
  444. package/split-panel/bottom.d.ts.map +1 -1
  445. package/split-panel/bottom.js +13 -3
  446. package/split-panel/bottom.js.map +1 -1
  447. package/split-panel/implementation.js +1 -1
  448. package/split-panel/implementation.js.map +1 -1
  449. package/split-panel/styles.css.js +26 -26
  450. package/split-panel/styles.scoped.css +43 -48
  451. package/split-panel/styles.selectors.js +26 -26
  452. package/steps/internal.d.ts +1 -1
  453. package/steps/internal.d.ts.map +1 -1
  454. package/steps/internal.js +1 -1
  455. package/steps/internal.js.map +1 -1
  456. package/table/interfaces.d.ts +3 -2
  457. package/table/interfaces.d.ts.map +1 -1
  458. package/table/interfaces.js.map +1 -1
  459. package/table/internal.js +2 -2
  460. package/table/internal.js.map +1 -1
  461. package/table/progressive-loading/loader-cell.d.ts +2 -1
  462. package/table/progressive-loading/loader-cell.d.ts.map +1 -1
  463. package/table/progressive-loading/loader-cell.js.map +1 -1
  464. package/table/selection/utils.d.ts +0 -1
  465. package/table/selection/utils.d.ts.map +1 -1
  466. package/table/selection/utils.js +1 -1
  467. package/table/selection/utils.js.map +1 -1
  468. package/table/sticky-columns/use-sticky-columns.d.ts +1 -21
  469. package/table/sticky-columns/use-sticky-columns.d.ts.map +1 -1
  470. package/table/sticky-columns/use-sticky-columns.js +1 -1
  471. package/table/sticky-columns/use-sticky-columns.js.map +1 -1
  472. package/table/table-role/grid-navigation.js +10 -0
  473. package/table/table-role/grid-navigation.js.map +1 -1
  474. package/table/table-role/index.d.ts +1 -1
  475. package/table/table-role/index.d.ts.map +1 -1
  476. package/table/table-role/index.js.map +1 -1
  477. package/table/use-cell-editing.d.ts +1 -1
  478. package/table/use-cell-editing.d.ts.map +1 -1
  479. package/table/use-cell-editing.js.map +1 -1
  480. package/tabs/tab-header-bar.d.ts +2 -1
  481. package/tabs/tab-header-bar.d.ts.map +1 -1
  482. package/tabs/tab-header-bar.js.map +1 -1
  483. package/tag-editor/internal.d.ts +2 -1
  484. package/tag-editor/internal.d.ts.map +1 -1
  485. package/tag-editor/internal.js.map +1 -1
  486. package/test-utils/dom/anchor-navigation/index.d.ts +2 -1
  487. package/test-utils/dom/anchor-navigation/index.js +0 -2
  488. package/test-utils/dom/anchor-navigation/index.js.map +1 -1
  489. package/test-utils/dom/autosuggest/index.d.ts +0 -3
  490. package/test-utils/dom/autosuggest/index.js +1 -2
  491. package/test-utils/dom/autosuggest/index.js.map +1 -1
  492. package/test-utils/dom/cards/index.d.ts +3 -2
  493. package/test-utils/dom/cards/index.js +0 -3
  494. package/test-utils/dom/cards/index.js.map +1 -1
  495. package/test-utils/dom/key-value-pairs/index.d.ts +3 -2
  496. package/test-utils/dom/key-value-pairs/index.js +0 -3
  497. package/test-utils/dom/key-value-pairs/index.js.map +1 -1
  498. package/test-utils/dom/steps/index.d.ts +2 -1
  499. package/test-utils/dom/steps/index.js +0 -2
  500. package/test-utils/dom/steps/index.js.map +1 -1
  501. package/test-utils/dom/tabs/index.d.ts +2 -1
  502. package/test-utils/dom/tabs/index.js +0 -2
  503. package/test-utils/dom/tabs/index.js.map +1 -1
  504. package/test-utils/dom/tag-editor/index.d.ts +2 -1
  505. package/test-utils/dom/tag-editor/index.js +0 -2
  506. package/test-utils/dom/tag-editor/index.js.map +1 -1
  507. package/test-utils/selectors/anchor-navigation/index.d.ts +2 -1
  508. package/test-utils/selectors/anchor-navigation/index.js +0 -2
  509. package/test-utils/selectors/anchor-navigation/index.js.map +1 -1
  510. package/test-utils/selectors/autosuggest/index.d.ts +0 -3
  511. package/test-utils/selectors/autosuggest/index.js +1 -2
  512. package/test-utils/selectors/autosuggest/index.js.map +1 -1
  513. package/test-utils/selectors/cards/index.d.ts +3 -2
  514. package/test-utils/selectors/cards/index.js +0 -3
  515. package/test-utils/selectors/cards/index.js.map +1 -1
  516. package/test-utils/selectors/key-value-pairs/index.d.ts +3 -2
  517. package/test-utils/selectors/key-value-pairs/index.js +0 -3
  518. package/test-utils/selectors/key-value-pairs/index.js.map +1 -1
  519. package/test-utils/selectors/steps/index.d.ts +2 -1
  520. package/test-utils/selectors/steps/index.js +0 -2
  521. package/test-utils/selectors/steps/index.js.map +1 -1
  522. package/test-utils/selectors/tabs/index.d.ts +2 -1
  523. package/test-utils/selectors/tabs/index.js +0 -2
  524. package/test-utils/selectors/tabs/index.js.map +1 -1
  525. package/test-utils/selectors/tag-editor/index.d.ts +2 -1
  526. package/test-utils/selectors/tag-editor/index.js +0 -2
  527. package/test-utils/selectors/tag-editor/index.js.map +1 -1
  528. package/test-utils/tsconfig.tsbuildinfo +1 -1
  529. package/text-filter/analytics-metadata/interfaces.d.ts +0 -2
  530. package/text-filter/analytics-metadata/interfaces.d.ts.map +1 -1
  531. package/text-filter/analytics-metadata/interfaces.js.map +1 -1
  532. package/toggle-button/internal.d.ts +0 -1
  533. package/toggle-button/internal.d.ts.map +1 -1
  534. package/toggle-button/internal.js +0 -1
  535. package/toggle-button/internal.js.map +1 -1
  536. package/token-group/analytics-metadata/interfaces.d.ts +0 -2
  537. package/token-group/analytics-metadata/interfaces.d.ts.map +1 -1
  538. package/token-group/analytics-metadata/interfaces.js.map +1 -1
  539. package/top-navigation/1.0-beta/internal.d.ts +2 -1
  540. package/top-navigation/1.0-beta/internal.d.ts.map +1 -1
  541. package/top-navigation/1.0-beta/internal.js.map +1 -1
  542. package/top-navigation/1.0-beta/parts/overflow-menu.d.ts +2 -1
  543. package/top-navigation/1.0-beta/parts/overflow-menu.d.ts.map +1 -1
  544. package/top-navigation/1.0-beta/parts/overflow-menu.js.map +1 -1
  545. package/top-navigation/1.0-beta/use-top-navigation.d.ts +4 -24
  546. package/top-navigation/1.0-beta/use-top-navigation.d.ts.map +1 -1
  547. package/top-navigation/1.0-beta/use-top-navigation.js +2 -2
  548. package/top-navigation/1.0-beta/use-top-navigation.js.map +1 -1
  549. package/top-navigation/internal.d.ts +2 -1
  550. package/top-navigation/internal.d.ts.map +1 -1
  551. package/top-navigation/internal.js.map +1 -1
  552. package/top-navigation/parts/overflow-menu/router.d.ts +1 -10
  553. package/top-navigation/parts/overflow-menu/router.d.ts.map +1 -1
  554. package/top-navigation/parts/overflow-menu/router.js +1 -1
  555. package/top-navigation/parts/overflow-menu/router.js.map +1 -1
  556. package/top-navigation/use-top-navigation.d.ts +4 -3
  557. package/top-navigation/use-top-navigation.d.ts.map +1 -1
  558. package/top-navigation/use-top-navigation.js.map +1 -1
  559. package/tutorial-panel/components/tutorial-detail-view/task-list.d.ts +2 -1
  560. package/tutorial-panel/components/tutorial-detail-view/task-list.d.ts.map +1 -1
  561. package/tutorial-panel/components/tutorial-detail-view/task-list.js.map +1 -1
  562. package/tutorial-panel/components/tutorial-list/index.d.ts +2 -1
  563. package/tutorial-panel/components/tutorial-list/index.d.ts.map +1 -1
  564. package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  565. package/wizard/analytics-metadata/interfaces.d.ts +0 -21
  566. package/wizard/analytics-metadata/interfaces.d.ts.map +1 -1
  567. package/wizard/analytics-metadata/interfaces.js.map +1 -1
  568. package/wizard/wizard-form.d.ts +1 -4
  569. package/wizard/wizard-form.d.ts.map +1 -1
  570. package/wizard/wizard-form.js +1 -1
  571. package/wizard/wizard-form.js.map +1 -1
  572. package/collection-preferences/content-display/draggable-option.d.ts +0 -9
  573. package/collection-preferences/content-display/draggable-option.d.ts.map +0 -1
  574. package/collection-preferences/content-display/draggable-option.js +0 -27
  575. package/collection-preferences/content-display/draggable-option.js.map +0 -1
  576. package/collection-preferences/content-display/keyboard-sensor/defaults.d.ts.map +0 -1
  577. package/collection-preferences/content-display/keyboard-sensor/defaults.js.map +0 -1
  578. package/collection-preferences/content-display/keyboard-sensor/index.d.ts.map +0 -1
  579. package/collection-preferences/content-display/keyboard-sensor/index.js.map +0 -1
  580. package/collection-preferences/content-display/keyboard-sensor/utilities/events.d.ts +0 -11
  581. package/collection-preferences/content-display/keyboard-sensor/utilities/events.d.ts.map +0 -1
  582. package/collection-preferences/content-display/keyboard-sensor/utilities/events.js.map +0 -1
  583. package/collection-preferences/content-display/keyboard-sensor/utilities/listeners.d.ts.map +0 -1
  584. package/collection-preferences/content-display/keyboard-sensor/utilities/listeners.js.map +0 -1
  585. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.d.ts +0 -30
  586. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.d.ts.map +0 -1
  587. package/collection-preferences/content-display/keyboard-sensor/utilities/scroll.js.map +0 -1
  588. package/collection-preferences/content-display/use-drag-and-drop-reorder.d.ts.map +0 -1
  589. package/collection-preferences/content-display/use-drag-and-drop-reorder.js.map +0 -1
  590. package/collection-preferences/content-display/use-live-announcements.d.ts +0 -12
  591. package/collection-preferences/content-display/use-live-announcements.d.ts.map +0 -1
  592. package/collection-preferences/content-display/use-live-announcements.js.map +0 -1
  593. package/internal/hooks/use-mutation-observer/index.d.ts +0 -8
  594. package/internal/hooks/use-mutation-observer/index.d.ts.map +0 -1
  595. package/internal/hooks/use-mutation-observer/index.js +0 -26
  596. package/internal/hooks/use-mutation-observer/index.js.map +0 -1
  597. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/defaults.d.ts +0 -0
  598. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/defaults.js +0 -0
  599. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/index.d.ts +0 -0
  600. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/listeners.d.ts +0 -0
  601. /package/{collection-preferences/content-display → internal/components/dnd-container}/keyboard-sensor/utilities/listeners.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-drag-and-drop-reorder.js","sourceRoot":"","sources":["../../../../../src/internal/components/dnd-container/use-drag-and-drop-reorder.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport {\n Active,\n closestCenter,\n CollisionDetection,\n DroppableContainer,\n KeyboardCoordinateGetter,\n PointerSensor,\n UniqueIdentifier,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport { hasSortableData } from '@dnd-kit/sortable';\n\nimport { ReorderOptions } from './interfaces';\nimport { KeyboardSensor } from './keyboard-sensor';\n\nenum KeyboardCode {\n Space = 'Space',\n Down = 'ArrowDown',\n Right = 'ArrowRight',\n Left = 'ArrowLeft',\n Up = 'ArrowUp',\n Esc = 'Escape',\n Enter = 'Enter',\n}\n\n// A custom collision detection algorithm is used when using a keyboard to\n// work around an unexpected behavior when reordering items of variable height\n// with the keyboard.\n\n// Neither closestCenter nor closestCorners work really well for this case,\n// because the center (or corners) of a tall rectangle might be so low that it\n// is detected as being closest to the rectangle below of the one it should\n// actually swap with.\n\n// Instead of relying on coordinates, the expected results are achieved by\n// moving X positions up or down in the initially sorted array, depending on\n// the desired direction.\n\n// We let our collisionDetection and customCoordinateGetter use the same\n// getClosestId function which takes its value from the current component\n// state, to make sure they are always in sync.\n\nexport default function useDragAndDropReorder<Option>({ sortedOptions, getId }: ReorderOptions<Option>) {\n const isKeyboard = useRef(false);\n const positionDelta = useRef(0);\n const [activeItemId, setActiveItemId] = useState<UniqueIdentifier | null>(null);\n\n const setActiveItem = (id: UniqueIdentifier | null) => {\n setActiveItemId(id);\n if (!id) {\n isKeyboard.current = false;\n positionDelta.current = 0;\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isKeyboard.current && activeItemId) {\n const currentTargetIndex =\n sortedOptions.findIndex(option => getId(option) === activeItemId) + positionDelta.current;\n if (event.key === 'ArrowDown' && currentTargetIndex < sortedOptions.length - 1) {\n positionDelta.current += 1;\n } else if (event.key === 'ArrowUp' && currentTargetIndex > 0) {\n positionDelta.current -= 1;\n }\n }\n if (activeItemId && isEscape(event.key)) {\n // Prevent modal from closing when pressing Esc to cancel the dragging action\n event.stopPropagation();\n }\n };\n\n const getClosestId = (active: Active) => {\n if (positionDelta.current === 0) {\n return active.id;\n }\n const currentIndex = sortedOptions.findIndex(option => getId(option) === active.id);\n const newIndex = Math.max(0, Math.min(sortedOptions.length - 1, currentIndex + positionDelta.current));\n return getId(sortedOptions[newIndex]);\n };\n\n const collisionDetection: CollisionDetection = ({\n active,\n collisionRect,\n droppableContainers,\n droppableRects,\n pointerCoordinates,\n }) => {\n if (isKeyboard.current) {\n // For keyboard interaction, determine the colliding container based on the movements made by the arrow keys,\n // via getClosestId\n const collidingContainer = getCollidingContainer({\n activeId: active.id,\n closestId: getClosestId(active),\n droppableContainers,\n });\n return collidingContainer ? [collidingContainer] : [];\n } else {\n // For mouse interaction, use the closest center algorithm\n return closestCenter({ active, collisionRect, droppableRects, droppableContainers, pointerCoordinates });\n }\n };\n\n const coordinateGetter: KeyboardCoordinateGetter = (\n event,\n { context: { active, collisionRect, droppableRects, droppableContainers } }\n ) => {\n if (event.code === KeyboardCode.Up || event.code === KeyboardCode.Down) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const closestId = getClosestId(active);\n\n if (closestId !== null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable?.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0,\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top,\n };\n\n return {\n x: rectCoordinates.x - offset.x,\n y: rectCoordinates.y - offset.y,\n };\n }\n }\n }\n };\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter,\n onActivation: () => {\n isKeyboard.current = true;\n },\n })\n );\n\n return {\n activeItem: activeItemId,\n collisionDetection,\n coordinateGetter,\n handleKeyDown,\n sensors,\n setActiveItem,\n };\n}\n\nfunction isAfter(a: DroppableContainer, b: DroppableContainer) {\n return hasSortableData(a) && hasSortableData(b) && a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nfunction getCollidingContainer({\n activeId,\n closestId,\n droppableContainers,\n}: {\n activeId: UniqueIdentifier;\n closestId: UniqueIdentifier;\n droppableContainers: DroppableContainer[];\n}) {\n if (closestId === activeId) {\n return;\n }\n const collidingContainer = droppableContainers.find(({ id }) => id === closestId);\n if (collidingContainer) {\n return {\n id: collidingContainer.id,\n data: {\n droppableContainer: collidingContainer,\n value: 0,\n },\n };\n }\n}\n\nconst isEscape = (key: string) => key === 'Escape' || key === 'Esc';\n"]}
@@ -0,0 +1,11 @@
1
+ import { DragEndEvent, DragOverEvent, DragStartEvent } from '@dnd-kit/core';
2
+ import { ReorderAnnouncements, ReorderOptions } from './interfaces';
3
+ export default function useLiveAnnouncements<Option>({ isDragging, liveAnnouncementDndStarted, liveAnnouncementDndItemReordered, liveAnnouncementDndItemCommitted, liveAnnouncementDndDiscarded, sortedOptions, getId, }: ReorderOptions<Option> & ReorderAnnouncements & {
4
+ isDragging: boolean;
5
+ }): {
6
+ onDragStart({ active }: DragStartEvent): string | undefined;
7
+ onDragOver({ active, over }: DragOverEvent): string | undefined;
8
+ onDragEnd({ active, over }: DragEndEvent): string | undefined;
9
+ onDragCancel(): string | undefined;
10
+ };
11
+ //# sourceMappingURL=use-live-announcements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-live-announcements.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dnd-container/use-live-announcements.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,MAAM,EAAE,EACnD,UAAU,EACV,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,EAChC,4BAA4B,EAC5B,aAAa,EACb,KAAK,GACN,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,oBAAoB,GAAG;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE;4BAO9C,cAAc;iCAMT,aAAa;gCAcd,YAAY;;EAW3C"}
@@ -1,7 +1,7 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { useRef } from 'react';
4
- export default function useLiveAnnouncements({ isDragging, liveAnnouncementDndStarted, liveAnnouncementDndItemReordered, liveAnnouncementDndItemCommitted, liveAnnouncementDndDiscarded, sortedOptions, }) {
4
+ export default function useLiveAnnouncements({ isDragging, liveAnnouncementDndStarted, liveAnnouncementDndItemReordered, liveAnnouncementDndItemCommitted, liveAnnouncementDndDiscarded, sortedOptions, getId, }) {
5
5
  const isFirstAnnouncement = useRef(true);
6
6
  if (!isDragging) {
7
7
  isFirstAnnouncement.current = true;
@@ -9,7 +9,7 @@ export default function useLiveAnnouncements({ isDragging, liveAnnouncementDndSt
9
9
  return {
10
10
  onDragStart({ active }) {
11
11
  if (active && liveAnnouncementDndStarted) {
12
- const index = sortedOptions.findIndex(option => option.id === active.id);
12
+ const index = sortedOptions.findIndex(option => getId(option) === active.id);
13
13
  return liveAnnouncementDndStarted(index + 1, sortedOptions.length);
14
14
  }
15
15
  },
@@ -22,15 +22,15 @@ export default function useLiveAnnouncements({ isDragging, liveAnnouncementDndSt
22
22
  return;
23
23
  }
24
24
  }
25
- const initialIndex = sortedOptions.findIndex(option => option.id === active.id);
26
- const currentIdex = over ? sortedOptions.findIndex(option => option.id === over.id) : initialIndex;
25
+ const initialIndex = sortedOptions.findIndex(option => getId(option) === active.id);
26
+ const currentIdex = over ? sortedOptions.findIndex(option => getId(option) === over.id) : initialIndex;
27
27
  return liveAnnouncementDndItemReordered(initialIndex + 1, currentIdex + 1, sortedOptions.length);
28
28
  }
29
29
  },
30
30
  onDragEnd({ active, over }) {
31
31
  if (liveAnnouncementDndItemCommitted) {
32
- const initialIndex = sortedOptions.findIndex(option => option.id === active.id);
33
- const finalIndex = over ? sortedOptions.findIndex(option => option.id === over.id) : initialIndex;
32
+ const initialIndex = sortedOptions.findIndex(option => getId(option) === active.id);
33
+ const finalIndex = over ? sortedOptions.findIndex(option => getId(option) === over.id) : initialIndex;
34
34
  return liveAnnouncementDndItemCommitted(initialIndex + 1, finalIndex + 1, sortedOptions.length);
35
35
  }
36
36
  },
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-live-announcements.js","sourceRoot":"","sources":["../../../../../src/internal/components/dnd-container/use-live-announcements.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAK/B,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAS,EACnD,UAAU,EACV,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,EAChC,4BAA4B,EAC5B,aAAa,EACb,KAAK,GACmE;IACxE,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,EAAE;QACf,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC;KACpC;IAED,OAAO;QACL,WAAW,CAAC,EAAE,MAAM,EAAkB;YACpC,IAAI,MAAM,IAAI,0BAA0B,EAAE;gBACxC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7E,OAAO,0BAA0B,CAAC,KAAK,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;aACpE;QACH,CAAC;QACD,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAiB;YACxC,IAAI,gCAAgC,EAAE;gBACpC,gFAAgF;gBAChF,IAAI,mBAAmB,CAAC,OAAO,EAAE;oBAC/B,mBAAmB,CAAC,OAAO,GAAG,KAAK,CAAC;oBACpC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;wBAClC,OAAO;qBACR;iBACF;gBACD,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpF,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBACvG,OAAO,gCAAgC,CAAC,YAAY,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;aAClG;QACH,CAAC;QACD,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgB;YACtC,IAAI,gCAAgC,EAAE;gBACpC,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;gBACpF,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;gBACtG,OAAO,gCAAgC,CAAC,YAAY,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;aACjG;QACH,CAAC;QACD,YAAY;YACV,OAAO,4BAA4B,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useRef } from 'react';\nimport { DragEndEvent, DragOverEvent, DragStartEvent } from '@dnd-kit/core';\n\nimport { ReorderAnnouncements, ReorderOptions } from './interfaces';\n\nexport default function useLiveAnnouncements<Option>({\n isDragging,\n liveAnnouncementDndStarted,\n liveAnnouncementDndItemReordered,\n liveAnnouncementDndItemCommitted,\n liveAnnouncementDndDiscarded,\n sortedOptions,\n getId,\n}: ReorderOptions<Option> & ReorderAnnouncements & { isDragging: boolean }) {\n const isFirstAnnouncement = useRef(true);\n if (!isDragging) {\n isFirstAnnouncement.current = true;\n }\n\n return {\n onDragStart({ active }: DragStartEvent) {\n if (active && liveAnnouncementDndStarted) {\n const index = sortedOptions.findIndex(option => getId(option) === active.id);\n return liveAnnouncementDndStarted(index + 1, sortedOptions.length);\n }\n },\n onDragOver({ active, over }: DragOverEvent) {\n if (liveAnnouncementDndItemReordered) {\n // Don't announce on the first dragOver because it's redundant with onDragStart.\n if (isFirstAnnouncement.current) {\n isFirstAnnouncement.current = false;\n if (!over || over.id === active.id) {\n return;\n }\n }\n const initialIndex = sortedOptions.findIndex(option => getId(option) === active.id);\n const currentIdex = over ? sortedOptions.findIndex(option => getId(option) === over.id) : initialIndex;\n return liveAnnouncementDndItemReordered(initialIndex + 1, currentIdex + 1, sortedOptions.length);\n }\n },\n onDragEnd({ active, over }: DragEndEvent) {\n if (liveAnnouncementDndItemCommitted) {\n const initialIndex = sortedOptions.findIndex(option => getId(option) === active.id);\n const finalIndex = over ? sortedOptions.findIndex(option => getId(option) === over.id) : initialIndex;\n return liveAnnouncementDndItemCommitted(initialIndex + 1, finalIndex + 1, sortedOptions.length);\n }\n },\n onDragCancel() {\n return liveAnnouncementDndDiscarded;\n },\n };\n}\n"]}
@@ -1,10 +1,4 @@
1
1
  import { BoundingBox } from '../../utils/scrollable-containers';
2
- interface AvailableSpace {
3
- blockStart: number;
4
- blockEnd: number;
5
- inlineStart: number;
6
- inlineEnd: number;
7
- }
8
2
  export interface DropdownPosition {
9
3
  blockSize: string;
10
4
  inlineSize: string;
@@ -17,28 +11,6 @@ export interface InteriorDropdownPosition extends DropdownPosition {
17
11
  insetBlockStart: string;
18
12
  }
19
13
  export declare const defaultMaxDropdownWidth: number;
20
- export declare const getAvailableSpace: ({ trigger, overflowParents, stretchWidth, stretchHeight, isMobile, }: {
21
- trigger: HTMLElement;
22
- overflowParents: ReadonlyArray<BoundingBox>;
23
- stretchWidth?: boolean | undefined;
24
- stretchHeight?: boolean | undefined;
25
- isMobile?: boolean | undefined;
26
- }) => AvailableSpace;
27
- export declare const getInteriorAvailableSpace: ({ trigger, overflowParents, isMobile, }: {
28
- trigger: HTMLElement;
29
- overflowParents: ReadonlyArray<BoundingBox>;
30
- isMobile?: boolean | undefined;
31
- }) => AvailableSpace;
32
- export declare const getWidths: ({ triggerElement, dropdownElement, desiredMinWidth, stretchBeyondTriggerWidth, }: {
33
- triggerElement: HTMLElement;
34
- dropdownElement: HTMLElement;
35
- desiredMinWidth?: number | undefined;
36
- stretchBeyondTriggerWidth?: boolean | undefined;
37
- }) => {
38
- idealWidth: number;
39
- minWidth: number;
40
- triggerInlineSize: number;
41
- };
42
14
  export declare const hasEnoughSpaceToStretchBeyondTriggerWidth: ({ triggerElement, dropdownElement, desiredMinWidth, expandToViewport, stretchWidth, stretchHeight, isMobile, }: {
43
15
  triggerElement: HTMLElement;
44
16
  dropdownElement: HTMLElement;
@@ -59,7 +31,5 @@ export declare const getDropdownPosition: ({ triggerElement, dropdownElement, ov
59
31
  isMobile?: boolean | undefined;
60
32
  stretchBeyondTriggerWidth?: boolean | undefined;
61
33
  }) => DropdownPosition;
62
- export declare const getInteriorDropdownPosition: (trigger: HTMLElement, dropdown: HTMLElement, overflowParents: ReadonlyArray<BoundingBox>, isMobile?: boolean) => InteriorDropdownPosition;
63
34
  export declare const calculatePosition: (dropdownElement: HTMLDivElement, triggerElement: HTMLDivElement, verticalContainerElement: HTMLDivElement, interior: boolean, expandToViewport: boolean, preferCenter: boolean, stretchWidth: boolean, stretchHeight: boolean, isMobile: boolean, minWidth?: number, stretchBeyondTriggerWidth?: boolean) => [DropdownPosition, DOMRect];
64
- export {};
65
35
  //# sourceMappingURL=dropdown-fit-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-fit-handler.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/dropdown-fit-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAmD,MAAM,mCAAmC,CAAC;AAQjH,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAkBD,eAAO,MAAM,uBAAuB,QAA4B,CAAC;AAEjE,eAAO,MAAM,iBAAiB;aAOnB,WAAW;qBACH,cAAc,WAAW,CAAC;;;;MAIzC,cA2CH,CAAC;AAEF,eAAO,MAAM,yBAAyB;aAK3B,WAAW;qBACH,cAAc,WAAW,CAAC;;MAEzC,cA4CH,CAAC;AAEF,eAAO,MAAM,SAAS;oBAMJ,WAAW;qBACV,WAAW;;;;;;;CAe7B,CAAC;AAEF,eAAO,MAAM,yCAAyC;oBASpC,WAAW;qBACV,WAAW;;sBAEV,OAAO;kBACX,OAAO;mBACN,OAAO;cACZ,OAAO;aAsBlB,CAAC;AAEF,eAAO,MAAM,mBAAmB;oBAWd,WAAW;qBACV,WAAW;qBACX,cAAc,WAAW,CAAC;;;;;;;MAOzC,gBA0DH,CAAC;AAEF,eAAO,MAAM,2BAA2B,YAC7B,WAAW,YACV,WAAW,mBACJ,cAAc,WAAW,CAAC,aAChC,OAAO,KACjB,wBAyCF,CAAC;AAEF,eAAO,MAAM,iBAAiB,oBACX,cAAc,kBACf,cAAc,4BACJ,cAAc,YAC9B,OAAO,oBACC,OAAO,gBACX,OAAO,gBACP,OAAO,iBACN,OAAO,YACZ,OAAO,aACN,MAAM,8BACW,OAAO,KAClC,CAAC,gBAAgB,EAAE,OAAO,CAkC5B,CAAC"}
1
+ {"version":3,"file":"dropdown-fit-handler.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/dropdown-fit-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAmD,MAAM,mCAAmC,CAAC;AAcjH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAkBD,eAAO,MAAM,uBAAuB,QAA4B,CAAC;AAyIjE,eAAO,MAAM,yCAAyC;oBASpC,WAAW;qBACV,WAAW;;sBAEV,OAAO;kBACX,OAAO;mBACN,OAAO;cACZ,OAAO;aAsBlB,CAAC;AAEF,eAAO,MAAM,mBAAmB;oBAWd,WAAW;qBACV,WAAW;qBACX,cAAc,WAAW,CAAC;;;;;;;MAOzC,gBA0DH,CAAC;AAkDF,eAAO,MAAM,iBAAiB,oBACX,cAAc,kBACf,cAAc,4BACJ,cAAc,YAC9B,OAAO,oBACC,OAAO,gBACX,OAAO,gBACP,OAAO,iBACN,OAAO,YACZ,OAAO,aACN,MAAM,8BACW,OAAO,KAClC,CAAC,gBAAgB,EAAE,OAAO,CAkC5B,CAAC"}
@@ -22,7 +22,7 @@ const getClosestParentDimensions = (element) => {
22
22
  // By default, most dropdowns should expand their content as necessary, but to a maximum of 465px (the XXS breakpoint).
23
23
  // This value was determined by UX but may be subject to change in the future, depending on the feedback.
24
24
  export const defaultMaxDropdownWidth = getBreakpointValue('xxs');
25
- export const getAvailableSpace = ({ trigger, overflowParents, stretchWidth = false, stretchHeight = false, isMobile, }) => {
25
+ const getAvailableSpace = ({ trigger, overflowParents, stretchWidth = false, stretchHeight = false, isMobile, }) => {
26
26
  const availableSpaceReserveVertical = stretchHeight
27
27
  ? 0
28
28
  : isMobile
@@ -56,7 +56,7 @@ export const getAvailableSpace = ({ trigger, overflowParents, stretchWidth = fal
56
56
  inlineEnd: Number.MAX_VALUE,
57
57
  });
58
58
  };
59
- export const getInteriorAvailableSpace = ({ trigger, overflowParents, isMobile, }) => {
59
+ const getInteriorAvailableSpace = ({ trigger, overflowParents, isMobile, }) => {
60
60
  const AVAILABLE_SPACE_RESERVE_VERTICAL = isMobile
61
61
  ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL
62
62
  : AVAILABLE_SPACE_RESERVE_DEFAULT;
@@ -88,7 +88,7 @@ export const getInteriorAvailableSpace = ({ trigger, overflowParents, isMobile,
88
88
  inlineEnd: Number.MAX_VALUE,
89
89
  });
90
90
  };
91
- export const getWidths = ({ triggerElement, dropdownElement, desiredMinWidth, stretchBeyondTriggerWidth = false, }) => {
91
+ const getWidths = ({ triggerElement, dropdownElement, desiredMinWidth, stretchBeyondTriggerWidth = false, }) => {
92
92
  // Determine the width of the trigger
93
93
  const { inlineSize: triggerInlineSize } = getLogicalBoundingClientRect(triggerElement);
94
94
  // Minimum width is determined by either an explicit number (desiredMinWidth) or the trigger width
@@ -176,7 +176,7 @@ export const getDropdownPosition = ({ triggerElement, dropdownElement, overflowP
176
176
  inlineSize: `${inlineSize}px`,
177
177
  };
178
178
  };
179
- export const getInteriorDropdownPosition = (trigger, dropdown, overflowParents, isMobile) => {
179
+ const getInteriorDropdownPosition = (trigger, dropdown, overflowParents, isMobile) => {
180
180
  const availableSpace = getInteriorAvailableSpace({ trigger, overflowParents, isMobile });
181
181
  const { insetBlockEnd: triggerBlockEnd, insetBlockStart: triggerBlockStart, inlineSize: triggerInlineSize, } = getLogicalBoundingClientRect(trigger);
182
182
  const { insetBlockStart: parentDropdownBlockStart, blockSize: parentDropdownHeight } = getClosestParentDimensions(trigger);
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-fit-handler.js","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/dropdown-fit-handler.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getLogicalBoundingClientRect } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBreakpointValue } from '../../breakpoints';\nimport { BoundingBox, getOverflowParentDimensions, getOverflowParents } from '../../utils/scrollable-containers';\n\nimport styles from './styles.css.js';\n\nconst AVAILABLE_SPACE_RESERVE_DEFAULT = 50;\nconst AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL = 19; // 50 - 31\nconst AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL = 20;\n\ninterface AvailableSpace {\n blockStart: number;\n blockEnd: number;\n inlineStart: number;\n inlineEnd: number;\n}\nexport interface DropdownPosition {\n blockSize: string;\n inlineSize: string;\n dropBlockStart: boolean;\n dropInlineStart: boolean;\n insetInlineStart: string;\n}\nexport interface InteriorDropdownPosition extends DropdownPosition {\n insetBlockEnd: string;\n insetBlockStart: string;\n}\n\nconst getClosestParentDimensions = (element: HTMLElement): any => {\n const parents = getOverflowParents(element).map(element => {\n const { blockSize, inlineSize, insetBlockStart, insetInlineStart } = getLogicalBoundingClientRect(element);\n return {\n blockSize,\n inlineSize,\n insetBlockStart,\n insetInlineStart,\n };\n });\n\n return parents.shift();\n};\n\n// By default, most dropdowns should expand their content as necessary, but to a maximum of 465px (the XXS breakpoint).\n// This value was determined by UX but may be subject to change in the future, depending on the feedback.\nexport const defaultMaxDropdownWidth = getBreakpointValue('xxs');\n\nexport const getAvailableSpace = ({\n trigger,\n overflowParents,\n stretchWidth = false,\n stretchHeight = false,\n isMobile,\n}: {\n trigger: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n stretchWidth?: boolean;\n stretchHeight?: boolean;\n isMobile?: boolean;\n}): AvailableSpace => {\n const availableSpaceReserveVertical = stretchHeight\n ? 0\n : isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const availableSpaceReserveHorizontal = stretchWidth\n ? 0\n : isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const {\n insetBlockEnd: triggerBlockEnd,\n insetInlineStart: triggerInlineStart,\n insetInlineEnd: triggerInlineEnd,\n } = getLogicalBoundingClientRect(trigger);\n\n return overflowParents.reduce(\n ({ blockStart, blockEnd, inlineStart, inlineEnd }, overflowParent) => {\n const offsetTop = triggerBlockEnd - overflowParent.insetBlockStart;\n const currentBlockStart = offsetTop - trigger.offsetHeight - availableSpaceReserveVertical;\n const currentBlockEnd = overflowParent.blockSize - offsetTop - availableSpaceReserveVertical;\n const currentInlineStart = triggerInlineEnd - overflowParent.insetInlineStart - availableSpaceReserveHorizontal;\n const currentInlineEnd =\n overflowParent.insetInlineStart +\n overflowParent.inlineSize -\n triggerInlineStart -\n availableSpaceReserveHorizontal;\n\n return {\n blockStart: Math.min(blockStart, currentBlockStart),\n blockEnd: Math.min(blockEnd, currentBlockEnd),\n inlineStart: Math.min(inlineStart, currentInlineStart),\n inlineEnd: Math.min(inlineEnd, currentInlineEnd),\n };\n },\n {\n blockStart: Number.MAX_VALUE,\n blockEnd: Number.MAX_VALUE,\n inlineStart: Number.MAX_VALUE,\n inlineEnd: Number.MAX_VALUE,\n }\n );\n};\n\nexport const getInteriorAvailableSpace = ({\n trigger,\n overflowParents,\n isMobile,\n}: {\n trigger: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n isMobile?: boolean;\n}): AvailableSpace => {\n const AVAILABLE_SPACE_RESERVE_VERTICAL = isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const AVAILABLE_SPACE_RESERVE_HORIZONTAL = isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const {\n insetBlockEnd: triggerBlockEnd,\n insetBlockStart: triggerBlockStart,\n insetInlineStart: triggerInlineStart,\n insetInlineEnd: triggerInlineEnd,\n } = getLogicalBoundingClientRect(trigger);\n\n return overflowParents.reduce(\n ({ blockStart, blockEnd, inlineStart, inlineEnd }, overflowParent) => {\n const currentBlockStart = triggerBlockEnd - overflowParent.insetBlockStart - AVAILABLE_SPACE_RESERVE_VERTICAL;\n const currentBlockEnd =\n overflowParent.blockSize -\n triggerBlockStart +\n overflowParent.insetBlockStart -\n AVAILABLE_SPACE_RESERVE_VERTICAL;\n const currentInlineStart =\n triggerInlineStart - overflowParent.insetInlineStart - AVAILABLE_SPACE_RESERVE_HORIZONTAL;\n const currentInlineEnd =\n overflowParent.insetInlineStart +\n overflowParent.inlineSize -\n triggerInlineEnd -\n AVAILABLE_SPACE_RESERVE_HORIZONTAL;\n\n return {\n blockStart: Math.min(blockStart, currentBlockStart),\n blockEnd: Math.min(blockEnd, currentBlockEnd),\n inlineStart: Math.min(inlineStart, currentInlineStart),\n inlineEnd: Math.min(inlineEnd, currentInlineEnd),\n };\n },\n {\n blockStart: Number.MAX_VALUE,\n blockEnd: Number.MAX_VALUE,\n inlineStart: Number.MAX_VALUE,\n inlineEnd: Number.MAX_VALUE,\n }\n );\n};\n\nexport const getWidths = ({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth = false,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n desiredMinWidth?: number;\n stretchBeyondTriggerWidth?: boolean;\n}) => {\n // Determine the width of the trigger\n const { inlineSize: triggerInlineSize } = getLogicalBoundingClientRect(triggerElement);\n // Minimum width is determined by either an explicit number (desiredMinWidth) or the trigger width\n const minWidth = desiredMinWidth ? Math.min(triggerInlineSize, desiredMinWidth) : triggerInlineSize;\n // If stretchBeyondTriggerWidth is true, the maximum width is the XS breakpoint (465px) or the trigger width (if bigger).\n const maxWidth = stretchBeyondTriggerWidth ? Math.max(defaultMaxDropdownWidth, triggerInlineSize) : Number.MAX_VALUE;\n // Determine the actual dropdown width, the size that it \"wants\" to be\n const { inlineSize: requiredWidth } = getLogicalBoundingClientRect(dropdownElement);\n // Try to achieve the required/desired width within the given parameters\n const idealWidth = Math.min(Math.max(requiredWidth, minWidth), maxWidth);\n return { idealWidth, minWidth, triggerInlineSize };\n};\n\nexport const hasEnoughSpaceToStretchBeyondTriggerWidth = ({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n expandToViewport,\n stretchWidth,\n stretchHeight,\n isMobile,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n desiredMinWidth?: number;\n expandToViewport: boolean;\n stretchWidth: boolean;\n stretchHeight: boolean;\n isMobile: boolean;\n}) => {\n const overflowParents = getOverflowParentDimensions({\n element: dropdownElement,\n excludeClosestParent: false,\n expandToViewport,\n canExpandOutsideViewport: stretchHeight,\n });\n const { idealWidth } = getWidths({\n triggerElement: triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth: true,\n });\n const availableSpace = getAvailableSpace({\n trigger: triggerElement,\n overflowParents,\n stretchWidth,\n stretchHeight,\n isMobile,\n });\n return idealWidth <= availableSpace.inlineStart || idealWidth <= availableSpace.inlineEnd;\n};\n\nexport const getDropdownPosition = ({\n triggerElement,\n dropdownElement,\n overflowParents,\n minWidth: desiredMinWidth,\n preferCenter = false,\n stretchWidth = false,\n stretchHeight = false,\n isMobile = false,\n stretchBeyondTriggerWidth = false,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n minWidth?: number;\n preferCenter?: boolean;\n stretchWidth?: boolean;\n stretchHeight?: boolean;\n isMobile?: boolean;\n stretchBeyondTriggerWidth?: boolean;\n}): DropdownPosition => {\n // Determine the space available around the dropdown that it can grow in\n const availableSpace = getAvailableSpace({\n trigger: triggerElement,\n overflowParents,\n stretchWidth,\n stretchHeight,\n isMobile,\n });\n const { idealWidth, minWidth, triggerInlineSize } = getWidths({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth,\n });\n\n let dropInlineStart: boolean;\n let insetInlineStart: number | null = null;\n let inlineSize = idealWidth;\n\n //1. Can it be positioned with ideal width to the right?\n if (idealWidth <= availableSpace.inlineEnd) {\n dropInlineStart = false;\n //2. Can it be positioned with ideal width to the left?\n } else if (idealWidth <= availableSpace.inlineStart) {\n dropInlineStart = true;\n //3. Fit into biggest available space either on left or right\n } else {\n dropInlineStart = availableSpace.inlineStart > availableSpace.inlineEnd;\n inlineSize = Math.max(availableSpace.inlineStart, availableSpace.inlineEnd, minWidth);\n }\n\n if (preferCenter) {\n const spillOver = (idealWidth - triggerInlineSize) / 2;\n\n // availableSpace always includes the trigger width, but we want to exclude that\n const availableOutsideLeft = availableSpace.inlineStart - triggerInlineSize;\n const availableOutsideRight = availableSpace.inlineEnd - triggerInlineSize;\n\n const fitsInCenter = availableOutsideLeft >= spillOver && availableOutsideRight >= spillOver;\n if (fitsInCenter) {\n insetInlineStart = -spillOver;\n }\n }\n\n const dropBlockStart =\n availableSpace.blockEnd < dropdownElement.offsetHeight && availableSpace.blockStart > availableSpace.blockEnd;\n const availableHeight = dropBlockStart ? availableSpace.blockStart : availableSpace.blockEnd;\n // Try and crop the bottom item when all options can't be displayed, affordance for \"there's more\"\n const croppedHeight = stretchHeight ? availableHeight : Math.floor(availableHeight / 31) * 31 + 16;\n\n return {\n dropBlockStart,\n dropInlineStart,\n insetInlineStart: insetInlineStart === null ? 'auto' : `${insetInlineStart}px`,\n blockSize: `${croppedHeight}px`,\n inlineSize: `${inlineSize}px`,\n };\n};\n\nexport const getInteriorDropdownPosition = (\n trigger: HTMLElement,\n dropdown: HTMLElement,\n overflowParents: ReadonlyArray<BoundingBox>,\n isMobile?: boolean\n): InteriorDropdownPosition => {\n const availableSpace = getInteriorAvailableSpace({ trigger, overflowParents, isMobile });\n const {\n insetBlockEnd: triggerBlockEnd,\n insetBlockStart: triggerBlockStart,\n inlineSize: triggerInlineSize,\n } = getLogicalBoundingClientRect(trigger);\n const { insetBlockStart: parentDropdownBlockStart, blockSize: parentDropdownHeight } =\n getClosestParentDimensions(trigger);\n\n let dropInlineStart;\n\n let { inlineSize } = getLogicalBoundingClientRect(dropdown);\n const insetBlockStart = triggerBlockStart - parentDropdownBlockStart;\n if (inlineSize <= availableSpace.inlineEnd) {\n dropInlineStart = false;\n } else if (inlineSize <= availableSpace.inlineStart) {\n dropInlineStart = true;\n } else {\n dropInlineStart = availableSpace.inlineStart > availableSpace.inlineEnd;\n inlineSize = Math.max(availableSpace.inlineStart, availableSpace.inlineEnd);\n }\n\n const insetInlineStart = dropInlineStart ? 0 - inlineSize : triggerInlineSize;\n\n const dropBlockStart =\n availableSpace.blockEnd < dropdown.offsetHeight && availableSpace.blockStart > availableSpace.blockEnd;\n const insetBlockEnd = dropBlockStart ? parentDropdownBlockStart + parentDropdownHeight - triggerBlockEnd : 0;\n const availableHeight = dropBlockStart ? availableSpace.blockStart : availableSpace.blockEnd;\n // Try and crop the bottom item when all options can't be displayed, affordance for \"there's more\"\n const croppedHeight = Math.floor(availableHeight / 31) * 31 + 16;\n\n return {\n dropBlockStart,\n dropInlineStart,\n blockSize: `${croppedHeight}px`,\n inlineSize: `${inlineSize}px`,\n insetBlockStart: `${insetBlockStart}px`,\n insetBlockEnd: `${insetBlockEnd}px`,\n insetInlineStart: `${insetInlineStart}px`,\n };\n};\n\nexport const calculatePosition = (\n dropdownElement: HTMLDivElement,\n triggerElement: HTMLDivElement,\n verticalContainerElement: HTMLDivElement,\n interior: boolean,\n expandToViewport: boolean,\n preferCenter: boolean,\n stretchWidth: boolean,\n stretchHeight: boolean,\n isMobile: boolean,\n minWidth?: number,\n stretchBeyondTriggerWidth?: boolean\n): [DropdownPosition, DOMRect] => {\n // cleaning previously assigned values,\n // so that they are not reused in case of screen resize and similar events\n verticalContainerElement.style.maxBlockSize = '';\n dropdownElement.style.inlineSize = '';\n dropdownElement.style.insetBlockStart = '';\n dropdownElement.style.insetBlockEnd = '';\n dropdownElement.style.insetInlineStart = '';\n\n dropdownElement.classList.remove(styles['dropdown-drop-left']);\n dropdownElement.classList.remove(styles['dropdown-drop-right']);\n dropdownElement.classList.remove(styles['dropdown-drop-up']);\n\n const overflowParents = getOverflowParentDimensions({\n element: dropdownElement,\n excludeClosestParent: interior,\n expandToViewport,\n canExpandOutsideViewport: stretchHeight,\n });\n const position = interior\n ? getInteriorDropdownPosition(triggerElement, dropdownElement, overflowParents, isMobile)\n : getDropdownPosition({\n triggerElement,\n dropdownElement,\n overflowParents,\n minWidth,\n preferCenter,\n stretchWidth,\n stretchHeight,\n isMobile,\n stretchBeyondTriggerWidth,\n });\n const triggerBox = triggerElement.getBoundingClientRect();\n return [position, triggerBox];\n};\n"]}
1
+ {"version":3,"file":"dropdown-fit-handler.js","sourceRoot":"","sources":["../../../../../src/internal/components/dropdown/dropdown-fit-handler.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getLogicalBoundingClientRect } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBreakpointValue } from '../../breakpoints';\nimport { BoundingBox, getOverflowParentDimensions, getOverflowParents } from '../../utils/scrollable-containers';\n\nimport styles from './styles.css.js';\n\nconst AVAILABLE_SPACE_RESERVE_DEFAULT = 50;\nconst AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL = 19; // 50 - 31\nconst AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL = 20;\n\ninterface AvailableSpace {\n blockStart: number;\n blockEnd: number;\n inlineStart: number;\n inlineEnd: number;\n}\nexport interface DropdownPosition {\n blockSize: string;\n inlineSize: string;\n dropBlockStart: boolean;\n dropInlineStart: boolean;\n insetInlineStart: string;\n}\nexport interface InteriorDropdownPosition extends DropdownPosition {\n insetBlockEnd: string;\n insetBlockStart: string;\n}\n\nconst getClosestParentDimensions = (element: HTMLElement): any => {\n const parents = getOverflowParents(element).map(element => {\n const { blockSize, inlineSize, insetBlockStart, insetInlineStart } = getLogicalBoundingClientRect(element);\n return {\n blockSize,\n inlineSize,\n insetBlockStart,\n insetInlineStart,\n };\n });\n\n return parents.shift();\n};\n\n// By default, most dropdowns should expand their content as necessary, but to a maximum of 465px (the XXS breakpoint).\n// This value was determined by UX but may be subject to change in the future, depending on the feedback.\nexport const defaultMaxDropdownWidth = getBreakpointValue('xxs');\n\nconst getAvailableSpace = ({\n trigger,\n overflowParents,\n stretchWidth = false,\n stretchHeight = false,\n isMobile,\n}: {\n trigger: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n stretchWidth?: boolean;\n stretchHeight?: boolean;\n isMobile?: boolean;\n}): AvailableSpace => {\n const availableSpaceReserveVertical = stretchHeight\n ? 0\n : isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const availableSpaceReserveHorizontal = stretchWidth\n ? 0\n : isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const {\n insetBlockEnd: triggerBlockEnd,\n insetInlineStart: triggerInlineStart,\n insetInlineEnd: triggerInlineEnd,\n } = getLogicalBoundingClientRect(trigger);\n\n return overflowParents.reduce(\n ({ blockStart, blockEnd, inlineStart, inlineEnd }, overflowParent) => {\n const offsetTop = triggerBlockEnd - overflowParent.insetBlockStart;\n const currentBlockStart = offsetTop - trigger.offsetHeight - availableSpaceReserveVertical;\n const currentBlockEnd = overflowParent.blockSize - offsetTop - availableSpaceReserveVertical;\n const currentInlineStart = triggerInlineEnd - overflowParent.insetInlineStart - availableSpaceReserveHorizontal;\n const currentInlineEnd =\n overflowParent.insetInlineStart +\n overflowParent.inlineSize -\n triggerInlineStart -\n availableSpaceReserveHorizontal;\n\n return {\n blockStart: Math.min(blockStart, currentBlockStart),\n blockEnd: Math.min(blockEnd, currentBlockEnd),\n inlineStart: Math.min(inlineStart, currentInlineStart),\n inlineEnd: Math.min(inlineEnd, currentInlineEnd),\n };\n },\n {\n blockStart: Number.MAX_VALUE,\n blockEnd: Number.MAX_VALUE,\n inlineStart: Number.MAX_VALUE,\n inlineEnd: Number.MAX_VALUE,\n }\n );\n};\n\nconst getInteriorAvailableSpace = ({\n trigger,\n overflowParents,\n isMobile,\n}: {\n trigger: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n isMobile?: boolean;\n}): AvailableSpace => {\n const AVAILABLE_SPACE_RESERVE_VERTICAL = isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_VERTICAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const AVAILABLE_SPACE_RESERVE_HORIZONTAL = isMobile\n ? AVAILABLE_SPACE_RESERVE_MOBILE_HORIZONTAL\n : AVAILABLE_SPACE_RESERVE_DEFAULT;\n const {\n insetBlockEnd: triggerBlockEnd,\n insetBlockStart: triggerBlockStart,\n insetInlineStart: triggerInlineStart,\n insetInlineEnd: triggerInlineEnd,\n } = getLogicalBoundingClientRect(trigger);\n\n return overflowParents.reduce(\n ({ blockStart, blockEnd, inlineStart, inlineEnd }, overflowParent) => {\n const currentBlockStart = triggerBlockEnd - overflowParent.insetBlockStart - AVAILABLE_SPACE_RESERVE_VERTICAL;\n const currentBlockEnd =\n overflowParent.blockSize -\n triggerBlockStart +\n overflowParent.insetBlockStart -\n AVAILABLE_SPACE_RESERVE_VERTICAL;\n const currentInlineStart =\n triggerInlineStart - overflowParent.insetInlineStart - AVAILABLE_SPACE_RESERVE_HORIZONTAL;\n const currentInlineEnd =\n overflowParent.insetInlineStart +\n overflowParent.inlineSize -\n triggerInlineEnd -\n AVAILABLE_SPACE_RESERVE_HORIZONTAL;\n\n return {\n blockStart: Math.min(blockStart, currentBlockStart),\n blockEnd: Math.min(blockEnd, currentBlockEnd),\n inlineStart: Math.min(inlineStart, currentInlineStart),\n inlineEnd: Math.min(inlineEnd, currentInlineEnd),\n };\n },\n {\n blockStart: Number.MAX_VALUE,\n blockEnd: Number.MAX_VALUE,\n inlineStart: Number.MAX_VALUE,\n inlineEnd: Number.MAX_VALUE,\n }\n );\n};\n\nconst getWidths = ({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth = false,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n desiredMinWidth?: number;\n stretchBeyondTriggerWidth?: boolean;\n}) => {\n // Determine the width of the trigger\n const { inlineSize: triggerInlineSize } = getLogicalBoundingClientRect(triggerElement);\n // Minimum width is determined by either an explicit number (desiredMinWidth) or the trigger width\n const minWidth = desiredMinWidth ? Math.min(triggerInlineSize, desiredMinWidth) : triggerInlineSize;\n // If stretchBeyondTriggerWidth is true, the maximum width is the XS breakpoint (465px) or the trigger width (if bigger).\n const maxWidth = stretchBeyondTriggerWidth ? Math.max(defaultMaxDropdownWidth, triggerInlineSize) : Number.MAX_VALUE;\n // Determine the actual dropdown width, the size that it \"wants\" to be\n const { inlineSize: requiredWidth } = getLogicalBoundingClientRect(dropdownElement);\n // Try to achieve the required/desired width within the given parameters\n const idealWidth = Math.min(Math.max(requiredWidth, minWidth), maxWidth);\n return { idealWidth, minWidth, triggerInlineSize };\n};\n\nexport const hasEnoughSpaceToStretchBeyondTriggerWidth = ({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n expandToViewport,\n stretchWidth,\n stretchHeight,\n isMobile,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n desiredMinWidth?: number;\n expandToViewport: boolean;\n stretchWidth: boolean;\n stretchHeight: boolean;\n isMobile: boolean;\n}) => {\n const overflowParents = getOverflowParentDimensions({\n element: dropdownElement,\n excludeClosestParent: false,\n expandToViewport,\n canExpandOutsideViewport: stretchHeight,\n });\n const { idealWidth } = getWidths({\n triggerElement: triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth: true,\n });\n const availableSpace = getAvailableSpace({\n trigger: triggerElement,\n overflowParents,\n stretchWidth,\n stretchHeight,\n isMobile,\n });\n return idealWidth <= availableSpace.inlineStart || idealWidth <= availableSpace.inlineEnd;\n};\n\nexport const getDropdownPosition = ({\n triggerElement,\n dropdownElement,\n overflowParents,\n minWidth: desiredMinWidth,\n preferCenter = false,\n stretchWidth = false,\n stretchHeight = false,\n isMobile = false,\n stretchBeyondTriggerWidth = false,\n}: {\n triggerElement: HTMLElement;\n dropdownElement: HTMLElement;\n overflowParents: ReadonlyArray<BoundingBox>;\n minWidth?: number;\n preferCenter?: boolean;\n stretchWidth?: boolean;\n stretchHeight?: boolean;\n isMobile?: boolean;\n stretchBeyondTriggerWidth?: boolean;\n}): DropdownPosition => {\n // Determine the space available around the dropdown that it can grow in\n const availableSpace = getAvailableSpace({\n trigger: triggerElement,\n overflowParents,\n stretchWidth,\n stretchHeight,\n isMobile,\n });\n const { idealWidth, minWidth, triggerInlineSize } = getWidths({\n triggerElement,\n dropdownElement,\n desiredMinWidth,\n stretchBeyondTriggerWidth,\n });\n\n let dropInlineStart: boolean;\n let insetInlineStart: number | null = null;\n let inlineSize = idealWidth;\n\n //1. Can it be positioned with ideal width to the right?\n if (idealWidth <= availableSpace.inlineEnd) {\n dropInlineStart = false;\n //2. Can it be positioned with ideal width to the left?\n } else if (idealWidth <= availableSpace.inlineStart) {\n dropInlineStart = true;\n //3. Fit into biggest available space either on left or right\n } else {\n dropInlineStart = availableSpace.inlineStart > availableSpace.inlineEnd;\n inlineSize = Math.max(availableSpace.inlineStart, availableSpace.inlineEnd, minWidth);\n }\n\n if (preferCenter) {\n const spillOver = (idealWidth - triggerInlineSize) / 2;\n\n // availableSpace always includes the trigger width, but we want to exclude that\n const availableOutsideLeft = availableSpace.inlineStart - triggerInlineSize;\n const availableOutsideRight = availableSpace.inlineEnd - triggerInlineSize;\n\n const fitsInCenter = availableOutsideLeft >= spillOver && availableOutsideRight >= spillOver;\n if (fitsInCenter) {\n insetInlineStart = -spillOver;\n }\n }\n\n const dropBlockStart =\n availableSpace.blockEnd < dropdownElement.offsetHeight && availableSpace.blockStart > availableSpace.blockEnd;\n const availableHeight = dropBlockStart ? availableSpace.blockStart : availableSpace.blockEnd;\n // Try and crop the bottom item when all options can't be displayed, affordance for \"there's more\"\n const croppedHeight = stretchHeight ? availableHeight : Math.floor(availableHeight / 31) * 31 + 16;\n\n return {\n dropBlockStart,\n dropInlineStart,\n insetInlineStart: insetInlineStart === null ? 'auto' : `${insetInlineStart}px`,\n blockSize: `${croppedHeight}px`,\n inlineSize: `${inlineSize}px`,\n };\n};\n\nconst getInteriorDropdownPosition = (\n trigger: HTMLElement,\n dropdown: HTMLElement,\n overflowParents: ReadonlyArray<BoundingBox>,\n isMobile?: boolean\n): InteriorDropdownPosition => {\n const availableSpace = getInteriorAvailableSpace({ trigger, overflowParents, isMobile });\n const {\n insetBlockEnd: triggerBlockEnd,\n insetBlockStart: triggerBlockStart,\n inlineSize: triggerInlineSize,\n } = getLogicalBoundingClientRect(trigger);\n const { insetBlockStart: parentDropdownBlockStart, blockSize: parentDropdownHeight } =\n getClosestParentDimensions(trigger);\n\n let dropInlineStart;\n\n let { inlineSize } = getLogicalBoundingClientRect(dropdown);\n const insetBlockStart = triggerBlockStart - parentDropdownBlockStart;\n if (inlineSize <= availableSpace.inlineEnd) {\n dropInlineStart = false;\n } else if (inlineSize <= availableSpace.inlineStart) {\n dropInlineStart = true;\n } else {\n dropInlineStart = availableSpace.inlineStart > availableSpace.inlineEnd;\n inlineSize = Math.max(availableSpace.inlineStart, availableSpace.inlineEnd);\n }\n\n const insetInlineStart = dropInlineStart ? 0 - inlineSize : triggerInlineSize;\n\n const dropBlockStart =\n availableSpace.blockEnd < dropdown.offsetHeight && availableSpace.blockStart > availableSpace.blockEnd;\n const insetBlockEnd = dropBlockStart ? parentDropdownBlockStart + parentDropdownHeight - triggerBlockEnd : 0;\n const availableHeight = dropBlockStart ? availableSpace.blockStart : availableSpace.blockEnd;\n // Try and crop the bottom item when all options can't be displayed, affordance for \"there's more\"\n const croppedHeight = Math.floor(availableHeight / 31) * 31 + 16;\n\n return {\n dropBlockStart,\n dropInlineStart,\n blockSize: `${croppedHeight}px`,\n inlineSize: `${inlineSize}px`,\n insetBlockStart: `${insetBlockStart}px`,\n insetBlockEnd: `${insetBlockEnd}px`,\n insetInlineStart: `${insetInlineStart}px`,\n };\n};\n\nexport const calculatePosition = (\n dropdownElement: HTMLDivElement,\n triggerElement: HTMLDivElement,\n verticalContainerElement: HTMLDivElement,\n interior: boolean,\n expandToViewport: boolean,\n preferCenter: boolean,\n stretchWidth: boolean,\n stretchHeight: boolean,\n isMobile: boolean,\n minWidth?: number,\n stretchBeyondTriggerWidth?: boolean\n): [DropdownPosition, DOMRect] => {\n // cleaning previously assigned values,\n // so that they are not reused in case of screen resize and similar events\n verticalContainerElement.style.maxBlockSize = '';\n dropdownElement.style.inlineSize = '';\n dropdownElement.style.insetBlockStart = '';\n dropdownElement.style.insetBlockEnd = '';\n dropdownElement.style.insetInlineStart = '';\n\n dropdownElement.classList.remove(styles['dropdown-drop-left']);\n dropdownElement.classList.remove(styles['dropdown-drop-right']);\n dropdownElement.classList.remove(styles['dropdown-drop-up']);\n\n const overflowParents = getOverflowParentDimensions({\n element: dropdownElement,\n excludeClosestParent: interior,\n expandToViewport,\n canExpandOutsideViewport: stretchHeight,\n });\n const position = interior\n ? getInteriorDropdownPosition(triggerElement, dropdownElement, overflowParents, isMobile)\n : getDropdownPosition({\n triggerElement,\n dropdownElement,\n overflowParents,\n minWidth,\n preferCenter,\n stretchWidth,\n stretchHeight,\n isMobile,\n stretchBeyondTriggerWidth,\n });\n const triggerBox = triggerElement.getBoundingClientRect();\n return [position, triggerBox];\n};\n"]}
@@ -1,6 +1,5 @@
1
1
  export declare function isFocusable(element: HTMLElement): boolean;
2
2
  export declare function getAllFocusables(container: HTMLElement): HTMLElement[];
3
- export declare function getFocusables(container: HTMLElement): HTMLElement[];
4
3
  export declare function getFirstFocusable(container: HTMLElement): null | HTMLElement;
5
4
  export declare function getLastFocusable(container: HTMLElement): null | HTMLElement;
6
5
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/focus-lock/utils.ts"],"names":[],"mappings":"AA2BA,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,EAAE,CAEtE;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,EAAE,CAEnE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,CAG5E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,CAG3E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/focus-lock/utils.ts"],"names":[],"mappings":"AA2BA,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,EAAE,CAEtE;AAMD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,CAG5E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,CAG3E"}
@@ -25,7 +25,7 @@ export function isFocusable(element) {
25
25
  export function getAllFocusables(container) {
26
26
  return Array.prototype.slice.call(container.querySelectorAll(tabbables));
27
27
  }
28
- export function getFocusables(container) {
28
+ function getFocusables(container) {
29
29
  return getAllFocusables(container).filter((element) => element.tabIndex !== -1);
30
30
  }
31
31
  export function getFirstFocusable(container) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/internal/components/focus-lock/utils.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,aAAa;AACb,+GAA+G;AAC/G,MAAM,SAAS,GAAG;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IAEf,SAAS;IACT,YAAY;IAEZ,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,OAAO;IAEP,iBAAiB;IACjB,iBAAiB;IAEjB,YAAY;IACZ,mBAAmB;IACnB,aAAa;CACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,UAAU,WAAW,CAAC,OAAoB;IAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAsB;IACrD,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAsB;IAClD,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAsB;;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,OAAO,MAAA,UAAU,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAsB;;IACrD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,OAAO,MAAA,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,IAAI,CAAC;AACnD,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// Credits to\n// https://github.com/theKashey/focus-lock/blob/33f8b4bd9675d2605b15e2e4015b77fe35fbd6d0/src/utils/tabbables.ts\nconst tabbables = [\n 'button:enabled',\n 'select:enabled',\n 'textarea:enabled',\n 'input:enabled',\n\n 'a[href]',\n 'area[href]',\n\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n\n 'audio[controls]',\n 'video[controls]',\n\n '[tabindex]',\n '[contenteditable]',\n '[autofocus]',\n].join(',');\n\nexport function isFocusable(element: HTMLElement): boolean {\n return element.matches(tabbables);\n}\n\nexport function getAllFocusables(container: HTMLElement): HTMLElement[] {\n return Array.prototype.slice.call(container.querySelectorAll(tabbables));\n}\n\nexport function getFocusables(container: HTMLElement): HTMLElement[] {\n return getAllFocusables(container).filter((element: HTMLElement) => element.tabIndex !== -1);\n}\n\nexport function getFirstFocusable(container: HTMLElement): null | HTMLElement {\n const focusables = getFocusables(container);\n return focusables[0] ?? null;\n}\n\nexport function getLastFocusable(container: HTMLElement): null | HTMLElement {\n const focusables = getFocusables(container);\n return focusables[focusables.length - 1] ?? null;\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/internal/components/focus-lock/utils.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,aAAa;AACb,+GAA+G;AAC/G,MAAM,SAAS,GAAG;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IAEf,SAAS;IACT,YAAY;IAEZ,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,OAAO;IAEP,iBAAiB;IACjB,iBAAiB;IAEjB,YAAY;IACZ,mBAAmB;IACnB,aAAa;CACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,UAAU,WAAW,CAAC,OAAoB;IAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAsB;IACrD,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,aAAa,CAAC,SAAsB;IAC3C,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,OAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAsB;;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,OAAO,MAAA,UAAU,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAsB;;IACrD,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,OAAO,MAAA,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,IAAI,CAAC;AACnD,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// Credits to\n// https://github.com/theKashey/focus-lock/blob/33f8b4bd9675d2605b15e2e4015b77fe35fbd6d0/src/utils/tabbables.ts\nconst tabbables = [\n 'button:enabled',\n 'select:enabled',\n 'textarea:enabled',\n 'input:enabled',\n\n 'a[href]',\n 'area[href]',\n\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n\n 'audio[controls]',\n 'video[controls]',\n\n '[tabindex]',\n '[contenteditable]',\n '[autofocus]',\n].join(',');\n\nexport function isFocusable(element: HTMLElement): boolean {\n return element.matches(tabbables);\n}\n\nexport function getAllFocusables(container: HTMLElement): HTMLElement[] {\n return Array.prototype.slice.call(container.querySelectorAll(tabbables));\n}\n\nfunction getFocusables(container: HTMLElement): HTMLElement[] {\n return getAllFocusables(container).filter((element: HTMLElement) => element.tabIndex !== -1);\n}\n\nexport function getFirstFocusable(container: HTMLElement): null | HTMLElement {\n const focusables = getFocusables(container);\n return focusables[0] ?? null;\n}\n\nexport function getLastFocusable(container: HTMLElement): null | HTMLElement {\n const focusables = getFocusables(container);\n return focusables[focusables.length - 1] ?? null;\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { MaskedInputProps } from './interfaces';
3
- import useMask from './use-mask';
4
3
  declare const MaskedInput: React.ForwardRefExoticComponent<MaskedInputProps & React.RefAttributes<MaskedInputProps.Ref>>;
5
- export { MaskedInputProps, useMask };
4
+ export { MaskedInputProps };
6
5
  export default MaskedInput;
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/masked-input/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAO9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,OAAO,MAAM,YAAY,CAAC;AAGjC,QAAA,MAAM,WAAW,+FAkDhB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;AACrC,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/masked-input/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAO9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,QAAA,MAAM,WAAW,+FAkDhB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,eAAe,WAAW,CAAC"}
@@ -38,6 +38,5 @@ const MaskedInput = React.forwardRef((_a, ref) => {
38
38
  onPaste,
39
39
  } })));
40
40
  });
41
- export { useMask };
42
41
  export default MaskedInput;
43
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/masked-input/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAO,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CACE,EASmB,EACnB,GAA8B,EAC9B,EAAE;QAXF,EACE,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,yBAAyB,GAAG,KAAK,OAEhB,EADd,IAAI,cART,4FASC,CADQ;IAIT,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE1E,eAAe,CAAC,GAAG,EAAE;;QACnB,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,MAAA,QAAQ,CAAC,OAAO,0CAAE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;SACrE;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,MAAM,KAA4B,OAAO,CAAC;QACxC,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;QAC5B,KAAK;QACL,QAAQ;QACR,OAAO;QACP,yBAAyB;QACzB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC;QAC1F,SAAS,EAAE,CAAC,KAAkB,EAAE,EAAE,CAChC,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QACpF,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAC5C,WAAW,EAAE,iBAAiB;KAC/B,CAAC,EAXI,EAAE,OAAO,OAWb,EAXkB,SAAS,cAAvB,WAAyB,CAW7B,CAAC;IAEH,MAAM,UAAU,+DAAQ,IAAI,GAAK,SAAS,GAAK,gBAAgB,GAAK,SAAS,CAAE,CAAC;IAChF,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO,CACL,oBAAC,aAAa,oBACR,UAAU,IACd,GAAG,EAAE,SAAS,EACd,kBAAkB,EAAE;YAClB,OAAO;SACR,IACD,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAoB,OAAO,EAAE,CAAC;AACrC,eAAe,WAAW,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { Ref, useLayoutEffect, useState } from 'react';\n\nimport InternalInput from '../../../input/internal';\nimport { getBaseProps } from '../../base-component';\nimport { useFormFieldContext } from '../../context/form-field-context';\nimport { fireCancelableEvent, fireNonCancelableEvent } from '../../events';\nimport { useMergeRefs } from '../../hooks/use-merge-refs';\nimport { MaskedInputProps } from './interfaces';\nimport useMask from './use-mask';\nimport MaskFormat from './utils/mask-format';\n\nconst MaskedInput = React.forwardRef(\n (\n {\n value,\n onBlur,\n onChange,\n onKeyDown,\n mask,\n autofix = false,\n disableAutocompleteOnBlur = false,\n ...rest\n }: MaskedInputProps,\n ref: Ref<MaskedInputProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const formFieldContext = useFormFieldContext(rest);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [cursorPosition, setCursorPosition] = useState<number | null>(null);\n\n useLayoutEffect(() => {\n if (cursorPosition !== null) {\n inputRef.current?.setSelectionRange(cursorPosition, cursorPosition);\n }\n }, [cursorPosition, inputRef]);\n\n const { onPaste, ...maskProps } = useMask({\n format: new MaskFormat(mask),\n value,\n inputRef,\n autofix,\n disableAutocompleteOnBlur,\n onChange: (value: string) => !rest.readOnly && fireNonCancelableEvent(onChange, { value }),\n onKeyDown: (event: CustomEvent) =>\n !rest.readOnly && onKeyDown && fireCancelableEvent(onKeyDown, event.detail, event),\n onBlur: () => fireNonCancelableEvent(onBlur),\n setPosition: setCursorPosition,\n });\n\n const inputProps = { ...rest, ...baseProps, ...formFieldContext, ...maskProps };\n const mergedRef = useMergeRefs(ref, inputRef);\n return (\n <InternalInput\n {...inputProps}\n ref={mergedRef}\n __nativeAttributes={{\n onPaste,\n }}\n />\n );\n }\n);\n\nexport { MaskedInputProps, useMask };\nexport default MaskedInput;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/components/masked-input/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAO,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAClC,CACE,EASmB,EACnB,GAA8B,EAC9B,EAAE;QAXF,EACE,KAAK,EACL,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,yBAAyB,GAAG,KAAK,OAEhB,EADd,IAAI,cART,4FASC,CADQ;IAIT,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACtD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE1E,eAAe,CAAC,GAAG,EAAE;;QACnB,IAAI,cAAc,KAAK,IAAI,EAAE;YAC3B,MAAA,QAAQ,CAAC,OAAO,0CAAE,iBAAiB,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;SACrE;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,MAAM,KAA4B,OAAO,CAAC;QACxC,MAAM,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC;QAC5B,KAAK;QACL,QAAQ;QACR,OAAO;QACP,yBAAyB;QACzB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC;QAC1F,SAAS,EAAE,CAAC,KAAkB,EAAE,EAAE,CAChC,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QACpF,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC;QAC5C,WAAW,EAAE,iBAAiB;KAC/B,CAAC,EAXI,EAAE,OAAO,OAWb,EAXkB,SAAS,cAAvB,WAAyB,CAW7B,CAAC;IAEH,MAAM,UAAU,+DAAQ,IAAI,GAAK,SAAS,GAAK,gBAAgB,GAAK,SAAS,CAAE,CAAC;IAChF,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO,CACL,oBAAC,aAAa,oBACR,UAAU,IACd,GAAG,EAAE,SAAS,EACd,kBAAkB,EAAE;YAClB,OAAO;SACR,IACD,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAGF,eAAe,WAAW,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { Ref, useLayoutEffect, useState } from 'react';\n\nimport InternalInput from '../../../input/internal';\nimport { getBaseProps } from '../../base-component';\nimport { useFormFieldContext } from '../../context/form-field-context';\nimport { fireCancelableEvent, fireNonCancelableEvent } from '../../events';\nimport { useMergeRefs } from '../../hooks/use-merge-refs';\nimport { MaskedInputProps } from './interfaces';\nimport useMask from './use-mask';\nimport MaskFormat from './utils/mask-format';\n\nconst MaskedInput = React.forwardRef(\n (\n {\n value,\n onBlur,\n onChange,\n onKeyDown,\n mask,\n autofix = false,\n disableAutocompleteOnBlur = false,\n ...rest\n }: MaskedInputProps,\n ref: Ref<MaskedInputProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const formFieldContext = useFormFieldContext(rest);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [cursorPosition, setCursorPosition] = useState<number | null>(null);\n\n useLayoutEffect(() => {\n if (cursorPosition !== null) {\n inputRef.current?.setSelectionRange(cursorPosition, cursorPosition);\n }\n }, [cursorPosition, inputRef]);\n\n const { onPaste, ...maskProps } = useMask({\n format: new MaskFormat(mask),\n value,\n inputRef,\n autofix,\n disableAutocompleteOnBlur,\n onChange: (value: string) => !rest.readOnly && fireNonCancelableEvent(onChange, { value }),\n onKeyDown: (event: CustomEvent) =>\n !rest.readOnly && onKeyDown && fireCancelableEvent(onKeyDown, event.detail, event),\n onBlur: () => fireNonCancelableEvent(onBlur),\n setPosition: setCursorPosition,\n });\n\n const inputProps = { ...rest, ...baseProps, ...formFieldContext, ...maskProps };\n const mergedRef = useMergeRefs(ref, inputRef);\n return (\n <InternalInput\n {...inputProps}\n ref={mergedRef}\n __nativeAttributes={{\n onPaste,\n }}\n />\n );\n }\n);\n\nexport { MaskedInputProps };\nexport default MaskedInput;\n"]}
@@ -9,7 +9,7 @@ export interface MaskArgs {
9
9
  inputSeparators?: Array<string>;
10
10
  segments: Array<FormatSegment>;
11
11
  }
12
- export interface ChangeResult {
12
+ interface ChangeResult {
13
13
  value: string;
14
14
  position: number;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mask-format.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/masked-input/utils/mask-format.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,UAAU;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,eAAe,CAAwC;gBAEnD,EAAE,SAAS,EAAE,eAAoB,EAAE,QAAQ,EAAE,EAAE,QAAQ;IAQnE,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAKhC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IA8C/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAcpC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAsBnC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAQjF,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;IAoC5F,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAc1E,mBAAmB,CAAC,QAAQ,EAAE,MAAM;IAIpC,cAAc,CAAC,QAAQ,EAAE,MAAM;IAI/B,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI3D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI3D,YAAY;IAKZ,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY;IAS9D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY;IAe1D,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAkB1C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAyB7F,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;;;;IAqDrE,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,wBAAwB;CAqBjC;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"mask-format.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/masked-input/utils/mask-format.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CAChC;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,UAAU;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,eAAe,CAAwC;gBAEnD,EAAE,SAAS,EAAE,eAAoB,EAAE,QAAQ,EAAE,EAAE,QAAQ;IAQnE,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAKhC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIjC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IA8C/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAcpC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAsBnC,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;IAQjF,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY;IAoC5F,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAc1E,mBAAmB,CAAC,QAAQ,EAAE,MAAM;IAIpC,cAAc,CAAC,QAAQ,EAAE,MAAM;IAI/B,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI3D,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI3D,YAAY;IAKZ,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY;IAS9D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY;IAe1D,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAkB1C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAyB7F,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;;;;IAqDrE,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,wBAAwB;CAqBjC;AAED,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mask-format.js","sourceRoot":"","sources":["../../../../../../src/internal/components/masked-input/utils/mask-format.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { padLeftZeros } from '../../../utils/strings';\nimport { insertAt } from './strings';\n\ninterface FormatSegment {\n min: number;\n max: number | ((value: string) => number);\n length: number;\n default?: number;\n}\n\ninterface FormatSegmentFull extends FormatSegment {\n start: number;\n max(value: string): number;\n end: number;\n}\n\nexport interface MaskArgs {\n separator: string;\n inputSeparators?: Array<string>;\n segments: Array<FormatSegment>;\n}\n\nexport interface ChangeResult {\n value: string;\n position: number;\n}\n\nclass MaskFormat {\n separator: string;\n private inputSeparators: Array<string>;\n private segments: Array<FormatSegmentFull>;\n private positionFormats = new Map<number, FormatSegmentFull>();\n\n constructor({ separator, inputSeparators = [], segments }: MaskArgs) {\n this.segments = [];\n this.separator = separator;\n\n this.inputSeparators = [...inputSeparators, separator];\n this.enrichSegmentDefinitions(segments);\n }\n\n tryAppendSeparator(value: string) {\n const withSeparator = `${value}${this.separator}`;\n return this.isValid(withSeparator) ? withSeparator : value;\n }\n\n isSeparator(key: string): boolean {\n return this.inputSeparators.indexOf(key) !== -1;\n }\n\n isValid(value: string): boolean {\n const inputSegments = value.split(this.separator);\n\n if (inputSegments.length > this.segments.length) {\n return false;\n }\n\n return inputSegments.every((segmentValue, i) => {\n const segment = this.segments[i];\n\n // disallow empty segments\n if (segmentValue === '') {\n // except empty last segment (e.g. trailing separator \"12:\")\n if (i === inputSegments.length - 1) {\n return true;\n } else {\n return false;\n }\n }\n // only allow numerals\n if (!segmentValue.match(/^\\d+$/)) {\n return false;\n }\n // disallow incomplete segments, except at end\n if (segmentValue.length < segment.length && i !== inputSegments.length - 1) {\n return false;\n }\n // limit numerical value\n const intValue = parseInt(segmentValue, 10);\n\n // Handles values padded with 0s that are lost during parsing\n if (segmentValue.length > segment.length) {\n return false;\n }\n\n if (intValue < segment.min || intValue > segment.max(value)) {\n // allow incomplete segments in final position\n if (i === inputSegments.length - 1 && segmentValue.length < segment.length) {\n return true;\n }\n return false;\n }\n return true;\n });\n }\n\n getValidValue(value: string): string {\n let validValue = value;\n\n do {\n if (this.isValid(validValue)) {\n return this.tryAppendSeparator(validValue);\n }\n\n validValue = validValue.substring(0, validValue.length - 1);\n } while (validValue.length > 0);\n\n return '';\n }\n\n autoComplete(value: string): string {\n // aka [...completeSegments, lastSegment] = value.split(':')\n // but that's not valid :/\n const [lastSegmentValue, ...completeSegmentValues] = value.split(this.separator).reverse();\n const lastSegment = this.segments[completeSegmentValues.length];\n\n // if the last segment isn't complete, pad it with a preceding 0\n // e.g. 10:1 -> 10:01\n const paddedLastSegmentValue = this.padWithDefaultValue(lastSegmentValue, lastSegment);\n\n // recombine, and pad with extra segments for the full format\n const partial = [...completeSegmentValues.reverse(), paddedLastSegmentValue];\n while (partial.length < this.segments.length) {\n const nextSegment = this.segments[partial.length];\n const segmentValue = this.padWithDefaultValue('', nextSegment);\n partial.push(segmentValue);\n }\n value = partial.join(this.separator);\n value = this.correctMinMaxValues(value);\n return value;\n }\n\n getSegmentValueWithAddition(position: number, value: string, enteredDigit: string) {\n const segment = this.positionFormats.get(position)!;\n const segmentValue = value.substr(segment.start, segment.length);\n const segmentPosition = position - segment.start;\n const newValue = insertAt(segmentValue, enteredDigit, segmentPosition, segmentPosition + 1);\n return parseInt(newValue, 10);\n }\n\n replaceDigitsWithZeroes(value: string, cursorStart: number, cursorEnd: number): ChangeResult {\n const position = this.isCursorAtSeparator(cursorStart) ? cursorStart + 1 : cursorStart;\n\n // move selection forwards if it starts with a separator\n if (this.isCursorAtSeparator(cursorStart)) {\n cursorStart++;\n }\n\n // first, insert zeros in a partial segment at beginning of selection\n if (!this.isSegmentStart(cursorStart)) {\n const segment = this.positionFormats.get(cursorStart)!;\n value = insertAt(value, padLeftZeros('', segment.end - cursorStart), cursorStart, segment.end);\n cursorStart = segment.end + 1;\n }\n\n // then loop through remaining segments, filling with zeros\n let currentSegment: FormatSegmentFull;\n while (cursorStart < cursorEnd && (currentSegment = this.positionFormats.get(cursorStart + 1)!)) {\n const insertionEnd = Math.min(cursorEnd, currentSegment.end);\n value = insertAt(\n value,\n padLeftZeros('', insertionEnd - currentSegment.start),\n currentSegment.start,\n insertionEnd\n );\n cursorStart = insertionEnd + 1;\n }\n\n value = this.correctMinMaxValues(value);\n\n return {\n value,\n position,\n };\n }\n\n handleSeparatorInput(value: string, position: number): ChangeResult | void {\n if (position === value.length && !this.isSegmentStart(position)) {\n const segment = this.positionFormats.get(position)!;\n let segmentValue = value.substr(segment.start, segment.length);\n segmentValue = this.padWithDefaultValue(segmentValue, segment);\n value = insertAt(value, segmentValue, segment.start, segment.end);\n value = this.correctMinMaxValues(value);\n return {\n value,\n position: value.length,\n };\n }\n }\n\n isCursorAtSeparator(position: number) {\n return 0 < position && position < this.getMaxLength() && this.positionFormats.get(position) === undefined;\n }\n\n isSegmentStart(position: number) {\n return position === 0 || this.isCursorAtSeparator(position - 1);\n }\n\n getSegmentMaxValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.max(value);\n }\n\n getSegmentMinValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.min;\n }\n\n getMaxLength() {\n const last = this.segments[this.segments.length - 1];\n return last.start + last.length;\n }\n\n deleteSeparator(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 2, position - 1);\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 2,\n };\n }\n\n deleteDigit(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 1, position);\n\n // 23:59|: => backspace => 23:5|\n const length = value.length;\n if (value.slice(length - 2) === '0:') {\n value = value.slice(0, length - 2);\n }\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 1,\n };\n }\n\n correctMinMaxValues(value: string): string {\n let segment = this.positionFormats.get(0);\n while (segment && value.length >= segment.end) {\n const segmentValue = parseInt(value.substr(segment.start, segment.length), 10);\n const segmentMax = segment.max(value);\n if (segmentValue < segment.min) {\n let toInsert = segment.min.toFixed();\n toInsert = padLeftZeros(toInsert, segment.length);\n value = insertAt(value, toInsert, segment.start, segment.end);\n }\n if (segmentValue > segmentMax) {\n value = insertAt(value, segmentMax.toFixed(), segment.start, segment.end);\n }\n segment = this.positionFormats.get(segment.end + 1);\n }\n return value.substr(0, this.segments[this.segments.length - 1].end);\n }\n\n formatPastedText(text: string, value: string, cursorStart: number, cursorEnd: number): string {\n const keyArr = text.trim().split('');\n\n let position = cursorStart;\n\n let formattedValue = value;\n // if a selection range captures the end of the current value\n // we replace it with the value in buffer even if the value in buffer is shorter\n if (cursorEnd > cursorStart && cursorEnd === value.length) {\n formattedValue = value.slice(0, cursorStart);\n }\n\n for (const key of keyArr) {\n if (position >= this.getMaxLength()) {\n break;\n }\n\n const result = this.processKey(formattedValue, key, position);\n formattedValue = result.value;\n position = result.position;\n }\n\n return this.tryAppendSeparator(formattedValue);\n }\n\n processKey(initialValue: string, key: string, initialPosition: number) {\n let value = initialValue;\n let position = initialPosition;\n\n if (this.isSeparator(key)) {\n const result = this.handleSeparatorInput(value, position);\n if (result) {\n value = result.value;\n position = result.position;\n }\n } else {\n const isCursorAtEnd = position === value.length;\n const segmentValue = this.getSegmentValueWithAddition(position, value, key);\n const segmentMaxValue = this.getSegmentMaxValue(value, position);\n const segmentMinValue = this.getSegmentMinValue(value, position);\n const firstDigitGreater = parseInt(key, 10) > parseInt(segmentMaxValue.toFixed()[0], 10);\n const isValidPosition = isCursorAtEnd || segmentValue.toFixed().length === 1;\n const exceedsMaxAtSegmentStart = this.isSegmentStart(position) && isValidPosition && firstDigitGreater;\n\n if (exceedsMaxAtSegmentStart) {\n // 22:| => Enter '9' => 22:09|\n // |1 => Enter '9' => 09|\n value = insertAt(value, `0${key}`, position, position + 2);\n position += 2;\n } else if (segmentValue > segmentMaxValue && this.isSegmentStart(position)) {\n // 22:|22 => Enter '9' => 22:59|\n value = insertAt(value, segmentMaxValue.toFixed(), position, position + segmentMaxValue.toFixed().length);\n position += segmentMaxValue.toFixed().length;\n } else if (segmentValue > segmentMaxValue) {\n // 2|2:22 => Enter '9' => 23:|22\n value = insertAt(value, segmentMaxValue.toFixed(), position - 1, position + 1);\n position += 1;\n } else if (segmentValue < segmentMinValue && !this.isSegmentStart(position)) {\n // 0| => enter '0' => 01:\n value = insertAt(value, segmentMinValue.toFixed(), position, position + 1);\n position += 1;\n } else {\n // 22:| => Enter '5' => 23:5|\n value = insertAt(value, key, position, position + 1);\n position += 1;\n }\n }\n\n value = this.tryAppendSeparator(value);\n\n // Move cursor in front of separator if behind after overwriting a character\n if (this.isCursorAtSeparator(position)) {\n position++;\n }\n\n return { value, position };\n }\n\n private padWithDefaultValue(segmentValue: string, segment: FormatSegmentFull) {\n let defaultValue = (segment.default || segment.min).toFixed();\n defaultValue = padLeftZeros(defaultValue, segment.length);\n return insertAt(defaultValue, segmentValue, segment.length - segmentValue.length, segment.length);\n }\n\n private enrichSegmentDefinitions(segments: FormatSegment[]) {\n this.positionFormats = new Map();\n this.segments = [];\n let position = 0;\n for (const segment of segments) {\n const max = segment.max;\n const fullSegment: FormatSegmentFull = {\n ...segment,\n max: typeof max === 'number' ? () => max : max,\n start: position,\n end: position + segment.length,\n };\n this.segments.push(fullSegment);\n // insert this format segment for every char in the max value\n for (let j = 0; j < fullSegment.length; j++) {\n this.positionFormats.set(position++, fullSegment);\n }\n // skip a position for separator\n position++;\n }\n }\n}\n\nexport default MaskFormat;\n"]}
1
+ {"version":3,"file":"mask-format.js","sourceRoot":"","sources":["../../../../../../src/internal/components/masked-input/utils/mask-format.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { padLeftZeros } from '../../../utils/strings';\nimport { insertAt } from './strings';\n\ninterface FormatSegment {\n min: number;\n max: number | ((value: string) => number);\n length: number;\n default?: number;\n}\n\ninterface FormatSegmentFull extends FormatSegment {\n start: number;\n max(value: string): number;\n end: number;\n}\n\nexport interface MaskArgs {\n separator: string;\n inputSeparators?: Array<string>;\n segments: Array<FormatSegment>;\n}\n\ninterface ChangeResult {\n value: string;\n position: number;\n}\n\nclass MaskFormat {\n separator: string;\n private inputSeparators: Array<string>;\n private segments: Array<FormatSegmentFull>;\n private positionFormats = new Map<number, FormatSegmentFull>();\n\n constructor({ separator, inputSeparators = [], segments }: MaskArgs) {\n this.segments = [];\n this.separator = separator;\n\n this.inputSeparators = [...inputSeparators, separator];\n this.enrichSegmentDefinitions(segments);\n }\n\n tryAppendSeparator(value: string) {\n const withSeparator = `${value}${this.separator}`;\n return this.isValid(withSeparator) ? withSeparator : value;\n }\n\n isSeparator(key: string): boolean {\n return this.inputSeparators.indexOf(key) !== -1;\n }\n\n isValid(value: string): boolean {\n const inputSegments = value.split(this.separator);\n\n if (inputSegments.length > this.segments.length) {\n return false;\n }\n\n return inputSegments.every((segmentValue, i) => {\n const segment = this.segments[i];\n\n // disallow empty segments\n if (segmentValue === '') {\n // except empty last segment (e.g. trailing separator \"12:\")\n if (i === inputSegments.length - 1) {\n return true;\n } else {\n return false;\n }\n }\n // only allow numerals\n if (!segmentValue.match(/^\\d+$/)) {\n return false;\n }\n // disallow incomplete segments, except at end\n if (segmentValue.length < segment.length && i !== inputSegments.length - 1) {\n return false;\n }\n // limit numerical value\n const intValue = parseInt(segmentValue, 10);\n\n // Handles values padded with 0s that are lost during parsing\n if (segmentValue.length > segment.length) {\n return false;\n }\n\n if (intValue < segment.min || intValue > segment.max(value)) {\n // allow incomplete segments in final position\n if (i === inputSegments.length - 1 && segmentValue.length < segment.length) {\n return true;\n }\n return false;\n }\n return true;\n });\n }\n\n getValidValue(value: string): string {\n let validValue = value;\n\n do {\n if (this.isValid(validValue)) {\n return this.tryAppendSeparator(validValue);\n }\n\n validValue = validValue.substring(0, validValue.length - 1);\n } while (validValue.length > 0);\n\n return '';\n }\n\n autoComplete(value: string): string {\n // aka [...completeSegments, lastSegment] = value.split(':')\n // but that's not valid :/\n const [lastSegmentValue, ...completeSegmentValues] = value.split(this.separator).reverse();\n const lastSegment = this.segments[completeSegmentValues.length];\n\n // if the last segment isn't complete, pad it with a preceding 0\n // e.g. 10:1 -> 10:01\n const paddedLastSegmentValue = this.padWithDefaultValue(lastSegmentValue, lastSegment);\n\n // recombine, and pad with extra segments for the full format\n const partial = [...completeSegmentValues.reverse(), paddedLastSegmentValue];\n while (partial.length < this.segments.length) {\n const nextSegment = this.segments[partial.length];\n const segmentValue = this.padWithDefaultValue('', nextSegment);\n partial.push(segmentValue);\n }\n value = partial.join(this.separator);\n value = this.correctMinMaxValues(value);\n return value;\n }\n\n getSegmentValueWithAddition(position: number, value: string, enteredDigit: string) {\n const segment = this.positionFormats.get(position)!;\n const segmentValue = value.substr(segment.start, segment.length);\n const segmentPosition = position - segment.start;\n const newValue = insertAt(segmentValue, enteredDigit, segmentPosition, segmentPosition + 1);\n return parseInt(newValue, 10);\n }\n\n replaceDigitsWithZeroes(value: string, cursorStart: number, cursorEnd: number): ChangeResult {\n const position = this.isCursorAtSeparator(cursorStart) ? cursorStart + 1 : cursorStart;\n\n // move selection forwards if it starts with a separator\n if (this.isCursorAtSeparator(cursorStart)) {\n cursorStart++;\n }\n\n // first, insert zeros in a partial segment at beginning of selection\n if (!this.isSegmentStart(cursorStart)) {\n const segment = this.positionFormats.get(cursorStart)!;\n value = insertAt(value, padLeftZeros('', segment.end - cursorStart), cursorStart, segment.end);\n cursorStart = segment.end + 1;\n }\n\n // then loop through remaining segments, filling with zeros\n let currentSegment: FormatSegmentFull;\n while (cursorStart < cursorEnd && (currentSegment = this.positionFormats.get(cursorStart + 1)!)) {\n const insertionEnd = Math.min(cursorEnd, currentSegment.end);\n value = insertAt(\n value,\n padLeftZeros('', insertionEnd - currentSegment.start),\n currentSegment.start,\n insertionEnd\n );\n cursorStart = insertionEnd + 1;\n }\n\n value = this.correctMinMaxValues(value);\n\n return {\n value,\n position,\n };\n }\n\n handleSeparatorInput(value: string, position: number): ChangeResult | void {\n if (position === value.length && !this.isSegmentStart(position)) {\n const segment = this.positionFormats.get(position)!;\n let segmentValue = value.substr(segment.start, segment.length);\n segmentValue = this.padWithDefaultValue(segmentValue, segment);\n value = insertAt(value, segmentValue, segment.start, segment.end);\n value = this.correctMinMaxValues(value);\n return {\n value,\n position: value.length,\n };\n }\n }\n\n isCursorAtSeparator(position: number) {\n return 0 < position && position < this.getMaxLength() && this.positionFormats.get(position) === undefined;\n }\n\n isSegmentStart(position: number) {\n return position === 0 || this.isCursorAtSeparator(position - 1);\n }\n\n getSegmentMaxValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.max(value);\n }\n\n getSegmentMinValue(value: string, position: number): number {\n return this.positionFormats.get(position)!.min;\n }\n\n getMaxLength() {\n const last = this.segments[this.segments.length - 1];\n return last.start + last.length;\n }\n\n deleteSeparator(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 2, position - 1);\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 2,\n };\n }\n\n deleteDigit(value: string, position: number): ChangeResult {\n value = insertAt(value, '0', position - 1, position);\n\n // 23:59|: => backspace => 23:5|\n const length = value.length;\n if (value.slice(length - 2) === '0:') {\n value = value.slice(0, length - 2);\n }\n\n return {\n value: this.correctMinMaxValues(value),\n position: position - 1,\n };\n }\n\n correctMinMaxValues(value: string): string {\n let segment = this.positionFormats.get(0);\n while (segment && value.length >= segment.end) {\n const segmentValue = parseInt(value.substr(segment.start, segment.length), 10);\n const segmentMax = segment.max(value);\n if (segmentValue < segment.min) {\n let toInsert = segment.min.toFixed();\n toInsert = padLeftZeros(toInsert, segment.length);\n value = insertAt(value, toInsert, segment.start, segment.end);\n }\n if (segmentValue > segmentMax) {\n value = insertAt(value, segmentMax.toFixed(), segment.start, segment.end);\n }\n segment = this.positionFormats.get(segment.end + 1);\n }\n return value.substr(0, this.segments[this.segments.length - 1].end);\n }\n\n formatPastedText(text: string, value: string, cursorStart: number, cursorEnd: number): string {\n const keyArr = text.trim().split('');\n\n let position = cursorStart;\n\n let formattedValue = value;\n // if a selection range captures the end of the current value\n // we replace it with the value in buffer even if the value in buffer is shorter\n if (cursorEnd > cursorStart && cursorEnd === value.length) {\n formattedValue = value.slice(0, cursorStart);\n }\n\n for (const key of keyArr) {\n if (position >= this.getMaxLength()) {\n break;\n }\n\n const result = this.processKey(formattedValue, key, position);\n formattedValue = result.value;\n position = result.position;\n }\n\n return this.tryAppendSeparator(formattedValue);\n }\n\n processKey(initialValue: string, key: string, initialPosition: number) {\n let value = initialValue;\n let position = initialPosition;\n\n if (this.isSeparator(key)) {\n const result = this.handleSeparatorInput(value, position);\n if (result) {\n value = result.value;\n position = result.position;\n }\n } else {\n const isCursorAtEnd = position === value.length;\n const segmentValue = this.getSegmentValueWithAddition(position, value, key);\n const segmentMaxValue = this.getSegmentMaxValue(value, position);\n const segmentMinValue = this.getSegmentMinValue(value, position);\n const firstDigitGreater = parseInt(key, 10) > parseInt(segmentMaxValue.toFixed()[0], 10);\n const isValidPosition = isCursorAtEnd || segmentValue.toFixed().length === 1;\n const exceedsMaxAtSegmentStart = this.isSegmentStart(position) && isValidPosition && firstDigitGreater;\n\n if (exceedsMaxAtSegmentStart) {\n // 22:| => Enter '9' => 22:09|\n // |1 => Enter '9' => 09|\n value = insertAt(value, `0${key}`, position, position + 2);\n position += 2;\n } else if (segmentValue > segmentMaxValue && this.isSegmentStart(position)) {\n // 22:|22 => Enter '9' => 22:59|\n value = insertAt(value, segmentMaxValue.toFixed(), position, position + segmentMaxValue.toFixed().length);\n position += segmentMaxValue.toFixed().length;\n } else if (segmentValue > segmentMaxValue) {\n // 2|2:22 => Enter '9' => 23:|22\n value = insertAt(value, segmentMaxValue.toFixed(), position - 1, position + 1);\n position += 1;\n } else if (segmentValue < segmentMinValue && !this.isSegmentStart(position)) {\n // 0| => enter '0' => 01:\n value = insertAt(value, segmentMinValue.toFixed(), position, position + 1);\n position += 1;\n } else {\n // 22:| => Enter '5' => 23:5|\n value = insertAt(value, key, position, position + 1);\n position += 1;\n }\n }\n\n value = this.tryAppendSeparator(value);\n\n // Move cursor in front of separator if behind after overwriting a character\n if (this.isCursorAtSeparator(position)) {\n position++;\n }\n\n return { value, position };\n }\n\n private padWithDefaultValue(segmentValue: string, segment: FormatSegmentFull) {\n let defaultValue = (segment.default || segment.min).toFixed();\n defaultValue = padLeftZeros(defaultValue, segment.length);\n return insertAt(defaultValue, segmentValue, segment.length - segmentValue.length, segment.length);\n }\n\n private enrichSegmentDefinitions(segments: FormatSegment[]) {\n this.positionFormats = new Map();\n this.segments = [];\n let position = 0;\n for (const segment of segments) {\n const max = segment.max;\n const fullSegment: FormatSegmentFull = {\n ...segment,\n max: typeof max === 'number' ? () => max : max,\n start: position,\n end: position + segment.length,\n };\n this.segments.push(fullSegment);\n // insert this format segment for every char in the max value\n for (let j = 0; j < fullSegment.length; j++) {\n this.positionFormats.set(position++, fullSegment);\n }\n // skip a position for separator\n position++;\n }\n }\n}\n\nexport default MaskFormat;\n"]}
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
- export interface HighlightMatchProps {
2
+ interface HighlightMatchProps {
3
3
  str?: string;
4
4
  highlightText?: string;
5
5
  }
6
6
  export default function HighlightMatch({ str, highlightText }: HighlightMatchProps): JSX.Element;
7
+ export {};
7
8
  //# sourceMappingURL=highlight-match.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"highlight-match.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/option/highlight-match.tsx"],"names":[],"mappings":";AAsBA,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,mBAAmB,eAsBjF"}
1
+ {"version":3,"file":"highlight-match.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/option/highlight-match.tsx"],"names":[],"mappings":";AAsBA,UAAU,mBAAmB;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,EAAE,mBAAmB,eAsBjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"highlight-match.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/highlight-match.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,aAAqB,EAAE,EAAE;IAC9D,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,aAAa,CAAC,MAAM,GAAG,MAAM,EAAE;QACjC,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC5C;IAED,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC,CAAC;AAOF,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAuB,EAAE,EAAE,CACjD,GAAG,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAE,MAAM,CAAC,2BAA2B,CAAC,IAAG,GAAG,CAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAElF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,aAAa,EAAuB;IAChF,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1B,OAAO,kCAAO,GAAG,CAAQ,CAAC;KAC3B;IAED,IAAI,GAAG,KAAK,aAAa,EAAE;QACzB,OAAO,oBAAC,SAAS,IAAC,GAAG,EAAE,GAAG,GAAI,CAAC;KAChC;IAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAEpE,MAAM,WAAW,GAA6B,EAAE,CAAC;IAEjD,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACjC,WAAW,CAAC,IAAI,CAAC,8BAAM,GAAG,EAAE,WAAW,GAAG,EAAE,IAAG,OAAO,CAAQ,CAAC,CAAC;QAEhE,IAAI,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE;YACnC,WAAW,CAAC,IAAI,CAAC,oBAAC,SAAS,IAAC,GAAG,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAI,CAAC,CAAC;SACzE;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,kCAAO,WAAW,CAAQ,CAAC;AACpC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport styles from './styles.css.js';\n\nconst splitOnFiltering = (str: string, highlightText: string) => {\n // We match by creating a regex using user-provided strings, so we skip\n // highlighting if the generated regex would be too memory intensive.\n if (highlightText.length > 100000) {\n return { noMatches: [str], matches: null };\n }\n\n // Filtering needs to be case insensitive\n const filteringPattern = highlightText.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n const regexp = new RegExp(filteringPattern, 'gi');\n const noMatches = str.split(regexp);\n const matches = str.match(regexp);\n\n return { noMatches, matches };\n};\n\nexport interface HighlightMatchProps {\n str?: string;\n highlightText?: string;\n}\n\nconst Highlight = ({ str }: HighlightMatchProps) =>\n str ? <span className={styles['filtering-match-highlight']}>{str}</span> : null;\n\nexport default function HighlightMatch({ str, highlightText }: HighlightMatchProps) {\n if (!str || !highlightText) {\n return <span>{str}</span>;\n }\n\n if (str === highlightText) {\n return <Highlight str={str} />;\n }\n\n const { noMatches, matches } = splitOnFiltering(str, highlightText);\n\n const highlighted: (string | JSX.Element)[] = [];\n\n noMatches.forEach((noMatch, idx) => {\n highlighted.push(<span key={`noMatch-${idx}`}>{noMatch}</span>);\n\n if (matches && idx < matches.length) {\n highlighted.push(<Highlight key={`match-${idx}`} str={matches[idx]} />);\n }\n });\n\n return <span>{highlighted}</span>;\n}\n"]}
1
+ {"version":3,"file":"highlight-match.js","sourceRoot":"","sources":["../../../../../src/internal/components/option/highlight-match.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,aAAqB,EAAE,EAAE;IAC9D,uEAAuE;IACvE,qEAAqE;IACrE,IAAI,aAAa,CAAC,MAAM,GAAG,MAAM,EAAE;QACjC,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC5C;IAED,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,aAAa,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC,CAAC;AAOF,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAuB,EAAE,EAAE,CACjD,GAAG,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAE,MAAM,CAAC,2BAA2B,CAAC,IAAG,GAAG,CAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAElF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,aAAa,EAAuB;IAChF,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1B,OAAO,kCAAO,GAAG,CAAQ,CAAC;KAC3B;IAED,IAAI,GAAG,KAAK,aAAa,EAAE;QACzB,OAAO,oBAAC,SAAS,IAAC,GAAG,EAAE,GAAG,GAAI,CAAC;KAChC;IAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAEpE,MAAM,WAAW,GAA6B,EAAE,CAAC;IAEjD,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACjC,WAAW,CAAC,IAAI,CAAC,8BAAM,GAAG,EAAE,WAAW,GAAG,EAAE,IAAG,OAAO,CAAQ,CAAC,CAAC;QAEhE,IAAI,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE;YACnC,WAAW,CAAC,IAAI,CAAC,oBAAC,SAAS,IAAC,GAAG,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAI,CAAC,CAAC;SACzE;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,kCAAO,WAAW,CAAQ,CAAC;AACpC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport styles from './styles.css.js';\n\nconst splitOnFiltering = (str: string, highlightText: string) => {\n // We match by creating a regex using user-provided strings, so we skip\n // highlighting if the generated regex would be too memory intensive.\n if (highlightText.length > 100000) {\n return { noMatches: [str], matches: null };\n }\n\n // Filtering needs to be case insensitive\n const filteringPattern = highlightText.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\n const regexp = new RegExp(filteringPattern, 'gi');\n const noMatches = str.split(regexp);\n const matches = str.match(regexp);\n\n return { noMatches, matches };\n};\n\ninterface HighlightMatchProps {\n str?: string;\n highlightText?: string;\n}\n\nconst Highlight = ({ str }: HighlightMatchProps) =>\n str ? <span className={styles['filtering-match-highlight']}>{str}</span> : null;\n\nexport default function HighlightMatch({ str, highlightText }: HighlightMatchProps) {\n if (!str || !highlightText) {\n return <span>{str}</span>;\n }\n\n if (str === highlightText) {\n return <Highlight str={str} />;\n }\n\n const { noMatches, matches } = splitOnFiltering(str, highlightText);\n\n const highlighted: (string | JSX.Element)[] = [];\n\n noMatches.forEach((noMatch, idx) => {\n highlighted.push(<span key={`noMatch-${idx}`}>{noMatch}</span>);\n\n if (matches && idx < matches.length) {\n highlighted.push(<Highlight key={`match-${idx}`} str={matches[idx]} />);\n }\n });\n\n return <span>{highlighted}</span>;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { IconProps } from '../../../icon/interfaces';
3
3
  import { BaseComponentProps } from '../../base-component';
4
- export interface BaseOption {
4
+ interface BaseOption {
5
5
  value?: string;
6
6
  label?: string;
7
7
  lang?: string;
@@ -19,7 +19,7 @@ export interface BaseOption {
19
19
  export interface OptionDefinition extends BaseOption {
20
20
  __labelPrefix?: string;
21
21
  }
22
- export interface InternalOptionDefinition extends OptionDefinition {
22
+ interface InternalOptionDefinition extends OptionDefinition {
23
23
  __customIcon?: React.ReactNode;
24
24
  }
25
25
  export interface OptionGroup extends BaseOption {
@@ -40,4 +40,5 @@ export interface OptionProps extends BaseComponentProps {
40
40
  isGroupOption?: boolean;
41
41
  isGenericGroup?: boolean;
42
42
  }
43
+ export {};
43
44
  //# sourceMappingURL=interfaces.d.ts.map