@oracle/oraclejet-preact 18.0.6 → 18.0.7
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.
- package/amd/ActionCard-3f86f73f.js +1 -1
- package/amd/{BarChart-077c5f02.js → BarChart-5e9f46b4.js} +2 -2
- package/amd/{BarChart-077c5f02.js.map → BarChart-5e9f46b4.js.map} +1 -1
- package/amd/BarGroup-76ef0839.js +1 -1
- package/amd/BaseButton-19a622bc.js +1 -1
- package/amd/{BaseCardView-70b177ed.js → BaseCardView-ab799b69.js} +2 -2
- package/amd/{BaseCardView-70b177ed.js.map → BaseCardView-ab799b69.js.map} +1 -1
- package/amd/{BaseCardViewSelectionTest-0ec52156.js → BaseCardViewSelectionTest-d026d26c.js} +2 -2
- package/amd/{BaseCardViewSelectionTest-0ec52156.js.map → BaseCardViewSelectionTest-d026d26c.js.map} +1 -1
- package/amd/BaseNavigationListItem-fe9cb691.js +1 -1
- package/amd/BaseRichSelection-9d8f3ee4.js +1 -1
- package/amd/ButtonSet-d95872cc.js +1 -1
- package/amd/ButtonSetIconButton-7a2c113c.js +1 -1
- package/amd/{Card-f6f2dc90.js → Card-8e081def.js} +2 -2
- package/amd/{Card-f6f2dc90.js.map → Card-8e081def.js.map} +1 -1
- package/amd/CardFlexView-296f97f5.js +2 -0
- package/amd/{CardFlexView-bb5c4369.js.map → CardFlexView-296f97f5.js.map} +1 -1
- package/amd/{CardGridView-c28ff2f7.js → CardGridView-054ffc3f.js} +2 -2
- package/amd/{CardGridView-c28ff2f7.js.map → CardGridView-054ffc3f.js.map} +1 -1
- package/amd/{Center-b449a95c.js → Center-9ec5524e.js} +2 -2
- package/amd/{Center-b449a95c.js.map → Center-9ec5524e.js.map} +1 -1
- package/amd/{Chart-3621e125.js → Chart-e2807ff7.js} +2 -2
- package/amd/{Chart-3621e125.js.map → Chart-e2807ff7.js.map} +1 -1
- package/amd/CheckboxControl-83484a5a.js +1 -1
- package/amd/CheckboxRadioField-9733dd24.js +1 -1
- package/amd/Chip-cd210507.js +1 -1
- package/amd/ClearIcon-de20285c.js +1 -1
- package/amd/CollapseIcon-e030531c.js +1 -1
- package/amd/Collapsible-924afd71.js +1 -1
- package/amd/{ComboChart-fd7da90e.js → ComboChart-71c0f51f.js} +2 -2
- package/amd/{ComboChart-fd7da90e.js.map → ComboChart-71c0f51f.js.map} +1 -1
- package/amd/CompactHelpSource-74498e92.js +1 -1
- package/amd/CompactLabelAssistance-c6928282.js +2 -0
- package/amd/{CompactLabelAssistance-44ba87b0.js.map → CompactLabelAssistance-c6928282.js.map} +1 -1
- package/amd/CompactUserAssistance-3370a318.js +1 -1
- package/amd/ComponentMessageContainer-8028ba70.js +1 -1
- package/amd/ConveyorBeltItem-08720127.js +1 -1
- package/amd/{DatePicker-2c94a3bb.js → DatePicker-bf0e0c69.js} +2 -2
- package/amd/{DatePicker-2c94a3bb.js.map → DatePicker-bf0e0c69.js.map} +1 -1
- package/amd/DatePickerHeader-f21e020d.js +1 -1
- package/amd/{Diagram-c3afb211.js → Diagram-04db0931.js} +2 -2
- package/amd/{Diagram-c3afb211.js.map → Diagram-04db0931.js.map} +1 -1
- package/amd/{Dialog-53f92591.js → Dialog-5f36f8aa.js} +2 -2
- package/amd/{Dialog-53f92591.js.map → Dialog-5f36f8aa.js.map} +1 -1
- package/amd/DirectionalCollapseArrowIcon-20cef34d.js +1 -1
- package/amd/DirectionalExpandArrowIcon-e9bdb06e.js +1 -1
- package/amd/{DragHandle-699fefd6.js → DragHandle-406d7f9a.js} +2 -2
- package/amd/{DragHandle-699fefd6.js.map → DragHandle-406d7f9a.js.map} +1 -1
- package/amd/{Dropdown-4b421eff.js → Dropdown-abcacf49.js} +2 -2
- package/amd/{Dropdown-4b421eff.js.map → Dropdown-abcacf49.js.map} +1 -1
- package/amd/{EnvironmentProvider-8f6fc388.js → EnvironmentProvider-c0e1e39b.js} +2 -2
- package/amd/{EnvironmentProvider-8f6fc388.js.map → EnvironmentProvider-c0e1e39b.js.map} +1 -1
- package/amd/ExpandableList-dd3a05b4.js +1 -1
- package/amd/FilePicker-4636b49b.js +1 -1
- package/amd/Flex-3421f0df.js +2 -0
- package/amd/{Flex-56ecdf4c.js.map → Flex-3421f0df.js.map} +1 -1
- package/amd/{Floating-1ec5ec2a.js → Floating-5d98c1ca.js} +2 -2
- package/amd/{Floating-1ec5ec2a.js.map → Floating-5d98c1ca.js.map} +1 -1
- package/amd/FormLayout-a4a29a2d.js +1 -1
- package/amd/Gantt-d94af58e.js +1 -1
- package/amd/{Grid-160f4885.js → Grid-8911aa0f.js} +2 -2
- package/amd/{Grid-160f4885.js.map → Grid-8911aa0f.js.map} +1 -1
- package/amd/{Gridlines-7851bb20.js → Gridlines-bef7bbfc.js} +2 -2
- package/amd/{Gridlines-7851bb20.js.map → Gridlines-bef7bbfc.js.map} +1 -1
- package/amd/GroupLoadingIndicator-6b2ab709.js +1 -1
- package/amd/HighlightText-644bc74e.js +2 -0
- package/amd/{HighlightText-bd4c0101.js.map → HighlightText-644bc74e.js.map} +1 -1
- package/amd/Icon-2d38c876.js +1 -1
- package/amd/IconButton-ae9a01ce.js +1 -1
- package/amd/IconMenuButton-b0468fa8.js +1 -1
- package/amd/IconProgressButton-ff5372eb.js +1 -1
- package/amd/IconSwitchButton-22f907e7.js +1 -1
- package/amd/IconToggleButton-20d411e6.js +1 -1
- package/amd/{IconUserAssistance-d2bd2691.js → IconUserAssistance-37107cea.js} +2 -2
- package/amd/{IconUserAssistance-d2bd2691.js.map → IconUserAssistance-37107cea.js.map} +1 -1
- package/amd/{Indexer-357554c4.js → Indexer-1531dbc3.js} +2 -2
- package/amd/{Indexer-357554c4.js.map → Indexer-1531dbc3.js.map} +1 -1
- package/amd/InlineHelpSource-85961e81.js +1 -1
- package/amd/InlineUserAssistance-4656c2a6.js +1 -1
- package/amd/InputDateMask-6d54c3e6.js +1 -1
- package/amd/InputDatePicker-fc39f0a6.js +1 -1
- package/amd/InputPassword-f6ea728a.js +1 -1
- package/amd/InputText-57f60b6f.js +1 -1
- package/amd/Label-3912beb2.js +1 -1
- package/amd/LabelValueLayout-194e64d9.js +1 -1
- package/amd/{Layer-447c68e6.js → Layer-6f29b67f.js} +2 -2
- package/amd/{Layer-447c68e6.js.map → Layer-6f29b67f.js.map} +1 -1
- package/amd/{LayerHost-e95c5f30.js → LayerHost-639b3284.js} +2 -2
- package/amd/{LayerHost-e95c5f30.js.map → LayerHost-639b3284.js.map} +1 -1
- package/amd/{LayerManager-76fcfb58.js → LayerManager-2972de92.js} +2 -2
- package/amd/{LayerManager-76fcfb58.js.map → LayerManager-2972de92.js.map} +1 -1
- package/amd/Legend-e4949499.js +1 -1
- package/amd/{LineAreaChart-4140d004.js → LineAreaChart-2ba275ab.js} +2 -2
- package/amd/{LineAreaChart-4140d004.js.map → LineAreaChart-2ba275ab.js.map} +1 -1
- package/amd/{LineSeries-a549e727.js → LineSeries-797d8d16.js} +2 -2
- package/amd/{LineSeries-a549e727.js.map → LineSeries-797d8d16.js.map} +1 -1
- package/amd/Link-c4a57187.js +1 -1
- package/amd/List-0b764e84.js +2 -0
- package/amd/{List-04c4fed0.js.map → List-0b764e84.js.map} +1 -1
- package/amd/{ListItemLayout-4208363c.js → ListItemLayout-e0b2c71e.js} +2 -2
- package/amd/{ListItemLayout-4208363c.js.map → ListItemLayout-e0b2c71e.js.map} +1 -1
- package/amd/{ListView-bf740071.js → ListView-5bb45f81.js} +2 -2
- package/amd/{ListView-bf740071.js.map → ListView-5bb45f81.js.map} +1 -1
- package/amd/LiveRegion-9a362373.js +2 -0
- package/amd/{LiveRegion-8142ed0d.js.map → LiveRegion-9a362373.js.map} +1 -1
- package/amd/LoadMoreCollection-83413a59.js +2 -0
- package/amd/{LoadMoreCollection-a6adbc3f.js.map → LoadMoreCollection-83413a59.js.map} +1 -1
- package/amd/MaxLengthLiveRegion-bb956138.js +2 -0
- package/amd/{MaxLengthLiveRegion-8954fc30.js.map → MaxLengthLiveRegion-bb956138.js.map} +1 -1
- package/amd/Menu-5d447084.js +1 -1
- package/amd/MenuButton-410aa4e1.js +1 -1
- package/amd/MenuItem-87cd59b8.js +1 -1
- package/amd/Message-621fb578.js +1 -1
- package/amd/{MessageLayer-ba56f7e2.js → MessageLayer-8bac8c50.js} +2 -2
- package/amd/{MessageLayer-ba56f7e2.js.map → MessageLayer-8bac8c50.js.map} +1 -1
- package/amd/MessageToast-06773c79.js +1 -1
- package/amd/MessagesManager-d5686336.js +1 -1
- package/amd/MeterBar-e1b4a93b.js +1 -1
- package/amd/MeterCircle-9887cf28.js +1 -1
- package/amd/{Modal-d6b2e905.js → Modal-7bece8d5.js} +2 -2
- package/amd/{Modal-d6b2e905.js.map → Modal-7bece8d5.js.map} +1 -1
- package/amd/{MonthView-4a0401cd.js → MonthView-3d0968a1.js} +2 -2
- package/amd/{MonthView-4a0401cd.js.map → MonthView-3d0968a1.js.map} +1 -1
- package/amd/NavigationListItem-044a79fd.js +1 -1
- package/amd/NumberInputText-cac12eb3.js +1 -1
- package/amd/OverflowTabBarItem-c59db4a2.js +1 -1
- package/amd/PRIVATE_BaseCardView.js +1 -1
- package/amd/PRIVATE_Chart.js +1 -1
- package/amd/PRIVATE_CheckboxControl.js +1 -1
- package/amd/PRIVATE_CheckboxRadioField.js +1 -1
- package/amd/PRIVATE_ClearIcon.js +1 -1
- package/amd/PRIVATE_DatePickerHeader.js +1 -1
- package/amd/PRIVATE_DatePickerLayout.js +1 -1
- package/amd/PRIVATE_EmbeddedIconButton.js +1 -1
- package/amd/PRIVATE_FormControls.js +1 -1
- package/amd/PRIVATE_IconSwitchButton.js +1 -1
- package/amd/PRIVATE_Icons/CheckboxMixed.js +1 -1
- package/amd/PRIVATE_Icons/CheckboxOff.js +1 -1
- package/amd/PRIVATE_Icons/CheckboxOn.js +1 -1
- package/amd/PRIVATE_Icons/DragV.js +1 -1
- package/amd/PRIVATE_Icons/WarningS.js +1 -1
- package/amd/PRIVATE_List.js +1 -1
- package/amd/PRIVATE_LoadMoreCollection.js +1 -1
- package/amd/PRIVATE_Message.js +1 -1
- package/amd/PRIVATE_MessageLayer.js +1 -1
- package/amd/PRIVATE_MonthView.js +1 -1
- package/amd/PRIVATE_MonthYearGridView.js +1 -1
- package/amd/PRIVATE_PlotArea.js +1 -1
- package/amd/PRIVATE_RevealToggleIcon.js +1 -1
- package/amd/PRIVATE_RichSelectionCommon.js +1 -1
- package/amd/PRIVATE_SelectCommon.js +1 -1
- package/amd/PRIVATE_StyledCard.js +1 -1
- package/amd/PRIVATE_StyledCheckbox.js +1 -1
- package/amd/PRIVATE_Table.js +1 -1
- package/amd/PRIVATE_ThemedIcons/CalendarIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/ChartPanIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/ChartZoomIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/CheckIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/CheckboxOffIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/CheckboxOnIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/CloseIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/CollapseIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/CollapseUpIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/DecrementIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/DeleteIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/DragHandleIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/DropdownArrowIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/ExpandIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/HelpIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/IncrementIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/MessageErrorIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/MessageInfoIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/MessageWarningIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/MinusIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/NavDownIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/PlusIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/RadioOffIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/RadioOnIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/SortAscendingIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/SortDescendingIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/ViewHideIcon.js +1 -1
- package/amd/PRIVATE_ThemedIcons/ViewIcon.js +1 -1
- package/amd/PRIVATE_TimeComponent.js +1 -1
- package/amd/PRIVATE_VirtualizedCollection.js +1 -1
- package/amd/PRIVATE_VisOverview.js +1 -1
- package/amd/PRIVATE_VisTabularDatatip.js +1 -1
- package/amd/PictoChart-48a25c75.js +1 -1
- package/amd/PieChart-2197746d.js +1 -1
- package/amd/{Popup-d51bf3f4.js → Popup-66e79afa.js} +2 -2
- package/amd/{Popup-d51bf3f4.js.map → Popup-66e79afa.js.map} +1 -1
- package/amd/{ProgressBar-3f4cd8d6.js → ProgressBar-e72c5a67.js} +2 -2
- package/amd/{ProgressBar-3f4cd8d6.js.map → ProgressBar-e72c5a67.js.map} +1 -1
- package/amd/ProgressButton-f1d27773.js +1 -1
- package/amd/ProgressButtonLabelLayout-6df4290e.js +1 -1
- package/amd/{ProgressCircle-74b6fc89.js → ProgressCircle-2b4ba9cd.js} +2 -2
- package/amd/{ProgressCircle-74b6fc89.js.map → ProgressCircle-2b4ba9cd.js.map} +1 -1
- package/amd/RadioItem-b17c346c.js +1 -1
- package/amd/RatingGauge-539ede8e.js +1 -1
- package/amd/ReadonlyTextFieldInput-608bddc1.js +1 -1
- package/amd/RemovableNavigationListItem-e01b6693.js +1 -1
- package/amd/RemovableTabBarItem-29b54206.js +1 -1
- package/amd/ReorderableTabBar-462d357c.js +1 -1
- package/amd/RevealToggleIcon-f975229d.js +1 -1
- package/amd/{ScatterChart-88304601.js → ScatterChart-7f0b817b.js} +2 -2
- package/amd/{ScatterChart-88304601.js.map → ScatterChart-7f0b817b.js.map} +1 -1
- package/amd/SectionalLegend-8f203cac.js +1 -1
- package/amd/SectionedContent-19bef3cc.js +2 -0
- package/amd/{SectionedContent-2a261004.js.map → SectionedContent-19bef3cc.js.map} +1 -1
- package/amd/{SelectMultiple-e3a6732b.js → SelectMultiple-7e9bd455.js} +2 -2
- package/amd/{SelectMultiple-e3a6732b.js.map → SelectMultiple-7e9bd455.js.map} +1 -1
- package/amd/{SelectSingle-9d0dca8f.js → SelectSingle-466bcd67.js} +2 -2
- package/amd/{SelectSingle-9d0dca8f.js.map → SelectSingle-466bcd67.js.map} +1 -1
- package/amd/SelectionCard-13aac54a.js +2 -0
- package/amd/{SelectionCard-895b014d.js.map → SelectionCard-13aac54a.js.map} +1 -1
- package/amd/Selector-2b0c34a7.js +1 -1
- package/amd/{SelectorAll-e884a225.js → SelectorAll-1c889a9c.js} +2 -2
- package/amd/{SelectorAll-e884a225.js.map → SelectorAll-1c889a9c.js.map} +1 -1
- package/amd/{Sheet-46782f99.js → Sheet-0b58b0a5.js} +2 -2
- package/amd/{Sheet-46782f99.js.map → Sheet-0b58b0a5.js.map} +1 -1
- package/amd/SplitMenuButton-031ae5e3.js +1 -1
- package/amd/{StyledCard-c4d0324d.js → StyledCard-0da6f6b5.js} +2 -2
- package/amd/{StyledCard-c4d0324d.js.map → StyledCard-0da6f6b5.js.map} +1 -1
- package/amd/StyledTextField-b4278437.js +1 -1
- package/amd/TabBar-d8890a47.js +1 -1
- package/amd/TabBarItem-547825e2.js +1 -1
- package/amd/TabBarLayout-685ac295.js +1 -1
- package/amd/TabBarMixed-a75796a6.js +1 -1
- package/amd/TabBarMixedSeparator-ed764207.js +2 -0
- package/amd/{TabBarMixedSeparator-8c278254.js.map → TabBarMixedSeparator-ed764207.js.map} +1 -1
- package/amd/{Table-31cc83c6.js → Table-87f7e3c4.js} +2 -2
- package/amd/{Table-31cc83c6.js.map → Table-87f7e3c4.js.map} +1 -1
- package/amd/{TableView-ab5d0c12.js → TableView-2b884e2c.js} +2 -2
- package/amd/{TableView-ab5d0c12.js.map → TableView-2b884e2c.js.map} +1 -1
- package/amd/TagCloud-5dc4b5ff.js +1 -1
- package/amd/TextArea-a7a3d82f.js +2 -0
- package/amd/TextArea-a7a3d82f.js.map +1 -0
- package/amd/TextAreaAutosize-9cd2c1e8.js +2 -0
- package/amd/{TextAreaAutosize-81449e46.js.map → TextAreaAutosize-9cd2c1e8.js.map} +1 -1
- package/amd/TextField-1021f00b.js +1 -1
- package/amd/TextFieldInput-ba4e508c.js +1 -1
- package/amd/Theme-redwood/theme.css +230 -230
- package/amd/Theme-stable/theme.css +342 -342
- package/amd/TimeComponentCanvas2D-6b4e6ead.js +1 -1
- package/amd/Toolbar-05d42276.js +1 -1
- package/amd/TruncatingBadge-7f66faaf.js +2 -0
- package/amd/{TruncatingBadge-04f9ef4c.js.map → TruncatingBadge-7f66faaf.js.map} +1 -1
- package/amd/{TruncatingText-d18d41c5.js → TruncatingText-69770aa9.js} +2 -2
- package/amd/{TruncatingText-d18d41c5.js.map → TruncatingText-69770aa9.js.map} +1 -1
- package/amd/UNSAFE_ActionCard.js +1 -1
- package/amd/UNSAFE_BarChart/__test__/BarChart.spec.js +1 -1
- package/amd/UNSAFE_BarChart.js +1 -1
- package/amd/UNSAFE_BaseButton.js +1 -1
- package/amd/UNSAFE_Button.js +1 -1
- package/amd/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +1 -1
- package/amd/UNSAFE_ButtonSet.js +1 -1
- package/amd/UNSAFE_ButtonSetButton.js +1 -1
- package/amd/UNSAFE_ButtonSetIconButton.js +1 -1
- package/amd/UNSAFE_ButtonSetItem.js +1 -1
- package/amd/UNSAFE_ButtonSetMultiple.js +1 -1
- package/amd/UNSAFE_ButtonSetSingle.js +1 -1
- package/amd/UNSAFE_Card.js +1 -1
- package/amd/UNSAFE_CardFlexView.js +1 -1
- package/amd/UNSAFE_CardGridView.js +1 -1
- package/amd/UNSAFE_Center.js +1 -1
- package/amd/UNSAFE_ChartWithLegend.js +1 -1
- package/amd/UNSAFE_Checkbox.js +1 -1
- package/amd/UNSAFE_CheckboxItem.js +1 -1
- package/amd/UNSAFE_CheckboxSet.js +1 -1
- package/amd/UNSAFE_Chip.js +1 -1
- package/amd/UNSAFE_Collapsible.js +1 -1
- package/amd/UNSAFE_ComboChart.js +1 -1
- package/amd/UNSAFE_ComponentMessage.js +1 -1
- package/amd/UNSAFE_ConveyorBelt.js +1 -1
- package/amd/UNSAFE_DatePicker.js +1 -1
- package/amd/UNSAFE_Diagram.js +1 -1
- package/amd/UNSAFE_Dialog.js +1 -1
- package/amd/UNSAFE_DragHandle.js +1 -1
- package/amd/UNSAFE_DrawerLayout.js +1 -1
- package/amd/UNSAFE_DrawerPopup.js +1 -1
- package/amd/UNSAFE_Dropdown.js +1 -1
- package/amd/UNSAFE_Environment.js +1 -1
- package/amd/UNSAFE_ExpandableList.js +1 -1
- package/amd/UNSAFE_FilePicker.js +1 -1
- package/amd/UNSAFE_Flex.js +1 -1
- package/amd/UNSAFE_Floating.js +1 -1
- package/amd/UNSAFE_FormLayout.js +1 -1
- package/amd/UNSAFE_Gantt.js +1 -1
- package/amd/UNSAFE_Grid.js +1 -1
- package/amd/UNSAFE_HighlightText.js +1 -1
- package/amd/UNSAFE_Icon.js +1 -1
- package/amd/UNSAFE_IconButton.js +1 -1
- package/amd/UNSAFE_IconMenuButton.js +1 -1
- package/amd/UNSAFE_IconProgressButton.js +1 -1
- package/amd/UNSAFE_IconToggleButton.js +1 -1
- package/amd/UNSAFE_Indexer.js +1 -1
- package/amd/UNSAFE_InputDateMask.js +1 -1
- package/amd/UNSAFE_InputDatePicker.js +1 -1
- package/amd/UNSAFE_InputPassword.js +1 -1
- package/amd/UNSAFE_InputSensitiveText.js +1 -1
- package/amd/UNSAFE_InputText.js +1 -1
- package/amd/UNSAFE_InputTimeMask.js +1 -1
- package/amd/UNSAFE_Label.js +1 -1
- package/amd/UNSAFE_LabelValueLayout.js +1 -1
- package/amd/UNSAFE_LabelledLink.js +1 -1
- package/amd/UNSAFE_Layer.js +1 -1
- package/amd/UNSAFE_Legend.js +1 -1
- package/amd/UNSAFE_LineAreaChart.js +1 -1
- package/amd/UNSAFE_Link.js +1 -1
- package/amd/UNSAFE_ListItemLayout.js +1 -1
- package/amd/UNSAFE_ListView.js +1 -1
- package/amd/UNSAFE_LiveRegion.js +1 -1
- package/amd/UNSAFE_Menu.js +1 -1
- package/amd/UNSAFE_MenuButton.js +1 -1
- package/amd/UNSAFE_MessageBanner.js +1 -1
- package/amd/UNSAFE_MessageToast.js +1 -1
- package/amd/UNSAFE_MeterBar.js +1 -1
- package/amd/UNSAFE_MeterCircle.js +1 -1
- package/amd/UNSAFE_Modal.js +1 -1
- package/amd/UNSAFE_NavigationList.js +1 -1
- package/amd/UNSAFE_NavigationListCommon.js +1 -1
- package/amd/UNSAFE_NumberInputText.js +1 -1
- package/amd/UNSAFE_OverflowTabBar.js +1 -1
- package/amd/UNSAFE_PictoChart.js +1 -1
- package/amd/UNSAFE_PieChart/__test__/PieChart.spec.js +1 -1
- package/amd/UNSAFE_PieChart.js +1 -1
- package/amd/UNSAFE_Popup.js +1 -1
- package/amd/UNSAFE_ProgressBar.js +1 -1
- package/amd/UNSAFE_ProgressButton.js +1 -1
- package/amd/UNSAFE_ProgressButtonLabelLayout.js +1 -1
- package/amd/UNSAFE_ProgressCircle.js +1 -1
- package/amd/UNSAFE_RadioItem.js +1 -1
- package/amd/UNSAFE_RadioSet.js +1 -1
- package/amd/UNSAFE_RatingGauge.js +1 -1
- package/amd/UNSAFE_ReorderableTabBar.js +1 -1
- package/amd/UNSAFE_RichCheckboxSet.js +1 -1
- package/amd/UNSAFE_RichRadioSet.js +1 -1
- package/amd/UNSAFE_RichSelectionItem.js +1 -1
- package/amd/UNSAFE_ScatterChart.js +1 -1
- package/amd/UNSAFE_SectionalLegend.js +1 -1
- package/amd/UNSAFE_SelectMultiple.js +1 -1
- package/amd/UNSAFE_SelectSingle.js +1 -1
- package/amd/UNSAFE_SelectionCard.js +1 -1
- package/amd/UNSAFE_Selector.js +1 -1
- package/amd/UNSAFE_SelectorAll.js +1 -1
- package/amd/UNSAFE_Sheet/__test__/Sheet.spec.js +1 -1
- package/amd/UNSAFE_Sheet.js +1 -1
- package/amd/UNSAFE_SplitMenuButton.js +1 -1
- package/amd/UNSAFE_TabBar.js +1 -1
- package/amd/UNSAFE_TabBarCommon.js +1 -1
- package/amd/UNSAFE_TabBarMixed.js +1 -1
- package/amd/UNSAFE_TableView.js +1 -1
- package/amd/UNSAFE_TagCloud.js +1 -1
- package/amd/UNSAFE_TextArea.js +1 -1
- package/amd/UNSAFE_TextAreaAutosize.js +1 -1
- package/amd/UNSAFE_TextField.js +1 -1
- package/amd/UNSAFE_ToggleButton.js +1 -1
- package/amd/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
- package/amd/UNSAFE_Toolbar.js +1 -1
- package/amd/UNSAFE_Train.js +1 -1
- package/amd/UNSAFE_TruncatingBadge.js +1 -1
- package/amd/UNSAFE_TruncatingText.js +1 -1
- package/amd/UNSAFE_UserAssistance.js +1 -1
- package/amd/UNSAFE_View.js +1 -1
- package/amd/UNSAFE_VirtualizedListView.js +1 -1
- package/amd/UNSAFE_VisProgressiveLoader/__test__/VisProgressiveLoader.spec.js +1 -1
- package/amd/UNSAFE_VisProgressiveLoader.js +1 -1
- package/amd/UNSAFE_VisStatusMessage.js +1 -1
- package/amd/UNSAFE_WindowOverlay.js +1 -1
- package/amd/{View-ce970ed7.js → View-bd5c7fa7.js} +2 -2
- package/amd/{View-ce970ed7.js.map → View-bd5c7fa7.js.map} +1 -1
- package/amd/{VirtualizedCollection-63223f5e.js → VirtualizedCollection-897516a5.js} +2 -2
- package/amd/{VirtualizedCollection-63223f5e.js.map → VirtualizedCollection-897516a5.js.map} +1 -1
- package/amd/{VirtualizedListView-554eaee6.js → VirtualizedListView-cbe87ec2.js} +2 -2
- package/amd/{VirtualizedListView-554eaee6.js.map → VirtualizedListView-cbe87ec2.js.map} +1 -1
- package/amd/VisNoData-10983ace.js +2 -0
- package/amd/{VisNoData-6fa39277.js.map → VisNoData-10983ace.js.map} +1 -1
- package/amd/{VisProgressiveLoader-68d8d8b3.js → VisProgressiveLoader-06a60c8f.js} +2 -2
- package/amd/{VisProgressiveLoader-68d8d8b3.js.map → VisProgressiveLoader-06a60c8f.js.map} +1 -1
- package/amd/{VisTabularDatatip-1051eaca.js → VisTabularDatatip-55bbd19f.js} +2 -2
- package/amd/{VisTabularDatatip-1051eaca.js.map → VisTabularDatatip-55bbd19f.js.map} +1 -1
- package/amd/{WindowOverlay-a2d80d55.js → WindowOverlay-43c10424.js} +2 -2
- package/amd/{WindowOverlay-a2d80d55.js.map → WindowOverlay-43c10424.js.map} +1 -1
- package/amd/{YearsGridView-d799dc5c.js → YearsGridView-d7b2184e.js} +2 -2
- package/amd/{YearsGridView-d799dc5c.js.map → YearsGridView-d7b2184e.js.map} +1 -1
- package/amd/hoc/PRIVATE_withDirectionIcon.js +1 -1
- package/amd/hoc/PRIVATE_withThemeIcon.js +1 -1
- package/amd/hoc/UNSAFE_withThemeProps.js +1 -1
- package/amd/hooks/PRIVATE_useChartContextMenu.js +1 -1
- package/amd/hooks/PRIVATE_useChartDatatip.js +1 -1
- package/amd/hooks/PRIVATE_useChartEvents.js +1 -1
- package/amd/hooks/PRIVATE_useChartMarquee.js +1 -1
- package/amd/hooks/PRIVATE_useCssVars.js +1 -1
- package/amd/hooks/PRIVATE_useCurrentKey.js +1 -1
- package/amd/hooks/PRIVATE_useDatatip.js +1 -1
- package/amd/hooks/PRIVATE_useFloating.js +1 -1
- package/amd/hooks/PRIVATE_useReorderable.js +1 -1
- package/amd/hooks/PRIVATE_useRovingTabIndexContainer.js +1 -1
- package/amd/hooks/PRIVATE_useSelection.js +1 -1
- package/amd/hooks/PRIVATE_useTabBar.js +1 -1
- package/amd/hooks/PRIVATE_useVisContextMenu.js +1 -1
- package/amd/hooks/PRIVATE_useVisDragModeControls.js +1 -1
- package/amd/hooks/PRIVATE_useVisEvents.js +1 -1
- package/amd/hooks/PRIVATE_useVisMeterEvents.js +1 -1
- package/amd/hooks/PRIVATE_useVisSelection.js +1 -1
- package/amd/hooks/UNSAFE_useColorScheme.js +1 -1
- package/amd/hooks/UNSAFE_useCurrentBgColor.js +1 -1
- package/amd/hooks/UNSAFE_useDensity.js +1 -1
- package/amd/hooks/UNSAFE_useOutsideClick.js +1 -1
- package/amd/hooks/UNSAFE_usePrefixSuffix.js +1 -1
- package/amd/hooks/UNSAFE_useScale.js +1 -1
- package/amd/hooks/UNSAFE_useTestId.js +1 -1
- package/amd/hooks/UNSAFE_useTheme.js +1 -1
- package/amd/hooks/UNSAFE_useThemeInterpolations.js +1 -1
- package/amd/hooks/UNSAFE_useTooltip.js +1 -1
- package/amd/hooks/UNSAFE_useTranslationBundle.js +1 -1
- package/amd/hooks/UNSAFE_useUser.js +1 -1
- package/amd/{index-b7b9300d.js → index-95227deb.js} +2 -2
- package/amd/index-95227deb.js.map +1 -0
- package/amd/listViewSelectionTests-c9777ea8.js +1 -1
- package/amd/render-85c034d7.js +2 -0
- package/amd/{render-366c27ff.js.map → render-85c034d7.js.map} +1 -1
- package/amd/{tabbableUtils-88d4fa35.js → tabbableUtils-591fdc8d.js} +2 -2
- package/amd/{tabbableUtils-88d4fa35.js.map → tabbableUtils-591fdc8d.js.map} +1 -1
- package/amd/{testData-783b8823.js → testData-02652eda.js} +2 -2
- package/amd/{testData-783b8823.js.map → testData-02652eda.js.map} +1 -1
- package/amd/{tooltipUtils-69ce0a2d.js → tooltipUtils-e5bdb734.js} +2 -2
- package/amd/{tooltipUtils-69ce0a2d.js.map → tooltipUtils-e5bdb734.js.map} +1 -1
- package/amd/useCellNavigation-1feec094.js +1 -1
- package/amd/useChartContextMenu-8606bfa2.js +1 -1
- package/amd/useChartDatatip-947eeffe.js +2 -0
- package/amd/{useChartDatatip-ee3783af.js.map → useChartDatatip-947eeffe.js.map} +1 -1
- package/amd/{useColorScheme-10dc88de.js → useColorScheme-443e7cc7.js} +2 -2
- package/amd/{useColorScheme-10dc88de.js.map → useColorScheme-443e7cc7.js.map} +1 -1
- package/amd/useContextMenu-e08aad46.js +1 -1
- package/amd/{useCssVars-c043f8da.js → useCssVars-dc52806c.js} +2 -2
- package/amd/{useCssVars-c043f8da.js.map → useCssVars-dc52806c.js.map} +1 -1
- package/amd/{useCurrentBgColor-2426ee24.js → useCurrentBgColor-50142bd8.js} +2 -2
- package/amd/{useCurrentBgColor-2426ee24.js.map → useCurrentBgColor-50142bd8.js.map} +1 -1
- package/amd/useCurrentKey-a993db56.js +2 -0
- package/amd/{useCurrentKey-31c18053.js.map → useCurrentKey-a993db56.js.map} +1 -1
- package/amd/{useDatatip-ac26447a.js → useDatatip-9942601b.js} +2 -2
- package/amd/{useDatatip-ac26447a.js.map → useDatatip-9942601b.js.map} +1 -1
- package/amd/{useDensity-c83df7b4.js → useDensity-f0f7ae9a.js} +2 -2
- package/amd/{useDensity-c83df7b4.js.map → useDensity-f0f7ae9a.js.map} +1 -1
- package/amd/{useFloating-acd30a55.js → useFloating-bf8ed6cb.js} +2 -2
- package/amd/{useFloating-acd30a55.js.map → useFloating-bf8ed6cb.js.map} +1 -1
- package/amd/useKeyboardEvents-8ada7a1f.js +2 -0
- package/amd/{useKeyboardEvents-d87e3587.js.map → useKeyboardEvents-8ada7a1f.js.map} +1 -1
- package/amd/useLegendContextMenu-e629139a.js +1 -1
- package/amd/useMeterDatatip-173593b4.js +2 -0
- package/amd/{useMeterDatatip-fff3c329.js.map → useMeterDatatip-173593b4.js.map} +1 -1
- package/amd/{useOutsideClick-f99b7a84.js → useOutsideClick-76c1ff6e.js} +2 -2
- package/amd/{useOutsideClick-f99b7a84.js.map → useOutsideClick-76c1ff6e.js.map} +1 -1
- package/amd/{usePopupAnimation-f679a4b0.js → usePopupAnimation-6e53a0fe.js} +2 -2
- package/amd/{usePopupAnimation-f679a4b0.js.map → usePopupAnimation-6e53a0fe.js.map} +1 -1
- package/amd/usePrefixSuffix-f7544e05.js +2 -0
- package/amd/{usePrefixSuffix-09bd5925.js.map → usePrefixSuffix-f7544e05.js.map} +1 -1
- package/amd/{useReorderableItem-4c4779f7.js → useReorderableItem-726c3c03.js} +2 -2
- package/amd/{useReorderableItem-4c4779f7.js.map → useReorderableItem-726c3c03.js.map} +1 -1
- package/amd/{useRovingTabIndexContainer-955e23a8.js → useRovingTabIndexContainer-473f7e43.js} +2 -2
- package/amd/{useRovingTabIndexContainer-955e23a8.js.map → useRovingTabIndexContainer-473f7e43.js.map} +1 -1
- package/amd/useScale-e311d35f.js +2 -0
- package/amd/{useScale-37d42c9d.js.map → useScale-e311d35f.js.map} +1 -1
- package/amd/{useSelectCommon-e7f123ce.js → useSelectCommon-d9c4a7bd.js} +2 -2
- package/amd/{useSelectCommon-e7f123ce.js.map → useSelectCommon-d9c4a7bd.js.map} +1 -1
- package/amd/{useSelectDrill-6361116b.js → useSelectDrill-216c007c.js} +2 -2
- package/amd/{useSelectDrill-6361116b.js.map → useSelectDrill-216c007c.js.map} +1 -1
- package/amd/useSelection-01203394.js +2 -0
- package/amd/{useSelection-af7b4b52.js.map → useSelection-01203394.js.map} +1 -1
- package/amd/{useSelection-f0c7d74d.js → useSelection-4249360e.js} +2 -2
- package/amd/{useSelection-f0c7d74d.js.map → useSelection-4249360e.js.map} +1 -1
- package/amd/useTabBar-2c4573fe.js +1 -1
- package/amd/{useTestId-3a316499.js → useTestId-b5cd4766.js} +2 -2
- package/amd/{useTestId-3a316499.js.map → useTestId-b5cd4766.js.map} +1 -1
- package/amd/{useTheme-ac980f9a.js → useTheme-a8334e06.js} +2 -2
- package/amd/{useTheme-ac980f9a.js.map → useTheme-a8334e06.js.map} +1 -1
- package/amd/useThemeInterpolations-ab618dee.js +2 -0
- package/amd/{useThemeInterpolations-6b2de213.js.map → useThemeInterpolations-ab618dee.js.map} +1 -1
- package/amd/useTooltip-b43ad881.js +2 -0
- package/amd/{useTooltip-7b11fd35.js.map → useTooltip-b43ad881.js.map} +1 -1
- package/amd/{useTooltipControlled-52183a08.js → useTooltipControlled-ee3276de.js} +2 -2
- package/amd/{useTooltipControlled-52183a08.js.map → useTooltipControlled-ee3276de.js.map} +1 -1
- package/amd/{useTranslationBundle-516b1b83.js → useTranslationBundle-d07d4b20.js} +2 -2
- package/amd/{useTranslationBundle-516b1b83.js.map → useTranslationBundle-d07d4b20.js.map} +1 -1
- package/amd/{useUser-85c781ea.js → useUser-3ef25571.js} +2 -2
- package/amd/{useUser-85c781ea.js.map → useUser-3ef25571.js.map} +1 -1
- package/amd/useVisDragModeControls-a5685835.js +1 -1
- package/amd/{useVisEvents-0166e4cc.js → useVisEvents-dc86164f.js} +2 -2
- package/amd/{useVisEvents-0166e4cc.js.map → useVisEvents-dc86164f.js.map} +1 -1
- package/amd/utils/PRIVATE_tooltipUtils.js +1 -1
- package/amd/utils/PRIVATE_visTestUtils.js +1 -1
- package/amd/{withDirectionIcon-ce0c7432.js → withDirectionIcon-74c39ee3.js} +2 -2
- package/amd/{withDirectionIcon-ce0c7432.js.map → withDirectionIcon-74c39ee3.js.map} +1 -1
- package/amd/withThemeProps-4c23997e.js +1 -1
- package/cjs/{BarChart-ca7f8ed5.js → BarChart-93a3813c.js} +2 -2
- package/cjs/{BarChart-ca7f8ed5.js.map → BarChart-93a3813c.js.map} +1 -1
- package/cjs/{Chart-fbbd3329.js → Chart-40d95d14.js} +2 -2
- package/cjs/{Chart-fbbd3329.js.map → Chart-40d95d14.js.map} +1 -1
- package/cjs/{ComboChart-95863e7a.js → ComboChart-cffd0759.js} +2 -2
- package/cjs/{ComboChart-95863e7a.js.map → ComboChart-cffd0759.js.map} +1 -1
- package/cjs/{InputDatePicker-4d36637f.js → InputDatePicker-bc2c534a.js} +2 -2
- package/cjs/{InputDatePicker-4d36637f.js.map → InputDatePicker-bc2c534a.js.map} +1 -1
- package/cjs/{LineAreaChart-46dde5d3.js → LineAreaChart-bb1350fa.js} +2 -2
- package/cjs/{LineAreaChart-46dde5d3.js.map → LineAreaChart-bb1350fa.js.map} +1 -1
- package/cjs/PRIVATE_Chart.js +4 -4
- package/cjs/{ScatterChart-0497f41a.js → ScatterChart-763e1f3e.js} +2 -2
- package/cjs/{ScatterChart-0497f41a.js.map → ScatterChart-763e1f3e.js.map} +1 -1
- package/cjs/Theme-redwood/theme.css +305 -305
- package/cjs/Theme-stable/theme.css +401 -401
- package/cjs/UNSAFE_BarChart/__test__/BarChart.spec.js +5 -5
- package/cjs/UNSAFE_BarChart.js +5 -5
- package/cjs/UNSAFE_ComboChart.js +5 -5
- package/cjs/UNSAFE_InputDatePicker.js +90 -90
- package/cjs/UNSAFE_LineAreaChart.js +5 -5
- package/cjs/UNSAFE_ScatterChart.js +5 -5
- package/es/{BaseCardView-c5a8ee6a.js → BaseCardView-229fa119.js} +2 -2
- package/es/{BaseCardView-c5a8ee6a.js.map → BaseCardView-229fa119.js.map} +1 -1
- package/es/{CardFlexView-529906e0.js → CardFlexView-3ef6bf4d.js} +2 -2
- package/es/{CardFlexView-529906e0.js.map → CardFlexView-3ef6bf4d.js.map} +1 -1
- package/es/{CardGridView-ec18c929.js → CardGridView-e15226c9.js} +2 -2
- package/es/{CardGridView-ec18c929.js.map → CardGridView-e15226c9.js.map} +1 -1
- package/es/ExpandableList-478db30a.js +1 -1
- package/es/GroupLoadingIndicator-63035d08.js +1 -1
- package/es/{Indexer-ba2c7593.js → Indexer-eb00ba0b.js} +2 -2
- package/es/{Indexer-ba2c7593.js.map → Indexer-eb00ba0b.js.map} +1 -1
- package/es/{List-97b7be70.js → List-e6886091.js} +3 -4
- package/es/{List-97b7be70.js.map → List-e6886091.js.map} +1 -1
- package/es/{ListView-936d8a4f.js → ListView-137e31fd.js} +2 -2
- package/es/{ListView-936d8a4f.js.map → ListView-137e31fd.js.map} +1 -1
- package/es/{LoadMoreCollection-95a49d2a.js → LoadMoreCollection-7df1be36.js} +2 -2
- package/es/{LoadMoreCollection-95a49d2a.js.map → LoadMoreCollection-7df1be36.js.map} +1 -1
- package/es/PRIVATE_BaseCardView.js +3 -3
- package/es/PRIVATE_List.js +4 -4
- package/es/PRIVATE_LoadMoreCollection.js +2 -2
- package/es/PRIVATE_SelectCommon.js +5 -5
- package/es/PRIVATE_Table.js +3 -3
- package/es/PRIVATE_VirtualizedCollection.js +2 -2
- package/es/SegmentStyles.styles.css +8 -8
- package/es/SegmentStyles.styles2.css +8 -8
- package/es/{SelectMultiple-ad8fc99a.js → SelectMultiple-488a49d1.js} +2 -2
- package/es/{SelectMultiple-ad8fc99a.js.map → SelectMultiple-488a49d1.js.map} +1 -1
- package/es/{SelectSingle-abaf271c.js → SelectSingle-e8b9a33a.js} +2 -2
- package/es/{SelectSingle-abaf271c.js.map → SelectSingle-e8b9a33a.js.map} +1 -1
- package/es/SplitMenuButtonTheme.styles.css +4 -4
- package/es/SplitMenuButtonTheme.styles2.css +4 -4
- package/es/{Table-1ba124ec.js → Table-3cfb9443.js} +2 -2
- package/es/{Table-1ba124ec.js.map → Table-3cfb9443.js.map} +1 -1
- package/es/{TableView-20223ba6.js → TableView-fd5104cd.js} +2 -2
- package/es/{TableView-20223ba6.js.map → TableView-fd5104cd.js.map} +1 -1
- package/es/Theme-redwood/theme.css +326 -326
- package/es/Theme-stable/theme.css +540 -540
- package/es/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +1 -1
- package/es/UNSAFE_CardFlexView.js +4 -4
- package/es/UNSAFE_CardGridView.js +4 -4
- package/es/UNSAFE_ExpandableList.js +3 -3
- package/es/UNSAFE_Indexer.js +2 -2
- package/es/UNSAFE_InputDateMask/themes/SegmentStyles.css.js +1 -1
- package/es/UNSAFE_InputDateMask.js +1 -1
- package/es/UNSAFE_InputDatePicker.js +1 -1
- package/es/UNSAFE_InputTimeMask/themes/SegmentStyles.css.js +1 -1
- package/es/UNSAFE_InputTimeMask.js +1 -1
- package/es/UNSAFE_ListView.js +5 -5
- package/es/UNSAFE_SelectMultiple.js +6 -6
- package/es/UNSAFE_SelectSingle.js +6 -6
- package/es/UNSAFE_SplitMenuButton/themes/redwood/SplitMenuButtonTheme.css.js +1 -1
- package/es/UNSAFE_SplitMenuButton/themes/stable/SplitMenuButtonTheme.css.js +1 -1
- package/es/UNSAFE_SplitMenuButton.js +1 -1
- package/es/UNSAFE_TableView.js +4 -4
- package/es/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
- package/es/UNSAFE_VirtualizedListView.js +5 -5
- package/es/{VirtualizedCollection-e73890a1.js → VirtualizedCollection-f048fbb8.js} +2 -2
- package/es/{VirtualizedCollection-e73890a1.js.map → VirtualizedCollection-f048fbb8.js.map} +1 -1
- package/es/{VirtualizedListView-3ef40bde.js → VirtualizedListView-0532e46c.js} +2 -2
- package/es/{VirtualizedListView-3ef40bde.js.map → VirtualizedListView-0532e46c.js.map} +1 -1
- package/es/{useSelectCommon-1dafa6f9.js → useSelectCommon-af8e715e.js} +2 -2
- package/es/{useSelectCommon-1dafa6f9.js.map → useSelectCommon-af8e715e.js.map} +1 -1
- package/package.json +2 -2
- package/amd/CardFlexView-bb5c4369.js +0 -2
- package/amd/CompactLabelAssistance-44ba87b0.js +0 -2
- package/amd/Flex-56ecdf4c.js +0 -2
- package/amd/HighlightText-bd4c0101.js +0 -2
- package/amd/List-04c4fed0.js +0 -2
- package/amd/LiveRegion-8142ed0d.js +0 -2
- package/amd/LoadMoreCollection-a6adbc3f.js +0 -2
- package/amd/MaxLengthCounter-9a95922c.js +0 -2
- package/amd/MaxLengthCounter-9a95922c.js.map +0 -1
- package/amd/MaxLengthLiveRegion-8954fc30.js +0 -2
- package/amd/SectionedContent-2a261004.js +0 -2
- package/amd/SelectionCard-895b014d.js +0 -2
- package/amd/TabBarMixedSeparator-8c278254.js +0 -2
- package/amd/TextArea-89b9ed65.js +0 -2
- package/amd/TextArea-89b9ed65.js.map +0 -1
- package/amd/TextAreaAutosize-81449e46.js +0 -2
- package/amd/TruncatingBadge-04f9ef4c.js +0 -2
- package/amd/VisNoData-6fa39277.js +0 -2
- package/amd/index-b7b9300d.js.map +0 -1
- package/amd/render-366c27ff.js +0 -2
- package/amd/useChartDatatip-ee3783af.js +0 -2
- package/amd/useCurrentKey-31c18053.js +0 -2
- package/amd/useKeyboardEvents-d87e3587.js +0 -2
- package/amd/useMeterDatatip-fff3c329.js +0 -2
- package/amd/usePrefixSuffix-09bd5925.js +0 -2
- package/amd/useScale-37d42c9d.js +0 -2
- package/amd/useSelection-af7b4b52.js +0 -2
- package/amd/useThemeInterpolations-6b2de213.js +0 -2
- package/amd/useTooltip-7b11fd35.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', './Marker-a5694092', 'css!./SvgShapesStyles.styles.css', './layoutUtils-c2938c54', './useChartDnd-947ed9e4', './useTranslationBundle-
|
|
2
|
-
//# sourceMappingURL=LineSeries-
|
|
1
|
+
define(['exports', 'preact/jsx-runtime', './Marker-a5694092', 'css!./SvgShapesStyles.styles.css', './layoutUtils-c2938c54', './useChartDnd-947ed9e4', './useTranslationBundle-d07d4b20', './dataStyleUtils-7ba616b8', './accUtils-530bdb90', './PRIVATE_Chart/themes/ChartStyles.css', './classNames-08d99695', './textUtils-ae0a246c', './utils-5077c092', './Common/themes/themeContract.css'], (function(e,t,s,i,a,l,o,r,n,d,c,m,h,u){"use strict";const y="center";function x({labelPosition:e,label:s,labelStyle:i,tx:a,ty:o,defaultFontSize:r,dataLabelEffect:n,isHighContrast:h,getTextDimensions:u}){let x=null;const g=e||y,{dataLabelStyle:b,dataLabelContrast:f,highContrastLabelStyle:p}=d.styles,S=s;if(g&&S){const e={fontSize:r,...m.updateVisTextStyleProperties(i)},s=u?.(S,e),{x:d,y:y}=l.getLabelPosition(g,a,o,s);x=t.jsx("text",{x:d,y:y,class:c.classNames([b,"outline"===n?f:"",h?p:""]),style:e,children:S})}return x}e.LineSeries=function({color:e,isHorizontal:s,lineType:i="straight",lineColor:a,lineStyle:o,lineWidth:r=3,isHighlighted:n,lineSegmentCoords:c,seriesIndex:m}){const y={stroke:a||e,strokeDasharray:"dotted"===o?3:"dashed"===o?6:void 0,strokeWidth:r,fill:h.rgba(u.colorSchemeVars.palette.neutral[0],0)};return t.jsx(t.Fragment,{children:c.map((e=>{if(e.length<2)return;const a=l.getCmdsForLine(e,i,s);return"straight"===i?t.jsx("polyline",{points:a,style:y,className:n?void 0:d.styles.dimmed,"data-oj-series-index":m,"data-oj-object":"line"}):t.jsx("path",{d:a,style:y,className:n?void 0:d.styles.dimmed,"data-oj-series-index":m,"data-oj-object":"line"})}))})},e.MarkersWithLabel=function({yScale:e,xScale:i,color:c,seriesIndex:m,startIndex:h,endIndex:u,hiddenIds:y,selectedIds:g,highlightedIds:b,orientation:f,isLog:p,markerType:S,getDataItem:j,focusedItemIndex:v,hoveredItemIndex:C,isDrillEnabled:I,activeId:k,isSelectionEnabled:L,timeAxisType:D,isPointInsideMarquee:T,series:M,groups:z,defaultFontSize:A,dataLabelEffect:E,isHighContrast:F,isTestEnv:P,isDataXAxis:R,getTextDimensions:H}){const N="horizontal"===f,U=[],G=o.useTranslationBundle("@oracle/oraclejet-preact");for(let o=h;o<u+1;o++){const h=j(m,o);if(!h||y?.has(h.id))continue;let u,f;const V="value"in h;if(R&&"y"in h)u=i.transform(h.x),f=e.transform(h.y);else{const t=V?h?.value:void 0;if(null==t||p&&t<=0)continue;u=N?e.transform(t):a.getGroupCenterCoord(z[o],o,i,h,D),f=N?a.getGroupCenterCoord(z[o],o,i,h,D):e.transform(t)}const W=v===o,B=C===o,_=!(!g?.has(h.id)&&!T?.(h.id,{x:u,y:f})),q="on"===h.drilling||"off"!=h.drilling&&I,w=!b||0===b?.size||b?.has(h.id),{fill:K,stroke:X,outerStroke:J}=l.getMarkerFillAndStroke(!!h.isMarkerDisplayed,L,B,W,_,c,h.markerColor),O=h.isMarkerDisplayed&&h.markerType||S,Q=W||B,Y=n.supportsMobileScreenReader||Q?r.getItemAriaLabel(G,M.name||M.id.toString(),z[o].name||z[o].id,L,_,q,h.accessibleLabel,V?h.value:void 0,h.x,"y"in h?h.y:void 0):void 0,Z={"data-oj-series-index":m,"data-oj-group-index":o,"data-oj-object":"item",id:Q?k:void 0,role:Y?"img":void 0,"aria-label":Y,"data-oj-private-item-id":P?h.id:void 0},$=(h.markerSize||10)+2*s.MARKER_PADDING;U.push(t.jsxs(t.Fragment,{children:[t.jsx(s.Marker,{type:O,tx:u,ty:f,isInteractive:q||L,scale:1,fill:K,stroke:X,outerStroke:J,width:$,height:$,dataInfo:Z,preserveRectAspectRatio:!0,styleClass:w?void 0:d.styles.dimmed}),t.jsx(x,{labelPosition:h.labelPosition,label:h.label,labelStyle:h.labelStyle,tx:u,ty:f,defaultFontSize:A,dataLabelEffect:E,isHighContrast:F,getTextDimensions:H})]}))}return t.jsx(t.Fragment,{children:U})}}));
|
|
2
|
+
//# sourceMappingURL=LineSeries-797d8d16.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineSeries-a549e727.js","sources":["../../src/PRIVATE_Chart/MarkerLabel.tsx","../../src/PRIVATE_LineAreaComponents/LineSeries.tsx","../../src/PRIVATE_Chart/MarkersWithLabel.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { styles } from '#PRIVATE_Chart/themes/ChartStyles.css';\nimport { VNode } from 'preact';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { VisLabelStyle } from '#utils/UNSAFE_visTypes/common/textTypes';\nimport { updateVisTextStyleProperties } from '#utils/UNSAFE_visUtils/textUtils';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\nimport { Font } from '#hooks/PRIVATE_useTextDimensions';\nimport { getLabelPosition } from '#utils/PRIVATE_chartUtils/utils';\n\nconst DEFAULT_POSITION = 'center';\n\ntype Props = {\n labelPosition?: 'belowMarker' | 'aboveMarker' | 'beforeMarker' | 'afterMarker' | 'center';\n label?: string;\n labelStyle?: VisLabelStyle;\n tx?: number;\n ty?: number;\n defaultFontSize: string;\n dataLabelEffect: 'outline' | 'none';\n isHighContrast: boolean;\n getTextDimensions?: (text: string, style: Font) => Dimension;\n};\n\nexport function MarkerLabel({\n labelPosition,\n label,\n labelStyle,\n tx,\n ty,\n defaultFontSize,\n dataLabelEffect,\n isHighContrast,\n getTextDimensions\n}: Props) {\n let markerLabel: VNode | null = null;\n const position = labelPosition ? labelPosition : DEFAULT_POSITION;\n const { dataLabelStyle, dataLabelContrast, highContrastLabelStyle } = styles;\n const labelString = label;\n\n if (position && labelString) {\n const markerLabelStyle = {\n fontSize: defaultFontSize,\n ...updateVisTextStyleProperties(labelStyle)\n };\n\n const labelDims = getTextDimensions?.(labelString, markerLabelStyle);\n const { x, y } = getLabelPosition(position, tx, ty, labelDims);\n markerLabel = (\n <text\n x={x}\n y={y}\n class={classNames([\n dataLabelStyle,\n dataLabelEffect === 'outline' ? dataLabelContrast : '',\n isHighContrast ? highContrastLabelStyle : ''\n ])}\n style={markerLabelStyle}>\n {labelString}\n </text>\n );\n }\n return markerLabel;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ColorProps } from '#utils/UNSAFE_interpolations/colors';\nimport { getCmdsForLine } from '#utils/PRIVATE_chartUtils/utils';\nimport { Point } from '#utils/PRIVATE_visSVGUtils';\nimport { rgba } from '#UNSAFE_Theme';\nimport { colorSchemeVars } from '#Common/themes/themeContract.css';\nimport { styles } from '#PRIVATE_Chart/themes/ChartStyles.css';\nimport { Property } from 'csstype';\n\ntype LineSeriesProps = {\n color: ColorProps['color'];\n lineStyle?: 'dotted' | 'dashed' | 'solid';\n lineColor?: Property.Color;\n lineWidth?: number;\n lineType?: 'straight' | 'curved';\n isHorizontal: boolean;\n lineSegmentCoords: Point[][];\n isHighlighted: boolean;\n seriesIndex: number;\n};\n\nexport function LineSeries({\n color,\n isHorizontal,\n lineType = 'straight',\n lineColor,\n lineStyle,\n lineWidth = 3,\n isHighlighted,\n lineSegmentCoords,\n seriesIndex\n}: LineSeriesProps) {\n const style = {\n stroke: lineColor || color,\n strokeDasharray: lineStyle === 'dotted' ? 3 : lineStyle === 'dashed' ? 6 : undefined,\n strokeWidth: lineWidth,\n fill: rgba(colorSchemeVars.palette.neutral[0], 0)\n };\n\n return (\n <>\n {lineSegmentCoords.map((value: Point[]) => {\n if (value.length < 2) {\n return;\n }\n const cmds = getCmdsForLine(value, lineType, isHorizontal);\n return lineType === 'straight' ? (\n <polyline\n points={cmds}\n style={style}\n className={isHighlighted ? undefined : styles.dimmed}\n data-oj-series-index={seriesIndex}\n data-oj-object={'line'}\n />\n ) : (\n <path\n d={cmds}\n style={style}\n className={isHighlighted ? undefined : styles.dimmed}\n data-oj-series-index={seriesIndex}\n data-oj-object={'line'}\n />\n );\n })}\n </>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ColorProps } from '#utils/UNSAFE_interpolations/colors';\nimport { LineAreaItem } from '#UNSAFE_LineAreaChart/lineAreaChart.types';\nimport { Marker, MARKER_PADDING } from '#PRIVATE_SvgShapes';\nimport { MarkerShapes } from '#utils/UNSAFE_visTypes/common';\nimport { getGroupCenterCoord } from '#utils/PRIVATE_chartUtils/layoutUtils';\nimport { ChartSeriesData, Scale, Group } from '#utils/UNSAFE_visTypes/chart';\nimport { getMarkerFillAndStroke } from '#utils/PRIVATE_chartUtils/utils';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\nimport { getItemAriaLabel } from '#utils/PRIVATE_chartUtils/accUtils';\nimport { supportsMobileScreenReader } from '#utils/UNSAFE_visUtils';\nimport { MarkerLabel } from './MarkerLabel';\nimport { styles } from '#PRIVATE_Chart/themes/ChartStyles.css';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\nimport { Font } from '#hooks/PRIVATE_useTextDimensions';\nimport { ScatterItem } from '#UNSAFE_ScatterChart/scatterChart.types';\n\nconst MARKER_DEFAULT_SIZE = 10;\ntype MarkersProps<K, D> = {\n yScale: Scale;\n xScale: Scale;\n startIndex: number;\n endIndex: number;\n seriesIndex: number;\n series: ChartSeriesData<K, D>;\n markerType: MarkerShapes;\n color: ColorProps['color'];\n groups: Group[];\n focusedItemIndex?: number;\n isSelectionEnabled: boolean;\n hoveredItemIndex?: number;\n selectedIds?: Set<string | number>;\n hiddenIds?: Set<string | number>;\n highlightedIds?: Set<string | number>;\n activeId?: string;\n orientation: 'horizontal' | 'vertical';\n isDrillEnabled: boolean;\n isLog: boolean;\n isPointInsideMarquee: ((id: K, point: { x: number; y: number }) => boolean) | undefined;\n getDataItem: (seriesIndex: number, groupIndex: number) => D | undefined;\n timeAxisType?: 'enabled' | 'skipGaps' | 'mixedFrequency';\n defaultFontSize: string;\n dataLabelEffect: 'outline' | 'none';\n isHighContrast: boolean;\n isTestEnv?: boolean;\n isDataXAxis?: boolean;\n getTextDimensions?: (text: string, style: Font) => Dimension;\n};\n\nexport function MarkersWithLabel<\n K extends string | number,\n D extends LineAreaItem<K> | ScatterItem<K>\n>({\n yScale,\n xScale,\n color,\n seriesIndex,\n startIndex,\n endIndex,\n hiddenIds,\n selectedIds,\n highlightedIds,\n orientation,\n isLog,\n markerType,\n getDataItem,\n focusedItemIndex,\n hoveredItemIndex,\n isDrillEnabled,\n activeId,\n isSelectionEnabled,\n timeAxisType,\n isPointInsideMarquee,\n series,\n groups,\n defaultFontSize,\n dataLabelEffect,\n isHighContrast,\n isTestEnv,\n isDataXAxis,\n getTextDimensions\n}: MarkersProps<K, D>) {\n const isHoriz = orientation === 'horizontal';\n const items = [];\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n for (let groupIndex = startIndex; groupIndex < endIndex + 1; groupIndex++) {\n const item = getDataItem(seriesIndex, groupIndex);\n if (!item || hiddenIds?.has(item.id)) {\n continue;\n }\n let x, y;\n const itemHasValue = 'value' in item;\n if (isDataXAxis && 'y' in item) {\n x = xScale.transform(item.x);\n y = yScale.transform(item.y);\n } else {\n const value = itemHasValue ? item?.value : undefined;\n if (value == null || (isLog && value <= 0)) {\n continue;\n }\n x = isHoriz\n ? yScale.transform(value)\n : getGroupCenterCoord<K, D>(groups[groupIndex], groupIndex, xScale, item, timeAxisType);\n y = isHoriz\n ? getGroupCenterCoord<K, D>(groups[groupIndex], groupIndex, xScale, item, timeAxisType)\n : yScale.transform(value);\n }\n const isFocused = focusedItemIndex === groupIndex;\n const isHovered = hoveredItemIndex === groupIndex;\n const isSelected = !!(selectedIds?.has(item.id!) || isPointInsideMarquee?.(item.id, { x, y })); // TODO: tagcloud has isItemSelected we should look to leverage here\n const isDrillable = item.drilling === 'on' || (item.drilling != 'off' && isDrillEnabled);\n const isHighlighted =\n !highlightedIds || highlightedIds?.size === 0 || highlightedIds?.has(item.id); // TODO: tagcloud has isItemHighlighted we should look to leverage here\n const { fill, stroke, outerStroke } = getMarkerFillAndStroke(\n !!item.isMarkerDisplayed,\n isSelectionEnabled,\n isHovered,\n isFocused,\n isSelected,\n color,\n item.markerColor\n );\n const itemMarkerType = item.isMarkerDisplayed ? item.markerType || markerType : markerType;\n const isActive = isFocused || isHovered;\n const ariaLabel =\n supportsMobileScreenReader || isActive\n ? getItemAriaLabel(\n translations,\n series.name || series.id.toString(),\n groups[groupIndex].name || groups[groupIndex].id,\n isSelectionEnabled,\n isSelected,\n isDrillable,\n item.accessibleLabel,\n itemHasValue ? item.value : undefined,\n item.x,\n 'y' in item ? item.y : undefined\n )\n : undefined;\n\n const dataInfo = {\n 'data-oj-series-index': seriesIndex,\n 'data-oj-group-index': groupIndex,\n 'data-oj-object': 'item',\n id: isActive ? activeId : undefined,\n role: ariaLabel ? 'img' : undefined,\n 'aria-label': ariaLabel,\n 'data-oj-private-item-id': isTestEnv ? item.id : undefined\n };\n\n const markerSize = (item.markerSize || MARKER_DEFAULT_SIZE) + 2 * MARKER_PADDING;\n items.push(\n <>\n <Marker\n type={itemMarkerType}\n tx={x}\n ty={y}\n isInteractive={isDrillable || isSelectionEnabled}\n scale={1}\n fill={fill}\n stroke={stroke}\n outerStroke={outerStroke}\n width={markerSize}\n height={markerSize}\n dataInfo={dataInfo}\n preserveRectAspectRatio\n styleClass={isHighlighted ? undefined : styles.dimmed}\n />\n <MarkerLabel\n labelPosition={item.labelPosition}\n label={item.label}\n labelStyle={item.labelStyle}\n tx={x}\n ty={y}\n defaultFontSize={defaultFontSize}\n dataLabelEffect={dataLabelEffect}\n isHighContrast={isHighContrast}\n getTextDimensions={getTextDimensions}\n />\n </>\n );\n }\n return <>{items}</>;\n}\n"],"names":["DEFAULT_POSITION","MarkerLabel","labelPosition","label","labelStyle","tx","ty","defaultFontSize","dataLabelEffect","isHighContrast","getTextDimensions","markerLabel","position","dataLabelStyle","dataLabelContrast","highContrastLabelStyle","styles","labelString","markerLabelStyle","fontSize","updateVisTextStyleProperties","labelDims","x","y","getLabelPosition","_jsx","class","classNames","style","color","isHorizontal","lineType","lineColor","lineStyle","lineWidth","isHighlighted","lineSegmentCoords","seriesIndex","stroke","strokeDasharray","undefined","strokeWidth","fill","rgba","colorSchemeVars","palette","neutral","map","value","length","cmds","getCmdsForLine","jsx","points","className","dimmed","d","yScale","xScale","startIndex","endIndex","hiddenIds","selectedIds","highlightedIds","orientation","isLog","markerType","getDataItem","focusedItemIndex","hoveredItemIndex","isDrillEnabled","activeId","isSelectionEnabled","timeAxisType","isPointInsideMarquee","series","groups","isTestEnv","isDataXAxis","isHoriz","items","translations","useTranslationBundle","groupIndex","item","has","id","itemHasValue","transform","getGroupCenterCoord","isFocused","isHovered","isSelected","isDrillable","drilling","size","outerStroke","getMarkerFillAndStroke","isMarkerDisplayed","markerColor","itemMarkerType","isActive","ariaLabel","supportsMobileScreenReader","getItemAriaLabel","name","toString","accessibleLabel","dataInfo","role","markerSize","MARKER_PADDING","push","_jsxs","jsxs","_Fragment","Fragment","children","Marker","type","isInteractive","scale","width","height","preserveRectAspectRatio","styleClass"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LineSeries-797d8d16.js","sources":["../../src/PRIVATE_Chart/MarkerLabel.tsx","../../src/PRIVATE_LineAreaComponents/LineSeries.tsx","../../src/PRIVATE_Chart/MarkersWithLabel.tsx"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { styles } from '#PRIVATE_Chart/themes/ChartStyles.css';\nimport { VNode } from 'preact';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { VisLabelStyle } from '#utils/UNSAFE_visTypes/common/textTypes';\nimport { updateVisTextStyleProperties } from '#utils/UNSAFE_visUtils/textUtils';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\nimport { Font } from '#hooks/PRIVATE_useTextDimensions';\nimport { getLabelPosition } from '#utils/PRIVATE_chartUtils/utils';\n\nconst DEFAULT_POSITION = 'center';\n\ntype Props = {\n labelPosition?: 'belowMarker' | 'aboveMarker' | 'beforeMarker' | 'afterMarker' | 'center';\n label?: string;\n labelStyle?: VisLabelStyle;\n tx?: number;\n ty?: number;\n defaultFontSize: string;\n dataLabelEffect: 'outline' | 'none';\n isHighContrast: boolean;\n getTextDimensions?: (text: string, style: Font) => Dimension;\n};\n\nexport function MarkerLabel({\n labelPosition,\n label,\n labelStyle,\n tx,\n ty,\n defaultFontSize,\n dataLabelEffect,\n isHighContrast,\n getTextDimensions\n}: Props) {\n let markerLabel: VNode | null = null;\n const position = labelPosition ? labelPosition : DEFAULT_POSITION;\n const { dataLabelStyle, dataLabelContrast, highContrastLabelStyle } = styles;\n const labelString = label;\n\n if (position && labelString) {\n const markerLabelStyle = {\n fontSize: defaultFontSize,\n ...updateVisTextStyleProperties(labelStyle)\n };\n\n const labelDims = getTextDimensions?.(labelString, markerLabelStyle);\n const { x, y } = getLabelPosition(position, tx, ty, labelDims);\n markerLabel = (\n <text\n x={x}\n y={y}\n class={classNames([\n dataLabelStyle,\n dataLabelEffect === 'outline' ? dataLabelContrast : '',\n isHighContrast ? highContrastLabelStyle : ''\n ])}\n style={markerLabelStyle}>\n {labelString}\n </text>\n );\n }\n return markerLabel;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ColorProps } from '#utils/UNSAFE_interpolations/colors';\nimport { getCmdsForLine } from '#utils/PRIVATE_chartUtils/utils';\nimport { Point } from '#utils/PRIVATE_visSVGUtils';\nimport { rgba } from '#UNSAFE_Theme';\nimport { colorSchemeVars } from '#Common/themes/themeContract.css';\nimport { styles } from '#PRIVATE_Chart/themes/ChartStyles.css';\nimport { Property } from 'csstype';\n\ntype LineSeriesProps = {\n color: ColorProps['color'];\n lineStyle?: 'dotted' | 'dashed' | 'solid';\n lineColor?: Property.Color;\n lineWidth?: number;\n lineType?: 'straight' | 'curved';\n isHorizontal: boolean;\n lineSegmentCoords: Point[][];\n isHighlighted: boolean;\n seriesIndex: number;\n};\n\nexport function LineSeries({\n color,\n isHorizontal,\n lineType = 'straight',\n lineColor,\n lineStyle,\n lineWidth = 3,\n isHighlighted,\n lineSegmentCoords,\n seriesIndex\n}: LineSeriesProps) {\n const style = {\n stroke: lineColor || color,\n strokeDasharray: lineStyle === 'dotted' ? 3 : lineStyle === 'dashed' ? 6 : undefined,\n strokeWidth: lineWidth,\n fill: rgba(colorSchemeVars.palette.neutral[0], 0)\n };\n\n return (\n <>\n {lineSegmentCoords.map((value: Point[]) => {\n if (value.length < 2) {\n return;\n }\n const cmds = getCmdsForLine(value, lineType, isHorizontal);\n return lineType === 'straight' ? (\n <polyline\n points={cmds}\n style={style}\n className={isHighlighted ? undefined : styles.dimmed}\n data-oj-series-index={seriesIndex}\n data-oj-object={'line'}\n />\n ) : (\n <path\n d={cmds}\n style={style}\n className={isHighlighted ? undefined : styles.dimmed}\n data-oj-series-index={seriesIndex}\n data-oj-object={'line'}\n />\n );\n })}\n </>\n );\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * Licensed under The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { ColorProps } from '#utils/UNSAFE_interpolations/colors';\nimport { LineAreaItem } from '#UNSAFE_LineAreaChart/lineAreaChart.types';\nimport { Marker, MARKER_PADDING } from '#PRIVATE_SvgShapes';\nimport { MarkerShapes } from '#utils/UNSAFE_visTypes/common';\nimport { getGroupCenterCoord } from '#utils/PRIVATE_chartUtils/layoutUtils';\nimport { ChartSeriesData, Scale, Group } from '#utils/UNSAFE_visTypes/chart';\nimport { getMarkerFillAndStroke } from '#utils/PRIVATE_chartUtils/utils';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\nimport { getItemAriaLabel } from '#utils/PRIVATE_chartUtils/accUtils';\nimport { supportsMobileScreenReader } from '#utils/UNSAFE_visUtils';\nimport { MarkerLabel } from './MarkerLabel';\nimport { styles } from '#PRIVATE_Chart/themes/ChartStyles.css';\nimport { Dimension } from '#utils/UNSAFE_visTypes/common';\nimport { Font } from '#hooks/PRIVATE_useTextDimensions';\nimport { ScatterItem } from '#UNSAFE_ScatterChart/scatterChart.types';\n\nconst MARKER_DEFAULT_SIZE = 10;\ntype MarkersProps<K, D> = {\n yScale: Scale;\n xScale: Scale;\n startIndex: number;\n endIndex: number;\n seriesIndex: number;\n series: ChartSeriesData<K, D>;\n markerType: MarkerShapes;\n color: ColorProps['color'];\n groups: Group[];\n focusedItemIndex?: number;\n isSelectionEnabled: boolean;\n hoveredItemIndex?: number;\n selectedIds?: Set<string | number>;\n hiddenIds?: Set<string | number>;\n highlightedIds?: Set<string | number>;\n activeId?: string;\n orientation: 'horizontal' | 'vertical';\n isDrillEnabled: boolean;\n isLog: boolean;\n isPointInsideMarquee: ((id: K, point: { x: number; y: number }) => boolean) | undefined;\n getDataItem: (seriesIndex: number, groupIndex: number) => D | undefined;\n timeAxisType?: 'enabled' | 'skipGaps' | 'mixedFrequency';\n defaultFontSize: string;\n dataLabelEffect: 'outline' | 'none';\n isHighContrast: boolean;\n isTestEnv?: boolean;\n isDataXAxis?: boolean;\n getTextDimensions?: (text: string, style: Font) => Dimension;\n};\n\nexport function MarkersWithLabel<\n K extends string | number,\n D extends LineAreaItem<K> | ScatterItem<K>\n>({\n yScale,\n xScale,\n color,\n seriesIndex,\n startIndex,\n endIndex,\n hiddenIds,\n selectedIds,\n highlightedIds,\n orientation,\n isLog,\n markerType,\n getDataItem,\n focusedItemIndex,\n hoveredItemIndex,\n isDrillEnabled,\n activeId,\n isSelectionEnabled,\n timeAxisType,\n isPointInsideMarquee,\n series,\n groups,\n defaultFontSize,\n dataLabelEffect,\n isHighContrast,\n isTestEnv,\n isDataXAxis,\n getTextDimensions\n}: MarkersProps<K, D>) {\n const isHoriz = orientation === 'horizontal';\n const items = [];\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n for (let groupIndex = startIndex; groupIndex < endIndex + 1; groupIndex++) {\n const item = getDataItem(seriesIndex, groupIndex);\n if (!item || hiddenIds?.has(item.id)) {\n continue;\n }\n let x, y;\n const itemHasValue = 'value' in item;\n if (isDataXAxis && 'y' in item) {\n x = xScale.transform(item.x);\n y = yScale.transform(item.y);\n } else {\n const value = itemHasValue ? item?.value : undefined;\n if (value == null || (isLog && value <= 0)) {\n continue;\n }\n x = isHoriz\n ? yScale.transform(value)\n : getGroupCenterCoord<K, D>(groups[groupIndex], groupIndex, xScale, item, timeAxisType);\n y = isHoriz\n ? getGroupCenterCoord<K, D>(groups[groupIndex], groupIndex, xScale, item, timeAxisType)\n : yScale.transform(value);\n }\n const isFocused = focusedItemIndex === groupIndex;\n const isHovered = hoveredItemIndex === groupIndex;\n const isSelected = !!(selectedIds?.has(item.id!) || isPointInsideMarquee?.(item.id, { x, y })); // TODO: tagcloud has isItemSelected we should look to leverage here\n const isDrillable = item.drilling === 'on' || (item.drilling != 'off' && isDrillEnabled);\n const isHighlighted =\n !highlightedIds || highlightedIds?.size === 0 || highlightedIds?.has(item.id); // TODO: tagcloud has isItemHighlighted we should look to leverage here\n const { fill, stroke, outerStroke } = getMarkerFillAndStroke(\n !!item.isMarkerDisplayed,\n isSelectionEnabled,\n isHovered,\n isFocused,\n isSelected,\n color,\n item.markerColor\n );\n const itemMarkerType = item.isMarkerDisplayed ? item.markerType || markerType : markerType;\n const isActive = isFocused || isHovered;\n const ariaLabel =\n supportsMobileScreenReader || isActive\n ? getItemAriaLabel(\n translations,\n series.name || series.id.toString(),\n groups[groupIndex].name || groups[groupIndex].id,\n isSelectionEnabled,\n isSelected,\n isDrillable,\n item.accessibleLabel,\n itemHasValue ? item.value : undefined,\n item.x,\n 'y' in item ? item.y : undefined\n )\n : undefined;\n\n const dataInfo = {\n 'data-oj-series-index': seriesIndex,\n 'data-oj-group-index': groupIndex,\n 'data-oj-object': 'item',\n id: isActive ? activeId : undefined,\n role: ariaLabel ? 'img' : undefined,\n 'aria-label': ariaLabel,\n 'data-oj-private-item-id': isTestEnv ? item.id : undefined\n };\n\n const markerSize = (item.markerSize || MARKER_DEFAULT_SIZE) + 2 * MARKER_PADDING;\n items.push(\n <>\n <Marker\n type={itemMarkerType}\n tx={x}\n ty={y}\n isInteractive={isDrillable || isSelectionEnabled}\n scale={1}\n fill={fill}\n stroke={stroke}\n outerStroke={outerStroke}\n width={markerSize}\n height={markerSize}\n dataInfo={dataInfo}\n preserveRectAspectRatio\n styleClass={isHighlighted ? undefined : styles.dimmed}\n />\n <MarkerLabel\n labelPosition={item.labelPosition}\n label={item.label}\n labelStyle={item.labelStyle}\n tx={x}\n ty={y}\n defaultFontSize={defaultFontSize}\n dataLabelEffect={dataLabelEffect}\n isHighContrast={isHighContrast}\n getTextDimensions={getTextDimensions}\n />\n </>\n );\n }\n return <>{items}</>;\n}\n"],"names":["DEFAULT_POSITION","MarkerLabel","labelPosition","label","labelStyle","tx","ty","defaultFontSize","dataLabelEffect","isHighContrast","getTextDimensions","markerLabel","position","dataLabelStyle","dataLabelContrast","highContrastLabelStyle","styles","labelString","markerLabelStyle","fontSize","updateVisTextStyleProperties","labelDims","x","y","getLabelPosition","_jsx","class","classNames","style","color","isHorizontal","lineType","lineColor","lineStyle","lineWidth","isHighlighted","lineSegmentCoords","seriesIndex","stroke","strokeDasharray","undefined","strokeWidth","fill","rgba","colorSchemeVars","palette","neutral","map","value","length","cmds","getCmdsForLine","jsx","points","className","dimmed","d","yScale","xScale","startIndex","endIndex","hiddenIds","selectedIds","highlightedIds","orientation","isLog","markerType","getDataItem","focusedItemIndex","hoveredItemIndex","isDrillEnabled","activeId","isSelectionEnabled","timeAxisType","isPointInsideMarquee","series","groups","isTestEnv","isDataXAxis","isHoriz","items","translations","useTranslationBundle","groupIndex","item","has","id","itemHasValue","transform","getGroupCenterCoord","isFocused","isHovered","isSelected","isDrillable","drilling","size","outerStroke","getMarkerFillAndStroke","isMarkerDisplayed","markerColor","itemMarkerType","isActive","ariaLabel","supportsMobileScreenReader","getItemAriaLabel","name","toString","accessibleLabel","dataInfo","role","markerSize","MARKER_PADDING","push","_jsxs","jsxs","_Fragment","Fragment","children","Marker","type","isInteractive","scale","width","height","preserveRectAspectRatio","styleClass"],"mappings":"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"}
|
package/amd/Link-c4a57187.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', './classNames-08d99695', './usePressClick-b7b38da2', './useComponentTheme-5aa41a8f', './useInteractionStyle-76a64325', './UNSAFE_Link/themes/redwood/LinkTheme', './TabbableModeContext-a9c97640', './useTabbableMode-dc440317', './useTestId-
|
|
1
|
+
define(['exports', 'preact/jsx-runtime', './classNames-08d99695', './usePressClick-b7b38da2', './useComponentTheme-5aa41a8f', './useInteractionStyle-76a64325', './UNSAFE_Link/themes/redwood/LinkTheme', './TabbableModeContext-a9c97640', './useTabbableMode-dc440317', './useTestId-b5cd4766'], (function(e,s,a,t,n,o,r,d,i,l){"use strict";const b=()=>{};e.Link=function({href:e,variant:d,placement:c="standalone",target:u,testId:p,"aria-describedby":v,"aria-label":m,"aria-labelledby":y,children:T,onClick:h,isDisabled:H}){const{interactionProps:k,applyPseudoHoverStyle:P,applyHoverStyle:f}=o.useInteractionStyle(),{classes:C}=n.useComponentTheme(r.LinkRedwoodTheme,{needsEventsHover:f?"isNeedsEventsHover":"notNeedsEventsHover",pseudoHover:P?"isPseudoHover":"notPseudoHover",variant:d,placement:c,disabled:H?"isDisabled":"notDisabled"}),{isTabbable:I}=i.useTabbableMode(),x=a.classNames([C]),{pressProps:N}=t.usePressClick(h??b),S=l.useTestId(p);return s.jsx("a",{tabIndex:I&&!H?0:-1,href:H?void 0:e,"aria-describedby":v,"aria-label":m,"aria-labelledby":y,target:u,...!H&&N,...k,...S,class:x,children:T})}}));
|
|
2
2
|
//# sourceMappingURL=Link-c4a57187.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
define(['exports', 'preact/jsx-runtime', 'preact/hooks', './classNames-08d99695', './mergeProps-bcfa6a92', './keys-4755c121', './LoadMoreCollection-83413a59', './VirtualizedCollection-897516a5', 'preact/compat', './TabbableModeContext-a9c97640', './useId-c9578d26', './FocusTrap-60520575', './useInteractionStyle-76a64325', './mergeInterpolations-9ede4cf7', './flexitem-5db48325', './PRIVATE_List/themes/ListStyles.css', './collectionUtils-17f5cc64', './Skeleton-5839404b', './Flex-3421f0df', './Selector-2b0c34a7', './ImageVars.css-17386400', './useTheme-a8334e06', './useTestId-b5cd4766', './CollectionInteractionContext-0b4ed98b', './useCollectionInteractionContext-f345e8f7', 'preact', './useSelection-4249360e', './useDropDownSelection-c946783d', './useCurrentKey-a993db56', './useCollectionFocusRing-66a6fc12', './useItemAction-821d1b6e', './useTabbableModeSet-dc176f1d', './useReorderableContext-a5453bd7', './Inset-a34e9c57', 'module'], (function(e,t,n,i,s,r,o,l,a,c,d,u,g,f,m,b,y,p,v,h,x,S,k,C,I,w,K,P,T,R,V,j,A,E,F){"use strict";const M=e=>{switch(e){case"listbox":return{list:"listbox",item:"presentation",cell:"option"};case"treegrid":return{list:"treegrid",item:"row",cell:"gridcell"};default:return{list:"grid",item:"row",cell:"gridcell"}}},L="[data-oj-key]";function D({children:e,context:s,itemDepth:r,isFocused:o,isFocusRingVisible:l,isActive:a,isGridlineVisible:y,isSelected:p,isTopGridlineVisible:v=!1,isTabbable:h=!1,role:x,selectionMode:S,suggestion:k,currentItemVariant:C,padding:I}){const w=n.useRef(null),K=n.useMemo((()=>M(x)),[x]),P=s.metadata.key,T=s.index,R="option"===K.cell?{role:K.cell,"aria-posinset":T+1,"aria-setsize":-1}:{role:K.cell},{interactionProps:V,applyActiveStyle:j,applyHoverStyle:A,applyPseudoHoverStyle:E}=g.useInteractionStyle(),F=b.listItemMultiVariantStyles({selectable:H(S,p)?"isSelectable":"notSelectable",selected:p?"isSelected":"notSelected",selectedSingle:p&&"single"===S?"isSelectedSingle":"notSelectedSingle",needsEventsHover:A?"isNeedsEventsHover":"notNeedsEventsHover",pseudoHover:E?"isPseudoHover":"notPseudoHover",active:j||a?"isActive":"notActive",focusHighlight:"highlight"===C&&o?"isFocusHighlight":"notFocusHighlight",focusRingVisible:l&&o?"isFocusRingVisible":"notFocusRingVisible",gridlineTop:v?"visible":"hidden",gridlineBottom:!y&&("end"!==k||y||p&&"single"===S)?"hidden":"visible"}),L=[];I&&("enabled"===I?L.push(b.paddingStyles.allPadding):"disabled"!==I&&("enabled"===I.top&&L.push(b.paddingStyles.topItemPadding),"enabled"===I.bottom&&L.push(b.paddingStyles.bottomItemPadding),"enabled"===I.start&&L.push(b.paddingStyles.startItemPadding),"enabled"===I.end&&L.push(b.paddingStyles.endItemPadding)));const D=i.classNames([F,...L]),z=f.mergeInterpolations([...Object.values(m.flexitemInterpolations)]),{class:N,...O}=z({flex:"1 1 auto",alignSelf:"center"}),G=i.classNames([N,"multiple"===S&&b.listItemStyles.checkboxContainer]);return t.jsx("div",{"aria-rowindex":"grid"===x?T+1:void 0,"aria-level":r,"data-oj-key":P,class:D,ref:w,role:K.item,...k&&{"data-oj-suggestion":!0},..."number"==typeof P&&{"data-oj-key-type":"number"},...V,children:t.jsx("div",{id:d.useId(),style:O,class:G,"aria-posinset":"grid"===x?void 0:T+1,"aria-setsize":"grid"===x?void 0:-1,onKeyDown:e=>{!h||"ArrowDown"!==e.key&&"ArrowUp"!==e.key||e.stopPropagation()},"aria-colindex":"grid"===x?1:void 0,"aria-selected":"none"!==S?p:void 0,...R,children:t.jsx(c.TabbableModeContext.Provider,{value:{isTabbable:h},children:t.jsx(u.FocusTrap,{isDisabled:!h,restoreFocusRef:!1,children:e(s)})})})})}const H=(e,t)=>"none"!==e&&("multiple"===e||!t),z=a.memo(D,((e,t)=>!(!e||!t)&&(e.children===t.children&&e.isFocused===t.isFocused&&e.isFocusRingVisible===t.isFocusRingVisible&&e.isSelected===t.isSelected&&e.isTabbable===t.isTabbable&&e.isActive===t.isActive&&e.suggestion===t.suggestion&&e.isGridlineVisible===t.isGridlineVisible&&e.isTopGridlineVisible===t.isTopGridlineVisible&&e.padding===t.padding&&y.compareListItemContext(e.context,t.context))));function N({children:e,minimumCount:s=1}){const[r,o]=n.useState(!1);n.useEffect((()=>{setTimeout((()=>{o(!0)}),50)}),[]);const l=i.classNames([b.skeletonStyles.container]);return r&&e?t.jsx("div",{class:l,role:"presentation",children:[...Array(s)].map(((t,n)=>e(n)))}):null}const O="oj-collection-sparkle";function G({sparkleHeight:e}){const{name:n}=S.useTheme();if(e<=0)return null;const s=e+"px",r=i.classNames([b.sparkleStyles.base]),o=i.classNames([b.sparkleStyles.container,O,"redwood"===n&&x.globalImages]);return t.jsx("div",{class:o,children:t.jsx("div",{class:r,style:{height:s}})},"sparkle")}const B=(e,t)=>{if(0===t)return null;return e.slice(0,t).reduce(((e,n,i)=>{const s=n.metadata.key;return i===t-1?e.set(s,"end"):e.set(s,!0),e}),new Map)},_=(e,t,n)=>{if(e&&t&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded():e.scrollIntoView({block:"nearest"}),n>0)){const i=t.getBoundingClientRect(),s=e.getBoundingClientRect(),r=i.top+n-s.top;r>0&&(t.scrollTop=t.scrollTop-r)}},U=(e,t)=>{const n=t.data.map((e=>e.metadata.key)),i=n.indexOf(e.value.start),s=n.indexOf(e.value.end),r=Math.min(i,s),o=Math.max(i,s);return-1===r?{offset:0,count:t.totalSize}:n.slice(r,o+1)},q=e=>!(!e.parentElement||!e.parentElement.classList.contains("oj-listview-expander"));const Y=(e,t)=>t??{scroller:()=>e.current},$={all:!1,keys:new Set},J=t.jsx(N,{minimumCount:25,children:()=>t.jsx(E.Inset,{variant:"listview",children:t.jsx(v.Flex,{height:"6x",align:"center",children:t.jsx(p.Skeleton,{height:"4x"})})})}),Q=t.jsx("div",{class:o.LOADMORE_STYLE_CLASS,children:t.jsx(N,{minimumCount:3,children:()=>t.jsx(E.Inset,{variant:"listview",children:t.jsx(v.Flex,{height:"6x",align:"center",children:t.jsx(p.Skeleton,{height:"4x"})})})})}),W=(e,t)=>{if(t){const n=Math.min(t.offset,e.offset+e.totalSize),i=n-e.offset;i>0&&(e={offset:n,data:e.data.slice(i,i+t.count),totalSize:e.totalSize,sizePrecision:e.sizePrecision})}return e};e.List=function({"aria-label":e,"aria-labelledby":a,allowTabbableMode:c=!0,children:d,data:u,gridlines:g,loadingIndicator:f=J,currentItemOverride:m,onPersistCurrentItem:p,onLoadRange:v,onSelectionChange:x,onItemAction:S,rangeExtractor:C,role:w="grid",selectedKeys:E=$,selectionMode:F="none",viewportConfig:H,currentItemVariant:N,promotedSection:O,isVirtualized:X=!1,customItemRenderer:Z,scrollToVisibleOffset:ee,testId:te,scrollerRef:ne,reorderProps:ie,contextMenuTriggerProps:se,itemPadding:re,...oe}){const le=n.useRef(null),ae=n.useRef(!1),ce=n.useRef(),[de,ue]=n.useState(!1),ge="none"===F?void 0:"multiple"===F,fe=null===u?void 0:"exact"===u.sizePrecision?u.totalSize:-1,me=i.classNames([b.listStyles.base]),be="embedded"===I.useCollectionInteractionContext(),ye=void 0!==N?N:be?"highlight":"none",pe=n.useCallback(((e,t)=>{u&&(ce.current={detail:e,range:{offset:u.offset,count:u.data.length}},v(t))}),[u,v]),ve=n.useRef({offset:0,count:0}),he=n.useCallback((e=>{ae.current&&ve.current.offset===e.offset&&ve.current.count===e.count||(ae.current=!0,ve.current=e,v(e))}),[ae,v]);n.useEffect((()=>{ae.current=!1}),[u]);const{currentKey:xe,onCurrentKeyChange:Se,isCurrentItemOverridden:ke}=((e,t)=>{const[i,s]=n.useState(),r=n.useRef(),o=n.useRef(!1),l=A.useReorderableContext(),a=n.useMemo((()=>e=>{const n=e.value;s({rowKey:n}),t?.(e),null!=l?.currentItemKey&&(l.currentItemKey.current=n)}),[t,l?.currentItemKey]);return r.current!==e&&(r.current=e,i?.rowKey!==e?.rowKey&&(o.current=!0,a({value:e?.rowKey}))),n.useEffect((()=>{o.current=!1})),{currentKey:i?.rowKey,onCurrentKeyChange:a,isCurrentItemOverridden:o.current}})(m,p),{eventProps:Ce,showFocusRing:Ie,handleSelectionChange:we}=((e,t,i="none",o,l,a,c,d,u="grid",g,f,m,b,p)=>{const v=n.useMemo((()=>M(u)),[u]),h=n.useRef(),{currentKeyProps:x}=T.useCurrentKey((e=>y.keyExtractor(e,L)),"multiple"!==i||p,y.getPrevNextKey(f.current,e,!0,L),y.getPrevNextKey(f.current,e,!1,L),void 0,void 0,e,o),[S,k]=R.useCollectionFocusRing(f,["ArrowUp","ArrowDown"]);n.useEffect((()=>{if(null!=e&&f.current){const t=y.findElementByKey(f.current,e,L);if(t){const e=f.current.getAttribute("aria-activedescendant"),n=t.querySelector(`[role=${v.cell}]`);if(n&&e!==n.id){f.current.setAttribute("aria-activedescendant",n.id);const e=f.current?.contains(document.activeElement);if(!b&&e||p){const e=d?.scroller(),n=g?g(f.current):0;_(t,null!=e?e:f.current,n)}}}}}),[e,c,v.cell,d,g,f,b,p]);const C=n.useCallback((e=>{l&&(!1===e.value.all&&e.value.keys.size>0&&(h.current=Array.from(e.value.keys.values()).pop()),l(e))}),[h,l]),I=n.useCallback((e=>{if(c&&l){const n=U(e,c);if(Array.isArray(n))if("shiftSpace"===e.eventType?h.current=e.value.start:h.current=e.value.end,p){const e=r.addKeys(t,n);l({value:e,target:null})}else l({value:{all:!1,keys:new Set(n)},target:null});else m(e,n)}}),[c,p,t,l,m]),{selectionProps:w}=K.useSelection((t=>t===f.current?void 0===e?null:e:y.keyExtractor(t,L)),t,p?"none":i,!1,"replace",C,h.current,e,((e,t)=>y.getPrevNextKey(f.current,e,t,L)),void 0,(e=>{if(f.current){const t=y.findElementByKey(f.current,e,L);if(t){const e=d?.scroller(),n=g?g(f.current):0;_(t,null!=e?e:f.current,n)}}}),I),{dropDownSelectionProps:j}=P.useDropDownSelection((t=>t===f.current?void 0===e?null:e:y.keyExtractor(t,L)),t,p?i:"none",!1,(e=>c?c.data.findIndex((t=>t.metadata.key===e)):-1),((e,t)=>c?c.data.map((e=>e.metadata.key)).slice(e,t):[]),((e,t)=>y.getPrevNextKey(f.current,e,t,L)),e,C,I),A=V.useItemAction(e,c,a,L,p);return{eventProps:s.mergeProps(x,k,w,A,j),showFocusRing:S,handleSelectionChange:C}})(xe,E,F,Se,x,S,u,H,w,ee,le,pe,ke,be),{eventProps:Ke,isCurrentTabbableKey:Pe}=((e,t,i,o,l,a)=>{const c=n.useRef(),d=n.useRef(!0),[u,g]=j.useTabbableModeSet(o,(e=>q(e)?null:y.keyExtractor(e,L)),e,t),f=n.useCallback((()=>{if(o.current&&t&&(!i||u(void 0))){const e=c.current||y.getFirstVisibleKey(o.current,L);r.isKeyDefined(e)&&t({value:e})}}),[o,t,i,u]),m=n.useCallback((n=>{if(q(n.target)){o.current?.focus();const e=y.keyExtractor(n.target,L);t&&r.isKeyDefined(e)&&t({value:e})}else if(r.isKeyDefined(e)){if(o.current){const n=y.findElementByKey(o.current,e,L);if(n){if(d.current){const e=l?.scroller(),t=a?a(o.current):0;_(n,null!=e?e:o.current,t)}d.current=!0}else t&&f()}}else t&&f()}),[e,f,t,a,l,o]),b=n.useCallback((t=>{const n=y.keyExtractor(t.target,L);r.isKeyDefined(n)&&(c.current=n,n!==e&&(d.current=!1))}),[e]);return{eventProps:s.mergeProps(i?g:{},{onFocus:m,onPointerDown:b}),isCurrentTabbableKey:u}})(xe,Se,c,le,H,ee);if(u&&void 0!==ce.current&&x){const e=U(ce.current.detail,u);if(Array.isArray(e))if(be){x({value:r.addKeys(E,e),target:null})}else x({value:{all:!1,keys:new Set(e)},target:null});const t=ce.current?ce.current.range:{offset:u.offset,count:u.data.length};u=W(u,t),ce.current=void 0,v(t)}const{sparkleHeight:Te,suggestions:Re}=((e,t,i)=>{const[s,r]=n.useState(0),o=n.useMemo((()=>e&&t&&B(e.data,t.count)),[e,t]);return n.useEffect((()=>{if(o){const e=i.current?.querySelector("."+l.PLACEHOLDER_STYLE_CLASS);let t=e?.offsetHeight||0;const n=i.current?.querySelectorAll("[data-oj-suggestion]");n?.forEach((e=>t+=e.offsetHeight)),r(t)}}),[i,o]),{sparkleHeight:s,suggestions:o}})(u,O,le),Ve=t.jsx(G,{sparkleHeight:Te}),je=n.useCallback((e=>{const n=e.data,i="multiple"===F?()=>t.jsx(h.Selector,{onChange:we,rowKey:n.metadata.key,selectedKeys:E}):void 0;return{index:e.index,data:n.data,metadata:n.metadata,selector:i}}),[F,E,we]),Ae=X?D:z,Ee=e=>{const n=je(e),i=Re?.get(n.metadata.key),s=c&&Pe(n.metadata.key),o=xe===n.metadata.key&&!s,l=o&&de,a=r.containsKey(E,n.metadata.key),f=o&&Ie,m=(e,s)=>{return t.jsx(Ae,{context:e,isFocused:o,isFocusRingVisible:f,isActive:l,isGridlineVisible:(r=n.index,"visible"===g?.item&&(r+1!==u?.totalSize||"visible"===g?.bottom)),isSelected:a,isTabbable:c&&Pe(n.metadata.key),role:w,selectionMode:F,currentItemVariant:ye,padding:re,...i&&{suggestion:i},...0===n.index&&{isTopGridlineVisible:"visible"===g?.item&&"visible"===g?.top},...s,children:d},n.metadata.key);var r};if(Z){return Z({listItemContext:n,isFocused:o,isFocusRingVisible:f,isSelected:a,isTabbable:s,isActive:l,defaultListItem:m})}return m(n)};H=Y(le,H);const Fe=n.useCallback((e=>{" "===e.key&&r.isKeyDefined(xe)&&"none"!==F&&ue(!0)}),[xe,F,ue]),Me=n.useCallback((()=>{ue(!1)}),[ue]);n.useImperativeHandle(ne,(()=>le.current));const Le=k.useTestId(te);return t.jsx("div",{...s.mergeProps(Ce,Ke,se||{},ie||{},{onKeyDown:Fe,onKeyUp:Me},oe),...Le,role:w,"aria-rowcount":"grid"===w?fe:void 0,"aria-colcount":"grid"===w?1:void 0,ref:le,class:me,tabIndex:0,"aria-label":e,"aria-labelledby":a,"aria-multiselectable":ge,children:null==u?f:X?t.jsx(l.VirtualizedCollection,{data:u,itemSelector:L,loadMoreIndicator:Q,onLoadRange:v,rangeExtractor:C,suggestions:Ve,viewportConfig:H,children:Ee}):t.jsx(o.LoadMoreCollection,{data:u.data,loadMoreIndicator:Q,hasMore:"atLeast"===u.sizePrecision&&u.data.length<=u.totalSize,onLoadMore:()=>{u&&he({offset:0,count:u.data.length+25})},suggestions:Ve,viewportConfig:H,children:Ee})})},e.SkeletonContainer=N,e.excludeGroup=(e,t)=>{if(!t.all){const n=e.data.filter((e=>!e.metadata.isLeaf)).map((e=>e.metadata.key)),i=Array.from(t.keys.values()).filter((e=>!n.includes(e)));return{...t,keys:new Set(i)}}return t},e.scrollToVisible=_}));
|
|
2
|
+
//# sourceMappingURL=List-0b764e84.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List-04c4fed0.js","sources":["../../src/PRIVATE_List/ListRoles.ts","../../src/PRIVATE_List/ListItem.tsx","../../src/PRIVATE_List/SkeletonContainer.tsx","../../src/PRIVATE_List/Sparkle.tsx","../../src/PRIVATE_List/usePromotedSection.ts","../../src/PRIVATE_List/ListUtils.ts","../../src/PRIVATE_List/useSelectionAndNavigation.ts","../../src/PRIVATE_List/useFocusTabbableMode.ts","../../src/PRIVATE_List/List.tsx","../../src/PRIVATE_List/useCurrentItemOverride.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { Roles } from '../UNSAFE_ListView';\nimport { HTMLAttributesSignalExcluded } from '../utils/UNSAFE_attributeUtils';\n\n/**\n * List Roles need to be kept in matching sets, this module encapsulates the sets\n *\n * @param ariaRole\n * @returns matching, valid set of roles\n */\n\nconst getListViewRoles = (\n ariaRole: Roles\n): {\n list: HTMLAttributesSignalExcluded['role'];\n item: HTMLAttributesSignalExcluded['role'];\n cell: HTMLAttributesSignalExcluded['role'];\n} => {\n switch (ariaRole) {\n case 'listbox':\n return { list: 'listbox', item: 'presentation', cell: 'option' };\n case 'treegrid':\n return { list: 'treegrid', item: 'row', cell: 'gridcell' };\n default:\n return { list: 'grid', item: 'row', cell: 'gridcell' };\n }\n};\n\nexport { getListViewRoles };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport { useRef, useMemo } from 'preact/hooks';\nimport { memo } from 'preact/compat';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { TabbableModeContext } from '../hooks/UNSAFE_useTabbableMode';\nimport { SelectionMode, CurrentItemVariant, ListItemRendererContext } from '../UNSAFE_Collection';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { Roles, ItemPadding } from '../UNSAFE_ListView';\nimport { getListViewRoles } from './ListRoles';\nimport { useInteractionStyle } from '../hooks/UNSAFE_useInteractionStyle';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { flexitemInterpolations } from '../utils/UNSAFE_interpolations/flexitem';\nimport type { FlexitemProps } from '../utils/UNSAFE_interpolations/flexitem';\nimport { listItemStyles, listItemMultiVariantStyles, paddingStyles } from './themes/ListStyles.css';\nimport { compareListItemContext } from '../utils/PRIVATE_collectionUtils';\n\nexport const ITEM_SELECTOR = '[data-oj-key]';\n\n/**\n * Props for the ListViewItem Component\n */\nexport type Props<K, D> = {\n children: (context: ListItemRendererContext<K, D>) => ComponentChildren;\n context: ListItemRendererContext<K, D>;\n itemDepth?: number;\n isFocused: boolean;\n isFocusRingVisible: boolean;\n isActive: boolean;\n isGridlineVisible: boolean;\n isSelected: boolean;\n isTopGridlineVisible?: boolean;\n isTabbable?: boolean;\n role: Roles;\n selectionMode: SelectionMode;\n suggestion?: 'end' | true;\n currentItemVariant?: CurrentItemVariant;\n padding?: 'enabled' | 'disabled' | ItemPadding;\n};\n\n/**\n * The internal component used to render a single item in ListView.\n */\nexport function ListViewItem<K extends string | number, D>({\n children,\n context,\n itemDepth,\n isFocused,\n isFocusRingVisible,\n isActive,\n isGridlineVisible,\n isSelected,\n isTopGridlineVisible = false,\n isTabbable = false,\n role,\n selectionMode,\n suggestion,\n currentItemVariant,\n padding\n}: Props<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const roles = useMemo(() => getListViewRoles(role), [role]);\n const itemKey = context.metadata.key;\n const itemIndex = context.index;\n\n // some roles come with related aria attributes which need to be set\n const cellRoleAttributes =\n roles.cell === 'option'\n ? {\n role: roles.cell,\n 'aria-posinset': itemIndex + 1,\n 'aria-setsize': -1\n }\n : {\n role: roles.cell\n };\n\n // don't bubble Arrow Up and Down events to parent when in isTabbable mode\n // this bubbling causes the outer CollectionFocus ring to change index while in the isTabbable mode.\n const handleKeyDown = (event: KeyboardEvent) => {\n if (isTabbable && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {\n event.stopPropagation();\n }\n };\n\n const { interactionProps, applyActiveStyle, applyHoverStyle, applyPseudoHoverStyle } =\n useInteractionStyle();\n\n const variantClasses = listItemMultiVariantStyles({\n selectable: isSelectable(selectionMode, isSelected) ? 'isSelectable' : 'notSelectable',\n selected: isSelected ? 'isSelected' : 'notSelected',\n selectedSingle:\n isSelected && selectionMode === 'single' ? 'isSelectedSingle' : 'notSelectedSingle',\n needsEventsHover: applyHoverStyle ? 'isNeedsEventsHover' : 'notNeedsEventsHover',\n pseudoHover: applyPseudoHoverStyle ? 'isPseudoHover' : 'notPseudoHover',\n active: applyActiveStyle || isActive ? 'isActive' : 'notActive',\n focusHighlight:\n currentItemVariant === 'highlight' && isFocused ? 'isFocusHighlight' : 'notFocusHighlight',\n focusRingVisible:\n isFocusRingVisible && isFocused ? 'isFocusRingVisible' : 'notFocusRingVisible',\n gridlineTop: isTopGridlineVisible ? 'visible' : 'hidden',\n gridlineBottom:\n isGridlineVisible ||\n (suggestion === 'end' && !isGridlineVisible && (!isSelected || selectionMode !== 'single'))\n ? 'visible'\n : 'hidden'\n });\n const paddingClasses = [];\n if (padding) {\n if (padding === 'enabled') {\n paddingClasses.push(paddingStyles.allPadding);\n } else if (padding !== 'disabled') {\n if (padding.top === 'enabled') {\n paddingClasses.push(paddingStyles.topItemPadding);\n }\n if (padding.bottom === 'enabled') {\n paddingClasses.push(paddingStyles.bottomItemPadding);\n }\n if (padding.start === 'enabled') {\n paddingClasses.push(paddingStyles.startItemPadding);\n }\n if (padding.end === 'enabled') {\n paddingClasses.push(paddingStyles.endItemPadding);\n }\n }\n }\n\n const classes = classNames([variantClasses, ...paddingClasses]);\n const styleInterpolations = mergeInterpolations<FlexitemProps>([\n ...Object.values(flexitemInterpolations)\n ]);\n const { class: cls, ...cellStyles } = styleInterpolations({\n flex: '1 1 auto',\n alignSelf: 'center'\n });\n const cellClasses = classNames([\n cls,\n selectionMode === 'multiple' && listItemStyles.checkboxContainer\n ]);\n\n // todo: use translated text for selector\n // note cannot put focus on gridcell div since JAWS will not read the aria-rowindex\n // correctly, so unfortunately needed another div\n return (\n <div\n aria-rowindex={role === 'grid' ? itemIndex + 1 : undefined}\n aria-level={itemDepth}\n data-oj-key={itemKey}\n class={classes}\n ref={rootRef}\n role={roles.item}\n {...(suggestion && { 'data-oj-suggestion': true })}\n {...(typeof itemKey === 'number' && { 'data-oj-key-type': 'number' })}\n {...interactionProps}>\n <div\n id={useId()}\n style={cellStyles}\n class={cellClasses}\n aria-posinset={role === 'grid' ? undefined : itemIndex + 1}\n aria-setsize={role === 'grid' ? undefined : -1}\n onKeyDown={handleKeyDown}\n aria-colindex={role === 'grid' ? 1 : undefined}\n aria-selected={selectionMode !== 'none' ? isSelected : undefined}\n {...cellRoleAttributes}>\n <TabbableModeContext.Provider value={{ isTabbable }}>\n <FocusTrap isDisabled={!isTabbable} restoreFocusRef={false}>\n {children(context)}\n </FocusTrap>\n </TabbableModeContext.Provider>\n </div>\n </div>\n );\n}\n\n/**\n * Helper method to determine whether item is selectable\n * @returns true if item is selectable (show hover effect), false otherwise\n */\nconst isSelectable = (selectionMode: SelectionMode, isItemSelected: boolean) => {\n return selectionMode !== 'none' && (selectionMode === 'multiple' || !isItemSelected);\n};\n\nexport const MemoizeListViewItem = memo(ListViewItem, (prev: any, next: any) => {\n if (prev && next) {\n return (\n prev.children === next.children &&\n prev.isFocused === next.isFocused &&\n prev.isFocusRingVisible === next.isFocusRingVisible &&\n prev.isSelected === next.isSelected &&\n prev.isTabbable === next.isTabbable &&\n prev.isActive === next.isActive &&\n prev.suggestion === next.suggestion &&\n prev.isGridlineVisible === next.isGridlineVisible &&\n prev.isTopGridlineVisible === next.isTopGridlineVisible &&\n prev.padding === next.padding &&\n compareListItemContext(prev.context, next.context)\n );\n }\n return false;\n});\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { skeletonStyles } from './themes/ListStyles.css';\n\ntype Props = {\n /**\n * Allows to pass and access the properties from child elements\n **/\n children?: (index: number) => ComponentChildren;\n /**\n * Allows to specify number of skeletons to be rendered on initial load\n **/\n minimumCount?: number;\n};\n\n/**\n * Allows to specify the time delay for rendering the component\n **/\nconst timerValue = 50;\n\n/**\n * SkeletonContainer renders 'minimumCount' number of skeletons\n * of the variant specified from its child element - Skeleton's prop after\n * 'timerValue' ms delay\n **/\nexport function SkeletonContainer({ children, minimumCount = 1 }: Props) {\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsVisible(true);\n }, timerValue);\n }, []);\n\n const containerClasses = classNames([skeletonStyles.container]);\n return isVisible && children ? (\n <div class={containerClasses} role=\"presentation\">\n {[...Array(minimumCount)].map((_element, index) => children(index))}\n </div>\n ) : null;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { globalImages } from '#/ImageVars.css';\nimport { sparkleStyles } from './themes/ListStyles.css';\nimport { useTheme } from '#/hooks/UNSAFE_useTheme';\n\nconst SPARKLE_STYLE_CLASS = 'oj-collection-sparkle';\n\n/**\n * A sparkle component for smart suggestion indicator in ListView\n * @param sparkleHeight the height of sparkle\n */\nexport function Sparkle({ sparkleHeight }: { sparkleHeight: number }) {\n const { name } = useTheme();\n if (sparkleHeight <= 0) {\n return null;\n }\n\n const height = sparkleHeight + 'px';\n const sparkleClasses = classNames([sparkleStyles.base]);\n const containerClasses = classNames([\n sparkleStyles.container,\n SPARKLE_STYLE_CLASS,\n // TODO: this component should create separate theme definitions to only show the image in redwood\n name === 'redwood' && globalImages\n ]);\n\n return (\n <div key=\"sparkle\" class={containerClasses}>\n <div class={sparkleClasses} style={{ height }}></div>\n </div>\n );\n}\n","import type { RefObject } from 'preact';\nimport { useState, useEffect, useMemo } from 'preact/hooks';\nimport { Props as ListViewProps } from '../UNSAFE_ListView';\nimport { PLACEHOLDER_STYLE_CLASS } from '../PRIVATE_VirtualizedCollection';\nimport { Metadata } from '../UNSAFE_Collection';\n\nexport const usePromotedSection = <K extends string | number, D>(\n data: ListViewProps<K, D>['data'],\n promotedSection: ListViewProps<K, D>['promotedSection'],\n rootRef: RefObject<HTMLDivElement>\n) => {\n // tracking sparkle height\n const [sparkleHeight, setSparkleHeight] = useState<number>(0);\n\n const suggestions = useMemo(\n () => data && promotedSection && findSuggestions(data.data, promotedSection.count),\n [data, promotedSection]\n );\n\n useEffect(() => {\n // update sparkleHeight only when we have suggestions\n // avoid unnecessary iterating through elements\n if (suggestions) {\n const placeholder = rootRef.current?.querySelector(\n '.' + PLACEHOLDER_STYLE_CLASS\n ) as HTMLElement;\n let height = placeholder?.offsetHeight || 0;\n const suggestionItems = rootRef.current?.querySelectorAll('[data-oj-suggestion]');\n suggestionItems?.forEach((item) => (height += (item as HTMLElement).offsetHeight));\n setSparkleHeight(height);\n }\n }, [rootRef, suggestions]);\n\n return { sparkleHeight, suggestions };\n};\n\n/**\n * A helper function that finds the data with suggestions, and\n * returns the corresponding keys\n * @param dataState\n */\nconst findSuggestions = <K, D>(data: { data: D; metadata: Metadata<K> }[], count: number) => {\n if (count === 0) {\n return null;\n }\n\n const suggestionsData = data.slice(0, count);\n return suggestionsData.reduce((suggestions, value, index) => {\n const key = value.metadata.key;\n\n if (index === count - 1) {\n suggestions.set(key, 'end');\n } else {\n suggestions.set(key, true);\n }\n\n return suggestions;\n }, new Map<K, 'end' | true>());\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { FlattenedDataState } from '../UNSAFE_Collection';\nimport { Keys } from '../utils/UNSAFE_keys';\n\n/**\n * Helper function to only include keys of leaf items.\n */\nexport const excludeGroup = <K, D>(data: FlattenedDataState<K, D>, keys: Keys<K>) => {\n if (!keys.all) {\n const groups = data.data\n .filter((dataMetadata) => {\n return !dataMetadata.metadata.isLeaf;\n })\n .map((dataMetadata) => {\n return dataMetadata.metadata.key;\n });\n const leafOnly = Array.from(keys.keys.values()).filter((key: K) => {\n return !groups.includes(key);\n });\n return { ...keys, keys: new Set(leafOnly) };\n }\n return keys;\n};\n\n/**\n * A helper function to make sure specified elem is visible in the specified container\n */\nexport const scrollToVisible = (elem: Element, scroller: Element, offset: number) => {\n if (elem && scroller) {\n if ((elem as any).scrollIntoViewIfNeeded) {\n // for Safari, we'll need the non-standard scrollIntoViewIfNeeded\n (elem as any).scrollIntoViewIfNeeded();\n } else {\n elem.scrollIntoView({ block: 'nearest' });\n }\n if (offset > 0) {\n const scrollerBounds = scroller.getBoundingClientRect();\n const elemBounds = elem.getBoundingClientRect();\n const diff = scrollerBounds.top + offset - elemBounds.top;\n if (diff > 0) {\n scroller.scrollTop = scroller.scrollTop - diff;\n }\n }\n }\n};\n","import type { RefObject } from 'preact';\nimport { useEffect, useCallback, useRef, useMemo } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { Keys, addKeys } from '../utils/UNSAFE_keys';\nimport {\n DataState,\n Metadata,\n Range,\n SelectionDetail,\n CurrentKeyDetail\n} from '../UNSAFE_Collection';\nimport { getListViewRoles } from './ListRoles';\nimport {\n SelectionRangeDetail,\n useSelection,\n useDropDownSelection\n} from '../hooks/PRIVATE_useSelection';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { useItemAction } from '../hooks/PRIVATE_useItemAction';\nimport { Props as ListViewProps } from '../UNSAFE_ListView';\nimport { getPrevNextKey, findElementByKey, keyExtractor } from '../utils/PRIVATE_collectionUtils';\nimport { ITEM_SELECTOR } from './ListItem';\nimport { scrollToVisible } from './ListUtils';\n\nexport const useSelectionAndNavigation = <K extends string | number, D>(\n currentKey: K | undefined,\n selectedKeys: Keys<K>,\n selectionMode: ListViewProps<K, D>['selectionMode'] = 'none',\n onCurrentKeyChange: ((detail: CurrentKeyDetail<K>) => void) | undefined,\n onSelectionChange: ListViewProps<K, D>['onSelectionChange'],\n onItemAction: ListViewProps<K, D>['onItemAction'],\n data: ListViewProps<K, D>['data'],\n viewportConfig: ListViewProps<K, D>['viewportConfig'],\n role: ListViewProps<K, D>['role'] = 'grid',\n scrollToVisibleOffset: ListViewProps<K, D>['scrollToVisibleOffset'],\n rootRef: RefObject<HTMLDivElement>,\n pendingSelectionCallback: (detail: SelectionRangeDetail<K>, value: Range) => void,\n isCurrentItemOverridden: boolean,\n isEmbedded: boolean\n) => {\n const listRoles = useMemo(() => getListViewRoles(role), [role]);\n\n // tracking the anchor key which is used for shift+click selection\n const anchorKey = useRef<K | undefined>();\n\n const { currentKeyProps } = useCurrentKey(\n (element) => keyExtractor(element, ITEM_SELECTOR),\n selectionMode !== 'multiple' || isEmbedded,\n getPrevNextKey(rootRef.current, currentKey, true, ITEM_SELECTOR),\n getPrevNextKey(rootRef.current, currentKey, false, ITEM_SELECTOR),\n undefined,\n undefined,\n currentKey,\n onCurrentKeyChange\n );\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(rootRef, ['ArrowUp', 'ArrowDown']);\n\n useEffect(() => {\n if (currentKey != null && rootRef.current) {\n const elem = findElementByKey(rootRef.current, currentKey, ITEM_SELECTOR);\n if (elem) {\n const activeDescendant = rootRef.current.getAttribute('aria-activedescendant');\n const cell = elem.querySelector(`[role=${listRoles.cell}]`);\n if (cell && activeDescendant !== cell.id) {\n // update aria-activedescendant for screenreader\n rootRef.current.setAttribute('aria-activedescendant', cell.id);\n\n // scroll the current item into view only when the current item is updated internally and listview has focus\n // or when the collection gesture is 'embedded' if the current item is updated by the app\n const hasFocus = rootRef.current?.contains(document.activeElement as HTMLElement);\n if ((!isCurrentItemOverridden && hasFocus) || isEmbedded) {\n const scroller = viewportConfig?.scroller();\n const offset = scrollToVisibleOffset ? scrollToVisibleOffset(rootRef.current) : 0;\n // make sure item is visible\n scrollToVisible(elem, scroller != null ? scroller : rootRef.current, offset);\n }\n }\n }\n }\n // listen to data because the current item would re-render when the virtualizer\n // is fetching data or updating the data, i.e. the id of current item would be updated,\n // so the currentKey itself couldn't guarantee the root has latest aria-activedescendant\n }, [\n currentKey,\n data,\n listRoles.cell,\n viewportConfig,\n scrollToVisibleOffset,\n rootRef,\n isCurrentItemOverridden,\n isEmbedded\n ]);\n\n const handleSelectionChange = useCallback(\n (detail: SelectionDetail<K>) => {\n if (onSelectionChange) {\n if (detail.value.all === false && detail.value.keys.size > 0) {\n // during regular selection, the last key selected by a user gesture is the anchor key\n anchorKey.current = Array.from(detail.value.keys.values()).pop();\n }\n onSelectionChange(detail);\n }\n },\n [anchorKey, onSelectionChange]\n );\n\n const handleSelectionRangeChange = useCallback(\n (detail: SelectionRangeDetail<K>) => {\n if (data && onSelectionChange) {\n const value = handleSelectionRange(detail, data);\n if (Array.isArray(value)) {\n if (detail.eventType === 'shiftSpace') {\n // during range selection by shift+space, the first key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.start;\n } else {\n // during range selection by shift+click/arrow keys, the last key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.end;\n }\n if (!isEmbedded) {\n onSelectionChange({ value: { all: false, keys: new Set(value) }, target: null });\n } else {\n const keys = addKeys(selectedKeys, value);\n onSelectionChange({ value: keys, target: null });\n }\n } else {\n pendingSelectionCallback(detail, value);\n }\n }\n },\n [data, isEmbedded, selectedKeys, onSelectionChange, pendingSelectionCallback]\n );\n\n const { selectionProps } = useSelection(\n (element: HTMLElement) => {\n if (element === rootRef.current) {\n return currentKey === undefined ? null : currentKey;\n }\n return keyExtractor(element, ITEM_SELECTOR) as K;\n },\n selectedKeys,\n isEmbedded ? 'none' : selectionMode,\n false,\n 'replace',\n handleSelectionChange,\n anchorKey.current,\n currentKey,\n (currentKey: K | undefined, isPrev: boolean) =>\n getPrevNextKey(rootRef.current, currentKey, isPrev, ITEM_SELECTOR),\n undefined,\n (key: K) => {\n if (rootRef.current) {\n const elem = findElementByKey(rootRef.current, key, ITEM_SELECTOR);\n if (elem) {\n const scroller = viewportConfig?.scroller();\n const offset = scrollToVisibleOffset ? scrollToVisibleOffset(rootRef.current) : 0;\n scrollToVisible(elem, scroller != null ? scroller : rootRef.current, offset);\n }\n }\n },\n handleSelectionRangeChange\n );\n\n const { dropDownSelectionProps } = useDropDownSelection(\n (element: HTMLElement) => {\n if (element === rootRef.current) {\n return currentKey === undefined ? null : currentKey;\n }\n return keyExtractor(element, ITEM_SELECTOR) as K;\n },\n selectedKeys,\n isEmbedded ? selectionMode : 'none',\n false,\n (key: K) => {\n if (data) {\n return data.data.findIndex(\n (value: { data: D; metadata: Metadata<K> }) => value.metadata.key === key\n );\n }\n return -1;\n },\n (startIndex: number, endIndex: number) => {\n if (data) {\n const keys = data.data.map(\n (value: { data: D; metadata: Metadata<K> }) => value.metadata.key\n );\n return keys.slice(startIndex, endIndex);\n }\n return [];\n },\n (currentKey: K | undefined, isPrev: boolean) =>\n getPrevNextKey(rootRef.current, currentKey, isPrev, ITEM_SELECTOR),\n currentKey,\n handleSelectionChange,\n handleSelectionRangeChange\n );\n\n const itemActionProps = useItemAction(currentKey, data, onItemAction, ITEM_SELECTOR, isEmbedded);\n\n return {\n eventProps: mergeProps(\n currentKeyProps,\n focusRingProps,\n selectionProps,\n itemActionProps,\n dropDownSelectionProps\n ),\n showFocusRing,\n handleSelectionChange\n };\n};\n\nexport const handleSelectionRange = <K, D>(\n detail: SelectionRangeDetail<K>,\n dataState: DataState<K, D>\n) => {\n const keys = dataState.data.map((value: { data: D; metadata: Metadata<K> }) => {\n return value.metadata.key;\n });\n const startIndex = keys.indexOf(detail.value.start);\n const endIndex = keys.indexOf(detail.value.end);\n const minIndex = Math.min(startIndex, endIndex);\n const maxIndex = Math.max(startIndex, endIndex);\n if (minIndex === -1) {\n // return a range to fetch so we can find all the keys, maxIndex should not be -1\n return { offset: 0, count: dataState.totalSize };\n } else {\n // range of keys are in the current viewport, return them\n return keys.slice(minIndex, maxIndex + 1);\n }\n};\n","import type { RefObject } from 'preact';\nimport { useCallback, useRef } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { Props as ListViewProps } from '../UNSAFE_ListView';\nimport { CurrentKeyDetail } from '../UNSAFE_Collection';\nimport { getFirstVisibleKey, keyExtractor } from '../utils/PRIVATE_collectionUtils';\nimport { isKeyDefined } from '../utils/UNSAFE_keys';\nimport { ITEM_SELECTOR } from './ListItem';\nimport { useTabbableModeSet } from '../hooks/PRIVATE_useTabbableModeSet';\nimport { findElementByKey } from '../utils/PRIVATE_collectionUtils';\nimport { scrollToVisible } from './ListUtils';\n\nexport const useFocusTabbableMode = <K extends string | number, D>(\n currentKey: K | undefined,\n onCurrentKeyChange: ((detail: CurrentKeyDetail<K>) => void) | undefined,\n allowTabbableMode: ListViewProps<K, D>['allowTabbableMode'],\n rootRef: RefObject<HTMLDivElement>,\n viewportConfig: ListViewProps<K, D>['viewportConfig'],\n scrollToVisibleOffset: ListViewProps<K, D>['scrollToVisibleOffset']\n) => {\n const pendingCurrentKey = useRef<K>();\n\n // ensure current item scroll into view when listview regains focus\n // unless pendingCurrentKey gets updated to something different than currentKey\n const focusAndScrollIntoView = useRef(true);\n\n const [isCurrentTabbableKey, tabbableModeProps] = useTabbableModeSet(\n rootRef,\n (element) => {\n // we don't want List to go into Tabbable mode when user clicks on expander\n return isExpander(element) ? null : (keyExtractor(element, ITEM_SELECTOR) as K);\n },\n currentKey,\n onCurrentKeyChange\n );\n\n const handleInitialFocus = useCallback(() => {\n if (\n rootRef.current &&\n onCurrentKeyChange &&\n (!allowTabbableMode || isCurrentTabbableKey(undefined))\n ) {\n const firstKey =\n pendingCurrentKey.current || (getFirstVisibleKey(rootRef.current, ITEM_SELECTOR) as K);\n if (isKeyDefined(firstKey)) {\n onCurrentKeyChange({ value: firstKey });\n }\n }\n }, [rootRef, onCurrentKeyChange, allowTabbableMode, isCurrentTabbableKey]);\n\n const handleFocus = useCallback(\n (event: FocusEvent) => {\n if (isExpander(event.target as HTMLElement)) {\n rootRef.current?.focus();\n const key = keyExtractor(event.target as HTMLElement, ITEM_SELECTOR);\n if (onCurrentKeyChange && isKeyDefined(key)) {\n onCurrentKeyChange({ value: key as K });\n }\n return;\n }\n if (!isKeyDefined(currentKey)) {\n onCurrentKeyChange && handleInitialFocus();\n } else if (rootRef.current) {\n const elem = findElementByKey(rootRef.current, currentKey as K, ITEM_SELECTOR);\n if (elem) {\n // if currentKey is defined, make sure scroll the current item into view only when listview regains focus\n // unless pendingCurrentKey gets updated to something different than currentKey\n if (focusAndScrollIntoView.current) {\n const scroller = viewportConfig?.scroller();\n const offset = scrollToVisibleOffset ? scrollToVisibleOffset(rootRef.current) : 0;\n scrollToVisible(elem, scroller != null ? scroller : rootRef.current, offset);\n }\n focusAndScrollIntoView.current = true;\n } else {\n // if elem is not found, meaning the currentKey is not valid, we should pick the first item as current item\n onCurrentKeyChange && handleInitialFocus();\n }\n }\n },\n [\n currentKey,\n handleInitialFocus,\n onCurrentKeyChange,\n scrollToVisibleOffset,\n viewportConfig,\n rootRef\n ]\n );\n\n /**\n * Need to track pointer down element to set currentItem when initial focus happens\n */\n const handlePointerDown = useCallback(\n (event: PointerEvent) => {\n const key = keyExtractor(event.target as HTMLElement, ITEM_SELECTOR);\n if (isKeyDefined(key)) {\n pendingCurrentKey.current = key as K;\n if (key !== currentKey) {\n focusAndScrollIntoView.current = false;\n }\n }\n },\n [currentKey]\n );\n\n return {\n eventProps: mergeProps(allowTabbableMode ? tabbableModeProps : {}, {\n onFocus: handleFocus,\n onPointerDown: handlePointerDown\n }),\n isCurrentTabbableKey\n };\n};\n\nconst isExpander = (elem: HTMLElement) => {\n if (elem.parentElement && elem.parentElement.classList.contains('oj-listview-expander')) {\n return true;\n }\n return false;\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useRef, useCallback, useState, useImperativeHandle, useEffect } from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { containsKey, Keys, isKeyDefined, addKeys } from '../utils/UNSAFE_keys';\nimport { DataState, ItemContext, ListItemRendererContext, Range } from '../UNSAFE_Collection';\nimport { LoadMoreCollection, LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\nimport { VirtualizedCollection } from '../PRIVATE_VirtualizedCollection';\nimport { ViewportConfig } from '../hooks/UNSAFE_useViewportIntersect';\nimport { ListViewItem, ITEM_SELECTOR, MemoizeListViewItem } from './ListItem';\n\nimport { SelectionRangeDetail } from '../hooks/PRIVATE_useSelection';\nimport { SkeletonContainer } from './SkeletonContainer';\nimport { Skeleton } from '../UNSAFE_Skeleton';\nimport { Flex } from '../UNSAFE_Flex';\nimport { Selector } from '../UNSAFE_Selector';\nimport { Props } from '../UNSAFE_ListView';\nimport { Sparkle } from './Sparkle';\nimport { listStyles } from './themes/ListStyles.css';\nimport { useTestId } from '../hooks/UNSAFE_useTestId';\nimport { useCollectionInteractionContext } from '../hooks/UNSAFE_useCollectionInteractionContext';\nimport { usePromotedSection } from './usePromotedSection';\nimport { useSelectionAndNavigation, handleSelectionRange } from './useSelectionAndNavigation';\nimport { useFocusTabbableMode } from './useFocusTabbableMode';\nimport { useCurrentItemOverride } from './useCurrentItemOverride';\nimport { Inset } from '../UNSAFE_Inset';\n// TODO: add this import due to issue JET-67485, need to update once Stable is introduced\nimport './themes/redwood/ListBaseTheme.css';\n\n/**\n * Component that renders items as a flat list.\n * In order to maximize performance, only items that are visible in the viewport are rendered.\n */\nexport function List<K extends string | number, D>({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n allowTabbableMode = true,\n children,\n data,\n gridlines,\n loadingIndicator = defaultLoadingIndicator,\n currentItemOverride,\n onPersistCurrentItem,\n onLoadRange,\n onSelectionChange,\n onItemAction,\n rangeExtractor,\n role = 'grid',\n selectedKeys = emptyKeys as Keys<K>,\n selectionMode = 'none',\n viewportConfig,\n currentItemVariant,\n promotedSection,\n isVirtualized = false,\n customItemRenderer,\n scrollToVisibleOffset,\n testId,\n scrollerRef,\n reorderProps,\n contextMenuTriggerProps,\n itemPadding,\n ...props\n}: Props<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const isFetching = useRef(false);\n\n // tracking pending selection key that is not in current data\n const pendingSelection = useRef<{ detail: SelectionRangeDetail<K>; range: Range }>();\n\n const [active, setActive] = useState<boolean>(false);\n\n const showGridline = (index: number) => {\n // show bottom gridlines for each item, and for the last item if specified\n return (\n gridlines?.item === 'visible' &&\n (index + 1 !== data?.totalSize || gridlines?.bottom === 'visible')\n );\n };\n\n const showGridlineTop = () => {\n // show the top gridline for the first item\n return gridlines?.item === 'visible' && gridlines?.top === 'visible';\n };\n\n const ariaMultiSelectable = selectionMode === 'none' ? undefined : selectionMode === 'multiple';\n const ariaRowCount =\n data === null ? undefined : data.sizePrecision === 'exact' ? data.totalSize : -1;\n\n const classes = classNames([listStyles.base]);\n\n const isEmbedded = useCollectionInteractionContext() === 'embedded';\n const itemVariant =\n currentItemVariant !== undefined ? currentItemVariant : isEmbedded ? 'highlight' : 'none';\n\n const pendingSelectionCallback = useCallback(\n (detail: SelectionRangeDetail<K>, value: Range) => {\n if (data) {\n pendingSelection.current = {\n detail: detail,\n range: { offset: data.offset, count: data.data.length }\n };\n onLoadRange(value);\n }\n },\n [data, onLoadRange]\n );\n\n /*****************************************************************************************/\n /************************************* Load More *****************************************/\n /*****************************************************************************************/\n\n const lastRange = useRef({ offset: 0, count: 0 });\n const handleLoadRange = useCallback(\n (newRange: { offset: number; count: number }) => {\n // check isFetching to avoid multiple load more at the same time (details in JET-68994)\n if (\n !isFetching.current ||\n lastRange.current.offset !== newRange.offset ||\n lastRange.current.count !== newRange.count\n ) {\n isFetching.current = true;\n lastRange.current = newRange;\n onLoadRange(newRange);\n }\n },\n [isFetching, onLoadRange]\n );\n\n useEffect(() => {\n isFetching.current = false;\n // listen to data because when one of them gets updated, the fetching is done\n }, [data]);\n\n const { currentKey, onCurrentKeyChange, isCurrentItemOverridden } = useCurrentItemOverride(\n currentItemOverride,\n onPersistCurrentItem\n );\n\n const { eventProps, showFocusRing, handleSelectionChange } = useSelectionAndNavigation(\n currentKey,\n selectedKeys,\n selectionMode,\n onCurrentKeyChange,\n onSelectionChange,\n onItemAction,\n data,\n viewportConfig,\n role,\n scrollToVisibleOffset,\n rootRef,\n pendingSelectionCallback,\n isCurrentItemOverridden,\n isEmbedded\n );\n\n const { eventProps: focusTabbableProps, isCurrentTabbableKey } = useFocusTabbableMode(\n currentKey,\n onCurrentKeyChange,\n allowTabbableMode,\n rootRef,\n viewportConfig,\n scrollToVisibleOffset\n );\n\n if (data && pendingSelection.current !== undefined && onSelectionChange) {\n const keys = handleSelectionRange(pendingSelection.current.detail, data);\n if (Array.isArray(keys)) {\n if (!isEmbedded) {\n onSelectionChange({ value: { all: false, keys: new Set(keys) }, target: null });\n } else {\n const value = addKeys(selectedKeys, keys);\n onSelectionChange({ value, target: null });\n }\n }\n const range = pendingSelection.current\n ? pendingSelection.current.range\n : { offset: data.offset, count: data.data.length };\n data = adjustDataState(data, range);\n pendingSelection.current = undefined;\n onLoadRange(range);\n }\n\n const { sparkleHeight, suggestions } = usePromotedSection(data, promotedSection, rootRef);\n\n // TODO: check suggestions before Sparkle would cause a scrolling issue\n const sparkleIndicator = <Sparkle sparkleHeight={sparkleHeight}></Sparkle>;\n\n // Collection generic is of this type\n type DataStateData = DataState<K, D>['data'][number];\n\n // returns an ListItemContext based on ItemContext (added metadata and selector)\n // note the type for ItemContext, this is the context coming from Collection\n const getItemContext = useCallback(\n (context: ItemContext<DataStateData>) => {\n const dataStateData = context.data;\n const selectorRenderer =\n selectionMode === 'multiple'\n ? () => (\n <Selector\n onChange={handleSelectionChange}\n rowKey={dataStateData.metadata.key}\n selectedKeys={selectedKeys}></Selector>\n )\n : undefined;\n\n return {\n index: context.index,\n data: dataStateData.data,\n metadata: dataStateData.metadata,\n selector: selectorRenderer\n };\n },\n [selectionMode, selectedKeys, handleSelectionChange]\n );\n\n const ItemComponent = isVirtualized ? ListViewItem : MemoizeListViewItem;\n\n const childrenComponent = (context: ItemContext<DataStateData>) => {\n const listItemContext = getItemContext(context);\n const suggestion = suggestions?.get(listItemContext.metadata.key);\n const isTabbable = allowTabbableMode && isCurrentTabbableKey(listItemContext.metadata.key);\n const isFocused = currentKey === listItemContext.metadata.key && !isTabbable;\n const isActive = isFocused && active;\n const isSelected = containsKey(selectedKeys, listItemContext.metadata.key);\n const isFocusRingVisible = isFocused && showFocusRing;\n const listItemFunc = (ctx: ListItemRendererContext<K, D>, otherProps?: any) => (\n <ItemComponent\n key={listItemContext.metadata.key}\n context={ctx}\n isFocused={isFocused}\n isFocusRingVisible={isFocusRingVisible}\n isActive={isActive}\n isGridlineVisible={showGridline(listItemContext.index)}\n isSelected={isSelected}\n isTabbable={allowTabbableMode && isCurrentTabbableKey(listItemContext.metadata.key)}\n role={role}\n selectionMode={selectionMode}\n currentItemVariant={itemVariant}\n padding={itemPadding}\n {...(suggestion && { suggestion })}\n {...(listItemContext.index === 0 && { isTopGridlineVisible: showGridlineTop() })}\n {...otherProps}>\n {children}\n </ItemComponent>\n );\n\n // if customItemRenderer is specified (ExpandableList and GroupedList)\n // create a custom context with additional info including a function\n // that helps create the default item component\n if (customItemRenderer) {\n const customRendererContext = {\n listItemContext,\n isFocused,\n isFocusRingVisible,\n isSelected,\n isTabbable,\n isActive,\n defaultListItem: listItemFunc\n };\n return customItemRenderer(customRendererContext);\n }\n return listItemFunc(listItemContext);\n };\n\n viewportConfig = getViewportConfig(rootRef, viewportConfig);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === ' ' && isKeyDefined(currentKey) && selectionMode !== 'none') {\n setActive(true);\n }\n },\n [currentKey, selectionMode, setActive]\n );\n\n const handleKeyUp = useCallback(() => {\n setActive(false);\n }, [setActive]);\n\n useImperativeHandle(scrollerRef!, () => rootRef.current);\n\n // if data is not specified, listview should show loading indicator\n // todo: replace placeholder with actual SkeletonContainer component (Ash is working on)\n const testIdProps = useTestId(testId);\n return (\n <div\n {...mergeProps(\n eventProps,\n focusTabbableProps,\n contextMenuTriggerProps || {},\n reorderProps || {},\n {\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp\n },\n props\n )}\n {...testIdProps}\n role={role}\n aria-rowcount={role === 'grid' ? ariaRowCount : undefined}\n aria-colcount={role === 'grid' ? 1 : undefined}\n ref={rootRef}\n class={classes}\n tabIndex={0}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-multiselectable={ariaMultiSelectable}>\n {data == null ? (\n loadingIndicator\n ) : isVirtualized ? (\n <VirtualizedCollection\n data={data}\n itemSelector={ITEM_SELECTOR}\n loadMoreIndicator={defaultLoadMoreIndicator}\n onLoadRange={onLoadRange}\n rangeExtractor={rangeExtractor}\n suggestions={sparkleIndicator}\n viewportConfig={viewportConfig}>\n {childrenComponent}\n </VirtualizedCollection>\n ) : (\n <LoadMoreCollection\n data={data.data}\n loadMoreIndicator={defaultLoadMoreIndicator}\n hasMore={data.sizePrecision === 'atLeast' && data.data.length <= data.totalSize}\n onLoadMore={() => {\n data && handleLoadRange({ offset: 0, count: data.data.length + 25 });\n }}\n suggestions={sparkleIndicator}\n viewportConfig={viewportConfig}>\n {childrenComponent}\n </LoadMoreCollection>\n )}\n </div>\n );\n}\n\nconst getViewportConfig = (rootRef: RefObject<HTMLElement>, config?: ViewportConfig) => {\n return (\n config ?? {\n scroller: () => {\n return rootRef.current;\n }\n }\n );\n};\n\nconst emptyKeys = { all: false, keys: new Set() };\n\nconst defaultLoadingIndicator = (\n <SkeletonContainer minimumCount={25}>\n {() => {\n return (\n <Inset variant=\"listview\">\n <Flex height=\"6x\" align=\"center\">\n <Skeleton height=\"4x\" />\n </Flex>\n </Inset>\n );\n }}\n </SkeletonContainer>\n);\n\nconst defaultLoadMoreIndicator = (\n <div class={LOADMORE_STYLE_CLASS}>\n <SkeletonContainer minimumCount={3}>\n {() => {\n return (\n <Inset variant=\"listview\">\n <Flex height=\"6x\" align=\"center\">\n <Skeleton height=\"4x\" />\n </Flex>\n </Inset>\n );\n }}\n </SkeletonContainer>\n </div>\n);\n\n/**\n * Adjust the DataState as needed if it contains more than needed for the specified range\n */\nconst adjustDataState = <K, D>(dataState: DataState<K, D>, range: Range | null) => {\n if (range) {\n // prevent range offset from being larger than the data state\n const safeRangeOffset = Math.min(range.offset, dataState.offset + dataState.totalSize);\n const diff = safeRangeOffset - dataState.offset;\n if (diff > 0) {\n dataState = {\n offset: safeRangeOffset,\n data: dataState.data.slice(diff, diff + range.count),\n totalSize: dataState.totalSize,\n sizePrecision: dataState.sizePrecision\n };\n }\n }\n return dataState;\n};\n","import { useRef, useMemo, useState, useEffect } from 'preact/hooks';\nimport { Props as ListProps } from '../UNSAFE_ListView';\nimport { CurrentKeyDetail, Item } from '../UNSAFE_Collection';\nimport { useReorderableContext } from '../hooks/PRIVATE_useReorderable/useReorderableContext';\n\n/**\n * This hook converts the new API (i.e. currentItemOverride and onPersistCurrentItem) back to\n * the old API (i.e. currentKey and onCurrentKeyChange), keeps the internal current item, and\n * also triggers an update when a new currentItemOverride is passed by the app\n *\n * @param currentItemOverride\n * @param onPersistCurrentItem\n */\nexport const useCurrentItemOverride = <K extends string | number, D>(\n currentItemOverride: ListProps<K, D>['currentItemOverride'],\n onPersistCurrentItem: ListProps<K, D>['onPersistCurrentItem']\n) => {\n // the internal state of current item\n const [currentItem, setCurrentItem] = useState<Item<K>>();\n // track the currentItemOverride props\n const currentItemOverrideRef = useRef<Item<K>>();\n // whether the current item is overridden by the app\n const isCurrentItemOverridden = useRef(false);\n\n // if reorder is enabled, need to update the context here when current item is changed\n const reorderContext = useReorderableContext();\n\n // intercept onPersistCurrentItem calls to ensure internal state is updated appropriately\n const handleCurrentItemChanged = useMemo(() => {\n return (detail: CurrentKeyDetail<K>) => {\n const rowKey = detail.value;\n setCurrentItem({ rowKey });\n onPersistCurrentItem?.(detail);\n if (reorderContext?.currentItemKey != null) {\n reorderContext.currentItemKey.current = rowKey;\n }\n };\n }, [onPersistCurrentItem, reorderContext?.currentItemKey]);\n\n // ensure any new currentItemOverride settings are applied only on that render\n // (same as how Table handles the changes)\n if (currentItemOverrideRef.current !== currentItemOverride) {\n currentItemOverrideRef.current = currentItemOverride;\n if (currentItem?.rowKey !== currentItemOverride?.rowKey) {\n isCurrentItemOverridden.current = true;\n handleCurrentItemChanged({ value: currentItemOverride?.rowKey as K });\n }\n }\n\n useEffect(() => {\n isCurrentItemOverridden.current = false;\n });\n\n return {\n currentKey: currentItem?.rowKey,\n onCurrentKeyChange: handleCurrentItemChanged,\n isCurrentItemOverridden: isCurrentItemOverridden.current\n };\n};\n"],"names":["getListViewRoles","ariaRole","list","item","cell","ITEM_SELECTOR","ListViewItem","children","context","itemDepth","isFocused","isFocusRingVisible","isActive","isGridlineVisible","isSelected","isTopGridlineVisible","isTabbable","role","selectionMode","suggestion","currentItemVariant","padding","rootRef","useRef","roles","useMemo","itemKey","metadata","key","itemIndex","index","cellRoleAttributes","interactionProps","applyActiveStyle","applyHoverStyle","applyPseudoHoverStyle","useInteractionStyle","variantClasses","listItemMultiVariantStyles","selectable","isSelectable","selected","selectedSingle","needsEventsHover","pseudoHover","active","focusHighlight","focusRingVisible","gridlineTop","gridlineBottom","paddingClasses","push","paddingStyles","allPadding","top","topItemPadding","bottom","bottomItemPadding","start","startItemPadding","end","endItemPadding","classes","classNames","styleInterpolations","mergeInterpolations","Object","values","flexitemInterpolations","class","cls","cellStyles","flex","alignSelf","cellClasses","listItemStyles","checkboxContainer","_jsx","jsx","undefined","ref","id","useId","style","onKeyDown","event","stopPropagation","TabbableModeContext","Provider","value","FocusTrap","isDisabled","restoreFocusRef","isItemSelected","MemoizeListViewItem","memo","prev","next","compareListItemContext","SkeletonContainer","minimumCount","isVisible","setIsVisible","useState","useEffect","setTimeout","containerClasses","skeletonStyles","container","Array","map","_element","SPARKLE_STYLE_CLASS","Sparkle","sparkleHeight","name","useTheme","height","sparkleClasses","sparkleStyles","base","globalImages","findSuggestions","data","count","slice","reduce","suggestions","set","Map","scrollToVisible","elem","scroller","offset","scrollIntoViewIfNeeded","scrollIntoView","block","scrollerBounds","getBoundingClientRect","elemBounds","diff","scrollTop","handleSelectionRange","detail","dataState","keys","startIndex","indexOf","endIndex","minIndex","Math","min","maxIndex","max","totalSize","isExpander","parentElement","classList","contains","getViewportConfig","config","current","emptyKeys","all","Set","defaultLoadingIndicator","Inset","variant","Flex","align","Skeleton","defaultLoadMoreIndicator","LOADMORE_STYLE_CLASS","adjustDataState","range","safeRangeOffset","sizePrecision","ariaLabel","ariaLabelledBy","allowTabbableMode","gridlines","loadingIndicator","currentItemOverride","onPersistCurrentItem","onLoadRange","onSelectionChange","onItemAction","rangeExtractor","selectedKeys","viewportConfig","promotedSection","isVirtualized","customItemRenderer","scrollToVisibleOffset","testId","scrollerRef","reorderProps","contextMenuTriggerProps","itemPadding","props","isFetching","pendingSelection","setActive","ariaMultiSelectable","ariaRowCount","listStyles","isEmbedded","useCollectionInteractionContext","itemVariant","pendingSelectionCallback","useCallback","length","lastRange","handleLoadRange","newRange","currentKey","onCurrentKeyChange","isCurrentItemOverridden","currentItem","setCurrentItem","currentItemOverrideRef","reorderContext","useReorderableContext","handleCurrentItemChanged","rowKey","currentItemKey","useCurrentItemOverride","eventProps","showFocusRing","handleSelectionChange","listRoles","anchorKey","currentKeyProps","useCurrentKey","element","keyExtractor","getPrevNextKey","focusRingProps","useCollectionFocusRing","findElementByKey","activeDescendant","getAttribute","querySelector","setAttribute","hasFocus","document","activeElement","size","from","pop","handleSelectionRangeChange","isArray","eventType","addKeys","target","selectionProps","useSelection","isPrev","dropDownSelectionProps","useDropDownSelection","findIndex","itemActionProps","useItemAction","mergeProps","useSelectionAndNavigation","focusTabbableProps","isCurrentTabbableKey","pendingCurrentKey","focusAndScrollIntoView","tabbableModeProps","useTabbableModeSet","handleInitialFocus","firstKey","getFirstVisibleKey","isKeyDefined","handleFocus","focus","handlePointerDown","onFocus","onPointerDown","useFocusTabbableMode","setSparkleHeight","placeholder","PLACEHOLDER_STYLE_CLASS","offsetHeight","suggestionItems","querySelectorAll","forEach","usePromotedSection","sparkleIndicator","getItemContext","dataStateData","selectorRenderer","Selector","onChange","selector","ItemComponent","childrenComponent","listItemContext","get","containsKey","listItemFunc","ctx","otherProps","defaultListItem","handleKeyDown","handleKeyUp","useImperativeHandle","testIdProps","useTestId","onKeyUp","tabIndex","VirtualizedCollection","itemSelector","loadMoreIndicator","LoadMoreCollection","hasMore","onLoadMore","groups","filter","dataMetadata","isLeaf","leafOnly","includes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"List-0b764e84.js","sources":["../../src/PRIVATE_List/ListRoles.ts","../../src/PRIVATE_List/ListItem.tsx","../../src/PRIVATE_List/SkeletonContainer.tsx","../../src/PRIVATE_List/Sparkle.tsx","../../src/PRIVATE_List/usePromotedSection.ts","../../src/PRIVATE_List/ListUtils.ts","../../src/PRIVATE_List/useSelectionAndNavigation.ts","../../src/PRIVATE_List/useFocusTabbableMode.ts","../../src/PRIVATE_List/List.tsx","../../src/PRIVATE_List/useCurrentItemOverride.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\n\nimport { Roles } from '../UNSAFE_ListView';\nimport { HTMLAttributesSignalExcluded } from '../utils/UNSAFE_attributeUtils';\n\n/**\n * List Roles need to be kept in matching sets, this module encapsulates the sets\n *\n * @param ariaRole\n * @returns matching, valid set of roles\n */\n\nconst getListViewRoles = (\n ariaRole: Roles\n): {\n list: HTMLAttributesSignalExcluded['role'];\n item: HTMLAttributesSignalExcluded['role'];\n cell: HTMLAttributesSignalExcluded['role'];\n} => {\n switch (ariaRole) {\n case 'listbox':\n return { list: 'listbox', item: 'presentation', cell: 'option' };\n case 'treegrid':\n return { list: 'treegrid', item: 'row', cell: 'gridcell' };\n default:\n return { list: 'grid', item: 'row', cell: 'gridcell' };\n }\n};\n\nexport { getListViewRoles };\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport { useRef, useMemo } from 'preact/hooks';\nimport { memo } from 'preact/compat';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { TabbableModeContext } from '../hooks/UNSAFE_useTabbableMode';\nimport { SelectionMode, CurrentItemVariant, ListItemRendererContext } from '../UNSAFE_Collection';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { Roles, ItemPadding } from '../UNSAFE_ListView';\nimport { getListViewRoles } from './ListRoles';\nimport { useInteractionStyle } from '../hooks/UNSAFE_useInteractionStyle';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { flexitemInterpolations } from '../utils/UNSAFE_interpolations/flexitem';\nimport type { FlexitemProps } from '../utils/UNSAFE_interpolations/flexitem';\nimport { listItemStyles, listItemMultiVariantStyles, paddingStyles } from './themes/ListStyles.css';\nimport { compareListItemContext } from '../utils/PRIVATE_collectionUtils';\n\nexport const ITEM_SELECTOR = '[data-oj-key]';\n\n/**\n * Props for the ListViewItem Component\n */\nexport type Props<K, D> = {\n children: (context: ListItemRendererContext<K, D>) => ComponentChildren;\n context: ListItemRendererContext<K, D>;\n itemDepth?: number;\n isFocused: boolean;\n isFocusRingVisible: boolean;\n isActive: boolean;\n isGridlineVisible: boolean;\n isSelected: boolean;\n isTopGridlineVisible?: boolean;\n isTabbable?: boolean;\n role: Roles;\n selectionMode: SelectionMode;\n suggestion?: 'end' | true;\n currentItemVariant?: CurrentItemVariant;\n padding?: 'enabled' | 'disabled' | ItemPadding;\n};\n\n/**\n * The internal component used to render a single item in ListView.\n */\nexport function ListViewItem<K extends string | number, D>({\n children,\n context,\n itemDepth,\n isFocused,\n isFocusRingVisible,\n isActive,\n isGridlineVisible,\n isSelected,\n isTopGridlineVisible = false,\n isTabbable = false,\n role,\n selectionMode,\n suggestion,\n currentItemVariant,\n padding\n}: Props<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const roles = useMemo(() => getListViewRoles(role), [role]);\n const itemKey = context.metadata.key;\n const itemIndex = context.index;\n\n // some roles come with related aria attributes which need to be set\n const cellRoleAttributes =\n roles.cell === 'option'\n ? {\n role: roles.cell,\n 'aria-posinset': itemIndex + 1,\n 'aria-setsize': -1\n }\n : {\n role: roles.cell\n };\n\n // don't bubble Arrow Up and Down events to parent when in isTabbable mode\n // this bubbling causes the outer CollectionFocus ring to change index while in the isTabbable mode.\n const handleKeyDown = (event: KeyboardEvent) => {\n if (isTabbable && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {\n event.stopPropagation();\n }\n };\n\n const { interactionProps, applyActiveStyle, applyHoverStyle, applyPseudoHoverStyle } =\n useInteractionStyle();\n\n const variantClasses = listItemMultiVariantStyles({\n selectable: isSelectable(selectionMode, isSelected) ? 'isSelectable' : 'notSelectable',\n selected: isSelected ? 'isSelected' : 'notSelected',\n selectedSingle:\n isSelected && selectionMode === 'single' ? 'isSelectedSingle' : 'notSelectedSingle',\n needsEventsHover: applyHoverStyle ? 'isNeedsEventsHover' : 'notNeedsEventsHover',\n pseudoHover: applyPseudoHoverStyle ? 'isPseudoHover' : 'notPseudoHover',\n active: applyActiveStyle || isActive ? 'isActive' : 'notActive',\n focusHighlight:\n currentItemVariant === 'highlight' && isFocused ? 'isFocusHighlight' : 'notFocusHighlight',\n focusRingVisible:\n isFocusRingVisible && isFocused ? 'isFocusRingVisible' : 'notFocusRingVisible',\n gridlineTop: isTopGridlineVisible ? 'visible' : 'hidden',\n gridlineBottom:\n isGridlineVisible ||\n (suggestion === 'end' && !isGridlineVisible && (!isSelected || selectionMode !== 'single'))\n ? 'visible'\n : 'hidden'\n });\n const paddingClasses = [];\n if (padding) {\n if (padding === 'enabled') {\n paddingClasses.push(paddingStyles.allPadding);\n } else if (padding !== 'disabled') {\n if (padding.top === 'enabled') {\n paddingClasses.push(paddingStyles.topItemPadding);\n }\n if (padding.bottom === 'enabled') {\n paddingClasses.push(paddingStyles.bottomItemPadding);\n }\n if (padding.start === 'enabled') {\n paddingClasses.push(paddingStyles.startItemPadding);\n }\n if (padding.end === 'enabled') {\n paddingClasses.push(paddingStyles.endItemPadding);\n }\n }\n }\n\n const classes = classNames([variantClasses, ...paddingClasses]);\n const styleInterpolations = mergeInterpolations<FlexitemProps>([\n ...Object.values(flexitemInterpolations)\n ]);\n const { class: cls, ...cellStyles } = styleInterpolations({\n flex: '1 1 auto',\n alignSelf: 'center'\n });\n const cellClasses = classNames([\n cls,\n selectionMode === 'multiple' && listItemStyles.checkboxContainer\n ]);\n\n // todo: use translated text for selector\n // note cannot put focus on gridcell div since JAWS will not read the aria-rowindex\n // correctly, so unfortunately needed another div\n return (\n <div\n aria-rowindex={role === 'grid' ? itemIndex + 1 : undefined}\n aria-level={itemDepth}\n data-oj-key={itemKey}\n class={classes}\n ref={rootRef}\n role={roles.item}\n {...(suggestion && { 'data-oj-suggestion': true })}\n {...(typeof itemKey === 'number' && { 'data-oj-key-type': 'number' })}\n {...interactionProps}>\n <div\n id={useId()}\n style={cellStyles}\n class={cellClasses}\n aria-posinset={role === 'grid' ? undefined : itemIndex + 1}\n aria-setsize={role === 'grid' ? undefined : -1}\n onKeyDown={handleKeyDown}\n aria-colindex={role === 'grid' ? 1 : undefined}\n aria-selected={selectionMode !== 'none' ? isSelected : undefined}\n {...cellRoleAttributes}>\n <TabbableModeContext.Provider value={{ isTabbable }}>\n <FocusTrap isDisabled={!isTabbable} restoreFocusRef={false}>\n {children(context)}\n </FocusTrap>\n </TabbableModeContext.Provider>\n </div>\n </div>\n );\n}\n\n/**\n * Helper method to determine whether item is selectable\n * @returns true if item is selectable (show hover effect), false otherwise\n */\nconst isSelectable = (selectionMode: SelectionMode, isItemSelected: boolean) => {\n return selectionMode !== 'none' && (selectionMode === 'multiple' || !isItemSelected);\n};\n\nexport const MemoizeListViewItem = memo(ListViewItem, (prev: any, next: any) => {\n if (prev && next) {\n return (\n prev.children === next.children &&\n prev.isFocused === next.isFocused &&\n prev.isFocusRingVisible === next.isFocusRingVisible &&\n prev.isSelected === next.isSelected &&\n prev.isTabbable === next.isTabbable &&\n prev.isActive === next.isActive &&\n prev.suggestion === next.suggestion &&\n prev.isGridlineVisible === next.isGridlineVisible &&\n prev.isTopGridlineVisible === next.isTopGridlineVisible &&\n prev.padding === next.padding &&\n compareListItemContext(prev.context, next.context)\n );\n }\n return false;\n});\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { ComponentChildren } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { skeletonStyles } from './themes/ListStyles.css';\n\ntype Props = {\n /**\n * Allows to pass and access the properties from child elements\n **/\n children?: (index: number) => ComponentChildren;\n /**\n * Allows to specify number of skeletons to be rendered on initial load\n **/\n minimumCount?: number;\n};\n\n/**\n * Allows to specify the time delay for rendering the component\n **/\nconst timerValue = 50;\n\n/**\n * SkeletonContainer renders 'minimumCount' number of skeletons\n * of the variant specified from its child element - Skeleton's prop after\n * 'timerValue' ms delay\n **/\nexport function SkeletonContainer({ children, minimumCount = 1 }: Props) {\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n setTimeout(() => {\n setIsVisible(true);\n }, timerValue);\n }, []);\n\n const containerClasses = classNames([skeletonStyles.container]);\n return isVisible && children ? (\n <div class={containerClasses} role=\"presentation\">\n {[...Array(minimumCount)].map((_element, index) => children(index))}\n </div>\n ) : null;\n}\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { globalImages } from '#/ImageVars.css';\nimport { sparkleStyles } from './themes/ListStyles.css';\nimport { useTheme } from '#/hooks/UNSAFE_useTheme';\n\nconst SPARKLE_STYLE_CLASS = 'oj-collection-sparkle';\n\n/**\n * A sparkle component for smart suggestion indicator in ListView\n * @param sparkleHeight the height of sparkle\n */\nexport function Sparkle({ sparkleHeight }: { sparkleHeight: number }) {\n const { name } = useTheme();\n if (sparkleHeight <= 0) {\n return null;\n }\n\n const height = sparkleHeight + 'px';\n const sparkleClasses = classNames([sparkleStyles.base]);\n const containerClasses = classNames([\n sparkleStyles.container,\n SPARKLE_STYLE_CLASS,\n // TODO: this component should create separate theme definitions to only show the image in redwood\n name === 'redwood' && globalImages\n ]);\n\n return (\n <div key=\"sparkle\" class={containerClasses}>\n <div class={sparkleClasses} style={{ height }}></div>\n </div>\n );\n}\n","import type { RefObject } from 'preact';\nimport { useState, useEffect, useMemo } from 'preact/hooks';\nimport { Props as ListViewProps } from '../UNSAFE_ListView';\nimport { PLACEHOLDER_STYLE_CLASS } from '../PRIVATE_VirtualizedCollection';\nimport { Metadata } from '../UNSAFE_Collection';\n\nexport const usePromotedSection = <K extends string | number, D>(\n data: ListViewProps<K, D>['data'],\n promotedSection: ListViewProps<K, D>['promotedSection'],\n rootRef: RefObject<HTMLDivElement>\n) => {\n // tracking sparkle height\n const [sparkleHeight, setSparkleHeight] = useState<number>(0);\n\n const suggestions = useMemo(\n () => data && promotedSection && findSuggestions(data.data, promotedSection.count),\n [data, promotedSection]\n );\n\n useEffect(() => {\n // update sparkleHeight only when we have suggestions\n // avoid unnecessary iterating through elements\n if (suggestions) {\n const placeholder = rootRef.current?.querySelector(\n '.' + PLACEHOLDER_STYLE_CLASS\n ) as HTMLElement;\n let height = placeholder?.offsetHeight || 0;\n const suggestionItems = rootRef.current?.querySelectorAll('[data-oj-suggestion]');\n suggestionItems?.forEach((item) => (height += (item as HTMLElement).offsetHeight));\n setSparkleHeight(height);\n }\n }, [rootRef, suggestions]);\n\n return { sparkleHeight, suggestions };\n};\n\n/**\n * A helper function that finds the data with suggestions, and\n * returns the corresponding keys\n * @param dataState\n */\nconst findSuggestions = <K, D>(data: { data: D; metadata: Metadata<K> }[], count: number) => {\n if (count === 0) {\n return null;\n }\n\n const suggestionsData = data.slice(0, count);\n return suggestionsData.reduce((suggestions, value, index) => {\n const key = value.metadata.key;\n\n if (index === count - 1) {\n suggestions.set(key, 'end');\n } else {\n suggestions.set(key, true);\n }\n\n return suggestions;\n }, new Map<K, 'end' | true>());\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport { FlattenedDataState } from '../UNSAFE_Collection';\nimport { Keys } from '../utils/UNSAFE_keys';\n\n/**\n * Helper function to only include keys of leaf items.\n */\nexport const excludeGroup = <K, D>(data: FlattenedDataState<K, D>, keys: Keys<K>) => {\n if (!keys.all) {\n const groups = data.data\n .filter((dataMetadata) => {\n return !dataMetadata.metadata.isLeaf;\n })\n .map((dataMetadata) => {\n return dataMetadata.metadata.key;\n });\n const leafOnly = Array.from(keys.keys.values()).filter((key: K) => {\n return !groups.includes(key);\n });\n return { ...keys, keys: new Set(leafOnly) };\n }\n return keys;\n};\n\n/**\n * A helper function to make sure specified elem is visible in the specified container\n */\nexport const scrollToVisible = (elem: Element, scroller: Element, offset: number) => {\n if (elem && scroller) {\n if ((elem as any).scrollIntoViewIfNeeded) {\n // for Safari, we'll need the non-standard scrollIntoViewIfNeeded\n (elem as any).scrollIntoViewIfNeeded();\n } else {\n elem.scrollIntoView({ block: 'nearest' });\n }\n if (offset > 0) {\n const scrollerBounds = scroller.getBoundingClientRect();\n const elemBounds = elem.getBoundingClientRect();\n const diff = scrollerBounds.top + offset - elemBounds.top;\n if (diff > 0) {\n scroller.scrollTop = scroller.scrollTop - diff;\n }\n }\n }\n};\n","import type { RefObject } from 'preact';\nimport { useEffect, useCallback, useRef, useMemo } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { Keys, addKeys } from '../utils/UNSAFE_keys';\nimport {\n DataState,\n Metadata,\n Range,\n SelectionDetail,\n CurrentKeyDetail\n} from '../UNSAFE_Collection';\nimport { getListViewRoles } from './ListRoles';\nimport {\n SelectionRangeDetail,\n useSelection,\n useDropDownSelection\n} from '../hooks/PRIVATE_useSelection';\nimport { useCurrentKey } from '../hooks/PRIVATE_useCurrentKey';\nimport { useCollectionFocusRing } from '../hooks/PRIVATE_useCollectionFocusRing';\nimport { useItemAction } from '../hooks/PRIVATE_useItemAction';\nimport { Props as ListViewProps } from '../UNSAFE_ListView';\nimport { getPrevNextKey, findElementByKey, keyExtractor } from '../utils/PRIVATE_collectionUtils';\nimport { ITEM_SELECTOR } from './ListItem';\nimport { scrollToVisible } from './ListUtils';\n\nexport const useSelectionAndNavigation = <K extends string | number, D>(\n currentKey: K | undefined,\n selectedKeys: Keys<K>,\n selectionMode: ListViewProps<K, D>['selectionMode'] = 'none',\n onCurrentKeyChange: ((detail: CurrentKeyDetail<K>) => void) | undefined,\n onSelectionChange: ListViewProps<K, D>['onSelectionChange'],\n onItemAction: ListViewProps<K, D>['onItemAction'],\n data: ListViewProps<K, D>['data'],\n viewportConfig: ListViewProps<K, D>['viewportConfig'],\n role: ListViewProps<K, D>['role'] = 'grid',\n scrollToVisibleOffset: ListViewProps<K, D>['scrollToVisibleOffset'],\n rootRef: RefObject<HTMLDivElement>,\n pendingSelectionCallback: (detail: SelectionRangeDetail<K>, value: Range) => void,\n isCurrentItemOverridden: boolean,\n isEmbedded: boolean\n) => {\n const listRoles = useMemo(() => getListViewRoles(role), [role]);\n\n // tracking the anchor key which is used for shift+click selection\n const anchorKey = useRef<K | undefined>();\n\n const { currentKeyProps } = useCurrentKey(\n (element) => keyExtractor(element, ITEM_SELECTOR),\n selectionMode !== 'multiple' || isEmbedded,\n getPrevNextKey(rootRef.current, currentKey, true, ITEM_SELECTOR),\n getPrevNextKey(rootRef.current, currentKey, false, ITEM_SELECTOR),\n undefined,\n undefined,\n currentKey,\n onCurrentKeyChange\n );\n\n const [showFocusRing, focusRingProps] = useCollectionFocusRing(rootRef, ['ArrowUp', 'ArrowDown']);\n\n useEffect(() => {\n if (currentKey != null && rootRef.current) {\n const elem = findElementByKey(rootRef.current, currentKey, ITEM_SELECTOR);\n if (elem) {\n const activeDescendant = rootRef.current.getAttribute('aria-activedescendant');\n const cell = elem.querySelector(`[role=${listRoles.cell}]`);\n if (cell && activeDescendant !== cell.id) {\n // update aria-activedescendant for screenreader\n rootRef.current.setAttribute('aria-activedescendant', cell.id);\n\n // scroll the current item into view only when the current item is updated internally and listview has focus\n // or when the collection gesture is 'embedded' if the current item is updated by the app\n const hasFocus = rootRef.current?.contains(document.activeElement as HTMLElement);\n if ((!isCurrentItemOverridden && hasFocus) || isEmbedded) {\n const scroller = viewportConfig?.scroller();\n const offset = scrollToVisibleOffset ? scrollToVisibleOffset(rootRef.current) : 0;\n // make sure item is visible\n scrollToVisible(elem, scroller != null ? scroller : rootRef.current, offset);\n }\n }\n }\n }\n // listen to data because the current item would re-render when the virtualizer\n // is fetching data or updating the data, i.e. the id of current item would be updated,\n // so the currentKey itself couldn't guarantee the root has latest aria-activedescendant\n }, [\n currentKey,\n data,\n listRoles.cell,\n viewportConfig,\n scrollToVisibleOffset,\n rootRef,\n isCurrentItemOverridden,\n isEmbedded\n ]);\n\n const handleSelectionChange = useCallback(\n (detail: SelectionDetail<K>) => {\n if (onSelectionChange) {\n if (detail.value.all === false && detail.value.keys.size > 0) {\n // during regular selection, the last key selected by a user gesture is the anchor key\n anchorKey.current = Array.from(detail.value.keys.values()).pop();\n }\n onSelectionChange(detail);\n }\n },\n [anchorKey, onSelectionChange]\n );\n\n const handleSelectionRangeChange = useCallback(\n (detail: SelectionRangeDetail<K>) => {\n if (data && onSelectionChange) {\n const value = handleSelectionRange(detail, data);\n if (Array.isArray(value)) {\n if (detail.eventType === 'shiftSpace') {\n // during range selection by shift+space, the first key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.start;\n } else {\n // during range selection by shift+click/arrow keys, the last key selected by a user gesture is the anchor key\n anchorKey.current = detail.value.end;\n }\n if (!isEmbedded) {\n onSelectionChange({ value: { all: false, keys: new Set(value) }, target: null });\n } else {\n const keys = addKeys(selectedKeys, value);\n onSelectionChange({ value: keys, target: null });\n }\n } else {\n pendingSelectionCallback(detail, value);\n }\n }\n },\n [data, isEmbedded, selectedKeys, onSelectionChange, pendingSelectionCallback]\n );\n\n const { selectionProps } = useSelection(\n (element: HTMLElement) => {\n if (element === rootRef.current) {\n return currentKey === undefined ? null : currentKey;\n }\n return keyExtractor(element, ITEM_SELECTOR) as K;\n },\n selectedKeys,\n isEmbedded ? 'none' : selectionMode,\n false,\n 'replace',\n handleSelectionChange,\n anchorKey.current,\n currentKey,\n (currentKey: K | undefined, isPrev: boolean) =>\n getPrevNextKey(rootRef.current, currentKey, isPrev, ITEM_SELECTOR),\n undefined,\n (key: K) => {\n if (rootRef.current) {\n const elem = findElementByKey(rootRef.current, key, ITEM_SELECTOR);\n if (elem) {\n const scroller = viewportConfig?.scroller();\n const offset = scrollToVisibleOffset ? scrollToVisibleOffset(rootRef.current) : 0;\n scrollToVisible(elem, scroller != null ? scroller : rootRef.current, offset);\n }\n }\n },\n handleSelectionRangeChange\n );\n\n const { dropDownSelectionProps } = useDropDownSelection(\n (element: HTMLElement) => {\n if (element === rootRef.current) {\n return currentKey === undefined ? null : currentKey;\n }\n return keyExtractor(element, ITEM_SELECTOR) as K;\n },\n selectedKeys,\n isEmbedded ? selectionMode : 'none',\n false,\n (key: K) => {\n if (data) {\n return data.data.findIndex(\n (value: { data: D; metadata: Metadata<K> }) => value.metadata.key === key\n );\n }\n return -1;\n },\n (startIndex: number, endIndex: number) => {\n if (data) {\n const keys = data.data.map(\n (value: { data: D; metadata: Metadata<K> }) => value.metadata.key\n );\n return keys.slice(startIndex, endIndex);\n }\n return [];\n },\n (currentKey: K | undefined, isPrev: boolean) =>\n getPrevNextKey(rootRef.current, currentKey, isPrev, ITEM_SELECTOR),\n currentKey,\n handleSelectionChange,\n handleSelectionRangeChange\n );\n\n const itemActionProps = useItemAction(currentKey, data, onItemAction, ITEM_SELECTOR, isEmbedded);\n\n return {\n eventProps: mergeProps(\n currentKeyProps,\n focusRingProps,\n selectionProps,\n itemActionProps,\n dropDownSelectionProps\n ),\n showFocusRing,\n handleSelectionChange\n };\n};\n\nexport const handleSelectionRange = <K, D>(\n detail: SelectionRangeDetail<K>,\n dataState: DataState<K, D>\n) => {\n const keys = dataState.data.map((value: { data: D; metadata: Metadata<K> }) => {\n return value.metadata.key;\n });\n const startIndex = keys.indexOf(detail.value.start);\n const endIndex = keys.indexOf(detail.value.end);\n const minIndex = Math.min(startIndex, endIndex);\n const maxIndex = Math.max(startIndex, endIndex);\n if (minIndex === -1) {\n // return a range to fetch so we can find all the keys, maxIndex should not be -1\n return { offset: 0, count: dataState.totalSize };\n } else {\n // range of keys are in the current viewport, return them\n return keys.slice(minIndex, maxIndex + 1);\n }\n};\n","import type { RefObject } from 'preact';\nimport { useCallback, useRef } from 'preact/hooks';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { Props as ListViewProps } from '../UNSAFE_ListView';\nimport { CurrentKeyDetail } from '../UNSAFE_Collection';\nimport { getFirstVisibleKey, keyExtractor } from '../utils/PRIVATE_collectionUtils';\nimport { isKeyDefined } from '../utils/UNSAFE_keys';\nimport { ITEM_SELECTOR } from './ListItem';\nimport { useTabbableModeSet } from '../hooks/PRIVATE_useTabbableModeSet';\nimport { findElementByKey } from '../utils/PRIVATE_collectionUtils';\nimport { scrollToVisible } from './ListUtils';\n\nexport const useFocusTabbableMode = <K extends string | number, D>(\n currentKey: K | undefined,\n onCurrentKeyChange: ((detail: CurrentKeyDetail<K>) => void) | undefined,\n allowTabbableMode: ListViewProps<K, D>['allowTabbableMode'],\n rootRef: RefObject<HTMLDivElement>,\n viewportConfig: ListViewProps<K, D>['viewportConfig'],\n scrollToVisibleOffset: ListViewProps<K, D>['scrollToVisibleOffset']\n) => {\n const pendingCurrentKey = useRef<K>();\n\n // ensure current item scroll into view when listview regains focus\n // unless pendingCurrentKey gets updated to something different than currentKey\n const focusAndScrollIntoView = useRef(true);\n\n const [isCurrentTabbableKey, tabbableModeProps] = useTabbableModeSet(\n rootRef,\n (element) => {\n // we don't want List to go into Tabbable mode when user clicks on expander\n return isExpander(element) ? null : (keyExtractor(element, ITEM_SELECTOR) as K);\n },\n currentKey,\n onCurrentKeyChange\n );\n\n const handleInitialFocus = useCallback(() => {\n if (\n rootRef.current &&\n onCurrentKeyChange &&\n (!allowTabbableMode || isCurrentTabbableKey(undefined))\n ) {\n const firstKey =\n pendingCurrentKey.current || (getFirstVisibleKey(rootRef.current, ITEM_SELECTOR) as K);\n if (isKeyDefined(firstKey)) {\n onCurrentKeyChange({ value: firstKey });\n }\n }\n }, [rootRef, onCurrentKeyChange, allowTabbableMode, isCurrentTabbableKey]);\n\n const handleFocus = useCallback(\n (event: FocusEvent) => {\n if (isExpander(event.target as HTMLElement)) {\n rootRef.current?.focus();\n const key = keyExtractor(event.target as HTMLElement, ITEM_SELECTOR);\n if (onCurrentKeyChange && isKeyDefined(key)) {\n onCurrentKeyChange({ value: key as K });\n }\n return;\n }\n if (!isKeyDefined(currentKey)) {\n onCurrentKeyChange && handleInitialFocus();\n } else if (rootRef.current) {\n const elem = findElementByKey(rootRef.current, currentKey as K, ITEM_SELECTOR);\n if (elem) {\n // if currentKey is defined, make sure scroll the current item into view only when listview regains focus\n // unless pendingCurrentKey gets updated to something different than currentKey\n if (focusAndScrollIntoView.current) {\n const scroller = viewportConfig?.scroller();\n const offset = scrollToVisibleOffset ? scrollToVisibleOffset(rootRef.current) : 0;\n scrollToVisible(elem, scroller != null ? scroller : rootRef.current, offset);\n }\n focusAndScrollIntoView.current = true;\n } else {\n // if elem is not found, meaning the currentKey is not valid, we should pick the first item as current item\n onCurrentKeyChange && handleInitialFocus();\n }\n }\n },\n [\n currentKey,\n handleInitialFocus,\n onCurrentKeyChange,\n scrollToVisibleOffset,\n viewportConfig,\n rootRef\n ]\n );\n\n /**\n * Need to track pointer down element to set currentItem when initial focus happens\n */\n const handlePointerDown = useCallback(\n (event: PointerEvent) => {\n const key = keyExtractor(event.target as HTMLElement, ITEM_SELECTOR);\n if (isKeyDefined(key)) {\n pendingCurrentKey.current = key as K;\n if (key !== currentKey) {\n focusAndScrollIntoView.current = false;\n }\n }\n },\n [currentKey]\n );\n\n return {\n eventProps: mergeProps(allowTabbableMode ? tabbableModeProps : {}, {\n onFocus: handleFocus,\n onPointerDown: handlePointerDown\n }),\n isCurrentTabbableKey\n };\n};\n\nconst isExpander = (elem: HTMLElement) => {\n if (elem.parentElement && elem.parentElement.classList.contains('oj-listview-expander')) {\n return true;\n }\n return false;\n};\n","/**\n * @license\n * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.\n * The Universal Permissive License (UPL), Version 1.0\n * as shown at https://oss.oracle.com/licenses/upl/\n * @ignore\n */\nimport type { RefObject } from 'preact';\nimport { useRef, useCallback, useState, useImperativeHandle, useEffect } from 'preact/hooks';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { containsKey, Keys, isKeyDefined, addKeys } from '../utils/UNSAFE_keys';\nimport { DataState, ItemContext, ListItemRendererContext, Range } from '../UNSAFE_Collection';\nimport { LoadMoreCollection, LOADMORE_STYLE_CLASS } from '../PRIVATE_LoadMoreCollection';\nimport { VirtualizedCollection } from '../PRIVATE_VirtualizedCollection';\nimport { ViewportConfig } from '../hooks/UNSAFE_useViewportIntersect';\nimport { ListViewItem, ITEM_SELECTOR, MemoizeListViewItem } from './ListItem';\n\nimport { SelectionRangeDetail } from '../hooks/PRIVATE_useSelection';\nimport { SkeletonContainer } from './SkeletonContainer';\nimport { Skeleton } from '../UNSAFE_Skeleton';\nimport { Flex } from '../UNSAFE_Flex';\nimport { Selector } from '../UNSAFE_Selector';\nimport { Props } from '../UNSAFE_ListView';\nimport { Sparkle } from './Sparkle';\nimport { listStyles } from './themes/ListStyles.css';\nimport { useTestId } from '../hooks/UNSAFE_useTestId';\nimport { useCollectionInteractionContext } from '../hooks/UNSAFE_useCollectionInteractionContext';\nimport { usePromotedSection } from './usePromotedSection';\nimport { useSelectionAndNavigation, handleSelectionRange } from './useSelectionAndNavigation';\nimport { useFocusTabbableMode } from './useFocusTabbableMode';\nimport { useCurrentItemOverride } from './useCurrentItemOverride';\nimport { Inset } from '../UNSAFE_Inset';\n// TODO: add this import due to issue JET-67485, need to update once Stable is introduced\nimport './themes/redwood/ListBaseTheme.css';\n\n/**\n * Component that renders items as a flat list.\n * In order to maximize performance, only items that are visible in the viewport are rendered.\n */\nexport function List<K extends string | number, D>({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n allowTabbableMode = true,\n children,\n data,\n gridlines,\n loadingIndicator = defaultLoadingIndicator,\n currentItemOverride,\n onPersistCurrentItem,\n onLoadRange,\n onSelectionChange,\n onItemAction,\n rangeExtractor,\n role = 'grid',\n selectedKeys = emptyKeys as Keys<K>,\n selectionMode = 'none',\n viewportConfig,\n currentItemVariant,\n promotedSection,\n isVirtualized = false,\n customItemRenderer,\n scrollToVisibleOffset,\n testId,\n scrollerRef,\n reorderProps,\n contextMenuTriggerProps,\n itemPadding,\n ...props\n}: Props<K, D>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const isFetching = useRef(false);\n\n // tracking pending selection key that is not in current data\n const pendingSelection = useRef<{ detail: SelectionRangeDetail<K>; range: Range }>();\n\n const [active, setActive] = useState<boolean>(false);\n\n const showGridline = (index: number) => {\n // show bottom gridlines for each item, and for the last item if specified\n return (\n gridlines?.item === 'visible' &&\n (index + 1 !== data?.totalSize || gridlines?.bottom === 'visible')\n );\n };\n\n const showGridlineTop = () => {\n // show the top gridline for the first item\n return gridlines?.item === 'visible' && gridlines?.top === 'visible';\n };\n\n const ariaMultiSelectable = selectionMode === 'none' ? undefined : selectionMode === 'multiple';\n const ariaRowCount =\n data === null ? undefined : data.sizePrecision === 'exact' ? data.totalSize : -1;\n\n const classes = classNames([listStyles.base]);\n\n const isEmbedded = useCollectionInteractionContext() === 'embedded';\n const itemVariant =\n currentItemVariant !== undefined ? currentItemVariant : isEmbedded ? 'highlight' : 'none';\n\n const pendingSelectionCallback = useCallback(\n (detail: SelectionRangeDetail<K>, value: Range) => {\n if (data) {\n pendingSelection.current = {\n detail: detail,\n range: { offset: data.offset, count: data.data.length }\n };\n onLoadRange(value);\n }\n },\n [data, onLoadRange]\n );\n\n /*****************************************************************************************/\n /************************************* Load More *****************************************/\n /*****************************************************************************************/\n\n const lastRange = useRef({ offset: 0, count: 0 });\n const handleLoadRange = useCallback(\n (newRange: { offset: number; count: number }) => {\n // check isFetching to avoid multiple load more at the same time (details in JET-68994)\n if (\n !isFetching.current ||\n lastRange.current.offset !== newRange.offset ||\n lastRange.current.count !== newRange.count\n ) {\n isFetching.current = true;\n lastRange.current = newRange;\n onLoadRange(newRange);\n }\n },\n [isFetching, onLoadRange]\n );\n\n useEffect(() => {\n isFetching.current = false;\n // listen to data because when one of them gets updated, the fetching is done\n }, [data]);\n\n const { currentKey, onCurrentKeyChange, isCurrentItemOverridden } = useCurrentItemOverride(\n currentItemOverride,\n onPersistCurrentItem\n );\n\n const { eventProps, showFocusRing, handleSelectionChange } = useSelectionAndNavigation(\n currentKey,\n selectedKeys,\n selectionMode,\n onCurrentKeyChange,\n onSelectionChange,\n onItemAction,\n data,\n viewportConfig,\n role,\n scrollToVisibleOffset,\n rootRef,\n pendingSelectionCallback,\n isCurrentItemOverridden,\n isEmbedded\n );\n\n const { eventProps: focusTabbableProps, isCurrentTabbableKey } = useFocusTabbableMode(\n currentKey,\n onCurrentKeyChange,\n allowTabbableMode,\n rootRef,\n viewportConfig,\n scrollToVisibleOffset\n );\n\n if (data && pendingSelection.current !== undefined && onSelectionChange) {\n const keys = handleSelectionRange(pendingSelection.current.detail, data);\n if (Array.isArray(keys)) {\n if (!isEmbedded) {\n onSelectionChange({ value: { all: false, keys: new Set(keys) }, target: null });\n } else {\n const value = addKeys(selectedKeys, keys);\n onSelectionChange({ value, target: null });\n }\n }\n const range = pendingSelection.current\n ? pendingSelection.current.range\n : { offset: data.offset, count: data.data.length };\n data = adjustDataState(data, range);\n pendingSelection.current = undefined;\n onLoadRange(range);\n }\n\n const { sparkleHeight, suggestions } = usePromotedSection(data, promotedSection, rootRef);\n\n // TODO: check suggestions before Sparkle would cause a scrolling issue\n const sparkleIndicator = <Sparkle sparkleHeight={sparkleHeight}></Sparkle>;\n\n // Collection generic is of this type\n type DataStateData = DataState<K, D>['data'][number];\n\n // returns an ListItemContext based on ItemContext (added metadata and selector)\n // note the type for ItemContext, this is the context coming from Collection\n const getItemContext = useCallback(\n (context: ItemContext<DataStateData>) => {\n const dataStateData = context.data;\n const selectorRenderer =\n selectionMode === 'multiple'\n ? () => (\n <Selector\n onChange={handleSelectionChange}\n rowKey={dataStateData.metadata.key}\n selectedKeys={selectedKeys}></Selector>\n )\n : undefined;\n\n return {\n index: context.index,\n data: dataStateData.data,\n metadata: dataStateData.metadata,\n selector: selectorRenderer\n };\n },\n [selectionMode, selectedKeys, handleSelectionChange]\n );\n\n const ItemComponent = isVirtualized ? ListViewItem : MemoizeListViewItem;\n\n const childrenComponent = (context: ItemContext<DataStateData>) => {\n const listItemContext = getItemContext(context);\n const suggestion = suggestions?.get(listItemContext.metadata.key);\n const isTabbable = allowTabbableMode && isCurrentTabbableKey(listItemContext.metadata.key);\n const isFocused = currentKey === listItemContext.metadata.key && !isTabbable;\n const isActive = isFocused && active;\n const isSelected = containsKey(selectedKeys, listItemContext.metadata.key);\n const isFocusRingVisible = isFocused && showFocusRing;\n const listItemFunc = (ctx: ListItemRendererContext<K, D>, otherProps?: any) => (\n <ItemComponent\n key={listItemContext.metadata.key}\n context={ctx}\n isFocused={isFocused}\n isFocusRingVisible={isFocusRingVisible}\n isActive={isActive}\n isGridlineVisible={showGridline(listItemContext.index)}\n isSelected={isSelected}\n isTabbable={allowTabbableMode && isCurrentTabbableKey(listItemContext.metadata.key)}\n role={role}\n selectionMode={selectionMode}\n currentItemVariant={itemVariant}\n padding={itemPadding}\n {...(suggestion && { suggestion })}\n {...(listItemContext.index === 0 && { isTopGridlineVisible: showGridlineTop() })}\n {...otherProps}>\n {children}\n </ItemComponent>\n );\n\n // if customItemRenderer is specified (ExpandableList and GroupedList)\n // create a custom context with additional info including a function\n // that helps create the default item component\n if (customItemRenderer) {\n const customRendererContext = {\n listItemContext,\n isFocused,\n isFocusRingVisible,\n isSelected,\n isTabbable,\n isActive,\n defaultListItem: listItemFunc\n };\n return customItemRenderer(customRendererContext);\n }\n return listItemFunc(listItemContext);\n };\n\n viewportConfig = getViewportConfig(rootRef, viewportConfig);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === ' ' && isKeyDefined(currentKey) && selectionMode !== 'none') {\n setActive(true);\n }\n },\n [currentKey, selectionMode, setActive]\n );\n\n const handleKeyUp = useCallback(() => {\n setActive(false);\n }, [setActive]);\n\n useImperativeHandle(scrollerRef!, () => rootRef.current);\n\n // if data is not specified, listview should show loading indicator\n // todo: replace placeholder with actual SkeletonContainer component (Ash is working on)\n const testIdProps = useTestId(testId);\n return (\n <div\n {...mergeProps(\n eventProps,\n focusTabbableProps,\n contextMenuTriggerProps || {},\n reorderProps || {},\n {\n onKeyDown: handleKeyDown,\n onKeyUp: handleKeyUp\n },\n props\n )}\n {...testIdProps}\n role={role}\n aria-rowcount={role === 'grid' ? ariaRowCount : undefined}\n aria-colcount={role === 'grid' ? 1 : undefined}\n ref={rootRef}\n class={classes}\n tabIndex={0}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-multiselectable={ariaMultiSelectable}>\n {data == null ? (\n loadingIndicator\n ) : isVirtualized ? (\n <VirtualizedCollection\n data={data}\n itemSelector={ITEM_SELECTOR}\n loadMoreIndicator={defaultLoadMoreIndicator}\n onLoadRange={onLoadRange}\n rangeExtractor={rangeExtractor}\n suggestions={sparkleIndicator}\n viewportConfig={viewportConfig}>\n {childrenComponent}\n </VirtualizedCollection>\n ) : (\n <LoadMoreCollection\n data={data.data}\n loadMoreIndicator={defaultLoadMoreIndicator}\n hasMore={data.sizePrecision === 'atLeast' && data.data.length <= data.totalSize}\n onLoadMore={() => {\n data && handleLoadRange({ offset: 0, count: data.data.length + 25 });\n }}\n suggestions={sparkleIndicator}\n viewportConfig={viewportConfig}>\n {childrenComponent}\n </LoadMoreCollection>\n )}\n </div>\n );\n}\n\nconst getViewportConfig = (rootRef: RefObject<HTMLElement>, config?: ViewportConfig) => {\n return (\n config ?? {\n scroller: () => {\n return rootRef.current;\n }\n }\n );\n};\n\nconst emptyKeys = { all: false, keys: new Set() };\n\nconst defaultLoadingIndicator = (\n <SkeletonContainer minimumCount={25}>\n {() => {\n return (\n <Inset variant=\"listview\">\n <Flex height=\"6x\" align=\"center\">\n <Skeleton height=\"4x\" />\n </Flex>\n </Inset>\n );\n }}\n </SkeletonContainer>\n);\n\nconst defaultLoadMoreIndicator = (\n <div class={LOADMORE_STYLE_CLASS}>\n <SkeletonContainer minimumCount={3}>\n {() => {\n return (\n <Inset variant=\"listview\">\n <Flex height=\"6x\" align=\"center\">\n <Skeleton height=\"4x\" />\n </Flex>\n </Inset>\n );\n }}\n </SkeletonContainer>\n </div>\n);\n\n/**\n * Adjust the DataState as needed if it contains more than needed for the specified range\n */\nconst adjustDataState = <K, D>(dataState: DataState<K, D>, range: Range | null) => {\n if (range) {\n // prevent range offset from being larger than the data state\n const safeRangeOffset = Math.min(range.offset, dataState.offset + dataState.totalSize);\n const diff = safeRangeOffset - dataState.offset;\n if (diff > 0) {\n dataState = {\n offset: safeRangeOffset,\n data: dataState.data.slice(diff, diff + range.count),\n totalSize: dataState.totalSize,\n sizePrecision: dataState.sizePrecision\n };\n }\n }\n return dataState;\n};\n","import { useRef, useMemo, useState, useEffect } from 'preact/hooks';\nimport { Props as ListProps } from '../UNSAFE_ListView';\nimport { CurrentKeyDetail, Item } from '../UNSAFE_Collection';\nimport { useReorderableContext } from '../hooks/PRIVATE_useReorderable/useReorderableContext';\n\n/**\n * This hook converts the new API (i.e. currentItemOverride and onPersistCurrentItem) back to\n * the old API (i.e. currentKey and onCurrentKeyChange), keeps the internal current item, and\n * also triggers an update when a new currentItemOverride is passed by the app\n *\n * @param currentItemOverride\n * @param onPersistCurrentItem\n */\nexport const useCurrentItemOverride = <K extends string | number, D>(\n currentItemOverride: ListProps<K, D>['currentItemOverride'],\n onPersistCurrentItem: ListProps<K, D>['onPersistCurrentItem']\n) => {\n // the internal state of current item\n const [currentItem, setCurrentItem] = useState<Item<K>>();\n // track the currentItemOverride props\n const currentItemOverrideRef = useRef<Item<K>>();\n // whether the current item is overridden by the app\n const isCurrentItemOverridden = useRef(false);\n\n // if reorder is enabled, need to update the context here when current item is changed\n const reorderContext = useReorderableContext();\n\n // intercept onPersistCurrentItem calls to ensure internal state is updated appropriately\n const handleCurrentItemChanged = useMemo(() => {\n return (detail: CurrentKeyDetail<K>) => {\n const rowKey = detail.value;\n setCurrentItem({ rowKey });\n onPersistCurrentItem?.(detail);\n if (reorderContext?.currentItemKey != null) {\n reorderContext.currentItemKey.current = rowKey;\n }\n };\n }, [onPersistCurrentItem, reorderContext?.currentItemKey]);\n\n // ensure any new currentItemOverride settings are applied only on that render\n // (same as how Table handles the changes)\n if (currentItemOverrideRef.current !== currentItemOverride) {\n currentItemOverrideRef.current = currentItemOverride;\n if (currentItem?.rowKey !== currentItemOverride?.rowKey) {\n isCurrentItemOverridden.current = true;\n handleCurrentItemChanged({ value: currentItemOverride?.rowKey as K });\n }\n }\n\n useEffect(() => {\n isCurrentItemOverridden.current = false;\n });\n\n return {\n currentKey: currentItem?.rowKey,\n onCurrentKeyChange: handleCurrentItemChanged,\n isCurrentItemOverridden: isCurrentItemOverridden.current\n };\n};\n"],"names":["getListViewRoles","ariaRole","list","item","cell","ITEM_SELECTOR","ListViewItem","children","context","itemDepth","isFocused","isFocusRingVisible","isActive","isGridlineVisible","isSelected","isTopGridlineVisible","isTabbable","role","selectionMode","suggestion","currentItemVariant","padding","rootRef","useRef","roles","useMemo","itemKey","metadata","key","itemIndex","index","cellRoleAttributes","interactionProps","applyActiveStyle","applyHoverStyle","applyPseudoHoverStyle","useInteractionStyle","variantClasses","listItemMultiVariantStyles","selectable","isSelectable","selected","selectedSingle","needsEventsHover","pseudoHover","active","focusHighlight","focusRingVisible","gridlineTop","gridlineBottom","paddingClasses","push","paddingStyles","allPadding","top","topItemPadding","bottom","bottomItemPadding","start","startItemPadding","end","endItemPadding","classes","classNames","styleInterpolations","mergeInterpolations","Object","values","flexitemInterpolations","class","cls","cellStyles","flex","alignSelf","cellClasses","listItemStyles","checkboxContainer","_jsx","jsx","undefined","ref","id","useId","style","onKeyDown","event","stopPropagation","TabbableModeContext","Provider","value","FocusTrap","isDisabled","restoreFocusRef","isItemSelected","MemoizeListViewItem","memo","prev","next","compareListItemContext","SkeletonContainer","minimumCount","isVisible","setIsVisible","useState","useEffect","setTimeout","containerClasses","skeletonStyles","container","Array","map","_element","SPARKLE_STYLE_CLASS","Sparkle","sparkleHeight","name","useTheme","height","sparkleClasses","sparkleStyles","base","globalImages","findSuggestions","data","count","slice","reduce","suggestions","set","Map","scrollToVisible","elem","scroller","offset","scrollIntoViewIfNeeded","scrollIntoView","block","scrollerBounds","getBoundingClientRect","elemBounds","diff","scrollTop","handleSelectionRange","detail","dataState","keys","startIndex","indexOf","endIndex","minIndex","Math","min","maxIndex","max","totalSize","isExpander","parentElement","classList","contains","getViewportConfig","config","current","emptyKeys","all","Set","defaultLoadingIndicator","Inset","variant","Flex","align","Skeleton","defaultLoadMoreIndicator","LOADMORE_STYLE_CLASS","adjustDataState","range","safeRangeOffset","sizePrecision","ariaLabel","ariaLabelledBy","allowTabbableMode","gridlines","loadingIndicator","currentItemOverride","onPersistCurrentItem","onLoadRange","onSelectionChange","onItemAction","rangeExtractor","selectedKeys","viewportConfig","promotedSection","isVirtualized","customItemRenderer","scrollToVisibleOffset","testId","scrollerRef","reorderProps","contextMenuTriggerProps","itemPadding","props","isFetching","pendingSelection","setActive","ariaMultiSelectable","ariaRowCount","listStyles","isEmbedded","useCollectionInteractionContext","itemVariant","pendingSelectionCallback","useCallback","length","lastRange","handleLoadRange","newRange","currentKey","onCurrentKeyChange","isCurrentItemOverridden","currentItem","setCurrentItem","currentItemOverrideRef","reorderContext","useReorderableContext","handleCurrentItemChanged","rowKey","currentItemKey","useCurrentItemOverride","eventProps","showFocusRing","handleSelectionChange","listRoles","anchorKey","currentKeyProps","useCurrentKey","element","keyExtractor","getPrevNextKey","focusRingProps","useCollectionFocusRing","findElementByKey","activeDescendant","getAttribute","querySelector","setAttribute","hasFocus","document","activeElement","size","from","pop","handleSelectionRangeChange","isArray","eventType","addKeys","target","selectionProps","useSelection","isPrev","dropDownSelectionProps","useDropDownSelection","findIndex","itemActionProps","useItemAction","mergeProps","useSelectionAndNavigation","focusTabbableProps","isCurrentTabbableKey","pendingCurrentKey","focusAndScrollIntoView","tabbableModeProps","useTabbableModeSet","handleInitialFocus","firstKey","getFirstVisibleKey","isKeyDefined","handleFocus","focus","handlePointerDown","onFocus","onPointerDown","useFocusTabbableMode","setSparkleHeight","placeholder","PLACEHOLDER_STYLE_CLASS","offsetHeight","suggestionItems","querySelectorAll","forEach","usePromotedSection","sparkleIndicator","getItemContext","dataStateData","selectorRenderer","Selector","onChange","selector","ItemComponent","childrenComponent","listItemContext","get","containsKey","listItemFunc","ctx","otherProps","defaultListItem","handleKeyDown","handleKeyUp","useImperativeHandle","testIdProps","useTestId","onKeyUp","tabIndex","VirtualizedCollection","itemSelector","loadMoreIndicator","LoadMoreCollection","hasMore","onLoadMore","groups","filter","dataMetadata","isLeaf","leafOnly","includes"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', './Grid-
|
|
2
|
-
//# sourceMappingURL=ListItemLayout-
|
|
1
|
+
define(['exports', 'preact/jsx-runtime', './Grid-8911aa0f', './classNames-08d99695', './UNSAFE_ListItemLayout/themes/ListItemLayoutStyles.css'], (function(s,e,l,t,a){"use strict";s.ListItemLayout=function({children:s,selector:n,leading:c,primary:i,secondary:d,tertiary:r,overline:y,metadata:o,trailing:m,action:h,quaternary:u,navigation:p,verticalAlignment:x="middle"}){const{columnsTemplate:S,firstCell:N,secondCell:j,lastCell:v,hasSecondRow:f}="top"===x?function(s,l,n,c,i,d,r){const y=[];let o=null;s&&(y.push("auto"),o=e.jsx("div",{className:a.styles.optInSelectorStyles,children:s}));let m=null;(s||l)&&(y.push("auto"),m=e.jsx("div",{className:t.classNames([s?a.styles.leftPaddingStyles:"",a.styles.topAlignStyles,l?a.styles.optInRightPaddingStyles:""]),children:l}));y.push("1fr");let h=null;(n||c||i||r)&&(y.push("auto"),h=e.jsx("div",{className:t.classNames([a.styles.topAlignStyles]),children:e.jsxs("div",{className:t.classNames([a.styles.optInExtraStyles,a.styles.flexRowStyles]),children:[e.jsx("div",{className:t.classNames([a.styles.centerVerticalStyles,n?a.styles.leftPaddingStyles:""]),children:n}),e.jsx("div",{className:t.classNames([a.styles.centerVerticalStyles,c?a.styles.leftPaddingStyles:""]),children:c}),e.jsx("div",{className:t.classNames([a.styles.centerVerticalStyles,i?a.styles.actionStyles:""]),children:i})]})}));const u=y.join(" "),p=!(!d&&!r);return{columnsTemplate:u,firstCell:o,secondCell:m,lastCell:h,hasSecondRow:p}}(n,c,o,m,h,u,p):function(s,l,n,c,i,d,r){const y=[];let o=null;s&&(y.push("auto"),o=e.jsx("div",{className:a.styles.selectorStyles,children:s}));let m=null;l&&(y.push("auto"),m=e.jsx("div",{className:t.classNames([a.styles.centerVerticalStyles,a.styles.displayFlexStyle]),children:l}));y.push("1fr");let h=null;(n||c||i||r)&&(y.push("auto"),h=e.jsxs("div",{className:a.styles.flexRowStyles,children:[e.jsx("div",{className:t.classNames([a.styles.centerVerticalStyles,n?a.styles.leftPaddingStyles:""]),children:n}),e.jsx("div",{className:t.classNames([a.styles.centerVerticalStyles,c?a.styles.leftPaddingStyles:""]),children:c}),e.jsx("div",{className:t.classNames([a.styles.centerVerticalStyles,i?a.styles.actionStyles:""]),children:i})]}));const u=y.join(" "),p=!(!d&&!r);return{columnsTemplate:u,firstCell:o,secondCell:m,lastCell:h,hasSecondRow:p}}(n,c,o,m,h,u,p),g=y&&"top"===x?[N&&e.jsx("span",{children:" "}),j&&e.jsx("span",{children:" "}),e.jsx("div",{className:a.styles.topRowStyles,children:y}),v&&e.jsx("span",{children:" "})]:null,C=s?e.jsx("div",{className:a.styles.childrenStyles,children:s}):e.jsxs("div",{className:a.styles.flexColumnStyles,children:["top"===x?null:e.jsx("div",{children:y}),e.jsx("div",{children:i}),e.jsx("div",{children:d}),e.jsx("div",{children:r})]}),I=f?[N&&e.jsx("span",{children:" "}),j&&e.jsx("span",{children:" "}),e.jsx("div",{className:t.classNames(["top"===x?a.styles.optInTopPaddingStyles:"",a.styles.rowAlignStyles]),children:u}),v&&e.jsx("div",{className:t.classNames(["top"===x?a.styles.optInTopPaddingStyles:"",a.styles.endJustifyStyles]),children:p})]:null;return e.jsxs(l.Grid,{gap:"top"===x?"0x":"4x",gridTemplateColumns:S,children:[g,N,j,e.jsx("div",{className:a.styles.centerVerticalStyles,children:C}),v,I]})}}));
|
|
2
|
+
//# sourceMappingURL=ListItemLayout-e0b2c71e.js.map
|