@oracle/oraclejet-preact 18.0.12 → 18.0.14
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-e8bdebe6.js +2 -0
- package/amd/BarChart-e8bdebe6.js.map +1 -0
- package/amd/BarGroup-76ef0839.js +1 -1
- package/amd/BaseButton-9f103e94.js +1 -1
- package/amd/BaseCardView-ab799b69.js +2 -0
- package/amd/BaseCardView-ab799b69.js.map +1 -0
- package/amd/BaseCardViewSelectionTest-59b13d8a.js +2 -0
- package/amd/BaseCardViewSelectionTest-59b13d8a.js.map +1 -0
- package/amd/BaseNavigationListItem-fe9cb691.js +1 -1
- package/amd/BaseRichSelection-a292f625.js +1 -1
- package/amd/ButtonSet-d95872cc.js +1 -1
- package/amd/ButtonSetIconButton-2d242fd9.js +1 -1
- package/amd/Card-8e081def.js +2 -0
- package/amd/Card-8e081def.js.map +1 -0
- package/amd/CardFlexView-296f97f5.js +2 -0
- package/amd/CardFlexView-296f97f5.js.map +1 -0
- package/amd/CardGridView-054ffc3f.js +2 -0
- package/amd/CardGridView-054ffc3f.js.map +1 -0
- package/amd/Center-9ec5524e.js +2 -0
- package/amd/Center-9ec5524e.js.map +1 -0
- package/amd/Chart-e8358fa1.js +2 -0
- package/amd/Chart-e8358fa1.js.map +1 -0
- package/amd/CheckboxControl-61b1d7bc.js +1 -1
- package/amd/CheckboxRadioField-831db563.js +1 -1
- package/amd/Chip-cd210507.js +1 -1
- package/amd/ClearIcon-5b3f9722.js +1 -1
- package/amd/CollapseIcon-e030531c.js +1 -1
- package/amd/Collapsible-924afd71.js +1 -1
- package/amd/ComboChart-da5dcdfe.js +2 -0
- package/amd/ComboChart-da5dcdfe.js.map +1 -0
- package/amd/CompactHelpSource-74498e92.js +1 -1
- package/amd/CompactLabelAssistance-c6928282.js +2 -0
- package/amd/CompactLabelAssistance-c6928282.js.map +1 -0
- package/amd/CompactUserAssistance-26b284d4.js +1 -1
- package/amd/ComponentMessageContainer-d302e620.js +1 -1
- package/amd/ConveyorBeltItem-35248c2f.js +1 -1
- package/amd/DatePicker-38c63bae.js +2 -0
- package/amd/DatePicker-38c63bae.js.map +1 -0
- package/amd/DatePickerHeader-92e6cddb.js +1 -1
- package/amd/Diagram-99e1bdf7.js +2 -0
- package/amd/Diagram-99e1bdf7.js.map +1 -0
- package/amd/Dialog-5315fe93.js +2 -0
- package/amd/Dialog-5315fe93.js.map +1 -0
- package/amd/DirectionalCollapseArrowIcon-20cef34d.js +1 -1
- package/amd/DirectionalExpandArrowIcon-e9bdb06e.js +1 -1
- package/amd/DragHandle-406d7f9a.js +2 -0
- package/amd/DragHandle-406d7f9a.js.map +1 -0
- package/amd/Dropdown-abcacf49.js +2 -0
- package/amd/Dropdown-abcacf49.js.map +1 -0
- package/amd/EnvironmentProvider-c0e1e39b.js +2 -0
- package/amd/EnvironmentProvider-c0e1e39b.js.map +1 -0
- package/amd/ExpandableList-bb5ab084.js +1 -1
- package/amd/FilePicker-4636b49b.js +1 -1
- package/amd/Flex-3421f0df.js +2 -0
- package/amd/Flex-3421f0df.js.map +1 -0
- package/amd/Floating-5d98c1ca.js +2 -0
- package/amd/Floating-5d98c1ca.js.map +1 -0
- package/amd/FormLayout-a4a29a2d.js +1 -1
- package/amd/Gantt-aa5831e1.js +1 -1
- package/amd/Grid-8911aa0f.js +2 -0
- package/amd/Grid-8911aa0f.js.map +1 -0
- package/amd/Gridlines-bef7bbfc.js +2 -0
- package/amd/Gridlines-bef7bbfc.js.map +1 -0
- package/amd/GroupLoadingIndicator-6b2ab709.js +1 -1
- package/amd/HighlightText-644bc74e.js +2 -0
- package/amd/HighlightText-644bc74e.js.map +1 -0
- package/amd/Icon-2d38c876.js +1 -1
- package/amd/IconButton-d1646f51.js +1 -1
- package/amd/IconMenuButton-fa562607.js +1 -1
- package/amd/IconProgressButton-3494b534.js +1 -1
- package/amd/IconSwitchButton-2b357a40.js +1 -1
- package/amd/IconToggleButton-73177027.js +1 -1
- package/amd/IconUserAssistance-37107cea.js +2 -0
- package/amd/IconUserAssistance-37107cea.js.map +1 -0
- package/amd/Indexer-1531dbc3.js +2 -0
- package/amd/Indexer-1531dbc3.js.map +1 -0
- package/amd/InlineHelpSource-85961e81.js +1 -1
- package/amd/InlineUserAssistance-a1ae959b.js +1 -1
- package/amd/InputDateMask-d4995be8.js +1 -1
- package/amd/InputDatePicker-f7a9123c.js +1 -1
- package/amd/InputPassword-90000b2e.js +1 -1
- package/amd/InputText-a7b8a76a.js +1 -1
- package/amd/Label-4601e8e6.js +1 -1
- package/amd/LabelValueLayout-2883514d.js +1 -1
- package/amd/Layer-6f29b67f.js +2 -0
- package/amd/Layer-6f29b67f.js.map +1 -0
- package/amd/LayerHost-639b3284.js +2 -0
- package/amd/LayerHost-639b3284.js.map +1 -0
- package/amd/LayerManager-2972de92.js +2 -0
- package/amd/LayerManager-2972de92.js.map +1 -0
- package/amd/Legend-e4949499.js +1 -1
- package/amd/LineAreaChart-213bfdda.js +2 -0
- package/amd/LineAreaChart-213bfdda.js.map +1 -0
- package/amd/LineSeries-797d8d16.js +2 -0
- package/amd/LineSeries-797d8d16.js.map +1 -0
- package/amd/Link-129f599f.js +1 -1
- package/amd/List-0b764e84.js +2 -0
- package/amd/List-0b764e84.js.map +1 -0
- package/amd/ListItemLayout-e0b2c71e.js +2 -0
- package/amd/ListItemLayout-e0b2c71e.js.map +1 -0
- package/amd/ListView-5bb45f81.js +2 -0
- package/amd/ListView-5bb45f81.js.map +1 -0
- package/amd/LiveRegion-9a362373.js +2 -0
- package/amd/LiveRegion-9a362373.js.map +1 -0
- package/amd/LoadMoreCollection-83413a59.js +2 -0
- package/amd/LoadMoreCollection-83413a59.js.map +1 -0
- package/amd/MaxLengthLiveRegion-bb956138.js +2 -0
- package/amd/MaxLengthLiveRegion-bb956138.js.map +1 -0
- package/amd/Menu-5d447084.js +1 -1
- package/amd/MenuButton-a53e1b84.js +1 -1
- package/amd/MenuItem-87cd59b8.js +1 -1
- package/amd/Message-8ba62e6a.js +1 -1
- package/amd/MessageLayer-8bac8c50.js +2 -0
- package/amd/MessageLayer-8bac8c50.js.map +1 -0
- package/amd/MessageToast-aebaaaba.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-7bece8d5.js +2 -0
- package/amd/Modal-7bece8d5.js.map +1 -0
- package/amd/MonthView-d9f45ec9.js +2 -0
- package/amd/MonthView-d9f45ec9.js.map +1 -0
- package/amd/NavigationListItem-044a79fd.js +1 -1
- package/amd/NumberInputText-be871371.js +1 -1
- package/amd/OverflowTabBarItem-e13f5130.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-593c01a5.js +1 -1
- package/amd/PieChart-2197746d.js +1 -1
- package/amd/Popup-66e79afa.js +2 -0
- package/amd/Popup-66e79afa.js.map +1 -0
- package/amd/ProgressBar-e72c5a67.js +2 -0
- package/amd/ProgressBar-e72c5a67.js.map +1 -0
- package/amd/ProgressButton-730212e4.js +1 -1
- package/amd/ProgressButtonLabelLayout-6df4290e.js +1 -1
- package/amd/ProgressCircle-2b4ba9cd.js +2 -0
- package/amd/ProgressCircle-2b4ba9cd.js.map +1 -0
- package/amd/RadioItem-9171703d.js +1 -1
- package/amd/RatingGauge-539ede8e.js +1 -1
- package/amd/ReadonlyTextFieldInput-608bddc1.js +1 -1
- package/amd/RemovableNavigationListItem-3bf54b1d.js +1 -1
- package/amd/RemovableTabBarItem-3095099e.js +1 -1
- package/amd/ReorderableTabBar-462d357c.js +1 -1
- package/amd/RevealToggleIcon-a01fe471.js +1 -1
- package/amd/ScatterChart-c8003b87.js +2 -0
- package/amd/ScatterChart-c8003b87.js.map +1 -0
- package/amd/SectionalLegend-8f203cac.js +1 -1
- package/amd/SectionedContent-19bef3cc.js +2 -0
- package/amd/SectionedContent-19bef3cc.js.map +1 -0
- package/amd/SelectMultiple-099f64ee.js +2 -0
- package/amd/SelectMultiple-099f64ee.js.map +1 -0
- package/amd/SelectSingle-8b04e449.js +2 -0
- package/amd/SelectSingle-8b04e449.js.map +1 -0
- package/amd/SelectionCard-13aac54a.js +2 -0
- package/amd/SelectionCard-13aac54a.js.map +1 -0
- package/amd/Selector-2b0c34a7.js +1 -1
- package/amd/SelectorAll-1c889a9c.js +2 -0
- package/amd/SelectorAll-1c889a9c.js.map +1 -0
- package/amd/Sheet-0b58b0a5.js +2 -0
- package/amd/Sheet-0b58b0a5.js.map +1 -0
- package/amd/SplitMenuButton-08c590d1.js +1 -1
- package/amd/StyledCard-0da6f6b5.js +2 -0
- package/amd/StyledCard-0da6f6b5.js.map +1 -0
- package/amd/StyledTextField-e43cf892.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-ed764207.js.map +1 -0
- package/amd/Table-b515d862.js +2 -0
- package/amd/Table-b515d862.js.map +1 -0
- package/amd/TableView-4f6a3685.js +2 -0
- package/amd/TableView-4f6a3685.js.map +1 -0
- package/amd/TagCloud-a60146b8.js +1 -1
- package/amd/TextArea-6b4e1847.js +1 -1
- package/amd/TextAreaAutosize-be8b4682.js +1 -1
- package/amd/TextField-4a450d38.js +1 -1
- package/amd/TextFieldInput-ba4e508c.js +1 -1
- package/amd/Theme-redwood/theme.css +166 -166
- package/amd/Theme-stable/theme.css +224 -224
- package/amd/TimeComponentCanvas2D-aad7ad43.js +1 -1
- package/amd/Toolbar-05d42276.js +1 -1
- package/amd/TruncatingBadge-7f66faaf.js +2 -0
- package/amd/TruncatingBadge-7f66faaf.js.map +1 -0
- package/amd/TruncatingText-69770aa9.js +2 -0
- package/amd/TruncatingText-69770aa9.js.map +1 -0
- 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-bd5c7fa7.js +2 -0
- package/amd/View-bd5c7fa7.js.map +1 -0
- package/amd/VirtualizedCollection-897516a5.js +2 -0
- package/amd/VirtualizedCollection-897516a5.js.map +1 -0
- package/amd/VirtualizedListView-cbe87ec2.js +2 -0
- package/amd/VirtualizedListView-cbe87ec2.js.map +1 -0
- package/amd/VisNoData-10983ace.js +2 -0
- package/amd/VisNoData-10983ace.js.map +1 -0
- package/amd/VisProgressiveLoader-06a60c8f.js +2 -0
- package/amd/VisProgressiveLoader-06a60c8f.js.map +1 -0
- package/amd/VisTabularDatatip-55bbd19f.js +2 -0
- package/amd/VisTabularDatatip-55bbd19f.js.map +1 -0
- package/amd/WindowOverlay-43c10424.js +2 -0
- package/amd/WindowOverlay-43c10424.js.map +1 -0
- package/amd/YearsGridView-24119d15.js +2 -0
- package/amd/YearsGridView-24119d15.js.map +1 -0
- 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-95227deb.js +2 -0
- 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-85c034d7.js.map +1 -0
- package/amd/tabbableUtils-591fdc8d.js +2 -0
- package/amd/tabbableUtils-591fdc8d.js.map +1 -0
- package/amd/testData-02652eda.js +2 -0
- package/amd/testData-02652eda.js.map +1 -0
- package/amd/tooltipUtils-e5bdb734.js +2 -0
- package/amd/tooltipUtils-e5bdb734.js.map +1 -0
- package/amd/useCellNavigation-b9cf0f18.js +1 -1
- package/amd/useChartContextMenu-8606bfa2.js +1 -1
- package/amd/useChartDatatip-947eeffe.js +2 -0
- package/amd/useChartDatatip-947eeffe.js.map +1 -0
- package/amd/useColorScheme-443e7cc7.js +2 -0
- package/amd/useColorScheme-443e7cc7.js.map +1 -0
- package/amd/useContextMenu-e08aad46.js +1 -1
- package/amd/useCssVars-dc52806c.js +2 -0
- package/amd/useCssVars-dc52806c.js.map +1 -0
- package/amd/useCurrentBgColor-50142bd8.js +2 -0
- package/amd/useCurrentBgColor-50142bd8.js.map +1 -0
- package/amd/useCurrentKey-a993db56.js +2 -0
- package/amd/useCurrentKey-a993db56.js.map +1 -0
- package/amd/useDatatip-9942601b.js +2 -0
- package/amd/useDatatip-9942601b.js.map +1 -0
- package/amd/useDensity-f0f7ae9a.js +2 -0
- package/amd/useDensity-f0f7ae9a.js.map +1 -0
- package/amd/useFloating-bf8ed6cb.js +2 -0
- package/amd/useFloating-bf8ed6cb.js.map +1 -0
- package/amd/useKeyboardEvents-8ada7a1f.js +2 -0
- package/amd/useKeyboardEvents-8ada7a1f.js.map +1 -0
- package/amd/useLegendContextMenu-e629139a.js +1 -1
- package/amd/useMeterDatatip-173593b4.js +2 -0
- package/amd/useMeterDatatip-173593b4.js.map +1 -0
- package/amd/useOutsideClick-76c1ff6e.js +2 -0
- package/amd/useOutsideClick-76c1ff6e.js.map +1 -0
- package/amd/usePopupAnimation-6e53a0fe.js +2 -0
- package/amd/usePopupAnimation-6e53a0fe.js.map +1 -0
- package/amd/usePrefixSuffix-f7544e05.js +2 -0
- package/amd/usePrefixSuffix-f7544e05.js.map +1 -0
- package/amd/useReorderableItem-726c3c03.js +2 -0
- package/amd/useReorderableItem-726c3c03.js.map +1 -0
- package/amd/useRovingTabIndexContainer-473f7e43.js +2 -0
- package/amd/useRovingTabIndexContainer-473f7e43.js.map +1 -0
- package/amd/useScale-e311d35f.js +2 -0
- package/amd/useScale-e311d35f.js.map +1 -0
- package/amd/useSelectCommon-84c6abc8.js +2 -0
- package/amd/useSelectCommon-84c6abc8.js.map +1 -0
- package/amd/useSelectDrill-a123b2bb.js +2 -0
- package/amd/useSelectDrill-a123b2bb.js.map +1 -0
- package/amd/useSelection-4249360e.js +2 -0
- package/amd/useSelection-4249360e.js.map +1 -0
- package/amd/useSelection-6917f4a6.js +2 -0
- package/amd/useSelection-6917f4a6.js.map +1 -0
- package/amd/useTabBar-2c4573fe.js +1 -1
- package/amd/useTestId-b5cd4766.js +2 -0
- package/amd/useTestId-b5cd4766.js.map +1 -0
- package/amd/useTheme-a8334e06.js +2 -0
- package/amd/useTheme-a8334e06.js.map +1 -0
- package/amd/useThemeInterpolations-ab618dee.js +2 -0
- package/amd/useThemeInterpolations-ab618dee.js.map +1 -0
- package/amd/useTooltip-b43ad881.js +2 -0
- package/amd/useTooltip-b43ad881.js.map +1 -0
- package/amd/useTooltipControlled-ee3276de.js +2 -0
- package/amd/useTooltipControlled-ee3276de.js.map +1 -0
- package/amd/useTranslationBundle-d07d4b20.js +2 -0
- package/amd/useTranslationBundle-d07d4b20.js.map +1 -0
- package/amd/useUser-3ef25571.js +2 -0
- package/amd/useUser-3ef25571.js.map +1 -0
- package/amd/useVisDragModeControls-17c7fedb.js +1 -1
- package/amd/useVisEvents-dc86164f.js +2 -0
- package/amd/useVisEvents-dc86164f.js.map +1 -0
- package/amd/utils/PRIVATE_tooltipUtils.js +1 -1
- package/amd/utils/PRIVATE_visTestUtils.js +1 -1
- package/amd/withDirectionIcon-74c39ee3.js +2 -0
- package/amd/withDirectionIcon-74c39ee3.js.map +1 -0
- package/amd/withThemeProps-4c23997e.js +1 -1
- package/cjs/ActionCard-61b21d6c.js +1 -1
- package/cjs/BarChart-a63cbeee.js +181 -0
- package/cjs/BarChart-a63cbeee.js.map +1 -0
- package/cjs/BarGroup-4a24a995.js +1 -1
- package/cjs/BaseButton-6b9f7463.js +2 -2
- package/cjs/BaseCardView-5a45e588.js +687 -0
- package/cjs/BaseCardView-5a45e588.js.map +1 -0
- package/cjs/BaseCardViewSelectionTest-78e3b29d.js +734 -0
- package/cjs/BaseCardViewSelectionTest-78e3b29d.js.map +1 -0
- package/cjs/BaseNavigationListItem-50e4c603.js +123 -0
- package/cjs/BaseNavigationListItem-50e4c603.js.map +1 -0
- package/cjs/BaseRichSelection-ee936fae.js +8 -8
- package/cjs/ButtonSet-90db1168.js +2 -2
- package/cjs/ButtonSetIconButton-1528caef.js +3 -3
- package/cjs/Card-a0dadf5f.js +17 -0
- package/cjs/Card-a0dadf5f.js.map +1 -0
- package/cjs/CardFlexView-58228ce4.js +29 -0
- package/cjs/CardFlexView-58228ce4.js.map +1 -0
- package/cjs/CardGridView-17683602.js +17 -0
- package/cjs/CardGridView-17683602.js.map +1 -0
- package/cjs/Center-9f407cb2.js +18 -0
- package/cjs/Center-9f407cb2.js.map +1 -0
- package/cjs/Chart-40c840e7.js +451 -0
- package/cjs/Chart-40c840e7.js.map +1 -0
- package/cjs/CheckboxControl-127cc988.js +6 -6
- package/cjs/CheckboxRadioField-2873482e.js +6 -6
- package/cjs/CheckboxSet-4ce661dd.js +53 -0
- package/cjs/CheckboxSet-4ce661dd.js.map +1 -0
- package/cjs/Chip-f12bb8cd.js +1 -1
- package/cjs/ClearIcon-56d5dd01.js +1 -1
- package/cjs/CollapseIcon-2394e7ea.js +1 -1
- package/cjs/Collapsible-41311eb0.js +2 -2
- package/cjs/ComboChart-c6f8f77f.js +174 -0
- package/cjs/ComboChart-c6f8f77f.js.map +1 -0
- package/cjs/CompactHelpSource-61ead0c7.js +2 -2
- package/cjs/CompactLabelAssistance-ec1e72af.js +36 -0
- package/cjs/CompactLabelAssistance-ec1e72af.js.map +1 -0
- package/cjs/CompactUserAssistance-d03b06d5.js +4 -4
- package/cjs/ComponentMessageContainer-ffadd93c.js +4 -4
- package/cjs/ConveyorBeltItem-212d6753.js +2 -2
- package/cjs/DatePicker-07a2a630.js +566 -0
- package/cjs/DatePicker-07a2a630.js.map +1 -0
- package/cjs/DatePickerHeader-151425f9.js +3 -3
- package/cjs/Diagram-95e49f69.js +2028 -0
- package/cjs/Diagram-95e49f69.js.map +1 -0
- package/cjs/Dialog-770dd9cc.js +318 -0
- package/cjs/Dialog-770dd9cc.js.map +1 -0
- package/cjs/DirectionalCollapseArrowIcon-0cf2279a.js +1 -1
- package/cjs/DirectionalExpandArrowIcon-a362cb2f.js +1 -1
- package/cjs/DragHandle-951c36ef.js +24 -0
- package/cjs/DragHandle-951c36ef.js.map +1 -0
- package/cjs/Dropdown-00e73e4d.js +82 -0
- package/cjs/Dropdown-00e73e4d.js.map +1 -0
- package/cjs/EnvironmentProvider-bfd5febc.js +61 -0
- package/cjs/EnvironmentProvider-bfd5febc.js.map +1 -0
- package/cjs/ExpandableList-eb37ee5c.js +4 -4
- package/cjs/FilePicker-f93470cf.js +2 -2
- package/cjs/Flex-ce16a2fa.js +33 -0
- package/cjs/Flex-ce16a2fa.js.map +1 -0
- package/cjs/Floating-3a80c067.js +464 -0
- package/cjs/Floating-3a80c067.js.map +1 -0
- package/cjs/FormLayout-86e60b6c.js +1 -1
- package/cjs/Gantt-d7ca421a.js +9 -9
- package/cjs/Grid-b8fadf4a.js +29 -0
- package/cjs/Grid-b8fadf4a.js.map +1 -0
- package/cjs/Gridlines-22c46764.js +171 -0
- package/cjs/Gridlines-22c46764.js.map +1 -0
- package/cjs/GroupLoadingIndicator-5940d185.js +2 -2
- package/cjs/HighlightText-2061d12d.js +33 -0
- package/cjs/HighlightText-2061d12d.js.map +1 -0
- package/cjs/Icon-c024b93c.js +3 -3
- package/cjs/IconButton-6f58deac.js +3 -3
- package/cjs/IconMenuButton-384f41be.js +3 -3
- package/cjs/IconProgressButton-649a5b5b.js +3 -3
- package/cjs/IconSwitchButton-cd968a81.js +3 -3
- package/cjs/IconToggleButton-c57a8c11.js +3 -3
- package/cjs/IconUserAssistance-3faf6a09.js +75 -0
- package/cjs/IconUserAssistance-3faf6a09.js.map +1 -0
- package/cjs/Indexer-b5ca1d0c.js +339 -0
- package/cjs/Indexer-b5ca1d0c.js.map +1 -0
- package/cjs/InlineHelpSource-0549100d.js +1 -1
- package/cjs/InlineUserAssistance-d32aad17.js +5 -5
- package/cjs/InputDateMask-6f27f172.js +7 -7
- package/cjs/InputDatePicker-b9a6ed5b.js +8 -8
- package/cjs/InputPassword-43ee5ba7.js +4 -4
- package/cjs/InputText-b184c097.js +6 -6
- package/cjs/Label-6f070293.js +5 -5
- package/cjs/LabelValueLayout-3c33ca16.js +1 -1
- package/cjs/Layer-49394ca6.js +91 -0
- package/cjs/Layer-49394ca6.js.map +1 -0
- package/cjs/LayerHost-7182bfaf.js +45 -0
- package/cjs/LayerHost-7182bfaf.js.map +1 -0
- package/cjs/LayerManager-db087520.js +36 -0
- package/cjs/LayerManager-db087520.js.map +1 -0
- package/cjs/Legend-33a7824e.js +3 -3
- package/cjs/LineAreaChart-2c9f2860.js +172 -0
- package/cjs/LineAreaChart-2c9f2860.js.map +1 -0
- package/cjs/LineSeries-995be81c.js +112 -0
- package/cjs/LineSeries-995be81c.js.map +1 -0
- package/cjs/Link-f998f6f8.js +1 -1
- package/cjs/List-877077ab.js +722 -0
- package/cjs/List-877077ab.js.map +1 -0
- package/cjs/ListItemLayout-bc581097.js +112 -0
- package/cjs/ListItemLayout-bc581097.js.map +1 -0
- package/cjs/ListView-98983aa2.js +430 -0
- package/cjs/ListView-98983aa2.js.map +1 -0
- package/cjs/LiveRegion-3bc583c6.js +41 -0
- package/cjs/LiveRegion-3bc583c6.js.map +1 -0
- package/cjs/LoadMoreCollection-69bc038c.js +34 -0
- package/cjs/LoadMoreCollection-69bc038c.js.map +1 -0
- package/cjs/MaxLengthLiveRegion-5e31c44e.js +25 -0
- package/cjs/MaxLengthLiveRegion-5e31c44e.js.map +1 -0
- package/cjs/Menu-658212ed.js +6 -6
- package/cjs/MenuButton-9cb0bdbf.js +2 -2
- package/cjs/MenuItem-c459d748.js +1 -1
- package/cjs/Message-7da81b63.js +2 -2
- package/cjs/MessageLayer-fc21a223.js +61 -0
- package/cjs/MessageLayer-fc21a223.js.map +1 -0
- package/cjs/MessageToast-42faa5bf.js +8 -8
- package/cjs/MessagesManager-1ae749bf.js +3 -3
- package/cjs/MeterBar-0adbe81a.js +5 -5
- package/cjs/MeterCircle-97a75b35.js +5 -5
- package/cjs/Modal-76b3a4d9.js +264 -0
- package/cjs/Modal-76b3a4d9.js.map +1 -0
- package/cjs/MonthView-39f99ada.js +210 -0
- package/cjs/MonthView-39f99ada.js.map +1 -0
- package/cjs/NavigationListItem-4c4e804d.js +166 -0
- package/cjs/NavigationListItem-4c4e804d.js.map +1 -0
- package/cjs/NumberInputText-aaed9edc.js +6 -6
- package/cjs/OverflowTabBar-3310457e.js +71 -0
- package/cjs/OverflowTabBar-3310457e.js.map +1 -0
- package/cjs/OverflowTabBarItem-ff9d5b73.js +88 -0
- package/cjs/OverflowTabBarItem-ff9d5b73.js.map +1 -0
- package/cjs/PRIVATE_BaseCardView.js +25 -25
- package/cjs/PRIVATE_Chart.js +35 -35
- package/cjs/PRIVATE_CheckboxControl.js +23 -23
- package/cjs/PRIVATE_CheckboxRadioField.js +24 -24
- package/cjs/PRIVATE_ClearIcon.js +18 -18
- package/cjs/PRIVATE_DatePickerHeader.js +19 -19
- package/cjs/PRIVATE_DatePickerLayout.js +4 -4
- package/cjs/PRIVATE_EmbeddedIconButton.js +3 -3
- package/cjs/PRIVATE_FormControls.js +19 -19
- package/cjs/PRIVATE_IconSwitchButton.js +16 -16
- package/cjs/PRIVATE_Icons/CheckboxMixed.js +16 -16
- package/cjs/PRIVATE_Icons/CheckboxOff.js +16 -16
- package/cjs/PRIVATE_Icons/CheckboxOn.js +16 -16
- package/cjs/PRIVATE_Icons/DragV.js +16 -16
- package/cjs/PRIVATE_Icons/WarningS.js +16 -16
- package/cjs/PRIVATE_List.js +24 -24
- package/cjs/PRIVATE_LoadMoreCollection.js +2 -2
- package/cjs/PRIVATE_Message.js +19 -19
- package/cjs/PRIVATE_MessageLayer.js +12 -12
- package/cjs/PRIVATE_MonthView.js +7 -7
- package/cjs/PRIVATE_MonthYearGridView.js +7 -7
- package/cjs/PRIVATE_PlotArea.js +4 -4
- package/cjs/PRIVATE_RevealToggleIcon.js +17 -17
- package/cjs/PRIVATE_RichSelectionCommon.js +25 -25
- package/cjs/PRIVATE_SelectCommon.js +33 -33
- package/cjs/PRIVATE_StyledCard.js +4 -4
- package/cjs/PRIVATE_StyledCheckbox.js +16 -16
- package/cjs/PRIVATE_Table.js +27 -27
- package/cjs/PRIVATE_ThemedIcons/CalendarIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ChartMarqueeSelectIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ChartPanIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ChartZoomIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CheckIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CheckboxMixedIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CheckboxOffIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CheckboxOnIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CloseIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/CollapseIcon.js +17 -17
- package/cjs/PRIVATE_ThemedIcons/CollapseUpIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/DecrementIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/DeleteIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/DirectionalCollapseArrowIcon.js +17 -17
- package/cjs/PRIVATE_ThemedIcons/DirectionalExpandArrowIcon.js +17 -17
- package/cjs/PRIVATE_ThemedIcons/DragHandleIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/DropdownArrowIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ExpandIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/HelpIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/IncrementIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MenuButtonDropdownIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MessageConfirmationIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MessageErrorIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MessageInfoIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MessageWarningIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/MinusIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/NavDownIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/OverviewHorizontalDragHandleIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/PlusIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/RadioOffIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/RadioOnIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/SortAscendingIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/SortDescendingIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ViewHideIcon.js +16 -16
- package/cjs/PRIVATE_ThemedIcons/ViewIcon.js +16 -16
- package/cjs/PRIVATE_TimeComponent.js +18 -18
- package/cjs/PRIVATE_VirtualizedCollection.js +2 -2
- package/cjs/PRIVATE_VisOverview.js +16 -16
- package/cjs/PRIVATE_VisTabularDatatip.js +4 -4
- package/cjs/PictoChart-c2650a00.js +6 -6
- package/cjs/PieChart-411377a1.js +6 -6
- package/cjs/Popup-3e6b37ba.js +249 -0
- package/cjs/Popup-3e6b37ba.js.map +1 -0
- package/cjs/ProgressBar-ee008afc.js +64 -0
- package/cjs/ProgressBar-ee008afc.js.map +1 -0
- package/cjs/ProgressButton-cea0dd50.js +3 -3
- package/cjs/ProgressButtonLabelLayout-13908869.js +3 -3
- package/cjs/ProgressCircle-e91f65f3.js +50 -0
- package/cjs/ProgressCircle-e91f65f3.js.map +1 -0
- package/cjs/RadioItem-f6afdd0e.js +6 -6
- package/cjs/RatingGauge-4f129f42.js +7 -7
- package/cjs/ReadonlyTextFieldInput-af4ddced.js +1 -1
- package/cjs/RemovableNavigationListItem-1505f520.js +26 -0
- package/cjs/RemovableNavigationListItem-1505f520.js.map +1 -0
- package/cjs/RemovableTabBarItem-31809ee8.js +2 -2
- package/cjs/ReorderableTabBar-344938e7.js +79 -0
- package/cjs/ReorderableTabBar-344938e7.js.map +1 -0
- package/cjs/RevealToggleIcon-e21eaaf0.js +1 -1
- package/cjs/ScatterChart-f7fc7c02.js +105 -0
- package/cjs/ScatterChart-f7fc7c02.js.map +1 -0
- package/cjs/SectionalLegend-da9d7dc4.js +4 -4
- package/cjs/SectionedContent-2210037c.js +67 -0
- package/cjs/SectionedContent-2210037c.js.map +1 -0
- package/cjs/SelectMultiple-85f954ab.js +1306 -0
- package/cjs/SelectMultiple-85f954ab.js.map +1 -0
- package/cjs/SelectSingle-7665d165.js +739 -0
- package/cjs/SelectSingle-7665d165.js.map +1 -0
- package/cjs/SelectionCard-e26feb4d.js +18 -0
- package/cjs/SelectionCard-e26feb4d.js.map +1 -0
- package/cjs/Selector-565b3810.js +1 -1
- package/cjs/SelectorAll-e81b943f.js +71 -0
- package/cjs/SelectorAll-e81b943f.js.map +1 -0
- package/cjs/Sheet-73cb51b2.js +161 -0
- package/cjs/Sheet-73cb51b2.js.map +1 -0
- package/cjs/SplitMenuButton-6cd3278c.js +2 -2
- package/cjs/StyledCard-f6b7f046.js +107 -0
- package/cjs/StyledCard-f6b7f046.js.map +1 -0
- package/cjs/StyledTextField-1d94ce8e.js +3 -3
- package/cjs/TabBar-bf94b95a.js +79 -0
- package/cjs/TabBar-bf94b95a.js.map +1 -0
- package/cjs/TabBarItem-00fcf601.js +3 -3
- package/cjs/TabBarLayout-846a4d9a.js +1 -1
- package/cjs/TabBarMixed-975141a6.js +80 -0
- package/cjs/TabBarMixed-975141a6.js.map +1 -0
- package/cjs/TabBarMixedSeparator-0f55c6f6.js +21 -0
- package/cjs/TabBarMixedSeparator-0f55c6f6.js.map +1 -0
- package/cjs/Table-c45cdb79.js +5511 -0
- package/cjs/Table-c45cdb79.js.map +1 -0
- package/cjs/TableView-be307426.js +33 -0
- package/cjs/TableView-be307426.js.map +1 -0
- package/cjs/TagCloud-33126c77.js +8 -8
- package/cjs/TextArea-3309d931.js +180 -0
- package/cjs/TextArea-3309d931.js.map +1 -0
- package/cjs/TextAreaAutosize-ecd40b10.js +246 -0
- package/cjs/TextAreaAutosize-ecd40b10.js.map +1 -0
- package/cjs/TextField-ed48834c.js +3 -3
- package/cjs/TextFieldInput-e83921a4.js +1 -1
- package/cjs/Theme-redwood/theme.css +287 -287
- package/cjs/Theme-stable/theme.css +302 -302
- package/cjs/TimeComponentCanvas2D-3626092b.js +5 -5
- package/cjs/Toolbar-f94296cb.js +1 -1
- package/cjs/TruncatingBadge-3a82f13b.js +36 -0
- package/cjs/TruncatingBadge-3a82f13b.js.map +1 -0
- package/cjs/TruncatingText-df3db482.js +50 -0
- package/cjs/TruncatingText-df3db482.js.map +1 -0
- package/cjs/UNSAFE_ActionCard.js +3 -3
- package/cjs/UNSAFE_BarChart/__test__/BarChart.spec.js +36 -36
- package/cjs/UNSAFE_BarChart.js +36 -36
- package/cjs/UNSAFE_BaseButton.js +3 -3
- package/cjs/UNSAFE_Button.js +3 -3
- package/cjs/UNSAFE_ButtonLayout/tests/ButtonLayout.spec.js +21 -21
- package/cjs/UNSAFE_ButtonSet.js +4 -4
- package/cjs/UNSAFE_ButtonSetButton.js +3 -3
- package/cjs/UNSAFE_ButtonSetIconButton.js +16 -16
- package/cjs/UNSAFE_ButtonSetItem.js +16 -16
- package/cjs/UNSAFE_ButtonSetMultiple.js +4 -4
- package/cjs/UNSAFE_ButtonSetSingle.js +4 -4
- package/cjs/UNSAFE_Card.js +5 -5
- package/cjs/UNSAFE_CardFlexView.js +26 -26
- package/cjs/UNSAFE_CardGridView.js +26 -26
- package/cjs/UNSAFE_Center.js +5 -5
- package/cjs/UNSAFE_ChartWithLegend.js +4 -4
- package/cjs/UNSAFE_Checkbox.js +23 -23
- package/cjs/UNSAFE_CheckboxItem.js +104 -53
- package/cjs/UNSAFE_CheckboxItem.js.map +1 -1
- package/cjs/UNSAFE_CheckboxSet.js +38 -67
- package/cjs/UNSAFE_CheckboxSet.js.map +1 -1
- package/cjs/UNSAFE_Chip.js +2 -2
- package/cjs/UNSAFE_Collapsible.js +18 -18
- package/cjs/UNSAFE_ComboChart.js +38 -38
- package/cjs/UNSAFE_ComponentMessage.js +19 -19
- package/cjs/UNSAFE_ConveyorBelt.js +16 -16
- package/cjs/UNSAFE_DatePicker.js +24 -24
- package/cjs/UNSAFE_Diagram.js +21 -21
- package/cjs/UNSAFE_Dialog.js +21 -21
- package/cjs/UNSAFE_DragHandle.js +18 -18
- package/cjs/UNSAFE_DrawerLayout.js +12 -12
- package/cjs/UNSAFE_DrawerPopup.js +11 -11
- package/cjs/UNSAFE_Dropdown.js +13 -13
- package/cjs/UNSAFE_Environment.js +4 -4
- package/cjs/UNSAFE_ExpandableList.js +26 -26
- package/cjs/UNSAFE_FilePicker.js +4 -4
- package/cjs/UNSAFE_Flex.js +4 -4
- package/cjs/UNSAFE_Floating.js +11 -11
- package/cjs/UNSAFE_FormLayout.js +2 -2
- package/cjs/UNSAFE_Gantt.js +23 -23
- package/cjs/UNSAFE_Grid.js +4 -4
- package/cjs/UNSAFE_HighlightText.js +4 -4
- package/cjs/UNSAFE_Icon.js +16 -16
- package/cjs/UNSAFE_IconButton.js +16 -16
- package/cjs/UNSAFE_IconMenuButton.js +21 -21
- package/cjs/UNSAFE_IconProgressButton.js +19 -19
- package/cjs/UNSAFE_IconToggleButton.js +16 -16
- package/cjs/UNSAFE_Indexer.js +8 -8
- package/cjs/UNSAFE_InputDateMask.js +24 -24
- package/cjs/UNSAFE_InputDatePicker.js +32 -32
- package/cjs/UNSAFE_InputPassword.js +23 -23
- package/cjs/UNSAFE_InputSensitiveText.js +25 -25
- package/cjs/UNSAFE_InputText.js +26 -26
- package/cjs/UNSAFE_InputTimeMask.js +24 -24
- package/cjs/UNSAFE_Label.js +23 -23
- package/cjs/UNSAFE_LabelValueLayout.js +4 -4
- package/cjs/UNSAFE_LabelledLink.js +24 -24
- package/cjs/UNSAFE_Layer.js +8 -8
- package/cjs/UNSAFE_Legend.js +24 -24
- package/cjs/UNSAFE_LineAreaChart.js +38 -38
- package/cjs/UNSAFE_Link.js +2 -2
- package/cjs/UNSAFE_ListItemLayout.js +5 -5
- package/cjs/UNSAFE_ListView.js +33 -33
- package/cjs/UNSAFE_LiveRegion.js +4 -4
- package/cjs/UNSAFE_Menu.js +23 -23
- package/cjs/UNSAFE_MenuButton.js +21 -21
- package/cjs/UNSAFE_MessageBanner.js +19 -19
- package/cjs/UNSAFE_MessageToast.js +22 -22
- package/cjs/UNSAFE_MeterBar.js +16 -16
- package/cjs/UNSAFE_MeterCircle.js +17 -17
- package/cjs/UNSAFE_Modal.js +8 -8
- package/cjs/UNSAFE_NavigationList.js +42 -44
- package/cjs/UNSAFE_NavigationList.js.map +1 -1
- package/cjs/UNSAFE_NavigationListCommon.js +70 -71
- package/cjs/UNSAFE_NavigationListCommon.js.map +1 -1
- package/cjs/UNSAFE_NumberInputText.js +25 -25
- package/cjs/UNSAFE_OverflowTabBar.js +50 -52
- package/cjs/UNSAFE_OverflowTabBar.js.map +1 -1
- package/cjs/UNSAFE_PictoChart.js +14 -14
- package/cjs/UNSAFE_PieChart/__test__/PieChart.spec.js +21 -21
- package/cjs/UNSAFE_PieChart.js +21 -21
- package/cjs/UNSAFE_Popup.js +16 -16
- package/cjs/UNSAFE_ProgressBar.js +5 -5
- package/cjs/UNSAFE_ProgressButton.js +19 -19
- package/cjs/UNSAFE_ProgressButtonLabelLayout.js +10 -10
- package/cjs/UNSAFE_ProgressCircle.js +4 -4
- package/cjs/UNSAFE_RadioItem.js +23 -23
- package/cjs/UNSAFE_RadioSet.js +23 -23
- package/cjs/UNSAFE_RatingGauge.js +17 -17
- package/cjs/UNSAFE_ReorderableTabBar.js +37 -48
- package/cjs/UNSAFE_ReorderableTabBar.js.map +1 -1
- package/cjs/UNSAFE_RichCheckboxSet.js +39 -37
- package/cjs/UNSAFE_RichCheckboxSet.js.map +1 -1
- package/cjs/UNSAFE_RichRadioSet.js +25 -25
- package/cjs/UNSAFE_RichSelectionItem.js +197 -59
- package/cjs/UNSAFE_RichSelectionItem.js.map +1 -1
- package/cjs/UNSAFE_ScatterChart.js +38 -38
- package/cjs/UNSAFE_SectionalLegend.js +25 -25
- package/cjs/UNSAFE_SelectMultiple.js +36 -36
- package/cjs/UNSAFE_SelectSingle.js +36 -36
- package/cjs/UNSAFE_SelectionCard.js +5 -5
- package/cjs/UNSAFE_Selector.js +16 -16
- package/cjs/UNSAFE_SelectorAll.js +20 -20
- package/cjs/UNSAFE_Sheet/__test__/Sheet.spec.js +14 -14
- package/cjs/UNSAFE_Sheet.js +11 -11
- package/cjs/UNSAFE_SplitMenuButton.js +21 -21
- package/cjs/UNSAFE_TabBar.js +50 -52
- package/cjs/UNSAFE_TabBar.js.map +1 -1
- package/cjs/UNSAFE_TabBarCommon.js +42 -44
- package/cjs/UNSAFE_TabBarCommon.js.map +1 -1
- package/cjs/UNSAFE_TabBarMixed.js +59 -61
- package/cjs/UNSAFE_TabBarMixed.js.map +1 -1
- package/cjs/UNSAFE_TableView.js +28 -28
- package/cjs/UNSAFE_TagCloud.js +23 -23
- package/cjs/UNSAFE_TextArea.js +28 -29
- package/cjs/UNSAFE_TextArea.js.map +1 -1
- package/cjs/UNSAFE_TextAreaAutosize.js +28 -28
- package/cjs/UNSAFE_TextField.js +7 -7
- package/cjs/UNSAFE_ToggleButton.js +3 -3
- package/cjs/UNSAFE_Toolbar/tests/Toolbar.spec.js +23 -23
- package/cjs/UNSAFE_Toolbar.js +4 -4
- package/cjs/UNSAFE_Train.js +17 -17
- package/cjs/UNSAFE_TruncatingBadge.js +18 -18
- package/cjs/UNSAFE_TruncatingText.js +17 -17
- package/cjs/UNSAFE_UserAssistance.js +24 -24
- package/cjs/UNSAFE_View.js +7 -7
- package/cjs/UNSAFE_VirtualizedListView.js +25 -25
- package/cjs/UNSAFE_VisProgressiveLoader/__test__/VisProgressiveLoader.spec.js +8 -8
- package/cjs/UNSAFE_VisProgressiveLoader.js +6 -6
- package/cjs/UNSAFE_VisStatusMessage.js +6 -6
- package/cjs/UNSAFE_WindowOverlay.js +4 -4
- package/cjs/View-145a402d.js +170 -0
- package/cjs/View-145a402d.js.map +1 -0
- package/cjs/VirtualizedCollection-9e8c48b9.js +180 -0
- package/cjs/VirtualizedCollection-9e8c48b9.js.map +1 -0
- package/cjs/VirtualizedListView-03fa4758.js +16 -0
- package/cjs/VirtualizedListView-03fa4758.js.map +1 -0
- package/cjs/VisNoData-210b0385.js +35 -0
- package/cjs/VisNoData-210b0385.js.map +1 -0
- package/cjs/VisProgressiveLoader-5ed4eb9d.js +53 -0
- package/cjs/VisProgressiveLoader-5ed4eb9d.js.map +1 -0
- package/cjs/VisTabularDatatip-a06f4ca3.js +26 -0
- package/cjs/VisTabularDatatip-a06f4ca3.js.map +1 -0
- package/cjs/WindowOverlay-de3bd373.js +112 -0
- package/cjs/WindowOverlay-de3bd373.js.map +1 -0
- package/cjs/YearsGridView-2732b46c.js +190 -0
- package/cjs/YearsGridView-2732b46c.js.map +1 -0
- package/cjs/hoc/PRIVATE_withDirectionIcon.js +4 -4
- package/cjs/hoc/PRIVATE_withThemeIcon.js +3 -3
- package/cjs/hoc/UNSAFE_withThemeProps.js +3 -3
- package/cjs/hooks/PRIVATE_useChartContextMenu.js +20 -20
- package/cjs/hooks/PRIVATE_useChartDatatip.js +14 -14
- package/cjs/hooks/PRIVATE_useChartEvents.js +18 -18
- package/cjs/hooks/PRIVATE_useChartMarquee.js +18 -18
- package/cjs/hooks/PRIVATE_useCssVars.js +7 -7
- package/cjs/hooks/PRIVATE_useCurrentKey.js +4 -4
- package/cjs/hooks/PRIVATE_useDatatip.js +12 -12
- package/cjs/hooks/PRIVATE_useFloating.js +4 -4
- package/cjs/hooks/PRIVATE_useReorderable.js +5 -5
- package/cjs/hooks/PRIVATE_useRovingTabIndexContainer.js +4 -4
- package/cjs/hooks/PRIVATE_useSelection.js +4 -4
- package/cjs/hooks/PRIVATE_useTabBar.js +4 -4
- package/cjs/hooks/PRIVATE_useVisContextMenu.js +20 -20
- package/cjs/hooks/PRIVATE_useVisDragModeControls.js +18 -18
- package/cjs/hooks/PRIVATE_useVisEvents.js +4 -4
- package/cjs/hooks/PRIVATE_useVisMeterEvents.js +14 -14
- package/cjs/hooks/PRIVATE_useVisSelection.js +13 -13
- package/cjs/hooks/UNSAFE_useColorScheme.js +3 -3
- package/cjs/hooks/UNSAFE_useCurrentBgColor.js +3 -3
- package/cjs/hooks/UNSAFE_useDensity.js +3 -3
- package/cjs/hooks/UNSAFE_useOutsideClick.js +8 -8
- package/cjs/hooks/UNSAFE_usePrefixSuffix.js +4 -4
- package/cjs/hooks/UNSAFE_useScale.js +3 -3
- package/cjs/hooks/UNSAFE_useTestId.js +3 -3
- package/cjs/hooks/UNSAFE_useTheme.js +3 -3
- package/cjs/hooks/UNSAFE_useThemeInterpolations.js +6 -6
- package/cjs/hooks/UNSAFE_useTooltip.js +17 -17
- package/cjs/hooks/UNSAFE_useTranslationBundle.js +3 -3
- package/cjs/hooks/UNSAFE_useUser.js +3 -3
- package/cjs/index-8c93d858.js +13 -0
- package/cjs/index-8c93d858.js.map +1 -0
- package/cjs/listViewSelectionTests-858bb12a.js +3 -3
- package/cjs/render-bc47fc7e.js +41 -0
- package/cjs/render-bc47fc7e.js.map +1 -0
- package/cjs/tabbableUtils-b14a04ea.js +81 -0
- package/cjs/tabbableUtils-b14a04ea.js.map +1 -0
- package/cjs/testData-c996c33b.js +271 -0
- package/cjs/testData-c996c33b.js.map +1 -0
- package/cjs/tooltipUtils-2228b0f7.js +97 -0
- package/cjs/tooltipUtils-2228b0f7.js.map +1 -0
- package/cjs/useCellNavigation-e0d4af91.js +1 -1
- package/cjs/useChartContextMenu-d114824a.js +2 -2
- package/cjs/useChartDatatip-538a4577.js +166 -0
- package/cjs/useChartDatatip-538a4577.js.map +1 -0
- package/cjs/useColorScheme-e6bef5a4.js +21 -0
- package/cjs/useColorScheme-e6bef5a4.js.map +1 -0
- package/cjs/useContextMenu-3ebf8f80.js +2 -2
- package/cjs/useCssVars-9bea15a9.js +60 -0
- package/cjs/useCssVars-9bea15a9.js.map +1 -0
- package/cjs/useCurrentBgColor-6835bf45.js +21 -0
- package/cjs/useCurrentBgColor-6835bf45.js.map +1 -0
- package/cjs/useCurrentKey-d8d41864.js +83 -0
- package/cjs/useCurrentKey-d8d41864.js.map +1 -0
- package/cjs/useDatatip-1dda9a86.js +89 -0
- package/cjs/useDatatip-1dda9a86.js.map +1 -0
- package/cjs/useDensity-38283c57.js +21 -0
- package/cjs/useDensity-38283c57.js.map +1 -0
- package/cjs/useFloating-c9e127d3.js +1926 -0
- package/cjs/useFloating-c9e127d3.js.map +1 -0
- package/cjs/useKeyboardEvents-7ab0d8ee.js +81 -0
- package/cjs/useKeyboardEvents-7ab0d8ee.js.map +1 -0
- package/cjs/useLegendContextMenu-82be007a.js +4 -4
- package/cjs/useMeterDatatip-945883f5.js +77 -0
- package/cjs/useMeterDatatip-945883f5.js.map +1 -0
- package/cjs/useOutsideClick-ad999b14.js +103 -0
- package/cjs/useOutsideClick-ad999b14.js.map +1 -0
- package/cjs/usePopupAnimation-b911e9ed.js +87 -0
- package/cjs/usePopupAnimation-b911e9ed.js.map +1 -0
- package/cjs/usePrefixSuffix-1de3a724.js +72 -0
- package/cjs/usePrefixSuffix-1de3a724.js.map +1 -0
- package/cjs/useReorderableItem-5fc4d599.js +271 -0
- package/cjs/useReorderableItem-5fc4d599.js.map +1 -0
- package/cjs/useRovingTabIndexContainer-bbdf3acd.js +100 -0
- package/cjs/useRovingTabIndexContainer-bbdf3acd.js.map +1 -0
- package/cjs/useScale-a47864b4.js +21 -0
- package/cjs/useScale-a47864b4.js.map +1 -0
- package/cjs/useSelectCommon-99197baf.js +709 -0
- package/cjs/useSelectCommon-99197baf.js.map +1 -0
- package/cjs/useSelectDrill-93a57ed6.js +106 -0
- package/cjs/useSelectDrill-93a57ed6.js.map +1 -0
- package/cjs/useSelection-0dbc2f40.js +241 -0
- package/cjs/useSelection-0dbc2f40.js.map +1 -0
- package/cjs/useSelection-c7c0f533.js +187 -0
- package/cjs/useSelection-c7c0f533.js.map +1 -0
- package/cjs/useTabBar-048ffd9f.js +1 -1
- package/cjs/useTestId-e267a39d.js +23 -0
- package/cjs/useTestId-e267a39d.js.map +1 -0
- package/cjs/useTheme-6cedf9c8.js +21 -0
- package/cjs/useTheme-6cedf9c8.js.map +1 -0
- package/cjs/useThemeInterpolations-316c1636.js +59 -0
- package/cjs/useThemeInterpolations-316c1636.js.map +1 -0
- package/cjs/useTooltip-ea036f82.js +51 -0
- package/cjs/useTooltip-ea036f82.js.map +1 -0
- package/cjs/useTooltipControlled-61581889.js +371 -0
- package/cjs/useTooltipControlled-61581889.js.map +1 -0
- package/cjs/useTranslationBundle-6b0281a9.js +31 -0
- package/cjs/useTranslationBundle-6b0281a9.js.map +1 -0
- package/cjs/useUser-8aaad5a7.js +21 -0
- package/cjs/useUser-8aaad5a7.js.map +1 -0
- package/cjs/useVisDragModeControls-d1757f87.js +1 -1
- package/cjs/useVisEvents-99f1bf51.js +155 -0
- package/cjs/useVisEvents-99f1bf51.js.map +1 -0
- package/cjs/utils/PRIVATE_tooltipUtils.js +14 -14
- package/cjs/utils/PRIVATE_visTestUtils.js +5 -5
- package/cjs/withDirectionIcon-7f758093.js +16 -0
- package/cjs/withDirectionIcon-7f758093.js.map +1 -0
- package/cjs/withThemeProps-6e15f1c3.js +2 -2
- package/es/BaseCardView-229fa119.js +683 -0
- package/es/BaseCardView-229fa119.js.map +1 -0
- package/es/BaseCardViewSelectionTest-0b9dd4c7.js +721 -0
- package/es/BaseCardViewSelectionTest-0b9dd4c7.js.map +1 -0
- package/es/CardFlexView-3ef6bf4d.js +27 -0
- package/es/CardFlexView-3ef6bf4d.js.map +1 -0
- package/es/CardGridView-e15226c9.js +15 -0
- package/es/CardGridView-e15226c9.js.map +1 -0
- package/es/CheckboxSetContext-1be56556.js +9 -0
- package/es/CheckboxSetContext-1be56556.js.map +1 -0
- package/es/ExpandableList-2ff828d0.js +167 -0
- package/es/ExpandableList-2ff828d0.js.map +1 -0
- package/es/GroupLoadingIndicator-63035d08.js +1 -1
- package/es/Indexer-eb00ba0b.js +336 -0
- package/es/Indexer-eb00ba0b.js.map +1 -0
- package/es/List-e6886091.js +717 -0
- package/es/List-e6886091.js.map +1 -0
- package/es/ListView-137e31fd.js +428 -0
- package/es/ListView-137e31fd.js.map +1 -0
- package/es/LoadMoreCollection-7df1be36.js +31 -0
- package/es/LoadMoreCollection-7df1be36.js.map +1 -0
- 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/SelectMultiple-f00b3232.js +1304 -0
- package/es/SelectMultiple-f00b3232.js.map +1 -0
- package/es/SelectSingle-375ef72f.js +737 -0
- package/es/SelectSingle-375ef72f.js.map +1 -0
- package/es/Table-424db6b2.js +5509 -0
- package/es/Table-424db6b2.js.map +1 -0
- package/es/TableView-1f193c4a.js +31 -0
- package/es/TableView-1f193c4a.js.map +1 -0
- package/es/TextArea-f8a4620b.js +177 -0
- package/es/TextArea-f8a4620b.js.map +1 -0
- package/es/TextAreaAutosize-6ff9bddb.js +244 -0
- package/es/TextAreaAutosize-6ff9bddb.js.map +1 -0
- package/es/Theme-redwood/theme.css +491 -491
- package/es/Theme-stable/theme.css +526 -526
- package/es/UNSAFE_CardFlexView.js +4 -4
- package/es/UNSAFE_CardGridView.js +4 -4
- package/es/UNSAFE_CheckboxItem.js +31 -82
- package/es/UNSAFE_CheckboxItem.js.map +1 -1
- package/es/UNSAFE_CheckboxSet.js +44 -10
- package/es/UNSAFE_CheckboxSet.js.map +1 -1
- package/es/UNSAFE_ExpandableList.js +47 -47
- package/es/UNSAFE_Indexer.js +2 -2
- package/es/UNSAFE_ListView.js +5 -5
- package/es/UNSAFE_RichCheckboxSet.js +12 -14
- package/es/UNSAFE_RichCheckboxSet.js.map +1 -1
- package/es/UNSAFE_RichSelectionItem.js +42 -180
- package/es/UNSAFE_RichSelectionItem.js.map +1 -1
- package/es/UNSAFE_SelectMultiple.js +7 -7
- package/es/UNSAFE_SelectSingle.js +6 -6
- package/es/UNSAFE_TableView.js +4 -4
- package/es/UNSAFE_TextArea.js +2 -3
- package/es/UNSAFE_TextArea.js.map +1 -1
- package/es/UNSAFE_TextAreaAutosize.js +3 -3
- package/es/UNSAFE_Toolbar/tests/Toolbar.spec.js +1 -1
- package/es/UNSAFE_VirtualizedListView.js +5 -5
- package/es/VirtualizedCollection-f048fbb8.js +176 -0
- package/es/VirtualizedCollection-f048fbb8.js.map +1 -0
- package/es/VirtualizedListView-0532e46c.js +14 -0
- package/es/VirtualizedListView-0532e46c.js.map +1 -0
- package/es/useSelectCommon-98d8d2dc.js +686 -0
- package/es/useSelectCommon-98d8d2dc.js.map +1 -0
- package/package.json +2 -2
- package/amd/BarChart-f47d1c31.js +0 -2
- package/amd/BarChart-f47d1c31.js.map +0 -1
- package/amd/BaseCardView-70b177ed.js +0 -2
- package/amd/BaseCardView-70b177ed.js.map +0 -1
- package/amd/BaseCardViewSelectionTest-3466f4b3.js +0 -2
- package/amd/BaseCardViewSelectionTest-3466f4b3.js.map +0 -1
- package/amd/Card-f6f2dc90.js +0 -2
- package/amd/Card-f6f2dc90.js.map +0 -1
- package/amd/CardFlexView-bb5c4369.js +0 -2
- package/amd/CardFlexView-bb5c4369.js.map +0 -1
- package/amd/CardGridView-c28ff2f7.js +0 -2
- package/amd/CardGridView-c28ff2f7.js.map +0 -1
- package/amd/Center-b449a95c.js +0 -2
- package/amd/Center-b449a95c.js.map +0 -1
- package/amd/Chart-25d4c94f.js +0 -2
- package/amd/Chart-25d4c94f.js.map +0 -1
- package/amd/ComboChart-ac77959a.js +0 -2
- package/amd/ComboChart-ac77959a.js.map +0 -1
- package/amd/CompactLabelAssistance-44ba87b0.js +0 -2
- package/amd/CompactLabelAssistance-44ba87b0.js.map +0 -1
- package/amd/DatePicker-08d53d55.js +0 -2
- package/amd/DatePicker-08d53d55.js.map +0 -1
- package/amd/Diagram-a5898037.js +0 -2
- package/amd/Diagram-a5898037.js.map +0 -1
- package/amd/Dialog-c9d3d5d2.js +0 -2
- package/amd/Dialog-c9d3d5d2.js.map +0 -1
- package/amd/DragHandle-699fefd6.js +0 -2
- package/amd/DragHandle-699fefd6.js.map +0 -1
- package/amd/Dropdown-4b421eff.js +0 -2
- package/amd/Dropdown-4b421eff.js.map +0 -1
- package/amd/EnvironmentProvider-8f6fc388.js +0 -2
- package/amd/EnvironmentProvider-8f6fc388.js.map +0 -1
- package/amd/Flex-56ecdf4c.js +0 -2
- package/amd/Flex-56ecdf4c.js.map +0 -1
- package/amd/Floating-1ec5ec2a.js +0 -2
- package/amd/Floating-1ec5ec2a.js.map +0 -1
- package/amd/Grid-160f4885.js +0 -2
- package/amd/Grid-160f4885.js.map +0 -1
- package/amd/Gridlines-7851bb20.js +0 -2
- package/amd/Gridlines-7851bb20.js.map +0 -1
- package/amd/HighlightText-bd4c0101.js +0 -2
- package/amd/HighlightText-bd4c0101.js.map +0 -1
- package/amd/IconUserAssistance-d2bd2691.js +0 -2
- package/amd/IconUserAssistance-d2bd2691.js.map +0 -1
- package/amd/Indexer-357554c4.js +0 -2
- package/amd/Indexer-357554c4.js.map +0 -1
- package/amd/Layer-447c68e6.js +0 -2
- package/amd/Layer-447c68e6.js.map +0 -1
- package/amd/LayerHost-e95c5f30.js +0 -2
- package/amd/LayerHost-e95c5f30.js.map +0 -1
- package/amd/LayerManager-76fcfb58.js +0 -2
- package/amd/LayerManager-76fcfb58.js.map +0 -1
- package/amd/LineAreaChart-fe8b8f0f.js +0 -2
- package/amd/LineAreaChart-fe8b8f0f.js.map +0 -1
- package/amd/LineSeries-a549e727.js +0 -2
- package/amd/LineSeries-a549e727.js.map +0 -1
- package/amd/List-04c4fed0.js +0 -2
- package/amd/List-04c4fed0.js.map +0 -1
- package/amd/ListItemLayout-4208363c.js +0 -2
- package/amd/ListItemLayout-4208363c.js.map +0 -1
- package/amd/ListView-bf740071.js +0 -2
- package/amd/ListView-bf740071.js.map +0 -1
- package/amd/LiveRegion-8142ed0d.js +0 -2
- package/amd/LiveRegion-8142ed0d.js.map +0 -1
- package/amd/LoadMoreCollection-a6adbc3f.js +0 -2
- package/amd/LoadMoreCollection-a6adbc3f.js.map +0 -1
- package/amd/MaxLengthLiveRegion-8954fc30.js +0 -2
- package/amd/MaxLengthLiveRegion-8954fc30.js.map +0 -1
- package/amd/MessageLayer-ba56f7e2.js +0 -2
- package/amd/MessageLayer-ba56f7e2.js.map +0 -1
- package/amd/Modal-d6b2e905.js +0 -2
- package/amd/Modal-d6b2e905.js.map +0 -1
- package/amd/MonthView-ba499758.js +0 -2
- package/amd/MonthView-ba499758.js.map +0 -1
- package/amd/Popup-d51bf3f4.js +0 -2
- package/amd/Popup-d51bf3f4.js.map +0 -1
- package/amd/ProgressBar-3f4cd8d6.js +0 -2
- package/amd/ProgressBar-3f4cd8d6.js.map +0 -1
- package/amd/ProgressCircle-74b6fc89.js +0 -2
- package/amd/ProgressCircle-74b6fc89.js.map +0 -1
- package/amd/ScatterChart-6aea901e.js +0 -2
- package/amd/ScatterChart-6aea901e.js.map +0 -1
- package/amd/SectionedContent-2a261004.js +0 -2
- package/amd/SectionedContent-2a261004.js.map +0 -1
- package/amd/SelectMultiple-856fa90b.js +0 -2
- package/amd/SelectMultiple-856fa90b.js.map +0 -1
- package/amd/SelectSingle-c4e984e6.js +0 -2
- package/amd/SelectSingle-c4e984e6.js.map +0 -1
- package/amd/SelectionCard-895b014d.js +0 -2
- package/amd/SelectionCard-895b014d.js.map +0 -1
- package/amd/SelectorAll-e884a225.js +0 -2
- package/amd/SelectorAll-e884a225.js.map +0 -1
- package/amd/Sheet-46782f99.js +0 -2
- package/amd/Sheet-46782f99.js.map +0 -1
- package/amd/StyledCard-c4d0324d.js +0 -2
- package/amd/StyledCard-c4d0324d.js.map +0 -1
- package/amd/TabBarMixedSeparator-8c278254.js +0 -2
- package/amd/TabBarMixedSeparator-8c278254.js.map +0 -1
- package/amd/Table-35c926c3.js +0 -2
- package/amd/Table-35c926c3.js.map +0 -1
- package/amd/TableView-1b64aeb3.js +0 -2
- package/amd/TableView-1b64aeb3.js.map +0 -1
- package/amd/TruncatingBadge-04f9ef4c.js +0 -2
- package/amd/TruncatingBadge-04f9ef4c.js.map +0 -1
- package/amd/TruncatingText-d18d41c5.js +0 -2
- package/amd/TruncatingText-d18d41c5.js.map +0 -1
- package/amd/View-ce970ed7.js +0 -2
- package/amd/View-ce970ed7.js.map +0 -1
- package/amd/VirtualizedCollection-63223f5e.js +0 -2
- package/amd/VirtualizedCollection-63223f5e.js.map +0 -1
- package/amd/VirtualizedListView-554eaee6.js +0 -2
- package/amd/VirtualizedListView-554eaee6.js.map +0 -1
- package/amd/VisNoData-6fa39277.js +0 -2
- package/amd/VisNoData-6fa39277.js.map +0 -1
- package/amd/VisProgressiveLoader-68d8d8b3.js +0 -2
- package/amd/VisProgressiveLoader-68d8d8b3.js.map +0 -1
- package/amd/VisTabularDatatip-1051eaca.js +0 -2
- package/amd/VisTabularDatatip-1051eaca.js.map +0 -1
- package/amd/WindowOverlay-a2d80d55.js +0 -2
- package/amd/WindowOverlay-a2d80d55.js.map +0 -1
- package/amd/YearsGridView-6c227620.js +0 -2
- package/amd/YearsGridView-6c227620.js.map +0 -1
- package/amd/index-b7b9300d.js +0 -2
- package/amd/index-b7b9300d.js.map +0 -1
- package/amd/render-366c27ff.js +0 -2
- package/amd/render-366c27ff.js.map +0 -1
- package/amd/tabbableUtils-88d4fa35.js +0 -2
- package/amd/tabbableUtils-88d4fa35.js.map +0 -1
- package/amd/testData-783b8823.js +0 -2
- package/amd/testData-783b8823.js.map +0 -1
- package/amd/tooltipUtils-69ce0a2d.js +0 -2
- package/amd/tooltipUtils-69ce0a2d.js.map +0 -1
- package/amd/useChartDatatip-ee3783af.js +0 -2
- package/amd/useChartDatatip-ee3783af.js.map +0 -1
- package/amd/useColorScheme-10dc88de.js +0 -2
- package/amd/useColorScheme-10dc88de.js.map +0 -1
- package/amd/useCssVars-c043f8da.js +0 -2
- package/amd/useCssVars-c043f8da.js.map +0 -1
- package/amd/useCurrentBgColor-2426ee24.js +0 -2
- package/amd/useCurrentBgColor-2426ee24.js.map +0 -1
- package/amd/useCurrentKey-31c18053.js +0 -2
- package/amd/useCurrentKey-31c18053.js.map +0 -1
- package/amd/useDatatip-ac26447a.js +0 -2
- package/amd/useDatatip-ac26447a.js.map +0 -1
- package/amd/useDensity-c83df7b4.js +0 -2
- package/amd/useDensity-c83df7b4.js.map +0 -1
- package/amd/useFloating-acd30a55.js +0 -2
- package/amd/useFloating-acd30a55.js.map +0 -1
- package/amd/useKeyboardEvents-d87e3587.js +0 -2
- package/amd/useKeyboardEvents-d87e3587.js.map +0 -1
- package/amd/useMeterDatatip-fff3c329.js +0 -2
- package/amd/useMeterDatatip-fff3c329.js.map +0 -1
- package/amd/useOutsideClick-f99b7a84.js +0 -2
- package/amd/useOutsideClick-f99b7a84.js.map +0 -1
- package/amd/usePopupAnimation-f679a4b0.js +0 -2
- package/amd/usePopupAnimation-f679a4b0.js.map +0 -1
- package/amd/usePrefixSuffix-09bd5925.js +0 -2
- package/amd/usePrefixSuffix-09bd5925.js.map +0 -1
- package/amd/useReorderableItem-4c4779f7.js +0 -2
- package/amd/useReorderableItem-4c4779f7.js.map +0 -1
- package/amd/useRovingTabIndexContainer-955e23a8.js +0 -2
- package/amd/useRovingTabIndexContainer-955e23a8.js.map +0 -1
- package/amd/useScale-37d42c9d.js +0 -2
- package/amd/useScale-37d42c9d.js.map +0 -1
- package/amd/useSelectCommon-8cc04e42.js +0 -2
- package/amd/useSelectCommon-8cc04e42.js.map +0 -1
- package/amd/useSelectDrill-8e441eec.js +0 -2
- package/amd/useSelectDrill-8e441eec.js.map +0 -1
- package/amd/useSelection-4213924c.js +0 -2
- package/amd/useSelection-4213924c.js.map +0 -1
- package/amd/useSelection-f0c7d74d.js +0 -2
- package/amd/useSelection-f0c7d74d.js.map +0 -1
- package/amd/useTestId-3a316499.js +0 -2
- package/amd/useTestId-3a316499.js.map +0 -1
- package/amd/useTheme-ac980f9a.js +0 -2
- package/amd/useTheme-ac980f9a.js.map +0 -1
- package/amd/useThemeInterpolations-6b2de213.js +0 -2
- package/amd/useThemeInterpolations-6b2de213.js.map +0 -1
- package/amd/useTooltip-7b11fd35.js +0 -2
- package/amd/useTooltip-7b11fd35.js.map +0 -1
- package/amd/useTooltipControlled-52183a08.js +0 -2
- package/amd/useTooltipControlled-52183a08.js.map +0 -1
- package/amd/useTranslationBundle-516b1b83.js +0 -2
- package/amd/useTranslationBundle-516b1b83.js.map +0 -1
- package/amd/useUser-85c781ea.js +0 -2
- package/amd/useUser-85c781ea.js.map +0 -1
- package/amd/useVisEvents-0166e4cc.js +0 -2
- package/amd/useVisEvents-0166e4cc.js.map +0 -1
- package/amd/withDirectionIcon-ce0c7432.js +0 -2
- package/amd/withDirectionIcon-ce0c7432.js.map +0 -1
- package/cjs/BarChart-3398e34e.js +0 -181
- package/cjs/BarChart-3398e34e.js.map +0 -1
- package/cjs/BaseCardView-ade994f5.js +0 -687
- package/cjs/BaseCardView-ade994f5.js.map +0 -1
- package/cjs/BaseCardViewSelectionTest-c209fffe.js +0 -734
- package/cjs/BaseCardViewSelectionTest-c209fffe.js.map +0 -1
- package/cjs/BaseNavigationListItem-ac85812c.js +0 -49
- package/cjs/BaseNavigationListItem-ac85812c.js.map +0 -1
- package/cjs/Card-a6693442.js +0 -17
- package/cjs/Card-a6693442.js.map +0 -1
- package/cjs/CardFlexView-6492d995.js +0 -29
- package/cjs/CardFlexView-6492d995.js.map +0 -1
- package/cjs/CardGridView-d98aa089.js +0 -17
- package/cjs/CardGridView-d98aa089.js.map +0 -1
- package/cjs/Center-c0baccb0.js +0 -18
- package/cjs/Center-c0baccb0.js.map +0 -1
- package/cjs/Chart-c8be3e1d.js +0 -451
- package/cjs/Chart-c8be3e1d.js.map +0 -1
- package/cjs/CheckboxSetContext-c62db26d.js +0 -12
- package/cjs/CheckboxSetContext-c62db26d.js.map +0 -1
- package/cjs/ComboChart-d6c2f84f.js +0 -174
- package/cjs/ComboChart-d6c2f84f.js.map +0 -1
- package/cjs/CompactLabelAssistance-fd841834.js +0 -36
- package/cjs/CompactLabelAssistance-fd841834.js.map +0 -1
- package/cjs/DatePicker-5326483e.js +0 -566
- package/cjs/DatePicker-5326483e.js.map +0 -1
- package/cjs/Diagram-0369c638.js +0 -2028
- package/cjs/Diagram-0369c638.js.map +0 -1
- package/cjs/Dialog-78fcee2e.js +0 -318
- package/cjs/Dialog-78fcee2e.js.map +0 -1
- package/cjs/DragHandle-67b6118b.js +0 -24
- package/cjs/DragHandle-67b6118b.js.map +0 -1
- package/cjs/Dropdown-34b8f141.js +0 -82
- package/cjs/Dropdown-34b8f141.js.map +0 -1
- package/cjs/EnvironmentProvider-75eb79f3.js +0 -61
- package/cjs/EnvironmentProvider-75eb79f3.js.map +0 -1
- package/cjs/Flex-e7a85bef.js +0 -33
- package/cjs/Flex-e7a85bef.js.map +0 -1
- package/cjs/Floating-56621d20.js +0 -464
- package/cjs/Floating-56621d20.js.map +0 -1
- package/cjs/Grid-a7316edd.js +0 -29
- package/cjs/Grid-a7316edd.js.map +0 -1
- package/cjs/Gridlines-ef3af190.js +0 -171
- package/cjs/Gridlines-ef3af190.js.map +0 -1
- package/cjs/HighlightText-dd11dd32.js +0 -33
- package/cjs/HighlightText-dd11dd32.js.map +0 -1
- package/cjs/IconUserAssistance-52208fde.js +0 -75
- package/cjs/IconUserAssistance-52208fde.js.map +0 -1
- package/cjs/Indexer-72430806.js +0 -339
- package/cjs/Indexer-72430806.js.map +0 -1
- package/cjs/Layer-0053053a.js +0 -91
- package/cjs/Layer-0053053a.js.map +0 -1
- package/cjs/LayerHost-a8c7f182.js +0 -45
- package/cjs/LayerHost-a8c7f182.js.map +0 -1
- package/cjs/LayerManager-2d0b83ac.js +0 -36
- package/cjs/LayerManager-2d0b83ac.js.map +0 -1
- package/cjs/LineAreaChart-96cb18cb.js +0 -172
- package/cjs/LineAreaChart-96cb18cb.js.map +0 -1
- package/cjs/LineSeries-0e984080.js +0 -112
- package/cjs/LineSeries-0e984080.js.map +0 -1
- package/cjs/List-0dc2c4c4.js +0 -723
- package/cjs/List-0dc2c4c4.js.map +0 -1
- package/cjs/ListItemLayout-ec53f199.js +0 -112
- package/cjs/ListItemLayout-ec53f199.js.map +0 -1
- package/cjs/ListView-17b8250d.js +0 -430
- package/cjs/ListView-17b8250d.js.map +0 -1
- package/cjs/LiveRegion-567427c5.js +0 -41
- package/cjs/LiveRegion-567427c5.js.map +0 -1
- package/cjs/LoadMoreCollection-73112ff0.js +0 -34
- package/cjs/LoadMoreCollection-73112ff0.js.map +0 -1
- package/cjs/MaxLengthCounter-9ab3f74b.js +0 -27
- package/cjs/MaxLengthCounter-9ab3f74b.js.map +0 -1
- package/cjs/MaxLengthLiveRegion-f03f07c6.js +0 -25
- package/cjs/MaxLengthLiveRegion-f03f07c6.js.map +0 -1
- package/cjs/MessageLayer-f9aa9828.js +0 -61
- package/cjs/MessageLayer-f9aa9828.js.map +0 -1
- package/cjs/Modal-b9987f2d.js +0 -264
- package/cjs/Modal-b9987f2d.js.map +0 -1
- package/cjs/MonthView-b718bbc4.js +0 -210
- package/cjs/MonthView-b718bbc4.js.map +0 -1
- package/cjs/NavigationList-2a0bbb77.js +0 -161
- package/cjs/NavigationList-2a0bbb77.js.map +0 -1
- package/cjs/NavigationListItem-d927906d.js +0 -12
- package/cjs/NavigationListItem-d927906d.js.map +0 -1
- package/cjs/OverflowTabBar-95560908.js +0 -71
- package/cjs/OverflowTabBar-95560908.js.map +0 -1
- package/cjs/OverflowTabBarItem-0b4c8aa5.js +0 -89
- package/cjs/OverflowTabBarItem-0b4c8aa5.js.map +0 -1
- package/cjs/Popup-84ce41d3.js +0 -249
- package/cjs/Popup-84ce41d3.js.map +0 -1
- package/cjs/ProgressBar-aa9edb7a.js +0 -64
- package/cjs/ProgressBar-aa9edb7a.js.map +0 -1
- package/cjs/ProgressCircle-1d9fbade.js +0 -50
- package/cjs/ProgressCircle-1d9fbade.js.map +0 -1
- package/cjs/RemovableNavigationListItem-48c1f9ab.js +0 -27
- package/cjs/RemovableNavigationListItem-48c1f9ab.js.map +0 -1
- package/cjs/ReorderableTabBar-5614d872.js +0 -79
- package/cjs/ReorderableTabBar-5614d872.js.map +0 -1
- package/cjs/ScatterChart-c2c13650.js +0 -105
- package/cjs/ScatterChart-c2c13650.js.map +0 -1
- package/cjs/SectionedContent-06dc071c.js +0 -67
- package/cjs/SectionedContent-06dc071c.js.map +0 -1
- package/cjs/SelectMultiple-12261f4a.js +0 -1306
- package/cjs/SelectMultiple-12261f4a.js.map +0 -1
- package/cjs/SelectSingle-382b9a03.js +0 -739
- package/cjs/SelectSingle-382b9a03.js.map +0 -1
- package/cjs/SelectionCard-67f7003e.js +0 -18
- package/cjs/SelectionCard-67f7003e.js.map +0 -1
- package/cjs/SelectorAll-b55e1b61.js +0 -71
- package/cjs/SelectorAll-b55e1b61.js.map +0 -1
- package/cjs/Sheet-86989265.js +0 -161
- package/cjs/Sheet-86989265.js.map +0 -1
- package/cjs/StyledCard-a0496c88.js +0 -107
- package/cjs/StyledCard-a0496c88.js.map +0 -1
- package/cjs/TabBar-bcf66387.js +0 -84
- package/cjs/TabBar-bcf66387.js.map +0 -1
- package/cjs/TabBarMixed-ac642788.js +0 -85
- package/cjs/TabBarMixed-ac642788.js.map +0 -1
- package/cjs/TabBarMixedSeparator-0e258647.js +0 -21
- package/cjs/TabBarMixedSeparator-0e258647.js.map +0 -1
- package/cjs/Table-42e84ff0.js +0 -5511
- package/cjs/Table-42e84ff0.js.map +0 -1
- package/cjs/TableView-9e8d90d5.js +0 -33
- package/cjs/TableView-9e8d90d5.js.map +0 -1
- package/cjs/TextArea-aea6ecae.js +0 -162
- package/cjs/TextArea-aea6ecae.js.map +0 -1
- package/cjs/TextAreaAutosize-c01d61dc.js +0 -246
- package/cjs/TextAreaAutosize-c01d61dc.js.map +0 -1
- package/cjs/TruncatingBadge-efe34bb7.js +0 -36
- package/cjs/TruncatingBadge-efe34bb7.js.map +0 -1
- package/cjs/TruncatingText-33c06a6c.js +0 -50
- package/cjs/TruncatingText-33c06a6c.js.map +0 -1
- package/cjs/View-5930179e.js +0 -170
- package/cjs/View-5930179e.js.map +0 -1
- package/cjs/VirtualizedCollection-00aedb8b.js +0 -180
- package/cjs/VirtualizedCollection-00aedb8b.js.map +0 -1
- package/cjs/VirtualizedListView-9bfaf4e2.js +0 -16
- package/cjs/VirtualizedListView-9bfaf4e2.js.map +0 -1
- package/cjs/VisNoData-5b2aa6a2.js +0 -35
- package/cjs/VisNoData-5b2aa6a2.js.map +0 -1
- package/cjs/VisProgressiveLoader-dacfe618.js +0 -53
- package/cjs/VisProgressiveLoader-dacfe618.js.map +0 -1
- package/cjs/VisTabularDatatip-eca8aa8f.js +0 -26
- package/cjs/VisTabularDatatip-eca8aa8f.js.map +0 -1
- package/cjs/WindowOverlay-06408f56.js +0 -112
- package/cjs/WindowOverlay-06408f56.js.map +0 -1
- package/cjs/YearsGridView-ce8739b3.js +0 -190
- package/cjs/YearsGridView-ce8739b3.js.map +0 -1
- package/cjs/index-ce6f9627.js +0 -13
- package/cjs/index-ce6f9627.js.map +0 -1
- package/cjs/render-9767e967.js +0 -41
- package/cjs/render-9767e967.js.map +0 -1
- package/cjs/tabbableUtils-a38b7148.js +0 -81
- package/cjs/tabbableUtils-a38b7148.js.map +0 -1
- package/cjs/testData-7439df49.js +0 -271
- package/cjs/testData-7439df49.js.map +0 -1
- package/cjs/tooltipUtils-669c2ae0.js +0 -97
- package/cjs/tooltipUtils-669c2ae0.js.map +0 -1
- package/cjs/useChartDatatip-c6107d63.js +0 -166
- package/cjs/useChartDatatip-c6107d63.js.map +0 -1
- package/cjs/useColorScheme-ce2a88b1.js +0 -21
- package/cjs/useColorScheme-ce2a88b1.js.map +0 -1
- package/cjs/useCssVars-bd95e715.js +0 -60
- package/cjs/useCssVars-bd95e715.js.map +0 -1
- package/cjs/useCurrentBgColor-6e39eb3a.js +0 -21
- package/cjs/useCurrentBgColor-6e39eb3a.js.map +0 -1
- package/cjs/useCurrentKey-88495da2.js +0 -83
- package/cjs/useCurrentKey-88495da2.js.map +0 -1
- package/cjs/useDatatip-83ab0540.js +0 -89
- package/cjs/useDatatip-83ab0540.js.map +0 -1
- package/cjs/useDensity-1f8cc921.js +0 -21
- package/cjs/useDensity-1f8cc921.js.map +0 -1
- package/cjs/useFloating-480d365a.js +0 -1926
- package/cjs/useFloating-480d365a.js.map +0 -1
- package/cjs/useKeyboardEvents-5e808fe3.js +0 -81
- package/cjs/useKeyboardEvents-5e808fe3.js.map +0 -1
- package/cjs/useMeterDatatip-641afcc6.js +0 -77
- package/cjs/useMeterDatatip-641afcc6.js.map +0 -1
- package/cjs/useNavigationListItem-ae481fdc.js +0 -85
- package/cjs/useNavigationListItem-ae481fdc.js.map +0 -1
- package/cjs/useOutsideClick-03a6c38c.js +0 -103
- package/cjs/useOutsideClick-03a6c38c.js.map +0 -1
- package/cjs/usePopupAnimation-2afacc4b.js +0 -87
- package/cjs/usePopupAnimation-2afacc4b.js.map +0 -1
- package/cjs/usePrefixSuffix-23341de3.js +0 -72
- package/cjs/usePrefixSuffix-23341de3.js.map +0 -1
- package/cjs/useReorderableItem-0dbb8843.js +0 -271
- package/cjs/useReorderableItem-0dbb8843.js.map +0 -1
- package/cjs/useRovingTabIndexContainer-dc12b802.js +0 -100
- package/cjs/useRovingTabIndexContainer-dc12b802.js.map +0 -1
- package/cjs/useScale-a681a5cb.js +0 -21
- package/cjs/useScale-a681a5cb.js.map +0 -1
- package/cjs/useSelectCommon-7f7b44d1.js +0 -709
- package/cjs/useSelectCommon-7f7b44d1.js.map +0 -1
- package/cjs/useSelectDrill-b8d4eee2.js +0 -106
- package/cjs/useSelectDrill-b8d4eee2.js.map +0 -1
- package/cjs/useSelection-228ef3ce.js +0 -241
- package/cjs/useSelection-228ef3ce.js.map +0 -1
- package/cjs/useSelection-6386b3f2.js +0 -187
- package/cjs/useSelection-6386b3f2.js.map +0 -1
- package/cjs/useTestId-5e6af45d.js +0 -23
- package/cjs/useTestId-5e6af45d.js.map +0 -1
- package/cjs/useTheme-8fb5546b.js +0 -21
- package/cjs/useTheme-8fb5546b.js.map +0 -1
- package/cjs/useThemeInterpolations-28ca9a13.js +0 -59
- package/cjs/useThemeInterpolations-28ca9a13.js.map +0 -1
- package/cjs/useTooltip-81b7b753.js +0 -51
- package/cjs/useTooltip-81b7b753.js.map +0 -1
- package/cjs/useTooltipControlled-33832163.js +0 -371
- package/cjs/useTooltipControlled-33832163.js.map +0 -1
- package/cjs/useTranslationBundle-51f4c22c.js +0 -31
- package/cjs/useTranslationBundle-51f4c22c.js.map +0 -1
- package/cjs/useUser-a4bfc560.js +0 -21
- package/cjs/useUser-a4bfc560.js.map +0 -1
- package/cjs/useVisEvents-e48065f4.js +0 -155
- package/cjs/useVisEvents-e48065f4.js.map +0 -1
- package/cjs/withDirectionIcon-1affce30.js +0 -16
- package/cjs/withDirectionIcon-1affce30.js.map +0 -1
- package/es/BaseCardView-c5a8ee6a.js +0 -683
- package/es/BaseCardView-c5a8ee6a.js.map +0 -1
- package/es/BaseCardViewSelectionTest-cd1ea539.js +0 -721
- package/es/BaseCardViewSelectionTest-cd1ea539.js.map +0 -1
- package/es/CardFlexView-529906e0.js +0 -27
- package/es/CardFlexView-529906e0.js.map +0 -1
- package/es/CardGridView-ec18c929.js +0 -15
- package/es/CardGridView-ec18c929.js.map +0 -1
- package/es/CheckboxSet-86252618.js +0 -49
- package/es/CheckboxSet-86252618.js.map +0 -1
- package/es/ExpandableList-8e169e46.js +0 -167
- package/es/ExpandableList-8e169e46.js.map +0 -1
- package/es/Indexer-ba2c7593.js +0 -336
- package/es/Indexer-ba2c7593.js.map +0 -1
- package/es/List-97b7be70.js +0 -718
- package/es/List-97b7be70.js.map +0 -1
- package/es/ListView-936d8a4f.js +0 -428
- package/es/ListView-936d8a4f.js.map +0 -1
- package/es/LoadMoreCollection-95a49d2a.js +0 -31
- package/es/LoadMoreCollection-95a49d2a.js.map +0 -1
- package/es/MaxLengthCounter-181b4fc9.js +0 -25
- package/es/MaxLengthCounter-181b4fc9.js.map +0 -1
- package/es/SelectMultiple-3c145646.js +0 -1304
- package/es/SelectMultiple-3c145646.js.map +0 -1
- package/es/SelectSingle-c4761455.js +0 -737
- package/es/SelectSingle-c4761455.js.map +0 -1
- package/es/Table-39429460.js +0 -5509
- package/es/Table-39429460.js.map +0 -1
- package/es/TableView-fef873d4.js +0 -31
- package/es/TableView-fef873d4.js.map +0 -1
- package/es/TextArea-e9bcb623.js +0 -160
- package/es/TextArea-e9bcb623.js.map +0 -1
- package/es/TextAreaAutosize-3b559450.js +0 -244
- package/es/TextAreaAutosize-3b559450.js.map +0 -1
- package/es/VirtualizedCollection-e73890a1.js +0 -176
- package/es/VirtualizedCollection-e73890a1.js.map +0 -1
- package/es/VirtualizedListView-3ef40bde.js +0 -14
- package/es/VirtualizedListView-3ef40bde.js.map +0 -1
- package/es/useSelectCommon-573611ca.js +0 -686
- package/es/useSelectCommon-573611ca.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Diagram-a5898037.js","sources":["../../src/UNSAFE_Diagram/utils/diagramUtils.ts","../../src/UNSAFE_Diagram/DiagramNodeElement.tsx","../../src/UNSAFE_Diagram/DiagramNodeLayer.tsx","../../src/UNSAFE_Diagram/DiagramLinkElement.tsx","../../src/UNSAFE_Diagram/DiagramLinkLayer.tsx","../../src/UNSAFE_Diagram/DiagramLabel.tsx","../../src/UNSAFE_Diagram/DiagramLabelLayer.tsx","../../src/UNSAFE_Diagram/DiagramLayers.tsx","../../src/UNSAFE_Diagram/DiagramPanZoomContainer.tsx","../../src/UNSAFE_Diagram/utils/navUtils.ts","../../src/UNSAFE_Diagram/hooks/useDiagramNavigation.ts","../../src/UNSAFE_Diagram/hooks/useEvents.ts","../../src/UNSAFE_Diagram/hooks/useDiagramDatatip.ts","../../src/UNSAFE_Diagram/hooks/usePointerGesture.ts","../../src/UNSAFE_Diagram/utils/panUtils.ts","../../src/UNSAFE_Diagram/hooks/useDragPan.ts","../../src/UNSAFE_Diagram/hooks/useDrag.ts","../../src/UNSAFE_Diagram/utils/zoomUtils.ts","../../src/UNSAFE_Diagram/hooks/usePinch.ts","../../src/UNSAFE_Diagram/hooks/usePinchZoom.ts","../../src/UNSAFE_Diagram/hooks/usePanZoom.ts","../../src/UNSAFE_Diagram/hooks/useWheelZoom.ts","../../src/UNSAFE_Diagram/hooks/useWheel.ts","../../src/UNSAFE_Diagram/DiagramWithDimensions.tsx","../../src/UNSAFE_Diagram/hooks/useDiagramSelection.ts","../../src/UNSAFE_Diagram/Diagram.tsx"],"sourcesContent":["import type {\n Pan,\n Zoom,\n DiagramNodeData,\n DiagramLinkData,\n DiagramLayoutOutput,\n ItemInfo,\n Bounds,\n Position,\n Dimensions,\n DatatipContext,\n DiagramLabelStyles,\n DiagramLabelPosition\n} from '../diagram.types';\nimport type { RefObject } from 'preact';\nimport type { BundleType } from '#resources/nls/bundle';\nimport type { Font, GetTextDimensionsType, TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { ComponentChildren } from 'preact';\nimport { Property } from 'csstype';\nimport { generateAriaLabel } from '#utils/UNSAFE_visUtils/accUtils';\n\nconst ZOOM_TO_FIT_PADDING = 20;\n/**\n * Returns the pan properties for the diagram.\n */\nexport function getPanProps(\n props: Pan,\n contentBounds: Bounds,\n userDragMode: string | undefined,\n isDeviceTouch: boolean\n) {\n return {\n panning: isDeviceTouch\n ? userDragMode === 'pan' && props.panning\n ? props.panning\n : 'off'\n : props.panning\n ? props.panning\n : 'off',\n panDirection: props.panDirection ? props.panDirection : 'any',\n centerX: props.centerX !== undefined ? props.centerX : contentBounds.w / 2 + contentBounds.x,\n centerY: props.centerY !== undefined ? props.centerY : contentBounds.h / 2 + contentBounds.y,\n onPan: props.onPan\n };\n}\n\n/**\n * Returns the zoom properties for the diagram.\n */\nexport function getZoomProps(props: Zoom, width: number, height: number, contentBounds: Bounds) {\n const minZoom = props.minZoom ? props.minZoom : getZoomToFitZoom(width, height, contentBounds);\n const maxZoom = props.maxZoom !== undefined ? props.maxZoom : 1;\n const zoom = props.zoomValue ? props.zoomValue : getZoomToFitZoom(width, height, contentBounds);\n return {\n zooming: props.zooming ? props.zooming : 'off',\n // default value of 0 indicates zoom-to-fit level\n minZoom: minZoom,\n maxZoom: maxZoom,\n // zoom value of 0 will default to zoom to fit\n zoomValue: constrainZoom(zoom, minZoom, maxZoom),\n onZoom: props.onZoom\n };\n}\n\n/**\n * Constructs the json object to be passed into the layout function\n */\nexport function constructLayoutJSON<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n nodes: D1[],\n nodeItems: Map<K1, D1>,\n linkItems: Map<K2, D2>,\n dimensions: Dimensions[],\n width: number,\n height: number,\n getTextDimensions?: GetTextDimensionsType\n) {\n const labelDims: Map<K1 | K2, TextDimensions> = new Map();\n const nodeKeys = Array.from(nodeItems.keys());\n for (const id of nodeKeys) {\n const item = nodeItems.get(id as K1);\n if (item && getTextDimensions && item.label) {\n const label = item.label;\n const fontProps = _getFontProps(item.labelStyle);\n labelDims.set(id as K1 | K2, getTextDimensions(label, fontProps));\n }\n }\n const linkKeys = Array.from(linkItems.keys());\n for (const id of linkKeys) {\n const item = linkItems.get(id as K2);\n if (item && getTextDimensions && item.label) {\n const label = item.label;\n const fontProps = _getFontProps(item.labelStyle);\n labelDims.set(id as K1 | K2, getTextDimensions(label, fontProps));\n }\n }\n const getLabelDimensions = function (data: D1 | D2) {\n return labelDims.get(data.id);\n };\n const getNodeDimensions = function (data: D1) {\n for (let i = 0; i < nodes.length; i++) {\n if (data.id === nodes[i].id) {\n return dimensions[i];\n }\n }\n return dimensions[0];\n };\n\n return {\n layoutJSON: {\n getNodeDimensions: getNodeDimensions,\n getLabelDimensions: getLabelDimensions,\n componentSize: {\n width: width,\n height: height\n }\n },\n labelDims: labelDims\n };\n}\n\n/**\n * Deconstructs the output of the layout function\n */\nexport function deconstructLayoutJSON<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>(layoutJSON: L, nodeData: D1[], linkData: D2[]) {\n const nodes = layoutJSON.nodes;\n const links = layoutJSON.links;\n const positions: Position[] = [];\n const nodeLabelPos: (DiagramLabelPosition | undefined)[] = [];\n const linkLabelPos: DiagramLabelPosition[] = [];\n let hasNodeLabels = false;\n let hasLinkLabels = false;\n let node, link;\n for (let i = 0; i < nodeData.length; i++) {\n node = nodes[nodeData[i].id];\n positions.push(node.position);\n if (node.label) hasNodeLabels = true;\n nodeLabelPos.push(node.label);\n }\n if (links) {\n for (let i = 0; i < linkData.length; i++) {\n link = links[linkData[i].id];\n if (link.label) hasLinkLabels = true;\n linkLabelPos.push(link.label);\n }\n }\n return {\n nodePoints: positions,\n nodeLabelPos: hasNodeLabels ? nodeLabelPos : undefined,\n linkLabelPos: hasLinkLabels ? linkLabelPos : undefined\n };\n}\n\n/**\n * Merges the node points into the dimensions\n */\nexport function mergeDimensions(dimensions: Dimensions[], nodePoints: Position[]) {\n const newBounds: Bounds[] = [];\n for (let i = 0; i < dimensions.length; i++) {\n const point = nodePoints[i];\n const dim = dimensions[i];\n newBounds.push({ x: point.x, y: point.y, w: dim.w, h: dim.h });\n }\n return newBounds;\n}\n\n/**\n * Deep equality check for whether two arrays of bounds are the same\n */\nexport function isEqualBounds(bounds1: Bounds[], bounds2: Bounds[]) {\n if (bounds1.length !== bounds2.length) return false;\n return bounds1.every(\n ({ x, y, w, h }, i) =>\n bounds2[i].x === x && bounds2[i].y === y && bounds2[i].w === w && bounds2[i].h === h\n );\n}\n\n/**\n * Returns the text for the diagram datatip.\n */\nexport function getDatatipContent<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n nodesMap: Map<K1, D1>,\n linksMap: Map<K2, D2>,\n focusedItem?: ItemInfo<K1, K2>,\n hoveredItem?: ItemInfo<K1, K2>,\n datatip?: (detail: DatatipContext<D1, D2>) => {\n content: ComponentChildren;\n borderColor?: Property.BorderColor;\n }\n) {\n let itemInfo;\n const isPointerActive = hoveredItem?.isCurrent;\n if (isPointerActive && hoveredItem.id != null) {\n itemInfo = hoveredItem;\n }\n if (focusedItem && focusedItem.isCurrent) {\n itemInfo = focusedItem;\n }\n if (itemInfo && datatip) {\n return datatip(\n itemInfo.isNode\n ? { data: nodesMap.get(itemInfo.id as K1) as D1, type: 'node' }\n : { data: linksMap.get(itemInfo.id as K2) as D2, type: 'link' }\n );\n }\n if (itemInfo) {\n const text = (\n itemInfo.isNode ? nodesMap.get(itemInfo.id as K1) : linksMap.get(itemInfo.id as K2)\n )?.accessibleLabel;\n return {\n content: text\n };\n }\n return;\n}\n\n/**\n * Creates a map with key id and value node or link data\n */\nexport function createItemMap<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(items: (D1 | D2)[]) {\n const itemIdToDataMap = new Map();\n const itemIdToIndexMap = new Map();\n const itemIndexToIdMap = new Map();\n for (let i = 0; i < items.length; i++) {\n itemIdToDataMap.set(items[i].id, items[i]);\n itemIdToIndexMap.set(items[i].id, i);\n itemIndexToIdMap.set(i, items[i].id);\n }\n return {\n itemIdToDataMap,\n itemIdToIndexMap,\n itemIndexToIdMap\n };\n}\n\n/**\n * Filter out links with no start or end nodes\n */\nexport function filterLinksWithNoEndNodes<K2, K1, D1, D2 extends DiagramLinkData<K2, K1>>(\n links: D2[],\n nodesMap: Map<K1, D1>\n) {\n const newLinks: D2[] = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n if (nodesMap.get(link.startNode) && nodesMap.get(link.endNode)) {\n newLinks.push(link);\n }\n }\n return newLinks;\n}\n\n/**\n * Pulls out the dimensions from an array of bounds\n */\nexport function getDimensionsFromBounds(bounds: Bounds[]) {\n const dims: Dimensions[] = [];\n for (let i = 0; i < bounds.length; i++) {\n dims.push({ w: bounds[i].w, h: bounds[i].h });\n }\n return dims;\n}\n\n/**\n * Returns true if event is a selection event\n */\nexport function isSelectionEvent(event: KeyboardEvent): boolean {\n if (event.altKey && (event.key === '≥' || event.key === '≤')) {\n return true;\n }\n return false;\n}\n\n/**\n * Returns the center position of the node or link\n * For links, draws a straight line between the centers of the start/end node\n * and returns the center of that line\n */\nexport function getFocusedItemBounds<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n focusedItemInfo: ItemInfo<K1, K2>,\n bounds: Bounds[],\n links: D2[],\n nodeIdToIndexMap: Map<K1, number>,\n linkIdToIndexMap: Map<K2, number>\n) {\n if (focusedItemInfo.isNode) {\n const idx = nodeIdToIndexMap.get(focusedItemInfo.id as K1);\n // Return the first element if cannot find the Node index\n return bounds[idx || 0];\n } else {\n // Center of a straight line between start/end node centers\n const link = links[linkIdToIndexMap.get(focusedItemInfo.id as K2) || 0];\n const startNB = bounds[nodeIdToIndexMap.get(link.startNode) || 0];\n const endNB = bounds[nodeIdToIndexMap.get(link.endNode) || 0];\n const startNCenter = { x: startNB.x + startNB.w / 2, y: startNB.y + startNB.h / 2 };\n const endNCenter = { x: endNB.x + endNB.w / 2, y: endNB.y + endNB.h / 2 };\n const minX = Math.min(startNCenter.x, endNCenter.x);\n const minY = Math.min(startNCenter.y, endNCenter.y);\n return {\n x: minX,\n y: minY,\n w: Math.abs(startNCenter.x - endNCenter.x),\n h: Math.abs(startNCenter.y - endNCenter.y)\n };\n }\n}\n/**\n * Combines the node and link ids into one array\n */\nexport function combineIds<K1, K2>(nodeIds?: K1[], linkIds?: K2[]) {\n const combinedIds: (K1 | K2)[] = [];\n if (nodeIds) {\n for (let i = 0; i < nodeIds.length; i++) {\n combinedIds.push(nodeIds[i]);\n }\n }\n if (linkIds) {\n for (let i = 0; i < linkIds.length; i++) {\n combinedIds.push(linkIds[i]);\n }\n }\n return combinedIds;\n}\n\n/**\n * Returns the bounds of the diagram content\n */\nexport function getContentBounds(nodeBounds: Bounds[], labelBounds?: Bounds): Bounds {\n if (nodeBounds.length === 0) return { x: 0, w: Infinity, y: 0, h: Infinity };\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let dims;\n for (let i = 0; i < nodeBounds.length; i++) {\n dims = nodeBounds[i];\n minX = dims.x < minX ? dims.x : minX;\n minY = dims.y < minY ? dims.y : minY;\n maxX = dims.x + dims.w > maxX ? dims.x + dims.w : maxX;\n maxY = dims.y + dims.h > maxY ? dims.y + dims.h : maxY;\n }\n if (labelBounds) {\n minX = labelBounds.x < minX ? labelBounds.x : minX;\n minY = labelBounds.y < minY ? labelBounds.y : minY;\n maxX = labelBounds.x + labelBounds.w > maxX ? labelBounds.x + labelBounds.w : maxX;\n maxY = labelBounds.y + labelBounds.h > maxY ? labelBounds.y + labelBounds.h : maxY;\n }\n return { x: minX, w: maxX - minX, y: minY, h: maxY - minY };\n}\n\n/**\n * Returns the label bounds\n */\nexport function getAllLabelBounds<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n labelDims: Map<K1 | K2, TextDimensions>,\n nodes: D1[],\n links: D2[],\n nodeLabelPos: (DiagramLabelPosition | undefined)[] = [],\n linkLabelPos: DiagramLabelPosition[] = [],\n isRTL: boolean\n) {\n if (nodeLabelPos.length === 0 && linkLabelPos.length === 0) return undefined;\n let minX = Infinity;\n let minY = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let dims, label;\n for (let i = 0; i < nodeLabelPos.length; i++) {\n label = nodeLabelPos[i];\n if (!label) continue;\n dims = getLabelBounds(label, labelDims.get(nodes[i].id)!, isRTL);\n minX = dims.x < minX ? dims.x : minX;\n minY = dims.y < minY ? dims.y : minY;\n maxX = dims.x + dims.w > maxX ? dims.x + dims.w : maxX;\n maxY = dims.y + dims.h > maxY ? dims.y + dims.h : maxY;\n }\n for (let i = 0; i < linkLabelPos.length; i++) {\n label = linkLabelPos[i];\n if (!label) continue;\n dims = getLabelBounds(label, labelDims.get(links[i].id)!, isRTL);\n minX = dims.x < minX ? dims.x : minX;\n minY = dims.y < minY ? dims.y : minY;\n maxX = dims.x + dims.w > maxX ? dims.x + dims.w : maxX;\n maxY = dims.y + dims.h > maxY ? dims.y + dims.h : maxY;\n }\n return { x: minX, w: maxX - minX, y: minY, h: maxY - minY };\n}\n\nfunction getLabelBounds(label: DiagramLabelPosition, dims: TextDimensions, isRTL: boolean) {\n const labelPos = getLabelPosition(dims, label, isRTL);\n const isRotating = label.rotationAngle;\n if (!isRotating) {\n return { x: labelPos.x, y: labelPos.y, w: dims.width, h: dims.height };\n } else {\n // Find the 4 corners of the label bounds relative to the rotation point\n const rotationPoint = label.rotationPoint\n ? label.rotationPoint\n : { x: dims.width / 2, y: dims.height / 2 };\n const angle = label.rotationAngle!;\n const topLeft = getCoordsRelToRotPoint({ x: 0, y: 0 }, rotationPoint);\n const topRight = getCoordsRelToRotPoint({ x: dims.width, y: 0 }, rotationPoint);\n const bottomLeft = getCoordsRelToRotPoint({ x: 0, y: dims.height }, rotationPoint);\n const bottomRight = getCoordsRelToRotPoint({ x: dims.width, y: dims.height }, rotationPoint);\n const rotTopLeft = rotatePoint(topLeft, angle);\n const rotBotLeft = rotatePoint(bottomLeft, angle);\n const rotTopRight = rotatePoint(topRight, angle);\n const rotBotRight = rotatePoint(bottomRight, angle);\n const points = [rotTopLeft, rotBotLeft, rotTopRight, rotBotRight].map((pos: Position) => {\n return {\n x: pos.x + labelPos.x + rotationPoint.x,\n y: pos.y + labelPos.y + rotationPoint.y\n };\n });\n return getBoundsFromPoints(points);\n }\n}\n\nfunction getCoordsRelToRotPoint(labelPoint: Position, rotPoint: Position) {\n return { x: labelPoint.x - rotPoint.x, y: labelPoint.y - rotPoint.y };\n}\n\nfunction rotatePoint(pos: Position, angle: number) {\n return {\n x: pos.x * Math.cos(angle) - pos.y * Math.sin(angle),\n y: pos.x * Math.sin(angle) + pos.y * Math.cos(angle)\n };\n}\n\nfunction getBoundsFromPoints(points: Position[]) {\n let minX = points[0].x;\n let minY = points[0].y;\n let maxX = points[0].x;\n let maxY = points[0].y;\n for (let i = 1; i < points.length; i++) {\n const point = points[i];\n if (point.x < minX) minX = point.x;\n else if (point.x > maxX) maxX = point.x;\n if (point.y < minY) minY = point.y;\n else if (point.y > maxY) maxY = point.y;\n }\n return {\n x: minX,\n y: minY,\n w: maxX - minX,\n h: maxY - minY\n };\n}\n\n/**\n * Returns the position of the label\n * @param dimensions\n * @param positionProps\n * @returns position of the label\n */\nexport function getLabelPosition(\n dimensions: TextDimensions,\n positionProps: DiagramLabelPosition,\n isRTL: boolean\n) {\n const position = positionProps.position;\n const hAlign = positionProps.hAlign ? positionProps.hAlign : isRTL ? 'right' : 'left';\n const vAlign = positionProps.vAlign;\n let x, y;\n if (hAlign === 'center') {\n x = position.x - dimensions.width / 2;\n } else if (hAlign === 'right') {\n x = position.x - dimensions.width;\n } else {\n x = position.x;\n }\n\n if (vAlign === 'middle') {\n y = position.y - dimensions.height / 2;\n } else if (vAlign === 'bottom') {\n y = position.y - dimensions.height;\n } else if (vAlign === 'baseline') {\n y = position.y + dimensions.y;\n } else {\n y = position.y;\n }\n return {\n x: x,\n y: y\n };\n}\n\n/**\n * Converts centerX,Y coordinates to panX,Y coordinates\n */\nexport function centerXYToPanXY(\n centerX: number,\n centerY: number,\n zoom: number,\n width: number,\n height: number\n) {\n return {\n panX: width / 2 - centerX * zoom,\n panY: height / 2 - centerY * zoom\n };\n}\n/**\n * Converts panX,Y coordinates to centerX,Y coordinates\n */\nexport function panXYToCenterXY(\n panX: number,\n panY: number,\n zoom: number,\n width: number,\n height: number\n) {\n return {\n centerX: (width / 2 - panX) / zoom,\n centerY: (height / 2 - panY) / zoom\n };\n}\n\n/**\n * Compares if two ItemInfo are equal\n */\nexport function isEqualItem<K1, K2>(item1?: ItemInfo<K1, K2>, item2?: ItemInfo<K1, K2>) {\n return item1?.id === item2?.id && item1?.isNode === item2?.isNode;\n}\n\n/**\n * Returns the item info of the data-oj-node or data-oj-link attribute for a given element.\n */\nexport function getNavigableInfo<K1, K2>(\n element: HTMLElement,\n rootElementRef?: RefObject<HTMLDivElement>\n): ItemInfo<K1, K2> {\n let isNode = false;\n let elem = element;\n let navigableId;\n while (!navigableId) {\n navigableId = elem.dataset['node'];\n if (navigableId) {\n isNode = true;\n } else {\n navigableId = elem.dataset['link'];\n }\n if (!navigableId) {\n if (elem.parentElement && elem.parentElement !== rootElementRef?.current) {\n elem = elem.parentElement;\n } else {\n break;\n }\n }\n }\n return {\n id: navigableId as K1 | K2,\n isNode: isNode\n };\n}\n\n/**\n * Returns the id of the focused item.\n */\nexport function getFocusedItem<K1, K2>(\n focusedItemInfo: ItemInfo<K1, K2>,\n hoveredItemInfo?: ItemInfo<K1, K2>\n) {\n let focused;\n if (focusedItemInfo.isCurrent && focusedItemInfo.isFocusVisible) {\n focused = focusedItemInfo.id;\n } else if (hoveredItemInfo?.isCurrent) {\n focused = hoveredItemInfo.id;\n }\n return focused;\n}\n\n/**\n * Returns the aria label\n */\nexport function getItemAriaLabel(\n translations: BundleType,\n supportsSelection: boolean,\n isSelected?: boolean,\n accessibleLabel?: string\n) {\n return generateAriaLabel(translations, accessibleLabel || '', {\n isSelected: !supportsSelection ? undefined : isSelected\n });\n}\n\n/**\n * Returns the zoom to fit zoom level\n */\nexport function getZoomToFitZoom(width: number, height: number, contentBounds: Bounds) {\n const zoomX = (width - 2 * ZOOM_TO_FIT_PADDING) / contentBounds.w;\n const zoomY = (height - 2 * ZOOM_TO_FIT_PADDING) / contentBounds.h;\n return Math.min(zoomX, zoomY);\n}\n\n/**\n * Constrains the zoom level\n */\nfunction constrainZoom(zoom: number, minZoom: number, maxZoom: number) {\n let newZoom = Math.max(minZoom, zoom);\n newZoom = Math.min(maxZoom, newZoom);\n return newZoom;\n}\n\n/**\n * Returns the font props for a node or link\n */\nfunction _getFontProps(styles?: DiagramLabelStyles) {\n const fontProps: Font = {};\n if (!styles) return fontProps;\n if (styles.fontFamily) fontProps.fontFamily = styles.fontFamily;\n if (styles.fontSize) fontProps.fontSize = styles.fontSize;\n if (styles.fontStyle) fontProps.fontStyle = styles.fontStyle;\n if (styles.fontWeight) fontProps.fontWeight = styles.fontWeight;\n return fontProps;\n}\n\n/**\n * Returns the panX, panY, and zoom when zooming and centering an item\n */\nexport function zoomAndCenterItemFromInfo<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n info: ItemInfo<K1, K2>,\n linkIdToDataMap: Map<K2, D2>,\n bounds: Bounds[],\n nodeIdToIndex: Map<K1, number>,\n width: number,\n height: number,\n maxZoom: number\n) {\n const isNode = info.isNode;\n let totalBounds;\n if (isNode) {\n const nodeIndex = nodeIdToIndex.get(info.id as K1)!;\n totalBounds = bounds[nodeIndex];\n } else {\n const link = linkIdToDataMap.get(info.id as K2)!;\n const startNodeBounds = bounds[nodeIdToIndex.get(link.startNode)!];\n const endNodeBounds = bounds[nodeIdToIndex.get(link.endNode)!];\n const minX = Math.min(startNodeBounds.x, endNodeBounds.x);\n const minY = Math.min(startNodeBounds.y, endNodeBounds.y);\n const maxX = Math.max(\n startNodeBounds.x + startNodeBounds.w,\n endNodeBounds.x + startNodeBounds.w\n );\n const maxY = Math.max(startNodeBounds.y + startNodeBounds.h, endNodeBounds.y + endNodeBounds.h);\n totalBounds = { x: minX, y: minY, w: maxX - minX, h: maxY - minY };\n }\n return getPanZoomToCenterNode(totalBounds, maxZoom, width, height);\n}\n\n/**\n * Returns the pan and zoom values in order\n * to center a node or link\n */\nfunction getPanZoomToCenterNode(bounds: Bounds, maxZoom: number, width: number, height: number) {\n const zoomX = (width - 2 * ZOOM_TO_FIT_PADDING) / bounds.w;\n const zoomY = (height - 2 * ZOOM_TO_FIT_PADDING) / bounds.h;\n const zoom = Math.min(zoomX, zoomY, maxZoom);\n const cX = bounds.w / 2 + bounds.x;\n const cY = bounds.h / 2 + bounds.y;\n return { centerX: cX, centerY: cY, zoom: zoom };\n}\n","import type { Position, State, NodeRendererContext } from './diagram.types';\nimport { useResizeObserver } from '#hooks/UNSAFE_useResizeObserver';\nimport { useCallback, useRef } from 'preact/hooks';\nimport { getItemAriaLabel } from './utils/diagramUtils';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { itemStyles } from './themes/DiagramStyles.css';\nimport { ComponentChildren } from 'preact';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\n\n/**\n * Props for node component\n */\ntype NodeProps<K1, D1> = {\n id: K1;\n position: Position;\n label?: string;\n state: State;\n previousState: State;\n isDimmed?: boolean;\n activeId?: string;\n accessibleLabel?: string;\n nodeIndex: number;\n data: D1;\n nodeRenderer: (context: NodeRendererContext<D1>) => ComponentChildren;\n onNodeSizeChanged: (width: number, height: number, idx: number) => void;\n supportsSelection: boolean;\n};\n\nexport const DiagramNodeElement = <K1, D1>({\n id,\n state,\n previousState,\n position,\n activeId,\n nodeRenderer,\n onNodeSizeChanged,\n nodeIndex,\n data,\n accessibleLabel,\n isDimmed,\n supportsSelection\n}: NodeProps<K1, D1>) => {\n const { nodeStyles, dimmedItemStyle } = itemStyles;\n const context = {\n state: state,\n previousState: previousState,\n data: data\n };\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const ref = useRef<HTMLDivElement>(null);\n // TODO JET-62472 change to one resize observer function\n const optionsRef = useRef({ box: 'border-box' as const });\n useResizeObserver(\n ref,\n useCallback(\n (entry: ResizeObserverEntry) => {\n const boxSize = entry.borderBoxSize;\n const width = boxSize[0].inlineSize;\n const height = boxSize[0].blockSize;\n onNodeSizeChanged(width, height, nodeIndex);\n },\n [nodeIndex, onNodeSizeChanged]\n ),\n optionsRef.current\n );\n return (\n <div\n ref={ref}\n key={id}\n class={classNames([nodeStyles, isDimmed ? dimmedItemStyle : undefined])}\n data-node={id}\n role=\"img\"\n aria-label={getItemAriaLabel(\n translations,\n supportsSelection,\n state.selected,\n accessibleLabel\n )}\n style={{\n top: position.y,\n left: position.x\n }}\n id={state.focused || state.hovered ? activeId : undefined}>\n {nodeRenderer(context)}\n </div>\n );\n};\n","import { ComponentChildren } from 'preact';\nimport type { States, NodeRendererContext, Bounds, DiagramNodeData } from './diagram.types';\nimport { DiagramNodeElement } from './DiagramNodeElement';\nimport { layerStyles } from './themes/DiagramStyles.css';\n\ntype Props<K1, K2, D1> = {\n nodes: D1[];\n states: States<K1, K2>;\n previousStates: States<K1, K2>;\n nodeRenderer: (context: NodeRendererContext<D1>) => ComponentChildren;\n onNodeSizeChanged: (width: number, height: number, idx: number) => void;\n nodeBounds?: Bounds[];\n supportsSelection: boolean;\n};\n\nexport function DiagramNodeLayer<K1, K2, D1 extends DiagramNodeData<K1>>({\n nodes,\n states,\n previousStates,\n nodeRenderer,\n nodeBounds,\n onNodeSizeChanged,\n supportsSelection\n}: Props<K1, K2, D1>) {\n return (\n <div class={layerStyles}>\n {nodes.map((node, i) => {\n // this is for initial render before the layout function so render all nodes at 0,0\n const position =\n nodeBounds && nodeBounds[i] ? { x: nodeBounds[i].x, y: nodeBounds[i].y } : { x: 0, y: 0 };\n const state = {\n selected: states.selectedNodeIds.includes(node.id),\n focused: states.focusedId === node.id,\n hovered: states.hoveredId === node.id,\n zoom: states.zoom\n };\n const previousState = {\n selected: previousStates.selectedNodeIds.includes(node.id),\n focused: previousStates.focusedId === node.id,\n hovered: previousStates.hoveredId === node.id,\n zoom: previousStates.zoom\n };\n return (\n <DiagramNodeElement\n id={node.id}\n position={position}\n state={state}\n previousState={previousState}\n isDimmed={\n states.highlightedIds.length !== 0 && !states.highlightedIds.includes(node.id)\n }\n activeId={states.activeId}\n nodeRenderer={nodeRenderer}\n onNodeSizeChanged={onNodeSizeChanged}\n nodeIndex={i}\n accessibleLabel={node.accessibleLabel}\n data={node}\n supportsSelection={supportsSelection}\n />\n );\n })}\n </div>\n );\n}\n","import type { State, LinkRendererContext } from './diagram.types';\nimport { getItemAriaLabel } from './utils/diagramUtils';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { itemStyles } from './themes/DiagramStyles.css';\nimport { ComponentChildren } from 'preact';\nimport { useTranslationBundle } from '#hooks/UNSAFE_useTranslationBundle';\nimport type { BundleType } from '#resources/nls/bundle';\n\n/**\n * Props for Link\n */\nexport type LinkProps<K2, D2, L> = {\n id: K2;\n label?: string;\n state: State;\n previousState: State;\n isDimmed?: boolean;\n activeId?: string;\n accessibleLabel?: string;\n data: D2;\n linkRenderer: (context: LinkRendererContext<D2, L>) => ComponentChildren;\n supportsSelection: boolean;\n layoutOutput: L;\n};\n\nexport const DiagramLinkElement = <K2, D2, L>({\n id,\n state,\n previousState,\n activeId,\n data,\n linkRenderer,\n accessibleLabel,\n isDimmed,\n supportsSelection,\n layoutOutput\n}: LinkProps<K2, D2, L>) => {\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n const { dimmedItemStyle, linkStyles } = itemStyles;\n const context = {\n state: state,\n previousState: previousState,\n data: data,\n layoutOutput: layoutOutput\n };\n return (\n <g\n key={id}\n id={state.focused ? activeId : undefined}\n aria-label={getItemAriaLabel(\n translations,\n supportsSelection,\n state.selected,\n accessibleLabel\n )}\n data-link={id}\n role=\"img\"\n class={classNames([linkStyles, isDimmed && dimmedItemStyle])}>\n {linkRenderer(context)}\n </g>\n );\n};\n","import { ComponentChildren } from 'preact';\nimport type {\n States,\n LinkRendererContext,\n DiagramLinkData,\n DiagramLayoutOutput\n} from './diagram.types';\nimport { DiagramLinkElement } from './DiagramLinkElement';\nimport { layerStyles } from './themes/DiagramStyles.css';\n\ntype Props<K2, K1, D2, L> = {\n links: D2[];\n states: States<K1, K2>;\n previousStates: States<K1, K2>;\n linkRenderer: (context: LinkRendererContext<D2, L>) => ComponentChildren;\n width: number;\n height: number;\n supportsSelection: boolean;\n layoutOutput: L;\n};\n\nexport function DiagramLinkLayer<\n K2 extends string | number,\n K1 extends string | number,\n D2 extends DiagramLinkData<K2, K1> = DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2> = DiagramLayoutOutput<K1, K2>\n>({\n links,\n states,\n previousStates,\n linkRenderer,\n width,\n height,\n supportsSelection,\n layoutOutput\n}: Props<K2, K1, D2, L>) {\n return (\n <svg class={layerStyles} width={width} height={height}>\n {links.map((link) => {\n const state = {\n selected: states.selectedLinkIds.includes(link.id),\n focused: states.focusedId === link.id,\n hovered: states.hoveredId === link.id,\n zoom: states.zoom\n };\n const previousState = {\n selected: previousStates.selectedLinkIds.includes(link.id),\n focused: previousStates.focusedId === link.id,\n hovered: previousStates.hoveredId === link.id,\n zoom: previousStates.zoom\n };\n return (\n <DiagramLinkElement\n id={link.id}\n label={link.label}\n state={state}\n previousState={previousState}\n isDimmed={\n states.highlightedIds.length !== 0 && !states.highlightedIds.includes(link.id)\n }\n activeId={states.activeId}\n accessibleLabel={link.accessibleLabel}\n data={link}\n linkRenderer={linkRenderer}\n supportsSelection={supportsSelection}\n layoutOutput={layoutOutput}\n />\n );\n })}\n </svg>\n );\n}\n","import type { DiagramLabelPosition, DiagramLabelStyles } from './diagram.types';\nimport { getLabelPosition } from './utils/diagramUtils';\nimport { classNames } from '#utils/UNSAFE_classNames';\nimport { labelStyles } from './themes/DiagramStyles.css';\nimport type { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { Property } from 'csstype';\n\n/**\n * Props for the label component\n */\ntype LabelProps = {\n styles?: LabelStyles;\n text: string;\n position: DiagramLabelPosition;\n dimensions: TextDimensions;\n isRTL: boolean;\n};\n\n/**\n * Label styles\n */\ntype LabelStyles = DiagramLabelStyles & {\n borderStyle?: Property.BorderStyle;\n};\n\nexport const DiagramLabel = ({ text, position, styles, dimensions, isRTL }: LabelProps) => {\n const { labelStyle, labelBorderStyle } = labelStyles;\n\n const labelPosition = getLabelPosition(dimensions, position, isRTL);\n const labelRotation = getLabelRotation(position);\n return (\n <div\n class={classNames([labelStyle, styles && styles.borderColor && labelBorderStyle])}\n style={{\n top: labelPosition.y,\n left: labelPosition.x,\n ...styles,\n ...labelRotation\n }}>\n {text}\n </div>\n );\n};\n\n/**\n * Returns the label rotation props\n * @param position\n * @returns rotation props\n */\nfunction getLabelRotation(position: DiagramLabelPosition) {\n const rotationAngle = position.rotationAngle;\n const rotationPoint = position.rotationPoint;\n const rotation: {\n transform?: string;\n 'transform-origin'?: string;\n } = {};\n if (rotationAngle) {\n rotation['transform'] = `rotate(${rotationAngle}deg)`;\n }\n if (rotationPoint) {\n rotation['transform-origin'] = `${rotationPoint.x}px ${rotationPoint.y}px`;\n }\n return rotation;\n}\n","import type { DiagramLabelPosition, DiagramNodeData, DiagramLinkData } from './diagram.types';\nimport { DiagramLabel } from './DiagramLabel';\nimport type { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { layerStyles } from './themes/DiagramStyles.css';\nimport { useUser } from '#hooks/UNSAFE_useUser';\n\ntype Props<K1, K2, D1, D2> = {\n labelPosition: (DiagramLabelPosition | undefined)[];\n itemProps: (D1 | D2)[];\n labelDimensions: Map<K1 | K2, TextDimensions>;\n};\n\nexport function DiagramLabelLayer<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>({ labelPosition, itemProps, labelDimensions }: Props<K1, K2, D1, D2>) {\n const { direction } = useUser();\n return (\n <div class={layerStyles}>\n {itemProps.map((item, i) => {\n if (item.label && labelPosition[i]) {\n return (\n <DiagramLabel\n styles={item.labelStyle}\n text={item.label}\n position={labelPosition[i]!}\n dimensions={labelDimensions.get(item.id)!}\n isRTL={direction === 'rtl'}\n />\n );\n }\n return undefined;\n })}\n </div>\n );\n}\n","import type {\n NodeRendererContext,\n LinkRendererContext,\n States,\n Bounds,\n DiagramLabelPosition,\n DiagramNodeData,\n DiagramLinkData,\n DiagramLayoutOutput\n} from './diagram.types';\nimport { DiagramNodeLayer } from './DiagramNodeLayer';\nimport { DiagramLinkLayer } from './DiagramLinkLayer';\nimport { DiagramLabelLayer } from './DiagramLabelLayer';\nimport { ComponentChildren } from 'preact';\nimport type { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\n\n/**\n * Props for Diagram layers component\n */\ntype DiagramLayersProps<K1, K2, D1, D2, L> = {\n nodes: D1[];\n links: D2[];\n nodeRenderer: (context: NodeRendererContext<D1>) => ComponentChildren;\n linkRenderer?: (context: LinkRendererContext<D2, L>) => ComponentChildren;\n states: States<K1, K2>;\n previousStates: States<K1, K2>;\n nodeBounds: Bounds[];\n // width height are for svg for links\n width: number;\n height: number;\n onNodeSizeChanged: (width: number, height: number, idx: number) => void;\n nodeLabelPositions?: (DiagramLabelPosition | undefined)[];\n linkLabelPositions?: (DiagramLabelPosition | undefined)[];\n labelDimensions?: Map<K1 | K2, TextDimensions>;\n supportsSelection: boolean;\n layoutOutput?: L;\n};\n\nexport function DiagramLayers<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2>\n>({\n nodes,\n links,\n nodeRenderer,\n linkRenderer,\n states,\n previousStates,\n nodeBounds,\n onNodeSizeChanged,\n width,\n height,\n nodeLabelPositions,\n linkLabelPositions,\n labelDimensions,\n supportsSelection,\n layoutOutput\n}: DiagramLayersProps<K1, K2, D1, D2, L>) {\n return (\n <>\n {links.length > 0 && layoutOutput && linkRenderer && width !== Infinity && (\n <DiagramLinkLayer\n links={links}\n states={states}\n previousStates={previousStates}\n linkRenderer={linkRenderer}\n width={width}\n height={height}\n supportsSelection={supportsSelection}\n layoutOutput={layoutOutput}\n />\n )}\n <DiagramNodeLayer\n nodes={nodes}\n nodeBounds={nodeBounds}\n states={states}\n previousStates={previousStates}\n nodeRenderer={nodeRenderer}\n onNodeSizeChanged={onNodeSizeChanged}\n supportsSelection={supportsSelection}\n />\n {labelDimensions ? (\n <div>\n {nodeLabelPositions ? (\n <DiagramLabelLayer\n labelPosition={nodeLabelPositions}\n itemProps={nodes}\n labelDimensions={labelDimensions}\n />\n ) : undefined}\n {links && linkLabelPositions ? (\n <DiagramLabelLayer\n labelPosition={linkLabelPositions}\n itemProps={links}\n labelDimensions={labelDimensions}\n />\n ) : undefined}\n </div>\n ) : undefined}\n </>\n );\n}\n","import { ComponentChildren } from 'preact';\nimport { centerXYToPanXY } from './utils/diagramUtils';\nimport { panZoomStyles } from './themes/DiagramStyles.css';\n\ntype Props = {\n centerX: number;\n centerY: number;\n zoom: number;\n width: number;\n height: number;\n children: ComponentChildren;\n};\n\nexport function DiagramPanZoomContainer({\n centerX,\n centerY,\n children,\n zoom,\n width,\n height\n}: Props) {\n const panValues = centerXYToPanXY(centerX, centerY, zoom, width, height);\n return (\n <div\n class={panZoomStyles}\n style={{\n //TODO JET-62471 look at using matrices or both in transform instead\n translate: `${panValues.panX}px ${panValues.panY}px`,\n transform: `scale(${zoom})`\n }}>\n {children}\n </div>\n );\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 */\n\nimport type { DiagramNodeData, DiagramLinkData, Bounds, ItemInfo } from '../diagram.types';\n\n/**\n * Navigation direction\n */\nexport type NavDirection = 'right' | 'left' | 'up' | 'down';\n\ntype linkDetailType<K2> = {\n id: K2;\n angle: number;\n distance: number;\n /**\n * Ingoing = 1, outgoing = 0\n */\n direction: 0 | 1;\n};\n\n/**\n * Returns the node data based on node info in a diagram.\n * @param itemInfo\n * @returns\n */\nexport function getNodeDetailFromInfo<K1, K2, D1 extends DiagramNodeData<K1>>(\n itemInfo: ItemInfo<K1, K2>,\n nodes: D1[]\n): D1 | undefined {\n let node;\n for (let i = 0; i < nodes.length; i++) {\n node = nodes[i];\n if (itemInfo.id === node.id) {\n return node;\n }\n }\n return undefined;\n}\n\n/**\n * Returns the link data based on link info in a diagram.\n * @param itemInfo\n * @returns\n */\nexport function getLinkDetailFromInfo<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n itemInfo: ItemInfo<K1, K2>,\n links: D2[]\n): D2 | undefined {\n let link;\n for (let i = 0; i < links.length; i++) {\n link = links[i];\n if (itemInfo.id === link.id) {\n return link;\n }\n }\n return undefined;\n}\n\n/**\n * Creates a map with key node id and value node bounds\n */\nexport function createNodeBoundsMap<K1, D1 extends DiagramNodeData<K1>>(\n nodes: D1[],\n bounds: Bounds[]\n) {\n const nodeBounds: Map<K1, Bounds> = new Map();\n for (let i = 0; i < nodes.length; i++) {\n nodeBounds.set(nodes[i].id, bounds[i]);\n }\n return nodeBounds;\n}\n\n/**\n * Utility method that adds sorting attributes of each link to an array\n */\nexport function addSortingAttributes<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(node: D1, listOfLinks: D2[], nodes: D1[], nodeBounds: Map<K1, Bounds>) {\n let angle, distance, direction;\n const linkDetail: linkDetailType<K2>[] = [];\n for (let i = 0; i < listOfLinks.length; i++) {\n const link = listOfLinks[i];\n angle = _getClockwiseAngle(node, link, nodes, nodeBounds);\n distance = _getNodesDistance(link, nodes, nodeBounds);\n direction = _getLinkDirection(node, link);\n linkDetail.push({ id: link.id, angle: angle, distance: distance, direction: direction });\n }\n return linkDetail;\n}\n\n/**\n * Returns a function that compares two link around a given node\n * The links are analyzed by angle, distance from the node and direction. The sorting attributes are added to the links before sorting.\n */\nexport function getLinkComparator<K2>() {\n return (link1: linkDetailType<K2>, link2: linkDetailType<K2>) => {\n const { angle: linkAngle1, distance: linkDistance1, direction: linkDirection1 } = link1;\n const { angle: linkAngle2, distance: linkDistance2, direction: linkDirection2 } = link2;\n let res = -1;\n\n if (!_anglesAreEqualWithinTolerance(linkAngle1, linkAngle2) && linkAngle1 > linkAngle2) {\n res = 1;\n } else if (_anglesAreEqualWithinTolerance(linkAngle1, linkAngle2)) {\n //check distance and direction\n if (linkDistance1 > linkDistance2) {\n res = 1;\n } else if (linkDistance2 == linkDistance1 && linkDirection1 > linkDirection2) {\n //outgoing to ingoing\n res = 1;\n } else if (linkDistance2 == linkDistance1 && linkDirection1 == linkDirection2) {\n res = 0;\n }\n }\n return res;\n };\n}\n\n/**\n * Returns navigable links for a given node\n */\nexport function getNavigableLinksForNodeId<K1, K2, D2 extends DiagramLinkData<K2, K1>>(\n nodeId: K1,\n listOfLinks: D2[]\n) {\n const links: D2[] = [];\n listOfLinks.forEach((link) => {\n const startId = link.startNode;\n const endId = link.endNode;\n\n if (startId == nodeId || endId == nodeId) links.push(link);\n });\n return links;\n}\n\n/**\n * Get the clockwise angle for the link given node as a center\n */\nfunction _getClockwiseAngle<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(node: D1, link: D2, nodes: D1[], nodeBounds: Map<K1, Bounds>) {\n //find opposite node\n let currNode;\n let startNode = nodes[0];\n let endNode = nodes[0];\n for (let i = 0; i < nodes.length; i++) {\n currNode = nodes[i];\n if (currNode.id === link.startNode) {\n startNode = currNode;\n } else if (currNode.id === link.endNode) {\n endNode = currNode;\n }\n }\n const oppositeNode = node.id == startNode.id ? endNode : startNode;\n\n const p1 = _getNodeCenter(node, nodeBounds);\n const p2 = _getNodeCenter(oppositeNode, nodeBounds);\n let angle = Math.atan2(p2.y - p1.y, p2.x - p1.x);\n angle = angle < 0 ? angle + Math.PI * 2 : angle;\n return angle;\n}\n\n/**\n * Get the distance between start and end nodes for the given link\n */\nfunction _getNodesDistance<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(link: D2, nodes: D1[], nodeBounds: Map<K1, Bounds>) {\n let currNode;\n let startNode = nodes[0];\n let endNode = nodes[0];\n for (let i = 0; i < nodes.length; i++) {\n currNode = nodes[i];\n if (currNode.id === link.startNode) {\n startNode = currNode;\n } else if (currNode.id === link.endNode) {\n endNode = currNode;\n }\n }\n const p1 = _getNodeCenter(startNode, nodeBounds);\n const p2 = _getNodeCenter(endNode, nodeBounds);\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\n/**\n * Get link direction for the given node. 1 if the node is the end node\n * and 0 if it is the start node\n */\nfunction _getLinkDirection<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(node: D1, link: D2): 0 | 1 {\n if (link.endNode === node.id) {\n return 1;\n }\n return 0;\n}\n\n/**\n * Get node center\n */\nfunction _getNodeCenter<K1, D1 extends DiagramNodeData<K1>>(node: D1, nodeBounds: Map<K1, Bounds>) {\n const nodeBB = nodeBounds.get(node.id)!;\n return { x: nodeBB.x + nodeBB.w / 2, y: nodeBB.y + nodeBB.h / 2 };\n}\n\n/**\n * Calculates the angle weighted by distance\n */\nexport function calcDistanceAngleWeighted(\n objectBB: Bounds,\n currentBB: Bounds,\n direction: NavDirection\n) {\n // Variables used for calculating penalties when calculating distances between two navigables.\n const optimalAngle1 = (15 / 180) * Math.PI;\n const optimalAngle2 = (40 / 180) * Math.PI;\n const suboptimalAnglePenalty1 = 2; // multiplier to the distance\n const suboptimalAnglePenalty2 = 6; // multiplier to the distance\n\n const objCenterX = objectBB.x + objectBB.w / 2;\n const objCenterY = objectBB.y + objectBB.h / 2;\n\n const curCenterX = currentBB.x + currentBB.w / 2;\n const curCenterY = currentBB.y + currentBB.h / 2;\n\n const x_dist = Math.abs(objCenterX - curCenterX);\n const y_dist = Math.abs(objCenterY - curCenterY);\n\n const angle = Math.atan2(y_dist, x_dist);\n\n let distance = Math.sqrt(x_dist * x_dist + y_dist * y_dist);\n\n // Angle penalty based on direction\n if (\n (angle > optimalAngle1 && (direction == 'right' || direction == 'left')) ||\n (angle < Math.PI / 2 - optimalAngle1 && (direction == 'up' || direction == 'down'))\n ) {\n if (\n (angle > optimalAngle2 && (direction == 'right' || direction == 'left')) ||\n (angle < Math.PI / 2 - optimalAngle2 && (direction == 'up' || direction == 'down'))\n ) {\n distance *= suboptimalAnglePenalty2;\n } else {\n distance *= suboptimalAnglePenalty1;\n }\n }\n\n return distance;\n}\n\n/**\n * Given a direction, is a certain node is a valid destination to navigate to\n */\nexport function isValidDestination(\n objBB: Bounds,\n curBB: Bounds,\n direction: NavDirection,\n compareCenters: boolean\n) {\n // compare the centers of the navigable and to be valid, the navigable must be in the right direction\n // without tolerance\n if (compareCenters) {\n const objCenterX = objBB.x + 0.5 * objBB.w;\n const curCenterX = curBB.x + 0.5 * curBB.w;\n const objCenterY = objBB.y + 0.5 * objBB.h;\n const curCenterY = curBB.y + 0.5 * curBB.h;\n\n switch (direction) {\n case 'up':\n return objCenterY < curCenterY;\n case 'down':\n return objBB.y > curCenterY;\n case 'right':\n return objCenterX > curCenterX;\n case 'left':\n return objCenterX < curCenterX;\n default:\n break;\n }\n return true;\n }\n\n switch (direction) {\n case 'up':\n return objBB.y < curBB.y || _areEqualWithinTolerance(objBB.y, curBB.y);\n case 'down':\n return objBB.y > curBB.y || _areEqualWithinTolerance(objBB.y, curBB.y);\n case 'right':\n return objBB.x > curBB.x || _areEqualWithinTolerance(objBB.x, curBB.x);\n case 'left':\n return objBB.x < curBB.x || _areEqualWithinTolerance(objBB.x, curBB.x);\n default:\n break;\n }\n return true;\n}\n\n/**\n * Returns true if two nodes are in contact\n */\nexport function calcInContact(objRect: Bounds, curRect: Bounds, direction: NavDirection) {\n switch (direction) {\n case 'up':\n return (\n _isVerticallyAligned(objRect, curRect) &&\n (curRect.y <= objRect.y + objRect.h ||\n _areEqualWithinTolerance(curRect.y, objRect.y + objRect.h))\n );\n case 'down':\n return (\n _isVerticallyAligned(objRect, curRect) &&\n (objRect.y <= curRect.y + curRect.h ||\n _areEqualWithinTolerance(objRect.y, curRect.y + curRect.h))\n );\n case 'right':\n return (\n _isHorizontallyAligned(objRect, curRect) &&\n (objRect.x <= curRect.x + curRect.w ||\n _areEqualWithinTolerance(objRect.x, curRect.x + curRect.w))\n );\n case 'left':\n return (\n _isHorizontallyAligned(objRect, curRect) &&\n (curRect.x <= objRect.x + objRect.w ||\n _areEqualWithinTolerance(curRect.x, objRect.x + objRect.w))\n );\n default:\n break;\n }\n\n return false;\n}\n\nfunction _isVerticallyAligned(rect1: Bounds, rect2: Bounds) {\n return (\n (rect1.x >= rect2.x && rect1.x <= rect2.x + rect2.w) ||\n (rect2.x >= rect1.x && rect2.x <= rect1.x + rect1.w)\n );\n}\n\nfunction _isHorizontallyAligned(rect1: Bounds, rect2: Bounds) {\n return (\n (rect1.y >= rect2.y && rect1.y <= rect2.y + rect2.h) ||\n (rect2.y >= rect1.y && rect2.y <= rect1.y + rect1.h)\n );\n}\n\nfunction _areEqualWithinTolerance(a: number, b: number) {\n return Math.abs(a - b) <= 0.0000001;\n}\n\nfunction _anglesAreEqualWithinTolerance(a1: number, a2: number) {\n let res = Math.abs(a1 - a2) <= 0.0000001;\n if (!res) {\n res = Math.abs(Math.PI * 2 + Math.min(a1, a2) - Math.max(a1, a2)) <= 0.0000001;\n }\n return res;\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 */\n\nimport {\n NavDirection,\n addSortingAttributes,\n calcDistanceAngleWeighted,\n calcInContact,\n createNodeBoundsMap,\n getLinkComparator,\n getNavigableLinksForNodeId,\n getNodeDetailFromInfo,\n isValidDestination\n} from '../utils/navUtils';\nimport type { DiagramNodeData, DiagramLinkData, Bounds, ItemInfo } from '../diagram.types';\nimport { useRef } from 'preact/hooks';\n\nexport function useDiagramNavigation<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(nodes: D1[], links: D2[], bounds: Bounds[], linkIdToDataMap: Map<K2, D2>) {\n const currentKeyboardFocusNode = useRef<K1>();\n const nodeBoundsById = createNodeBoundsMap<K1, D1>(nodes, bounds);\n\n function getNextNavigableNode(\n direction: NavDirection,\n compareCenters: boolean,\n current?: D1,\n listOfObjects?: D1[]\n ) {\n if (!listOfObjects) return current;\n\n if (!current) return listOfObjects[0];\n const currBB = nodeBoundsById.get(current.id);\n if (!currBB) return listOfObjects[0];\n\n let nextObject = current; //init to current object\n let nextDistance = Number.MAX_VALUE;\n\n // If an object is in contact it overrules all other attributes\n // Only another in contact object with better attributes will have higher precedence\n let nextInContact = false;\n\n // Whether or not the for loop has encountered the current object\n let hasFoundCurrent = false;\n\n let object, inContact, distance;\n for (let i = 0; i < listOfObjects.length; i++) {\n object = listOfObjects[i];\n\n if (object === current) {\n hasFoundCurrent = true;\n continue;\n }\n const objBB = nodeBoundsById.get(object.id);\n if (!objBB) continue;\n\n const objBounds = { x: objBB.x, y: objBB.y, w: objBB.w, h: objBB.h };\n const currBounds = { x: currBB.x, y: currBB.y, w: currBB.w, h: currBB.h };\n if (!isValidDestination(objBounds, currBounds, direction, compareCenters)) continue;\n\n inContact = calcInContact(objBounds, currBounds, direction);\n\n if (nextInContact && !inContact) continue;\n\n distance = calcDistanceAngleWeighted(objBounds, currBounds, direction);\n\n if (distance == 0 && !hasFoundCurrent) continue;\n\n // Make sure incontact flag have highest precedence\n if (\n (!nextInContact && inContact) ||\n (distance < nextDistance && ((nextInContact && inContact) || !nextInContact))\n ) {\n nextDistance = distance;\n nextObject = object;\n nextInContact = inContact;\n }\n }\n return nextObject;\n }\n\n /**\n * Get next navigavle link depending on direction - clockwise or conter clockwise.\n * The decision is made based on location of nodes centers rather than link paths or link angles.\n */\n function getNextNavigableLink(\n direction: string,\n listOfNodes: D1[],\n currentLink?: D2,\n listOfLinks?: D2[]\n ) {\n if (!listOfLinks) return currentLink;\n\n if (!currentLink) return listOfLinks[0];\n const keyboardFocusNode = currentKeyboardFocusNode.current;\n const nodeId = keyboardFocusNode ? keyboardFocusNode : currentLink.startNode;\n const node = getNodeDetailFromInfo({ id: nodeId, isNode: true }, listOfNodes);\n\n if (!node) return currentLink;\n const adjLinks = getNavigableLinksForNodeId(node.id, listOfLinks);\n listOfLinks = adjLinks;\n const linksWithSortingAttributes = addSortingAttributes<K1, K2, D1, D2>(\n node,\n listOfLinks,\n listOfNodes,\n nodeBoundsById\n );\n linksWithSortingAttributes.sort(getLinkComparator());\n //clockwise direction\n const bForward = direction == 'down' ? true : false;\n let index = 0;\n for (let i = 0; i < linksWithSortingAttributes.length; i++) {\n const link = linksWithSortingAttributes[i];\n if (link.id === currentLink.id) {\n if (bForward) index = i == linksWithSortingAttributes.length - 1 ? 0 : i + 1;\n else index = i == 0 ? linksWithSortingAttributes.length - 1 : i - 1;\n break;\n }\n }\n return linksWithSortingAttributes[index];\n }\n\n /**\n * Returns the link detail when a node to link navigation occurs\n */\n function navigateFromNodeToLink(listOfLinks: D2[], event: KeyboardEvent, node?: D1) {\n if (!node) return undefined;\n const adjLinks = getNavigableLinksForNodeId(node.id, listOfLinks);\n if (adjLinks.length < 1) return undefined;\n let link = adjLinks[0];\n const nodeBB = nodeBoundsById.get(node.id)!;\n let object, currNode, currNodeBB, currNodeBBCenterX;\n const nodeCenterX = nodeBB.x + nodeBB.w / 2;\n currentKeyboardFocusNode.current = node.id;\n for (let i = 0; i < adjLinks.length; i++) {\n object = adjLinks[i];\n currNode = object.startNode === node.id ? object.endNode : object.startNode;\n currNodeBB = nodeBoundsById.get(currNode);\n currNodeBBCenterX = currNodeBB!.x + currNodeBB!.w / 2;\n if (\n // equivalent of ≤ and ≥\n (event.altKey && event.code === 'Comma' && currNodeBBCenterX <= nodeCenterX) ||\n (event.altKey && event.code === 'Period' && currNodeBBCenterX >= nodeCenterX)\n ) {\n link = object;\n break;\n }\n }\n return { id: link.id, isNode: false };\n }\n\n /**\n * Returns the node detail when a link to node navigation occurs\n */\n function navigateFromLinkToNode(linkId: K2, event: KeyboardEvent) {\n const key = event.key;\n const linkData = linkIdToDataMap.get(linkId)!;\n const startNodeBB = nodeBoundsById.get(linkData.startNode);\n const endNodeBB = nodeBoundsById.get(linkData.endNode);\n if (!startNodeBB || !endNodeBB) return undefined;\n const startNodeCenterX = startNodeBB.x + startNodeBB.w / 2;\n const endNodeCenterX = endNodeBB.x + endNodeBB.w / 2;\n const newNode =\n (endNodeCenterX > startNodeCenterX && key === 'ArrowRight') ||\n (endNodeCenterX < startNodeCenterX && key === 'ArrowLeft')\n ? linkData.endNode\n : linkData.startNode;\n return { id: newNode, isNode: true };\n }\n\n return {\n isNode: (itemInfo: ItemInfo<K1, K2>): boolean => {\n let node, link;\n for (let i = 0; i < nodes.length; i++) {\n node = nodes[i];\n link = links[i];\n if (itemInfo.id === node.id) {\n return true;\n }\n if (itemInfo.id === link.id) {\n return true;\n }\n }\n return false;\n },\n getNextNavigableNode,\n getNextNavigableLink,\n navigateFromNodeToLink,\n navigateFromLinkToNode\n };\n}\n","import {\n ItemInfo,\n ItemHoverDetail,\n ItemFocusDetail,\n Bounds,\n DiagramNodeData,\n DiagramLinkData\n} from '../diagram.types';\nimport { useRef, useState } from 'preact/hooks';\nimport { isEqualItem, getNavigableInfo, zoomAndCenterItemFromInfo } from '../utils/diagramUtils';\nimport { getRandomId } from '#utils/PRIVATE_visLayoutUtils/layoutUtils';\nimport { getNodeDetailFromInfo, getLinkDetailFromInfo } from '../utils/navUtils';\nimport { useDiagramNavigation } from './useDiagramNavigation';\nimport type { NavDirection } from '../utils/navUtils';\nimport { useVisHover } from '#hooks/PRIVATE_useVisHover';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\n\nconst DEFAULT_KB_PAN = 15;\nconst DEFAULT_KB_ZOOM = 0.15;\n\nexport function useEvents<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>(\n touchResponse: 'touchStart' | 'touchHold',\n initNode: D1,\n nodes: D1[],\n links: D2[],\n nodeBounds: Bounds[],\n linkIdToDataMap: Map<K2, D2>,\n nodeIdToDataMap: Map<K1, D1>,\n nodeIdToIndexMap: Map<K1, number>,\n width: number,\n height: number,\n maxZoom: number,\n onItemHover?: (detail: ItemHoverDetail<K1, K2, D1, D2>) => void,\n onItemFocus?: (detail: ItemFocusDetail<K1, K2, D1, D2>) => void,\n kbPanCallback?: (props: {\n dPan?: { dx: number; dy: number };\n nPan?: { cx: number; cy: number };\n center?: boolean;\n }) => void,\n kbZoomCallback?: (props: { dZoom?: number; nZoom?: number }) => void\n) {\n const {\n getNextNavigableNode,\n getNextNavigableLink,\n navigateFromNodeToLink,\n navigateFromLinkToNode\n } = useDiagramNavigation<K1, K2, D1, D2>(nodes, links, nodeBounds, linkIdToDataMap);\n const [focusedItemInfo, setfocusedItemInfo] = useState<ItemInfo<K1, K2>>({\n id: initNode.id,\n isNode: true\n });\n const [hoveredItemInfo, sethoveredItemInfo] = useState<ItemInfo<K1, K2>>();\n const activeId = useRef<string>();\n\n const cancelEvent = (event: Event) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const keyDownHandler = (event: KeyboardEvent) => {\n const key = event.key;\n let eventConsumed = false;\n // tabbing out of the diagram\n if (key === 'TAB') {\n return;\n }\n // if this a switch from node to link or vice versa\n if (isChangeItemType(event)) {\n const nextItemInfo = focusedItemInfo.isNode\n ? navigateFromNodeToLink(links, event, getNodeDetailFromInfo(focusedItemInfo, nodes))\n : navigateFromLinkToNode(focusedItemInfo.id as K2, event);\n handleKeyboardInput(nextItemInfo);\n eventConsumed = true;\n } else if (isNavigationEvent(key)) {\n const nextItemInfo = handleKeyboardNavigationEvent(key);\n handleKeyboardInput(nextItemInfo);\n eventConsumed = true;\n } else {\n switch (key) {\n case 'PageUp': {\n kbPanCallback &&\n kbPanCallback({\n dPan: {\n dx: event.shiftKey ? -DEFAULT_KB_PAN : 0,\n dy: event.shiftKey ? 0 : -DEFAULT_KB_PAN\n }\n });\n eventConsumed = true;\n break;\n }\n case 'PageDown': {\n kbPanCallback &&\n kbPanCallback({\n dPan: {\n dx: event.shiftKey ? DEFAULT_KB_PAN : 0,\n dy: event.shiftKey ? 0 : DEFAULT_KB_PAN\n }\n });\n eventConsumed = true;\n eventConsumed = true;\n break;\n }\n case '+':\n case '=': {\n kbZoomCallback && kbZoomCallback({ dZoom: DEFAULT_KB_ZOOM });\n eventConsumed = true;\n break;\n }\n case '-':\n case '_': {\n kbZoomCallback && kbZoomCallback({ dZoom: -DEFAULT_KB_ZOOM });\n eventConsumed = true;\n break;\n }\n case '0': {\n if (event.ctrlKey && event.altKey) {\n const { centerX, centerY, zoom } = zoomAndCenterItemFromInfo(\n focusedItemInfo,\n linkIdToDataMap,\n nodeBounds,\n nodeIdToIndexMap,\n width,\n height,\n maxZoom\n );\n kbZoomCallback && kbZoomCallback({ nZoom: zoom });\n kbPanCallback && kbPanCallback({ nPan: { cx: centerX, cy: centerY } });\n } else {\n // zoom to fit\n kbZoomCallback && kbZoomCallback({});\n kbPanCallback && kbPanCallback({ center: true });\n }\n eventConsumed = true;\n }\n }\n }\n if (eventConsumed) {\n cancelEvent(event);\n }\n };\n\n const keyUpHandler = (event: KeyboardEvent) => {\n const key = event.code;\n switch (key) {\n case 'Tab': {\n updatefocusedItemInfo({\n ...focusedItemInfo,\n isCurrent: true,\n isFocusVisible: true\n });\n break;\n }\n }\n };\n\n const blurHandler = () => {\n if (hoveredItemInfo != null || focusedItemInfo.isCurrent) {\n onItemFocus?.({ id: undefined, data: undefined });\n }\n const itemInfo = { ...focusedItemInfo, isCurrent: false, isFocusVisible: false };\n setfocusedItemInfo(itemInfo);\n };\n\n const onHover = (event: PointerEvent) => {\n const itemInfo = getNavigableInfo<K1, K2>(event.target as HTMLElement);\n if (itemInfo && !isEqualItem(itemInfo, hoveredItemInfo)) {\n sethoveredItemInfo({ ...itemInfo, isCurrent: true });\n activeId.current = getRandomId();\n setfocusedItemInfo({ ...focusedItemInfo, isCurrent: false });\n if (itemInfo.isNode) {\n onItemHover?.({\n id: itemInfo.id,\n type: 'node',\n data: nodeIdToDataMap.get(itemInfo.id as K1)\n });\n } else {\n onItemHover?.({\n id: itemInfo.id,\n type: 'link',\n data: linkIdToDataMap.get(itemInfo.id as K2)\n });\n }\n }\n };\n\n const onHoverLeave = () => {\n sethoveredItemInfo(undefined);\n activeId.current = undefined;\n onItemHover?.({ id: undefined, data: undefined });\n };\n\n const hoverHandlers = useVisHover(onHover, undefined, onHoverLeave, touchResponse);\n\n const pointerUpHandler = (event: PointerEvent) => {\n const itemInfo = getNavigableInfo<K1, K2>(event.target as HTMLElement);\n if (itemInfo.id != null) {\n setfocusedItemInfo(itemInfo);\n activeId.current = getRandomId();\n }\n };\n\n function updatefocusedItemInfo(itemInfo: ItemInfo<K1, K2>) {\n if (itemInfo.isNode) {\n onItemFocus?.({\n id: itemInfo.id,\n type: 'node',\n data: nodeIdToDataMap.get(itemInfo.id as K1)\n });\n } else {\n onItemFocus?.({\n id: itemInfo.id,\n type: 'link',\n data: linkIdToDataMap.get(itemInfo.id as K2)\n });\n }\n activeId.current = getRandomId();\n setfocusedItemInfo(itemInfo);\n }\n\n function handleKeyboardInput(item?: ItemInfo<K1, K2>) {\n if (!item) return;\n if (!isEqualItem(item, focusedItemInfo)) {\n item.isCurrent = true;\n item.isFocusVisible = true;\n if (hoveredItemInfo) {\n sethoveredItemInfo({ ...hoveredItemInfo, isCurrent: false });\n }\n updatefocusedItemInfo(item);\n }\n }\n\n function isNavigationEvent(key: string) {\n switch (key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'ArrowRight':\n case 'ArrowLeft': {\n return true;\n }\n }\n return false;\n }\n\n function isChangeItemType(event: KeyboardEvent) {\n const key = event.code;\n // check if switching from node to link\n // equivalent of ≤ and ≥\n if (focusedItemInfo.isNode && event.altKey && (key === 'Period' || key === 'Comma')) {\n return true;\n // check if switching from link to node\n } else if (!focusedItemInfo.isNode && (key === 'ArrowLeft' || key === 'ArrowRight')) {\n return true;\n }\n return false;\n }\n\n function handleKeyboardNavigationEvent(key: string) {\n let direction: NavDirection = 'down';\n switch (key) {\n case 'ArrowDown': {\n direction = 'down';\n break;\n }\n case 'ArrowUp': {\n direction = 'up';\n break;\n }\n case 'ArrowRight': {\n direction = 'right';\n break;\n }\n case 'ArrowLeft': {\n direction = 'left';\n break;\n }\n }\n if (focusedItemInfo.isNode) {\n const itemDetail = getNextNavigableNode(\n direction,\n true,\n getNodeDetailFromInfo(focusedItemInfo, nodes),\n nodes\n );\n return itemDetail ? { id: itemDetail.id, isNode: true } : focusedItemInfo;\n } else {\n const linkDetail = getLinkDetailFromInfo(focusedItemInfo, links);\n const itemDetail = getNextNavigableLink(direction, nodes, linkDetail, links);\n return itemDetail ? { id: itemDetail.id } : { id: focusedItemInfo.id };\n }\n }\n\n return {\n focusedItemInfo,\n hoveredItemInfo,\n activeId: activeId.current,\n eventsProps: mergeProps(hoverHandlers, {\n onKeyUp: keyUpHandler,\n onKeyDown: keyDownHandler,\n onBlur: blurHandler,\n onPointerUp: pointerUpHandler\n })\n };\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 {\n ItemInfo,\n Bounds,\n DatatipContext,\n DiagramNodeData,\n DiagramLinkData\n} from '../diagram.types';\nimport type { RefObject } from 'preact';\nimport { useDatatip } from '#hooks/PRIVATE_useDatatip';\nimport { calculateOffset } from '#utils/PRIVATE_visLayoutUtils/layoutUtils';\nimport type { Pan } from '../utils/panUtils';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { getDatatipContent } from '../utils/diagramUtils';\nimport { ComponentChildren } from 'preact';\nimport { Property } from 'csstype';\n\ntype props<K1, K2, D1, D2> = {\n touchResponse: 'touchStart' | 'touchHold';\n datatip?: (context: DatatipContext<D1, D2>) => {\n content: ComponentChildren;\n borderColor?: Property.BorderColor;\n };\n text?: string;\n focusedItemInfo: ItemInfo<K1, K2>;\n focusedItemBoundsRef: RefObject<Bounds | null>;\n panState: Pan;\n zoom: number;\n width: number;\n nodesMap: Map<K1, D1>;\n linksMap: Map<K2, D2>;\n hoveredItem?: ItemInfo<K1, K2>;\n};\n\n/**\n * Returns the datatip.\n * @param text The text string for the diagram item.\n * @param rootRef The ref for root of the diagram.\n * @param focusedItemBoundsRef The ref for focused item bounds.\n * @param focusedItemInfo The ItemInfo for focused item.\n * @returns\n */\nexport const useDiagramDatatip = <\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>({\n touchResponse,\n datatip,\n focusedItemBoundsRef,\n focusedItemInfo,\n panState,\n zoom,\n width,\n nodesMap,\n linksMap,\n hoveredItem\n}: props<K1, K2, D1, D2>) => {\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const datatipC = getDatatipContent(nodesMap, linksMap, focusedItemInfo, hoveredItem, datatip);\n\n const elementBounds = focusedItemBoundsRef.current\n ? {\n x: focusedItemBoundsRef.current.x * zoom + panState.panX,\n y: focusedItemBoundsRef.current.y * zoom + panState.panY,\n width: focusedItemBoundsRef.current.w * zoom,\n height: focusedItemBoundsRef.current.h * zoom\n }\n : undefined;\n\n const { datatipContent, datatipProps } = useDatatip({\n content: datatipC?.content,\n borderColor: datatipC?.borderColor,\n placement: 'top-start',\n offset: calculateOffset(isRtl, width, elementBounds),\n anchor: focusedItemInfo?.isCurrent ? 'element' : 'pointer',\n touchResponse\n });\n return { datatipContent: datatipContent, datatipProps: datatipProps };\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 */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\n\ntype PointerGesture = {\n pointers: PointerEvent[];\n};\n\ntype UsePointerGestureOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n numPointers: number;\n onPointerGestureDown?: (detail: PointerGesture) => void;\n onPointerGestureMove?: (detail: PointerGesture) => void;\n onPointerGestureEnd?: (detail: PointerGesture) => void;\n onExtraneousPointerDown?: (detail: PointerGesture) => void;\n isDisabled?: boolean;\n};\n\nconst usePointerGesture = ({\n captureTargetRef,\n numPointers = 1,\n onPointerGestureDown,\n onPointerGestureMove,\n onPointerGestureEnd,\n onExtraneousPointerDown,\n isDisabled = false\n}: UsePointerGestureOptions) => {\n const activePointers = useRef<PointerEvent[]>([]);\n\n if (isDisabled) {\n activePointers.current = [];\n }\n\n const onPointerDown = (e: PointerEvent) => {\n activePointers.current.push(e);\n if (activePointers.current.length === numPointers) {\n onPointerGestureDown && onPointerGestureDown({ pointers: activePointers.current });\n } else if (activePointers.current.length > numPointers) {\n onExtraneousPointerDown && onExtraneousPointerDown({ pointers: activePointers.current });\n }\n };\n\n const onPointerMove = (e: PointerEvent) => {\n if (activePointers.current.length === 0) return;\n\n const index = activePointers.current.findIndex(\n (pointerEvent) => pointerEvent.pointerId === e.pointerId\n );\n if (index === -1) return;\n\n activePointers.current[index] = e;\n if (activePointers.current.length === numPointers) {\n activePointers.current.forEach((e) =>\n captureTargetRef.current!.setPointerCapture(e.pointerId)\n );\n\n onPointerGestureMove && onPointerGestureMove({ pointers: activePointers.current });\n }\n };\n\n const onPointerUp = (e: PointerEvent) => {\n const index = activePointers.current.findIndex(\n (pointerEvent) => pointerEvent.pointerId === e.pointerId\n );\n if (index === -1) return;\n\n activePointers.current[index] = e;\n if (activePointers.current.length === numPointers) {\n onPointerGestureEnd && onPointerGestureEnd({ pointers: activePointers.current });\n }\n activePointers.current.splice(index, 1);\n };\n\n const onPointerCancel = onPointerUp;\n const onPointerLeave = onPointerUp;\n\n return isDisabled\n ? {}\n : {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n onPointerCancel,\n onPointerLeave\n };\n};\n\nexport { usePointerGesture };\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 */\nimport { Bounds, PanState } from '../diagram.types';\nimport { panXYToCenterXY } from './diagramUtils';\nexport type PanBounds = {\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n};\n\n/**\n * The pan values that describes where the diagram content\n * is panned\n */\nexport type Pan = {\n panX: number;\n panY: number;\n};\n\nconst constrainPan = (\n previousPan: Pan,\n nextPan: Pan,\n panBounds: PanBounds,\n panDirection: 'x' | 'y' | 'any'\n) => {\n const panX = panDirection !== 'y' ? nextPan.panX : previousPan.panX;\n const panY = panDirection !== 'x' ? nextPan.panY : previousPan.panY;\n return {\n panX: panX > panBounds.maxX ? panBounds.maxX : panX < panBounds.minX ? panBounds.minX : panX,\n panY: panY > panBounds.maxY ? panBounds.maxY : panY < panBounds.minY ? panBounds.minY : panY\n };\n};\n\nexport const pan = (\n previousPan: Pan,\n nextPan: Pan,\n panDirection: 'x' | 'y' | 'any',\n zoom: number,\n width: number,\n height: number,\n panBounds?: PanBounds,\n onPanChange?: (detail: PanState) => void\n) => {\n if (!panBounds) {\n //On initial render before nodes are rendered\n return { newPan: { panX: 0, panY: 0 } };\n }\n const newPan = constrainPan(previousPan, nextPan, panBounds, panDirection);\n const isPanChanged = newPan.panX !== previousPan.panX || newPan.panY !== previousPan.panY;\n const center = panXYToCenterXY(newPan.panX, newPan.panY, zoom, width, height);\n isPanChanged &&\n onPanChange &&\n onPanChange({\n centerX: center.centerX,\n centerY: center.centerY\n });\n return { newPan };\n};\n\nexport const getPanBounds = (\n width: number,\n height: number,\n elemBounds: Bounds,\n zoom: number,\n minZoom: number,\n initPanZoomState: {\n zoom: number;\n centerX?: number;\n centerY?: number;\n },\n panType?: string\n): PanBounds => {\n const { x, y, w, h } = elemBounds;\n let minX, maxX, minY, maxY;\n if (panType === 'centerContent') {\n minX = width / 2 - (w + x) * zoom;\n minY = height / 2 - (h + y) * zoom;\n maxX = width / 2 - x * zoom;\n maxY = height / 2 - y * zoom;\n } else {\n // panType equals fixed\n const zoomRatio = zoom / minZoom;\n // Find left corner of the content at min zoom and content is centered\n const minZoomX = (width - w * minZoom) / 2 - x * minZoom;\n const minZoomY = (height - h * minZoom) / 2 - y * minZoom;\n // When we pan all the way to the right, the left corner of displayable area is 0,0 as in min zoom.\n // When we pan all the way to the left, lets find the corner of the displayable area\n const leftCornerX = width - width * zoomRatio;\n const leftCornerY = height - height * zoomRatio;\n // Now we have everything to calculate pan zoom constraints\n minX = leftCornerX + minZoomX * zoomRatio;\n minY = leftCornerY + minZoomY * zoomRatio;\n maxX = minZoomX * zoomRatio;\n maxY = minZoomY * zoomRatio;\n }\n const initZoom = initPanZoomState.zoom;\n const initCenterX = initPanZoomState.centerX;\n const initCenterY = initPanZoomState.centerY;\n // If an initial panZoomState is set, should expand pan bounds to include it\n let dx, dy;\n if (initCenterX) {\n const boundsX = initCenterX * initZoom - width / 2;\n if (-boundsX * initZoom < minX) {\n dx = minX - boundsX * initZoom;\n minX -= dx;\n maxX += dx;\n } else if (-boundsX * initZoom > maxX) {\n dx = -boundsX * initZoom - maxX;\n minX -= dx;\n maxX += dx;\n }\n }\n if (initCenterY) {\n const boundsY = initCenterY * initZoom - height / 2;\n if (-boundsY * initZoom < minY) {\n dy = minY - boundsY * initZoom;\n minY -= dy;\n maxY += dy;\n } else if (-boundsY * initZoom > maxY) {\n dy = -boundsY * initZoom - maxY;\n minY -= dy;\n maxY += dy;\n }\n }\n return {\n minX: minX,\n maxX: maxX,\n minY: minY,\n maxY: maxY\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 */\nimport type { PanState } from '../diagram.types';\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { useDrag } from './useDrag';\nimport { PanBounds, pan } from '../utils/panUtils';\nimport { centerXYToPanXY } from '../utils/diagramUtils';\n/**\n * Options for useDragPan hook\n */\ntype UseDragPanOptions = {\n panProps: {\n centerX: number;\n centerY: number;\n panDirection: 'x' | 'y' | 'any';\n onPan?: (detail: PanState) => void;\n panning?: 'centerContent' | 'fixed' | 'off';\n };\n captureTargetRef: RefObject<HTMLDivElement>;\n panBounds?: PanBounds;\n onDragPanStart?: () => void;\n onDragPanEnd?: () => void;\n zoom: number;\n width: number;\n height: number;\n};\n\nconst useDragPan = ({\n panProps,\n captureTargetRef,\n panBounds,\n width,\n height,\n zoom,\n onDragPanStart,\n onDragPanEnd\n}: UseDragPanOptions) => {\n const prevPanState = useRef({ panX: 0, panY: 0 });\n const initialPanState = useRef({ panX: 0, panY: 0 });\n const dragProps = useDrag({\n captureTargetRef,\n onDragStart: () => {\n const panValues = centerXYToPanXY(panProps.centerX, panProps.centerY, zoom, width, height);\n initialPanState.current = {\n panX: panValues.panX,\n panY: panValues.panY\n };\n onDragPanStart && onDragPanStart();\n },\n onDragMove: ({ dx, dy }) => {\n const nextPan = {\n panX: initialPanState.current.panX + dx,\n panY: initialPanState.current.panY + dy\n };\n const { newPan } = pan(\n prevPanState.current,\n nextPan,\n panProps.panDirection,\n zoom,\n width,\n height,\n panBounds,\n panProps.onPan\n );\n prevPanState.current = newPan;\n },\n onDragEnd: ({ originalEvent }) => {\n // If panning occurred, call preventDefault to prevent selection from occurring\n if (\n initialPanState.current.panX !== prevPanState.current.panX ||\n initialPanState.current.panY !== prevPanState.current.panY\n )\n originalEvent.preventDefault();\n onDragPanEnd && onDragPanEnd();\n },\n isDisabled: panProps.panning === 'off'\n });\n\n return dragProps;\n};\n\nexport { useDragPan };\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 */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { usePointerGesture } from './usePointerGesture';\n/**\n * Draggable region\n */\ntype DraggableRegion = {\n xMin: number;\n xMax: number;\n yMin: number;\n yMax: number;\n};\n\ntype DragDetail = {\n x: number;\n y: number;\n dx: number;\n dy: number;\n regionOffsetX: number;\n regionOffsetY: number;\n originalEvent: PointerEvent;\n};\n\ntype UseDragOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n draggableRegion?: DraggableRegion;\n onDragStart?: (detail: Omit<DragDetail, 'dx' | 'dy'>) => void;\n onDragMove?: (detail: DragDetail) => void;\n onDragEnd?: (detail: DragDetail) => void;\n isDisabled?: boolean;\n};\n/**\n * Whether point with coordinates are in the draggable region\n */\nconst inDraggableRegion = (x: number, y: number, region?: DraggableRegion) => {\n if (!region) return true;\n const { xMin, xMax, yMin, yMax } = region;\n return x >= xMin && x <= xMax && y >= yMin && y <= yMax;\n};\n\n/**\n * Returns region offset\n */\nconst getRegionOffset = (x: number, y: number, region?: DraggableRegion) => {\n if (!region) return { regionOffsetX: x, regionOffsetY: y };\n return { regionOffsetX: x - region.xMin, regionOffsetY: y - region.yMin };\n};\n\nconst useDrag = ({\n captureTargetRef,\n draggableRegion,\n onDragStart,\n onDragMove,\n onDragEnd,\n isDisabled = false\n}: UseDragOptions) => {\n const inactiveState = { isDragging: false, x0: -1, y0: -1, regionOffsetX: -1, regionOffsetY: -1 };\n const dragState = useRef(inactiveState);\n\n const handlePointerEvent = (e: PointerEvent, cb?: (detail: DragDetail) => void) => {\n const { isDragging, x0, y0, regionOffsetX, regionOffsetY } = dragState.current;\n if (!isDragging) return;\n const x = e.pageX;\n const y = e.pageY;\n cb && cb({ x, y, dx: x - x0, dy: y - y0, regionOffsetX, regionOffsetY, originalEvent: e });\n };\n\n const dragProps = usePointerGesture({\n captureTargetRef,\n numPointers: 1, // Only allow 1 pointer dragging\n onExtraneousPointerDown: () => {\n dragState.current = inactiveState;\n },\n onPointerGestureDown: ({ pointers: [e] }) => {\n const x = e.pageX;\n const y = e.pageY;\n if (e.button !== 0 || !inDraggableRegion(x, y, draggableRegion)) return;\n const { regionOffsetX, regionOffsetY } = getRegionOffset(x, y, draggableRegion);\n dragState.current = { isDragging: true, x0: x, y0: y, regionOffsetX, regionOffsetY };\n onDragStart && onDragStart({ x, y, regionOffsetX, regionOffsetY, originalEvent: e });\n },\n onPointerGestureMove: ({ pointers: [e] }) => {\n handlePointerEvent(e, onDragMove);\n },\n onPointerGestureEnd: ({ pointers: [e] }) => {\n handlePointerEvent(e, onDragEnd);\n dragState.current = inactiveState;\n }\n });\n\n return isDisabled ? {} : dragProps;\n};\n\nexport { useDrag };\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\nexport const ZOOM_INCREMENT = 0.05;\n\nexport const zoom = (\n nextZoom: number,\n zoom: number,\n minZoom: number,\n maxZoom: number,\n onZoomChange?: (detail: { zoomValue: number }) => void\n) => {\n const newZoom = nextZoom > maxZoom || nextZoom < minZoom ? zoom : nextZoom;\n const isZoomChanged = newZoom !== zoom;\n isZoomChanged &&\n onZoomChange &&\n onZoomChange({\n zoomValue: newZoom\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 */\nimport type { RefObject } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { usePointerGesture } from './usePointerGesture';\n\ntype Point = { x: number; y: number };\n\nconst getMidpoint = (p1: Point, p2: Point) => ({ x: (p1.x + p2.x) / 2, y: (p1.y + p2.y) / 2 });\nconst getDistance = (p1: Point, p2: Point) => Math.sqrt((p2.x - p1.x) ** 2 + (p2.y - p2.y) ** 2);\n\ntype PinchDetail = {\n origin: Point;\n delta: number;\n};\n\ntype UsePinchOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n onPinchZoomStart?: (detail: PinchDetail) => void;\n onPinchZoomChange?: (detail: PinchDetail) => void;\n onPinchZoomEnd?: () => void;\n isDisabled?: boolean;\n};\n\nconst usePinch = ({\n captureTargetRef,\n onPinchZoomStart,\n onPinchZoomChange,\n onPinchZoomEnd,\n isDisabled = false\n}: UsePinchOptions) => {\n const origin = useRef({ x: -1, y: -1 });\n const prevDistance = useRef(-1);\n const reset = () => {\n origin.current = { x: -1, y: -1 };\n prevDistance.current = -1;\n };\n\n if (isDisabled) reset();\n\n const pinchProps = usePointerGesture({\n captureTargetRef,\n numPointers: 2, // Pinch gesture requires 2 pointers\n onPointerGestureDown: ({ pointers: [pointer1, pointer2] }) => {\n const p1 = { x: pointer1.offsetX, y: pointer1.offsetY };\n const p2 = { x: pointer2.offsetX, y: pointer2.offsetY };\n origin.current = getMidpoint(p1, p2);\n prevDistance.current = getDistance(p1, p2);\n onPinchZoomStart &&\n onPinchZoomStart({\n origin: origin.current,\n delta: 0\n });\n },\n onPointerGestureMove: ({ pointers: [pointer1, pointer2] }) => {\n const p1 = { x: pointer1.offsetX, y: pointer1.offsetY };\n const p2 = { x: pointer2.offsetX, y: pointer2.offsetY };\n const distance = getDistance(p1, p2);\n const delta = distance - prevDistance.current;\n prevDistance.current = distance;\n onPinchZoomChange &&\n onPinchZoomChange({\n origin: origin.current,\n delta\n });\n },\n onPointerGestureEnd: () => {\n reset();\n onPinchZoomEnd && onPinchZoomEnd();\n }\n });\n\n return isDisabled ? {} : pinchProps;\n};\n\nexport { usePinch };\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 */\nimport type { RefObject } from 'preact';\nimport { usePinch } from './usePinch';\nimport { zoom, ZOOM_INCREMENT } from '../utils/zoomUtils';\n\ntype UsePinchZoomOptions = {\n captureTargetRef: RefObject<HTMLDivElement>;\n zooming: 'on' | 'off';\n minZoom: number;\n maxZoom: number;\n zoomValue: number;\n onZoom?: (detail: { zoomValue: number }) => void;\n};\n\nconst usePinchZoom = ({\n captureTargetRef,\n zooming,\n minZoom,\n maxZoom,\n zoomValue,\n onZoom\n}: UsePinchZoomOptions) => {\n const pinchProps = usePinch({\n captureTargetRef,\n onPinchZoomChange: ({ delta }) => {\n const newZoom = zoomValue * (1 + ZOOM_INCREMENT * delta);\n zoom(newZoom, zoomValue, minZoom, maxZoom, onZoom);\n },\n isDisabled: zooming === 'off'\n });\n\n return pinchProps;\n};\n\nexport { usePinchZoom };\n","import { Pan, Zoom, Bounds } from '../diagram.types';\nimport type { RefObject } from 'preact';\nimport { useState, useRef } from 'preact/hooks';\nimport { useDragPan } from './useDragPan';\nimport { useWheelZoom } from './useWheelZoom';\nimport { usePinchZoom } from './usePinchZoom';\nimport {\n centerXYToPanXY,\n getPanProps,\n getZoomProps,\n getZoomToFitZoom\n} from '../utils/diagramUtils';\nimport { PanBounds, getPanBounds, pan } from '../utils/panUtils';\nimport { zoom } from '../utils/zoomUtils';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport { isTouch } from '#utils/UNSAFE_visUtils/clientUtils';\nimport { Property } from 'csstype';\nimport { useVisDragModeControls } from '#hooks/PRIVATE_useVisDragModeControls';\n\nexport type PanZoomProps = {\n props: Pan & Zoom;\n captureTargetRef: RefObject<HTMLDivElement>;\n width: number;\n height: number;\n contentBounds: Bounds;\n isRtl: boolean;\n};\n\nexport const usePanZoom = ({\n props,\n captureTargetRef,\n width,\n height,\n contentBounds,\n isRtl\n}: PanZoomProps) => {\n const [cursor, setCursor] = useState<Property.Cursor>();\n const zoomProps = getZoomProps(props, width, height, contentBounds);\n const panBounds = useRef<PanBounds>();\n const prevZoom = useRef<number>();\n const panning = useRef<string>();\n const initPanZoomState = useRef({\n zoom: props.zoomValue || 0,\n centerX: props.centerX,\n centerY: props.centerY\n });\n\n const isDeviceTouch = isTouch();\n const plotArea = {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n\n const showPanButton = isDeviceTouch ? props.panning && props.panning !== 'off' : undefined;\n const dragModeOptions = {\n isZoomScroll: true,\n plotAreaSpace: plotArea,\n componentWidth: width,\n isRtl,\n showPanButton: showPanButton ?? false,\n showZoomButton: false,\n showSelectButton: false,\n isDisabled: !isDeviceTouch\n };\n\n const { toggleButtonContent, userDragMode } = useVisDragModeControls(dragModeOptions);\n const panProps = getPanProps(props, contentBounds, userDragMode, isDeviceTouch);\n if (\n contentBounds.w !== Infinity &&\n (zoomProps.zoomValue !== prevZoom.current || panProps.panning !== panning.current)\n ) {\n panBounds.current = getPanBounds(\n width,\n height,\n contentBounds,\n zoomProps.zoomValue,\n zoomProps.minZoom,\n initPanZoomState.current,\n panProps.panning\n );\n prevZoom.current = zoomProps.zoomValue;\n panning.current = panProps.panning;\n }\n const dragPanProps = useDragPan({\n panProps: panProps,\n captureTargetRef: captureTargetRef,\n panBounds: panBounds.current,\n zoom: zoomProps.zoomValue,\n width,\n height,\n onDragPanStart: () => setCursor('grabbing'),\n onDragPanEnd: () => setCursor('auto')\n });\n //dZoom or nZoom is required\n const kbZoomCallback = (props: { dZoom?: number; nZoom?: number }) => {\n const newZoom = props.dZoom\n ? zoomProps.zoomValue + props.dZoom\n : getZoomToFitZoom(width, height, contentBounds);\n zoom(\n props.nZoom ? props.nZoom : newZoom,\n zoomProps.zoomValue,\n zoomProps.minZoom,\n zoomProps.maxZoom,\n zoomProps.onZoom\n );\n };\n const prevPanState = useRef({ panX: 0, panY: 0 });\n\n // dPan or nPan is required\n const kbPanCallback = (props: {\n dPan?: { dx: number; dy: number };\n nPan?: { cx: number; cy: number };\n center?: boolean;\n }) => {\n let centerX;\n let centerY;\n if (props.center) {\n centerX = contentBounds.x + contentBounds.w / 2;\n centerY = contentBounds.y + contentBounds.h / 2;\n } else if (props.dPan) {\n centerX = panProps.centerX + props.dPan.dx;\n centerY = panProps.centerY + props.dPan.dy;\n } else {\n centerX = props.nPan!.cx;\n centerY = props.nPan!.cy;\n }\n const panValues = centerXYToPanXY(centerX, centerY, zoomProps.zoomValue, width, height);\n const { newPan } = pan(\n prevPanState.current,\n panValues,\n panProps.panDirection,\n zoomProps.zoomValue,\n width,\n height,\n panBounds.current,\n panProps.onPan\n );\n prevPanState.current = newPan;\n };\n const wheelZoomProps = useWheelZoom(zoomProps);\n const pinchZoomProps = usePinchZoom({\n captureTargetRef,\n zooming: zoomProps.zooming,\n minZoom: zoomProps.minZoom,\n maxZoom: zoomProps.maxZoom,\n zoomValue: zoomProps.zoomValue,\n onZoom: zoomProps.onZoom\n });\n const panZoomProps = mergeProps(dragPanProps, wheelZoomProps, pinchZoomProps);\n\n return {\n panZoomProps,\n panProps,\n zoomProps,\n toggleButtonContent,\n cursor,\n centerX: panProps.centerX,\n centerY: panProps.centerY,\n zoomValue: zoomProps.zoomValue,\n kbPanCallback: panProps.panning !== 'off' ? kbPanCallback : undefined,\n kbZoomCallback: zoomProps.zooming !== 'off' ? kbZoomCallback : undefined\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 */\nimport { useWheel } from './useWheel';\nimport { zoom, ZOOM_INCREMENT } from '../utils/zoomUtils';\n\ntype UseWheelZoomOptions = {\n zooming: 'on' | 'off';\n minZoom: number;\n maxZoom: number;\n zoomValue: number;\n onZoom?: (detail: { zoomValue: number }) => void;\n};\n\nconst useWheelZoom = ({ zooming, minZoom, maxZoom, zoomValue, onZoom }: UseWheelZoomOptions) => {\n const wheelProps = useWheel({\n onWheel: ({ deltaY }) => {\n const newZoom = zoomValue * (1 + ZOOM_INCREMENT * deltaY);\n zoom(newZoom, zoomValue, minZoom, maxZoom, onZoom);\n },\n isDisabled: zooming === 'off'\n });\n\n return wheelProps;\n};\n\nexport { useWheelZoom };\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 */\ntype WheelDetail = {\n x: number;\n y: number;\n deltaX: number;\n deltaY: number;\n ctrlKey: boolean;\n};\n\ntype UseWheelOptions = {\n onWheel: (detail: WheelDetail) => void;\n preventDefault?: boolean;\n isDisabled?: boolean;\n};\n\nconst PX_FACTOR_PER_LINE = 15; // Value used in Toolkit\nconst PX_FACTOR_PER_PAGE = 40; // Value copied from datagrid; this is not handled in Toolkit\n\nconst getNormalizedDelta = (e: WheelEvent) => {\n const { deltaX, deltaY, deltaMode } = e;\n\n switch (deltaMode) {\n case e.DOM_DELTA_PIXEL:\n return { deltaX: -deltaX, deltaY: -deltaY };\n case e.DOM_DELTA_LINE:\n return { deltaX: -deltaX * PX_FACTOR_PER_LINE, deltaY: -deltaY * PX_FACTOR_PER_LINE };\n case e.DOM_DELTA_PAGE:\n return { deltaX: -deltaX * PX_FACTOR_PER_PAGE, deltaY: -deltaY * PX_FACTOR_PER_PAGE };\n default:\n return { deltaX: -deltaX, deltaY: -deltaY };\n }\n};\n\nconst useWheel = ({\n onWheel: onWheelCallback,\n preventDefault = true,\n isDisabled = false\n}: UseWheelOptions) => {\n const onWheel = (e: WheelEvent) => {\n const { deltaX, deltaY } = getNormalizedDelta(e);\n if (preventDefault) e.preventDefault();\n onWheelCallback({\n x: e.offsetX,\n y: e.offsetY,\n deltaX,\n deltaY,\n ctrlKey: e.ctrlKey || e.metaKey\n });\n };\n return isDisabled ? {} : { onWheel };\n};\n\nexport { useWheel, PX_FACTOR_PER_LINE };\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 {\n DiagramProps,\n Bounds,\n DiagramLabelPosition,\n States,\n DiagramNodeData,\n DiagramLinkData,\n DiagramLayoutOutput\n} from './diagram.types';\nimport type { TextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { DiagramLayers } from './DiagramLayers';\nimport { DiagramPanZoomContainer } from './DiagramPanZoomContainer';\nimport { useEvents } from './hooks/useEvents';\nimport { useDiagramDatatip } from './hooks/useDiagramDatatip';\nimport { useTextDimensions } from '#hooks/PRIVATE_useTextDimensions';\nimport { usePanZoom } from './hooks/usePanZoom';\nimport { useRef, useState } from 'preact/hooks';\nimport { useUser } from '#hooks/UNSAFE_useUser';\nimport { useDiagramSelection } from './hooks/useDiagramSelection';\nimport { mergeProps } from '#utils/UNSAFE_mergeProps';\nimport {\n constructLayoutJSON,\n deconstructLayoutJSON,\n createItemMap,\n getFocusedItemBounds,\n mergeDimensions,\n isEqualBounds,\n getDimensionsFromBounds,\n combineIds,\n getContentBounds,\n centerXYToPanXY,\n filterLinksWithNoEndNodes,\n getAllLabelBounds\n} from './utils/diagramUtils';\nimport { outerStyles } from './themes/DiagramStyles.css';\nimport { useVisTouchResponse } from '#hooks/PRIVATE_useVisTouchResponse';\nimport { merge } from '#utils/UNSAFE_stringUtils';\n\ntype DiagramWithDimensionsProps<K1, K2, D1, D2, L> = Omit<\n DiagramProps<K1, K2, D1, D2, L>,\n 'width' | 'height'\n> & {\n width: number;\n height: number;\n};\n\nexport function DiagramWithDimensions<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1> = DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1> = DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2> = DiagramLayoutOutput<K1, K2>\n>({\n nodes = [],\n links = [],\n width,\n height,\n selectedIds = {},\n selectionMode = 'none',\n layout,\n nodeRenderer,\n linkRenderer,\n onSelectionChange,\n onItemHover,\n onItemFocus,\n highlightedIds = {},\n datatip,\n ...otherProps\n}: DiagramWithDimensionsProps<K1, K2, D1, D2, L>) {\n const focusedItemBoundsRef = useRef<Bounds | null>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n //TODO JET-62563 change bounds to a MAP\n const [bounds, setBounds] = useState<Bounds[]>([]);\n const [combinedLabelBounds, setCombinedLabelBounds] = useState<Bounds>();\n const { direction } = useUser();\n const isRtl = direction === 'rtl';\n\n const diagramNodes = nodes;\n const nodeMap = createItemMap<K1, K2, D1, D2>(diagramNodes);\n const nodeIdToDataMap = nodeMap.itemIdToDataMap;\n const diagramLinks = filterLinksWithNoEndNodes(links, nodeIdToDataMap);\n const linkMap = createItemMap<K1, K2, D1, D2>(diagramLinks);\n const linkIdToDataMap = linkMap.itemIdToDataMap;\n const resizeThrottling = useRef<boolean>(false);\n const newDimensions = getDimensionsFromBounds(bounds);\n const { textMeasureContent, getTextDimensions } = useTextDimensions();\n const labelDimensions = useRef<Map<K1 | K2, TextDimensions>>(new Map());\n const nodeLabelPosRef = useRef<(DiagramLabelPosition | undefined)[] | undefined>([]);\n const linkLabelPosRef = useRef<(DiagramLabelPosition | undefined)[] | undefined>([]);\n const layoutOutputRef = useRef<L>();\n\n const contentBounds = getContentBounds(bounds, combinedLabelBounds);\n const {\n panZoomProps,\n panProps,\n zoomProps,\n toggleButtonContent,\n cursor,\n centerX,\n centerY,\n zoomValue,\n kbPanCallback,\n kbZoomCallback\n } = usePanZoom({\n props: otherProps,\n captureTargetRef: rootRef,\n width: width,\n height: height,\n contentBounds,\n isRtl\n });\n\n const { touchResponse, touchResponseStyle } = useVisTouchResponse({\n type: 'auto',\n supportsTouchDragGestures: zoomProps.zooming === 'on' || panProps.panning !== 'off',\n rootRef\n });\n\n const { focusedItemInfo, hoveredItemInfo, activeId, eventsProps } = useEvents<K1, K2, D1, D2>(\n touchResponse,\n diagramNodes[0],\n diagramNodes,\n diagramLinks,\n bounds,\n linkIdToDataMap,\n nodeIdToDataMap,\n nodeMap.itemIdToIndexMap,\n width,\n height,\n otherProps.maxZoom || 1,\n onItemHover,\n onItemFocus,\n kbPanCallback,\n kbZoomCallback\n );\n\n const { selectionProps, selectionContent } = useDiagramSelection<K1, K2, D1, D2>({\n selectedIds,\n selectionMode,\n nodeMap,\n linkMap,\n focusedItemInfo,\n onSelectionChange,\n rootRef\n });\n\n // This is for the datatip kb position\n if (focusedItemInfo && bounds.length > 0) {\n focusedItemBoundsRef.current = getFocusedItemBounds(\n focusedItemInfo,\n bounds,\n diagramLinks,\n nodeMap.itemIdToIndexMap,\n linkMap.itemIdToIndexMap\n );\n }\n\n const {\n datatipContent,\n datatipProps: { 'aria-describedby': datatipAriaDescribedby, ...datatipProps }\n } = useDiagramDatatip({\n touchResponse,\n datatip,\n focusedItemInfo,\n focusedItemBoundsRef,\n panState: centerXYToPanXY(centerX, centerY, zoomValue, width, height),\n zoom: zoomValue,\n width: width,\n nodesMap: nodeIdToDataMap,\n linksMap: linkIdToDataMap,\n hoveredItem: hoveredItemInfo\n });\n\n const style = {\n width: width,\n height: height,\n cursor: cursor,\n ...touchResponseStyle\n };\n\n const states = useRef<States<K1, K2>>();\n const previousState = states.current // states.current is previous state\n ? states.current\n : {\n selectedNodeIds: [],\n selectedLinkIds: [],\n focusedId: undefined,\n hoveredId: undefined,\n activeId: undefined,\n highlightedIds: [],\n zoom: 0\n };\n\n states.current = {\n // update states to new state\n selectedNodeIds: selectedIds.nodes ?? [],\n selectedLinkIds: selectedIds.links ?? [],\n focusedId:\n focusedItemInfo.isCurrent && focusedItemInfo.isFocusVisible ? focusedItemInfo.id : undefined,\n hoveredId: hoveredItemInfo?.isCurrent ? hoveredItemInfo.id : undefined,\n activeId,\n highlightedIds: combineIds(highlightedIds.nodes, highlightedIds.links),\n zoom: zoomValue\n };\n\n const mergedEventProps = mergeProps(panZoomProps, eventsProps, selectionProps, datatipProps);\n\n // Called anytime node changes size\n const onNodeSizeChanged = (nodeWidth: number, nodeHeight: number, idx: number) => {\n newDimensions[idx] = { w: nodeWidth, h: nodeHeight };\n if (resizeThrottling.current) {\n return;\n }\n\n resizeThrottling.current = true;\n // performs layout at the next available animation frame when all measurements should be ready\n window.requestAnimationFrame(() => {\n const { labelDims, layoutJSON } = constructLayoutJSON(\n diagramNodes,\n nodeIdToDataMap,\n linkIdToDataMap,\n newDimensions,\n width,\n height,\n getTextDimensions\n );\n labelDimensions.current = labelDims;\n const layoutOutput = layout(layoutJSON);\n const { nodePoints, nodeLabelPos, linkLabelPos } = deconstructLayoutJSON<K1, K2, D1, D2, L>(\n layoutOutput,\n diagramNodes,\n diagramLinks\n );\n nodeLabelPosRef.current = nodeLabelPos;\n linkLabelPosRef.current = linkLabelPos;\n layoutOutputRef.current = layoutOutput;\n const nodeBounds = mergeDimensions(newDimensions, nodePoints);\n if (!isEqualBounds(nodeBounds, bounds)) {\n setBounds(nodeBounds);\n }\n const labelBounds = getAllLabelBounds(\n labelDims,\n diagramNodes,\n diagramLinks,\n nodeLabelPos,\n linkLabelPos,\n direction === 'rtl'\n );\n setCombinedLabelBounds(labelBounds);\n resizeThrottling.current = false;\n });\n };\n return (\n <div\n ref={rootRef}\n class={outerStyles}\n {...mergedEventProps}\n style={style}\n tabIndex={0}\n role=\"application\"\n aria-label={otherProps['aria-label']}\n aria-labelledby={otherProps['aria-labelledby']}\n aria-describedby={merge([otherProps['aria-describedby'], datatipAriaDescribedby])}\n aria-activedescendant={activeId}>\n {getTextDimensions ? (\n <DiagramPanZoomContainer\n centerX={centerX}\n centerY={centerY}\n zoom={zoomValue}\n width={width}\n height={height}>\n <DiagramLayers\n nodes={diagramNodes}\n links={diagramLinks}\n nodeRenderer={nodeRenderer}\n linkRenderer={linkRenderer}\n width={width}\n height={height}\n nodeBounds={bounds}\n states={states.current!}\n previousStates={previousState}\n onNodeSizeChanged={onNodeSizeChanged}\n nodeLabelPositions={nodeLabelPosRef.current}\n linkLabelPositions={linkLabelPosRef.current}\n labelDimensions={labelDimensions.current}\n supportsSelection={\n selectionMode !== 'none' ||\n !!(selectedIds?.nodes && selectedIds.nodes.length > 0) ||\n !!(selectedIds?.links && selectedIds.links.length > 0)\n }\n layoutOutput={layoutOutputRef.current}\n />\n </DiagramPanZoomContainer>\n ) : undefined}\n {textMeasureContent}\n {datatipContent}\n {selectionContent}\n {toggleButtonContent}\n </div>\n );\n}\n","import { useSelection } from '#hooks/PRIVATE_useVisSelection';\nimport type { DiagramLinkData, DiagramNodeData, ItemInfo } from '../diagram.types';\nimport { getNavigableInfo } from '../utils/diagramUtils';\nimport type { RefObject } from 'preact';\n\ntype SelectionProps<K1, K2, D1, D2> = {\n selectedIds: {\n nodes?: K1[];\n links?: K2[];\n };\n selectionMode: 'none' | 'single' | 'multiple';\n nodeMap: {\n itemIdToDataMap: Map<K1, D1>;\n itemIdToIndexMap: Map<K1, number>;\n itemIndexToIdMap: Map<number, K1>;\n };\n linkMap: {\n itemIdToDataMap: Map<K2, D2>;\n itemIdToIndexMap: Map<K2, number>;\n itemIndexToIdMap: Map<number, K2>;\n };\n focusedItemInfo: ItemInfo<K1, K2>;\n onSelectionChange?: (detail: {\n nodes: K1[];\n links: K2[];\n nodeData: (D1 | undefined)[];\n linkData: (D2 | undefined)[];\n }) => void;\n rootRef: RefObject<HTMLDivElement>;\n};\n\ntype EncodedNodeId = `N_${number}`;\ntype EncodedLinkId = `L_${number}`;\n\nexport function useDiagramSelection<\n K1,\n K2,\n D1 extends DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1>\n>({\n selectedIds,\n selectionMode,\n nodeMap,\n linkMap,\n focusedItemInfo,\n onSelectionChange,\n rootRef\n}: SelectionProps<K1, K2, D1, D2>) {\n const nodeIdToIndexMap = nodeMap.itemIdToIndexMap;\n const nodeIndexToIdMap = nodeMap.itemIndexToIdMap;\n const nodeIdToDataMap = nodeMap.itemIdToDataMap;\n const linkIdToIndexMap = linkMap.itemIdToIndexMap;\n const linkIndexToIdMap = linkMap.itemIndexToIdMap;\n const linkIdToDataMap = linkMap.itemIdToDataMap;\n const encodeNodeId = (id: K1) => `N_${nodeIdToIndexMap.get(id)}` as EncodedNodeId;\n const decodeNodeId = (id: EncodedNodeId) => nodeIndexToIdMap.get(Number(id.slice(2)));\n const encodeLinkId = (id: K2) => `L_${linkIdToIndexMap.get(id)}` as EncodedLinkId;\n const decodeLinkId = (id: EncodedLinkId) => linkIndexToIdMap.get(Number(id.slice(2)));\n\n const encodedNodesSelection = selectedIds.nodes ? selectedIds.nodes.map(encodeNodeId) : [];\n const encodedLinksSelection = selectedIds.links ? selectedIds.links.map(encodeLinkId) : [];\n const encodedSelection = [...encodedNodesSelection, ...encodedLinksSelection];\n const idExtracter = (event: Event) => {\n // return encodeNodeId(id) or encodeLinkId(id) depending on node or link selection or undefined if clicked on empty space\n const info =\n event.type === 'keyup'\n ? focusedItemInfo\n : getNavigableInfo<K1, K2>(event.target as HTMLElement, rootRef);\n return info.id !== undefined\n ? info.isNode\n ? encodeNodeId(info.id as K1)\n : encodeLinkId(info.id as K2)\n : undefined;\n };\n\n const onEncodedSelectionChange = (detail: { ids: (EncodedNodeId | EncodedLinkId)[] }) => {\n const newNodeIds = detail.ids\n .filter((encId) => encId[0] === 'N')\n .map((encId) => decodeNodeId(encId as EncodedNodeId)!);\n const newLinkIds = detail.ids\n .filter((encId) => encId[0] === 'L')\n .map((encId) => decodeLinkId(encId as EncodedLinkId)!);\n\n const newSelectedNodeIds = newNodeIds.filter(\n (id) => nodeIdToDataMap.get(id)?.selectable !== 'off'\n );\n const newSelectedLinkIds = newLinkIds.filter(\n (id) => linkIdToDataMap.get(id)?.selectable !== 'off'\n );\n\n const nodeData = newSelectedNodeIds.map((selectedId) => {\n return nodeIdToDataMap.get(selectedId);\n });\n const linkData = newSelectedLinkIds.map((selectedId) => {\n return linkIdToDataMap.get(selectedId);\n });\n return (\n onSelectionChange &&\n onSelectionChange({\n nodes: newSelectedNodeIds,\n links: newSelectedLinkIds,\n nodeData,\n linkData\n })\n );\n };\n\n const getDataById = (id: EncodedNodeId | EncodedLinkId) => {\n let data;\n if (id[0] === 'N') {\n const nodeId = decodeNodeId(id as EncodedNodeId)!;\n data = nodeMap.itemIdToDataMap.get(nodeId);\n } else if (id[0] === 'L') {\n const linkId = decodeLinkId(id as EncodedLinkId)!;\n data = linkMap.itemIdToDataMap.get(linkId);\n }\n return data;\n };\n\n const { selectionContent, selectionProps } = useSelection<`N_${number}` | `L_${number}`, D1 | D2>(\n {\n selection: encodedSelection,\n idExtracter,\n selectionMode,\n getDataById,\n onChange: onEncodedSelectionChange\n }\n );\n\n return { selectionContent, selectionProps };\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 {\n DiagramProps,\n DiagramNodeData,\n DiagramLinkData,\n DiagramLayoutOutput\n} from './diagram.types';\nimport { TrackResizeContainer } from '#PRIVATE_TrackResizeContainer';\nimport { dimensionStyle } from './themes/DiagramStyles.css';\nimport { DiagramWithDimensions } from './DiagramWithDimensions';\n\n/**\n * Diagrams are used to display a set of nodes and the links between them.\n */\nexport function Diagram<\n K1 extends string | number,\n K2 extends string | number,\n D1 extends DiagramNodeData<K1> = DiagramNodeData<K1>,\n D2 extends DiagramLinkData<K2, K1> = DiagramLinkData<K2, K1>,\n L extends DiagramLayoutOutput<K1, K2> = DiagramLayoutOutput<K1, K2>\n>({ width, height, ...otherProps }: DiagramProps<K1, K2, D1, D2, L>) {\n return otherProps.nodes && otherProps.nodes.length > 0 ? (\n <TrackResizeContainer width={width} height={height} class={dimensionStyle}>\n {(width, height) => <DiagramWithDimensions width={width} height={height} {...otherProps} />}\n </TrackResizeContainer>\n ) : null;\n}\n"],"names":["ZOOM_TO_FIT_PADDING","createItemMap","items","itemIdToDataMap","Map","itemIdToIndexMap","itemIndexToIdMap","i","length","set","id","combineIds","nodeIds","linkIds","combinedIds","push","getLabelBounds","label","dims","isRTL","labelPos","getLabelPosition","rotationAngle","rotationPoint","x","width","y","height","angle","topLeft","getCoordsRelToRotPoint","topRight","bottomLeft","bottomRight","points","minX","minY","maxX","maxY","point","w","h","getBoundsFromPoints","rotatePoint","map","pos","labelPoint","rotPoint","Math","cos","sin","dimensions","positionProps","position","hAlign","vAlign","centerXYToPanXY","centerX","centerY","zoom","panX","panY","isEqualItem","item1","item2","isNode","getNavigableInfo","element","rootElementRef","navigableId","elem","dataset","parentElement","current","getItemAriaLabel","translations","supportsSelection","isSelected","accessibleLabel","generateAriaLabel","undefined","getZoomToFitZoom","contentBounds","zoomX","zoomY","min","constrainZoom","minZoom","maxZoom","newZoom","max","_getFontProps","styles","fontProps","fontFamily","fontSize","fontStyle","fontWeight","zoomAndCenterItemFromInfo","info","linkIdToDataMap","bounds","nodeIdToIndex","totalBounds","get","link","startNodeBounds","startNode","endNodeBounds","endNode","cX","cY","getPanZoomToCenterNode","DiagramNodeElement","state","previousState","activeId","nodeRenderer","onNodeSizeChanged","nodeIndex","data","isDimmed","nodeStyles","dimmedItemStyle","itemStyles","context","useTranslationBundle","ref","useRef","optionsRef","box","useResizeObserver","useCallback","entry","boxSize","borderBoxSize","inlineSize","blockSize","_jsx","class","classNames","role","selected","style","top","left","focused","hovered","children","DiagramNodeLayer","nodes","states","previousStates","nodeBounds","layerStyles","node","selectedNodeIds","includes","focusedId","hoveredId","jsx","highlightedIds","DiagramLinkElement","linkRenderer","layoutOutput","linkStyles","DiagramLinkLayer","links","selectedLinkIds","DiagramLabel","text","labelStyle","labelBorderStyle","labelStyles","labelPosition","labelRotation","rotation","getLabelRotation","borderColor","DiagramLabelLayer","itemProps","labelDimensions","direction","useUser","item","DiagramLayers","nodeLabelPositions","linkLabelPositions","_jsxs","jsxs","_Fragment","Fragment","Infinity","DiagramPanZoomContainer","panValues","panZoomStyles","translate","transform","getNodeDetailFromInfo","itemInfo","getNavigableLinksForNodeId","nodeId","listOfLinks","forEach","startId","endId","_getClockwiseAngle","currNode","oppositeNode","p1","_getNodeCenter","p2","atan2","PI","_getNodesDistance","sqrt","pow","_getLinkDirection","nodeBB","calcDistanceAngleWeighted","objectBB","currentBB","optimalAngle1","optimalAngle2","objCenterX","objCenterY","curCenterX","curCenterY","x_dist","abs","y_dist","distance","isValidDestination","objBB","curBB","compareCenters","_areEqualWithinTolerance","calcInContact","objRect","curRect","_isVerticallyAligned","_isHorizontallyAligned","rect1","rect2","a","b","_anglesAreEqualWithinTolerance","a1","a2","res","useDiagramNavigation","currentKeyboardFocusNode","nodeBoundsById","createNodeBoundsMap","getNextNavigableNode","listOfObjects","currBB","object","inContact","nextObject","nextDistance","Number","MAX_VALUE","nextInContact","hasFoundCurrent","objBounds","currBounds","getNextNavigableLink","listOfNodes","currentLink","keyboardFocusNode","linksWithSortingAttributes","linkDetail","addSortingAttributes","sort","link1","link2","linkAngle1","linkDistance1","linkDirection1","linkAngle2","linkDistance2","linkDirection2","bForward","index","navigateFromNodeToLink","event","adjLinks","currNodeBB","currNodeBBCenterX","nodeCenterX","altKey","code","navigateFromLinkToNode","linkId","key","linkData","startNodeBB","endNodeBB","startNodeCenterX","endNodeCenterX","DEFAULT_KB_PAN","DEFAULT_KB_ZOOM","useEvents","touchResponse","initNode","nodeIdToDataMap","nodeIdToIndexMap","onItemHover","onItemFocus","kbPanCallback","kbZoomCallback","focusedItemInfo","setfocusedItemInfo","useState","hoveredItemInfo","sethoveredItemInfo","hoverHandlers","useVisHover","target","isCurrent","getRandomId","type","updatefocusedItemInfo","handleKeyboardInput","isFocusVisible","eventsProps","mergeProps","onKeyUp","onKeyDown","eventConsumed","isChangeItemType","isNavigationEvent","nextItemInfo","itemDetail","getLinkDetailFromInfo","handleKeyboardNavigationEvent","dPan","dx","shiftKey","dy","dZoom","ctrlKey","nZoom","nPan","cx","cy","center","preventDefault","stopPropagation","cancelEvent","onBlur","onPointerUp","useDiagramDatatip","datatip","focusedItemBoundsRef","panState","nodesMap","linksMap","hoveredItem","isRtl","datatipC","focusedItem","isPointerActive","content","getDatatipContent","elementBounds","datatipContent","datatipProps","useDatatip","placement","offset","calculateOffset","anchor","usePointerGesture","captureTargetRef","numPointers","onPointerGestureDown","onPointerGestureMove","onPointerGestureEnd","onExtraneousPointerDown","isDisabled","activePointers","e","findIndex","pointerEvent","pointerId","pointers","splice","onPointerDown","onPointerMove","setPointerCapture","onPointerCancel","onPointerLeave","pan","previousPan","nextPan","panDirection","panBounds","onPanChange","newPan","constrainPan","isPanChanged","panXYToCenterXY","useDragPan","panProps","onDragPanStart","onDragPanEnd","prevPanState","initialPanState","dragProps","draggableRegion","onDragStart","onDragMove","onDragEnd","inactiveState","isDragging","x0","y0","regionOffsetX","regionOffsetY","dragState","handlePointerEvent","cb","pageX","pageY","originalEvent","button","region","xMin","xMax","yMin","yMax","inDraggableRegion","getRegionOffset","useDrag","onPan","panning","nextZoom","onZoomChange","zoomValue","getDistance","usePinchZoom","zooming","onZoom","pinchProps","onPinchZoomStart","onPinchZoomChange","onPinchZoomEnd","origin","prevDistance","reset","pointer1","pointer2","offsetX","offsetY","getMidpoint","delta","usePinch","usePanZoom","props","cursor","setCursor","zoomProps","getZoomProps","prevZoom","initPanZoomState","isDeviceTouch","isTouch","plotArea","showPanButton","dragModeOptions","isZoomScroll","plotAreaSpace","componentWidth","showZoomButton","showSelectButton","toggleButtonContent","userDragMode","useVisDragModeControls","getPanProps","elemBounds","panType","zoomRatio","minZoomX","minZoomY","initZoom","initCenterX","initCenterY","boundsX","boundsY","getPanBounds","dragPanProps","wheelZoomProps","onWheel","onWheelCallback","deltaX","deltaY","deltaMode","DOM_DELTA_PIXEL","DOM_DELTA_LINE","DOM_DELTA_PAGE","getNormalizedDelta","metaKey","useWheel","useWheelZoom","pinchZoomProps","panZoomProps","DiagramWithDimensions","selectedIds","selectionMode","layout","onSelectionChange","otherProps","rootRef","setBounds","combinedLabelBounds","setCombinedLabelBounds","diagramNodes","nodeMap","diagramLinks","newLinks","filterLinksWithNoEndNodes","linkMap","resizeThrottling","newDimensions","getDimensionsFromBounds","textMeasureContent","getTextDimensions","useTextDimensions","nodeLabelPosRef","linkLabelPosRef","layoutOutputRef","labelBounds","getContentBounds","touchResponseStyle","useVisTouchResponse","supportsTouchDragGestures","selectionProps","selectionContent","nodeIndexToIdMap","linkIdToIndexMap","linkIndexToIdMap","encodeNodeId","decodeNodeId","slice","encodeLinkId","decodeLinkId","encodedSelection","useSelection","selection","idExtracter","getDataById","onChange","detail","newNodeIds","ids","filter","encId","newLinkIds","newSelectedNodeIds","selectable","newSelectedLinkIds","nodeData","selectedId","useDiagramSelection","startNB","endNB","startNCenter","endNCenter","getFocusedItemBounds","datatipAriaDescribedby","mergedEventProps","outerStyles","tabIndex","merge","nodeWidth","nodeHeight","idx","window","requestAnimationFrame","labelDims","layoutJSON","nodeItems","linkItems","nodeKeys","Array","from","keys","linkKeys","getNodeDimensions","getLabelDimensions","componentSize","constructLayoutJSON","nodePoints","nodeLabelPos","linkLabelPos","positions","hasNodeLabels","hasLinkLabels","deconstructLayoutJSON","newBounds","dim","mergeDimensions","bounds1","bounds2","every","getAllLabelBounds","TrackResizeContainer","dimensionStyle"],"mappings":"2lBAqBA,MAAMA,EAAsB,GAqNtB,SAAUC,EAKdC,GACA,MAAMC,EAAkB,IAAIC,IACtBC,EAAmB,IAAID,IACvBE,EAAmB,IAAIF,IAC7B,IAAK,IAAIG,EAAI,EAAGA,EAAIL,EAAMM,OAAQD,IAChCJ,EAAgBM,IAAIP,EAAMK,GAAGG,GAAIR,EAAMK,IACvCF,EAAiBI,IAAIP,EAAMK,GAAGG,GAAIH,GAClCD,EAAiBG,IAAIF,EAAGL,EAAMK,GAAGG,IAEnC,MAAO,CACLP,kBACAE,mBACAC,mBAEJ,CA4EgB,SAAAK,EAAmBC,EAAgBC,GACjD,MAAMC,EAA2B,GACjC,GAAIF,EACF,IAAK,IAAIL,EAAI,EAAGA,EAAIK,EAAQJ,OAAQD,IAClCO,EAAYC,KAAKH,EAAQL,IAG7B,GAAIM,EACF,IAAK,IAAIN,EAAI,EAAGA,EAAIM,EAAQL,OAAQD,IAClCO,EAAYC,KAAKF,EAAQN,IAG7B,OAAOO,CACT,CAuEA,SAASE,EAAeC,EAA6BC,EAAsBC,GACzE,MAAMC,EAAWC,EAAiBH,EAAMD,EAAOE,GAE/C,GADmBF,EAAMK,cAGlB,CAEL,MAAMC,EAAgBN,EAAMM,cACxBN,EAAMM,cACN,CAAEC,EAAGN,EAAKO,MAAQ,EAAGC,EAAGR,EAAKS,OAAS,GACpCC,EAAQX,EAAMK,cACdO,EAAUC,EAAuB,CAAEN,EAAG,EAAGE,EAAG,GAAKH,GACjDQ,EAAWD,EAAuB,CAAEN,EAAGN,EAAKO,MAAOC,EAAG,GAAKH,GAC3DS,EAAaF,EAAuB,CAAEN,EAAG,EAAGE,EAAGR,EAAKS,QAAUJ,GAC9DU,EAAcH,EAAuB,CAAEN,EAAGN,EAAKO,MAAOC,EAAGR,EAAKS,QAAUJ,GAW9E,OAeJ,SAA6BW,GAC3B,IAAIC,EAAOD,EAAO,GAAGV,EACjBY,EAAOF,EAAO,GAAGR,EACjBW,EAAOH,EAAO,GAAGV,EACjBc,EAAOJ,EAAO,GAAGR,EACrB,IAAK,IAAInB,EAAI,EAAGA,EAAI2B,EAAO1B,OAAQD,IAAK,CACtC,MAAMgC,EAAQL,EAAO3B,GACjBgC,EAAMf,EAAIW,EAAMA,EAAOI,EAAMf,EACxBe,EAAMf,EAAIa,IAAMA,EAAOE,EAAMf,GAClCe,EAAMb,EAAIU,EAAMA,EAAOG,EAAMb,EACxBa,EAAMb,EAAIY,IAAMA,EAAOC,EAAMb,EACvC,CACD,MAAO,CACLF,EAAGW,EACHT,EAAGU,EACHI,EAAGH,EAAOF,EACVM,EAAGH,EAAOF,EAEd,CAjCWM,CANQ,CAJIC,EAAYd,EAASD,GACrBe,EAAYX,EAAYJ,GACvBe,EAAYZ,EAAUH,GACtBe,EAAYV,EAAaL,IACqBgB,KAAKC,IAC9D,CACLrB,EAAGqB,EAAIrB,EAAIJ,EAASI,EAAID,EAAcC,EACtCE,EAAGmB,EAAInB,EAAIN,EAASM,EAAIH,EAAcG,MAI3C,CAtBC,MAAO,CAAEF,EAAGJ,EAASI,EAAGE,EAAGN,EAASM,EAAGc,EAAGtB,EAAKO,MAAOgB,EAAGvB,EAAKS,OAuBlE,CAEA,SAASG,EAAuBgB,EAAsBC,GACpD,MAAO,CAAEvB,EAAGsB,EAAWtB,EAAIuB,EAASvB,EAAGE,EAAGoB,EAAWpB,EAAIqB,EAASrB,EACpE,CAEA,SAASiB,EAAYE,EAAejB,GAClC,MAAO,CACLJ,EAAGqB,EAAIrB,EAAIwB,KAAKC,IAAIrB,GAASiB,EAAInB,EAAIsB,KAAKE,IAAItB,GAC9CF,EAAGmB,EAAIrB,EAAIwB,KAAKE,IAAItB,GAASiB,EAAInB,EAAIsB,KAAKC,IAAIrB,GAElD,UA4BgBP,EACd8B,EACAC,EACAjC,GAEA,MAAMkC,EAAWD,EAAcC,SACzBC,EAASF,EAAcE,OAASF,EAAcE,OAASnC,EAAQ,QAAU,OACzEoC,EAASH,EAAcG,OAC7B,IAAI/B,EAAGE,EAkBP,OAhBEF,EADa,WAAX8B,EACED,EAAS7B,EAAI2B,EAAW1B,MAAQ,EAChB,UAAX6B,EACLD,EAAS7B,EAAI2B,EAAW1B,MAExB4B,EAAS7B,EAIbE,EADa,WAAX6B,EACEF,EAAS3B,EAAIyB,EAAWxB,OAAS,EACjB,WAAX4B,EACLF,EAAS3B,EAAIyB,EAAWxB,OACR,aAAX4B,EACLF,EAAS3B,EAAIyB,EAAWzB,EAExB2B,EAAS3B,EAER,CACLF,EAAGA,EACHE,EAAGA,EAEP,CAKM,SAAU8B,EACdC,EACAC,EACAC,EACAlC,EACAE,GAEA,MAAO,CACLiC,KAAMnC,EAAQ,EAAIgC,EAAUE,EAC5BE,KAAMlC,EAAS,EAAI+B,EAAUC,EAEjC,CAoBgB,SAAAG,EAAoBC,EAA0BC,GAC5D,OAAOD,GAAOrD,KAAOsD,GAAOtD,IAAMqD,GAAOE,SAAWD,GAAOC,MAC7D,CAKgB,SAAAC,EACdC,EACAC,GAEA,IAEIC,EAFAJ,GAAS,EACTK,EAAOH,EAEX,MAAQE,GAON,GANAA,EAAcC,EAAKC,QAAc,KAC7BF,EACFJ,GAAS,EAETI,EAAcC,EAAKC,QAAc,MAE9BF,EAAa,CAChB,IAAIC,EAAKE,eAAiBF,EAAKE,gBAAkBJ,GAAgBK,QAG/D,MAFAH,EAAOA,EAAKE,aAIf,CAEH,MAAO,CACL9D,GAAI2D,EACJJ,OAAQA,EAEZ,CAqBM,SAAUS,EACdC,EACAC,EACAC,EACAC,GAEA,OAAOC,oBAAkBJ,EAAcG,GAAmB,GAAI,CAC5DD,WAAaD,EAAgCC,OAAZG,GAErC,UAKgBC,EAAiBxD,EAAeE,EAAgBuD,GAC9D,MAAMC,GAAS1D,EAAQ,EAAIzB,GAAuBkF,EAAc1C,EAC1D4C,GAASzD,EAAS,EAAI3B,GAAuBkF,EAAczC,EACjE,OAAOO,KAAKqC,IAAIF,EAAOC,EACzB,CAKA,SAASE,EAAc3B,EAAc4B,EAAiBC,GACpD,IAAIC,EAAUzC,KAAK0C,IAAIH,EAAS5B,GAEhC,OADA8B,EAAUzC,KAAKqC,IAAIG,EAASC,GACrBA,CACT,CAKA,SAASE,EAAcC,GACrB,MAAMC,EAAkB,CAAA,EACxB,OAAKD,GACDA,EAAOE,aAAYD,EAAUC,WAAaF,EAAOE,YACjDF,EAAOG,WAAUF,EAAUE,SAAWH,EAAOG,UAC7CH,EAAOI,YAAWH,EAAUG,UAAYJ,EAAOI,WAC/CJ,EAAOK,aAAYJ,EAAUI,WAAaL,EAAOK,YAC9CJ,GALaA,CAMtB,CAKgB,SAAAK,EACdC,EACAC,EACAC,EACAC,EACA7E,EACAE,EACA6D,GAGA,IAAIe,EACJ,GAFeJ,EAAKlC,OAER,CAEVsC,EAAcF,EADIC,EAAcE,IAAIL,EAAKzF,IAE1C,KAAM,CACL,MAAM+F,EAAOL,EAAgBI,IAAIL,EAAKzF,IAChCgG,EAAkBL,EAAOC,EAAcE,IAAIC,EAAKE,YAChDC,EAAgBP,EAAOC,EAAcE,IAAIC,EAAKI,UAC9C1E,EAAOa,KAAKqC,IAAIqB,EAAgBlF,EAAGoF,EAAcpF,GACjDY,EAAOY,KAAKqC,IAAIqB,EAAgBhF,EAAGkF,EAAclF,GAMvD6E,EAAc,CAAE/E,EAAGW,EAAMT,EAAGU,EAAMI,EALrBQ,KAAK0C,IAChBgB,EAAgBlF,EAAIkF,EAAgBlE,EACpCoE,EAAcpF,EAAIkF,EAAgBlE,GAGQL,EAAMM,EADrCO,KAAK0C,IAAIgB,EAAgBhF,EAAIgF,EAAgBjE,EAAGmE,EAAclF,EAAIkF,EAAcnE,GACjCL,EAC7D,CACD,OAOF,SAAgCiE,EAAgBb,EAAiB/D,EAAeE,GAC9E,MAAMwD,GAAS1D,EAAQ,EAAIzB,GAAuBqG,EAAO7D,EACnD4C,GAASzD,EAAS,EAAI3B,GAAuBqG,EAAO5D,EACpDkB,EAAOX,KAAKqC,IAAIF,EAAOC,EAAOI,GAC9BsB,EAAKT,EAAO7D,EAAI,EAAI6D,EAAO7E,EAC3BuF,EAAKV,EAAO5D,EAAI,EAAI4D,EAAO3E,EACjC,MAAO,CAAE+B,QAASqD,EAAIpD,QAASqD,EAAIpD,KAAMA,EAC3C,CAdSqD,CAAuBT,EAAaf,EAAS/D,EAAOE,EAC7D,CCnoBO,MAAMsF,EAAqB,EAChCvG,KACAwG,QACAC,gBACA9D,WACA+D,WACAC,eACAC,oBACAC,YACAC,OACA1C,kBACA2C,WACA7C,wBAEA,MAAM8C,WAAEA,EAAUC,gBAAEA,GAAoBC,aAClCC,EAAU,CACdX,MAAOA,EACPC,cAAeA,EACfK,KAAMA,GAGF7C,EAAemD,uBAAiC,4BAChDC,EAAMC,SAAuB,MAE7BC,EAAaD,EAAMA,OAAC,CAAEE,IAAK,eAcjC,OAbAC,EAAAA,kBACEJ,EACAK,eACGC,IACC,MAAMC,EAAUD,EAAME,cAChB9G,EAAQ6G,EAAQ,GAAGE,WACnB7G,EAAS2G,EAAQ,GAAGG,UAC1BnB,EAAkB7F,EAAOE,EAAQ4F,EAAU,GAE7C,CAACA,EAAWD,IAEdW,EAAWxD,SAGXiE,aACEX,IAAKA,EAELY,MAAOC,EAAUA,WAAC,CAAClB,EAAYD,EAAWE,OAAkB3C,IAAW,YAC5DtE,EACXmI,KAAK,MAAK,aACEnE,EACVC,EACAC,EACAsC,EAAM4B,SACNhE,GAEFiE,MAAO,CACLC,IAAK3F,EAAS3B,EACduH,KAAM5F,EAAS7B,GAEjBd,GAAIwG,EAAMgC,SAAWhC,EAAMiC,QAAU/B,OAAWpC,EAASoE,SACxD/B,EAAaQ,IAfTnH,EAiBP,WCxEY2I,GAAyDC,MACvEA,EAAKC,OACLA,EAAMC,eACNA,EAAcnC,aACdA,EAAYoC,WACZA,EAAUnC,kBACVA,EAAiB1C,kBACjBA,IAEA,OACE8D,MAAA,MAAA,CAAKC,MAAOe,EAAWA,YACpBN,SAAAE,EAAM1G,KAAI,CAAC+G,EAAMpJ,KAEhB,MAAM8C,EACJoG,GAAcA,EAAWlJ,GAAK,CAAEiB,EAAGiI,EAAWlJ,GAAGiB,EAAGE,EAAG+H,EAAWlJ,GAAGmB,GAAM,CAAEF,EAAG,EAAGE,EAAG,GAClFwF,EAAQ,CACZ4B,SAAUS,EAAOK,gBAAgBC,SAASF,EAAKjJ,IAC/CwI,QAASK,EAAOO,YAAcH,EAAKjJ,GACnCyI,QAASI,EAAOQ,YAAcJ,EAAKjJ,GACnCiD,KAAM4F,EAAO5F,MAETwD,EAAgB,CACpB2B,SAAUU,EAAeI,gBAAgBC,SAASF,EAAKjJ,IACvDwI,QAASM,EAAeM,YAAcH,EAAKjJ,GAC3CyI,QAASK,EAAeO,YAAcJ,EAAKjJ,GAC3CiD,KAAM6F,EAAe7F,MAEvB,OACE+E,EAACsB,IAAA/C,EACC,CAAAvG,GAAIiJ,EAAKjJ,GACT2C,SAAUA,EACV6D,MAAOA,EACPC,cAAeA,EACfM,SACmC,IAAjC8B,EAAOU,eAAezJ,SAAiB+I,EAAOU,eAAeJ,SAASF,EAAKjJ,IAE7E0G,SAAUmC,EAAOnC,SACjBC,aAAcA,EACdC,kBAAmBA,EACnBC,UAAWhH,EACXuE,gBAAiB6E,EAAK7E,gBACtB0C,KAAMmC,EACN/E,kBAAmBA,GAErB,KAIV,CCtCO,MAAMsF,EAAqB,EAChCxJ,KACAwG,QACAC,gBACAC,WACAI,OACA2C,eACArF,kBACA2C,WACA7C,oBACAwF,mBAEA,MAAMzF,EAAemD,uBAAiC,6BAChDH,gBAAEA,EAAe0C,WAAEA,GAAezC,aAClCC,EAAU,CACdX,MAAOA,EACPC,cAAeA,EACfK,KAAMA,EACN4C,aAAcA,GAEhB,OACE1B,EAAAA,IAEE,IAAA,CAAAhI,GAAIwG,EAAMgC,QAAU9B,OAAWpC,EAAS,aAC5BN,EACVC,EACAC,EACAsC,EAAM4B,SACNhE,eAESpE,EACXmI,KAAK,MACLF,MAAOC,EAAUA,WAAC,CAACyB,EAAY5C,GAAYE,IAAiByB,SAC3De,EAAatC,IAXTnH,EAaP,WCvCY4J,GAKdC,MACAA,EAAKhB,OACLA,EAAMC,eACNA,EAAcW,aACdA,EAAY1I,MACZA,EAAKE,OACLA,EAAMiD,kBACNA,EAAiBwF,aACjBA,IAEA,OACE1B,aAAKC,MAAOe,EAAAA,YAAajI,MAAOA,EAAOE,OAAQA,WAC5C4I,EAAM3H,KAAK6D,IACV,MAAMS,EAAQ,CACZ4B,SAAUS,EAAOiB,gBAAgBX,SAASpD,EAAK/F,IAC/CwI,QAASK,EAAOO,YAAcrD,EAAK/F,GACnCyI,QAASI,EAAOQ,YAActD,EAAK/F,GACnCiD,KAAM4F,EAAO5F,MAETwD,EAAgB,CACpB2B,SAAUU,EAAegB,gBAAgBX,SAASpD,EAAK/F,IACvDwI,QAASM,EAAeM,YAAcrD,EAAK/F,GAC3CyI,QAASK,EAAeO,YAActD,EAAK/F,GAC3CiD,KAAM6F,EAAe7F,MAEvB,OACE+E,EAAAsB,IAACE,EAAkB,CACjBxJ,GAAI+F,EAAK/F,GACTO,MAAOwF,EAAKxF,MACZiG,MAAOA,EACPC,cAAeA,EACfM,SACmC,IAAjC8B,EAAOU,eAAezJ,SAAiB+I,EAAOU,eAAeJ,SAASpD,EAAK/F,IAE7E0G,SAAUmC,EAAOnC,SACjBtC,gBAAiB2B,EAAK3B,gBACtB0C,KAAMf,EACN0D,aAAcA,EACdvF,kBAAmBA,EACnBwF,aAAcA,GAEhB,KAIV,CC9CO,MAAMK,EAAe,EAAGC,OAAMrH,WAAUuC,SAAQzC,aAAYhC,YACjE,MAAMwJ,WAAEA,EAAUC,iBAAEA,GAAqBC,cAEnCC,EAAgBzJ,EAAiB8B,EAAYE,EAAUlC,GACvD4J,EAoBR,SAA0B1H,GACxB,MAAM/B,EAAgB+B,EAAS/B,cACzBC,EAAgB8B,EAAS9B,cACzByJ,EAGF,CAAA,EACA1J,IACF0J,EAAoB,UAAI,UAAU1J,SAEhCC,IACFyJ,EAAS,oBAAsB,GAAGzJ,EAAcC,OAAOD,EAAcG,OAEvE,OAAOsJ,CACT,CAlCwBC,CAAiB5H,GACvC,OACEqF,aACEC,MAAOC,EAAUA,WAAC,CAAC+B,EAAY/E,GAAUA,EAAOsF,aAAeN,IAC/D7B,MAAO,CACLC,IAAK8B,EAAcpJ,EACnBuH,KAAM6B,EAActJ,KACjBoE,KACAmF,GAEJ3B,SAAAsB,GAEH,EC7BE,SAAUS,GAKdL,cAAEA,EAAaM,UAAEA,EAASC,gBAAEA,IAC5B,MAAMC,UAAEA,GAAcC,EAAAA,UACtB,OACE7C,MAAA,MAAA,CAAKC,MAAOe,EAAWA,YACpBN,SAAAgC,EAAUxI,KAAI,CAAC4I,EAAMjL,KACpB,GAAIiL,EAAKvK,OAAS6J,EAAcvK,GAC9B,OACEmI,EAACsB,IAAAS,GACC7E,OAAQ4F,EAAKb,WACbD,KAAMc,EAAKvK,MACXoC,SAAUyH,EAAcvK,GACxB4C,WAAYkI,EAAgB7E,IAAIgF,EAAK9K,IACrCS,MAAqB,QAAdmK,GAIG,KAIxB,CCCgB,SAAAG,GAMdnC,MACAA,EAAKiB,MACLA,EAAKlD,aACLA,EAAY8C,aACZA,EAAYZ,OACZA,EAAMC,eACNA,EAAcC,WACdA,EAAUnC,kBACVA,EAAiB7F,MACjBA,EAAKE,OACLA,EAAM+J,mBACNA,EAAkBC,mBAClBA,EAAkBN,gBAClBA,EAAezG,kBACfA,EAAiBwF,aACjBA,IAEA,OACEwB,EAAAC,KAAAC,EAAAC,SAAA,CAAA3C,SAAA,CACGmB,EAAM/J,OAAS,GAAK4J,GAAgBD,GAAgB1I,IAAUuK,KAC7DtD,EAACsB,IAAAM,GACCC,MAAOA,EACPhB,OAAQA,EACRC,eAAgBA,EAChBW,aAAcA,EACd1I,MAAOA,EACPE,OAAQA,EACRiD,kBAAmBA,EACnBwF,aAAcA,IAGlB1B,EAACsB,IAAAX,EACC,CAAAC,MAAOA,EACPG,WAAYA,EACZF,OAAQA,EACRC,eAAgBA,EAChBnC,aAAcA,EACdC,kBAAmBA,EACnB1C,kBAAmBA,IAEpByG,EACCO,EAAAC,KAAA,MAAA,CAAAzC,SAAA,CACGsC,EACChD,MAACyC,EAAiB,CAChBL,cAAeY,EACfN,UAAW9B,EACX+B,gBAAiBA,SAEjBrG,EACHuF,GAASoB,EACRjD,MAACyC,GACCL,cAAea,EACfP,UAAWb,EACXc,gBAAiBA,SAEjBrG,UAEJA,IAGV,CC3FgB,SAAAiH,GAAwBxI,QACtCA,EAAOC,QACPA,EAAO0F,SACPA,EAAQzF,KACRA,EAAIlC,MACJA,EAAKE,OACLA,IAEA,MAAMuK,EAAY1I,EAAgBC,EAASC,EAASC,EAAMlC,EAAOE,GACjE,OACE+G,EACEsB,IAAA,MAAA,CAAArB,MAAOwD,EAAAA,cACPpD,MAAO,CAELqD,UAAW,GAAGF,EAAUtI,UAAUsI,EAAUrI,SAC5CwI,UAAW,SAAS1I,MAErByF,SAAAA,GAGP,CCHgB,SAAAkD,EACdC,EACAjD,GAEA,IAAIK,EACJ,IAAK,IAAIpJ,EAAI,EAAGA,EAAI+I,EAAM9I,OAAQD,IAEhC,GADAoJ,EAAOL,EAAM/I,GACTgM,EAAS7L,KAAOiJ,EAAKjJ,GACvB,OAAOiJ,CAIb,CAsFgB,SAAA6C,EACdC,EACAC,GAEA,MAAMnC,EAAc,GAOpB,OANAmC,EAAYC,SAASlG,IACnB,MAAMmG,EAAUnG,EAAKE,UACfkG,EAAQpG,EAAKI,QAEf+F,GAAWH,GAAUI,GAASJ,GAAQlC,EAAMxJ,KAAK0F,EAAK,IAErD8D,CACT,CAKA,SAASuC,EAKPnD,EAAUlD,EAAU6C,EAAaG,GAEjC,IAAIsD,EACApG,EAAY2C,EAAM,GAClBzC,EAAUyC,EAAM,GACpB,IAAK,IAAI/I,EAAI,EAAGA,EAAI+I,EAAM9I,OAAQD,IAChCwM,EAAWzD,EAAM/I,GACbwM,EAASrM,KAAO+F,EAAKE,UACvBA,EAAYoG,EACHA,EAASrM,KAAO+F,EAAKI,UAC9BA,EAAUkG,GAGd,MAAMC,EAAerD,EAAKjJ,IAAMiG,EAAUjG,GAAKmG,EAAUF,EAEnDsG,EAAKC,EAAevD,EAAMF,GAC1B0D,EAAKD,EAAeF,EAAcvD,GACxC,IAAI7H,EAAQoB,KAAKoK,MAAMD,EAAGzL,EAAIuL,EAAGvL,EAAGyL,EAAG3L,EAAIyL,EAAGzL,GAE9C,OADAI,EAAQA,EAAQ,EAAIA,EAAkB,EAAVoB,KAAKqK,GAASzL,EACnCA,CACT,CAKA,SAAS0L,EAKP7G,EAAU6C,EAAaG,GACvB,IAAIsD,EACApG,EAAY2C,EAAM,GAClBzC,EAAUyC,EAAM,GACpB,IAAK,IAAI/I,EAAI,EAAGA,EAAI+I,EAAM9I,OAAQD,IAChCwM,EAAWzD,EAAM/I,GACbwM,EAASrM,KAAO+F,EAAKE,UACvBA,EAAYoG,EACHA,EAASrM,KAAO+F,EAAKI,UAC9BA,EAAUkG,GAGd,MAAME,EAAKC,EAAevG,EAAW8C,GAC/B0D,EAAKD,EAAerG,EAAS4C,GACnC,OAAOzG,KAAKuK,KAAKvK,KAAKwK,IAAIL,EAAG3L,EAAIyL,EAAGzL,EAAG,GAAKwB,KAAKwK,IAAIL,EAAGzL,EAAIuL,EAAGvL,EAAG,GACpE,CAMA,SAAS+L,EAKP9D,EAAUlD,GACV,OAAIA,EAAKI,UAAY8C,EAAKjJ,GACjB,EAEF,CACT,CAKA,SAASwM,EAAmDvD,EAAUF,GACpE,MAAMiE,EAASjE,EAAWjD,IAAImD,EAAKjJ,IACnC,MAAO,CAAEc,EAAGkM,EAAOlM,EAAIkM,EAAOlL,EAAI,EAAGd,EAAGgM,EAAOhM,EAAIgM,EAAOjL,EAAI,EAChE,UAKgBkL,EACdC,EACAC,EACAvC,GAGA,MAAMwC,EAAiB,GAAK,IAAO9K,KAAKqK,GAClCU,EAAiB,GAAK,IAAO/K,KAAKqK,GAIlCW,EAAaJ,EAASpM,EAAIoM,EAASpL,EAAI,EACvCyL,EAAaL,EAASlM,EAAIkM,EAASnL,EAAI,EAEvCyL,EAAaL,EAAUrM,EAAIqM,EAAUrL,EAAI,EACzC2L,EAAaN,EAAUnM,EAAImM,EAAUpL,EAAI,EAEzC2L,EAASpL,KAAKqL,IAAIL,EAAaE,GAC/BI,EAAStL,KAAKqL,IAAIJ,EAAaE,GAE/BvM,EAAQoB,KAAKoK,MAAMkB,EAAQF,GAEjC,IAAIG,EAAWvL,KAAKuK,KAAKa,EAASA,EAASE,EAASA,GAiBpD,OAbG1M,EAAQkM,IAA+B,SAAbxC,GAAqC,QAAbA,IAClD1J,EAAQoB,KAAKqK,GAAK,EAAIS,IAA+B,MAAbxC,GAAkC,QAAbA,MAG3D1J,EAAQmM,IAA+B,SAAbzC,GAAqC,QAAbA,IAClD1J,EAAQoB,KAAKqK,GAAK,EAAIU,IAA+B,MAAbzC,GAAkC,QAAbA,GAE9DiD,GAxB4B,EA0B5BA,GA3B4B,GA+BzBA,CACT,CAKM,SAAUC,EACdC,EACAC,EACApD,EACAqD,GAIA,GAAIA,EAAgB,CAClB,MAAMX,EAAaS,EAAMjN,EAAI,GAAMiN,EAAMjM,EACnC0L,EAAaQ,EAAMlN,EAAI,GAAMkN,EAAMlM,EACnCyL,EAAaQ,EAAM/M,EAAI,GAAM+M,EAAMhM,EACnC0L,EAAaO,EAAMhN,EAAI,GAAMgN,EAAMjM,EAEzC,OAAQ6I,GACN,IAAK,KACH,OAAO2C,EAAaE,EACtB,IAAK,OACH,OAAOM,EAAM/M,EAAIyM,EACnB,IAAK,QACH,OAAOH,EAAaE,EACtB,IAAK,OACH,OAAOF,EAAaE,EAIxB,OAAO,CACR,CAED,OAAQ5C,GACN,IAAK,KACH,OAAOmD,EAAM/M,EAAIgN,EAAMhN,GAAKkN,GAAyBH,EAAM/M,EAAGgN,EAAMhN,GACtE,IAAK,OACH,OAAO+M,EAAM/M,EAAIgN,EAAMhN,GAAKkN,GAAyBH,EAAM/M,EAAGgN,EAAMhN,GACtE,IAAK,QACH,OAAO+M,EAAMjN,EAAIkN,EAAMlN,GAAKoN,GAAyBH,EAAMjN,EAAGkN,EAAMlN,GACtE,IAAK,OACH,OAAOiN,EAAMjN,EAAIkN,EAAMlN,GAAKoN,GAAyBH,EAAMjN,EAAGkN,EAAMlN,GAIxE,OAAO,CACT,UAKgBqN,EAAcC,EAAiBC,EAAiBzD,GAC9D,OAAQA,GACN,IAAK,KACH,OACE0D,EAAqBF,EAASC,KAC7BA,EAAQrN,GAAKoN,EAAQpN,EAAIoN,EAAQrM,GAChCmM,GAAyBG,EAAQrN,EAAGoN,EAAQpN,EAAIoN,EAAQrM,IAE9D,IAAK,OACH,OACEuM,EAAqBF,EAASC,KAC7BD,EAAQpN,GAAKqN,EAAQrN,EAAIqN,EAAQtM,GAChCmM,GAAyBE,EAAQpN,EAAGqN,EAAQrN,EAAIqN,EAAQtM,IAE9D,IAAK,QACH,OACEwM,EAAuBH,EAASC,KAC/BD,EAAQtN,GAAKuN,EAAQvN,EAAIuN,EAAQvM,GAChCoM,GAAyBE,EAAQtN,EAAGuN,EAAQvN,EAAIuN,EAAQvM,IAE9D,IAAK,OACH,OACEyM,EAAuBH,EAASC,KAC/BA,EAAQvN,GAAKsN,EAAQtN,EAAIsN,EAAQtM,GAChCoM,GAAyBG,EAAQvN,EAAGsN,EAAQtN,EAAIsN,EAAQtM,IAMhE,OAAO,CACT,CAEA,SAASwM,EAAqBE,EAAeC,GAC3C,OACGD,EAAM1N,GAAK2N,EAAM3N,GAAK0N,EAAM1N,GAAK2N,EAAM3N,EAAI2N,EAAM3M,GACjD2M,EAAM3N,GAAK0N,EAAM1N,GAAK2N,EAAM3N,GAAK0N,EAAM1N,EAAI0N,EAAM1M,CAEtD,CAEA,SAASyM,EAAuBC,EAAeC,GAC7C,OACGD,EAAMxN,GAAKyN,EAAMzN,GAAKwN,EAAMxN,GAAKyN,EAAMzN,EAAIyN,EAAM1M,GACjD0M,EAAMzN,GAAKwN,EAAMxN,GAAKyN,EAAMzN,GAAKwN,EAAMxN,EAAIwN,EAAMzM,CAEtD,CAEA,SAASmM,GAAyBQ,EAAWC,GAC3C,OAAOrM,KAAKqL,IAAIe,EAAIC,IAAM,IAC5B,CAEA,SAASC,GAA+BC,EAAYC,GAClD,IAAIC,EAAMzM,KAAKqL,IAAIkB,EAAKC,IAAO,KAI/B,OAHKC,IACHA,EAAMzM,KAAKqL,IAAc,EAAVrL,KAAKqK,GAASrK,KAAKqC,IAAIkK,EAAIC,GAAMxM,KAAK0C,IAAI6J,EAAIC,KAAQ,MAEhEC,CACT,CC/VM,SAAUC,GAKdpG,EAAaiB,EAAalE,EAAkBD,GAC5C,MAAMuJ,EAA2B3H,EAAAA,SAC3B4H,EDqCQ,SACdtG,EACAjD,GAEA,MAAMoD,EAA8B,IAAIrJ,IACxC,IAAK,IAAIG,EAAI,EAAGA,EAAI+I,EAAM9I,OAAQD,IAChCkJ,EAAWhJ,IAAI6I,EAAM/I,GAAGG,GAAI2F,EAAO9F,IAErC,OAAOkJ,CACT,CC9CyBoG,CAA4BvG,EAAOjD,GAqJ1D,MAAO,CACLpC,OAASsI,IACP,IAAI5C,EAAMlD,EACV,IAAK,IAAIlG,EAAI,EAAGA,EAAI+I,EAAM9I,OAAQD,IAAK,CAGrC,GAFAoJ,EAAOL,EAAM/I,GACbkG,EAAO8D,EAAMhK,GACTgM,EAAS7L,KAAOiJ,EAAKjJ,GACvB,OAAO,EAET,GAAI6L,EAAS7L,KAAO+F,EAAK/F,GACvB,OAAO,CAEV,CACD,OAAO,CAAK,EAEdoP,qBAlKF,SACExE,EACAqD,EACAlK,EACAsL,GAEA,IAAKA,EAAe,OAAOtL,EAE3B,IAAKA,EAAS,OAAOsL,EAAc,GACnC,MAAMC,EAASJ,EAAepJ,IAAI/B,EAAQ/D,IAC1C,IAAKsP,EAAQ,OAAOD,EAAc,GAElC,IAUIE,EAAQC,EAAW3B,EAVnB4B,EAAa1L,EACb2L,EAAeC,OAAOC,UAItBC,GAAgB,EAGhBC,GAAkB,EAGtB,IAAK,IAAIjQ,EAAI,EAAGA,EAAIwP,EAAcvP,OAAQD,IAAK,CAG7C,GAFA0P,EAASF,EAAcxP,GAEnB0P,IAAWxL,EAAS,CACtB+L,GAAkB,EAClB,QACD,CACD,MAAM/B,EAAQmB,EAAepJ,IAAIyJ,EAAOvP,IACxC,IAAK+N,EAAO,SAEZ,MAAMgC,EAAY,CAAEjP,EAAGiN,EAAMjN,EAAGE,EAAG+M,EAAM/M,EAAGc,EAAGiM,EAAMjM,EAAGC,EAAGgM,EAAMhM,GAC3DiO,EAAa,CAAElP,EAAGwO,EAAOxO,EAAGE,EAAGsO,EAAOtO,EAAGc,EAAGwN,EAAOxN,EAAGC,EAAGuN,EAAOvN,GACjE+L,EAAmBiC,EAAWC,EAAYpF,EAAWqD,KAE1DuB,EAAYrB,EAAc4B,EAAWC,EAAYpF,GAE7CiF,IAAkBL,IAEtB3B,EAAWZ,EAA0B8C,EAAWC,EAAYpF,IAE5C,GAAZiD,GAAkBiC,MAIlBD,GAAiBL,GAClB3B,EAAW6B,IAAkBG,GAAiBL,IAAeK,MAE9DH,EAAe7B,EACf4B,EAAaF,EACbM,EAAgBL,IAEnB,CACD,OAAOC,CACR,EA2GCQ,qBArGF,SACErF,EACAsF,EACAC,EACAnE,GAEA,IAAKA,EAAa,OAAOmE,EAEzB,IAAKA,EAAa,OAAOnE,EAAY,GACrC,MAAMoE,EAAoBnB,EAAyBlL,QAE7CkF,EAAO2C,EAAsB,CAAE5L,GADtBoQ,GAAwCD,EAAYlK,UAClB1C,QAAQ,GAAQ2M,GAEjE,IAAKjH,EAAM,OAAOkH,EAClB,MAEME,ED7BJ,SAKJpH,EAAU+C,EAAmBpD,EAAaG,GAC1C,IAAI7H,EAAO2M,EAAUjD,EACrB,MAAM0F,EAAmC,GACzC,IAAK,IAAIzQ,EAAI,EAAGA,EAAImM,EAAYlM,OAAQD,IAAK,CAC3C,MAAMkG,EAAOiG,EAAYnM,GACzBqB,EAAQkL,EAAmBnD,EAAMlD,EAAM6C,EAAOG,GAC9C8E,EAAWjB,EAAkB7G,EAAM6C,EAAOG,GAC1C6B,EAAYmC,EAAkB9D,EAAMlD,GACpCuK,EAAWjQ,KAAK,CAAEL,GAAI+F,EAAK/F,GAAIkB,MAAOA,EAAO2M,SAAUA,EAAUjD,UAAWA,GAC7E,CACD,OAAO0F,CACT,CCauCC,CACjCtH,EAFF+C,EADiBF,EAA2B7C,EAAKjJ,GAAIgM,GAKnDkE,EACAhB,GAEFmB,EAA2BG,MDZtB,CAACC,EAA2BC,KACjC,MAAQxP,MAAOyP,EAAY9C,SAAU+C,EAAehG,UAAWiG,GAAmBJ,GAC1EvP,MAAO4P,EAAYjD,SAAUkD,EAAenG,UAAWoG,GAAmBN,EAClF,IAAI3B,GAAO,EAeX,OAbKH,GAA+B+B,EAAYG,IAAeH,EAAaG,EAC1E/B,EAAM,EACGH,GAA+B+B,EAAYG,KAEhDF,EAAgBG,GAETA,GAAiBH,GAAiBC,EAAiBG,EAD5DjC,EAAM,EAIGgC,GAAiBH,GAAiBC,GAAkBG,IAC7DjC,EAAM,IAGHA,CAAG,ICJV,MAAMkC,EAAwB,QAAbrG,EACjB,IAAIsG,EAAQ,EACZ,IAAK,IAAIrR,EAAI,EAAGA,EAAIwQ,EAA2BvQ,OAAQD,IAAK,CAE1D,GADawQ,EAA2BxQ,GAC/BG,KAAOmQ,EAAYnQ,GAAI,CAChBkR,EAAVD,EAAkBpR,GAAKwQ,EAA2BvQ,OAAS,EAAI,EAAID,EAAI,EACzD,GAALA,EAASwQ,EAA2BvQ,OAAS,EAAID,EAAI,EAClE,KACD,CACF,CACD,OAAOwQ,EAA2Ba,EACnC,EAmECC,uBA9DF,SAAgCnF,EAAmBoF,EAAsBnI,GACvE,IAAKA,EAAM,OACX,MAAMoI,EAAWvF,EAA2B7C,EAAKjJ,GAAIgM,GACrD,GAAIqF,EAASvR,OAAS,EAAG,OACzB,IAAIiG,EAAOsL,EAAS,GACpB,MAAMrE,EAASkC,EAAepJ,IAAImD,EAAKjJ,IACvC,IAAIuP,EAAQlD,EAAUiF,EAAYC,EAClC,MAAMC,EAAcxE,EAAOlM,EAAIkM,EAAOlL,EAAI,EAC1CmN,EAAyBlL,QAAUkF,EAAKjJ,GACxC,IAAK,IAAIH,EAAI,EAAGA,EAAIwR,EAASvR,OAAQD,IAKnC,GAJA0P,EAAS8B,EAASxR,GAClBwM,EAAWkD,EAAOtJ,YAAcgD,EAAKjJ,GAAKuP,EAAOpJ,QAAUoJ,EAAOtJ,UAClEqL,EAAapC,EAAepJ,IAAIuG,GAChCkF,EAAoBD,EAAYxQ,EAAIwQ,EAAYxP,EAAI,EAGjDsP,EAAMK,QAAyB,UAAfL,EAAMM,MAAoBH,GAAqBC,GAC/DJ,EAAMK,QAAyB,WAAfL,EAAMM,MAAqBH,GAAqBC,EACjE,CACAzL,EAAOwJ,EACP,KACD,CAEH,MAAO,CAAEvP,GAAI+F,EAAK/F,GAAIuD,QAAQ,EAC/B,EAuCCoO,uBAlCF,SAAgCC,EAAYR,GAC1C,MAAMS,EAAMT,EAAMS,IACZC,EAAWpM,EAAgBI,IAAI8L,GAC/BG,EAAc7C,EAAepJ,IAAIgM,EAAS7L,WAC1C+L,EAAY9C,EAAepJ,IAAIgM,EAAS3L,SAC9C,IAAK4L,IAAgBC,EAAW,OAChC,MAAMC,EAAmBF,EAAYjR,EAAIiR,EAAYjQ,EAAI,EACnDoQ,EAAiBF,EAAUlR,EAAIkR,EAAUlQ,EAAI,EAMnD,MAAO,CAAE9B,GAJNkS,EAAiBD,GAA4B,eAARJ,GACrCK,EAAiBD,GAA4B,cAARJ,EAClCC,EAAS3L,QACT2L,EAAS7L,UACO1C,QAAQ,EAC/B,EAsBH,CCrLA,MAAM4O,GAAiB,GACjBC,GAAkB,IAER,SAAAC,GAMdC,EACAC,EACA3J,EACAiB,EACAd,EACArD,EACA8M,EACAC,EACA1R,EACAE,EACA6D,EACA4N,EACAC,EACAC,EAKAC,GAEA,MAAMzD,qBACJA,EAAoBa,qBACpBA,EAAoBkB,uBACpBA,EAAsBQ,uBACtBA,GACE3C,GAAqCpG,EAAOiB,EAAOd,EAAYrD,IAC5DoN,EAAiBC,GAAsBC,WAA2B,CACvEhT,GAAIuS,EAASvS,GACbuD,QAAQ,KAEH0P,EAAiBC,GAAsBF,EAAQA,WAChDtM,EAAWY,EAAAA,SA2IX6L,EAAgBC,EAAAA,aA5BLhC,IACf,MAAMvF,EAAWrI,EAAyB4N,EAAMiC,QAC5CxH,IAAazI,EAAYyI,EAAUoH,KACrCC,EAAmB,IAAKrH,EAAUyH,WAAW,IAC7C5M,EAAS3C,QAAUwP,EAAAA,cACnBR,EAAmB,IAAKD,EAAiBQ,WAAW,IAChDzH,EAAStI,OACXmP,IAAc,CACZ1S,GAAI6L,EAAS7L,GACbwT,KAAM,OACN1M,KAAM0L,EAAgB1M,IAAI+F,EAAS7L,MAGrC0S,IAAc,CACZ1S,GAAI6L,EAAS7L,GACbwT,KAAM,OACN1M,KAAMpB,EAAgBI,IAAI+F,EAAS7L,MAGxC,QASwCsE,GANtB,KACnB4O,OAAmB5O,GACnBoC,EAAS3C,aAAUO,EACnBoO,IAAc,CAAE1S,QAAIsE,EAAWwC,UAAMxC,GAAY,GAGiBgO,GAUpE,SAASmB,EAAsB5H,GACzBA,EAAStI,OACXoP,IAAc,CACZ3S,GAAI6L,EAAS7L,GACbwT,KAAM,OACN1M,KAAM0L,EAAgB1M,IAAI+F,EAAS7L,MAGrC2S,IAAc,CACZ3S,GAAI6L,EAAS7L,GACbwT,KAAM,OACN1M,KAAMpB,EAAgBI,IAAI+F,EAAS7L,MAGvC0G,EAAS3C,QAAUwP,EAAAA,cACnBR,EAAmBlH,EACpB,CAED,SAAS6H,EAAoB5I,GACtBA,IACA1H,EAAY0H,EAAMgI,KACrBhI,EAAKwI,WAAY,EACjBxI,EAAK6I,gBAAiB,EAClBV,GACFC,EAAmB,IAAKD,EAAiBK,WAAW,IAEtDG,EAAsB3I,IAEzB,CA8DD,MAAO,CACLgI,kBACAG,kBACAvM,SAAUA,EAAS3C,QACnB6P,YAAaC,EAAUA,WAACV,EAAe,CACrCW,QA3JkB1C,IAEpB,GACO,QAFKA,EAAMM,KAGd+B,EAAsB,IACjBX,EACHQ,WAAW,EACXK,gBAAgB,GAIrB,EAiJCI,UA9OoB3C,IACtB,MAAMS,EAAMT,EAAMS,IAClB,IAAImC,GAAgB,EAEpB,GAAY,QAARnC,EAAJ,CAIA,GAgLF,SAA0BT,GACxB,MAAMS,EAAMT,EAAMM,KAGlB,GAAIoB,EAAgBvP,QAAU6N,EAAMK,SAAmB,WAARI,GAA4B,UAARA,GACjE,OAAO,EAEF,IAAKiB,EAAgBvP,SAAmB,cAARsO,GAA+B,eAARA,GAC5D,OAAO,EAET,OAAO,CACR,CA3LKoC,CAAiB7C,GAAQ,CAI3BsC,EAHqBZ,EAAgBvP,OACjC4N,EAAuBtH,EAAOuH,EAAOxF,EAAsBkH,EAAiBlK,IAC5E+I,EAAuBmB,EAAgB9S,GAAUoR,IAErD4C,GAAgB,CACjB,MAAM,GA8JT,SAA2BnC,GACzB,OAAQA,GACN,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,YACH,OAAO,EAGX,OAAO,CACR,CAxKYqC,CAAkBrC,GAAM,CACjC,MAAMsC,EAsLV,SAAuCtC,GACrC,IAAIjH,EAA0B,OAC9B,OAAQiH,GACN,IAAK,YACHjH,EAAY,OACZ,MAEF,IAAK,UACHA,EAAY,KACZ,MAEF,IAAK,aACHA,EAAY,QACZ,MAEF,IAAK,YACHA,EAAY,OAIhB,GAAIkI,EAAgBvP,OAAQ,CAC1B,MAAM6Q,EAAahF,EACjBxE,GACA,EACAgB,EAAsBkH,EAAiBlK,GACvCA,GAEF,OAAOwL,EAAa,CAAEpU,GAAIoU,EAAWpU,GAAIuD,QAAQ,GAASuP,CAC3D,CAAM,CACL,MAAMxC,EFjPI,SACdzE,EACAhC,GAEA,IAAI9D,EACJ,IAAK,IAAIlG,EAAI,EAAGA,EAAIgK,EAAM/J,OAAQD,IAEhC,GADAkG,EAAO8D,EAAMhK,GACTgM,EAAS7L,KAAO+F,EAAK/F,GACvB,OAAO+F,CAIb,CEqOyBsO,CAAsBvB,EAAiBjJ,GACpDuK,EAAanE,EAAqBrF,EAAWhC,EAAO0H,EAAYzG,GACtE,OAAOuK,EAAa,CAAEpU,GAAIoU,EAAWpU,IAAO,CAAEA,GAAI8S,EAAgB9S,GACnE,CACF,CAvNwBsU,CAA8BzC,GACnD6B,EAAoBS,GACpBH,GAAgB,CACjB,MACC,OAAQnC,GACN,IAAK,SACHe,GACEA,EAAc,CACZ2B,KAAM,CACJC,GAAIpD,EAAMqD,UAAYtC,GAAiB,EACvCuC,GAAItD,EAAMqD,SAAW,GAAKtC,MAGhC6B,GAAgB,EAChB,MAEF,IAAK,WACHpB,GACEA,EAAc,CACZ2B,KAAM,CACJC,GAAIpD,EAAMqD,SAAWtC,GAAiB,EACtCuC,GAAItD,EAAMqD,SAAW,EAAItC,MAG/B6B,GAAgB,EAChBA,GAAgB,EAChB,MAEF,IAAK,IACL,IAAK,IACHnB,GAAkBA,EAAe,CAAE8B,MAAOvC,KAC1C4B,GAAgB,EAChB,MAEF,IAAK,IACL,IAAK,IACHnB,GAAkBA,EAAe,CAAE8B,OAAQvC,KAC3C4B,GAAgB,EAChB,MAEF,IAAK,IACH,GAAI5C,EAAMwD,SAAWxD,EAAMK,OAAQ,CACjC,MAAM1O,QAAEA,EAAOC,QAAEA,EAAOC,KAAEA,GAASuC,EACjCsN,EACApN,EACAqD,EACA0J,EACA1R,EACAE,EACA6D,GAEF+N,GAAkBA,EAAe,CAAEgC,MAAO5R,IAC1C2P,GAAiBA,EAAc,CAAEkC,KAAM,CAAEC,GAAIhS,EAASiS,GAAIhS,IAC3D,MAEC6P,GAAkBA,EAAe,CAAA,GACjCD,GAAiBA,EAAc,CAAEqC,QAAQ,IAE3CjB,GAAgB,EAIlBA,GAlFc,CAAC5C,IACnBA,EAAM8D,iBACN9D,EAAM+D,iBAAiB,EAiFrBC,CAAYhE,EAxEb,CAyEA,EAgKCiE,OA/IgB,MACK,MAAnBpC,GAA2BH,EAAgBQ,YAC7CX,IAAc,CAAE3S,QAAIsE,EAAWwC,UAAMxC,IAEvC,MAAMuH,EAAW,IAAKiH,EAAiBQ,WAAW,EAAOK,gBAAgB,GACzEZ,EAAmBlH,EAAS,EA2I1ByJ,YA1GsBlE,IACxB,MAAMvF,EAAWrI,EAAyB4N,EAAMiC,QAC7B,MAAfxH,EAAS7L,KACX+S,EAAmBlH,GACnBnF,EAAS3C,QAAUwP,EAAAA,cACpB,IAwGL,CCnQO,MAAMgC,GAAoB,EAM/BjD,gBACAkD,UACAC,uBACA3C,kBACA4C,WACAzS,OACAlC,QACA4U,WACAC,WACAC,kBAEA,MAAMjL,UAAEA,GAAcC,EAAAA,UAChBiL,EAAsB,QAAdlL,EAERmL,EZ0HF,SAMJJ,EACAC,EACAI,EACAH,EACAL,GAKA,IAAI3J,EACJ,MAAMoK,EAAkBJ,GAAavC,UAOrC,GANI2C,GAAqC,MAAlBJ,EAAY7V,KACjC6L,EAAWgK,GAETG,GAAeA,EAAY1C,YAC7BzH,EAAWmK,GAETnK,GAAY2J,EACd,OAAOA,EACL3J,EAAStI,OACL,CAAEuD,KAAM6O,EAAS7P,IAAI+F,EAAS7L,IAAiBwT,KAAM,QACrD,CAAE1M,KAAM8O,EAAS9P,IAAI+F,EAAS7L,IAAiBwT,KAAM,SAG7D,GAAI3H,EAAU,CACZ,MAAM7B,GACJ6B,EAAStI,OAASoS,EAAS7P,IAAI+F,EAAS7L,IAAY4V,EAAS9P,IAAI+F,EAAS7L,MACzEoE,gBACH,MAAO,CACL8R,QAASlM,EAEZ,CAEH,CYjKmBmM,CAAkBR,EAAUC,EAAU9C,EAAiB+C,EAAaL,GAE/EY,EAAgBX,EAAqB1R,QACvC,CACEjD,EAAG2U,EAAqB1R,QAAQjD,EAAImC,EAAOyS,EAASxS,KACpDlC,EAAGyU,EAAqB1R,QAAQ/C,EAAIiC,EAAOyS,EAASvS,KACpDpC,MAAO0U,EAAqB1R,QAAQjC,EAAImB,EACxChC,OAAQwU,EAAqB1R,QAAQhC,EAAIkB,QAE3CqB,GAEE+R,eAAEA,EAAcC,aAAEA,GAAiBC,aAAW,CAClDL,QAASH,GAAUG,QACnB1L,YAAauL,GAAUvL,YACvBgM,UAAW,YACXC,OAAQC,EAAeA,gBAACZ,EAAO/U,EAAOqV,GACtCO,OAAQ7D,GAAiBQ,UAAY,UAAY,UACjDhB,kBAEF,MAAO,CAAE+D,eAAgBA,EAAgBC,aAAcA,EAAc,EC/DjEM,GAAoB,EACxBC,mBACAC,cAAc,EACdC,uBACAC,uBACAC,sBACAC,0BACAC,cAAa,MAEb,MAAMC,EAAiB9P,SAAuB,IAE1C6P,IACFC,EAAerT,QAAU,IAG3B,MA2BMuR,EAAe+B,IACnB,MAAMnG,EAAQkG,EAAerT,QAAQuT,WAClCC,GAAiBA,EAAaC,YAAcH,EAAEG,aAElC,IAAXtG,IAEJkG,EAAerT,QAAQmN,GAASmG,EAC5BD,EAAerT,QAAQjE,SAAWgX,GACpCG,GAAuBA,EAAoB,CAAEQ,SAAUL,EAAerT,UAExEqT,EAAerT,QAAQ2T,OAAOxG,EAAO,GAAE,EAMzC,OAAOiG,EACH,CAAE,EACF,CACEQ,cA9CiBN,IACrBD,EAAerT,QAAQ1D,KAAKgX,GACxBD,EAAerT,QAAQjE,SAAWgX,EACpCC,GAAwBA,EAAqB,CAAEU,SAAUL,EAAerT,UAC/DqT,EAAerT,QAAQjE,OAASgX,GACzCI,GAA2BA,EAAwB,CAAEO,SAAUL,EAAerT,SAC/E,EAyCG6T,cAtCiBP,IACrB,GAAsC,IAAlCD,EAAerT,QAAQjE,OAAc,OAEzC,MAAMoR,EAAQkG,EAAerT,QAAQuT,WAClCC,GAAiBA,EAAaC,YAAcH,EAAEG,aAElC,IAAXtG,IAEJkG,EAAerT,QAAQmN,GAASmG,EAC5BD,EAAerT,QAAQjE,SAAWgX,IACpCM,EAAerT,QAAQkI,SAASoL,GAC9BR,EAAiB9S,QAAS8T,kBAAkBR,EAAEG,aAGhDR,GAAwBA,EAAqB,CAAES,SAAUL,EAAerT,WACzE,EAwBGuR,cACAwC,gBATkBxC,EAUlByC,eATiBzC,EAUlB,ECnDM0C,GAAM,CACjBC,EACAC,EACAC,EACAlV,EACAlC,EACAE,EACAmX,EACAC,KAEA,IAAKD,EAEH,MAAO,CAAEE,OAAQ,CAAEpV,KAAM,EAAGC,KAAM,IAEpC,MAAMmV,EA5Ba,EACnBL,EACAC,EACAE,EACAD,KAEA,MAAMjV,EAAwB,MAAjBiV,EAAuBD,EAAQhV,KAAO+U,EAAY/U,KACzDC,EAAwB,MAAjBgV,EAAuBD,EAAQ/U,KAAO8U,EAAY9U,KAC/D,MAAO,CACLD,KAAMA,EAAOkV,EAAUzW,KAAOyW,EAAUzW,KAAOuB,EAAOkV,EAAU3W,KAAO2W,EAAU3W,KAAOyB,EACxFC,KAAMA,EAAOiV,EAAUxW,KAAOwW,EAAUxW,KAAOuB,EAAOiV,EAAU1W,KAAO0W,EAAU1W,KAAOyB,EACzF,EAiBcoV,CAAaN,EAAaC,EAASE,EAAWD,GACvDK,EAAeF,EAAOpV,OAAS+U,EAAY/U,MAAQoV,EAAOnV,OAAS8U,EAAY9U,KAC/E8R,Ed0dF,SACJ/R,EACAC,EACAF,EACAlC,EACAE,GAEA,MAAO,CACL8B,SAAUhC,EAAQ,EAAImC,GAAQD,EAC9BD,SAAU/B,EAAS,EAAIkC,GAAQF,EAEnC,CcreiBwV,CAAgBH,EAAOpV,KAAMoV,EAAOnV,KAAMF,EAAMlC,EAAOE,GAOtE,OANAuX,GACEH,GACAA,EAAY,CACVtV,QAASkS,EAAOlS,QAChBC,QAASiS,EAAOjS,UAEb,CAAEsV,SAAQ,EC7BbI,GAAa,EACjBC,WACA9B,mBACAuB,YACArX,QACAE,SACAgC,OACA2V,iBACAC,mBAEA,MAAMC,EAAexR,EAAAA,OAAO,CAAEpE,KAAM,EAAGC,KAAM,IACvC4V,EAAkBzR,EAAAA,OAAO,CAAEpE,KAAM,EAAGC,KAAM,IAC1C6V,ECUQ,GACdnC,mBACAoC,kBACAC,cACAC,aACAC,YACAjC,cAAa,MAEb,MAAMkC,EAAgB,CAAEC,YAAY,EAAOC,IAAK,EAAGC,IAAK,EAAGC,eAAgB,EAAGC,eAAgB,GACxFC,EAAYrS,SAAO+R,GAEnBO,EAAqB,CAACvC,EAAiBwC,KAC3C,MAAMP,WAAEA,EAAUC,GAAEA,EAAEC,GAAEA,EAAEC,cAAEA,EAAaC,cAAEA,GAAkBC,EAAU5V,QACvE,IAAKuV,EAAY,OACjB,MAAMxY,EAAIuW,EAAEyC,MACN9Y,EAAIqW,EAAE0C,MACZF,GAAMA,EAAG,CAAE/Y,IAAGE,IAAGwT,GAAI1T,EAAIyY,EAAI7E,GAAI1T,EAAIwY,EAAIC,gBAAeC,gBAAeM,cAAe3C,GAAI,EAGtF2B,EAAYpC,GAAkB,CAClCC,mBACAC,YAAa,EACbI,wBAAyB,KACvByC,EAAU5V,QAAUsV,CAAa,EAEnCtC,qBAAsB,EAAGU,UAAWJ,OAClC,MAAMvW,EAAIuW,EAAEyC,MACN9Y,EAAIqW,EAAE0C,MACZ,GAAiB,IAAb1C,EAAE4C,SA1Cc,EAACnZ,EAAWE,EAAWkZ,KAC/C,IAAKA,EAAQ,OAAO,EACpB,MAAMC,KAAEA,EAAIC,KAAEA,EAAIC,KAAEA,EAAIC,KAAEA,GAASJ,EACnC,OAAOpZ,GAAKqZ,GAAQrZ,GAAKsZ,GAAQpZ,GAAKqZ,GAAQrZ,GAAKsZ,CAAI,EAuC5BC,CAAkBzZ,EAAGE,EAAGiY,GAAkB,OACjE,MAAMQ,cAAEA,EAAaC,cAAEA,GAlCL,EAAC5Y,EAAWE,EAAWkZ,IACxCA,EACE,CAAET,cAAe3Y,EAAIoZ,EAAOC,KAAMT,cAAe1Y,EAAIkZ,EAAOG,MAD/C,CAAEZ,cAAe3Y,EAAG4Y,cAAe1Y,GAiCVwZ,CAAgB1Z,EAAGE,EAAGiY,GAC/DU,EAAU5V,QAAU,CAAEuV,YAAY,EAAMC,GAAIzY,EAAG0Y,GAAIxY,EAAGyY,gBAAeC,iBACrER,GAAeA,EAAY,CAAEpY,IAAGE,IAAGyY,gBAAeC,gBAAeM,cAAe3C,GAAI,EAEtFL,qBAAsB,EAAGS,UAAWJ,OAClCuC,EAAmBvC,EAAG8B,EAAW,EAEnClC,oBAAqB,EAAGQ,UAAWJ,OACjCuC,EAAmBvC,EAAG+B,GACtBO,EAAU5V,QAAUsV,CAAa,IAIrC,OAAOlC,EAAa,CAAE,EAAG6B,CAAS,EDpDhByB,CAAQ,CACxB5D,mBACAqC,YAAa,KACX,MAAM1N,EAAY1I,EAAgB6V,EAAS5V,QAAS4V,EAAS3V,QAASC,EAAMlC,EAAOE,GACnF8X,EAAgBhV,QAAU,CACxBb,KAAMsI,EAAUtI,KAChBC,KAAMqI,EAAUrI,MAElByV,GAAkBA,GAAgB,EAEpCO,WAAY,EAAG3E,KAAIE,SACjB,MAAMwD,EAAU,CACdhV,KAAM6V,EAAgBhV,QAAQb,KAAOsR,EACrCrR,KAAM4V,EAAgBhV,QAAQZ,KAAOuR,IAEjC4D,OAAEA,GAAWN,GACjBc,EAAa/U,QACbmU,EACAS,EAASR,aACTlV,EACAlC,EACAE,EACAmX,EACAO,EAAS+B,OAEX5B,EAAa/U,QAAUuU,CAAM,EAE/Bc,UAAW,EAAGY,oBAGVjB,EAAgBhV,QAAQb,OAAS4V,EAAa/U,QAAQb,MACtD6V,EAAgBhV,QAAQZ,OAAS2V,EAAa/U,QAAQZ,MAEtD6W,EAAc9E,iBAChB2D,GAAgBA,GAAc,EAEhC1B,WAAiC,QAArBwB,EAASgC,UAGvB,OAAO3B,CAAS,EE1EL/V,GAAO,CAClB2X,EACA3X,EACA4B,EACAC,EACA+V,KAEA,MAAM9V,EAAU6V,EAAW9V,GAAW8V,EAAW/V,EAAU5B,EAAO2X,EAC5C7V,IAAY9B,GAEhC4X,GACAA,EAAa,CACXC,UAAW/V,GACX,ECTAgW,GAAc,CAACxO,EAAWE,IAAcnK,KAAKuK,MAAMJ,EAAG3L,EAAIyL,EAAGzL,IAAM,GAAK2L,EAAGzL,EAAIyL,EAAGzL,IAAM,GCMxFga,GAAe,EACnBnE,mBACAoE,UACApW,UACAC,UACAgW,YACAI,aAEA,MAAMC,EDCS,GACftE,mBACAuE,mBACAC,oBACAC,iBACAnE,cAAa,MAEb,MAAMoE,EAASjU,EAAMA,OAAC,CAAExG,GAAI,EAAGE,GAAI,IAC7Bwa,EAAelU,EAAAA,QAAQ,GACvBmU,EAAQ,KACZF,EAAOxX,QAAU,CAAEjD,GAAI,EAAGE,GAAI,GAC9Bwa,EAAazX,SAAW,CAAC,EAGvBoT,GAAYsE,IAEhB,MAAMN,EAAavE,GAAkB,CACnCC,mBACAC,YAAa,EACbC,qBAAsB,EAAGU,UAAWiE,EAAUC,OAC5C,MAAMpP,EAAK,CAAEzL,EAAG4a,EAASE,QAAS5a,EAAG0a,EAASG,SACxCpP,EAAK,CAAE3L,EAAG6a,EAASC,QAAS5a,EAAG2a,EAASE,SAC9CN,EAAOxX,QAtCO,EAACwI,EAAWE,KAAS,CAAQ3L,GAAIyL,EAAGzL,EAAI2L,EAAG3L,GAAK,EAAGE,GAAIuL,EAAGvL,EAAIyL,EAAGzL,GAAK,IAsCnE8a,CAAYvP,EAAIE,GACjC+O,EAAazX,QAAUgX,GAAYxO,EAAIE,GACvC2O,GACEA,EAAiB,CACfG,OAAQA,EAAOxX,QACfgY,MAAO,GACP,EAEN/E,qBAAsB,EAAGS,UAAWiE,EAAUC,OAC5C,MAAMpP,EAAK,CAAEzL,EAAG4a,EAASE,QAAS5a,EAAG0a,EAASG,SACxCpP,EAAK,CAAE3L,EAAG6a,EAASC,QAAS5a,EAAG2a,EAASE,SACxChO,EAAWkN,GAAYxO,EAAIE,GAC3BsP,EAAQlO,EAAW2N,EAAazX,QACtCyX,EAAazX,QAAU8J,EACvBwN,GACEA,EAAkB,CAChBE,OAAQA,EAAOxX,QACfgY,SACA,EAEN9E,oBAAqB,KACnBwE,IACAH,GAAkBA,GAAgB,IAItC,OAAOnE,EAAa,CAAE,EAAGgE,CAAU,ECjDhBa,CAAS,CAC1BnF,mBACAwE,kBAAmB,EAAGU,YAEpB9Y,GADgB6X,GAAa,EFvBL,IEuB0BiB,GACpCjB,EAAWjW,EAASC,EAASoW,EAAO,EAEpD/D,WAAwB,QAAZ8D,IAGd,OAAOE,CAAU,ECTNc,GAAa,EACxBC,QACArF,mBACA9V,QACAE,SACAuD,gBACAsR,YAEA,MAAOqG,EAAQC,GAAapJ,EAAQA,WAC9BqJ,EpBYF,SAAuBH,EAAanb,EAAeE,EAAgBuD,GACvE,MAAMK,EAAUqX,EAAMrX,QAAUqX,EAAMrX,QAAUN,EAAiBxD,EAAOE,EAAQuD,GAC1EM,OAA4BR,IAAlB4X,EAAMpX,QAAwBoX,EAAMpX,QAAU,EACxD7B,EAAOiZ,EAAMpB,UAAYoB,EAAMpB,UAAYvW,EAAiBxD,EAAOE,EAAQuD,GACjF,MAAO,CACLyW,QAASiB,EAAMjB,QAAUiB,EAAMjB,QAAU,MAEzCpW,QAASA,EACTC,QAASA,EAETgW,UAAWlW,EAAc3B,EAAM4B,EAASC,GACxCoW,OAAQgB,EAAMhB,OAElB,CoBzBoBoB,CAAaJ,EAAOnb,EAAOE,EAAQuD,GAC/C4T,EAAY9Q,EAAAA,SACZiV,EAAWjV,EAAAA,SACXqT,EAAUrT,EAAAA,SACVkV,EAAmBlV,EAAAA,OAAO,CAC9BrE,KAAMiZ,EAAMpB,WAAa,EACzB/X,QAASmZ,EAAMnZ,QACfC,QAASkZ,EAAMlZ,UAGXyZ,EAAgBC,EAAAA,UAChBC,EAAW,CACf5b,MAAOA,EACPE,OAAQA,EACRH,EAAG,EACHE,EAAG,GAGC4b,EAAgBH,EAAgBP,EAAMvB,SAA6B,QAAlBuB,EAAMvB,aAAoBrW,EAC3EuY,EAAkB,CACtBC,cAAc,EACdC,cAAeJ,EACfK,eAAgBjc,EAChB+U,QACA8G,cAAeA,IAAiB,EAChCK,gBAAgB,EAChBC,kBAAkB,EAClB/F,YAAasF,IAGTU,oBAAEA,EAAmBC,aAAEA,GAAiBC,EAAsBA,uBAACR,GAC/DlE,EpB3CF,SACJuD,EACA1X,EACA4Y,EACAX,GAEA,MAAO,CACL9B,QAAS8B,EACY,QAAjBW,GAA0BlB,EAAMvB,QAC9BuB,EAAMvB,QACN,MACFuB,EAAMvB,QACNuB,EAAMvB,QACN,MACJxC,aAAc+D,EAAM/D,aAAe+D,EAAM/D,aAAe,MACxDpV,aAA2BuB,IAAlB4X,EAAMnZ,QAAwBmZ,EAAMnZ,QAAUyB,EAAc1C,EAAI,EAAI0C,EAAc1D,EAC3FkC,aAA2BsB,IAAlB4X,EAAMlZ,QAAwBkZ,EAAMlZ,QAAUwB,EAAczC,EAAI,EAAIyC,EAAcxD,EAC3F0Z,MAAOwB,EAAMxB,MAEjB,CoBwBmB4C,CAAYpB,EAAO1X,EAAe4Y,EAAcX,GAE/DjY,EAAc1C,IAAMwJ,KACnB+Q,EAAUvB,YAAcyB,EAASxY,SAAW4U,EAASgC,UAAYA,EAAQ5W,UAE1EqU,EAAUrU,QNRc,EAC1BhD,EACAE,EACAsc,EACAta,EACA4B,EACA2X,EAKAgB,KAEA,MAAM1c,EAAEA,EAACE,EAAEA,EAACc,EAAEA,EAACC,EAAEA,GAAMwb,EACvB,IAAI9b,EAAME,EAAMD,EAAME,EACtB,GAAgB,kBAAZ4b,EACF/b,EAAOV,EAAQ,GAAKe,EAAIhB,GAAKmC,EAC7BvB,EAAOT,EAAS,GAAKc,EAAIf,GAAKiC,EAC9BtB,EAAOZ,EAAQ,EAAID,EAAImC,EACvBrB,EAAOX,EAAS,EAAID,EAAIiC,MACnB,CAEL,MAAMwa,EAAYxa,EAAO4B,EAEnB6Y,GAAY3c,EAAQe,EAAI+C,GAAW,EAAI/D,EAAI+D,EAC3C8Y,GAAY1c,EAASc,EAAI8C,GAAW,EAAI7D,EAAI6D,EAMlDpD,EAHoBV,EAAQA,EAAQ0c,EAGfC,EAAWD,EAChC/b,EAHoBT,EAASA,EAASwc,EAGjBE,EAAWF,EAChC9b,EAAO+b,EAAWD,EAClB7b,EAAO+b,EAAWF,CACnB,CACD,MAAMG,EAAWpB,EAAiBvZ,KAC5B4a,EAAcrB,EAAiBzZ,QAC/B+a,EAActB,EAAiBxZ,QAErC,IAAIwR,EAAIE,EACR,GAAImJ,EAAa,CACf,MAAME,EAAUF,EAAcD,EAAW7c,EAAQ,GAC5Cgd,EAAUH,EAAWnc,GACxB+S,EAAK/S,EAAOsc,EAAUH,EACtBnc,GAAQ+S,EACR7S,GAAQ6S,IACEuJ,EAAUH,EAAWjc,IAC/B6S,GAAMuJ,EAAUH,EAAWjc,EAC3BF,GAAQ+S,EACR7S,GAAQ6S,EAEX,CACD,GAAIsJ,EAAa,CACf,MAAME,EAAUF,EAAcF,EAAW3c,EAAS,GAC7C+c,EAAUJ,EAAWlc,GACxBgT,EAAKhT,EAAOsc,EAAUJ,EACtBlc,GAAQgT,EACR9S,GAAQ8S,IACEsJ,EAAUJ,EAAWhc,IAC/B8S,GAAMsJ,EAAUJ,EAAWhc,EAC3BF,GAAQgT,EACR9S,GAAQ8S,EAEX,CACD,MAAO,CACLjT,KAAMA,EACNE,KAAMA,EACND,KAAMA,EACNE,KAAMA,EACP,EM9DqBqc,CAClBld,EACAE,EACAuD,EACA6X,EAAUvB,UACVuB,EAAUxX,QACV2X,EAAiBzY,QACjB4U,EAASgC,SAEX4B,EAASxY,QAAUsY,EAAUvB,UAC7BH,EAAQ5W,QAAU4U,EAASgC,SAE7B,MAAMuD,EAAexF,GAAW,CAC9BC,SAAUA,EACV9B,iBAAkBA,EAClBuB,UAAWA,EAAUrU,QACrBd,KAAMoZ,EAAUvB,UAChB/Z,QACAE,SACA2X,eAAgB,IAAMwD,EAAU,YAChCvD,aAAc,IAAMuD,EAAU,UAe1BtD,EAAexR,EAAAA,OAAO,CAAEpE,KAAM,EAAGC,KAAM,IAiCvCgb,EC3Ha,GAAGlD,UAASpW,UAASC,UAASgW,YAAWI,YCqB7C,GACfkD,QAASC,EACTnJ,kBAAiB,EACjBiC,cAAa,KAaNA,EAAa,CAAA,EAAK,CAAEiH,QAXV/G,IACf,MAAMiH,OAAEA,EAAMC,OAAEA,GArBO,CAAClH,IAC1B,MAAMiH,OAAEA,EAAMC,OAAEA,EAAMC,UAAEA,GAAcnH,EAEtC,OAAQmH,GACN,KAAKnH,EAAEoH,gBACL,MAAO,CAAEH,QAASA,EAAQC,QAASA,GACrC,KAAKlH,EAAEqH,eACL,MAAO,CAAEJ,OAVY,IAUHA,EAA6BC,OAV1B,IAUmCA,GAC1D,KAAKlH,EAAEsH,eACL,MAAO,CAAEL,OAXY,IAWHA,EAA6BC,OAX1B,IAWmCA,GAC1D,QACE,MAAO,CAAED,QAASA,EAAQC,QAASA,GACtC,EAS4BK,CAAmBvH,GAC1CnC,GAAgBmC,EAAEnC,iBACtBmJ,EAAgB,CACdvd,EAAGuW,EAAEuE,QACL5a,EAAGqW,EAAEwE,QACLyC,SACAC,SACA3J,QAASyC,EAAEzC,SAAWyC,EAAEwH,SACxB,GDlCeC,CAAS,CAC1BV,QAAS,EAAGG,aAEVtb,GADgB6X,GAAa,EJbL,IIa0ByD,GACpCzD,EAAWjW,EAASC,EAASoW,EAAO,EAEpD/D,WAAwB,QAAZ8D,IDqHS8D,CAAa1C,GAC9B2C,EAAiBhE,GAAa,CAClCnE,mBACAoE,QAASoB,EAAUpB,QACnBpW,QAASwX,EAAUxX,QACnBC,QAASuX,EAAUvX,QACnBgW,UAAWuB,EAAUvB,UACrBI,OAAQmB,EAAUnB,SAIpB,MAAO,CACL+D,aAHmBpL,EAAUA,WAACqK,EAAcC,EAAgBa,GAI5DrG,WACA0D,YACAc,sBACAhB,SACApZ,QAAS4V,EAAS5V,QAClBC,QAAS2V,EAAS3V,QAClB8X,UAAWuB,EAAUvB,UACrBlI,cAAoC,QAArB+F,EAASgC,QAlDHuB,IAKrB,IAAInZ,EACAC,EACAkZ,EAAMjH,QACRlS,EAAUyB,EAAc1D,EAAI0D,EAAc1C,EAAI,EAC9CkB,EAAUwB,EAAcxD,EAAIwD,EAAczC,EAAI,GACrCma,EAAM3H,MACfxR,EAAU4V,EAAS5V,QAAUmZ,EAAM3H,KAAKC,GACxCxR,EAAU2V,EAAS3V,QAAUkZ,EAAM3H,KAAKG,KAExC3R,EAAUmZ,EAAMpH,KAAMC,GACtB/R,EAAUkZ,EAAMpH,KAAME,IAExB,MAAMxJ,EAAY1I,EAAgBC,EAASC,EAASqZ,EAAUvB,UAAW/Z,EAAOE,IAC1EqX,OAAEA,GAAWN,GACjBc,EAAa/U,QACbyH,EACAmN,EAASR,aACTkE,EAAUvB,UACV/Z,EACAE,EACAmX,EAAUrU,QACV4U,EAAS+B,OAEX5B,EAAa/U,QAAUuU,CAAM,OAsB+BhU,EAC5DuO,eAAsC,QAAtBwJ,EAAUpB,QAlEJiB,IACtB,MAAMnX,EAAUmX,EAAMvH,MAClB0H,EAAUvB,UAAYoB,EAAMvH,MAC5BpQ,EAAiBxD,EAAOE,EAAQuD,GACpCvB,GACEiZ,EAAMrH,MAAQqH,EAAMrH,MAAQ9P,EAC5BsX,EAAUvB,UACVuB,EAAUxX,QACVwX,EAAUvX,QACVuX,EAAUnB,OACX,OAwD8D5W,EAChE,EG9GG,SAAU4a,IAMdtW,MACAA,EAAQ,GAAEiB,MACVA,EAAQ,GAAE9I,MACVA,EAAKE,OACLA,EAAMke,YACNA,EAAc,CAAE,EAAAC,cAChBA,EAAgB,OAAMC,OACtBA,EAAM1Y,aACNA,EAAY8C,aACZA,EAAY6V,kBACZA,EAAiB5M,YACjBA,EAAWC,YACXA,EAAWpJ,eACXA,EAAiB,GAAEiM,QACnBA,KACG+J,IAEH,MAAM9J,EAAuBnO,SAAsB,MAC7CkY,EAAUlY,SAAuB,OAEhC3B,EAAQ8Z,GAAazM,EAAQA,SAAW,KACxC0M,EAAqBC,GAA0B3M,EAAQA,YACxDpI,UAAEA,GAAcC,EAAAA,UAChBiL,EAAsB,QAAdlL,EAERgV,EAAehX,EACfiX,EAAUtgB,EAA8BqgB,GACxCpN,EAAkBqN,EAAQpgB,gBAC1BqgB,EvB2KQ,SACdjW,EACA8L,GAEA,MAAMoK,EAAiB,GACvB,IAAK,IAAIlgB,EAAI,EAAGA,EAAIgK,EAAM/J,OAAQD,IAAK,CACrC,MAAMkG,EAAO8D,EAAMhK,GACf8V,EAAS7P,IAAIC,EAAKE,YAAc0P,EAAS7P,IAAIC,EAAKI,UACpD4Z,EAAS1f,KAAK0F,EAEjB,CACD,OAAOga,CACT,CuBvLuBC,CAA0BnW,EAAO2I,GAChDyN,EAAU1gB,EAA8BugB,GACxCpa,EAAkBua,EAAQxgB,gBAC1BygB,EAAmB5Y,UAAgB,GACnC6Y,EvBwLF,SAAkCxa,GACtC,MAAMnF,EAAqB,GAC3B,IAAK,IAAIX,EAAI,EAAGA,EAAI8F,EAAO7F,OAAQD,IACjCW,EAAKH,KAAK,CAAEyB,EAAG6D,EAAO9F,GAAGiC,EAAGC,EAAG4D,EAAO9F,GAAGkC,IAE3C,OAAOvB,CACT,CuB9LwB4f,CAAwBza,IACxC0a,mBAAEA,EAAkBC,kBAAEA,GAAsBC,EAAiBA,oBAC7D5V,EAAkBrD,EAAAA,OAAqC,IAAI5H,KAC3D8gB,EAAkBlZ,SAAyD,IAC3EmZ,EAAkBnZ,SAAyD,IAC3EoZ,EAAkBpZ,EAAAA,SAElB9C,GvByPQ,SAAiBuE,EAAsB4X,GACrD,GAA0B,IAAtB5X,EAAWjJ,OAAc,MAAO,CAAEgB,EAAG,EAAGgB,EAAGwJ,IAAUtK,EAAG,EAAGe,EAAGuJ,KAClE,IAII9K,EAJAiB,EAAO6J,IACP5J,EAAO4J,IACP3J,GAAO,IACPC,GAAO,IAEX,IAAK,IAAI/B,EAAI,EAAGA,EAAIkJ,EAAWjJ,OAAQD,IACrCW,EAAOuI,EAAWlJ,GAClB4B,EAAOjB,EAAKM,EAAIW,EAAOjB,EAAKM,EAAIW,EAChCC,EAAOlB,EAAKQ,EAAIU,EAAOlB,EAAKQ,EAAIU,EAChCC,EAAOnB,EAAKM,EAAIN,EAAKsB,EAAIH,EAAOnB,EAAKM,EAAIN,EAAKsB,EAAIH,EAClDC,EAAOpB,EAAKQ,EAAIR,EAAKuB,EAAIH,EAAOpB,EAAKQ,EAAIR,EAAKuB,EAAIH,EAQpD,OANI+e,IACFlf,EAAOkf,EAAY7f,EAAIW,EAAOkf,EAAY7f,EAAIW,EAC9CC,EAAOif,EAAY3f,EAAIU,EAAOif,EAAY3f,EAAIU,EAC9CC,EAAOgf,EAAY7f,EAAI6f,EAAY7e,EAAIH,EAAOgf,EAAY7f,EAAI6f,EAAY7e,EAAIH,EAC9EC,EAAO+e,EAAY3f,EAAI2f,EAAY5e,EAAIH,EAAO+e,EAAY3f,EAAI2f,EAAY5e,EAAIH,GAEzE,CAAEd,EAAGW,EAAMK,EAAGH,EAAOF,EAAMT,EAAGU,EAAMK,EAAGH,EAAOF,EACvD,CuB9QwBkf,CAAiBjb,EAAQ+Z,IACzCT,aACJA,GAAYtG,SACZA,GAAQ0D,UACRA,GAASc,oBACTA,GAAmBhB,OACnBA,GAAMpZ,QACNA,GAAOC,QACPA,GAAO8X,UACPA,GAASlI,cACTA,GAAaC,eACbA,IACEoJ,GAAW,CACbC,MAAOqD,EACP1I,iBAAkB2I,EAClBze,MAAOA,EACPE,OAAQA,EACRuD,iBACAsR,WAGIxD,cAAEA,GAAauO,mBAAEA,IAAuBC,sBAAoB,CAChEtN,KAAM,OACNuN,0BAAiD,OAAtB1E,GAAUpB,SAAyC,QAArBtC,GAASgC,QAClE6E,aAGI1M,gBAAEA,GAAeG,gBAAEA,GAAevM,SAAEA,GAAQkN,YAAEA,IAAgBvB,GAClEC,GACAsN,EAAa,GACbA,EACAE,EACAna,EACAD,EACA8M,EACAqN,EAAQlgB,iBACRoB,EACAE,EACAse,EAAWza,SAAW,EACtB4N,EACAC,EACAC,GACAC,KAGImO,eAAEA,GAAcC,iBAAEA,cCxGxB9B,YACAA,EAAWC,cACXA,EAAaS,QACbA,EAAOI,QACPA,EAAOnN,gBACPA,EAAewM,kBACfA,EAAiBE,QACjBA,IAEA,MAAM/M,EAAmBoN,EAAQlgB,iBAC3BuhB,EAAmBrB,EAAQjgB,iBAC3B4S,EAAkBqN,EAAQpgB,gBAC1B0hB,EAAmBlB,EAAQtgB,iBAC3ByhB,EAAmBnB,EAAQrgB,iBAC3B8F,EAAkBua,EAAQxgB,gBAC1B4hB,EAAgBrhB,GAAW,KAAKyS,EAAiB3M,IAAI9F,KACrDshB,EAAgBthB,GAAsBkhB,EAAiBpb,IAAI6J,OAAO3P,EAAGuhB,MAAM,KAC3EC,EAAgBxhB,GAAW,KAAKmhB,EAAiBrb,IAAI9F,KACrDyhB,EAAgBzhB,GAAsBohB,EAAiBtb,IAAI6J,OAAO3P,EAAGuhB,MAAM,KAI3EG,EAAmB,IAFKvC,EAAYvW,MAAQuW,EAAYvW,MAAM1G,IAAImf,GAAgB,MAC1DlC,EAAYtV,MAAQsV,EAAYtV,MAAM3H,IAAIsf,GAAgB,KA2DlFP,iBAAEA,EAAgBD,eAAEA,GAAmBW,eAC3C,CACEC,UAAWF,EACXG,YA5DiBzQ,IAEnB,MAAM3L,EACW,UAAf2L,EAAMoC,KACFV,EACAtP,EAAyB4N,EAAMiC,OAAuBmM,GAC5D,YAAmBlb,IAAZmB,EAAKzF,GACRyF,EAAKlC,OACH8d,EAAa5b,EAAKzF,IAClBwhB,EAAa/b,EAAKzF,SACpBsE,CAAS,EAmDX8a,gBACA0C,YAjBiB9hB,IACnB,IAAI8G,EACJ,GAAc,MAAV9G,EAAG,GAAY,CACjB,MAAM+L,EAASuV,EAAathB,GAC5B8G,EAAO+Y,EAAQpgB,gBAAgBqG,IAAIiG,EACpC,MAAM,GAAc,MAAV/L,EAAG,GAAY,CACxB,MAAM4R,EAAS6P,EAAazhB,GAC5B8G,EAAOmZ,EAAQxgB,gBAAgBqG,IAAI8L,EACpC,CACD,OAAO9K,CAAI,EASTib,SAlD8BC,IAChC,MAAMC,EAAaD,EAAOE,IACvBC,QAAQC,GAAuB,MAAbA,EAAM,KACxBlgB,KAAKkgB,GAAUd,EAAac,KACzBC,EAAaL,EAAOE,IACvBC,QAAQC,GAAuB,MAAbA,EAAM,KACxBlgB,KAAKkgB,GAAUX,EAAaW,KAEzBE,EAAqBL,EAAWE,QACnCniB,GAA+C,QAAxCwS,EAAgB1M,IAAI9F,IAAKuiB,aAE7BC,EAAqBH,EAAWF,QACnCniB,GAA+C,QAAxC0F,EAAgBI,IAAI9F,IAAKuiB,aAG7BE,EAAWH,EAAmBpgB,KAAKwgB,GAChClQ,EAAgB1M,IAAI4c,KAEvB5Q,EAAW0Q,EAAmBtgB,KAAKwgB,GAChChd,EAAgBI,IAAI4c,KAE7B,OACEpD,GACAA,EAAkB,CAChB1W,MAAO0Z,EACPzY,MAAO2Y,EACPC,WACA3Q,YAEF,IAyBJ,MAAO,CAAEmP,mBAAkBD,iBAC7B,CDa+C2B,CAAoC,CAC/ExD,cACAC,gBACAS,UACAI,UACAnN,mBACAwM,oBACAE,YAIE1M,IAAmBnN,EAAO7F,OAAS,IACrC2V,EAAqB1R,QvB+InB,SACJ+O,EACAnN,EACAkE,EACA4I,EACA0O,GAEA,GAAIrO,EAAgBvP,OAGlB,OAAOoC,EAFK8M,EAAiB3M,IAAIgN,EAAgB9S,KAE5B,GAChB,CAEL,MAAM+F,EAAO8D,EAAMsX,EAAiBrb,IAAIgN,EAAgB9S,KAAa,GAC/D4iB,EAAUjd,EAAO8M,EAAiB3M,IAAIC,EAAKE,YAAc,GACzD4c,EAAQld,EAAO8M,EAAiB3M,IAAIC,EAAKI,UAAY,GACrD2c,EAAe,CAAEhiB,EAAG8hB,EAAQ9hB,EAAI8hB,EAAQ9gB,EAAI,EAAGd,EAAG4hB,EAAQ5hB,EAAI4hB,EAAQ7gB,EAAI,GAC1EghB,EAAa,CAAEjiB,EAAG+hB,EAAM/hB,EAAI+hB,EAAM/gB,EAAI,EAAGd,EAAG6hB,EAAM7hB,EAAI6hB,EAAM9gB,EAAI,GAGtE,MAAO,CACLjB,EAHWwB,KAAKqC,IAAIme,EAAahiB,EAAGiiB,EAAWjiB,GAI/CE,EAHWsB,KAAKqC,IAAIme,EAAa9hB,EAAG+hB,EAAW/hB,GAI/Cc,EAAGQ,KAAKqL,IAAImV,EAAahiB,EAAIiiB,EAAWjiB,GACxCiB,EAAGO,KAAKqL,IAAImV,EAAa9hB,EAAI+hB,EAAW/hB,GAE3C,CACH,CuB1KmCgiB,CAC7BlQ,GACAnN,EACAma,EACAD,EAAQlgB,iBACRsgB,EAAQtgB,mBAIZ,MAAM0W,eACJA,GACAC,cAAgB,mBAAoB2M,MAA2B3M,KAC7Df,GAAkB,CACpBjD,iBACAkD,UACA1C,mBACA2C,uBACAC,SAAU5S,EAAgBC,GAASC,GAAS8X,GAAW/Z,EAAOE,GAC9DgC,KAAM6X,GACN/Z,MAAOA,EACP4U,SAAUnD,EACVoD,SAAUlQ,EACVmQ,YAAa5C,KAGT5K,GAAQ,CACZtH,MAAOA,EACPE,OAAQA,EACRkb,OAAQA,MACL0E,IAGChY,GAASvB,EAAAA,SACTb,GAAgBoC,GAAO9E,QACzB8E,GAAO9E,QACP,CACEmF,gBAAiB,GACjBY,gBAAiB,GACjBV,eAAW9E,EACX+E,eAAW/E,EACXoC,cAAUpC,EACViF,eAAgB,GAChBtG,KAAM,GAGZ4F,GAAO9E,QAAU,CAEfmF,gBAAiBiW,EAAYvW,OAAS,GACtCkB,gBAAiBqV,EAAYtV,OAAS,GACtCT,UACE0J,GAAgBQ,WAAaR,GAAgBa,eAAiBb,GAAgB9S,QAAKsE,EACrF+E,UAAW4J,IAAiBK,UAAYL,GAAgBjT,QAAKsE,EAC7DoC,YACA6C,eAAgBtJ,EAAWsJ,EAAeX,MAAOW,EAAeM,OAChE5G,KAAM6X,IAGR,MAAMoI,GAAmBrP,EAAAA,WAAWoL,GAAcrL,GAAaoN,GAAgB1K,IA+C/E,OACEpL,EAAAC,KAAA,MAAA,CACE9D,IAAKmY,EACLvX,MAAOkb,EAAAA,eACHD,GACJ7a,MAAOA,GACP+a,SAAU,EACVjb,KAAK,cACO,aAAAoX,EAAW,cAAa,kBACnBA,EAAW,mBAAkB,mBAC5B8D,EAAAA,MAAM,CAAC9D,EAAW,oBAAqB0D,KAClC,wBAAAvc,GACtBgC,SAAA,CAAA4X,EACCtY,EAAAA,IAACuD,EAAuB,CACtBxI,QAASA,GACTC,QAASA,GACTC,KAAM6X,GACN/Z,MAAOA,EACPE,OAAQA,EACRyH,SAAAV,MAAC+C,EACC,CAAAnC,MAAOgX,EACP/V,MAAOiW,EACPnZ,aAAcA,EACd8C,aAAcA,EACd1I,MAAOA,EACPE,OAAQA,EACR8H,WAAYpD,EACZkD,OAAQA,GAAO9E,QACf+E,eAAgBrC,GAChBG,kBAzEgB,CAAC0c,EAAmBC,EAAoBC,KAChErD,EAAcqD,GAAO,CAAE1hB,EAAGwhB,EAAWvhB,EAAGwhB,GACpCrD,EAAiBnc,UAIrBmc,EAAiBnc,SAAU,EAE3B0f,OAAOC,uBAAsB,KAC3B,MAAMC,UAAEA,EAASC,WAAEA,GvB7JT,SAMdhb,EACAib,EACAC,EACArhB,EACA1B,EACAE,EACAqf,GAEA,MAAMqD,EAA0C,IAAIjkB,IAC9CqkB,EAAWC,MAAMC,KAAKJ,EAAUK,QACtC,IAAK,MAAMlkB,KAAM+jB,EAAU,CACzB,MAAMjZ,EAAO+Y,EAAU/d,IAAI9F,GAC3B,GAAI8K,GAAQwV,GAAqBxV,EAAKvK,MAAO,CAC3C,MAAMA,EAAQuK,EAAKvK,MACb4E,EAAYF,EAAc6F,EAAKb,YACrC0Z,EAAU5jB,IAAIC,EAAesgB,EAAkB/f,EAAO4E,GACvD,CACF,CACD,MAAMgf,EAAWH,MAAMC,KAAKH,EAAUI,QACtC,IAAK,MAAMlkB,KAAMmkB,EAAU,CACzB,MAAMrZ,EAAOgZ,EAAUhe,IAAI9F,GAC3B,GAAI8K,GAAQwV,GAAqBxV,EAAKvK,MAAO,CAC3C,MAAMA,EAAQuK,EAAKvK,MACb4E,EAAYF,EAAc6F,EAAKb,YACrC0Z,EAAU5jB,IAAIC,EAAesgB,EAAkB/f,EAAO4E,GACvD,CACF,CAaD,MAAO,CACLye,WAAY,CACVQ,kBAXsB,SAAUtd,GAClC,IAAK,IAAIjH,EAAI,EAAGA,EAAI+I,EAAM9I,OAAQD,IAChC,GAAIiH,EAAK9G,KAAO4I,EAAM/I,GAAGG,GACvB,OAAOyC,EAAW5C,GAGtB,OAAO4C,EAAW,EACpB,EAKI4hB,mBAfuB,SAAUvd,GACnC,OAAO6c,EAAU7d,IAAIgB,EAAK9G,GAC5B,EAcIskB,cAAe,CACbvjB,MAAOA,EACPE,OAAQA,IAGZ0iB,UAAWA,EAEf,CuBqGwCY,CAChC3E,EACApN,EACA9M,EACAya,EACApf,EACAE,EACAqf,GAEF3V,EAAgB5G,QAAU4f,EAC1B,MAAMja,EAAe2V,EAAOuE,IACtBY,WAAEA,EAAUC,aAAEA,EAAYC,aAAEA,YvBrGtCd,EAAenB,EAAgB3Q,GAC/B,MAAMlJ,EAAQgb,EAAWhb,MACnBiB,EAAQ+Z,EAAW/Z,MACnB8a,EAAwB,GACxBF,EAAqD,GACrDC,EAAuC,GAC7C,IAEIzb,EAAMlD,EAFN6e,GAAgB,EAChBC,GAAgB,EAEpB,IAAK,IAAIhlB,EAAI,EAAGA,EAAI4iB,EAAS3iB,OAAQD,IACnCoJ,EAAOL,EAAM6Z,EAAS5iB,GAAGG,IACzB2kB,EAAUtkB,KAAK4I,EAAKtG,UAChBsG,EAAK1I,QAAOqkB,GAAgB,GAChCH,EAAapkB,KAAK4I,EAAK1I,OAEzB,GAAIsJ,EACF,IAAK,IAAIhK,EAAI,EAAGA,EAAIiS,EAAShS,OAAQD,IACnCkG,EAAO8D,EAAMiI,EAASjS,GAAGG,IACrB+F,EAAKxF,QAAOskB,GAAgB,GAChCH,EAAarkB,KAAK0F,EAAKxF,OAG3B,MAAO,CACLikB,WAAYG,EACZF,aAAcG,EAAgBH,OAAengB,EAC7CogB,aAAcG,EAAgBH,OAAepgB,EAEjD,CuB0EyDwgB,CACjDpb,EACAkW,EACAE,GAEFU,EAAgBzc,QAAU0gB,EAC1BhE,EAAgB1c,QAAU2gB,EAC1BhE,EAAgB3c,QAAU2F,EAC1B,MAAMX,EvB7EI,SAAgBtG,EAA0B+hB,GACxD,MAAMO,EAAsB,GAC5B,IAAK,IAAIllB,EAAI,EAAGA,EAAI4C,EAAW3C,OAAQD,IAAK,CAC1C,MAAMgC,EAAQ2iB,EAAW3kB,GACnBmlB,EAAMviB,EAAW5C,GACvBklB,EAAU1kB,KAAK,CAAES,EAAGe,EAAMf,EAAGE,EAAGa,EAAMb,EAAGc,EAAGkjB,EAAIljB,EAAGC,EAAGijB,EAAIjjB,GAC3D,CACD,OAAOgjB,CACT,CuBqEyBE,CAAgB9E,EAAeqE,GvBhExC,IAAcU,EAAmBC,IuBiEZxf,GvBjEPuf,EuBiELnc,GvBhEXjJ,SAAWqlB,EAAQrlB,QACxBolB,EAAQE,OACb,EAAGtkB,IAAGE,IAAGc,IAAGC,KAAKlC,IACfslB,EAAQtlB,GAAGiB,IAAMA,GAAKqkB,EAAQtlB,GAAGmB,IAAMA,GAAKmkB,EAAQtlB,GAAGiC,IAAMA,GAAKqjB,EAAQtlB,GAAGkC,IAAMA,KuB8DjF0d,EAAU1W,GAEZ,MAAM4X,EvB8HI,SAMdgD,EACA/a,EACAiB,EACA4a,EAAqD,GACrDC,EAAuC,GACvCjkB,GAEA,GAA4B,IAAxBgkB,EAAa3kB,QAAwC,IAAxB4kB,EAAa5kB,OAAc,OAC5D,IAIIU,EAAMD,EAJNkB,EAAO6J,IACP5J,EAAO4J,IACP3J,GAAO,IACPC,GAAO,IAEX,IAAK,IAAI/B,EAAI,EAAGA,EAAI4kB,EAAa3kB,OAAQD,IACvCU,EAAQkkB,EAAa5kB,GAChBU,IACLC,EAAOF,EAAeC,EAAOojB,EAAU7d,IAAI8C,EAAM/I,GAAGG,IAAMS,GAC1DgB,EAAOjB,EAAKM,EAAIW,EAAOjB,EAAKM,EAAIW,EAChCC,EAAOlB,EAAKQ,EAAIU,EAAOlB,EAAKQ,EAAIU,EAChCC,EAAOnB,EAAKM,EAAIN,EAAKsB,EAAIH,EAAOnB,EAAKM,EAAIN,EAAKsB,EAAIH,EAClDC,EAAOpB,EAAKQ,EAAIR,EAAKuB,EAAIH,EAAOpB,EAAKQ,EAAIR,EAAKuB,EAAIH,GAEpD,IAAK,IAAI/B,EAAI,EAAGA,EAAI6kB,EAAa5kB,OAAQD,IACvCU,EAAQmkB,EAAa7kB,GAChBU,IACLC,EAAOF,EAAeC,EAAOojB,EAAU7d,IAAI+D,EAAMhK,GAAGG,IAAMS,GAC1DgB,EAAOjB,EAAKM,EAAIW,EAAOjB,EAAKM,EAAIW,EAChCC,EAAOlB,EAAKQ,EAAIU,EAAOlB,EAAKQ,EAAIU,EAChCC,EAAOnB,EAAKM,EAAIN,EAAKsB,EAAIH,EAAOnB,EAAKM,EAAIN,EAAKsB,EAAIH,EAClDC,EAAOpB,EAAKQ,EAAIR,EAAKuB,EAAIH,EAAOpB,EAAKQ,EAAIR,EAAKuB,EAAIH,GAEpD,MAAO,CAAEd,EAAGW,EAAMK,EAAGH,EAAOF,EAAMT,EAAGU,EAAMK,EAAGH,EAAOF,EACvD,CuBpK0B2jB,CAClB1B,EACA/D,EACAE,EACA2E,EACAC,EACc,QAAd9Z,GAEF+U,EAAuBgB,GACvBT,EAAiBnc,SAAU,CAAK,IAChC,EAgCMiH,mBAAoBwV,EAAgBzc,QACpCkH,mBAAoBwV,EAAgB1c,QACpC4G,gBAAiBA,EAAgB5G,QACjCG,kBACoB,SAAlBkb,MACGD,GAAavW,OAASuW,EAAYvW,MAAM9I,OAAS,OACjDqf,GAAatV,OAASsV,EAAYtV,MAAM/J,OAAS,GAEtD4J,aAAcgX,EAAgB3c,iBAGhCO,EACH+b,EACAhK,GACA4K,GACA9D,KAGP,WE/RM,UAMJpc,MAAEA,EAAKE,OAAEA,KAAWse,IACpB,OAAOA,EAAW3W,OAAS2W,EAAW3W,MAAM9I,OAAS,EACnDkI,EAAAsB,IAACgc,EAAoBA,qBAAA,CAACvkB,MAAOA,EAAOE,OAAQA,EAAQgH,MAAOsd,EAAAA,eACxD7c,SAAA,CAAC3H,EAAOE,IAAW+G,EAAAA,IAACkX,GAAsB,CAAAne,MAAOA,EAAOE,OAAQA,KAAYse,MAE7E,IACN"}
|
package/amd/Dialog-c9d3d5d2.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', 'preact/compat', './WindowOverlay-a2d80d55', './useTestId-3a316499', './useAnimation-5a74955f', 'preact/hooks', './refUtils-d354a169', './UNSAFE_Dialog/themes/redwood/DialogTheme', './FocusTrap-60520575', './Layer-447c68e6', './LayerHost-e95c5f30', './Modal-d6b2e905', './classNames-08d99695', './ImageVars.css-17386400', './useComponentTheme-5aa41a8f', './useId-c9578d26', './dimensions-60420dbb', './mergeInterpolations-9ede4cf7', './useResizeObserver-275c3e83', './useDraggable-7f591a3d', './Floating-1ec5ec2a', './IconButton-d1646f51', './Close-04d8a398', './Resizable-d12fcde1', './useBreakpoints-52d11a72', './useTranslationBundle-516b1b83', './animationUtils-716a9aa6', './tabbableUtils-85aa6918'], (function(e,n,o,a,s,i,t,r,l,c,d,u,m,f,g,b,h,p,y,R,v,D,S,x,E,z,j,I,A){"use strict";const O=({children:e,id:o,cancelBehavior:a,onClose:s,draggableProps:i,headerDecoration:t="on"})=>{const{styles:r}=b.useComponentTheme(l.DialogRedwoodTheme),c=f.classNames([r.dialogHeaderStyle,..."on"===t?[r.dialogHeaderDecorationStyle]:[]]),d="string"==typeof e?n.jsx("h1",{id:o,className:r.dialogTitleStyle,children:e}):n.jsx("div",{children:e}),u=j.useTranslationBundle("@oracle/oraclejet-preact"),m="icon"===a?n.jsx("div",{children:n.jsx("div",{className:r.dialogHeaderCloseIconStyle,children:n.jsx(S.IconButton,{"aria-label":u.message_close(),size:"sm",variant:"ghost",onAction:()=>{s?.({reason:"icon"})},children:n.jsx(x.SvgClose,{})})})}):null;return n.jsxs("div",{className:c,...i,children:[d,m]})},B=o.forwardRef((({children:e,style:o},a)=>n.jsx("div",{ref:a,className:o,children:e}))),C=o.forwardRef((({children:e,header:o,footer:a,visibility:i,labelId:c,role:d,ariaLabelledBy:u,ariaDescribedBy:m,cancelBehavior:h,draggableProps:p,isResizable:y,headerDecoration:v,containerRef:D,onClose:S,onResizeStart:x,onResize:j,onResizeEnd:I,onKeyDown:A,testId:C,style:T,footerRef:w},N)=>{const k=t.useRef(null),L=r.mergeRefs(N,k),[F,U]=t.useState(!1),P=!z.useBreakpoints().md,{classes:_,styles:W}=b.useComponentTheme(l.DialogRedwoodTheme),H=t.useCallback((()=>{k.current&&(k.current.clientHeight<400?U(!0):U(!1))}),[]);t.useEffect((()=>{H()}),[H]),R.useResizeObserver(k,H);const M=P?W.baseStyleSmallWidth:W.baseStyleDesktop,X=F?W.dialogContentStyleNoShrink:W.dialogContentStyle,G="visible"===i?W.visibilityVisible:W.visibilityHidden,K=s.useTestId(C);return n.jsxs("div",{ref:L,className:f.classNames([_,M,G,g.globalImages]),style:T,onKeyDown:A,role:d,"aria-labelledby":u,"aria-describedby":m,...K,children:[n.jsxs("div",{className:W.dialogContainerStyle,children:[n.jsx(O,{id:c,onClose:S,headerDecoration:v,cancelBehavior:h,draggableProps:p,children:o}),n.jsx("div",{className:X,children:n.jsx("div",{className:W.dialogBodyStyle,children:e})}),n.jsx(B,{ref:w,style:W.dialogFooterStyle,children:a})]}),y&&n.jsx(E.Resizable,{onResizeStart:x,onResize:j,onResizeEnd:I,containerRef:D})]})})),T=o.forwardRef((({autoFocusRef:e,children:o,isOpen:s,header:l="",footer:u,modality:f="modal",launcherRef:g,anchorRef:b,placement:R,offset:S=0,cancelBehavior:x="none",dragAffordance:E="none",resizeBehavior:j="none",headerDecoration:I="on",onDragStart:O,onDragMove:B,onDragEnd:T,onResizeStart:N,onResize:k,onResizeEnd:L,onFocusSet:F,onClose:U,onTransitionEnd:P,role:_="dialog","aria-labelledby":W,"aria-describedby":H,testId:M,...X},G)=>{const[K,Y]=t.useState(s?"initial":"unmounted"),[V,q]=t.useState("hidden"),J=t.useRef(null),Q=t.useRef(null),Z=t.useRef(null),$=t.useRef(null),ee=!z.useBreakpoints().md,ne=ee?"bottom":R||"center",oe=ee?"opening"===K?"slideUp":"slideDown":"opening"===K?"zoomIn":"zoomOut",ae=h.useId(),se=W||ae,ie=[...Object.values(p.dimensionInterpolations)],te=y.mergeInterpolations(ie),{...re}=te(X),le=t.useCallback((()=>{$.current&&A.allTabbableElements($.current).length>0?A.focusWithin($.current):A.focusWithin(Q.current),F?.()}),[F]),ce=t.useCallback((()=>{const e=Z.current;e&&A.focusOn(e)}),[Z]),{nodeRef:de}=i.useAnimation(oe,{animationStates:w,isAnimatedOnMount:!0,onAnimationEnd:()=>{s?P?.(!0):s||(ce(),de(null),q("hidden"),Y("unmounted"),P?.(!1))}}),ue=t.useMemo((()=>r.mergeRefs(Q,G)),[Q,G]),me=t.useCallback((e=>{Z.current===A.getActiveElement()&&"F6"===e.code&&(e.preventDefault(),e.stopPropagation(),A.focusWithin(Q.current),F?.())}),[f]),{draggableProps:fe}=v.useDraggable({isDisabled:"none"===E,containerRef:J,onDragStart:O,onDragMove:B,onDragEnd:T});t.useEffect((()=>{if("unmounted"!==K||s){if("unmounted"!==K||!s)return"initial"===K&&s?(de(Q.current),void Y("opening")):void("opening"===K&&s?q("visible"):s||Y("closing"));Y("initial")}}),[s,K,de]),t.useEffect((()=>(s&&(g?.current&&g.current instanceof Element?Z.current=document.body.contains(g.current)?g.current:A.getActiveElement():Z.current=A.getActiveElement(),"modeless"===f&&Z.current?.addEventListener("keydown",me)),()=>{"modeless"===f&&Z.current?.removeEventListener("keydown",me)})),[s,g,me,f]),t.useEffect((()=>{"visible"===V&&le()}),[V,le]);const ge=e=>{switch(e.code){case"Escape":U?.({reason:"escapeKey"});break;case"F6":Z.current&&"modeless"===f&&A.focusOn(Z.current),e.preventDefault(),e.stopPropagation()}},be=()=>n.jsx(c.FocusTrap,{autoFocusRef:e,children:n.jsx(C,{ref:ue,labelId:se,header:l,footer:u,role:_,ariaLabelledBy:se,ariaDescribedBy:H,onKeyDown:ge,testId:M,style:re,visibility:V,cancelBehavior:x,draggableProps:fe,isResizable:"resizable"===j,headerDecoration:I,containerRef:J,onClose:U,onResizeStart:N,onResize:k,onResizeEnd:L,footerRef:$,children:o})}),he=()=>b&&b.current?n.jsx(D.Floating,{ref:J,anchorRef:b,placement:"bottom-start",flipOptions:{mainAxis:!1,crossAxis:!1},shiftOptions:{mainAxis:!1,crossAxis:!1},children:be()}):n.jsx(a.WindowOverlay,{placement:ne,offset:S,children:be()});return"modal"===f?n.jsx(m.Modal,{isOpen:"unmounted"!==K,children:he()}):"unmounted"!==K?n.jsx(d.Layer,{children:he()}):null})),w={zoomIn:{from:{scaleX:.9,scaleY:.9,transformOrigin:"center",opacity:0},to:{scaleX:1,scaleY:1,opacity:1},options:{duration:200}},zoomOut:{from:{scaleX:1,scaleY:1,transformOrigin:"center",opacity:1},to:{scaleX:.9,scaleY:.9,opacity:0},options:{duration:200}},slideUp:{...I.SLIDE_UP_XLARGE,options:{duration:I.DURATION_LARGE}},slideDown:{...I.SLIDE_DOWN_XLARGE,options:{duration:I.DURATION_LARGE}}};e.Dialog=T}));
|
|
2
|
-
//# sourceMappingURL=Dialog-c9d3d5d2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog-c9d3d5d2.js","sources":["../../src/UNSAFE_Dialog/Dialog.tsx"],"sourcesContent":["import type { ComponentChild, RefObject } from 'preact';\nimport { ForwardedRef, forwardRef } from 'preact/compat';\nimport { Offset, WindowOverlay, WindowOverlayPlacement } from '../UNSAFE_WindowOverlay';\nimport { TestIdProps, useTestId } from '../hooks/UNSAFE_useTestId';\nimport { useAnimation } from '../hooks/UNSAFE_useAnimation';\nimport { useEffect, useRef, useCallback, useMemo, useState } from 'preact/hooks';\nimport { mergeRefs } from '../utils/PRIVATE_refUtils';\n\nimport { DialogRedwoodTheme } from './themes/redwood/DialogTheme';\nimport { DialogStyles } from './themes/DialogStyles.css';\nimport { FocusTrap } from '../UNSAFE_FocusTrap';\nimport { HTMLAttributesSignalExcluded } from '../utils/UNSAFE_attributeUtils';\nimport { Layer } from '../UNSAFE_Layer';\nimport { Modal } from '../UNSAFE_Modal';\nimport { classNames } from '../utils/UNSAFE_classNames';\nimport { globalImages } from '#/ImageVars.css';\nimport { useComponentTheme } from '../hooks/UNSAFE_useComponentTheme';\nimport { useId } from '../hooks/UNSAFE_useId';\nimport { dimensionInterpolations, DimensionProps } from '../utils/UNSAFE_interpolations/dimensions';\nimport { mergeInterpolations } from '../utils/UNSAFE_mergeInterpolations';\nimport { useResizeObserver } from '../hooks/UNSAFE_useResizeObserver';\n\nimport { DraggableProps, useDraggable } from '../hooks/PRIVATE_useDraggable';\nimport { Floating, Coords } from '../UNSAFE_Floating';\nimport { IconButton } from '../UNSAFE_IconButton';\nimport { CloseIcon } from '../PRIVATE_ThemedIcons/CloseIcon';\nimport { Resizable } from '../PRIVATE_Resizable/Resizable';\nimport { Position, Rect } from '../utils/UNSAFE_flexibleComponentUtils';\nimport { useBreakpoints } from '../hooks/UNSAFE_useBreakpoints';\nimport { useTranslationBundle } from '../hooks/UNSAFE_useTranslationBundle';\nimport { BundleType } from '../resources/nls/bundle';\nimport {\n SLIDE_DOWN_XLARGE,\n SLIDE_UP_XLARGE,\n DURATION_LARGE\n} from '../utils/PRIVATE_animationUtils';\nimport {\n allTabbableElements,\n focusOn,\n focusWithin,\n getActiveElement\n} from '../utils/PRIVATE_tabbableUtils';\n\n// dialog states\ntype Status = 'initial' | 'opening' | 'closing' | 'unmounted';\ntype VisibilityStatus = 'hidden' | 'visible';\ntype Animations = 'zoomIn' | 'zoomOut' | 'slideUp' | 'slideDown';\n\ntype IntrinsicProps = Pick<HTMLAttributesSignalExcluded<HTMLDivElement>, 'children' | 'role'>;\n\nexport type OnCloseDetail = {\n reason: 'escapeKey' | 'icon';\n};\n\nexport type CancelBehavior = 'none' | 'escape' | 'icon';\n\ntype DialogProps = IntrinsicProps &\n DimensionProps & {\n /**\n * Optional ref for an element to focus on when component mounts\n */\n autoFocusRef?: RefObject<HTMLElement>;\n\n /**\n * On Close callback.\n */\n onClose?: (detail: OnCloseDetail) => void;\n\n /**\n * On opening or closing transition end callback.\n */\n onTransitionEnd?: (value: boolean) => void;\n\n /**\n * Determines whether the Dialog is open.\n */\n isOpen: boolean;\n\n /**\n * Dialog header content. Can be a string or VNode (Component Child).\n * <p>\n * When a plain string is passed, it will be used as the dialog title. Otherwise, the prop value\n * will be used as the header content.\n * </p>\n * <p>\n * Dialog will automatically refer to the header content as the accessible label.\n * The user can override this behavior by specifying the <code>aria-labelledby</code> property\n * and setting its value as needed.\n * </p>\n */\n header?: ComponentChild;\n\n /**\n * Dialog footer content.\n */\n footer?: ComponentChild;\n\n /**\n * Determines dialog modality. Default is 'modal'.\n */\n modality?: 'modal' | 'modeless';\n\n /**\n * Specifies dialog's cancel behavior. Default is 'none'.\n */\n cancelBehavior?: CancelBehavior;\n\n /**\n * Specifies dialog's launcher. After dialog closes, it returns focus to the launcher.\n * If not specified, focus goes back to the last active element before dialog opened.\n */\n launcherRef?: RefObject<HTMLElement>;\n\n /**\n * Specifies dialog's anchor. Dialog is placed relative to its anchor. If not specified,\n * it is placed relatively to window.\n */\n anchorRef?: RefObject<Element | Coords>;\n\n /**\n * Determines placement of the dialog relative to the viewport.\n * Supported values are:\n * <p> <code>center</code>, <code>top</code>, <code>top-start</code>, <code>top-end</code>,\n * <code>end</code>, <code>end-top</code>, <code>end-bottom</code>,\n * <code>bottom</code>, <code>bottom-start</code>, <code>bottom-end</code>,\n * <code>start</code>, <code>start-top</code>, <code>start-bottom</code>\n * </p>\n * Default is <code>center</code>.\n */\n placement?: WindowOverlayPlacement;\n\n /**\n * Determines the offset of the Dialog from its core placement along the specified axes.\n *\n * Offset could be a number or an object\n *\n * An object has the following type:\n * <pre>\n * {\n * mainAxis?: number;\n * crossAxis?: number;\n * }\n * </pre>\n * For the <code>center</code> placement the convention for the offset type is that mainAxis defines\n * offset from the top, crossAxis defines offset from the left side of the view port.\n *\n * A number is a shortcut for setting the mainAxis.\n */\n offset?: Offset;\n\n /**\n * Determines if the Dialog should be sensitive to drag gestures. To create a draggable dialog,\n * set <code>dragAffordance='header'</code> and specify the <code>onDragMove</code> handler.\n */\n dragAffordance?: 'none' | 'header';\n\n /**\n * Determines if the Dialog should support resizing. To create a resizable dialog,\n * set <code>resizeBehavior='resizable'</code> and specify the <code>onResize</code> handler.\n */\n resizeBehavior?: 'none' | 'resizable';\n\n /**\n * Callback to be invoked if <code>dragAffordance</code> is set to <code>header</code> and a drag gesture is initiated.\n * The current position is reported in the <code>pos</code> parameter.\n *\n * @param pos\n */\n onDragStart?: (pos: Position) => void;\n\n /**\n * Callback to be invoked if <code>dragAffordance</code> is set to <code>header</code> and a drag gesture is detected.\n * The current position is reported in the <code>pos</code> parameter.\n *\n * @param pos\n */\n onDragMove?: (pos: Position) => void;\n\n /**\n * Callback to be invoked if <code>dragAffordance</code> is set to <code>header</code> and a drag gesture is completed.\n * The current position is reported in the <code>pos</code> parameter.\n *\n * @param pos\n */\n onDragEnd?: (pos: Position) => void;\n\n /**\n * Callback to be invoked if <code>resizeBehavior</code> is set to <code>resizable</code> and\n * a resize gesture is initiated. The current position and dimensions are reported in the\n * <code>rect</code> parameter.\n *\n * @param rect\n */\n onResizeStart?: (rect: Rect) => void;\n\n /**\n * Callback to be invoked if <code>resizeBehavior</code> is set to <code>resizable</code> and\n * a resize gesture is detected. The current position and dimensions are reported in the\n * <code>rect</code> parameter.\n *\n * @param rect\n */\n onResize?: (rect: Rect) => void;\n\n /**\n * Callback to be invoked if <code>resizeBehavior</code> is set to <code>resizable</code> and\n * a resize gesture is completed. The current position and dimensions are reported in the\n * <code>rect</code> parameter.\n *\n * @param rect\n */\n onResizeEnd?: (rect: Rect) => void;\n\n /**\n * Specifies callback triggered when initial focus is set or when a modeless dialog receives focus\n * via the F6 key.\n */\n onFocusSet?: () => void;\n\n /**\n * Determines if the header decoration should be displayed. The default is <code>on</code>\n * which renders a textured strip at the top of the dialog header in the Redwood theme.\n * If set to <code>off</code>, no decoration is rendered.\n */\n headerDecoration?: 'off' | 'on';\n\n /**\n * Specifies the ARIA role type. Depending on how the dialog is used in the page, the developer\n * should choose from the following:\n * <ul>\n * <li><code>dialog</code> defines an application window that is designed to interrupt the current\n * processing of an application in order to prompt the user to enter information or require\n * a response.</li>\n * <li><code>alertdialog</code> defines type of dialog that contains an alert message, where initial\n * focus goes to an element within the dialog.</li>\n * </ul>\n */\n role?: string;\n\n /**\n * Optional <code>aria-labelledby</code> property referring to the content to be used as Dialog's\n * accessible <label htmlFor=\"\" className=\"\"></label>\n * If not specified, the Dialog will automatically refer to the entire header content as the accessible label.\n */\n 'aria-labelledby'?: string;\n\n /**\n * Optional accessible description for the dialog.\n */\n 'aria-describedby'?: string;\n } & TestIdProps;\n\n// dialog header\ntype DialogHeaderProps = Pick<DialogProps, 'children'> & {\n id?: string;\n cancelBehavior?: CancelBehavior;\n onClose?: (detail: OnCloseDetail) => void;\n draggableProps?: DraggableProps;\n headerDecoration?: 'off' | 'on';\n};\n\nconst StyledDialogHeader = ({\n children,\n id,\n cancelBehavior,\n onClose,\n draggableProps,\n headerDecoration = 'on'\n}: DialogHeaderProps) => {\n const { styles } = useComponentTheme<never, DialogStyles>(DialogRedwoodTheme);\n\n const classes = classNames([\n styles.dialogHeaderStyle,\n ...(headerDecoration === 'on' ? [styles.dialogHeaderDecorationStyle] : [])\n ]);\n\n const content: ComponentChild =\n typeof children === 'string' ? (\n <h1 id={id} className={styles.dialogTitleStyle}>\n {children}\n </h1>\n ) : (\n <div>{children}</div>\n );\n\n const translations = useTranslationBundle<BundleType>('@oracle/oraclejet-preact');\n\n const handleIconClose = () => {\n onClose?.({ reason: 'icon' });\n };\n\n const closeIcon: ComponentChild =\n cancelBehavior === 'icon' ? (\n <div>\n <div className={styles.dialogHeaderCloseIconStyle}>\n <IconButton\n aria-label={translations.message_close()}\n size=\"sm\"\n variant=\"ghost\"\n onAction={handleIconClose}>\n <CloseIcon />\n </IconButton>\n </div>\n </div>\n ) : null;\n\n return (\n <div className={classes} {...draggableProps}>\n {content}\n {closeIcon}\n </div>\n );\n};\n\n// dialog footer\n\ntype DialogFooterProps = Pick<DialogProps, 'children'> & {\n style?: string;\n};\n\nconst StyledDialogFooter = forwardRef(\n ({ children, style }: DialogFooterProps, ref: ForwardedRef<HTMLDivElement | null>) => {\n return (\n <div ref={ref} className={style}>\n {children}\n </div>\n );\n }\n);\n\n// styled dialog\n\ntype MainProps = Pick<DialogProps, 'children' | 'header' | 'footer' | 'role'> &\n Pick<HTMLAttributesSignalExcluded<HTMLDivElement>, 'style' | 'onKeyDown'> & {\n visibility: VisibilityStatus;\n labelId?: string;\n ariaLabelledBy?: string;\n ariaDescribedBy?: string;\n cancelBehavior?: CancelBehavior;\n draggableProps?: DraggableProps;\n isResizable?: boolean;\n headerDecoration?: 'off' | 'on';\n containerRef?: RefObject<HTMLElement>;\n onClose?: (detail: OnCloseDetail) => void;\n onResizeStart?: (rect: Rect) => void;\n onResize?: (rect: Rect) => void;\n onResizeEnd?: (rect: Rect) => void;\n footerRef?: RefObject<HTMLDivElement | null>;\n } & TestIdProps;\n\nconst StyledDialog = forwardRef(\n (\n {\n children,\n header,\n footer,\n visibility,\n labelId,\n role,\n ariaLabelledBy,\n ariaDescribedBy,\n cancelBehavior,\n draggableProps,\n isResizable,\n headerDecoration,\n containerRef,\n onClose,\n onResizeStart,\n onResize,\n onResizeEnd,\n onKeyDown,\n testId,\n style,\n footerRef\n }: MainProps,\n ref: ForwardedRef<HTMLDivElement | null>\n ) => {\n const elementRef = useRef<HTMLDivElement>(null);\n const mergedRef = mergeRefs(ref, elementRef);\n\n const [isSmallHeight, setSmallHeight] = useState<boolean>(false);\n const isSmallWidth = !useBreakpoints()['md'];\n\n const { classes: styleClasses, styles } = useComponentTheme<never, DialogStyles>(\n DialogRedwoodTheme\n );\n\n const resizeHandler = useCallback(() => {\n if (elementRef.current) {\n if (elementRef.current.clientHeight < 400) {\n setSmallHeight(true);\n } else {\n setSmallHeight(false);\n }\n }\n }, []);\n\n // set initial Height\n useEffect(() => {\n resizeHandler();\n }, [resizeHandler]);\n\n useResizeObserver(elementRef, resizeHandler);\n\n // for small widths (mobile), use the 'smallWidth' dialog style\n // otherwise, check for small height to apply 'smallWidth' or 'desktop' styles accordingly\n const baseStyle = isSmallWidth ? styles.baseStyleSmallWidth : styles.baseStyleDesktop;\n\n // content should scroll depending on the viewport height\n // on large screens, the header and footer should be \"sticky\",\n // at small viewport heights, the entire content should be scrollable\n const contentStyle = isSmallHeight\n ? styles.dialogContentStyleNoShrink\n : styles.dialogContentStyle;\n\n const visibilityStyle =\n visibility === 'visible' ? styles.visibilityVisible : styles.visibilityHidden;\n\n const testIdProps = useTestId(testId);\n\n return (\n <div\n ref={mergedRef}\n className={classNames([styleClasses, baseStyle, visibilityStyle, globalImages])}\n style={style}\n onKeyDown={onKeyDown}\n role={role}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n {...testIdProps}>\n <div className={styles.dialogContainerStyle}>\n <StyledDialogHeader\n id={labelId}\n onClose={onClose}\n headerDecoration={headerDecoration}\n cancelBehavior={cancelBehavior}\n draggableProps={draggableProps}>\n {header}\n </StyledDialogHeader>\n <div className={contentStyle}>\n <div className={styles.dialogBodyStyle}>{children}</div>\n </div>\n <StyledDialogFooter ref={footerRef} style={styles.dialogFooterStyle}>\n {footer}\n </StyledDialogFooter>\n </div>\n {isResizable && (\n <Resizable\n onResizeStart={onResizeStart}\n onResize={onResize}\n onResizeEnd={onResizeEnd}\n containerRef={containerRef}></Resizable>\n )}\n </div>\n );\n }\n);\n\n// main Dialog component\n\n/**\n * WAI-ARIA-compliant dialog component. A dialog is a floating window that typically contains\n * a title bar and a content area.\n * The dialog is generally placed on top of the rest of the page content. It can be either modal\n * (only the content in the dialog can be interacted with) or non-modal (it's still possible\n * to interact with content outside of the dialog).\n */\nexport const Dialog = forwardRef(\n (\n {\n autoFocusRef,\n children,\n isOpen,\n header = '',\n footer,\n modality = 'modal',\n launcherRef,\n anchorRef,\n placement,\n offset = 0,\n cancelBehavior = 'none',\n dragAffordance = 'none',\n resizeBehavior = 'none',\n headerDecoration = 'on',\n onDragStart,\n onDragMove,\n onDragEnd,\n onResizeStart,\n onResize,\n onResizeEnd,\n onFocusSet,\n onClose,\n onTransitionEnd,\n role = 'dialog',\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n testId,\n ...props\n }: DialogProps,\n ref: ForwardedRef<HTMLDivElement | null>\n ) => {\n const [status, setStatus] = useState<Status>(isOpen ? 'initial' : 'unmounted');\n const [visibility, setVisibility] = useState<VisibilityStatus>('hidden');\n\n const floatingRef = useRef<HTMLDivElement>(null);\n const contentWrapperRef = useRef<HTMLDivElement | null>(null);\n const localLauncherRef = useRef<HTMLElement | null>(null);\n const footerRef = useRef<HTMLDivElement | null>(null);\n\n const isSmallWidth = !useBreakpoints()['md'];\n const derivedPlacement = isSmallWidth ? 'bottom' : placement ? placement : 'center';\n const animationType = isSmallWidth\n ? status === 'opening'\n ? 'slideUp'\n : 'slideDown'\n : status === 'opening'\n ? 'zoomIn'\n : 'zoomOut';\n\n const uniqueId = useId();\n const labelId = ariaLabelledBy ? ariaLabelledBy : uniqueId;\n\n const interpolations = [...Object.values(dimensionInterpolations)];\n const styleInterpolations = mergeInterpolations<DimensionProps>(interpolations);\n const { ...styles } = styleInterpolations(props);\n\n const setInitialFocus = useCallback(() => {\n // Focus on first tabbable in the Dialog container or container itself if there is none\n if (footerRef.current && allTabbableElements(footerRef.current).length > 0) {\n focusWithin(footerRef.current);\n } else {\n focusWithin(contentWrapperRef.current as HTMLElement);\n }\n onFocusSet?.();\n }, [onFocusSet]);\n\n const returnFocus = useCallback((): void => {\n // Try to return focus to 1.launcher or 2.anchor\n const launcherEl = localLauncherRef.current;\n\n if (launcherEl) {\n focusOn(launcherEl);\n // Checking instanceof to avoid Coords type that can not be focused\n }\n }, [localLauncherRef]);\n\n // Animation\n const { nodeRef } = useAnimation<Animations, HTMLDivElement>(animationType, {\n animationStates,\n isAnimatedOnMount: true,\n onAnimationEnd: () => {\n if (isOpen) {\n onTransitionEnd?.(true);\n } else if (!isOpen) {\n returnFocus();\n nodeRef(null);\n setVisibility('hidden');\n setStatus('unmounted');\n onTransitionEnd?.(false);\n }\n }\n });\n\n const mergedRef = useMemo(() => mergeRefs(contentWrapperRef, ref), [contentWrapperRef, ref]);\n\n const launcherKeyDownCallback = useCallback(\n (event: KeyboardEvent): void => {\n if (localLauncherRef.current === getActiveElement() && event.code === 'F6') {\n // Prevent default F6 handlers.\n // F6 is a standard Chrome address bar shortcut on Windows.\n event.preventDefault();\n event.stopPropagation();\n\n focusWithin(contentWrapperRef.current as HTMLElement);\n onFocusSet?.();\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [modality]\n );\n\n const { draggableProps } = useDraggable({\n isDisabled: dragAffordance === 'none',\n containerRef: floatingRef,\n onDragStart,\n onDragMove,\n onDragEnd\n });\n\n useEffect(() => {\n // 1. Ignore status update on initial render\n if (status === 'unmounted' && !isOpen) {\n return;\n }\n\n // 2. Mount visually hidden component\n // Component gets mounted, but will be visually hidden to avoid flickering\n // Flickering happens because it gets rendered before animation hook repositions\n // it in next render cycle\n if (status === 'unmounted' && isOpen) {\n setStatus('initial');\n return;\n }\n\n // 3. Setup animation\n // Component has been mounted.\n // We will kick out animation as node is already present in DOM.\n // To avoid flickering, we still keep it visually hidden until the next render cycle.\n if (status === 'initial' && isOpen) {\n nodeRef(contentWrapperRef.current);\n setStatus('opening');\n return;\n }\n\n // 3. Unhide component. It becomes visible.\n if (status === 'opening' && isOpen) {\n setVisibility('visible');\n return;\n }\n\n // 4. Closing\n if (!isOpen) {\n setStatus('closing');\n }\n }, [isOpen, status, nodeRef]);\n\n // Initialize launcher\n useEffect(() => {\n if (isOpen) {\n if (!launcherRef?.current) {\n // 1. If launcher is not defined, most frequent scenario is,\n // that element, that has focus before opening the dialog is considered launcher\n localLauncherRef.current = getActiveElement() as HTMLElement;\n } else if (launcherRef.current instanceof Element) {\n // 2. launcherRef element was provided.\n // Verify, if it exists in DOM, otherwise use the last active element\n localLauncherRef.current = document.body.contains(launcherRef.current)\n ? launcherRef.current\n : (getActiveElement() as HTMLElement);\n } else {\n localLauncherRef.current = getActiveElement() as HTMLElement;\n }\n // Register F6 key handler to enter a modeless dialog\n if (modality === 'modeless') {\n localLauncherRef.current?.addEventListener('keydown', launcherKeyDownCallback);\n }\n }\n return () => {\n // Deregister F6 key handler\n if (modality === 'modeless') {\n localLauncherRef.current?.removeEventListener('keydown', launcherKeyDownCallback);\n }\n };\n }, [isOpen, launcherRef, launcherKeyDownCallback, modality]);\n\n // setInitialFocus when the dialog becomes visible\n useEffect(() => {\n if (visibility === 'visible') {\n setInitialFocus();\n }\n }, [visibility, setInitialFocus]);\n\n const handleKeyDown = (event: KeyboardEvent) => {\n switch (event.code) {\n case 'Escape':\n onClose?.({ reason: 'escapeKey' });\n break;\n case 'F6':\n // Focus launcher\n if (localLauncherRef.current && modality === 'modeless') {\n focusOn(localLauncherRef.current);\n }\n // Prevent default F6 handlers. F6 is a standard Chrome address bar shortcut on Windows.\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n };\n\n const renderDialogContent = () => {\n return (\n <FocusTrap autoFocusRef={autoFocusRef}>\n <StyledDialog\n ref={mergedRef}\n labelId={labelId}\n header={header}\n footer={footer}\n role={role}\n ariaLabelledBy={labelId}\n ariaDescribedBy={ariaDescribedBy}\n onKeyDown={handleKeyDown}\n testId={testId}\n style={styles}\n visibility={visibility}\n cancelBehavior={cancelBehavior}\n draggableProps={draggableProps}\n isResizable={resizeBehavior === 'resizable'}\n headerDecoration={headerDecoration}\n containerRef={floatingRef}\n onClose={onClose}\n onResizeStart={onResizeStart}\n onResize={onResize}\n onResizeEnd={onResizeEnd}\n footerRef={footerRef}>\n {children}\n </StyledDialog>\n </FocusTrap>\n );\n };\n\n const renderDialog = () => {\n if (anchorRef && anchorRef.current) {\n return (\n <Floating\n ref={floatingRef}\n anchorRef={anchorRef}\n placement={'bottom-start'}\n flipOptions={{ mainAxis: false, crossAxis: false }}\n shiftOptions={{ mainAxis: false, crossAxis: false }}>\n {renderDialogContent()}\n </Floating>\n );\n } else {\n return (\n <WindowOverlay placement={derivedPlacement} offset={offset}>\n {renderDialogContent()}\n </WindowOverlay>\n );\n }\n };\n\n if (modality === 'modal') {\n return <Modal isOpen={status !== 'unmounted'}>{renderDialog()}</Modal>;\n } else {\n return status !== 'unmounted' ? <Layer>{renderDialog()}</Layer> : null;\n }\n }\n);\n\nconst animationStates = {\n zoomIn: {\n from: {\n scaleX: 0.9,\n scaleY: 0.9,\n transformOrigin: 'center',\n opacity: 0\n },\n to: {\n scaleX: 1,\n scaleY: 1,\n opacity: 1\n },\n options: {\n duration: 200\n }\n },\n zoomOut: {\n from: {\n scaleX: 1,\n scaleY: 1,\n transformOrigin: 'center',\n opacity: 1\n },\n to: {\n scaleX: 0.9,\n scaleY: 0.9,\n opacity: 0\n },\n options: {\n duration: 200\n }\n },\n slideUp: {\n ...SLIDE_UP_XLARGE,\n options: {\n duration: DURATION_LARGE\n }\n },\n slideDown: {\n ...SLIDE_DOWN_XLARGE,\n options: {\n duration: DURATION_LARGE\n }\n }\n};\n"],"names":["StyledDialogHeader","children","id","cancelBehavior","onClose","draggableProps","headerDecoration","styles","useComponentTheme","DialogRedwoodTheme","classes","classNames","dialogHeaderStyle","dialogHeaderDecorationStyle","content","_jsx","className","dialogTitleStyle","jsx","translations","useTranslationBundle","closeIcon","dialogHeaderCloseIconStyle","IconButton","message_close","size","variant","onAction","reason","CloseIcon","SvgClose","_jsxs","StyledDialogFooter","forwardRef","style","ref","StyledDialog","header","footer","visibility","labelId","role","ariaLabelledBy","ariaDescribedBy","isResizable","containerRef","onResizeStart","onResize","onResizeEnd","onKeyDown","testId","footerRef","elementRef","useRef","mergedRef","mergeRefs","isSmallHeight","setSmallHeight","useState","isSmallWidth","useBreakpoints","styleClasses","resizeHandler","useCallback","current","clientHeight","useEffect","useResizeObserver","baseStyle","baseStyleSmallWidth","baseStyleDesktop","contentStyle","dialogContentStyleNoShrink","dialogContentStyle","visibilityStyle","visibilityVisible","visibilityHidden","testIdProps","useTestId","jsxs","globalImages","dialogContainerStyle","dialogBodyStyle","dialogFooterStyle","Resizable","Dialog","autoFocusRef","isOpen","modality","launcherRef","anchorRef","placement","offset","dragAffordance","resizeBehavior","onDragStart","onDragMove","onDragEnd","onFocusSet","onTransitionEnd","props","status","setStatus","setVisibility","floatingRef","contentWrapperRef","localLauncherRef","derivedPlacement","animationType","uniqueId","useId","interpolations","Object","values","dimensionInterpolations","styleInterpolations","mergeInterpolations","setInitialFocus","allTabbableElements","length","focusWithin","returnFocus","launcherEl","focusOn","nodeRef","useAnimation","animationStates","isAnimatedOnMount","onAnimationEnd","useMemo","launcherKeyDownCallback","event","getActiveElement","code","preventDefault","stopPropagation","useDraggable","isDisabled","Element","document","body","contains","addEventListener","removeEventListener","handleKeyDown","renderDialogContent","FocusTrap","renderDialog","Floating","flipOptions","mainAxis","crossAxis","shiftOptions","WindowOverlay","Modal","Layer","zoomIn","from","scaleX","scaleY","transformOrigin","opacity","to","options","duration","zoomOut","slideUp","SLIDE_UP_XLARGE","DURATION_LARGE","slideDown","SLIDE_DOWN_XLARGE"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', './classNames-08d99695', './mergeProps-bcfa6a92', './useActive-bb5dc069', './useTestId-3a316499', './DragV-a31b64bd', './UNSAFE_DragHandle/themes/DragHandleStyles.css'], (function(e,s,t,a,r,c,i,n){"use strict";e.DragHandle=function({testId:e}){const{isActive:d,activeProps:l}=r.useActive(),o=c.useTestId(e),g=t.classNames([n.iconStyle,d?n.activeStyle:n.hoverStyle]);return s.jsx("div",{...a.mergeProps(l,o),draggable:!0,class:g,role:"presentation",children:s.jsx(i.SvgDragV,{})})}}));
|
|
2
|
-
//# sourceMappingURL=DragHandle-699fefd6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DragHandle-699fefd6.js","sources":["../../src/UNSAFE_DragHandle/DragHandle.tsx"],"sourcesContent":["import { classNames } from '../utils/UNSAFE_classNames';\nimport { mergeProps } from '../utils/UNSAFE_mergeProps';\nimport { useActive } from '../hooks/UNSAFE_useActive';\nimport { useTestId, TestIdProps } from '../hooks/UNSAFE_useTestId';\nimport { DragHandleIcon } from '../PRIVATE_ThemedIcons/DragHandleIcon';\nimport { iconStyle, hoverStyle, activeStyle } from './themes/DragHandleStyles.css';\n\ntype Props = TestIdProps;\n\n/**\n * A draggable icon that shows grab cursor when users hover the mouse on it,\n * and shows grabbing cursor when users click the icon.\n */\nexport function DragHandle({ testId }: Props) {\n const { isActive, activeProps } = useActive();\n const testIdProps = useTestId(testId);\n const classes = classNames([iconStyle, isActive ? activeStyle : hoverStyle]);\n return (\n <div\n {...mergeProps(activeProps, testIdProps)}\n draggable={true}\n class={classes}\n role=\"presentation\">\n <DragHandleIcon />\n </div>\n );\n}\n"],"names":["testId","isActive","activeProps","useActive","testIdProps","useTestId","classes","classNames","iconStyle","activeStyle","hoverStyle","_jsx","jsx","mergeProps","draggable","class","role","children","DragHandleIcon"],"mappings":"gQAagB,UAAWA,OAAEA,IAC3B,MAAMC,SAAEA,EAAQC,YAAEA,GAAgBC,EAASA,YACrCC,EAAcC,YAAUL,GACxBM,EAAUC,EAAAA,WAAW,CAACC,EAAAA,UAAWP,EAAWQ,EAAWA,YAAGC,EAAUA,aAC1E,OACEC,EACMC,IAAA,MAAA,IAAAC,EAAAA,WAAWX,EAAaE,GAC5BU,WAAW,EACXC,MAAOT,EACPU,KAAK,eACLC,SAAAN,EAAAC,IAACM,WAAc,CAAA,IAGrB"}
|
package/amd/Dropdown-4b421eff.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', 'preact/hooks', './Floating-1ec5ec2a', './Layer-447c68e6', 'preact/compat', './LayerHost-e95c5f30', './keyboardUtils-fbb389f8', './tabbableUtils-85aa6918', './usePopupAnimation-f679a4b0', './popupAnimationUtils-49b93365', './CollectionInteractionContext-0b4ed98b', './UNSAFE_Dropdown/themes/dropdownStyles.css', './useOutsideMousedown-73d5a78a', './animationUtils-716a9aa6'], (function(e,n,t,i,o,s,a,r,d,c,l,u,p,f,m){"use strict";const b={mainAxis:4,crossAxis:0},h={isMaxWidthAdjusted:!0,isMaxHeightAdjusted:!0},O={mainAxis:!0,crossAxis:!0},g={opening:e=>m.mergeAnimationStateObjects([m.SCALE_UP_FULL,{from:{transformOrigin:l.getTransformOrigin(e.placement,e.direction)},to:{transformOrigin:l.getTransformOrigin(e.placement,e.direction)}}],{duration:m.DURATION_LARGE})};e.Dropdown=function({isOpen:e=!1,anchorRef:s,children:a,id:l,onClose:m,minWidth:A,placement:x="bottom-start",offset:C=b,onPosition:P,flipOptions:j=O,sizeOptions:w=h,shiftOptions:y,initialFocus:S="none"}){const E=t.useRef(null),U=t.useCallback((e=>{if(e&&"firstFocusable"===S){const e=E.current;e&&d.focusWithin(e)}}),[S]),{status:F,setAnimationElementRef:L,onPosition:R}=c.usePopupAnimation({isOpen:e,placement:x,isAnimatedOnMount:!0,animationStates:g,onPosition:P,onTransitionEnd:U}),M=t.useCallback((e=>{m?.({reason:"outsideMousedown",target:e.target})}),[m]),k=t.useCallback((e=>{if(!e.defaultPrevented)switch(e.code){case r.KEYS.ESC:case r.KEYS.TAB:m?.({reason:"dismissed"})}}),[m]);return f.useOutsideMousedown({isDisabled:!1,ref:[E],handler:M}),n.jsx(n.Fragment,{children:"unmounted"!==F?n.jsx(o.Layer,{logicalParentRef:s,children:n.jsx(i.Floating,{anchorRef:s,ref:L,placement:x,flipOptions:j,shiftOptions:y,sizeOptions:w,offsetValue:C,onPosition:R,boundaryOptions:{padding:{top:8,bottom:8,left:0,right:0}},children:n.jsx("div",{ref:E,id:l,class:p.dropdownStyles.base,style:{minWidth:`${A||0}px`},onKeyDown:k,children:n.jsx(u.CollectionInteractionContext.Provider,{value:"embedded",children:a})})})}):null})}}));
|
|
2
|
-
//# sourceMappingURL=Dropdown-4b421eff.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown-4b421eff.js","sources":["../../src/UNSAFE_Dropdown/Dropdown.tsx"],"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 { ComponentProps, RefObject, JSX } from 'preact';\nimport { useCallback, useRef } from 'preact/hooks';\n\nimport { Floating } from '../UNSAFE_Floating';\nimport { Layer } from '../UNSAFE_Layer';\nimport { KEYS } from '../utils/PRIVATE_keyboardUtils';\nimport { focusWithin } from '../utils/PRIVATE_tabbableUtils';\nimport { usePopupAnimation } from '#UNSAFE_Popup/usePopupAnimation';\nimport { getTransformOrigin } from '#utils/PRIVATE_popupAnimationUtils';\nimport { AnimationPopupElement } from '../UNSAFE_Popup/usePopupAnimation';\nimport { CollectionInteractionContext } from '#hooks/UNSAFE_useCollectionInteractionContext';\n\nimport { dropdownStyles } from './themes/dropdownStyles.css';\nimport { useOutsideMousedown } from '../hooks/PRIVATE_useOutsideMousedown';\nimport {\n DURATION_LARGE,\n SCALE_UP_FULL,\n mergeAnimationStateObjects\n} from '#utils/PRIVATE_animationUtils';\n\ntype FloatingProps = ComponentProps<typeof Floating>;\n\n//Same as Menu onClose, only difference is mouseDown instead of outside click\n//Once menu consumes dropdown is going to start using mouseDown\nexport type CloseDetail = { reason: 'dismissed' } | { reason: 'outsideMousedown'; target: Element };\n\ntype IntrinsicProps = Pick<JSX.HTMLAttributes<HTMLDivElement>, 'children'>;\n\ntype Props = IntrinsicProps & {\n /**\n *Specifies whether Dropdown is open.\n */\n isOpen?: boolean;\n /**\n * Trigger element reference.\n */\n anchorRef: FloatingProps['anchorRef'];\n /**\n * Id of the dropdown container.\n * Used usually for accesibility reasons.\n */\n id?: string;\n /**\n * Called when dropdown is supposed to be closed.\n * Called when user tab/esc or mouseDown outside the dropdown.\n */\n onClose?: (detail: CloseDetail) => void;\n /**\n *Min width represented in pixels of the dropdown container.\n */\n minWidth?: number;\n /**\n * Placement of the floating element relative to its reference element.\n */\n placement?: FloatingProps['placement'];\n /**\n * Offset displaces the floating element from its core placement along the specified axes.\n */\n offset?: FloatingProps['offsetValue'];\n /**\n * Triggered when placement or coordinates are changed after collision is detected.\n */\n onPosition?: FloatingProps['onPosition'];\n /**\n * Specifies the flipping behavior along the respective axis.\n */\n flipOptions?: FloatingProps['flipOptions'];\n /**\n * Specifies the resizing behaviour for max-height and max-width of the floating component.\n */\n sizeOptions?: FloatingProps['sizeOptions'];\n\n /**\n * Specifies the shift behavior along the respective axis\n */\n shiftOptions?: FloatingProps['shiftOptions'];\n /**\n * Specifies initial focus.\n */\n initialFocus?: 'none' | 'firstFocusable';\n};\n\nconst DEFAULT_PLACEMENT = 'bottom-start';\nconst DEFAULT_OFFSET = { mainAxis: 4, crossAxis: 0 };\nconst DEFAULT_SIZE_OPTIONS = { isMaxWidthAdjusted: true, isMaxHeightAdjusted: true };\nconst DEFAULT_FLIP_OPTIONS = { mainAxis: true, crossAxis: true };\n\nconst animationStates: Parameters<typeof usePopupAnimation>[0]['animationStates'] = {\n opening: (node: AnimationPopupElement) => {\n return mergeAnimationStateObjects(\n [\n SCALE_UP_FULL,\n {\n from: { transformOrigin: getTransformOrigin(node.placement, node.direction) },\n to: { transformOrigin: getTransformOrigin(node.placement, node.direction) }\n }\n ],\n {\n duration: DURATION_LARGE\n }\n );\n }\n};\n\n//TODO: Add animation to dropdown. JET-62628\n//TODO: Investigate best approach to have different virtual padding depending on the position and implement it.JET-57950\nexport function Dropdown({\n isOpen = false,\n anchorRef,\n children,\n id,\n onClose,\n minWidth,\n placement = DEFAULT_PLACEMENT,\n offset = DEFAULT_OFFSET,\n onPosition,\n flipOptions = DEFAULT_FLIP_OPTIONS,\n sizeOptions = DEFAULT_SIZE_OPTIONS,\n shiftOptions,\n initialFocus = 'none'\n}: Props) {\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const onTransitionEnd = useCallback(\n (isOpen: boolean) => {\n if (isOpen && initialFocus === 'firstFocusable') {\n const dropdownElement = dropdownRef.current;\n if (dropdownElement) {\n focusWithin(dropdownElement);\n }\n }\n },\n [initialFocus]\n );\n\n const {\n status,\n setAnimationElementRef,\n onPosition: onPositionAnimated\n } = usePopupAnimation({\n isOpen,\n placement,\n isAnimatedOnMount: true,\n animationStates,\n onPosition,\n onTransitionEnd\n });\n\n const handleMousedownClose = useCallback(\n (event: MouseEvent) => {\n onClose?.({ reason: 'outsideMousedown', target: event.target as Element });\n },\n [onClose]\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.code) {\n case KEYS.ESC:\n onClose?.({ reason: 'dismissed' });\n break;\n case KEYS.TAB:\n onClose?.({ reason: 'dismissed' });\n break;\n default:\n break;\n }\n },\n [onClose]\n );\n\n // use the mousedown event to be consistent with legacy JET\n useOutsideMousedown({\n isDisabled: false,\n ref: [dropdownRef],\n handler: handleMousedownClose\n });\n\n return (\n <>\n {status !== 'unmounted' ? (\n <Layer logicalParentRef={anchorRef as RefObject<Element>}>\n <Floating\n anchorRef={anchorRef}\n ref={setAnimationElementRef}\n placement={placement}\n flipOptions={flipOptions}\n shiftOptions={shiftOptions}\n sizeOptions={sizeOptions}\n offsetValue={offset}\n onPosition={onPositionAnimated}\n boundaryOptions={{ padding: { top: 8, bottom: 8, left: 0, right: 0 } }}>\n <div\n ref={dropdownRef}\n id={id}\n class={dropdownStyles.base}\n style={{ minWidth: `${minWidth || 0}px` }}\n onKeyDown={handleKeyDown}>\n <CollectionInteractionContext.Provider value={'embedded'}>\n {children}\n </CollectionInteractionContext.Provider>\n </div>\n </Floating>\n </Layer>\n ) : null}\n </>\n );\n}\n"],"names":["DEFAULT_OFFSET","mainAxis","crossAxis","DEFAULT_SIZE_OPTIONS","isMaxWidthAdjusted","isMaxHeightAdjusted","DEFAULT_FLIP_OPTIONS","animationStates","opening","node","mergeAnimationStateObjects","SCALE_UP_FULL","from","transformOrigin","getTransformOrigin","placement","direction","to","duration","DURATION_LARGE","isOpen","anchorRef","children","id","onClose","minWidth","offset","onPosition","flipOptions","sizeOptions","shiftOptions","initialFocus","dropdownRef","useRef","onTransitionEnd","useCallback","dropdownElement","current","focusWithin","status","setAnimationElementRef","onPositionAnimated","usePopupAnimation","isAnimatedOnMount","handleMousedownClose","event","reason","target","handleKeyDown","defaultPrevented","code","KEYS","ESC","TAB","useOutsideMousedown","isDisabled","ref","handler","_jsx","_Fragment","jsx","Layer","logicalParentRef","Floating","offsetValue","boundaryOptions","padding","top","bottom","left","right","class","dropdownStyles","base","style","onKeyDown","CollectionInteractionContext","Provider","value"],"mappings":"wcA0FA,MACMA,EAAiB,CAAEC,SAAU,EAAGC,UAAW,GAC3CC,EAAuB,CAAEC,oBAAoB,EAAMC,qBAAqB,GACxEC,EAAuB,CAAEL,UAAU,EAAMC,WAAW,GAEpDK,EAA8E,CAClFC,QAAUC,GACDC,6BACL,CACEC,EAAaA,cACb,CACEC,KAAM,CAAEC,gBAAiBC,EAAkBA,mBAACL,EAAKM,UAAWN,EAAKO,YACjEC,GAAI,CAAEJ,gBAAiBC,EAAkBA,mBAACL,EAAKM,UAAWN,EAAKO,cAGnE,CACEE,SAAUC,EAAcA,uCAQPC,OACvBA,GAAS,EAAKC,UACdA,EAASC,SACTA,EAAQC,GACRA,EAAEC,QACFA,EAAOC,SACPA,EAAQV,UACRA,EA/BwB,eA+BKW,OAC7BA,EAAS1B,EAAc2B,WACvBA,EAAUC,YACVA,EAActB,EAAoBuB,YAClCA,EAAc1B,EAAoB2B,aAClCA,EAAYC,aACZA,EAAe,SAEf,MAAMC,EAAcC,SAAuB,MAErCC,EAAkBC,eACrBf,IACC,GAAIA,GAA2B,mBAAjBW,EAAmC,CAC/C,MAAMK,EAAkBJ,EAAYK,QAChCD,GACFE,EAAWA,YAACF,EAEf,IAEH,CAACL,KAGGQ,OACJA,EAAMC,uBACNA,EACAb,WAAYc,GACVC,EAAAA,kBAAkB,CACpBtB,SACAL,YACA4B,mBAAmB,EACnBpC,kBACAoB,aACAO,oBAGIU,EAAuBT,eAC1BU,IACCrB,IAAU,CAAEsB,OAAQ,mBAAoBC,OAAQF,EAAME,QAAoB,GAE5E,CAACvB,IAGGwB,EAAgBb,eACnBU,IACC,IAAIA,EAAMI,iBAGV,OAAQJ,EAAMK,MACZ,KAAKC,EAAIA,KAACC,IAGV,KAAKD,EAAIA,KAACE,IACR7B,IAAU,CAAEsB,OAAQ,cAIvB,GAEH,CAACtB,IAUH,OANA8B,sBAAoB,CAClBC,YAAY,EACZC,IAAK,CAACxB,GACNyB,QAASb,IAITc,EAAAA,IAAAC,EAAAA,SAAA,CAAArC,SACc,cAAXiB,EACCmB,EAAAE,IAACC,QAAK,CAACC,iBAAkBzC,EAA+BC,SACtDoC,EAAAA,IAACK,EAAQA,SACP,CAAA1C,UAAWA,EACXmC,IAAKhB,EACLzB,UAAWA,EACXa,YAAaA,EACbE,aAAcA,EACdD,YAAaA,EACbmC,YAAatC,EACbC,WAAYc,EACZwB,gBAAiB,CAAEC,QAAS,CAAEC,IAAK,EAAGC,OAAQ,EAAGC,KAAM,EAAGC,MAAO,IAAKhD,SACtEoC,EAAAA,IACE,MAAA,CAAAF,IAAKxB,EACLT,GAAIA,EACJgD,MAAOC,EAAAA,eAAeC,KACtBC,MAAO,CAAEjD,SAAU,GAAGA,GAAY,OAClCkD,UAAW3B,EAAa1B,SACxBoC,MAACkB,EAAAA,6BAA6BC,SAAS,CAAAC,MAAO,WAC3CxD,SAAAA,UAKP,MAGV"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', './LayerHost-e95c5f30', 'preact/hooks', './LayerManager-76fcfb58'], (function(e,n,r,t,o){"use strict";function s(e,n){const r=Object.assign({},e.user,n?.user),t=Object.assign({},e.theme,n?.theme),o=Object.assign({},e.translations),s=n?.translations||{};return Object.keys(s).forEach((e=>{let n=s[e];o[e]&&(n=Object.assign({},o[e],n)),o[e]=n})),{user:r,theme:t,translations:o,colorScheme:n?.colorScheme??e.colorScheme,scale:n?.scale??e.scale,currentBgColor:n?.currentBgColor??e.currentBgColor,mode:n?.mode??e.mode,density:n?.density??e.density}}e.EnvironmentProvider=function({children:e,environment:o}){const c=t.useContext(r.EnvironmentContext),i=t.useMemo((()=>s(c,o)),[c,o]);return n.jsx(r.EnvironmentContext.Provider,{value:i,children:e})},e.RootEnvironmentProvider=function({children:e,environment:c}){const i=t.useMemo((()=>s(r.DefaultEnvironment,c)),[c]);return n.jsx(r.EnvironmentContext.Provider,{value:i,children:n.jsx(o.LayerManager,{children:e})})}}));
|
|
2
|
-
//# sourceMappingURL=EnvironmentProvider-8f6fc388.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentProvider-8f6fc388.js","sources":["../../src/UNSAFE_Environment/EnvironmentProvider.tsx"],"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 {\n CompleteEnvironmentType,\n DefaultEnvironment,\n Environment,\n EnvironmentContext,\n RootEnvironment\n} from './EnvironmentContext';\nimport { useContext, useMemo } from 'preact/hooks';\n\nimport { ComponentChildren } from 'preact';\nimport { LayerManager } from '../UNSAFE_Layer/LayerManager';\n\n// EnvironmentProvider properties\nexport declare type ProviderProperties<Env extends RootEnvironment | Environment> = {\n environment?: Env;\n children?: ComponentChildren;\n};\n\n// Custom merge function\nfunction mergeEnvironment(\n env1: CompleteEnvironmentType,\n env2: Partial<RootEnvironment> | undefined\n) {\n const userValue = Object.assign({}, env1.user, env2?.user);\n const themeValue = Object.assign({}, env1.theme, env2?.theme);\n\n // Merge translation values - one level merge\n const targetTranslations = Object.assign({}, env1.translations);\n const sourceTranslations = env2?.translations || {};\n Object.keys(sourceTranslations).forEach((key) => {\n let newVal = sourceTranslations[key];\n if (targetTranslations[key]) {\n // merge is needed\n newVal = Object.assign({}, targetTranslations[key], newVal);\n }\n targetTranslations[key] = newVal;\n });\n\n return {\n user: userValue,\n theme: themeValue,\n translations: targetTranslations,\n colorScheme: env2?.colorScheme ?? env1.colorScheme,\n scale: env2?.scale ?? env1.scale,\n currentBgColor: env2?.currentBgColor ?? env1.currentBgColor,\n mode: env2?.mode ?? env1.mode,\n density: env2?.density ?? env1.density\n };\n}\n\n/**\n * The RootEnvironmentProvider component bootstraps essential services and\n * must be placed at the root of any application using components from '@oracle/oraclejet-preact'.\n * Minimally, the application must load the appropriate translation bundle for the user's locale\n * and set it on the RootEnvironmentProvider.\n */\nexport function RootEnvironmentProvider({\n children,\n environment\n}: ProviderProperties<RootEnvironment>) {\n const mergedEnvironment = useMemo(\n () => mergeEnvironment(DefaultEnvironment, environment),\n [environment]\n );\n return (\n <EnvironmentContext.Provider value={mergedEnvironment}>\n <LayerManager>{children}</LayerManager>\n </EnvironmentContext.Provider>\n );\n}\n\n/**\n * The EnvironmentProvider is a component that should be used by the application when there is a need to overwrite\n * environment values for a subtree.\n * The component receives an Environment object that will be merged into the values provided by the nearest ancestor Provider.\n * The new environment will be passed to the component's children.\n * Note that some environment values cannot be overwritten. See the description of the Environment type for the list of values\n * that can be replaced.\n */\nexport function EnvironmentProvider({ children, environment }: ProviderProperties<Environment>) {\n const consumerEnv = useContext(EnvironmentContext);\n const mergedEnvironment = useMemo(\n () => mergeEnvironment(consumerEnv, environment),\n [consumerEnv, environment]\n );\n\n return (\n <EnvironmentContext.Provider value={mergedEnvironment}>{children}</EnvironmentContext.Provider>\n );\n}\n"],"names":["mergeEnvironment","env1","env2","userValue","Object","assign","user","themeValue","theme","targetTranslations","translations","sourceTranslations","keys","forEach","key","newVal","colorScheme","scale","currentBgColor","mode","density","children","environment","consumerEnv","useContext","EnvironmentContext","mergedEnvironment","useMemo","_jsx","jsx","Provider","value","DefaultEnvironment","LayerManager"],"mappings":"0IA2BA,SAASA,EACPC,EACAC,GAEA,MAAMC,EAAYC,OAAOC,OAAO,CAAA,EAAIJ,EAAKK,KAAMJ,GAAMI,MAC/CC,EAAaH,OAAOC,OAAO,CAAA,EAAIJ,EAAKO,MAAON,GAAMM,OAGjDC,EAAqBL,OAAOC,OAAO,CAAA,EAAIJ,EAAKS,cAC5CC,EAAqBT,GAAMQ,cAAgB,GAUjD,OATAN,OAAOQ,KAAKD,GAAoBE,SAASC,IACvC,IAAIC,EAASJ,EAAmBG,GAC5BL,EAAmBK,KAErBC,EAASX,OAAOC,OAAO,CAAA,EAAII,EAAmBK,GAAMC,IAEtDN,EAAmBK,GAAOC,CAAM,IAG3B,CACLT,KAAMH,EACNK,MAAOD,EACPG,aAAcD,EACdO,YAAad,GAAMc,aAAef,EAAKe,YACvCC,MAAOf,GAAMe,OAAShB,EAAKgB,MAC3BC,eAAgBhB,GAAMgB,gBAAkBjB,EAAKiB,eAC7CC,KAAMjB,GAAMiB,MAAQlB,EAAKkB,KACzBC,QAASlB,GAAMkB,SAAWnB,EAAKmB,QAEnC,iCA+BoCC,SAAEA,EAAQC,YAAEA,IAC9C,MAAMC,EAAcC,aAAWC,EAAAA,oBACzBC,EAAoBC,WACxB,IAAM3B,EAAiBuB,EAAaD,IACpC,CAACC,EAAaD,IAGhB,OACEM,EAAAC,IAACJ,EAAkBA,mBAACK,SAAQ,CAACC,MAAOL,EAAiBL,SAAGA,GAE5D,sCAjCwCA,SACtCA,EAAQC,YACRA,IAEA,MAAMI,EAAoBC,EAAOA,SAC/B,IAAM3B,EAAiBgC,EAAkBA,mBAAEV,IAC3C,CAACA,IAEH,OACEM,EAACC,IAAAJ,EAAkBA,mBAACK,UAASC,MAAOL,EAAiBL,SACnDO,MAACK,EAAYA,aAAA,CAAAZ,SAAEA,KAGrB"}
|
package/amd/Flex-56ecdf4c.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
define(['exports', 'preact/jsx-runtime', './useTestId-3a316499', './classNames-08d99695', './boxalignment-905057dc', './dimensions-60420dbb', './flexbox-8521f6aa', './flexitem-5db48325', './mergeInterpolations-9ede4cf7', 'css!./FlexStyles.styles.css'], (function(e,s,t,l,n,a,o,i,r,c){"use strict";var x="FlexStyles_marginZeroStyles__10p93f61";const d=[...Object.values(a.dimensionInterpolations),...Object.values(o.flexboxInterpolations),...Object.values(i.flexitemInterpolations),...Object.values(n.boxAlignmentInterpolations)],m=r.mergeInterpolations(d);e.Flex=({children:e,hasZeroMargins:n=!0,testId:a,...o})=>{const i=l.classNames(["FlexStyles_baseStyles__10p93f60",n&&x]),{class:r,...c}=m(o),d=t.useTestId(a);return s.jsx("div",{class:`${i} ${r}`,style:c,...d,children:e})},e.marginZeroStyles=x}));
|
|
2
|
-
//# sourceMappingURL=Flex-56ecdf4c.js.map
|